From 783cd4eb57d287d72c7752bb35fc5f9f5e42dfb6 Mon Sep 17 00:00:00 2001
From: crupest <crupest@outlook.com>
Date: Tue, 27 Oct 2020 18:46:34 +0800
Subject: build(front): Upgrade packages.

---
 Timeline/ClientApp/src/app/views/login/index.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'Timeline/ClientApp/src/app/views/login/index.tsx')

diff --git a/Timeline/ClientApp/src/app/views/login/index.tsx b/Timeline/ClientApp/src/app/views/login/index.tsx
index 265c2172..61b9a525 100644
--- a/Timeline/ClientApp/src/app/views/login/index.tsx
+++ b/Timeline/ClientApp/src/app/views/login/index.tsx
@@ -124,7 +124,7 @@ const LoginPage: React.FC = (_) => {
             type="checkbox"
             checked={rememberMe}
             onChange={(e) => {
-              setRememberMe(e.target.checked);
+              setRememberMe(e.currentTarget.checked);
             }}
             label={t("user.rememberMe")}
           />
-- 
cgit v1.2.3


From 05ccb4d8f1bbe3fb64e117136b4a89bcfb0b0b33 Mon Sep 17 00:00:00 2001
From: crupest <crupest@outlook.com>
Date: Tue, 27 Oct 2020 19:21:35 +0800
Subject: Split front and back end.

---
 .dockerignore                                      |    44 +-
 .github/workflows/back-ci.yaml                     |    16 +-
 .github/workflows/front-ci.yaml                    |    12 +-
 .vscode/settings.json                              |     8 +-
 BackEnd/Directory.Build.props                      |     6 +
 BackEnd/Nuget.Config                               |     7 +
 .../Timeline.ErrorCodes.CodeGenerator/Program.cs   |    77 +
 .../Timeline.ErrorCodes.CodeGenerator.csproj       |    16 +
 .../packages.lock.json                             |    24 +
 BackEnd/Timeline.ErrorCodes/ErrorCodes.cs          |    66 +
 .../Timeline.ErrorCodes/Timeline.ErrorCodes.csproj |     7 +
 BackEnd/Timeline.ErrorCodes/packages.lock.json     |     6 +
 BackEnd/Timeline.Tests/ErrorCodeTest.cs            |    53 +
 BackEnd/Timeline.Tests/GlobalSuppressions.cs       |    16 +
 .../Helpers/AsyncFunctionAssertionsExtensions.cs   |    16 +
 BackEnd/Timeline.Tests/Helpers/CacheTestHelper.cs  |    64 +
 .../Timeline.Tests/Helpers/HttpClientExtensions.cs |    51 +
 .../Helpers/HttpResponseExtensions.cs              |    35 +
 BackEnd/Timeline.Tests/Helpers/ImageHelper.cs      |    26 +
 .../Helpers/ParameterInfoAssertions.cs             |    60 +
 BackEnd/Timeline.Tests/Helpers/ReflectionHelper.cs |    13 +
 .../Timeline.Tests/Helpers/ResponseAssertions.cs   |   172 +
 BackEnd/Timeline.Tests/Helpers/TestApplication.cs  |    72 +
 BackEnd/Timeline.Tests/Helpers/TestClock.cs        |    43 +
 BackEnd/Timeline.Tests/Helpers/TestDatabase.cs     |    76 +
 .../IntegratedTests/AuthorizationTest.cs           |    52 +
 .../Timeline.Tests/IntegratedTests/FrontEndTest.cs |    29 +
 .../IntegratedTests/IntegratedTestBase.cs          |   164 +
 .../Timeline.Tests/IntegratedTests/TimelineTest.cs |  1523 ++
 .../Timeline.Tests/IntegratedTests/TokenTest.cs    |   165 +
 .../IntegratedTests/UnknownEndpointTest.cs         |    21 +
 .../IntegratedTests/UserAvatarTest.cs              |   251 +
 BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs |   447 +
 BackEnd/Timeline.Tests/PasswordGenerator.cs        |    23 +
 .../Timeline.Tests/Properties/launchSettings.json  |     2 +
 .../Timeline.Tests/Services/TimelineServiceTest.cs |   329 +
 BackEnd/Timeline.Tests/Timeline.Tests.csproj       |    34 +
 .../Timeline.Tests/UsernameValidatorUnitTest.cs    |    78 +
 BackEnd/Timeline.Tests/coverletArgs.runsettings    |    13 +
 BackEnd/Timeline.Tests/packages.lock.json          |  2040 ++
 BackEnd/Timeline.sln                               |    42 +
 BackEnd/Timeline/Auth/Attribute.cs                 |    21 +
 BackEnd/Timeline/Auth/MyAuthenticationHandler.cs   |   100 +
 BackEnd/Timeline/Auth/PrincipalExtensions.cs       |    13 +
 .../Timeline/Configs/ApplicationConfiguration.cs   |    13 +
 BackEnd/Timeline/Configs/JwtConfiguration.cs       |    14 +
 .../Controllers/ControllerAuthExtensions.cs        |    40 +
 .../Controllers/Testing/TestingAuthController.cs   |    32 +
 BackEnd/Timeline/Controllers/TimelineController.cs |   491 +
 BackEnd/Timeline/Controllers/TokenController.cs    |   142 +
 .../Timeline/Controllers/UserAvatarController.cs   |   174 +
 BackEnd/Timeline/Controllers/UserController.cs     |   195 +
 BackEnd/Timeline/Entities/DataEntity.cs            |    23 +
 BackEnd/Timeline/Entities/DatabaseContext.cs       |    34 +
 BackEnd/Timeline/Entities/JwtTokenEntity.cs        |    17 +
 BackEnd/Timeline/Entities/TimelineEntity.cs        |    58 +
 BackEnd/Timeline/Entities/TimelineMemberEntity.cs  |    24 +
 BackEnd/Timeline/Entities/TimelinePostEntity.cs    |    43 +
 BackEnd/Timeline/Entities/UserAvatarEntity.cs      |    29 +
 BackEnd/Timeline/Entities/UserEntity.cs            |    56 +
 BackEnd/Timeline/Entities/UtcDateAnnotation.cs     |    44 +
 BackEnd/Timeline/Filters/Header.cs                 |    63 +
 BackEnd/Timeline/Filters/Timeline.cs               |    32 +
 BackEnd/Timeline/Formatters/BytesInputFormatter.cs |    79 +
 .../Timeline/Formatters/StringInputFormatter.cs    |    26 +
 BackEnd/Timeline/GlobalSuppressions.cs             |    14 +
 BackEnd/Timeline/Helpers/DataCacheHelper.cs        |   125 +
 BackEnd/Timeline/Helpers/DateTimeExtensions.cs     |    14 +
 .../Helpers/InvalidModelResponseFactory.cs         |    25 +
 BackEnd/Timeline/Helpers/LanguageHelper.cs         |    12 +
 BackEnd/Timeline/Helpers/Log.cs                    |    22 +
 .../20200105150407_Initialize.Designer.cs          |   266 +
 .../Migrations/20200105150407_Initialize.cs        |   217 +
 .../20200131100517_RefactorUser.Designer.cs        |   240 +
 .../Migrations/20200131100517_RefactorUser.cs      |   128 +
 .../20200221064341_AddJwtToken.Designer.cs         |   257 +
 .../Migrations/20200221064341_AddJwtToken.cs       |    45 +
 .../20200229103848_AddPostLocalId.Designer.cs      |   265 +
 .../Migrations/20200229103848_AddPostLocalId.cs    |    42 +
 .../20200306110049_AddDataTable.Designer.cs        |   290 +
 .../Migrations/20200306110049_AddDataTable.cs      |    87 +
 .../20200306111553_DropUserDetails.Designer.cs     |   290 +
 .../Migrations/20200306111553_DropUserDetails.cs   |    17 +
 .../20200312112552_AddImagePost.Designer.cs        |   299 +
 .../Migrations/20200312112552_AddImagePost.cs      |    38 +
 .../20200614061237_AddTimelineUniqueId.Designer.cs |   306 +
 .../20200614061237_AddTimelineUniqueId.cs          |    50 +
 ...00618064936_TimelineAddModifiedTime.Designer.cs |   314 +
 .../20200618064936_TimelineAddModifiedTime.cs      |    57 +
 .../20200808071611_UserAddUniqueId.Designer.cs     |   321 +
 .../Migrations/20200808071611_UserAddUniqueId.cs   |    55 +
 .../20200810155908_AddTimesToUser.Designer.cs      |   339 +
 .../Migrations/20200810155908_AddTimesToUser.cs    |    67 +
 ...200810170533_MakePostAuthorOptional.Designer.cs |   337 +
 .../20200810170533_MakePostAuthorOptional.cs       |    78 +
 ...0808_ChangeDateTimeOffsetToDateTime.Designer.cs |   337 +
 ...0200811080808_ChangeDateTimeOffsetToDateTime.cs |    17 +
 .../20200826164553_TimelineAddTitle.Designer.cs    |   341 +
 .../Migrations/20200826164553_TimelineAddTitle.cs  |    22 +
 .../Migrations/DatabaseContextModelSnapshot.cs     |   339 +
 BackEnd/Timeline/MockClientApp/index.html          |    10 +
 BackEnd/Timeline/Models/ByteData.cs                |    33 +
 .../Models/Converters/JsonDateTimeConverter.cs     |    23 +
 .../Models/Converters/MyDateTimeConverter.cs       |    51 +
 .../Models/Http/ActionContextAccessorExtensions.cs |    14 +
 BackEnd/Timeline/Models/Http/Common.cs             |   120 +
 BackEnd/Timeline/Models/Http/ErrorResponse.cs      |   261 +
 BackEnd/Timeline/Models/Http/Timeline.cs           |   219 +
 BackEnd/Timeline/Models/Http/TimelineController.cs |    93 +
 BackEnd/Timeline/Models/Http/TokenController.cs    |    62 +
 BackEnd/Timeline/Models/Http/UserController.cs     |    93 +
 BackEnd/Timeline/Models/Http/UserInfo.cs           |    90 +
 BackEnd/Timeline/Models/Timeline.cs                |    98 +
 BackEnd/Timeline/Models/User.cs                    |    21 +
 .../Validation/GeneralTimelineNameValidator.cs     |    33 +
 .../Timeline/Models/Validation/NameValidator.cs    |    42 +
 .../Models/Validation/NicknameValidator.cs         |    25 +
 .../Models/Validation/TimelineNameValidator.cs     |    19 +
 .../Models/Validation/UsernameValidator.cs         |    19 +
 BackEnd/Timeline/Models/Validation/Validator.cs    |   127 +
 BackEnd/Timeline/Program.cs                        |    43 +
 BackEnd/Timeline/Properties/launchSettings.json    |    27 +
 .../Authentication/AuthHandler.Designer.cs         |    99 +
 .../Resources/Authentication/AuthHandler.resx      |   132 +
 .../ControllerAuthExtensions.Designer.cs           |    81 +
 .../Controllers/ControllerAuthExtensions.resx      |   126 +
 .../Controllers/TimelineController.Designer.cs     |    81 +
 .../Resources/Controllers/TimelineController.resx  |   126 +
 .../Controllers/TokenController.Designer.cs        |   153 +
 .../Resources/Controllers/TokenController.resx     |   150 +
 .../Controllers/UserAvatarController.Designer.cs   |   144 +
 .../Controllers/UserAvatarController.resx          |   147 +
 .../Controllers/UserController.Designer.cs         |   117 +
 .../Resources/Controllers/UserController.resx      |   138 +
 BackEnd/Timeline/Resources/Entities.Designer.cs    |    72 +
 BackEnd/Timeline/Resources/Entities.resx           |   123 +
 BackEnd/Timeline/Resources/Filters.Designer.cs     |    90 +
 BackEnd/Timeline/Resources/Filters.resx            |   129 +
 .../Resources/Helper/DataCacheHelper.Designer.cs   |    90 +
 .../Timeline/Resources/Helper/DataCacheHelper.resx |   129 +
 BackEnd/Timeline/Resources/Messages.Designer.cs    |   396 +
 BackEnd/Timeline/Resources/Messages.resx           |   231 +
 .../Resources/Models/Http/Common.Designer.cs       |    99 +
 BackEnd/Timeline/Resources/Models/Http/Common.resx |   132 +
 .../Resources/Models/Http/Exception.Designer.cs    |    81 +
 .../Timeline/Resources/Models/Http/Exception.resx  |   126 +
 .../Models/Validation/NameValidator.Designer.cs    |    99 +
 .../Resources/Models/Validation/NameValidator.resx |   132 +
 .../Validation/NicknameValidator.Designer.cs       |    72 +
 .../Models/Validation/NicknameValidator.resx       |   123 +
 .../Models/Validation/Validator.Designer.cs        |   108 +
 .../Resources/Models/Validation/Validator.resx     |   135 +
 .../Resources/Services/DataManager.Designer.cs     |    72 +
 .../Timeline/Resources/Services/DataManager.resx   |   123 +
 .../Resources/Services/Exception.Designer.cs       |   234 +
 BackEnd/Timeline/Resources/Services/Exception.resx |   177 +
 .../Resources/Services/Exceptions.Designer.cs      |   189 +
 .../Timeline/Resources/Services/Exceptions.resx    |   142 +
 .../Resources/Services/TimelineService.Designer.cs |   144 +
 .../Resources/Services/TimelineService.resx        |   147 +
 .../Services/UserAvatarService.Designer.cs         |   108 +
 .../Resources/Services/UserAvatarService.resx      |   135 +
 .../Resources/Services/UserService.Designer.cs     |   162 +
 .../Timeline/Resources/Services/UserService.resx   |   153 +
 .../Services/UserTokenService.Designer.cs          |    72 +
 .../Resources/Services/UserTokenService.resx       |   123 +
 .../Timeline/Routes/ApiRoutePrefixConvention.cs    |    46 +
 .../Timeline/Routes/UnknownEndpointMiddleware.cs   |    39 +
 BackEnd/Timeline/Services/BadPasswordException.cs  |    27 +
 BackEnd/Timeline/Services/Clock.cs                 |    29 +
 BackEnd/Timeline/Services/DataManager.cs           |   122 +
 BackEnd/Timeline/Services/DatabaseBackupService.cs |    35 +
 .../Services/DatabaseCorruptedException.cs         |    15 +
 BackEnd/Timeline/Services/ETagGenerator.cs         |    45 +
 BackEnd/Timeline/Services/EntityNames.cs           |    14 +
 .../Services/Exceptions/EntityAlreadyExistError.cs |    63 +
 .../Services/Exceptions/EntityNotExistError.cs     |    55 +
 .../Services/Exceptions/ExceptionMessageHelper.cs  |    13 +
 .../Timeline/Services/Exceptions/ImageException.cs |    57 +
 .../Exceptions/TimelineNotExistException.cs        |    21 +
 .../Exceptions/TimelinePostNoDataException.cs      |    15 +
 .../Exceptions/TimelinePostNotExistException.cs    |    33 +
 .../Services/Exceptions/UserNotExistException.cs   |    40 +
 BackEnd/Timeline/Services/ImageValidator.cs        |    54 +
 .../Services/JwtUserTokenBadFormatException.cs     |    48 +
 .../Services/PasswordBadFormatException.cs         |    27 +
 BackEnd/Timeline/Services/PasswordService.cs       |   224 +
 BackEnd/Timeline/Services/PathProvider.cs          |    42 +
 BackEnd/Timeline/Services/TimelineService.cs       |  1166 +
 BackEnd/Timeline/Services/UserAvatarService.cs     |   265 +
 BackEnd/Timeline/Services/UserDeleteService.cs     |    69 +
 BackEnd/Timeline/Services/UserRoleConvert.cs       |    43 +
 BackEnd/Timeline/Services/UserService.cs           |   437 +
 BackEnd/Timeline/Services/UserTokenException.cs    |    68 +
 BackEnd/Timeline/Services/UserTokenManager.cs      |    97 +
 BackEnd/Timeline/Services/UserTokenService.cs      |   149 +
 BackEnd/Timeline/Startup.cs                        |   185 +
 BackEnd/Timeline/Swagger/ApiConvention.cs          |    15 +
 .../Swagger/ByteDataRequestOperationProcessor.cs   |    27 +
 .../DefaultDescriptionOperationProcessor.cs        |    39 +
 .../DocumentDescriptionDocumentProcessor.cs        |    55 +
 BackEnd/Timeline/Timeline.csproj                   |   263 +
 BackEnd/Timeline/appsettings.Development.json      |     9 +
 BackEnd/Timeline/appsettings.json                  |    11 +
 BackEnd/Timeline/default-avatar.png                |   Bin 0 -> 26442 bytes
 BackEnd/Timeline/packages.lock.json                |  1563 ++
 BackEnd/tools/convert-eol.py                       |    35 +
 Directory.Build.props                              |     6 -
 Dockerfile                                         |    26 +-
 FrontEnd/.babelrc                                  |    27 +
 FrontEnd/.editorconfig                             |    14 +
 FrontEnd/.eslintignore                             |     6 +
 FrontEnd/.eslintrc.js                              |    47 +
 FrontEnd/.gitattributes                            |     1 +
 FrontEnd/.gitignore                                |    32 +
 FrontEnd/.pnp.js                                   | 24623 +++++++++++++++++++
 FrontEnd/.vscode/extensions.json                   |     9 +
 FrontEnd/.vscode/preview.yml                       |    10 +
 FrontEnd/.vscode/settings.json                     |     6 +
 .../plugins/@yarnpkg/plugin-interactive-tools.cjs  |    38 +
 FrontEnd/.yarn/releases/yarn-2.1.1.cjs             |    86 +
 FrontEnd/.yarn/sdks/eslint/lib/api.js              |    20 +
 FrontEnd/.yarn/sdks/eslint/package.json            |     6 +
 FrontEnd/.yarn/sdks/integrations.yml               |     5 +
 FrontEnd/.yarn/sdks/prettier/index.js              |    20 +
 FrontEnd/.yarn/sdks/prettier/package.json          |     6 +
 FrontEnd/.yarn/sdks/typescript/lib/tsc.js          |    20 +
 FrontEnd/.yarn/sdks/typescript/lib/tsserver.js     |    63 +
 FrontEnd/.yarn/sdks/typescript/lib/typescript.js   |    20 +
 FrontEnd/.yarn/sdks/typescript/package.json        |     6 +
 FrontEnd/.yarnrc.yml                               |     5 +
 FrontEnd/LICENSE                                   |    21 +
 FrontEnd/package.json                              |   111 +
 FrontEnd/postcss.config.js                         |    10 +
 FrontEnd/public/android-chrome-192x192.png         |   Bin 0 -> 8519 bytes
 FrontEnd/public/android-chrome-512x512.png         |   Bin 0 -> 23619 bytes
 FrontEnd/public/apple-touch-icon.png               |   Bin 0 -> 2088 bytes
 FrontEnd/public/browserconfig.xml                  |     9 +
 FrontEnd/public/favicon-16x16.png                  |   Bin 0 -> 682 bytes
 FrontEnd/public/favicon-32x32.png                  |   Bin 0 -> 821 bytes
 FrontEnd/public/favicon.ico                        |   Bin 0 -> 15086 bytes
 FrontEnd/public/mstile-144x144.png                 |   Bin 0 -> 2259 bytes
 FrontEnd/public/mstile-150x150.png                 |   Bin 0 -> 2240 bytes
 FrontEnd/public/mstile-310x150.png                 |   Bin 0 -> 2482 bytes
 FrontEnd/public/mstile-310x310.png                 |   Bin 0 -> 4937 bytes
 FrontEnd/public/mstile-70x70.png                   |   Bin 0 -> 1561 bytes
 FrontEnd/public/safari-pinned-tab.svg              |    25 +
 FrontEnd/public/site.webmanifest                   |    22 +
 FrontEnd/sandbox.config.json                       |    11 +
 FrontEnd/src/app/App.tsx                           |    84 +
 FrontEnd/src/app/common.ts                         |    44 +
 FrontEnd/src/app/http/common.ts                    |   161 +
 FrontEnd/src/app/http/timeline.ts                  |   544 +
 FrontEnd/src/app/http/token.ts                     |    72 +
 FrontEnd/src/app/http/user.ts                      |   134 +
 FrontEnd/src/app/i18n.ts                           |    79 +
 FrontEnd/src/app/index.ejs                         |    29 +
 FrontEnd/src/app/index.sass                        |    66 +
 FrontEnd/src/app/index.tsx                         |    15 +
 FrontEnd/src/app/locales/en/translation.ts         |   202 +
 FrontEnd/src/app/locales/scheme.ts                 |   182 +
 FrontEnd/src/app/locales/zh/translation.ts         |   195 +
 FrontEnd/src/app/service-worker.tsx                |   113 +
 FrontEnd/src/app/services/DataHub.ts               |   225 +
 FrontEnd/src/app/services/alert.ts                 |    61 +
 FrontEnd/src/app/services/common.ts                |    23 +
 FrontEnd/src/app/services/timeline.ts              |   702 +
 FrontEnd/src/app/services/user.ts                  |   393 +
 FrontEnd/src/app/tsconfig.json                     |    13 +
 FrontEnd/src/app/typings.d.ts                      |    24 +
 FrontEnd/src/app/utilities/rxjs.ts                 |    14 +
 FrontEnd/src/app/utilities/url.ts                  |    52 +
 FrontEnd/src/app/views/about/about.sass            |     4 +
 FrontEnd/src/app/views/about/author-avatar.png     |   Bin 0 -> 12038 bytes
 FrontEnd/src/app/views/about/github.png            |   Bin 0 -> 4268 bytes
 FrontEnd/src/app/views/about/index.tsx             |   164 +
 FrontEnd/src/app/views/admin/Admin.tsx             |    75 +
 FrontEnd/src/app/views/admin/UserAdmin.tsx         |   460 +
 FrontEnd/src/app/views/common/AppBar.tsx           |    64 +
 FrontEnd/src/app/views/common/BlobImage.tsx        |    27 +
 FrontEnd/src/app/views/common/ImageCropper.tsx     |   306 +
 FrontEnd/src/app/views/common/LoadingButton.tsx    |    29 +
 FrontEnd/src/app/views/common/LoadingPage.tsx      |    12 +
 FrontEnd/src/app/views/common/OperationDialog.tsx  |   364 +
 FrontEnd/src/app/views/common/SearchInput.tsx      |    63 +
 FrontEnd/src/app/views/common/TimelineLogo.tsx     |    26 +
 FrontEnd/src/app/views/common/UserTimelineLogo.tsx |    26 +
 FrontEnd/src/app/views/common/alert/AlertHost.tsx  |   101 +
 FrontEnd/src/app/views/common/alert/alert.sass     |    15 +
 FrontEnd/src/app/views/common/common.sass          |    33 +
 FrontEnd/src/app/views/home/BoardWithUser.tsx      |   101 +
 FrontEnd/src/app/views/home/BoardWithoutUser.tsx   |    60 +
 FrontEnd/src/app/views/home/OfflineBoard.tsx       |    61 +
 FrontEnd/src/app/views/home/TimelineBoard.tsx      |    73 +
 .../src/app/views/home/TimelineCreateDialog.tsx    |    53 +
 FrontEnd/src/app/views/home/home.sass              |    13 +
 FrontEnd/src/app/views/home/index.tsx              |    99 +
 FrontEnd/src/app/views/login/index.tsx             |   151 +
 FrontEnd/src/app/views/login/login.sass            |     2 +
 FrontEnd/src/app/views/settings/index.tsx          |   209 +
 .../app/views/timeline-common/CollapseButton.tsx   |    23 +
 .../app/views/timeline-common/InfoCardTemplate.tsx |    26 +
 .../app/views/timeline-common/SyncStatusBadge.tsx  |    58 +
 .../src/app/views/timeline-common/Timeline.tsx     |    84 +
 .../src/app/views/timeline-common/TimelineItem.tsx |   172 +
 .../app/views/timeline-common/TimelineMember.tsx   |   211 +
 .../views/timeline-common/TimelinePageTemplate.tsx |   185 +
 .../timeline-common/TimelinePageTemplateUI.tsx     |   243 +
 .../app/views/timeline-common/TimelinePostEdit.tsx |   241 +
 .../TimelinePropertyChangeDialog.tsx               |    72 +
 .../src/app/views/timeline-common/TimelineTop.tsx  |    21 +
 .../app/views/timeline-common/timeline-common.sass |   146 +
 .../app/views/timeline/TimelineDeleteDialog.tsx    |    55 +
 .../src/app/views/timeline/TimelineInfoCard.tsx    |    85 +
 FrontEnd/src/app/views/timeline/TimelinePageUI.tsx |    20 +
 FrontEnd/src/app/views/timeline/index.tsx          |    37 +
 FrontEnd/src/app/views/timeline/timeline.sass      |     0
 FrontEnd/src/app/views/user/ChangeAvatarDialog.tsx |   302 +
 .../src/app/views/user/ChangeNicknameDialog.tsx    |    28 +
 FrontEnd/src/app/views/user/UserInfoCard.tsx       |    80 +
 FrontEnd/src/app/views/user/UserPageUI.tsx         |    18 +
 FrontEnd/src/app/views/user/index.tsx              |    72 +
 FrontEnd/src/app/views/user/user.sass              |     7 +
 FrontEnd/src/sw/sw.ts                              |    28 +
 FrontEnd/src/sw/tsconfig.json                      |    12 +
 FrontEnd/src/tsconfig.json                         |    23 +
 FrontEnd/webpack.common.js                         |    86 +
 FrontEnd/webpack.config.dev.js                     |    52 +
 FrontEnd/webpack.config.prod.js                    |    53 +
 FrontEnd/yarn.lock                                 | 13002 ++++++++++
 Nuget.Config                                       |     7 -
 Timeline.ErrorCodes.CodeGenerator/Program.cs       |    77 -
 .../Timeline.ErrorCodes.CodeGenerator.csproj       |    16 -
 .../packages.lock.json                             |    24 -
 Timeline.ErrorCodes/ErrorCodes.cs                  |    66 -
 Timeline.ErrorCodes/Timeline.ErrorCodes.csproj     |     7 -
 Timeline.ErrorCodes/packages.lock.json             |     6 -
 Timeline.Tests/ErrorCodeTest.cs                    |    53 -
 Timeline.Tests/GlobalSuppressions.cs               |    16 -
 .../Helpers/AsyncFunctionAssertionsExtensions.cs   |    16 -
 Timeline.Tests/Helpers/CacheTestHelper.cs          |    64 -
 Timeline.Tests/Helpers/HttpClientExtensions.cs     |    51 -
 Timeline.Tests/Helpers/HttpResponseExtensions.cs   |    35 -
 Timeline.Tests/Helpers/ImageHelper.cs              |    26 -
 Timeline.Tests/Helpers/ParameterInfoAssertions.cs  |    60 -
 Timeline.Tests/Helpers/ReflectionHelper.cs         |    13 -
 Timeline.Tests/Helpers/ResponseAssertions.cs       |   172 -
 Timeline.Tests/Helpers/TestApplication.cs          |    72 -
 Timeline.Tests/Helpers/TestClock.cs                |    43 -
 Timeline.Tests/Helpers/TestDatabase.cs             |    76 -
 .../IntegratedTests/AuthorizationTest.cs           |    52 -
 Timeline.Tests/IntegratedTests/FrontEndTest.cs     |    29 -
 .../IntegratedTests/IntegratedTestBase.cs          |   164 -
 Timeline.Tests/IntegratedTests/TimelineTest.cs     |  1523 --
 Timeline.Tests/IntegratedTests/TokenTest.cs        |   165 -
 .../IntegratedTests/UnknownEndpointTest.cs         |    21 -
 Timeline.Tests/IntegratedTests/UserAvatarTest.cs   |   251 -
 Timeline.Tests/IntegratedTests/UserTest.cs         |   447 -
 Timeline.Tests/PasswordGenerator.cs                |    23 -
 Timeline.Tests/Properties/launchSettings.json      |     2 -
 Timeline.Tests/Services/TimelineServiceTest.cs     |   329 -
 Timeline.Tests/Timeline.Tests.csproj               |    34 -
 Timeline.Tests/UsernameValidatorUnitTest.cs        |    78 -
 Timeline.Tests/coverletArgs.runsettings            |    13 -
 Timeline.Tests/packages.lock.json                  |  2040 --
 Timeline.sln                                       |    42 -
 Timeline/Auth/Attribute.cs                         |    21 -
 Timeline/Auth/MyAuthenticationHandler.cs           |   100 -
 Timeline/Auth/PrincipalExtensions.cs               |    13 -
 Timeline/ClientApp/.babelrc                        |    27 -
 Timeline/ClientApp/.editorconfig                   |    14 -
 Timeline/ClientApp/.eslintignore                   |     6 -
 Timeline/ClientApp/.eslintrc.js                    |    47 -
 Timeline/ClientApp/.gitattributes                  |     1 -
 Timeline/ClientApp/.gitignore                      |    32 -
 Timeline/ClientApp/.pnp.js                         | 24623 -------------------
 Timeline/ClientApp/.vscode/extensions.json         |     9 -
 Timeline/ClientApp/.vscode/preview.yml             |    10 -
 Timeline/ClientApp/.vscode/settings.json           |     6 -
 .../plugins/@yarnpkg/plugin-interactive-tools.cjs  |    38 -
 Timeline/ClientApp/.yarn/releases/yarn-2.1.1.cjs   |    86 -
 Timeline/ClientApp/.yarn/sdks/eslint/lib/api.js    |    20 -
 Timeline/ClientApp/.yarn/sdks/eslint/package.json  |     6 -
 Timeline/ClientApp/.yarn/sdks/integrations.yml     |     5 -
 Timeline/ClientApp/.yarn/sdks/prettier/index.js    |    20 -
 .../ClientApp/.yarn/sdks/prettier/package.json     |     6 -
 .../ClientApp/.yarn/sdks/typescript/lib/tsc.js     |    20 -
 .../.yarn/sdks/typescript/lib/tsserver.js          |    63 -
 .../.yarn/sdks/typescript/lib/typescript.js        |    20 -
 .../ClientApp/.yarn/sdks/typescript/package.json   |     6 -
 Timeline/ClientApp/.yarnrc.yml                     |     5 -
 Timeline/ClientApp/LICENSE                         |    21 -
 Timeline/ClientApp/package.json                    |   111 -
 Timeline/ClientApp/postcss.config.js               |    10 -
 .../ClientApp/public/android-chrome-192x192.png    |   Bin 8519 -> 0 bytes
 .../ClientApp/public/android-chrome-512x512.png    |   Bin 23619 -> 0 bytes
 Timeline/ClientApp/public/apple-touch-icon.png     |   Bin 2088 -> 0 bytes
 Timeline/ClientApp/public/browserconfig.xml        |     9 -
 Timeline/ClientApp/public/favicon-16x16.png        |   Bin 682 -> 0 bytes
 Timeline/ClientApp/public/favicon-32x32.png        |   Bin 821 -> 0 bytes
 Timeline/ClientApp/public/favicon.ico              |   Bin 15086 -> 0 bytes
 Timeline/ClientApp/public/mstile-144x144.png       |   Bin 2259 -> 0 bytes
 Timeline/ClientApp/public/mstile-150x150.png       |   Bin 2240 -> 0 bytes
 Timeline/ClientApp/public/mstile-310x150.png       |   Bin 2482 -> 0 bytes
 Timeline/ClientApp/public/mstile-310x310.png       |   Bin 4937 -> 0 bytes
 Timeline/ClientApp/public/mstile-70x70.png         |   Bin 1561 -> 0 bytes
 Timeline/ClientApp/public/safari-pinned-tab.svg    |    25 -
 Timeline/ClientApp/public/site.webmanifest         |    22 -
 Timeline/ClientApp/sandbox.config.json             |    11 -
 Timeline/ClientApp/src/app/App.tsx                 |    84 -
 Timeline/ClientApp/src/app/common.ts               |    44 -
 Timeline/ClientApp/src/app/http/common.ts          |   161 -
 Timeline/ClientApp/src/app/http/timeline.ts        |   544 -
 Timeline/ClientApp/src/app/http/token.ts           |    72 -
 Timeline/ClientApp/src/app/http/user.ts            |   134 -
 Timeline/ClientApp/src/app/i18n.ts                 |    79 -
 Timeline/ClientApp/src/app/index.ejs               |    29 -
 Timeline/ClientApp/src/app/index.sass              |    66 -
 Timeline/ClientApp/src/app/index.tsx               |    15 -
 .../ClientApp/src/app/locales/en/translation.ts    |   202 -
 Timeline/ClientApp/src/app/locales/scheme.ts       |   182 -
 .../ClientApp/src/app/locales/zh/translation.ts    |   195 -
 Timeline/ClientApp/src/app/service-worker.tsx      |   113 -
 Timeline/ClientApp/src/app/services/DataHub.ts     |   225 -
 Timeline/ClientApp/src/app/services/alert.ts       |    61 -
 Timeline/ClientApp/src/app/services/common.ts      |    23 -
 Timeline/ClientApp/src/app/services/timeline.ts    |   702 -
 Timeline/ClientApp/src/app/services/user.ts        |   393 -
 Timeline/ClientApp/src/app/tsconfig.json           |    13 -
 Timeline/ClientApp/src/app/typings.d.ts            |    24 -
 Timeline/ClientApp/src/app/utilities/rxjs.ts       |    14 -
 Timeline/ClientApp/src/app/utilities/url.ts        |    52 -
 Timeline/ClientApp/src/app/views/about/about.sass  |     4 -
 .../src/app/views/about/author-avatar.png          |   Bin 12038 -> 0 bytes
 Timeline/ClientApp/src/app/views/about/github.png  |   Bin 4268 -> 0 bytes
 Timeline/ClientApp/src/app/views/about/index.tsx   |   164 -
 Timeline/ClientApp/src/app/views/admin/Admin.tsx   |    75 -
 .../ClientApp/src/app/views/admin/UserAdmin.tsx    |   460 -
 Timeline/ClientApp/src/app/views/common/AppBar.tsx |    64 -
 .../ClientApp/src/app/views/common/BlobImage.tsx   |    27 -
 .../src/app/views/common/ImageCropper.tsx          |   306 -
 .../src/app/views/common/LoadingButton.tsx         |    29 -
 .../ClientApp/src/app/views/common/LoadingPage.tsx |    12 -
 .../src/app/views/common/OperationDialog.tsx       |   364 -
 .../ClientApp/src/app/views/common/SearchInput.tsx |    63 -
 .../src/app/views/common/TimelineLogo.tsx          |    26 -
 .../src/app/views/common/UserTimelineLogo.tsx      |    26 -
 .../src/app/views/common/alert/AlertHost.tsx       |   101 -
 .../src/app/views/common/alert/alert.sass          |    15 -
 .../ClientApp/src/app/views/common/common.sass     |    33 -
 .../ClientApp/src/app/views/home/BoardWithUser.tsx |   101 -
 .../src/app/views/home/BoardWithoutUser.tsx        |    60 -
 .../ClientApp/src/app/views/home/OfflineBoard.tsx  |    61 -
 .../ClientApp/src/app/views/home/TimelineBoard.tsx |    73 -
 .../src/app/views/home/TimelineCreateDialog.tsx    |    53 -
 Timeline/ClientApp/src/app/views/home/home.sass    |    13 -
 Timeline/ClientApp/src/app/views/home/index.tsx    |    99 -
 Timeline/ClientApp/src/app/views/login/index.tsx   |   151 -
 Timeline/ClientApp/src/app/views/login/login.sass  |     2 -
 .../ClientApp/src/app/views/settings/index.tsx     |   209 -
 .../app/views/timeline-common/CollapseButton.tsx   |    23 -
 .../app/views/timeline-common/InfoCardTemplate.tsx |    26 -
 .../app/views/timeline-common/SyncStatusBadge.tsx  |    58 -
 .../src/app/views/timeline-common/Timeline.tsx     |    84 -
 .../src/app/views/timeline-common/TimelineItem.tsx |   172 -
 .../app/views/timeline-common/TimelineMember.tsx   |   211 -
 .../views/timeline-common/TimelinePageTemplate.tsx |   185 -
 .../timeline-common/TimelinePageTemplateUI.tsx     |   243 -
 .../app/views/timeline-common/TimelinePostEdit.tsx |   241 -
 .../TimelinePropertyChangeDialog.tsx               |    72 -
 .../src/app/views/timeline-common/TimelineTop.tsx  |    21 -
 .../app/views/timeline-common/timeline-common.sass |   146 -
 .../app/views/timeline/TimelineDeleteDialog.tsx    |    55 -
 .../src/app/views/timeline/TimelineInfoCard.tsx    |    85 -
 .../src/app/views/timeline/TimelinePageUI.tsx      |    20 -
 .../ClientApp/src/app/views/timeline/index.tsx     |    37 -
 .../ClientApp/src/app/views/timeline/timeline.sass |     0
 .../src/app/views/user/ChangeAvatarDialog.tsx      |   302 -
 .../src/app/views/user/ChangeNicknameDialog.tsx    |    28 -
 .../ClientApp/src/app/views/user/UserInfoCard.tsx  |    80 -
 .../ClientApp/src/app/views/user/UserPageUI.tsx    |    18 -
 Timeline/ClientApp/src/app/views/user/index.tsx    |    72 -
 Timeline/ClientApp/src/app/views/user/user.sass    |     7 -
 Timeline/ClientApp/src/sw/sw.ts                    |    28 -
 Timeline/ClientApp/src/sw/tsconfig.json            |    12 -
 Timeline/ClientApp/src/tsconfig.json               |    23 -
 Timeline/ClientApp/webpack.common.js               |    86 -
 Timeline/ClientApp/webpack.config.dev.js           |    52 -
 Timeline/ClientApp/webpack.config.prod.js          |    53 -
 Timeline/ClientApp/yarn.lock                       | 13002 ----------
 Timeline/Configs/ApplicationConfiguration.cs       |    13 -
 Timeline/Configs/JwtConfiguration.cs               |    14 -
 Timeline/Controllers/ControllerAuthExtensions.cs   |    40 -
 .../Controllers/Testing/TestingAuthController.cs   |    32 -
 Timeline/Controllers/TimelineController.cs         |   491 -
 Timeline/Controllers/TokenController.cs            |   142 -
 Timeline/Controllers/UserAvatarController.cs       |   174 -
 Timeline/Controllers/UserController.cs             |   195 -
 Timeline/Entities/DataEntity.cs                    |    23 -
 Timeline/Entities/DatabaseContext.cs               |    34 -
 Timeline/Entities/JwtTokenEntity.cs                |    17 -
 Timeline/Entities/TimelineEntity.cs                |    58 -
 Timeline/Entities/TimelineMemberEntity.cs          |    24 -
 Timeline/Entities/TimelinePostEntity.cs            |    43 -
 Timeline/Entities/UserAvatarEntity.cs              |    29 -
 Timeline/Entities/UserEntity.cs                    |    56 -
 Timeline/Entities/UtcDateAnnotation.cs             |    44 -
 Timeline/Filters/Header.cs                         |    63 -
 Timeline/Filters/Timeline.cs                       |    32 -
 Timeline/Formatters/BytesInputFormatter.cs         |    79 -
 Timeline/Formatters/StringInputFormatter.cs        |    26 -
 Timeline/GlobalSuppressions.cs                     |    14 -
 Timeline/Helpers/DataCacheHelper.cs                |   125 -
 Timeline/Helpers/DateTimeExtensions.cs             |    14 -
 Timeline/Helpers/InvalidModelResponseFactory.cs    |    25 -
 Timeline/Helpers/LanguageHelper.cs                 |    12 -
 Timeline/Helpers/Log.cs                            |    22 -
 .../20200105150407_Initialize.Designer.cs          |   266 -
 Timeline/Migrations/20200105150407_Initialize.cs   |   217 -
 .../20200131100517_RefactorUser.Designer.cs        |   240 -
 Timeline/Migrations/20200131100517_RefactorUser.cs |   128 -
 .../20200221064341_AddJwtToken.Designer.cs         |   257 -
 Timeline/Migrations/20200221064341_AddJwtToken.cs  |    45 -
 .../20200229103848_AddPostLocalId.Designer.cs      |   265 -
 .../Migrations/20200229103848_AddPostLocalId.cs    |    42 -
 .../20200306110049_AddDataTable.Designer.cs        |   290 -
 Timeline/Migrations/20200306110049_AddDataTable.cs |    87 -
 .../20200306111553_DropUserDetails.Designer.cs     |   290 -
 .../Migrations/20200306111553_DropUserDetails.cs   |    17 -
 .../20200312112552_AddImagePost.Designer.cs        |   299 -
 Timeline/Migrations/20200312112552_AddImagePost.cs |    38 -
 .../20200614061237_AddTimelineUniqueId.Designer.cs |   306 -
 .../20200614061237_AddTimelineUniqueId.cs          |    50 -
 ...00618064936_TimelineAddModifiedTime.Designer.cs |   314 -
 .../20200618064936_TimelineAddModifiedTime.cs      |    57 -
 .../20200808071611_UserAddUniqueId.Designer.cs     |   321 -
 .../Migrations/20200808071611_UserAddUniqueId.cs   |    55 -
 .../20200810155908_AddTimesToUser.Designer.cs      |   339 -
 .../Migrations/20200810155908_AddTimesToUser.cs    |    67 -
 ...200810170533_MakePostAuthorOptional.Designer.cs |   337 -
 .../20200810170533_MakePostAuthorOptional.cs       |    78 -
 ...0808_ChangeDateTimeOffsetToDateTime.Designer.cs |   337 -
 ...0200811080808_ChangeDateTimeOffsetToDateTime.cs |    17 -
 .../20200826164553_TimelineAddTitle.Designer.cs    |   341 -
 .../Migrations/20200826164553_TimelineAddTitle.cs  |    22 -
 .../Migrations/DatabaseContextModelSnapshot.cs     |   339 -
 Timeline/MockClientApp/index.html                  |    10 -
 Timeline/Models/ByteData.cs                        |    33 -
 .../Models/Converters/JsonDateTimeConverter.cs     |    23 -
 Timeline/Models/Converters/MyDateTimeConverter.cs  |    51 -
 .../Models/Http/ActionContextAccessorExtensions.cs |    14 -
 Timeline/Models/Http/Common.cs                     |   120 -
 Timeline/Models/Http/ErrorResponse.cs              |   261 -
 Timeline/Models/Http/Timeline.cs                   |   219 -
 Timeline/Models/Http/TimelineController.cs         |    93 -
 Timeline/Models/Http/TokenController.cs            |    62 -
 Timeline/Models/Http/UserController.cs             |    93 -
 Timeline/Models/Http/UserInfo.cs                   |    90 -
 Timeline/Models/Timeline.cs                        |    98 -
 Timeline/Models/User.cs                            |    21 -
 .../Validation/GeneralTimelineNameValidator.cs     |    33 -
 Timeline/Models/Validation/NameValidator.cs        |    42 -
 Timeline/Models/Validation/NicknameValidator.cs    |    25 -
 .../Models/Validation/TimelineNameValidator.cs     |    19 -
 Timeline/Models/Validation/UsernameValidator.cs    |    19 -
 Timeline/Models/Validation/Validator.cs            |   127 -
 Timeline/Program.cs                                |    43 -
 Timeline/Properties/launchSettings.json            |    27 -
 .../Authentication/AuthHandler.Designer.cs         |    99 -
 Timeline/Resources/Authentication/AuthHandler.resx |   132 -
 .../ControllerAuthExtensions.Designer.cs           |    81 -
 .../Controllers/ControllerAuthExtensions.resx      |   126 -
 .../Controllers/TimelineController.Designer.cs     |    81 -
 .../Resources/Controllers/TimelineController.resx  |   126 -
 .../Controllers/TokenController.Designer.cs        |   153 -
 .../Resources/Controllers/TokenController.resx     |   150 -
 .../Controllers/UserAvatarController.Designer.cs   |   144 -
 .../Controllers/UserAvatarController.resx          |   147 -
 .../Controllers/UserController.Designer.cs         |   117 -
 Timeline/Resources/Controllers/UserController.resx |   138 -
 Timeline/Resources/Entities.Designer.cs            |    72 -
 Timeline/Resources/Entities.resx                   |   123 -
 Timeline/Resources/Filters.Designer.cs             |    90 -
 Timeline/Resources/Filters.resx                    |   129 -
 .../Resources/Helper/DataCacheHelper.Designer.cs   |    90 -
 Timeline/Resources/Helper/DataCacheHelper.resx     |   129 -
 Timeline/Resources/Messages.Designer.cs            |   396 -
 Timeline/Resources/Messages.resx                   |   231 -
 Timeline/Resources/Models/Http/Common.Designer.cs  |    99 -
 Timeline/Resources/Models/Http/Common.resx         |   132 -
 .../Resources/Models/Http/Exception.Designer.cs    |    81 -
 Timeline/Resources/Models/Http/Exception.resx      |   126 -
 .../Models/Validation/NameValidator.Designer.cs    |    99 -
 .../Resources/Models/Validation/NameValidator.resx |   132 -
 .../Validation/NicknameValidator.Designer.cs       |    72 -
 .../Models/Validation/NicknameValidator.resx       |   123 -
 .../Models/Validation/Validator.Designer.cs        |   108 -
 .../Resources/Models/Validation/Validator.resx     |   135 -
 .../Resources/Services/DataManager.Designer.cs     |    72 -
 Timeline/Resources/Services/DataManager.resx       |   123 -
 Timeline/Resources/Services/Exception.Designer.cs  |   234 -
 Timeline/Resources/Services/Exception.resx         |   177 -
 Timeline/Resources/Services/Exceptions.Designer.cs |   189 -
 Timeline/Resources/Services/Exceptions.resx        |   142 -
 .../Resources/Services/TimelineService.Designer.cs |   144 -
 Timeline/Resources/Services/TimelineService.resx   |   147 -
 .../Services/UserAvatarService.Designer.cs         |   108 -
 Timeline/Resources/Services/UserAvatarService.resx |   135 -
 .../Resources/Services/UserService.Designer.cs     |   162 -
 Timeline/Resources/Services/UserService.resx       |   153 -
 .../Services/UserTokenService.Designer.cs          |    72 -
 Timeline/Resources/Services/UserTokenService.resx  |   123 -
 Timeline/Routes/ApiRoutePrefixConvention.cs        |    46 -
 Timeline/Routes/UnknownEndpointMiddleware.cs       |    39 -
 Timeline/Services/BadPasswordException.cs          |    27 -
 Timeline/Services/Clock.cs                         |    29 -
 Timeline/Services/DataManager.cs                   |   122 -
 Timeline/Services/DatabaseBackupService.cs         |    35 -
 Timeline/Services/DatabaseCorruptedException.cs    |    15 -
 Timeline/Services/ETagGenerator.cs                 |    45 -
 Timeline/Services/EntityNames.cs                   |    14 -
 .../Services/Exceptions/EntityAlreadyExistError.cs |    63 -
 .../Services/Exceptions/EntityNotExistError.cs     |    55 -
 .../Services/Exceptions/ExceptionMessageHelper.cs  |    13 -
 Timeline/Services/Exceptions/ImageException.cs     |    57 -
 .../Exceptions/TimelineNotExistException.cs        |    21 -
 .../Exceptions/TimelinePostNoDataException.cs      |    15 -
 .../Exceptions/TimelinePostNotExistException.cs    |    33 -
 .../Services/Exceptions/UserNotExistException.cs   |    40 -
 Timeline/Services/ImageValidator.cs                |    54 -
 .../Services/JwtUserTokenBadFormatException.cs     |    48 -
 Timeline/Services/PasswordBadFormatException.cs    |    27 -
 Timeline/Services/PasswordService.cs               |   224 -
 Timeline/Services/PathProvider.cs                  |    42 -
 Timeline/Services/TimelineService.cs               |  1166 -
 Timeline/Services/UserAvatarService.cs             |   265 -
 Timeline/Services/UserDeleteService.cs             |    69 -
 Timeline/Services/UserRoleConvert.cs               |    43 -
 Timeline/Services/UserService.cs                   |   437 -
 Timeline/Services/UserTokenException.cs            |    68 -
 Timeline/Services/UserTokenManager.cs              |    97 -
 Timeline/Services/UserTokenService.cs              |   149 -
 Timeline/Startup.cs                                |   187 -
 Timeline/Swagger/ApiConvention.cs                  |    15 -
 .../Swagger/ByteDataRequestOperationProcessor.cs   |    27 -
 .../DefaultDescriptionOperationProcessor.cs        |    39 -
 .../DocumentDescriptionDocumentProcessor.cs        |    55 -
 Timeline/Timeline.csproj                           |   289 -
 Timeline/appsettings.Development.json              |     9 -
 Timeline/appsettings.json                          |    11 -
 Timeline/default-avatar.png                        |   Bin 26442 -> 0 bytes
 Timeline/packages.lock.json                        |  1563 --
 azure-pipelines.yml                                |    75 -
 tools/convert-eol.py                               |    35 -
 654 files changed, 73278 insertions(+), 73369 deletions(-)
 create mode 100644 BackEnd/Directory.Build.props
 create mode 100644 BackEnd/Nuget.Config
 create mode 100644 BackEnd/Timeline.ErrorCodes.CodeGenerator/Program.cs
 create mode 100644 BackEnd/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
 create mode 100644 BackEnd/Timeline.ErrorCodes.CodeGenerator/packages.lock.json
 create mode 100644 BackEnd/Timeline.ErrorCodes/ErrorCodes.cs
 create mode 100644 BackEnd/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
 create mode 100644 BackEnd/Timeline.ErrorCodes/packages.lock.json
 create mode 100644 BackEnd/Timeline.Tests/ErrorCodeTest.cs
 create mode 100644 BackEnd/Timeline.Tests/GlobalSuppressions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/CacheTestHelper.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/HttpClientExtensions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/HttpResponseExtensions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/ImageHelper.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/ParameterInfoAssertions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/ReflectionHelper.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/ResponseAssertions.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/TestApplication.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/TestClock.cs
 create mode 100644 BackEnd/Timeline.Tests/Helpers/TestDatabase.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/FrontEndTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
 create mode 100644 BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs
 create mode 100644 BackEnd/Timeline.Tests/PasswordGenerator.cs
 create mode 100644 BackEnd/Timeline.Tests/Properties/launchSettings.json
 create mode 100644 BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs
 create mode 100644 BackEnd/Timeline.Tests/Timeline.Tests.csproj
 create mode 100644 BackEnd/Timeline.Tests/UsernameValidatorUnitTest.cs
 create mode 100644 BackEnd/Timeline.Tests/coverletArgs.runsettings
 create mode 100644 BackEnd/Timeline.Tests/packages.lock.json
 create mode 100644 BackEnd/Timeline.sln
 create mode 100644 BackEnd/Timeline/Auth/Attribute.cs
 create mode 100644 BackEnd/Timeline/Auth/MyAuthenticationHandler.cs
 create mode 100644 BackEnd/Timeline/Auth/PrincipalExtensions.cs
 create mode 100644 BackEnd/Timeline/Configs/ApplicationConfiguration.cs
 create mode 100644 BackEnd/Timeline/Configs/JwtConfiguration.cs
 create mode 100644 BackEnd/Timeline/Controllers/ControllerAuthExtensions.cs
 create mode 100644 BackEnd/Timeline/Controllers/Testing/TestingAuthController.cs
 create mode 100644 BackEnd/Timeline/Controllers/TimelineController.cs
 create mode 100644 BackEnd/Timeline/Controllers/TokenController.cs
 create mode 100644 BackEnd/Timeline/Controllers/UserAvatarController.cs
 create mode 100644 BackEnd/Timeline/Controllers/UserController.cs
 create mode 100644 BackEnd/Timeline/Entities/DataEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/DatabaseContext.cs
 create mode 100644 BackEnd/Timeline/Entities/JwtTokenEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/TimelineEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/TimelineMemberEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/TimelinePostEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/UserAvatarEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/UserEntity.cs
 create mode 100644 BackEnd/Timeline/Entities/UtcDateAnnotation.cs
 create mode 100644 BackEnd/Timeline/Filters/Header.cs
 create mode 100644 BackEnd/Timeline/Filters/Timeline.cs
 create mode 100644 BackEnd/Timeline/Formatters/BytesInputFormatter.cs
 create mode 100644 BackEnd/Timeline/Formatters/StringInputFormatter.cs
 create mode 100644 BackEnd/Timeline/GlobalSuppressions.cs
 create mode 100644 BackEnd/Timeline/Helpers/DataCacheHelper.cs
 create mode 100644 BackEnd/Timeline/Helpers/DateTimeExtensions.cs
 create mode 100644 BackEnd/Timeline/Helpers/InvalidModelResponseFactory.cs
 create mode 100644 BackEnd/Timeline/Helpers/LanguageHelper.cs
 create mode 100644 BackEnd/Timeline/Helpers/Log.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200105150407_Initialize.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200105150407_Initialize.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200306110049_AddDataTable.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200312112552_AddImagePost.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
 create mode 100644 BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.cs
 create mode 100644 BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
 create mode 100644 BackEnd/Timeline/MockClientApp/index.html
 create mode 100644 BackEnd/Timeline/Models/ByteData.cs
 create mode 100644 BackEnd/Timeline/Models/Converters/JsonDateTimeConverter.cs
 create mode 100644 BackEnd/Timeline/Models/Converters/MyDateTimeConverter.cs
 create mode 100644 BackEnd/Timeline/Models/Http/ActionContextAccessorExtensions.cs
 create mode 100644 BackEnd/Timeline/Models/Http/Common.cs
 create mode 100644 BackEnd/Timeline/Models/Http/ErrorResponse.cs
 create mode 100644 BackEnd/Timeline/Models/Http/Timeline.cs
 create mode 100644 BackEnd/Timeline/Models/Http/TimelineController.cs
 create mode 100644 BackEnd/Timeline/Models/Http/TokenController.cs
 create mode 100644 BackEnd/Timeline/Models/Http/UserController.cs
 create mode 100644 BackEnd/Timeline/Models/Http/UserInfo.cs
 create mode 100644 BackEnd/Timeline/Models/Timeline.cs
 create mode 100644 BackEnd/Timeline/Models/User.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/GeneralTimelineNameValidator.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/NameValidator.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/NicknameValidator.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/TimelineNameValidator.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/UsernameValidator.cs
 create mode 100644 BackEnd/Timeline/Models/Validation/Validator.cs
 create mode 100644 BackEnd/Timeline/Program.cs
 create mode 100644 BackEnd/Timeline/Properties/launchSettings.json
 create mode 100644 BackEnd/Timeline/Resources/Authentication/AuthHandler.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Authentication/AuthHandler.resx
 create mode 100644 BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.resx
 create mode 100644 BackEnd/Timeline/Resources/Controllers/TimelineController.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Controllers/TimelineController.resx
 create mode 100644 BackEnd/Timeline/Resources/Controllers/TokenController.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Controllers/TokenController.resx
 create mode 100644 BackEnd/Timeline/Resources/Controllers/UserAvatarController.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Controllers/UserAvatarController.resx
 create mode 100644 BackEnd/Timeline/Resources/Controllers/UserController.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Controllers/UserController.resx
 create mode 100644 BackEnd/Timeline/Resources/Entities.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Entities.resx
 create mode 100644 BackEnd/Timeline/Resources/Filters.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Filters.resx
 create mode 100644 BackEnd/Timeline/Resources/Helper/DataCacheHelper.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Helper/DataCacheHelper.resx
 create mode 100644 BackEnd/Timeline/Resources/Messages.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Messages.resx
 create mode 100644 BackEnd/Timeline/Resources/Models/Http/Common.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Models/Http/Common.resx
 create mode 100644 BackEnd/Timeline/Resources/Models/Http/Exception.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Models/Http/Exception.resx
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/NameValidator.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/NameValidator.resx
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.resx
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/Validator.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Models/Validation/Validator.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/DataManager.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/DataManager.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/Exception.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/Exception.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/Exceptions.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/Exceptions.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/TimelineService.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/TimelineService.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/UserAvatarService.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/UserAvatarService.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/UserService.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/UserService.resx
 create mode 100644 BackEnd/Timeline/Resources/Services/UserTokenService.Designer.cs
 create mode 100644 BackEnd/Timeline/Resources/Services/UserTokenService.resx
 create mode 100644 BackEnd/Timeline/Routes/ApiRoutePrefixConvention.cs
 create mode 100644 BackEnd/Timeline/Routes/UnknownEndpointMiddleware.cs
 create mode 100644 BackEnd/Timeline/Services/BadPasswordException.cs
 create mode 100644 BackEnd/Timeline/Services/Clock.cs
 create mode 100644 BackEnd/Timeline/Services/DataManager.cs
 create mode 100644 BackEnd/Timeline/Services/DatabaseBackupService.cs
 create mode 100644 BackEnd/Timeline/Services/DatabaseCorruptedException.cs
 create mode 100644 BackEnd/Timeline/Services/ETagGenerator.cs
 create mode 100644 BackEnd/Timeline/Services/EntityNames.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/EntityAlreadyExistError.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/EntityNotExistError.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/ExceptionMessageHelper.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/ImageException.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/TimelineNotExistException.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/TimelinePostNoDataException.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/TimelinePostNotExistException.cs
 create mode 100644 BackEnd/Timeline/Services/Exceptions/UserNotExistException.cs
 create mode 100644 BackEnd/Timeline/Services/ImageValidator.cs
 create mode 100644 BackEnd/Timeline/Services/JwtUserTokenBadFormatException.cs
 create mode 100644 BackEnd/Timeline/Services/PasswordBadFormatException.cs
 create mode 100644 BackEnd/Timeline/Services/PasswordService.cs
 create mode 100644 BackEnd/Timeline/Services/PathProvider.cs
 create mode 100644 BackEnd/Timeline/Services/TimelineService.cs
 create mode 100644 BackEnd/Timeline/Services/UserAvatarService.cs
 create mode 100644 BackEnd/Timeline/Services/UserDeleteService.cs
 create mode 100644 BackEnd/Timeline/Services/UserRoleConvert.cs
 create mode 100644 BackEnd/Timeline/Services/UserService.cs
 create mode 100644 BackEnd/Timeline/Services/UserTokenException.cs
 create mode 100644 BackEnd/Timeline/Services/UserTokenManager.cs
 create mode 100644 BackEnd/Timeline/Services/UserTokenService.cs
 create mode 100644 BackEnd/Timeline/Startup.cs
 create mode 100644 BackEnd/Timeline/Swagger/ApiConvention.cs
 create mode 100644 BackEnd/Timeline/Swagger/ByteDataRequestOperationProcessor.cs
 create mode 100644 BackEnd/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
 create mode 100644 BackEnd/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
 create mode 100644 BackEnd/Timeline/Timeline.csproj
 create mode 100644 BackEnd/Timeline/appsettings.Development.json
 create mode 100644 BackEnd/Timeline/appsettings.json
 create mode 100644 BackEnd/Timeline/default-avatar.png
 create mode 100644 BackEnd/Timeline/packages.lock.json
 create mode 100644 BackEnd/tools/convert-eol.py
 delete mode 100644 Directory.Build.props
 create mode 100644 FrontEnd/.babelrc
 create mode 100644 FrontEnd/.editorconfig
 create mode 100644 FrontEnd/.eslintignore
 create mode 100644 FrontEnd/.eslintrc.js
 create mode 100644 FrontEnd/.gitattributes
 create mode 100644 FrontEnd/.gitignore
 create mode 100644 FrontEnd/.pnp.js
 create mode 100644 FrontEnd/.vscode/extensions.json
 create mode 100644 FrontEnd/.vscode/preview.yml
 create mode 100644 FrontEnd/.vscode/settings.json
 create mode 100644 FrontEnd/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
 create mode 100644 FrontEnd/.yarn/releases/yarn-2.1.1.cjs
 create mode 100644 FrontEnd/.yarn/sdks/eslint/lib/api.js
 create mode 100644 FrontEnd/.yarn/sdks/eslint/package.json
 create mode 100644 FrontEnd/.yarn/sdks/integrations.yml
 create mode 100644 FrontEnd/.yarn/sdks/prettier/index.js
 create mode 100644 FrontEnd/.yarn/sdks/prettier/package.json
 create mode 100644 FrontEnd/.yarn/sdks/typescript/lib/tsc.js
 create mode 100644 FrontEnd/.yarn/sdks/typescript/lib/tsserver.js
 create mode 100644 FrontEnd/.yarn/sdks/typescript/lib/typescript.js
 create mode 100644 FrontEnd/.yarn/sdks/typescript/package.json
 create mode 100644 FrontEnd/.yarnrc.yml
 create mode 100644 FrontEnd/LICENSE
 create mode 100644 FrontEnd/package.json
 create mode 100644 FrontEnd/postcss.config.js
 create mode 100644 FrontEnd/public/android-chrome-192x192.png
 create mode 100644 FrontEnd/public/android-chrome-512x512.png
 create mode 100644 FrontEnd/public/apple-touch-icon.png
 create mode 100644 FrontEnd/public/browserconfig.xml
 create mode 100644 FrontEnd/public/favicon-16x16.png
 create mode 100644 FrontEnd/public/favicon-32x32.png
 create mode 100644 FrontEnd/public/favicon.ico
 create mode 100644 FrontEnd/public/mstile-144x144.png
 create mode 100644 FrontEnd/public/mstile-150x150.png
 create mode 100644 FrontEnd/public/mstile-310x150.png
 create mode 100644 FrontEnd/public/mstile-310x310.png
 create mode 100644 FrontEnd/public/mstile-70x70.png
 create mode 100644 FrontEnd/public/safari-pinned-tab.svg
 create mode 100644 FrontEnd/public/site.webmanifest
 create mode 100644 FrontEnd/sandbox.config.json
 create mode 100644 FrontEnd/src/app/App.tsx
 create mode 100644 FrontEnd/src/app/common.ts
 create mode 100644 FrontEnd/src/app/http/common.ts
 create mode 100644 FrontEnd/src/app/http/timeline.ts
 create mode 100644 FrontEnd/src/app/http/token.ts
 create mode 100644 FrontEnd/src/app/http/user.ts
 create mode 100644 FrontEnd/src/app/i18n.ts
 create mode 100644 FrontEnd/src/app/index.ejs
 create mode 100644 FrontEnd/src/app/index.sass
 create mode 100644 FrontEnd/src/app/index.tsx
 create mode 100644 FrontEnd/src/app/locales/en/translation.ts
 create mode 100644 FrontEnd/src/app/locales/scheme.ts
 create mode 100644 FrontEnd/src/app/locales/zh/translation.ts
 create mode 100644 FrontEnd/src/app/service-worker.tsx
 create mode 100644 FrontEnd/src/app/services/DataHub.ts
 create mode 100644 FrontEnd/src/app/services/alert.ts
 create mode 100644 FrontEnd/src/app/services/common.ts
 create mode 100644 FrontEnd/src/app/services/timeline.ts
 create mode 100644 FrontEnd/src/app/services/user.ts
 create mode 100644 FrontEnd/src/app/tsconfig.json
 create mode 100644 FrontEnd/src/app/typings.d.ts
 create mode 100644 FrontEnd/src/app/utilities/rxjs.ts
 create mode 100644 FrontEnd/src/app/utilities/url.ts
 create mode 100644 FrontEnd/src/app/views/about/about.sass
 create mode 100644 FrontEnd/src/app/views/about/author-avatar.png
 create mode 100644 FrontEnd/src/app/views/about/github.png
 create mode 100644 FrontEnd/src/app/views/about/index.tsx
 create mode 100644 FrontEnd/src/app/views/admin/Admin.tsx
 create mode 100644 FrontEnd/src/app/views/admin/UserAdmin.tsx
 create mode 100644 FrontEnd/src/app/views/common/AppBar.tsx
 create mode 100644 FrontEnd/src/app/views/common/BlobImage.tsx
 create mode 100644 FrontEnd/src/app/views/common/ImageCropper.tsx
 create mode 100644 FrontEnd/src/app/views/common/LoadingButton.tsx
 create mode 100644 FrontEnd/src/app/views/common/LoadingPage.tsx
 create mode 100644 FrontEnd/src/app/views/common/OperationDialog.tsx
 create mode 100644 FrontEnd/src/app/views/common/SearchInput.tsx
 create mode 100644 FrontEnd/src/app/views/common/TimelineLogo.tsx
 create mode 100644 FrontEnd/src/app/views/common/UserTimelineLogo.tsx
 create mode 100644 FrontEnd/src/app/views/common/alert/AlertHost.tsx
 create mode 100644 FrontEnd/src/app/views/common/alert/alert.sass
 create mode 100644 FrontEnd/src/app/views/common/common.sass
 create mode 100644 FrontEnd/src/app/views/home/BoardWithUser.tsx
 create mode 100644 FrontEnd/src/app/views/home/BoardWithoutUser.tsx
 create mode 100644 FrontEnd/src/app/views/home/OfflineBoard.tsx
 create mode 100644 FrontEnd/src/app/views/home/TimelineBoard.tsx
 create mode 100644 FrontEnd/src/app/views/home/TimelineCreateDialog.tsx
 create mode 100644 FrontEnd/src/app/views/home/home.sass
 create mode 100644 FrontEnd/src/app/views/home/index.tsx
 create mode 100644 FrontEnd/src/app/views/login/index.tsx
 create mode 100644 FrontEnd/src/app/views/login/login.sass
 create mode 100644 FrontEnd/src/app/views/settings/index.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/CollapseButton.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/InfoCardTemplate.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/SyncStatusBadge.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/Timeline.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelineItem.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelineMember.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelinePostEdit.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/TimelineTop.tsx
 create mode 100644 FrontEnd/src/app/views/timeline-common/timeline-common.sass
 create mode 100644 FrontEnd/src/app/views/timeline/TimelineDeleteDialog.tsx
 create mode 100644 FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx
 create mode 100644 FrontEnd/src/app/views/timeline/TimelinePageUI.tsx
 create mode 100644 FrontEnd/src/app/views/timeline/index.tsx
 create mode 100644 FrontEnd/src/app/views/timeline/timeline.sass
 create mode 100644 FrontEnd/src/app/views/user/ChangeAvatarDialog.tsx
 create mode 100644 FrontEnd/src/app/views/user/ChangeNicknameDialog.tsx
 create mode 100644 FrontEnd/src/app/views/user/UserInfoCard.tsx
 create mode 100644 FrontEnd/src/app/views/user/UserPageUI.tsx
 create mode 100644 FrontEnd/src/app/views/user/index.tsx
 create mode 100644 FrontEnd/src/app/views/user/user.sass
 create mode 100644 FrontEnd/src/sw/sw.ts
 create mode 100644 FrontEnd/src/sw/tsconfig.json
 create mode 100644 FrontEnd/src/tsconfig.json
 create mode 100644 FrontEnd/webpack.common.js
 create mode 100644 FrontEnd/webpack.config.dev.js
 create mode 100644 FrontEnd/webpack.config.prod.js
 create mode 100644 FrontEnd/yarn.lock
 delete mode 100644 Nuget.Config
 delete mode 100644 Timeline.ErrorCodes.CodeGenerator/Program.cs
 delete mode 100644 Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
 delete mode 100644 Timeline.ErrorCodes.CodeGenerator/packages.lock.json
 delete mode 100644 Timeline.ErrorCodes/ErrorCodes.cs
 delete mode 100644 Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
 delete mode 100644 Timeline.ErrorCodes/packages.lock.json
 delete mode 100644 Timeline.Tests/ErrorCodeTest.cs
 delete mode 100644 Timeline.Tests/GlobalSuppressions.cs
 delete mode 100644 Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
 delete mode 100644 Timeline.Tests/Helpers/CacheTestHelper.cs
 delete mode 100644 Timeline.Tests/Helpers/HttpClientExtensions.cs
 delete mode 100644 Timeline.Tests/Helpers/HttpResponseExtensions.cs
 delete mode 100644 Timeline.Tests/Helpers/ImageHelper.cs
 delete mode 100644 Timeline.Tests/Helpers/ParameterInfoAssertions.cs
 delete mode 100644 Timeline.Tests/Helpers/ReflectionHelper.cs
 delete mode 100644 Timeline.Tests/Helpers/ResponseAssertions.cs
 delete mode 100644 Timeline.Tests/Helpers/TestApplication.cs
 delete mode 100644 Timeline.Tests/Helpers/TestClock.cs
 delete mode 100644 Timeline.Tests/Helpers/TestDatabase.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/AuthorizationTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/FrontEndTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/TimelineTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/TokenTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/UserAvatarTest.cs
 delete mode 100644 Timeline.Tests/IntegratedTests/UserTest.cs
 delete mode 100644 Timeline.Tests/PasswordGenerator.cs
 delete mode 100644 Timeline.Tests/Properties/launchSettings.json
 delete mode 100644 Timeline.Tests/Services/TimelineServiceTest.cs
 delete mode 100644 Timeline.Tests/Timeline.Tests.csproj
 delete mode 100644 Timeline.Tests/UsernameValidatorUnitTest.cs
 delete mode 100644 Timeline.Tests/coverletArgs.runsettings
 delete mode 100644 Timeline.Tests/packages.lock.json
 delete mode 100644 Timeline.sln
 delete mode 100644 Timeline/Auth/Attribute.cs
 delete mode 100644 Timeline/Auth/MyAuthenticationHandler.cs
 delete mode 100644 Timeline/Auth/PrincipalExtensions.cs
 delete mode 100644 Timeline/ClientApp/.babelrc
 delete mode 100644 Timeline/ClientApp/.editorconfig
 delete mode 100644 Timeline/ClientApp/.eslintignore
 delete mode 100644 Timeline/ClientApp/.eslintrc.js
 delete mode 100644 Timeline/ClientApp/.gitattributes
 delete mode 100644 Timeline/ClientApp/.gitignore
 delete mode 100644 Timeline/ClientApp/.pnp.js
 delete mode 100644 Timeline/ClientApp/.vscode/extensions.json
 delete mode 100644 Timeline/ClientApp/.vscode/preview.yml
 delete mode 100644 Timeline/ClientApp/.vscode/settings.json
 delete mode 100644 Timeline/ClientApp/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
 delete mode 100644 Timeline/ClientApp/.yarn/releases/yarn-2.1.1.cjs
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/eslint/lib/api.js
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/eslint/package.json
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/integrations.yml
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/prettier/index.js
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/prettier/package.json
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/typescript/lib/tsc.js
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/typescript/lib/tsserver.js
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/typescript/lib/typescript.js
 delete mode 100644 Timeline/ClientApp/.yarn/sdks/typescript/package.json
 delete mode 100644 Timeline/ClientApp/.yarnrc.yml
 delete mode 100644 Timeline/ClientApp/LICENSE
 delete mode 100644 Timeline/ClientApp/package.json
 delete mode 100644 Timeline/ClientApp/postcss.config.js
 delete mode 100644 Timeline/ClientApp/public/android-chrome-192x192.png
 delete mode 100644 Timeline/ClientApp/public/android-chrome-512x512.png
 delete mode 100644 Timeline/ClientApp/public/apple-touch-icon.png
 delete mode 100644 Timeline/ClientApp/public/browserconfig.xml
 delete mode 100644 Timeline/ClientApp/public/favicon-16x16.png
 delete mode 100644 Timeline/ClientApp/public/favicon-32x32.png
 delete mode 100644 Timeline/ClientApp/public/favicon.ico
 delete mode 100644 Timeline/ClientApp/public/mstile-144x144.png
 delete mode 100644 Timeline/ClientApp/public/mstile-150x150.png
 delete mode 100644 Timeline/ClientApp/public/mstile-310x150.png
 delete mode 100644 Timeline/ClientApp/public/mstile-310x310.png
 delete mode 100644 Timeline/ClientApp/public/mstile-70x70.png
 delete mode 100644 Timeline/ClientApp/public/safari-pinned-tab.svg
 delete mode 100644 Timeline/ClientApp/public/site.webmanifest
 delete mode 100644 Timeline/ClientApp/sandbox.config.json
 delete mode 100644 Timeline/ClientApp/src/app/App.tsx
 delete mode 100644 Timeline/ClientApp/src/app/common.ts
 delete mode 100644 Timeline/ClientApp/src/app/http/common.ts
 delete mode 100644 Timeline/ClientApp/src/app/http/timeline.ts
 delete mode 100644 Timeline/ClientApp/src/app/http/token.ts
 delete mode 100644 Timeline/ClientApp/src/app/http/user.ts
 delete mode 100644 Timeline/ClientApp/src/app/i18n.ts
 delete mode 100644 Timeline/ClientApp/src/app/index.ejs
 delete mode 100644 Timeline/ClientApp/src/app/index.sass
 delete mode 100644 Timeline/ClientApp/src/app/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/locales/en/translation.ts
 delete mode 100644 Timeline/ClientApp/src/app/locales/scheme.ts
 delete mode 100644 Timeline/ClientApp/src/app/locales/zh/translation.ts
 delete mode 100644 Timeline/ClientApp/src/app/service-worker.tsx
 delete mode 100644 Timeline/ClientApp/src/app/services/DataHub.ts
 delete mode 100644 Timeline/ClientApp/src/app/services/alert.ts
 delete mode 100644 Timeline/ClientApp/src/app/services/common.ts
 delete mode 100644 Timeline/ClientApp/src/app/services/timeline.ts
 delete mode 100644 Timeline/ClientApp/src/app/services/user.ts
 delete mode 100644 Timeline/ClientApp/src/app/tsconfig.json
 delete mode 100644 Timeline/ClientApp/src/app/typings.d.ts
 delete mode 100644 Timeline/ClientApp/src/app/utilities/rxjs.ts
 delete mode 100644 Timeline/ClientApp/src/app/utilities/url.ts
 delete mode 100644 Timeline/ClientApp/src/app/views/about/about.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/about/author-avatar.png
 delete mode 100644 Timeline/ClientApp/src/app/views/about/github.png
 delete mode 100644 Timeline/ClientApp/src/app/views/about/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/admin/Admin.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/admin/UserAdmin.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/AppBar.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/BlobImage.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/ImageCropper.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/LoadingButton.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/LoadingPage.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/OperationDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/SearchInput.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/TimelineLogo.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/UserTimelineLogo.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/alert/AlertHost.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/common/alert/alert.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/common/common.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/home/BoardWithUser.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/home/OfflineBoard.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/home/TimelineBoard.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/home/TimelineCreateDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/home/home.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/home/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/login/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/login/login.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/settings/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/CollapseButton.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/InfoCardTemplate.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/SyncStatusBadge.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/Timeline.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelineItem.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelineMember.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplate.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelinePostEdit.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/TimelineTop.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline-common/timeline-common.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline/TimelineDeleteDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline/TimelineInfoCard.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline/TimelinePageUI.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/timeline/timeline.sass
 delete mode 100644 Timeline/ClientApp/src/app/views/user/ChangeAvatarDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/user/ChangeNicknameDialog.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/user/UserPageUI.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/user/index.tsx
 delete mode 100644 Timeline/ClientApp/src/app/views/user/user.sass
 delete mode 100644 Timeline/ClientApp/src/sw/sw.ts
 delete mode 100644 Timeline/ClientApp/src/sw/tsconfig.json
 delete mode 100644 Timeline/ClientApp/src/tsconfig.json
 delete mode 100644 Timeline/ClientApp/webpack.common.js
 delete mode 100644 Timeline/ClientApp/webpack.config.dev.js
 delete mode 100644 Timeline/ClientApp/webpack.config.prod.js
 delete mode 100644 Timeline/ClientApp/yarn.lock
 delete mode 100644 Timeline/Configs/ApplicationConfiguration.cs
 delete mode 100644 Timeline/Configs/JwtConfiguration.cs
 delete mode 100644 Timeline/Controllers/ControllerAuthExtensions.cs
 delete mode 100644 Timeline/Controllers/Testing/TestingAuthController.cs
 delete mode 100644 Timeline/Controllers/TimelineController.cs
 delete mode 100644 Timeline/Controllers/TokenController.cs
 delete mode 100644 Timeline/Controllers/UserAvatarController.cs
 delete mode 100644 Timeline/Controllers/UserController.cs
 delete mode 100644 Timeline/Entities/DataEntity.cs
 delete mode 100644 Timeline/Entities/DatabaseContext.cs
 delete mode 100644 Timeline/Entities/JwtTokenEntity.cs
 delete mode 100644 Timeline/Entities/TimelineEntity.cs
 delete mode 100644 Timeline/Entities/TimelineMemberEntity.cs
 delete mode 100644 Timeline/Entities/TimelinePostEntity.cs
 delete mode 100644 Timeline/Entities/UserAvatarEntity.cs
 delete mode 100644 Timeline/Entities/UserEntity.cs
 delete mode 100644 Timeline/Entities/UtcDateAnnotation.cs
 delete mode 100644 Timeline/Filters/Header.cs
 delete mode 100644 Timeline/Filters/Timeline.cs
 delete mode 100644 Timeline/Formatters/BytesInputFormatter.cs
 delete mode 100644 Timeline/Formatters/StringInputFormatter.cs
 delete mode 100644 Timeline/GlobalSuppressions.cs
 delete mode 100644 Timeline/Helpers/DataCacheHelper.cs
 delete mode 100644 Timeline/Helpers/DateTimeExtensions.cs
 delete mode 100644 Timeline/Helpers/InvalidModelResponseFactory.cs
 delete mode 100644 Timeline/Helpers/LanguageHelper.cs
 delete mode 100644 Timeline/Helpers/Log.cs
 delete mode 100644 Timeline/Migrations/20200105150407_Initialize.Designer.cs
 delete mode 100644 Timeline/Migrations/20200105150407_Initialize.cs
 delete mode 100644 Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
 delete mode 100644 Timeline/Migrations/20200131100517_RefactorUser.cs
 delete mode 100644 Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
 delete mode 100644 Timeline/Migrations/20200221064341_AddJwtToken.cs
 delete mode 100644 Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
 delete mode 100644 Timeline/Migrations/20200229103848_AddPostLocalId.cs
 delete mode 100644 Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
 delete mode 100644 Timeline/Migrations/20200306110049_AddDataTable.cs
 delete mode 100644 Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
 delete mode 100644 Timeline/Migrations/20200306111553_DropUserDetails.cs
 delete mode 100644 Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
 delete mode 100644 Timeline/Migrations/20200312112552_AddImagePost.cs
 delete mode 100644 Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
 delete mode 100644 Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
 delete mode 100644 Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
 delete mode 100644 Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
 delete mode 100644 Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
 delete mode 100644 Timeline/Migrations/20200808071611_UserAddUniqueId.cs
 delete mode 100644 Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
 delete mode 100644 Timeline/Migrations/20200810155908_AddTimesToUser.cs
 delete mode 100644 Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
 delete mode 100644 Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
 delete mode 100644 Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
 delete mode 100644 Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
 delete mode 100644 Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
 delete mode 100644 Timeline/Migrations/20200826164553_TimelineAddTitle.cs
 delete mode 100644 Timeline/Migrations/DatabaseContextModelSnapshot.cs
 delete mode 100644 Timeline/MockClientApp/index.html
 delete mode 100644 Timeline/Models/ByteData.cs
 delete mode 100644 Timeline/Models/Converters/JsonDateTimeConverter.cs
 delete mode 100644 Timeline/Models/Converters/MyDateTimeConverter.cs
 delete mode 100644 Timeline/Models/Http/ActionContextAccessorExtensions.cs
 delete mode 100644 Timeline/Models/Http/Common.cs
 delete mode 100644 Timeline/Models/Http/ErrorResponse.cs
 delete mode 100644 Timeline/Models/Http/Timeline.cs
 delete mode 100644 Timeline/Models/Http/TimelineController.cs
 delete mode 100644 Timeline/Models/Http/TokenController.cs
 delete mode 100644 Timeline/Models/Http/UserController.cs
 delete mode 100644 Timeline/Models/Http/UserInfo.cs
 delete mode 100644 Timeline/Models/Timeline.cs
 delete mode 100644 Timeline/Models/User.cs
 delete mode 100644 Timeline/Models/Validation/GeneralTimelineNameValidator.cs
 delete mode 100644 Timeline/Models/Validation/NameValidator.cs
 delete mode 100644 Timeline/Models/Validation/NicknameValidator.cs
 delete mode 100644 Timeline/Models/Validation/TimelineNameValidator.cs
 delete mode 100644 Timeline/Models/Validation/UsernameValidator.cs
 delete mode 100644 Timeline/Models/Validation/Validator.cs
 delete mode 100644 Timeline/Program.cs
 delete mode 100644 Timeline/Properties/launchSettings.json
 delete mode 100644 Timeline/Resources/Authentication/AuthHandler.Designer.cs
 delete mode 100644 Timeline/Resources/Authentication/AuthHandler.resx
 delete mode 100644 Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
 delete mode 100644 Timeline/Resources/Controllers/ControllerAuthExtensions.resx
 delete mode 100644 Timeline/Resources/Controllers/TimelineController.Designer.cs
 delete mode 100644 Timeline/Resources/Controllers/TimelineController.resx
 delete mode 100644 Timeline/Resources/Controllers/TokenController.Designer.cs
 delete mode 100644 Timeline/Resources/Controllers/TokenController.resx
 delete mode 100644 Timeline/Resources/Controllers/UserAvatarController.Designer.cs
 delete mode 100644 Timeline/Resources/Controllers/UserAvatarController.resx
 delete mode 100644 Timeline/Resources/Controllers/UserController.Designer.cs
 delete mode 100644 Timeline/Resources/Controllers/UserController.resx
 delete mode 100644 Timeline/Resources/Entities.Designer.cs
 delete mode 100644 Timeline/Resources/Entities.resx
 delete mode 100644 Timeline/Resources/Filters.Designer.cs
 delete mode 100644 Timeline/Resources/Filters.resx
 delete mode 100644 Timeline/Resources/Helper/DataCacheHelper.Designer.cs
 delete mode 100644 Timeline/Resources/Helper/DataCacheHelper.resx
 delete mode 100644 Timeline/Resources/Messages.Designer.cs
 delete mode 100644 Timeline/Resources/Messages.resx
 delete mode 100644 Timeline/Resources/Models/Http/Common.Designer.cs
 delete mode 100644 Timeline/Resources/Models/Http/Common.resx
 delete mode 100644 Timeline/Resources/Models/Http/Exception.Designer.cs
 delete mode 100644 Timeline/Resources/Models/Http/Exception.resx
 delete mode 100644 Timeline/Resources/Models/Validation/NameValidator.Designer.cs
 delete mode 100644 Timeline/Resources/Models/Validation/NameValidator.resx
 delete mode 100644 Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
 delete mode 100644 Timeline/Resources/Models/Validation/NicknameValidator.resx
 delete mode 100644 Timeline/Resources/Models/Validation/Validator.Designer.cs
 delete mode 100644 Timeline/Resources/Models/Validation/Validator.resx
 delete mode 100644 Timeline/Resources/Services/DataManager.Designer.cs
 delete mode 100644 Timeline/Resources/Services/DataManager.resx
 delete mode 100644 Timeline/Resources/Services/Exception.Designer.cs
 delete mode 100644 Timeline/Resources/Services/Exception.resx
 delete mode 100644 Timeline/Resources/Services/Exceptions.Designer.cs
 delete mode 100644 Timeline/Resources/Services/Exceptions.resx
 delete mode 100644 Timeline/Resources/Services/TimelineService.Designer.cs
 delete mode 100644 Timeline/Resources/Services/TimelineService.resx
 delete mode 100644 Timeline/Resources/Services/UserAvatarService.Designer.cs
 delete mode 100644 Timeline/Resources/Services/UserAvatarService.resx
 delete mode 100644 Timeline/Resources/Services/UserService.Designer.cs
 delete mode 100644 Timeline/Resources/Services/UserService.resx
 delete mode 100644 Timeline/Resources/Services/UserTokenService.Designer.cs
 delete mode 100644 Timeline/Resources/Services/UserTokenService.resx
 delete mode 100644 Timeline/Routes/ApiRoutePrefixConvention.cs
 delete mode 100644 Timeline/Routes/UnknownEndpointMiddleware.cs
 delete mode 100644 Timeline/Services/BadPasswordException.cs
 delete mode 100644 Timeline/Services/Clock.cs
 delete mode 100644 Timeline/Services/DataManager.cs
 delete mode 100644 Timeline/Services/DatabaseBackupService.cs
 delete mode 100644 Timeline/Services/DatabaseCorruptedException.cs
 delete mode 100644 Timeline/Services/ETagGenerator.cs
 delete mode 100644 Timeline/Services/EntityNames.cs
 delete mode 100644 Timeline/Services/Exceptions/EntityAlreadyExistError.cs
 delete mode 100644 Timeline/Services/Exceptions/EntityNotExistError.cs
 delete mode 100644 Timeline/Services/Exceptions/ExceptionMessageHelper.cs
 delete mode 100644 Timeline/Services/Exceptions/ImageException.cs
 delete mode 100644 Timeline/Services/Exceptions/TimelineNotExistException.cs
 delete mode 100644 Timeline/Services/Exceptions/TimelinePostNoDataException.cs
 delete mode 100644 Timeline/Services/Exceptions/TimelinePostNotExistException.cs
 delete mode 100644 Timeline/Services/Exceptions/UserNotExistException.cs
 delete mode 100644 Timeline/Services/ImageValidator.cs
 delete mode 100644 Timeline/Services/JwtUserTokenBadFormatException.cs
 delete mode 100644 Timeline/Services/PasswordBadFormatException.cs
 delete mode 100644 Timeline/Services/PasswordService.cs
 delete mode 100644 Timeline/Services/PathProvider.cs
 delete mode 100644 Timeline/Services/TimelineService.cs
 delete mode 100644 Timeline/Services/UserAvatarService.cs
 delete mode 100644 Timeline/Services/UserDeleteService.cs
 delete mode 100644 Timeline/Services/UserRoleConvert.cs
 delete mode 100644 Timeline/Services/UserService.cs
 delete mode 100644 Timeline/Services/UserTokenException.cs
 delete mode 100644 Timeline/Services/UserTokenManager.cs
 delete mode 100644 Timeline/Services/UserTokenService.cs
 delete mode 100644 Timeline/Startup.cs
 delete mode 100644 Timeline/Swagger/ApiConvention.cs
 delete mode 100644 Timeline/Swagger/ByteDataRequestOperationProcessor.cs
 delete mode 100644 Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
 delete mode 100644 Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
 delete mode 100644 Timeline/Timeline.csproj
 delete mode 100644 Timeline/appsettings.Development.json
 delete mode 100644 Timeline/appsettings.json
 delete mode 100644 Timeline/default-avatar.png
 delete mode 100644 Timeline/packages.lock.json
 delete mode 100644 azure-pipelines.yml
 delete mode 100644 tools/convert-eol.py

(limited to 'Timeline/ClientApp/src/app/views/login/index.tsx')

diff --git a/.dockerignore b/.dockerignore
index c0e737c7..8a68a387 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,21 +1,23 @@
-.git
-Timeline/ClientApp/.git
-
-ErrorResponseCodeGenerator/bin
-ErrorResponseCodeGenerator/obj
-Timeline/bin
-Timeline/obj
-Timeline.ErrorCodes/bin
-Timeline.ErrorCodes/obj
-Timeline.Tests/bin
-Timeline.Tests/obj
-Timeline/publish
-
-Timeline/ClientApp/dist
-Timeline/ClientApp/node_modules
-Timeline/ClientApp/.yarn/*
-!Timeline/ClientApp/.yarn/releases
-!Timeline/ClientApp/.yarn/plugins
-!Timeline/ClientApp/.yarn/cache
-!Timeline/ClientApp/.yarn/sdks
-!Timeline/ClientApp/.yarn/versions
+.git
+
+art-src
+
+BackEnd/.vs
+BackEnd/Timeline/bin
+BackEnd/Timeline/obj
+BackEnd/Timeline.ErrorCodes/bin
+BackEnd/Timeline.ErrorCodes/obj
+BackEnd/Timeline.ErrorCodes.CodeGenerator/bin
+BackEnd/Timeline.ErrorCodes.CodeGenerator/obj
+BackEnd/Timeline.Tests/bin
+BackEnd/Timeline.Tests/obj
+BackEnd/Timeline/publish
+
+FrontEnd/dist
+FrontEnd/node_modules
+FrontEnd/.yarn/*
+!FrontEnd/.yarn/releases
+!FrontEnd/.yarn/plugins
+!FrontEnd/.yarn/cache
+!FrontEnd/.yarn/sdks
+!FrontEnd/.yarn/versions
diff --git a/.github/workflows/back-ci.yaml b/.github/workflows/back-ci.yaml
index a7f4f2d0..5b4609f7 100644
--- a/.github/workflows/back-ci.yaml
+++ b/.github/workflows/back-ci.yaml
@@ -3,17 +3,21 @@ name: Back End CI
 on:
   push:
     branches: [master]
-    paths-ignore:
-      - "Timeline/ClientApp/**"
+    paths:
+      - "BackEnd/**"
   pull_request:
     branches: [master]
-    paths-ignore:
-      - "Timeline/ClientApp/**"
+    paths:
+      - "BackEnd/**"
 
 jobs:
   build:
     name: Build
     runs-on: ubuntu-latest
+    defaults:
+      run:
+        shell: bash
+        working-directory: BackEnd
     env:
       ASPNETCORE_ENVIRONMENT: "Development"
       NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
@@ -25,7 +29,7 @@ jobs:
         uses: actions/cache@v2
         with:
           path: ${{ env.NUGET_PACKAGES }}
-          key: nuget-${{ runner.os }}-${{ hashFiles('**/packages.lock.json') }}
+          key: nuget-${{ runner.os }}-${{ hashFiles('BackEnd/**/packages.lock.json') }}
           restore-keys: |
             nuget-${{ runner.os }}-
 
@@ -42,4 +46,4 @@ jobs:
         if: ${{ success() || failure() }}
         with:
           name: test-result
-          path: Timeline.Tests/TestResults/
+          path: BackEnd/Timeline.Tests/TestResults/
diff --git a/.github/workflows/front-ci.yaml b/.github/workflows/front-ci.yaml
index b549479a..93581dad 100644
--- a/.github/workflows/front-ci.yaml
+++ b/.github/workflows/front-ci.yaml
@@ -4,11 +4,11 @@ on:
   push:
     branches: [master]
     paths:
-      - "Timeline/ClientApp/**"
+      - "FrontEnd/**"
   pull_request:
     branches: [master]
     paths:
-      - "Timeline/ClientApp/**"
+      - "FrontEnd/**"
 
 jobs:
   build:
@@ -17,15 +17,15 @@ jobs:
     defaults:
       run:
         shell: bash
-        working-directory: Timeline/ClientApp
+        working-directory: FrontEnd
 
     steps:
       - uses: actions/checkout@v2
 
-      - name: Use Node.js 14
+      - name: Use Node.js 15
         uses: actions/setup-node@v1
         with:
-          node-version: "14"
+          node-version: "15"
 
       - name: Restore Packages
         run: yarn
@@ -40,4 +40,4 @@ jobs:
         uses: actions/upload-artifact@v2
         with:
           name: dist
-          path: Timeline/ClientApp/dist/
+          path: FrontEnd/dist/
diff --git a/.vscode/settings.json b/.vscode/settings.json
index f65e4358..7550c6fa 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,5 @@
-{
-    "yaml.schemas": {
-        "https://json.schemastore.org/github-workflow": "/.github/workflows"
-    }
+{
+    "yaml.schemas": {
+        "https://json.schemastore.org/github-workflow": "/.github/workflows"
+    }
 }
\ No newline at end of file
diff --git a/BackEnd/Directory.Build.props b/BackEnd/Directory.Build.props
new file mode 100644
index 00000000..5030ba17
--- /dev/null
+++ b/BackEnd/Directory.Build.props
@@ -0,0 +1,6 @@
+<Project>
+  <PropertyGroup>
+    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
+    <DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
+  </PropertyGroup>
+</Project>
diff --git a/BackEnd/Nuget.Config b/BackEnd/Nuget.Config
new file mode 100644
index 00000000..e219de2b
--- /dev/null
+++ b/BackEnd/Nuget.Config
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <clear />
+    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
+  </packageSources>
+</configuration>
diff --git a/BackEnd/Timeline.ErrorCodes.CodeGenerator/Program.cs b/BackEnd/Timeline.ErrorCodes.CodeGenerator/Program.cs
new file mode 100644
index 00000000..84ab5908
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes.CodeGenerator/Program.cs
@@ -0,0 +1,77 @@
+﻿using System;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+
+namespace Timeline.ErrorCodes.CodeGenerator
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            string Indent(int n)
+            {
+                const string indent = "    ";
+                return string.Concat(Enumerable.Repeat(indent, n));
+            }
+
+            StringBuilder code = new StringBuilder();
+
+            code.AppendLine("using static Timeline.Resources.Messages;");
+            code.AppendLine();
+            code.AppendLine("namespace Timeline.Models.Http");
+            code.AppendLine("{");
+
+            int depth = 1;
+
+            void RecursiveAddErrorCode(Type type, bool root)
+            {
+                code.AppendLine($"{Indent(depth)}public static class {(root ? "ErrorResponse" : type.Name)}");
+                code.AppendLine($"{Indent(depth)}{{");
+
+                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
+                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
+                {
+                    var path = type.FullName.Replace("+", ".").Replace("Timeline.Models.Http.ErrorCodes.", "") + "." + field.Name;
+
+                    code.AppendLine($"{Indent(depth + 1)}public static CommonResponse {field.Name}(params object?[] formatArgs)");
+                    code.AppendLine($"{Indent(depth + 1)}{{");
+                    code.AppendLine($"{Indent(depth + 2)}return new CommonResponse({"ErrorCodes." + path}, string.Format({path.Replace(".", "_")}, formatArgs));");
+                    code.AppendLine($"{Indent(depth + 1)}}}");
+                    code.AppendLine();
+                    code.AppendLine($"{Indent(depth + 1)}public static CommonResponse CustomMessage_{field.Name}(string message, params object?[] formatArgs)");
+                    code.AppendLine($"{Indent(depth + 1)}{{");
+                    code.AppendLine($"{Indent(depth + 2)}return new CommonResponse({"ErrorCodes." + path}, string.Format(message, formatArgs));");
+                    code.AppendLine($"{Indent(depth + 1)}}}");
+                    code.AppendLine();
+                }
+
+                depth += 1;
+
+                foreach (var nestedType in type.GetNestedTypes())
+                {
+                    RecursiveAddErrorCode(nestedType, false);
+                }
+
+                depth -= 1;
+
+                code.AppendLine($"{Indent(depth)}}}");
+                code.AppendLine();
+            }
+
+            RecursiveAddErrorCode(typeof(Timeline.Models.Http.ErrorCodes), true);
+
+            code.AppendLine("}");
+
+            var generatedCode = code.ToString();
+
+            Console.WriteLine(generatedCode);
+
+            TextCopy.ClipboardService.SetText(generatedCode);
+            var oldColor = Console.ForegroundColor;
+            Console.ForegroundColor = ConsoleColor.Green;
+            Console.WriteLine("Code has copied to clipboard!");
+            Console.ForegroundColor = oldColor;
+        }
+    }
+}
diff --git a/BackEnd/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj b/BackEnd/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
new file mode 100644
index 00000000..c8eb97f3
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
@@ -0,0 +1,16 @@
+﻿<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="TextCopy" Version="4.2.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Timeline.ErrorCodes\Timeline.ErrorCodes.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/BackEnd/Timeline.ErrorCodes.CodeGenerator/packages.lock.json b/BackEnd/Timeline.ErrorCodes.CodeGenerator/packages.lock.json
new file mode 100644
index 00000000..69cfee1e
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes.CodeGenerator/packages.lock.json
@@ -0,0 +1,24 @@
+{
+  "version": 1,
+  "dependencies": {
+    ".NETCoreApp,Version=v3.1": {
+      "TextCopy": {
+        "type": "Direct",
+        "requested": "[4.2.0, )",
+        "resolved": "4.2.0",
+        "contentHash": "NY2UAFIjBJj+3aABP5tyO6ooEdkJxIGtwRNqvMQKLmyIeZiyGvM4XYbkKNntyQlhyFhhfBww05C3D/0DdimfaQ==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.4"
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.4",
+        "contentHash": "AceHamXNKDMDwIoZqEoApLp8s3935wSC3VXrPaRWa0wWOaEcYdDlo1nWQ1zLiezoDmpJzV7FqDm53E0Ty/hEMg=="
+      },
+      "timeline.errorcodes": {
+        "type": "Project"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/BackEnd/Timeline.ErrorCodes/ErrorCodes.cs b/BackEnd/Timeline.ErrorCodes/ErrorCodes.cs
new file mode 100644
index 00000000..91e0c1fd
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes/ErrorCodes.cs
@@ -0,0 +1,66 @@
+﻿namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// All error code constants.
+    /// </summary>
+    /// <remarks>
+    /// Format: 1bbbccdd
+    /// </remarks>
+    public static class ErrorCodes
+    {
+        public static class Common
+        {
+            public const int InvalidModel = 1_000_0001;
+            public const int Forbid = 1_000_0002;
+            public const int UnknownEndpoint = 1_000_0003;
+
+            public static class Header
+            {
+                public const int IfNonMatch_BadFormat = 1_000_01_01;
+            }
+
+            public static class Content
+            {
+                public const int TooBig = 1_000_11_01;
+            }
+        }
+
+        public static class UserCommon
+        {
+            public const int NotExist = 1_001_0001;
+        }
+
+        public static class TokenController
+        {
+            public const int Create_BadCredential = 1_101_01_01;
+            public const int Verify_BadFormat = 1_101_02_01;
+            public const int Verify_UserNotExist = 1_101_02_02;
+            public const int Verify_OldVersion = 1_101_02_03;
+            public const int Verify_TimeExpired = 1_101_02_04;
+        }
+
+        public static class UserController
+        {
+            public const int UsernameConflict = 1_102_01_01;
+            public const int ChangePassword_BadOldPassword = 1_102_02_01;
+        }
+
+        public static class UserAvatar
+        {
+            public const int BadFormat_CantDecode = 1_103_00_01;
+            public const int BadFormat_UnmatchedFormat = 1_103_00_02;
+            public const int BadFormat_BadSize = 1_103_00_03;
+        }
+
+        public static class TimelineController
+        {
+            public const int NameConflict = 1_104_01_01;
+            public const int NotExist = 1_104_02_01;
+            public const int MemberPut_NotExist = 1_104_03_01;
+            public const int QueryRelateNotExist = 1_104_04_01;
+            public const int PostNotExist = 1_104_05_01;
+            public const int PostNoData = 1_104_05_02;
+        }
+    }
+}
+
diff --git a/BackEnd/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj b/BackEnd/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
new file mode 100644
index 00000000..01ca2568
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
@@ -0,0 +1,7 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+</Project>
diff --git a/BackEnd/Timeline.ErrorCodes/packages.lock.json b/BackEnd/Timeline.ErrorCodes/packages.lock.json
new file mode 100644
index 00000000..dabf86bc
--- /dev/null
+++ b/BackEnd/Timeline.ErrorCodes/packages.lock.json
@@ -0,0 +1,6 @@
+{
+  "version": 1,
+  "dependencies": {
+    ".NETCoreApp,Version=v3.1": {}
+  }
+}
\ No newline at end of file
diff --git a/BackEnd/Timeline.Tests/ErrorCodeTest.cs b/BackEnd/Timeline.Tests/ErrorCodeTest.cs
new file mode 100644
index 00000000..258ebf4e
--- /dev/null
+++ b/BackEnd/Timeline.Tests/ErrorCodeTest.cs
@@ -0,0 +1,53 @@
+﻿using FluentAssertions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using Timeline.Models.Http;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Timeline.Tests
+{
+    public class ErrorCodeTest
+    {
+        private readonly ITestOutputHelper _output;
+
+        public ErrorCodeTest(ITestOutputHelper output)
+        {
+            _output = output;
+        }
+
+        [Fact]
+        public void ShouldWork()
+        {
+            var errorCodes = new Dictionary<int, string>();
+
+            void RecursiveCheckErrorCode(Type type)
+            {
+                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
+                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
+                {
+                    var name = type.FullName + "." + field.Name;
+                    var value = (int)field.GetRawConstantValue();
+                    _output.WriteLine($"Find error code {name} , value is {value}.");
+
+                    value.Should().BeInRange(1000_0000, 9999_9999, "Error code should have exactly 8 digits.");
+
+                    errorCodes.Should().NotContainKey(value,
+                        "identical error codes are found and conflict paths are {0} and {1}",
+                        name, errorCodes.GetValueOrDefault(value));
+
+                    errorCodes.Add(value, name);
+                }
+
+                foreach (var nestedType in type.GetNestedTypes())
+                {
+                    RecursiveCheckErrorCode(nestedType);
+                }
+            }
+
+            RecursiveCheckErrorCode(typeof(ErrorCodes));
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/GlobalSuppressions.cs b/BackEnd/Timeline.Tests/GlobalSuppressions.cs
new file mode 100644
index 00000000..0f873033
--- /dev/null
+++ b/BackEnd/Timeline.Tests/GlobalSuppressions.cs
@@ -0,0 +1,16 @@
+﻿// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project.
+// Project-level suppressions either have no target or are given
+// a specific target and scoped to a namespace, type, member, etc.
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "This is not a UI application.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Tests name have underscores.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Test may catch all exceptions.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1034:Nested types should not be visible", Justification = "Test classes can be nested.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "This is redundant.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1063:Implement IDisposable Correctly", Justification = "Test classes do not need to implement it that way.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA1816:Dispose methods should call SuppressFinalize", Justification = "Test classes do not need to implement it that way.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2234:Pass system uri objects instead of strings", Justification = "I really don't understand this rule.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Globalization", "CA1303:Do not pass literals as localized parameters", Justification = "Tests do not need make strings resources.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1054:Uri parameters should not be strings", Justification = "That's unnecessary.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Uri properties should not be strings", Justification = "That's unnecessary.")]
diff --git a/BackEnd/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs b/BackEnd/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
new file mode 100644
index 00000000..b78309c0
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
@@ -0,0 +1,16 @@
+﻿using FluentAssertions;
+using FluentAssertions.Primitives;
+using FluentAssertions.Specialized;
+using System;
+using System.Threading.Tasks;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class AsyncFunctionAssertionsExtensions
+    {
+        public static async Task<AndConstraint<ObjectAssertions>> ThrowAsync(this AsyncFunctionAssertions assertions, Type exceptionType, string because = "", params object[] becauseArgs)
+        {
+            return (await assertions.ThrowAsync<Exception>(because, becauseArgs)).Which.Should().BeAssignableTo(exceptionType);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/CacheTestHelper.cs b/BackEnd/Timeline.Tests/Helpers/CacheTestHelper.cs
new file mode 100644
index 00000000..b3709a28
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/CacheTestHelper.cs
@@ -0,0 +1,64 @@
+﻿using FluentAssertions;
+using System;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class CacheTestHelper
+    {
+        public static async Task TestCache(HttpClient client, string getUrl)
+        {
+            EntityTagHeaderValue eTag;
+            {
+                var res = await client.GetAsync(getUrl);
+                res.Should().HaveStatusCode(200);
+                var cacheControlHeader = res.Headers.CacheControl;
+                cacheControlHeader.NoCache.Should().BeTrue();
+                cacheControlHeader.NoStore.Should().BeFalse();
+                cacheControlHeader.Private.Should().BeTrue();
+                cacheControlHeader.Public.Should().BeFalse();
+                cacheControlHeader.MustRevalidate.Should().BeTrue();
+                cacheControlHeader.MaxAge.Should().NotBeNull().And.Be(TimeSpan.FromDays(14));
+                eTag = res.Headers.ETag;
+            }
+
+            {
+                using var request = new HttpRequestMessage()
+                {
+                    RequestUri = new Uri(client.BaseAddress, getUrl),
+                    Method = HttpMethod.Get,
+                };
+                request.Headers.TryAddWithoutValidation("If-None-Match", "\"dsdfd");
+                var res = await client.SendAsync(request);
+                res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
+                    .And.HaveCommonBody(ErrorCodes.Common.Header.IfNonMatch_BadFormat);
+            }
+
+            {
+                using var request = new HttpRequestMessage()
+                {
+                    RequestUri = new Uri(client.BaseAddress, getUrl),
+                    Method = HttpMethod.Get,
+                };
+                request.Headers.TryAddWithoutValidation("If-None-Match", "\"aaa\"");
+                var res = await client.SendAsync(request);
+                res.Should().HaveStatusCode(HttpStatusCode.OK);
+            }
+
+            {
+                using var request = new HttpRequestMessage()
+                {
+                    RequestUri = new Uri(client.BaseAddress, getUrl),
+                    Method = HttpMethod.Get,
+                };
+                request.Headers.Add("If-None-Match", eTag.ToString());
+                var res = await client.SendAsync(request);
+                res.Should().HaveStatusCode(HttpStatusCode.NotModified);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/HttpClientExtensions.cs b/BackEnd/Timeline.Tests/Helpers/HttpClientExtensions.cs
new file mode 100644
index 00000000..6513bbe7
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/HttpClientExtensions.cs
@@ -0,0 +1,51 @@
+﻿using Newtonsoft.Json;
+using System;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Net.Mime;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class HttpClientExtensions
+    {
+        public static Task<HttpResponseMessage> PatchAsJsonAsync<T>(this HttpClient client, string url, T body)
+        {
+            return client.PatchAsJsonAsync(new Uri(url, UriKind.RelativeOrAbsolute), body);
+        }
+
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
+        public static Task<HttpResponseMessage> PatchAsJsonAsync<T>(this HttpClient client, Uri url, T body)
+        {
+            return client.PatchAsync(url, new StringContent(
+                JsonConvert.SerializeObject(body), Encoding.UTF8, MediaTypeNames.Application.Json));
+        }
+
+        public static Task<HttpResponseMessage> PutByteArrayAsync(this HttpClient client, string url, byte[] body, string mimeType)
+        {
+            return client.PutByteArrayAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType);
+        }
+
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
+        public static Task<HttpResponseMessage> PutByteArrayAsync(this HttpClient client, Uri url, byte[] body, string mimeType)
+        {
+            var content = new ByteArrayContent(body);
+            content.Headers.ContentLength = body.Length;
+            content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
+            return client.PutAsync(url, content);
+        }
+
+        public static Task<HttpResponseMessage> PutStringAsync(this HttpClient client, string url, string body, string mimeType = null)
+        {
+            return client.PutStringAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType);
+        }
+
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
+        public static Task<HttpResponseMessage> PutStringAsync(this HttpClient client, Uri url, string body, string mimeType = null)
+        {
+            var content = new StringContent(body, Encoding.UTF8, mimeType ?? MediaTypeNames.Text.Plain);
+            return client.PutAsync(url, content);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/HttpResponseExtensions.cs b/BackEnd/Timeline.Tests/Helpers/HttpResponseExtensions.cs
new file mode 100644
index 00000000..2bd497f1
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/HttpResponseExtensions.cs
@@ -0,0 +1,35 @@
+﻿using System.Net.Http;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+using Timeline.Models.Converters;
+using Timeline.Models.Http;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class HttpResponseExtensions
+    {
+        public static JsonSerializerOptions JsonSerializerOptions { get; }
+
+        static HttpResponseExtensions()
+        {
+            JsonSerializerOptions = new JsonSerializerOptions
+            {
+                PropertyNamingPolicy = JsonNamingPolicy.CamelCase
+            };
+            JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
+            JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
+        }
+
+        public static async Task<T> ReadBodyAsJsonAsync<T>(this HttpResponseMessage response)
+        {
+            var stream = await response.Content.ReadAsStreamAsync();
+            return await JsonSerializer.DeserializeAsync<T>(stream, JsonSerializerOptions);
+        }
+
+        public static Task<CommonResponse> ReadBodyAsCommonResponseAsync(this HttpResponseMessage response)
+        {
+            return response.ReadBodyAsJsonAsync<CommonResponse>();
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/ImageHelper.cs b/BackEnd/Timeline.Tests/Helpers/ImageHelper.cs
new file mode 100644
index 00000000..9bed0917
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/ImageHelper.cs
@@ -0,0 +1,26 @@
+﻿using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats;
+using SixLabors.ImageSharp.PixelFormats;
+using System.IO;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class ImageHelper
+    {
+        public static byte[] CreatePngWithSize(int width, int height)
+        {
+            using var image = new Image<Rgba32>(width, height);
+            using var stream = new MemoryStream();
+            image.SaveAsPng(stream);
+            return stream.ToArray();
+        }
+
+        public static byte[] CreateImageWithSize(int width, int height, IImageFormat format)
+        {
+            using var image = new Image<Rgba32>(width, height);
+            using var stream = new MemoryStream();
+            image.Save(stream, format);
+            return stream.ToArray();
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/ParameterInfoAssertions.cs b/BackEnd/Timeline.Tests/Helpers/ParameterInfoAssertions.cs
new file mode 100644
index 00000000..d3e5a41e
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/ParameterInfoAssertions.cs
@@ -0,0 +1,60 @@
+﻿using FluentAssertions;
+using FluentAssertions.Execution;
+using FluentAssertions.Formatting;
+using FluentAssertions.Primitives;
+using System;
+using System.Reflection;
+
+namespace Timeline.Tests.Helpers
+{
+    public class ParameterInfoValueFormatter : IValueFormatter
+    {
+        public bool CanHandle(object value)
+        {
+            return value is ParameterInfo;
+        }
+
+        public string Format(object value, FormattingContext context, FormatChild formatChild)
+        {
+            var param = (ParameterInfo)value;
+            return $"{param.Member.DeclaringType.FullName}.{param.Member.Name}#{param.Name}";
+        }
+    }
+
+    public class ParameterInfoAssertions : ReferenceTypeAssertions<ParameterInfo, ParameterInfoAssertions>
+    {
+        static ParameterInfoAssertions()
+        {
+            Formatter.AddFormatter(new ParameterInfoValueFormatter());
+        }
+
+        public ParameterInfoAssertions(ParameterInfo parameterInfo)
+        {
+            Subject = parameterInfo;
+        }
+
+        protected override string Identifier => "parameter";
+
+        public AndWhichConstraint<ParameterInfoAssertions, TAttribute> BeDecoratedWith<TAttribute>(string because = "", params object[] becauseArgs)
+            where TAttribute : Attribute
+        {
+            var attribute = Subject.GetCustomAttribute<TAttribute>(false);
+
+            Execute.Assertion
+                .BecauseOf(because, becauseArgs)
+                .ForCondition(attribute != null)
+                .FailWith("Expected {0} {1} to be decorated with {2}{reason}, but that attribute was not found.",
+                Identifier, Subject, typeof(TAttribute).FullName);
+
+            return new AndWhichConstraint<ParameterInfoAssertions, TAttribute>(this, attribute);
+        }
+    }
+
+    public static class ParameterInfoAssertionExtensions
+    {
+        public static ParameterInfoAssertions Should(this ParameterInfo parameterInfo)
+        {
+            return new ParameterInfoAssertions(parameterInfo);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/ReflectionHelper.cs b/BackEnd/Timeline.Tests/Helpers/ReflectionHelper.cs
new file mode 100644
index 00000000..3f6036e3
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/ReflectionHelper.cs
@@ -0,0 +1,13 @@
+﻿using System.Linq;
+using System.Reflection;
+
+namespace Timeline.Tests.Helpers
+{
+    public static class ReflectionHelper
+    {
+        public static ParameterInfo GetParameter(this MethodInfo methodInfo, string name)
+        {
+            return methodInfo.GetParameters().Where(p => p.Name == name).Single();
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/ResponseAssertions.cs b/BackEnd/Timeline.Tests/Helpers/ResponseAssertions.cs
new file mode 100644
index 00000000..024732f5
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/ResponseAssertions.cs
@@ -0,0 +1,172 @@
+﻿using FluentAssertions;
+using FluentAssertions.Execution;
+using FluentAssertions.Formatting;
+using FluentAssertions.Primitives;
+using System;
+using System.Globalization;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using Timeline.Models.Converters;
+using Timeline.Models.Http;
+
+namespace Timeline.Tests.Helpers
+{
+    public class HttpResponseMessageValueFormatter : IValueFormatter
+    {
+        public bool CanHandle(object value)
+        {
+            return value is HttpResponseMessage;
+        }
+
+        public string Format(object value, FormattingContext context, FormatChild formatChild)
+        {
+            string newline = context.UseLineBreaks ? Environment.NewLine : "";
+            string padding = new string('\t', context.Depth);
+
+            var res = (HttpResponseMessage)value;
+
+            var builder = new StringBuilder();
+            builder.Append($"{newline}{padding} Status Code: {res.StatusCode} ; Body: ");
+
+            try
+            {
+                var task = res.Content.ReadAsStringAsync();
+                task.Wait();
+                var body = task.Result;
+                if (body.Length > 40)
+                {
+                    body = body[0..40] + " ...";
+                }
+                builder.Append(body);
+            }
+            catch (AggregateException)
+            {
+                builder.Append("NOT A STRING.");
+            }
+
+            return builder.ToString();
+        }
+    }
+
+    public class HttpResponseMessageAssertions
+            : ReferenceTypeAssertions<HttpResponseMessage, HttpResponseMessageAssertions>
+    {
+        static HttpResponseMessageAssertions()
+        {
+            Formatter.AddFormatter(new HttpResponseMessageValueFormatter());
+        }
+
+        public HttpResponseMessageAssertions(HttpResponseMessage instance)
+        {
+            Subject = instance;
+        }
+
+        protected override string Identifier => "HttpResponseMessage";
+
+        public AndConstraint<HttpResponseMessageAssertions> HaveStatusCode(int expected, string because = "", params object[] becauseArgs)
+        {
+            return HaveStatusCode((HttpStatusCode)expected, because, becauseArgs);
+        }
+
+        public AndConstraint<HttpResponseMessageAssertions> HaveStatusCode(HttpStatusCode expected, string because = "", params object[] becauseArgs)
+        {
+            Execute.Assertion.BecauseOf(because, becauseArgs)
+                .ForCondition(Subject.StatusCode == expected)
+                .FailWith("Expected status code of {context:HttpResponseMessage} to be {0}{reason}, but found {1}.", expected, Subject.StatusCode);
+            return new AndConstraint<HttpResponseMessageAssertions>(this);
+        }
+
+        public AndWhichConstraint<HttpResponseMessageAssertions, T> HaveJsonBody<T>(string because = "", params object[] becauseArgs)
+        {
+            var a = Execute.Assertion.BecauseOf(because, becauseArgs);
+            string body;
+            try
+            {
+                var task = Subject.Content.ReadAsStringAsync();
+                task.Wait();
+                body = task.Result;
+            }
+            catch (AggregateException e)
+            {
+                a.FailWith("Expected response body of {context:HttpResponseMessage} to be json string{reason}, but failed to read it or it was not a string. Exception is {0}.", e.InnerExceptions);
+                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
+            }
+
+
+            try
+            {
+                var options = new JsonSerializerOptions
+                {
+                    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
+                };
+                options.Converters.Add(new JsonStringEnumConverter());
+                options.Converters.Add(new JsonDateTimeConverter());
+
+                var result = JsonSerializer.Deserialize<T>(body, options);
+
+                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, result);
+            }
+            catch (JsonException e)
+            {
+                a.FailWith("Expected response body of {context:HttpResponseMessage} to be json string{reason}, but failed to deserialize it. Exception is {0}.", e);
+                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
+            }
+        }
+    }
+
+    public static class AssertionResponseExtensions
+    {
+        public static HttpResponseMessageAssertions Should(this HttpResponseMessage instance)
+        {
+            return new HttpResponseMessageAssertions(instance);
+        }
+
+        public static AndWhichConstraint<HttpResponseMessageAssertions, CommonResponse> HaveCommonBody(this HttpResponseMessageAssertions assertions, string because = "", params object[] becauseArgs)
+        {
+            return assertions.HaveJsonBody<CommonResponse>(because, becauseArgs);
+        }
+
+        public static void HaveCommonBody(this HttpResponseMessageAssertions assertions, int code, string message = null, params object[] messageArgs)
+        {
+            message = string.IsNullOrEmpty(message) ? "" : ", " + string.Format(CultureInfo.CurrentCulture, message, messageArgs);
+            var body = assertions.HaveCommonBody("Response body should be CommonResponse{0}", message).Which;
+            body.Code.Should().Be(code, "Response body code is not the specified one{0}", message);
+        }
+
+        public static AndWhichConstraint<HttpResponseMessageAssertions, CommonDataResponse<TData>> HaveCommonDataBody<TData>(this HttpResponseMessageAssertions assertions, string because = "", params object[] becauseArgs)
+        {
+            return assertions.HaveJsonBody<CommonDataResponse<TData>>(because, becauseArgs);
+        }
+
+        public static void BePut(this HttpResponseMessageAssertions assertions, bool create, string because = "", params object[] becauseArgs)
+        {
+            var body = assertions.HaveStatusCode(create ? 201 : 200, because, becauseArgs)
+                .And.HaveJsonBody<CommonPutResponse>(because, becauseArgs)
+                .Which;
+            body.Code.Should().Be(0);
+            body.Data.Create.Should().Be(create);
+        }
+
+        public static void BeDelete(this HttpResponseMessageAssertions assertions, bool delete, string because = "", params object[] becauseArgs)
+        {
+            var body = assertions.HaveStatusCode(200, because, becauseArgs)
+                .And.HaveJsonBody<CommonDeleteResponse>(because, becauseArgs)
+                .Which;
+            body.Code.Should().Be(0);
+            body.Data.Delete.Should().Be(delete);
+        }
+
+        public static void BeInvalidModel(this HttpResponseMessageAssertions assertions, string message = null)
+        {
+            message = string.IsNullOrEmpty(message) ? "" : ", " + message;
+            assertions.HaveStatusCode(400, "Invalid Model Error must have 400 status code{0}", message)
+                .And.HaveCommonBody("Invalid Model Error must have CommonResponse body{0}", message)
+                .Which.Code.Should().Be(ErrorCodes.Common.InvalidModel,
+                "Invalid Model Error must have code {0} in body{1}",
+                ErrorCodes.Common.InvalidModel, message);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/TestApplication.cs b/BackEnd/Timeline.Tests/Helpers/TestApplication.cs
new file mode 100644
index 00000000..684ffe2c
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/TestApplication.cs
@@ -0,0 +1,72 @@
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.TestHost;
+using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using Timeline.Configs;
+using Timeline.Entities;
+using Xunit;
+
+namespace Timeline.Tests.Helpers
+{
+    public class TestApplication : IAsyncLifetime
+    {
+        public TestDatabase Database { get; }
+
+        public IHost Host { get; private set; }
+
+        public string WorkDir { get; private set; }
+
+        public TestApplication()
+        {
+            Database = new TestDatabase(false);
+        }
+
+        public async Task InitializeAsync()
+        {
+            await Database.InitializeAsync();
+
+            WorkDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
+            Directory.CreateDirectory(WorkDir);
+
+            Host = await Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
+                .ConfigureAppConfiguration((context, config) =>
+                {
+                    config.AddInMemoryCollection(new Dictionary<string, string>
+                    {
+                        [ApplicationConfiguration.UseMockFrontEndKey] = "true",
+                        ["WorkDir"] = WorkDir
+                    });
+                })
+                .ConfigureServices(services =>
+                {
+                    services.AddDbContext<DatabaseContext>(options =>
+                    {
+                        options.UseSqlite(Database.Connection);
+                    });
+                })
+                .ConfigureWebHost(webBuilder =>
+                {
+                    webBuilder
+                        .UseTestServer()
+                        .UseStartup<Startup>();
+                })
+                .StartAsync();
+        }
+
+        public async Task DisposeAsync()
+        {
+            await Host.StopAsync();
+            Host.Dispose();
+
+            Directory.Delete(WorkDir, true);
+
+            await Database.DisposeAsync();
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/TestClock.cs b/BackEnd/Timeline.Tests/Helpers/TestClock.cs
new file mode 100644
index 00000000..34adb245
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/TestClock.cs
@@ -0,0 +1,43 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Services;
+
+namespace Timeline.Tests.Helpers
+{
+    public class TestClock : IClock
+    {
+        private DateTime? _currentTime;
+
+        public DateTime GetCurrentTime()
+        {
+            return _currentTime ?? DateTime.UtcNow;
+        }
+
+        public void SetCurrentTime(DateTime? mockTime)
+        {
+            _currentTime = mockTime;
+        }
+
+        public DateTime SetMockCurrentTime()
+        {
+            var time = new DateTime(3000, 1, 1, 1, 1, 1, DateTimeKind.Utc);
+            _currentTime = time;
+            return time;
+        }
+
+        public DateTime ForwardCurrentTime()
+        {
+            return ForwardCurrentTime(TimeSpan.FromDays(1));
+        }
+
+        public DateTime ForwardCurrentTime(TimeSpan timeSpan)
+        {
+            if (_currentTime == null)
+                return SetMockCurrentTime();
+            _currentTime += timeSpan;
+            return _currentTime.Value;
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs b/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs
new file mode 100644
index 00000000..f0c26180
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Helpers/TestDatabase.cs
@@ -0,0 +1,76 @@
+﻿using Microsoft.Data.Sqlite;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging.Abstractions;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Migrations;
+using Timeline.Models;
+using Timeline.Services;
+using Xunit;
+
+namespace Timeline.Tests.Helpers
+{
+    public class TestDatabase : IAsyncLifetime
+    {
+        private readonly bool _createUser;
+
+        public TestDatabase(bool createUser = true)
+        {
+            _createUser = createUser;
+            Connection = new SqliteConnection("Data Source=:memory:;");
+        }
+
+        public async Task InitializeAsync()
+        {
+            await Connection.OpenAsync();
+
+            using (var context = CreateContext())
+            {
+                await context.Database.EnsureCreatedAsync();
+                context.JwtToken.Add(new JwtTokenEntity
+                {
+                    Key = JwtTokenGenerateHelper.GenerateKey()
+                });
+                await context.SaveChangesAsync();
+
+                if (_createUser)
+                {
+                    var passwordService = new PasswordService();
+                    var userService = new UserService(NullLogger<UserService>.Instance, context, passwordService, new Clock());
+
+                    await userService.CreateUser(new User
+                    {
+                        Username = "admin",
+                        Password = "adminpw",
+                        Administrator = true,
+                        Nickname = "administrator"
+                    });
+
+                    await userService.CreateUser(new User
+                    {
+                        Username = "user",
+                        Password = "userpw",
+                        Administrator = false,
+                        Nickname = "imuser"
+                    });
+                }
+            }
+        }
+
+        public async Task DisposeAsync()
+        {
+            await Connection.CloseAsync();
+            await Connection.DisposeAsync();
+        }
+
+        public SqliteConnection Connection { get; }
+
+        public DatabaseContext CreateContext()
+        {
+            var options = new DbContextOptionsBuilder<DatabaseContext>()
+                .UseSqlite(Connection).Options;
+
+            return new DatabaseContext(options);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/AuthorizationTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
new file mode 100644
index 00000000..38071394
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
@@ -0,0 +1,52 @@
+using FluentAssertions;
+using System.Net;
+using System.Threading.Tasks;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class AuthorizationTest : IntegratedTestBase
+    {
+        private const string BaseUrl = "testing/auth/";
+        private const string AuthorizeUrl = BaseUrl + "Authorize";
+        private const string UserUrl = BaseUrl + "User";
+        private const string AdminUrl = BaseUrl + "Admin";
+
+        [Fact]
+        public async Task UnauthenticationTest()
+        {
+            using var client = await CreateDefaultClient();
+            var response = await client.GetAsync(AuthorizeUrl);
+            response.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+        }
+
+        [Fact]
+        public async Task AuthenticationTest()
+        {
+            using var client = await CreateClientAsUser();
+            var response = await client.GetAsync(AuthorizeUrl);
+            response.Should().HaveStatusCode(HttpStatusCode.OK);
+        }
+
+        [Fact]
+        public async Task UserAuthorizationTest()
+        {
+            using var client = await CreateClientAsUser();
+            var response1 = await client.GetAsync(UserUrl);
+            response1.Should().HaveStatusCode(HttpStatusCode.OK);
+            var response2 = await client.GetAsync(AdminUrl);
+            response2.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        [Fact]
+        public async Task AdminAuthorizationTest()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var response1 = await client.GetAsync(UserUrl);
+            response1.Should().HaveStatusCode(HttpStatusCode.OK);
+            var response2 = await client.GetAsync(AdminUrl);
+            response2.Should().HaveStatusCode(HttpStatusCode.OK);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/FrontEndTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/FrontEndTest.cs
new file mode 100644
index 00000000..39a6e545
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/FrontEndTest.cs
@@ -0,0 +1,29 @@
+﻿using FluentAssertions;
+using System.Net.Mime;
+using System.Threading.Tasks;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class FrontEndTest : IntegratedTestBase
+    {
+        [Fact]
+        public async Task Index()
+        {
+            using var client = await CreateDefaultClient(false);
+            var res = await client.GetAsync("index.html");
+            res.Should().HaveStatusCode(200);
+            res.Content.Headers.ContentType.MediaType.Should().Be(MediaTypeNames.Text.Html);
+        }
+
+        [Fact]
+        public async Task Fallback()
+        {
+            using var client = await CreateDefaultClient(false);
+            var res = await client.GetAsync("aaaaaaaaaaaaaaa");
+            res.Should().HaveStatusCode(200);
+            res.Content.Headers.ContentType.MediaType.Should().Be(MediaTypeNames.Text.Html);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs b/BackEnd/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
new file mode 100644
index 00000000..7cf27297
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
@@ -0,0 +1,164 @@
+﻿using FluentAssertions;
+using Microsoft.AspNetCore.TestHost;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Net.Http;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+using Timeline.Models;
+using Timeline.Models.Converters;
+using Timeline.Models.Http;
+using Timeline.Services;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public abstract class IntegratedTestBase : IAsyncLifetime
+    {
+        protected TestApplication TestApp { get; }
+
+        public IReadOnlyList<UserInfo> UserInfos { get; private set; }
+
+        private readonly int _userCount;
+
+        public IntegratedTestBase() : this(1)
+        {
+
+        }
+
+        public IntegratedTestBase(int userCount)
+        {
+            if (userCount < 0)
+                throw new ArgumentOutOfRangeException(nameof(userCount), userCount, "User count can't be negative.");
+
+            _userCount = userCount;
+
+            TestApp = new TestApplication();
+        }
+
+        protected virtual Task OnInitializeAsync()
+        {
+            return Task.CompletedTask;
+        }
+
+        protected virtual Task OnDisposeAsync()
+        {
+            return Task.CompletedTask;
+        }
+
+        protected virtual void OnDispose()
+        {
+
+        }
+
+        public async Task InitializeAsync()
+        {
+            await TestApp.InitializeAsync();
+
+            using (var scope = TestApp.Host.Services.CreateScope())
+            {
+                var users = new List<User>()
+                {
+                    new User
+                    {
+                        Username = "admin",
+                        Password = "adminpw",
+                        Administrator = true,
+                        Nickname = "administrator"
+                    }
+                };
+
+                for (int i = 1; i <= _userCount; i++)
+                {
+                    users.Add(new User
+                    {
+                        Username = $"user{i}",
+                        Password = $"user{i}pw",
+                        Administrator = false,
+                        Nickname = $"imuser{i}"
+                    });
+                }
+
+                var userInfoList = new List<UserInfo>();
+
+                var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
+                foreach (var user in users)
+                {
+                    await userService.CreateUser(user);
+                }
+
+                using var client = await CreateDefaultClient();
+                var options = new JsonSerializerOptions
+                {
+                    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
+                };
+                options.Converters.Add(new JsonStringEnumConverter());
+                options.Converters.Add(new JsonDateTimeConverter());
+                foreach (var user in users)
+                {
+                    var s = await client.GetStringAsync($"users/{user.Username}");
+                    userInfoList.Add(JsonSerializer.Deserialize<UserInfo>(s, options));
+                }
+
+                UserInfos = userInfoList;
+            }
+
+            await OnInitializeAsync();
+        }
+
+        public async Task DisposeAsync()
+        {
+            await OnDisposeAsync();
+            OnDispose();
+            await TestApp.DisposeAsync();
+        }
+
+        public Task<HttpClient> CreateDefaultClient(bool setApiBase = true)
+        {
+            var client = TestApp.Host.GetTestServer().CreateClient();
+            if (setApiBase)
+            {
+                client.BaseAddress = new Uri(client.BaseAddress, "api/");
+            }
+            return Task.FromResult(client);
+        }
+
+        public async Task<HttpClient> CreateClientWithCredential(string username, string password, bool setApiBase = true)
+        {
+            var client = TestApp.Host.GetTestServer().CreateClient();
+            if (setApiBase)
+            {
+                client.BaseAddress = new Uri(client.BaseAddress, "api/");
+            }
+            var response = await client.PostAsJsonAsync("token/create",
+                new CreateTokenRequest { Username = username, Password = password });
+            var token = response.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<CreateTokenResponse>().Which.Token;
+            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
+            return client;
+        }
+
+        public Task<HttpClient> CreateClientAs(int userNumber, bool setApiBase = true)
+        {
+            if (userNumber < 0)
+                return CreateDefaultClient(setApiBase);
+            if (userNumber == 0)
+                return CreateClientWithCredential("admin", "adminpw", setApiBase);
+            else
+                return CreateClientWithCredential($"user{userNumber}", $"user{userNumber}pw", setApiBase);
+        }
+
+        public Task<HttpClient> CreateClientAsAdministrator(bool setApiBase = true)
+        {
+            return CreateClientAs(0, setApiBase);
+        }
+
+        public Task<HttpClient> CreateClientAsUser(bool setApiBase = true)
+        {
+            return CreateClientAs(1, setApiBase);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs
new file mode 100644
index 00000000..ec46b96a
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs
@@ -0,0 +1,1523 @@
+﻿using FluentAssertions;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats.Png;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Models;
+using Timeline.Models.Http;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public static class TimelineHelper
+    {
+        public static TimelinePostContentInfo TextPostContent(string text)
+        {
+            return new TimelinePostContentInfo
+            {
+                Type = "text",
+                Text = text
+            };
+        }
+
+        public static TimelinePostCreateRequest TextPostCreateRequest(string text, DateTime? time = null)
+        {
+            return new TimelinePostCreateRequest
+            {
+                Content = new TimelinePostCreateRequestContent
+                {
+                    Type = "text",
+                    Text = text
+                },
+                Time = time
+            };
+        }
+    }
+
+    public class TimelineTest : IntegratedTestBase
+    {
+        public TimelineTest() : base(3)
+        {
+        }
+
+        protected override async Task OnInitializeAsync()
+        {
+            await CreateTestTimelines();
+        }
+
+        private List<TimelineInfo> _testTimelines;
+
+        private async Task CreateTestTimelines()
+        {
+            _testTimelines = new List<TimelineInfo>();
+            for (int i = 0; i <= 3; i++)
+            {
+                var client = await CreateClientAs(i);
+                var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = $"t{i}" });
+                var timelineInfo = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which;
+                _testTimelines.Add(timelineInfo);
+            }
+        }
+
+        private static string CalculateUrlTail(string subpath, ICollection<KeyValuePair<string, string>> query)
+        {
+            StringBuilder result = new StringBuilder();
+            if (subpath != null)
+            {
+                if (!subpath.StartsWith("/", StringComparison.OrdinalIgnoreCase))
+                    result.Append('/');
+                result.Append(subpath);
+            }
+
+            if (query != null && query.Count != 0)
+            {
+                result.Append('?');
+                foreach (var (key, value, index) in query.Select((pair, index) => (pair.Key, pair.Value, index)))
+                {
+                    result.Append(WebUtility.UrlEncode(key));
+                    result.Append('=');
+                    result.Append(WebUtility.UrlEncode(value));
+                    if (index != query.Count - 1)
+                        result.Append('&');
+                }
+            }
+
+            return result.ToString();
+        }
+
+        private static string GeneratePersonalTimelineUrl(int id, string subpath = null, ICollection<KeyValuePair<string, string>> query = null)
+        {
+            return $"timelines/@{(id == 0 ? "admin" : ("user" + id))}{CalculateUrlTail(subpath, query)}";
+        }
+
+        private static string GenerateOrdinaryTimelineUrl(int id, string subpath = null, ICollection<KeyValuePair<string, string>> query = null)
+        {
+            return $"timelines/t{id}{CalculateUrlTail(subpath, query)}";
+        }
+
+        public delegate string TimelineUrlGenerator(int userId, string subpath = null, ICollection<KeyValuePair<string, string>> query = null);
+
+        public static IEnumerable<object[]> TimelineUrlGeneratorData()
+        {
+            yield return new[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl) };
+            yield return new[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl) };
+        }
+
+        private static string GeneratePersonalTimelineUrlByName(string name, string subpath = null)
+        {
+            return $"timelines/@{name}{(subpath == null ? "" : "/" + subpath)}";
+        }
+
+        private static string GenerateOrdinaryTimelineUrlByName(string name, string subpath = null)
+        {
+            return $"timelines/{name}{(subpath == null ? "" : "/" + subpath)}";
+        }
+
+        public static IEnumerable<object[]> TimelineUrlByNameGeneratorData()
+        {
+            yield return new[] { new Func<string, string, string>(GeneratePersonalTimelineUrlByName) };
+            yield return new[] { new Func<string, string, string>(GenerateOrdinaryTimelineUrlByName) };
+        }
+
+        [Fact]
+        public async Task TimelineGet_Should_Work()
+        {
+            using var client = await CreateDefaultClient();
+            {
+                var res = await client.GetAsync("timelines/@user1");
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which;
+                body.Owner.Should().BeEquivalentTo(UserInfos[1]);
+                body.Visibility.Should().Be(TimelineVisibility.Register);
+                body.Description.Should().Be("");
+                body.Members.Should().NotBeNull().And.BeEmpty();
+                var links = body._links;
+                links.Should().NotBeNull();
+                links.Self.Should().EndWith("timelines/@user1");
+                links.Posts.Should().EndWith("timelines/@user1/posts");
+            }
+
+            {
+                var res = await client.GetAsync("timelines/t1");
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which;
+                body.Owner.Should().BeEquivalentTo(UserInfos[1]);
+                body.Visibility.Should().Be(TimelineVisibility.Register);
+                body.Description.Should().Be("");
+                body.Members.Should().NotBeNull().And.BeEmpty();
+                var links = body._links;
+                links.Should().NotBeNull();
+                links.Self.Should().EndWith("timelines/t1");
+                links.Posts.Should().EndWith("timelines/t1/posts");
+            }
+        }
+
+        [Fact]
+        public async Task TimelineList()
+        {
+            TimelineInfo user1Timeline;
+
+            var client = await CreateDefaultClient();
+
+            {
+                var res = await client.GetAsync("timelines/@user1");
+                user1Timeline = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which;
+            }
+
+            {
+                var testResult = new List<TimelineInfo>();
+                testResult.Add(user1Timeline);
+                testResult.AddRange(_testTimelines);
+
+                var res = await client.GetAsync("timelines");
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<List<TimelineInfo>>()
+                    .Which.Should().BeEquivalentTo(testResult);
+            }
+        }
+
+        [Fact]
+        public async Task TimelineList_WithQuery()
+        {
+            var testResultRelate = new List<TimelineInfo>();
+            var testResultOwn = new List<TimelineInfo>();
+            var testResultJoin = new List<TimelineInfo>();
+            var testResultOwnPrivate = new List<TimelineInfo>();
+            var testResultRelatePublic = new List<TimelineInfo>();
+            var testResultRelateRegister = new List<TimelineInfo>();
+            var testResultJoinPrivate = new List<TimelineInfo>();
+            var testResultPublic = new List<TimelineInfo>();
+
+            {
+                var client = await CreateClientAsUser();
+
+                {
+                    var res = await client.PutAsync("timelines/@user1/members/user3", null);
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PutAsync("timelines/t1/members/user3", null);
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/@user1", new TimelinePatchRequest { Visibility = TimelineVisibility.Public });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/t1", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/@user1");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultJoin.Add(timeline);
+                    testResultRelatePublic.Add(timeline);
+                    testResultPublic.Add(timeline);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/t1");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultJoin.Add(timeline);
+                    testResultRelateRegister.Add(timeline);
+                }
+            }
+
+            {
+                var client = await CreateClientAs(2);
+
+                {
+                    var res = await client.PutAsync("timelines/@user2/members/user3", null);
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PutAsync("timelines/t2/members/user3", null);
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/@user2", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/t2", new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/@user2");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultJoin.Add(timeline);
+                    testResultRelateRegister.Add(timeline);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/t2");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultJoin.Add(timeline);
+                    testResultJoinPrivate.Add(timeline);
+                }
+            }
+
+            {
+                var client = await CreateClientAs(3);
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/@user3", new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.PatchAsJsonAsync("timelines/t3", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
+                    res.Should().HaveStatusCode(200);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/@user3");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultOwn.Add(timeline);
+                    testResultOwnPrivate.Add(timeline);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/t3");
+                    var timeline = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                    testResultRelate.Add(timeline);
+                    testResultOwn.Add(timeline);
+                    testResultRelateRegister.Add(timeline);
+                }
+            }
+
+            {
+                var client = await CreateClientAs(3);
+                {
+                    var res = await client.GetAsync("timelines?relate=user3");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultRelate);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines?relate=user3&relateType=own");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultOwn);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines?relate=user3&visibility=public");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultRelatePublic);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines?relate=user3&visibility=register");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultRelateRegister);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines?relate=user3&relateType=join&visibility=private");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultJoinPrivate);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines?relate=user3&relateType=own&visibility=private");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultOwnPrivate);
+                }
+            }
+
+            {
+                var client = await CreateDefaultClient();
+                {
+                    var res = await client.GetAsync("timelines?visibility=public");
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<List<TimelineInfo>>()
+                        .Which;
+                    body.Should().BeEquivalentTo(testResultPublic);
+                }
+            }
+        }
+
+        [Fact]
+        public async Task TimelineList_InvalidModel()
+        {
+            var client = await CreateClientAsUser();
+
+            {
+                var res = await client.GetAsync("timelines?relate=us!!");
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.GetAsync("timelines?relateType=aaa");
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.GetAsync("timelines?visibility=aaa");
+                res.Should().BeInvalidModel();
+            }
+        }
+
+        [Fact]
+        public async Task TimelineCreate_Should_Work()
+        {
+            {
+                using var client = await CreateDefaultClient();
+                var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
+                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+            }
+
+            using (var client = await CreateClientAsUser())
+            {
+                {
+                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "!!!" });
+                    res.Should().BeInvalidModel();
+                }
+
+                TimelineInfo timelineInfo;
+                {
+                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
+                    timelineInfo = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>().Which;
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/aaa");
+                    res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelineInfo>()
+                        .Which.Should().BeEquivalentTo(timelineInfo);
+                }
+
+                {
+                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
+                    res.Should().HaveStatusCode(400)
+                        .And.HaveCommonBody(ErrorCodes.TimelineController.NameConflict);
+                }
+            }
+        }
+
+        [Fact]
+        public async Task TimelineDelete_Should_Work()
+        {
+            {
+                using var client = await CreateDefaultClient();
+                var res = await client.DeleteAsync("timelines/t1");
+                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+            }
+
+            {
+                using var client = await CreateClientAs(2);
+                var res = await client.DeleteAsync("timelines/t1");
+                res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+            }
+
+            {
+                using var client = await CreateClientAsAdministrator();
+
+                {
+                    var res = await client.DeleteAsync("timelines/!!!");
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.DeleteAsync("timelines/t2");
+                    res.Should().BeDelete(true);
+                }
+
+                {
+                    var res = await client.DeleteAsync("timelines/t2");
+                    res.Should().BeDelete(false);
+                }
+            }
+
+            {
+                using var client = await CreateClientAs(1);
+
+                {
+                    var res = await client.DeleteAsync("timelines/!!!");
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.DeleteAsync("timelines/t1");
+                    res.Should().BeDelete(true);
+                }
+
+                {
+                    var res = await client.DeleteAsync("timelines/t1");
+                    res.Should().HaveStatusCode(400);
+                }
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlByNameGeneratorData))]
+        public async Task InvalidModel_BadName(Func<string, string, string> generator)
+        {
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.GetAsync(generator("aaa!!!", null));
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.PatchAsJsonAsync(generator("aaa!!!", null), new TimelinePatchRequest { });
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.PutAsync(generator("aaa!!!", "members/user1"), null);
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.DeleteAsync(generator("aaa!!!", "members/user1"));
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.GetAsync(generator("aaa!!!", "posts"));
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.PostAsJsonAsync(generator("aaa!!!", "posts"), TimelineHelper.TextPostCreateRequest("aaa"));
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.DeleteAsync(generator("aaa!!!", "posts/123"));
+                res.Should().BeInvalidModel();
+            }
+            {
+                var res = await client.GetAsync(generator("aaa!!!", "posts/123/data"));
+                res.Should().BeInvalidModel();
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlByNameGeneratorData))]
+        public async Task Ordinary_NotFound(Func<string, string, string> generator)
+        {
+            var errorCode = generator == GenerateOrdinaryTimelineUrlByName ? ErrorCodes.TimelineController.NotExist : ErrorCodes.UserCommon.NotExist;
+
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.GetAsync(generator("notexist", null));
+                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.PatchAsJsonAsync(generator("notexist", null), new TimelinePatchRequest { });
+                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.PutAsync(generator("notexist", "members/user1"), null);
+                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.DeleteAsync(generator("notexist", "members/user1"));
+                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.GetAsync(generator("notexist", "posts"));
+                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.PostAsJsonAsync(generator("notexist", "posts"), TimelineHelper.TextPostCreateRequest("aaa"));
+                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.DeleteAsync(generator("notexist", "posts/123"));
+                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
+            }
+            {
+                var res = await client.GetAsync(generator("notexist", "posts/123/data"));
+                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Description_Should_Work(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            async Task AssertDescription(string description)
+            {
+                var res = await client.GetAsync(generator(1, null));
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Description.Should().Be(description);
+            }
+
+            const string mockDescription = "haha";
+
+            await AssertDescription("");
+            {
+                var res = await client.PatchAsJsonAsync(generator(1, null),
+                    new TimelinePatchRequest { Description = mockDescription });
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be(mockDescription);
+                await AssertDescription(mockDescription);
+            }
+            {
+                var res = await client.PatchAsJsonAsync(generator(1, null),
+                    new TimelinePatchRequest { Description = null });
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be(mockDescription);
+                await AssertDescription(mockDescription);
+            }
+            {
+                var res = await client.PatchAsJsonAsync(generator(1, null),
+                    new TimelinePatchRequest { Description = "" });
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be("");
+                await AssertDescription("");
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Member_Should_Work(TimelineUrlGenerator generator)
+        {
+            var getUrl = generator(1, null);
+            using var client = await CreateClientAsUser();
+
+            async Task AssertMembers(IList<UserInfo> members)
+            {
+                var res = await client.GetAsync(getUrl);
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Members.Should().NotBeNull().And.BeEquivalentTo(members);
+            }
+
+            async Task AssertEmptyMembers()
+            {
+                var res = await client.GetAsync(getUrl);
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Members.Should().NotBeNull().And.BeEmpty();
+            }
+
+            await AssertEmptyMembers();
+            {
+                var res = await client.PutAsync(generator(1, "members/usernotexist"), null);
+                res.Should().HaveStatusCode(400)
+                    .And.HaveCommonBody(ErrorCodes.TimelineController.MemberPut_NotExist);
+            }
+            await AssertEmptyMembers();
+            {
+                var res = await client.PutAsync(generator(1, "members/user2"), null);
+                res.Should().HaveStatusCode(200);
+            }
+            await AssertMembers(new List<UserInfo> { UserInfos[2] });
+            {
+                var res = await client.DeleteAsync(generator(1, "members/user2"));
+                res.Should().BeDelete(true);
+            }
+            await AssertEmptyMembers();
+            {
+                var res = await client.DeleteAsync(generator(1, "members/aaa"));
+                res.Should().BeDelete(false);
+            }
+            await AssertEmptyMembers();
+        }
+
+        public static IEnumerable<object[]> Permission_Timeline_Data()
+        {
+            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), -1, 200, 401, 401, 401, 401 };
+            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), 1, 200, 200, 403, 200, 403 };
+            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), 0, 200, 200, 200, 200, 200 };
+            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), -1, 200, 401, 401, 401, 401 };
+            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), 1, 200, 200, 403, 200, 403 };
+            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), 0, 200, 200, 200, 200, 200 };
+        }
+
+        [Theory]
+        [MemberData(nameof(Permission_Timeline_Data))]
+        public async Task Permission_Timeline(TimelineUrlGenerator generator, int userNumber, int get, int opPatchUser, int opPatchAdmin, int opMemberUser, int opMemberAdmin)
+        {
+            using var client = await CreateClientAs(userNumber);
+            {
+                var res = await client.GetAsync("timelines/t1");
+                res.Should().HaveStatusCode(get);
+            }
+
+            {
+                var res = await client.PatchAsJsonAsync(generator(1, null), new TimelinePatchRequest { Description = "hahaha" });
+                res.Should().HaveStatusCode(opPatchUser);
+            }
+
+            {
+                var res = await client.PatchAsJsonAsync(generator(0, null), new TimelinePatchRequest { Description = "hahaha" });
+                res.Should().HaveStatusCode(opPatchAdmin);
+            }
+
+            {
+                var res = await client.PutAsync(generator(1, "members/user2"), null);
+                res.Should().HaveStatusCode(opMemberUser);
+            }
+
+            {
+                var res = await client.DeleteAsync(generator(1, "members/user2"));
+                res.Should().HaveStatusCode(opMemberUser);
+            }
+
+            {
+                var res = await client.PutAsync(generator(0, "members/user2"), null);
+                res.Should().HaveStatusCode(opMemberAdmin);
+            }
+
+            {
+                var res = await client.DeleteAsync(generator(0, "members/user2"));
+                res.Should().HaveStatusCode(opMemberAdmin);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Visibility_Test(TimelineUrlGenerator generator)
+        {
+            var userUrl = generator(1, "posts");
+            var adminUrl = generator(0, "posts");
+            {
+
+                using var client = await CreateClientAsUser();
+                using var content = new StringContent(@"{""visibility"":""abcdefg""}", System.Text.Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json);
+                var res = await client.PatchAsync(generator(1, null), content);
+                res.Should().BeInvalidModel();
+            }
+            { // default visibility is registered
+                {
+                    using var client = await CreateDefaultClient();
+                    var res = await client.GetAsync(userUrl);
+                    res.Should().HaveStatusCode(403);
+                }
+
+                {
+                    using var client = await CreateClientAsUser();
+                    var res = await client.GetAsync(adminUrl);
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+
+            { // change visibility to public
+                {
+                    using var client = await CreateClientAsUser();
+                    var res = await client.PatchAsJsonAsync(generator(1, null),
+                        new TimelinePatchRequest { Visibility = TimelineVisibility.Public });
+                    res.Should().HaveStatusCode(200);
+                }
+                {
+                    using var client = await CreateDefaultClient();
+                    var res = await client.GetAsync(userUrl);
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+
+            { // change visibility to private
+                {
+                    using var client = await CreateClientAsAdministrator();
+                    {
+                        var res = await client.PatchAsJsonAsync(generator(1, null),
+                        new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
+                        res.Should().HaveStatusCode(200);
+                    }
+                    {
+                        var res = await client.PatchAsJsonAsync(generator(0, null),
+                            new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
+                        res.Should().HaveStatusCode(200);
+                    }
+                }
+                {
+                    using var client = await CreateDefaultClient();
+                    var res = await client.GetAsync(userUrl);
+                    res.Should().HaveStatusCode(403);
+                }
+                { // user can't read admin's
+                    using var client = await CreateClientAsUser();
+                    var res = await client.GetAsync(adminUrl);
+                    res.Should().HaveStatusCode(403);
+                }
+                { // admin can read user's
+                    using var client = await CreateClientAsAdministrator();
+                    var res = await client.GetAsync(userUrl);
+                    res.Should().HaveStatusCode(200);
+                }
+                { // add member
+                    using var client = await CreateClientAsAdministrator();
+                    var res = await client.PutAsync(generator(0, "members/user1"), null);
+                    res.Should().HaveStatusCode(200);
+                }
+                { // now user can read admin's
+                    using var client = await CreateClientAsUser();
+                    var res = await client.GetAsync(adminUrl);
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Permission_Post_Create(TimelineUrlGenerator generator)
+        {
+            using (var client = await CreateClientAsUser())
+            {
+                var res = await client.PutAsync(generator(1, "members/user2"), null);
+                res.Should().HaveStatusCode(200);
+            }
+
+            using (var client = await CreateDefaultClient())
+            {
+                { // no auth should get 401
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest("aaa"));
+                    res.Should().HaveStatusCode(401);
+                }
+            }
+
+            using (var client = await CreateClientAsUser())
+            {
+                { // post self's
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest("aaa"));
+                    res.Should().HaveStatusCode(200);
+                }
+                { // post other not as a member should get 403
+                    var res = await client.PostAsJsonAsync(generator(0, "posts"),
+                        TimelineHelper.TextPostCreateRequest("aaa"));
+                    res.Should().HaveStatusCode(403);
+                }
+            }
+
+            using (var client = await CreateClientAsAdministrator())
+            {
+                { // post as admin
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest("aaa"));
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+
+            using (var client = await CreateClientAs(2))
+            {
+                { // post as member
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest("aaa"));
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Permission_Post_Delete(TimelineUrlGenerator generator)
+        {
+            async Task<long> CreatePost(int userNumber)
+            {
+                using var client = await CreateClientAs(userNumber);
+                var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                    TimelineHelper.TextPostCreateRequest("aaa"));
+                return res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>()
+                    .Which.Id;
+            }
+
+            using (var client = await CreateClientAsUser())
+            {
+                {
+                    var res = await client.PutAsync(generator(1, "members/user2"), null);
+                    res.Should().HaveStatusCode(200);
+                }
+                {
+                    var res = await client.PutAsync(generator(1, "members/user3"), null);
+                    res.Should().HaveStatusCode(200);
+                }
+            }
+
+            { // no auth should get 401
+                using var client = await CreateDefaultClient();
+                var res = await client.DeleteAsync(generator(1, "posts/12"));
+                res.Should().HaveStatusCode(401);
+            }
+
+            { // self can delete self
+                var postId = await CreatePost(1);
+                using var client = await CreateClientAsUser();
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().HaveStatusCode(200);
+            }
+
+            { // admin can delete any
+                var postId = await CreatePost(1);
+                using var client = await CreateClientAsAdministrator();
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().HaveStatusCode(200);
+            }
+
+            { // owner can delete other
+                var postId = await CreatePost(2);
+                using var client = await CreateClientAsUser();
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().HaveStatusCode(200);
+            }
+
+            { // author can delete self
+                var postId = await CreatePost(2);
+                using var client = await CreateClientAs(2);
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().HaveStatusCode(200);
+            }
+
+            { // otherwise is forbidden
+                var postId = await CreatePost(2);
+                using var client = await CreateClientAs(3);
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().HaveStatusCode(403);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task TextPost_ShouldWork(TimelineUrlGenerator generator)
+        {
+            {
+                using var client = await CreateClientAsUser();
+                {
+                    var res = await client.GetAsync(generator(1, "posts"));
+                    res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo[]>()
+                        .Which.Should().NotBeNull().And.BeEmpty();
+                }
+                {
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest(null));
+                    res.Should().BeInvalidModel();
+                }
+                const string mockContent = "aaa";
+                TimelinePostInfo createRes;
+                {
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest(mockContent));
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo>()
+                        .Which;
+                    body.Should().NotBeNull();
+                    body.Content.Should().BeEquivalentTo(TimelineHelper.TextPostContent(mockContent));
+                    body.Author.Should().BeEquivalentTo(UserInfos[1]);
+                    body.Deleted.Should().BeFalse();
+                    createRes = body;
+                }
+                {
+                    var res = await client.GetAsync(generator(1, "posts"));
+                    res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo[]>()
+                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes);
+                }
+                const string mockContent2 = "bbb";
+                var mockTime2 = DateTime.UtcNow.AddDays(-1);
+                TimelinePostInfo createRes2;
+                {
+                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                        TimelineHelper.TextPostCreateRequest(mockContent2, mockTime2));
+                    var body = res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo>()
+                        .Which;
+                    body.Should().NotBeNull();
+                    body.Content.Should().BeEquivalentTo(TimelineHelper.TextPostContent(mockContent2));
+                    body.Author.Should().BeEquivalentTo(UserInfos[1]);
+                    body.Time.Should().BeCloseTo(mockTime2, 1000);
+                    body.Deleted.Should().BeFalse();
+                    createRes2 = body;
+                }
+                {
+                    var res = await client.GetAsync(generator(1, "posts"));
+                    res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo[]>()
+                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes, createRes2);
+                }
+                {
+                    var res = await client.DeleteAsync(generator(1, $"posts/{createRes.Id}"));
+                    res.Should().BeDelete(true);
+                }
+                {
+                    var res = await client.DeleteAsync(generator(1, $"posts/{createRes.Id}"));
+                    res.Should().BeDelete(false);
+                }
+                {
+                    var res = await client.DeleteAsync(generator(1, "posts/30000"));
+                    res.Should().BeDelete(false);
+                }
+                {
+                    var res = await client.GetAsync(generator(1, "posts"));
+                    res.Should().HaveStatusCode(200)
+                        .And.HaveJsonBody<TimelinePostInfo[]>()
+                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes2);
+                }
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task GetPost_Should_Ordered(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            async Task<long> CreatePost(DateTime time)
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                    TimelineHelper.TextPostCreateRequest("aaa", time));
+                return res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>()
+                    .Which.Id;
+            }
+
+            var now = DateTime.UtcNow;
+            var id0 = await CreatePost(now.AddDays(1));
+            var id1 = await CreatePost(now.AddDays(-1));
+            var id2 = await CreatePost(now);
+
+            {
+                var res = await client.GetAsync(generator(1, "posts"));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo[]>()
+                    .Which.Select(p => p.Id).Should().Equal(id1, id2, id0);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task CreatePost_InvalidModel(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = null });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = null } });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "hahaha" } });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "text", Text = null } });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = null } });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                // image not base64
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = "!!!" } });
+                res.Should().BeInvalidModel();
+            }
+
+            {
+                // image base64 not image
+                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = Convert.ToBase64String(new byte[] { 0x01, 0x02, 0x03 }) } });
+                res.Should().BeInvalidModel();
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task ImagePost_ShouldWork(TimelineUrlGenerator generator)
+        {
+            var imageData = ImageHelper.CreatePngWithSize(100, 200);
+
+            long postId;
+            string postImageUrl;
+
+            void AssertPostContent(TimelinePostContentInfo content)
+            {
+                content.Type.Should().Be(TimelinePostContentTypes.Image);
+                content.Url.Should().EndWith(generator(1, $"posts/{postId}/data"));
+                content.Text.Should().Be(null);
+            }
+
+            using var client = await CreateClientAsUser();
+
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                    new TimelinePostCreateRequest
+                    {
+                        Content = new TimelinePostCreateRequestContent
+                        {
+                            Type = TimelinePostContentTypes.Image,
+                            Data = Convert.ToBase64String(imageData)
+                        }
+                    });
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>().Which;
+                postId = body.Id;
+                postImageUrl = body.Content.Url;
+                AssertPostContent(body.Content);
+            }
+
+            {
+                var res = await client.GetAsync(generator(1, "posts"));
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo[]>().Which;
+                body.Should().HaveCount(1);
+                var post = body[0];
+                post.Id.Should().Be(postId);
+                AssertPostContent(post.Content);
+            }
+
+            {
+                var res = await client.GetAsync(generator(1, $"posts/{postId}/data"));
+                res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
+                var data = await res.Content.ReadAsByteArrayAsync();
+                var image = Image.Load(data, out var format);
+                image.Width.Should().Be(100);
+                image.Height.Should().Be(200);
+                format.Name.Should().Be(PngFormat.Instance.Name);
+            }
+
+            {
+                await CacheTestHelper.TestCache(client, generator(1, $"posts/{postId}/data"));
+            }
+
+            {
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().BeDelete(true);
+            }
+
+            {
+                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
+                res.Should().BeDelete(false);
+            }
+
+            {
+                var res = await client.GetAsync(generator(1, "posts"));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo[]>()
+                    .Which.Should().BeEmpty();
+            }
+
+            {
+                using var scope = TestApp.Host.Services.CreateScope();
+                var database = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
+                var count = await database.Data.CountAsync();
+                count.Should().Be(0);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task ImagePost_400(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            {
+                var res = await client.GetAsync(generator(1, "posts/11234/data"));
+                res.Should().HaveStatusCode(404)
+                    .And.HaveCommonBody(ErrorCodes.TimelineController.PostNotExist);
+            }
+
+            long postId;
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                    TimelineHelper.TextPostCreateRequest("aaa"));
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>()
+                    .Which;
+                postId = body.Id;
+            }
+
+            {
+                var res = await client.GetAsync(generator(1, $"posts/{postId}/data"));
+                res.Should().HaveStatusCode(400)
+                    .And.HaveCommonBody(ErrorCodes.TimelineController.PostNoData);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Timeline_LastModified(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            DateTime lastModified;
+
+            {
+                var res = await client.GetAsync(generator(1));
+                lastModified = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.LastModified;
+            }
+
+            await Task.Delay(1000);
+
+            {
+                var res = await client.PatchAsJsonAsync(generator(1), new TimelinePatchRequest { Description = "123" });
+                lastModified = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.LastModified.Should().BeAfter(lastModified).And.Subject.Value;
+            }
+
+            {
+                var res = await client.GetAsync(generator(1));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.LastModified.Should().Be(lastModified);
+            }
+
+            await Task.Delay(1000);
+
+            {
+                var res = await client.PutAsync(generator(1, "members/user2"), null);
+                res.Should().HaveStatusCode(200);
+            }
+
+            {
+                var res = await client.GetAsync(generator(1));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.LastModified.Should().BeAfter(lastModified);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Post_ModifiedSince(TimelineUrlGenerator generator)
+        {
+            using var client = await CreateClientAsUser();
+
+            var postContentList = new List<string> { "a", "b", "c", "d" };
+            var posts = new List<TimelinePostInfo>();
+
+            foreach (var content in postContentList)
+            {
+                var res = await client.PostAsJsonAsync(generator(1, "posts"),
+                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
+                var post = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>().Which;
+                posts.Add(post);
+                await Task.Delay(1000);
+            }
+
+            {
+                var res = await client.DeleteAsync(generator(1, $"posts/{posts[2].Id}"));
+                res.Should().BeDelete(true);
+            }
+
+            {
+                var res = await client.GetAsync(generator(1, "posts",
+                    new Dictionary<string, string> { { "modifiedSince", posts[1].LastUpdated.ToString("s", CultureInfo.InvariantCulture) } }));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<List<TimelinePostInfo>>()
+                    .Which.Should().HaveCount(2)
+                    .And.Subject.Select(p => p.Content.Text).Should().Equal("b", "d");
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task PostList_IncludeDeleted(TimelineUrlGenerator urlGenerator)
+        {
+            using var client = await CreateClientAsUser();
+
+            var postContentList = new List<string> { "a", "b", "c", "d" };
+            var posts = new List<TimelinePostInfo>();
+
+            foreach (var content in postContentList)
+            {
+                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"),
+                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
+                posts.Add(res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>().Which);
+            }
+
+            foreach (var id in new long[] { posts[0].Id, posts[2].Id })
+            {
+                var res = await client.DeleteAsync(urlGenerator(1, $"posts/{id}"));
+                res.Should().BeDelete(true);
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1, "posts", new Dictionary<string, string> { ["includeDeleted"] = "true" }));
+                posts = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<List<TimelinePostInfo>>()
+                    .Which;
+                posts.Should().HaveCount(4);
+                posts.Select(p => p.Deleted).Should().Equal(true, false, true, false);
+                posts.Select(p => p.Content == null).Should().Equal(true, false, true, false);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Post_ModifiedSince_And_IncludeDeleted(TimelineUrlGenerator urlGenerator)
+        {
+            using var client = await CreateClientAsUser();
+
+            var postContentList = new List<string> { "a", "b", "c", "d" };
+            var posts = new List<TimelinePostInfo>();
+
+            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
+            {
+                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"),
+                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
+                var post = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelinePostInfo>().Which;
+                posts.Add(post);
+                await Task.Delay(1000);
+            }
+
+            {
+                var res = await client.DeleteAsync(urlGenerator(1, $"posts/{posts[2].Id}"));
+                res.Should().BeDelete(true);
+            }
+
+            {
+
+                var res = await client.GetAsync(urlGenerator(1, "posts",
+                    new Dictionary<string, string> {
+                        { "modifiedSince", posts[1].LastUpdated.ToString("s", CultureInfo.InvariantCulture) },
+                        { "includeDeleted", "true" }
+                    }));
+                posts = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<List<TimelinePostInfo>>()
+                    .Which;
+                posts.Should().HaveCount(3);
+                posts.Select(p => p.Deleted).Should().Equal(false, true, false);
+                posts.Select(p => p.Content == null).Should().Equal(false, true, false);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Timeline_Get_IfModifiedSince_And_CheckUniqueId(TimelineUrlGenerator urlGenerator)
+        {
+            using var client = await CreateClientAsUser();
+
+            DateTime lastModifiedTime;
+            TimelineInfo timeline;
+            string uniqueId;
+
+            {
+                var res = await client.GetAsync(urlGenerator(1));
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>().Which;
+                timeline = body;
+                lastModifiedTime = body.LastModified;
+                uniqueId = body.UniqueId;
+            }
+
+            {
+                using var req = new HttpRequestMessage
+                {
+                    RequestUri = new Uri(client.BaseAddress, urlGenerator(1)),
+                    Method = HttpMethod.Get,
+                };
+                req.Headers.IfModifiedSince = lastModifiedTime.AddSeconds(1);
+                var res = await client.SendAsync(req);
+                res.Should().HaveStatusCode(304);
+            }
+
+            {
+                using var req = new HttpRequestMessage
+                {
+                    RequestUri = new Uri(client.BaseAddress, urlGenerator(1)),
+                    Method = HttpMethod.Get,
+                };
+                req.Headers.IfModifiedSince = lastModifiedTime.AddSeconds(-1);
+                var res = await client.SendAsync(req);
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Should().BeEquivalentTo(timeline);
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1, null,
+                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) } }));
+                res.Should().HaveStatusCode(304);
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1, null,
+                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(-1).ToString("s", CultureInfo.InvariantCulture) } }));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Should().BeEquivalentTo(timeline);
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1, null,
+                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) },
+                        {"checkUniqueId", uniqueId } }));
+                res.Should().HaveStatusCode(304);
+            }
+
+            {
+                var testUniqueId = (uniqueId[0] == 'a' ? "b" : "a") + uniqueId[1..];
+                var res = await client.GetAsync(urlGenerator(1, null,
+                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) },
+                        {"checkUniqueId", testUniqueId } }));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Should().BeEquivalentTo(timeline);
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task Title(TimelineUrlGenerator urlGenerator)
+        {
+            using var client = await CreateClientAsUser();
+
+            {
+                var res = await client.GetAsync(urlGenerator(1));
+                var timeline = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which;
+                timeline.Title.Should().Be(timeline.Name);
+            }
+
+            {
+                var res = await client.PatchAsJsonAsync(urlGenerator(1), new TimelinePatchRequest { Title = "atitle" });
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Title.Should().Be("atitle");
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1));
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<TimelineInfo>()
+                    .Which.Title.Should().Be("atitle");
+            }
+        }
+
+        [Fact]
+        public async Task ChangeName()
+        {
+            {
+                using var client = await CreateDefaultClient();
+                var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "tttttttt" });
+                res.Should().HaveStatusCode(401);
+            }
+
+            {
+                using var client = await CreateClientAs(2);
+                var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "tttttttt" });
+                res.Should().HaveStatusCode(403);
+            }
+
+            using (var client = await CreateClientAsUser())
+            {
+                {
+                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "!!!", NewName = "tttttttt" });
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttt", NewName = "!!!!" });
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttttt", NewName = "tttttttt" });
+                    res.Should().HaveStatusCode(400).And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.TimelineController.NotExist);
+                }
+
+                {
+                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "newt" });
+                    res.Should().HaveStatusCode(200).And.HaveJsonBody<TimelineInfo>().Which.Name.Should().Be("newt");
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/t1");
+                    res.Should().HaveStatusCode(404);
+                }
+
+                {
+                    var res = await client.GetAsync("timelines/newt");
+                    res.Should().HaveStatusCode(200).And.HaveJsonBody<TimelineInfo>().Which.Name.Should().Be("newt");
+                }
+            }
+        }
+
+        [Theory]
+        [MemberData(nameof(TimelineUrlGeneratorData))]
+        public async Task PostDataETag(TimelineUrlGenerator urlGenerator)
+        {
+            using var client = await CreateClientAsUser();
+
+            long id;
+            string etag;
+
+            {
+                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"), new TimelinePostCreateRequest
+                {
+                    Content = new TimelinePostCreateRequestContent
+                    {
+                        Type = TimelinePostContentTypes.Image,
+                        Data = Convert.ToBase64String(ImageHelper.CreatePngWithSize(100, 50))
+                    }
+                });
+                res.Should().HaveStatusCode(200);
+                var body = await res.ReadBodyAsJsonAsync<TimelinePostInfo>();
+                body.Content.ETag.Should().NotBeNullOrEmpty();
+
+                id = body.Id;
+                etag = body.Content.ETag;
+            }
+
+            {
+                var res = await client.GetAsync(urlGenerator(1, $"posts/{id}/data"));
+                res.Should().HaveStatusCode(200);
+                res.Headers.ETag.Should().NotBeNull();
+                res.Headers.ETag.ToString().Should().Be(etag);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs
new file mode 100644
index 00000000..480d66cd
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs
@@ -0,0 +1,165 @@
+using FluentAssertions;
+using Microsoft.Extensions.DependencyInjection;
+using System.Collections.Generic;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Timeline.Models;
+using Timeline.Models.Http;
+using Timeline.Services;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class TokenTest : IntegratedTestBase
+    {
+        private const string CreateTokenUrl = "token/create";
+        private const string VerifyTokenUrl = "token/verify";
+
+        private static async Task<CreateTokenResponse> CreateUserTokenAsync(HttpClient client, string username, string password, int? expireOffset = null)
+        {
+            var response = await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest { Username = username, Password = password, Expire = expireOffset });
+            return response.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<CreateTokenResponse>().Which;
+        }
+
+        public static IEnumerable<object[]> CreateToken_InvalidModel_Data()
+        {
+            yield return new[] { null, "p", null };
+            yield return new[] { "u", null, null };
+            yield return new object[] { "u", "p", 2000 };
+            yield return new object[] { "u", "p", -1 };
+        }
+
+        [Theory]
+        [MemberData(nameof(CreateToken_InvalidModel_Data))]
+        public async Task CreateToken_InvalidModel(string username, string password, int expire)
+        {
+            using var client = await CreateDefaultClient();
+            (await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest
+            {
+                Username = username,
+                Password = password,
+                Expire = expire
+            })).Should().BeInvalidModel();
+        }
+
+        public static IEnumerable<object[]> CreateToken_UserCredential_Data()
+        {
+            yield return new[] { "usernotexist", "p" };
+            yield return new[] { "user1", "???" };
+        }
+
+        [Theory]
+        [MemberData(nameof(CreateToken_UserCredential_Data))]
+        public async void CreateToken_UserCredential(string username, string password)
+        {
+            using var client = await CreateDefaultClient();
+            var response = await client.PostAsJsonAsync(CreateTokenUrl,
+                new CreateTokenRequest { Username = username, Password = password });
+            response.Should().HaveStatusCode(400)
+                .And.HaveCommonBody()
+                .Which.Code.Should().Be(ErrorCodes.TokenController.Create_BadCredential);
+        }
+
+        [Fact]
+        public async Task CreateToken_Success()
+        {
+            using var client = await CreateDefaultClient();
+            var response = await client.PostAsJsonAsync(CreateTokenUrl,
+                new CreateTokenRequest { Username = "user1", Password = "user1pw" });
+            var body = response.Should().HaveStatusCode(200)
+               .And.HaveJsonBody<CreateTokenResponse>().Which;
+            body.Token.Should().NotBeNullOrWhiteSpace();
+            body.User.Should().BeEquivalentTo(UserInfos[1]);
+        }
+
+        [Fact]
+        public async Task VerifyToken_InvalidModel()
+        {
+            using var client = await CreateDefaultClient();
+            (await client.PostAsJsonAsync(VerifyTokenUrl,
+                new VerifyTokenRequest { Token = null })).Should().BeInvalidModel();
+        }
+
+        [Fact]
+        public async Task VerifyToken_BadFormat()
+        {
+            using var client = await CreateDefaultClient();
+            var response = await client.PostAsJsonAsync(VerifyTokenUrl,
+                new VerifyTokenRequest { Token = "bad token hahaha" });
+            response.Should().HaveStatusCode(400)
+                 .And.HaveCommonBody()
+                 .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_BadFormat);
+        }
+
+        [Fact]
+        public async Task VerifyToken_OldVersion()
+        {
+            using var client = await CreateDefaultClient();
+            var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
+
+            using (var scope = TestApp.Host.Services.CreateScope()) // UserService is scoped.
+            {
+                // create a user for test
+                var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
+                await userService.ModifyUser("user1", new User { Password = "user1pw" });
+            }
+
+            (await client.PostAsJsonAsync(VerifyTokenUrl,
+                new VerifyTokenRequest { Token = token }))
+                .Should().HaveStatusCode(400)
+                .And.HaveCommonBody()
+                .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_OldVersion);
+        }
+
+        [Fact]
+        public async Task VerifyToken_UserNotExist()
+        {
+            using var client = await CreateDefaultClient();
+            var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
+
+            using (var scope = TestApp.Host.Services.CreateScope()) // UserDeleteService is scoped.
+            {
+                var userService = scope.ServiceProvider.GetRequiredService<IUserDeleteService>();
+                await userService.DeleteUser("user1");
+            }
+
+            (await client.PostAsJsonAsync(VerifyTokenUrl,
+                new VerifyTokenRequest { Token = token }))
+                .Should().HaveStatusCode(400)
+                .And.HaveCommonBody()
+                .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_UserNotExist);
+        }
+
+        //[Fact]
+        //public async Task VerifyToken_Expired()
+        //{
+        //    using (var client = await CreateClientWithNoAuth())
+        //    {
+        //        // I can only control the token expired time but not current time
+        //        // because verify logic is encapsuled in other library.
+        //        var mockClock = _factory.GetTestClock();
+        //        mockClock.MockCurrentTime = DateTime.Now - TimeSpan.FromDays(2);
+        //        var token = (await client.CreateUserTokenAsync(MockUsers.UserUsername, MockUsers.UserPassword, 1)).Token;
+        //        var response = await client.PostAsJsonAsync(VerifyTokenUrl,
+        //            new VerifyTokenRequest { Token = token });
+        //        response.Should().HaveStatusCodeBadRequest()
+        //            .And.Should().HaveBodyAsCommonResponseWithCode(TokenController.ErrorCodes.Verify_Expired);
+        //        mockClock.MockCurrentTime = null;
+        //    }
+        //}
+
+        [Fact]
+        public async Task VerifyToken_Success()
+        {
+            using var client = await CreateDefaultClient();
+            var createTokenResult = await CreateUserTokenAsync(client, "user1", "user1pw");
+            var response = await client.PostAsJsonAsync(VerifyTokenUrl,
+                new VerifyTokenRequest { Token = createTokenResult.Token });
+            response.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<VerifyTokenResponse>()
+                .Which.User.Should().BeEquivalentTo(UserInfos[1]);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
new file mode 100644
index 00000000..732232e2
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
@@ -0,0 +1,21 @@
+﻿using FluentAssertions;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class UnknownEndpointTest : IntegratedTestBase
+    {
+        [Fact]
+        public async Task UnknownEndpoint()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.GetAsync("unknownEndpoint");
+            res.Should().HaveStatusCode(400)
+                .And.HaveCommonBody()
+                .Which.Code.Should().Be(ErrorCodes.Common.UnknownEndpoint);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
new file mode 100644
index 00000000..f2796005
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
@@ -0,0 +1,251 @@
+﻿using FluentAssertions;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.DependencyInjection;
+using SixLabors.ImageSharp.Formats;
+using SixLabors.ImageSharp.Formats.Gif;
+using SixLabors.ImageSharp.Formats.Jpeg;
+using SixLabors.ImageSharp.Formats.Png;
+using System.Collections.Generic;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Net.Mime;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+using Timeline.Services;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class UserAvatarTest : IntegratedTestBase
+    {
+        [Fact]
+        public async Task Test()
+        {
+            Avatar mockAvatar = new Avatar
+            {
+                Data = ImageHelper.CreatePngWithSize(100, 100),
+                Type = PngFormat.Instance.DefaultMimeType
+            };
+
+            using (var client = await CreateClientAsUser())
+            {
+                {
+                    var res = await client.GetAsync("users/usernotexist/avatar");
+                    res.Should().HaveStatusCode(404)
+                        .And.HaveCommonBody()
+                        .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
+                }
+
+                var env = TestApp.Host.Services.GetRequiredService<IWebHostEnvironment>();
+                var defaultAvatarData = await File.ReadAllBytesAsync(Path.Combine(env.ContentRootPath, "default-avatar.png"));
+
+                async Task GetReturnDefault(string username = "user1")
+                {
+                    var res = await client.GetAsync($"users/{username}/avatar");
+                    res.Should().HaveStatusCode(200);
+                    res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
+                    var body = await res.Content.ReadAsByteArrayAsync();
+                    body.Should().Equal(defaultAvatarData);
+                }
+
+                {
+                    var res = await client.GetAsync("users/user1/avatar");
+                    res.Should().HaveStatusCode(200);
+                    res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
+                    var body = await res.Content.ReadAsByteArrayAsync();
+                    body.Should().Equal(defaultAvatarData);
+                }
+
+                await CacheTestHelper.TestCache(client, "users/user1/avatar");
+
+                await GetReturnDefault("admin");
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
+                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
+                    content.Headers.ContentLength = 1;
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
+                    content.Headers.ContentLength = 0;
+                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", new[] { (byte)0x00 }, "image/notaccept");
+                    res.Should().HaveStatusCode(HttpStatusCode.UnsupportedMediaType);
+                }
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
+                    content.Headers.ContentLength = 1000 * 1000 * 11;
+                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Content.TooBig);
+                }
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
+                    content.Headers.ContentLength = 2;
+                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    using var content = new ByteArrayContent(new[] { (byte)0x00, (byte)0x01 });
+                    content.Headers.ContentLength = 1;
+                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
+                    var res = await client.PutAsync("users/user1/avatar", content);
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", new[] { (byte)0x00 }, "image/png");
+                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_CantDecode);
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, "image/jpeg");
+                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat);
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", ImageHelper.CreatePngWithSize(100, 200), "image/png");
+                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_BadSize);
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, mockAvatar.Type);
+                    res.Should().HaveStatusCode(HttpStatusCode.OK);
+
+                    var res2 = await client.GetAsync("users/user1/avatar");
+                    res2.Should().HaveStatusCode(200);
+                    res2.Content.Headers.ContentType.MediaType.Should().Be(mockAvatar.Type);
+                    var body = await res2.Content.ReadAsByteArrayAsync();
+                    body.Should().Equal(mockAvatar.Data);
+                }
+
+                IEnumerable<(string, IImageFormat)> formats = new (string, IImageFormat)[]
+                {
+                    ("image/jpeg", JpegFormat.Instance),
+                    ("image/gif", GifFormat.Instance),
+                    ("image/png", PngFormat.Instance),
+                };
+
+                foreach ((var mimeType, var format) in formats)
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", ImageHelper.CreateImageWithSize(100, 100, format), mimeType);
+                    res.Should().HaveStatusCode(HttpStatusCode.OK);
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/admin/avatar", new[] { (byte)0x00 }, "image/png");
+                    res.Should().HaveStatusCode(HttpStatusCode.Forbidden)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Forbid);
+                }
+
+                {
+                    var res = await client.DeleteAsync("users/admin/avatar");
+                    res.Should().HaveStatusCode(HttpStatusCode.Forbidden)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Forbid);
+                }
+
+                for (int i = 0; i < 2; i++) // double delete should work.
+                {
+                    var res = await client.DeleteAsync("users/user1/avatar");
+                    res.Should().HaveStatusCode(200);
+                    await GetReturnDefault();
+                }
+            }
+
+            // Authorization check.
+            using (var client = await CreateClientAsAdministrator())
+            {
+                {
+                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, mockAvatar.Type);
+                    res.Should().HaveStatusCode(HttpStatusCode.OK);
+                }
+
+                {
+                    var res = await client.DeleteAsync("users/user1/avatar");
+                    res.Should().HaveStatusCode(HttpStatusCode.OK);
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/usernotexist/avatar", new[] { (byte)0x00 }, "image/png");
+                    res.Should().HaveStatusCode(400)
+                        .And.HaveCommonBody()
+                        .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
+                }
+
+                {
+                    var res = await client.DeleteAsync("users/usernotexist/avatar");
+                    res.Should().HaveStatusCode(400)
+                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
+                }
+            }
+
+            // bad username check
+            using (var client = await CreateClientAsAdministrator())
+            {
+                {
+                    var res = await client.GetAsync("users/u!ser/avatar");
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.PutByteArrayAsync("users/u!ser/avatar", ImageHelper.CreatePngWithSize(100, 100), "image/png");
+                    res.Should().BeInvalidModel();
+                }
+
+                {
+                    var res = await client.DeleteAsync("users/u!ser/avatar");
+                    res.Should().BeInvalidModel();
+                }
+            }
+        }
+
+        [Fact]
+        public async Task AvatarPutReturnETag()
+        {
+            using var client = await CreateClientAsUser();
+
+            EntityTagHeaderValue etag;
+
+            {
+                var image = ImageHelper.CreatePngWithSize(100, 100);
+                var res = await client.PutByteArrayAsync("users/user1/avatar", image, PngFormat.Instance.DefaultMimeType);
+                res.Should().HaveStatusCode(200);
+                etag = res.Headers.ETag;
+                etag.Should().NotBeNull();
+                etag.Tag.Should().NotBeNullOrEmpty();
+            }
+
+            {
+                var res = await client.GetAsync("users/user1/avatar");
+                res.Should().HaveStatusCode(200);
+                res.Headers.ETag.Should().Be(etag);
+                res.Headers.ETag.Tag.Should().Be(etag.Tag);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs
new file mode 100644
index 00000000..9dfcc6a5
--- /dev/null
+++ b/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs
@@ -0,0 +1,447 @@
+using FluentAssertions;
+using System.Collections.Generic;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.IntegratedTests
+{
+    public class UserTest : IntegratedTestBase
+    {
+        [Fact]
+        public void UserListShouldHaveUniqueId()
+        {
+            foreach (var user in UserInfos)
+            {
+                user.UniqueId.Should().NotBeNullOrWhiteSpace();
+            }
+        }
+
+        [Fact]
+        public async Task GetList_NoAuth()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.GetAsync("users");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo[]>()
+                .Which.Should().BeEquivalentTo(UserInfos);
+        }
+
+        [Fact]
+        public async Task GetList_User()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.GetAsync("users");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo[]>()
+                .Which.Should().BeEquivalentTo(UserInfos);
+        }
+
+        [Fact]
+        public async Task GetList_Admin()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.GetAsync("users");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo[]>()
+                .Which.Should().BeEquivalentTo(UserInfos);
+        }
+
+        [Fact]
+        public async Task Get_NoAuth()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.GetAsync($"users/admin");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo>()
+                .Which.Should().BeEquivalentTo(UserInfos[0]);
+        }
+
+        [Fact]
+        public async Task Get_User()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.GetAsync($"users/admin");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo>()
+                .Which.Should().BeEquivalentTo(UserInfos[0]);
+        }
+
+        [Fact]
+        public async Task Get_Admin()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.GetAsync($"users/user1");
+            res.Should().HaveStatusCode(200)
+                .And.HaveJsonBody<UserInfo>()
+                .Which.Should().BeEquivalentTo(UserInfos[1]);
+        }
+
+        [Fact]
+        public async Task Get_InvalidModel()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.GetAsync("users/aaa!a");
+            res.Should().BeInvalidModel();
+        }
+
+        [Fact]
+        public async Task Get_404()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.GetAsync("users/usernotexist");
+            res.Should().HaveStatusCode(404)
+                .And.HaveCommonBody(ErrorCodes.UserCommon.NotExist);
+        }
+
+        [Fact]
+        public async Task Patch_User()
+        {
+            using var client = await CreateClientAsUser();
+            {
+                var res = await client.PatchAsJsonAsync("users/user1",
+                    new UserPatchRequest { Nickname = "aaa" });
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>()
+                    .Which.Nickname.Should().Be("aaa");
+            }
+
+            {
+                var res = await client.GetAsync("users/user1");
+                res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>()
+                    .Which.Nickname.Should().Be("aaa");
+            }
+        }
+
+        [Fact]
+        public async Task Patch_Admin()
+        {
+            using var client = await CreateClientAsAdministrator();
+            using var userClient = await CreateClientAsUser();
+
+            {
+                var res = await client.PatchAsJsonAsync("users/user1",
+                    new UserPatchRequest
+                    {
+                        Username = "newuser",
+                        Password = "newpw",
+                        Administrator = true,
+                        Nickname = "aaa"
+                    });
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>()
+                    .Which;
+                body.Administrator.Should().Be(true);
+                body.Nickname.Should().Be("aaa");
+            }
+
+            {
+                var res = await client.GetAsync("users/newuser");
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>()
+                    .Which;
+                body.Administrator.Should().Be(true);
+                body.Nickname.Should().Be("aaa");
+            }
+
+            {
+                // Token should expire.
+                var res = await userClient.GetAsync("testing/auth/Authorize");
+                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+            }
+
+            {
+                // Check password.
+                (await CreateClientWithCredential("newuser", "newpw")).Dispose();
+            }
+        }
+
+        [Fact]
+        public async Task Patch_NotExist()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.PatchAsJsonAsync("users/usernotexist", new UserPatchRequest { });
+            res.Should().HaveStatusCode(404)
+                .And.HaveCommonBody()
+                .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
+        }
+
+        [Fact]
+        public async Task Patch_InvalidModel()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.PatchAsJsonAsync("users/aaa!a", new UserPatchRequest { });
+            res.Should().BeInvalidModel();
+        }
+
+        public static IEnumerable<object[]> Patch_InvalidModel_Body_Data()
+        {
+            yield return new[] { new UserPatchRequest { Username = "aaa!a" } };
+            yield return new[] { new UserPatchRequest { Password = "" } };
+            yield return new[] { new UserPatchRequest { Nickname = new string('a', 50) } };
+        }
+
+        [Theory]
+        [MemberData(nameof(Patch_InvalidModel_Body_Data))]
+        public async Task Patch_InvalidModel_Body(UserPatchRequest body)
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.PatchAsJsonAsync("users/user1", body);
+            res.Should().BeInvalidModel();
+        }
+
+        [Fact]
+        public async Task Patch_UsernameConflict()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Username = "admin" });
+            res.Should().HaveStatusCode(400)
+                .And.HaveCommonBody(ErrorCodes.UserController.UsernameConflict);
+        }
+
+        [Fact]
+        public async Task Patch_NoAuth_Unauthorized()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Nickname = "aaa" });
+            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+        }
+
+        [Fact]
+        public async Task Patch_User_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PatchAsJsonAsync("users/admin", new UserPatchRequest { Nickname = "aaa" });
+            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        [Fact]
+        public async Task Patch_Username_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Username = "aaa" });
+            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        [Fact]
+        public async Task Patch_Password_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Password = "aaa" });
+            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        [Fact]
+        public async Task Patch_Administrator_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Administrator = true });
+            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        [Fact]
+        public async Task Delete_Deleted()
+        {
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.DeleteAsync("users/user1");
+                res.Should().BeDelete(true);
+            }
+
+            {
+                var res = await client.GetAsync("users/user1");
+                res.Should().HaveStatusCode(404);
+            }
+        }
+
+        [Fact]
+        public async Task Delete_NotExist()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.DeleteAsync("users/usernotexist");
+            res.Should().BeDelete(false);
+        }
+
+        [Fact]
+        public async Task Delete_InvalidModel()
+        {
+            using var client = await CreateClientAsAdministrator();
+            var res = await client.DeleteAsync("users/aaa!a");
+            res.Should().BeInvalidModel();
+        }
+
+        [Fact]
+        public async Task Delete_NoAuth_Unauthorized()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.DeleteAsync("users/aaa!a");
+            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+        }
+
+        [Fact]
+        public async Task Delete_User_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.DeleteAsync("users/aaa!a");
+            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+        }
+
+        private const string createUserUrl = "userop/createuser";
+
+        [Fact]
+        public async Task Op_CreateUser()
+        {
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
+                {
+                    Username = "aaa",
+                    Password = "bbb",
+                    Administrator = true,
+                    Nickname = "ccc"
+                });
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>().Which;
+                body.Username.Should().Be("aaa");
+                body.Nickname.Should().Be("ccc");
+                body.Administrator.Should().BeTrue();
+            }
+            {
+                var res = await client.GetAsync("users/aaa");
+                var body = res.Should().HaveStatusCode(200)
+                    .And.HaveJsonBody<UserInfo>().Which;
+                body.Username.Should().Be("aaa");
+                body.Nickname.Should().Be("ccc");
+                body.Administrator.Should().BeTrue();
+            }
+            {
+                // Test password.
+                (await CreateClientWithCredential("aaa", "bbb")).Dispose();
+            }
+        }
+
+        public static IEnumerable<object[]> Op_CreateUser_InvalidModel_Data()
+        {
+            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "bbb" } };
+            yield return new[] { new CreateUserRequest { Username = "aaa", Administrator = true } };
+            yield return new[] { new CreateUserRequest { Password = "bbb", Administrator = true } };
+            yield return new[] { new CreateUserRequest { Username = "a!a", Password = "bbb", Administrator = true } };
+            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "", Administrator = true } };
+            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "bbb", Administrator = true, Nickname = new string('a', 40) } };
+        }
+
+        [Theory]
+        [MemberData(nameof(Op_CreateUser_InvalidModel_Data))]
+        public async Task Op_CreateUser_InvalidModel(CreateUserRequest body)
+        {
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.PostAsJsonAsync(createUserUrl, body);
+                res.Should().BeInvalidModel();
+            }
+        }
+
+        [Fact]
+        public async Task Op_CreateUser_UsernameConflict()
+        {
+            using var client = await CreateClientAsAdministrator();
+            {
+                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
+                {
+                    Username = "user1",
+                    Password = "bbb",
+                    Administrator = false
+                });
+                res.Should().HaveStatusCode(400)
+                    .And.HaveCommonBody(ErrorCodes.UserController.UsernameConflict);
+            }
+        }
+
+        [Fact]
+        public async Task Op_CreateUser_NoAuth_Unauthorized()
+        {
+            using var client = await CreateDefaultClient();
+            {
+                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
+                {
+                    Username = "aaa",
+                    Password = "bbb",
+                    Administrator = false
+                });
+                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+            }
+        }
+
+        [Fact]
+        public async Task Op_CreateUser_User_Forbid()
+        {
+            using var client = await CreateClientAsUser();
+            {
+                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
+                {
+                    Username = "aaa",
+                    Password = "bbb",
+                    Administrator = false
+                });
+                res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
+            }
+        }
+
+        private const string changePasswordUrl = "userop/changepassword";
+
+        [Fact]
+        public async Task Op_ChangePassword()
+        {
+            using var client = await CreateClientAsUser();
+            {
+                var res = await client.PostAsJsonAsync(changePasswordUrl,
+                    new ChangePasswordRequest { OldPassword = "user1pw", NewPassword = "newpw" });
+                res.Should().HaveStatusCode(200);
+            }
+            {
+                var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { });
+                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+            }
+            {
+                (await CreateClientWithCredential("user1", "newpw")).Dispose();
+            }
+        }
+
+        public static IEnumerable<object[]> Op_ChangePassword_InvalidModel_Data()
+        {
+            yield return new[] { null, "ppp" };
+            yield return new[] { "ppp", null };
+        }
+
+        [Theory]
+        [MemberData(nameof(Op_ChangePassword_InvalidModel_Data))]
+        public async Task Op_ChangePassword_InvalidModel(string oldPassword, string newPassword)
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PostAsJsonAsync(changePasswordUrl,
+                new ChangePasswordRequest { OldPassword = oldPassword, NewPassword = newPassword });
+            res.Should().BeInvalidModel();
+        }
+
+        [Fact]
+        public async Task Op_ChangePassword_BadOldPassword()
+        {
+            using var client = await CreateClientAsUser();
+            var res = await client.PostAsJsonAsync(changePasswordUrl, new ChangePasswordRequest { OldPassword = "???", NewPassword = "???" });
+            res.Should().HaveStatusCode(400)
+                .And.HaveCommonBody(ErrorCodes.UserController.ChangePassword_BadOldPassword);
+        }
+
+        [Fact]
+        public async Task Op_ChangePassword_NoAuth_Unauthorized()
+        {
+            using var client = await CreateDefaultClient();
+            var res = await client.PostAsJsonAsync(changePasswordUrl, new ChangePasswordRequest { OldPassword = "???", NewPassword = "???" });
+            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/PasswordGenerator.cs b/BackEnd/Timeline.Tests/PasswordGenerator.cs
new file mode 100644
index 00000000..863439b5
--- /dev/null
+++ b/BackEnd/Timeline.Tests/PasswordGenerator.cs
@@ -0,0 +1,23 @@
+﻿using Timeline.Services;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Timeline.Tests
+{
+    public class PasswordGenerator
+    {
+        private readonly ITestOutputHelper _output;
+
+        public PasswordGenerator(ITestOutputHelper output)
+        {
+            _output = output;
+        }
+
+        [Fact]
+        public void Generate()
+        {
+            var service = new PasswordService();
+            _output.WriteLine(service.HashPassword("crupest"));
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Properties/launchSettings.json b/BackEnd/Timeline.Tests/Properties/launchSettings.json
new file mode 100644
index 00000000..f3ee419d
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Properties/launchSettings.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs b/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs
new file mode 100644
index 00000000..5a774b78
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Services/TimelineServiceTest.cs
@@ -0,0 +1,329 @@
+﻿using FluentAssertions;
+using Microsoft.Extensions.Logging.Abstractions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Models;
+using Timeline.Services;
+using Timeline.Services.Exceptions;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests.Services
+{
+    public class TimelineServiceTest : IAsyncLifetime, IDisposable
+    {
+        private readonly TestDatabase _testDatabase = new TestDatabase();
+
+        private DatabaseContext _databaseContext;
+
+        private readonly PasswordService _passwordService = new PasswordService();
+
+        private readonly ETagGenerator _eTagGenerator = new ETagGenerator();
+
+        private readonly ImageValidator _imageValidator = new ImageValidator();
+
+        private readonly TestClock _clock = new TestClock();
+
+        private DataManager _dataManager;
+
+        private UserService _userService;
+
+        private TimelineService _timelineService;
+
+        private UserDeleteService _userDeleteService;
+
+        public TimelineServiceTest()
+        {
+        }
+
+        public async Task InitializeAsync()
+        {
+            await _testDatabase.InitializeAsync();
+            _databaseContext = _testDatabase.CreateContext();
+            _dataManager = new DataManager(_databaseContext, _eTagGenerator);
+            _userService = new UserService(NullLogger<UserService>.Instance, _databaseContext, _passwordService, _clock);
+            _timelineService = new TimelineService(NullLogger<TimelineService>.Instance, _databaseContext, _dataManager, _userService, _imageValidator, _clock);
+            _userDeleteService = new UserDeleteService(NullLogger<UserDeleteService>.Instance, _databaseContext, _timelineService);
+        }
+
+        public async Task DisposeAsync()
+        {
+            await _testDatabase.DisposeAsync();
+            await _databaseContext.DisposeAsync();
+        }
+
+        public void Dispose()
+        {
+            _eTagGenerator.Dispose();
+        }
+
+        [Theory]
+        [InlineData("@user")]
+        [InlineData("tl")]
+        public async Task Timeline_GetLastModified(string timelineName)
+        {
+            var time = _clock.ForwardCurrentTime();
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
+
+            var t = await _timelineService.GetTimelineLastModifiedTime(timelineName);
+
+            t.Should().Be(time);
+        }
+
+        [Theory]
+        [InlineData("@user")]
+        [InlineData("tl")]
+        public async Task Timeline_GetUnqiueId(string timelineName)
+        {
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
+
+            var uniqueId = await _timelineService.GetTimelineUniqueId(timelineName);
+
+            uniqueId.Should().NotBeNullOrEmpty();
+        }
+
+        [Theory]
+        [InlineData("@user")]
+        [InlineData("tl")]
+        public async Task Timeline_LastModified(string timelineName)
+        {
+            var initTime = _clock.ForwardCurrentTime();
+
+            void Check(Models.Timeline timeline)
+            {
+                timeline.NameLastModified.Should().Be(initTime);
+                timeline.LastModified.Should().Be(_clock.GetCurrentTime());
+            }
+
+            async Task GetAndCheck()
+            {
+                Check(await _timelineService.GetTimeline(timelineName));
+            }
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                Check(await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user")));
+
+            await GetAndCheck();
+
+            _clock.ForwardCurrentTime();
+            await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Visibility = TimelineVisibility.Public });
+            await GetAndCheck();
+
+            _clock.ForwardCurrentTime();
+            await _timelineService.ChangeMember(timelineName, new List<string> { "admin" }, null);
+            await GetAndCheck();
+        }
+
+        [Theory]
+        [InlineData("@user")]
+        [InlineData("tl")]
+        public async Task GetPosts_ModifiedSince(string timelineName)
+        {
+            _clock.ForwardCurrentTime();
+
+            var userId = await _userService.GetUserIdByUsername("user");
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, userId);
+
+            var postContentList = new string[] { "a", "b", "c", "d" };
+
+            DateTime testPoint = new DateTime();
+
+            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
+            {
+                var t = _clock.ForwardCurrentTime();
+                if (index == 1)
+                    testPoint = t;
+                await _timelineService.CreateTextPost(timelineName, userId, content, null);
+            }
+
+            var posts = await _timelineService.GetPosts(timelineName, testPoint);
+            posts.Should().HaveCount(3)
+                .And.Subject.Select(p => (p.Content as TextTimelinePostContent).Text).Should().Equal(postContentList.Skip(1));
+        }
+
+        [Theory]
+        [InlineData("@user")]
+        [InlineData("tl")]
+        public async Task GetPosts_IncludeDeleted(string timelineName)
+        {
+            var userId = await _userService.GetUserIdByUsername("user");
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, userId);
+
+            var postContentList = new string[] { "a", "b", "c", "d" };
+
+            foreach (var content in postContentList)
+            {
+                await _timelineService.CreateTextPost(timelineName, userId, content, null);
+            }
+
+            var posts = await _timelineService.GetPosts(timelineName);
+            posts.Should().HaveCount(4);
+            posts.Select(p => p.Deleted).Should().Equal(Enumerable.Repeat(false, posts.Count));
+            posts.Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(postContentList);
+
+            foreach (var id in new long[] { posts[0].Id, posts[2].Id })
+            {
+                await _timelineService.DeletePost(timelineName, id);
+            }
+
+            posts = await _timelineService.GetPosts(timelineName);
+            posts.Should().HaveCount(2);
+            posts.Select(p => p.Deleted).Should().Equal(Enumerable.Repeat(false, posts.Count));
+            posts.Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(new string[] { "b", "d" });
+
+            posts = await _timelineService.GetPosts(timelineName, includeDeleted: true);
+            posts.Should().HaveCount(4);
+            posts.Select(p => p.Deleted).Should().Equal(new bool[] { true, false, true, false });
+            posts.Where(p => !p.Deleted).Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(new string[] { "b", "d" });
+        }
+
+        [Theory]
+        [InlineData("@admin")]
+        [InlineData("tl")]
+        public async Task GetPosts_ModifiedSince_UsernameChange(string timelineName)
+        {
+            var time1 = _clock.ForwardCurrentTime();
+
+            var userId = await _userService.GetUserIdByUsername("user");
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, userId);
+
+            var postContentList = new string[] { "a", "b", "c", "d" };
+
+            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
+            {
+                await _timelineService.CreateTextPost(timelineName, userId, content, null);
+            }
+
+            var time2 = _clock.ForwardCurrentTime();
+
+            {
+                var posts = await _timelineService.GetPosts(timelineName, time2);
+                posts.Should().HaveCount(0);
+            }
+
+            {
+                await _userService.ModifyUser(userId, new User { Nickname = "haha" });
+                var posts = await _timelineService.GetPosts(timelineName, time2);
+                posts.Should().HaveCount(0);
+            }
+
+            {
+                await _userService.ModifyUser(userId, new User { Username = "haha" });
+                var posts = await _timelineService.GetPosts(timelineName, time2);
+                posts.Should().HaveCount(4);
+            }
+        }
+
+        [Theory]
+        [InlineData("@admin")]
+        [InlineData("tl")]
+        public async Task GetPosts_ModifiedSince_UserDelete(string timelineName)
+        {
+            var time1 = _clock.ForwardCurrentTime();
+
+            var userId = await _userService.GetUserIdByUsername("user");
+            var adminId = await _userService.GetUserIdByUsername("admin");
+
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, adminId);
+
+            var postContentList = new string[] { "a", "b", "c", "d" };
+
+            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
+            {
+                await _timelineService.CreateTextPost(timelineName, userId, content, null);
+            }
+
+            var time2 = _clock.ForwardCurrentTime();
+
+            {
+                var posts = await _timelineService.GetPosts(timelineName, time2);
+                posts.Should().HaveCount(0);
+            }
+
+            await _userDeleteService.DeleteUser("user");
+
+            {
+                var posts = await _timelineService.GetPosts(timelineName, time2);
+                posts.Should().HaveCount(0);
+            }
+
+            {
+                var posts = await _timelineService.GetPosts(timelineName, time2, true);
+                posts.Should().HaveCount(4);
+            }
+        }
+
+        [Theory]
+        [InlineData("@admin")]
+        [InlineData("tl")]
+        public async Task Title(string timelineName)
+        {
+            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+            if (!isPersonal)
+                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
+
+            {
+                var timeline = await _timelineService.GetTimeline(timelineName);
+                timeline.Title.Should().Be(timelineName);
+            }
+
+            {
+                await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Title = null });
+                var timeline = await _timelineService.GetTimeline(timelineName);
+                timeline.Title.Should().Be(timelineName);
+            }
+
+            {
+                await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Title = "atitle" });
+                var timeline = await _timelineService.GetTimeline(timelineName);
+                timeline.Title.Should().Be("atitle");
+            }
+        }
+
+        [Fact]
+        public async Task ChangeName()
+        {
+            _clock.ForwardCurrentTime();
+
+            await _timelineService.Awaiting(s => s.ChangeTimelineName("!!!", "newtl")).Should().ThrowAsync<ArgumentException>();
+            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "!!!")).Should().ThrowAsync<ArgumentException>();
+            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "newtl")).Should().ThrowAsync<TimelineNotExistException>();
+
+            await _timelineService.CreateTimeline("tl", await _userService.GetUserIdByUsername("user"));
+            await _timelineService.CreateTimeline("tl2", await _userService.GetUserIdByUsername("user"));
+
+            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "tl2")).Should().ThrowAsync<EntityAlreadyExistException>();
+
+            var time = _clock.ForwardCurrentTime();
+
+            await _timelineService.ChangeTimelineName("tl", "newtl");
+
+            {
+                var timeline = await _timelineService.GetTimeline("newtl");
+                timeline.Name.Should().Be("newtl");
+                timeline.LastModified.Should().Be(time);
+                timeline.NameLastModified.Should().Be(time);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/Timeline.Tests.csproj b/BackEnd/Timeline.Tests/Timeline.Tests.csproj
new file mode 100644
index 00000000..973e0fc0
--- /dev/null
+++ b/BackEnd/Timeline.Tests/Timeline.Tests.csproj
@@ -0,0 +1,34 @@
+﻿<Project Sdk="Microsoft.NET.Sdk.Web">
+
+    <PropertyGroup>
+        <TargetFramework>netcoreapp3.1</TargetFramework>
+
+        <LangVersion>8.0</LangVersion>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <PackageReference Include="coverlet.collector" Version="1.3.0">
+            <PrivateAssets>all</PrivateAssets>
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+        </PackageReference>
+        <PackageReference Include="FluentAssertions" Version="5.10.3" />
+        <PackageReference Include="JunitXml.TestLogger" Version="2.1.78" />
+        <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
+        <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.9" />
+        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
+            <PrivateAssets>all</PrivateAssets>
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+        </PackageReference>
+        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
+        <PackageReference Include="Moq" Version="4.14.7" />
+        <PackageReference Include="xunit" Version="2.4.1" />
+        <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
+            <PrivateAssets>all</PrivateAssets>
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
+        </PackageReference>
+    </ItemGroup>
+
+    <ItemGroup>
+      <ProjectReference Include="..\Timeline\Timeline.csproj" />
+    </ItemGroup>
+</Project>
diff --git a/BackEnd/Timeline.Tests/UsernameValidatorUnitTest.cs b/BackEnd/Timeline.Tests/UsernameValidatorUnitTest.cs
new file mode 100644
index 00000000..5b568adf
--- /dev/null
+++ b/BackEnd/Timeline.Tests/UsernameValidatorUnitTest.cs
@@ -0,0 +1,78 @@
+﻿using FluentAssertions;
+using Timeline.Models.Validation;
+using Timeline.Tests.Helpers;
+using Xunit;
+
+namespace Timeline.Tests
+{
+    public class UsernameValidatorUnitTest : IClassFixture<UsernameValidator>
+    {
+        private readonly UsernameValidator _validator;
+
+        public UsernameValidatorUnitTest(UsernameValidator validator)
+        {
+            _validator = validator;
+        }
+
+        private string FailAndMessage(string username)
+        {
+            var (result, message) = _validator.Validate(username);
+            result.Should().BeFalse();
+            return message;
+        }
+
+        [Fact]
+        public void NotString()
+        {
+            var (result, message) = _validator.Validate(123);
+            result.Should().BeFalse();
+            message.Should().ContainEquivalentOf("type");
+        }
+
+        [Fact]
+        public void Empty()
+        {
+            FailAndMessage("").Should().ContainEquivalentOf("empty");
+        }
+
+        [Theory]
+        [InlineData("!")]
+        [InlineData("!abc")]
+        [InlineData("ab c")]
+        [InlineData("ab c！")] // This is a chinese ! .
+        public void BadCharactor(string value)
+        {
+            FailAndMessage(value).Should().ContainEquivalentOf("invalid")
+                .And.ContainEquivalentOf("character");
+        }
+
+        [Fact]
+        public void TooLong()
+        {
+            FailAndMessage(new string('a', 40)).Should().ContainEquivalentOf("long");
+        }
+
+        [Fact(Skip = "Currently name can't be longer than 26. So this will print message of too long.")]
+        public void UniqueId()
+        {
+            FailAndMessage("e4c80127d092d9b2fc19c5e04612d4c0").Should().ContainEquivalentOf("unique id");
+        }
+
+        [Theory]
+        [InlineData(null)]
+        [InlineData("abc")]
+        [InlineData("-abc")]
+        [InlineData("_abc")]
+        [InlineData("abc-")]
+        [InlineData("abc_")]
+        [InlineData("a-bc")]
+        [InlineData("a-b-c")]
+        [InlineData("a-b_c")]
+        [InlineData("a-你好_c")]
+        public void Success(string value)
+        {
+            var (result, _) = _validator.Validate(value);
+            result.Should().BeTrue();
+        }
+    }
+}
diff --git a/BackEnd/Timeline.Tests/coverletArgs.runsettings b/BackEnd/Timeline.Tests/coverletArgs.runsettings
new file mode 100644
index 00000000..24cd1822
--- /dev/null
+++ b/BackEnd/Timeline.Tests/coverletArgs.runsettings
@@ -0,0 +1,13 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<RunSettings>
+    <DataCollectionRunSettings>
+        <DataCollectors>
+            <DataCollector friendlyName="XPlat code coverage">
+                <Configuration>
+                    <!-- [Assembly-Filter]Type-Filter -->
+                    <Exclude>[xunit.*]*,[Timeline]Timeline.Migrations.*</Exclude>
+                </Configuration>
+            </DataCollector>
+        </DataCollectors>
+    </DataCollectionRunSettings>
+</RunSettings>
diff --git a/BackEnd/Timeline.Tests/packages.lock.json b/BackEnd/Timeline.Tests/packages.lock.json
new file mode 100644
index 00000000..7150a222
--- /dev/null
+++ b/BackEnd/Timeline.Tests/packages.lock.json
@@ -0,0 +1,2040 @@
+{
+  "version": 1,
+  "dependencies": {
+    ".NETCoreApp,Version=v3.1": {
+      "coverlet.collector": {
+        "type": "Direct",
+        "requested": "[1.3.0, )",
+        "resolved": "1.3.0",
+        "contentHash": "t8pnf5SX2ya0RX4vjoxsbhDMQCZJcpPun2neHKJ4FouMmObylo25FvoOydvf3Bl+l+IzWw7u2vjEeCBHnleB9g=="
+      },
+      "FluentAssertions": {
+        "type": "Direct",
+        "requested": "[5.10.3, )",
+        "resolved": "5.10.3",
+        "contentHash": "gVPEVp1hLVqcv+7Q2wiDf7kqCNn7+bQcQ0jbJ2mcRT6CeRoZl1tNkqvzSIhvekyldDptk77j1b03MXTTRIqqpg==",
+        "dependencies": {
+          "System.Configuration.ConfigurationManager": "4.4.0"
+        }
+      },
+      "JunitXml.TestLogger": {
+        "type": "Direct",
+        "requested": "[2.1.78, )",
+        "resolved": "2.1.78",
+        "contentHash": "4y4FSfKWxlked8ilQdqBBSeRMf5jD/Hkvyp744hc54yQcABLt4rR2Q+4hNqAqrSo+mhwAlusj2rpXpN/5TICCA=="
+      },
+      "Microsoft.AspNet.WebApi.Client": {
+        "type": "Direct",
+        "requested": "[5.2.7, )",
+        "resolved": "5.2.7",
+        "contentHash": "/76fAHknzvFqbznS6Uj2sOyE9rJB3PltY+f53TH8dX9RiGhk02EhuFCWljSj5nnqKaTsmma8DFR50OGyQ4yJ1g==",
+        "dependencies": {
+          "Newtonsoft.Json": "10.0.1",
+          "Newtonsoft.Json.Bson": "1.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.TestHost": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "0DBtfgmM2yS4h0v+gS4JHRX4nuyQmW7Yi5/G4yB5KelA2dDXPsAiipw9z47B1jVEs9QZdOwSqPQm2R/owl2TnA==",
+        "dependencies": {
+          "System.IO.Pipelines": "4.7.3"
+        }
+      },
+      "Microsoft.CodeAnalysis.FxCopAnalyzers": {
+        "type": "Direct",
+        "requested": "[3.3.0, )",
+        "resolved": "3.3.0",
+        "contentHash": "k3Icqx8kc+NrHImuiB8Jc/wd32Xeyd2B/7HOR5Qu9pyKzXQ4ikPeBAwzG2FSTuYhyIuNWvwL5k9yYBbbVz6w9w==",
+        "dependencies": {
+          "Microsoft.CodeAnalysis.VersionCheckAnalyzer": "[3.3.0]",
+          "Microsoft.CodeQuality.Analyzers": "[3.3.0]",
+          "Microsoft.NetCore.Analyzers": "[3.3.0]",
+          "Microsoft.NetFramework.Analyzers": "[3.3.0]"
+        }
+      },
+      "Microsoft.NET.Test.Sdk": {
+        "type": "Direct",
+        "requested": "[16.7.1, )",
+        "resolved": "16.7.1",
+        "contentHash": "7T3XYuLT2CRMZXwlp8p4cEEf6y7VifxTdKwYNzCYp31CN4iyrcDKneIJvNTo0YVnTxJn+CSlGVlUnZHUlAwt9A==",
+        "dependencies": {
+          "Microsoft.CodeCoverage": "16.7.1",
+          "Microsoft.TestPlatform.TestHost": "16.7.1"
+        }
+      },
+      "Moq": {
+        "type": "Direct",
+        "requested": "[4.14.7, )",
+        "resolved": "4.14.7",
+        "contentHash": "z1jwY3lL3d4l+92cdSnhRDUUco68HiRNfLKB9r9/PLP5lrN+ZL1Qtt3brVGVB8iY+ioBXhlFue2JtycBczE8Pw==",
+        "dependencies": {
+          "Castle.Core": "4.4.0",
+          "System.Threading.Tasks.Extensions": "4.5.1"
+        }
+      },
+      "xunit": {
+        "type": "Direct",
+        "requested": "[2.4.1, )",
+        "resolved": "2.4.1",
+        "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==",
+        "dependencies": {
+          "xunit.analyzers": "0.10.0",
+          "xunit.assert": "[2.4.1]",
+          "xunit.core": "[2.4.1]"
+        }
+      },
+      "xunit.runner.visualstudio": {
+        "type": "Direct",
+        "requested": "[2.4.3, )",
+        "resolved": "2.4.3",
+        "contentHash": "kZZSmOmKA8OBlAJaquPXnJJLM9RwQ27H7BMVqfMLUcTi9xHinWGJiWksa3D4NEtz0wZ/nxd2mogObvBgJKCRhQ=="
+      },
+      "AutoMapper": {
+        "type": "Transitive",
+        "resolved": "10.1.1",
+        "contentHash": "uMgbqOdu9ZG5cIOty0C85hzzayBH2i9BthnS5FlMqKtMSHDv4ts81a2jS1VFaDBVhlBeIqJ/kQKjQY95BZde9w==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.7.0",
+          "System.Reflection.Emit": "4.7.0"
+        }
+      },
+      "AutoMapper.Extensions.Microsoft.DependencyInjection": {
+        "type": "Transitive",
+        "resolved": "8.1.0",
+        "contentHash": "dQyGCAYcHbGuimVvCMu4Ea2S1oYOlgO9XfVdClmY5wgygJMZoS57emPzH0qNfknmtzMm4QbDO9i237W5IDjU1A==",
+        "dependencies": {
+          "AutoMapper": "[10.1.0, 11.0.0)",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.0.0",
+          "Microsoft.Extensions.Options": "3.0.0"
+        }
+      },
+      "Castle.Core": {
+        "type": "Transitive",
+        "resolved": "4.4.0",
+        "contentHash": "b5rRL5zeaau1y/5hIbI+6mGw3cwun16YjkHZnV9RRT5UyUIFsgLmNXJ0YnIN9p8Hw7K7AbG1q1UclQVU3DinAQ==",
+        "dependencies": {
+          "NETStandard.Library": "1.6.1",
+          "System.Collections.Specialized": "4.3.0",
+          "System.ComponentModel": "4.3.0",
+          "System.ComponentModel.TypeConverter": "4.3.0",
+          "System.Diagnostics.TraceSource": "4.3.0",
+          "System.Dynamic.Runtime": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Emit": "4.3.0",
+          "System.Reflection.TypeExtensions": "4.3.0",
+          "System.Xml.XmlDocument": "4.3.0"
+        }
+      },
+      "Microsoft.AspNetCore.Authorization": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "cN2KJkfHcKwh82c9WGx4Tqfd2h5HflU/Mu5vYLMHON8WahHU9hE32ciIXcEIoKLNpu+zs1u1cN/qxcKTdqu89w==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Security.Claims": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Hosting.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "ybY8FOkdNfBPB5PLv1JO+It/94ftBzGUI1WqU4XySbIWyhw2TPmmKAUuO9uvJoR0qpsFup8FJz6trsBcBITg9w==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "XUiQPe/CflK1i0Voo9S6/G1iQh00gQ6sMqi3LRtKeceBbO6AOostaAUdhjyME92MapI4VFNl+Z+/KXUlMAExJQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Features": "1.0.3",
+          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Http": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "kfNOIGGgVtMzsSWZzXBqz5zsdo8ssBa90YHzZt95N8ARGXoolSaBHy6yBoMm/XcpbXM+m/x1fixTTMIWMgzJdQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.AspNetCore.WebUtilities": "1.0.3",
+          "Microsoft.Extensions.ObjectPool": "1.0.1",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.Buffers": "4.0.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "nnjvAf7ag6P0DyD/0nhRGjLpv+3DkPU0juF8aQh46X8uF4kzjJdrh65oL+4PVOu3K6BgSg6OVUs0QC0SE0FRtg==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Features": "1.0.3",
+          "System.Globalization.Extensions": "4.0.1",
+          "System.Linq.Expressions": "4.1.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Extensions": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "+7Sd+14nexIJqcB4S1Eur9kzeMZ5CBtrxkei+PNbD78fg8vO3+TcCgrl5SBNTsUB/VJAfD/s0fgs5t+hHRj2Pg==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.Buffers": "4.0.0",
+          "System.IO.FileSystem": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Features": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "Ihq57tseNyPbJTmFXY4jQ4JkxLP0lh45VRwocQci/sFx+qcJGvWB+sJJ2/YPLy/qTWFAEfNAcswuY3OsNH9Gwg==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "1.0.1",
+          "System.Collections": "4.0.11",
+          "System.ComponentModel": "4.0.1",
+          "System.Linq": "4.1.0",
+          "System.Net.Primitives": "4.0.11",
+          "System.Net.WebSockets": "4.0.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Security.Claims": "4.0.1",
+          "System.Security.Cryptography.X509Certificates": "4.1.0",
+          "System.Security.Principal": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.JsonPatch": {
+        "type": "Transitive",
+        "resolved": "1.0.0",
+        "contentHash": "WVaSVS+dDlWCR/qerHnBxU9tIeJ9GMA3M5tg4cxH7/cJYZZLnr2zvaFHGB+cRRNCKKTJ0pFRxT7ES8knhgAAaA==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.0.1",
+          "Newtonsoft.Json": "9.0.1",
+          "System.Collections.Concurrent": "4.0.12",
+          "System.ComponentModel.TypeConverter": "4.1.0",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Serialization.Primitives": "4.1.1",
+          "System.Text.Encoding.Extensions": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "Isqgif1nuB+um86cEkpL8KnoxFCUCXBsbs9PuiuzElvlSiv4Ek3LvtrSUcbivekDDfys8CDbJhxwEI7WKJieAQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
+          "Microsoft.CSharp": "4.0.1",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.ComponentModel.TypeConverter": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Text.Encoding.Extensions": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.ApiExplorer": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "ujCFTM42U2WKUBhdaoLoiI+wVHgYhrmDrkl5+hWJ7EJW4fhp42w4cRZ97tjuveWr+M6JZjpS0q+7PVofQzFUiw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Core": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "1ukcttN1+T82hWXE8WS5kawkruolKI6LPVqVI4rTzN16kFszS/UqTrcwSUEnmTRpmWgFo665V3c2GpdQ9B6znw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Authorization": "1.0.3",
+          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.3",
+          "Microsoft.AspNetCore.Http": "1.0.3",
+          "Microsoft.AspNetCore.Mvc.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Routing": "1.0.4",
+          "Microsoft.Extensions.DependencyModel": "1.0.0",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.PlatformAbstractions": "1.0.0",
+          "System.Buffers": "4.0.0",
+          "System.Diagnostics.DiagnosticSource": "4.0.0",
+          "System.Text.Encoding": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Formatters.Json": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "i8WWK2GwlBHfOL+d+kknJWPks6DS9tbN6nfJZU4yb+/wfUAYd311B2CIHzdat3IewubnK1TYONwrhQcs2FbLeA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.JsonPatch": "1.0.0",
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
+        }
+      },
+      "Microsoft.AspNetCore.NodeServices": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "bbd3FlSPWiRQrIcBLa5TaOvo4gjmmiNMkxA8VmZ6u0eIpS0Yj35/eTopaGdtzqwlqj5jXbdRoib1MruXuPaW8A==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging.Console": "3.1.9",
+          "Newtonsoft.Json": "12.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Routing": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "mdIF3ckRothHWuCSFkk6YXACj5zxi5qM+cEAHjcpP04/wCHUoV0gGVnW+HI+LyFXE6JUwu2zXn5tfsCpW0U+SA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
+          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.ObjectPool": "1.0.1",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Collections": "4.0.11",
+          "System.Text.RegularExpressions": "4.1.0"
+        }
+      },
+      "Microsoft.AspNetCore.Routing.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "GHxVt6LlXHFsCUd2Un+/vY1tBTXxnogfbDO0b8G5EGmkapSK+dOGOLJviscxQkp338Uabs081JEIdkRymI5GXA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "System.Collections.Concurrent": "4.0.12",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.SpaServices": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Fb+N2ZyF1wNrGeWggT+Ovv6W8AAVxfi4V/SnuEsBOR+nmkFhty9zyh6IDRRS98GJK6OE3adqqPbWMtJqbxYnNA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.NodeServices": "3.1.9"
+        }
+      },
+      "Microsoft.AspNetCore.SpaServices.Extensions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "ciy2GCvRnh9C22laArLsaItS+72U6Hqf4nDYShdvFgcen2ZV+NNSitb/B3vsmFfIPM8m4mf2x4T+vZ6OlI5XaA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.SpaServices": "3.1.9",
+          "Microsoft.Extensions.FileProviders.Physical": "3.1.9"
+        }
+      },
+      "Microsoft.AspNetCore.StaticFiles": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "2pNvwewAazhaaCdw2CGUvIcDrNQMlqP57JgBDf3v+pRj1rZ29HVnpvkX6a+TrmRYlJNmmxHOKEt468uE/gDcFw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.WebEncoders": "1.0.3"
+        }
+      },
+      "Microsoft.AspNetCore.WebUtilities": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "snSGNs5EEisqivDjDiskFkFyu+DV2Ib9sMPOBQKtoFwI5H1W5YNB/rIVqDZQL16zj/uzdwwxrdE/5xhkVyf6gQ==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "1.0.1",
+          "System.Buffers": "4.0.0",
+          "System.Collections": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.IO.FileSystem": "4.0.1",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.Bcl.AsyncInterfaces": {
+        "type": "Transitive",
+        "resolved": "1.1.1",
+        "contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
+      },
+      "Microsoft.Bcl.HashCode": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "J2G1k+u5unBV+aYcwxo94ip16Rkp65pgWFb0R6zwJipzWNMgvqlWeuI7/+R+e8bob66LnSG+llLJ+z8wI94cHg=="
+      },
+      "Microsoft.CodeAnalysis.VersionCheckAnalyzer": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "xjLM3DRFZMan3nQyBQEM1mBw6VqQybi4iMJhMFW6Ic1E1GCvqJR3ABOwEL7WtQjDUzxyrGld9bASnAos7G/Xyg=="
+      },
+      "Microsoft.CodeCoverage": {
+        "type": "Transitive",
+        "resolved": "16.7.1",
+        "contentHash": "PhSppbk+kvAyD9yGJIcBRJ/XYwY+21YK88l22PGTtixaxNdjnx1idVKh88LCGwKaTL8HhlnQ41VmBiBdZJzIQw=="
+      },
+      "Microsoft.CodeQuality.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "zZ3miq6u22UFQKhfJyLnVEJ+DgeOopLh3eKJnKAcOetPP2hiv3wa7kHZlBDeTvtqJQiAQhAVbttket8XxjN1zw=="
+      },
+      "Microsoft.CSharp": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+      },
+      "Microsoft.Data.Sqlite.Core": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "+u4PeT1npi2EzhxGc5r1Z2z73zuXw+TlKVZm44WQhNCUw4LtUVDaxGSpUhrjW+X4snBCBfr4kT/uJyKnL4R4og==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2"
+        }
+      },
+      "Microsoft.DotNet.PlatformAbstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.6",
+        "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+      },
+      "Microsoft.EntityFrameworkCore": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "u3A2W0BvAuAF2jgW+WX+C+Sh8sMGX5Kl1hdA0gu6A/XSrZQoW/BUP4a/q2n3iitDGndaorqjAKx+Spb9gBto+w==",
+        "dependencies": {
+          "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
+          "Microsoft.Bcl.HashCode": "1.1.0",
+          "Microsoft.EntityFrameworkCore.Abstractions": "3.1.9",
+          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
+          "Microsoft.Extensions.Caching.Memory": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection": "3.1.9",
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "System.Collections.Immutable": "1.7.1",
+          "System.ComponentModel.Annotations": "4.7.0",
+          "System.Diagnostics.DiagnosticSource": "4.7.1"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "IR6Y4RJVlw0QXdWXjF3Kx9s1QLiicJus+BFBKr43lBtriV20j3yrWMoaZ9W1AUUgnicZXpXVcNfklqtmwb9Sxw=="
+      },
+      "Microsoft.EntityFrameworkCore.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "eXGyx/Lb1fiiKtnIStdxGrfBSSQg8oZytE10f1T/2xAx12W9dKB9U9fg05cwNCDC0S2CXILsmZHYaGqCSXVAqQ=="
+      },
+      "Microsoft.EntityFrameworkCore.Relational": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "7fhWuSfrCYlv/hvOX5OhbFJF/G9f8sifqTrJiYnAYLDOvNizwv7t9tFPD8JwaF3zM2S54O5/Vni2NxvwzSaW2w==",
+        "dependencies": {
+          "Microsoft.EntityFrameworkCore": "3.1.9"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Sqlite": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "sMFCWv/1UcsFQZeGQcbfPbEZKZ1oKZqWZXTbc7PEZVMIXu82nbavstdNQ84x5IBXJkxl8iW3zjChb/FRBr5uLQ==",
+        "dependencies": {
+          "Microsoft.EntityFrameworkCore.Sqlite.Core": "3.1.9",
+          "SQLitePCLRaw.bundle_e_sqlite3": "2.0.2"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Sqlite.Core": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Da6h8LdpJwKc1az9DMWt2Mt6gHXPRZqwiumV1Zx0AuM3EThyokVDzBGy2sti0AcBhcQMLJHPEr5R9xuiWvaYYQ==",
+        "dependencies": {
+          "Microsoft.Data.Sqlite.Core": "3.1.9",
+          "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+          "Microsoft.EntityFrameworkCore.Relational": "3.1.9",
+          "Microsoft.Extensions.DependencyModel": "3.1.6"
+        }
+      },
+      "Microsoft.Extensions.ApiDescription.Server": {
+        "type": "Transitive",
+        "resolved": "3.0.0",
+        "contentHash": "LH4OE/76F6sOCslif7+Xh3fS/wUUrE5ryeXAMcoCnuwOQGT5Smw0p57IgDh/pHgHaGz/e+AmEQb7pRgb++wt0w=="
+      },
+      "Microsoft.Extensions.Caching.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "/2QsPAsUZD4qvftZkUKHRRRryPDXWh606/iNXPLrulwHLMr9JNsKBJWVqylT3qU92nJok5VoqSblkY9mSyxFyg==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Caching.Memory": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "/JrVMVetX/kpJQUIlJ6NLQ3zbF0yyryXpo4+uFCqYIUZzgmWk8DS/zSKcyj1tQ3410+vhDEAPngxC+hg0IlJeg==",
+        "dependencies": {
+          "Microsoft.Extensions.Caching.Abstractions": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "lqdkOGNeTMKG981Q7yWGlRiFbIlsRwTlMMiybT+WOzUCFBS/wc25tZgh7Wm/uRoBbWefgvokzmnea7ZjmFedmA==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "vOJxPKczaHpXeZFrxARxYwsEulhEouXc5aZGgMdkhV/iEXX9/pfjqKk76rTG+4CsJjHV+G/4eMhvOIaQMHENNA==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration.Binder": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "BG6HcT7tARYakftqfQu+cLksgIWG1NdxMY+igI12hdZrUK+WjS973NiRyuao/U9yyTeM9NPwRnC61hCmG3G3jg==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "ORqfrAACcvTInie1oGola5uky344/PiNfgayTPuZWV4WnSfIQZJQm/ZLpGshJE3h7TqwYaYElGazK/yaM2bFLA==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "8PkcaPwiTPOhqshoY4+rQUbz86X6YpLDLUqXOezh7L2A3pgpBmeBBByYIffofBlvQxDdQ0zB2DkWjbZWyCxRWg=="
+      },
+      "Microsoft.Extensions.DependencyModel": {
+        "type": "Transitive",
+        "resolved": "3.1.6",
+        "contentHash": "/UlDKULIVkLQYn1BaHcy/rc91ApDxJb7T75HcCbGdqwvxhnRQRKM2di1E70iCPMF9zsr6f4EgQTotBGxFIfXmw==",
+        "dependencies": {
+          "System.Text.Json": "4.7.2"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Q4SGwEFZKiZbpzPgdGbQUULxtcH1zXMOwCPKSm6QwVcOCGshf3QLfBh+O/GyFH4B0RfZ16nKyeW1mMONlRyjUw==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Embedded": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "nSEa8bH3fVdTYGqK4twOKLxxgKIW3cz9g9mrzhPh/CmdvGJWKRTIlBIZi7lz+lqNQpxean5vbAo84R/mU+JpGA==",
+        "dependencies": {
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Physical": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "HWDSsblTCQp7EEJJmnLzttIhFGzDu+DGqBbOvGCdFT0+pkCuBkn3EiWpEEcm5WMTO5njmsbLSK9ZuUUf2zPsFg==",
+        "dependencies": {
+          "Microsoft.Extensions.FileProviders.Abstractions": "3.1.9",
+          "Microsoft.Extensions.FileSystemGlobbing": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.FileSystemGlobbing": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "5bnewG1aBiSESPNwcXGIxDDRN95uqdy+fqZZ8Z63Et5rRNlAwAfXHOrg+FTht7UjHobjvtjzquMCbAWhWEPHIw=="
+      },
+      "Microsoft.Extensions.Logging": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "+V3i0jCQCO6IIOf6e+fL0SqrZd2x/Krug9EEL1JHa9R03RsbEpltCtjVY5hxedyuyuQKwvLoR12sCfu/9XEUAw==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection": "3.1.9",
+          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Logging.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "W5fbF8qVR9SMVVJqDQLIR7meWbev6Pu/lbrm7LDNr4Sp7HOotr4k2UULTdFSXOi5aoDdkQZpWnq0ZSpjrR3tjg=="
+      },
+      "Microsoft.Extensions.Logging.Configuration": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "hv6XsGgikrbkolBJdF1usl9R/nrliC5mifMqHMEY9zWcCLwNkXMJiS8p0lbosrnpVAMi4PbNx39DB51Dqscd0w==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "Microsoft.Extensions.Options.ConfigurationExtensions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Logging.Console": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "8Dusl1rkDivmvLrwj6QAo917xMHPiDBzG3IG3agiyDdtsC/fRp+1VN5iIN+O09PtEaMged2OLA6wCDwfSTSTZw==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "Microsoft.Extensions.Logging.Configuration": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.ObjectPool": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "pJMOnxuqmG37OjccfvtqVoo3bQGoN+0EJUzzp7+2uxSdioER82caAk6Yi/z5aysapn5XENNIIa7SaYnYKSS69A==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "Microsoft.Extensions.Options": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "EIb3G1DL+Rl9MvJR7LjI1wCy2nfTN4y8MflbOftn1HLYQBj/Rwl8kUbGTrSFE01c99Wm4ETjWVsjqKcpFvhPng==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Options.ConfigurationExtensions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "u5jh7RW+Ev81YqK1ZoBG0lftp2MA9xqXiTiRL46XzaPj2ScNUyiVbzcVY0fPbE27UOpT2hj+yPzRSOMIIo55UA==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.PlatformAbstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.0",
+        "contentHash": "zyjUzrOmuevOAJpIo3Mt5GmpALVYCVdLZ99keMbmCxxgQH7oxzU58kGHzE6hAgYEiWsdfMJLjVR7r+vSmaJmtg==",
+        "dependencies": {
+          "System.AppContext": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "Microsoft.Extensions.Primitives": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "IrHecH0eGG7/XoeEtv++oLg/sJHRNyeCqlA9RhAo6ig4GpOTjtDr32sBMYuuLtUq8ALahneWkrOzoBAwJ4L4iA=="
+      },
+      "Microsoft.Extensions.WebEncoders": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "TClNvczWRxF6bVPhn5EK3Y3QNi5jTP68Qur+5Fk+MQLPeBI18WN7X145DDJ6bFeNOwgdCHl73lHs5uZp9ish1A==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.IdentityModel.JsonWebTokens": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==",
+        "dependencies": {
+          "Microsoft.IdentityModel.Tokens": "6.8.0"
+        }
+      },
+      "Microsoft.IdentityModel.Logging": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg=="
+      },
+      "Microsoft.IdentityModel.Tokens": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.5.0",
+          "Microsoft.IdentityModel.Logging": "6.8.0",
+          "System.Security.Cryptography.Cng": "4.5.0"
+        }
+      },
+      "Microsoft.Net.Http.Headers": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "2F8USh4hR5xppvaxtw2EStX74Ih+HhRj7aQD1uaB9JmTGy478F7t4VU+IdZXauEDrvS7LYAyyhmOExsUFK3PAw==",
+        "dependencies": {
+          "System.Buffers": "4.0.0",
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Contracts": "4.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Text.Encoding": "4.0.11"
+        }
+      },
+      "Microsoft.NetCore.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "6qptTHUu1Wfszuf83NhU0IoAb4j7YWOpJs6oc6S4G/nI6aGGWKH/Xi5Vs9L/8lrI74ijEEzPcIwafSQW5ASHtA=="
+      },
+      "Microsoft.NETCore.Platforms": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
+      },
+      "Microsoft.NETCore.Targets": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+      },
+      "Microsoft.NetFramework.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "JTfMic5fEFWICePbr7GXOGPranqS9Qxu2U/BZEcnnGbK1SFW8TxRyGp6O1L52xsbfOdqmzjc0t5ubhDrjj+Xpg=="
+      },
+      "Microsoft.TestPlatform.ObjectModel": {
+        "type": "Transitive",
+        "resolved": "16.7.1",
+        "contentHash": "FL+VpAC/nCCzj80MwX6L8gJD06u2m1SKcQQLAymDLFqNtgtI9h3J5n0mVN+s18qcMzybsmO9GK7rMuHYx11KMg==",
+        "dependencies": {
+          "NuGet.Frameworks": "5.0.0"
+        }
+      },
+      "Microsoft.TestPlatform.TestHost": {
+        "type": "Transitive",
+        "resolved": "16.7.1",
+        "contentHash": "mv7MnBDtqwQAjoH+AphE+Tu0dsF6x/c7Zs8umkb2McbvNALJdfBuWJQbiXGWqhNq7k8eMmnkNO6klJz4pkgekw==",
+        "dependencies": {
+          "Microsoft.TestPlatform.ObjectModel": "16.7.1",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "Microsoft.Win32.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "Namotion.Reflection": {
+        "type": "Transitive",
+        "resolved": "1.0.14",
+        "contentHash": "wuJGiFvGfehH2w7jAhMbCJt0/rvUuHyqSZn0sMhNTviDfBZRyX8LFlR/ndQcofkGWulPDfH5nKYTeGXE8xBHPA==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.3.0"
+        }
+      },
+      "NETStandard.Library": {
+        "type": "Transitive",
+        "resolved": "1.6.1",
+        "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.Win32.Primitives": "4.3.0",
+          "System.AppContext": "4.3.0",
+          "System.Collections": "4.3.0",
+          "System.Collections.Concurrent": "4.3.0",
+          "System.Console": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Diagnostics.Tools": "4.3.0",
+          "System.Diagnostics.Tracing": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Globalization.Calendars": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.IO.Compression": "4.3.0",
+          "System.IO.Compression.ZipFile": "4.3.0",
+          "System.IO.FileSystem": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Linq": "4.3.0",
+          "System.Linq.Expressions": "4.3.0",
+          "System.Net.Http": "4.3.0",
+          "System.Net.Primitives": "4.3.0",
+          "System.Net.Sockets": "4.3.0",
+          "System.ObjectModel": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Extensions": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+          "System.Runtime.Numerics": "4.3.0",
+          "System.Security.Cryptography.Algorithms": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Security.Cryptography.X509Certificates": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Text.Encoding.Extensions": "4.3.0",
+          "System.Text.RegularExpressions": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Threading.Tasks": "4.3.0",
+          "System.Threading.Timer": "4.3.0",
+          "System.Xml.ReaderWriter": "4.3.0",
+          "System.Xml.XDocument": "4.3.0"
+        }
+      },
+      "Newtonsoft.Json": {
+        "type": "Transitive",
+        "resolved": "12.0.2",
+        "contentHash": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA=="
+      },
+      "Newtonsoft.Json.Bson": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "5PYT/IqQ+UK31AmZiSS102R6EsTo+LGTSI8bp7WAUqDKaF4wHXD8U9u4WxTI1vc64tYi++8p3dk3WWNqPFgldw==",
+        "dependencies": {
+          "NETStandard.Library": "1.6.1",
+          "Newtonsoft.Json": "10.0.1"
+        }
+      },
+      "NJsonSchema": {
+        "type": "Transitive",
+        "resolved": "10.2.1",
+        "contentHash": "/BtWbYTusyoSgQkCB4eYijMfZotB/rfASDsl1k9evlkm5vlOP4s4Y09TOzBChU77d/qUABVYL1Xf+TB8E0Wfpw==",
+        "dependencies": {
+          "Namotion.Reflection": "1.0.14",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Annotations": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "/GO+35CjPYQTPS5/Q8udM5JAMEWVo8JsrkV2Uw3OW4/AJU9iOS7t6WJid6ZlkpLMjnW7oex9mvJ2EZNE4eOG/Q=="
+      },
+      "NSwag.AspNetCore": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "SNGlVSZoMyywBWueZBxl3B/nfaIM0fAcuNhTD/cfMKUn3Cn/Oi8d45HZY5vAPqczvppTbk4cZXyVwWDOfgiPbA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
+          "Microsoft.AspNetCore.StaticFiles": "1.0.4",
+          "Microsoft.Extensions.ApiDescription.Server": "3.0.0",
+          "Microsoft.Extensions.FileProviders.Embedded": "1.0.1",
+          "NSwag.Annotations": "13.8.2",
+          "NSwag.Core": "13.8.2",
+          "NSwag.Generation": "13.8.2",
+          "NSwag.Generation.AspNetCore": "13.8.2",
+          "System.IO.FileSystem": "4.3.0",
+          "System.Xml.XPath.XDocument": "4.0.1"
+        }
+      },
+      "NSwag.Core": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "Hm6pU9qFJuXLo3b27+JTXztfeuI/15Ob1sDsfUu4rchN0+bMogtn8Lia8KVbcalw/M+hXc0rWTFp5ueP23e+iA==",
+        "dependencies": {
+          "NJsonSchema": "10.2.1",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Generation": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "LBIrpHFRZeMMbqL1hdyGb7r8v+T52aOCARxwfAmzE+MlOHVpjsIxyNSXht9EzBFMbSH0tj7CK2Ugo7bm+zUssg==",
+        "dependencies": {
+          "NJsonSchema": "10.2.1",
+          "NSwag.Core": "13.8.2",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Generation.AspNetCore": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "0ydVv6OidspZ/MS6qmU8hswGtXwq5YZPg+2a2PHGD6jNp2Fef4j1wC3xa3hplDAq7cK+BgpyDKtvj9+X01+P5g==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.ApiExplorer": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
+          "NJsonSchema": "10.2.1",
+          "NSwag.Generation": "13.8.2"
+        }
+      },
+      "NuGet.Frameworks": {
+        "type": "Transitive",
+        "resolved": "5.0.0",
+        "contentHash": "c5JVjuVAm4f7E9Vj+v09Z9s2ZsqFDjBpcsyS3M9xRo0bEdm/LVZSzLxxNvfvAwRiiE8nwe1h2G4OwiwlzFKXlA=="
+      },
+      "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+      },
+      "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+      },
+      "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+      },
+      "runtime.native.System": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0"
+        }
+      },
+      "runtime.native.System.IO.Compression": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0"
+        }
+      },
+      "runtime.native.System.Net.Http": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0"
+        }
+      },
+      "runtime.native.System.Security.Cryptography.Apple": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+        "dependencies": {
+          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+        }
+      },
+      "runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+        "dependencies": {
+          "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+          "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+      },
+      "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+      },
+      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+      },
+      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+      },
+      "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+      },
+      "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+      },
+      "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+      },
+      "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+      },
+      "SixLabors.ImageSharp": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "DjLoFNdUfsDP7RhPpr5hcUhl1XiejqBML9uDWuOUwCkc0Y+sG9IJLLbqSOi9XeoWqPviwdcDm1F8nKdF0qTYIQ=="
+      },
+      "SQLitePCLRaw.bundle_e_sqlite3": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "OVPI/nh5AqfLCIKhAYqjCa6AHhc7oKApGcGM3UhMRSerFiBx58nSpGwxVFdMgjOCWZR+fA49nzsnKlWp5hFo8w==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2",
+          "SQLitePCLRaw.lib.e_sqlite3": "2.0.2",
+          "SQLitePCLRaw.provider.dynamic_cdecl": "2.0.2"
+        }
+      },
+      "SQLitePCLRaw.core": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "TFSBX426OelS1tkaVC254NVVlrJIe9YLhWPkEvuqJj2104QpmDmEYOhfdfDJD1E/2SmqDhoRw1ek5cQHj8olcQ==",
+        "dependencies": {
+          "System.Memory": "4.5.3"
+        }
+      },
+      "SQLitePCLRaw.lib.e_sqlite3": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "S+Tsqe/M7wsc+9HeediI6UHtBKf2X586aRwhi1aBVLGe0WxkAo52O9ZxwEy/v8XMLefcrEMupd2e9CDlIT6QCw=="
+      },
+      "SQLitePCLRaw.provider.dynamic_cdecl": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "ZSwacbKJUsxJEZxwT23uZVrGbaIvXcADZDz5Sr66fikO5eehdcceDncjzwzTzWfW13di8gpTpstx3WJSt/Ci5Q==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2"
+        }
+      },
+      "System.AppContext": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+        "dependencies": {
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Buffers": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Diagnostics.Tracing": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Collections": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Collections.Concurrent": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Diagnostics.Tracing": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.Collections.Immutable": {
+        "type": "Transitive",
+        "resolved": "1.7.1",
+        "contentHash": "B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q=="
+      },
+      "System.Collections.NonGeneric": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Collections.Specialized": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
+        "dependencies": {
+          "System.Collections.NonGeneric": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Globalization.Extensions": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.ComponentModel": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
+        "dependencies": {
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.ComponentModel.Annotations": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ=="
+      },
+      "System.ComponentModel.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
+        "dependencies": {
+          "System.ComponentModel": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.ComponentModel.TypeConverter": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Collections.NonGeneric": "4.3.0",
+          "System.Collections.Specialized": "4.3.0",
+          "System.ComponentModel": "4.3.0",
+          "System.ComponentModel.Primitives": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Linq": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Extensions": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Reflection.TypeExtensions": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Configuration.ConfigurationManager": {
+        "type": "Transitive",
+        "resolved": "4.4.0",
+        "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==",
+        "dependencies": {
+          "System.Security.Cryptography.ProtectedData": "4.4.0"
+        }
+      },
+      "System.Console": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Text.Encoding": "4.3.0"
+        }
+      },
+      "System.Diagnostics.Contracts": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "HvQQjy712vnlpPxaloZYkuE78Gn353L0SJLJVeLcNASeg9c4qla2a1Xq8I7B3jZoDzKPtHTkyVO7AZ5tpeQGuA==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Diagnostics.Debug": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Diagnostics.DiagnosticSource": {
+        "type": "Transitive",
+        "resolved": "4.7.1",
+        "contentHash": "j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw=="
+      },
+      "System.Diagnostics.Tools": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Diagnostics.TraceSource": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0",
+          "runtime.native.System": "4.3.0"
+        }
+      },
+      "System.Diagnostics.Tracing": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Dynamic.Runtime": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Linq": "4.3.0",
+          "System.Linq.Expressions": "4.3.0",
+          "System.ObjectModel": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Emit": "4.3.0",
+          "System.Reflection.Emit.ILGeneration": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Reflection.TypeExtensions": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Globalization": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Globalization.Calendars": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Globalization": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Globalization.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Globalization": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0"
+        }
+      },
+      "System.IdentityModel.Tokens.Jwt": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==",
+        "dependencies": {
+          "Microsoft.IdentityModel.JsonWebTokens": "6.8.0",
+          "Microsoft.IdentityModel.Tokens": "6.8.0"
+        }
+      },
+      "System.IO": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.IO.Compression": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Buffers": "4.3.0",
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Threading.Tasks": "4.3.0",
+          "runtime.native.System": "4.3.0",
+          "runtime.native.System.IO.Compression": "4.3.0"
+        }
+      },
+      "System.IO.Compression.ZipFile": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+        "dependencies": {
+          "System.Buffers": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.IO.Compression": "4.3.0",
+          "System.IO.FileSystem": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Text.Encoding": "4.3.0"
+        }
+      },
+      "System.IO.FileSystem": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.IO.FileSystem.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+        "dependencies": {
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.IO.Pipelines": {
+        "type": "Transitive",
+        "resolved": "4.7.3",
+        "contentHash": "zykThu9scJyg2Yeg27GMZCbjzniIsmjtNP5x6kQCd/8rEeKXRy20fP2NOMS7xQ+0pS/E85LZQA+K1aoQLxiUdw=="
+      },
+      "System.Linq": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0"
+        }
+      },
+      "System.Linq.Expressions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Linq": "4.3.0",
+          "System.ObjectModel": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Emit": "4.3.0",
+          "System.Reflection.Emit.ILGeneration": "4.3.0",
+          "System.Reflection.Emit.Lightweight": "4.3.0",
+          "System.Reflection.Extensions": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Reflection.TypeExtensions": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Memory": {
+        "type": "Transitive",
+        "resolved": "4.5.3",
+        "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+      },
+      "System.Net.Http": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Diagnostics.DiagnosticSource": "4.3.0",
+          "System.Diagnostics.Tracing": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Globalization.Extensions": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.IO.FileSystem": "4.3.0",
+          "System.Net.Primitives": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Security.Cryptography.Algorithms": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.OpenSsl": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Security.Cryptography.X509Certificates": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Threading.Tasks": "4.3.0",
+          "runtime.native.System": "4.3.0",
+          "runtime.native.System.Net.Http": "4.3.0",
+          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "System.Net.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Handles": "4.3.0"
+        }
+      },
+      "System.Net.Sockets": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.Net.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.Net.WebSockets": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "2KJo8hir6Edi9jnMDAMhiJoI691xRBmKcbNpwjrvpIMOCTYOtBpSsSEGBxBDV7PKbasJNaFp1+PZz1D7xS41Hg==",
+        "dependencies": {
+          "Microsoft.Win32.Primitives": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.ObjectModel": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Reflection": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Reflection.Emit": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
+      },
+      "System.Reflection.Emit.ILGeneration": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+        "dependencies": {
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Reflection.Emit.Lightweight": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+        "dependencies": {
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Emit.ILGeneration": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Reflection.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Reflection": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Reflection.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Reflection.TypeExtensions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
+        "dependencies": {
+          "System.Reflection": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Resources.ResourceManager": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Globalization": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Runtime": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0"
+        }
+      },
+      "System.Runtime.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Runtime.Handles": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Runtime.InteropServices": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Handles": "4.3.0"
+        }
+      },
+      "System.Runtime.InteropServices.RuntimeInformation": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+        "dependencies": {
+          "System.Reflection": "4.3.0",
+          "System.Reflection.Extensions": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Threading": "4.3.0",
+          "runtime.native.System": "4.3.0"
+        }
+      },
+      "System.Runtime.Numerics": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+        "dependencies": {
+          "System.Globalization": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0"
+        }
+      },
+      "System.Runtime.Serialization.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.1.1",
+        "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+        "dependencies": {
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Security.Claims": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "4Jlp0OgJLS/Voj1kyFP6MJlIYp3crgfH8kNQk2p7+4JYfc1aAmh9PZyAMMbDhuoolGNtux9HqSOazsioRiDvCw==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Security.Principal": "4.0.1"
+        }
+      },
+      "System.Security.Cryptography.Algorithms": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Collections": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Runtime.Numerics": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "System.Security.Cryptography.Cng": {
+        "type": "Transitive",
+        "resolved": "4.5.0",
+        "contentHash": "WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A=="
+      },
+      "System.Security.Cryptography.Csp": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Security.Cryptography.Algorithms": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0"
+        }
+      },
+      "System.Security.Cryptography.Encoding": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Collections": "4.3.0",
+          "System.Collections.Concurrent": "4.3.0",
+          "System.Linq": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Runtime.Numerics": "4.3.0",
+          "System.Security.Cryptography.Algorithms": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "System.Security.Cryptography.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.Security.Cryptography.ProtectedData": {
+        "type": "Transitive",
+        "resolved": "4.4.0",
+        "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
+      },
+      "System.Security.Cryptography.X509Certificates": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.Globalization.Calendars": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.IO.FileSystem": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Runtime.Numerics": "4.3.0",
+          "System.Security.Cryptography.Algorithms": "4.3.0",
+          "System.Security.Cryptography.Cng": "4.3.0",
+          "System.Security.Cryptography.Csp": "4.3.0",
+          "System.Security.Cryptography.Encoding": "4.3.0",
+          "System.Security.Cryptography.OpenSsl": "4.3.0",
+          "System.Security.Cryptography.Primitives": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0",
+          "runtime.native.System": "4.3.0",
+          "runtime.native.System.Net.Http": "4.3.0",
+          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+        }
+      },
+      "System.Security.Principal": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "On+SKhXY5rzxh/S8wlH1Rm0ogBlu7zyHNxeNBiXauNrhHRXAe9EuX8Yl5IOzLPGU5Z4kLWHMvORDOCG8iu9hww==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Text.Encoding": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Text.Encoding.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0",
+          "System.Text.Encoding": "4.3.0"
+        }
+      },
+      "System.Text.Encodings.Web": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "GgJDO6/1bW6kkttxIiPK2jsqllQ3ifaeeBAJJrcoJq0lAclIZsAZZdEqi6JHq+QLZXL2UsjyWb8K8EOH7nOSPw==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Text.Json": {
+        "type": "Transitive",
+        "resolved": "4.7.2",
+        "contentHash": "TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg=="
+      },
+      "System.Text.RegularExpressions": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+        "dependencies": {
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Threading": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+        "dependencies": {
+          "System.Runtime": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.Threading.Tasks": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Threading.Tasks.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.5.1",
+        "contentHash": "WSKUTtLhPR8gllzIWO2x6l4lmAIfbyMAiTlyXAis4QBDonXK4b4S6F8zGARX4/P8wH3DH+sLdhamCiHn+fTU1A=="
+      },
+      "System.Threading.Timer": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Xml.ReaderWriter": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.IO.FileSystem": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Runtime.InteropServices": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Text.Encoding.Extensions": "4.3.0",
+          "System.Text.RegularExpressions": "4.3.0",
+          "System.Threading.Tasks": "4.3.0",
+          "System.Threading.Tasks.Extensions": "4.3.0"
+        }
+      },
+      "System.Xml.XDocument": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Diagnostics.Tools": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Reflection": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Xml.ReaderWriter": "4.3.0"
+        }
+      },
+      "System.Xml.XmlDocument": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
+        "dependencies": {
+          "System.Collections": "4.3.0",
+          "System.Diagnostics.Debug": "4.3.0",
+          "System.Globalization": "4.3.0",
+          "System.IO": "4.3.0",
+          "System.Resources.ResourceManager": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Extensions": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading": "4.3.0",
+          "System.Xml.ReaderWriter": "4.3.0"
+        }
+      },
+      "System.Xml.XPath": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Xml.ReaderWriter": "4.0.11"
+        }
+      },
+      "System.Xml.XPath.XDocument": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Xml.ReaderWriter": "4.0.11",
+          "System.Xml.XDocument": "4.0.11",
+          "System.Xml.XPath": "4.0.1"
+        }
+      },
+      "xunit.abstractions": {
+        "type": "Transitive",
+        "resolved": "2.0.3",
+        "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+      },
+      "xunit.analyzers": {
+        "type": "Transitive",
+        "resolved": "0.10.0",
+        "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg=="
+      },
+      "xunit.assert": {
+        "type": "Transitive",
+        "resolved": "2.4.1",
+        "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==",
+        "dependencies": {
+          "NETStandard.Library": "1.6.1"
+        }
+      },
+      "xunit.core": {
+        "type": "Transitive",
+        "resolved": "2.4.1",
+        "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==",
+        "dependencies": {
+          "xunit.extensibility.core": "[2.4.1]",
+          "xunit.extensibility.execution": "[2.4.1]"
+        }
+      },
+      "xunit.extensibility.core": {
+        "type": "Transitive",
+        "resolved": "2.4.1",
+        "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==",
+        "dependencies": {
+          "NETStandard.Library": "1.6.1",
+          "xunit.abstractions": "2.0.3"
+        }
+      },
+      "xunit.extensibility.execution": {
+        "type": "Transitive",
+        "resolved": "2.4.1",
+        "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==",
+        "dependencies": {
+          "NETStandard.Library": "1.6.1",
+          "xunit.extensibility.core": "[2.4.1]"
+        }
+      },
+      "timeline": {
+        "type": "Project",
+        "dependencies": {
+          "AutoMapper": "10.1.1",
+          "AutoMapper.Extensions.Microsoft.DependencyInjection": "8.1.0",
+          "Microsoft.AspNetCore.SpaServices.Extensions": "3.1.9",
+          "Microsoft.EntityFrameworkCore": "3.1.9",
+          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
+          "Microsoft.EntityFrameworkCore.Sqlite": "3.1.9",
+          "NSwag.AspNetCore": "13.8.2",
+          "SixLabors.ImageSharp": "1.0.1",
+          "System.IdentityModel.Tokens.Jwt": "6.8.0",
+          "Timeline.ErrorCodes": "1.0.0"
+        }
+      },
+      "timeline.errorcodes": {
+        "type": "Project"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/BackEnd/Timeline.sln b/BackEnd/Timeline.sln
new file mode 100644
index 00000000..40a32ee9
--- /dev/null
+++ b/BackEnd/Timeline.sln
@@ -0,0 +1,42 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29709.97
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline", "Timeline\Timeline.csproj", "{A34D323C-5233-4754-B14F-4819CE9C27CA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.Tests", "Timeline.Tests\Timeline.Tests.csproj", "{3D76D578-37BC-43C2-97BF-9C6DD3825F10}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.ErrorCodes", "Timeline.ErrorCodes\Timeline.ErrorCodes.csproj", "{1044E3B0-1010-47CA-956E-B6E8FE87055B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.ErrorCodes.CodeGenerator", "Timeline.ErrorCodes.CodeGenerator\Timeline.ErrorCodes.CodeGenerator.csproj", "{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {9A7526E5-E68F-465C-9E0F-88BF6E040F14}
+	EndGlobalSection
+EndGlobal
diff --git a/BackEnd/Timeline/Auth/Attribute.cs b/BackEnd/Timeline/Auth/Attribute.cs
new file mode 100644
index 00000000..86d0109b
--- /dev/null
+++ b/BackEnd/Timeline/Auth/Attribute.cs
@@ -0,0 +1,21 @@
+using Microsoft.AspNetCore.Authorization;
+using Timeline.Entities;
+
+namespace Timeline.Auth
+{
+    public class AdminAuthorizeAttribute : AuthorizeAttribute
+    {
+        public AdminAuthorizeAttribute()
+        {
+            Roles = UserRoles.Admin;
+        }
+    }
+
+    public class UserAuthorizeAttribute : AuthorizeAttribute
+    {
+        public UserAuthorizeAttribute()
+        {
+            Roles = UserRoles.User;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Auth/MyAuthenticationHandler.cs b/BackEnd/Timeline/Auth/MyAuthenticationHandler.cs
new file mode 100644
index 00000000..3c97c329
--- /dev/null
+++ b/BackEnd/Timeline/Auth/MyAuthenticationHandler.cs
@@ -0,0 +1,100 @@
+using Microsoft.AspNetCore.Authentication;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using Microsoft.Net.Http.Headers;
+using System;
+using System.Globalization;
+using System.Linq;
+using System.Security.Claims;
+using System.Text.Encodings.Web;
+using System.Threading.Tasks;
+using Timeline.Services;
+using static Timeline.Resources.Authentication.AuthHandler;
+
+namespace Timeline.Auth
+{
+    public static class AuthenticationConstants
+    {
+        public const string Scheme = "Bearer";
+        public const string DisplayName = "My Jwt Auth Scheme";
+    }
+
+    public class MyAuthenticationOptions : AuthenticationSchemeOptions
+    {
+        /// <summary>
+        /// The query param key to search for token. If null then query params are not searched for token. Default to <c>"token"</c>.
+        /// </summary>
+        public string TokenQueryParamKey { get; set; } = "token";
+    }
+
+    public class MyAuthenticationHandler : AuthenticationHandler<MyAuthenticationOptions>
+    {
+        private readonly ILogger<MyAuthenticationHandler> _logger;
+        private readonly IUserTokenManager _userTokenManager;
+
+        public MyAuthenticationHandler(IOptionsMonitor<MyAuthenticationOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, IUserTokenManager userTokenManager)
+            : base(options, logger, encoder, clock)
+        {
+            _logger = logger.CreateLogger<MyAuthenticationHandler>();
+            _userTokenManager = userTokenManager;
+        }
+
+        // return null if no token is found
+        private string? ExtractToken()
+        {
+            // check the authorization header
+            string header = Request.Headers[HeaderNames.Authorization];
+            if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.InvariantCultureIgnoreCase))
+            {
+                var token = header.Substring("Bearer ".Length).Trim();
+                _logger.LogInformation(LogTokenFoundInHeader, token);
+                return token;
+            }
+
+            // check the query params
+            var paramQueryKey = Options.TokenQueryParamKey;
+            if (!string.IsNullOrEmpty(paramQueryKey))
+            {
+                string token = Request.Query[paramQueryKey];
+                if (!string.IsNullOrEmpty(token))
+                {
+                    _logger.LogInformation(LogTokenFoundInQuery, paramQueryKey, token);
+                    return token;
+                }
+            }
+
+            // not found anywhere then return null
+            return null;
+        }
+
+        protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
+        {
+            var token = ExtractToken();
+            if (string.IsNullOrEmpty(token))
+            {
+                _logger.LogInformation(LogTokenNotFound);
+                return AuthenticateResult.NoResult();
+            }
+
+            try
+            {
+                var userInfo = await _userTokenManager.VerifyToken(token);
+
+                var identity = new ClaimsIdentity(AuthenticationConstants.Scheme);
+                identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userInfo.Id!.Value.ToString(CultureInfo.InvariantCulture), ClaimValueTypes.Integer64));
+                identity.AddClaim(new Claim(identity.NameClaimType, userInfo.Username, ClaimValueTypes.String));
+                identity.AddClaims(UserRoleConvert.ToArray(userInfo.Administrator!.Value).Select(role => new Claim(identity.RoleClaimType, role, ClaimValueTypes.String)));
+
+                var principal = new ClaimsPrincipal();
+                principal.AddIdentity(identity);
+
+                return AuthenticateResult.Success(new AuthenticationTicket(principal, AuthenticationConstants.Scheme));
+            }
+            catch (Exception e) when (!(e is ArgumentException))
+            {
+                _logger.LogInformation(e, LogTokenValidationFail);
+                return AuthenticateResult.Fail(e);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Auth/PrincipalExtensions.cs b/BackEnd/Timeline/Auth/PrincipalExtensions.cs
new file mode 100644
index 00000000..ad7a887f
--- /dev/null
+++ b/BackEnd/Timeline/Auth/PrincipalExtensions.cs
@@ -0,0 +1,13 @@
+﻿using System.Security.Principal;
+using Timeline.Entities;
+
+namespace Timeline.Auth
+{
+    internal static class PrincipalExtensions
+    {
+        internal static bool IsAdministrator(this IPrincipal principal)
+        {
+            return principal.IsInRole(UserRoles.Admin);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
new file mode 100644
index 00000000..df281adb
--- /dev/null
+++ b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs
@@ -0,0 +1,13 @@
+﻿namespace Timeline.Configs
+{
+    public static class ApplicationConfiguration
+    {
+        public const string WorkDirKey = "WorkDir";
+        public const string DefaultWorkDir = "/timeline";
+        public const string DatabaseFileName = "timeline.db";
+        public const string DatabaseBackupDirectoryName = "backup";
+        public const string DisableFrontEndKey = "DisableFrontEnd";
+        public const string UseMockFrontEndKey = "UseMockFrontEnd";
+        public const string UseProxyFrontEndKey = "UseProxyFrontEnd";
+    }
+}
diff --git a/BackEnd/Timeline/Configs/JwtConfiguration.cs b/BackEnd/Timeline/Configs/JwtConfiguration.cs
new file mode 100644
index 00000000..af8052de
--- /dev/null
+++ b/BackEnd/Timeline/Configs/JwtConfiguration.cs
@@ -0,0 +1,14 @@
+﻿namespace Timeline.Configs
+{
+    public class JwtConfiguration
+    {
+        public string Issuer { get; set; } = default!;
+        public string Audience { get; set; } = default!;
+
+        /// <summary>
+        /// Set the default value of expire offset of jwt token.
+        /// Unit is second. Default is 3600 * 24 seconds, aka 1 day.
+        /// </summary>
+        public long DefaultExpireOffset { get; set; } = 3600 * 24;
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/ControllerAuthExtensions.cs b/BackEnd/Timeline/Controllers/ControllerAuthExtensions.cs
new file mode 100644
index 00000000..00a65454
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/ControllerAuthExtensions.cs
@@ -0,0 +1,40 @@
+﻿using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Security.Claims;
+using Timeline.Auth;
+using static Timeline.Resources.Controllers.ControllerAuthExtensions;
+
+namespace Timeline.Controllers
+{
+    public static class ControllerAuthExtensions
+    {
+        public static bool IsAdministrator(this ControllerBase controller)
+        {
+            return controller.User != null && controller.User.IsAdministrator();
+        }
+
+        public static long GetUserId(this ControllerBase controller)
+        {
+            var claim = controller.User.FindFirst(ClaimTypes.NameIdentifier);
+            if (claim == null)
+                throw new InvalidOperationException(ExceptionNoUserIdentifierClaim);
+
+            if (long.TryParse(claim.Value, out var value))
+                return value;
+
+            throw new InvalidOperationException(ExceptionUserIdentifierClaimBadFormat);
+        }
+
+        public static long? GetOptionalUserId(this ControllerBase controller)
+        {
+            var claim = controller.User.FindFirst(ClaimTypes.NameIdentifier);
+            if (claim == null)
+                return null;
+
+            if (long.TryParse(claim.Value, out var value))
+                return value;
+
+            throw new InvalidOperationException(ExceptionUserIdentifierClaimBadFormat);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/Testing/TestingAuthController.cs b/BackEnd/Timeline/Controllers/Testing/TestingAuthController.cs
new file mode 100644
index 00000000..4d3b3ec7
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/Testing/TestingAuthController.cs
@@ -0,0 +1,32 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Timeline.Auth;
+
+namespace Timeline.Controllers.Testing
+{
+    [Route("testing/auth")]
+    [ApiController]
+    public class TestingAuthController : Controller
+    {
+        [HttpGet("[action]")]
+        [Authorize]
+        public ActionResult Authorize()
+        {
+            return Ok();
+        }
+
+        [HttpGet("[action]")]
+        [UserAuthorize]
+        public new ActionResult User()
+        {
+            return Ok();
+        }
+
+        [HttpGet("[action]")]
+        [AdminAuthorize]
+        public ActionResult Admin()
+        {
+            return Ok();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/TimelineController.cs b/BackEnd/Timeline/Controllers/TimelineController.cs
new file mode 100644
index 00000000..9a3147ea
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/TimelineController.cs
@@ -0,0 +1,491 @@
+﻿using AutoMapper;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Threading.Tasks;
+using Timeline.Filters;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Models.Http;
+using Timeline.Models.Validation;
+using Timeline.Services;
+using Timeline.Services.Exceptions;
+
+namespace Timeline.Controllers
+{
+    /// <summary>
+    /// Operations about timeline.
+    /// </summary>
+    [ApiController]
+    [CatchTimelineNotExistException]
+    [ProducesErrorResponseType(typeof(CommonResponse))]
+    public class TimelineController : Controller
+    {
+        private readonly ILogger<TimelineController> _logger;
+
+        private readonly IUserService _userService;
+        private readonly ITimelineService _service;
+
+        private readonly IMapper _mapper;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public TimelineController(ILogger<TimelineController> logger, IUserService userService, ITimelineService service, IMapper mapper)
+        {
+            _logger = logger;
+            _userService = userService;
+            _service = service;
+            _mapper = mapper;
+        }
+
+        /// <summary>
+        /// List all timelines.
+        /// </summary>
+        /// <param name="relate">A username. If set, only timelines related to the user will return.</param>
+        /// <param name="relateType">Specify the relation type, may be 'own' or 'join'. If not set, both type will return.</param>
+        /// <param name="visibility">"Private" or "Register" or "Public". If set, only timelines whose visibility is specified one will return.</param>
+        /// <returns>The timeline list.</returns>
+        [HttpGet("timelines")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        public async Task<ActionResult<List<TimelineInfo>>> TimelineList([FromQuery][Username] string? relate, [FromQuery][RegularExpression("(own)|(join)")] string? relateType, [FromQuery] string? visibility)
+        {
+            List<TimelineVisibility>? visibilityFilter = null;
+            if (visibility != null)
+            {
+                visibilityFilter = new List<TimelineVisibility>();
+                var items = visibility.Split('|');
+                foreach (var item in items)
+                {
+                    if (item.Equals(nameof(TimelineVisibility.Private), StringComparison.OrdinalIgnoreCase))
+                    {
+                        if (!visibilityFilter.Contains(TimelineVisibility.Private))
+                            visibilityFilter.Add(TimelineVisibility.Private);
+                    }
+                    else if (item.Equals(nameof(TimelineVisibility.Register), StringComparison.OrdinalIgnoreCase))
+                    {
+                        if (!visibilityFilter.Contains(TimelineVisibility.Register))
+                            visibilityFilter.Add(TimelineVisibility.Register);
+                    }
+                    else if (item.Equals(nameof(TimelineVisibility.Public), StringComparison.OrdinalIgnoreCase))
+                    {
+                        if (!visibilityFilter.Contains(TimelineVisibility.Public))
+                            visibilityFilter.Add(TimelineVisibility.Public);
+                    }
+                    else
+                    {
+                        return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_QueryVisibilityUnknown, item));
+                    }
+                }
+            }
+
+            TimelineUserRelationship? relationship = null;
+            if (relate != null)
+            {
+                try
+                {
+                    var relatedUserId = await _userService.GetUserIdByUsername(relate);
+
+                    relationship = new TimelineUserRelationship(relateType switch
+                    {
+                        "own" => TimelineUserRelationshipType.Own,
+                        "join" => TimelineUserRelationshipType.Join,
+                        _ => TimelineUserRelationshipType.Default
+                    }, relatedUserId);
+                }
+                catch (UserNotExistException)
+                {
+                    return BadRequest(ErrorResponse.TimelineController.QueryRelateNotExist());
+                }
+            }
+
+            var timelines = await _service.GetTimelines(relationship, visibilityFilter);
+            var result = _mapper.Map<List<TimelineInfo>>(timelines);
+            return result;
+        }
+
+        /// <summary>
+        /// Get info of a timeline.
+        /// </summary>
+        /// <param name="name">The timeline name.</param>
+        /// <param name="checkUniqueId">A unique id. If specified and if-modified-since is also specified, the timeline info will return when unique id is not the specified one even if it is not modified.</param>
+        /// <param name="queryIfModifiedSince">Same effect as If-Modified-Since header and take precedence than it.</param>
+        /// <param name="headerIfModifiedSince">If specified, will return 304 if not modified.</param>
+        /// <returns>The timeline info.</returns>
+        [HttpGet("timelines/{name}")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status304NotModified)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<ActionResult<TimelineInfo>> TimelineGet([FromRoute][GeneralTimelineName] string name, [FromQuery] string? checkUniqueId, [FromQuery(Name = "ifModifiedSince")] DateTime? queryIfModifiedSince, [FromHeader(Name = "If-Modified-Since")] DateTime? headerIfModifiedSince)
+        {
+            DateTime? ifModifiedSince = null;
+            if (queryIfModifiedSince.HasValue)
+            {
+                ifModifiedSince = queryIfModifiedSince.Value;
+            }
+            else if (headerIfModifiedSince != null)
+            {
+                ifModifiedSince = headerIfModifiedSince.Value;
+            }
+
+            bool returnNotModified = false;
+
+            if (ifModifiedSince.HasValue)
+            {
+                var lastModified = await _service.GetTimelineLastModifiedTime(name);
+                if (lastModified < ifModifiedSince.Value)
+                {
+                    if (checkUniqueId != null)
+                    {
+                        var uniqueId = await _service.GetTimelineUniqueId(name);
+                        if (uniqueId == checkUniqueId)
+                        {
+                            returnNotModified = true;
+                        }
+                    }
+                    else
+                    {
+                        returnNotModified = true;
+                    }
+                }
+            }
+
+            if (returnNotModified)
+            {
+                return StatusCode(StatusCodes.Status304NotModified);
+            }
+            else
+            {
+                var timeline = await _service.GetTimeline(name);
+                var result = _mapper.Map<TimelineInfo>(timeline);
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// Get posts of a timeline.
+        /// </summary>
+        /// <param name="name">The name of the timeline.</param>
+        /// <param name="modifiedSince">If set, only posts modified since the time will return.</param>
+        /// <param name="includeDeleted">If set to true, deleted post will also return.</param>
+        /// <returns>The post list.</returns>
+        [HttpGet("timelines/{name}/posts")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<ActionResult<List<TimelinePostInfo>>> PostListGet([FromRoute][GeneralTimelineName] string name, [FromQuery] DateTime? modifiedSince, [FromQuery] bool? includeDeleted)
+        {
+            if (!this.IsAdministrator() && !await _service.HasReadPermission(name, this.GetOptionalUserId()))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            List<TimelinePost> posts = await _service.GetPosts(name, modifiedSince, includeDeleted ?? false);
+
+            var result = _mapper.Map<List<TimelinePostInfo>>(posts);
+            return result;
+        }
+
+        /// <summary>
+        /// Get the data of a post. Usually a image post.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="id">The id of the post.</param>
+        /// <param name="ifNoneMatch">If-None-Match header.</param>
+        /// <returns>The data.</returns>
+        [HttpGet("timelines/{name}/posts/{id}/data")]
+        [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")]
+        [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)]
+        [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<IActionResult> PostDataGet([FromRoute][GeneralTimelineName] string name, [FromRoute] long id, [FromHeader(Name = "If-None-Match")] string? ifNoneMatch)
+        {
+            _ = ifNoneMatch;
+            if (!this.IsAdministrator() && !await _service.HasReadPermission(name, this.GetOptionalUserId()))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            try
+            {
+                return await DataCacheHelper.GenerateActionResult(this, () => _service.GetPostDataETag(name, id), async () =>
+                {
+                    var data = await _service.GetPostData(name, id);
+                    return data;
+                });
+            }
+            catch (TimelinePostNotExistException)
+            {
+                return NotFound(ErrorResponse.TimelineController.PostNotExist());
+            }
+            catch (TimelinePostNoDataException)
+            {
+                return BadRequest(ErrorResponse.TimelineController.PostNoData());
+            }
+        }
+
+        /// <summary>
+        /// Create a new post.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="body"></param>
+        /// <returns>Info of new post.</returns>
+        [HttpPost("timelines/{name}/posts")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<TimelinePostInfo>> PostPost([FromRoute][GeneralTimelineName] string name, [FromBody] TimelinePostCreateRequest body)
+        {
+            var id = this.GetUserId();
+            if (!this.IsAdministrator() && !await _service.IsMemberOf(name, id))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            var content = body.Content;
+
+            TimelinePost post;
+
+            if (content.Type == TimelinePostContentTypes.Text)
+            {
+                var text = content.Text;
+                if (text == null)
+                {
+                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_TextContentTextRequired));
+                }
+                post = await _service.CreateTextPost(name, id, text, body.Time);
+            }
+            else if (content.Type == TimelinePostContentTypes.Image)
+            {
+                var base64Data = content.Data;
+                if (base64Data == null)
+                {
+                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataRequired));
+                }
+                byte[] data;
+                try
+                {
+                    data = Convert.FromBase64String(base64Data);
+                }
+                catch (FormatException)
+                {
+                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataNotBase64));
+                }
+
+                try
+                {
+                    post = await _service.CreateImagePost(name, id, data, body.Time);
+                }
+                catch (ImageException)
+                {
+                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataNotImage));
+                }
+            }
+            else
+            {
+                return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ContentUnknownType));
+            }
+
+            var result = _mapper.Map<TimelinePostInfo>(post);
+            return result;
+        }
+
+        /// <summary>
+        /// Delete a post.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="id">Post id.</param>
+        /// <returns>Info of deletion.</returns>
+        [HttpDelete("timelines/{name}/posts/{id}")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<CommonDeleteResponse>> PostDelete([FromRoute][GeneralTimelineName] string name, [FromRoute] long id)
+        {
+            if (!this.IsAdministrator() && !await _service.HasPostModifyPermission(name, id, this.GetUserId()))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+            try
+            {
+                await _service.DeletePost(name, id);
+                return CommonDeleteResponse.Delete();
+            }
+            catch (TimelinePostNotExistException)
+            {
+                return CommonDeleteResponse.NotExist();
+            }
+        }
+
+        /// <summary>
+        /// Change properties of a timeline.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="body"></param>
+        /// <returns>The new info.</returns>
+        [HttpPatch("timelines/{name}")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<TimelineInfo>> TimelinePatch([FromRoute][GeneralTimelineName] string name, [FromBody] TimelinePatchRequest body)
+        {
+            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+            await _service.ChangeProperty(name, _mapper.Map<TimelineChangePropertyRequest>(body));
+            var timeline = await _service.GetTimeline(name);
+            var result = _mapper.Map<TimelineInfo>(timeline);
+            return result;
+        }
+
+        /// <summary>
+        /// Add a member to timeline.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="member">The new member's username.</param>
+        [HttpPut("timelines/{name}/members/{member}")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult> TimelineMemberPut([FromRoute][GeneralTimelineName] string name, [FromRoute][Username] string member)
+        {
+            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            try
+            {
+                await _service.ChangeMember(name, new List<string> { member }, null);
+                return Ok();
+            }
+            catch (UserNotExistException)
+            {
+                return BadRequest(ErrorResponse.TimelineController.MemberPut_NotExist());
+            }
+        }
+
+        /// <summary>
+        /// Remove a member from timeline.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <param name="member">The member's username.</param>
+        [HttpDelete("timelines/{name}/members/{member}")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult> TimelineMemberDelete([FromRoute][GeneralTimelineName] string name, [FromRoute][Username] string member)
+        {
+            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            try
+            {
+                await _service.ChangeMember(name, null, new List<string> { member });
+                return Ok(CommonDeleteResponse.Delete());
+            }
+            catch (UserNotExistException)
+            {
+                return Ok(CommonDeleteResponse.NotExist());
+            }
+        }
+
+        /// <summary>
+        /// Create a timeline.
+        /// </summary>
+        /// <param name="body"></param>
+        /// <returns>Info of new timeline.</returns>
+        [HttpPost("timelines")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        public async Task<ActionResult<TimelineInfo>> TimelineCreate([FromBody] TimelineCreateRequest body)
+        {
+            var userId = this.GetUserId();
+
+            try
+            {
+                var timeline = await _service.CreateTimeline(body.Name, userId);
+                var result = _mapper.Map<TimelineInfo>(timeline);
+                return result;
+            }
+            catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.Timeline)
+            {
+                return BadRequest(ErrorResponse.TimelineController.NameConflict());
+            }
+        }
+
+        /// <summary>
+        /// Delete a timeline.
+        /// </summary>
+        /// <param name="name">Timeline name.</param>
+        /// <returns>Info of deletion.</returns>
+        [HttpDelete("timelines/{name}")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<CommonDeleteResponse>> TimelineDelete([FromRoute][TimelineName] string name)
+        {
+            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            try
+            {
+                await _service.DeleteTimeline(name);
+                return CommonDeleteResponse.Delete();
+            }
+            catch (TimelineNotExistException)
+            {
+                return CommonDeleteResponse.NotExist();
+            }
+        }
+
+        [HttpPost("timelineop/changename")]
+        [Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<TimelineInfo>> TimelineOpChangeName([FromBody] TimelineChangeNameRequest body)
+        {
+            if (!this.IsAdministrator() && !(await _service.HasManagePermission(body.OldName, this.GetUserId())))
+            {
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            try
+            {
+                var timeline = await _service.ChangeTimelineName(body.OldName, body.NewName);
+                return Ok(_mapper.Map<TimelineInfo>(timeline));
+            }
+            catch (EntityAlreadyExistException)
+            {
+                return BadRequest(ErrorResponse.TimelineController.NameConflict());
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/TokenController.cs b/BackEnd/Timeline/Controllers/TokenController.cs
new file mode 100644
index 00000000..8f2ca600
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/TokenController.cs
@@ -0,0 +1,142 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Globalization;
+using System.Threading.Tasks;
+using Timeline.Helpers;
+using Timeline.Models.Http;
+using Timeline.Services;
+using Timeline.Services.Exceptions;
+using static Timeline.Resources.Controllers.TokenController;
+
+namespace Timeline.Controllers
+{
+    /// <summary>
+    /// Operation about tokens.
+    /// </summary>
+    [Route("token")]
+    [ApiController]
+    [ProducesErrorResponseType(typeof(CommonResponse))]
+    public class TokenController : Controller
+    {
+        private readonly IUserTokenManager _userTokenManager;
+        private readonly ILogger<TokenController> _logger;
+        private readonly IClock _clock;
+
+        private readonly IMapper _mapper;
+
+        /// <summary></summary>
+        public TokenController(IUserTokenManager userTokenManager, ILogger<TokenController> logger, IClock clock, IMapper mapper)
+        {
+            _userTokenManager = userTokenManager;
+            _logger = logger;
+            _clock = clock;
+            _mapper = mapper;
+        }
+
+        /// <summary>
+        /// Create a new token for a user.
+        /// </summary>
+        /// <returns>Result of token creation.</returns>
+        [HttpPost("create")]
+        [AllowAnonymous]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        public async Task<ActionResult<CreateTokenResponse>> Create([FromBody] CreateTokenRequest request)
+        {
+            void LogFailure(string reason, Exception? e = null)
+            {
+                _logger.LogInformation(e, Log.Format(LogCreateFailure,
+                    ("Reason", reason),
+                    ("Username", request.Username),
+                    ("Password", request.Password),
+                    ("Expire (in days)", request.Expire)
+                ));
+            }
+
+            try
+            {
+                DateTime? expireTime = null;
+                if (request.Expire != null)
+                    expireTime = _clock.GetCurrentTime().AddDays(request.Expire.Value);
+
+                var result = await _userTokenManager.CreateToken(request.Username, request.Password, expireTime);
+
+                _logger.LogInformation(Log.Format(LogCreateSuccess,
+                    ("Username", request.Username),
+                    ("Expire At", expireTime?.ToString(CultureInfo.CurrentCulture.DateTimeFormat) ?? "default")
+                ));
+                return Ok(new CreateTokenResponse
+                {
+                    Token = result.Token,
+                    User = _mapper.Map<UserInfo>(result.User)
+                });
+            }
+            catch (UserNotExistException e)
+            {
+                LogFailure(LogUserNotExist, e);
+                return BadRequest(ErrorResponse.TokenController.Create_BadCredential());
+            }
+            catch (BadPasswordException e)
+            {
+                LogFailure(LogBadPassword, e);
+                return BadRequest(ErrorResponse.TokenController.Create_BadCredential());
+            }
+        }
+
+        /// <summary>
+        /// Verify a token.
+        /// </summary>
+        /// <returns>Result of token verification.</returns>
+        [HttpPost("verify")]
+        [AllowAnonymous]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        public async Task<ActionResult<VerifyTokenResponse>> Verify([FromBody] VerifyTokenRequest request)
+        {
+            void LogFailure(string reason, Exception? e = null, params (string, object?)[] otherProperties)
+            {
+                var properties = new (string, object?)[2 + otherProperties.Length];
+                properties[0] = ("Reason", reason);
+                properties[1] = ("Token", request.Token);
+                otherProperties.CopyTo(properties, 2);
+                _logger.LogInformation(e, Log.Format(LogVerifyFailure, properties));
+            }
+
+            try
+            {
+                var result = await _userTokenManager.VerifyToken(request.Token);
+                _logger.LogInformation(Log.Format(LogVerifySuccess,
+                    ("Username", result.Username), ("Token", request.Token)));
+                return Ok(new VerifyTokenResponse
+                {
+                    User = _mapper.Map<UserInfo>(result)
+                });
+            }
+            catch (UserTokenTimeExpireException e)
+            {
+                LogFailure(LogVerifyExpire, e, ("Expire Time", e.ExpireTime), ("Verify Time", e.VerifyTime));
+                return BadRequest(ErrorResponse.TokenController.Verify_TimeExpired());
+            }
+            catch (UserTokenBadVersionException e)
+            {
+                LogFailure(LogVerifyOldVersion, e, ("Token Version", e.TokenVersion), ("Required Version", e.RequiredVersion));
+                return BadRequest(ErrorResponse.TokenController.Verify_OldVersion());
+
+            }
+            catch (UserTokenBadFormatException e)
+            {
+                LogFailure(LogVerifyBadFormat, e);
+                return BadRequest(ErrorResponse.TokenController.Verify_BadFormat());
+            }
+            catch (UserNotExistException e)
+            {
+                LogFailure(LogVerifyUserNotExist, e);
+                return BadRequest(ErrorResponse.TokenController.Verify_UserNotExist());
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/UserAvatarController.cs b/BackEnd/Timeline/Controllers/UserAvatarController.cs
new file mode 100644
index 00000000..bc4afa30
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/UserAvatarController.cs
@@ -0,0 +1,174 @@
+﻿using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using Microsoft.Net.Http.Headers;
+using System;
+using System.Threading.Tasks;
+using Timeline.Auth;
+using Timeline.Filters;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Models.Http;
+using Timeline.Models.Validation;
+using Timeline.Services;
+using Timeline.Services.Exceptions;
+using static Timeline.Resources.Controllers.UserAvatarController;
+
+namespace Timeline.Controllers
+{
+    /// <summary>
+    /// Operations about user avatar.
+    /// </summary>
+    [ApiController]
+    [ProducesErrorResponseType(typeof(CommonResponse))]
+    public class UserAvatarController : Controller
+    {
+        private readonly ILogger<UserAvatarController> _logger;
+
+        private readonly IUserService _userService;
+        private readonly IUserAvatarService _service;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public UserAvatarController(ILogger<UserAvatarController> logger, IUserService userService, IUserAvatarService service)
+        {
+            _logger = logger;
+            _userService = userService;
+            _service = service;
+        }
+
+        /// <summary>
+        /// Get avatar of a user.
+        /// </summary>
+        /// <param name="username">Username of the user to get avatar of.</param>
+        /// <param name="ifNoneMatch">If-None-Match header.</param>
+        /// <returns>Avatar data.</returns>
+        [HttpGet("users/{username}/avatar")]
+        [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")]
+        [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)]
+        [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<IActionResult> Get([FromRoute][Username] string username, [FromHeader(Name = "If-None-Match")] string? ifNoneMatch)
+        {
+            _ = ifNoneMatch;
+            long id;
+            try
+            {
+                id = await _userService.GetUserIdByUsername(username);
+            }
+            catch (UserNotExistException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogGetUserNotExist, ("Username", username)));
+                return NotFound(ErrorResponse.UserCommon.NotExist());
+            }
+
+            return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarETag(id), async () =>
+            {
+                var avatar = await _service.GetAvatar(id);
+                return avatar.ToCacheableData();
+            });
+        }
+
+        /// <summary>
+        /// Set avatar of a user. You have to be administrator to change other's.
+        /// </summary>
+        /// <param name="username">Username of the user to set avatar of.</param>
+        /// <param name="body">The avatar data.</param>
+        [HttpPut("users/{username}/avatar")]
+        [Authorize]
+        [Consumes("image/png", "image/jpeg", "image/gif", "image/webp")]
+        [MaxContentLength(1000 * 1000 * 10)]
+        [ProducesResponseType(typeof(void), StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<IActionResult> Put([FromRoute][Username] string username, [FromBody] ByteData body)
+        {
+            if (!User.IsAdministrator() && User.Identity.Name != username)
+            {
+                _logger.LogInformation(Log.Format(LogPutForbid,
+                    ("Operator Username", User.Identity.Name), ("Username To Put Avatar", username)));
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            long id;
+            try
+            {
+                id = await _userService.GetUserIdByUsername(username);
+            }
+            catch (UserNotExistException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogPutUserNotExist, ("Username", username)));
+                return BadRequest(ErrorResponse.UserCommon.NotExist());
+            }
+
+            try
+            {
+                var etag = await _service.SetAvatar(id, new Avatar
+                {
+                    Data = body.Data,
+                    Type = body.ContentType
+                });
+
+                _logger.LogInformation(Log.Format(LogPutSuccess,
+                    ("Username", username), ("Mime Type", Request.ContentType)));
+
+                Response.Headers.Append("ETag", new EntityTagHeaderValue($"\"{etag}\"").ToString());
+
+                return Ok();
+            }
+            catch (ImageException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogPutUserBadFormat, ("Username", username)));
+                return BadRequest(e.Error switch
+                {
+                    ImageException.ErrorReason.CantDecode => ErrorResponse.UserAvatar.BadFormat_CantDecode(),
+                    ImageException.ErrorReason.UnmatchedFormat => ErrorResponse.UserAvatar.BadFormat_UnmatchedFormat(),
+                    ImageException.ErrorReason.NotSquare => ErrorResponse.UserAvatar.BadFormat_BadSize(),
+                    _ =>
+                        throw new Exception(ExceptionUnknownAvatarFormatError)
+                });
+            }
+        }
+
+        /// <summary>
+        /// Reset the avatar to the default one. You have to be administrator to reset other's.
+        /// </summary>
+        /// <param name="username">Username of the user.</param>
+        /// <response code="200">Succeeded to reset.</response>
+        /// <response code="400">Error code is 10010001 if user does not exist.</response>
+        /// <response code="401">You have not logged in.</response>
+        /// <response code="403">You are not administrator.</response>
+        [HttpDelete("users/{username}/avatar")]
+        [ProducesResponseType(typeof(void), StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        [Authorize]
+        public async Task<IActionResult> Delete([FromRoute][Username] string username)
+        {
+            if (!User.IsAdministrator() && User.Identity.Name != username)
+            {
+                _logger.LogInformation(Log.Format(LogDeleteForbid,
+                    ("Operator Username", User.Identity.Name), ("Username To Delete Avatar", username)));
+                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
+            }
+
+            long id;
+            try
+            {
+                id = await _userService.GetUserIdByUsername(username);
+            }
+            catch (UserNotExistException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogDeleteNotExist, ("Username", username)));
+                return BadRequest(ErrorResponse.UserCommon.NotExist());
+            }
+
+            await _service.SetAvatar(id, null);
+            return Ok();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Controllers/UserController.cs b/BackEnd/Timeline/Controllers/UserController.cs
new file mode 100644
index 00000000..02c09aab
--- /dev/null
+++ b/BackEnd/Timeline/Controllers/UserController.cs
@@ -0,0 +1,195 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Auth;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Models.Http;
+using Timeline.Models.Validation;
+using Timeline.Services;
+using Timeline.Services.Exceptions;
+using static Timeline.Resources.Controllers.UserController;
+using static Timeline.Resources.Messages;
+
+namespace Timeline.Controllers
+{
+    /// <summary>
+    /// Operations about users.
+    /// </summary>
+    [ApiController]
+    [ProducesErrorResponseType(typeof(CommonResponse))]
+    public class UserController : Controller
+    {
+        private readonly ILogger<UserController> _logger;
+        private readonly IUserService _userService;
+        private readonly IUserDeleteService _userDeleteService;
+        private readonly IMapper _mapper;
+
+        /// <summary></summary>
+        public UserController(ILogger<UserController> logger, IUserService userService, IUserDeleteService userDeleteService, IMapper mapper)
+        {
+            _logger = logger;
+            _userService = userService;
+            _userDeleteService = userDeleteService;
+            _mapper = mapper;
+        }
+
+        private UserInfo ConvertToUserInfo(User user) => _mapper.Map<UserInfo>(user);
+
+        /// <summary>
+        /// Get all users.
+        /// </summary>
+        /// <returns>All user list.</returns>
+        [HttpGet("users")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        public async Task<ActionResult<UserInfo[]>> List()
+        {
+            var users = await _userService.GetUsers();
+            var result = users.Select(u => ConvertToUserInfo(u)).ToArray();
+            return Ok(result);
+        }
+
+        /// <summary>
+        /// Get a user's info.
+        /// </summary>
+        /// <param name="username">Username of the user.</param>
+        /// <returns>User info.</returns>
+        [HttpGet("users/{username}")]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<ActionResult<UserInfo>> Get([FromRoute][Username] string username)
+        {
+            try
+            {
+                var user = await _userService.GetUserByUsername(username);
+                return Ok(ConvertToUserInfo(user));
+            }
+            catch (UserNotExistException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogGetUserNotExist, ("Username", username)));
+                return NotFound(ErrorResponse.UserCommon.NotExist());
+            }
+        }
+
+        /// <summary>
+        /// Change a user's property.
+        /// </summary>
+        /// <param name="body"></param>
+        /// <param name="username">Username of the user to change.</param>
+        /// <returns>The new user info.</returns>
+        [HttpPatch("users/{username}"), Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        [ProducesResponseType(StatusCodes.Status404NotFound)]
+        public async Task<ActionResult<UserInfo>> Patch([FromBody] UserPatchRequest body, [FromRoute][Username] string username)
+        {
+            if (this.IsAdministrator())
+            {
+                try
+                {
+                    var user = await _userService.ModifyUser(username, _mapper.Map<User>(body));
+                    return Ok(ConvertToUserInfo(user));
+                }
+                catch (UserNotExistException e)
+                {
+                    _logger.LogInformation(e, Log.Format(LogPatchUserNotExist, ("Username", username)));
+                    return NotFound(ErrorResponse.UserCommon.NotExist());
+                }
+                catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User)
+                {
+                    return BadRequest(ErrorResponse.UserController.UsernameConflict());
+                }
+            }
+            else
+            {
+                if (User.Identity.Name != username)
+                    return StatusCode(StatusCodes.Status403Forbidden,
+                        ErrorResponse.Common.CustomMessage_Forbid(Common_Forbid_NotSelf));
+
+                if (body.Username != null)
+                    return StatusCode(StatusCodes.Status403Forbidden,
+                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Username));
+
+                if (body.Password != null)
+                    return StatusCode(StatusCodes.Status403Forbidden,
+                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Password));
+
+                if (body.Administrator != null)
+                    return StatusCode(StatusCodes.Status403Forbidden,
+                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Administrator));
+
+                var user = await _userService.ModifyUser(this.GetUserId(), _mapper.Map<User>(body));
+                return Ok(ConvertToUserInfo(user));
+            }
+        }
+
+        /// <summary>
+        /// Delete a user and all his related data. You have to be administrator.
+        /// </summary>
+        /// <param name="username">Username of the user to delete.</param>
+        /// <returns>Info of deletion.</returns>
+        [HttpDelete("users/{username}"), AdminAuthorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<CommonDeleteResponse>> Delete([FromRoute][Username] string username)
+        {
+            var delete = await _userDeleteService.DeleteUser(username);
+            if (delete)
+                return Ok(CommonDeleteResponse.Delete());
+            else
+                return Ok(CommonDeleteResponse.NotExist());
+        }
+
+        /// <summary>
+        /// Create a new user. You have to be administrator.
+        /// </summary>
+        /// <returns>The new user's info.</returns>
+        [HttpPost("userop/createuser"), AdminAuthorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        [ProducesResponseType(StatusCodes.Status403Forbidden)]
+        public async Task<ActionResult<UserInfo>> CreateUser([FromBody] CreateUserRequest body)
+        {
+            try
+            {
+                var user = await _userService.CreateUser(_mapper.Map<User>(body));
+                return Ok(ConvertToUserInfo(user));
+            }
+            catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User)
+            {
+                return BadRequest(ErrorResponse.UserController.UsernameConflict());
+            }
+        }
+
+        /// <summary>
+        /// Change password with old password.
+        /// </summary>
+        [HttpPost("userop/changepassword"), Authorize]
+        [ProducesResponseType(StatusCodes.Status200OK)]
+        [ProducesResponseType(StatusCodes.Status400BadRequest)]
+        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+        public async Task<ActionResult> ChangePassword([FromBody] ChangePasswordRequest request)
+        {
+            try
+            {
+                await _userService.ChangePassword(this.GetUserId(), request.OldPassword, request.NewPassword);
+                return Ok();
+            }
+            catch (BadPasswordException e)
+            {
+                _logger.LogInformation(e, Log.Format(LogChangePasswordBadPassword,
+                    ("Username", User.Identity.Name), ("Old Password", request.OldPassword)));
+                return BadRequest(ErrorResponse.UserController.ChangePassword_BadOldPassword());
+            }
+            // User can't be non-existent or the token is bad.
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Entities/DataEntity.cs b/BackEnd/Timeline/Entities/DataEntity.cs
new file mode 100644
index 00000000..b21e2dbf
--- /dev/null
+++ b/BackEnd/Timeline/Entities/DataEntity.cs
@@ -0,0 +1,23 @@
+﻿using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    [Table("data")]
+    public class DataEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("tag"), Required]
+        public string Tag { get; set; } = default!;
+
+        [Column("data"), Required]
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[] Data { get; set; } = default!;
+#pragma warning restore CA1819 // Properties should not return arrays
+
+        [Column("ref"), Required]
+        public int Ref { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Entities/DatabaseContext.cs b/BackEnd/Timeline/Entities/DatabaseContext.cs
new file mode 100644
index 00000000..ecadd703
--- /dev/null
+++ b/BackEnd/Timeline/Entities/DatabaseContext.cs
@@ -0,0 +1,34 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace Timeline.Entities
+{
+    public class DatabaseContext : DbContext
+    {
+        public DatabaseContext(DbContextOptions<DatabaseContext> options)
+            : base(options)
+        {
+        }
+
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
+        {
+            modelBuilder.Entity<UserEntity>().Property(e => e.Version).HasDefaultValue(0);
+            modelBuilder.Entity<UserEntity>().HasIndex(e => e.Username).IsUnique();
+            modelBuilder.Entity<UserEntity>().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))");
+            modelBuilder.Entity<UserEntity>().Property(e => e.UsernameChangeTime).HasDefaultValueSql("datetime('now', 'utc')");
+            modelBuilder.Entity<UserEntity>().Property(e => e.CreateTime).HasDefaultValueSql("datetime('now', 'utc')");
+            modelBuilder.Entity<UserEntity>().Property(e => e.LastModified).HasDefaultValueSql("datetime('now', 'utc')");
+            modelBuilder.Entity<DataEntity>().HasIndex(e => e.Tag).IsUnique();
+            modelBuilder.Entity<TimelineEntity>().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+            modelBuilder.ApplyUtcDateTimeConverter();
+        }
+
+        public DbSet<UserEntity> Users { get; set; } = default!;
+        public DbSet<UserAvatarEntity> UserAvatars { get; set; } = default!;
+        public DbSet<TimelineEntity> Timelines { get; set; } = default!;
+        public DbSet<TimelinePostEntity> TimelinePosts { get; set; } = default!;
+        public DbSet<TimelineMemberEntity> TimelineMembers { get; set; } = default!;
+        public DbSet<JwtTokenEntity> JwtToken { get; set; } = default!;
+        public DbSet<DataEntity> Data { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Entities/JwtTokenEntity.cs b/BackEnd/Timeline/Entities/JwtTokenEntity.cs
new file mode 100644
index 00000000..40cb230a
--- /dev/null
+++ b/BackEnd/Timeline/Entities/JwtTokenEntity.cs
@@ -0,0 +1,17 @@
+﻿using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    [Table("jwt_token")]
+    public class JwtTokenEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Required, Column("key")]
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[] Key { get; set; } = default!;
+#pragma warning restore CA1819 // Properties should not return arrays
+    }
+}
diff --git a/BackEnd/Timeline/Entities/TimelineEntity.cs b/BackEnd/Timeline/Entities/TimelineEntity.cs
new file mode 100644
index 00000000..3e592673
--- /dev/null
+++ b/BackEnd/Timeline/Entities/TimelineEntity.cs
@@ -0,0 +1,58 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Timeline.Models;
+
+namespace Timeline.Entities
+{
+#pragma warning disable CA2227 // Collection properties should be read only
+    // TODO: Create index for this table.
+    [Table("timelines")]
+    public class TimelineEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("unique_id"), Required]
+        public string UniqueId { get; set; } = default!;
+
+        /// <summary>
+        /// If null, then this timeline is a personal timeline.
+        /// </summary>
+        [Column("name")]
+        public string? Name { get; set; }
+
+        [Column("title")]
+        public string? Title { get; set; }
+
+        [Column("name_last_modified")]
+        public DateTime NameLastModified { get; set; }
+
+        [Column("description")]
+        public string? Description { get; set; }
+
+        [Column("owner")]
+        public long OwnerId { get; set; }
+
+        [ForeignKey(nameof(OwnerId))]
+        public UserEntity Owner { get; set; } = default!;
+
+        [Column("visibility")]
+        public TimelineVisibility Visibility { get; set; }
+
+        [Column("create_time")]
+        public DateTime CreateTime { get; set; }
+
+        [Column("last_modified")]
+        public DateTime LastModified { get; set; }
+
+        [Column("current_post_local_id")]
+        public long CurrentPostLocalId { get; set; }
+
+        public List<TimelineMemberEntity> Members { get; set; } = default!;
+
+        public List<TimelinePostEntity> Posts { get; set; } = default!;
+    }
+#pragma warning restore CA2227 // Collection properties should be read only
+}
diff --git a/BackEnd/Timeline/Entities/TimelineMemberEntity.cs b/BackEnd/Timeline/Entities/TimelineMemberEntity.cs
new file mode 100644
index 00000000..e76f2099
--- /dev/null
+++ b/BackEnd/Timeline/Entities/TimelineMemberEntity.cs
@@ -0,0 +1,24 @@
+﻿using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    [Table("timeline_members")]
+    public class TimelineMemberEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("user")]
+        public long UserId { get; set; }
+
+        [ForeignKey(nameof(UserId))]
+        public UserEntity User { get; set; } = default!;
+
+        [Column("timeline")]
+        public long TimelineId { get; set; }
+
+        [ForeignKey(nameof(TimelineId))]
+        public TimelineEntity Timeline { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Entities/TimelinePostEntity.cs b/BackEnd/Timeline/Entities/TimelinePostEntity.cs
new file mode 100644
index 00000000..07367fba
--- /dev/null
+++ b/BackEnd/Timeline/Entities/TimelinePostEntity.cs
@@ -0,0 +1,43 @@
+﻿using System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    [Table("timeline_posts")]
+    public class TimelinePostEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("local_id")]
+        public long LocalId { get; set; }
+
+        [Column("timeline")]
+        public long TimelineId { get; set; }
+
+        [ForeignKey(nameof(TimelineId))]
+        public TimelineEntity Timeline { get; set; } = default!;
+
+        [Column("author")]
+        public long? AuthorId { get; set; }
+
+        [ForeignKey(nameof(AuthorId))]
+        public UserEntity? Author { get; set; } = default!;
+
+        [Column("content_type"), Required]
+        public string ContentType { get; set; } = default!;
+
+        [Column("content")]
+        public string? Content { get; set; }
+
+        [Column("extra_content")]
+        public string? ExtraContent { get; set; }
+
+        [Column("time")]
+        public DateTime Time { get; set; }
+
+        [Column("last_updated")]
+        public DateTime LastUpdated { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Entities/UserAvatarEntity.cs b/BackEnd/Timeline/Entities/UserAvatarEntity.cs
new file mode 100644
index 00000000..3c2720f7
--- /dev/null
+++ b/BackEnd/Timeline/Entities/UserAvatarEntity.cs
@@ -0,0 +1,29 @@
+﻿using System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "This is data base entity.")]
+    [Table("user_avatars")]
+    public class UserAvatarEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("data_tag")]
+        public string? DataTag { get; set; }
+
+        [Column("type")]
+        public string? Type { get; set; }
+
+        [Column("last_modified"), Required]
+        public DateTime LastModified { get; set; }
+
+        [Column("user"), Required]
+        public long UserId { get; set; }
+
+        [ForeignKey(nameof(UserId))]
+        public UserEntity User { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Entities/UserEntity.cs b/BackEnd/Timeline/Entities/UserEntity.cs
new file mode 100644
index 00000000..0cfaa335
--- /dev/null
+++ b/BackEnd/Timeline/Entities/UserEntity.cs
@@ -0,0 +1,56 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+    public static class UserRoles
+    {
+        public const string Admin = "admin";
+        public const string User = "user";
+    }
+
+    [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "This is an entity class.")]
+    [Table("users")]
+    public class UserEntity
+    {
+        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+        public long Id { get; set; }
+
+        [Column("unique_id"), Required]
+        public string UniqueId { get; set; } = default!;
+
+        [Column("username"), Required]
+        public string Username { get; set; } = default!;
+
+        [Column("username_change_time")]
+        public DateTime UsernameChangeTime { get; set; }
+
+        [Column("password"), Required]
+        public string Password { get; set; } = default!;
+
+        [Column("roles"), Required]
+        public string Roles { get; set; } = default!;
+
+        [Column("version"), Required]
+        public long Version { get; set; }
+
+        [Column("nickname")]
+        public string? Nickname { get; set; }
+
+        [Column("create_time")]
+        public DateTime CreateTime { get; set; }
+
+        [Column("last_modified")]
+        public DateTime LastModified { get; set; }
+
+        public UserAvatarEntity? Avatar { get; set; }
+
+        public List<TimelineEntity> Timelines { get; set; } = default!;
+
+        public List<TimelinePostEntity> TimelinePosts { get; set; } = default!;
+
+        public List<TimelineMemberEntity> TimelinesJoined { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Entities/UtcDateAnnotation.cs b/BackEnd/Timeline/Entities/UtcDateAnnotation.cs
new file mode 100644
index 00000000..6600e701
--- /dev/null
+++ b/BackEnd/Timeline/Entities/UtcDateAnnotation.cs
@@ -0,0 +1,44 @@
+﻿using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using System;
+
+namespace Timeline.Entities
+{
+    // Copied from https://github.com/dotnet/efcore/issues/4711#issuecomment-589842988
+    public static class UtcDateAnnotation
+    {
+        private const string IsUtcAnnotation = "IsUtc";
+        private static readonly ValueConverter<DateTime, DateTime> UtcConverter =
+            new ValueConverter<DateTime, DateTime>(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc));
+
+        public static PropertyBuilder<TProperty> IsUtc<TProperty>(this PropertyBuilder<TProperty> builder, bool isUtc = true) =>
+            builder.HasAnnotation(IsUtcAnnotation, isUtc);
+
+        public static bool IsUtc(this IMutableProperty property) =>
+            ((bool?)property.FindAnnotation(IsUtcAnnotation)?.Value) ?? true;
+
+        /// <summary>
+        /// Make sure this is called after configuring all your entities.
+        /// </summary>
+        public static void ApplyUtcDateTimeConverter(this ModelBuilder builder)
+        {
+            foreach (var entityType in builder.Model.GetEntityTypes())
+            {
+                foreach (var property in entityType.GetProperties())
+                {
+                    if (!property.IsUtc())
+                    {
+                        continue;
+                    }
+
+                    if (property.ClrType == typeof(DateTime))
+                    {
+                        property.SetValueConverter(UtcConverter);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Filters/Header.cs b/BackEnd/Timeline/Filters/Header.cs
new file mode 100644
index 00000000..cc5ddd9f
--- /dev/null
+++ b/BackEnd/Timeline/Filters/Header.cs
@@ -0,0 +1,63 @@
+﻿using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Timeline.Models.Http;
+
+namespace Timeline.Filters
+{
+    /// <summary>
+    /// Restrict max content length.
+    /// </summary>
+    public class MaxContentLengthFilter : IResourceFilter
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="maxByteLength">Max length.</param>
+        public MaxContentLengthFilter(long maxByteLength)
+        {
+            MaxByteLength = maxByteLength;
+        }
+
+        /// <summary>
+        /// Max length.
+        /// </summary>
+        public long MaxByteLength { get; set; }
+
+        /// <inheritdoc/>
+        public void OnResourceExecuted(ResourceExecutedContext context)
+        {
+        }
+
+        /// <inheritdoc/>
+        public void OnResourceExecuting(ResourceExecutingContext context)
+        {
+            var contentLength = context.HttpContext.Request.ContentLength;
+            if (contentLength != null && contentLength > MaxByteLength)
+            {
+                context.Result = new BadRequestObjectResult(ErrorResponse.Common.Content.TooBig(MaxByteLength + "B"));
+            }
+        }
+    }
+
+    /// <summary>
+    /// Restrict max content length.
+    /// </summary>
+    public class MaxContentLengthAttribute : TypeFilterAttribute
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="maxByteLength">Max length.</param>
+        public MaxContentLengthAttribute(long maxByteLength)
+            : base(typeof(MaxContentLengthFilter))
+        {
+            MaxByteLength = maxByteLength;
+            Arguments = new object[] { maxByteLength };
+        }
+
+        /// <summary>
+        /// Max length.
+        /// </summary>
+        public long MaxByteLength { get; }
+    }
+}
diff --git a/BackEnd/Timeline/Filters/Timeline.cs b/BackEnd/Timeline/Filters/Timeline.cs
new file mode 100644
index 00000000..6a730ee7
--- /dev/null
+++ b/BackEnd/Timeline/Filters/Timeline.cs
@@ -0,0 +1,32 @@
+﻿using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Timeline.Models.Http;
+using Timeline.Services.Exceptions;
+
+namespace Timeline.Filters
+{
+    public class CatchTimelineNotExistExceptionAttribute : ExceptionFilterAttribute
+    {
+        public override void OnException(ExceptionContext context)
+        {
+            if (context.Exception is TimelineNotExistException e)
+            {
+                if (e.InnerException is UserNotExistException)
+                {
+                    if (HttpMethods.IsGet(context.HttpContext.Request.Method))
+                        context.Result = new NotFoundObjectResult(ErrorResponse.UserCommon.NotExist());
+                    else
+                        context.Result = new BadRequestObjectResult(ErrorResponse.UserCommon.NotExist());
+                }
+                else
+                {
+                    if (HttpMethods.IsGet(context.HttpContext.Request.Method))
+                        context.Result = new NotFoundObjectResult(ErrorResponse.TimelineController.NotExist());
+                    else
+                        context.Result = new BadRequestObjectResult(ErrorResponse.TimelineController.NotExist());
+                }
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Formatters/BytesInputFormatter.cs b/BackEnd/Timeline/Formatters/BytesInputFormatter.cs
new file mode 100644
index 00000000..ac6537c9
--- /dev/null
+++ b/BackEnd/Timeline/Formatters/BytesInputFormatter.cs
@@ -0,0 +1,79 @@
+﻿using Microsoft.AspNetCore.Mvc.Formatters;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Microsoft.Net.Http.Headers;
+using System;
+using System.Threading.Tasks;
+using Timeline.Models;
+
+namespace Timeline.Formatters
+{
+    /// <summary>
+    /// Formatter that reads body as bytes.
+    /// </summary>
+    public class BytesInputFormatter : InputFormatter
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public BytesInputFormatter()
+        {
+            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/png"));
+            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/jpeg"));
+            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/gif"));
+            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/webp"));
+        }
+
+        /// <inheritdoc/>
+        public override bool CanRead(InputFormatterContext context)
+        {
+            if (context == null) throw new ArgumentNullException(nameof(context));
+
+            if (context.ModelType == typeof(ByteData))
+                return true;
+
+            return false;
+        }
+
+        /// <inheritdoc/>
+        public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context)
+        {
+            var request = context.HttpContext.Request;
+            var contentLength = request.ContentLength;
+
+            var logger = context.HttpContext.RequestServices.GetRequiredService<ILogger<BytesInputFormatter>>();
+
+            if (contentLength == null)
+            {
+                logger.LogInformation("Failed to read body as bytes. Content-Length is not set.");
+                return await InputFormatterResult.FailureAsync();
+            }
+
+            if (contentLength == 0)
+            {
+                logger.LogInformation("Failed to read body as bytes. Content-Length is 0.");
+                return await InputFormatterResult.FailureAsync();
+            }
+
+            var bodyStream = request.Body;
+
+            var data = new byte[contentLength.Value];
+            var bytesRead = await bodyStream.ReadAsync(data);
+
+            if (bytesRead != contentLength)
+            {
+                logger.LogInformation("Failed to read body as bytes. Actual length of body is smaller than Content-Length.");
+                return await InputFormatterResult.FailureAsync();
+            }
+
+            var extraByte = new byte[1];
+            if (await bodyStream.ReadAsync(extraByte) != 0)
+            {
+                logger.LogInformation("Failed to read body as bytes. Actual length of body is greater than Content-Length.");
+                return await InputFormatterResult.FailureAsync();
+            }
+
+            return await InputFormatterResult.SuccessAsync(new ByteData(data, request.ContentType));
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Formatters/StringInputFormatter.cs b/BackEnd/Timeline/Formatters/StringInputFormatter.cs
new file mode 100644
index 00000000..b1924268
--- /dev/null
+++ b/BackEnd/Timeline/Formatters/StringInputFormatter.cs
@@ -0,0 +1,26 @@
+﻿using Microsoft.AspNetCore.Mvc.Formatters;
+using Microsoft.Net.Http.Headers;
+using System.IO;
+using System.Net.Mime;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Timeline.Formatters
+{
+    public class StringInputFormatter : TextInputFormatter
+    {
+        public StringInputFormatter()
+        {
+            SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(MediaTypeNames.Text.Plain));
+            SupportedEncodings.Add(Encoding.UTF8);
+        }
+
+        public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding effectiveEncoding)
+        {
+            var request = context.HttpContext.Request;
+            using var reader = new StreamReader(request.Body, effectiveEncoding);
+            var stringContent = await reader.ReadToEndAsync();
+            return await InputFormatterResult.SuccessAsync(stringContent);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/GlobalSuppressions.cs b/BackEnd/Timeline/GlobalSuppressions.cs
new file mode 100644
index 00000000..2b0da576
--- /dev/null
+++ b/BackEnd/Timeline/GlobalSuppressions.cs
@@ -0,0 +1,14 @@
+﻿// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project.
+// Project-level suppressions either have no target or are given
+// a specific target and scoped to a namespace, type, member, etc.
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "This is not a UI application.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1034:Nested types should not be visible", Justification = "This is not bad.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "No need to check the null because it's ASP.Net's duty.", Scope = "namespaceanddescendants", Target = "Timeline.Controllers")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "Migrations code are auto generated.", Scope = "namespaceanddescendants", Target = "Timeline.Migrations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Generated error response identifiers.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1724:Type names should not match namespaces", Justification = "Generated error response identifiers.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Globalization", "CA1305:Specify IFormatProvider", Justification = "Generated error response.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Uri properties should not be strings", Justification = "That's unnecessary.")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "Adundant")]
diff --git a/BackEnd/Timeline/Helpers/DataCacheHelper.cs b/BackEnd/Timeline/Helpers/DataCacheHelper.cs
new file mode 100644
index 00000000..1ad69708
--- /dev/null
+++ b/BackEnd/Timeline/Helpers/DataCacheHelper.cs
@@ -0,0 +1,125 @@
+﻿using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Microsoft.Net.Http.Headers;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+using static Timeline.Resources.Helper.DataCacheHelper;
+
+namespace Timeline.Helpers
+{
+    public interface ICacheableData
+    {
+        string Type { get; }
+#pragma warning disable CA1819 // Properties should not return arrays
+        byte[] Data { get; }
+#pragma warning restore CA1819 // Properties should not return arrays
+        DateTime? LastModified { get; }
+    }
+
+    public class CacheableData : ICacheableData
+    {
+        public CacheableData(string type, byte[] data, DateTime? lastModified)
+        {
+            Type = type;
+            Data = data;
+            LastModified = lastModified;
+        }
+
+        public string Type { get; set; }
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[] Data { get; set; }
+#pragma warning restore CA1819 // Properties should not return arrays
+        public DateTime? LastModified { get; set; }
+    }
+
+    public interface ICacheableDataProvider
+    {
+        Task<string> GetDataETag();
+        Task<ICacheableData> GetData();
+    }
+
+    public class DelegateCacheableDataProvider : ICacheableDataProvider
+    {
+        private readonly Func<Task<string>> _getDataETagDelegate;
+        private readonly Func<Task<ICacheableData>> _getDataDelegate;
+
+        public DelegateCacheableDataProvider(Func<Task<string>> getDataETagDelegate, Func<Task<ICacheableData>> getDataDelegate)
+        {
+            _getDataETagDelegate = getDataETagDelegate;
+            _getDataDelegate = getDataDelegate;
+        }
+
+        public Task<ICacheableData> GetData()
+        {
+            return _getDataDelegate();
+        }
+
+        public Task<string> GetDataETag()
+        {
+            return _getDataETagDelegate();
+        }
+    }
+
+    public static class DataCacheHelper
+    {
+        public static async Task<ActionResult> GenerateActionResult(Controller controller, ICacheableDataProvider provider, TimeSpan? maxAge = null)
+        {
+            const string CacheControlHeaderKey = "Cache-Control";
+            const string IfNonMatchHeaderKey = "If-None-Match";
+            const string ETagHeaderKey = "ETag";
+
+            string GenerateCacheControlHeaderValue()
+            {
+                var cacheControlHeader = new CacheControlHeaderValue()
+                {
+                    NoCache = true,
+                    NoStore = false,
+                    MaxAge = maxAge ?? TimeSpan.FromDays(14),
+                    Private = true,
+                    MustRevalidate = true
+                };
+                return cacheControlHeader.ToString();
+            }
+
+            var loggerFactory = controller.HttpContext.RequestServices.GetRequiredService<ILoggerFactory>();
+            var logger = loggerFactory.CreateLogger(typeof(DataCacheHelper));
+
+            var eTagValue = await provider.GetDataETag();
+            eTagValue = '"' + eTagValue + '"';
+            var eTag = new EntityTagHeaderValue(eTagValue);
+
+
+            if (controller.Request.Headers.TryGetValue(IfNonMatchHeaderKey, out var value))
+            {
+                if (!EntityTagHeaderValue.TryParseStrictList(value, out var eTagList))
+                {
+                    logger.LogInformation(Log.Format(LogBadIfNoneMatch, ("Header Value", value)));
+                    return controller.BadRequest(ErrorResponse.Common.Header.IfNonMatch_BadFormat());
+                }
+
+                if (eTagList.FirstOrDefault(e => e.Equals(eTag)) != null)
+                {
+                    logger.LogInformation(LogResultNotModified);
+                    controller.Response.Headers.Add(ETagHeaderKey, eTagValue);
+                    controller.Response.Headers.Add(CacheControlHeaderKey, GenerateCacheControlHeaderValue());
+
+                    return controller.StatusCode(StatusCodes.Status304NotModified, null);
+                }
+            }
+
+            var data = await provider.GetData();
+            logger.LogInformation(LogResultData);
+            controller.Response.Headers.Add(CacheControlHeaderKey, GenerateCacheControlHeaderValue());
+            return controller.File(data.Data, data.Type, data.LastModified, eTag);
+        }
+
+        public static Task<ActionResult> GenerateActionResult(Controller controller, Func<Task<string>> getDataETagDelegate, Func<Task<ICacheableData>> getDataDelegate, TimeSpan? maxAge = null)
+        {
+            return GenerateActionResult(controller, new DelegateCacheableDataProvider(getDataETagDelegate, getDataDelegate), maxAge);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Helpers/DateTimeExtensions.cs b/BackEnd/Timeline/Helpers/DateTimeExtensions.cs
new file mode 100644
index 00000000..374f3bc9
--- /dev/null
+++ b/BackEnd/Timeline/Helpers/DateTimeExtensions.cs
@@ -0,0 +1,14 @@
+﻿using System;
+
+namespace Timeline.Helpers
+{
+    public static class DateTimeExtensions
+    {
+        public static DateTime MyToUtc(this DateTime dateTime)
+        {
+            if (dateTime.Kind == DateTimeKind.Utc) return dateTime;
+            if (dateTime.Kind == DateTimeKind.Local) return dateTime.ToUniversalTime();
+            return DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Helpers/InvalidModelResponseFactory.cs b/BackEnd/Timeline/Helpers/InvalidModelResponseFactory.cs
new file mode 100644
index 00000000..9b253e7d
--- /dev/null
+++ b/BackEnd/Timeline/Helpers/InvalidModelResponseFactory.cs
@@ -0,0 +1,25 @@
+using Microsoft.AspNetCore.Mvc;
+using System.Text;
+using Timeline.Models.Http;
+
+namespace Timeline.Helpers
+{
+    public static class InvalidModelResponseFactory
+    {
+        public static IActionResult Factory(ActionContext context)
+        {
+            var modelState = context.ModelState;
+
+            var messageBuilder = new StringBuilder();
+            foreach (var model in modelState)
+                foreach (var error in model.Value.Errors)
+                {
+                    messageBuilder.Append(model.Key);
+                    messageBuilder.Append(" : ");
+                    messageBuilder.AppendLine(error.ErrorMessage);
+                }
+
+            return new BadRequestObjectResult(ErrorResponse.Common.CustomMessage_InvalidModel(messageBuilder.ToString()));
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Helpers/LanguageHelper.cs b/BackEnd/Timeline/Helpers/LanguageHelper.cs
new file mode 100644
index 00000000..b0156b8b
--- /dev/null
+++ b/BackEnd/Timeline/Helpers/LanguageHelper.cs
@@ -0,0 +1,12 @@
+﻿using System.Linq;
+
+namespace Timeline.Helpers
+{
+    public static class LanguageHelper
+    {
+        public static bool AreSame(this bool firstBool, params bool[] otherBools)
+        {
+            return otherBools.All(b => b == firstBool);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Helpers/Log.cs b/BackEnd/Timeline/Helpers/Log.cs
new file mode 100644
index 00000000..af0b7e13
--- /dev/null
+++ b/BackEnd/Timeline/Helpers/Log.cs
@@ -0,0 +1,22 @@
+using System.Text;
+
+namespace Timeline.Helpers
+{
+    public static class Log
+    {
+        public static string Format(string summary, params (string, object?)[] properties)
+        {
+            var builder = new StringBuilder();
+            builder.Append(summary);
+            foreach (var property in properties)
+            {
+                var (key, value) = property;
+                builder.AppendLine();
+                builder.Append(key);
+                builder.Append(" : ");
+                builder.Append(value);
+            }
+            return builder.ToString();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200105150407_Initialize.Designer.cs b/BackEnd/Timeline/Migrations/20200105150407_Initialize.Designer.cs
new file mode 100644
index 00000000..99e4eaac
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200105150407_Initialize.Designer.cs
@@ -0,0 +1,266 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200105150407_Initialize")]
+    partial class Initialize
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.0");
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.User", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("EncryptedPassword")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("RoleString")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Name")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<string>("ETag")
+                        .HasColumnName("etag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_details");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.User", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.User", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.User", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
+                {
+                    b.HasOne("Timeline.Entities.User", null)
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatar", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
+                {
+                    b.HasOne("Timeline.Entities.User", null)
+                        .WithOne("Detail")
+                        .HasForeignKey("Timeline.Entities.UserDetail", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200105150407_Initialize.cs b/BackEnd/Timeline/Migrations/20200105150407_Initialize.cs
new file mode 100644
index 00000000..4e12ef83
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200105150407_Initialize.cs
@@ -0,0 +1,217 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class Initialize : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "users",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    name = table.Column<string>(nullable: false),
+                    password = table.Column<string>(nullable: false),
+                    roles = table.Column<string>(nullable: false),
+                    version = table.Column<long>(nullable: false, defaultValue: 0L)
+                        .Annotation("Sqlite:Autoincrement", true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_users", x => x.id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "timelines",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    name = table.Column<string>(nullable: true),
+                    description = table.Column<string>(nullable: true),
+                    owner = table.Column<long>(nullable: false),
+                    visibility = table.Column<int>(nullable: false),
+                    create_time = table.Column<DateTime>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_timelines", x => x.id);
+                    table.ForeignKey(
+                        name: "FK_timelines_users_owner",
+                        column: x => x.owner,
+                        principalTable: "users",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "user_avatars",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    data = table.Column<byte[]>(nullable: true),
+                    type = table.Column<string>(nullable: true),
+                    etag = table.Column<string>(nullable: true),
+                    last_modified = table.Column<DateTime>(nullable: false),
+                    UserId = table.Column<long>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_user_avatars", x => x.id);
+                    table.ForeignKey(
+                        name: "FK_user_avatars_users_UserId",
+                        column: x => x.UserId,
+                        principalTable: "users",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "user_details",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    nickname = table.Column<string>(nullable: true),
+                    UserId = table.Column<long>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_user_details", x => x.id);
+                    table.ForeignKey(
+                        name: "FK_user_details_users_UserId",
+                        column: x => x.UserId,
+                        principalTable: "users",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "timeline_members",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    user = table.Column<long>(nullable: false),
+                    timeline = table.Column<long>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_timeline_members", x => x.id);
+                    table.ForeignKey(
+                        name: "FK_timeline_members_timelines_timeline",
+                        column: x => x.timeline,
+                        principalTable: "timelines",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_timeline_members_users_user",
+                        column: x => x.user,
+                        principalTable: "users",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "timeline_posts",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    timeline = table.Column<long>(nullable: false),
+                    author = table.Column<long>(nullable: false),
+                    content = table.Column<string>(nullable: true),
+                    time = table.Column<DateTime>(nullable: false),
+                    last_updated = table.Column<DateTime>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_timeline_posts", x => x.id);
+                    table.ForeignKey(
+                        name: "FK_timeline_posts_users_author",
+                        column: x => x.author,
+                        principalTable: "users",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "FK_timeline_posts_timelines_timeline",
+                        column: x => x.timeline,
+                        principalTable: "timelines",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_timeline_members_timeline",
+                table: "timeline_members",
+                column: "timeline");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_timeline_members_user",
+                table: "timeline_members",
+                column: "user");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_timeline_posts_author",
+                table: "timeline_posts",
+                column: "author");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_timeline_posts_timeline",
+                table: "timeline_posts",
+                column: "timeline");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_timelines_owner",
+                table: "timelines",
+                column: "owner");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_user_avatars_UserId",
+                table: "user_avatars",
+                column: "UserId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_user_details_UserId",
+                table: "user_details",
+                column: "UserId",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_users_name",
+                table: "users",
+                column: "name",
+                unique: true);
+
+            // Add a init user. Username is "administrator". Password is "crupest".
+            migrationBuilder.InsertData("users", new string[] { "name", "password", "roles" },
+                new object[] { "administrator", "AQAAAAEAACcQAAAAENsspZrk8Wo+UuMyg6QuWJsNvRg6gVu4K/TumVod3h9GVLX9zDVuQQds3o7V8QWJ2w==", "user,admin" });
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "timeline_members");
+
+            migrationBuilder.DropTable(
+                name: "timeline_posts");
+
+            migrationBuilder.DropTable(
+                name: "user_avatars");
+
+            migrationBuilder.DropTable(
+                name: "user_details");
+
+            migrationBuilder.DropTable(
+                name: "timelines");
+
+            migrationBuilder.DropTable(
+                name: "users");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
new file mode 100644
index 00000000..9b78eb15
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
@@ -0,0 +1,240 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200131100517_RefactorUser")]
+    partial class RefactorUser
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.1");
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<string>("ETag")
+                        .HasColumnName("etag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs
new file mode 100644
index 00000000..8597ed50
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200131100517_RefactorUser.cs
@@ -0,0 +1,128 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class RefactorUser : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.RenameColumn(name: "name", table: "users", newName: "username");
+            migrationBuilder.RenameIndex(name: "IX_users_name", table: "users", newName: "IX_users_username");
+
+            migrationBuilder.AddColumn<string>(
+                name: "nickname",
+                table: "users",
+                nullable: true);
+
+            migrationBuilder.Sql(@"
+UPDATE users 
+    SET nickname = (
+        SELECT nickname
+        FROM user_details
+        WHERE user_details.UserId = users.id
+    );
+            ");
+
+            /*
+            migrationBuilder.RenameColumn(name: "UserId", table: "user_avatars", newName: "user");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_user_avatars_users_UserId",
+                table: "user_avatars");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_user_avatars_users_user",
+                table: "user_avatars",
+                column: "user",
+                principalTable: "users",
+                principalColumn: "id",
+                onDelete: ReferentialAction.Cascade);
+
+             migrationBuilder.RenameIndex(
+                name: "IX_user_avatars_UserId",
+                table: "user_avatars",
+                newName: "IX_user_avatars_user");
+             */
+
+            migrationBuilder.Sql(@"
+CREATE TABLE user_avatars_backup (
+    id            INTEGER NOT NULL
+                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
+    data          BLOB,
+    type          TEXT,
+    etag          TEXT,
+    last_modified TEXT    NOT NULL,
+    user          INTEGER NOT NULL,
+    CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (
+        user
+    )
+    REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, user)
+    SELECT id, data, type, etag, last_modified, UserId FROM user_avatars;
+
+DROP TABLE user_avatars;
+
+ALTER TABLE user_avatars_backup
+    RENAME TO user_avatars;
+
+CREATE UNIQUE INDEX IX_user_avatars_user ON user_avatars (user);
+            ");
+
+            // migrationBuilder.DropTable(name: "user_details");
+
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.Sql(@"
+CREATE TABLE user_avatars_backup (
+    id            INTEGER NOT NULL
+                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
+    data          BLOB,
+    type          TEXT,
+    etag          TEXT,
+    last_modified TEXT    NOT NULL,
+    UserId        INTEGER NOT NULL,
+    CONSTRAINT FK_user_avatars_users_UserId FOREIGN KEY (
+        user
+    )
+    REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, UserId)
+    SELECT id, data, type, etag, last_modified, user FROM user_avatars;
+
+DROP TABLE user_avatars;
+
+ALTER TABLE user_avatars_backup
+    RENAME TO user_avatars;
+
+CREATE UNIQUE INDEX IX_user_avatars_UserId ON user_avatars (UserId);
+            ");
+
+            migrationBuilder.Sql(@"
+CREATE TABLE users_backup (
+    id       INTEGER NOT NULL
+                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
+    name     TEXT    NOT NULL,
+    password TEXT    NOT NULL,
+    roles    TEXT    NOT NULL,
+    version  INTEGER NOT NULL
+                     DEFAULT 0
+);
+
+INSERT INTO users_backup (id, name, password, roles, version)
+    SELECT id, username, password, roles, version FROM users;
+
+DROP TABLE users;
+
+ALTER TABLE users_backup
+    RENAME TO users;
+
+CREATE UNIQUE INDEX IX_users_name ON users (name);
+            ");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs b/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
new file mode 100644
index 00000000..eb328b52
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
@@ -0,0 +1,257 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200221064341_AddJwtToken")]
+    partial class AddJwtToken
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.2");
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<string>("ETag")
+                        .HasColumnName("etag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.cs b/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.cs
new file mode 100644
index 00000000..628970c6
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200221064341_AddJwtToken.cs
@@ -0,0 +1,45 @@
+﻿using System;
+using System.Security.Cryptography;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public static class JwtTokenGenerateHelper
+    {
+        public static byte[] GenerateKey()
+        {
+            using var random = RandomNumberGenerator.Create();
+            var key = new byte[16];
+            random.GetBytes(key);
+            return key;
+        }
+    }
+
+    public partial class AddJwtToken : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "jwt_token",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    key = table.Column<byte[]>(nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_jwt_token", x => x.id);
+                });
+
+
+            migrationBuilder.InsertData("jwt_token", "key", JwtTokenGenerateHelper.GenerateKey());
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "jwt_token");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs b/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
new file mode 100644
index 00000000..cf6ae8a3
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
@@ -0,0 +1,265 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200229103848_AddPostLocalId")]
+    partial class AddPostLocalId
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.2");
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<string>("ETag")
+                        .HasColumnName("etag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.cs b/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.cs
new file mode 100644
index 00000000..497b38a1
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200229103848_AddPostLocalId.cs
@@ -0,0 +1,42 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class AddPostLocalId : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+
+            migrationBuilder.AddColumn<long>(
+                name: "current_post_local_id",
+                table: "timelines",
+                nullable: false,
+                defaultValue: 0L);
+
+            migrationBuilder.AddColumn<long>(
+                name: "local_id",
+                table: "timeline_posts",
+                nullable: false,
+                defaultValue: 0L);
+
+            migrationBuilder.Sql(@"
+UPDATE timeline_posts
+SET local_id = (SELECT COUNT (*)
+                FROM timeline_posts AS p
+                WHERE p.timeline =  timeline_posts.timeline
+                    AND p.id  <= timeline_posts.id);
+
+UPDATE timelines
+SET current_post_local_id = (SELECT COUNT (*)
+                             FROM timeline_posts AS p
+                             WHERE p.timeline =  timelines.id);
+            ");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs b/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
new file mode 100644
index 00000000..336ffc18
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
@@ -0,0 +1,290 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200306110049_AddDataTable")]
+    partial class AddDataTable
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.2");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.cs b/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.cs
new file mode 100644
index 00000000..e33bf4c9
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200306110049_AddDataTable.cs
@@ -0,0 +1,87 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class AddDataTable : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "data",
+                columns: table => new
+                {
+                    id = table.Column<long>(nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    tag = table.Column<string>(nullable: false),
+                    data = table.Column<byte[]>(nullable: false),
+                    @ref = table.Column<int>(name: "ref", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_data", x => x.id);
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_data_tag",
+                table: "data",
+                column: "tag",
+                unique: true);
+
+            migrationBuilder.Sql(@"
+ALTER TABLE user_avatars
+    RENAME TO user_avatars_backup;
+
+CREATE TABLE user_avatars (
+    id            INTEGER NOT NULL
+                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
+    data_tag      TEXT,
+    type          TEXT,
+    last_modified TEXT    NOT NULL,
+    user          INTEGER NOT NULL,
+    CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (
+        user
+    )
+    REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO user_avatars (id, data_tag, type, last_modified, user)
+    SELECT id, etag, type, last_modified, user FROM user_avatars_backup;
+
+INSERT OR IGNORE INTO data (tag, data, ref)
+    SELECT etag, data, 0 FROM user_avatars_backup;
+
+UPDATE data
+SET ref = (SELECT COUNT (*)
+           FROM user_avatars_backup AS a
+           WHERE a.etag == data.tag);
+
+DROP TABLE user_avatars_backup;
+
+CREATE UNIQUE INDEX IX_user_avatars_user ON user_avatars (user);
+            ");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "data");
+
+            migrationBuilder.DropColumn(
+                name: "data_tag",
+                table: "user_avatars");
+
+            migrationBuilder.AddColumn<byte[]>(
+                name: "data",
+                table: "user_avatars",
+                type: "BLOB",
+                nullable: true);
+
+            migrationBuilder.AddColumn<string>(
+                name: "etag",
+                table: "user_avatars",
+                type: "TEXT",
+                nullable: true);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs b/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
new file mode 100644
index 00000000..f0c4dc08
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
@@ -0,0 +1,290 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200306111553_DropUserDetails")]
+    partial class DropUserDetails
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.2");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.cs b/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.cs
new file mode 100644
index 00000000..0a176461
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200306111553_DropUserDetails.cs
@@ -0,0 +1,17 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class DropUserDetails : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(name: "user_details");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs b/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
new file mode 100644
index 00000000..bd75a916
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
@@ -0,0 +1,299 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200312112552_AddImagePost")]
+    partial class AddImagePost
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.2");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.cs b/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.cs
new file mode 100644
index 00000000..d5098ce0
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200312112552_AddImagePost.cs
@@ -0,0 +1,38 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+using Timeline.Models;
+
+namespace Timeline.Migrations
+{
+    public partial class AddImagePost : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<string>(
+                name: "content_type",
+                table: "timeline_posts",
+                nullable: false,
+                defaultValue: "");
+
+            migrationBuilder.AddColumn<string>(
+                name: "extra_content",
+                table: "timeline_posts",
+                nullable: true);
+
+            migrationBuilder.Sql($@"
+UPDATE timeline_posts
+SET content_type = '{TimelinePostContentTypes.Text}';
+            ");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "content_type",
+                table: "timeline_posts");
+
+            migrationBuilder.DropColumn(
+                name: "extra_content",
+                table: "timeline_posts");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs b/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
new file mode 100644
index 00000000..adcc6308
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
@@ -0,0 +1,306 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200614061237_AddTimelineUniqueId")]
+    partial class AddTimelineUniqueId
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.4");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs b/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
new file mode 100644
index 00000000..7abbed79
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
@@ -0,0 +1,50 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class AddTimelineUniqueId : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.Sql(
+@"
+PRAGMA foreign_keys=OFF;
+
+BEGIN TRANSACTION;
+
+CREATE TABLE new_timelines (
+    id INTEGER NOT NULL CONSTRAINT PK_timelines PRIMARY KEY AUTOINCREMENT,
+	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
+    name TEXT NULL,
+    description TEXT NULL,
+    owner INTEGER NOT NULL,
+    visibility INTEGER NOT NULL,
+    create_time TEXT NOT NULL,
+    current_post_local_id INTEGER NOT NULL DEFAULT 0,
+    CONSTRAINT FK_timelines_users_owner FOREIGN KEY (owner) REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO new_timelines (id, name, description, owner, visibility, create_time, current_post_local_id)
+	SELECT id, name, description, owner, visibility, create_time, current_post_local_id FROM timelines;
+	
+DROP TABLE timelines;
+
+ALTER TABLE new_timelines
+	RENAME TO timelines; 
+
+CREATE INDEX IX_timelines_owner ON timelines (owner);
+
+PRAGMA foreign_key_check;
+
+COMMIT TRANSACTION;
+
+PRAGMA foreign_keys=ON;
+"
+                , true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs b/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
new file mode 100644
index 00000000..fd10dfa9
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
@@ -0,0 +1,314 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200618064936_TimelineAddModifiedTime")]
+    partial class TimelineAddModifiedTime
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.5");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs b/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
new file mode 100644
index 00000000..c277fe39
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
@@ -0,0 +1,57 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace Timeline.Migrations
+{
+    public partial class TimelineAddModifiedTime : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            var currentTime = new DateTimeToStringConverter().ConvertToProvider(DateTime.Now);
+
+            migrationBuilder.Sql(
+@$"
+PRAGMA foreign_keys=OFF;
+
+BEGIN TRANSACTION;
+
+CREATE TABLE new_timelines (
+    id INTEGER NOT NULL CONSTRAINT PK_timelines PRIMARY KEY AUTOINCREMENT,
+	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
+    name TEXT NULL,
+    name_last_modified TEXT NOT NULL,
+    description TEXT NULL,
+    owner INTEGER NOT NULL,
+    visibility INTEGER NOT NULL,
+    create_time TEXT NOT NULL,
+    last_modified TEXT NOT NULL,
+    current_post_local_id INTEGER NOT NULL DEFAULT 0,
+    CONSTRAINT FK_timelines_users_owner FOREIGN KEY (owner) REFERENCES users (id) ON DELETE CASCADE
+);
+
+INSERT INTO new_timelines (id, unique_id, name, name_last_modified, description, owner, visibility, create_time, last_modified, current_post_local_id)
+	SELECT id, unique_id, name, '{currentTime}', description, owner, visibility, create_time, '{currentTime}', current_post_local_id FROM timelines;
+	
+DROP TABLE timelines;
+
+ALTER TABLE new_timelines
+	RENAME TO timelines; 
+
+CREATE INDEX IX_timelines_owner ON timelines (owner);
+
+PRAGMA foreign_key_check;
+
+COMMIT TRANSACTION;
+
+PRAGMA foreign_keys=ON;
+"
+            , true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs b/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
new file mode 100644
index 00000000..fe2329e4
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
@@ -0,0 +1,321 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200808071611_UserAddUniqueId")]
+    partial class UserAddUniqueId
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.5");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.cs b/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.cs
new file mode 100644
index 00000000..651a2b05
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200808071611_UserAddUniqueId.cs
@@ -0,0 +1,55 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class UserAddUniqueId : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.Sql(
+@"
+PRAGMA foreign_keys=OFF;
+
+BEGIN TRANSACTION;
+
+CREATE TABLE new_users (
+    id       INTEGER NOT NULL
+                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
+	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
+    username TEXT    NOT NULL,
+    password TEXT    NOT NULL,
+    roles    TEXT    NOT NULL,
+    version  INTEGER NOT NULL
+                     DEFAULT 0,
+    nickname TEXT
+);
+
+INSERT INTO new_users (id, username, password, roles, version, nickname)
+	SELECT id, username, password, roles, version, nickname FROM users;
+	
+DROP TABLE users;
+
+ALTER TABLE new_users
+	RENAME TO users; 
+
+CREATE UNIQUE INDEX IX_users_username ON users (
+    username
+);
+
+PRAGMA foreign_key_check;
+
+COMMIT TRANSACTION;
+
+PRAGMA foreign_keys=ON;
+"
+    , true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "unique_id",
+                table: "users");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs b/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
new file mode 100644
index 00000000..71cc54dc
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
@@ -0,0 +1,339 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200810155908_AddTimesToUser")]
+    partial class AddTimesToUser
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.5");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTimeOffset>("CreateTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<DateTimeOffset>("LastModified")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTimeOffset>("UsernameChangeTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("username_change_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.cs b/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.cs
new file mode 100644
index 00000000..369f85e6
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200810155908_AddTimesToUser.cs
@@ -0,0 +1,67 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class AddTimesToUser : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.Sql(
+@"
+PRAGMA foreign_keys=OFF;
+
+BEGIN TRANSACTION;
+
+CREATE TABLE new_users (
+    id       INTEGER NOT NULL
+                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
+	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
+    username TEXT    NOT NULL,
+    password TEXT    NOT NULL,
+    roles    TEXT    NOT NULL,
+    version  INTEGER NOT NULL
+                     DEFAULT 0,
+    nickname TEXT,
+    create_time TEXT NOT NULL DEFAULT (datetime('now', 'utc')),
+    last_modified TEXT NOT NULL DEFAULT (datetime('now', 'utc')),
+    username_change_time TEXT NOT NULL DEFAULT (datetime('now', 'utc'))
+);
+
+INSERT INTO new_users (id, unique_id, username, password, roles, version, nickname)
+	SELECT id, unique_id, username, password, roles, version, nickname FROM users;
+	
+DROP TABLE users;
+
+ALTER TABLE new_users
+	RENAME TO users; 
+
+CREATE UNIQUE INDEX IX_users_username ON users (
+    username
+);
+
+PRAGMA foreign_key_check;
+
+COMMIT TRANSACTION;
+
+PRAGMA foreign_keys=ON;
+"
+, true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "create_time",
+                table: "users");
+
+            migrationBuilder.DropColumn(
+                name: "last_modified",
+                table: "users");
+
+            migrationBuilder.DropColumn(
+                name: "username_change_time",
+                table: "users");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
new file mode 100644
index 00000000..80598fdf
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
@@ -0,0 +1,337 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200810170533_MakePostAuthorOptional")]
+    partial class MakePostAuthorOptional
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.5");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long?>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTimeOffset>("CreateTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<DateTimeOffset>("LastModified")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTimeOffset>("UsernameChangeTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("username_change_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId");
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
new file mode 100644
index 00000000..b0f0bca7
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
@@ -0,0 +1,78 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class MakePostAuthorOptional : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.Sql(@"
+PRAGMA foreign_keys = 0;
+
+BEGIN TRANSACTION;
+
+CREATE TABLE new_timeline_posts (
+    id            INTEGER NOT NULL
+                          CONSTRAINT PK_timeline_posts PRIMARY KEY AUTOINCREMENT,
+    timeline      INTEGER NOT NULL,
+    author        INTEGER,
+    content       TEXT,
+    time          TEXT    NOT NULL,
+    last_updated  TEXT    NOT NULL,
+    local_id      INTEGER NOT NULL
+                          DEFAULT 0,
+    content_type  TEXT    NOT NULL
+                          DEFAULT '',
+    extra_content TEXT,
+    CONSTRAINT FK_timeline_posts_users_author FOREIGN KEY (
+        author
+    )
+    REFERENCES users (id),
+    CONSTRAINT FK_timeline_posts_timelines_timeline FOREIGN KEY (
+        timeline
+    )
+    REFERENCES timelines (id) ON DELETE CASCADE
+);
+
+INSERT INTO new_timeline_posts SELECT * FROM timeline_posts;
+
+DROP TABLE timeline_posts;
+
+ALTER TABLE new_timeline_posts RENAME TO timeline_posts; 
+
+CREATE INDEX IX_timeline_posts_author ON timeline_posts (author);
+
+CREATE INDEX IX_timeline_posts_timeline ON timeline_posts(timeline);
+
+PRAGMA foreign_key_check;
+
+COMMIT TRANSACTION;
+
+PRAGMA foreign_keys = 1;
+            ", true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_timeline_posts_users_author",
+                table: "timeline_posts");
+
+            migrationBuilder.AlterColumn<long>(
+                name: "author",
+                table: "timeline_posts",
+                type: "INTEGER",
+                nullable: false,
+                oldClrType: typeof(long),
+                oldNullable: true);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_timeline_posts_users_author",
+                table: "timeline_posts",
+                column: "author",
+                principalTable: "users",
+                principalColumn: "id",
+                onDelete: ReferentialAction.Cascade);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs b/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
new file mode 100644
index 00000000..58238557
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
@@ -0,0 +1,337 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200811080808_ChangeDateTimeOffsetToDateTime")]
+    partial class ChangeDateTimeOffsetToDateTime
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.5");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long?>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<DateTime>("LastModified")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("UsernameChangeTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("username_change_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId");
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs b/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
new file mode 100644
index 00000000..eb6b44f3
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
@@ -0,0 +1,17 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class ChangeDateTimeOffsetToDateTime : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs b/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
new file mode 100644
index 00000000..f2279f3b
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
@@ -0,0 +1,341 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    [Migration("20200826164553_TimelineAddTitle")]
+    partial class TimelineAddTitle
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.7");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Title")
+                        .HasColumnName("title")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long?>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<DateTime>("LastModified")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("UsernameChangeTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("username_change_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId");
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.cs b/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.cs
new file mode 100644
index 00000000..7e8c498b
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20200826164553_TimelineAddTitle.cs
@@ -0,0 +1,22 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+    public partial class TimelineAddTitle : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<string>(
+                name: "title",
+                table: "timelines",
+                nullable: true);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "title",
+                table: "timelines");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs b/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
new file mode 100644
index 00000000..65ae6c9a
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
@@ -0,0 +1,339 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+    [DbContext(typeof(DatabaseContext))]
+    partial class DatabaseContextModelSnapshot : ModelSnapshot
+    {
+        protected override void BuildModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "3.1.7");
+
+            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Data")
+                        .IsRequired()
+                        .HasColumnName("data")
+                        .HasColumnType("BLOB");
+
+                    b.Property<int>("Ref")
+                        .HasColumnName("ref")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Tag")
+                        .IsRequired()
+                        .HasColumnName("tag")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Tag")
+                        .IsUnique();
+
+                    b.ToTable("data");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<byte[]>("Key")
+                        .IsRequired()
+                        .HasColumnName("key")
+                        .HasColumnType("BLOB");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("jwt_token");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("CurrentPostLocalId")
+                        .HasColumnName("current_post_local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Description")
+                        .HasColumnName("description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnName("name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("NameLastModified")
+                        .HasColumnName("name_last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("OwnerId")
+                        .HasColumnName("owner")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Title")
+                        .HasColumnName("title")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<int>("Visibility")
+                        .HasColumnName("visibility")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("timelines");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("TimelineId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("timeline_members");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long?>("AuthorId")
+                        .HasColumnName("author")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Content")
+                        .HasColumnName("content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ContentType")
+                        .IsRequired()
+                        .HasColumnName("content_type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ExtraContent")
+                        .HasColumnName("extra_content")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastUpdated")
+                        .HasColumnName("last_updated")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("LocalId")
+                        .HasColumnName("local_id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("Time")
+                        .HasColumnName("time")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("TimelineId")
+                        .HasColumnName("timeline")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AuthorId");
+
+                    b.HasIndex("TimelineId");
+
+                    b.ToTable("timeline_posts");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("DataTag")
+                        .HasColumnName("data_tag")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastModified")
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Type")
+                        .HasColumnName("type")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("UserId")
+                        .HasColumnName("user")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("user_avatars");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+                {
+                    b.Property<long>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("id")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("CreateTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("create_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<DateTime>("LastModified")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("last_modified")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<string>("Nickname")
+                        .HasColumnName("nickname")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnName("password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Roles")
+                        .IsRequired()
+                        .HasColumnName("roles")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniqueId")
+                        .IsRequired()
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("unique_id")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+                    b.Property<string>("Username")
+                        .IsRequired()
+                        .HasColumnName("username")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("UsernameChangeTime")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("username_change_time")
+                        .HasColumnType("TEXT")
+                        .HasDefaultValueSql("datetime('now', 'utc')");
+
+                    b.Property<long>("Version")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnName("version")
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Username")
+                        .IsUnique();
+
+                    b.ToTable("users");
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
+                        .WithMany("Timelines")
+                        .HasForeignKey("OwnerId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Members")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithMany("TimelinesJoined")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "Author")
+                        .WithMany("TimelinePosts")
+                        .HasForeignKey("AuthorId");
+
+                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+                        .WithMany("Posts")
+                        .HasForeignKey("TimelineId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+                {
+                    b.HasOne("Timeline.Entities.UserEntity", "User")
+                        .WithOne("Avatar")
+                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/BackEnd/Timeline/MockClientApp/index.html b/BackEnd/Timeline/MockClientApp/index.html
new file mode 100644
index 00000000..03cf371e
--- /dev/null
+++ b/BackEnd/Timeline/MockClientApp/index.html
@@ -0,0 +1,10 @@
+﻿<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title>Mock Client App</title>
+</head>
+<body>
+    This is a mock client app for testing.
+</body>
+</html>
diff --git a/BackEnd/Timeline/Models/ByteData.cs b/BackEnd/Timeline/Models/ByteData.cs
new file mode 100644
index 00000000..7b832eb5
--- /dev/null
+++ b/BackEnd/Timeline/Models/ByteData.cs
@@ -0,0 +1,33 @@
+﻿using NSwag.Annotations;
+
+namespace Timeline.Models
+{
+    /// <summary>
+    /// Model for reading http body as bytes.
+    /// </summary>
+    [OpenApiFile]
+    public class ByteData
+    {
+        /// <summary>
+        /// </summary>
+        /// <param name="data">The data.</param>
+        /// <param name="contentType">The content type.</param>
+        public ByteData(byte[] data, string contentType)
+        {
+            Data = data;
+            ContentType = contentType;
+        }
+
+        /// <summary>
+        /// Data.
+        /// </summary>
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[] Data { get; }
+#pragma warning restore CA1819 // Properties should not return arrays
+
+        /// <summary>
+        /// Content type.
+        /// </summary>
+        public string ContentType { get; }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Converters/JsonDateTimeConverter.cs b/BackEnd/Timeline/Models/Converters/JsonDateTimeConverter.cs
new file mode 100644
index 00000000..94b5cab0
--- /dev/null
+++ b/BackEnd/Timeline/Models/Converters/JsonDateTimeConverter.cs
@@ -0,0 +1,23 @@
+﻿using System;
+using System.Diagnostics;
+using System.Globalization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using Timeline.Helpers;
+
+namespace Timeline.Models.Converters
+{
+    public class JsonDateTimeConverter : JsonConverter<DateTime>
+    {
+        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            Debug.Assert(typeToConvert == typeof(DateTime));
+            return DateTime.Parse(reader.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
+        }
+
+        public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
+        {
+            writer.WriteStringValue(value.MyToUtc().ToString("s", CultureInfo.InvariantCulture) + "Z");
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Converters/MyDateTimeConverter.cs b/BackEnd/Timeline/Models/Converters/MyDateTimeConverter.cs
new file mode 100644
index 00000000..f125cd5c
--- /dev/null
+++ b/BackEnd/Timeline/Models/Converters/MyDateTimeConverter.cs
@@ -0,0 +1,51 @@
+﻿using System;
+using System.ComponentModel;
+using System.Globalization;
+
+namespace Timeline.Models.Converters
+{
+    public class MyDateTimeConverter : TypeConverter
+    {
+        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
+        {
+            return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType);
+        }
+
+        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
+        {
+            return base.CanConvertTo(context, destinationType);
+        }
+
+        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
+        {
+            if (value is string text)
+            {
+                text = text.Trim();
+                if (text.Length == 0)
+                {
+                    return DateTime.SpecifyKind(DateTime.MinValue, DateTimeKind.Utc);
+                }
+
+                return DateTime.Parse(text, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal);
+            }
+
+            return base.ConvertFrom(context, culture, value);
+        }
+
+        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
+        {
+            if (destinationType == typeof(string) && value is DateTime)
+            {
+                DateTime dt = (DateTime)value;
+                if (dt == DateTime.MinValue)
+                {
+                    return string.Empty;
+                }
+
+                return dt.ToString("s", CultureInfo.InvariantCulture) + "Z";
+            }
+
+            return base.ConvertTo(context, culture, value, destinationType);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/ActionContextAccessorExtensions.cs b/BackEnd/Timeline/Models/Http/ActionContextAccessorExtensions.cs
new file mode 100644
index 00000000..bcc55c5a
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/ActionContextAccessorExtensions.cs
@@ -0,0 +1,14 @@
+﻿using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using System;
+
+namespace Timeline.Models.Http
+{
+    public static class ActionContextAccessorExtensions
+    {
+        public static ActionContext AssertActionContextForUrlFill(this IActionContextAccessor accessor)
+        {
+            return accessor.ActionContext ?? throw new InvalidOperationException(Resources.Models.Http.Exception.ActionContextNull);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/Common.cs b/BackEnd/Timeline/Models/Http/Common.cs
new file mode 100644
index 00000000..5fa22c9e
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/Common.cs
@@ -0,0 +1,120 @@
+using static Timeline.Resources.Models.Http.Common;
+
+namespace Timeline.Models.Http
+{
+    public class CommonResponse
+    {
+        public CommonResponse()
+        {
+
+        }
+
+        public CommonResponse(int code, string message)
+        {
+            Code = code;
+            Message = message;
+        }
+
+        public int Code { get; set; }
+        public string? Message { get; set; }
+    }
+
+    public class CommonDataResponse<T> : CommonResponse
+    {
+        public CommonDataResponse()
+        {
+
+        }
+
+        public CommonDataResponse(int code, string message, T data)
+            : base(code, message)
+        {
+            Data = data;
+        }
+
+        public T Data { get; set; } = default!;
+    }
+
+    public class CommonPutResponse : CommonDataResponse<CommonPutResponse.ResponseData>
+    {
+        public class ResponseData
+        {
+            public ResponseData() { }
+
+            public ResponseData(bool create)
+            {
+                Create = create;
+            }
+
+            public bool Create { get; set; }
+        }
+
+        public CommonPutResponse()
+        {
+
+        }
+
+        public CommonPutResponse(int code, string message, bool create)
+            : base(code, message, new ResponseData(create))
+        {
+
+        }
+
+        internal static CommonPutResponse Create()
+        {
+            return new CommonPutResponse(0, MessagePutCreate, true);
+        }
+
+        internal static CommonPutResponse Modify()
+        {
+            return new CommonPutResponse(0, MessagePutModify, false);
+        }
+    }
+
+    /// <summary>
+    /// Common response for delete method.
+    /// </summary>
+    public class CommonDeleteResponse : CommonDataResponse<CommonDeleteResponse.ResponseData>
+    {
+        /// <summary></summary>
+        public class ResponseData
+        {
+            /// <summary></summary>
+            public ResponseData() { }
+
+            /// <summary></summary>
+            public ResponseData(bool delete)
+            {
+                Delete = delete;
+            }
+
+            /// <summary>
+            /// True if the entry is deleted. False if the entry does not exist.
+            /// </summary>
+            public bool Delete { get; set; }
+        }
+
+            /// <summary></summary>
+        public CommonDeleteResponse()
+        {
+
+        }
+
+            /// <summary></summary>
+        public CommonDeleteResponse(int code, string message, bool delete)
+            : base(code, message, new ResponseData(delete))
+        {
+
+        }
+
+        internal static CommonDeleteResponse Delete()
+        {
+            return new CommonDeleteResponse(0, MessageDeleteDelete, true);
+        }
+
+        internal static CommonDeleteResponse NotExist()
+        {
+            return new CommonDeleteResponse(0, MessageDeleteNotExist, false);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/ErrorResponse.cs b/BackEnd/Timeline/Models/Http/ErrorResponse.cs
new file mode 100644
index 00000000..ac86481f
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/ErrorResponse.cs
@@ -0,0 +1,261 @@
+﻿using static Timeline.Resources.Messages;
+
+namespace Timeline.Models.Http
+{
+    public static class ErrorResponse
+    {
+        public static class Common
+        {
+            public static CommonResponse InvalidModel(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.InvalidModel, string.Format(Common_InvalidModel, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_InvalidModel(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.InvalidModel, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse Forbid(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.Forbid, string.Format(Common_Forbid, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Forbid(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.Forbid, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse UnknownEndpoint(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.UnknownEndpoint, string.Format(Common_UnknownEndpoint, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_UnknownEndpoint(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.Common.UnknownEndpoint, string.Format(message, formatArgs));
+            }
+
+            public static class Header
+            {
+                public static CommonResponse IfNonMatch_BadFormat(params object?[] formatArgs)
+                {
+                    return new CommonResponse(ErrorCodes.Common.Header.IfNonMatch_BadFormat, string.Format(Common_Header_IfNonMatch_BadFormat, formatArgs));
+                }
+
+                public static CommonResponse CustomMessage_IfNonMatch_BadFormat(string message, params object?[] formatArgs)
+                {
+                    return new CommonResponse(ErrorCodes.Common.Header.IfNonMatch_BadFormat, string.Format(message, formatArgs));
+                }
+
+            }
+
+            public static class Content
+            {
+                public static CommonResponse TooBig(params object?[] formatArgs)
+                {
+                    return new CommonResponse(ErrorCodes.Common.Content.TooBig, string.Format(Common_Content_TooBig, formatArgs));
+                }
+
+                public static CommonResponse CustomMessage_TooBig(string message, params object?[] formatArgs)
+                {
+                    return new CommonResponse(ErrorCodes.Common.Content.TooBig, string.Format(message, formatArgs));
+                }
+
+            }
+
+        }
+
+        public static class UserCommon
+        {
+            public static CommonResponse NotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserCommon.NotExist, string.Format(UserCommon_NotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_NotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserCommon.NotExist, string.Format(message, formatArgs));
+            }
+
+        }
+
+        public static class TokenController
+        {
+            public static CommonResponse Create_BadCredential(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Create_BadCredential, string.Format(TokenController_Create_BadCredential, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Create_BadCredential(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Create_BadCredential, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse Verify_BadFormat(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_BadFormat, string.Format(TokenController_Verify_BadFormat, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Verify_BadFormat(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_BadFormat, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse Verify_UserNotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_UserNotExist, string.Format(TokenController_Verify_UserNotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Verify_UserNotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_UserNotExist, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse Verify_OldVersion(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_OldVersion, string.Format(TokenController_Verify_OldVersion, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Verify_OldVersion(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_OldVersion, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse Verify_TimeExpired(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_TimeExpired, string.Format(TokenController_Verify_TimeExpired, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_Verify_TimeExpired(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TokenController.Verify_TimeExpired, string.Format(message, formatArgs));
+            }
+
+        }
+
+        public static class UserController
+        {
+            public static CommonResponse UsernameConflict(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserController.UsernameConflict, string.Format(UserController_UsernameConflict, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_UsernameConflict(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserController.UsernameConflict, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse ChangePassword_BadOldPassword(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserController.ChangePassword_BadOldPassword, string.Format(UserController_ChangePassword_BadOldPassword, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_ChangePassword_BadOldPassword(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserController.ChangePassword_BadOldPassword, string.Format(message, formatArgs));
+            }
+
+        }
+
+        public static class UserAvatar
+        {
+            public static CommonResponse BadFormat_CantDecode(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_CantDecode, string.Format(UserAvatar_BadFormat_CantDecode, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_BadFormat_CantDecode(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_CantDecode, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse BadFormat_UnmatchedFormat(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat, string.Format(UserAvatar_BadFormat_UnmatchedFormat, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_BadFormat_UnmatchedFormat(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse BadFormat_BadSize(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_BadSize, string.Format(UserAvatar_BadFormat_BadSize, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_BadFormat_BadSize(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_BadSize, string.Format(message, formatArgs));
+            }
+
+        }
+
+        public static class TimelineController
+        {
+            public static CommonResponse NameConflict(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.NameConflict, string.Format(TimelineController_NameConflict, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_NameConflict(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.NameConflict, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse NotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.NotExist, string.Format(TimelineController_NotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_NotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.NotExist, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse MemberPut_NotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.MemberPut_NotExist, string.Format(TimelineController_MemberPut_NotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_MemberPut_NotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.MemberPut_NotExist, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse QueryRelateNotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.QueryRelateNotExist, string.Format(TimelineController_QueryRelateNotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_QueryRelateNotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.QueryRelateNotExist, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse PostNotExist(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.PostNotExist, string.Format(TimelineController_PostNotExist, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_PostNotExist(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.PostNotExist, string.Format(message, formatArgs));
+            }
+
+            public static CommonResponse PostNoData(params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.PostNoData, string.Format(TimelineController_PostNoData, formatArgs));
+            }
+
+            public static CommonResponse CustomMessage_PostNoData(string message, params object?[] formatArgs)
+            {
+                return new CommonResponse(ErrorCodes.TimelineController.PostNoData, string.Format(message, formatArgs));
+            }
+
+        }
+
+    }
+
+}
diff --git a/BackEnd/Timeline/Models/Http/Timeline.cs b/BackEnd/Timeline/Models/Http/Timeline.cs
new file mode 100644
index 00000000..a81b33f5
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/Timeline.cs
@@ -0,0 +1,219 @@
+﻿using AutoMapper;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.AspNetCore.Mvc.Routing;
+using System;
+using System.Collections.Generic;
+using Timeline.Controllers;
+
+namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// Info of post content.
+    /// </summary>
+    public class TimelinePostContentInfo
+    {
+        /// <summary>
+        /// Type of the post content.
+        /// </summary>
+        public string Type { get; set; } = default!;
+        /// <summary>
+        /// If post is of text type. This is the text.
+        /// </summary>
+        public string? Text { get; set; }
+        /// <summary>
+        /// If post is of image type. This is the image url.
+        /// </summary>
+        public string? Url { get; set; }
+        /// <summary>
+        /// If post has data (currently it means it's a image post), this is the data etag.
+        /// </summary>
+        public string? ETag { get; set; }
+    }
+
+    /// <summary>
+    /// Info of a post.
+    /// </summary>
+    public class TimelinePostInfo
+    {
+        /// <summary>
+        /// Post id.
+        /// </summary>
+        public long Id { get; set; }
+        /// <summary>
+        /// Content of the post. May be null if post is deleted.
+        /// </summary>
+        public TimelinePostContentInfo? Content { get; set; }
+        /// <summary>
+        /// True if post is deleted.
+        /// </summary>
+        public bool Deleted { get; set; }
+        /// <summary>
+        /// Post time.
+        /// </summary>
+        public DateTime Time { get; set; }
+        /// <summary>
+        /// The author. May be null if the user has been deleted.
+        /// </summary>
+        public UserInfo? Author { get; set; } = default!;
+        /// <summary>
+        /// Last updated time.
+        /// </summary>
+        public DateTime LastUpdated { get; set; } = default!;
+    }
+
+    /// <summary>
+    /// Info of a timeline.
+    /// </summary>
+    public class TimelineInfo
+    {
+        /// <summary>
+        /// Unique id.
+        /// </summary>
+        public string UniqueId { get; set; } = default!;
+        /// <summary>
+        /// Title.
+        /// </summary>
+        public string Title { get; set; } = default!;
+        /// <summary>
+        /// Name of timeline.
+        /// </summary>
+        public string Name { get; set; } = default!;
+        /// <summary>
+        /// Last modified time of timeline name.
+        /// </summary>
+        public DateTime NameLastModifed { get; set; } = default!;
+        /// <summary>
+        /// Timeline description.
+        /// </summary>
+        public string Description { get; set; } = default!;
+        /// <summary>
+        /// Owner of the timeline.
+        /// </summary>
+        public UserInfo Owner { get; set; } = default!;
+        /// <summary>
+        /// Visibility of the timeline.
+        /// </summary>
+        public TimelineVisibility Visibility { get; set; }
+#pragma warning disable CA2227 // Collection properties should be read only
+        /// <summary>
+        /// Members of timeline.
+        /// </summary>
+        public List<UserInfo> Members { get; set; } = default!;
+#pragma warning restore CA2227 // Collection properties should be read only
+        /// <summary>
+        /// Create time of timeline.
+        /// </summary>
+        public DateTime CreateTime { get; set; } = default!;
+        /// <summary>
+        /// Last modified time of timeline.
+        /// </summary>
+        public DateTime LastModified { get; set; } = default!;
+
+#pragma warning disable CA1707 // Identifiers should not contain underscores
+        /// <summary>
+        /// Related links.
+        /// </summary>
+        public TimelineInfoLinks _links { get; set; } = default!;
+#pragma warning restore CA1707 // Identifiers should not contain underscores
+    }
+
+    /// <summary>
+    /// Related links for timeline.
+    /// </summary>
+    public class TimelineInfoLinks
+    {
+        /// <summary>
+        /// Self.
+        /// </summary>
+        public string Self { get; set; } = default!;
+        /// <summary>
+        /// Posts url.
+        /// </summary>
+        public string Posts { get; set; } = default!;
+    }
+
+    public class TimelineInfoLinksValueResolver : IValueResolver<Timeline, TimelineInfo, TimelineInfoLinks>
+    {
+        private readonly IActionContextAccessor _actionContextAccessor;
+        private readonly IUrlHelperFactory _urlHelperFactory;
+
+        public TimelineInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
+        {
+            _actionContextAccessor = actionContextAccessor;
+            _urlHelperFactory = urlHelperFactory;
+        }
+
+        public TimelineInfoLinks Resolve(Timeline source, TimelineInfo destination, TimelineInfoLinks destMember, ResolutionContext context)
+        {
+            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
+            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
+
+            return new TimelineInfoLinks
+            {
+                Self = urlHelper.ActionLink(nameof(TimelineController.TimelineGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { source.Name }),
+                Posts = urlHelper.ActionLink(nameof(TimelineController.PostListGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { source.Name })
+            };
+        }
+    }
+
+    public class TimelinePostContentResolver : IValueResolver<TimelinePost, TimelinePostInfo, TimelinePostContentInfo?>
+    {
+        private readonly IActionContextAccessor _actionContextAccessor;
+        private readonly IUrlHelperFactory _urlHelperFactory;
+
+        public TimelinePostContentResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
+        {
+            _actionContextAccessor = actionContextAccessor;
+            _urlHelperFactory = urlHelperFactory;
+        }
+
+        public TimelinePostContentInfo? Resolve(TimelinePost source, TimelinePostInfo destination, TimelinePostContentInfo? destMember, ResolutionContext context)
+        {
+            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
+            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
+
+            var sourceContent = source.Content;
+
+            if (sourceContent == null)
+            {
+                return null;
+            }
+
+            if (sourceContent is TextTimelinePostContent textContent)
+            {
+                return new TimelinePostContentInfo
+                {
+                    Type = TimelinePostContentTypes.Text,
+                    Text = textContent.Text
+                };
+            }
+            else if (sourceContent is ImageTimelinePostContent imageContent)
+            {
+                return new TimelinePostContentInfo
+                {
+                    Type = TimelinePostContentTypes.Image,
+                    Url = urlHelper.ActionLink(
+                        action: nameof(TimelineController.PostDataGet),
+                        controller: nameof(TimelineController)[0..^nameof(Controller).Length],
+                        values: new { Name = source.TimelineName, Id = source.Id }),
+                    ETag = $"\"{imageContent.DataTag}\""
+                };
+            }
+            else
+            {
+                throw new InvalidOperationException(Resources.Models.Http.Exception.UnknownPostContentType);
+            }
+        }
+    }
+
+    public class TimelineInfoAutoMapperProfile : Profile
+    {
+        public TimelineInfoAutoMapperProfile()
+        {
+            CreateMap<Timeline, TimelineInfo>().ForMember(u => u._links, opt => opt.MapFrom<TimelineInfoLinksValueResolver>());
+            CreateMap<TimelinePost, TimelinePostInfo>().ForMember(p => p.Content, opt => opt.MapFrom<TimelinePostContentResolver>());
+            CreateMap<TimelinePatchRequest, TimelineChangePropertyRequest>();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/TimelineController.cs b/BackEnd/Timeline/Models/Http/TimelineController.cs
new file mode 100644
index 00000000..7bd141ed
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/TimelineController.cs
@@ -0,0 +1,93 @@
+﻿using System;
+using System.ComponentModel.DataAnnotations;
+using Timeline.Models.Validation;
+
+namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// Content of post create request.
+    /// </summary>
+    public class TimelinePostCreateRequestContent
+    {
+        /// <summary>
+        /// Type of post content.
+        /// </summary>
+        [Required]
+        public string Type { get; set; } = default!;
+        /// <summary>
+        /// If post is of text type, this is the text.
+        /// </summary>
+        public string? Text { get; set; }
+        /// <summary>
+        /// If post is of image type, this is base64 of image data.
+        /// </summary>
+        public string? Data { get; set; }
+    }
+
+    public class TimelinePostCreateRequest
+    {
+        /// <summary>
+        /// Content of the new post.
+        /// </summary>
+        [Required]
+        public TimelinePostCreateRequestContent Content { get; set; } = default!;
+
+        /// <summary>
+        /// Time of the post. If not set, current time will be used.
+        /// </summary>
+        public DateTime? Time { get; set; }
+    }
+
+    /// <summary>
+    /// Create timeline request model.
+    /// </summary>
+    public class TimelineCreateRequest
+    {
+        /// <summary>
+        /// Name of the new timeline. Must be a valid name.
+        /// </summary>
+        [Required]
+        [TimelineName]
+        public string Name { get; set; } = default!;
+    }
+
+    /// <summary>
+    /// Patch timeline request model.
+    /// </summary>
+    public class TimelinePatchRequest
+    {
+        /// <summary>
+        /// New title. Null for not change.
+        /// </summary>
+        public string? Title { get; set; }
+
+        /// <summary>
+        /// New description. Null for not change.
+        /// </summary>
+        public string? Description { get; set; }
+
+        /// <summary>
+        /// New visibility. Null for not change.
+        /// </summary>
+        public TimelineVisibility? Visibility { get; set; }
+    }
+
+    /// <summary>
+    /// Change timeline name request model.
+    /// </summary>
+    public class TimelineChangeNameRequest
+    {
+        /// <summary>
+        /// Old name of timeline.
+        /// </summary>
+        [Required]
+        [TimelineName]
+        public string OldName { get; set; } = default!;
+        /// <summary>
+        /// New name of timeline.
+        /// </summary>
+        [Required]
+        [TimelineName]
+        public string NewName { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/TokenController.cs b/BackEnd/Timeline/Models/Http/TokenController.cs
new file mode 100644
index 00000000..a42c44e5
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/TokenController.cs
@@ -0,0 +1,62 @@
+using System.ComponentModel.DataAnnotations;
+using Timeline.Controllers;
+
+namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// Request model for <see cref="TokenController.Create(CreateTokenRequest)"/>.
+    /// </summary>
+    public class CreateTokenRequest
+    {
+        /// <summary>
+        /// The username.
+        /// </summary>
+        public string Username { get; set; } = default!;
+        /// <summary>
+        /// The password.
+        /// </summary>
+        public string Password { get; set; } = default!;
+        /// <summary>
+        /// Optional token validation period. In days. If not specified, server will use a default one.
+        /// </summary>
+        [Range(1, 365)]
+        public int? Expire { get; set; }
+    }
+
+    /// <summary>
+    /// Response model for <see cref="TokenController.Create(CreateTokenRequest)"/>.
+    /// </summary>
+    public class CreateTokenResponse
+    {
+        /// <summary>
+        /// The token created.
+        /// </summary>
+        public string Token { get; set; } = default!;
+        /// <summary>
+        /// The user owning the token.
+        /// </summary>
+        public UserInfo User { get; set; } = default!;
+    }
+
+    /// <summary>
+    /// Request model for <see cref="TokenController.Verify(VerifyTokenRequest)"/>.
+    /// </summary>
+    public class VerifyTokenRequest
+    {
+        /// <summary>
+        /// The token to verify.
+        /// </summary>
+        public string Token { get; set; } = default!;
+    }
+
+    /// <summary>
+    /// Response model for <see cref="TokenController.Verify(VerifyTokenRequest)"/>.
+    /// </summary>
+    public class VerifyTokenResponse
+    {
+        /// <summary>
+        /// The user owning the token.
+        /// </summary>
+        public UserInfo User { get; set; } = default!;
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/UserController.cs b/BackEnd/Timeline/Models/Http/UserController.cs
new file mode 100644
index 00000000..6bc5a66e
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/UserController.cs
@@ -0,0 +1,93 @@
+using AutoMapper;
+using System.ComponentModel.DataAnnotations;
+using Timeline.Controllers;
+using Timeline.Models.Validation;
+
+namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// Request model for <see cref="UserController.Patch(UserPatchRequest, string)"/>.
+    /// </summary>
+    public class UserPatchRequest
+    {
+        /// <summary>
+        /// New username. Null if not change. Need to be administrator.
+        /// </summary>
+        [Username]
+        public string? Username { get; set; }
+
+        /// <summary>
+        /// New password. Null if not change. Need to be administrator.
+        /// </summary>
+        [MinLength(1)]
+        public string? Password { get; set; }
+
+        /// <summary>
+        /// New nickname. Null if not change. Need to be administrator to change other's.
+        /// </summary>
+        [Nickname]
+        public string? Nickname { get; set; }
+
+        /// <summary>
+        /// Whether to be administrator. Null if not change. Need to be administrator.
+        /// </summary>
+        public bool? Administrator { get; set; }
+    }
+
+    /// <summary>
+    /// Request model for <see cref="UserController.CreateUser(CreateUserRequest)"/>.
+    /// </summary>
+    public class CreateUserRequest
+    {
+        /// <summary>
+        /// Username of the new user.
+        /// </summary>
+        [Required, Username]
+        public string Username { get; set; } = default!;
+
+        /// <summary>
+        /// Password of the new user.
+        /// </summary>
+        [Required, MinLength(1)]
+        public string Password { get; set; } = default!;
+
+        /// <summary>
+        /// Whether the new user is administrator.
+        /// </summary>
+        [Required]
+        public bool? Administrator { get; set; }
+
+        /// <summary>
+        /// Nickname of the new user.
+        /// </summary>
+        [Nickname]
+        public string? Nickname { get; set; }
+    }
+
+    /// <summary>
+    /// Request model for <see cref="UserController.ChangePassword(ChangePasswordRequest)"/>.
+    /// </summary>
+    public class ChangePasswordRequest
+    {
+        /// <summary>
+        /// Old password.
+        /// </summary>
+        [Required(AllowEmptyStrings = false)]
+        public string OldPassword { get; set; } = default!;
+
+        /// <summary>
+        /// New password.
+        /// </summary>
+        [Required(AllowEmptyStrings = false)]
+        public string NewPassword { get; set; } = default!;
+    }
+
+    public class UserControllerAutoMapperProfile : Profile
+    {
+        public UserControllerAutoMapperProfile()
+        {
+            CreateMap<UserPatchRequest, User>(MemberList.Source);
+            CreateMap<CreateUserRequest, User>(MemberList.Source);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Http/UserInfo.cs b/BackEnd/Timeline/Models/Http/UserInfo.cs
new file mode 100644
index 00000000..d92a12c4
--- /dev/null
+++ b/BackEnd/Timeline/Models/Http/UserInfo.cs
@@ -0,0 +1,90 @@
+﻿using AutoMapper;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.AspNetCore.Mvc.Routing;
+using Timeline.Controllers;
+
+namespace Timeline.Models.Http
+{
+    /// <summary>
+    /// Info of a user.
+    /// </summary>
+    public class UserInfo
+    {
+        /// <summary>
+        /// Unique id.
+        /// </summary>
+        public string UniqueId { get; set; } = default!;
+        /// <summary>
+        /// Username.
+        /// </summary>
+        public string Username { get; set; } = default!;
+        /// <summary>
+        /// Nickname.
+        /// </summary>
+        public string Nickname { get; set; } = default!;
+        /// <summary>
+        /// True if the user is a administrator.
+        /// </summary>
+        public bool? Administrator { get; set; } = default!;
+#pragma warning disable CA1707 // Identifiers should not contain underscores
+        /// <summary>
+        /// Related links.
+        /// </summary>
+        public UserInfoLinks _links { get; set; } = default!;
+#pragma warning restore CA1707 // Identifiers should not contain underscores
+    }
+
+    /// <summary>
+    /// Related links for user.
+    /// </summary>
+    public class UserInfoLinks
+    {
+        /// <summary>
+        /// Self.
+        /// </summary>
+        public string Self { get; set; } = default!;
+        /// <summary>
+        /// Avatar url.
+        /// </summary>
+        public string Avatar { get; set; } = default!;
+        /// <summary>
+        /// Personal timeline url.
+        /// </summary>
+        public string Timeline { get; set; } = default!;
+    }
+
+    public class UserInfoLinksValueResolver : IValueResolver<User, UserInfo, UserInfoLinks>
+    {
+        private readonly IActionContextAccessor _actionContextAccessor;
+        private readonly IUrlHelperFactory _urlHelperFactory;
+
+        public UserInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
+        {
+            _actionContextAccessor = actionContextAccessor;
+            _urlHelperFactory = urlHelperFactory;
+        }
+
+        public UserInfoLinks Resolve(User source, UserInfo destination, UserInfoLinks destMember, ResolutionContext context)
+        {
+            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
+            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
+
+            var result = new UserInfoLinks
+            {
+                Self = urlHelper.ActionLink(nameof(UserController.Get), nameof(UserController)[0..^nameof(Controller).Length], new { destination.Username }),
+                Avatar = urlHelper.ActionLink(nameof(UserAvatarController.Get), nameof(UserAvatarController)[0..^nameof(Controller).Length], new { destination.Username }),
+                Timeline = urlHelper.ActionLink(nameof(TimelineController.TimelineGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { Name = "@" + destination.Username })
+            };
+            return result;
+        }
+    }
+
+    public class UserInfoAutoMapperProfile : Profile
+    {
+        public UserInfoAutoMapperProfile()
+        {
+            CreateMap<User, UserInfo>().ForMember(u => u._links, opt => opt.MapFrom<UserInfoLinksValueResolver>());
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Timeline.cs b/BackEnd/Timeline/Models/Timeline.cs
new file mode 100644
index 00000000..a5987577
--- /dev/null
+++ b/BackEnd/Timeline/Models/Timeline.cs
@@ -0,0 +1,98 @@
+﻿using System;
+using System.Collections.Generic;
+
+namespace Timeline.Models
+{
+    public enum TimelineVisibility
+    {
+        /// <summary>
+        /// All people including those without accounts.
+        /// </summary>
+        Public,
+        /// <summary>
+        /// Only people signed in.
+        /// </summary>
+        Register,
+        /// <summary>
+        /// Only member.
+        /// </summary>
+        Private
+    }
+
+    public static class TimelinePostContentTypes
+    {
+        public const string Text = "text";
+        public const string Image = "image";
+    }
+
+    public interface ITimelinePostContent
+    {
+        public string Type { get; }
+    }
+
+    public class TextTimelinePostContent : ITimelinePostContent
+    {
+        public TextTimelinePostContent(string text) { Text = text; }
+
+        public string Type { get; } = TimelinePostContentTypes.Text;
+        public string Text { get; set; }
+    }
+
+    public class ImageTimelinePostContent : ITimelinePostContent
+    {
+        public ImageTimelinePostContent(string dataTag) { DataTag = dataTag; }
+
+        public string Type { get; } = TimelinePostContentTypes.Image;
+
+        /// <summary>
+        /// The tag of the data. The tag of the entry in DataManager. Also the etag (not quoted).
+        /// </summary>
+        public string DataTag { get; set; }
+    }
+
+    public class TimelinePost
+    {
+        public TimelinePost(long id, ITimelinePostContent? content, DateTime time, User? author, DateTime lastUpdated, string timelineName)
+        {
+            Id = id;
+            Content = content;
+            Time = time;
+            Author = author;
+            LastUpdated = lastUpdated;
+            TimelineName = timelineName;
+        }
+
+        public long Id { get; set; }
+        public ITimelinePostContent? Content { get; set; }
+        public bool Deleted => Content == null;
+        public DateTime Time { get; set; }
+        public User? Author { get; set; }
+        public DateTime LastUpdated { get; set; }
+        public string TimelineName { get; set; }
+    }
+
+#pragma warning disable CA1724 // Type names should not match namespaces
+    public class Timeline
+#pragma warning restore CA1724 // Type names should not match namespaces
+    {
+        public string UniqueID { get; set; } = default!;
+        public string Name { get; set; } = default!;
+        public DateTime NameLastModified { get; set; } = default!;
+        public string Title { get; set; } = default!;
+        public string Description { get; set; } = default!;
+        public User Owner { get; set; } = default!;
+        public TimelineVisibility Visibility { get; set; }
+#pragma warning disable CA2227 // Collection properties should be read only
+        public List<User> Members { get; set; } = default!;
+#pragma warning restore CA2227 // Collection properties should be read only
+        public DateTime CreateTime { get; set; } = default!;
+        public DateTime LastModified { get; set; } = default!;
+    }
+
+    public class TimelineChangePropertyRequest
+    {
+        public string? Title { get; set; }
+        public string? Description { get; set; }
+        public TimelineVisibility? Visibility { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Models/User.cs b/BackEnd/Timeline/Models/User.cs
new file mode 100644
index 00000000..f08a62db
--- /dev/null
+++ b/BackEnd/Timeline/Models/User.cs
@@ -0,0 +1,21 @@
+﻿using System;
+
+namespace Timeline.Models
+{
+    public class User
+    {
+        public string? UniqueId { get; set; }
+        public string? Username { get; set; }
+        public string? Nickname { get; set; }
+        public bool? Administrator { get; set; }
+
+        #region secret
+        public long? Id { get; set; }
+        public string? Password { get; set; }
+        public long? Version { get; set; }
+        public DateTime? UsernameChangeTime { get; set; }
+        public DateTime? CreateTime { get; set; }
+        public DateTime? LastModified { get; set; }
+        #endregion secret
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/GeneralTimelineNameValidator.cs b/BackEnd/Timeline/Models/Validation/GeneralTimelineNameValidator.cs
new file mode 100644
index 00000000..e1c96fbd
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/GeneralTimelineNameValidator.cs
@@ -0,0 +1,33 @@
+﻿using System;
+
+namespace Timeline.Models.Validation
+{
+    public class GeneralTimelineNameValidator : Validator<string>
+    {
+        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
+        private readonly TimelineNameValidator _timelineNameValidator = new TimelineNameValidator();
+
+        protected override (bool, string) DoValidate(string value)
+        {
+            if (value.StartsWith('@'))
+            {
+                return _usernameValidator.Validate(value.Substring(1));
+            }
+            else
+            {
+                return _timelineNameValidator.Validate(value);
+            }
+        }
+    }
+
+    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
+        AllowMultiple = false)]
+    public class GeneralTimelineNameAttribute : ValidateWithAttribute
+    {
+        public GeneralTimelineNameAttribute()
+            : base(typeof(GeneralTimelineNameValidator))
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/NameValidator.cs b/BackEnd/Timeline/Models/Validation/NameValidator.cs
new file mode 100644
index 00000000..b74c40b7
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/NameValidator.cs
@@ -0,0 +1,42 @@
+﻿using System.Linq;
+using System.Text.RegularExpressions;
+using static Timeline.Resources.Models.Validation.NameValidator;
+
+namespace Timeline.Models.Validation
+{
+    public class NameValidator : Validator<string>
+    {
+        private static Regex UniqueIdRegex { get; } = new Regex(@"^[a-zA-Z0-9]{32}$");
+
+        public const int MaxLength = 26;
+
+        protected override (bool, string) DoValidate(string value)
+        {
+            if (value.Length == 0)
+            {
+                return (false, MessageEmptyString);
+            }
+
+            if (value.Length > MaxLength)
+            {
+                return (false, MessageTooLong);
+            }
+
+            foreach ((char c, int i) in value.Select((c, i) => (c, i)))
+            {
+                if (!(char.IsLetterOrDigit(c) || c == '-' || c == '_'))
+                {
+                    return (false, MessageInvalidChar);
+                }
+            }
+
+            // Currently name can't be longer than 26. So this is not needed. But reserve it for future use.
+            if (UniqueIdRegex.IsMatch(value))
+            {
+                return (false, MessageUnqiueId);
+            }
+
+            return (true, GetSuccessMessage());
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/NicknameValidator.cs b/BackEnd/Timeline/Models/Validation/NicknameValidator.cs
new file mode 100644
index 00000000..1d6ab163
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/NicknameValidator.cs
@@ -0,0 +1,25 @@
+﻿using System;
+using static Timeline.Resources.Models.Validation.NicknameValidator;
+
+namespace Timeline.Models.Validation
+{
+    public class NicknameValidator : Validator<string>
+    {
+        protected override (bool, string) DoValidate(string value)
+        {
+            if (value.Length > 25)
+                return (false, MessageTooLong);
+
+            return (true, GetSuccessMessage());
+        }
+    }
+
+    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
+    public class NicknameAttribute : ValidateWithAttribute
+    {
+        public NicknameAttribute() : base(typeof(NicknameValidator))
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/TimelineNameValidator.cs b/BackEnd/Timeline/Models/Validation/TimelineNameValidator.cs
new file mode 100644
index 00000000..f1ab54e8
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/TimelineNameValidator.cs
@@ -0,0 +1,19 @@
+﻿using System;
+
+namespace Timeline.Models.Validation
+{
+    public class TimelineNameValidator : NameValidator
+    {
+    }
+
+    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
+        AllowMultiple = false)]
+    public class TimelineNameAttribute : ValidateWithAttribute
+    {
+        public TimelineNameAttribute()
+            : base(typeof(TimelineNameValidator))
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/UsernameValidator.cs b/BackEnd/Timeline/Models/Validation/UsernameValidator.cs
new file mode 100644
index 00000000..87bbf85f
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/UsernameValidator.cs
@@ -0,0 +1,19 @@
+﻿using System;
+
+namespace Timeline.Models.Validation
+{
+    public class UsernameValidator : NameValidator
+    {
+    }
+
+    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
+        AllowMultiple = false)]
+    public class UsernameAttribute : ValidateWithAttribute
+    {
+        public UsernameAttribute()
+            : base(typeof(UsernameValidator))
+        {
+
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Models/Validation/Validator.cs b/BackEnd/Timeline/Models/Validation/Validator.cs
new file mode 100644
index 00000000..aef7891c
--- /dev/null
+++ b/BackEnd/Timeline/Models/Validation/Validator.cs
@@ -0,0 +1,127 @@
+﻿using System;
+using System.ComponentModel.DataAnnotations;
+using static Timeline.Resources.Models.Validation.Validator;
+
+namespace Timeline.Models.Validation
+{
+    /// <summary>
+    /// A validator to validate value.
+    /// </summary>
+    public interface IValidator
+    {
+        /// <summary>
+        /// Validate given value.
+        /// </summary>
+        /// <param name="value">The value to validate.</param>
+        /// <returns>Validation success or not and message.</returns>
+        (bool, string) Validate(object? value);
+    }
+
+    public static class ValidatorExtensions
+    {
+        public static bool Validate(this IValidator validator, object? value, out string message)
+        {
+            if (validator == null)
+                throw new ArgumentNullException(nameof(validator));
+
+            var (r, m) = validator.Validate(value);
+            message = m;
+            return r;
+        }
+    }
+
+    /// <summary>
+    /// Convenient base class for validator.
+    /// </summary>
+    /// <typeparam name="T">The type of accepted value.</typeparam>
+    /// <remarks>
+    /// Subclass should override <see cref="DoValidate(T)"/> to do the real validation.
+    /// This class will check the nullity and type of value.
+    /// If value is null, it will pass or fail depending on <see cref="PermitNull"/>.
+    /// If value is not null and not of type <typeparamref name="T"/>
+    /// it will fail and not call <see cref="DoValidate(T)"/>.
+    /// 
+    /// <see cref="PermitNull"/> is true by default.
+    /// 
+    /// If you want some other behaviours, write the validator from scratch.
+    /// </remarks>
+    public abstract class Validator<T> : IValidator
+    {
+        protected bool PermitNull { get; set; } = true;
+
+        public (bool, string) Validate(object? value)
+        {
+            if (value == null)
+            {
+                if (PermitNull)
+                    return (true, GetSuccessMessage());
+                else
+                    return (false, ValidatorMessageNull);
+            }
+
+            if (value is T v)
+            {
+                return DoValidate(v);
+            }
+            else
+            {
+                return (false, ValidatorMessageBadType);
+            }
+        }
+
+        protected static string GetSuccessMessage() => ValidatorMessageSuccess;
+
+        protected abstract (bool, string) DoValidate(T value);
+    }
+
+    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
+        AllowMultiple = false)]
+    public class ValidateWithAttribute : ValidationAttribute
+    {
+        private readonly IValidator _validator;
+
+        /// <summary>
+        /// Create with a given validator.
+        /// </summary>
+        /// <param name="validator">The validator used to validate.</param>
+        public ValidateWithAttribute(IValidator validator)
+        {
+            _validator = validator ?? throw new ArgumentNullException(nameof(validator));
+        }
+
+        /// <summary>
+        /// Create the validator with default constructor.
+        /// </summary>
+        /// <param name="validatorType">The type of the validator.</param>
+        public ValidateWithAttribute(Type validatorType)
+        {
+            if (validatorType == null)
+                throw new ArgumentNullException(nameof(validatorType));
+
+            if (!typeof(IValidator).IsAssignableFrom(validatorType))
+                throw new ArgumentException(ValidateWithAttributeExceptionNotValidator, nameof(validatorType));
+
+            try
+            {
+                _validator = (Activator.CreateInstance(validatorType) as IValidator)!;
+            }
+            catch (Exception e)
+            {
+                throw new ArgumentException(ValidateWithAttributeExceptionCreateFail, e);
+            }
+        }
+
+        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
+        {
+            var (result, message) = _validator.Validate(value);
+            if (result)
+            {
+                return ValidationResult.Success;
+            }
+            else
+            {
+                return new ValidationResult(message);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Program.cs b/BackEnd/Timeline/Program.cs
new file mode 100644
index 00000000..87e330a2
--- /dev/null
+++ b/BackEnd/Timeline/Program.cs
@@ -0,0 +1,43 @@
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using System.Resources;
+using Timeline.Entities;
+using Timeline.Services;
+
+[assembly: NeutralResourcesLanguage("en")]
+
+namespace Timeline
+{
+    public static class Program
+    {
+        public static void Main(string[] args)
+        {
+            var host = CreateWebHostBuilder(args).Build();
+
+            var env = host.Services.GetRequiredService<IWebHostEnvironment>();
+
+            var databaseBackupService = host.Services.GetRequiredService<IDatabaseBackupService>();
+            databaseBackupService.BackupNow();
+
+            if (env.IsProduction())
+            {
+                using (var scope = host.Services.CreateScope())
+                {
+                    var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
+                    databaseContext.Database.Migrate();
+                }
+            }
+
+            host.Run();
+        }
+
+        public static IHostBuilder CreateWebHostBuilder(string[] args) =>
+            Host.CreateDefaultBuilder(args)
+                .ConfigureWebHostDefaults(webBuilder =>
+                {
+                    webBuilder.UseStartup<Startup>();
+                });
+    }
+}
diff --git a/BackEnd/Timeline/Properties/launchSettings.json b/BackEnd/Timeline/Properties/launchSettings.json
new file mode 100644
index 00000000..de8186db
--- /dev/null
+++ b/BackEnd/Timeline/Properties/launchSettings.json
@@ -0,0 +1,27 @@
+{
+  "profiles": {
+    "Development": {
+      "commandName": "Project",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_USEPROXYFRONTEND": "true",
+        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
+      }
+    },
+    "Development-Mock": {
+      "commandName": "Project",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "ASPNETCORE_USEMOCKFRONTEND": "true",
+        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
+      }
+    },
+    "Staging": {
+      "commandName": "Project",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Staging",
+        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
+      }
+    }
+  }
+}
diff --git a/BackEnd/Timeline/Resources/Authentication/AuthHandler.Designer.cs b/BackEnd/Timeline/Resources/Authentication/AuthHandler.Designer.cs
new file mode 100644
index 00000000..fd4540ea
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Authentication/AuthHandler.Designer.cs
@@ -0,0 +1,99 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Authentication {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class AuthHandler {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal AuthHandler() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Authentication.AuthHandler", typeof(AuthHandler).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Token is found in authorization header. Token is {0} ..
+        /// </summary>
+        internal static string LogTokenFoundInHeader {
+            get {
+                return ResourceManager.GetString("LogTokenFoundInHeader", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Token is found in query param with key &quot;{0}&quot;. Token is {1} ..
+        /// </summary>
+        internal static string LogTokenFoundInQuery {
+            get {
+                return ResourceManager.GetString("LogTokenFoundInQuery", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No jwt token is found..
+        /// </summary>
+        internal static string LogTokenNotFound {
+            get {
+                return ResourceManager.GetString("LogTokenNotFound", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A jwt token validation failed..
+        /// </summary>
+        internal static string LogTokenValidationFail {
+            get {
+                return ResourceManager.GetString("LogTokenValidationFail", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Authentication/AuthHandler.resx b/BackEnd/Timeline/Resources/Authentication/AuthHandler.resx
new file mode 100644
index 00000000..4cddc8ce
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Authentication/AuthHandler.resx
@@ -0,0 +1,132 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="LogTokenFoundInHeader" xml:space="preserve">
+    <value>Token is found in authorization header. Token is {0} .</value>
+  </data>
+  <data name="LogTokenFoundInQuery" xml:space="preserve">
+    <value>Token is found in query param with key "{0}". Token is {1} .</value>
+  </data>
+  <data name="LogTokenNotFound" xml:space="preserve">
+    <value>No jwt token is found.</value>
+  </data>
+  <data name="LogTokenValidationFail" xml:space="preserve">
+    <value>A jwt token validation failed.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs b/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
new file mode 100644
index 00000000..70a1d605
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
@@ -0,0 +1,81 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Controllers {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class ControllerAuthExtensions {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal ControllerAuthExtensions() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.ControllerAuthExtensions", typeof(ControllerAuthExtensions).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to get user id because User has no NameIdentifier claim..
+        /// </summary>
+        internal static string ExceptionNoUserIdentifierClaim {
+            get {
+                return ResourceManager.GetString("ExceptionNoUserIdentifierClaim", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to get user id because NameIdentifier claim is not a number..
+        /// </summary>
+        internal static string ExceptionUserIdentifierClaimBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionUserIdentifierClaimBadFormat", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.resx b/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.resx
new file mode 100644
index 00000000..03e6d95a
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/ControllerAuthExtensions.resx
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionNoUserIdentifierClaim" xml:space="preserve">
+    <value>Failed to get user id because User has no NameIdentifier claim.</value>
+  </data>
+  <data name="ExceptionUserIdentifierClaimBadFormat" xml:space="preserve">
+    <value>Failed to get user id because NameIdentifier claim is not a number.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Controllers/TimelineController.Designer.cs b/BackEnd/Timeline/Resources/Controllers/TimelineController.Designer.cs
new file mode 100644
index 00000000..ae6414e6
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/TimelineController.Designer.cs
@@ -0,0 +1,81 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Controllers {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class TimelineController {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal TimelineController() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.TimelineController", typeof(TimelineController).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to An unknown timeline visibility value. Can&apos;t convert it..
+        /// </summary>
+        internal static string ExceptionStringToVisibility {
+            get {
+                return ResourceManager.GetString("ExceptionStringToVisibility", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to An unknown TimelineMemberOperationUserException is thrown. Can&apos;t recognize its inner exception. It is rethrown..
+        /// </summary>
+        internal static string LogUnknownTimelineMemberOperationUserException {
+            get {
+                return ResourceManager.GetString("LogUnknownTimelineMemberOperationUserException", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Controllers/TimelineController.resx b/BackEnd/Timeline/Resources/Controllers/TimelineController.resx
new file mode 100644
index 00000000..4cf3d6fb
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/TimelineController.resx
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionStringToVisibility" xml:space="preserve">
+    <value>An unknown timeline visibility value. Can't convert it.</value>
+  </data>
+  <data name="LogUnknownTimelineMemberOperationUserException" xml:space="preserve">
+    <value>An unknown TimelineMemberOperationUserException is thrown. Can't recognize its inner exception. It is rethrown.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Controllers/TokenController.Designer.cs b/BackEnd/Timeline/Resources/Controllers/TokenController.Designer.cs
new file mode 100644
index 00000000..a7c2864b
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/TokenController.Designer.cs
@@ -0,0 +1,153 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Controllers {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class TokenController {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal TokenController() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.TokenController", typeof(TokenController).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The password is wrong..
+        /// </summary>
+        internal static string LogBadPassword {
+            get {
+                return ResourceManager.GetString("LogBadPassword", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user failed to create a token..
+        /// </summary>
+        internal static string LogCreateFailure {
+            get {
+                return ResourceManager.GetString("LogCreateFailure", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user succeeded to create a token..
+        /// </summary>
+        internal static string LogCreateSuccess {
+            get {
+                return ResourceManager.GetString("LogCreateSuccess", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The user does not exist..
+        /// </summary>
+        internal static string LogUserNotExist {
+            get {
+                return ResourceManager.GetString("LogUserNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is of bad format. It might not be created by the server..
+        /// </summary>
+        internal static string LogVerifyBadFormat {
+            get {
+                return ResourceManager.GetString("LogVerifyBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is expired..
+        /// </summary>
+        internal static string LogVerifyExpire {
+            get {
+                return ResourceManager.GetString("LogVerifyExpire", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A token failed to be verified..
+        /// </summary>
+        internal static string LogVerifyFailure {
+            get {
+                return ResourceManager.GetString("LogVerifyFailure", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Token has an old version. User might have update some info..
+        /// </summary>
+        internal static string LogVerifyOldVersion {
+            get {
+                return ResourceManager.GetString("LogVerifyOldVersion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A token succeeded to be verified..
+        /// </summary>
+        internal static string LogVerifySuccess {
+            get {
+                return ResourceManager.GetString("LogVerifySuccess", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to User does not exist. Administrator might have deleted this user..
+        /// </summary>
+        internal static string LogVerifyUserNotExist {
+            get {
+                return ResourceManager.GetString("LogVerifyUserNotExist", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Controllers/TokenController.resx b/BackEnd/Timeline/Resources/Controllers/TokenController.resx
new file mode 100644
index 00000000..683d6cc9
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/TokenController.resx
@@ -0,0 +1,150 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="LogBadPassword" xml:space="preserve">
+    <value>The password is wrong.</value>
+  </data>
+  <data name="LogCreateFailure" xml:space="preserve">
+    <value>A user failed to create a token.</value>
+  </data>
+  <data name="LogCreateSuccess" xml:space="preserve">
+    <value>A user succeeded to create a token.</value>
+  </data>
+  <data name="LogUserNotExist" xml:space="preserve">
+    <value>The user does not exist.</value>
+  </data>
+  <data name="LogVerifyBadFormat" xml:space="preserve">
+    <value>The token is of bad format. It might not be created by the server.</value>
+  </data>
+  <data name="LogVerifyExpire" xml:space="preserve">
+    <value>The token is expired.</value>
+  </data>
+  <data name="LogVerifyFailure" xml:space="preserve">
+    <value>A token failed to be verified.</value>
+  </data>
+  <data name="LogVerifyOldVersion" xml:space="preserve">
+    <value>Token has an old version. User might have update some info.</value>
+  </data>
+  <data name="LogVerifySuccess" xml:space="preserve">
+    <value>A token succeeded to be verified.</value>
+  </data>
+  <data name="LogVerifyUserNotExist" xml:space="preserve">
+    <value>User does not exist. Administrator might have deleted this user.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Controllers/UserAvatarController.Designer.cs b/BackEnd/Timeline/Resources/Controllers/UserAvatarController.Designer.cs
new file mode 100644
index 00000000..b0c35ff9
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/UserAvatarController.Designer.cs
@@ -0,0 +1,144 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Controllers {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class UserAvatarController {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal UserAvatarController() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.UserAvatarController", typeof(UserAvatarController).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown AvatarDataException.ErrorReason value..
+        /// </summary>
+        internal static string ExceptionUnknownAvatarFormatError {
+            get {
+                return ResourceManager.GetString("ExceptionUnknownAvatarFormatError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to delete a avatar of other user as a non-admin failed..
+        /// </summary>
+        internal static string LogDeleteForbid {
+            get {
+                return ResourceManager.GetString("LogDeleteForbid", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to delete a avatar of a non-existent user failed..
+        /// </summary>
+        internal static string LogDeleteNotExist {
+            get {
+                return ResourceManager.GetString("LogDeleteNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Succeed to delete a avatar of a user..
+        /// </summary>
+        internal static string LogDeleteSuccess {
+            get {
+                return ResourceManager.GetString("LogDeleteSuccess", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to get a avatar of a non-existent user failed..
+        /// </summary>
+        internal static string LogGetUserNotExist {
+            get {
+                return ResourceManager.GetString("LogGetUserNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to put a avatar of other user as a non-admin failed..
+        /// </summary>
+        internal static string LogPutForbid {
+            get {
+                return ResourceManager.GetString("LogPutForbid", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Succeed to put a avatar of a user..
+        /// </summary>
+        internal static string LogPutSuccess {
+            get {
+                return ResourceManager.GetString("LogPutSuccess", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to put a avatar of a bad format failed..
+        /// </summary>
+        internal static string LogPutUserBadFormat {
+            get {
+                return ResourceManager.GetString("LogPutUserBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to put a avatar of a non-existent user failed..
+        /// </summary>
+        internal static string LogPutUserNotExist {
+            get {
+                return ResourceManager.GetString("LogPutUserNotExist", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Controllers/UserAvatarController.resx b/BackEnd/Timeline/Resources/Controllers/UserAvatarController.resx
new file mode 100644
index 00000000..864d96c0
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/UserAvatarController.resx
@@ -0,0 +1,147 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionUnknownAvatarFormatError" xml:space="preserve">
+    <value>Unknown AvatarDataException.ErrorReason value.</value>
+  </data>
+  <data name="LogDeleteForbid" xml:space="preserve">
+    <value>Attempt to delete a avatar of other user as a non-admin failed.</value>
+  </data>
+  <data name="LogDeleteNotExist" xml:space="preserve">
+    <value>Attempt to delete a avatar of a non-existent user failed.</value>
+  </data>
+  <data name="LogDeleteSuccess" xml:space="preserve">
+    <value>Succeed to delete a avatar of a user.</value>
+  </data>
+  <data name="LogGetUserNotExist" xml:space="preserve">
+    <value>Attempt to get a avatar of a non-existent user failed.</value>
+  </data>
+  <data name="LogPutForbid" xml:space="preserve">
+    <value>Attempt to put a avatar of other user as a non-admin failed.</value>
+  </data>
+  <data name="LogPutSuccess" xml:space="preserve">
+    <value>Succeed to put a avatar of a user.</value>
+  </data>
+  <data name="LogPutUserBadFormat" xml:space="preserve">
+    <value>Attempt to put a avatar of a bad format failed.</value>
+  </data>
+  <data name="LogPutUserNotExist" xml:space="preserve">
+    <value>Attempt to put a avatar of a non-existent user failed.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Controllers/UserController.Designer.cs b/BackEnd/Timeline/Resources/Controllers/UserController.Designer.cs
new file mode 100644
index 00000000..c8067614
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/UserController.Designer.cs
@@ -0,0 +1,117 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Controllers {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class UserController {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal UserController() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.UserController", typeof(UserController).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown PutResult..
+        /// </summary>
+        internal static string ExceptionUnknownPutResult {
+            get {
+                return ResourceManager.GetString("ExceptionUnknownPutResult", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to change password with wrong old password failed..
+        /// </summary>
+        internal static string LogChangePasswordBadPassword {
+            get {
+                return ResourceManager.GetString("LogChangePasswordBadPassword", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to change a user&apos;s username to a existent one failed..
+        /// </summary>
+        internal static string LogChangeUsernameConflict {
+            get {
+                return ResourceManager.GetString("LogChangeUsernameConflict", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to change a username of a user that does not exist failed..
+        /// </summary>
+        internal static string LogChangeUsernameNotExist {
+            get {
+                return ResourceManager.GetString("LogChangeUsernameNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to retrieve info of a user that does not exist failed..
+        /// </summary>
+        internal static string LogGetUserNotExist {
+            get {
+                return ResourceManager.GetString("LogGetUserNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Attempt to patch a user that does not exist failed..
+        /// </summary>
+        internal static string LogPatchUserNotExist {
+            get {
+                return ResourceManager.GetString("LogPatchUserNotExist", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Controllers/UserController.resx b/BackEnd/Timeline/Resources/Controllers/UserController.resx
new file mode 100644
index 00000000..0bdf4845
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Controllers/UserController.resx
@@ -0,0 +1,138 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionUnknownPutResult" xml:space="preserve">
+    <value>Unknown PutResult.</value>
+  </data>
+  <data name="LogChangePasswordBadPassword" xml:space="preserve">
+    <value>Attempt to change password with wrong old password failed.</value>
+  </data>
+  <data name="LogChangeUsernameConflict" xml:space="preserve">
+    <value>Attempt to change a user's username to a existent one failed.</value>
+  </data>
+  <data name="LogChangeUsernameNotExist" xml:space="preserve">
+    <value>Attempt to change a username of a user that does not exist failed.</value>
+  </data>
+  <data name="LogGetUserNotExist" xml:space="preserve">
+    <value>Attempt to retrieve info of a user that does not exist failed.</value>
+  </data>
+  <data name="LogPatchUserNotExist" xml:space="preserve">
+    <value>Attempt to patch a user that does not exist failed.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Entities.Designer.cs b/BackEnd/Timeline/Resources/Entities.Designer.cs
new file mode 100644
index 00000000..5f286f23
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Entities.Designer.cs
@@ -0,0 +1,72 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Entities {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Entities() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Entities", typeof(Entities).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Only sqlite is supported..
+        /// </summary>
+        internal static string ExceptionOnlySqliteSupported {
+            get {
+                return ResourceManager.GetString("ExceptionOnlySqliteSupported", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Entities.resx b/BackEnd/Timeline/Resources/Entities.resx
new file mode 100644
index 00000000..1538b533
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Entities.resx
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionOnlySqliteSupported" xml:space="preserve">
+    <value>Only sqlite is supported.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Filters.Designer.cs b/BackEnd/Timeline/Resources/Filters.Designer.cs
new file mode 100644
index 00000000..dedfe498
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Filters.Designer.cs
@@ -0,0 +1,90 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Filters {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Filters() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Filters", typeof(Filters).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, but there is no user. Try add AuthorizeAttribute..
+        /// </summary>
+        internal static string LogSelfOrAdminNoUser {
+            get {
+                return ResourceManager.GetString("LogSelfOrAdminNoUser", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, but it does not have a model named username..
+        /// </summary>
+        internal static string LogSelfOrAdminNoUsername {
+            get {
+                return ResourceManager.GetString("LogSelfOrAdminNoUsername", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, found a model named username, but it is not string..
+        /// </summary>
+        internal static string LogSelfOrAdminUsernameNotString {
+            get {
+                return ResourceManager.GetString("LogSelfOrAdminUsernameNotString", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Filters.resx b/BackEnd/Timeline/Resources/Filters.resx
new file mode 100644
index 00000000..22620889
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Filters.resx
@@ -0,0 +1,129 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="LogSelfOrAdminNoUser" xml:space="preserve">
+    <value>You apply a SelfOrAdminAttribute on an action, but there is no user. Try add AuthorizeAttribute.</value>
+  </data>
+  <data name="LogSelfOrAdminNoUsername" xml:space="preserve">
+    <value>You apply a SelfOrAdminAttribute on an action, but it does not have a model named username.</value>
+  </data>
+  <data name="LogSelfOrAdminUsernameNotString" xml:space="preserve">
+    <value>You apply a SelfOrAdminAttribute on an action, found a model named username, but it is not string.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Helper/DataCacheHelper.Designer.cs b/BackEnd/Timeline/Resources/Helper/DataCacheHelper.Designer.cs
new file mode 100644
index 00000000..acf56d13
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Helper/DataCacheHelper.Designer.cs
@@ -0,0 +1,90 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Helper {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class DataCacheHelper {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal DataCacheHelper() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Helper.DataCacheHelper", typeof(DataCacheHelper).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header If-None-Match is of bad format..
+        /// </summary>
+        internal static string LogBadIfNoneMatch {
+            get {
+                return ResourceManager.GetString("LogBadIfNoneMatch", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Cache is invalid and data is returned..
+        /// </summary>
+        internal static string LogResultData {
+            get {
+                return ResourceManager.GetString("LogResultData", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Cache is valid and 304 Not Modified is returned..
+        /// </summary>
+        internal static string LogResultNotModified {
+            get {
+                return ResourceManager.GetString("LogResultNotModified", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Helper/DataCacheHelper.resx b/BackEnd/Timeline/Resources/Helper/DataCacheHelper.resx
new file mode 100644
index 00000000..515cfa9b
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Helper/DataCacheHelper.resx
@@ -0,0 +1,129 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="LogBadIfNoneMatch" xml:space="preserve">
+    <value>Header If-None-Match is of bad format.</value>
+  </data>
+  <data name="LogResultData" xml:space="preserve">
+    <value>Cache is invalid and data is returned.</value>
+  </data>
+  <data name="LogResultNotModified" xml:space="preserve">
+    <value>Cache is valid and 304 Not Modified is returned.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Messages.Designer.cs b/BackEnd/Timeline/Resources/Messages.Designer.cs
new file mode 100644
index 00000000..bb654ce6
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Messages.Designer.cs
@@ -0,0 +1,396 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Messages {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Messages() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Messages", typeof(Messages).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Body is too big. It can&apos;t be bigger than {0}..
+        /// </summary>
+        internal static string Common_Content_TooBig {
+            get {
+                return ResourceManager.GetString("Common_Content_TooBig", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Actual body length is bigger than it in header..
+        /// </summary>
+        internal static string Common_Content_UnmatchedLength_Bigger {
+            get {
+                return ResourceManager.GetString("Common_Content_UnmatchedLength_Bigger", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Actual body length is smaller than it in header..
+        /// </summary>
+        internal static string Common_Content_UnmatchedLength_Smaller {
+            get {
+                return ResourceManager.GetString("Common_Content_UnmatchedLength_Smaller", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You have no permission to do the operation..
+        /// </summary>
+        internal static string Common_Forbid {
+            get {
+                return ResourceManager.GetString("Common_Forbid", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You are not the resource owner..
+        /// </summary>
+        internal static string Common_Forbid_NotSelf {
+            get {
+                return ResourceManager.GetString("Common_Forbid_NotSelf", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header Content-Length is missing or of bad format..
+        /// </summary>
+        internal static string Common_Header_ContentLength_Missing {
+            get {
+                return ResourceManager.GetString("Common_Header_ContentLength_Missing", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header Content-Length must not be 0..
+        /// </summary>
+        internal static string Common_Header_ContentLength_Zero {
+            get {
+                return ResourceManager.GetString("Common_Header_ContentLength_Zero", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header Content-Type is missing..
+        /// </summary>
+        internal static string Common_Header_ContentType_Missing {
+            get {
+                return ResourceManager.GetString("Common_Header_ContentType_Missing", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header If-Non-Match is of bad format..
+        /// </summary>
+        internal static string Common_Header_IfNonMatch_BadFormat {
+            get {
+                return ResourceManager.GetString("Common_Header_IfNonMatch_BadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Model is of bad format..
+        /// </summary>
+        internal static string Common_InvalidModel {
+            get {
+                return ResourceManager.GetString("Common_InvalidModel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The api endpoint you request is unknown. You might get the wrong api entry..
+        /// </summary>
+        internal static string Common_UnknownEndpoint {
+            get {
+                return ResourceManager.GetString("Common_UnknownEndpoint", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown type of post content..
+        /// </summary>
+        internal static string TimelineController_ContentUnknownType {
+            get {
+                return ResourceManager.GetString("TimelineController_ContentUnknownType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Data field is not a valid base64 string in image content..
+        /// </summary>
+        internal static string TimelineController_ImageContentDataNotBase64 {
+            get {
+                return ResourceManager.GetString("TimelineController_ImageContentDataNotBase64", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Data field is not a valid image after base64 decoding in image content..
+        /// </summary>
+        internal static string TimelineController_ImageContentDataNotImage {
+            get {
+                return ResourceManager.GetString("TimelineController_ImageContentDataNotImage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Data field is required for image content..
+        /// </summary>
+        internal static string TimelineController_ImageContentDataRequired {
+            get {
+                return ResourceManager.GetString("TimelineController_ImageContentDataRequired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The user to set as member does not exist..
+        /// </summary>
+        internal static string TimelineController_MemberPut_NotExist {
+            get {
+                return ResourceManager.GetString("TimelineController_MemberPut_NotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A timeline with given name already exists..
+        /// </summary>
+        internal static string TimelineController_NameConflict {
+            get {
+                return ResourceManager.GetString("TimelineController_NameConflict", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The timeline with given name does not exist..
+        /// </summary>
+        internal static string TimelineController_NotExist {
+            get {
+                return ResourceManager.GetString("TimelineController_NotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The post of that type has no data..
+        /// </summary>
+        internal static string TimelineController_PostNoData {
+            get {
+                return ResourceManager.GetString("TimelineController_PostNoData", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The post to operate on does not exist..
+        /// </summary>
+        internal static string TimelineController_PostNotExist {
+            get {
+                return ResourceManager.GetString("TimelineController_PostNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The user specified by query param &quot;relate&quot; does not exist..
+        /// </summary>
+        internal static string TimelineController_QueryRelateNotExist {
+            get {
+                return ResourceManager.GetString("TimelineController_QueryRelateNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &apos;{0}&apos; is an unkown visibility in the query parameter &apos;visibility&apos;. .
+        /// </summary>
+        internal static string TimelineController_QueryVisibilityUnknown {
+            get {
+                return ResourceManager.GetString("TimelineController_QueryVisibilityUnknown", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Text field is required for text content..
+        /// </summary>
+        internal static string TimelineController_TextContentTextRequired {
+            get {
+                return ResourceManager.GetString("TimelineController_TextContentTextRequired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Username or password is invalid..
+        /// </summary>
+        internal static string TokenController_Create_BadCredential {
+            get {
+                return ResourceManager.GetString("TokenController_Create_BadCredential", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is of bad format. It might not be created by the server..
+        /// </summary>
+        internal static string TokenController_Verify_BadFormat {
+            get {
+                return ResourceManager.GetString("TokenController_Verify_BadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Token has an old version. User might have update some info..
+        /// </summary>
+        internal static string TokenController_Verify_OldVersion {
+            get {
+                return ResourceManager.GetString("TokenController_Verify_OldVersion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is expired..
+        /// </summary>
+        internal static string TokenController_Verify_TimeExpired {
+            get {
+                return ResourceManager.GetString("TokenController_Verify_TimeExpired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to User does not exist. Administrator might have deleted this user..
+        /// </summary>
+        internal static string TokenController_Verify_UserNotExist {
+            get {
+                return ResourceManager.GetString("TokenController_Verify_UserNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Image is not a square..
+        /// </summary>
+        internal static string UserAvatar_BadFormat_BadSize {
+            get {
+                return ResourceManager.GetString("UserAvatar_BadFormat_BadSize", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Image decode failed..
+        /// </summary>
+        internal static string UserAvatar_BadFormat_CantDecode {
+            get {
+                return ResourceManager.GetString("UserAvatar_BadFormat_CantDecode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Image format does not match the one in header..
+        /// </summary>
+        internal static string UserAvatar_BadFormat_UnmatchedFormat {
+            get {
+                return ResourceManager.GetString("UserAvatar_BadFormat_UnmatchedFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The user to operate on does not exist..
+        /// </summary>
+        internal static string UserCommon_NotExist {
+            get {
+                return ResourceManager.GetString("UserCommon_NotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Old password is wrong..
+        /// </summary>
+        internal static string UserController_ChangePassword_BadOldPassword {
+            get {
+                return ResourceManager.GetString("UserController_ChangePassword_BadOldPassword", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You can&apos;t set permission unless you are administrator..
+        /// </summary>
+        internal static string UserController_Patch_Forbid_Administrator {
+            get {
+                return ResourceManager.GetString("UserController_Patch_Forbid_Administrator", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You can&apos;t set password unless you are administrator. If you want to change password, use /userop/changepassword ..
+        /// </summary>
+        internal static string UserController_Patch_Forbid_Password {
+            get {
+                return ResourceManager.GetString("UserController_Patch_Forbid_Password", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You can&apos;t set username unless you are administrator..
+        /// </summary>
+        internal static string UserController_Patch_Forbid_Username {
+            get {
+                return ResourceManager.GetString("UserController_Patch_Forbid_Username", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user with given username already exists..
+        /// </summary>
+        internal static string UserController_UsernameConflict {
+            get {
+                return ResourceManager.GetString("UserController_UsernameConflict", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Messages.resx b/BackEnd/Timeline/Resources/Messages.resx
new file mode 100644
index 00000000..2bbf494e
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Messages.resx
@@ -0,0 +1,231 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="Common_Content_TooBig" xml:space="preserve">
+    <value>Body is too big. It can't be bigger than {0}.</value>
+  </data>
+  <data name="Common_Content_UnmatchedLength_Bigger" xml:space="preserve">
+    <value>Actual body length is bigger than it in header.</value>
+  </data>
+  <data name="Common_Content_UnmatchedLength_Smaller" xml:space="preserve">
+    <value>Actual body length is smaller than it in header.</value>
+  </data>
+  <data name="Common_Forbid" xml:space="preserve">
+    <value>You have no permission to do the operation.</value>
+  </data>
+  <data name="Common_Forbid_NotSelf" xml:space="preserve">
+    <value>You are not the resource owner.</value>
+  </data>
+  <data name="Common_Header_ContentLength_Missing" xml:space="preserve">
+    <value>Header Content-Length is missing or of bad format.</value>
+  </data>
+  <data name="Common_Header_ContentLength_Zero" xml:space="preserve">
+    <value>Header Content-Length must not be 0.</value>
+  </data>
+  <data name="Common_Header_ContentType_Missing" xml:space="preserve">
+    <value>Header Content-Type is missing.</value>
+  </data>
+  <data name="Common_Header_IfNonMatch_BadFormat" xml:space="preserve">
+    <value>Header If-Non-Match is of bad format.</value>
+  </data>
+  <data name="Common_InvalidModel" xml:space="preserve">
+    <value>Model is of bad format.</value>
+  </data>
+  <data name="Common_UnknownEndpoint" xml:space="preserve">
+    <value>The api endpoint you request is unknown. You might get the wrong api entry.</value>
+  </data>
+  <data name="TimelineController_ContentUnknownType" xml:space="preserve">
+    <value>Unknown type of post content.</value>
+  </data>
+  <data name="TimelineController_ImageContentDataNotBase64" xml:space="preserve">
+    <value>Data field is not a valid base64 string in image content.</value>
+  </data>
+  <data name="TimelineController_ImageContentDataNotImage" xml:space="preserve">
+    <value>Data field is not a valid image after base64 decoding in image content.</value>
+  </data>
+  <data name="TimelineController_ImageContentDataRequired" xml:space="preserve">
+    <value>Data field is required for image content.</value>
+  </data>
+  <data name="TimelineController_MemberPut_NotExist" xml:space="preserve">
+    <value>The user to set as member does not exist.</value>
+  </data>
+  <data name="TimelineController_NameConflict" xml:space="preserve">
+    <value>A timeline with given name already exists.</value>
+  </data>
+  <data name="TimelineController_NotExist" xml:space="preserve">
+    <value>The timeline with given name does not exist.</value>
+  </data>
+  <data name="TimelineController_PostNoData" xml:space="preserve">
+    <value>The post of that type has no data.</value>
+  </data>
+  <data name="TimelineController_PostNotExist" xml:space="preserve">
+    <value>The post to operate on does not exist.</value>
+  </data>
+  <data name="TimelineController_QueryRelateNotExist" xml:space="preserve">
+    <value>The user specified by query param "relate" does not exist.</value>
+  </data>
+  <data name="TimelineController_QueryVisibilityUnknown" xml:space="preserve">
+    <value>'{0}' is an unkown visibility in the query parameter 'visibility'. </value>
+  </data>
+  <data name="TimelineController_TextContentTextRequired" xml:space="preserve">
+    <value>Text field is required for text content.</value>
+  </data>
+  <data name="TokenController_Create_BadCredential" xml:space="preserve">
+    <value>Username or password is invalid.</value>
+  </data>
+  <data name="TokenController_Verify_BadFormat" xml:space="preserve">
+    <value>The token is of bad format. It might not be created by the server.</value>
+  </data>
+  <data name="TokenController_Verify_OldVersion" xml:space="preserve">
+    <value>Token has an old version. User might have update some info.</value>
+  </data>
+  <data name="TokenController_Verify_TimeExpired" xml:space="preserve">
+    <value>The token is expired.</value>
+  </data>
+  <data name="TokenController_Verify_UserNotExist" xml:space="preserve">
+    <value>User does not exist. Administrator might have deleted this user.</value>
+  </data>
+  <data name="UserAvatar_BadFormat_BadSize" xml:space="preserve">
+    <value>Image is not a square.</value>
+  </data>
+  <data name="UserAvatar_BadFormat_CantDecode" xml:space="preserve">
+    <value>Image decode failed.</value>
+  </data>
+  <data name="UserAvatar_BadFormat_UnmatchedFormat" xml:space="preserve">
+    <value>Image format does not match the one in header.</value>
+  </data>
+  <data name="UserCommon_NotExist" xml:space="preserve">
+    <value>The user to operate on does not exist.</value>
+  </data>
+  <data name="UserController_ChangePassword_BadOldPassword" xml:space="preserve">
+    <value>Old password is wrong.</value>
+  </data>
+  <data name="UserController_Patch_Forbid_Administrator" xml:space="preserve">
+    <value>You can't set permission unless you are administrator.</value>
+  </data>
+  <data name="UserController_Patch_Forbid_Password" xml:space="preserve">
+    <value>You can't set password unless you are administrator. If you want to change password, use /userop/changepassword .</value>
+  </data>
+  <data name="UserController_Patch_Forbid_Username" xml:space="preserve">
+    <value>You can't set username unless you are administrator.</value>
+  </data>
+  <data name="UserController_UsernameConflict" xml:space="preserve">
+    <value>A user with given username already exists.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Models/Http/Common.Designer.cs b/BackEnd/Timeline/Resources/Models/Http/Common.Designer.cs
new file mode 100644
index 00000000..5165463e
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Http/Common.Designer.cs
@@ -0,0 +1,99 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Models.Http {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Common {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Common() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Http.Common", typeof(Common).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to An existent item is deleted..
+        /// </summary>
+        internal static string MessageDeleteDelete {
+            get {
+                return ResourceManager.GetString("MessageDeleteDelete", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The item does not exist, so nothing is changed..
+        /// </summary>
+        internal static string MessageDeleteNotExist {
+            get {
+                return ResourceManager.GetString("MessageDeleteNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A new item is created..
+        /// </summary>
+        internal static string MessagePutCreate {
+            get {
+                return ResourceManager.GetString("MessagePutCreate", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to An existent item is modified..
+        /// </summary>
+        internal static string MessagePutModify {
+            get {
+                return ResourceManager.GetString("MessagePutModify", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Models/Http/Common.resx b/BackEnd/Timeline/Resources/Models/Http/Common.resx
new file mode 100644
index 00000000..85ec4d32
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Http/Common.resx
@@ -0,0 +1,132 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="MessageDeleteDelete" xml:space="preserve">
+    <value>An existent item is deleted.</value>
+  </data>
+  <data name="MessageDeleteNotExist" xml:space="preserve">
+    <value>The item does not exist, so nothing is changed.</value>
+  </data>
+  <data name="MessagePutCreate" xml:space="preserve">
+    <value>A new item is created.</value>
+  </data>
+  <data name="MessagePutModify" xml:space="preserve">
+    <value>An existent item is modified.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Models/Http/Exception.Designer.cs b/BackEnd/Timeline/Resources/Models/Http/Exception.Designer.cs
new file mode 100644
index 00000000..19f42793
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Http/Exception.Designer.cs
@@ -0,0 +1,81 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Models.Http {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Exception {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Exception() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Http.Exception", typeof(Exception).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No action context currently, can&apos;t fill urls in value resolver..
+        /// </summary>
+        internal static string ActionContextNull {
+            get {
+                return ResourceManager.GetString("ActionContextNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown post content type..
+        /// </summary>
+        internal static string UnknownPostContentType {
+            get {
+                return ResourceManager.GetString("UnknownPostContentType", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Models/Http/Exception.resx b/BackEnd/Timeline/Resources/Models/Http/Exception.resx
new file mode 100644
index 00000000..3f7bddb6
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Http/Exception.resx
@@ -0,0 +1,126 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ActionContextNull" xml:space="preserve">
+    <value>No action context currently, can't fill urls in value resolver.</value>
+  </data>
+  <data name="UnknownPostContentType" xml:space="preserve">
+    <value>Unknown post content type.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Models/Validation/NameValidator.Designer.cs b/BackEnd/Timeline/Resources/Models/Validation/NameValidator.Designer.cs
new file mode 100644
index 00000000..3050049e
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/NameValidator.Designer.cs
@@ -0,0 +1,99 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Models.Validation {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class NameValidator {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal NameValidator() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.NameValidator", typeof(NameValidator).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to An empty string is not allowed..
+        /// </summary>
+        internal static string MessageEmptyString {
+            get {
+                return ResourceManager.GetString("MessageEmptyString", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid character, only alphabet, digit, underscore and hyphen are allowed..
+        /// </summary>
+        internal static string MessageInvalidChar {
+            get {
+                return ResourceManager.GetString("MessageInvalidChar", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Too long, more than 26 characters is not premitted..
+        /// </summary>
+        internal static string MessageTooLong {
+            get {
+                return ResourceManager.GetString("MessageTooLong", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Name can&apos;t be of the same format of unique id..
+        /// </summary>
+        internal static string MessageUnqiueId {
+            get {
+                return ResourceManager.GetString("MessageUnqiueId", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Models/Validation/NameValidator.resx b/BackEnd/Timeline/Resources/Models/Validation/NameValidator.resx
new file mode 100644
index 00000000..5e7e1745
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/NameValidator.resx
@@ -0,0 +1,132 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="MessageEmptyString" xml:space="preserve">
+    <value>An empty string is not allowed.</value>
+  </data>
+  <data name="MessageInvalidChar" xml:space="preserve">
+    <value>Invalid character, only alphabet, digit, underscore and hyphen are allowed.</value>
+  </data>
+  <data name="MessageTooLong" xml:space="preserve">
+    <value>Too long, more than 26 characters is not premitted.</value>
+  </data>
+  <data name="MessageUnqiueId" xml:space="preserve">
+    <value>Name can't be of the same format of unique id.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs b/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
new file mode 100644
index 00000000..522f305a
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
@@ -0,0 +1,72 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Models.Validation {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class NicknameValidator {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal NicknameValidator() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.NicknameValidator", typeof(NicknameValidator).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Nickname is too long..
+        /// </summary>
+        internal static string MessageTooLong {
+            get {
+                return ResourceManager.GetString("MessageTooLong", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.resx b/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.resx
new file mode 100644
index 00000000..b191b505
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/NicknameValidator.resx
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="MessageTooLong" xml:space="preserve">
+    <value>Nickname is too long.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Models/Validation/Validator.Designer.cs b/BackEnd/Timeline/Resources/Models/Validation/Validator.Designer.cs
new file mode 100644
index 00000000..74d4c169
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/Validator.Designer.cs
@@ -0,0 +1,108 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Models.Validation {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Validator {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Validator() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.Validator", typeof(Validator).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to create a validator instance from default constructor. See inner exception..
+        /// </summary>
+        internal static string ValidateWithAttributeExceptionCreateFail {
+            get {
+                return ResourceManager.GetString("ValidateWithAttributeExceptionCreateFail", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Given type is not assignable to IValidator..
+        /// </summary>
+        internal static string ValidateWithAttributeExceptionNotValidator {
+            get {
+                return ResourceManager.GetString("ValidateWithAttributeExceptionNotValidator", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value is not of type {0}..
+        /// </summary>
+        internal static string ValidatorMessageBadType {
+            get {
+                return ResourceManager.GetString("ValidatorMessageBadType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value can&apos;t be null..
+        /// </summary>
+        internal static string ValidatorMessageNull {
+            get {
+                return ResourceManager.GetString("ValidatorMessageNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Validation succeeded..
+        /// </summary>
+        internal static string ValidatorMessageSuccess {
+            get {
+                return ResourceManager.GetString("ValidatorMessageSuccess", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Models/Validation/Validator.resx b/BackEnd/Timeline/Resources/Models/Validation/Validator.resx
new file mode 100644
index 00000000..8317e3eb
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Models/Validation/Validator.resx
@@ -0,0 +1,135 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ValidateWithAttributeExceptionCreateFail" xml:space="preserve">
+    <value>Failed to create a validator instance from default constructor. See inner exception.</value>
+  </data>
+  <data name="ValidateWithAttributeExceptionNotValidator" xml:space="preserve">
+    <value>Given type is not assignable to IValidator.</value>
+  </data>
+  <data name="ValidatorMessageBadType" xml:space="preserve">
+    <value>Value is not of type {0}.</value>
+  </data>
+  <data name="ValidatorMessageNull" xml:space="preserve">
+    <value>Value can't be null.</value>
+  </data>
+  <data name="ValidatorMessageSuccess" xml:space="preserve">
+    <value>Validation succeeded.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/DataManager.Designer.cs b/BackEnd/Timeline/Resources/Services/DataManager.Designer.cs
new file mode 100644
index 00000000..0872059a
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/DataManager.Designer.cs
@@ -0,0 +1,72 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class DataManager {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal DataManager() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.DataManager", typeof(DataManager).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Entry with given tag does not exist..
+        /// </summary>
+        internal static string ExceptionEntryNotExist {
+            get {
+                return ResourceManager.GetString("ExceptionEntryNotExist", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/DataManager.resx b/BackEnd/Timeline/Resources/Services/DataManager.resx
new file mode 100644
index 00000000..688e0e96
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/DataManager.resx
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionEntryNotExist" xml:space="preserve">
+    <value>Entry with given tag does not exist.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/Exception.Designer.cs b/BackEnd/Timeline/Resources/Services/Exception.Designer.cs
new file mode 100644
index 00000000..21ca7b86
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/Exception.Designer.cs
@@ -0,0 +1,234 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Exception {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Exception() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.Exception", typeof(Exception).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The password is wrong..
+        /// </summary>
+        internal static string BadPasswordException {
+            get {
+                return ResourceManager.GetString("BadPasswordException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The hashes password is of bad format. It might not be created by server..
+        /// </summary>
+        internal static string HashedPasswordBadFromatException {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Not of valid base64 format. See inner exception..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotBase64 {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotBase64", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Decoded hashed password is of length 0..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotLength0 {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotLength0", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to See inner exception..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotOthers {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotOthers", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Salt length &lt; 128 bits..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotSaltTooShort {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotSaltTooShort", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Subkey length &lt; 128 bits..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotSubkeyTooShort {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotSubkeyTooShort", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown format marker..
+        /// </summary>
+        internal static string HashedPasswordBadFromatExceptionNotUnknownMarker {
+            get {
+                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotUnknownMarker", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token didn&apos;t pass verification because {0}..
+        /// </summary>
+        internal static string JwtUserTokenBadFormatException {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to id claim is not a number.
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionIdBadFormat {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionIdBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to id claim does not exist.
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionIdMissing {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionIdMissing", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to other error, see inner exception for information.
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionOthers {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionOthers", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to unknown error.
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionUnknown {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionUnknown", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to version claim is not a number..
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionVersionBadFormat {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionVersionBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to version claim does not exist..
+        /// </summary>
+        internal static string JwtUserTokenBadFormatExceptionVersionMissing {
+            get {
+                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionVersionMissing", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Password is of bad format..
+        /// </summary>
+        internal static string PasswordBadFormatException {
+            get {
+                return ResourceManager.GetString("PasswordBadFormatException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is of bad format, which means it may not be created by the server..
+        /// </summary>
+        internal static string UserTokenBadFormatException {
+            get {
+                return ResourceManager.GetString("UserTokenBadFormatException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is of bad version..
+        /// </summary>
+        internal static string UserTokenBadVersionException {
+            get {
+                return ResourceManager.GetString("UserTokenBadVersionException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The token is expired because its expiration time has passed..
+        /// </summary>
+        internal static string UserTokenTimeExpireException {
+            get {
+                return ResourceManager.GetString("UserTokenTimeExpireException", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/Exception.resx b/BackEnd/Timeline/Resources/Services/Exception.resx
new file mode 100644
index 00000000..c31ed7c7
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/Exception.resx
@@ -0,0 +1,177 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="BadPasswordException" xml:space="preserve">
+    <value>The password is wrong.</value>
+  </data>
+  <data name="HashedPasswordBadFromatException" xml:space="preserve">
+    <value>The hashes password is of bad format. It might not be created by server.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotBase64" xml:space="preserve">
+    <value>Not of valid base64 format. See inner exception.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotLength0" xml:space="preserve">
+    <value>Decoded hashed password is of length 0.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotOthers" xml:space="preserve">
+    <value>See inner exception.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotSaltTooShort" xml:space="preserve">
+    <value>Salt length &lt; 128 bits.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotSubkeyTooShort" xml:space="preserve">
+    <value>Subkey length &lt; 128 bits.</value>
+  </data>
+  <data name="HashedPasswordBadFromatExceptionNotUnknownMarker" xml:space="preserve">
+    <value>Unknown format marker.</value>
+  </data>
+  <data name="JwtUserTokenBadFormatException" xml:space="preserve">
+    <value>The token didn't pass verification because {0}.</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionIdBadFormat" xml:space="preserve">
+    <value>id claim is not a number</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionIdMissing" xml:space="preserve">
+    <value>id claim does not exist</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionOthers" xml:space="preserve">
+    <value>other error, see inner exception for information</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionUnknown" xml:space="preserve">
+    <value>unknown error</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionVersionBadFormat" xml:space="preserve">
+    <value>version claim is not a number.</value>
+  </data>
+  <data name="JwtUserTokenBadFormatExceptionVersionMissing" xml:space="preserve">
+    <value>version claim does not exist.</value>
+  </data>
+  <data name="PasswordBadFormatException" xml:space="preserve">
+    <value>Password is of bad format.</value>
+  </data>
+  <data name="UserTokenBadFormatException" xml:space="preserve">
+    <value>The token is of bad format, which means it may not be created by the server.</value>
+  </data>
+  <data name="UserTokenBadVersionException" xml:space="preserve">
+    <value>The token is of bad version.</value>
+  </data>
+  <data name="UserTokenTimeExpireException" xml:space="preserve">
+    <value>The token is expired because its expiration time has passed.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/Exceptions.Designer.cs b/BackEnd/Timeline/Resources/Services/Exceptions.Designer.cs
new file mode 100644
index 00000000..1dbe11c9
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/Exceptions.Designer.cs
@@ -0,0 +1,189 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Exceptions {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Exceptions() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.Exceptions", typeof(Exceptions).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A entity of type &quot;{0}&quot; already exists..
+        /// </summary>
+        internal static string EntityAlreadyExistError {
+            get {
+                return ResourceManager.GetString("EntityAlreadyExistError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The entity already exists..
+        /// </summary>
+        internal static string EntityAlreadyExistErrorDefault {
+            get {
+                return ResourceManager.GetString("EntityAlreadyExistErrorDefault", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The required entity of type &quot;{0}&quot; does not exist..
+        /// </summary>
+        internal static string EntityNotExistError {
+            get {
+                return ResourceManager.GetString("EntityNotExistError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The required entity does not exist..
+        /// </summary>
+        internal static string EntityNotExistErrorDefault {
+            get {
+                return ResourceManager.GetString("EntityNotExistErrorDefault", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Image is in valid because {0}..
+        /// </summary>
+        internal static string ImageException {
+            get {
+                return ResourceManager.GetString("ImageException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to image is not of required size.
+        /// </summary>
+        internal static string ImageExceptionBadSize {
+            get {
+                return ResourceManager.GetString("ImageExceptionBadSize", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to failed to decode image, see inner exception.
+        /// </summary>
+        internal static string ImageExceptionCantDecode {
+            get {
+                return ResourceManager.GetString("ImageExceptionCantDecode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to unknown error.
+        /// </summary>
+        internal static string ImageExceptionUnknownError {
+            get {
+                return ResourceManager.GetString("ImageExceptionUnknownError", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to image&apos;s actual mime type is not the specified one.
+        /// </summary>
+        internal static string ImageExceptionUnmatchedFormat {
+            get {
+                return ResourceManager.GetString("ImageExceptionUnmatchedFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The timeline has no data..
+        /// </summary>
+        internal static string TimelineNoDataException {
+            get {
+                return ResourceManager.GetString("TimelineNoDataException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;. If this is a personal timeline whose name starts with &apos;@&apos;, it means the user does not exist and inner exception should be a UserNotExistException..
+        /// </summary>
+        internal static string TimelineNotExistException {
+            get {
+                return ResourceManager.GetString("TimelineNotExistException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;.  Request timeline post id is &quot;{1}&quot;..
+        /// </summary>
+        internal static string TimelinePostNotExistException {
+            get {
+                return ResourceManager.GetString("TimelinePostNotExistException", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;.  Request timeline post id is &quot;{1}&quot;. The post does not exist because it is deleted..
+        /// </summary>
+        internal static string TimelinePostNotExistExceptionDeleted {
+            get {
+                return ResourceManager.GetString("TimelinePostNotExistExceptionDeleted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Request username is &quot;{0}&quot;. Request id is &quot;{1}&quot;..
+        /// </summary>
+        internal static string UserNotExistException {
+            get {
+                return ResourceManager.GetString("UserNotExistException", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/Exceptions.resx b/BackEnd/Timeline/Resources/Services/Exceptions.resx
new file mode 100644
index 00000000..e9595caa
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/Exceptions.resx
@@ -0,0 +1,142 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+		Microsoft ResX Schema
+
+		Version 1.3
+
+		The primary goals of this format is to allow a simple XML format 
+		that is mostly human readable. The generation and parsing of the 
+		various data types are done through the TypeConverter classes 
+		associated with the data types.
+
+		Example:
+
+		... ado.net/XML headers & schema ...
+		<resheader name="resmimetype">text/microsoft-resx</resheader>
+		<resheader name="version">1.3</resheader>
+		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+		<data name="Name1">this is my long string</data>
+		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+			[base64 mime encoded serialized .NET Framework object]
+		</data>
+		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+			[base64 mime encoded string representing a byte array form of the .NET Framework object]
+		</data>
+
+		There are any number of "resheader" rows that contain simple 
+		name/value pairs.
+
+		Each data row contains a name, and value. The row also contains a 
+		type or mimetype. Type corresponds to a .NET class that support 
+		text/value conversion through the TypeConverter architecture. 
+		Classes that don't support this are serialized and stored with the 
+		mimetype set.
+
+		The mimetype is used for serialized objects, and tells the 
+		ResXResourceReader how to depersist the object. This is currently not 
+		extensible. For a given mimetype the value must be set accordingly:
+
+		Note - application/x-microsoft.net.object.binary.base64 is the format 
+		that the ResXResourceWriter will generate, however the reader can 
+		read any of the formats listed below.
+
+		mimetype: application/x-microsoft.net.object.binary.base64
+		value   : The object must be serialized with 
+			: System.Serialization.Formatters.Binary.BinaryFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.soap.base64
+		value   : The object must be serialized with 
+			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.bytearray.base64
+		value   : The object must be serialized into a byte array 
+			: using a System.ComponentModel.TypeConverter
+			: and then encoded with base64 encoding.
+	-->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="EntityNotExistError" xml:space="preserve">
+    <value>The required entity of type "{0}" does not exist.</value>
+  </data>
+  <data name="EntityAlreadyExistErrorDefault" xml:space="preserve">
+    <value>The entity already exists.</value>
+  </data>
+  <data name="EntityAlreadyExistError" xml:space="preserve">
+    <value>A entity of type "{0}" already exists.</value>
+  </data>
+  <data name="EntityNotExistErrorDefault" xml:space="preserve">
+    <value>The required entity does not exist.</value>
+  </data>
+  <data name="TimelineNotExistException" xml:space="preserve">
+    <value>Request timeline name is "{0}". If this is a personal timeline whose name starts with '@', it means the user does not exist and inner exception should be a UserNotExistException.</value>
+  </data>
+  <data name="TimelinePostNotExistException" xml:space="preserve">
+    <value>Request timeline name is "{0}".  Request timeline post id is "{1}".</value>
+  </data>
+  <data name="UserNotExistException" xml:space="preserve">
+    <value>Request username is "{0}". Request id is "{1}".</value>
+  </data>
+  <data name="TimelineNoDataException" xml:space="preserve">
+    <value>The timeline has no data.</value>
+  </data>
+  <data name="ImageException" xml:space="preserve">
+    <value>Image is in valid because {0}.</value>
+  </data>
+  <data name="ImageExceptionBadSize" xml:space="preserve">
+    <value>image is not of required size</value>
+  </data>
+  <data name="ImageExceptionCantDecode" xml:space="preserve">
+    <value>failed to decode image, see inner exception</value>
+  </data>
+  <data name="ImageExceptionUnknownError" xml:space="preserve">
+    <value>unknown error</value>
+  </data>
+  <data name="ImageExceptionUnmatchedFormat" xml:space="preserve">
+    <value>image's actual mime type is not the specified one</value>
+  </data>
+  <data name="TimelinePostNotExistExceptionDeleted" xml:space="preserve">
+    <value>Request timeline name is "{0}".  Request timeline post id is "{1}". The post does not exist because it is deleted.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/TimelineService.Designer.cs b/BackEnd/Timeline/Resources/Services/TimelineService.Designer.cs
new file mode 100644
index 00000000..e16c1337
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/TimelineService.Designer.cs
@@ -0,0 +1,144 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class TimelineService {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal TimelineService() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.TimelineService", typeof(TimelineService).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The number {0} username is invalid..
+        /// </summary>
+        internal static string ExceptionChangeMemberUsernameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionChangeMemberUsernameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown post content type &quot;{0}&quot; is saved in database..
+        /// </summary>
+        internal static string ExceptionDatabaseUnknownContentType {
+            get {
+                return ResourceManager.GetString("ExceptionDatabaseUnknownContentType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The owner username of personal timeline is of bad format..
+        /// </summary>
+        internal static string ExceptionFindTimelineUsernameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionFindTimelineUsernameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The data entry of the tag of the image post does not exist..
+        /// </summary>
+        internal static string ExceptionGetDataDataEntryNotExist {
+            get {
+                return ResourceManager.GetString("ExceptionGetDataDataEntryNotExist", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Can&apos;t get data of a non-image post..
+        /// </summary>
+        internal static string ExceptionGetDataNonImagePost {
+            get {
+                return ResourceManager.GetString("ExceptionGetDataNonImagePost", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The post has been deleted because content of entity is null..
+        /// </summary>
+        internal static string ExceptionPostDeleted {
+            get {
+                return ResourceManager.GetString("ExceptionPostDeleted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The timeline name is of bad format..
+        /// </summary>
+        internal static string ExceptionTimelineNameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionTimelineNameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The timeline with given name already exists..
+        /// </summary>
+        internal static string ExceptionTimelineNameConflict {
+            get {
+                return ResourceManager.GetString("ExceptionTimelineNameConflict", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Image format type of the post does not exist in column &quot;extra_content&quot;. Normally this couldn&apos;t be possible because it should be saved when post was created. However, we now re-detect the format and save it..
+        /// </summary>
+        internal static string LogGetDataNoFormat {
+            get {
+                return ResourceManager.GetString("LogGetDataNoFormat", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/TimelineService.resx b/BackEnd/Timeline/Resources/Services/TimelineService.resx
new file mode 100644
index 00000000..9314f51b
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/TimelineService.resx
@@ -0,0 +1,147 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionChangeMemberUsernameBadFormat" xml:space="preserve">
+    <value>The number {0} username is invalid.</value>
+  </data>
+  <data name="ExceptionDatabaseUnknownContentType" xml:space="preserve">
+    <value>Unknown post content type "{0}" is saved in database.</value>
+  </data>
+  <data name="ExceptionFindTimelineUsernameBadFormat" xml:space="preserve">
+    <value>The owner username of personal timeline is of bad format.</value>
+  </data>
+  <data name="ExceptionGetDataDataEntryNotExist" xml:space="preserve">
+    <value>The data entry of the tag of the image post does not exist.</value>
+  </data>
+  <data name="ExceptionGetDataNonImagePost" xml:space="preserve">
+    <value>Can't get data of a non-image post.</value>
+  </data>
+  <data name="ExceptionTimelineNameBadFormat" xml:space="preserve">
+    <value>The timeline name is of bad format.</value>
+  </data>
+  <data name="ExceptionTimelineNameConflict" xml:space="preserve">
+    <value>The timeline with given name already exists.</value>
+  </data>
+  <data name="LogGetDataNoFormat" xml:space="preserve">
+    <value>Image format type of the post does not exist in column "extra_content". Normally this couldn't be possible because it should be saved when post was created. However, we now re-detect the format and save it.</value>
+  </data>
+  <data name="ExceptionPostDeleted" xml:space="preserve">
+    <value>The post has been deleted because content of entity is null.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/UserAvatarService.Designer.cs b/BackEnd/Timeline/Resources/Services/UserAvatarService.Designer.cs
new file mode 100644
index 00000000..c72d4215
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserAvatarService.Designer.cs
@@ -0,0 +1,108 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class UserAvatarService {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal UserAvatarService() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserAvatarService", typeof(UserAvatarService).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Data of avatar is null..
+        /// </summary>
+        internal static string ExceptionAvatarDataNull {
+            get {
+                return ResourceManager.GetString("ExceptionAvatarDataNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Type of avatar is null or empty..
+        /// </summary>
+        internal static string ExceptionAvatarTypeNullOrEmpty {
+            get {
+                return ResourceManager.GetString("ExceptionAvatarTypeNullOrEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Database corupted! One of type and data of a avatar is null but the other is not..
+        /// </summary>
+        internal static string ExceptionDatabaseCorruptedDataAndTypeNotSame {
+            get {
+                return ResourceManager.GetString("ExceptionDatabaseCorruptedDataAndTypeNotSame", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Created an entry in user_avatars..
+        /// </summary>
+        internal static string LogCreateEntity {
+            get {
+                return ResourceManager.GetString("LogCreateEntity", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Updated an entry in user_avatars..
+        /// </summary>
+        internal static string LogUpdateEntity {
+            get {
+                return ResourceManager.GetString("LogUpdateEntity", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/UserAvatarService.resx b/BackEnd/Timeline/Resources/Services/UserAvatarService.resx
new file mode 100644
index 00000000..da9d7203
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserAvatarService.resx
@@ -0,0 +1,135 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionAvatarDataNull" xml:space="preserve">
+    <value>Data of avatar is null.</value>
+  </data>
+  <data name="ExceptionAvatarTypeNullOrEmpty" xml:space="preserve">
+    <value>Type of avatar is null or empty.</value>
+  </data>
+  <data name="ExceptionDatabaseCorruptedDataAndTypeNotSame" xml:space="preserve">
+    <value>Database corupted! One of type and data of a avatar is null but the other is not.</value>
+  </data>
+  <data name="LogCreateEntity" xml:space="preserve">
+    <value>Created an entry in user_avatars.</value>
+  </data>
+  <data name="LogUpdateEntity" xml:space="preserve">
+    <value>Updated an entry in user_avatars.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/UserService.Designer.cs b/BackEnd/Timeline/Resources/Services/UserService.Designer.cs
new file mode 100644
index 00000000..cdf7f390
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserService.Designer.cs
@@ -0,0 +1,162 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class UserService {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal UserService() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserService", typeof(UserService).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to New username is of bad format..
+        /// </summary>
+        internal static string ExceptionNewUsernameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionNewUsernameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Nickname is of bad format, because {}..
+        /// </summary>
+        internal static string ExceptionNicknameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionNicknameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Old username is of bad format..
+        /// </summary>
+        internal static string ExceptionOldUsernameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionOldUsernameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Password can&apos;t be empty..
+        /// </summary>
+        internal static string ExceptionPasswordEmpty {
+            get {
+                return ResourceManager.GetString("ExceptionPasswordEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Password can&apos;t be null..
+        /// </summary>
+        internal static string ExceptionPasswordNull {
+            get {
+                return ResourceManager.GetString("ExceptionPasswordNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Username is of bad format, because {}..
+        /// </summary>
+        internal static string ExceptionUsernameBadFormat {
+            get {
+                return ResourceManager.GetString("ExceptionUsernameBadFormat", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user with given username already exists..
+        /// </summary>
+        internal static string ExceptionUsernameConflict {
+            get {
+                return ResourceManager.GetString("ExceptionUsernameConflict", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Username can&apos;t be null..
+        /// </summary>
+        internal static string ExceptionUsernameNull {
+            get {
+                return ResourceManager.GetString("ExceptionUsernameNull", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A new user entry is added to the database..
+        /// </summary>
+        internal static string LogDatabaseCreate {
+            get {
+                return ResourceManager.GetString("LogDatabaseCreate", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user entry is removed from the database..
+        /// </summary>
+        internal static string LogDatabaseRemove {
+            get {
+                return ResourceManager.GetString("LogDatabaseRemove", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A user entry is updated to the database..
+        /// </summary>
+        internal static string LogDatabaseUpdate {
+            get {
+                return ResourceManager.GetString("LogDatabaseUpdate", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/UserService.resx b/BackEnd/Timeline/Resources/Services/UserService.resx
new file mode 100644
index 00000000..09bd4abb
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserService.resx
@@ -0,0 +1,153 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionNewUsernameBadFormat" xml:space="preserve">
+    <value>New username is of bad format.</value>
+  </data>
+  <data name="ExceptionNicknameBadFormat" xml:space="preserve">
+    <value>Nickname is of bad format, because {}.</value>
+  </data>
+  <data name="ExceptionOldUsernameBadFormat" xml:space="preserve">
+    <value>Old username is of bad format.</value>
+  </data>
+  <data name="ExceptionPasswordEmpty" xml:space="preserve">
+    <value>Password can't be empty.</value>
+  </data>
+  <data name="ExceptionPasswordNull" xml:space="preserve">
+    <value>Password can't be null.</value>
+  </data>
+  <data name="ExceptionUsernameBadFormat" xml:space="preserve">
+    <value>Username is of bad format, because {}.</value>
+  </data>
+  <data name="ExceptionUsernameConflict" xml:space="preserve">
+    <value>A user with given username already exists.</value>
+  </data>
+  <data name="ExceptionUsernameNull" xml:space="preserve">
+    <value>Username can't be null.</value>
+  </data>
+  <data name="LogDatabaseCreate" xml:space="preserve">
+    <value>A new user entry is added to the database.</value>
+  </data>
+  <data name="LogDatabaseRemove" xml:space="preserve">
+    <value>A user entry is removed from the database.</value>
+  </data>
+  <data name="LogDatabaseUpdate" xml:space="preserve">
+    <value>A user entry is updated to the database.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Resources/Services/UserTokenService.Designer.cs b/BackEnd/Timeline/Resources/Services/UserTokenService.Designer.cs
new file mode 100644
index 00000000..3c3c7e41
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserTokenService.Designer.cs
@@ -0,0 +1,72 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Timeline.Resources.Services {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class UserTokenService {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal UserTokenService() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserTokenService", typeof(UserTokenService).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Jwt token key is not set in database. Maybe you forget to migrate the database..
+        /// </summary>
+        internal static string JwtKeyNotExist {
+            get {
+                return ResourceManager.GetString("JwtKeyNotExist", resourceCulture);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Resources/Services/UserTokenService.resx b/BackEnd/Timeline/Resources/Services/UserTokenService.resx
new file mode 100644
index 00000000..1ce78427
--- /dev/null
+++ b/BackEnd/Timeline/Resources/Services/UserTokenService.resx
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="JwtKeyNotExist" xml:space="preserve">
+    <value>Jwt token key is not set in database. Maybe you forget to migrate the database.</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/BackEnd/Timeline/Routes/ApiRoutePrefixConvention.cs b/BackEnd/Timeline/Routes/ApiRoutePrefixConvention.cs
new file mode 100644
index 00000000..ca38a0d9
--- /dev/null
+++ b/BackEnd/Timeline/Routes/ApiRoutePrefixConvention.cs
@@ -0,0 +1,46 @@
+﻿using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.ApplicationModels;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.AspNetCore.Mvc.Routing;
+using System.Linq;
+
+namespace Timeline.Routes
+{
+    public static class MvcOptionsExtensions
+    {
+        public static void UseApiRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
+        {
+            opts.Conventions.Add(new ApiRoutePrefixConvention(routeAttribute));
+        }
+
+        public static void UseApiRoutePrefix(this MvcOptions opts, string prefix)
+        {
+            opts.UseApiRoutePrefix(new RouteAttribute(prefix));
+        }
+    }
+
+    public class ApiRoutePrefixConvention : IApplicationModelConvention
+    {
+        private readonly AttributeRouteModel _routePrefix;
+
+        public ApiRoutePrefixConvention(IRouteTemplateProvider route)
+        {
+            _routePrefix = new AttributeRouteModel(route);
+        }
+
+        public void Apply(ApplicationModel application)
+        {
+            foreach (var selector in application.Controllers.Where(c => c.Filters.Any(f => f is IApiBehaviorMetadata)).SelectMany(c => c.Selectors))
+            {
+                if (selector.AttributeRouteModel != null)
+                {
+                    selector.AttributeRouteModel = AttributeRouteModel.CombineAttributeRouteModel(_routePrefix, selector.AttributeRouteModel);
+                }
+                else
+                {
+                    selector.AttributeRouteModel = _routePrefix;
+                }
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Routes/UnknownEndpointMiddleware.cs b/BackEnd/Timeline/Routes/UnknownEndpointMiddleware.cs
new file mode 100644
index 00000000..25ec563c
--- /dev/null
+++ b/BackEnd/Timeline/Routes/UnknownEndpointMiddleware.cs
@@ -0,0 +1,39 @@
+﻿using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Http;
+using System;
+using System.Net.Mime;
+using System.Text.Json;
+using Timeline.Models.Http;
+
+namespace Timeline.Routes
+{
+    public static class UnknownEndpointMiddleware
+    {
+        public static void Attach(IApplicationBuilder app)
+        {
+            app.Use(async (context, next) =>
+            {
+                if (context.GetEndpoint() != null)
+                {
+                    await next();
+                    return;
+                }
+
+                if (context.Request.Path.StartsWithSegments("/api", StringComparison.OrdinalIgnoreCase))
+                {
+                    context.Response.StatusCode = StatusCodes.Status400BadRequest;
+                    context.Response.ContentType = MediaTypeNames.Application.Json;
+
+                    var body = JsonSerializer.SerializeToUtf8Bytes(ErrorResponse.Common.UnknownEndpoint(), new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
+
+                    context.Response.ContentLength = body.Length;
+                    await context.Response.Body.WriteAsync(body);
+                    await context.Response.CompleteAsync();
+                    return;
+                }
+
+                await next();
+            });
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/BadPasswordException.cs b/BackEnd/Timeline/Services/BadPasswordException.cs
new file mode 100644
index 00000000..f609371d
--- /dev/null
+++ b/BackEnd/Timeline/Services/BadPasswordException.cs
@@ -0,0 +1,27 @@
+﻿using System;
+using Timeline.Helpers;
+
+namespace Timeline.Services
+{
+    [Serializable]
+    public class BadPasswordException : Exception
+    {
+        public BadPasswordException() : base(Resources.Services.Exception.BadPasswordException) { }
+        public BadPasswordException(string message, Exception inner) : base(message, inner) { }
+
+        public BadPasswordException(string badPassword)
+            : base(Log.Format(Resources.Services.Exception.BadPasswordException, ("Bad Password", badPassword)))
+        {
+            Password = badPassword;
+        }
+
+        protected BadPasswordException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        /// <summary>
+        /// The wrong password.
+        /// </summary>
+        public string? Password { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Clock.cs b/BackEnd/Timeline/Services/Clock.cs
new file mode 100644
index 00000000..4395edcd
--- /dev/null
+++ b/BackEnd/Timeline/Services/Clock.cs
@@ -0,0 +1,29 @@
+using System;
+
+namespace Timeline.Services
+{
+    /// <summary>
+    /// Convenient for unit test.
+    /// </summary>
+    public interface IClock
+    {
+        /// <summary>
+        /// Get current time.
+        /// </summary>
+        /// <returns>Current time.</returns>
+        DateTime GetCurrentTime();
+    }
+
+    public class Clock : IClock
+    {
+        public Clock()
+        {
+
+        }
+
+        public DateTime GetCurrentTime()
+        {
+            return DateTime.UtcNow;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/DataManager.cs b/BackEnd/Timeline/Services/DataManager.cs
new file mode 100644
index 00000000..d447b0d5
--- /dev/null
+++ b/BackEnd/Timeline/Services/DataManager.cs
@@ -0,0 +1,122 @@
+﻿using Microsoft.EntityFrameworkCore;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Entities;
+
+namespace Timeline.Services
+{
+    /// <summary>
+    /// A data manager controlling data.
+    /// </summary>
+    /// <remarks>
+    /// Identical data will be saved as one copy and return the same tag.
+    /// Every data has a ref count. When data is retained, ref count increase.
+    /// When data is freed, ref count decease. If ref count is decreased
+    /// to 0, the data entry will be destroyed and no longer occupy space.
+    /// </remarks>
+    public interface IDataManager
+    {
+        /// <summary>
+        /// Saves the data to a new entry if it does not exist, 
+        /// increases its ref count and returns a tag to the entry.
+        /// </summary>
+        /// <param name="data">The data. Can't be null.</param>
+        /// <returns>The tag of the created entry.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="data"/> is null.</exception>
+        public Task<string> RetainEntry(byte[] data);
+
+        /// <summary>
+        /// Decrease the the ref count of the entry.
+        /// Remove it if ref count is zero.
+        /// </summary>
+        /// <param name="tag">The tag of the entry.</param>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tag"/> is null.</exception>
+        /// <remarks>
+        /// It's no-op if entry with tag does not exist.
+        /// </remarks>
+        public Task FreeEntry(string tag);
+
+        /// <summary>
+        /// Retrieve the entry with given tag.
+        /// </summary>
+        /// <param name="tag">The tag of the entry.</param>
+        /// <returns>The data of the entry.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tag"/> is null.</exception>
+        /// <exception cref="InvalidOperationException">Thrown when entry with given tag does not exist.</exception>
+        public Task<byte[]> GetEntry(string tag);
+    }
+
+    public class DataManager : IDataManager
+    {
+        private readonly DatabaseContext _database;
+        private readonly IETagGenerator _eTagGenerator;
+
+        public DataManager(DatabaseContext database, IETagGenerator eTagGenerator)
+        {
+            _database = database;
+            _eTagGenerator = eTagGenerator;
+        }
+
+        public async Task<string> RetainEntry(byte[] data)
+        {
+            if (data == null)
+                throw new ArgumentNullException(nameof(data));
+
+            var tag = await _eTagGenerator.Generate(data);
+
+            var entity = await _database.Data.Where(d => d.Tag == tag).SingleOrDefaultAsync();
+
+            if (entity == null)
+            {
+                entity = new DataEntity
+                {
+                    Tag = tag,
+                    Data = data,
+                    Ref = 1
+                };
+                _database.Data.Add(entity);
+            }
+            else
+            {
+                entity.Ref += 1;
+            }
+            await _database.SaveChangesAsync();
+            return tag;
+        }
+
+        public async Task FreeEntry(string tag)
+        {
+            if (tag == null)
+                throw new ArgumentNullException(nameof(tag));
+
+            var entity = await _database.Data.Where(d => d.Tag == tag).SingleOrDefaultAsync();
+
+            if (entity != null)
+            {
+                if (entity.Ref == 1)
+                {
+                    _database.Data.Remove(entity);
+                }
+                else
+                {
+                    entity.Ref -= 1;
+                }
+                await _database.SaveChangesAsync();
+            }
+        }
+
+        public async Task<byte[]> GetEntry(string tag)
+        {
+            if (tag == null)
+                throw new ArgumentNullException(nameof(tag));
+
+            var entity = await _database.Data.Where(d => d.Tag == tag).Select(d => new { d.Data }).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new InvalidOperationException(Resources.Services.DataManager.ExceptionEntryNotExist);
+
+            return entity.Data;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/DatabaseBackupService.cs b/BackEnd/Timeline/Services/DatabaseBackupService.cs
new file mode 100644
index 00000000..a76b2a0d
--- /dev/null
+++ b/BackEnd/Timeline/Services/DatabaseBackupService.cs
@@ -0,0 +1,35 @@
+﻿using System.Globalization;
+using System.IO;
+
+namespace Timeline.Services
+{
+    public interface IDatabaseBackupService
+    {
+        void BackupNow();
+    }
+
+    public class DatabaseBackupService : IDatabaseBackupService
+    {
+        private readonly IPathProvider _pathProvider;
+        private readonly IClock _clock;
+
+        public DatabaseBackupService(IPathProvider pathProvider, IClock clock)
+        {
+            _pathProvider = pathProvider;
+            _clock = clock;
+        }
+
+        public void BackupNow()
+        {
+            var databasePath = _pathProvider.GetDatabaseFilePath();
+            if (File.Exists(databasePath))
+            {
+                var backupDirPath = _pathProvider.GetDatabaseBackupDirectory();
+                Directory.CreateDirectory(backupDirPath);
+                var fileName = _clock.GetCurrentTime().ToString("yyyy-MM-ddTHH-mm-ss", CultureInfo.InvariantCulture);
+                var path = Path.Combine(backupDirPath, fileName);
+                File.Copy(databasePath, path);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/DatabaseCorruptedException.cs b/BackEnd/Timeline/Services/DatabaseCorruptedException.cs
new file mode 100644
index 00000000..9988e0ad
--- /dev/null
+++ b/BackEnd/Timeline/Services/DatabaseCorruptedException.cs
@@ -0,0 +1,15 @@
+﻿using System;
+
+namespace Timeline.Services
+{
+    [Serializable]
+    public class DatabaseCorruptedException : Exception
+    {
+        public DatabaseCorruptedException() { }
+        public DatabaseCorruptedException(string message) : base(message) { }
+        public DatabaseCorruptedException(string message, Exception inner) : base(message, inner) { }
+        protected DatabaseCorruptedException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+    }
+}
diff --git a/BackEnd/Timeline/Services/ETagGenerator.cs b/BackEnd/Timeline/Services/ETagGenerator.cs
new file mode 100644
index 00000000..4493e903
--- /dev/null
+++ b/BackEnd/Timeline/Services/ETagGenerator.cs
@@ -0,0 +1,45 @@
+﻿using System;
+using System.Security.Cryptography;
+using System.Threading.Tasks;
+
+namespace Timeline.Services
+{
+    public interface IETagGenerator
+    {
+        /// <summary>
+        /// Generate a etag for given source.
+        /// </summary>
+        /// <param name="source">The source data.</param>
+        /// <returns>The generated etag.</returns>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
+        Task<string> Generate(byte[] source);
+    }
+
+    public sealed class ETagGenerator : IETagGenerator, IDisposable
+    {
+        private readonly SHA1 _sha1;
+
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Security", "CA5350:Do Not Use Weak Cryptographic Algorithms", Justification = "Sha1 is enough ??? I don't know.")]
+        public ETagGenerator()
+        {
+            _sha1 = SHA1.Create();
+        }
+
+        public Task<string> Generate(byte[] source)
+        {
+            if (source == null)
+                throw new ArgumentNullException(nameof(source));
+
+            return Task.Run(() => Convert.ToBase64String(_sha1.ComputeHash(source)));
+        }
+
+        private bool _disposed; // To detect redundant calls
+
+        public void Dispose()
+        {
+            if (_disposed) return;
+            _sha1.Dispose();
+            _disposed = true;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/EntityNames.cs b/BackEnd/Timeline/Services/EntityNames.cs
new file mode 100644
index 00000000..0ce1de3b
--- /dev/null
+++ b/BackEnd/Timeline/Services/EntityNames.cs
@@ -0,0 +1,14 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace Timeline.Services
+{
+    public static class EntityNames
+    {
+        public const string User = "User";
+        public const string Timeline = "Timeline";
+        public const string TimelinePost = "TimelinePost";
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/EntityAlreadyExistError.cs b/BackEnd/Timeline/Services/Exceptions/EntityAlreadyExistError.cs
new file mode 100644
index 00000000..7db2e860
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/EntityAlreadyExistError.cs
@@ -0,0 +1,63 @@
+﻿using System;
+using System.Globalization;
+using System.Text;
+
+namespace Timeline.Services.Exceptions
+{
+    /// <summary>
+    /// Thrown when an entity is already exists.
+    /// </summary>
+    /// <remarks>
+    /// For example, want to create a timeline but a timeline with the same name already exists.
+    /// </remarks>
+    [Serializable]
+    public class EntityAlreadyExistException : Exception
+    {
+        private readonly string? _entityName;
+
+        public EntityAlreadyExistException() : this(null, null, null, null) { }
+
+        public EntityAlreadyExistException(string? entityName) : this(entityName, null) { }
+
+        public EntityAlreadyExistException(string? entityName, Exception? inner) : this(entityName, null, null, null, inner) { }
+
+        public EntityAlreadyExistException(string? entityName, object? entity = null) : this(entityName, null, entity, null, null) { }
+        public EntityAlreadyExistException(Type? entityType, object? entity = null) : this(null, entityType, entity, null, null) { }
+        public EntityAlreadyExistException(string? entityName, Type? entityType, object? entity = null, string? message = null, Exception? inner = null) : base(MakeMessage(entityName, entityType, message), inner)
+        {
+            _entityName = entityName;
+            EntityType = entityType;
+            Entity = entity;
+        }
+
+        private static string MakeMessage(string? entityName, Type? entityType, string? message)
+        {
+            string? name = entityName ?? (entityType?.Name);
+
+            var result = new StringBuilder();
+
+            if (name == null)
+                result.Append(Resources.Services.Exceptions.EntityAlreadyExistErrorDefault);
+            else
+                result.AppendFormat(CultureInfo.InvariantCulture, Resources.Services.Exceptions.EntityAlreadyExistError, name);
+
+            if (message != null)
+            {
+                result.Append(' ');
+                result.Append(message);
+            }
+
+            return result.ToString();
+        }
+
+        protected EntityAlreadyExistException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string? EntityName => _entityName ?? (EntityType?.Name);
+
+        public Type? EntityType { get; }
+
+        public object? Entity { get; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/EntityNotExistError.cs b/BackEnd/Timeline/Services/Exceptions/EntityNotExistError.cs
new file mode 100644
index 00000000..e79496d3
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/EntityNotExistError.cs
@@ -0,0 +1,55 @@
+﻿using System;
+using System.Globalization;
+using System.Text;
+
+namespace Timeline.Services.Exceptions
+{
+    /// <summary>
+    /// Thrown when you want to get an entity that does not exist.
+    /// </summary>
+    /// <example>
+    /// For example, you want to get a timeline with given name but it does not exist.
+    /// </example>
+    [Serializable]
+    public class EntityNotExistException : Exception
+    {
+        public EntityNotExistException() : this(null, null, null, null) { }
+        public EntityNotExistException(string? entityName) : this(entityName, null, null, null) { }
+        public EntityNotExistException(Type? entityType) : this(null, entityType, null, null) { }
+        public EntityNotExistException(string? entityName, Exception? inner) : this(entityName, null, null, inner) { }
+        public EntityNotExistException(Type? entityType, Exception? inner) : this(null, entityType, null, inner) { }
+        public EntityNotExistException(string? entityName, Type? entityType, string? message = null, Exception? inner = null) : base(MakeMessage(entityName, entityType, message), inner)
+        {
+            EntityName = entityName;
+            EntityType = entityType;
+        }
+
+        private static string MakeMessage(string? entityName, Type? entityType, string? message)
+        {
+            string? name = entityName ?? (entityType?.Name);
+
+            var result = new StringBuilder();
+
+            if (name == null)
+                result.Append(Resources.Services.Exceptions.EntityNotExistErrorDefault);
+            else
+                result.AppendFormat(CultureInfo.InvariantCulture, Resources.Services.Exceptions.EntityNotExistError, name);
+
+            if (message != null)
+            {
+                result.Append(' ');
+                result.Append(message);
+            }
+
+            return result.ToString();
+        }
+
+        protected EntityNotExistException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string? EntityName { get; }
+
+        public Type? EntityType { get; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/ExceptionMessageHelper.cs b/BackEnd/Timeline/Services/Exceptions/ExceptionMessageHelper.cs
new file mode 100644
index 00000000..be3c42a4
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/ExceptionMessageHelper.cs
@@ -0,0 +1,13 @@
+﻿namespace Timeline.Services.Exceptions
+{
+    public static class ExceptionMessageHelper
+    {
+        public static string AppendAdditionalMessage(this string origin, string? message)
+        {
+            if (message == null)
+                return origin;
+            else
+                return origin + " " + message;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/ImageException.cs b/BackEnd/Timeline/Services/Exceptions/ImageException.cs
new file mode 100644
index 00000000..20dd48ae
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/ImageException.cs
@@ -0,0 +1,57 @@
+﻿using System;
+using System.Globalization;
+
+namespace Timeline.Services.Exceptions
+{
+    [Serializable]
+    public class ImageException : Exception
+    {
+        public enum ErrorReason
+        {
+            /// <summary>
+            /// Decoding image failed.
+            /// </summary>
+            CantDecode,
+            /// <summary>
+            /// Decoding succeeded but the real type is not the specified type.
+            /// </summary>
+            UnmatchedFormat,
+            /// <summary>
+            /// Image is not of required size.
+            /// </summary>
+            NotSquare,
+            /// <summary>
+            /// Other unknown errer.
+            /// </summary>
+            Unknown
+        }
+
+        public ImageException() : this(null) { }
+        public ImageException(string? message) : this(message, null) { }
+        public ImageException(string? message, Exception? inner) : this(ErrorReason.Unknown, null, null, null, message, inner) { }
+
+        public ImageException(ErrorReason error, byte[]? data, string? requestType = null, string? realType = null, string? message = null, Exception? inner = null) : base(MakeMessage(error).AppendAdditionalMessage(message), inner) { Error = error; ImageData = data; RequestType = requestType; RealType = realType; }
+
+        protected ImageException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        private static string MakeMessage(ErrorReason? reason) =>
+            string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.ImageException, reason switch
+            {
+                ErrorReason.CantDecode => Resources.Services.Exceptions.ImageExceptionCantDecode,
+                ErrorReason.UnmatchedFormat => Resources.Services.Exceptions.ImageExceptionUnmatchedFormat,
+                ErrorReason.NotSquare => Resources.Services.Exceptions.ImageExceptionBadSize,
+                _ => Resources.Services.Exceptions.ImageExceptionUnknownError
+            });
+
+        public ErrorReason Error { get; }
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[]? ImageData { get; }
+#pragma warning restore CA1819 // Properties should not return arrays
+        public string? RequestType { get; }
+
+        // This field will be null if decoding failed.
+        public string? RealType { get; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/TimelineNotExistException.cs b/BackEnd/Timeline/Services/Exceptions/TimelineNotExistException.cs
new file mode 100644
index 00000000..70970b24
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/TimelineNotExistException.cs
@@ -0,0 +1,21 @@
+﻿using System;
+using System.Globalization;
+
+namespace Timeline.Services.Exceptions
+{
+    [Serializable]
+    public class TimelineNotExistException : EntityNotExistException
+    {
+        public TimelineNotExistException() : this(null, null) { }
+        public TimelineNotExistException(string? timelineName) : this(timelineName, null) { }
+        public TimelineNotExistException(string? timelineName, Exception? inner) : this(timelineName, null, inner) { }
+        public TimelineNotExistException(string? timelineName, string? message, Exception? inner = null)
+            : base(EntityNames.Timeline, null, string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.TimelineNotExistException, timelineName ?? "").AppendAdditionalMessage(message), inner) { TimelineName = timelineName; }
+
+        protected TimelineNotExistException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string? TimelineName { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/TimelinePostNoDataException.cs b/BackEnd/Timeline/Services/Exceptions/TimelinePostNoDataException.cs
new file mode 100644
index 00000000..c4b6bf62
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/TimelinePostNoDataException.cs
@@ -0,0 +1,15 @@
+﻿using System;
+
+namespace Timeline.Services.Exceptions
+{
+    [Serializable]
+    public class TimelinePostNoDataException : Exception
+    {
+        public TimelinePostNoDataException() : this(null, null) { }
+        public TimelinePostNoDataException(string? message) : this(message, null) { }
+        public TimelinePostNoDataException(string? message, Exception? inner) : base(Resources.Services.Exceptions.TimelineNoDataException.AppendAdditionalMessage(message), inner) { }
+        protected TimelinePostNoDataException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/TimelinePostNotExistException.cs b/BackEnd/Timeline/Services/Exceptions/TimelinePostNotExistException.cs
new file mode 100644
index 00000000..f95dd410
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/TimelinePostNotExistException.cs
@@ -0,0 +1,33 @@
+﻿using System;
+using System.Globalization;
+
+namespace Timeline.Services.Exceptions
+{
+    [Serializable]
+    public class TimelinePostNotExistException : EntityNotExistException
+    {
+        public TimelinePostNotExistException() : this(null, null, false, null, null) { }
+        [Obsolete("This has no meaning.")]
+        public TimelinePostNotExistException(string? message) : this(message, null) { }
+        [Obsolete("This has no meaning.")]
+        public TimelinePostNotExistException(string? message, Exception? inner) : this(null, null, false, message, inner) { }
+        protected TimelinePostNotExistException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public TimelinePostNotExistException(string? timelineName, long? id, bool isDelete, string? message = null, Exception? inner = null) : base(EntityNames.TimelinePost, null, MakeMessage(timelineName, id, isDelete).AppendAdditionalMessage(message), inner) { TimelineName = timelineName; Id = id; IsDelete = isDelete; }
+
+        private static string MakeMessage(string? timelineName, long? id, bool isDelete)
+        {
+            return string.Format(CultureInfo.InvariantCulture, isDelete ? Resources.Services.Exceptions.TimelinePostNotExistExceptionDeleted : Resources.Services.Exceptions.TimelinePostNotExistException, timelineName ?? "", id);
+        }
+
+        public string? TimelineName { get; set; }
+        public long? Id { get; set; }
+
+        /// <summary>
+        /// True if the post is deleted. False if the post does not exist at all.
+        /// </summary>
+        public bool IsDelete { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/Exceptions/UserNotExistException.cs b/BackEnd/Timeline/Services/Exceptions/UserNotExistException.cs
new file mode 100644
index 00000000..7ef714df
--- /dev/null
+++ b/BackEnd/Timeline/Services/Exceptions/UserNotExistException.cs
@@ -0,0 +1,40 @@
+﻿using System;
+using System.Globalization;
+
+namespace Timeline.Services.Exceptions
+{
+    /// <summary>
+    /// The user requested does not exist.
+    /// </summary>
+    [Serializable]
+    public class UserNotExistException : EntityNotExistException
+    {
+        public UserNotExistException() : this(null, null, null, null) { }
+        public UserNotExistException(string? username, Exception? inner) : this(username, null, null, inner) { }
+
+        public UserNotExistException(string? username) : this(username, null, null, null) { }
+
+        public UserNotExistException(long id) : this(null, id, null, null) { }
+
+        public UserNotExistException(string? username, long? id, string? message, Exception? inner) : base(EntityNames.User, null,
+            string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.UserNotExistException, username ?? "", id).AppendAdditionalMessage(message), inner)
+        {
+            Username = username;
+            Id = id;
+        }
+
+        protected UserNotExistException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        /// <summary>
+        /// The username of the user that does not exist.
+        /// </summary>
+        public string? Username { get; set; }
+
+        /// <summary>
+        /// The id of the user that does not exist.
+        /// </summary>
+        public long? Id { get; set; }
+    }
+}
diff --git a/BackEnd/Timeline/Services/ImageValidator.cs b/BackEnd/Timeline/Services/ImageValidator.cs
new file mode 100644
index 00000000..59424a7c
--- /dev/null
+++ b/BackEnd/Timeline/Services/ImageValidator.cs
@@ -0,0 +1,54 @@
+﻿using SixLabors.ImageSharp;
+using SixLabors.ImageSharp.Formats;
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Services.Exceptions;
+
+namespace Timeline.Services
+{
+    public interface IImageValidator
+    {
+        /// <summary>
+        /// Validate a image data.
+        /// </summary>
+        /// <param name="data">The data of the image. Can't be null.</param>
+        /// <param name="requestType">If not null, the real image format will be check against the requested format and throw if not match. If null, then do not check.</param>
+        /// <param name="square">If true, image must be square.</param>
+        /// <returns>The format.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="data"/> is null.</exception>
+        /// <exception cref="ImageException">Thrown when image data can't be decoded or real type does not match request type or image is not square when required.</exception>
+        Task<IImageFormat> Validate(byte[] data, string? requestType = null, bool square = false);
+    }
+
+    public class ImageValidator : IImageValidator
+    {
+        public ImageValidator()
+        {
+        }
+
+        public async Task<IImageFormat> Validate(byte[] data, string? requestType = null, bool square = false)
+        {
+            if (data == null)
+                throw new ArgumentNullException(nameof(data));
+
+            var format = await Task.Run(() =>
+            {
+                try
+                {
+                    using var image = Image.Load(data, out IImageFormat format);
+                    if (requestType != null && !format.MimeTypes.Contains(requestType))
+                        throw new ImageException(ImageException.ErrorReason.UnmatchedFormat, data, requestType, format.DefaultMimeType);
+                    if (square && image.Width != image.Height)
+                        throw new ImageException(ImageException.ErrorReason.NotSquare, data, requestType, format.DefaultMimeType);
+                    return format;
+                }
+                catch (UnknownImageFormatException e)
+                {
+                    throw new ImageException(ImageException.ErrorReason.CantDecode, data, requestType, null, null, e);
+                }
+            });
+            return format;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/JwtUserTokenBadFormatException.cs b/BackEnd/Timeline/Services/JwtUserTokenBadFormatException.cs
new file mode 100644
index 00000000..c528c3e3
--- /dev/null
+++ b/BackEnd/Timeline/Services/JwtUserTokenBadFormatException.cs
@@ -0,0 +1,48 @@
+﻿using System;
+using System.Globalization;
+using static Timeline.Resources.Services.Exception;
+
+namespace Timeline.Services
+{
+    [Serializable]
+    public class JwtUserTokenBadFormatException : UserTokenBadFormatException
+    {
+        public enum ErrorKind
+        {
+            NoIdClaim,
+            IdClaimBadFormat,
+            NoVersionClaim,
+            VersionClaimBadFormat,
+            Other
+        }
+
+        public JwtUserTokenBadFormatException() : this("", ErrorKind.Other) { }
+        public JwtUserTokenBadFormatException(string message) : base(message) { }
+        public JwtUserTokenBadFormatException(string message, Exception inner) : base(message, inner) { }
+
+        public JwtUserTokenBadFormatException(string token, ErrorKind type) : base(token, GetErrorMessage(type)) { ErrorType = type; }
+        public JwtUserTokenBadFormatException(string token, ErrorKind type, Exception inner) : base(token, GetErrorMessage(type), inner) { ErrorType = type; }
+        public JwtUserTokenBadFormatException(string token, ErrorKind type, string message, Exception inner) : base(token, message, inner) { ErrorType = type; }
+        protected JwtUserTokenBadFormatException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public ErrorKind ErrorType { get; set; }
+
+        private static string GetErrorMessage(ErrorKind type)
+        {
+            var reason = type switch
+            {
+                ErrorKind.NoIdClaim => JwtUserTokenBadFormatExceptionIdMissing,
+                ErrorKind.IdClaimBadFormat => JwtUserTokenBadFormatExceptionIdBadFormat,
+                ErrorKind.NoVersionClaim => JwtUserTokenBadFormatExceptionVersionMissing,
+                ErrorKind.VersionClaimBadFormat => JwtUserTokenBadFormatExceptionVersionBadFormat,
+                ErrorKind.Other => JwtUserTokenBadFormatExceptionOthers,
+                _ => JwtUserTokenBadFormatExceptionUnknown
+            };
+
+            return string.Format(CultureInfo.CurrentCulture,
+                Resources.Services.Exception.JwtUserTokenBadFormatException, reason);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/PasswordBadFormatException.cs b/BackEnd/Timeline/Services/PasswordBadFormatException.cs
new file mode 100644
index 00000000..2029ebb4
--- /dev/null
+++ b/BackEnd/Timeline/Services/PasswordBadFormatException.cs
@@ -0,0 +1,27 @@
+﻿using System;
+
+namespace Timeline.Services
+{
+
+    [Serializable]
+    public class PasswordBadFormatException : Exception
+    {
+        public PasswordBadFormatException() : base(Resources.Services.Exception.PasswordBadFormatException) { }
+        public PasswordBadFormatException(string message) : base(message) { }
+        public PasswordBadFormatException(string message, Exception inner) : base(message, inner) { }
+
+        public PasswordBadFormatException(string password, string validationMessage) : this()
+        {
+            Password = password;
+            ValidationMessage = validationMessage;
+        }
+
+        protected PasswordBadFormatException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string Password { get; set; } = "";
+
+        public string ValidationMessage { get; set; } = "";
+    }
+}
diff --git a/BackEnd/Timeline/Services/PasswordService.cs b/BackEnd/Timeline/Services/PasswordService.cs
new file mode 100644
index 00000000..8114a520
--- /dev/null
+++ b/BackEnd/Timeline/Services/PasswordService.cs
@@ -0,0 +1,224 @@
+using Microsoft.AspNetCore.Cryptography.KeyDerivation;
+using System;
+using System.Runtime.CompilerServices;
+using System.Security.Cryptography;
+
+namespace Timeline.Services
+{
+    /// <summary>
+    /// Hashed password is of bad format.
+    /// </summary>
+    /// <seealso cref="IPasswordService.VerifyPassword(string, string)"/>
+    [Serializable]
+    public class HashedPasswordBadFromatException : Exception
+    {
+        private static string MakeMessage(string reason)
+        {
+            return Resources.Services.Exception.HashedPasswordBadFromatException + " Reason: " + reason;
+        }
+
+        public HashedPasswordBadFromatException() : base(Resources.Services.Exception.HashedPasswordBadFromatException) { }
+
+        public HashedPasswordBadFromatException(string message) : base(message) { }
+        public HashedPasswordBadFromatException(string message, Exception inner) : base(message, inner) { }
+
+        public HashedPasswordBadFromatException(string hashedPassword, string reason) : base(MakeMessage(reason)) { HashedPassword = hashedPassword; }
+        public HashedPasswordBadFromatException(string hashedPassword, string reason, Exception inner) : base(MakeMessage(reason), inner) { HashedPassword = hashedPassword; }
+        protected HashedPasswordBadFromatException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string? HashedPassword { get; set; }
+    }
+
+    public interface IPasswordService
+    {
+        /// <summary>
+        /// Hash a password.
+        /// </summary>
+        /// <param name="password">The password to hash.</param>
+        /// <returns>A hashed representation of the supplied <paramref name="password"/>.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="password"/> is null.</exception>
+        string HashPassword(string password);
+
+        /// <summary>
+        /// Verify whether the password fits into the hashed one.
+        /// 
+        /// Usually you only need to check the returned bool value.
+        /// Catching <see cref="HashedPasswordBadFromatException"/> usually is not necessary.
+        /// Because if your program logic is right and always call <see cref="HashPassword(string)"/>
+        /// and <see cref="VerifyPassword(string, string)"/> in pair, this exception will never be thrown.
+        /// A thrown one usually means the data you saved is corupted, which is a critical problem.
+        /// </summary>
+        /// <param name="hashedPassword">The hashed password.</param>
+        /// <param name="providedPassword">The password supplied for comparison.</param>
+        /// <returns>True indicating password is right. Otherwise false.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="hashedPassword"/> or <paramref name="providedPassword"/> is null.</exception>
+        /// <exception cref="HashedPasswordBadFromatException">Thrown when the hashed password is of bad format.</exception>
+        bool VerifyPassword(string hashedPassword, string providedPassword);
+    }
+
+    /// <summary>
+    /// Copied from https://github.com/aspnet/AspNetCore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs
+    /// Remove V2 format and unnecessary format version check.
+    /// Remove configuration options.
+    /// Remove user related parts.
+    /// Change the exceptions.
+    /// </summary>
+    public class PasswordService : IPasswordService
+    {
+        /* =======================
+        * HASHED PASSWORD FORMATS
+        * =======================
+        * 
+        * Version 3:
+        * PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations.
+        * Format: { 0x01, prf (UInt32), iter count (UInt32), salt length (UInt32), salt, subkey }
+        * (All UInt32s are stored big-endian.)
+        */
+
+        private readonly RandomNumberGenerator _rng = RandomNumberGenerator.Create();
+
+        public PasswordService()
+        {
+        }
+
+        // Compares two byte arrays for equality. The method is specifically written so that the loop is not optimized.
+        [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
+        private static bool ByteArraysEqual(byte[] a, byte[] b)
+        {
+            if (a == null && b == null)
+            {
+                return true;
+            }
+            if (a == null || b == null || a.Length != b.Length)
+            {
+                return false;
+            }
+            var areSame = true;
+            for (var i = 0; i < a.Length; i++)
+            {
+                areSame &= (a[i] == b[i]);
+            }
+            return areSame;
+        }
+
+        public string HashPassword(string password)
+        {
+            if (password == null)
+                throw new ArgumentNullException(nameof(password));
+            return Convert.ToBase64String(HashPasswordV3(password, _rng));
+        }
+
+        private static byte[] HashPasswordV3(string password, RandomNumberGenerator rng)
+        {
+            return HashPasswordV3(password, rng,
+                prf: KeyDerivationPrf.HMACSHA256,
+                iterCount: 10000,
+                saltSize: 128 / 8,
+                numBytesRequested: 256 / 8);
+        }
+
+        private static byte[] HashPasswordV3(string password, RandomNumberGenerator rng, KeyDerivationPrf prf, int iterCount, int saltSize, int numBytesRequested)
+        {
+            // Produce a version 3 (see comment above) text hash.
+            byte[] salt = new byte[saltSize];
+            rng.GetBytes(salt);
+            byte[] subkey = KeyDerivation.Pbkdf2(password, salt, prf, iterCount, numBytesRequested);
+
+            var outputBytes = new byte[13 + salt.Length + subkey.Length];
+            outputBytes[0] = 0x01; // format marker
+            WriteNetworkByteOrder(outputBytes, 1, (uint)prf);
+            WriteNetworkByteOrder(outputBytes, 5, (uint)iterCount);
+            WriteNetworkByteOrder(outputBytes, 9, (uint)saltSize);
+            Buffer.BlockCopy(salt, 0, outputBytes, 13, salt.Length);
+            Buffer.BlockCopy(subkey, 0, outputBytes, 13 + saltSize, subkey.Length);
+            return outputBytes;
+        }
+
+        public bool VerifyPassword(string hashedPassword, string providedPassword)
+        {
+            if (hashedPassword == null)
+                throw new ArgumentNullException(nameof(hashedPassword));
+            if (providedPassword == null)
+                throw new ArgumentNullException(nameof(providedPassword));
+
+            byte[] decodedHashedPassword;
+            try
+            {
+                decodedHashedPassword = Convert.FromBase64String(hashedPassword);
+            }
+            catch (FormatException e)
+            {
+                throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotBase64, e);
+            }
+
+            // read the format marker from the hashed password
+            if (decodedHashedPassword.Length == 0)
+            {
+                throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotLength0);
+            }
+
+            return (decodedHashedPassword[0]) switch
+            {
+                0x01 => VerifyHashedPasswordV3(decodedHashedPassword, providedPassword, hashedPassword),
+                _ => throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotUnknownMarker),
+            };
+        }
+
+        private static bool VerifyHashedPasswordV3(byte[] hashedPassword, string password, string hashedPasswordString)
+        {
+            try
+            {
+                // Read header information
+                KeyDerivationPrf prf = (KeyDerivationPrf)ReadNetworkByteOrder(hashedPassword, 1);
+                int iterCount = (int)ReadNetworkByteOrder(hashedPassword, 5);
+                int saltLength = (int)ReadNetworkByteOrder(hashedPassword, 9);
+
+                // Read the salt: must be >= 128 bits
+                if (saltLength < 128 / 8)
+                {
+                    throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotSaltTooShort);
+                }
+                byte[] salt = new byte[saltLength];
+                Buffer.BlockCopy(hashedPassword, 13, salt, 0, salt.Length);
+
+                // Read the subkey (the rest of the payload): must be >= 128 bits
+                int subkeyLength = hashedPassword.Length - 13 - salt.Length;
+                if (subkeyLength < 128 / 8)
+                {
+                    throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotSubkeyTooShort);
+                }
+                byte[] expectedSubkey = new byte[subkeyLength];
+                Buffer.BlockCopy(hashedPassword, 13 + salt.Length, expectedSubkey, 0, expectedSubkey.Length);
+
+                // Hash the incoming password and verify it
+                byte[] actualSubkey = KeyDerivation.Pbkdf2(password, salt, prf, iterCount, subkeyLength);
+                return ByteArraysEqual(actualSubkey, expectedSubkey);
+            }
+            catch (Exception e)
+            {
+                // This should never occur except in the case of a malformed payload, where
+                // we might go off the end of the array. Regardless, a malformed payload
+                // implies verification failed.
+                throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotOthers, e);
+            }
+        }
+
+        private static uint ReadNetworkByteOrder(byte[] buffer, int offset)
+        {
+            return ((uint)(buffer[offset + 0]) << 24)
+                | ((uint)(buffer[offset + 1]) << 16)
+                | ((uint)(buffer[offset + 2]) << 8)
+                | ((uint)(buffer[offset + 3]));
+        }
+
+        private static void WriteNetworkByteOrder(byte[] buffer, int offset, uint value)
+        {
+            buffer[offset + 0] = (byte)(value >> 24);
+            buffer[offset + 1] = (byte)(value >> 16);
+            buffer[offset + 2] = (byte)(value >> 8);
+            buffer[offset + 3] = (byte)(value >> 0);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/PathProvider.cs b/BackEnd/Timeline/Services/PathProvider.cs
new file mode 100644
index 00000000..1baba5c0
--- /dev/null
+++ b/BackEnd/Timeline/Services/PathProvider.cs
@@ -0,0 +1,42 @@
+﻿using Microsoft.Extensions.Configuration;
+using System.IO;
+using Timeline.Configs;
+
+namespace Timeline.Services
+{
+    public interface IPathProvider
+    {
+        public string GetWorkingDirectory();
+        public string GetDatabaseFilePath();
+        public string GetDatabaseBackupDirectory();
+    }
+
+    public class PathProvider : IPathProvider
+    {
+        private readonly IConfiguration _configuration;
+
+        private readonly string _workingDirectory;
+
+
+        public PathProvider(IConfiguration configuration)
+        {
+            _configuration = configuration;
+            _workingDirectory = configuration.GetValue<string?>(ApplicationConfiguration.WorkDirKey) ?? ApplicationConfiguration.DefaultWorkDir;
+        }
+
+        public string GetWorkingDirectory()
+        {
+            return _workingDirectory;
+        }
+
+        public string GetDatabaseFilePath()
+        {
+            return Path.Combine(_workingDirectory, ApplicationConfiguration.DatabaseFileName);
+        }
+
+        public string GetDatabaseBackupDirectory()
+        {
+            return Path.Combine(_workingDirectory, ApplicationConfiguration.DatabaseBackupDirectoryName);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/TimelineService.cs b/BackEnd/Timeline/Services/TimelineService.cs
new file mode 100644
index 00000000..4bcae596
--- /dev/null
+++ b/BackEnd/Timeline/Services/TimelineService.cs
@@ -0,0 +1,1166 @@
+﻿using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using SixLabors.ImageSharp;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Models.Validation;
+using Timeline.Services.Exceptions;
+using static Timeline.Resources.Services.TimelineService;
+
+namespace Timeline.Services
+{
+    public static class TimelineHelper
+    {
+        public static string ExtractTimelineName(string name, out bool isPersonal)
+        {
+            if (name.StartsWith("@", StringComparison.OrdinalIgnoreCase))
+            {
+                isPersonal = true;
+                return name.Substring(1);
+            }
+            else
+            {
+                isPersonal = false;
+                return name;
+            }
+        }
+    }
+
+    public enum TimelineUserRelationshipType
+    {
+        Own = 0b1,
+        Join = 0b10,
+        Default = Own | Join
+    }
+
+    public class TimelineUserRelationship
+    {
+        public TimelineUserRelationship(TimelineUserRelationshipType type, long userId)
+        {
+            Type = type;
+            UserId = userId;
+        }
+
+        public TimelineUserRelationshipType Type { get; set; }
+        public long UserId { get; set; }
+    }
+
+    public class PostData : ICacheableData
+    {
+#pragma warning disable CA1819 // Properties should not return arrays
+        public byte[] Data { get; set; } = default!;
+#pragma warning restore CA1819 // Properties should not return arrays
+        public string Type { get; set; } = default!;
+        public string ETag { get; set; } = default!;
+        public DateTime? LastModified { get; set; } // TODO: Why nullable?
+    }
+
+    /// <summary>
+    /// This define the interface of both personal timeline and ordinary timeline.
+    /// </summary>
+    public interface ITimelineService
+    {
+        /// <summary>
+        /// Get the timeline last modified time (not include name change).
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <returns>The timeline info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        Task<DateTime> GetTimelineLastModifiedTime(string timelineName);
+
+        /// <summary>
+        /// Get the timeline unique id.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <returns>The timeline info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        Task<string> GetTimelineUniqueId(string timelineName);
+
+        /// <summary>
+        /// Get the timeline info.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <returns>The timeline info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        Task<Models.Timeline> GetTimeline(string timelineName);
+
+        /// <summary>
+        /// Set the properties of a timeline. 
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="newProperties">The new properties. Null member means not to change.</param>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="newProperties"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        Task ChangeProperty(string timelineName, TimelineChangePropertyRequest newProperties);
+
+        /// <summary>
+        /// Get all the posts in the timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="modifiedSince">The time that posts have been modified since.</param>
+        /// <param name="includeDeleted">Whether include deleted posts.</param>
+        /// <returns>A list of all posts.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        Task<List<TimelinePost>> GetPosts(string timelineName, DateTime? modifiedSince = null, bool includeDeleted = false);
+
+        /// <summary>
+        /// Get the etag of data of a post.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline of the post.</param>
+        /// <param name="postId">The id of the post.</param>
+        /// <returns>The etag of the data.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="TimelinePostNotExistException">Thrown when post of <paramref name="postId"/> does not exist or has been deleted.</exception>
+        /// <exception cref="TimelinePostNoDataException">Thrown when post has no data.</exception>
+        /// <seealso cref="GetPostData(string, long)"/>
+        Task<string> GetPostDataETag(string timelineName, long postId);
+
+        /// <summary>
+        /// Get the data of a post.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline of the post.</param>
+        /// <param name="postId">The id of the post.</param>
+        /// <returns>The etag of the data.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="TimelinePostNotExistException">Thrown when post of <paramref name="postId"/> does not exist or has been deleted.</exception>
+        /// <exception cref="TimelinePostNoDataException">Thrown when post has no data.</exception>
+        /// <seealso cref="GetPostDataETag(string, long)"/>
+        Task<PostData> GetPostData(string timelineName, long postId);
+
+        /// <summary>
+        /// Create a new text post in timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline to create post against.</param>
+        /// <param name="authorId">The author's user id.</param>
+        /// <param name="text">The content text.</param>
+        /// <param name="time">The time of the post. If null, then current time is used.</param>
+        /// <returns>The info of the created post.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="text"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="UserNotExistException">Thrown if user of <paramref name="authorId"/> does not exist.</exception>
+        Task<TimelinePost> CreateTextPost(string timelineName, long authorId, string text, DateTime? time);
+
+        /// <summary>
+        /// Create a new image post in timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline to create post against.</param>
+        /// <param name="authorId">The author's user id.</param>
+        /// <param name="imageData">The image data.</param>
+        /// <param name="time">The time of the post. If null, then use current time.</param>
+        /// <returns>The info of the created post.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="imageData"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="UserNotExistException">Thrown if user of <paramref name="authorId"/> does not exist.</exception>
+        /// <exception cref="ImageException">Thrown if data is not a image. Validated by <see cref="ImageValidator"/>.</exception>
+        Task<TimelinePost> CreateImagePost(string timelineName, long authorId, byte[] imageData, DateTime? time);
+
+        /// <summary>
+        /// Delete a post.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline to delete post against.</param>
+        /// <param name="postId">The id of the post to delete.</param>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="TimelinePostNotExistException">Thrown when the post with given id does not exist or is deleted already.</exception>
+        /// <remarks>
+        /// First use <see cref="HasPostModifyPermission(string, long, long, bool)"/> to check the permission.
+        /// </remarks>
+        Task DeletePost(string timelineName, long postId);
+
+        /// <summary>
+        /// Delete all posts of the given user. Used when delete a user.
+        /// </summary>
+        /// <param name="userId">The id of the user.</param>
+        Task DeleteAllPostsOfUser(long userId);
+
+        /// <summary>
+        /// Change member of timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="membersToAdd">A list of usernames of members to add. May be null.</param>
+        /// <param name="membersToRemove">A list of usernames of members to remove. May be null.</param>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="ArgumentException">Thrown when names in <paramref name="membersToAdd"/> or <paramref name="membersToRemove"/> is not a valid username.</exception>
+        /// <exception cref="UserNotExistException">Thrown when one of the user to change does not exist.</exception>
+        /// <remarks>
+        /// Operating on a username that is of bad format or does not exist always throws.
+        /// Add a user that already is a member has no effects.
+        /// Remove a user that is not a member also has not effects.
+        /// Add and remove an identical user results in no effects.
+        /// More than one same usernames are regarded as one.
+        /// </remarks>
+        Task ChangeMember(string timelineName, IList<string>? membersToAdd, IList<string>? membersToRemove);
+
+        /// <summary>
+        /// Check whether a user can manage(change timeline info, member, ...) a timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="userId">The id of the user to check on.</param>
+        /// <returns>True if the user can manage the timeline, otherwise false.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <remarks>
+        /// This method does not check whether visitor is administrator.
+        /// Return false if user with user id does not exist.
+        /// </remarks>
+        Task<bool> HasManagePermission(string timelineName, long userId);
+
+        /// <summary>
+        /// Verify whether a visitor has the permission to read a timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="visitorId">The id of the user to check on. Null means visitor without account.</param>
+        /// <returns>True if can read, false if can't read.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <remarks>
+        /// This method does not check whether visitor is administrator.
+        /// Return false if user with visitor id does not exist.
+        /// </remarks>
+        Task<bool> HasReadPermission(string timelineName, long? visitorId);
+
+        /// <summary>
+        /// Verify whether a user has the permission to modify a post.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="postId">The id of the post.</param>
+        /// <param name="modifierId">The id of the user to check on.</param>
+        /// <param name="throwOnPostNotExist">True if you want it to throw <see cref="TimelinePostNotExistException"/>. Default false.</param>
+        /// <returns>True if can modify, false if can't modify.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <exception cref="TimelinePostNotExistException">Thrown when the post with given id does not exist or is deleted already and <paramref name="throwOnPostNotExist"/> is true.</exception>
+        /// <remarks>
+        /// Unless <paramref name="throwOnPostNotExist"/> is true, this method should return true if the post does not exist.
+        /// If the post is deleted, its author info still exists, so it is checked as the post is not deleted unless <paramref name="throwOnPostNotExist"/> is true.
+        /// This method does not check whether the user is administrator.
+        /// It only checks whether he is the author of the post or the owner of the timeline.
+        /// Return false when user with modifier id does not exist.
+        /// </remarks>
+        Task<bool> HasPostModifyPermission(string timelineName, long postId, long modifierId, bool throwOnPostNotExist = false);
+
+        /// <summary>
+        /// Verify whether a user is member of a timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="userId">The id of user to check on.</param>
+        /// <returns>True if it is a member, false if not.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
+        /// <exception cref="TimelineNotExistException">
+        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
+        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
+        /// </exception>
+        /// <remarks>
+        /// Timeline owner is also considered as a member.
+        /// Return false when user with user id does not exist.
+        /// </remarks>
+        Task<bool> IsMemberOf(string timelineName, long userId);
+
+        /// <summary>
+        /// Get all timelines including personal and ordinary timelines.
+        /// </summary>
+        /// <param name="relate">Filter timelines related (own or is a member) to specific user.</param>
+        /// <param name="visibility">Filter timelines with given visibility. If null or empty, all visibilities are returned. Duplicate value are ignored.</param>
+        /// <returns>The list of timelines.</returns>
+        /// <remarks>
+        /// If user with related user id does not exist, empty list will be returned.
+        /// </remarks>
+        Task<List<Models.Timeline>> GetTimelines(TimelineUserRelationship? relate = null, List<TimelineVisibility>? visibility = null);
+
+        /// <summary>
+        /// Create a timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline.</param>
+        /// <param name="ownerId">The id of owner of the timeline.</param>
+        /// <returns>The info of the new timeline.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when timeline name is invalid.</exception>
+        /// <exception cref="EntityAlreadyExistException">Thrown when the timeline already exists.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the owner user does not exist.</exception>
+        Task<Models.Timeline> CreateTimeline(string timelineName, long ownerId);
+
+        /// <summary>
+        /// Delete a timeline.
+        /// </summary>
+        /// <param name="timelineName">The name of the timeline to delete.</param>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when timeline name is invalid.</exception>
+        /// <exception cref="TimelineNotExistException">Thrown when the timeline does not exist.</exception>
+        Task DeleteTimeline(string timelineName);
+
+        /// <summary>
+        /// Change name of a timeline.
+        /// </summary>
+        /// <param name="oldTimelineName">The old timeline name.</param>
+        /// <param name="newTimelineName">The new timeline name.</param>
+        /// <returns>The new timeline info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="oldTimelineName"/> or <paramref name="newTimelineName"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="oldTimelineName"/> or <paramref name="newTimelineName"/> is of invalid format.</exception>
+        /// <exception cref="TimelineNotExistException">Thrown when timeline does not exist.</exception>
+        /// <exception cref="EntityAlreadyExistException">Thrown when a timeline with new name already exists.</exception>
+        /// <remarks>
+        /// You can only change name of general timeline.
+        /// </remarks>
+        Task<Models.Timeline> ChangeTimelineName(string oldTimelineName, string newTimelineName);
+    }
+
+    public class TimelineService : ITimelineService
+    {
+        public TimelineService(ILogger<TimelineService> logger, DatabaseContext database, IDataManager dataManager, IUserService userService, IImageValidator imageValidator, IClock clock)
+        {
+            _logger = logger;
+            _database = database;
+            _dataManager = dataManager;
+            _userService = userService;
+            _imageValidator = imageValidator;
+            _clock = clock;
+        }
+
+        private readonly ILogger<TimelineService> _logger;
+
+        private readonly DatabaseContext _database;
+
+        private readonly IDataManager _dataManager;
+
+        private readonly IUserService _userService;
+
+        private readonly IImageValidator _imageValidator;
+
+        private readonly IClock _clock;
+
+        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
+
+        private readonly TimelineNameValidator _timelineNameValidator = new TimelineNameValidator();
+
+        private void ValidateTimelineName(string name, string paramName)
+        {
+            if (!_timelineNameValidator.Validate(name, out var message))
+            {
+                throw new ArgumentException(ExceptionTimelineNameBadFormat.AppendAdditionalMessage(message), paramName);
+            }
+        }
+
+        /// Remember to include Members when query.
+        private async Task<Models.Timeline> MapTimelineFromEntity(TimelineEntity entity)
+        {
+            var owner = await _userService.GetUserById(entity.OwnerId);
+
+            var members = new List<User>();
+            foreach (var memberEntity in entity.Members)
+            {
+                members.Add(await _userService.GetUserById(memberEntity.UserId));
+            }
+
+            var name = entity.Name ?? ("@" + owner.Username);
+
+            return new Models.Timeline
+            {
+                UniqueID = entity.UniqueId,
+                Name = name,
+                NameLastModified = entity.NameLastModified,
+                Title = string.IsNullOrEmpty(entity.Title) ? name : entity.Title,
+                Description = entity.Description ?? "",
+                Owner = owner,
+                Visibility = entity.Visibility,
+                Members = members,
+                CreateTime = entity.CreateTime,
+                LastModified = entity.LastModified
+            };
+        }
+
+        private async Task<TimelinePost> MapTimelinePostFromEntity(TimelinePostEntity entity, string timelineName)
+        {
+            User? author = entity.AuthorId.HasValue ? await _userService.GetUserById(entity.AuthorId.Value) : null;
+
+            ITimelinePostContent? content = null;
+
+            if (entity.Content != null)
+            {
+                var type = entity.ContentType;
+
+                content = type switch
+                {
+                    TimelinePostContentTypes.Text => new TextTimelinePostContent(entity.Content),
+                    TimelinePostContentTypes.Image => new ImageTimelinePostContent(entity.Content),
+                    _ => throw new DatabaseCorruptedException(string.Format(CultureInfo.InvariantCulture, ExceptionDatabaseUnknownContentType, type))
+                };
+            }
+
+            return new TimelinePost(
+                    id: entity.LocalId,
+                    author: author,
+                    content: content,
+                    time: entity.Time,
+                    lastUpdated: entity.LastUpdated,
+                    timelineName: timelineName
+                );
+        }
+
+        private TimelineEntity CreateNewTimelineEntity(string? name, long ownerId)
+        {
+            var currentTime = _clock.GetCurrentTime();
+
+            return new TimelineEntity
+            {
+                Name = name,
+                NameLastModified = currentTime,
+                OwnerId = ownerId,
+                Visibility = TimelineVisibility.Register,
+                CreateTime = currentTime,
+                LastModified = currentTime,
+                CurrentPostLocalId = 0,
+                Members = new List<TimelineMemberEntity>()
+            };
+        }
+
+
+
+        // Get timeline id by name. If it is a personal timeline and it does not exist, it will be created.
+        //
+        // This method will check the name format and if it is invalid, ArgumentException is thrown.
+        //
+        // For personal timeline, if the user does not exist, TimelineNotExistException will be thrown with UserNotExistException as inner exception.
+        // For ordinary timeline, if the timeline does not exist, TimelineNotExistException will be thrown.
+        //
+        // It follows all timeline-related function common interface contracts.
+        private async Task<long> FindTimelineId(string timelineName)
+        {
+            timelineName = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
+
+            if (isPersonal)
+            {
+                long userId;
+                try
+                {
+                    userId = await _userService.GetUserIdByUsername(timelineName);
+                }
+                catch (ArgumentException e)
+                {
+                    throw new ArgumentException(ExceptionFindTimelineUsernameBadFormat, nameof(timelineName), e);
+                }
+                catch (UserNotExistException e)
+                {
+                    throw new TimelineNotExistException(timelineName, e);
+                }
+
+                var timelineEntity = await _database.Timelines.Where(t => t.OwnerId == userId && t.Name == null).Select(t => new { t.Id }).SingleOrDefaultAsync();
+
+                if (timelineEntity != null)
+                {
+                    return timelineEntity.Id;
+                }
+                else
+                {
+                    var newTimelineEntity = CreateNewTimelineEntity(null, userId);
+                    _database.Timelines.Add(newTimelineEntity);
+                    await _database.SaveChangesAsync();
+
+                    return newTimelineEntity.Id;
+                }
+            }
+            else
+            {
+                if (timelineName == null)
+                    throw new ArgumentNullException(nameof(timelineName));
+
+                ValidateTimelineName(timelineName, nameof(timelineName));
+
+                var timelineEntity = await _database.Timelines.Where(t => t.Name == timelineName).Select(t => new { t.Id }).SingleOrDefaultAsync();
+
+                if (timelineEntity == null)
+                {
+                    throw new TimelineNotExistException(timelineName);
+                }
+                else
+                {
+                    return timelineEntity.Id;
+                }
+            }
+        }
+
+        public async Task<DateTime> GetTimelineLastModifiedTime(string timelineName)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.LastModified }).SingleAsync();
+
+            return timelineEntity.LastModified;
+        }
+
+        public async Task<string> GetTimelineUniqueId(string timelineName)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.UniqueId }).SingleAsync();
+
+            return timelineEntity.UniqueId;
+        }
+
+        public async Task<Models.Timeline> GetTimeline(string timelineName)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Include(t => t.Members).SingleAsync();
+
+            return await MapTimelineFromEntity(timelineEntity);
+        }
+
+        public async Task<List<TimelinePost>> GetPosts(string timelineName, DateTime? modifiedSince = null, bool includeDeleted = false)
+        {
+            modifiedSince = modifiedSince?.MyToUtc();
+
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+            IQueryable<TimelinePostEntity> query = _database.TimelinePosts.Where(p => p.TimelineId == timelineId);
+
+            if (!includeDeleted)
+            {
+                query = query.Where(p => p.Content != null);
+            }
+
+            if (modifiedSince.HasValue)
+            {
+                query = query.Include(p => p.Author).Where(p => p.LastUpdated >= modifiedSince || (p.Author != null && p.Author.UsernameChangeTime >= modifiedSince));
+            }
+
+            query = query.OrderBy(p => p.Time);
+
+            var postEntities = await query.ToListAsync();
+
+            var posts = new List<TimelinePost>();
+            foreach (var entity in postEntities)
+            {
+                posts.Add(await MapTimelinePostFromEntity(entity, timelineName));
+            }
+            return posts;
+        }
+
+        public async Task<string> GetPostDataETag(string timelineName, long postId)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var postEntity = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == postId).SingleOrDefaultAsync();
+
+            if (postEntity == null)
+                throw new TimelinePostNotExistException(timelineName, postId, false);
+
+            if (postEntity.Content == null)
+                throw new TimelinePostNotExistException(timelineName, postId, true);
+
+            if (postEntity.ContentType != TimelinePostContentTypes.Image)
+                throw new TimelinePostNoDataException(ExceptionGetDataNonImagePost);
+
+            var tag = postEntity.Content;
+
+            return tag;
+        }
+
+        public async Task<PostData> GetPostData(string timelineName, long postId)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+            var postEntity = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == postId).SingleOrDefaultAsync();
+
+            if (postEntity == null)
+                throw new TimelinePostNotExistException(timelineName, postId, false);
+
+            if (postEntity.Content == null)
+                throw new TimelinePostNotExistException(timelineName, postId, true);
+
+            if (postEntity.ContentType != TimelinePostContentTypes.Image)
+                throw new TimelinePostNoDataException(ExceptionGetDataNonImagePost);
+
+            var tag = postEntity.Content;
+
+            byte[] data;
+
+            try
+            {
+                data = await _dataManager.GetEntry(tag);
+            }
+            catch (InvalidOperationException e)
+            {
+                throw new DatabaseCorruptedException(ExceptionGetDataDataEntryNotExist, e);
+            }
+
+            if (postEntity.ExtraContent == null)
+            {
+                _logger.LogWarning(LogGetDataNoFormat);
+                var format = Image.DetectFormat(data);
+                postEntity.ExtraContent = format.DefaultMimeType;
+                await _database.SaveChangesAsync();
+            }
+
+            return new PostData
+            {
+                Data = data,
+                Type = postEntity.ExtraContent,
+                ETag = tag,
+                LastModified = postEntity.LastUpdated
+            };
+        }
+
+        public async Task<TimelinePost> CreateTextPost(string timelineName, long authorId, string text, DateTime? time)
+        {
+            time = time?.MyToUtc();
+
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+            if (text == null)
+                throw new ArgumentNullException(nameof(text));
+
+            var timelineId = await FindTimelineId(timelineName);
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
+
+            var author = await _userService.GetUserById(authorId);
+
+            var currentTime = _clock.GetCurrentTime();
+            var finalTime = time ?? currentTime;
+
+            timelineEntity.CurrentPostLocalId += 1;
+
+            var postEntity = new TimelinePostEntity
+            {
+                LocalId = timelineEntity.CurrentPostLocalId,
+                ContentType = TimelinePostContentTypes.Text,
+                Content = text,
+                AuthorId = authorId,
+                TimelineId = timelineId,
+                Time = finalTime,
+                LastUpdated = currentTime
+            };
+            _database.TimelinePosts.Add(postEntity);
+            await _database.SaveChangesAsync();
+
+
+            return new TimelinePost(
+                id: postEntity.LocalId,
+                content: new TextTimelinePostContent(text),
+                time: finalTime,
+                author: author,
+                lastUpdated: currentTime,
+                timelineName: timelineName
+            );
+        }
+
+        public async Task<TimelinePost> CreateImagePost(string timelineName, long authorId, byte[] data, DateTime? time)
+        {
+            time = time?.MyToUtc();
+
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+            if (data == null)
+                throw new ArgumentNullException(nameof(data));
+
+            var timelineId = await FindTimelineId(timelineName);
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
+
+            var author = await _userService.GetUserById(authorId);
+
+            var imageFormat = await _imageValidator.Validate(data);
+
+            var imageFormatText = imageFormat.DefaultMimeType;
+
+            var tag = await _dataManager.RetainEntry(data);
+
+            var currentTime = _clock.GetCurrentTime();
+            var finalTime = time ?? currentTime;
+
+            timelineEntity.CurrentPostLocalId += 1;
+
+            var postEntity = new TimelinePostEntity
+            {
+                LocalId = timelineEntity.CurrentPostLocalId,
+                ContentType = TimelinePostContentTypes.Image,
+                Content = tag,
+                ExtraContent = imageFormatText,
+                AuthorId = authorId,
+                TimelineId = timelineId,
+                Time = finalTime,
+                LastUpdated = currentTime
+            };
+            _database.TimelinePosts.Add(postEntity);
+            await _database.SaveChangesAsync();
+
+            return new TimelinePost(
+                id: postEntity.LocalId,
+                content: new ImageTimelinePostContent(tag),
+                time: finalTime,
+                author: author,
+                lastUpdated: currentTime,
+                timelineName: timelineName
+            );
+        }
+
+        public async Task DeletePost(string timelineName, long id)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var post = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == id).SingleOrDefaultAsync();
+
+            if (post == null)
+                throw new TimelinePostNotExistException(timelineName, id, false);
+
+            if (post.Content == null)
+                throw new TimelinePostNotExistException(timelineName, id, true);
+
+            string? dataTag = null;
+
+            if (post.ContentType == TimelinePostContentTypes.Image)
+            {
+                dataTag = post.Content;
+            }
+
+            post.Content = null;
+            post.LastUpdated = _clock.GetCurrentTime();
+
+            await _database.SaveChangesAsync();
+
+            if (dataTag != null)
+            {
+                await _dataManager.FreeEntry(dataTag);
+            }
+        }
+
+        public async Task DeleteAllPostsOfUser(long userId)
+        {
+            var posts = await _database.TimelinePosts.Where(p => p.AuthorId == userId).ToListAsync();
+
+            var now = _clock.GetCurrentTime();
+
+            var dataTags = new List<string>();
+
+            foreach (var post in posts)
+            {
+                if (post.Content != null)
+                {
+                    if (post.ContentType == TimelinePostContentTypes.Image)
+                    {
+                        dataTags.Add(post.Content);
+                    }
+                    post.Content = null;
+                }
+                post.LastUpdated = now;
+            }
+
+            await _database.SaveChangesAsync();
+
+            foreach (var dataTag in dataTags)
+            {
+                await _dataManager.FreeEntry(dataTag);
+            }
+        }
+
+        public async Task ChangeProperty(string timelineName, TimelineChangePropertyRequest newProperties)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+            if (newProperties == null)
+                throw new ArgumentNullException(nameof(newProperties));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
+
+            var changed = false;
+
+            if (newProperties.Title != null)
+            {
+                changed = true;
+                timelineEntity.Title = newProperties.Title;
+            }
+
+            if (newProperties.Description != null)
+            {
+                changed = true;
+                timelineEntity.Description = newProperties.Description;
+            }
+
+            if (newProperties.Visibility.HasValue)
+            {
+                changed = true;
+                timelineEntity.Visibility = newProperties.Visibility.Value;
+            }
+
+            if (changed)
+            {
+                var currentTime = _clock.GetCurrentTime();
+                timelineEntity.LastModified = currentTime;
+            }
+
+            await _database.SaveChangesAsync();
+        }
+
+        public async Task ChangeMember(string timelineName, IList<string>? add, IList<string>? remove)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            List<string>? RemoveDuplicateAndCheckFormat(IList<string>? list, string paramName)
+            {
+                if (list != null)
+                {
+                    List<string> result = new List<string>();
+                    var count = list.Count;
+                    for (var index = 0; index < count; index++)
+                    {
+                        var username = list[index];
+                        if (result.Contains(username))
+                        {
+                            continue;
+                        }
+                        var (validationResult, message) = _usernameValidator.Validate(username);
+                        if (!validationResult)
+                            throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionChangeMemberUsernameBadFormat, index), nameof(paramName));
+                        result.Add(username);
+                    }
+                    return result;
+                }
+                else
+                {
+                    return null;
+                }
+            }
+            var simplifiedAdd = RemoveDuplicateAndCheckFormat(add, nameof(add));
+            var simplifiedRemove = RemoveDuplicateAndCheckFormat(remove, nameof(remove));
+
+            // remove those both in add and remove
+            if (simplifiedAdd != null && simplifiedRemove != null)
+            {
+                var usersToClean = simplifiedRemove.Where(u => simplifiedAdd.Contains(u)).ToList();
+                foreach (var u in usersToClean)
+                {
+                    simplifiedAdd.Remove(u);
+                    simplifiedRemove.Remove(u);
+                }
+
+                if (simplifiedAdd.Count == 0)
+                    simplifiedAdd = null;
+
+                if (simplifiedRemove.Count == 0)
+                    simplifiedRemove = null;
+            }
+
+            if (simplifiedAdd == null && simplifiedRemove == null)
+                return;
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            async Task<List<long>?> CheckExistenceAndGetId(List<string>? list)
+            {
+                if (list == null)
+                    return null;
+
+                List<long> result = new List<long>();
+                foreach (var username in list)
+                {
+                    result.Add(await _userService.GetUserIdByUsername(username));
+                }
+                return result;
+            }
+            var userIdsAdd = await CheckExistenceAndGetId(simplifiedAdd);
+            var userIdsRemove = await CheckExistenceAndGetId(simplifiedRemove);
+
+            if (userIdsAdd != null)
+            {
+                var membersToAdd = userIdsAdd.Select(id => new TimelineMemberEntity { UserId = id, TimelineId = timelineId }).ToList();
+                _database.TimelineMembers.AddRange(membersToAdd);
+            }
+
+            if (userIdsRemove != null)
+            {
+                var membersToRemove = await _database.TimelineMembers.Where(m => m.TimelineId == timelineId && userIdsRemove.Contains(m.UserId)).ToListAsync();
+                _database.TimelineMembers.RemoveRange(membersToRemove);
+            }
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
+            timelineEntity.LastModified = _clock.GetCurrentTime();
+
+            await _database.SaveChangesAsync();
+        }
+
+        public async Task<bool> HasManagePermission(string timelineName, long userId)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
+
+            return userId == timelineEntity.OwnerId;
+        }
+
+        public async Task<bool> HasReadPermission(string timelineName, long? visitorId)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.Visibility }).SingleAsync();
+
+            if (timelineEntity.Visibility == TimelineVisibility.Public)
+                return true;
+
+            if (timelineEntity.Visibility == TimelineVisibility.Register && visitorId != null)
+                return true;
+
+            if (visitorId == null)
+            {
+                return false;
+            }
+            else
+            {
+                var memberEntity = await _database.TimelineMembers.Where(m => m.UserId == visitorId && m.TimelineId == timelineId).SingleOrDefaultAsync();
+                return memberEntity != null;
+            }
+        }
+
+        public async Task<bool> HasPostModifyPermission(string timelineName, long postId, long modifierId, bool throwOnPostNotExist = false)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
+
+            var postEntity = await _database.TimelinePosts.Where(p => p.Id == postId).Select(p => new { p.Content, p.AuthorId }).SingleOrDefaultAsync();
+
+            if (postEntity == null)
+            {
+                if (throwOnPostNotExist)
+                    throw new TimelinePostNotExistException(timelineName, postId, false);
+                else
+                    return true;
+            }
+
+            if (postEntity.Content == null && throwOnPostNotExist)
+            {
+                throw new TimelinePostNotExistException(timelineName, postId, true);
+            }
+
+            return timelineEntity.OwnerId == modifierId || postEntity.AuthorId == modifierId;
+        }
+
+        public async Task<bool> IsMemberOf(string timelineName, long userId)
+        {
+            if (timelineName == null)
+                throw new ArgumentNullException(nameof(timelineName));
+
+            var timelineId = await FindTimelineId(timelineName);
+
+            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
+
+            if (userId == timelineEntity.OwnerId)
+                return true;
+
+            return await _database.TimelineMembers.AnyAsync(m => m.TimelineId == timelineId && m.UserId == userId);
+        }
+
+        public async Task<List<Models.Timeline>> GetTimelines(TimelineUserRelationship? relate = null, List<TimelineVisibility>? visibility = null)
+        {
+            List<TimelineEntity> entities;
+
+            IQueryable<TimelineEntity> ApplyTimelineVisibilityFilter(IQueryable<TimelineEntity> query)
+            {
+                if (visibility != null && visibility.Count != 0)
+                {
+                    return query.Where(t => visibility.Contains(t.Visibility));
+                }
+                return query;
+            }
+
+            bool allVisibilities = visibility == null || visibility.Count == 0;
+
+            if (relate == null)
+            {
+                entities = await ApplyTimelineVisibilityFilter(_database.Timelines).Include(t => t.Members).ToListAsync();
+            }
+            else
+            {
+                entities = new List<TimelineEntity>();
+
+                if ((relate.Type & TimelineUserRelationshipType.Own) != 0)
+                {
+                    entities.AddRange(await ApplyTimelineVisibilityFilter(_database.Timelines.Where(t => t.OwnerId == relate.UserId)).Include(t => t.Members).ToListAsync());
+                }
+
+                if ((relate.Type & TimelineUserRelationshipType.Join) != 0)
+                {
+                    entities.AddRange(await ApplyTimelineVisibilityFilter(_database.TimelineMembers.Where(m => m.UserId == relate.UserId).Include(m => m.Timeline).ThenInclude(t => t.Members).Select(m => m.Timeline)).ToListAsync());
+                }
+            }
+
+            var result = new List<Models.Timeline>();
+
+            foreach (var entity in entities)
+            {
+                result.Add(await MapTimelineFromEntity(entity));
+            }
+
+            return result;
+        }
+
+        public async Task<Models.Timeline> CreateTimeline(string name, long owner)
+        {
+            if (name == null)
+                throw new ArgumentNullException(nameof(name));
+
+            ValidateTimelineName(name, nameof(name));
+
+            var user = await _userService.GetUserById(owner);
+
+            var conflict = await _database.Timelines.AnyAsync(t => t.Name == name);
+
+            if (conflict)
+                throw new EntityAlreadyExistException(EntityNames.Timeline, null, ExceptionTimelineNameConflict);
+
+            var newEntity = CreateNewTimelineEntity(name, user.Id!.Value);
+
+            _database.Timelines.Add(newEntity);
+            await _database.SaveChangesAsync();
+
+            return await MapTimelineFromEntity(newEntity);
+        }
+
+        public async Task DeleteTimeline(string name)
+        {
+            if (name == null)
+                throw new ArgumentNullException(nameof(name));
+
+            ValidateTimelineName(name, nameof(name));
+
+            var entity = await _database.Timelines.Where(t => t.Name == name).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new TimelineNotExistException(name);
+
+            _database.Timelines.Remove(entity);
+            await _database.SaveChangesAsync();
+        }
+
+        public async Task<Models.Timeline> ChangeTimelineName(string oldTimelineName, string newTimelineName)
+        {
+            if (oldTimelineName == null)
+                throw new ArgumentNullException(nameof(oldTimelineName));
+            if (newTimelineName == null)
+                throw new ArgumentNullException(nameof(newTimelineName));
+
+            ValidateTimelineName(oldTimelineName, nameof(oldTimelineName));
+            ValidateTimelineName(newTimelineName, nameof(newTimelineName));
+
+            var entity = await _database.Timelines.Include(t => t.Members).Where(t => t.Name == oldTimelineName).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new TimelineNotExistException(oldTimelineName);
+
+            if (oldTimelineName == newTimelineName)
+                return await MapTimelineFromEntity(entity);
+
+            var conflict = await _database.Timelines.AnyAsync(t => t.Name == newTimelineName);
+
+            if (conflict)
+                throw new EntityAlreadyExistException(EntityNames.Timeline, null, ExceptionTimelineNameConflict);
+
+            var now = _clock.GetCurrentTime();
+
+            entity.Name = newTimelineName;
+            entity.NameLastModified = now;
+            entity.LastModified = now;
+
+            await _database.SaveChangesAsync();
+
+            return await MapTimelineFromEntity(entity);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserAvatarService.cs b/BackEnd/Timeline/Services/UserAvatarService.cs
new file mode 100644
index 00000000..b41c45fd
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserAvatarService.cs
@@ -0,0 +1,265 @@
+﻿using Microsoft.AspNetCore.Hosting;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using System;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Helpers;
+using Timeline.Services.Exceptions;
+
+namespace Timeline.Services
+{
+    public class Avatar
+    {
+        public string Type { get; set; } = default!;
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "DTO Object")]
+        public byte[] Data { get; set; } = default!;
+    }
+
+    public class AvatarInfo
+    {
+        public Avatar Avatar { get; set; } = default!;
+        public DateTime LastModified { get; set; }
+
+        public CacheableData ToCacheableData()
+        {
+            return new CacheableData(Avatar.Type, Avatar.Data, LastModified);
+        }
+    }
+
+    /// <summary>
+    /// Provider for default user avatar.
+    /// </summary>
+    /// <remarks>
+    /// Mainly for unit tests.
+    /// </remarks>
+    public interface IDefaultUserAvatarProvider
+    {
+        /// <summary>
+        /// Get the etag of default avatar.
+        /// </summary>
+        /// <returns></returns>
+        Task<string> GetDefaultAvatarETag();
+
+        /// <summary>
+        /// Get the default avatar.
+        /// </summary>
+        Task<AvatarInfo> GetDefaultAvatar();
+    }
+
+    public interface IUserAvatarService
+    {
+        /// <summary>
+        /// Get the etag of a user's avatar. Warning: This method does not check the user existence.
+        /// </summary>
+        /// <param name="id">The id of the user to get avatar etag of.</param>
+        /// <returns>The etag.</returns>
+        Task<string> GetAvatarETag(long id);
+
+        /// <summary>
+        /// Get avatar of a user. If the user has no avatar set, a default one is returned. Warning: This method does not check the user existence.
+        /// </summary>
+        /// <param name="id">The id of the user to get avatar of.</param>
+        /// <returns>The avatar info.</returns>
+        Task<AvatarInfo> GetAvatar(long id);
+
+        /// <summary>
+        /// Set avatar for a user. Warning: This method does not check the user existence.
+        /// </summary>
+        /// <param name="id">The id of the user to set avatar for.</param>
+        /// <param name="avatar">The avatar. Can be null to delete the saved avatar.</param>
+        /// <returns>The etag of the avatar.</returns>
+        /// <exception cref="ArgumentException">Thrown if any field in <paramref name="avatar"/> is null when <paramref name="avatar"/> is not null.</exception>
+        /// <exception cref="ImageException">Thrown if avatar is of bad format.</exception>
+        Task<string> SetAvatar(long id, Avatar? avatar);
+    }
+
+    // TODO! : Make this configurable.
+    public class DefaultUserAvatarProvider : IDefaultUserAvatarProvider
+    {
+        private readonly IETagGenerator _eTagGenerator;
+
+        private readonly string _avatarPath;
+
+        private byte[] _cacheData = default!;
+        private DateTime _cacheLastModified;
+        private string _cacheETag = default!;
+
+        public DefaultUserAvatarProvider(IWebHostEnvironment environment, IETagGenerator eTagGenerator)
+        {
+            _avatarPath = Path.Combine(environment.ContentRootPath, "default-avatar.png");
+            _eTagGenerator = eTagGenerator;
+        }
+
+        private async Task CheckAndInit()
+        {
+            var path = _avatarPath;
+            if (_cacheData == null || File.GetLastWriteTime(path) > _cacheLastModified)
+            {
+                _cacheData = await File.ReadAllBytesAsync(path);
+                _cacheLastModified = File.GetLastWriteTime(path);
+                _cacheETag = await _eTagGenerator.Generate(_cacheData);
+            }
+        }
+
+        public async Task<string> GetDefaultAvatarETag()
+        {
+            await CheckAndInit();
+            return _cacheETag;
+        }
+
+        public async Task<AvatarInfo> GetDefaultAvatar()
+        {
+            await CheckAndInit();
+            return new AvatarInfo
+            {
+                Avatar = new Avatar
+                {
+                    Type = "image/png",
+                    Data = _cacheData
+                },
+                LastModified = _cacheLastModified
+            };
+        }
+    }
+
+    public class UserAvatarService : IUserAvatarService
+    {
+
+        private readonly ILogger<UserAvatarService> _logger;
+
+        private readonly DatabaseContext _database;
+
+        private readonly IDefaultUserAvatarProvider _defaultUserAvatarProvider;
+
+        private readonly IImageValidator _imageValidator;
+
+        private readonly IDataManager _dataManager;
+
+        private readonly IClock _clock;
+
+        public UserAvatarService(
+            ILogger<UserAvatarService> logger,
+            DatabaseContext database,
+            IDefaultUserAvatarProvider defaultUserAvatarProvider,
+            IImageValidator imageValidator,
+            IDataManager dataManager,
+            IClock clock)
+        {
+            _logger = logger;
+            _database = database;
+            _defaultUserAvatarProvider = defaultUserAvatarProvider;
+            _imageValidator = imageValidator;
+            _dataManager = dataManager;
+            _clock = clock;
+        }
+
+        public async Task<string> GetAvatarETag(long id)
+        {
+            var eTag = (await _database.UserAvatars.Where(a => a.UserId == id).Select(a => new { a.DataTag }).SingleOrDefaultAsync())?.DataTag;
+            if (eTag == null)
+                return await _defaultUserAvatarProvider.GetDefaultAvatarETag();
+            else
+                return eTag;
+        }
+
+        public async Task<AvatarInfo> GetAvatar(long id)
+        {
+            var avatarEntity = await _database.UserAvatars.Where(a => a.UserId == id).Select(a => new { a.Type, a.DataTag, a.LastModified }).SingleOrDefaultAsync();
+
+            if (avatarEntity != null)
+            {
+                if (!LanguageHelper.AreSame(avatarEntity.DataTag == null, avatarEntity.Type == null))
+                {
+                    var message = Resources.Services.UserAvatarService.ExceptionDatabaseCorruptedDataAndTypeNotSame;
+                    _logger.LogCritical(message);
+                    throw new DatabaseCorruptedException(message);
+                }
+
+
+                if (avatarEntity.DataTag != null)
+                {
+                    var data = await _dataManager.GetEntry(avatarEntity.DataTag);
+                    return new AvatarInfo
+                    {
+                        Avatar = new Avatar
+                        {
+                            Type = avatarEntity.Type!,
+                            Data = data
+                        },
+                        LastModified = avatarEntity.LastModified
+                    };
+                }
+            }
+            var defaultAvatar = await _defaultUserAvatarProvider.GetDefaultAvatar();
+            if (avatarEntity != null)
+                defaultAvatar.LastModified = defaultAvatar.LastModified > avatarEntity.LastModified ? defaultAvatar.LastModified : avatarEntity.LastModified;
+            return defaultAvatar;
+        }
+
+        public async Task<string> SetAvatar(long id, Avatar? avatar)
+        {
+            if (avatar != null)
+            {
+                if (avatar.Data == null)
+                    throw new ArgumentException(Resources.Services.UserAvatarService.ExceptionAvatarDataNull, nameof(avatar));
+                if (string.IsNullOrEmpty(avatar.Type))
+                    throw new ArgumentException(Resources.Services.UserAvatarService.ExceptionAvatarTypeNullOrEmpty, nameof(avatar));
+            }
+
+            var avatarEntity = await _database.UserAvatars.Where(a => a.UserId == id).SingleOrDefaultAsync();
+
+            if (avatar == null)
+            {
+                if (avatarEntity != null && avatarEntity.DataTag != null)
+                {
+                    await _dataManager.FreeEntry(avatarEntity.DataTag);
+                    avatarEntity.DataTag = null;
+                    avatarEntity.Type = null;
+                    avatarEntity.LastModified = _clock.GetCurrentTime();
+                    await _database.SaveChangesAsync();
+                    _logger.LogInformation(Resources.Services.UserAvatarService.LogUpdateEntity);
+                }
+                return await _defaultUserAvatarProvider.GetDefaultAvatarETag();
+            }
+            else
+            {
+                await _imageValidator.Validate(avatar.Data, avatar.Type, true);
+                var tag = await _dataManager.RetainEntry(avatar.Data);
+                var oldTag = avatarEntity?.DataTag;
+                var create = avatarEntity == null;
+                if (avatarEntity == null)
+                {
+                    avatarEntity = new UserAvatarEntity();
+                    _database.UserAvatars.Add(avatarEntity);
+                }
+                avatarEntity.DataTag = tag;
+                avatarEntity.Type = avatar.Type;
+                avatarEntity.LastModified = _clock.GetCurrentTime();
+                avatarEntity.UserId = id;
+                await _database.SaveChangesAsync();
+                _logger.LogInformation(create ?
+                    Resources.Services.UserAvatarService.LogCreateEntity
+                    : Resources.Services.UserAvatarService.LogUpdateEntity);
+                if (oldTag != null)
+                {
+                    await _dataManager.FreeEntry(oldTag);
+                }
+
+                return avatarEntity.DataTag;
+            }
+        }
+    }
+
+    public static class UserAvatarServiceCollectionExtensions
+    {
+        public static void AddUserAvatarService(this IServiceCollection services)
+        {
+            services.AddScoped<IUserAvatarService, UserAvatarService>();
+            services.AddScoped<IDefaultUserAvatarProvider, DefaultUserAvatarProvider>();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserDeleteService.cs b/BackEnd/Timeline/Services/UserDeleteService.cs
new file mode 100644
index 00000000..845de573
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserDeleteService.cs
@@ -0,0 +1,69 @@
+﻿using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Helpers;
+using Timeline.Models.Validation;
+using static Timeline.Resources.Services.UserService;
+
+namespace Timeline.Services
+{
+    public interface IUserDeleteService
+    {
+        /// <summary>
+        /// Delete a user of given username.
+        /// </summary>
+        /// <param name="username">Username of the user to delete. Can't be null.</param>
+        /// <returns>True if user is deleted, false if user not exist.</returns>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="username"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
+        Task<bool> DeleteUser(string username);
+    }
+
+    public class UserDeleteService : IUserDeleteService
+    {
+        private readonly ILogger<UserDeleteService> _logger;
+
+        private readonly DatabaseContext _databaseContext;
+
+        private readonly ITimelineService _timelineService;
+
+        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
+
+        public UserDeleteService(ILogger<UserDeleteService> logger, DatabaseContext databaseContext, ITimelineService timelineService)
+        {
+            _logger = logger;
+            _databaseContext = databaseContext;
+            _timelineService = timelineService;
+        }
+
+        public async Task<bool> DeleteUser(string username)
+        {
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+
+            if (!_usernameValidator.Validate(username, out var message))
+            {
+                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionUsernameBadFormat, message), nameof(username));
+            }
+
+            var user = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
+            if (user == null)
+                return false;
+
+            await _timelineService.DeleteAllPostsOfUser(user.Id);
+
+            _databaseContext.Users.Remove(user);
+
+            await _databaseContext.SaveChangesAsync();
+            _logger.LogInformation(Log.Format(LogDatabaseRemove, ("Id", user.Id), ("Username", user.Username)));
+
+            return true;
+        }
+
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserRoleConvert.cs b/BackEnd/Timeline/Services/UserRoleConvert.cs
new file mode 100644
index 00000000..f27ee1bb
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserRoleConvert.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Timeline.Entities;
+
+namespace Timeline.Services
+{
+    public static class UserRoleConvert
+    {
+        public const string UserRole = UserRoles.User;
+        public const string AdminRole = UserRoles.Admin;
+
+        public static string[] ToArray(bool administrator)
+        {
+            return administrator ? new string[] { UserRole, AdminRole } : new string[] { UserRole };
+        }
+
+        public static string[] ToArray(string s)
+        {
+            return s.Split(',').ToArray();
+        }
+
+        public static bool ToBool(IReadOnlyCollection<string> roles)
+        {
+            return roles.Contains(AdminRole);
+        }
+
+        public static string ToString(IReadOnlyCollection<string> roles)
+        {
+            return string.Join(',', roles);
+        }
+
+        public static string ToString(bool administrator)
+        {
+            return administrator ? UserRole + "," + AdminRole : UserRole;
+        }
+
+        public static bool ToBool(string s)
+        {
+            return s.Contains("admin", StringComparison.InvariantCulture);
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserService.cs b/BackEnd/Timeline/Services/UserService.cs
new file mode 100644
index 00000000..821bc33d
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserService.cs
@@ -0,0 +1,437 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Globalization;
+using System.Linq;
+using System.Threading.Tasks;
+using Timeline.Entities;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Models.Validation;
+using Timeline.Services.Exceptions;
+using static Timeline.Resources.Services.UserService;
+
+namespace Timeline.Services
+{
+    public interface IUserService
+    {
+        /// <summary>
+        /// Try to verify the given username and password.
+        /// </summary>
+        /// <param name="username">The username of the user to verify.</param>
+        /// <param name="password">The password of the user to verify.</param>
+        /// <returns>The user info and auth info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> or <paramref name="password"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format or <paramref name="password"/> is empty.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
+        /// <exception cref="BadPasswordException">Thrown when password is wrong.</exception>
+        Task<User> VerifyCredential(string username, string password);
+
+        /// <summary>
+        /// Try to get a user by id.
+        /// </summary>
+        /// <param name="id">The id of the user.</param>
+        /// <returns>The user info.</returns>
+        /// <exception cref="UserNotExistException">Thrown when the user with given id does not exist.</exception>
+        Task<User> GetUserById(long id);
+
+        /// <summary>
+        /// Get the user info of given username.
+        /// </summary>
+        /// <param name="username">Username of the user.</param>
+        /// <returns>The info of the user.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
+        Task<User> GetUserByUsername(string username);
+
+        /// <summary>
+        /// Get the user id of given username.
+        /// </summary>
+        /// <param name="username">Username of the user.</param>
+        /// <returns>The id of the user.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
+        Task<long> GetUserIdByUsername(string username);
+
+        /// <summary>
+        /// List all users.
+        /// </summary>
+        /// <returns>The user info of users.</returns>
+        Task<User[]> GetUsers();
+
+        /// <summary>
+        /// Create a user with given info.
+        /// </summary>
+        /// <param name="info">The info of new user.</param>
+        /// <returns>The the new user.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="info"/>is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when some fields in <paramref name="info"/> is bad.</exception>
+        /// <exception cref="EntityAlreadyExistException">Thrown when a user with given username already exists.</exception>
+        /// <remarks>
+        /// <see cref="User.Username"/> must not be null and must be a valid username.
+        /// <see cref="User.Password"/> must not be null or empty.
+        /// <see cref="User.Administrator"/> is false by default (null).
+        /// <see cref="User.Nickname"/> must be a valid nickname if set. It is empty by default.
+        /// Other fields are ignored.
+        /// </remarks>
+        Task<User> CreateUser(User info);
+
+        /// <summary>
+        /// Modify a user's info.
+        /// </summary>
+        /// <param name="id">The id of the user.</param>
+        /// <param name="info">The new info. May be null.</param>
+        /// <returns>The new user info.</returns>
+        /// <exception cref="ArgumentException">Thrown when some fields in <paramref name="info"/> is bad.</exception>
+        /// <exception cref="UserNotExistException">Thrown when user with given id does not exist.</exception>
+        /// <remarks>
+        /// Only <see cref="User.Username"/>, <see cref="User.Administrator"/>, <see cref="User.Password"/> and <see cref="User.Nickname"/> will be used.
+        /// If null, then not change.
+        /// Other fields are ignored.
+        /// Version will increase if password is changed.
+        /// 
+        /// <see cref="User.Username"/> must be a valid username if set.
+        /// <see cref="User.Password"/> can't be empty if set.
+        /// <see cref="User.Nickname"/> must be a valid nickname if set.
+        /// 
+        /// </remarks>
+        /// <seealso cref="ModifyUser(string, User)"/>
+        Task<User> ModifyUser(long id, User? info);
+
+        /// <summary>
+        /// Modify a user's info.
+        /// </summary>
+        /// <param name="username">The username of the user.</param>
+        /// <param name="info">The new info. May be null.</param>
+        /// <returns>The new user info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format or some fields in <paramref name="info"/> is bad.</exception>
+        /// <exception cref="UserNotExistException">Thrown when user with given id does not exist.</exception>
+        /// <exception cref="EntityAlreadyExistException">Thrown when user with the newusername already exist.</exception>
+        /// <remarks>
+        /// Only <see cref="User.Administrator"/>, <see cref="User.Password"/> and <see cref="User.Nickname"/> will be used.
+        /// If null, then not change.
+        /// Other fields are ignored.
+        /// After modified, even if nothing is changed, version will increase.
+        /// 
+        /// <see cref="User.Username"/> must be a valid username if set.
+        /// <see cref="User.Password"/> can't be empty if set.
+        /// <see cref="User.Nickname"/> must be a valid nickname if set.
+        /// 
+        /// Note: Whether <see cref="User.Version"/> is set or not, version will increase and not set to the specified value if there is one.
+        /// </remarks>
+        /// <seealso cref="ModifyUser(long, User)"/>
+        Task<User> ModifyUser(string username, User? info);
+
+        /// <summary>
+        /// Try to change a user's password with old password.
+        /// </summary>
+        /// <param name="id">The id of user to change password of.</param>
+        /// <param name="oldPassword">Old password.</param>
+        /// <param name="newPassword">New password.</param>
+        /// <exception cref="ArgumentNullException">Thrown if <paramref name="oldPassword"/> or <paramref name="newPassword"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown if <paramref name="oldPassword"/> or <paramref name="newPassword"/> is empty.</exception>
+        /// <exception cref="UserNotExistException">Thrown if the user with given username does not exist.</exception>
+        /// <exception cref="BadPasswordException">Thrown if the old password is wrong.</exception>
+        Task ChangePassword(long id, string oldPassword, string newPassword);
+    }
+
+    public class UserService : IUserService
+    {
+        private readonly ILogger<UserService> _logger;
+        private readonly IClock _clock;
+
+        private readonly DatabaseContext _databaseContext;
+
+        private readonly IPasswordService _passwordService;
+
+        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
+        private readonly NicknameValidator _nicknameValidator = new NicknameValidator();
+        public UserService(ILogger<UserService> logger, DatabaseContext databaseContext, IPasswordService passwordService, IClock clock)
+        {
+            _logger = logger;
+            _clock = clock;
+            _databaseContext = databaseContext;
+            _passwordService = passwordService;
+        }
+
+        private void CheckUsernameFormat(string username, string? paramName)
+        {
+            if (!_usernameValidator.Validate(username, out var message))
+            {
+                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionUsernameBadFormat, message), paramName);
+            }
+        }
+
+        private static void CheckPasswordFormat(string password, string? paramName)
+        {
+            if (password.Length == 0)
+            {
+                throw new ArgumentException(ExceptionPasswordEmpty, paramName);
+            }
+        }
+
+        private void CheckNicknameFormat(string nickname, string? paramName)
+        {
+            if (!_nicknameValidator.Validate(nickname, out var message))
+            {
+                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionNicknameBadFormat, message), paramName);
+            }
+        }
+
+        private static void ThrowUsernameConflict()
+        {
+            throw new EntityAlreadyExistException(EntityNames.User, ExceptionUsernameConflict);
+        }
+
+        private static User CreateUserFromEntity(UserEntity entity)
+        {
+            return new User
+            {
+                UniqueId = entity.UniqueId,
+                Username = entity.Username,
+                Administrator = UserRoleConvert.ToBool(entity.Roles),
+                Nickname = string.IsNullOrEmpty(entity.Nickname) ? entity.Username : entity.Nickname,
+                Id = entity.Id,
+                Version = entity.Version,
+                CreateTime = entity.CreateTime,
+                UsernameChangeTime = entity.UsernameChangeTime,
+                LastModified = entity.LastModified
+            };
+        }
+
+        public async Task<User> VerifyCredential(string username, string password)
+        {
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+            if (password == null)
+                throw new ArgumentNullException(nameof(password));
+
+            CheckUsernameFormat(username, nameof(username));
+            CheckPasswordFormat(password, nameof(password));
+
+            var entity = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new UserNotExistException(username);
+
+            if (!_passwordService.VerifyPassword(entity.Password, password))
+                throw new BadPasswordException(password);
+
+            return CreateUserFromEntity(entity);
+        }
+
+        public async Task<User> GetUserById(long id)
+        {
+            var user = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
+
+            if (user == null)
+                throw new UserNotExistException(id);
+
+            return CreateUserFromEntity(user);
+        }
+
+        public async Task<User> GetUserByUsername(string username)
+        {
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+
+            CheckUsernameFormat(username, nameof(username));
+
+            var entity = await _databaseContext.Users.Where(user => user.Username == username).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new UserNotExistException(username);
+
+            return CreateUserFromEntity(entity);
+        }
+
+        public async Task<long> GetUserIdByUsername(string username)
+        {
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+
+            CheckUsernameFormat(username, nameof(username));
+
+            var entity = await _databaseContext.Users.Where(user => user.Username == username).Select(u => new { u.Id }).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new UserNotExistException(username);
+
+            return entity.Id;
+        }
+
+        public async Task<User[]> GetUsers()
+        {
+            var entities = await _databaseContext.Users.ToArrayAsync();
+            return entities.Select(user => CreateUserFromEntity(user)).ToArray();
+        }
+
+        public async Task<User> CreateUser(User info)
+        {
+            if (info == null)
+                throw new ArgumentNullException(nameof(info));
+
+            if (info.Username == null)
+                throw new ArgumentException(ExceptionUsernameNull, nameof(info));
+            CheckUsernameFormat(info.Username, nameof(info));
+
+            if (info.Password == null)
+                throw new ArgumentException(ExceptionPasswordNull, nameof(info));
+            CheckPasswordFormat(info.Password, nameof(info));
+
+            if (info.Nickname != null)
+                CheckNicknameFormat(info.Nickname, nameof(info));
+
+            var username = info.Username;
+
+            var conflict = await _databaseContext.Users.AnyAsync(u => u.Username == username);
+            if (conflict)
+                ThrowUsernameConflict();
+
+            var administrator = info.Administrator ?? false;
+            var password = info.Password;
+            var nickname = info.Nickname;
+
+            var newEntity = new UserEntity
+            {
+                Username = username,
+                Password = _passwordService.HashPassword(password),
+                Roles = UserRoleConvert.ToString(administrator),
+                Nickname = nickname,
+                Version = 1
+            };
+            _databaseContext.Users.Add(newEntity);
+            await _databaseContext.SaveChangesAsync();
+
+            _logger.LogInformation(Log.Format(LogDatabaseCreate,
+                ("Id", newEntity.Id), ("Username", username), ("Administrator", administrator)));
+
+            return CreateUserFromEntity(newEntity);
+        }
+
+        private void ValidateModifyUserInfo(User? info)
+        {
+            if (info != null)
+            {
+                if (info.Username != null)
+                    CheckUsernameFormat(info.Username, nameof(info));
+
+                if (info.Password != null)
+                    CheckPasswordFormat(info.Password, nameof(info));
+
+                if (info.Nickname != null)
+                    CheckNicknameFormat(info.Nickname, nameof(info));
+            }
+        }
+
+        private async Task UpdateUserEntity(UserEntity entity, User? info)
+        {
+            if (info != null)
+            {
+                var now = _clock.GetCurrentTime();
+                bool updateLastModified = false;
+
+                var username = info.Username;
+                if (username != null && username != entity.Username)
+                {
+                    var conflict = await _databaseContext.Users.AnyAsync(u => u.Username == username);
+                    if (conflict)
+                        ThrowUsernameConflict();
+
+                    entity.Username = username;
+                    entity.UsernameChangeTime = now;
+                    updateLastModified = true;
+                }
+
+                var password = info.Password;
+                if (password != null)
+                {
+                    entity.Password = _passwordService.HashPassword(password);
+                    entity.Version += 1;
+                }
+
+                var administrator = info.Administrator;
+                if (administrator.HasValue && UserRoleConvert.ToBool(entity.Roles) != administrator)
+                {
+                    entity.Roles = UserRoleConvert.ToString(administrator.Value);
+                    updateLastModified = true;
+                }
+
+                var nickname = info.Nickname;
+                if (nickname != null && nickname != entity.Nickname)
+                {
+                    entity.Nickname = nickname;
+                    updateLastModified = true;
+                }
+
+                if (updateLastModified)
+                {
+                    entity.LastModified = now;
+                }
+            }
+        }
+
+
+        public async Task<User> ModifyUser(long id, User? info)
+        {
+            ValidateModifyUserInfo(info);
+
+            var entity = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
+            if (entity == null)
+                throw new UserNotExistException(id);
+
+            await UpdateUserEntity(entity, info);
+
+            await _databaseContext.SaveChangesAsync();
+            _logger.LogInformation(LogDatabaseUpdate, ("Id", id));
+
+            return CreateUserFromEntity(entity);
+        }
+
+        public async Task<User> ModifyUser(string username, User? info)
+        {
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+            CheckUsernameFormat(username, nameof(username));
+
+            ValidateModifyUserInfo(info);
+
+            var entity = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
+            if (entity == null)
+                throw new UserNotExistException(username);
+
+            await UpdateUserEntity(entity, info);
+
+            await _databaseContext.SaveChangesAsync();
+            _logger.LogInformation(LogDatabaseUpdate, ("Username", username));
+
+            return CreateUserFromEntity(entity);
+        }
+
+        public async Task ChangePassword(long id, string oldPassword, string newPassword)
+        {
+            if (oldPassword == null)
+                throw new ArgumentNullException(nameof(oldPassword));
+            if (newPassword == null)
+                throw new ArgumentNullException(nameof(newPassword));
+            CheckPasswordFormat(oldPassword, nameof(oldPassword));
+            CheckPasswordFormat(newPassword, nameof(newPassword));
+
+            var entity = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
+
+            if (entity == null)
+                throw new UserNotExistException(id);
+
+            if (!_passwordService.VerifyPassword(entity.Password, oldPassword))
+                throw new BadPasswordException(oldPassword);
+
+            entity.Password = _passwordService.HashPassword(newPassword);
+            entity.Version += 1;
+            await _databaseContext.SaveChangesAsync();
+            _logger.LogInformation(Log.Format(LogDatabaseUpdate, ("Id", id), ("Operation", "Change password")));
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserTokenException.cs b/BackEnd/Timeline/Services/UserTokenException.cs
new file mode 100644
index 00000000..d25fabb3
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserTokenException.cs
@@ -0,0 +1,68 @@
+﻿using System;
+
+namespace Timeline.Services
+{
+
+    [Serializable]
+    public class UserTokenException : Exception
+    {
+        public UserTokenException() { }
+        public UserTokenException(string message) : base(message) { }
+        public UserTokenException(string message, Exception inner) : base(message, inner) { }
+        public UserTokenException(string token, string message) : base(message) { Token = token; }
+        public UserTokenException(string token, string message, Exception inner) : base(message, inner) { Token = token; }
+        protected UserTokenException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public string Token { get; private set; } = "";
+    }
+
+
+    [Serializable]
+    public class UserTokenTimeExpireException : UserTokenException
+    {
+        public UserTokenTimeExpireException() : base(Resources.Services.Exception.UserTokenTimeExpireException) { }
+        public UserTokenTimeExpireException(string message) : base(message) { }
+        public UserTokenTimeExpireException(string message, Exception inner) : base(message, inner) { }
+        public UserTokenTimeExpireException(string token, DateTime expireTime, DateTime verifyTime) : base(token, Resources.Services.Exception.UserTokenTimeExpireException) { ExpireTime = expireTime; VerifyTime = verifyTime; }
+        public UserTokenTimeExpireException(string token, DateTime expireTime, DateTime verifyTime, Exception inner) : base(token, Resources.Services.Exception.UserTokenTimeExpireException, inner) { ExpireTime = expireTime; VerifyTime = verifyTime; }
+        protected UserTokenTimeExpireException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public DateTime ExpireTime { get; private set; }
+
+        public DateTime VerifyTime { get; private set; }
+    }
+
+    [Serializable]
+    public class UserTokenBadVersionException : UserTokenException
+    {
+        public UserTokenBadVersionException() : base(Resources.Services.Exception.UserTokenBadVersionException) { }
+        public UserTokenBadVersionException(string message) : base(message) { }
+        public UserTokenBadVersionException(string message, Exception inner) : base(message, inner) { }
+        public UserTokenBadVersionException(string token, long tokenVersion, long requiredVersion) : base(token, Resources.Services.Exception.UserTokenBadVersionException) { TokenVersion = tokenVersion; RequiredVersion = requiredVersion; }
+        public UserTokenBadVersionException(string token, long tokenVersion, long requiredVersion, Exception inner) : base(token, Resources.Services.Exception.UserTokenBadVersionException, inner) { TokenVersion = tokenVersion; RequiredVersion = requiredVersion; }
+        protected UserTokenBadVersionException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+
+        public long TokenVersion { get; set; }
+
+        public long RequiredVersion { get; set; }
+    }
+
+    [Serializable]
+    public class UserTokenBadFormatException : UserTokenException
+    {
+        public UserTokenBadFormatException() : base(Resources.Services.Exception.UserTokenBadFormatException) { }
+        public UserTokenBadFormatException(string token) : base(token, Resources.Services.Exception.UserTokenBadFormatException) { }
+        public UserTokenBadFormatException(string token, string message) : base(token, message) { }
+        public UserTokenBadFormatException(string token, Exception inner) : base(token, Resources.Services.Exception.UserTokenBadFormatException, inner) { }
+        public UserTokenBadFormatException(string token, string message, Exception inner) : base(token, message, inner) { }
+        protected UserTokenBadFormatException(
+          System.Runtime.Serialization.SerializationInfo info,
+          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserTokenManager.cs b/BackEnd/Timeline/Services/UserTokenManager.cs
new file mode 100644
index 00000000..813dae67
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserTokenManager.cs
@@ -0,0 +1,97 @@
+﻿using Microsoft.Extensions.Logging;
+using System;
+using System.Threading.Tasks;
+using Timeline.Helpers;
+using Timeline.Models;
+using Timeline.Services.Exceptions;
+
+namespace Timeline.Services
+{
+    public class UserTokenCreateResult
+    {
+        public string Token { get; set; } = default!;
+        public User User { get; set; } = default!;
+    }
+
+    public interface IUserTokenManager
+    {
+        /// <summary>
+        /// Try to create a token for given username and password.
+        /// </summary>
+        /// <param name="username">The username.</param>
+        /// <param name="password">The password.</param>
+        /// <param name="expireAt">The expire time of the token.</param>
+        /// <returns>The created token and the user info.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> or <paramref name="password"/> is null.</exception>
+        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the user with <paramref name="username"/> does not exist.</exception>
+        /// <exception cref="BadPasswordException">Thrown when <paramref name="password"/> is wrong.</exception>
+        public Task<UserTokenCreateResult> CreateToken(string username, string password, DateTime? expireAt = null);
+
+        /// <summary>
+        /// Verify a token and get the saved user info. This also check the database for existence of the user.
+        /// </summary>
+        /// <param name="token">The token.</param>
+        /// <returns>The user stored in token.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="token"/> is null.</exception>
+        /// <exception cref="UserTokenTimeExpireException">Thrown when the token is expired.</exception>
+        /// <exception cref="UserTokenBadVersionException">Thrown when the token is of bad version.</exception>
+        /// <exception cref="UserTokenBadFormatException">Thrown when the token is of bad format.</exception>
+        /// <exception cref="UserNotExistException">Thrown when the user specified by the token does not exist. Usually the user had been deleted after the token was issued.</exception>
+        public Task<User> VerifyToken(string token);
+    }
+
+    public class UserTokenManager : IUserTokenManager
+    {
+        private readonly ILogger<UserTokenManager> _logger;
+        private readonly IUserService _userService;
+        private readonly IUserTokenService _userTokenService;
+        private readonly IClock _clock;
+
+        public UserTokenManager(ILogger<UserTokenManager> logger, IUserService userService, IUserTokenService userTokenService, IClock clock)
+        {
+            _logger = logger;
+            _userService = userService;
+            _userTokenService = userTokenService;
+            _clock = clock;
+        }
+
+        public async Task<UserTokenCreateResult> CreateToken(string username, string password, DateTime? expireAt = null)
+        {
+            expireAt = expireAt?.MyToUtc();
+
+            if (username == null)
+                throw new ArgumentNullException(nameof(username));
+            if (password == null)
+                throw new ArgumentNullException(nameof(password));
+
+            var user = await _userService.VerifyCredential(username, password);
+            var token = _userTokenService.GenerateToken(new UserTokenInfo { Id = user.Id!.Value, Version = user.Version!.Value, ExpireAt = expireAt });
+
+            return new UserTokenCreateResult { Token = token, User = user };
+        }
+
+
+        public async Task<User> VerifyToken(string token)
+        {
+            if (token == null)
+                throw new ArgumentNullException(nameof(token));
+
+            var tokenInfo = _userTokenService.VerifyToken(token);
+
+            if (tokenInfo.ExpireAt.HasValue)
+            {
+                var currentTime = _clock.GetCurrentTime();
+                if (tokenInfo.ExpireAt < currentTime)
+                    throw new UserTokenTimeExpireException(token, tokenInfo.ExpireAt.Value, currentTime);
+            }
+
+            var user = await _userService.GetUserById(tokenInfo.Id);
+
+            if (tokenInfo.Version < user.Version)
+                throw new UserTokenBadVersionException(token, tokenInfo.Version, user.Version.Value);
+
+            return user;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Services/UserTokenService.cs b/BackEnd/Timeline/Services/UserTokenService.cs
new file mode 100644
index 00000000..86f3a0f7
--- /dev/null
+++ b/BackEnd/Timeline/Services/UserTokenService.cs
@@ -0,0 +1,149 @@
+using Microsoft.Extensions.Options;
+using Microsoft.IdentityModel.Tokens;
+using System;
+using System.Globalization;
+using System.IdentityModel.Tokens.Jwt;
+using System.Linq;
+using System.Security.Claims;
+using Timeline.Configs;
+using Timeline.Entities;
+
+namespace Timeline.Services
+{
+    public class UserTokenInfo
+    {
+        public long Id { get; set; }
+        public long Version { get; set; }
+        public DateTime? ExpireAt { get; set; }
+    }
+
+    public interface IUserTokenService
+    {
+        /// <summary>
+        /// Create a token for a given token info.
+        /// </summary>
+        /// <param name="tokenInfo">The info to generate token.</param>
+        /// <returns>Return the generated token.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tokenInfo"/> is null.</exception>
+        string GenerateToken(UserTokenInfo tokenInfo);
+
+        /// <summary>
+        /// Verify a token and get the saved info.
+        /// </summary>
+        /// <param name="token">The token to verify.</param>
+        /// <returns>The saved info in token.</returns>
+        /// <exception cref="ArgumentNullException">Thrown when <paramref name="token"/> is null.</exception>
+        /// <exception cref="UserTokenBadFormatException">Thrown when the token is of bad format.</exception>
+        /// <remarks>
+        /// If this method throw <see cref="UserTokenBadFormatException"/>, it usually means the token is not created by this service.
+        /// </remarks>
+        UserTokenInfo VerifyToken(string token);
+    }
+
+    public class JwtUserTokenService : IUserTokenService
+    {
+        private const string VersionClaimType = "timeline_version";
+
+        private readonly IOptionsMonitor<JwtConfiguration> _jwtConfig;
+        private readonly IClock _clock;
+
+        private readonly JwtSecurityTokenHandler _tokenHandler = new JwtSecurityTokenHandler();
+        private SymmetricSecurityKey _tokenSecurityKey;
+
+        public JwtUserTokenService(IOptionsMonitor<JwtConfiguration> jwtConfig, IClock clock, DatabaseContext database)
+        {
+            _jwtConfig = jwtConfig;
+            _clock = clock;
+
+            var key = database.JwtToken.Select(t => t.Key).SingleOrDefault();
+
+            if (key == null)
+            {
+                throw new InvalidOperationException(Resources.Services.UserTokenService.JwtKeyNotExist);
+            }
+
+            _tokenSecurityKey = new SymmetricSecurityKey(key);
+        }
+
+        public string GenerateToken(UserTokenInfo tokenInfo)
+        {
+            if (tokenInfo == null)
+                throw new ArgumentNullException(nameof(tokenInfo));
+
+            var config = _jwtConfig.CurrentValue;
+
+            var identity = new ClaimsIdentity();
+            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, tokenInfo.Id.ToString(CultureInfo.InvariantCulture.NumberFormat), ClaimValueTypes.Integer64));
+            identity.AddClaim(new Claim(VersionClaimType, tokenInfo.Version.ToString(CultureInfo.InvariantCulture.NumberFormat), ClaimValueTypes.Integer64));
+
+            var tokenDescriptor = new SecurityTokenDescriptor()
+            {
+                Subject = identity,
+                Issuer = config.Issuer,
+                Audience = config.Audience,
+                SigningCredentials = new SigningCredentials(_tokenSecurityKey, SecurityAlgorithms.HmacSha384),
+                IssuedAt = _clock.GetCurrentTime(),
+                Expires = tokenInfo.ExpireAt.GetValueOrDefault(_clock.GetCurrentTime().AddSeconds(config.DefaultExpireOffset)),
+                NotBefore = _clock.GetCurrentTime() // I must explicitly set this or it will use the current time by default and mock is not work in which case test will not pass.
+            };
+
+            var token = _tokenHandler.CreateToken(tokenDescriptor);
+            var tokenString = _tokenHandler.WriteToken(token);
+
+            return tokenString;
+        }
+
+
+        public UserTokenInfo VerifyToken(string token)
+        {
+            if (token == null)
+                throw new ArgumentNullException(nameof(token));
+
+            var config = _jwtConfig.CurrentValue;
+            try
+            {
+                var principal = _tokenHandler.ValidateToken(token, new TokenValidationParameters
+                {
+                    ValidateIssuer = true,
+                    ValidateAudience = true,
+                    ValidateIssuerSigningKey = true,
+                    ValidateLifetime = false,
+                    ValidIssuer = config.Issuer,
+                    ValidAudience = config.Audience,
+                    IssuerSigningKey = _tokenSecurityKey
+                }, out var t);
+
+                var idClaim = principal.FindFirstValue(ClaimTypes.NameIdentifier);
+                if (idClaim == null)
+                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.NoIdClaim);
+                if (!long.TryParse(idClaim, out var id))
+                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.IdClaimBadFormat);
+
+                var versionClaim = principal.FindFirstValue(VersionClaimType);
+                if (versionClaim == null)
+                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.NoVersionClaim);
+                if (!long.TryParse(versionClaim, out var version))
+                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.VersionClaimBadFormat);
+
+                var decodedToken = (JwtSecurityToken)t;
+                var exp = decodedToken.Payload.Exp;
+                DateTime? expireAt = null;
+                if (exp.HasValue)
+                {
+                    expireAt = EpochTime.DateTime(exp.Value);
+                }
+
+                return new UserTokenInfo
+                {
+                    Id = id,
+                    Version = version,
+                    ExpireAt = expireAt
+                };
+            }
+            catch (Exception e) when (e is SecurityTokenException || e is ArgumentException)
+            {
+                throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.Other, e);
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Startup.cs b/BackEnd/Timeline/Startup.cs
new file mode 100644
index 00000000..576836eb
--- /dev/null
+++ b/BackEnd/Timeline/Startup.cs
@@ -0,0 +1,185 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection.Extensions;
+using Microsoft.Extensions.Hosting;
+using NSwag;
+using NSwag.Generation.Processors.Security;
+using System;
+using System.ComponentModel;
+using System.Net.Mime;
+using System.Text.Json.Serialization;
+using Timeline.Auth;
+using Timeline.Configs;
+using Timeline.Entities;
+using Timeline.Formatters;
+using Timeline.Helpers;
+using Timeline.Models.Converters;
+using Timeline.Routes;
+using Timeline.Services;
+using Timeline.Swagger;
+
+namespace Timeline
+{
+    public class Startup
+    {
+        private readonly bool disableFrontEnd;
+        private readonly bool useMockFrontEnd;
+
+        public Startup(IConfiguration configuration, IWebHostEnvironment environment)
+        {
+            Environment = environment;
+            Configuration = configuration;
+
+            disableFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.DisableFrontEndKey) ?? false;
+            useMockFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.UseMockFrontEndKey) ?? false;
+        }
+
+        public IWebHostEnvironment Environment { get; }
+        public IConfiguration Configuration { get; }
+
+        // This method gets called by the runtime. Use this method to add services to the container.
+        public void ConfigureServices(IServiceCollection services)
+        {
+            TypeDescriptor.AddAttributes(typeof(DateTime), new TypeConverterAttribute(typeof(MyDateTimeConverter)));
+
+            services.AddControllers(setup =>
+            {
+                setup.InputFormatters.Add(new StringInputFormatter());
+                setup.InputFormatters.Add(new BytesInputFormatter());
+                setup.Filters.Add(new ConsumesAttribute(MediaTypeNames.Application.Json, "text/json"));
+                setup.Filters.Add(new ProducesAttribute(MediaTypeNames.Application.Json, "text/json"));
+                setup.UseApiRoutePrefix("api");
+            })
+            .AddJsonOptions(options =>
+            {
+                options.JsonSerializerOptions.IgnoreNullValues = true;
+                options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
+                options.JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
+            })
+            .ConfigureApiBehaviorOptions(options =>
+            {
+                options.InvalidModelStateResponseFactory = InvalidModelResponseFactory.Factory;
+            });
+
+            services.Configure<JwtConfiguration>(Configuration.GetSection("Jwt"));
+            services.AddAuthentication(AuthenticationConstants.Scheme)
+                .AddScheme<MyAuthenticationOptions, MyAuthenticationHandler>(AuthenticationConstants.Scheme, AuthenticationConstants.DisplayName, o => { });
+            services.AddAuthorization();
+
+            services.AddSingleton<IPathProvider, PathProvider>();
+
+            services.AddSingleton<IDatabaseBackupService, DatabaseBackupService>();
+
+            services.AddAutoMapper(GetType().Assembly);
+
+            services.AddTransient<IClock, Clock>();
+
+            services.AddTransient<IPasswordService, PasswordService>();
+            services.AddScoped<IUserService, UserService>();
+            services.AddScoped<IUserDeleteService, UserDeleteService>();
+            services.AddScoped<IUserTokenService, JwtUserTokenService>();
+            services.AddScoped<IUserTokenManager, UserTokenManager>();
+
+            services.AddScoped<IETagGenerator, ETagGenerator>();
+            services.AddScoped<IDataManager, DataManager>();
+
+            services.AddScoped<IImageValidator, ImageValidator>();
+
+            services.AddUserAvatarService();
+
+            services.AddScoped<ITimelineService, TimelineService>();
+
+            services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();
+
+            services.AddDbContext<DatabaseContext>((services, options) =>
+            {
+                var pathProvider = services.GetRequiredService<IPathProvider>();
+                options.UseSqlite($"Data Source={pathProvider.GetDatabaseFilePath()}");
+            });
+
+            services.AddSwaggerDocument(document =>
+            {
+                document.DocumentName = "Timeline";
+                document.Title = "Timeline REST API Reference";
+                document.Version = typeof(Startup).Assembly.GetName().Version?.ToString() ?? "unknown version";
+                document.DocumentProcessors.Add(new DocumentDescriptionDocumentProcessor());
+                document.DocumentProcessors.Add(
+                    new SecurityDefinitionAppender("JWT",
+                    new OpenApiSecurityScheme
+                    {
+                        Type = OpenApiSecuritySchemeType.ApiKey,
+                        Name = "Authorization",
+                        In = OpenApiSecurityApiKeyLocation.Header,
+                        Description = "Create token via `/api/token/create` ."
+                    }));
+                document.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("JWT"));
+                document.OperationProcessors.Add(new DefaultDescriptionOperationProcessor());
+                document.OperationProcessors.Add(new ByteDataRequestOperationProcessor());
+            });
+
+            if (!disableFrontEnd)
+            {
+                if (useMockFrontEnd)
+                {
+                    services.AddSpaStaticFiles(config =>
+                    {
+                        config.RootPath = "MockClientApp";
+                    });
+
+                }
+                else if (!Environment.IsDevelopment()) // In development, we don't want to serve dist. Or it will take precedence than front end dev server.
+                {
+                    services.AddSpaStaticFiles(config =>
+                    {
+                        config.RootPath = "ClientApp";
+                    });
+                }
+            }
+        }
+
+
+        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
+        public void Configure(IApplicationBuilder app)
+        {
+            app.UseRouting();
+
+            if (!disableFrontEnd && (useMockFrontEnd || !Environment.IsDevelopment()))
+            {
+                app.UseSpaStaticFiles(new StaticFileOptions
+                {
+                    ServeUnknownFileTypes = true
+                });
+            }
+
+            app.UseOpenApi();
+            app.UseReDoc();
+
+            app.UseAuthentication();
+            app.UseAuthorization();
+
+            app.UseEndpoints(endpoints =>
+            {
+                endpoints.MapControllers();
+            });
+
+            UnknownEndpointMiddleware.Attach(app);
+
+            if (!disableFrontEnd)
+            {
+                app.UseSpa(spa =>
+                {
+                    if (!useMockFrontEnd && (Configuration.GetValue<bool?>(ApplicationConfiguration.UseProxyFrontEndKey) ?? false))
+                    {
+                        spa.UseProxyToSpaDevelopmentServer(new UriBuilder("http", "localhost", 3000).Uri);
+                    }
+                });
+            }
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Swagger/ApiConvention.cs b/BackEnd/Timeline/Swagger/ApiConvention.cs
new file mode 100644
index 00000000..dbf0b2fe
--- /dev/null
+++ b/BackEnd/Timeline/Swagger/ApiConvention.cs
@@ -0,0 +1,15 @@
+﻿using Microsoft.AspNetCore.Mvc;
+
+[assembly: ApiConventionType(typeof(Timeline.Controllers.ApiConvention))]
+
+namespace Timeline.Controllers
+{
+    // There is some bug if nullable is enable. So disable it.
+#nullable disable
+    /// <summary>
+    /// My api convention.
+    /// </summary>
+    public static class ApiConvention
+    {
+    }
+}
diff --git a/BackEnd/Timeline/Swagger/ByteDataRequestOperationProcessor.cs b/BackEnd/Timeline/Swagger/ByteDataRequestOperationProcessor.cs
new file mode 100644
index 00000000..887831ac
--- /dev/null
+++ b/BackEnd/Timeline/Swagger/ByteDataRequestOperationProcessor.cs
@@ -0,0 +1,27 @@
+﻿using NJsonSchema;
+using NSwag;
+using NSwag.Generation.Processors;
+using NSwag.Generation.Processors.Contexts;
+using System.Linq;
+using Timeline.Models;
+
+namespace Timeline.Swagger
+{
+    /// <summary>
+    /// Coerce ByteData body type into the right one.
+    /// </summary>
+    public class ByteDataRequestOperationProcessor : IOperationProcessor
+    {
+        /// <inheritdoc/>
+        public bool Process(OperationProcessorContext context)
+        {
+            var hasByteDataBody = context.MethodInfo.GetParameters().Where(p => p.ParameterType == typeof(ByteData)).Any();
+            if (hasByteDataBody)
+            {
+                var bodyParameter = context.OperationDescription.Operation.Parameters.Where(p => p.Kind == OpenApiParameterKind.Body).Single();
+                bodyParameter.Schema = JsonSchema.FromType<byte[]>();
+            }
+            return true;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs b/BackEnd/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
new file mode 100644
index 00000000..4967cc6a
--- /dev/null
+++ b/BackEnd/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
@@ -0,0 +1,39 @@
+﻿using NSwag.Generation.Processors;
+using NSwag.Generation.Processors.Contexts;
+using System.Collections.Generic;
+
+namespace Timeline.Swagger
+{
+    /// <summary>
+    /// Swagger operation processor that adds default description to response.
+    /// </summary>
+    public class DefaultDescriptionOperationProcessor : IOperationProcessor
+    {
+        private readonly Dictionary<string, string> defaultDescriptionMap = new Dictionary<string, string>
+        {
+            ["200"] = "Succeeded to perform the operation.",
+            ["304"] = "Item does not change.",
+            ["400"] = "See code and message for error info.",
+            ["401"] = "You need to log in to perform this operation.",
+            ["403"] = "You have no permission to perform the operation.",
+            ["404"] = "Item does not exist. See code and message for error info."
+        };
+
+        /// <inheritdoc/>
+        public bool Process(OperationProcessorContext context)
+        {
+            var responses = context.OperationDescription.Operation.Responses;
+
+            foreach (var (httpStatusCode, res) in responses)
+            {
+                if (!string.IsNullOrEmpty(res.Description)) continue;
+                if (defaultDescriptionMap.ContainsKey(httpStatusCode))
+                {
+                    res.Description = defaultDescriptionMap[httpStatusCode];
+                }
+            }
+
+            return true;
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs b/BackEnd/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
new file mode 100644
index 00000000..dc5ddd96
--- /dev/null
+++ b/BackEnd/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
@@ -0,0 +1,55 @@
+﻿using NSwag.Generation.Processors;
+using NSwag.Generation.Processors.Contexts;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using Timeline.Models.Http;
+
+namespace Timeline.Swagger
+{
+    public class DocumentDescriptionDocumentProcessor : IDocumentProcessor
+    {
+        private static Dictionary<string, int> GetAllErrorCodes()
+        {
+            var errorCodes = new Dictionary<string, int>();
+
+            void RecursiveCheckErrorCode(Type type)
+            {
+                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
+                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
+                {
+                    var name = (type.FullName + "." + field.Name).Remove(0, typeof(ErrorCodes).FullName!.Length + 1).Replace("+", ".", StringComparison.OrdinalIgnoreCase);
+                    int value = (int)field.GetRawConstantValue()!;
+                    errorCodes.Add(name, value);
+                }
+
+                foreach (var nestedType in type.GetNestedTypes())
+                {
+                    RecursiveCheckErrorCode(nestedType);
+                }
+            }
+
+            RecursiveCheckErrorCode(typeof(ErrorCodes));
+
+            return errorCodes;
+        }
+
+        public void Process(DocumentProcessorContext context)
+        {
+            StringBuilder description = new StringBuilder();
+            description.AppendLine("# Error Codes");
+            description.AppendLine("name | value");
+            description.AppendLine("---- | -----");
+            foreach (var (name, value) in GetAllErrorCodes())
+            {
+                description.AppendLine($"`{name}` | `{value}`");
+            }
+
+            context.Document.Info.Description = description.ToString();
+        }
+    }
+}
diff --git a/BackEnd/Timeline/Timeline.csproj b/BackEnd/Timeline/Timeline.csproj
new file mode 100644
index 00000000..5131cdb0
--- /dev/null
+++ b/BackEnd/Timeline/Timeline.csproj
@@ -0,0 +1,263 @@
+﻿<Project Sdk="Microsoft.NET.Sdk.Web">
+    <PropertyGroup>
+        <TargetFramework>netcoreapp3.1</TargetFramework>
+        <UserSecretsId>1f6fb74d-4277-4bc0-aeea-b1fc5ffb0b43</UserSecretsId>
+        <Authors>crupest</Authors>
+
+        <IsPackable>false</IsPackable>
+
+        <LangVersion>8.0</LangVersion>
+        <Nullable>enable</Nullable>
+
+        <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
+        <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
+        <SpaRoot>ClientApp\</SpaRoot>
+
+        <Version>0.3.0</Version>
+        <GenerateDocumentationFile>true</GenerateDocumentationFile>
+        <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
+
+        <NoWarn>1701;1702;1591</NoWarn>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <Content Include="default-avatar.png">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+        <Content Include="MockClientApp\index.html">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+        <Content Include="$(SpaRoot)**" >
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+    </ItemGroup>
+
+    <ItemGroup>
+        <PackageReference Include="AutoMapper" Version="10.1.1" />
+        <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.0" />
+        <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.9" />
+        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
+            <PrivateAssets>all</PrivateAssets>
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+        </PackageReference>
+        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.9" />
+        <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.9" />
+        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.9" />
+        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.9">
+            <PrivateAssets>all</PrivateAssets>
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+        </PackageReference>
+        <PackageReference Include="NSwag.AspNetCore" Version="13.8.2" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="1.0.1" />
+        <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.8.0" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <ProjectReference Include="..\Timeline.ErrorCodes\Timeline.ErrorCodes.csproj" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <Compile Update="Resources\Authentication\AuthHandler.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>AuthHandler.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Controllers\ControllerAuthExtensions.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>ControllerAuthExtensions.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Controllers\TimelineController.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>TimelineController.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Controllers\TokenController.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>TokenController.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Controllers\UserAvatarController.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>UserAvatarController.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Controllers\UserController.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>UserController.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Entities.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Entities.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Filters.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Filters.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Helper\DataCacheHelper.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>DataCacheHelper.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Messages.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Messages.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Models\Http\Common.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Common.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Models\Http\Exception.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Exception.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Models\Validation\NicknameValidator.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>NicknameValidator.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Models\Validation\NameValidator.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>NameValidator.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Models\Validation\Validator.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Validator.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\DataManager.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>DataManager.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\Exception.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Exception.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\Exceptions.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>Exceptions.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\TimelineService.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>TimelineService.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\UserAvatarService.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>UserAvatarService.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\UserService.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>UserService.resx</DependentUpon>
+        </Compile>
+        <Compile Update="Resources\Services\UserTokenService.Designer.cs">
+            <DesignTime>True</DesignTime>
+            <AutoGen>True</AutoGen>
+            <DependentUpon>UserTokenService.resx</DependentUpon>
+        </Compile>
+    </ItemGroup>
+
+    <ItemGroup>
+        <EmbeddedResource Update="Resources\Authentication\AuthHandler.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>AuthHandler.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Controllers\ControllerAuthExtensions.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>ControllerAuthExtensions.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Controllers\TimelineController.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>TimelineController.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Controllers\TokenController.resx">
+            <SubType>Designer</SubType>
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>TokenController.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Controllers\UserAvatarController.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>UserAvatarController.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Controllers\UserController.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>UserController.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Entities.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Entities.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Filters.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Filters.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Helper\DataCacheHelper.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>DataCacheHelper.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Messages.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Messages.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Models\Http\Common.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Common.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Models\Http\Exception.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Exception.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Models\Validation\NicknameValidator.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>NicknameValidator.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Models\Validation\NameValidator.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>NameValidator.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Models\Validation\Validator.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Validator.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\DataManager.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>DataManager.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\Exception.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Exception.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\Exceptions.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>Exceptions.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\TimelineService.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>TimelineService.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\UserAvatarService.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>UserAvatarService.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\UserService.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>UserService.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+        <EmbeddedResource Update="Resources\Services\UserTokenService.resx">
+            <Generator>ResXFileCodeGenerator</Generator>
+            <LastGenOutput>UserTokenService.Designer.cs</LastGenOutput>
+        </EmbeddedResource>
+    </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/BackEnd/Timeline/appsettings.Development.json b/BackEnd/Timeline/appsettings.Development.json
new file mode 100644
index 00000000..a2880cbf
--- /dev/null
+++ b/BackEnd/Timeline/appsettings.Development.json
@@ -0,0 +1,9 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Debug",
+      "System": "Information",
+      "Microsoft": "Information"
+    }
+  }
+}
diff --git a/BackEnd/Timeline/appsettings.json b/BackEnd/Timeline/appsettings.json
new file mode 100644
index 00000000..804ca43a
--- /dev/null
+++ b/BackEnd/Timeline/appsettings.json
@@ -0,0 +1,11 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Warning"
+    }
+  },
+  "Jwt": {
+    "Issuer": "api.crupest.xyz",
+    "Audience": "api.crupest.xyz"
+  }
+}
diff --git a/BackEnd/Timeline/default-avatar.png b/BackEnd/Timeline/default-avatar.png
new file mode 100644
index 00000000..4086e1d2
Binary files /dev/null and b/BackEnd/Timeline/default-avatar.png differ
diff --git a/BackEnd/Timeline/packages.lock.json b/BackEnd/Timeline/packages.lock.json
new file mode 100644
index 00000000..ed92c672
--- /dev/null
+++ b/BackEnd/Timeline/packages.lock.json
@@ -0,0 +1,1563 @@
+{
+  "version": 1,
+  "dependencies": {
+    ".NETCoreApp,Version=v3.1": {
+      "AutoMapper": {
+        "type": "Direct",
+        "requested": "[10.1.1, )",
+        "resolved": "10.1.1",
+        "contentHash": "uMgbqOdu9ZG5cIOty0C85hzzayBH2i9BthnS5FlMqKtMSHDv4ts81a2jS1VFaDBVhlBeIqJ/kQKjQY95BZde9w==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.7.0",
+          "System.Reflection.Emit": "4.7.0"
+        }
+      },
+      "AutoMapper.Extensions.Microsoft.DependencyInjection": {
+        "type": "Direct",
+        "requested": "[8.1.0, )",
+        "resolved": "8.1.0",
+        "contentHash": "dQyGCAYcHbGuimVvCMu4Ea2S1oYOlgO9XfVdClmY5wgygJMZoS57emPzH0qNfknmtzMm4QbDO9i237W5IDjU1A==",
+        "dependencies": {
+          "AutoMapper": "[10.1.0, 11.0.0)",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.0.0",
+          "Microsoft.Extensions.Options": "3.0.0"
+        }
+      },
+      "Microsoft.AspNetCore.SpaServices.Extensions": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "ciy2GCvRnh9C22laArLsaItS+72U6Hqf4nDYShdvFgcen2ZV+NNSitb/B3vsmFfIPM8m4mf2x4T+vZ6OlI5XaA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.SpaServices": "3.1.9",
+          "Microsoft.Extensions.FileProviders.Physical": "3.1.9"
+        }
+      },
+      "Microsoft.CodeAnalysis.FxCopAnalyzers": {
+        "type": "Direct",
+        "requested": "[3.3.0, )",
+        "resolved": "3.3.0",
+        "contentHash": "k3Icqx8kc+NrHImuiB8Jc/wd32Xeyd2B/7HOR5Qu9pyKzXQ4ikPeBAwzG2FSTuYhyIuNWvwL5k9yYBbbVz6w9w==",
+        "dependencies": {
+          "Microsoft.CodeAnalysis.VersionCheckAnalyzer": "[3.3.0]",
+          "Microsoft.CodeQuality.Analyzers": "[3.3.0]",
+          "Microsoft.NetCore.Analyzers": "[3.3.0]",
+          "Microsoft.NetFramework.Analyzers": "[3.3.0]"
+        }
+      },
+      "Microsoft.EntityFrameworkCore": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "u3A2W0BvAuAF2jgW+WX+C+Sh8sMGX5Kl1hdA0gu6A/XSrZQoW/BUP4a/q2n3iitDGndaorqjAKx+Spb9gBto+w==",
+        "dependencies": {
+          "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
+          "Microsoft.Bcl.HashCode": "1.1.0",
+          "Microsoft.EntityFrameworkCore.Abstractions": "3.1.9",
+          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
+          "Microsoft.Extensions.Caching.Memory": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection": "3.1.9",
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "System.Collections.Immutable": "1.7.1",
+          "System.ComponentModel.Annotations": "4.7.0",
+          "System.Diagnostics.DiagnosticSource": "4.7.1"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Analyzers": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "eXGyx/Lb1fiiKtnIStdxGrfBSSQg8oZytE10f1T/2xAx12W9dKB9U9fg05cwNCDC0S2CXILsmZHYaGqCSXVAqQ=="
+      },
+      "Microsoft.EntityFrameworkCore.Sqlite": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "sMFCWv/1UcsFQZeGQcbfPbEZKZ1oKZqWZXTbc7PEZVMIXu82nbavstdNQ84x5IBXJkxl8iW3zjChb/FRBr5uLQ==",
+        "dependencies": {
+          "Microsoft.EntityFrameworkCore.Sqlite.Core": "3.1.9",
+          "SQLitePCLRaw.bundle_e_sqlite3": "2.0.2"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Tools": {
+        "type": "Direct",
+        "requested": "[3.1.9, )",
+        "resolved": "3.1.9",
+        "contentHash": "mSgwjp0h5iqW5V49SVijR5O+kNpI1nitcbN12n9FYx/Ga6oCEFwXR/llBDesD6ASHw3Mx16vodJYJ7CEBx5rig==",
+        "dependencies": {
+          "Microsoft.EntityFrameworkCore.Design": "3.1.9"
+        }
+      },
+      "NSwag.AspNetCore": {
+        "type": "Direct",
+        "requested": "[13.8.2, )",
+        "resolved": "13.8.2",
+        "contentHash": "SNGlVSZoMyywBWueZBxl3B/nfaIM0fAcuNhTD/cfMKUn3Cn/Oi8d45HZY5vAPqczvppTbk4cZXyVwWDOfgiPbA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
+          "Microsoft.AspNetCore.StaticFiles": "1.0.4",
+          "Microsoft.Extensions.ApiDescription.Server": "3.0.0",
+          "Microsoft.Extensions.FileProviders.Embedded": "1.0.1",
+          "NSwag.Annotations": "13.8.2",
+          "NSwag.Core": "13.8.2",
+          "NSwag.Generation": "13.8.2",
+          "NSwag.Generation.AspNetCore": "13.8.2",
+          "System.IO.FileSystem": "4.3.0",
+          "System.Xml.XPath.XDocument": "4.0.1"
+        }
+      },
+      "SixLabors.ImageSharp": {
+        "type": "Direct",
+        "requested": "[1.0.1, )",
+        "resolved": "1.0.1",
+        "contentHash": "DjLoFNdUfsDP7RhPpr5hcUhl1XiejqBML9uDWuOUwCkc0Y+sG9IJLLbqSOi9XeoWqPviwdcDm1F8nKdF0qTYIQ=="
+      },
+      "System.IdentityModel.Tokens.Jwt": {
+        "type": "Direct",
+        "requested": "[6.8.0, )",
+        "resolved": "6.8.0",
+        "contentHash": "5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==",
+        "dependencies": {
+          "Microsoft.IdentityModel.JsonWebTokens": "6.8.0",
+          "Microsoft.IdentityModel.Tokens": "6.8.0"
+        }
+      },
+      "Microsoft.AspNetCore.Authorization": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "cN2KJkfHcKwh82c9WGx4Tqfd2h5HflU/Mu5vYLMHON8WahHU9hE32ciIXcEIoKLNpu+zs1u1cN/qxcKTdqu89w==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Security.Claims": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Hosting.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "ybY8FOkdNfBPB5PLv1JO+It/94ftBzGUI1WqU4XySbIWyhw2TPmmKAUuO9uvJoR0qpsFup8FJz6trsBcBITg9w==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "XUiQPe/CflK1i0Voo9S6/G1iQh00gQ6sMqi3LRtKeceBbO6AOostaAUdhjyME92MapI4VFNl+Z+/KXUlMAExJQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Features": "1.0.3",
+          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Http": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "kfNOIGGgVtMzsSWZzXBqz5zsdo8ssBa90YHzZt95N8ARGXoolSaBHy6yBoMm/XcpbXM+m/x1fixTTMIWMgzJdQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.AspNetCore.WebUtilities": "1.0.3",
+          "Microsoft.Extensions.ObjectPool": "1.0.1",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.Buffers": "4.0.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "nnjvAf7ag6P0DyD/0nhRGjLpv+3DkPU0juF8aQh46X8uF4kzjJdrh65oL+4PVOu3K6BgSg6OVUs0QC0SE0FRtg==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Features": "1.0.3",
+          "System.Globalization.Extensions": "4.0.1",
+          "System.Linq.Expressions": "4.1.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Extensions": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "+7Sd+14nexIJqcB4S1Eur9kzeMZ5CBtrxkei+PNbD78fg8vO3+TcCgrl5SBNTsUB/VJAfD/s0fgs5t+hHRj2Pg==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.Buffers": "4.0.0",
+          "System.IO.FileSystem": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.Http.Features": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "Ihq57tseNyPbJTmFXY4jQ4JkxLP0lh45VRwocQci/sFx+qcJGvWB+sJJ2/YPLy/qTWFAEfNAcswuY3OsNH9Gwg==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "1.0.1",
+          "System.Collections": "4.0.11",
+          "System.ComponentModel": "4.0.1",
+          "System.Linq": "4.1.0",
+          "System.Net.Primitives": "4.0.11",
+          "System.Net.WebSockets": "4.0.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Security.Claims": "4.0.1",
+          "System.Security.Cryptography.X509Certificates": "4.1.0",
+          "System.Security.Principal": "4.0.1"
+        }
+      },
+      "Microsoft.AspNetCore.JsonPatch": {
+        "type": "Transitive",
+        "resolved": "1.0.0",
+        "contentHash": "WVaSVS+dDlWCR/qerHnBxU9tIeJ9GMA3M5tg4cxH7/cJYZZLnr2zvaFHGB+cRRNCKKTJ0pFRxT7ES8knhgAAaA==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.0.1",
+          "Newtonsoft.Json": "9.0.1",
+          "System.Collections.Concurrent": "4.0.12",
+          "System.ComponentModel.TypeConverter": "4.1.0",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Serialization.Primitives": "4.1.1",
+          "System.Text.Encoding.Extensions": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "Isqgif1nuB+um86cEkpL8KnoxFCUCXBsbs9PuiuzElvlSiv4Ek3LvtrSUcbivekDDfys8CDbJhxwEI7WKJieAQ==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
+          "Microsoft.CSharp": "4.0.1",
+          "Microsoft.Net.Http.Headers": "1.0.3",
+          "System.ComponentModel.TypeConverter": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Text.Encoding.Extensions": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.ApiExplorer": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "ujCFTM42U2WKUBhdaoLoiI+wVHgYhrmDrkl5+hWJ7EJW4fhp42w4cRZ97tjuveWr+M6JZjpS0q+7PVofQzFUiw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Core": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "1ukcttN1+T82hWXE8WS5kawkruolKI6LPVqVI4rTzN16kFszS/UqTrcwSUEnmTRpmWgFo665V3c2GpdQ9B6znw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Authorization": "1.0.3",
+          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.3",
+          "Microsoft.AspNetCore.Http": "1.0.3",
+          "Microsoft.AspNetCore.Mvc.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Routing": "1.0.4",
+          "Microsoft.Extensions.DependencyModel": "1.0.0",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.PlatformAbstractions": "1.0.0",
+          "System.Buffers": "4.0.0",
+          "System.Diagnostics.DiagnosticSource": "4.0.0",
+          "System.Text.Encoding": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.Mvc.Formatters.Json": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "i8WWK2GwlBHfOL+d+kknJWPks6DS9tbN6nfJZU4yb+/wfUAYd311B2CIHzdat3IewubnK1TYONwrhQcs2FbLeA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.JsonPatch": "1.0.0",
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
+        }
+      },
+      "Microsoft.AspNetCore.NodeServices": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "bbd3FlSPWiRQrIcBLa5TaOvo4gjmmiNMkxA8VmZ6u0eIpS0Yj35/eTopaGdtzqwlqj5jXbdRoib1MruXuPaW8A==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging.Console": "3.1.9",
+          "Newtonsoft.Json": "12.0.2"
+        }
+      },
+      "Microsoft.AspNetCore.Routing": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "mdIF3ckRothHWuCSFkk6YXACj5zxi5qM+cEAHjcpP04/wCHUoV0gGVnW+HI+LyFXE6JUwu2zXn5tfsCpW0U+SA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
+          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.ObjectPool": "1.0.1",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Collections": "4.0.11",
+          "System.Text.RegularExpressions": "4.1.0"
+        }
+      },
+      "Microsoft.AspNetCore.Routing.Abstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "GHxVt6LlXHFsCUd2Un+/vY1tBTXxnogfbDO0b8G5EGmkapSK+dOGOLJviscxQkp338Uabs081JEIdkRymI5GXA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
+          "System.Collections.Concurrent": "4.0.12",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "Microsoft.AspNetCore.SpaServices": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Fb+N2ZyF1wNrGeWggT+Ovv6W8AAVxfi4V/SnuEsBOR+nmkFhty9zyh6IDRRS98GJK6OE3adqqPbWMtJqbxYnNA==",
+        "dependencies": {
+          "Microsoft.AspNetCore.NodeServices": "3.1.9"
+        }
+      },
+      "Microsoft.AspNetCore.StaticFiles": {
+        "type": "Transitive",
+        "resolved": "1.0.4",
+        "contentHash": "2pNvwewAazhaaCdw2CGUvIcDrNQMlqP57JgBDf3v+pRj1rZ29HVnpvkX6a+TrmRYlJNmmxHOKEt468uE/gDcFw==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.4",
+          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
+          "Microsoft.Extensions.WebEncoders": "1.0.3"
+        }
+      },
+      "Microsoft.AspNetCore.WebUtilities": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "snSGNs5EEisqivDjDiskFkFyu+DV2Ib9sMPOBQKtoFwI5H1W5YNB/rIVqDZQL16zj/uzdwwxrdE/5xhkVyf6gQ==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "1.0.1",
+          "System.Buffers": "4.0.0",
+          "System.Collections": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.IO.FileSystem": "4.0.1",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.Bcl.AsyncInterfaces": {
+        "type": "Transitive",
+        "resolved": "1.1.1",
+        "contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
+      },
+      "Microsoft.Bcl.HashCode": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "J2G1k+u5unBV+aYcwxo94ip16Rkp65pgWFb0R6zwJipzWNMgvqlWeuI7/+R+e8bob66LnSG+llLJ+z8wI94cHg=="
+      },
+      "Microsoft.CodeAnalysis.VersionCheckAnalyzer": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "xjLM3DRFZMan3nQyBQEM1mBw6VqQybi4iMJhMFW6Ic1E1GCvqJR3ABOwEL7WtQjDUzxyrGld9bASnAos7G/Xyg=="
+      },
+      "Microsoft.CodeQuality.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "zZ3miq6u22UFQKhfJyLnVEJ+DgeOopLh3eKJnKAcOetPP2hiv3wa7kHZlBDeTvtqJQiAQhAVbttket8XxjN1zw=="
+      },
+      "Microsoft.CSharp": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+      },
+      "Microsoft.Data.Sqlite.Core": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "+u4PeT1npi2EzhxGc5r1Z2z73zuXw+TlKVZm44WQhNCUw4LtUVDaxGSpUhrjW+X4snBCBfr4kT/uJyKnL4R4og==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2"
+        }
+      },
+      "Microsoft.DotNet.PlatformAbstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.6",
+        "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+      },
+      "Microsoft.EntityFrameworkCore.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "IR6Y4RJVlw0QXdWXjF3Kx9s1QLiicJus+BFBKr43lBtriV20j3yrWMoaZ9W1AUUgnicZXpXVcNfklqtmwb9Sxw=="
+      },
+      "Microsoft.EntityFrameworkCore.Design": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "2zgP7BWcw5nqGQiT4bEtiI6ras+4pvKg5D+tA3AYvjEifzzaWvmRTb3B9nRHpIYJAhPtmWNBVnVXLbu3fS1OYA==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.7.0",
+          "Microsoft.EntityFrameworkCore.Relational": "3.1.9"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Relational": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "7fhWuSfrCYlv/hvOX5OhbFJF/G9f8sifqTrJiYnAYLDOvNizwv7t9tFPD8JwaF3zM2S54O5/Vni2NxvwzSaW2w==",
+        "dependencies": {
+          "Microsoft.EntityFrameworkCore": "3.1.9"
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Sqlite.Core": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Da6h8LdpJwKc1az9DMWt2Mt6gHXPRZqwiumV1Zx0AuM3EThyokVDzBGy2sti0AcBhcQMLJHPEr5R9xuiWvaYYQ==",
+        "dependencies": {
+          "Microsoft.Data.Sqlite.Core": "3.1.9",
+          "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+          "Microsoft.EntityFrameworkCore.Relational": "3.1.9",
+          "Microsoft.Extensions.DependencyModel": "3.1.6"
+        }
+      },
+      "Microsoft.Extensions.ApiDescription.Server": {
+        "type": "Transitive",
+        "resolved": "3.0.0",
+        "contentHash": "LH4OE/76F6sOCslif7+Xh3fS/wUUrE5ryeXAMcoCnuwOQGT5Smw0p57IgDh/pHgHaGz/e+AmEQb7pRgb++wt0w=="
+      },
+      "Microsoft.Extensions.Caching.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "/2QsPAsUZD4qvftZkUKHRRRryPDXWh606/iNXPLrulwHLMr9JNsKBJWVqylT3qU92nJok5VoqSblkY9mSyxFyg==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Caching.Memory": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "/JrVMVetX/kpJQUIlJ6NLQ3zbF0yyryXpo4+uFCqYIUZzgmWk8DS/zSKcyj1tQ3410+vhDEAPngxC+hg0IlJeg==",
+        "dependencies": {
+          "Microsoft.Extensions.Caching.Abstractions": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "lqdkOGNeTMKG981Q7yWGlRiFbIlsRwTlMMiybT+WOzUCFBS/wc25tZgh7Wm/uRoBbWefgvokzmnea7ZjmFedmA==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "vOJxPKczaHpXeZFrxARxYwsEulhEouXc5aZGgMdkhV/iEXX9/pfjqKk76rTG+4CsJjHV+G/4eMhvOIaQMHENNA==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Configuration.Binder": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "BG6HcT7tARYakftqfQu+cLksgIWG1NdxMY+igI12hdZrUK+WjS973NiRyuao/U9yyTeM9NPwRnC61hCmG3G3jg==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "ORqfrAACcvTInie1oGola5uky344/PiNfgayTPuZWV4WnSfIQZJQm/ZLpGshJE3h7TqwYaYElGazK/yaM2bFLA==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "8PkcaPwiTPOhqshoY4+rQUbz86X6YpLDLUqXOezh7L2A3pgpBmeBBByYIffofBlvQxDdQ0zB2DkWjbZWyCxRWg=="
+      },
+      "Microsoft.Extensions.DependencyModel": {
+        "type": "Transitive",
+        "resolved": "3.1.6",
+        "contentHash": "/UlDKULIVkLQYn1BaHcy/rc91ApDxJb7T75HcCbGdqwvxhnRQRKM2di1E70iCPMF9zsr6f4EgQTotBGxFIfXmw==",
+        "dependencies": {
+          "System.Text.Json": "4.7.2"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "Q4SGwEFZKiZbpzPgdGbQUULxtcH1zXMOwCPKSm6QwVcOCGshf3QLfBh+O/GyFH4B0RfZ16nKyeW1mMONlRyjUw==",
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Embedded": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "nSEa8bH3fVdTYGqK4twOKLxxgKIW3cz9g9mrzhPh/CmdvGJWKRTIlBIZi7lz+lqNQpxean5vbAo84R/mU+JpGA==",
+        "dependencies": {
+          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "Microsoft.Extensions.FileProviders.Physical": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "HWDSsblTCQp7EEJJmnLzttIhFGzDu+DGqBbOvGCdFT0+pkCuBkn3EiWpEEcm5WMTO5njmsbLSK9ZuUUf2zPsFg==",
+        "dependencies": {
+          "Microsoft.Extensions.FileProviders.Abstractions": "3.1.9",
+          "Microsoft.Extensions.FileSystemGlobbing": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.FileSystemGlobbing": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "5bnewG1aBiSESPNwcXGIxDDRN95uqdy+fqZZ8Z63Et5rRNlAwAfXHOrg+FTht7UjHobjvtjzquMCbAWhWEPHIw=="
+      },
+      "Microsoft.Extensions.Logging": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "+V3i0jCQCO6IIOf6e+fL0SqrZd2x/Krug9EEL1JHa9R03RsbEpltCtjVY5hxedyuyuQKwvLoR12sCfu/9XEUAw==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection": "3.1.9",
+          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Logging.Abstractions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "W5fbF8qVR9SMVVJqDQLIR7meWbev6Pu/lbrm7LDNr4Sp7HOotr4k2UULTdFSXOi5aoDdkQZpWnq0ZSpjrR3tjg=="
+      },
+      "Microsoft.Extensions.Logging.Configuration": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "hv6XsGgikrbkolBJdF1usl9R/nrliC5mifMqHMEY9zWcCLwNkXMJiS8p0lbosrnpVAMi4PbNx39DB51Dqscd0w==",
+        "dependencies": {
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "Microsoft.Extensions.Options.ConfigurationExtensions": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Logging.Console": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "8Dusl1rkDivmvLrwj6QAo917xMHPiDBzG3IG3agiyDdtsC/fRp+1VN5iIN+O09PtEaMged2OLA6wCDwfSTSTZw==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Logging": "3.1.9",
+          "Microsoft.Extensions.Logging.Configuration": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.ObjectPool": {
+        "type": "Transitive",
+        "resolved": "1.0.1",
+        "contentHash": "pJMOnxuqmG37OjccfvtqVoo3bQGoN+0EJUzzp7+2uxSdioER82caAk6Yi/z5aysapn5XENNIIa7SaYnYKSS69A==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "Microsoft.Extensions.Options": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "EIb3G1DL+Rl9MvJR7LjI1wCy2nfTN4y8MflbOftn1HLYQBj/Rwl8kUbGTrSFE01c99Wm4ETjWVsjqKcpFvhPng==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Primitives": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.Options.ConfigurationExtensions": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "u5jh7RW+Ev81YqK1ZoBG0lftp2MA9xqXiTiRL46XzaPj2ScNUyiVbzcVY0fPbE27UOpT2hj+yPzRSOMIIo55UA==",
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
+          "Microsoft.Extensions.Options": "3.1.9"
+        }
+      },
+      "Microsoft.Extensions.PlatformAbstractions": {
+        "type": "Transitive",
+        "resolved": "1.0.0",
+        "contentHash": "zyjUzrOmuevOAJpIo3Mt5GmpALVYCVdLZ99keMbmCxxgQH7oxzU58kGHzE6hAgYEiWsdfMJLjVR7r+vSmaJmtg==",
+        "dependencies": {
+          "System.AppContext": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "Microsoft.Extensions.Primitives": {
+        "type": "Transitive",
+        "resolved": "3.1.9",
+        "contentHash": "IrHecH0eGG7/XoeEtv++oLg/sJHRNyeCqlA9RhAo6ig4GpOTjtDr32sBMYuuLtUq8ALahneWkrOzoBAwJ4L4iA=="
+      },
+      "Microsoft.Extensions.WebEncoders": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "TClNvczWRxF6bVPhn5EK3Y3QNi5jTP68Qur+5Fk+MQLPeBI18WN7X145DDJ6bFeNOwgdCHl73lHs5uZp9ish1A==",
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
+          "Microsoft.Extensions.Options": "1.0.2",
+          "System.Text.Encodings.Web": "4.0.1"
+        }
+      },
+      "Microsoft.IdentityModel.JsonWebTokens": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==",
+        "dependencies": {
+          "Microsoft.IdentityModel.Tokens": "6.8.0"
+        }
+      },
+      "Microsoft.IdentityModel.Logging": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg=="
+      },
+      "Microsoft.IdentityModel.Tokens": {
+        "type": "Transitive",
+        "resolved": "6.8.0",
+        "contentHash": "gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.5.0",
+          "Microsoft.IdentityModel.Logging": "6.8.0",
+          "System.Security.Cryptography.Cng": "4.5.0"
+        }
+      },
+      "Microsoft.Net.Http.Headers": {
+        "type": "Transitive",
+        "resolved": "1.0.3",
+        "contentHash": "2F8USh4hR5xppvaxtw2EStX74Ih+HhRj7aQD1uaB9JmTGy478F7t4VU+IdZXauEDrvS7LYAyyhmOExsUFK3PAw==",
+        "dependencies": {
+          "System.Buffers": "4.0.0",
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Contracts": "4.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Text.Encoding": "4.0.11"
+        }
+      },
+      "Microsoft.NetCore.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "6qptTHUu1Wfszuf83NhU0IoAb4j7YWOpJs6oc6S4G/nI6aGGWKH/Xi5Vs9L/8lrI74ijEEzPcIwafSQW5ASHtA=="
+      },
+      "Microsoft.NETCore.Platforms": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
+      },
+      "Microsoft.NETCore.Targets": {
+        "type": "Transitive",
+        "resolved": "1.1.0",
+        "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+      },
+      "Microsoft.NetFramework.Analyzers": {
+        "type": "Transitive",
+        "resolved": "3.3.0",
+        "contentHash": "JTfMic5fEFWICePbr7GXOGPranqS9Qxu2U/BZEcnnGbK1SFW8TxRyGp6O1L52xsbfOdqmzjc0t5ubhDrjj+Xpg=="
+      },
+      "Microsoft.Win32.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "Namotion.Reflection": {
+        "type": "Transitive",
+        "resolved": "1.0.14",
+        "contentHash": "wuJGiFvGfehH2w7jAhMbCJt0/rvUuHyqSZn0sMhNTviDfBZRyX8LFlR/ndQcofkGWulPDfH5nKYTeGXE8xBHPA==",
+        "dependencies": {
+          "Microsoft.CSharp": "4.3.0"
+        }
+      },
+      "Newtonsoft.Json": {
+        "type": "Transitive",
+        "resolved": "12.0.2",
+        "contentHash": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA=="
+      },
+      "NJsonSchema": {
+        "type": "Transitive",
+        "resolved": "10.2.1",
+        "contentHash": "/BtWbYTusyoSgQkCB4eYijMfZotB/rfASDsl1k9evlkm5vlOP4s4Y09TOzBChU77d/qUABVYL1Xf+TB8E0Wfpw==",
+        "dependencies": {
+          "Namotion.Reflection": "1.0.14",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Annotations": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "/GO+35CjPYQTPS5/Q8udM5JAMEWVo8JsrkV2Uw3OW4/AJU9iOS7t6WJid6ZlkpLMjnW7oex9mvJ2EZNE4eOG/Q=="
+      },
+      "NSwag.Core": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "Hm6pU9qFJuXLo3b27+JTXztfeuI/15Ob1sDsfUu4rchN0+bMogtn8Lia8KVbcalw/M+hXc0rWTFp5ueP23e+iA==",
+        "dependencies": {
+          "NJsonSchema": "10.2.1",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Generation": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "LBIrpHFRZeMMbqL1hdyGb7r8v+T52aOCARxwfAmzE+MlOHVpjsIxyNSXht9EzBFMbSH0tj7CK2Ugo7bm+zUssg==",
+        "dependencies": {
+          "NJsonSchema": "10.2.1",
+          "NSwag.Core": "13.8.2",
+          "Newtonsoft.Json": "9.0.1"
+        }
+      },
+      "NSwag.Generation.AspNetCore": {
+        "type": "Transitive",
+        "resolved": "13.8.2",
+        "contentHash": "0ydVv6OidspZ/MS6qmU8hswGtXwq5YZPg+2a2PHGD6jNp2Fef4j1wC3xa3hplDAq7cK+BgpyDKtvj9+X01+P5g==",
+        "dependencies": {
+          "Microsoft.AspNetCore.Mvc.ApiExplorer": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
+          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
+          "NJsonSchema": "10.2.1",
+          "NSwag.Generation": "13.8.2"
+        }
+      },
+      "runtime.native.System": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1"
+        }
+      },
+      "runtime.native.System.Net.Http": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "Nh0UPZx2Vifh8r+J+H2jxifZUD3sBrmolgiFWJd2yiNrxO0xTa6bAw3YwRn1VOiSen/tUXMS31ttNItCZ6lKuA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1"
+        }
+      },
+      "runtime.native.System.Security.Cryptography": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1"
+        }
+      },
+      "SQLitePCLRaw.bundle_e_sqlite3": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "OVPI/nh5AqfLCIKhAYqjCa6AHhc7oKApGcGM3UhMRSerFiBx58nSpGwxVFdMgjOCWZR+fA49nzsnKlWp5hFo8w==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2",
+          "SQLitePCLRaw.lib.e_sqlite3": "2.0.2",
+          "SQLitePCLRaw.provider.dynamic_cdecl": "2.0.2"
+        }
+      },
+      "SQLitePCLRaw.core": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "TFSBX426OelS1tkaVC254NVVlrJIe9YLhWPkEvuqJj2104QpmDmEYOhfdfDJD1E/2SmqDhoRw1ek5cQHj8olcQ==",
+        "dependencies": {
+          "System.Memory": "4.5.3"
+        }
+      },
+      "SQLitePCLRaw.lib.e_sqlite3": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "S+Tsqe/M7wsc+9HeediI6UHtBKf2X586aRwhi1aBVLGe0WxkAo52O9ZxwEy/v8XMLefcrEMupd2e9CDlIT6QCw=="
+      },
+      "SQLitePCLRaw.provider.dynamic_cdecl": {
+        "type": "Transitive",
+        "resolved": "2.0.2",
+        "contentHash": "ZSwacbKJUsxJEZxwT23uZVrGbaIvXcADZDz5Sr66fikO5eehdcceDncjzwzTzWfW13di8gpTpstx3WJSt/Ci5Q==",
+        "dependencies": {
+          "SQLitePCLRaw.core": "2.0.2"
+        }
+      },
+      "System.AppContext": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Buffers": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "msXumHfjjURSkvxUjYuq4N2ghHoRi2VpXcKMA7gK6ujQfU3vGpl+B6ld0ATRg+FZFpRyA6PgEPA+VlIkTeNf2w==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Diagnostics.Tracing": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Collections": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Collections.Concurrent": {
+        "type": "Transitive",
+        "resolved": "4.0.12",
+        "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Diagnostics.Tracing": "4.1.0",
+          "System.Globalization": "4.0.11",
+          "System.Reflection": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.Collections.Immutable": {
+        "type": "Transitive",
+        "resolved": "1.7.1",
+        "contentHash": "B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q=="
+      },
+      "System.Collections.NonGeneric": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Collections.Specialized": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+        "dependencies": {
+          "System.Collections.NonGeneric": "4.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Globalization.Extensions": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.ComponentModel": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.ComponentModel.Annotations": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ=="
+      },
+      "System.ComponentModel.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+        "dependencies": {
+          "System.ComponentModel": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.ComponentModel.TypeConverter": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Collections.NonGeneric": "4.0.1",
+          "System.Collections.Specialized": "4.0.1",
+          "System.ComponentModel": "4.0.1",
+          "System.ComponentModel.Primitives": "4.1.0",
+          "System.Globalization": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Diagnostics.Contracts": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "HvQQjy712vnlpPxaloZYkuE78Gn353L0SJLJVeLcNASeg9c4qla2a1Xq8I7B3jZoDzKPtHTkyVO7AZ5tpeQGuA==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Diagnostics.Debug": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Diagnostics.DiagnosticSource": {
+        "type": "Transitive",
+        "resolved": "4.7.1",
+        "contentHash": "j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw=="
+      },
+      "System.Diagnostics.Tools": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Diagnostics.Tracing": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Globalization": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Globalization.Calendars": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "L1c6IqeQ88vuzC1P81JeHmHA8mxq8a18NUBNXnIY/BVb+TCyAaGIFbhpZt60h9FJNmisymoQkHEFSE9Vslja1Q==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Globalization.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "KKo23iKeOaIg61SSXwjANN7QYDr/3op3OWGGzDzz7mypx0Za0fZSeG0l6cco8Ntp8YMYkIQcAqlk8yhm5/Uhcg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.InteropServices": "4.1.0"
+        }
+      },
+      "System.IO": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.IO.FileSystem": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.IO": "4.3.0",
+          "System.IO.FileSystem.Primitives": "4.3.0",
+          "System.Runtime": "4.3.0",
+          "System.Runtime.Handles": "4.3.0",
+          "System.Text.Encoding": "4.3.0",
+          "System.Threading.Tasks": "4.3.0"
+        }
+      },
+      "System.IO.FileSystem.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+        "dependencies": {
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Linq": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "System.Linq.Expressions": {
+        "type": "Transitive",
+        "resolved": "4.1.1",
+        "contentHash": "bXwi8FrK/XIGPvtk1ZnawffhqLPyacj7dZnbFaV52YGaQigNqGEzNAByAIvL9FlEe3TCzoInorHF91IK//Q3Xg==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Linq": "4.1.0",
+          "System.ObjectModel": "4.0.12",
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Emit": "4.0.1",
+          "System.Reflection.Emit.ILGeneration": "4.0.1",
+          "System.Reflection.Emit.Lightweight": "4.0.1",
+          "System.Reflection.Extensions": "4.0.1",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Reflection.TypeExtensions": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Memory": {
+        "type": "Transitive",
+        "resolved": "4.5.3",
+        "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
+      },
+      "System.Net.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "hVvfl4405DRjA2408luZekbPhplJK03j2Y2lSfMlny7GHXlkByw1iLnc9mgKW0GdQn73vvMcWrWewAhylXA4Nw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Handles": "4.0.1"
+        }
+      },
+      "System.Net.WebSockets": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "2KJo8hir6Edi9jnMDAMhiJoI691xRBmKcbNpwjrvpIMOCTYOtBpSsSEGBxBDV7PKbasJNaFp1+PZz1D7xS41Hg==",
+        "dependencies": {
+          "Microsoft.Win32.Primitives": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.ObjectModel": {
+        "type": "Transitive",
+        "resolved": "4.0.12",
+        "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Reflection": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.IO": "4.1.0",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Reflection.Emit": {
+        "type": "Transitive",
+        "resolved": "4.7.0",
+        "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
+      },
+      "System.Reflection.Emit.ILGeneration": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+        "dependencies": {
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Reflection.Emit.Lightweight": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+        "dependencies": {
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Emit.ILGeneration": "4.0.1",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Reflection.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Reflection": "4.1.0",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Reflection.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Reflection.TypeExtensions": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
+        "dependencies": {
+          "System.Reflection": "4.1.0",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Resources.ResourceManager": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Globalization": "4.0.11",
+          "System.Reflection": "4.1.0",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Runtime": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0"
+        }
+      },
+      "System.Runtime.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Runtime.Handles": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Runtime.InteropServices": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Reflection": "4.1.0",
+          "System.Reflection.Primitives": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Handles": "4.0.1"
+        }
+      },
+      "System.Runtime.Numerics": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
+        "dependencies": {
+          "System.Globalization": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0"
+        }
+      },
+      "System.Runtime.Serialization.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.1.1",
+        "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+        "dependencies": {
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Security.Claims": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "4Jlp0OgJLS/Voj1kyFP6MJlIYp3crgfH8kNQk2p7+4JYfc1aAmh9PZyAMMbDhuoolGNtux9HqSOazsioRiDvCw==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Security.Principal": "4.0.1"
+        }
+      },
+      "System.Security.Cryptography.Algorithms": {
+        "type": "Transitive",
+        "resolved": "4.2.0",
+        "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "System.Collections": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Handles": "4.0.1",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Runtime.Numerics": "4.0.1",
+          "System.Security.Cryptography.Encoding": "4.0.0",
+          "System.Security.Cryptography.Primitives": "4.0.0",
+          "System.Text.Encoding": "4.0.11",
+          "runtime.native.System.Security.Cryptography": "4.0.0"
+        }
+      },
+      "System.Security.Cryptography.Cng": {
+        "type": "Transitive",
+        "resolved": "4.5.0",
+        "contentHash": "WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A=="
+      },
+      "System.Security.Cryptography.Csp": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "/i1Usuo4PgAqgbPNC0NjbO3jPW//BoBlTpcWFD1EHVbidH21y4c1ap5bbEMSGAXjAShhMH4abi/K8fILrnu4BQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "System.IO": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Handles": "4.0.1",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Security.Cryptography.Algorithms": "4.2.0",
+          "System.Security.Cryptography.Encoding": "4.0.0",
+          "System.Security.Cryptography.Primitives": "4.0.0",
+          "System.Text.Encoding": "4.0.11",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Security.Cryptography.Encoding": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "System.Collections": "4.0.11",
+          "System.Collections.Concurrent": "4.0.12",
+          "System.Linq": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Handles": "4.0.1",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Security.Cryptography.Primitives": "4.0.0",
+          "System.Text.Encoding": "4.0.11",
+          "runtime.native.System.Security.Cryptography": "4.0.0"
+        }
+      },
+      "System.Security.Cryptography.OpenSsl": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "HUG/zNUJwEiLkoURDixzkzZdB5yGA5pQhDP93ArOpDPQMteURIGERRNzzoJlmTreLBWr5lkFSjjMSk8ySEpQMw==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Handles": "4.0.1",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Runtime.Numerics": "4.0.1",
+          "System.Security.Cryptography.Algorithms": "4.2.0",
+          "System.Security.Cryptography.Encoding": "4.0.0",
+          "System.Security.Cryptography.Primitives": "4.0.0",
+          "System.Text.Encoding": "4.0.11",
+          "runtime.native.System.Security.Cryptography": "4.0.0"
+        }
+      },
+      "System.Security.Cryptography.Primitives": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.Security.Cryptography.X509Certificates": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "4HEfsQIKAhA1+ApNn729Gi09zh+lYWwyIuViihoMDWp1vQnEkL2ct7mAbhBlLYm+x/L4Rr/pyGge1lIY635e0w==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.Globalization.Calendars": "4.0.1",
+          "System.IO": "4.1.0",
+          "System.IO.FileSystem": "4.0.1",
+          "System.IO.FileSystem.Primitives": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.Handles": "4.0.1",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Runtime.Numerics": "4.0.1",
+          "System.Security.Cryptography.Algorithms": "4.2.0",
+          "System.Security.Cryptography.Cng": "4.2.0",
+          "System.Security.Cryptography.Csp": "4.0.0",
+          "System.Security.Cryptography.Encoding": "4.0.0",
+          "System.Security.Cryptography.OpenSsl": "4.0.0",
+          "System.Security.Cryptography.Primitives": "4.0.0",
+          "System.Text.Encoding": "4.0.11",
+          "System.Threading": "4.0.11",
+          "runtime.native.System": "4.0.0",
+          "runtime.native.System.Net.Http": "4.0.1",
+          "runtime.native.System.Security.Cryptography": "4.0.0"
+        }
+      },
+      "System.Security.Principal": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "On+SKhXY5rzxh/S8wlH1Rm0ogBlu7zyHNxeNBiXauNrhHRXAe9EuX8Yl5IOzLPGU5Z4kLWHMvORDOCG8iu9hww==",
+        "dependencies": {
+          "System.Runtime": "4.1.0"
+        }
+      },
+      "System.Text.Encoding": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Text.Encoding.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.0.1",
+          "Microsoft.NETCore.Targets": "1.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Text.Encoding": "4.0.11"
+        }
+      },
+      "System.Text.Encodings.Web": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "GgJDO6/1bW6kkttxIiPK2jsqllQ3ifaeeBAJJrcoJq0lAclIZsAZZdEqi6JHq+QLZXL2UsjyWb8K8EOH7nOSPw==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Text.Json": {
+        "type": "Transitive",
+        "resolved": "4.7.2",
+        "contentHash": "TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg=="
+      },
+      "System.Text.RegularExpressions": {
+        "type": "Transitive",
+        "resolved": "4.1.0",
+        "contentHash": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11"
+        }
+      },
+      "System.Threading": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==",
+        "dependencies": {
+          "System.Runtime": "4.1.0",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.Threading.Tasks": {
+        "type": "Transitive",
+        "resolved": "4.3.0",
+        "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+        "dependencies": {
+          "Microsoft.NETCore.Platforms": "1.1.0",
+          "Microsoft.NETCore.Targets": "1.1.0",
+          "System.Runtime": "4.3.0"
+        }
+      },
+      "System.Threading.Tasks.Extensions": {
+        "type": "Transitive",
+        "resolved": "4.0.0",
+        "contentHash": "pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Runtime": "4.1.0",
+          "System.Threading.Tasks": "4.0.11"
+        }
+      },
+      "System.Xml.ReaderWriter": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.IO.FileSystem": "4.0.1",
+          "System.IO.FileSystem.Primitives": "4.0.1",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Runtime.InteropServices": "4.1.0",
+          "System.Text.Encoding": "4.0.11",
+          "System.Text.Encoding.Extensions": "4.0.11",
+          "System.Text.RegularExpressions": "4.1.0",
+          "System.Threading.Tasks": "4.0.11",
+          "System.Threading.Tasks.Extensions": "4.0.0"
+        }
+      },
+      "System.Xml.XDocument": {
+        "type": "Transitive",
+        "resolved": "4.0.11",
+        "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Diagnostics.Tools": "4.0.1",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Reflection": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Text.Encoding": "4.0.11",
+          "System.Threading": "4.0.11",
+          "System.Xml.ReaderWriter": "4.0.11"
+        }
+      },
+      "System.Xml.XPath": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+        "dependencies": {
+          "System.Collections": "4.0.11",
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Globalization": "4.0.11",
+          "System.IO": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Xml.ReaderWriter": "4.0.11"
+        }
+      },
+      "System.Xml.XPath.XDocument": {
+        "type": "Transitive",
+        "resolved": "4.0.1",
+        "contentHash": "FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
+        "dependencies": {
+          "System.Diagnostics.Debug": "4.0.11",
+          "System.Linq": "4.1.0",
+          "System.Resources.ResourceManager": "4.0.1",
+          "System.Runtime": "4.1.0",
+          "System.Runtime.Extensions": "4.1.0",
+          "System.Threading": "4.0.11",
+          "System.Xml.ReaderWriter": "4.0.11",
+          "System.Xml.XDocument": "4.0.11",
+          "System.Xml.XPath": "4.0.1"
+        }
+      },
+      "timeline.errorcodes": {
+        "type": "Project"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/BackEnd/tools/convert-eol.py b/BackEnd/tools/convert-eol.py
new file mode 100644
index 00000000..3ea8ed7c
--- /dev/null
+++ b/BackEnd/tools/convert-eol.py
@@ -0,0 +1,35 @@
+# This is a python script that converts all text source codes into
+# CRLF (Windows line ending) eol format and UTF-8 with NO BOM encoding.
+
+import glob
+import os.path
+
+project_root = os.path.relpath(os.path.join(os.path.dirname(__file__), '..'))
+
+
+def convert(file_path):
+    with open(file_path, 'r', encoding='utf-8') as open_file:
+        content = open_file.read()
+
+    #if there is BOM, remove BOM
+    if content[0] == '\ufeff':
+        content = content[1:]
+
+    with open(file_path, 'w', encoding='utf-8', newline='\r\n') as open_file:
+        open_file.write(content)
+
+
+glob_list = [
+    './nuget.config',
+    '**/*.sln',
+    '**/*.cs',
+    '**/*.csproj',
+    '**/appsettings*.json'
+]
+
+for glob_pattern in glob_list:
+    for f in glob.glob(glob_pattern, recursive=True):
+        print('Converting {}'.format(f))
+        convert(f)
+
+print('Done!!!')
diff --git a/Directory.Build.props b/Directory.Build.props
deleted file mode 100644
index 5030ba17..00000000
--- a/Directory.Build.props
+++ /dev/null
@@ -1,6 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
-    <DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
-  </PropertyGroup>
-</Project>
diff --git a/Dockerfile b/Dockerfile
index 5be1d333..b9b958b0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,16 @@
-FROM crupest/timeline-build-env:latest AS build
-WORKDIR /timeline-app
-COPY . .
-RUN dotnet publish Timeline/Timeline.csproj --configuration Release --output ./Timeline/publish/ -r linux-x64 --self-contained false
-
-FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
-WORKDIR /app
-ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED true
-COPY --from=build /timeline-app/Timeline/publish .
-ENTRYPOINT ["dotnet", "Timeline.dll"]
+FROM node:latest AS front-build
+WORKDIR /timeline-app
+COPY FrontEnd .
+RUN yarn build
+
+FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS back-build
+WORKDIR /timeline-app
+COPY BackEnd .
+COPY --from=front-build /timeline-app/dist /timeline-app/Timeline/ClientApp
+RUN dotnet publish Timeline/Timeline.csproj --configuration Release --output ./Timeline/publish/ -r linux-x64 --self-contained false
+
+FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
+WORKDIR /app
+ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED true
+COPY --from=back-build /timeline-app/Timeline/publish .
+ENTRYPOINT ["dotnet", "Timeline.dll"]
diff --git a/FrontEnd/.babelrc b/FrontEnd/.babelrc
new file mode 100644
index 00000000..092f2f73
--- /dev/null
+++ b/FrontEnd/.babelrc
@@ -0,0 +1,27 @@
+{
+  "presets": [
+    "@babel/env",
+    "@babel/preset-react"
+  ],
+  "plugins": [
+    "@babel/plugin-syntax-dynamic-import",
+    "@babel/plugin-proposal-class-properties",
+    "@babel/plugin-proposal-optional-chaining",
+    "@babel/plugin-proposal-nullish-coalescing-operator",
+    [
+      "@babel/plugin-proposal-decorators",
+      {
+        "decoratorsBeforeExport": true
+      }
+    ],
+    [
+      "babel-plugin-transform-builtin-extend",
+      {
+        "globals": [
+          "Error",
+          "Array"
+        ]
+      }
+    ]
+  ]
+}
\ No newline at end of file
diff --git a/FrontEnd/.editorconfig b/FrontEnd/.editorconfig
new file mode 100644
index 00000000..779719e0
--- /dev/null
+++ b/FrontEnd/.editorconfig
@@ -0,0 +1,14 @@
+root = true
+end_of_line = lf
+
+[*.ts]
+tab_width = 2
+
+[*.tsx]
+tab_width = 2
+
+[*.css]
+tab_width = 2
+
+[*.sass]
+tab_width = 2
diff --git a/FrontEnd/.eslintignore b/FrontEnd/.eslintignore
new file mode 100644
index 00000000..f29f7466
--- /dev/null
+++ b/FrontEnd/.eslintignore
@@ -0,0 +1,6 @@
+.yarn
+node_modules
+dist
+webpack.*.js
+.eslintrc.js
+postcss.config.js
diff --git a/FrontEnd/.eslintrc.js b/FrontEnd/.eslintrc.js
new file mode 100644
index 00000000..900489ed
--- /dev/null
+++ b/FrontEnd/.eslintrc.js
@@ -0,0 +1,47 @@
+module.exports = {
+  env: {
+    browser: true,
+    es2020: true,
+  },
+  extends: [
+    "eslint:recommended",
+    "plugin:react/recommended",
+    "plugin:@typescript-eslint/eslint-recommended",
+    "plugin:@typescript-eslint/recommended",
+    "plugin:@typescript-eslint/recommended-requiring-type-checking",
+    "plugin:prettier/recommended",
+    "prettier/react",
+    "prettier/@typescript-eslint",
+    "plugin:react-hooks/recommended",
+  ],
+  globals: {
+    Atomics: "readonly",
+    SharedArrayBuffer: "readonly",
+  },
+  parser: "@typescript-eslint/parser",
+  parserOptions: {
+    project: ["./src/app/tsconfig.json", "./src/sw/tsconfig.json"],
+    ecmaFeatures: {
+      jsx: true,
+    },
+    sourceType: "module",
+  },
+  plugins: ["react", "@typescript-eslint", "react-hooks"],
+  settings: {
+    react: {
+      version: "detect",
+    },
+  },
+  rules: {
+    "react/prop-types": "off",
+    "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
+    "@typescript-eslint/explicit-function-return-type": [
+      "warn",
+      {
+        allowExpressions: true,
+        allowTypedFunctionExpressions: true,
+        allowHigherOrderFunctions: true,
+      },
+    ],
+  },
+};
diff --git a/FrontEnd/.gitattributes b/FrontEnd/.gitattributes
new file mode 100644
index 00000000..c1aa21ac
--- /dev/null
+++ b/FrontEnd/.gitattributes
@@ -0,0 +1 @@
+.yarn/** linguist-vendored
\ No newline at end of file
diff --git a/FrontEnd/.gitignore b/FrontEnd/.gitignore
new file mode 100644
index 00000000..1de0b58f
--- /dev/null
+++ b/FrontEnd/.gitignore
@@ -0,0 +1,32 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+
+.yarn/*
+!.yarn/cache
+!.yarn/releases
+!.yarn/plugins
+!.yarn/sdks
+!.yarn/versions
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+.vscode/launch.json
+
+/dist
\ No newline at end of file
diff --git a/FrontEnd/.pnp.js b/FrontEnd/.pnp.js
new file mode 100644
index 00000000..af643e73
--- /dev/null
+++ b/FrontEnd/.pnp.js
@@ -0,0 +1,24623 @@
+#!/usr/bin/env node
+/* eslint-disable */
+
+try {
+  Object.freeze({}).detectStrictMode = true;
+} catch (error) {
+  throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);
+}
+
+var __non_webpack_module__ = module;
+
+function $$SETUP_STATE(hydrateRuntimeState, basePath) {
+  return hydrateRuntimeState({
+    "__info": [
+      "This file is automatically generated. Do not touch it, or risk",
+      "your modifications being lost. We also recommend you not to read",
+      "it either without using the @yarnpkg/pnp package, as the data layout",
+      "is entirely unspecified and WILL change from a version to another."
+    ],
+    "dependencyTreeRoots": [
+      {
+        "name": "timeline",
+        "reference": "workspace:."
+      }
+    ],
+    "enableTopLevelFallback": true,
+    "ignorePatternData": "(^(?:\\.yarn\\/sdks(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)|$))$)",
+    "fallbackExclusionList": [
+      ["timeline", ["workspace:."]]
+    ],
+    "fallbackPool": [
+      [
+        "@babel/core",
+        "npm:7.12.3"
+      ],
+      [
+        "@babel/plugin-proposal-class-properties",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/plugin-proposal-decorators",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/plugin-proposal-nullish-coalescing-operator",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/plugin-proposal-optional-chaining",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/plugin-syntax-dynamic-import",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"
+      ],
+      [
+        "@babel/preset-env",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/preset-react",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@babel/preset-typescript",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
+      ],
+      [
+        "@hot-loader/react-dom",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"
+      ],
+      [
+        "@types/classnames",
+        "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"
+      ],
+      [
+        "@types/lodash",
+        "npm:4.14.162"
+      ],
+      [
+        "@types/node",
+        "npm:14.14.5"
+      ],
+      [
+        "@types/react",
+        "npm:16.9.53"
+      ],
+      [
+        "@types/react-dom",
+        "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"
+      ],
+      [
+        "@types/react-responsive",
+        "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"
+      ],
+      [
+        "@types/react-router",
+        "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"
+      ],
+      [
+        "@types/react-router-bootstrap",
+        "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"
+      ],
+      [
+        "@types/react-router-dom",
+        "npm:5.1.6"
+      ],
+      [
+        "@types/webpack-env",
+        "npm:1.15.3"
+      ],
+      [
+        "@types/xregexp",
+        "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"
+      ],
+      [
+        "@typescript-eslint/eslint-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"
+      ],
+      [
+        "@typescript-eslint/parser",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"
+      ],
+      [
+        "@yarnpkg/pnpify",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"
+      ],
+      [
+        "axios",
+        "npm:0.21.0"
+      ],
+      [
+        "babel-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"
+      ],
+      [
+        "babel-plugin-transform-builtin-extend",
+        "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"
+      ],
+      [
+        "bootstrap",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"
+      ],
+      [
+        "bootstrap-icons",
+        "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"
+      ],
+      [
+        "classnames",
+        "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"
+      ],
+      [
+        "clean-webpack-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"
+      ],
+      [
+        "clsx",
+        "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"
+      ],
+      [
+        "copy-webpack-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"
+      ],
+      [
+        "core-js",
+        "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"
+      ],
+      [
+        "css-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"
+      ],
+      [
+        "eslint",
+        "npm:7.12.1"
+      ],
+      [
+        "eslint-config-prettier",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"
+      ],
+      [
+        "eslint-plugin-import",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"
+      ],
+      [
+        "eslint-plugin-prettier",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"
+      ],
+      [
+        "eslint-plugin-react",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"
+      ],
+      [
+        "eslint-plugin-react-hooks",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"
+      ],
+      [
+        "file-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"
+      ],
+      [
+        "html-webpack-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"
+      ],
+      [
+        "http-server",
+        "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"
+      ],
+      [
+        "i18next",
+        "npm:19.8.3"
+      ],
+      [
+        "i18next-browser-languagedetector",
+        "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"
+      ],
+      [
+        "localforage",
+        "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"
+      ],
+      [
+        "lodash",
+        "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"
+      ],
+      [
+        "mini-css-extract-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"
+      ],
+      [
+        "pepjs",
+        "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"
+      ],
+      [
+        "postcss",
+        "npm:8.1.4"
+      ],
+      [
+        "postcss-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"
+      ],
+      [
+        "postcss-preset-env",
+        "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"
+      ],
+      [
+        "prettier",
+        "npm:2.1.2"
+      ],
+      [
+        "react",
+        "npm:17.0.1"
+      ],
+      [
+        "react-bootstrap",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"
+      ],
+      [
+        "react-dom",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"
+      ],
+      [
+        "react-hot-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"
+      ],
+      [
+        "react-i18next",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"
+      ],
+      [
+        "react-inlinesvg",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"
+      ],
+      [
+        "react-responsive",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
+      ],
+      [
+        "react-router",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"
+      ],
+      [
+        "react-router-bootstrap",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"
+      ],
+      [
+        "react-router-dom",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"
+      ],
+      [
+        "regenerator-runtime",
+        "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"
+      ],
+      [
+        "rxjs",
+        "npm:6.6.3"
+      ],
+      [
+        "sass",
+        "npm:1.27.0"
+      ],
+      [
+        "sass-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"
+      ],
+      [
+        "style-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"
+      ],
+      [
+        "ts-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"
+      ],
+      [
+        "typescript",
+        "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"
+      ],
+      [
+        "url-loader",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"
+      ],
+      [
+        "webpack",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"
+      ],
+      [
+        "webpack-chain",
+        "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"
+      ],
+      [
+        "webpack-cli",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"
+      ],
+      [
+        "webpack-dev-server",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"
+      ],
+      [
+        "workbox-precaching",
+        "npm:5.1.4"
+      ],
+      [
+        "workbox-routing",
+        "npm:5.1.4"
+      ],
+      [
+        "workbox-strategies",
+        "npm:5.1.4"
+      ],
+      [
+        "workbox-webpack-plugin",
+        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"
+      ],
+      [
+        "workbox-window",
+        "npm:5.1.4"
+      ],
+      [
+        "xregexp",
+        "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"
+      ]
+    ],
+    "locationBlacklistData": [
+    ],
+    "packageRegistryData": [
+      [null, [
+        [null, {
+          "packageLocation": "./",
+          "packageDependencies": [
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
+            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
+            ["@types/lodash", "npm:4.14.162"],
+            ["@types/node", "npm:14.14.5"],
+            ["@types/react", "npm:16.9.53"],
+            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
+            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
+            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
+            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
+            ["@types/react-router-dom", "npm:5.1.6"],
+            ["@types/webpack-env", "npm:1.15.3"],
+            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"],
+            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
+            ["axios", "npm:0.21.0"],
+            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
+            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
+            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
+            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"],
+            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
+            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
+            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"],
+            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
+            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"],
+            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
+            ["eslint", "npm:7.12.1"],
+            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
+            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
+            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
+            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
+            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
+            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
+            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
+            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
+            ["i18next", "npm:19.8.3"],
+            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
+            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
+            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"],
+            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
+            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"],
+            ["postcss", "npm:8.1.4"],
+            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
+            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
+            ["prettier", "npm:2.1.2"],
+            ["react", "npm:17.0.1"],
+            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
+            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
+            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
+            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
+            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
+            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
+            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
+            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"],
+            ["rxjs", "npm:6.6.3"],
+            ["sass", "npm:1.27.0"],
+            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
+            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
+            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
+            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
+            ["workbox-precaching", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"],
+            ["workbox-strategies", "npm:5.1.4"],
+            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
+            ["workbox-window", "npm:5.1.4"],
+            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"]
+          ],
+          "linkType": "SOFT",
+        }]
+      ]],
+      ["@arcanis/slice-ansi", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/@arcanis-slice-ansi-npm-1.0.2-3399f11032-1b45393630.zip/node_modules/@arcanis/slice-ansi/",
+          "packageDependencies": [
+            ["@arcanis/slice-ansi", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"],
+            ["grapheme-splitter", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/code-frame", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.10.4-d60353f0ee-05245d3b22.zip/node_modules/@babel/code-frame/",
+          "packageDependencies": [
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/highlight", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/compat-data", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.10.5-db91396185-788af12585.zip/node_modules/@babel/compat-data/",
+          "packageDependencies": [
+            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.12.1-ff8fb4ad3c-07bc6cfe7c.zip/node_modules/@babel/compat-data/",
+          "packageDependencies": [
+            ["@babel/compat-data", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/core", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-core-npm-7.10.5-043d657282-1b7ddcb578.zip/node_modules/@babel/core/",
+          "packageDependencies": [
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helpers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"],
+            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"],
+            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.3", {
+          "packageLocation": "./.yarn/cache/@babel-core-npm-7.12.3-209b619ca0-110eb092da.zip/node_modules/@babel/core/",
+          "packageDependencies": [
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/generator", "npm:7.12.1"],
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helpers", "npm:7.12.1"],
+            ["@babel/parser", "npm:7.12.3"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"],
+            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"],
+            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/generator", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-generator-npm-7.10.5-71f4e9529f-6e3fd80652.zip/node_modules/@babel/generator/",
+          "packageDependencies": [
+            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"],
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-generator-npm-7.12.1-0393b23d99-e0f5f9af4f.zip/node_modules/@babel/generator/",
+          "packageDependencies": [
+            ["@babel/generator", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"],
+            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"],
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-annotate-as-pure", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.10.4-5e73462a5b-535cdf631e.zip/node_modules/@babel/helper-annotate-as-pure/",
+          "packageDependencies": [
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-builder-binary-assignment-operator-visitor", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.10.4-3a79b20e7c-369530a197.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/",
+          "packageDependencies": [
+            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
+            ["@babel/helper-explode-assignable-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-builder-react-jsx", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-npm-7.10.4-cd8f2b293a-f14f786b5e.zip/node_modules/@babel/helper-builder-react-jsx/",
+          "packageDependencies": [
+            ["@babel/helper-builder-react-jsx", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-builder-react-jsx-experimental", [
+        ["npm:7.12.4", {
+          "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-experimental-npm-7.12.4-306a4f5134-246b77aedf.zip/node_modules/@babel/helper-builder-react-jsx-experimental/",
+          "packageDependencies": [
+            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-module-imports", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-compilation-targets", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-5494b19fb6/0/cache/@babel-helper-compilation-targets-npm-7.10.4-a08cf328fe-7603388e45.zip/node_modules/@babel/helper-compilation-targets/",
+          "packageDependencies": [
+            ["@babel/helper-compilation-targets", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"],
+            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-29b8888832/0/cache/@babel-helper-compilation-targets-npm-7.12.1-e64d3ac038-a1b750f327.zip/node_modules/@babel/helper-compilation-targets/",
+          "packageDependencies": [
+            ["@babel/helper-compilation-targets", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/compat-data", "npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-validator-option", "npm:7.12.1"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-create-class-features-plugin", [
+        ["virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-a0ec9b69e6/0/cache/@babel-helper-create-class-features-plugin-npm-7.12.1-fc3d37998d-d686eae70d.zip/node_modules/@babel/helper-create-class-features-plugin/",
+          "packageDependencies": [
+            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.12.1"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-5cd799b4bc/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-80d2a751d6-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/",
+          "packageDependencies": [
+            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-create-regexp-features-plugin", [
+        ["virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-8e53062a5c/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-286ead1d54-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
+          "packageDependencies": [
+            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
+            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-d5d39da724/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-286ead1d54-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
+          "packageDependencies": [
+            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
+            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-71fb705426/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.1-ad23561fb3-bf4b72eaed.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
+          "packageDependencies": [
+            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
+            ["regexpu-core", "npm:4.7.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-define-map", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-define-map-npm-7.10.5-5a5c5cfe1a-964cab640d.zip/node_modules/@babel/helper-define-map/",
+          "packageDependencies": [
+            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-explode-assignable-expression", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.10.4-35cfe3b5dc-3348549a83.zip/node_modules/@babel/helper-explode-assignable-expression/",
+          "packageDependencies": [
+            ["@babel/helper-explode-assignable-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-function-name", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.10.4-ff6a6b30cc-41ab8f48bb.zip/node_modules/@babel/helper-function-name/",
+          "packageDependencies": [
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-get-function-arity", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-get-function-arity-npm-7.10.4-4a5869df9b-4f0ddd4340.zip/node_modules/@babel/helper-get-function-arity/",
+          "packageDependencies": [
+            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-hoist-variables", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.10.4-6ecc145822-0bc1976366.zip/node_modules/@babel/helper-hoist-variables/",
+          "packageDependencies": [
+            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-member-expression-to-functions", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.10.5-bc2b927e68-f239d2dfdb.zip/node_modules/@babel/helper-member-expression-to-functions/",
+          "packageDependencies": [
+            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.12.1-cae2fe0eb8-ae0cd0594b.zip/node_modules/@babel/helper-member-expression-to-functions/",
+          "packageDependencies": [
+            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-module-imports", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.10.4-6285a48cf9-84d03b58e7.zip/node_modules/@babel/helper-module-imports/",
+          "packageDependencies": [
+            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.12.1-05e0e0f572-261205f2e2.zip/node_modules/@babel/helper-module-imports/",
+          "packageDependencies": [
+            ["@babel/helper-module-imports", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-module-transforms", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.10.5-670b9a032e-02a2b60705.zip/node_modules/@babel/helper-module-transforms/",
+          "packageDependencies": [
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
+            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.12.1-c42d2455d3-902ed2b8e9.zip/node_modules/@babel/helper-module-transforms/",
+          "packageDependencies": [
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helper-module-imports", "npm:7.12.1"],
+            ["@babel/helper-replace-supers", "npm:7.12.1"],
+            ["@babel/helper-simple-access", "npm:7.12.1"],
+            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-optimise-call-expression", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.10.4-b0f3f8cb59-70dd5a6daf.zip/node_modules/@babel/helper-optimise-call-expression/",
+          "packageDependencies": [
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-plugin-utils", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.10.4-cf0f7602ce-9f617e619a.zip/node_modules/@babel/helper-plugin-utils/",
+          "packageDependencies": [
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-regex", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-regex-npm-7.10.5-224e7c8b7c-956b9f22da.zip/node_modules/@babel/helper-regex/",
+          "packageDependencies": [
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-remap-async-to-generator", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.10.4-d52ad69f4b-258395dbab.zip/node_modules/@babel/helper-remap-async-to-generator/",
+          "packageDependencies": [
+            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.12.1-ed3338b613-8bc24e91f1.zip/node_modules/@babel/helper-remap-async-to-generator/",
+          "packageDependencies": [
+            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-replace-supers", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.10.4-e79f3d5cdf-2d7e0627cd.zip/node_modules/@babel/helper-replace-supers/",
+          "packageDependencies": [
+            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
+            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.12.1-59788d975f-e745f78b48.zip/node_modules/@babel/helper-replace-supers/",
+          "packageDependencies": [
+            ["@babel/helper-replace-supers", "npm:7.12.1"],
+            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-simple-access", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.10.4-1efd2d09c0-a7ce52a229.zip/node_modules/@babel/helper-simple-access/",
+          "packageDependencies": [
+            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.12.1-18caff947e-ca44e3f694.zip/node_modules/@babel/helper-simple-access/",
+          "packageDependencies": [
+            ["@babel/helper-simple-access", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-skip-transparent-expression-wrappers", [
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-2e690ed565.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/",
+          "packageDependencies": [
+            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-split-export-declaration", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.10.4-6e04a73c77-d8536faa40.zip/node_modules/@babel/helper-split-export-declaration/",
+          "packageDependencies": [
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.11.0-dfda667eda-ddfc44d0cf.zip/node_modules/@babel/helper-split-export-declaration/",
+          "packageDependencies": [
+            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
+            ["@babel/types", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-validator-identifier", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.10.4-48880862ef-25098ef842.zip/node_modules/@babel/helper-validator-identifier/",
+          "packageDependencies": [
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-validator-option", [
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.12.1-617a30f6da-5d9a8f6750.zip/node_modules/@babel/helper-validator-option/",
+          "packageDependencies": [
+            ["@babel/helper-validator-option", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helper-wrap-function", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.10.4-aeb6ce7009-4d5fe2db33.zip/node_modules/@babel/helper-wrap-function/",
+          "packageDependencies": [
+            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/helpers", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.10.4-98f0263df3-96859c490a.zip/node_modules/@babel/helpers/",
+          "packageDependencies": [
+            ["@babel/helpers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.12.1-f49f1f0987-bbea976e69.zip/node_modules/@babel/helpers/",
+          "packageDependencies": [
+            ["@babel/helpers", "npm:7.12.1"],
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/traverse", "npm:7.12.1"],
+            ["@babel/types", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/highlight", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.10.4-e797e1614e-c167b938af.zip/node_modules/@babel/highlight/",
+          "packageDependencies": [
+            ["@babel/highlight", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
+            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/parser", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-parser-npm-7.10.5-59b0f0dded-c7b4d7183f.zip/node_modules/@babel/parser/",
+          "packageDependencies": [
+            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.3", {
+          "packageLocation": "./.yarn/cache/@babel-parser-npm-7.12.3-31a5d8fff8-3605bcf97e.zip/node_modules/@babel/parser/",
+          "packageDependencies": [
+            ["@babel/parser", "npm:7.12.3"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-async-generator-functions", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-9e7a4e72f2/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-a4d63fbc72-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-async-generator-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"],
+            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-8d6b6c4afa/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.12.1-f71278c3bd-59f8c4e469.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-async-generator-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"],
+            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-class-properties", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-f86dc02741/0/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-169fe0dcbf-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-c7aa0eaea9/0/cache/@babel-plugin-proposal-class-properties-npm-7.12.1-002e18ae19-690cbec3df.zip/node_modules/@babel/plugin-proposal-class-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-decorators", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-decorators-virtual-85e0b790d9/0/cache/@babel-plugin-proposal-decorators-npm-7.12.1-ea39b1910c-148c01c4ce.zip/node_modules/@babel/plugin-proposal-decorators/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-decorators", "virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-dynamic-import", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-13103e6b04/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-6fba0608fa-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-717437757a/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.12.1-b81c2ca860-4428439b48.zip/node_modules/@babel/plugin-proposal-dynamic-import/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-dynamic-import", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-export-namespace-from", [
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-export-namespace-from-virtual-3dc7646931/0/cache/@babel-plugin-proposal-export-namespace-from-npm-7.12.1-5532ca81a9-ae5317ca00.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-json-strings", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-bbf573c5ac/0/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-57f37b8a72-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-2a3f7d2cee/0/cache/@babel-plugin-proposal-json-strings-npm-7.12.1-92e281e511-fbe4f3241c.zip/node_modules/@babel/plugin-proposal-json-strings/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-logical-assignment-operators", [
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-logical-assignment-operators-virtual-b4842b313b/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.12.1-5403a64ecb-08af656aaa.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-nullish-coalescing-operator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-33fc9053a8/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-de1cff6588-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-ea79097dbe/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.12.1-6c48e82bfa-9c825901a1.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-numeric-separator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-71cfec60f9/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-4723c89d30-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-0a758764ae/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.12.1-b49ab1b6bd-7c825cc903.zip/node_modules/@babel/plugin-proposal-numeric-separator/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-object-rest-spread", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-7e4ca44892/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-bbab266965-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-84320d11a8/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.12.1-23ec83a49a-d14fc95dad.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-optional-catch-binding", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-f2408c9714/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-7e0f318dfc-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-cda3c55273/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.12.1-c517c19ef1-ca8c20fb73.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-optional-chaining", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-aef3f0fb00/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-24a040b446-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-4c9e5cb020/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.12.1-14658e6b1e-3cca1bf3b3.zip/node_modules/@babel/plugin-proposal-optional-chaining/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],
+            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-private-methods", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-methods-virtual-414f967c01/0/cache/@babel-plugin-proposal-private-methods-npm-7.10.4-5b2cb8662f-7a29e63aaf.zip/node_modules/@babel/plugin-proposal-private-methods/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-private-methods", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-methods-virtual-4a7a02e044/0/cache/@babel-plugin-proposal-private-methods-npm-7.12.1-da0018e1a0-350a1a8c3d.zip/node_modules/@babel/plugin-proposal-private-methods/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-private-methods", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-proposal-unicode-property-regex", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-4a3f57e5a3/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-eff001b998-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-a37f57cc26/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.1-bc433228ec-b960b8c1af.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-2274684372/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-eff001b998-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-async-generators", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-36ca23c90c/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-149971faf5-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-592a421f97/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-149971faf5-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-class-properties", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-3ab028612c/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-33690cde9b-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-38b6c3e57e/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.1-4ba7624aa7-b5e354a0cd.zip/node_modules/@babel/plugin-syntax-class-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-class-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-decorators", [
+        ["virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-decorators-virtual-bc3faec312/0/cache/@babel-plugin-syntax-decorators-npm-7.12.1-cea73d51f1-c64b9eedfd.zip/node_modules/@babel/plugin-syntax-decorators/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-decorators", "virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-dynamic-import", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-fa1d7a7023/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-d93fc82802-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-2e0c56d63e/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-d93fc82802-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-export-namespace-from", [
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-export-namespace-from-virtual-bbff9bcfc2/0/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-4b4610d529-832e007319.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-json-strings", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-c69dc7670a/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-ce7987f347-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-9625486ddb/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-ce7987f347-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-jsx", [
+        ["virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-40c32ad61e/0/cache/@babel-plugin-syntax-jsx-npm-7.12.1-fec38141bc-2f0314608b.zip/node_modules/@babel/plugin-syntax-jsx/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-logical-assignment-operators", [
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-bce9a0915e/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-35a8612a0a-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-nullish-coalescing-operator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-9479fd2254/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-5740884dde-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-8c906b14cd/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-5740884dde-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-numeric-separator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-2e5c89cfb7/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-1c8f950eaa-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-0a46ec027d/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-1c8f950eaa-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-object-rest-spread", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-b592738781/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-1c6d3f0524-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-757d59f5a3/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-1c6d3f0524-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-optional-catch-binding", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-9487dfa1f5/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-6a0d3e7565-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-af7d8dde38/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-6a0d3e7565-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-optional-chaining", [
+        ["virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-45c27d2c35/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-62970aee46-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-9645b05e35/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-62970aee46-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-top-level-await", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-84c67015da/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e4c4166480-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-top-level-await", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-5d16bec83c/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.1-d8555be35e-9767e46ddc.zip/node_modules/@babel/plugin-syntax-top-level-await/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-top-level-await", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-syntax-typescript", [
+        ["virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-f8eb80ff61/0/cache/@babel-plugin-syntax-typescript-npm-7.12.1-5cfe86494a-37bdb82891.zip/node_modules/@babel/plugin-syntax-typescript/",
+          "packageDependencies": [
+            ["@babel/plugin-syntax-typescript", "virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-arrow-functions", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-810d5d032a/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-dcee1b623d-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-arrow-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-51fe467ba2/0/cache/@babel-plugin-transform-arrow-functions-npm-7.12.1-559a4078ed-602be39f30.zip/node_modules/@babel/plugin-transform-arrow-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-arrow-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-async-to-generator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-a88d55e9ca/0/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-5de1d3a103-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-async-to-generator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-8be17a0daa/0/cache/@babel-plugin-transform-async-to-generator-npm-7.12.1-a5107a2a59-96a48e5cbf.zip/node_modules/@babel/plugin-transform-async-to-generator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-async-to-generator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-module-imports", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-block-scoped-functions", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-fe31826fb8/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-6787915d0b-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-block-scoped-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-20db75b1b8/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.1-4ddf1c64a0-2da63c6b92.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-block-scoped-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-block-scoping", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-5f56674e24/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-85771bcdae-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-block-scoping", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-52f95ea93a/0/cache/@babel-plugin-transform-block-scoping-npm-7.12.1-d0c7a9d5f7-067f8b55a3.zip/node_modules/@babel/plugin-transform-block-scoping/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-block-scoping", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-classes", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-80380fe738/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d22e940336-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-classes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
+            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-de86d3ba12/0/cache/@babel-plugin-transform-classes-npm-7.12.1-fc8ee4e566-ae895d1a20.zip/node_modules/@babel/plugin-transform-classes/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-classes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.12.1"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
+            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-computed-properties", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-386e362640/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-5acbc51c51-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-computed-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-1fe9232d9e/0/cache/@babel-plugin-transform-computed-properties-npm-7.12.1-322012d191-b3680b9c03.zip/node_modules/@babel/plugin-transform-computed-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-computed-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-destructuring", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-ff19e6c20a/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-ef79524275-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-destructuring", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-38dee94864/0/cache/@babel-plugin-transform-destructuring-npm-7.12.1-fa3ad97f82-704057fa7c.zip/node_modules/@babel/plugin-transform-destructuring/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-destructuring", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-dotall-regex", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-cffbcf96d2/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-0168d189ac-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-221ee6abfa/0/cache/@babel-plugin-transform-dotall-regex-npm-7.12.1-57f977d6c3-dd522110c9.zip/node_modules/@babel/plugin-transform-dotall-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-dotall-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-473e6d20c4/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-0168d189ac-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-dotall-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-duplicate-keys", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-57861e327c/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-cea8ef411f-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-duplicate-keys", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-8dfd176e4a/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.1-2ee786bbf3-a8c45815fb.zip/node_modules/@babel/plugin-transform-duplicate-keys/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-duplicate-keys", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-exponentiation-operator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-5fb544c7a7/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-9862c4be23-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-exponentiation-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-2742ba5e14/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.1-271f649ee1-9a01b93506.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-exponentiation-operator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-for-of", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-ad4cd59b90/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-552f4d0a73-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-for-of", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-ae3edc0804/0/cache/@babel-plugin-transform-for-of-npm-7.12.1-93111bd158-d51761cecb.zip/node_modules/@babel/plugin-transform-for-of/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-for-of", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-function-name", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-95c25fc2ab/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-3d9bd4cc22-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-function-name", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-a1f5df4630/0/cache/@babel-plugin-transform-function-name-npm-7.12.1-6ce3ca221a-7dff23e9b5.zip/node_modules/@babel/plugin-transform-function-name/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-function-name", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-literals", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-7132ebaa96/0/cache/@babel-plugin-transform-literals-npm-7.10.4-a34bf6f972-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-ed7e17bd1b/0/cache/@babel-plugin-transform-literals-npm-7.12.1-6660b188a4-1bc7a828e0.zip/node_modules/@babel/plugin-transform-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-member-expression-literals", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-15493dd866/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-ec6b2ea122-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-member-expression-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-c334bf6788/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.1-c5b80ce730-2a216ee882.zip/node_modules/@babel/plugin-transform-member-expression-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-member-expression-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-modules-amd", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-a241436ea0/0/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-8b6244dc4f-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-amd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-6548f16ce3/0/cache/@babel-plugin-transform-modules-amd-npm-7.12.1-8fe2fb8398-0b22d7ccf3.zip/node_modules/@babel/plugin-transform-modules-amd/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-amd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-modules-commonjs", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-07d0f35dbd/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-3e7497f7dd-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-commonjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-9408b98e95/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.12.1-ccf6f4a926-7201ad5f82.zip/node_modules/@babel/plugin-transform-modules-commonjs/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-commonjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-simple-access", "npm:7.12.1"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-modules-systemjs", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-f83ef5a9f7/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-1a8c89fe70-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-systemjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-c5fbb9f0ee/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.12.1-c1130bdc6f-f47d070eda.zip/node_modules/@babel/plugin-transform-modules-systemjs/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-systemjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-modules-umd", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-09f344f76d/0/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-285f5a9cb0-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-umd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-4d681bc4c2/0/cache/@babel-plugin-transform-modules-umd-npm-7.12.1-dde38f73c4-9998266d1e.zip/node_modules/@babel/plugin-transform-modules-umd/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-modules-umd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-module-transforms", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-named-capturing-groups-regex", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-9aa7abc24e/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-1a1a108814-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-b2b97ecfdc/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.1-a248616e23-96eb5b3587.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-new-target", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-7ef8b9b62f/0/cache/@babel-plugin-transform-new-target-npm-7.10.4-10b38ec6b0-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-new-target", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-7457cb5111/0/cache/@babel-plugin-transform-new-target-npm-7.12.1-4c61f9b33d-d3b9f4f0c2.zip/node_modules/@babel/plugin-transform-new-target/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-new-target", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-object-super", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-1fdc543532/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-9ec43ad72e-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-object-super", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-f573e2d75a/0/cache/@babel-plugin-transform-object-super-npm-7.12.1-5cfdb6a439-36cc06f539.zip/node_modules/@babel/plugin-transform-object-super/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-object-super", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-replace-supers", "npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-parameters", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-dd71392a6b/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-da0bd6bad6-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-23e059dc6a/0/cache/@babel-plugin-transform-parameters-npm-7.12.1-1fa4e26d98-a968ef99b6.zip/node_modules/@babel/plugin-transform-parameters/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-property-literals", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-7dd9b39b01/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-6b2de658db-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-property-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-bd1e7ac6d9/0/cache/@babel-plugin-transform-property-literals-npm-7.12.1-e86a3c4f5d-dff34b03d8.zip/node_modules/@babel/plugin-transform-property-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-property-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-display-name", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-3e43f8c9d2/0/cache/@babel-plugin-transform-react-display-name-npm-7.12.1-f87cd6aece-88d6819169.zip/node_modules/@babel/plugin-transform-react-display-name/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-display-name", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-jsx", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-2ad6e3f2dc/0/cache/@babel-plugin-transform-react-jsx-npm-7.12.1-245cf38589-58dbb169e2.zip/node_modules/@babel/plugin-transform-react-jsx/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-jsx", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-builder-react-jsx", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"],
+            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-jsx-development", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-development-virtual-b5a3a18da0/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.1-6051c97a60-2af1228b5e.zip/node_modules/@babel/plugin-transform-react-jsx-development/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-jsx-development", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-jsx-self", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-fb3c49a51c/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.1-2ae86fea23-89401f14f3.zip/node_modules/@babel/plugin-transform-react-jsx-self/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-jsx-self", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-jsx-source", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-4335c185b6/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.12.1-9cda868b67-d5fd8818ad.zip/node_modules/@babel/plugin-transform-react-jsx-source/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-jsx-source", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-react-pure-annotations", [
+        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-pure-annotations-virtual-6077971575/0/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-b1984954da.zip/node_modules/@babel/plugin-transform-react-pure-annotations/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-react-pure-annotations", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-regenerator", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-4b38f49099/0/cache/@babel-plugin-transform-regenerator-npm-7.10.4-3592e1fe8d-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-regenerator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-a5173b0d4c/0/cache/@babel-plugin-transform-regenerator-npm-7.12.1-aba30ba094-a1722c2847.zip/node_modules/@babel/plugin-transform-regenerator/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-regenerator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-reserved-words", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-d75bb5ef70/0/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-c2a9152983-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-reserved-words", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-6d3529435c/0/cache/@babel-plugin-transform-reserved-words-npm-7.12.1-7930992fe4-41f589086b.zip/node_modules/@babel/plugin-transform-reserved-words/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-reserved-words", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-shorthand-properties", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-6de49b55da/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-9adc4ae66c-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-shorthand-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-9e1d64242e/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.1-e012360208-36cd37c9dd.zip/node_modules/@babel/plugin-transform-shorthand-properties/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-shorthand-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-spread", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-629a5cb18c/0/cache/@babel-plugin-transform-spread-npm-7.10.4-04602f43c6-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-86b994248f/0/cache/@babel-plugin-transform-spread-npm-7.12.1-35eddf11b1-905e1872e3.zip/node_modules/@babel/plugin-transform-spread/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-sticky-regex", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-52fcf1735a/0/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-18c5345a64-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-sticky-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-704be710c9/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.1-c9b73885f9-c7d0f39481.zip/node_modules/@babel/plugin-transform-sticky-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-sticky-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-template-literals", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-53bbecc802/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-c2c3a22f4a-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-template-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-a42c71bea2/0/cache/@babel-plugin-transform-template-literals-npm-7.12.1-a0bc53e621-2e37a8efa3.zip/node_modules/@babel/plugin-transform-template-literals/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-template-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-typeof-symbol", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-f5cf9a9616/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-d111400431-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-typeof-symbol", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-5ef9a68f13/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.1-66419b0948-73bb34cb44.zip/node_modules/@babel/plugin-transform-typeof-symbol/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-typeof-symbol", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-typescript", [
+        ["virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-a44f545bbc/0/cache/@babel-plugin-transform-typescript-npm-7.12.1-65fd903ac4-d93737e235.zip/node_modules/@babel/plugin-transform-typescript/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-typescript", "virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-syntax-typescript", "virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-unicode-escapes", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-escapes-virtual-7c5ad4e09c/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.10.4-e9c8ca4a01-c7467a508f.zip/node_modules/@babel/plugin-transform-unicode-escapes/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-unicode-escapes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-escapes-virtual-42f9337b0c/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.1-bacb2035a1-40f57b173a.zip/node_modules/@babel/plugin-transform-unicode-escapes/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-unicode-escapes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/plugin-transform-unicode-regex", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-6325de4acc/0/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-9982080bf3-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-unicode-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-798aee163a/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.1-99d75a41c7-411ddc96ef.zip/node_modules/@babel/plugin-transform-unicode-regex/",
+          "packageDependencies": [
+            ["@babel/plugin-transform-unicode-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/preset-env", [
+        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-627fc4c24d/0/cache/@babel-preset-env-npm-7.10.4-2e0b9e093e-c13fe3c2c4.zip/node_modules/@babel/preset-env/",
+          "packageDependencies": [
+            ["@babel/preset-env", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"],
+            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-compilation-targets", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"],
+            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-proposal-async-generator-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"],
+            ["@babel/plugin-proposal-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"],
+            ["@babel/plugin-proposal-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"],
+            ["@babel/plugin-proposal-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"],
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"],
+            ["@babel/plugin-proposal-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"],
+            ["@babel/plugin-proposal-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"],
+            ["@babel/plugin-proposal-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"],
+            ["@babel/plugin-proposal-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"],
+            ["@babel/plugin-proposal-private-methods", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"],
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
+            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
+            ["@babel/plugin-syntax-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
+            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
+            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
+            ["@babel/plugin-syntax-top-level-await", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"],
+            ["@babel/plugin-transform-arrow-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"],
+            ["@babel/plugin-transform-async-to-generator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"],
+            ["@babel/plugin-transform-block-scoped-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"],
+            ["@babel/plugin-transform-block-scoping", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"],
+            ["@babel/plugin-transform-classes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"],
+            ["@babel/plugin-transform-computed-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"],
+            ["@babel/plugin-transform-destructuring", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"],
+            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
+            ["@babel/plugin-transform-duplicate-keys", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"],
+            ["@babel/plugin-transform-exponentiation-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"],
+            ["@babel/plugin-transform-for-of", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"],
+            ["@babel/plugin-transform-function-name", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"],
+            ["@babel/plugin-transform-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"],
+            ["@babel/plugin-transform-member-expression-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"],
+            ["@babel/plugin-transform-modules-amd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"],
+            ["@babel/plugin-transform-modules-commonjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"],
+            ["@babel/plugin-transform-modules-systemjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"],
+            ["@babel/plugin-transform-modules-umd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"],
+            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"],
+            ["@babel/plugin-transform-new-target", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"],
+            ["@babel/plugin-transform-object-super", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"],
+            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"],
+            ["@babel/plugin-transform-property-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"],
+            ["@babel/plugin-transform-regenerator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"],
+            ["@babel/plugin-transform-reserved-words", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"],
+            ["@babel/plugin-transform-shorthand-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"],
+            ["@babel/plugin-transform-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"],
+            ["@babel/plugin-transform-sticky-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"],
+            ["@babel/plugin-transform-template-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"],
+            ["@babel/plugin-transform-typeof-symbol", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"],
+            ["@babel/plugin-transform-unicode-escapes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"],
+            ["@babel/plugin-transform-unicode-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"],
+            ["@babel/preset-modules", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-8425be2ae1/0/cache/@babel-preset-env-npm-7.12.1-650243ace6-32a9f56fc4.zip/node_modules/@babel/preset-env/",
+          "packageDependencies": [
+            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/compat-data", "npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-compilation-targets", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/helper-module-imports", "npm:7.12.1"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/helper-validator-option", "npm:7.12.1"],
+            ["@babel/plugin-proposal-async-generator-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-dynamic-import", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-private-methods", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
+            ["@babel/plugin-syntax-class-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"],
+            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
+            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"],
+            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
+            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
+            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
+            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
+            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
+            ["@babel/plugin-syntax-top-level-await", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-arrow-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-async-to-generator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-block-scoped-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-block-scoping", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-classes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-computed-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-destructuring", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-dotall-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-duplicate-keys", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-exponentiation-operator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-for-of", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-function-name", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-member-expression-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-modules-amd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-modules-commonjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-modules-systemjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-modules-umd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-new-target", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-object-super", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-property-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-regenerator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-reserved-words", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-shorthand-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-sticky-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-template-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-typeof-symbol", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-unicode-escapes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/plugin-transform-unicode-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
+            ["@babel/preset-modules", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
+            ["@babel/types", "npm:7.12.1"],
+            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/preset-modules", [
+        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-2af56730b5/0/cache/@babel-preset-modules-npm-0.1.3-291f9bf1e6-341c13de18.zip/node_modules/@babel/preset-modules/",
+          "packageDependencies": [
+            ["@babel/preset-modules", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
+            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-930582beed/0/cache/@babel-preset-modules-npm-0.1.3-291f9bf1e6-341c13de18.zip/node_modules/@babel/preset-modules/",
+          "packageDependencies": [
+            ["@babel/preset-modules", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-proposal-unicode-property-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
+            ["@babel/plugin-transform-dotall-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/preset-react", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-react-virtual-fd3ed4c28c/0/cache/@babel-preset-react-npm-7.12.1-6e115c578f-67219d3311.zip/node_modules/@babel/preset-react/",
+          "packageDependencies": [
+            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-transform-react-display-name", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/plugin-transform-react-jsx", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/plugin-transform-react-jsx-development", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/plugin-transform-react-jsx-self", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/plugin-transform-react-jsx-source", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
+            ["@babel/plugin-transform-react-pure-annotations", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/preset-typescript", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
+          "packageLocation": "./.yarn/$$virtual/@babel-preset-typescript-virtual-f41acb257a/0/cache/@babel-preset-typescript-npm-7.12.1-92b86dd2dd-730eb743a4.zip/node_modules/@babel/preset-typescript/",
+          "packageDependencies": [
+            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
+            ["@babel/plugin-transform-typescript", "virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "@babel/core"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/runtime", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.10.5-31abd4e536-222bc7c75b.zip/node_modules/@babel/runtime/",
+          "packageDependencies": [
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.11.2-84d52b99b9-2f127ad60a.zip/node_modules/@babel/runtime/",
+          "packageDependencies": [
+            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
+            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-979d1c099c.zip/node_modules/@babel/runtime/",
+          "packageDependencies": [
+            ["@babel/runtime", "npm:7.12.1"],
+            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/runtime-corejs3", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-runtime-corejs3-npm-7.10.5-15dc49d6b2-fc1caee034.zip/node_modules/@babel/runtime-corejs3/",
+          "packageDependencies": [
+            ["@babel/runtime-corejs3", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"],
+            ["core-js-pure", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"],
+            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/template", [
+        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-template-npm-7.10.4-766bb21b38-23a5c4f7ab.zip/node_modules/@babel/template/",
+          "packageDependencies": [
+            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/traverse", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.10.5-1e7fd7cbf4-4292255a99.zip/node_modules/@babel/traverse/",
+          "packageDependencies": [
+            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
+            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.12.1-69ebf4b2f2-a3040d94b7.zip/node_modules/@babel/traverse/",
+          "packageDependencies": [
+            ["@babel/traverse", "npm:7.12.1"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@babel/generator", "npm:7.12.1"],
+            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
+            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
+            ["@babel/parser", "npm:7.12.3"],
+            ["@babel/types", "npm:7.12.1"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@babel/types", [
+        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-types-npm-7.10.5-afbaf89018-00bdeb6f46.zip/node_modules/@babel/types/",
+          "packageDependencies": [
+            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz", {
+          "packageLocation": "./.yarn/cache/@babel-types-npm-7.11.0-b26eec3349-46e2fcd49d.zip/node_modules/@babel/types/",
+          "packageDependencies": [
+            ["@babel/types", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/@babel-types-npm-7.12.1-f7897b9d9a-0747b06409.zip/node_modules/@babel/types/",
+          "packageDependencies": [
+            ["@babel/types", "npm:7.12.1"],
+            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@csstools/convert-colors", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/@csstools-convert-colors-npm-1.4.0-28a30cc14e-c8c8e6b5b3.zip/node_modules/@csstools/convert-colors/",
+          "packageDependencies": [
+            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@eslint/eslintrc", [
+        ["npm:0.2.1", {
+          "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-0.2.1-88318143fb-99310cddf0.zip/node_modules/@eslint/eslintrc/",
+          "packageDependencies": [
+            ["@eslint/eslintrc", "npm:0.2.1"],
+            ["ajv", "npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["espree", "npm:7.3.0"],
+            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
+            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"],
+            ["import-fresh", "npm:3.2.1"],
+            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
+            ["strip-json-comments", "npm:3.1.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hapi/address", [
+        ["npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/@hapi-address-npm-2.1.4-171a7634b6-5dc5d0d3d6.zip/node_modules/@hapi/address/",
+          "packageDependencies": [
+            ["@hapi/address", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hapi/bourne", [
+        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/@hapi-bourne-npm-1.3.2-f59e8a33a7-bc23796d94.zip/node_modules/@hapi/bourne/",
+          "packageDependencies": [
+            ["@hapi/bourne", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hapi/hoek", [
+        ["npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", {
+          "packageLocation": "./.yarn/cache/@hapi-hoek-npm-8.5.1-3e448b81f9-17bf9a0b6f.zip/node_modules/@hapi/hoek/",
+          "packageDependencies": [
+            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hapi/joi", [
+        ["npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/@hapi-joi-npm-15.1.1-c15180a459-7edbb0d5a5.zip/node_modules/@hapi/joi/",
+          "packageDependencies": [
+            ["@hapi/joi", "npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"],
+            ["@hapi/address", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"],
+            ["@hapi/bourne", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"],
+            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"],
+            ["@hapi/topo", "npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hapi/topo", [
+        ["npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/@hapi-topo-npm-3.1.6-78977fb8a8-4550d3d749.zip/node_modules/@hapi/topo/",
+          "packageDependencies": [
+            ["@hapi/topo", "npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"],
+            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@hot-loader/react-dom", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0", {
+          "packageLocation": "./.yarn/$$virtual/@hot-loader-react-dom-virtual-b4bf4ff7ed/0/cache/@hot-loader-react-dom-npm-17.0.0-666159a93b-9d2b060e88.zip/node_modules/@hot-loader/react-dom/",
+          "packageDependencies": [
+            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
+            ["react", "npm:17.0.1"],
+            ["scheduler", "npm:0.20.1"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@nodelib/fs.scandir", [
+        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.3-d37148b991-1f100655dd.zip/node_modules/@nodelib/fs.scandir/",
+          "packageDependencies": [
+            ["@nodelib/fs.scandir", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"],
+            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"],
+            ["run-parallel", "npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@nodelib/fs.stat", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.3-92c59c34ca-1bfdb2f419.zip/node_modules/@nodelib/fs.stat/",
+          "packageDependencies": [
+            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@nodelib/fs.walk", [
+        ["npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.4-0119094fd0-f4bffba16c.zip/node_modules/@nodelib/fs.walk/",
+          "packageDependencies": [
+            ["@nodelib/fs.walk", "npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"],
+            ["@nodelib/fs.scandir", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"],
+            ["fastq", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@npmcli/move-file", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/@npmcli-move-file-npm-1.0.1-a68fefe016-ed2cb75eef.zip/node_modules/@npmcli/move-file/",
+          "packageDependencies": [
+            ["@npmcli/move-file", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"],
+            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@popperjs/core", [
+        ["npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz", {
+          "packageLocation": "./.yarn/cache/@popperjs-core-npm-2.4.4-0690f2896b-49a1e6cfa2.zip/node_modules/@popperjs/core/",
+          "packageDependencies": [
+            ["@popperjs/core", "npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@restart/context", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@restart-context-virtual-7af705ac81/0/cache/@restart-context-npm-2.1.4-ad630f5721-f9dd1416c1.zip/node_modules/@restart/context/",
+          "packageDependencies": [
+            ["@restart/context", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"],
+            ["react", "npm:17.0.1"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@restart/hooks", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@restart-hooks-virtual-d6f29f378e/0/cache/@restart-hooks-npm-0.3.25-f85d375986-08aefc359f.zip/node_modules/@restart/hooks/",
+          "packageDependencies": [
+            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["lodash-es", "npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"],
+            ["react", "npm:17.0.1"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@rollup/plugin-node-resolve", [
+        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@rollup-plugin-node-resolve-virtual-b9d59f5e4f/0/cache/@rollup-plugin-node-resolve-npm-7.1.3-07432edf25-4d751a407f.zip/node_modules/@rollup/plugin-node-resolve/",
+          "packageDependencies": [
+            ["@rollup/plugin-node-resolve", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"],
+            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
+            ["@types/resolve", "npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"],
+            ["builtin-modules", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"],
+            ["is-module", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
+          ],
+          "packagePeers": [
+            "rollup"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@rollup/plugin-replace", [
+        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@rollup-plugin-replace-virtual-1117b8d26d/0/cache/@rollup-plugin-replace-npm-2.3.3-39207fa404-d08a514b8f.zip/node_modules/@rollup/plugin-replace/",
+          "packageDependencies": [
+            ["@rollup/plugin-replace", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"],
+            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
+            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
+          ],
+          "packagePeers": [
+            "rollup"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@rollup/pluginutils", [
+        ["virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/@rollup-pluginutils-virtual-616f52b257/0/cache/@rollup-pluginutils-npm-3.1.0-d04a8aa7ff-45da6411e0.zip/node_modules/@rollup/pluginutils/",
+          "packageDependencies": [
+            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
+            ["@types/estree", "npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"],
+            ["estree-walker", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"],
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
+          ],
+          "packagePeers": [
+            "rollup"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@sindresorhus/is", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-3.0.0-85341af72d-77cdb08542.zip/node_modules/@sindresorhus/is/",
+          "packageDependencies": [
+            ["@sindresorhus/is", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@surma/rollup-plugin-off-main-thread", [
+        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/@surma-rollup-plugin-off-main-thread-npm-1.4.1-093a2a1130-4f91dc8b39.zip/node_modules/@surma/rollup-plugin-off-main-thread/",
+          "packageDependencies": [
+            ["@surma/rollup-plugin-off-main-thread", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"],
+            ["ejs", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"],
+            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@szmarczak/http-timer", [
+        ["npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-4.0.5-468246dcc4-13d8f71dbd.zip/node_modules/@szmarczak/http-timer/",
+          "packageDependencies": [
+            ["@szmarczak/http-timer", "npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"],
+            ["defer-to-connect", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/anymatch", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/@types-anymatch-npm-1.3.1-a80df92ca5-1647865e52.zip/node_modules/@types/anymatch/",
+          "packageDependencies": [
+            ["@types/anymatch", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/cacheable-request", [
+        ["npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/@types-cacheable-request-npm-6.0.1-bb69b1f94f-3dae802a08.zip/node_modules/@types/cacheable-request/",
+          "packageDependencies": [
+            ["@types/cacheable-request", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"],
+            ["@types/http-cache-semantics", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"],
+            ["@types/keyv", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
+            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/classnames", [
+        ["npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz", {
+          "packageLocation": "./.yarn/cache/@types-classnames-npm-2.2.10-42fcf9fdfd-31b6380183.zip/node_modules/@types/classnames/",
+          "packageDependencies": [
+            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/color-name", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/@types-color-name-npm-1.1.1-e09b256b16-8311db94a9.zip/node_modules/@types/color-name/",
+          "packageDependencies": [
+            ["@types/color-name", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/emscripten", [
+        ["npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz", {
+          "packageLocation": "./.yarn/cache/@types-emscripten-npm-1.39.4-9fa9d5794b-b848421e25.zip/node_modules/@types/emscripten/",
+          "packageDependencies": [
+            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/eslint", [
+        ["npm:7.2.4", {
+          "packageLocation": "./.yarn/cache/@types-eslint-npm-7.2.4-6b24a0c08f-281fbca931.zip/node_modules/@types/eslint/",
+          "packageDependencies": [
+            ["@types/eslint", "npm:7.2.4"],
+            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"],
+            ["@types/json-schema", "npm:7.0.6"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/eslint-scope", [
+        ["npm:3.7.0", {
+          "packageLocation": "./.yarn/cache/@types-eslint-scope-npm-3.7.0-7c68026d97-1ee912a956.zip/node_modules/@types/eslint-scope/",
+          "packageDependencies": [
+            ["@types/eslint-scope", "npm:3.7.0"],
+            ["@types/eslint", "npm:7.2.4"],
+            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/estree", [
+        ["npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz", {
+          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.39-db58f9afdf-43e5361de3.zip/node_modules/@types/estree/",
+          "packageDependencies": [
+            ["@types/estree", "npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.0.45", {
+          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.45-71d6bd2510-9d339cbcf2.zip/node_modules/@types/estree/",
+          "packageDependencies": [
+            ["@types/estree", "npm:0.0.45"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz", {
+          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.45-e2040977a6-9d339cbcf2.zip/node_modules/@types/estree/",
+          "packageDependencies": [
+            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/glob", [
+        ["npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/@types-glob-npm-7.1.3-f32554af4e-633bf1dda9.zip/node_modules/@types/glob/",
+          "packageDependencies": [
+            ["@types/glob", "npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"],
+            ["@types/minimatch", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/history", [
+        ["npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz", {
+          "packageLocation": "./.yarn/cache/@types-history-npm-4.7.6-c7379e4282-8782d92953.zip/node_modules/@types/history/",
+          "packageDependencies": [
+            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/html-minifier-terser", [
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-html-minifier-terser-npm-5.1.0-6fb2bf10b0-e07f30cf9b.zip/node_modules/@types/html-minifier-terser/",
+          "packageDependencies": [
+            ["@types/html-minifier-terser", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/http-cache-semantics", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-http-cache-semantics-npm-4.0.0-c054c89f34-e16fae56d4.zip/node_modules/@types/http-cache-semantics/",
+          "packageDependencies": [
+            ["@types/http-cache-semantics", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/invariant", [
+        ["npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz", {
+          "packageLocation": "./.yarn/cache/@types-invariant-npm-2.2.34-dc486af7a1-d0ecc665e5.zip/node_modules/@types/invariant/",
+          "packageDependencies": [
+            ["@types/invariant", "npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/json-schema", [
+        ["npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.5-8c7a0ff5b6-6290f9fe93.zip/node_modules/@types/json-schema/",
+          "packageDependencies": [
+            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.6", {
+          "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.6-b307979e18-820cabe35a.zip/node_modules/@types/json-schema/",
+          "packageDependencies": [
+            ["@types/json-schema", "npm:7.0.6"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/json5", [
+        ["npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz", {
+          "packageLocation": "./.yarn/cache/@types-json5-npm-0.0.29-663cfa6df5-66e9ac0143.zip/node_modules/@types/json5/",
+          "packageDependencies": [
+            ["@types/json5", "npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/keyv", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/@types-keyv-npm-3.1.1-f9769fb0ae-3aaf557d5b.zip/node_modules/@types/keyv/",
+          "packageDependencies": [
+            ["@types/keyv", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/lodash", [
+        ["npm:4.14.162", {
+          "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.162-154c620b3b-16205a1299.zip/node_modules/@types/lodash/",
+          "packageDependencies": [
+            ["@types/lodash", "npm:4.14.162"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/minimatch", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/@types-minimatch-npm-3.0.3-adfb38a286-672ccdac19.zip/node_modules/@types/minimatch/",
+          "packageDependencies": [
+            ["@types/minimatch", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/node", [
+        ["npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz", {
+          "packageLocation": "./.yarn/cache/@types-node-npm-13.13.14-ab75d26b18-b2fa516374.zip/node_modules/@types/node/",
+          "packageDependencies": [
+            ["@types/node", "npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz", {
+          "packageLocation": "./.yarn/cache/@types-node-npm-14.0.23-73b1b435b9-35415a294f.zip/node_modules/@types/node/",
+          "packageDependencies": [
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:14.14.5", {
+          "packageLocation": "./.yarn/cache/@types-node-npm-14.14.5-0bf1b63d5b-4916d5c46e.zip/node_modules/@types/node/",
+          "packageDependencies": [
+            ["@types/node", "npm:14.14.5"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/parse-json", [
+        ["npm:4.0.0", {
+          "packageLocation": "./.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4a8f720afa.zip/node_modules/@types/parse-json/",
+          "packageDependencies": [
+            ["@types/parse-json", "npm:4.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/prop-types", [
+        ["npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz", {
+          "packageLocation": "./.yarn/cache/@types-prop-types-npm-15.7.3-744156ad22-bd0eab69d5.zip/node_modules/@types/prop-types/",
+          "packageDependencies": [
+            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react", [
+        ["npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.43-6282703b2a-b9d4491463.zip/node_modules/@types/react/",
+          "packageDependencies": [
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
+            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
+            ["csstype", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.49-eebeaec305-cf5dabe1e9.zip/node_modules/@types/react/",
+          "packageDependencies": [
+            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
+            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
+            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:16.9.53", {
+          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.53-db05adb28b-01c646c8f0.zip/node_modules/@types/react/",
+          "packageDependencies": [
+            ["@types/react", "npm:16.9.53"],
+            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
+            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-dom", [
+        ["npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-dom-npm-16.9.8-a074150aea-53a223c026.zip/node_modules/@types/react-dom/",
+          "packageDependencies": [
+            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-responsive", [
+        ["npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-responsive-npm-8.0.2-e6a680cdf1-48bc498859.zip/node_modules/@types/react-responsive/",
+          "packageDependencies": [
+            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-router", [
+        ["npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-router-npm-5.1.8-9a4fe7a936-8b4c8fefdb.zip/node_modules/@types/react-router/",
+          "packageDependencies": [
+            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
+            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-router-bootstrap", [
+        ["npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-router-bootstrap-npm-0.24.5-e11aa3d45e-08b8ed99b7.zip/node_modules/@types/react-router-bootstrap/",
+          "packageDependencies": [
+            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
+            ["@types/react-router-dom", "npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-router-dom", [
+        ["npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-router-dom-npm-5.1.5-bb10e455cb-d25c11cb71.zip/node_modules/@types/react-router-dom/",
+          "packageDependencies": [
+            ["@types/react-router-dom", "npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"],
+            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
+            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.6", {
+          "packageLocation": "./.yarn/cache/@types-react-router-dom-npm-5.1.6-d10d920490-dcff1d6138.zip/node_modules/@types/react-router-dom/",
+          "packageDependencies": [
+            ["@types/react-router-dom", "npm:5.1.6"],
+            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
+            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/react-transition-group", [
+        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-react-transition-group-npm-4.4.0-44ecca32b5-b761f70623.zip/node_modules/@types/react-transition-group/",
+          "packageDependencies": [
+            ["@types/react-transition-group", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"],
+            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/resolve", [
+        ["npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz", {
+          "packageLocation": "./.yarn/cache/@types-resolve-npm-0.0.8-86c1fa5722-f54f13e4b6.zip/node_modules/@types/resolve/",
+          "packageDependencies": [
+            ["@types/resolve", "npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/responselike", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-responselike-npm-1.0.0-f55b3c33b1-e6e6613c80.zip/node_modules/@types/responselike/",
+          "packageDependencies": [
+            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/semver", [
+        ["npm:7.3.4", {
+          "packageLocation": "./.yarn/cache/@types-semver-npm-7.3.4-96fde085ea-7e8588aa55.zip/node_modules/@types/semver/",
+          "packageDependencies": [
+            ["@types/semver", "npm:7.3.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/source-list-map", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/@types-source-list-map-npm-0.1.2-e10905c8ed-191f0e3b05.zip/node_modules/@types/source-list-map/",
+          "packageDependencies": [
+            ["@types/source-list-map", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/tapable", [
+        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/@types-tapable-npm-1.0.6-a018099971-01709a2f8d.zip/node_modules/@types/tapable/",
+          "packageDependencies": [
+            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/treeify", [
+        ["npm:1.0.0", {
+          "packageLocation": "./.yarn/cache/@types-treeify-npm-1.0.0-b5e04e9cd3-f7b82d91a4.zip/node_modules/@types/treeify/",
+          "packageDependencies": [
+            ["@types/treeify", "npm:1.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/uglify-js", [
+        ["npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz", {
+          "packageLocation": "./.yarn/cache/@types-uglify-js-npm-3.9.3-b25b745c08-b12ae05d8f.zip/node_modules/@types/uglify-js/",
+          "packageDependencies": [
+            ["@types/uglify-js", "npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/warning", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-warning-npm-3.0.0-32d6269905-cb7a16aa88.zip/node_modules/@types/warning/",
+          "packageDependencies": [
+            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/webpack", [
+        ["npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz", {
+          "packageLocation": "./.yarn/cache/@types-webpack-npm-4.41.21-bf9d77607b-3a02667221.zip/node_modules/@types/webpack/",
+          "packageDependencies": [
+            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
+            ["@types/anymatch", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
+            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"],
+            ["@types/uglify-js", "npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"],
+            ["@types/webpack-sources", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/webpack-env", [
+        ["npm:1.15.3", {
+          "packageLocation": "./.yarn/cache/@types-webpack-env-npm-1.15.3-0c9f4ea68e-e37909d70e.zip/node_modules/@types/webpack-env/",
+          "packageDependencies": [
+            ["@types/webpack-env", "npm:1.15.3"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/webpack-sources", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-webpack-sources-npm-1.4.0-53063c900c-fc237a6e8b.zip/node_modules/@types/webpack-sources/",
+          "packageDependencies": [
+            ["@types/webpack-sources", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
+            ["@types/source-list-map", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"],
+            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@types/xregexp", [
+        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/@types-xregexp-npm-4.3.0-d0b9c67f46-a25f5cc1e7.zip/node_modules/@types/xregexp/",
+          "packageDependencies": [
+            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/eslint-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0", {
+          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-eslint-plugin-virtual-ec995a9505/0/cache/@typescript-eslint-eslint-plugin-npm-4.6.0-be3312b4c2-7bf5bb6a0c.zip/node_modules/@typescript-eslint/eslint-plugin/",
+          "packageDependencies": [
+            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@typescript-eslint/experimental-utils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0"],
+            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"],
+            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "eslint",
+            "@typescript-eslint/parser",
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/experimental-utils", [
+        ["virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0", {
+          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-experimental-utils-virtual-034578a2e7/0/cache/@typescript-eslint-experimental-utils-npm-4.6.0-8b5fc950f7-ca0fdd7e51.zip/node_modules/@typescript-eslint/experimental-utils/",
+          "packageDependencies": [
+            ["@typescript-eslint/experimental-utils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0"],
+            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"],
+            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["@typescript-eslint/typescript-estree", "virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0"],
+            ["eslint", "npm:7.12.1"],
+            ["eslint-scope", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"],
+            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"]
+          ],
+          "packagePeers": [
+            "eslint"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/parser", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0", {
+          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-parser-virtual-d686870f74/0/cache/@typescript-eslint-parser-npm-4.6.0-d78e9442ad-ada5fea21c.zip/node_modules/@typescript-eslint/parser/",
+          "packageDependencies": [
+            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["@typescript-eslint/typescript-estree", "virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "eslint",
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/scope-manager", [
+        ["npm:4.6.0", {
+          "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-4.6.0-65347ba2dc-8bf4f4646e.zip/node_modules/@typescript-eslint/scope-manager/",
+          "packageDependencies": [
+            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["@typescript-eslint/visitor-keys", "npm:4.6.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/types", [
+        ["npm:4.6.0", {
+          "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-4.6.0-c11f936a0d-c136ebe791.zip/node_modules/@typescript-eslint/types/",
+          "packageDependencies": [
+            ["@typescript-eslint/types", "npm:4.6.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/typescript-estree", [
+        ["virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0", {
+          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-92cd152243/0/cache/@typescript-eslint-typescript-estree-npm-4.6.0-3c95b33160-27d35ac3c4.zip/node_modules/@typescript-eslint/typescript-estree/",
+          "packageDependencies": [
+            ["@typescript-eslint/typescript-estree", "virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["tsutils", "virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
+            ["typescript", null]
+          ],
+          "packagePeers": [
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0", {
+          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-56821c47e7/0/cache/@typescript-eslint-typescript-estree-npm-4.6.0-3c95b33160-27d35ac3c4.zip/node_modules/@typescript-eslint/typescript-estree/",
+          "packageDependencies": [
+            ["@typescript-eslint/typescript-estree", "virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@typescript-eslint/visitor-keys", [
+        ["npm:4.6.0", {
+          "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-4.6.0-5240fa58b1-ea1a701501.zip/node_modules/@typescript-eslint/visitor-keys/",
+          "packageDependencies": [
+            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
+            ["@typescript-eslint/types", "npm:4.6.0"],
+            ["eslint-visitor-keys", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/ast", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.9.0-84da1f7aeb-25d93900cc.zip/node_modules/@webassemblyjs/ast/",
+          "packageDependencies": [
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
+            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/floating-point-hex-parser", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.9.0-144f0e3881-af9e11a688.zip/node_modules/@webassemblyjs/floating-point-hex-parser/",
+          "packageDependencies": [
+            ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-api-error", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-api-error-npm-1.9.0-2ae5cde80d-ae7b9703ec.zip/node_modules/@webassemblyjs/helper-api-error/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-buffer", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-buffer-npm-1.9.0-62689e6c43-94bcf27ccf.zip/node_modules/@webassemblyjs/helper-buffer/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-code-frame", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-code-frame-npm-1.9.0-e72b43e293-008fc534f2.zip/node_modules/@webassemblyjs/helper-code-frame/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-code-frame", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"],
+            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-fsm", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-fsm-npm-1.9.0-3a1e65f581-3181e69c16.zip/node_modules/@webassemblyjs/helper-fsm/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-fsm", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-module-context", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-module-context-npm-1.9.0-9a8321b3f5-9aa715a8d0.zip/node_modules/@webassemblyjs/helper-module-context/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-wasm-bytecode", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.9.0-2ba0f0cbdb-27ba07f495.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/helper-wasm-section", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.9.0-ae2f9c5910-0e2957efc4.zip/node_modules/@webassemblyjs/helper-wasm-section/",
+          "packageDependencies": [
+            ["@webassemblyjs/helper-wasm-section", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/ieee754", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-ieee754-npm-1.9.0-5791347b77-1474a87d86.zip/node_modules/@webassemblyjs/ieee754/",
+          "packageDependencies": [
+            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
+            ["@xtuc/ieee754", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/leb128", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-leb128-npm-1.9.0-1d6c48e4f5-af49765d06.zip/node_modules/@webassemblyjs/leb128/",
+          "packageDependencies": [
+            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
+            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/utf8", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-utf8-npm-1.9.0-130731a2d4-172fd362aa.zip/node_modules/@webassemblyjs/utf8/",
+          "packageDependencies": [
+            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wasm-edit", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-edit-npm-1.9.0-e31033e984-16016c9ef5.zip/node_modules/@webassemblyjs/wasm-edit/",
+          "packageDependencies": [
+            ["@webassemblyjs/wasm-edit", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-section", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-opt", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
+            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wasm-gen", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-gen-npm-1.9.0-e8ba1a3123-1afcebfd12.zip/node_modules/@webassemblyjs/wasm-gen/",
+          "packageDependencies": [
+            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
+            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
+            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
+            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wasm-opt", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-opt-npm-1.9.0-afcb86d1d6-2ce89f206e.zip/node_modules/@webassemblyjs/wasm-opt/",
+          "packageDependencies": [
+            ["@webassemblyjs/wasm-opt", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wasm-parser", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-parser-npm-1.9.0-908dd76282-b8cb346c9b.zip/node_modules/@webassemblyjs/wasm-parser/",
+          "packageDependencies": [
+            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"],
+            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
+            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
+            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
+            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wast-parser", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wast-parser-npm-1.9.0-73effa0b70-eaa0140a44.zip/node_modules/@webassemblyjs/wast-parser/",
+          "packageDependencies": [
+            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"],
+            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"],
+            ["@webassemblyjs/helper-code-frame", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"],
+            ["@webassemblyjs/helper-fsm", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"],
+            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webassemblyjs/wast-printer", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/@webassemblyjs-wast-printer-npm-1.9.0-086ae21aa7-9f013b27e2.zip/node_modules/@webassemblyjs/wast-printer/",
+          "packageDependencies": [
+            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"],
+            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webpack-cli/info", [
+        ["virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2", {
+          "packageLocation": "./.yarn/$$virtual/@webpack-cli-info-virtual-f6a57c425b/0/cache/@webpack-cli-info-npm-1.0.2-2aa189629b-a961e982fb.zip/node_modules/@webpack-cli/info/",
+          "packageDependencies": [
+            ["@webpack-cli/info", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2"],
+            ["envinfo", "npm:7.7.3"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"]
+          ],
+          "packagePeers": [
+            "webpack-cli"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@webpack-cli/serve", [
+        ["virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1", {
+          "packageLocation": "./.yarn/$$virtual/@webpack-cli-serve-virtual-23791f685d/0/cache/@webpack-cli-serve-npm-1.0.1-d23cc6c68b-d1dd4fb204.zip/node_modules/@webpack-cli/serve/",
+          "packageDependencies": [
+            ["@webpack-cli/serve", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"]
+          ],
+          "packagePeers": [
+            "webpack-cli",
+            "webpack-dev-server"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@xtuc/ieee754", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/@xtuc-ieee754-npm-1.2.0-1f11bd4484-65bb9c55a0.zip/node_modules/@xtuc/ieee754/",
+          "packageDependencies": [
+            ["@xtuc/ieee754", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@xtuc/long", [
+        ["npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/@xtuc-long-npm-4.2.2-5c7b6be565-ec09a359f9.zip/node_modules/@xtuc/long/",
+          "packageDependencies": [
+            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/core", [
+        ["npm:2.3.1", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-core-npm-2.3.1-2d9d12b9ec-d2236acac2.zip/node_modules/@yarnpkg/core/",
+          "packageDependencies": [
+            ["@yarnpkg/core", "npm:2.3.1"],
+            ["@arcanis/slice-ansi", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"],
+            ["@types/semver", "npm:7.3.4"],
+            ["@types/treeify", "npm:1.0.0"],
+            ["@yarnpkg/fslib", "npm:2.3.0"],
+            ["@yarnpkg/json-proxy", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"],
+            ["@yarnpkg/libzip", "npm:2.2.1"],
+            ["@yarnpkg/parsers", "npm:2.3.0"],
+            ["@yarnpkg/pnp", "npm:2.3.1"],
+            ["@yarnpkg/shell", "npm:2.4.0"],
+            ["binjumper", "npm:0.1.3"],
+            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"],
+            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
+            ["ci-info", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"],
+            ["clipanion", "npm:2.6.2"],
+            ["cross-spawn", "npm:7.0.3"],
+            ["diff", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"],
+            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
+            ["got", "npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"],
+            ["json-file-plus", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["logic-solver", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"],
+            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
+            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"],
+            ["pluralize", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"],
+            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["stream-to-promise", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"],
+            ["tar-stream", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"],
+            ["treeify", "npm:1.1.0"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
+            ["tunnel", "npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/fslib", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-fslib-npm-2.1.0-2d08287c42-5a77427f2b.zip/node_modules/@yarnpkg/fslib/",
+          "packageDependencies": [
+            ["@yarnpkg/fslib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"],
+            ["@yarnpkg/libzip", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.3.0", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-fslib-npm-2.3.0-177ea80af4-0969bd6b12.zip/node_modules/@yarnpkg/fslib/",
+          "packageDependencies": [
+            ["@yarnpkg/fslib", "npm:2.3.0"],
+            ["@yarnpkg/libzip", "npm:2.2.1"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/json-proxy", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-json-proxy-npm-2.1.0-4a57c7610a-9c3877ca03.zip/node_modules/@yarnpkg/json-proxy/",
+          "packageDependencies": [
+            ["@yarnpkg/json-proxy", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"],
+            ["@yarnpkg/fslib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/libzip", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-libzip-npm-2.1.0-803ea34c94-886d4a269a.zip/node_modules/@yarnpkg/libzip/",
+          "packageDependencies": [
+            ["@yarnpkg/libzip", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"],
+            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.2.1", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-libzip-npm-2.2.1-8ad75a808a-75813c2dbe.zip/node_modules/@yarnpkg/libzip/",
+          "packageDependencies": [
+            ["@yarnpkg/libzip", "npm:2.2.1"],
+            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/parsers", [
+        ["npm:2.3.0", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-parsers-npm-2.3.0-0fc08d0fb0-3c221fe5e2.zip/node_modules/@yarnpkg/parsers/",
+          "packageDependencies": [
+            ["@yarnpkg/parsers", "npm:2.3.0"],
+            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/pnp", [
+        ["npm:2.3.1", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-pnp-npm-2.3.1-29e8efeb8a-b04da36672.zip/node_modules/@yarnpkg/pnp/",
+          "packageDependencies": [
+            ["@yarnpkg/pnp", "npm:2.3.1"],
+            ["@types/node", "npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"],
+            ["@yarnpkg/fslib", "npm:2.3.0"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/pnpify", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3", {
+          "packageLocation": "./.yarn/$$virtual/@yarnpkg-pnpify-virtual-239268ef3d/0/cache/@yarnpkg-pnpify-npm-2.3.3-d139ee88e8-80ccd1a560.zip/node_modules/@yarnpkg/pnpify/",
+          "packageDependencies": [
+            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
+            ["@yarnpkg/core", "npm:2.3.1"],
+            ["@yarnpkg/fslib", "npm:2.3.0"],
+            ["@yarnpkg/parsers", "npm:2.3.0"],
+            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
+            ["clipanion", "npm:2.6.2"],
+            ["comment-json", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "eslint",
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["@yarnpkg/shell", [
+        ["npm:2.4.0", {
+          "packageLocation": "./.yarn/cache/@yarnpkg-shell-npm-2.4.0-fc56c5c75a-fd09d872d5.zip/node_modules/@yarnpkg/shell/",
+          "packageDependencies": [
+            ["@yarnpkg/shell", "npm:2.4.0"],
+            ["@yarnpkg/fslib", "npm:2.3.0"],
+            ["@yarnpkg/parsers", "npm:2.3.0"],
+            ["clipanion", "npm:2.6.2"],
+            ["cross-spawn", "npm:7.0.3"],
+            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
+            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
+            ["stream-buffers", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["abbrev", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/abbrev-npm-1.1.1-45768b3970-9f9236a3cc.zip/node_modules/abbrev/",
+          "packageDependencies": [
+            ["abbrev", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["accepts", [
+        ["npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz", {
+          "packageLocation": "./.yarn/cache/accepts-npm-1.3.7-6f43068745-2686fa30db.zip/node_modules/accepts/",
+          "packageDependencies": [
+            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
+            ["negotiator", "npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["acorn", [
+        ["npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/acorn-npm-7.3.1-66f98debe7-3fa7039384.zip/node_modules/acorn/",
+          "packageDependencies": [
+            ["acorn", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.4.1", {
+          "packageLocation": "./.yarn/cache/acorn-npm-7.4.1-f450b4646c-2bde98c28c.zip/node_modules/acorn/",
+          "packageDependencies": [
+            ["acorn", "npm:7.4.1"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:8.0.4", {
+          "packageLocation": "./.yarn/cache/acorn-npm-8.0.4-03d9a92fbf-d23a2df6c6.zip/node_modules/acorn/",
+          "packageDependencies": [
+            ["acorn", "npm:8.0.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["acorn-jsx", [
+        ["virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/acorn-jsx-virtual-897634baa5/0/cache/acorn-jsx-npm-5.2.0-df860d7479-1247cc4b32.zip/node_modules/acorn-jsx/",
+          "packageDependencies": [
+            ["acorn-jsx", "virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"],
+            ["acorn", "npm:7.4.1"]
+          ],
+          "packagePeers": [
+            "acorn"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["aggregate-error", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/aggregate-error-npm-3.0.1-78932e7896-aee96f00c2.zip/node_modules/aggregate-error/",
+          "packageDependencies": [
+            ["aggregate-error", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"],
+            ["clean-stack", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"],
+            ["indent-string", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ajv", [
+        ["npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz", {
+          "packageLocation": "./.yarn/cache/ajv-npm-6.12.3-05d0eeb9b8-b20a171bf3.zip/node_modules/ajv/",
+          "packageDependencies": [
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
+            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
+            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz", {
+          "packageLocation": "./.yarn/cache/ajv-npm-6.12.4-1badbf9de4-50d72b0a10.zip/node_modules/ajv/",
+          "packageDependencies": [
+            ["ajv", "npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"],
+            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
+            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
+            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.12.6", {
+          "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-19a8f3b0a0.zip/node_modules/ajv/",
+          "packageDependencies": [
+            ["ajv", "npm:6.12.6"],
+            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
+            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
+            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ajv-errors", [
+        ["virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/ajv-errors-virtual-72d38507e4/0/cache/ajv-errors-npm-1.0.1-39ff2ef93e-d8356aadcb.zip/node_modules/ajv-errors/",
+          "packageDependencies": [
+            ["ajv-errors", "virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"]
+          ],
+          "packagePeers": [
+            "ajv"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ajv-keywords", [
+        ["virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-f99cb7f4e6/0/cache/ajv-keywords-npm-3.5.1-3ebb430a3f-f91a8a5304.zip/node_modules/ajv-keywords/",
+          "packageDependencies": [
+            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"]
+          ],
+          "packagePeers": [
+            "ajv"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", {
+          "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-16dbd3e692/0/cache/ajv-keywords-npm-3.5.2-c36e2f7ee0-01f26c2923.zip/node_modules/ajv-keywords/",
+          "packageDependencies": [
+            ["ajv-keywords", "virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"],
+            ["ajv", "npm:6.12.6"]
+          ],
+          "packagePeers": [
+            "ajv"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ansi-colors", [
+        ["npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-colors-npm-3.2.4-03ff0de307-86ec4a476a.zip/node_modules/ansi-colors/",
+          "packageDependencies": [
+            ["ansi-colors", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-colors-npm-4.1.1-44a0da1f80-50d8dfbce2.zip/node_modules/ansi-colors/",
+          "packageDependencies": [
+            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ansi-escapes", [
+        ["npm:4.3.1", {
+          "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.1-f4aad61b5b-bcb39e57bd.zip/node_modules/ansi-escapes/",
+          "packageDependencies": [
+            ["ansi-escapes", "npm:4.3.1"],
+            ["type-fest", "npm:0.11.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ansi-html", [
+        ["npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-html-npm-0.0.7-7ee0b8d117-1178680548.zip/node_modules/ansi-html/",
+          "packageDependencies": [
+            ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ansi-regex", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-regex-npm-2.1.1-a70b16d58b-93a53c923f.zip/node_modules/ansi-regex/",
+          "packageDependencies": [
+            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-regex-npm-4.1.0-7f6fd6def0-53b6fe447c.zip/node_modules/ansi-regex/",
+          "packageDependencies": [
+            ["ansi-regex", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.0-3d04060839-cbd9b5c9db.zip/node_modules/ansi-regex/",
+          "packageDependencies": [
+            ["ansi-regex", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ansi-styles", [
+        ["npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-styles-npm-2.2.1-b68231dfb7-108c749637.zip/node_modules/ansi-styles/",
+          "packageDependencies": [
+            ["ansi-styles", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-4ec9c0bba3-456e1c23d9.zip/node_modules/ansi-styles/",
+          "packageDependencies": [
+            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
+            ["color-convert", "npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/ansi-styles-npm-4.2.1-45b5c3d4c4-c8c007d5da.zip/node_modules/ansi-styles/",
+          "packageDependencies": [
+            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
+            ["@types/color-name", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"],
+            ["color-convert", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["any-promise", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/any-promise-npm-1.3.0-2a8c20cb4b-e829425e4a.zip/node_modules/any-promise/",
+          "packageDependencies": [
+            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["anymatch", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/anymatch-npm-2.0.0-6a80540af9-9e495910cc.zip/node_modules/anymatch/",
+          "packageDependencies": [
+            ["anymatch", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"],
+            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
+            ["normalize-path", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/anymatch-npm-3.1.1-c11e735ce5-cf61bbaf7f.zip/node_modules/anymatch/",
+          "packageDependencies": [
+            ["anymatch", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"],
+            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["aproba", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/aproba-npm-1.2.0-7ec70d8ce8-d4bac3e640.zip/node_modules/aproba/",
+          "packageDependencies": [
+            ["aproba", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["are-we-there-yet", [
+        ["npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz", {
+          "packageLocation": "./.yarn/cache/are-we-there-yet-npm-1.1.5-66966c80fa-2d6fdb0ddd.zip/node_modules/are-we-there-yet/",
+          "packageDependencies": [
+            ["are-we-there-yet", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"],
+            ["delegates", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"],
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["argparse", [
+        ["npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", {
+          "packageLocation": "./.yarn/cache/argparse-npm-1.0.10-3e4b745921-435adaef5f.zip/node_modules/argparse/",
+          "packageDependencies": [
+            ["argparse", "npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"],
+            ["sprintf-js", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["arr-diff", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/arr-diff-npm-4.0.0-23b33727de-cbdff67cf5.zip/node_modules/arr-diff/",
+          "packageDependencies": [
+            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["arr-flatten", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/arr-flatten-npm-1.1.0-2ccfeccce2-564dc9c32c.zip/node_modules/arr-flatten/",
+          "packageDependencies": [
+            ["arr-flatten", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["arr-union", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/arr-union-npm-3.1.0-5fec769033-78f0f75c47.zip/node_modules/arr-union/",
+          "packageDependencies": [
+            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-back", [
+        ["npm:4.0.1", {
+          "packageLocation": "./.yarn/cache/array-back-npm-4.0.1-e3efcb9aa9-611f95e039.zip/node_modules/array-back/",
+          "packageDependencies": [
+            ["array-back", "npm:4.0.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-flatten", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/array-flatten-npm-1.1.1-612a788b2c-de7a056451.zip/node_modules/array-flatten/",
+          "packageDependencies": [
+            ["array-flatten", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/array-flatten-npm-2.1.2-a9c3b9f324-46bfb198da.zip/node_modules/array-flatten/",
+          "packageDependencies": [
+            ["array-flatten", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-includes", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/array-includes-npm-3.1.1-8165aebb2e-9fa86fdad9.zip/node_modules/array-includes/",
+          "packageDependencies": [
+            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["is-string", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-union", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/array-union-npm-1.0.2-1c06919f13-5be2568acc.zip/node_modules/array-union/",
+          "packageDependencies": [
+            ["array-union", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"],
+            ["array-uniq", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/array-union-npm-2.1.0-b0d3f09bc8-93af542eb8.zip/node_modules/array-union/",
+          "packageDependencies": [
+            ["array-union", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-uniq", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/array-uniq-npm-1.0.3-d03e47af2a-ae11b7fc1e.zip/node_modules/array-uniq/",
+          "packageDependencies": [
+            ["array-uniq", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array-unique", [
+        ["npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/array-unique-npm-0.3.2-a2433ae70c-7139dbbcaf.zip/node_modules/array-unique/",
+          "packageDependencies": [
+            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array.prototype.flat", [
+        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/array.prototype.flat-npm-1.2.3-d28d243808-f88a474d1c.zip/node_modules/array.prototype.flat/",
+          "packageDependencies": [
+            ["array.prototype.flat", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["array.prototype.flatmap", [
+        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.2.3-fddf0cc1de-adbf30f271.zip/node_modules/array.prototype.flatmap/",
+          "packageDependencies": [
+            ["array.prototype.flatmap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["asap", [
+        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/asap-npm-2.0.6-8b712bb60f-3d314f8c59.zip/node_modules/asap/",
+          "packageDependencies": [
+            ["asap", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["asn1", [
+        ["npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/asn1-npm-0.2.4-0c406a7c58-5743ace942.zip/node_modules/asn1/",
+          "packageDependencies": [
+            ["asn1", "npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"],
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["assert-plus", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/assert-plus-npm-1.0.0-2a5298a110-1bda24f673.zip/node_modules/assert-plus/",
+          "packageDependencies": [
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["assign-symbols", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/assign-symbols-npm-1.0.0-10c1236af8-893e9389a5.zip/node_modules/assign-symbols/",
+          "packageDependencies": [
+            ["assign-symbols", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["astral-regex", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/astral-regex-npm-1.0.0-a1db7fe71d-08e37f5996.zip/node_modules/astral-regex/",
+          "packageDependencies": [
+            ["astral-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["async", [
+        ["npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz", {
+          "packageLocation": "./.yarn/cache/async-npm-2.6.3-9a394ca422-5c30ec6f3d.zip/node_modules/async/",
+          "packageDependencies": [
+            ["async", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["async-each", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/async-each-npm-1.0.3-b43586a972-0cf01982ae.zip/node_modules/async-each/",
+          "packageDependencies": [
+            ["async-each", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["async-limiter", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/async-limiter-npm-1.0.1-cbc5273635-d123312ace.zip/node_modules/async-limiter/",
+          "packageDependencies": [
+            ["async-limiter", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["asynckit", [
+        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-4cc878e332-a024000b9d.zip/node_modules/asynckit/",
+          "packageDependencies": [
+            ["asynckit", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["atob", [
+        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/atob-npm-2.1.2-8ff4b41199-597c0d1a74.zip/node_modules/atob/",
+          "packageDependencies": [
+            ["atob", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["autoprefixer", [
+        ["npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", {
+          "packageLocation": "./.yarn/cache/autoprefixer-npm-9.8.6-930909eb64-b406d8047a.zip/node_modules/autoprefixer/",
+          "packageDependencies": [
+            ["autoprefixer", "npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
+            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
+            ["normalize-range", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"],
+            ["num2fraction", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["aws-sign2", [
+        ["npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/aws-sign2-npm-0.7.0-0b8ffdeda1-7162b9b8fb.zip/node_modules/aws-sign2/",
+          "packageDependencies": [
+            ["aws-sign2", "npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["aws4", [
+        ["npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz", {
+          "packageLocation": "./.yarn/cache/aws4-npm-1.10.0-edf6b6c462-f8c20a0031.zip/node_modules/aws4/",
+          "packageDependencies": [
+            ["aws4", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["axios", [
+        ["npm:0.21.0", {
+          "packageLocation": "./.yarn/cache/axios-npm-0.21.0-9223cb0552-4b08ecab39.zip/node_modules/axios/",
+          "packageDependencies": [
+            ["axios", "npm:0.21.0"],
+            ["follow-redirects", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-code-frame", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-code-frame-npm-6.26.0-37bb59b027-cc2a799ccc.zip/node_modules/babel-code-frame/",
+          "packageDependencies": [
+            ["babel-code-frame", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"],
+            ["chalk", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
+            ["js-tokens", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-extract-comments", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-extract-comments-npm-1.0.0-6952c6a616-2a291f1a3a.zip/node_modules/babel-extract-comments/",
+          "packageDependencies": [
+            ["babel-extract-comments", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"],
+            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/babel-loader-virtual-e211b20a54/0/cache/babel-loader-npm-8.1.0-367cb3ea01-f7b236a5f7.zip/node_modules/babel-loader/",
+          "packageDependencies": [
+            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
+            ["@babel/core", "npm:7.12.3"],
+            ["find-cache-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"],
+            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
+            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
+            ["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "@babel/core",
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-messages", [
+        ["npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-messages-npm-6.23.0-50eff89869-9a04e1b86b.zip/node_modules/babel-messages/",
+          "packageDependencies": [
+            ["babel-messages", "npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-plugin-dynamic-import-node", [
+        ["npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", {
+          "packageLocation": "./.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-435aac031f-6745b8edca.zip/node_modules/babel-plugin-dynamic-import-node/",
+          "packageDependencies": [
+            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"],
+            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-plugin-syntax-object-rest-spread", [
+        ["npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-plugin-syntax-object-rest-spread-npm-6.13.0-48b5f8e7f6-459844d1a8.zip/node_modules/babel-plugin-syntax-object-rest-spread/",
+          "packageDependencies": [
+            ["babel-plugin-syntax-object-rest-spread", "npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-plugin-transform-builtin-extend", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/babel-plugin-transform-builtin-extend-npm-1.1.2-b11417fb96-29040a2217.zip/node_modules/babel-plugin-transform-builtin-extend/",
+          "packageDependencies": [
+            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
+            ["babel-template", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-plugin-transform-object-rest-spread", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-plugin-transform-object-rest-spread-npm-6.26.0-2be1b5ea2f-1d8ff82057.zip/node_modules/babel-plugin-transform-object-rest-spread/",
+          "packageDependencies": [
+            ["babel-plugin-transform-object-rest-spread", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"],
+            ["babel-plugin-syntax-object-rest-spread", "npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-runtime", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-runtime-npm-6.26.0-0058de2c6b-5010bf1d81.zip/node_modules/babel-runtime/",
+          "packageDependencies": [
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
+            ["core-js", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"],
+            ["regenerator-runtime", "npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-template", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-template-npm-6.26.0-a7bf41e5e3-3c76998a19.zip/node_modules/babel-template/",
+          "packageDependencies": [
+            ["babel-template", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
+            ["babel-traverse", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"],
+            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
+            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-traverse", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-traverse-npm-6.26.0-8c8a8763bc-05030a5152.zip/node_modules/babel-traverse/",
+          "packageDependencies": [
+            ["babel-traverse", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"],
+            ["babel-code-frame", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"],
+            ["babel-messages", "npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
+            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
+            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["globals", "npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babel-types", [
+        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz", {
+          "packageLocation": "./.yarn/cache/babel-types-npm-6.26.0-c0bd393443-9fb4b712af.zip/node_modules/babel-types/",
+          "packageDependencies": [
+            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
+            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["to-fast-properties", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["babylon", [
+        ["npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz", {
+          "packageLocation": "./.yarn/cache/babylon-npm-6.18.0-e3afa4fc93-af38302e3f.zip/node_modules/babylon/",
+          "packageDependencies": [
+            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["balanced-match", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.0-c3ed29b6d4-f515a605fe.zip/node_modules/balanced-match/",
+          "packageDependencies": [
+            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["base", [
+        ["npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz", {
+          "packageLocation": "./.yarn/cache/base-npm-0.11.2-fca2af58ba-84e30392fd.zip/node_modules/base/",
+          "packageDependencies": [
+            ["base", "npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"],
+            ["cache-base", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"],
+            ["class-utils", "npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"],
+            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"],
+            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
+            ["mixin-deep", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"],
+            ["pascalcase", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["base64-js", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/base64-js-npm-1.3.1-bf8d08cf84-8a0cc69d7c.zip/node_modules/base64-js/",
+          "packageDependencies": [
+            ["base64-js", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["basic-auth", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/basic-auth-npm-1.1.0-25c93ba045-dd75a3730b.zip/node_modules/basic-auth/",
+          "packageDependencies": [
+            ["basic-auth", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["batch", [
+        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz", {
+          "packageLocation": "./.yarn/cache/batch-npm-0.6.1-d08233db8c-4ec2d961e6.zip/node_modules/batch/",
+          "packageDependencies": [
+            ["batch", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bcrypt-pbkdf", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/bcrypt-pbkdf-npm-1.0.2-d44b9e6c84-3f57eb99bb.zip/node_modules/bcrypt-pbkdf/",
+          "packageDependencies": [
+            ["bcrypt-pbkdf", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"],
+            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["big.js", [
+        ["npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/big.js-npm-5.2.2-5ae2b6c67c-ea33d7d256.zip/node_modules/big.js/",
+          "packageDependencies": [
+            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["binary-extensions", [
+        ["npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", {
+          "packageLocation": "./.yarn/cache/binary-extensions-npm-1.13.1-015e160c9e-7cdacc6dad.zip/node_modules/binary-extensions/",
+          "packageDependencies": [
+            ["binary-extensions", "npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/binary-extensions-npm-2.1.0-42807b699d-12bee28179.zip/node_modules/binary-extensions/",
+          "packageDependencies": [
+            ["binary-extensions", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bindings", [
+        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/bindings-npm-1.5.0-c72f8f2b49-bd623dec58.zip/node_modules/bindings/",
+          "packageDependencies": [
+            ["bindings", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"],
+            ["file-uri-to-path", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["binjumper", [
+        ["npm:0.1.3", {
+          "packageLocation": "./.yarn/cache/binjumper-npm-0.1.3-160b213eed-660000e5a5.zip/node_modules/binjumper/",
+          "packageDependencies": [
+            ["binjumper", "npm:0.1.3"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bl", [
+        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/bl-npm-4.0.3-01d162e53b-1f33c5a3da.zip/node_modules/bl/",
+          "packageDependencies": [
+            ["bl", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"],
+            ["buffer", "npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["body-parser", [
+        ["npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", {
+          "packageLocation": "./.yarn/cache/body-parser-npm-1.19.0-26ceae3d2a-18c2a81df5.zip/node_modules/body-parser/",
+          "packageDependencies": [
+            ["body-parser", "npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"],
+            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"],
+            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
+            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
+            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
+            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"],
+            ["raw-body", "npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"],
+            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bonjour", [
+        ["npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/bonjour-npm-3.5.0-aa8cd2567e-b6c49714a3.zip/node_modules/bonjour/",
+          "packageDependencies": [
+            ["bonjour", "npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"],
+            ["array-flatten", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"],
+            ["deep-equal", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"],
+            ["dns-equal", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"],
+            ["dns-txt", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"],
+            ["multicast-dns", "npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"],
+            ["multicast-dns-service-types", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["boolbase", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/boolbase-npm-1.0.0-ee5fa28926-e827963c41.zip/node_modules/boolbase/",
+          "packageDependencies": [
+            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bootstrap", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3", {
+          "packageLocation": "./.yarn/$$virtual/bootstrap-virtual-82a35168cd/0/cache/bootstrap-npm-4.5.3-8fe04d4444-8c8850152f.zip/node_modules/bootstrap/",
+          "packageDependencies": [
+            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
+            ["jquery", null],
+            ["popper.js", null]
+          ],
+          "packagePeers": [
+            "jquery",
+            "popper.js"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bootstrap-icons", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/bootstrap-icons-npm-1.0.0-b1f8003214-082d8d2aff.zip/node_modules/bootstrap-icons/",
+          "packageDependencies": [
+            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["brace-expansion", [
+        ["npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", {
+          "packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-b9835edbf2-4c878e25e4.zip/node_modules/brace-expansion/",
+          "packageDependencies": [
+            ["brace-expansion", "npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"],
+            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
+            ["concat-map", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["braces", [
+        ["npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/braces-npm-2.3.2-22286581f5-5f2d5ae262.zip/node_modules/braces/",
+          "packageDependencies": [
+            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
+            ["arr-flatten", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"],
+            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["fill-range", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
+            ["repeat-element", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"],
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["snapdragon-node", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"],
+            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"],
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/braces-npm-3.0.2-520c7ed914-f3493181c3.zip/node_modules/braces/",
+          "packageDependencies": [
+            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
+            ["fill-range", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["browserslist", [
+        ["npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz", {
+          "packageLocation": "./.yarn/cache/browserslist-npm-4.13.0-7f55da350c-91657dcc02.zip/node_modules/browserslist/",
+          "packageDependencies": [
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["caniuse-lite", "npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"],
+            ["electron-to-chromium", "npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"],
+            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"],
+            ["node-releases", "npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz", {
+          "packageLocation": "./.yarn/cache/browserslist-npm-4.14.0-fa981c9b43-1ca4d424ae.zip/node_modules/browserslist/",
+          "packageDependencies": [
+            ["browserslist", "npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"],
+            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
+            ["electron-to-chromium", "npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"],
+            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"],
+            ["node-releases", "npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.14.5", {
+          "packageLocation": "./.yarn/cache/browserslist-npm-4.14.5-9f4c5b58ce-18261764bd.zip/node_modules/browserslist/",
+          "packageDependencies": [
+            ["browserslist", "npm:4.14.5"],
+            ["caniuse-lite", "npm:1.0.30001151"],
+            ["electron-to-chromium", "npm:1.3.583"],
+            ["escalade", "npm:3.1.1"],
+            ["node-releases", "npm:1.1.64"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["buffer", [
+        ["npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/buffer-npm-5.6.0-48010737b7-e18fdf099c.zip/node_modules/buffer/",
+          "packageDependencies": [
+            ["buffer", "npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"],
+            ["base64-js", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"],
+            ["ieee754", "npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["buffer-from", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.1-6ae17298ef-540ceb79c4.zip/node_modules/buffer-from/",
+          "packageDependencies": [
+            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["buffer-indexof", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/buffer-indexof-npm-1.1.1-f2a58116e6-f711418567.zip/node_modules/buffer-indexof/",
+          "packageDependencies": [
+            ["buffer-indexof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["builtin-modules", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/builtin-modules-npm-3.1.0-11a728777f-54f062393c.zip/node_modules/builtin-modules/",
+          "packageDependencies": [
+            ["builtin-modules", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["bytes", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/bytes-npm-3.0.0-72e85efcd7-98d6c0ab36.zip/node_modules/bytes/",
+          "packageDependencies": [
+            ["bytes", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/bytes-npm-3.1.0-5ba1e8cbb8-c3f64645ef.zip/node_modules/bytes/",
+          "packageDependencies": [
+            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cacache", [
+        ["npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/cacache-npm-15.0.5-f324357b55-8e371cbf3c.zip/node_modules/cacache/",
+          "packageDependencies": [
+            ["cacache", "npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"],
+            ["@npmcli/move-file", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"],
+            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"],
+            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
+            ["infer-owner", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"],
+            ["lru-cache", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
+            ["minipass-collect", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"],
+            ["minipass-flush", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"],
+            ["minipass-pipeline", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"],
+            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"],
+            ["p-map", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"],
+            ["promise-inflight", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"],
+            ["rimraf", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"],
+            ["ssri", "npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"],
+            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
+            ["unique-filename", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cache-base", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/cache-base-npm-1.0.1-94c04d4f71-3f362ba824.zip/node_modules/cache-base/",
+          "packageDependencies": [
+            ["cache-base", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"],
+            ["collection-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"],
+            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"],
+            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
+            ["has-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
+            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"],
+            ["to-object-path", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"],
+            ["union-value", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"],
+            ["unset-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cacheable-lookup", [
+        ["npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.3-285cb52f4f-a51e3ddb82.zip/node_modules/cacheable-lookup/",
+          "packageDependencies": [
+            ["cacheable-lookup", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cacheable-request", [
+        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/cacheable-request-npm-7.0.1-8d81f09261-fe0b6f3b8a.zip/node_modules/cacheable-request/",
+          "packageDependencies": [
+            ["cacheable-request", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"],
+            ["clone-response", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"],
+            ["get-stream", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"],
+            ["http-cache-semantics", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"],
+            ["keyv", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"],
+            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"],
+            ["normalize-url", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"],
+            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["callsites", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/callsites-npm-3.1.0-9eb8c274fc-f726bf10d7.zip/node_modules/callsites/",
+          "packageDependencies": [
+            ["callsites", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["camel-case", [
+        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/camel-case-npm-4.1.1-12765494f7-c202f62a74.zip/node_modules/camel-case/",
+          "packageDependencies": [
+            ["camel-case", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"],
+            ["pascal-case", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["camelcase", [
+        ["npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-c4a14b435b-6a3350c4ea.zip/node_modules/camelcase/",
+          "packageDependencies": [
+            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.1.0", {
+          "packageLocation": "./.yarn/cache/camelcase-npm-6.1.0-d0e05be5f0-3e968d5efb.zip/node_modules/camelcase/",
+          "packageDependencies": [
+            ["camelcase", "npm:6.1.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["caniuse-lite", [
+        ["npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz", {
+          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001104-7c7a30129a-fdaf22cc7d.zip/node_modules/caniuse-lite/",
+          "packageDependencies": [
+            ["caniuse-lite", "npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz", {
+          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001117-130f4ae236-1e662b5508.zip/node_modules/caniuse-lite/",
+          "packageDependencies": [
+            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.30001151", {
+          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001151-29bf83e412-3acb52ac17.zip/node_modules/caniuse-lite/",
+          "packageDependencies": [
+            ["caniuse-lite", "npm:1.0.30001151"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["caseless", [
+        ["npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz", {
+          "packageLocation": "./.yarn/cache/caseless-npm-0.12.0-d000fe9455-147f48bff9.zip/node_modules/caseless/",
+          "packageDependencies": [
+            ["caseless", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["chalk", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/chalk-npm-1.1.3-415cd93d89-bc2df54f6d.zip/node_modules/chalk/",
+          "packageDependencies": [
+            ["chalk", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"],
+            ["ansi-styles", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"],
+            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"],
+            ["has-ansi", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"],
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
+            ["supports-color", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", {
+          "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-83e0619898-22c7b7b5bc.zip/node_modules/chalk/",
+          "packageDependencies": [
+            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
+            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
+            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"],
+            ["supports-color", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/chalk-npm-3.0.0-f81cdc94b3-4018b0c812.zip/node_modules/chalk/",
+          "packageDependencies": [
+            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
+            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
+            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/chalk-npm-4.1.0-bcc07ea531-f860285b41.zip/node_modules/chalk/",
+          "packageDependencies": [
+            ["chalk", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"],
+            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
+            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["chokidar", [
+        ["npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", {
+          "packageLocation": "./.yarn/cache/chokidar-npm-2.1.8-7b1ceeb46a-0758dcc7c6.zip/node_modules/chokidar/",
+          "packageDependencies": [
+            ["chokidar", "npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"],
+            ["anymatch", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"],
+            ["async-each", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"],
+            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
+            ["fsevents", "patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"],
+            ["glob-parent", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["is-binary-path", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
+            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"],
+            ["readdirp", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"],
+            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/chokidar-npm-3.4.1-5798e5a2ae-fdbeae89bd.zip/node_modules/chokidar/",
+          "packageDependencies": [
+            ["chokidar", "npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"],
+            ["anymatch", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"],
+            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
+            ["fsevents", "patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"],
+            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
+            ["is-binary-path", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
+            ["readdirp", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["chownr", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-38c4955116-b06ba0bf42.zip/node_modules/chownr/",
+          "packageDependencies": [
+            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["chrome-trace-event", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/chrome-trace-event-npm-1.0.2-e0d70573de-926fe23bc9.zip/node_modules/chrome-trace-event/",
+          "packageDependencies": [
+            ["chrome-trace-event", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ci-info", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/ci-info-npm-2.0.0-a7f4417c5b-553fe83c08.zip/node_modules/ci-info/",
+          "packageDependencies": [
+            ["ci-info", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["class-utils", [
+        ["npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz", {
+          "packageLocation": "./.yarn/cache/class-utils-npm-0.3.6-fb58ffcbad-6411679ad4.zip/node_modules/class-utils/",
+          "packageDependencies": [
+            ["class-utils", "npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"],
+            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"],
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
+            ["static-extend", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["classnames", [
+        ["npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz", {
+          "packageLocation": "./.yarn/cache/classnames-npm-2.2.6-55c23d3002-490eaeca59.zip/node_modules/classnames/",
+          "packageDependencies": [
+            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clean-css", [
+        ["npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/clean-css-npm-4.2.3-38b477ba36-a60f780082.zip/node_modules/clean-css/",
+          "packageDependencies": [
+            ["clean-css", "npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clean-stack", [
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-51ff747d05-e291ce2b8c.zip/node_modules/clean-stack/",
+          "packageDependencies": [
+            ["clean-stack", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clean-webpack-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/clean-webpack-plugin-virtual-e6fa6b2371/0/cache/clean-webpack-plugin-npm-3.0.0-d41cd9b41c-fc0fbd1c8e.zip/node_modules/clean-webpack-plugin/",
+          "packageDependencies": [
+            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
+            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
+            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clipanion", [
+        ["npm:2.6.2", {
+          "packageLocation": "./.yarn/cache/clipanion-npm-2.6.2-65049fe240-d162deedd0.zip/node_modules/clipanion/",
+          "packageDependencies": [
+            ["clipanion", "npm:2.6.2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cliui", [
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/cliui-npm-5.0.0-fb4a0d5115-25e61dc985.zip/node_modules/cliui/",
+          "packageDependencies": [
+            ["cliui", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"],
+            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
+            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"],
+            ["wrap-ansi", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clone-response", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/clone-response-npm-1.0.2-4ecad846bc-71832f9219.zip/node_modules/clone-response/",
+          "packageDependencies": [
+            ["clone-response", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"],
+            ["mimic-response", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["clsx", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/clsx-npm-1.1.1-5f08b5303b-d8ae10ac05.zip/node_modules/clsx/",
+          "packageDependencies": [
+            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["code-point-at", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/code-point-at-npm-1.1.0-be657e74ad-7d9837296e.zip/node_modules/code-point-at/",
+          "packageDependencies": [
+            ["code-point-at", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["collection-visit", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/collection-visit-npm-1.0.0-f8de38dbca-c73cb1316c.zip/node_modules/collection-visit/",
+          "packageDependencies": [
+            ["collection-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"],
+            ["map-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"],
+            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["color-convert", [
+        ["npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz", {
+          "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-cb1b00346d-5f244daa3d.zip/node_modules/color-convert/",
+          "packageDependencies": [
+            ["color-convert", "npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"],
+            ["color-name", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/color-convert-npm-2.0.1-a468729ddc-3d5d8a011a.zip/node_modules/color-convert/",
+          "packageDependencies": [
+            ["color-convert", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"],
+            ["color-name", "npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["color-name", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/color-name-npm-1.1.3-b81b7d7714-d8b91bb90a.zip/node_modules/color-name/",
+          "packageDependencies": [
+            ["color-name", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/color-name-npm-1.1.4-569c622302-3e1c9a4dee.zip/node_modules/color-name/",
+          "packageDependencies": [
+            ["color-name", "npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["colorette", [
+        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/colorette-npm-1.2.1-19948a09a4-1cc21ad4b8.zip/node_modules/colorette/",
+          "packageDependencies": [
+            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["colors", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/colors-npm-1.4.0-d9ee0d7834-a0f266ac04.zip/node_modules/colors/",
+          "packageDependencies": [
+            ["colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["combined-stream", [
+        ["npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz", {
+          "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-7ee0df0b52-5791ce7944.zip/node_modules/combined-stream/",
+          "packageDependencies": [
+            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
+            ["delayed-stream", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["command-line-usage", [
+        ["npm:6.1.0", {
+          "packageLocation": "./.yarn/cache/command-line-usage-npm-6.1.0-061ea2a282-c49e5f4a67.zip/node_modules/command-line-usage/",
+          "packageDependencies": [
+            ["command-line-usage", "npm:6.1.0"],
+            ["array-back", "npm:4.0.1"],
+            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
+            ["table-layout", "npm:1.0.1"],
+            ["typical", "npm:5.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["commander", [
+        ["npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", {
+          "packageLocation": "./.yarn/cache/commander-npm-2.20.3-ae9b12bcd9-b73428e97d.zip/node_modules/commander/",
+          "packageDependencies": [
+            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/commander-npm-4.1.1-69c282739d-448585071b.zip/node_modules/commander/",
+          "packageDependencies": [
+            ["commander", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.2.0", {
+          "packageLocation": "./.yarn/cache/commander-npm-6.2.0-5c82761f33-c78501cd98.zip/node_modules/commander/",
+          "packageDependencies": [
+            ["commander", "npm:6.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["comment-json", [
+        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz", {
+          "packageLocation": "./.yarn/cache/comment-json-npm-2.4.2-4e3a863c29-80bc181741.zip/node_modules/comment-json/",
+          "packageDependencies": [
+            ["comment-json", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"],
+            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
+            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"],
+            ["has-own-prop", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"],
+            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["common-tags", [
+        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/common-tags-npm-1.8.0-8dc0c707f8-f37a868d86.zip/node_modules/common-tags/",
+          "packageDependencies": [
+            ["common-tags", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["commondir", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/commondir-npm-1.0.1-2f30185445-98f18ad14f.zip/node_modules/commondir/",
+          "packageDependencies": [
+            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["component-emitter", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/component-emitter-npm-1.3.0-2819e3f4af-fc4edbf101.zip/node_modules/component-emitter/",
+          "packageDependencies": [
+            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["compressible", [
+        ["npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", {
+          "packageLocation": "./.yarn/cache/compressible-npm-2.0.18-4a85912421-8ac178b6ef.zip/node_modules/compressible/",
+          "packageDependencies": [
+            ["compressible", "npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"],
+            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["compression", [
+        ["npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", {
+          "packageLocation": "./.yarn/cache/compression-npm-1.7.4-091cebef94-8f53567770.zip/node_modules/compression/",
+          "packageDependencies": [
+            ["compression", "npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"],
+            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
+            ["bytes", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"],
+            ["compressible", "npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["on-headers", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
+            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["concat-map", [
+        ["npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-5f3d48b8de-554e28d9ee.zip/node_modules/concat-map/",
+          "packageDependencies": [
+            ["concat-map", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["connect-history-api-fallback", [
+        ["npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/connect-history-api-fallback-npm-1.6.0-62edf2c17a-298f60415d.zip/node_modules/connect-history-api-fallback/",
+          "packageDependencies": [
+            ["connect-history-api-fallback", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["console-control-strings", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-8bfaba6262-58a404d951.zip/node_modules/console-control-strings/",
+          "packageDependencies": [
+            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["contains-path", [
+        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/contains-path-npm-0.1.0-bf2953afcb-59920a59a0.zip/node_modules/contains-path/",
+          "packageDependencies": [
+            ["contains-path", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["content-disposition", [
+        ["npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", {
+          "packageLocation": "./.yarn/cache/content-disposition-npm-0.5.3-e98afeed39-8f1f235c04.zip/node_modules/content-disposition/",
+          "packageDependencies": [
+            ["content-disposition", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["content-type", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/content-type-npm-1.0.4-3c7f97e2a6-ff6e19cbf2.zip/node_modules/content-type/",
+          "packageDependencies": [
+            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["convert-source-map", [
+        ["npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/convert-source-map-npm-1.7.0-4e7b391f76-b10fbf041e.zip/node_modules/convert-source-map/",
+          "packageDependencies": [
+            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cookie", [
+        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/cookie-npm-0.4.0-e8f5673c57-7aaef4b642.zip/node_modules/cookie/",
+          "packageDependencies": [
+            ["cookie", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cookie-signature", [
+        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/cookie-signature-npm-1.0.6-d0b3c28004-305054e102.zip/node_modules/cookie-signature/",
+          "packageDependencies": [
+            ["cookie-signature", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["copy-descriptor", [
+        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/copy-descriptor-npm-0.1.1-b3e517abb5-c052cf571f.zip/node_modules/copy-descriptor/",
+          "packageDependencies": [
+            ["copy-descriptor", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["copy-webpack-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1", {
+          "packageLocation": "./.yarn/$$virtual/copy-webpack-plugin-virtual-51fd9331f8/0/cache/copy-webpack-plugin-npm-6.2.1-297e10f806-99ef83b423.zip/node_modules/copy-webpack-plugin/",
+          "packageDependencies": [
+            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
+            ["cacache", "npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"],
+            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
+            ["find-cache-dir", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"],
+            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
+            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
+            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["serialize-javascript", "npm:5.0.1"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["core-js", [
+        ["npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", {
+          "packageLocation": "./.yarn/unplugged/core-js-npm-2.6.11-57e73666ba/node_modules/core-js/",
+          "packageDependencies": [
+            ["core-js", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz", {
+          "packageLocation": "./.yarn/unplugged/core-js-npm-3.6.5-166d65952e/node_modules/core-js/",
+          "packageDependencies": [
+            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["core-js-compat", [
+        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz", {
+          "packageLocation": "./.yarn/cache/core-js-compat-npm-3.6.5-f1cca24989-b263b5313f.zip/node_modules/core-js-compat/",
+          "packageDependencies": [
+            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
+            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
+            ["semver", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["core-js-pure", [
+        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz", {
+          "packageLocation": "./.yarn/unplugged/core-js-pure-npm-3.6.5-7b291ad14f/node_modules/core-js-pure/",
+          "packageDependencies": [
+            ["core-js-pure", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["core-util-is", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/core-util-is-npm-1.0.2-373a1c9021-089015ee3c.zip/node_modules/core-util-is/",
+          "packageDependencies": [
+            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["corser", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/corser-npm-2.0.1-b5c89e19be-5af366b3ea.zip/node_modules/corser/",
+          "packageDependencies": [
+            ["corser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cosmiconfig", [
+        ["npm:7.0.0", {
+          "packageLocation": "./.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-151fcb9177.zip/node_modules/cosmiconfig/",
+          "packageDependencies": [
+            ["cosmiconfig", "npm:7.0.0"],
+            ["@types/parse-json", "npm:4.0.0"],
+            ["import-fresh", "npm:3.2.1"],
+            ["parse-json", "npm:5.1.0"],
+            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"],
+            ["yaml", "npm:1.10.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cross-spawn", [
+        ["npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/cross-spawn-npm-6.0.5-b596e42a26-05fbbf957d.zip/node_modules/cross-spawn/",
+          "packageDependencies": [
+            ["cross-spawn", "npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"],
+            ["nice-try", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"],
+            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
+            ["shebang-command", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"],
+            ["which", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.3", {
+          "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-51f10036f5.zip/node_modules/cross-spawn/",
+          "packageDependencies": [
+            ["cross-spawn", "npm:7.0.3"],
+            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"],
+            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
+            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-07a9d8e991-51f10036f5.zip/node_modules/cross-spawn/",
+          "packageDependencies": [
+            ["cross-spawn", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"],
+            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"],
+            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
+            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["crypto-random-string", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/crypto-random-string-npm-1.0.0-ec63a18cda-0876b316cc.zip/node_modules/crypto-random-string/",
+          "packageDependencies": [
+            ["crypto-random-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-blank-pseudo", [
+        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/css-blank-pseudo-npm-0.1.4-72388a4168-605927ba91.zip/node_modules/css-blank-pseudo/",
+          "packageDependencies": [
+            ["css-blank-pseudo", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-has-pseudo", [
+        ["npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz", {
+          "packageLocation": "./.yarn/cache/css-has-pseudo-npm-0.10.0-e583e84c49-8bfb4c7d42.zip/node_modules/css-has-pseudo/",
+          "packageDependencies": [
+            ["css-has-pseudo", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0", {
+          "packageLocation": "./.yarn/$$virtual/css-loader-virtual-91fbdd3c05/0/cache/css-loader-npm-5.0.0-817f349654-8b0d45e201.zip/node_modules/css-loader/",
+          "packageDependencies": [
+            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
+            ["camelcase", "npm:6.1.0"],
+            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
+            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["postcss", "npm:8.1.4"],
+            ["postcss-modules-extract-imports", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
+            ["postcss-modules-local-by-default", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
+            ["postcss-modules-scope", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
+            ["postcss-modules-values", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
+            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-mediaquery", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/css-mediaquery-npm-0.1.2-1a2db1b6cd-571ab2efdb.zip/node_modules/css-mediaquery/",
+          "packageDependencies": [
+            ["css-mediaquery", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-prefers-color-scheme", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/css-prefers-color-scheme-npm-3.1.1-7913ab1ae8-3ef06a7a42.zip/node_modules/css-prefers-color-scheme/",
+          "packageDependencies": [
+            ["css-prefers-color-scheme", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-select", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/css-select-npm-1.2.0-6f504401a8-c1fdd9040c.zip/node_modules/css-select/",
+          "packageDependencies": [
+            ["css-select", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"],
+            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"],
+            ["css-what", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"],
+            ["domutils", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"],
+            ["nth-check", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["css-what", [
+        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/css-what-npm-2.1.3-27e407c1c1-732fcecfe3.zip/node_modules/css-what/",
+          "packageDependencies": [
+            ["css-what", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cssdb", [
+        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/cssdb-npm-4.4.0-a034581204-457af51749.zip/node_modules/cssdb/",
+          "packageDependencies": [
+            ["cssdb", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["cssesc", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/cssesc-npm-2.0.0-e8ee137bea-f32fabda44.zip/node_modules/cssesc/",
+          "packageDependencies": [
+            ["cssesc", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/cssesc-npm-3.0.0-16b37e2ed7-673783eda1.zip/node_modules/cssesc/",
+          "packageDependencies": [
+            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["csstype", [
+        ["npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz", {
+          "packageLocation": "./.yarn/cache/csstype-npm-2.6.11-b58edea390-b5de145e84.zip/node_modules/csstype/",
+          "packageDependencies": [
+            ["csstype", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/csstype-npm-3.0.2-653341ad2a-acf2852a3c.zip/node_modules/csstype/",
+          "packageDependencies": [
+            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dashdash", [
+        ["npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", {
+          "packageLocation": "./.yarn/cache/dashdash-npm-1.14.1-6622b50aa6-5959409ee4.zip/node_modules/dashdash/",
+          "packageDependencies": [
+            ["dashdash", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["debug", [
+        ["virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/debug-virtual-b31cd6dc94/0/cache/debug-npm-3.1.0-1eb0e42f93-1295acd5e0.zip/node_modules/debug/",
+          "packageDependencies": [
+            ["debug", "virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"],
+            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"],
+            ["supports-color", null]
+          ],
+          "packagePeers": [
+            "supports-color"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", {
+          "packageLocation": "./.yarn/$$virtual/debug-virtual-7896f62f01/0/cache/debug-npm-3.2.6-dc1603724a-619feb53b1.zip/node_modules/debug/",
+          "packageDependencies": [
+            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
+            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
+            ["supports-color", null]
+          ],
+          "packagePeers": [
+            "supports-color"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/debug-virtual-e772628d53/0/cache/debug-npm-4.2.0-9d7b0c952c-dcfb8ede26.zip/node_modules/debug/",
+          "packageDependencies": [
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
+            ["supports-color", null]
+          ],
+          "packagePeers": [
+            "supports-color"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", {
+          "packageLocation": "./.yarn/$$virtual/debug-virtual-8798b5e6a3/0/cache/debug-npm-2.6.9-9f555c9368-559f44f98c.zip/node_modules/debug/",
+          "packageDependencies": [
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"],
+            ["supports-color", null]
+          ],
+          "packagePeers": [
+            "supports-color"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/debug-virtual-63b898856e/0/cache/debug-npm-4.2.0-9d7b0c952c-dcfb8ede26.zip/node_modules/debug/",
+          "packageDependencies": [
+            ["debug", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
+            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
+          ],
+          "packagePeers": [
+            "supports-color"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["decamelize", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/decamelize-npm-1.2.0-c48553a177-8ca9d03ea8.zip/node_modules/decamelize/",
+          "packageDependencies": [
+            ["decamelize", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["decode-uri-component", [
+        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/decode-uri-component-npm-0.2.0-2fd6843a20-d8cb28c33f.zip/node_modules/decode-uri-component/",
+          "packageDependencies": [
+            ["decode-uri-component", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["decompress-response", [
+        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/decompress-response-npm-6.0.0-b8703fe293-bb8b8c42be.zip/node_modules/decompress-response/",
+          "packageDependencies": [
+            ["decompress-response", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"],
+            ["mimic-response", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["deep-equal", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/deep-equal-npm-1.1.1-a8a5dd071b-cc6a0009ce.zip/node_modules/deep-equal/",
+          "packageDependencies": [
+            ["deep-equal", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"],
+            ["is-arguments", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"],
+            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"],
+            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
+            ["object-is", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
+            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["deep-extend", [
+        ["npm:0.6.0", {
+          "packageLocation": "./.yarn/cache/deep-extend-npm-0.6.0-e182924219-856d7f52db.zip/node_modules/deep-extend/",
+          "packageDependencies": [
+            ["deep-extend", "npm:0.6.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["deep-is", [
+        ["npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/deep-is-npm-0.1.3-eac092c008-3de58f86af.zip/node_modules/deep-is/",
+          "packageDependencies": [
+            ["deep-is", "npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["deepmerge", [
+        ["npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/deepmerge-npm-1.5.2-cb53f920d1-5c44bd09ed.zip/node_modules/deepmerge/",
+          "packageDependencies": [
+            ["deepmerge", "npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["default-gateway", [
+        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/default-gateway-npm-4.2.0-882963c805-5d92439d57.zip/node_modules/default-gateway/",
+          "packageDependencies": [
+            ["default-gateway", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"],
+            ["execa", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"],
+            ["ip-regex", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["defer-to-connect", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.0-29869355b5-0453938bfc.zip/node_modules/defer-to-connect/",
+          "packageDependencies": [
+            ["defer-to-connect", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["define-properties", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/define-properties-npm-1.1.3-3a85be0cdd-b69c48c1b1.zip/node_modules/define-properties/",
+          "packageDependencies": [
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["define-property", [
+        ["npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz", {
+          "packageLocation": "./.yarn/cache/define-property-npm-0.2.5-ec12240ee1-6fed054072.zip/node_modules/define-property/",
+          "packageDependencies": [
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["is-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/define-property-npm-1.0.0-e588f614ef-9034f8f6f3.zip/node_modules/define-property/",
+          "packageDependencies": [
+            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
+            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/define-property-npm-2.0.2-a2692b51a8-00c7ec53b5.zip/node_modules/define-property/",
+          "packageDependencies": [
+            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
+            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["del", [
+        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/del-npm-4.1.1-1c907748da-87eecb2af5.zip/node_modules/del/",
+          "packageDependencies": [
+            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
+            ["@types/glob", "npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"],
+            ["globby", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"],
+            ["is-path-cwd", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"],
+            ["is-path-in-cwd", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"],
+            ["p-map", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"],
+            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
+            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["delayed-stream", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-b2fc5af4be-d9dfb0a7c7.zip/node_modules/delayed-stream/",
+          "packageDependencies": [
+            ["delayed-stream", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["delegates", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/delegates-npm-1.0.0-9728c29d49-7459e34d29.zip/node_modules/delegates/",
+          "packageDependencies": [
+            ["delegates", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["depd", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/depd-npm-1.1.2-2768b5622c-f45566ff70.zip/node_modules/depd/",
+          "packageDependencies": [
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["destroy", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/destroy-npm-1.0.4-c50a6bdecd-5a516fc5a8.zip/node_modules/destroy/",
+          "packageDependencies": [
+            ["destroy", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["detect-node", [
+        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/detect-node-npm-2.0.4-9d8bbd0551-e7648a5a91.zip/node_modules/detect-node/",
+          "packageDependencies": [
+            ["detect-node", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["diff", [
+        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/diff-npm-4.0.2-a13f8d6c8d-81b5cd7ddd.zip/node_modules/diff/",
+          "packageDependencies": [
+            ["diff", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dir-glob", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/dir-glob-npm-3.0.1-30965cf8c9-687fa3bd60.zip/node_modules/dir-glob/",
+          "packageDependencies": [
+            ["dir-glob", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"],
+            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dns-equal", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/dns-equal-npm-1.0.0-faddf7b972-096be3c1a7.zip/node_modules/dns-equal/",
+          "packageDependencies": [
+            ["dns-equal", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dns-packet", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/dns-packet-npm-1.3.1-83adee2150-cb7bb4e8fb.zip/node_modules/dns-packet/",
+          "packageDependencies": [
+            ["dns-packet", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"],
+            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"],
+            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dns-txt", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/dns-txt-npm-2.0.2-df14b932f8-62d4b87b09.zip/node_modules/dns-txt/",
+          "packageDependencies": [
+            ["dns-txt", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"],
+            ["buffer-indexof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["doctrine", [
+        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/doctrine-npm-1.5.0-53163999e1-aaffea02f9.zip/node_modules/doctrine/",
+          "packageDependencies": [
+            ["doctrine", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
+            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/doctrine-npm-2.1.0-4199f60fea-4aa55e4675.zip/node_modules/doctrine/",
+          "packageDependencies": [
+            ["doctrine", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-d6cc77244e-2eae469bd2.zip/node_modules/doctrine/",
+          "packageDependencies": [
+            ["doctrine", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dom-converter", [
+        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/dom-converter-npm-0.2.0-42db4cb7b3-437b4464bd.zip/node_modules/dom-converter/",
+          "packageDependencies": [
+            ["dom-converter", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"],
+            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dom-helpers", [
+        ["npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/dom-helpers-npm-5.2.0-50f26cbd58-9ef27628f4.zip/node_modules/dom-helpers/",
+          "packageDependencies": [
+            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
+            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
+            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dom-serializer", [
+        ["npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/dom-serializer-npm-0.2.2-c0a33ac98b-598e05e71b.zip/node_modules/dom-serializer/",
+          "packageDependencies": [
+            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
+            ["domelementtype", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"],
+            ["entities", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dom-walk", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/dom-walk-npm-0.1.2-dc50e0840a-948c7527f3.zip/node_modules/dom-walk/",
+          "packageDependencies": [
+            ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["domelementtype", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/domelementtype-npm-1.3.1-f26205e843-a4791788de.zip/node_modules/domelementtype/",
+          "packageDependencies": [
+            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/domelementtype-npm-2.0.1-07330e41a2-9ddda35625.zip/node_modules/domelementtype/",
+          "packageDependencies": [
+            ["domelementtype", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["domhandler", [
+        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", {
+          "packageLocation": "./.yarn/cache/domhandler-npm-2.4.2-670cd2a8b8-dbe99b096a.zip/node_modules/domhandler/",
+          "packageDependencies": [
+            ["domhandler", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"],
+            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["domutils", [
+        ["npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz", {
+          "packageLocation": "./.yarn/cache/domutils-npm-1.5.1-070804a087-ffc578118d.zip/node_modules/domutils/",
+          "packageDependencies": [
+            ["domutils", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"],
+            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
+            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/domutils-npm-1.7.0-12cc334c58-a5b2f01fb3.zip/node_modules/domutils/",
+          "packageDependencies": [
+            ["domutils", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"],
+            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
+            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["dot-case", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/dot-case-npm-3.0.3-54b8ad3b9a-31e5037039.zip/node_modules/dot-case/",
+          "packageDependencies": [
+            ["dot-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"],
+            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ecc-jsbn", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-5995706960-5b4dd05f24.zip/node_modules/ecc-jsbn/",
+          "packageDependencies": [
+            ["ecc-jsbn", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"],
+            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"],
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ecstatic", [
+        ["npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/ecstatic-npm-3.3.2-c769787e8f-a6185a71da.zip/node_modules/ecstatic/",
+          "packageDependencies": [
+            ["ecstatic", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"],
+            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"],
+            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
+            ["url-join", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ee-first", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/ee-first-npm-1.1.1-26f9185cbc-ba74f91398.zip/node_modules/ee-first/",
+          "packageDependencies": [
+            ["ee-first", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ejs", [
+        ["npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", {
+          "packageLocation": "./.yarn/unplugged/ejs-npm-2.7.4-34e822bf18/node_modules/ejs/",
+          "packageDependencies": [
+            ["ejs", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["electron-to-chromium", [
+        ["npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz", {
+          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.501-d86e88ac80-ec4408a085.zip/node_modules/electron-to-chromium/",
+          "packageDependencies": [
+            ["electron-to-chromium", "npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz", {
+          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.544-5114f33edf-bb86613254.zip/node_modules/electron-to-chromium/",
+          "packageDependencies": [
+            ["electron-to-chromium", "npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.3.583", {
+          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.583-8057eacb5c-134710b06c.zip/node_modules/electron-to-chromium/",
+          "packageDependencies": [
+            ["electron-to-chromium", "npm:1.3.583"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["emoji-regex", [
+        ["npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/emoji-regex-npm-7.0.3-743eb02d8c-e3a504cf52.zip/node_modules/emoji-regex/",
+          "packageDependencies": [
+            ["emoji-regex", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["emojis-list", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/emojis-list-npm-3.0.0-54fce2c8ca-a79126b55b.zip/node_modules/emojis-list/",
+          "packageDependencies": [
+            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["encodeurl", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/encodeurl-npm-1.0.2-34208e38c7-6ee5fcbcd2.zip/node_modules/encodeurl/",
+          "packageDependencies": [
+            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["end-of-stream", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/end-of-stream-npm-1.1.0-9fbd8281f1-1a078bec4b.zip/node_modules/end-of-stream/",
+          "packageDependencies": [
+            ["end-of-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"],
+            ["once", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz", {
+          "packageLocation": "./.yarn/cache/end-of-stream-npm-1.4.4-76b4313cd7-7da60e458b.zip/node_modules/end-of-stream/",
+          "packageDependencies": [
+            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
+            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["enhanced-resolve", [
+        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/enhanced-resolve-npm-4.3.0-a66c6355f8-aecdc0b208.zip/node_modules/enhanced-resolve/",
+          "packageDependencies": [
+            ["enhanced-resolve", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
+            ["memory-fs", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"],
+            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.3.1", {
+          "packageLocation": "./.yarn/cache/enhanced-resolve-npm-5.3.1-c14cacac59-1689ec4347.zip/node_modules/enhanced-resolve/",
+          "packageDependencies": [
+            ["enhanced-resolve", "npm:5.3.1"],
+            ["graceful-fs", "npm:4.2.4"],
+            ["tapable", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["enquirer", [
+        ["npm:2.3.6", {
+          "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-7899175762-e249bb97bf.zip/node_modules/enquirer/",
+          "packageDependencies": [
+            ["enquirer", "npm:2.3.6"],
+            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz", {
+          "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-ba93cd9855-e249bb97bf.zip/node_modules/enquirer/",
+          "packageDependencies": [
+            ["enquirer", "npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"],
+            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["entities", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/entities-npm-1.1.2-73ec85057a-3a4259db35.zip/node_modules/entities/",
+          "packageDependencies": [
+            ["entities", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/entities-npm-2.0.3-b9535456e1-02dfe1fbf5.zip/node_modules/entities/",
+          "packageDependencies": [
+            ["entities", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["env-paths", [
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/env-paths-npm-2.2.0-7263d8b905-09de4fd1c0.zip/node_modules/env-paths/",
+          "packageDependencies": [
+            ["env-paths", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["envinfo", [
+        ["npm:7.7.3", {
+          "packageLocation": "./.yarn/cache/envinfo-npm-7.7.3-2ae94ae21f-1372214a3f.zip/node_modules/envinfo/",
+          "packageDependencies": [
+            ["envinfo", "npm:7.7.3"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["errno", [
+        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz", {
+          "packageLocation": "./.yarn/cache/errno-npm-0.1.7-bdf8a81105-3d2da6fa1e.zip/node_modules/errno/",
+          "packageDependencies": [
+            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
+            ["prr", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["error-ex", [
+        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/error-ex-npm-1.3.2-26fb17efb9-6c6c918742.zip/node_modules/error-ex/",
+          "packageDependencies": [
+            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"],
+            ["is-arrayish", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["es-abstract", [
+        ["npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", {
+          "packageLocation": "./.yarn/cache/es-abstract-npm-1.17.6-7a254592ff-637ad488bd.zip/node_modules/es-abstract/",
+          "packageDependencies": [
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
+            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
+            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
+            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
+            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
+            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
+            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.18.0-next.1", {
+          "packageLocation": "./.yarn/cache/es-abstract-npm-1.18.0-next.1-12dd4b4b73-f1e37567e4.zip/node_modules/es-abstract/",
+          "packageDependencies": [
+            ["es-abstract", "npm:1.18.0-next.1"],
+            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
+            ["is-callable", "npm:1.2.2"],
+            ["is-negative-zero", "npm:2.0.0"],
+            ["is-regex", "npm:1.1.1"],
+            ["object-inspect", "npm:1.8.0"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
+            ["object.assign", "npm:4.1.1"],
+            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
+            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["es-to-primitive", [
+        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/es-to-primitive-npm-1.2.1-d9e5b57fd8-d20b7be268.zip/node_modules/es-to-primitive/",
+          "packageDependencies": [
+            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
+            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
+            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"],
+            ["is-symbol", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["escalade", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/escalade-npm-3.0.2-dc1b832525-30f45cb4db.zip/node_modules/escalade/",
+          "packageDependencies": [
+            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.1", {
+          "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-1e31ff50d6.zip/node_modules/escalade/",
+          "packageDependencies": [
+            ["escalade", "npm:3.1.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["escape-html", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/escape-html-npm-1.0.3-35da2231bd-900a7f2b80.zip/node_modules/escape-html/",
+          "packageDependencies": [
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["escape-string-regexp", [
+        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/escape-string-regexp-npm-1.0.5-79e51598af-f9484b8b4c.zip/node_modules/escape-string-regexp/",
+          "packageDependencies": [
+            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint", [
+        ["npm:7.12.1", {
+          "packageLocation": "./.yarn/cache/eslint-npm-7.12.1-621bb6523c-b3d11ea516.zip/node_modules/eslint/",
+          "packageDependencies": [
+            ["eslint", "npm:7.12.1"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["@eslint/eslintrc", "npm:0.2.1"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["chalk", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"],
+            ["cross-spawn", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["doctrine", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"],
+            ["enquirer", "npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"],
+            ["eslint-scope", "npm:5.1.1"],
+            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"],
+            ["eslint-visitor-keys", "npm:2.0.0"],
+            ["espree", "npm:7.3.0"],
+            ["esquery", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"],
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
+            ["file-entry-cache", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"],
+            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"],
+            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
+            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
+            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"],
+            ["import-fresh", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"],
+            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
+            ["json-stable-stringify-without-jsonify", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"],
+            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
+            ["natural-compare", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"],
+            ["optionator", "npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"],
+            ["progress", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"],
+            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["strip-ansi", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"],
+            ["strip-json-comments", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"],
+            ["table", "npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"],
+            ["text-table", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"],
+            ["v8-compile-cache", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-config-prettier", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0", {
+          "packageLocation": "./.yarn/$$virtual/eslint-config-prettier-virtual-02c1fa6d09/0/cache/eslint-config-prettier-npm-6.14.0-10ad0a5650-8d478429bb.zip/node_modules/eslint-config-prettier/",
+          "packageDependencies": [
+            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
+            ["eslint", "npm:7.12.1"],
+            ["get-stdin", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"]
+          ],
+          "packagePeers": [
+            "eslint"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-import-resolver-node", [
+        ["npm:0.3.4", {
+          "packageLocation": "./.yarn/cache/eslint-import-resolver-node-npm-0.3.4-fa0173d267-825e34e662.zip/node_modules/eslint-import-resolver-node/",
+          "packageDependencies": [
+            ["eslint-import-resolver-node", "npm:0.3.4"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-module-utils", [
+        ["npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/eslint-module-utils-npm-2.6.0-57b7c7dc6a-f584af1764.zip/node_modules/eslint-module-utils/",
+          "packageDependencies": [
+            ["eslint-module-utils", "npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["pkg-dir", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-plugin-import", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1", {
+          "packageLocation": "./.yarn/$$virtual/eslint-plugin-import-virtual-61a46b7660/0/cache/eslint-plugin-import-npm-2.22.1-93ff619870-35ae09ceae.zip/node_modules/eslint-plugin-import/",
+          "packageDependencies": [
+            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
+            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
+            ["array.prototype.flat", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"],
+            ["contains-path", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["doctrine", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["eslint-import-resolver-node", "npm:0.3.4"],
+            ["eslint-module-utils", "npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
+            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
+            ["read-pkg-up", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["tsconfig-paths", "npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"]
+          ],
+          "packagePeers": [
+            "eslint"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-plugin-prettier", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz", {
+          "packageLocation": "./.yarn/$$virtual/eslint-plugin-prettier-virtual-b3c2338d79/0/cache/eslint-plugin-prettier-npm-3.1.4-d88d887708-4e4df15579.zip/node_modules/eslint-plugin-prettier/",
+          "packageDependencies": [
+            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["prettier", "npm:2.1.2"],
+            ["prettier-linter-helpers", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"]
+          ],
+          "packagePeers": [
+            "eslint",
+            "prettier"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-plugin-react", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5", {
+          "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-virtual-4ba4630528/0/cache/eslint-plugin-react-npm-7.21.5-5c7e9860b5-a7123f6feb.zip/node_modules/eslint-plugin-react/",
+          "packageDependencies": [
+            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
+            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
+            ["array.prototype.flatmap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"],
+            ["doctrine", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"],
+            ["eslint", "npm:7.12.1"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["jsx-ast-utils", "npm:3.1.0"],
+            ["object.entries", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"],
+            ["object.fromentries", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"],
+            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"],
+            ["string.prototype.matchall", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"]
+          ],
+          "packagePeers": [
+            "eslint"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-plugin-react-hooks", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0", {
+          "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-hooks-virtual-d04211845d/0/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-5378d16b5a.zip/node_modules/eslint-plugin-react-hooks/",
+          "packageDependencies": [
+            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
+            ["eslint", "npm:7.12.1"]
+          ],
+          "packagePeers": [
+            "eslint"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-scope", [
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.0-4e73a1aa9d-4a0e97979a.zip/node_modules/eslint-scope/",
+          "packageDependencies": [
+            ["eslint-scope", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"],
+            ["esrecurse", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"],
+            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.1", {
+          "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-79465cf508.zip/node_modules/eslint-scope/",
+          "packageDependencies": [
+            ["eslint-scope", "npm:5.1.1"],
+            ["esrecurse", "npm:4.3.0"],
+            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-utils", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/eslint-utils-npm-2.1.0-e724695a27-a43892372a.zip/node_modules/eslint-utils/",
+          "packageDependencies": [
+            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"],
+            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eslint-visitor-keys", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-1.3.0-a2f4280d26-58ab7a0107.zip/node_modules/eslint-visitor-keys/",
+          "packageDependencies": [
+            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-2.0.0-5c9523822c-429dabdcab.zip/node_modules/eslint-visitor-keys/",
+          "packageDependencies": [
+            ["eslint-visitor-keys", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["espree", [
+        ["npm:7.3.0", {
+          "packageLocation": "./.yarn/cache/espree-npm-7.3.0-d2b7d87b7d-dd2543c293.zip/node_modules/espree/",
+          "packageDependencies": [
+            ["espree", "npm:7.3.0"],
+            ["acorn", "npm:7.4.1"],
+            ["acorn-jsx", "virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"],
+            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["esprima", [
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-65632031b3-5df45a3d9c.zip/node_modules/esprima/",
+          "packageDependencies": [
+            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["esquery", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/esquery-npm-1.3.1-241a24c409-0aac7572bc.zip/node_modules/esquery/",
+          "packageDependencies": [
+            ["esquery", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"],
+            ["estraverse", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["esrecurse", [
+        ["npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/esrecurse-npm-4.2.1-5cf44c1eba-9acfa28772.zip/node_modules/esrecurse/",
+          "packageDependencies": [
+            ["esrecurse", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"],
+            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.3.0", {
+          "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-2c96302dd5.zip/node_modules/esrecurse/",
+          "packageDependencies": [
+            ["esrecurse", "npm:4.3.0"],
+            ["estraverse", "npm:5.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["estraverse", [
+        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/estraverse-npm-4.3.0-2f210a1e50-1e4c627da9.zip/node_modules/estraverse/",
+          "packageDependencies": [
+            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/estraverse-npm-5.1.0-47909d13a3-1b8a47cf7c.zip/node_modules/estraverse/",
+          "packageDependencies": [
+            ["estraverse", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.2.0", {
+          "packageLocation": "./.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-7dc1b027ae.zip/node_modules/estraverse/",
+          "packageDependencies": [
+            ["estraverse", "npm:5.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["estree-walker", [
+        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz", {
+          "packageLocation": "./.yarn/cache/estree-walker-npm-0.6.1-cc6859b52f-a63b94b841.zip/node_modules/estree-walker/",
+          "packageDependencies": [
+            ["estree-walker", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/estree-walker-npm-1.0.1-0345dd17e2-85e7cee763.zip/node_modules/estree-walker/",
+          "packageDependencies": [
+            ["estree-walker", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["esutils", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-ccb55971ac-590b045331.zip/node_modules/esutils/",
+          "packageDependencies": [
+            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["etag", [
+        ["npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz", {
+          "packageLocation": "./.yarn/cache/etag-npm-1.8.1-e3d8f00c80-f18341a3c1.zip/node_modules/etag/",
+          "packageDependencies": [
+            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eventemitter3", [
+        ["npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/eventemitter3-npm-4.0.4-036642d319-6693972304.zip/node_modules/eventemitter3/",
+          "packageDependencies": [
+            ["eventemitter3", "npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["events", [
+        ["npm:3.2.0", {
+          "packageLocation": "./.yarn/cache/events-npm-3.2.0-342ccffd74-6ea52b160c.zip/node_modules/events/",
+          "packageDependencies": [
+            ["events", "npm:3.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["eventsource", [
+        ["npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz", {
+          "packageLocation": "./.yarn/cache/eventsource-npm-1.0.7-cd167db542-0585067150.zip/node_modules/eventsource/",
+          "packageDependencies": [
+            ["eventsource", "npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"],
+            ["original", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["execa", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/execa-npm-1.0.0-bef4b21060-39714ea24e.zip/node_modules/execa/",
+          "packageDependencies": [
+            ["execa", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"],
+            ["cross-spawn", "npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"],
+            ["get-stream", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"],
+            ["is-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"],
+            ["npm-run-path", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"],
+            ["p-finally", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"],
+            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"],
+            ["strip-eof", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.3", {
+          "packageLocation": "./.yarn/cache/execa-npm-4.0.3-b70e1b2212-65b237d178.zip/node_modules/execa/",
+          "packageDependencies": [
+            ["execa", "npm:4.0.3"],
+            ["cross-spawn", "npm:7.0.3"],
+            ["get-stream", "npm:5.2.0"],
+            ["human-signals", "npm:1.1.1"],
+            ["is-stream", "npm:2.0.0"],
+            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
+            ["npm-run-path", "npm:4.0.1"],
+            ["onetime", "npm:5.1.2"],
+            ["signal-exit", "npm:3.0.3"],
+            ["strip-final-newline", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["exenv", [
+        ["npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/exenv-npm-1.2.2-360e34dccd-09fd080c04.zip/node_modules/exenv/",
+          "packageDependencies": [
+            ["exenv", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["expand-brackets", [
+        ["npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/expand-brackets-npm-2.1.4-cc72b0b1f9-9aadab00ff.zip/node_modules/expand-brackets/",
+          "packageDependencies": [
+            ["expand-brackets", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["posix-character-classes", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"],
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["express", [
+        ["npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", {
+          "packageLocation": "./.yarn/cache/express-npm-4.17.1-0488d22638-c4b470d623.zip/node_modules/express/",
+          "packageDependencies": [
+            ["express", "npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"],
+            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
+            ["array-flatten", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"],
+            ["body-parser", "npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"],
+            ["content-disposition", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"],
+            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"],
+            ["cookie", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"],
+            ["cookie-signature", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
+            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"],
+            ["finalhandler", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"],
+            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"],
+            ["merge-descriptors", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"],
+            ["methods", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"],
+            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
+            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
+            ["path-to-regexp", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"],
+            ["proxy-addr", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"],
+            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"],
+            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
+            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"],
+            ["serve-static", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"],
+            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
+            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"],
+            ["utils-merge", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"],
+            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["extend", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/extend-npm-3.0.2-e99dc88e3a-1406da1f0c.zip/node_modules/extend/",
+          "packageDependencies": [
+            ["extend", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["extend-shallow", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/extend-shallow-npm-2.0.1-c23f812022-03dbbba8b9.zip/node_modules/extend-shallow/",
+          "packageDependencies": [
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/extend-shallow-npm-3.0.2-ed2dc1f27b-5301c5070b.zip/node_modules/extend-shallow/",
+          "packageDependencies": [
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
+            ["assign-symbols", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"],
+            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["extglob", [
+        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/extglob-npm-2.0.4-9ae98a7689-ce23be772f.zip/node_modules/extglob/",
+          "packageDependencies": [
+            ["extglob", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"],
+            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
+            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
+            ["expand-brackets", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["extsprintf", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/extsprintf-npm-1.3.0-2de44c684a-892efd56aa.zip/node_modules/extsprintf/",
+          "packageDependencies": [
+            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fast-deep-equal", [
+        ["npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-ba49ffd546-451526766b.zip/node_modules/fast-deep-equal/",
+          "packageDependencies": [
+            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fast-diff", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/fast-diff-npm-1.2.0-0fae179d67-9c5407d9c4.zip/node_modules/fast-diff/",
+          "packageDependencies": [
+            ["fast-diff", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fast-glob", [
+        ["npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.4-656ba6fd90-18f9eca898.zip/node_modules/fast-glob/",
+          "packageDependencies": [
+            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
+            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"],
+            ["@nodelib/fs.walk", "npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"],
+            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
+            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"],
+            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fast-json-stable-stringify", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-8aa96b5b64-7df3fabfe4.zip/node_modules/fast-json-stable-stringify/",
+          "packageDependencies": [
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fast-levenshtein", [
+        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/fast-levenshtein-npm-2.0.6-062d57f60d-a2d03af308.zip/node_modules/fast-levenshtein/",
+          "packageDependencies": [
+            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fastq", [
+        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/fastq-npm-1.8.0-0c733855c1-77d71545ba.zip/node_modules/fastq/",
+          "packageDependencies": [
+            ["fastq", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"],
+            ["reusify", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["faye-websocket", [
+        ["npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz", {
+          "packageLocation": "./.yarn/cache/faye-websocket-npm-0.10.0-53c11f370b-2a5823ddfb.zip/node_modules/faye-websocket/",
+          "packageDependencies": [
+            ["faye-websocket", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"],
+            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz", {
+          "packageLocation": "./.yarn/cache/faye-websocket-npm-0.11.3-eb51ff0e5b-94c48a5b4e.zip/node_modules/faye-websocket/",
+          "packageDependencies": [
+            ["faye-websocket", "npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"],
+            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["file-entry-cache", [
+        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/file-entry-cache-npm-5.0.1-11589af9cd-7140588bec.zip/node_modules/file-entry-cache/",
+          "packageDependencies": [
+            ["file-entry-cache", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"],
+            ["flat-cache", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["file-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1", {
+          "packageLocation": "./.yarn/$$virtual/file-loader-virtual-619388967e/0/cache/file-loader-npm-6.1.1-5d725ae767-0272335818.zip/node_modules/file-loader/",
+          "packageDependencies": [
+            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["file-uri-to-path", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/file-uri-to-path-npm-1.0.0-b540e3f7ca-5ddb9682f0.zip/node_modules/file-uri-to-path/",
+          "packageDependencies": [
+            ["file-uri-to-path", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fill-range", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/fill-range-npm-4.0.0-1f08f7498a-4a1491ee29.zip/node_modules/fill-range/",
+          "packageDependencies": [
+            ["fill-range", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
+            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"],
+            ["to-regex-range", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/fill-range-npm-7.0.1-3c245d50ed-efca43d59b.zip/node_modules/fill-range/",
+          "packageDependencies": [
+            ["fill-range", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"],
+            ["to-regex-range", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["finalhandler", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/finalhandler-npm-1.1.2-2ca88c8c97-f2e5b6bfe2.zip/node_modules/finalhandler/",
+          "packageDependencies": [
+            ["finalhandler", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
+            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
+            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
+            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["find-cache-dir", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/find-cache-dir-npm-2.1.0-4a51953487-6e99602656.zip/node_modules/find-cache-dir/",
+          "packageDependencies": [
+            ["find-cache-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"],
+            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"],
+            ["make-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"],
+            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/find-cache-dir-npm-3.3.1-95da170ee1-b1e23226ee.zip/node_modules/find-cache-dir/",
+          "packageDependencies": [
+            ["find-cache-dir", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"],
+            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"],
+            ["make-dir", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"],
+            ["pkg-dir", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["find-up", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/find-up-npm-2.1.0-cd7301714d-9dedb89f93.zip/node_modules/find-up/",
+          "packageDependencies": [
+            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"],
+            ["locate-path", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/find-up-npm-3.0.0-cee70ed7ef-c5422fc723.zip/node_modules/find-up/",
+          "packageDependencies": [
+            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"],
+            ["locate-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/find-up-npm-4.1.0-f2949ee8a7-d612d28e02.zip/node_modules/find-up/",
+          "packageDependencies": [
+            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"],
+            ["locate-path", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"],
+            ["path-exists", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["flat-cache", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/flat-cache-npm-2.0.1-528668493b-a36ba40755.zip/node_modules/flat-cache/",
+          "packageDependencies": [
+            ["flat-cache", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"],
+            ["flatted", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"],
+            ["rimraf", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"],
+            ["write", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["flatted", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/flatted-npm-2.0.2-e13b9c0965-a3e5fb71ad.zip/node_modules/flatted/",
+          "packageDependencies": [
+            ["flatted", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["flatten", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/flatten-npm-1.0.3-f07f24ec52-8a382594dc.zip/node_modules/flatten/",
+          "packageDependencies": [
+            ["flatten", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["follow-redirects", [
+        ["npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz", {
+          "packageLocation": "./.yarn/cache/follow-redirects-npm-1.13.0-d909d3d20e-f220828d3f.zip/node_modules/follow-redirects/",
+          "packageDependencies": [
+            ["follow-redirects", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz", {
+          "packageLocation": "./.yarn/cache/follow-redirects-npm-1.5.10-336c353792-6e58e02c31.zip/node_modules/follow-redirects/",
+          "packageDependencies": [
+            ["follow-redirects", "npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"],
+            ["debug", "virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["for-in", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/for-in-npm-1.0.2-c33ffcb8c8-e8d7280a65.zip/node_modules/for-in/",
+          "packageDependencies": [
+            ["for-in", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["forever-agent", [
+        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz", {
+          "packageLocation": "./.yarn/cache/forever-agent-npm-0.6.1-3f9a3a9029-9cc0054dd4.zip/node_modules/forever-agent/",
+          "packageDependencies": [
+            ["forever-agent", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["form-data", [
+        ["npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz", {
+          "packageLocation": "./.yarn/cache/form-data-npm-2.3.3-c97d042e88-862e686b10.zip/node_modules/form-data/",
+          "packageDependencies": [
+            ["form-data", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"],
+            ["asynckit", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"],
+            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["forwarded", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/forwarded-npm-0.1.2-f730da54ac-568d862ad1.zip/node_modules/forwarded/",
+          "packageDependencies": [
+            ["forwarded", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fragment-cache", [
+        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/fragment-cache-npm-0.2.1-f628e83fc8-f88983f4bf.zip/node_modules/fragment-cache/",
+          "packageDependencies": [
+            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
+            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fresh", [
+        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/fresh-npm-0.5.2-051f60a8c8-2f76c8505d.zip/node_modules/fresh/",
+          "packageDependencies": [
+            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fs-constants", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/fs-constants-npm-1.0.0-dd82a48008-b8382395f5.zip/node_modules/fs-constants/",
+          "packageDependencies": [
+            ["fs-constants", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fs-extra", [
+        ["npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/fs-extra-npm-8.1.0-9656618adb-056a96d4f5.zip/node_modules/fs-extra/",
+          "packageDependencies": [
+            ["fs-extra", "npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
+            ["jsonfile", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"],
+            ["universalify", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fs-minipass", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-b5d5a6c13e-e14a490658.zip/node_modules/fs-minipass/",
+          "packageDependencies": [
+            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fs.realpath", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c2cc0f91a5-698a91b169.zip/node_modules/fs.realpath/",
+          "packageDependencies": [
+            ["fs.realpath", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["fsevents", [
+        ["patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457", {
+          "packageLocation": "./.yarn/unplugged/fsevents-patch-9c6876b7f6/node_modules/fsevents/",
+          "packageDependencies": [
+            ["fsevents", "patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"],
+            ["bindings", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"],
+            ["nan", "npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457", {
+          "packageLocation": "./.yarn/unplugged/fsevents-patch-6de1c9c306/node_modules/fsevents/",
+          "packageDependencies": [
+            ["fsevents", "patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"],
+            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["function-bind", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-a8e6db9470-ffad86e7d2.zip/node_modules/function-bind/",
+          "packageDependencies": [
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["functional-red-black-tree", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/functional-red-black-tree-npm-1.0.1-bb1a78ccae-477ecaf62d.zip/node_modules/functional-red-black-tree/",
+          "packageDependencies": [
+            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["gauge", [
+        ["npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz", {
+          "packageLocation": "./.yarn/cache/gauge-npm-2.7.4-a6d905b578-b136dbeb8e.zip/node_modules/gauge/",
+          "packageDependencies": [
+            ["gauge", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"],
+            ["aproba", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"],
+            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"],
+            ["has-unicode", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
+            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"],
+            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"],
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
+            ["wide-align", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["gensync", [
+        ["npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz", {
+          "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.1-63333684c6-3d14f7c34f.zip/node_modules/gensync/",
+          "packageDependencies": [
+            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["get-caller-file", [
+        ["npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-3ebd8b16cc-9dd9e1e259.zip/node_modules/get-caller-file/",
+          "packageDependencies": [
+            ["get-caller-file", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["get-own-enumerable-property-symbols", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/get-own-enumerable-property-symbols-npm-3.0.2-6cad6324a7-23f13946c7.zip/node_modules/get-own-enumerable-property-symbols/",
+          "packageDependencies": [
+            ["get-own-enumerable-property-symbols", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["get-stdin", [
+        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/get-stdin-npm-6.0.0-cb618b0243-b51d664838.zip/node_modules/get-stdin/",
+          "packageDependencies": [
+            ["get-stdin", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["get-stream", [
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/get-stream-npm-4.1.0-bebe9944cd-f41bb3c74d.zip/node_modules/get-stream/",
+          "packageDependencies": [
+            ["get-stream", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"],
+            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/get-stream-npm-5.1.0-98f157a4ea-599dad0b6b.zip/node_modules/get-stream/",
+          "packageDependencies": [
+            ["get-stream", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"],
+            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.2.0", {
+          "packageLocation": "./.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-c71c5625f4.zip/node_modules/get-stream/",
+          "packageDependencies": [
+            ["get-stream", "npm:5.2.0"],
+            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["get-value", [
+        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/get-value-npm-2.0.6-3d6aa82ba5-f08da32627.zip/node_modules/get-value/",
+          "packageDependencies": [
+            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["getpass", [
+        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz", {
+          "packageLocation": "./.yarn/cache/getpass-npm-0.1.7-fad616be8d-2650725bc6.zip/node_modules/getpass/",
+          "packageDependencies": [
+            ["getpass", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["glob", [
+        ["npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/glob-npm-7.1.6-4cde37b744-789977b524.zip/node_modules/glob/",
+          "packageDependencies": [
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
+            ["fs.realpath", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"],
+            ["inflight", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
+            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
+            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["glob-parent", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/glob-parent-npm-3.1.0-d5d9d26182-2827ec4405.zip/node_modules/glob-parent/",
+          "packageDependencies": [
+            ["glob-parent", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"],
+            ["is-glob", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"],
+            ["path-dirname", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.1-ca4c9d4bf8-2af6e196fb.zip/node_modules/glob-parent/",
+          "packageDependencies": [
+            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["glob-to-regexp", [
+        ["npm:0.4.1", {
+          "packageLocation": "./.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-6093c15d9f.zip/node_modules/glob-to-regexp/",
+          "packageDependencies": [
+            ["glob-to-regexp", "npm:0.4.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["global", [
+        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/global-npm-4.4.0-5e9e9c41f4-da0cf92ef0.zip/node_modules/global/",
+          "packageDependencies": [
+            ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
+            ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
+            ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["globals", [
+        ["npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", {
+          "packageLocation": "./.yarn/cache/globals-npm-11.12.0-3e7cfc1865-2563d3306a.zip/node_modules/globals/",
+          "packageDependencies": [
+            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/globals-npm-12.4.0-43ecd7769b-0b9764bdea.zip/node_modules/globals/",
+          "packageDependencies": [
+            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
+            ["type-fest", "npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz", {
+          "packageLocation": "./.yarn/cache/globals-npm-9.18.0-82f075d232-ad86a4b4d7.zip/node_modules/globals/",
+          "packageDependencies": [
+            ["globals", "npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["globby", [
+        ["npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/globby-npm-11.0.1-75d4900c36-e7239e9e46.zip/node_modules/globby/",
+          "packageDependencies": [
+            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
+            ["array-union", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"],
+            ["dir-glob", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"],
+            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
+            ["ignore", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"],
+            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"],
+            ["slash", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/globby-npm-6.1.0-e6f8059c91-7acac93324.zip/node_modules/globby/",
+          "packageDependencies": [
+            ["globby", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"],
+            ["array-union", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
+            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"],
+            ["pinkie-promise", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["got", [
+        ["npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz", {
+          "packageLocation": "./.yarn/cache/got-npm-11.5.1-fdd869c8c0-a746db1245.zip/node_modules/got/",
+          "packageDependencies": [
+            ["got", "npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"],
+            ["@sindresorhus/is", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"],
+            ["@szmarczak/http-timer", "npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"],
+            ["@types/cacheable-request", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"],
+            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"],
+            ["cacheable-lookup", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"],
+            ["cacheable-request", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"],
+            ["decompress-response", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"],
+            ["http2-wrapper", "npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"],
+            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"],
+            ["p-cancelable", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"],
+            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["graceful-fs", [
+        ["npm:4.2.4", {
+          "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.4-734467635f-d095ee4dc6.zip/node_modules/graceful-fs/",
+          "packageDependencies": [
+            ["graceful-fs", "npm:4.2.4"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.4-b72b1dfb8f-d095ee4dc6.zip/node_modules/graceful-fs/",
+          "packageDependencies": [
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["grapheme-splitter", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/grapheme-splitter-npm-1.0.4-c4dcc9cc38-6875e94add.zip/node_modules/grapheme-splitter/",
+          "packageDependencies": [
+            ["grapheme-splitter", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["handle-thing", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/handle-thing-npm-2.0.1-05158d71e6-7509fca9eb.zip/node_modules/handle-thing/",
+          "packageDependencies": [
+            ["handle-thing", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["har-schema", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/har-schema-npm-2.0.0-fb81d693ef-e27ac33a96.zip/node_modules/har-schema/",
+          "packageDependencies": [
+            ["har-schema", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["har-validator", [
+        ["npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/har-validator-npm-5.1.3-d43008afe8-64cb2294c1.zip/node_modules/har-validator/",
+          "packageDependencies": [
+            ["har-validator", "npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["har-schema", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/has-npm-1.0.3-f7064d10c2-c686e15300.zip/node_modules/has/",
+          "packageDependencies": [
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-ansi", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-ansi-npm-2.0.0-9c2c0889ab-c6805f5d01.zip/node_modules/has-ansi/",
+          "packageDependencies": [
+            ["has-ansi", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"],
+            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-flag", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-7af8bb5251-63aade480d.zip/node_modules/has-flag/",
+          "packageDependencies": [
+            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-flag-npm-4.0.0-b68e4e779d-2e5391139d.zip/node_modules/has-flag/",
+          "packageDependencies": [
+            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-own-prop", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-own-prop-npm-2.0.0-fda4570bc8-8513ff9052.zip/node_modules/has-own-prop/",
+          "packageDependencies": [
+            ["has-own-prop", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-symbols", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.1-e35e102032-84e2a03ada.zip/node_modules/has-symbols/",
+          "packageDependencies": [
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-unicode", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-8e56cda131-ed3719f95c.zip/node_modules/has-unicode/",
+          "packageDependencies": [
+            ["has-unicode", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-value", [
+        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/has-value-npm-0.3.1-77239b13c9-d78fab4523.zip/node_modules/has-value/",
+          "packageDependencies": [
+            ["has-value", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"],
+            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
+            ["has-values", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"],
+            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-value-npm-1.0.0-80982f18a0-e05422bce9.zip/node_modules/has-value/",
+          "packageDependencies": [
+            ["has-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"],
+            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
+            ["has-values", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["has-values", [
+        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/has-values-npm-0.1.4-33f631defb-df7ac830e4.zip/node_modules/has-values/",
+          "packageDependencies": [
+            ["has-values", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/has-values-npm-1.0.0-d17df2b3bd-b69c45d513.zip/node_modules/has-values/",
+          "packageDependencies": [
+            ["has-values", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"],
+            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
+            ["kind-of", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["he", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/he-npm-1.2.0-874b8c4af2-212122003c.zip/node_modules/he/",
+          "packageDependencies": [
+            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["history", [
+        ["npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz", {
+          "packageLocation": "./.yarn/cache/history-npm-4.10.1-8d081c387e-3b302b54c0.zip/node_modules/history/",
+          "packageDependencies": [
+            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["resolve-pathname", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"],
+            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
+            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"],
+            ["value-equal", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["hoist-non-react-statics", [
+        ["npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-2ce9940750-d3e3791d6e.zip/node_modules/hoist-non-react-statics/",
+          "packageDependencies": [
+            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
+            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["hosted-git-info", [
+        ["npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", {
+          "packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.8-7d1b32a089-3ecc389dc6.zip/node_modules/hosted-git-info/",
+          "packageDependencies": [
+            ["hosted-git-info", "npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["hpack.js", [
+        ["npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/hpack.js-npm-2.1.6-23e0bbd2b9-a22a28aa31.zip/node_modules/hpack.js/",
+          "packageDependencies": [
+            ["hpack.js", "npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"],
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"],
+            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["html-entities", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/html-entities-npm-1.3.1-2d9627a657-53d37e5161.zip/node_modules/html-entities/",
+          "packageDependencies": [
+            ["html-entities", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["html-minifier-terser", [
+        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/html-minifier-terser-npm-5.1.1-904e8f6ed0-d05dea891f.zip/node_modules/html-minifier-terser/",
+          "packageDependencies": [
+            ["html-minifier-terser", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"],
+            ["camel-case", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"],
+            ["clean-css", "npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"],
+            ["commander", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"],
+            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"],
+            ["param-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"],
+            ["relateurl", "npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"],
+            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["html-parse-stringify2", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/html-parse-stringify2-npm-2.0.1-a1a0c1c07d-71159c76d5.zip/node_modules/html-parse-stringify2/",
+          "packageDependencies": [
+            ["html-parse-stringify2", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"],
+            ["void-elements", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["html-webpack-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0", {
+          "packageLocation": "./.yarn/$$virtual/html-webpack-plugin-virtual-2b27d71d56/0/cache/html-webpack-plugin-npm-4.5.0-a74a71941d-df4dd38bd8.zip/node_modules/html-webpack-plugin/",
+          "packageDependencies": [
+            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
+            ["@types/html-minifier-terser", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"],
+            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"],
+            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
+            ["html-minifier-terser", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"],
+            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["pretty-error", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"],
+            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"],
+            ["util.promisify", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["htmlparser2", [
+        ["npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", {
+          "packageLocation": "./.yarn/cache/htmlparser2-npm-3.10.1-8b44da0721-94fa6312e6.zip/node_modules/htmlparser2/",
+          "packageDependencies": [
+            ["htmlparser2", "npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"],
+            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"],
+            ["domhandler", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"],
+            ["domutils", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"],
+            ["entities", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-cache-semantics", [
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-9e6cadf4b8-451df9784a.zip/node_modules/http-cache-semantics/",
+          "packageDependencies": [
+            ["http-cache-semantics", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-deceiver", [
+        ["npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz", {
+          "packageLocation": "./.yarn/cache/http-deceiver-npm-1.2.7-1fdf321b19-d0b10fce25.zip/node_modules/http-deceiver/",
+          "packageDependencies": [
+            ["http-deceiver", "npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-errors", [
+        ["npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", {
+          "packageLocation": "./.yarn/cache/http-errors-npm-1.6.3-0ec1466153-850a3bf69f.zip/node_modules/http-errors/",
+          "packageDependencies": [
+            ["http-errors", "npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"],
+            ["setprototypeof", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", {
+          "packageLocation": "./.yarn/cache/http-errors-npm-1.7.2-bf79cc2917-8ce4a4af05.zip/node_modules/http-errors/",
+          "packageDependencies": [
+            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"],
+            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
+            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz", {
+          "packageLocation": "./.yarn/cache/http-errors-npm-1.7.3-9276c5fd2a-563ae4a3f1.zip/node_modules/http-errors/",
+          "packageDependencies": [
+            ["http-errors", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
+            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-proxy", [
+        ["npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", {
+          "packageLocation": "./.yarn/cache/http-proxy-npm-1.18.1-d3bba4c2a7-fc2062718d.zip/node_modules/http-proxy/",
+          "packageDependencies": [
+            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
+            ["eventemitter3", "npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"],
+            ["follow-redirects", "npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"],
+            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-proxy-middleware", [
+        ["npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", {
+          "packageLocation": "./.yarn/cache/http-proxy-middleware-npm-0.19.1-122302d6da-30f6e99935.zip/node_modules/http-proxy-middleware/",
+          "packageDependencies": [
+            ["http-proxy-middleware", "npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"],
+            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-server", [
+        ["npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz", {
+          "packageLocation": "./.yarn/cache/http-server-npm-0.12.3-c68dbc0e34-cbb1f5b926.zip/node_modules/http-server/",
+          "packageDependencies": [
+            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
+            ["basic-auth", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"],
+            ["colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"],
+            ["corser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"],
+            ["ecstatic", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"],
+            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
+            ["opener", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"],
+            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
+            ["secure-compare", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"],
+            ["union", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http-signature", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/http-signature-npm-1.2.0-6cfced529e-d28227eed3.zip/node_modules/http-signature/",
+          "packageDependencies": [
+            ["http-signature", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
+            ["jsprim", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"],
+            ["sshpk", "npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["http2-wrapper", [
+        ["npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.0-beta.5.2-5da96150ac-74db457c83.zip/node_modules/http2-wrapper/",
+          "packageDependencies": [
+            ["http2-wrapper", "npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"],
+            ["quick-lru", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"],
+            ["resolve-alpn", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["human-signals", [
+        ["npm:1.1.1", {
+          "packageLocation": "./.yarn/cache/human-signals-npm-1.1.1-616b2586c2-cac115f635.zip/node_modules/human-signals/",
+          "packageDependencies": [
+            ["human-signals", "npm:1.1.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["hyphenate-style-name", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/hyphenate-style-name-npm-1.0.4-5e003eecbc-4cfeb47e98.zip/node_modules/hyphenate-style-name/",
+          "packageDependencies": [
+            ["hyphenate-style-name", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["i18next", [
+        ["npm:19.8.3", {
+          "packageLocation": "./.yarn/cache/i18next-npm-19.8.3-8a568c4add-0dd7b4a997.zip/node_modules/i18next/",
+          "packageDependencies": [
+            ["i18next", "npm:19.8.3"],
+            ["@babel/runtime", "npm:7.12.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["i18next-browser-languagedetector", [
+        ["npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/i18next-browser-languagedetector-npm-6.0.1-9d0cfe54e7-760bc83f3b.zip/node_modules/i18next-browser-languagedetector/",
+          "packageDependencies": [
+            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["iconv-lite", [
+        ["npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", {
+          "packageLocation": "./.yarn/cache/iconv-lite-npm-0.4.24-dc56eba358-a9b9521066.zip/node_modules/iconv-lite/",
+          "packageDependencies": [
+            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["icss-utils", [
+        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0", {
+          "packageLocation": "./.yarn/$$virtual/icss-utils-virtual-286c604c26/0/cache/icss-utils-npm-5.0.0-f378446fc0-c0f385f09d.zip/node_modules/icss-utils/",
+          "packageDependencies": [
+            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
+            ["postcss", "npm:8.1.4"]
+          ],
+          "packagePeers": [
+            "postcss"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ieee754", [
+        ["npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz", {
+          "packageLocation": "./.yarn/cache/ieee754-npm-1.1.13-3822eb0c4a-9ef12932e8.zip/node_modules/ieee754/",
+          "packageDependencies": [
+            ["ieee754", "npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ignore", [
+        ["npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/ignore-npm-4.0.6-a0c0abc151-8f7b7f7c26.zip/node_modules/ignore/",
+          "packageDependencies": [
+            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz", {
+          "packageLocation": "./.yarn/cache/ignore-npm-5.1.8-4e58c2e63b-b08e3d5b5d.zip/node_modules/ignore/",
+          "packageDependencies": [
+            ["ignore", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["immediate", [
+        ["npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/immediate-npm-3.0.6-13c0e8192f-e86d4d20e2.zip/node_modules/immediate/",
+          "packageDependencies": [
+            ["immediate", "npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["import-fresh", [
+        ["npm:3.2.1", {
+          "packageLocation": "./.yarn/cache/import-fresh-npm-3.2.1-b4f6711244-5ace950631.zip/node_modules/import-fresh/",
+          "packageDependencies": [
+            ["import-fresh", "npm:3.2.1"],
+            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
+            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/import-fresh-npm-3.2.1-6b85194501-5ace950631.zip/node_modules/import-fresh/",
+          "packageDependencies": [
+            ["import-fresh", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"],
+            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
+            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["import-local", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/import-local-npm-2.0.0-9de9bad399-4729bf153c.zip/node_modules/import-local/",
+          "packageDependencies": [
+            ["import-local", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"],
+            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"],
+            ["resolve-cwd", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2", {
+          "packageLocation": "./.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-9ba5f1697b.zip/node_modules/import-local/",
+          "packageDependencies": [
+            ["import-local", "npm:3.0.2"],
+            ["pkg-dir", "npm:4.2.0"],
+            ["resolve-cwd", "npm:3.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["imurmurhash", [
+        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/imurmurhash-npm-0.1.4-f3c73029a0-34d414d789.zip/node_modules/imurmurhash/",
+          "packageDependencies": [
+            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["indent-string", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-704d0b271e-3e54996c6e.zip/node_modules/indent-string/",
+          "packageDependencies": [
+            ["indent-string", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["indexes-of", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/indexes-of-npm-1.0.1-f7df404a30-e1c232a326.zip/node_modules/indexes-of/",
+          "packageDependencies": [
+            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["infer-owner", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/infer-owner-npm-1.0.4-31ffe59593-56aa1d87b0.zip/node_modules/infer-owner/",
+          "packageDependencies": [
+            ["infer-owner", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["inflight", [
+        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/inflight-npm-1.0.6-2e14bc55cc-17c53fc42c.zip/node_modules/inflight/",
+          "packageDependencies": [
+            ["inflight", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"],
+            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
+            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["inherits", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-b50ffdccd2-9488f9433e.zip/node_modules/inherits/",
+          "packageDependencies": [
+            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-2419743ae2-98426da247.zip/node_modules/inherits/",
+          "packageDependencies": [
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["internal-ip", [
+        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/internal-ip-npm-4.3.0-b5bdf019bf-2cf2248053.zip/node_modules/internal-ip/",
+          "packageDependencies": [
+            ["internal-ip", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"],
+            ["default-gateway", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"],
+            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["internal-slot", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.2-9ea7eefaba-02b2bcc612.zip/node_modules/internal-slot/",
+          "packageDependencies": [
+            ["internal-slot", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["interpret", [
+        ["npm:2.2.0", {
+          "packageLocation": "./.yarn/cache/interpret-npm-2.2.0-3603a544e1-c89b6aa67f.zip/node_modules/interpret/",
+          "packageDependencies": [
+            ["interpret", "npm:2.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["invariant", [
+        ["npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", {
+          "packageLocation": "./.yarn/cache/invariant-npm-2.2.4-0b853150c4-96d8a2a4f0.zip/node_modules/invariant/",
+          "packageDependencies": [
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ip", [
+        ["npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz", {
+          "packageLocation": "./.yarn/cache/ip-npm-1.1.5-238e8b918a-3ad007368c.zip/node_modules/ip/",
+          "packageDependencies": [
+            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ip-regex", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/ip-regex-npm-2.1.0-512f866245-2fd2190ada.zip/node_modules/ip-regex/",
+          "packageDependencies": [
+            ["ip-regex", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ipaddr.js", [
+        ["npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz", {
+          "packageLocation": "./.yarn/cache/ipaddr.js-npm-1.9.1-bdf666d42d-de15bc7e63.zip/node_modules/ipaddr.js/",
+          "packageDependencies": [
+            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is", [
+        ["npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-npm-3.3.0-d6d69493cb-191293ded7.zip/node_modules/is/",
+          "packageDependencies": [
+            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-absolute-url", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/is-absolute-url-npm-3.0.3-df8627c76a-1beac70046.zip/node_modules/is-absolute-url/",
+          "packageDependencies": [
+            ["is-absolute-url", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-accessor-descriptor", [
+        ["npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-0.1.6-f7538bedac-7a7fca2185.zip/node_modules/is-accessor-descriptor/",
+          "packageDependencies": [
+            ["is-accessor-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-1.0.0-dcc8b128c0-3973215c2e.zip/node_modules/is-accessor-descriptor/",
+          "packageDependencies": [
+            ["is-accessor-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"],
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-arguments", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/is-arguments-npm-1.0.4-30931ddeaa-a04bc21254.zip/node_modules/is-arguments/",
+          "packageDependencies": [
+            ["is-arguments", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-arrayish", [
+        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-53753b0ebc-fc2bbe14db.zip/node_modules/is-arrayish/",
+          "packageDependencies": [
+            ["is-arrayish", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-binary-path", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-binary-path-npm-1.0.1-bb57a87fe0-25a2cda1e5.zip/node_modules/is-binary-path/",
+          "packageDependencies": [
+            ["is-binary-path", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"],
+            ["binary-extensions", "npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-binary-path-npm-2.1.0-38e04eaf47-49a1446a3c.zip/node_modules/is-binary-path/",
+          "packageDependencies": [
+            ["is-binary-path", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"],
+            ["binary-extensions", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-buffer", [
+        ["npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-8848721d91-336ec78f00.zip/node_modules/is-buffer/",
+          "packageDependencies": [
+            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-callable", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-callable-npm-1.2.0-8de1776824-8a5e68b7c3.zip/node_modules/is-callable/",
+          "packageDependencies": [
+            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.2.2", {
+          "packageLocation": "./.yarn/cache/is-callable-npm-1.2.2-075940758b-c35d37cc46.zip/node_modules/is-callable/",
+          "packageDependencies": [
+            ["is-callable", "npm:1.2.2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-core-module", [
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/is-core-module-npm-2.0.0-5ae474e0e9-de99dfbdf1.zip/node_modules/is-core-module/",
+          "packageDependencies": [
+            ["is-core-module", "npm:2.0.0"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-data-descriptor", [
+        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/is-data-descriptor-npm-0.1.4-757c5bbc46-51db89bb46.zip/node_modules/is-data-descriptor/",
+          "packageDependencies": [
+            ["is-data-descriptor", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-data-descriptor-npm-1.0.0-58b032f4bf-0297518899.zip/node_modules/is-data-descriptor/",
+          "packageDependencies": [
+            ["is-data-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"],
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-date-object", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.2-26173a2ef1-0e32269946.zip/node_modules/is-date-object/",
+          "packageDependencies": [
+            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-descriptor", [
+        ["npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz", {
+          "packageLocation": "./.yarn/cache/is-descriptor-npm-0.1.6-2304570d44-cab6979fb6.zip/node_modules/is-descriptor/",
+          "packageDependencies": [
+            ["is-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"],
+            ["is-accessor-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"],
+            ["is-data-descriptor", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"],
+            ["kind-of", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/is-descriptor-npm-1.0.2-a58906611a-be8004010e.zip/node_modules/is-descriptor/",
+          "packageDependencies": [
+            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"],
+            ["is-accessor-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"],
+            ["is-data-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"],
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-extendable", [
+        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-extendable-npm-0.1.1-1f12d91b9b-9d051e68c3.zip/node_modules/is-extendable/",
+          "packageDependencies": [
+            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-extendable-npm-1.0.1-001b51c406-2bf711afe6.zip/node_modules/is-extendable/",
+          "packageDependencies": [
+            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"],
+            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-extglob", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-extglob-npm-2.1.1-0c8f89d20e-ca623e2c56.zip/node_modules/is-extglob/",
+          "packageDependencies": [
+            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-fullwidth-code-point", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-1.0.0-ae0237d603-fc3d51ef08.zip/node_modules/is-fullwidth-code-point/",
+          "packageDependencies": [
+            ["is-fullwidth-code-point", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"],
+            ["number-is-nan", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-2.0.0-fa7a938aa0-e1e5284f84.zip/node_modules/is-fullwidth-code-point/",
+          "packageDependencies": [
+            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-glob", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-glob-npm-3.1.0-f8518ed5b1-9911e04e28.zip/node_modules/is-glob/",
+          "packageDependencies": [
+            ["is-glob", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"],
+            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-glob-npm-4.0.1-fbfb31168d-98cd4f715f.zip/node_modules/is-glob/",
+          "packageDependencies": [
+            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
+            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-module", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-module-npm-1.0.0-416d60ef09-2cbd41e276.zip/node_modules/is-module/",
+          "packageDependencies": [
+            ["is-module", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-negative-zero", [
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/is-negative-zero-npm-2.0.0-fd9b9ac0e5-87ddefbdf7.zip/node_modules/is-negative-zero/",
+          "packageDependencies": [
+            ["is-negative-zero", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-number", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-number-npm-3.0.0-01c139e8aa-ae03986ded.zip/node_modules/is-number/",
+          "packageDependencies": [
+            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-number-npm-7.0.0-ef33956bb7-eec6e506c6.zip/node_modules/is-number/",
+          "packageDependencies": [
+            ["is-number", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-obj", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/is-obj-npm-1.0.1-60c3c55fe0-0913a3bb64.zip/node_modules/is-obj/",
+          "packageDependencies": [
+            ["is-obj", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-path-cwd", [
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-path-cwd-npm-2.2.0-3f2b5c1572-900f6e8144.zip/node_modules/is-path-cwd/",
+          "packageDependencies": [
+            ["is-path-cwd", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-path-in-cwd", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-path-in-cwd-npm-2.1.0-a1dcd75667-d814427f4e.zip/node_modules/is-path-in-cwd/",
+          "packageDependencies": [
+            ["is-path-in-cwd", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"],
+            ["is-path-inside", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-path-inside", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-path-inside-npm-2.1.0-044840092c-e289fc4ec6.zip/node_modules/is-path-inside/",
+          "packageDependencies": [
+            ["is-path-inside", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"],
+            ["path-is-inside", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-plain-object", [
+        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/is-plain-object-npm-2.0.4-97e1efdf6c-2f32322673.zip/node_modules/is-plain-object/",
+          "packageDependencies": [
+            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-regex", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-regex-npm-1.1.0-069bd43192-8fe7ae8c06.zip/node_modules/is-regex/",
+          "packageDependencies": [
+            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.1.1", {
+          "packageLocation": "./.yarn/cache/is-regex-npm-1.1.1-6f4125c841-0c5b9d335c.zip/node_modules/is-regex/",
+          "packageDependencies": [
+            ["is-regex", "npm:1.1.1"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-regexp", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-regexp-npm-1.0.0-6d222b3ec3-b6c3ea4f40.zip/node_modules/is-regexp/",
+          "packageDependencies": [
+            ["is-regexp", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-stream", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-stream-npm-1.1.0-93f56a1539-39843ee9ff.zip/node_modules/is-stream/",
+          "packageDependencies": [
+            ["is-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-f92ba04a8b.zip/node_modules/is-stream/",
+          "packageDependencies": [
+            ["is-stream", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-string", [
+        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/is-string-npm-1.0.5-8d4b7bd9a0-c64c791eb7.zip/node_modules/is-string/",
+          "packageDependencies": [
+            ["is-string", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-symbol", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.3-180b522c4f-753aa0cf95.zip/node_modules/is-symbol/",
+          "packageDependencies": [
+            ["is-symbol", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-typedarray", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-typedarray-npm-1.0.0-5fb3c4c0c2-4e21156e73.zip/node_modules/is-typedarray/",
+          "packageDependencies": [
+            ["is-typedarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-windows", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/is-windows-npm-1.0.2-f4ae19c850-dd1ed8339a.zip/node_modules/is-windows/",
+          "packageDependencies": [
+            ["is-windows", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["is-wsl", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/is-wsl-npm-1.1.0-bfaf685a17-0f15cf5d5f.zip/node_modules/is-wsl/",
+          "packageDependencies": [
+            ["is-wsl", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["isarray", [
+        ["npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/isarray-npm-0.0.1-fd8b8c68e3-daeda3c236.zip/node_modules/isarray/",
+          "packageDependencies": [
+            ["isarray", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/isarray-npm-1.0.0-3aa7c881ea-b0ff31a290.zip/node_modules/isarray/",
+          "packageDependencies": [
+            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["isexe", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-802cfb8370-7b437980bb.zip/node_modules/isexe/",
+          "packageDependencies": [
+            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["isobject", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/isobject-npm-2.1.0-8e61738567-2e7d7dd8d5.zip/node_modules/isobject/",
+          "packageDependencies": [
+            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"],
+            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/isobject-npm-3.0.1-8b1c206b72-b537a9ccdd.zip/node_modules/isobject/",
+          "packageDependencies": [
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["isstream", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/isstream-npm-0.1.2-f6a3f4dd2b-8e6e5c4cf1.zip/node_modules/isstream/",
+          "packageDependencies": [
+            ["isstream", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["javascript-stringify", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/javascript-stringify-npm-2.0.1-c00dda829f-77e800e1b6.zip/node_modules/javascript-stringify/",
+          "packageDependencies": [
+            ["javascript-stringify", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jest-worker", [
+        ["npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/jest-worker-npm-24.9.0-72abd4ef37-9740355081.zip/node_modules/jest-worker/",
+          "packageDependencies": [
+            ["jest-worker", "npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"],
+            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
+            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:26.6.1", {
+          "packageLocation": "./.yarn/cache/jest-worker-npm-26.6.1-29bb728758-329b65b18b.zip/node_modules/jest-worker/",
+          "packageDependencies": [
+            ["jest-worker", "npm:26.6.1"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
+            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
+            ["supports-color", "npm:7.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["js-tokens", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/js-tokens-npm-3.0.2-77c79c08da-81e634d5a9.zip/node_modules/js-tokens/",
+          "packageDependencies": [
+            ["js-tokens", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-657e51f90d-1fc4e4667a.zip/node_modules/js-tokens/",
+          "packageDependencies": [
+            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["js-yaml", [
+        ["npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", {
+          "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.0-e2062559a2-2eb95464e5.zip/node_modules/js-yaml/",
+          "packageDependencies": [
+            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
+            ["argparse", "npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"],
+            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jsbn", [
+        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/jsbn-npm-0.1.1-a9f71f4221-b530d48a64.zip/node_modules/jsbn/",
+          "packageDependencies": [
+            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jsesc", [
+        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/jsesc-npm-0.5.0-5e585bbf4b-1e4574920d.zip/node_modules/jsesc/",
+          "packageDependencies": [
+            ["jsesc", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/jsesc-npm-2.5.2-ede0b16e39-ca91ec33d7.zip/node_modules/jsesc/",
+          "packageDependencies": [
+            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-buffer", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/json-buffer-npm-3.0.1-0a6c88e1fe-78011309cb.zip/node_modules/json-buffer/",
+          "packageDependencies": [
+            ["json-buffer", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-file-plus", [
+        ["npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/json-file-plus-npm-3.3.1-75aded4631-91d5ea4871.zip/node_modules/json-file-plus/",
+          "packageDependencies": [
+            ["json-file-plus", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"],
+            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"],
+            ["node.extend", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"],
+            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
+            ["promiseback", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"],
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-parse-better-errors", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/json-parse-better-errors-npm-1.0.2-17bacecf64-b4c4f0e43b.zip/node_modules/json-parse-better-errors/",
+          "packageDependencies": [
+            ["json-parse-better-errors", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-parse-even-better-errors", [
+        ["npm:2.3.1", {
+          "packageLocation": "./.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-d89fa7fe57.zip/node_modules/json-parse-even-better-errors/",
+          "packageDependencies": [
+            ["json-parse-even-better-errors", "npm:2.3.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-schema", [
+        ["npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/json-schema-npm-0.2.3-9c1213ae80-d382ea841f.zip/node_modules/json-schema/",
+          "packageDependencies": [
+            ["json-schema", "npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-schema-traverse", [
+        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/json-schema-traverse-npm-0.4.1-6ea7142690-6f71bddba3.zip/node_modules/json-schema-traverse/",
+          "packageDependencies": [
+            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-stable-stringify-without-jsonify", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-3c9885a5ea-a01b6c6541.zip/node_modules/json-stable-stringify-without-jsonify/",
+          "packageDependencies": [
+            ["json-stable-stringify-without-jsonify", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json-stringify-safe", [
+        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/json-stringify-safe-npm-5.0.1-49522c1d36-261dfb8eb3.zip/node_modules/json-stringify-safe/",
+          "packageDependencies": [
+            ["json-stringify-safe", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json3", [
+        ["npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz", {
+          "packageLocation": "./.yarn/cache/json3-npm-3.3.3-ef5020f593-f79831247f.zip/node_modules/json3/",
+          "packageDependencies": [
+            ["json3", "npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["json5", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/json5-npm-1.0.1-3cf74843da-df41624f9f.zip/node_modules/json5/",
+          "packageDependencies": [
+            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/json5-npm-2.1.3-066046353c-957e493710.zip/node_modules/json5/",
+          "packageDependencies": [
+            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jsonfile", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/jsonfile-npm-4.0.0-3c5fe82b90-a40b7b64da.zip/node_modules/jsonfile/",
+          "packageDependencies": [
+            ["jsonfile", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jsprim", [
+        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/jsprim-npm-1.4.1-f589600560-ee0177b7ef.zip/node_modules/jsprim/",
+          "packageDependencies": [
+            ["jsprim", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
+            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"],
+            ["json-schema", "npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"],
+            ["verror", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["jsx-ast-utils", [
+        ["npm:3.1.0", {
+          "packageLocation": "./.yarn/cache/jsx-ast-utils-npm-3.1.0-0ce367772e-189ef9aed8.zip/node_modules/jsx-ast-utils/",
+          "packageDependencies": [
+            ["jsx-ast-utils", "npm:3.1.0"],
+            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
+            ["object.assign", "npm:4.1.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["keyv", [
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/keyv-npm-4.0.1-c3951054a0-f4e65024a7.zip/node_modules/keyv/",
+          "packageDependencies": [
+            ["keyv", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"],
+            ["json-buffer", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["killable", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/killable-npm-1.0.1-169bff5d99-397df2b8a7.zip/node_modules/killable/",
+          "packageDependencies": [
+            ["killable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["kind-of", [
+        ["npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/kind-of-npm-3.2.2-6034eef8bd-e8a1835c4b.zip/node_modules/kind-of/",
+          "packageDependencies": [
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"],
+            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/kind-of-npm-4.0.0-153e12316d-2e7296c614.zip/node_modules/kind-of/",
+          "packageDependencies": [
+            ["kind-of", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"],
+            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/kind-of-npm-5.1.0-5f1bb61127-c98cfe70c8.zip/node_modules/kind-of/",
+          "packageDependencies": [
+            ["kind-of", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/kind-of-npm-6.0.3-ab2af25b13-5de5d65777.zip/node_modules/kind-of/",
+          "packageDependencies": [
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["klona", [
+        ["npm:2.0.4", {
+          "packageLocation": "./.yarn/cache/klona-npm-2.0.4-6bc4e7cd86-be4a0c7841.zip/node_modules/klona/",
+          "packageDependencies": [
+            ["klona", "npm:2.0.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["leven", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/leven-npm-3.1.0-8f6b66d621-6ebca75298.zip/node_modules/leven/",
+          "packageDependencies": [
+            ["leven", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["levenary", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/levenary-npm-1.1.1-beabd2e2ba-6d3b78e395.zip/node_modules/levenary/",
+          "packageDependencies": [
+            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
+            ["leven", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["levn", [
+        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/levn-npm-0.4.1-07b195f2eb-2f6ddfb0b9.zip/node_modules/levn/",
+          "packageDependencies": [
+            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
+            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"],
+            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lie", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/lie-npm-3.1.1-1a97d51a5f-33a07ffeb7.zip/node_modules/lie/",
+          "packageDependencies": [
+            ["lie", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"],
+            ["immediate", "npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["line-column", [
+        ["npm:1.0.2", {
+          "packageLocation": "./.yarn/cache/line-column-npm-1.0.2-bdeb1193f9-e6fa785b0c.zip/node_modules/line-column/",
+          "packageDependencies": [
+            ["line-column", "npm:1.0.2"],
+            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"],
+            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lines-and-columns", [
+        ["npm:1.1.6", {
+          "packageLocation": "./.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-798b80ed7a.zip/node_modules/lines-and-columns/",
+          "packageDependencies": [
+            ["lines-and-columns", "npm:1.1.6"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["load-json-file", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/load-json-file-npm-2.0.0-6c4dbfa60e-c6ea93d360.zip/node_modules/load-json-file/",
+          "packageDependencies": [
+            ["load-json-file", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
+            ["parse-json", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"],
+            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"],
+            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["loader-runner", [
+        ["npm:4.1.0", {
+          "packageLocation": "./.yarn/cache/loader-runner-npm-4.1.0-5576b2bf07-2b964f3484.zip/node_modules/loader-runner/",
+          "packageDependencies": [
+            ["loader-runner", "npm:4.1.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["loader-utils", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/loader-utils-npm-1.4.0-24f50da64c-9fd690e57a.zip/node_modules/loader-utils/",
+          "packageDependencies": [
+            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
+            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"],
+            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"],
+            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/loader-utils-npm-2.0.0-bb7bf40a1d-a1c2e48781.zip/node_modules/loader-utils/",
+          "packageDependencies": [
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"],
+            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"],
+            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["localforage", [
+        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/localforage-npm-1.9.0-5007685607-0645f5ec6f.zip/node_modules/localforage/",
+          "packageDependencies": [
+            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
+            ["lie", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["locate-path", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/locate-path-npm-2.0.0-2561ff48c2-ee5a888d68.zip/node_modules/locate-path/",
+          "packageDependencies": [
+            ["locate-path", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"],
+            ["p-locate", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"],
+            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/locate-path-npm-3.0.0-05cc4c2e8a-0b6bf0c1bb.zip/node_modules/locate-path/",
+          "packageDependencies": [
+            ["locate-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"],
+            ["p-locate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"],
+            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/locate-path-npm-5.0.0-fb5746c0b5-c58f49d45c.zip/node_modules/locate-path/",
+          "packageDependencies": [
+            ["locate-path", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"],
+            ["p-locate", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lodash", [
+        ["npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz", {
+          "packageLocation": "./.yarn/cache/lodash-npm-4.17.19-7b31681a63-ff2b7a95f0.zip/node_modules/lodash/",
+          "packageDependencies": [
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", {
+          "packageLocation": "./.yarn/cache/lodash-npm-4.17.20-3d0d643e5a-c62101d250.zip/node_modules/lodash/",
+          "packageDependencies": [
+            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lodash-es", [
+        ["npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz", {
+          "packageLocation": "./.yarn/cache/lodash-es-npm-4.17.15-15cd80072f-ee2871b76d.zip/node_modules/lodash-es/",
+          "packageDependencies": [
+            ["lodash-es", "npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lodash._reinterpolate", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/lodash._reinterpolate-npm-3.0.0-7f339ed5b7-27513557d6.zip/node_modules/lodash._reinterpolate/",
+          "packageDependencies": [
+            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lodash.template", [
+        ["npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/lodash.template-npm-4.5.0-fd75b05508-e27068e20b.zip/node_modules/lodash.template/",
+          "packageDependencies": [
+            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
+            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"],
+            ["lodash.templatesettings", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lodash.templatesettings", [
+        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/lodash.templatesettings-npm-4.2.0-32ac60f82b-45546a5b76.zip/node_modules/lodash.templatesettings/",
+          "packageDependencies": [
+            ["lodash.templatesettings", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"],
+            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["logic-solver", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/logic-solver-npm-2.0.1-5ede74e2de-48458c6771.zip/node_modules/logic-solver/",
+          "packageDependencies": [
+            ["logic-solver", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"],
+            ["underscore", "npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["loglevel", [
+        ["npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz", {
+          "packageLocation": "./.yarn/cache/loglevel-npm-1.6.8-bbd72f4837-847939b085.zip/node_modules/loglevel/",
+          "packageDependencies": [
+            ["loglevel", "npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["loose-envify", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-470596de05-5c3b47bbe5.zip/node_modules/loose-envify/",
+          "packageDependencies": [
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lower-case", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/lower-case-npm-2.0.1-5e77048bd0-52a55327ea.zip/node_modules/lower-case/",
+          "packageDependencies": [
+            ["lower-case", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lowercase-keys", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/lowercase-keys-npm-2.0.0-58c5479381-4da67f4186.zip/node_modules/lowercase-keys/",
+          "packageDependencies": [
+            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["lru-cache", [
+        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-2534f00ab3-b8b78353d2.zip/node_modules/lru-cache/",
+          "packageDependencies": [
+            ["lru-cache", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"],
+            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["magic-string", [
+        ["npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz", {
+          "packageLocation": "./.yarn/cache/magic-string-npm-0.25.7-d1677ce708-4b70c13eb2.zip/node_modules/magic-string/",
+          "packageDependencies": [
+            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"],
+            ["sourcemap-codec", "npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["make-dir", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/make-dir-npm-2.1.0-544abd4898-94e2ab9dda.zip/node_modules/make-dir/",
+          "packageDependencies": [
+            ["make-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"],
+            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-6c0e97ae13-54b6f186c2.zip/node_modules/make-dir/",
+          "packageDependencies": [
+            ["make-dir", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"],
+            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["map-cache", [
+        ["npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/map-cache-npm-0.2.2-a13d8760c2-3d205d20e0.zip/node_modules/map-cache/",
+          "packageDependencies": [
+            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["map-visit", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/map-visit-npm-1.0.0-77671c7d3d-9e85e6d802.zip/node_modules/map-visit/",
+          "packageDependencies": [
+            ["map-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"],
+            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["matchmediaquery", [
+        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/matchmediaquery-npm-0.3.1-4690c9049b-face426fe3.zip/node_modules/matchmediaquery/",
+          "packageDependencies": [
+            ["matchmediaquery", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"],
+            ["css-mediaquery", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["media-typer", [
+        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/media-typer-npm-0.3.0-5409539c00-be1c825782.zip/node_modules/media-typer/",
+          "packageDependencies": [
+            ["media-typer", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["memory-fs", [
+        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/memory-fs-npm-0.4.1-75bd36d5b4-ba79207118.zip/node_modules/memory-fs/",
+          "packageDependencies": [
+            ["memory-fs", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"],
+            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/memory-fs-npm-0.5.0-3888b44baf-deb916f33c.zip/node_modules/memory-fs/",
+          "packageDependencies": [
+            ["memory-fs", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"],
+            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["merge-descriptors", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/merge-descriptors-npm-1.0.1-bf56428fd4-2d2a09eaac.zip/node_modules/merge-descriptors/",
+          "packageDependencies": [
+            ["merge-descriptors", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["merge-stream", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-b9f38e4b22-cde834809a.zip/node_modules/merge-stream/",
+          "packageDependencies": [
+            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["merge2", [
+        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/merge2-npm-1.4.1-0734c1f279-7ad40d8b14.zip/node_modules/merge2/",
+          "packageDependencies": [
+            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["methods", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/methods-npm-1.1.2-d1ae4c2fb5-450e4ea0fd.zip/node_modules/methods/",
+          "packageDependencies": [
+            ["methods", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["micromatch", [
+        ["npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", {
+          "packageLocation": "./.yarn/cache/micromatch-npm-3.1.10-f817a61c82-a60e73539a.zip/node_modules/micromatch/",
+          "packageDependencies": [
+            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
+            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"],
+            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
+            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
+            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
+            ["extglob", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"],
+            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"],
+            ["nanomatch", "npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"],
+            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/micromatch-npm-4.0.2-357c247757-0cb0e11d64.zip/node_modules/micromatch/",
+          "packageDependencies": [
+            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
+            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mime", [
+        ["npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/mime-npm-1.6.0-79830f7bce-d540c24dd3.zip/node_modules/mime/",
+          "packageDependencies": [
+            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", {
+          "packageLocation": "./.yarn/cache/mime-npm-2.4.6-0dbb21ce6a-319ec38588.zip/node_modules/mime/",
+          "packageDependencies": [
+            ["mime", "npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mime-db", [
+        ["npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", {
+          "packageLocation": "./.yarn/cache/mime-db-npm-1.44.0-2393297dd7-b4e3b21414.zip/node_modules/mime-db/",
+          "packageDependencies": [
+            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mime-types", [
+        ["npm:2.1.27", {
+          "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-51fe2f2c08.zip/node_modules/mime-types/",
+          "packageDependencies": [
+            ["mime-types", "npm:2.1.27"],
+            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz", {
+          "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-3bb89ab787-51fe2f2c08.zip/node_modules/mime-types/",
+          "packageDependencies": [
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
+            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mimic-fn", [
+        ["npm:2.1.0", {
+          "packageLocation": "./.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-f7d2d7febe.zip/node_modules/mimic-fn/",
+          "packageDependencies": [
+            ["mimic-fn", "npm:2.1.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mimic-response", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/mimic-response-npm-1.0.1-c2e0cc83f2-64b43c717e.zip/node_modules/mimic-response/",
+          "packageDependencies": [
+            ["mimic-response", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/mimic-response-npm-3.1.0-582b9e1b6e-cfbf19f66d.zip/node_modules/mimic-response/",
+          "packageDependencies": [
+            ["mimic-response", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["min-document", [
+        ["npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz", {
+          "packageLocation": "./.yarn/cache/min-document-npm-2.19.0-34f9b0e52c-8da883996e.zip/node_modules/min-document/",
+          "packageDependencies": [
+            ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
+            ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mini-create-react-context", [
+        ["virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/mini-create-react-context-virtual-2c58e95df5/0/cache/mini-create-react-context-npm-0.4.0-ce8c7252c0-51f07df1ed.zip/node_modules/mini-create-react-context/",
+          "packageDependencies": [
+            ["mini-create-react-context", "virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "prop-types",
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mini-css-extract-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0", {
+          "packageLocation": "./.yarn/$$virtual/mini-css-extract-plugin-virtual-5c184b300f/0/cache/mini-css-extract-plugin-npm-1.2.0-cd68fc20c6-e87cbebbcb.zip/node_modules/mini-css-extract-plugin/",
+          "packageDependencies": [
+            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minimalistic-assert", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/minimalistic-assert-npm-1.0.1-93f2a687dc-28f1de3cf9.zip/node_modules/minimalistic-assert/",
+          "packageDependencies": [
+            ["minimalistic-assert", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minimatch", [
+        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/minimatch-npm-3.0.4-1cf14e88a8-47eab92639.zip/node_modules/minimatch/",
+          "packageDependencies": [
+            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
+            ["brace-expansion", "npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minimist", [
+        ["npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", {
+          "packageLocation": "./.yarn/cache/minimist-npm-1.2.5-3ea7dc5510-b77b859014.zip/node_modules/minimist/",
+          "packageDependencies": [
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minipass", [
+        ["npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/minipass-npm-3.1.3-eb45a369b1-d12b95a845.zip/node_modules/minipass/",
+          "packageDependencies": [
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
+            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minipass-collect", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/minipass-collect-npm-1.0.2-b2b0e9a8aa-529ef62123.zip/node_modules/minipass-collect/",
+          "packageDependencies": [
+            ["minipass-collect", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minipass-flush", [
+        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-2d1df1fc08-d354ca0da8.zip/node_modules/minipass-flush/",
+          "packageDependencies": [
+            ["minipass-flush", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minipass-pipeline", [
+        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/minipass-pipeline-npm-1.2.3-9a526bbb86-618713f98c.zip/node_modules/minipass-pipeline/",
+          "packageDependencies": [
+            ["minipass-pipeline", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["minizlib", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/minizlib-npm-2.1.0-0922541795-665346bad8.zip/node_modules/minizlib/",
+          "packageDependencies": [
+            ["minizlib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
+            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mixin-deep", [
+        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/mixin-deep-npm-1.3.2-7cb57856a3-68da98bc1a.zip/node_modules/mixin-deep/",
+          "packageDependencies": [
+            ["mixin-deep", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"],
+            ["for-in", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"],
+            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["mkdirp", [
+        ["npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", {
+          "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.5-203efae148-9dd9792e89.zip/node_modules/mkdirp/",
+          "packageDependencies": [
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-8ad5b43a9f-1aa3a6a2d7.zip/node_modules/mkdirp/",
+          "packageDependencies": [
+            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ms", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/ms-npm-2.0.0-6af94e2745-1a230340cc.zip/node_modules/ms/",
+          "packageDependencies": [
+            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/ms-npm-2.1.1-936b62be9b-81ad38c74d.zip/node_modules/ms/",
+          "packageDependencies": [
+            ["ms", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/ms-npm-2.1.2-b65f0bec4f-9b65fb709b.zip/node_modules/ms/",
+          "packageDependencies": [
+            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["multicast-dns", [
+        ["npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/multicast-dns-npm-6.2.3-4dfad4a56f-3a67f9a155.zip/node_modules/multicast-dns/",
+          "packageDependencies": [
+            ["multicast-dns", "npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"],
+            ["dns-packet", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"],
+            ["thunky", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["multicast-dns-service-types", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/multicast-dns-service-types-npm-1.1.0-90c195ce06-de10f16134.zip/node_modules/multicast-dns-service-types/",
+          "packageDependencies": [
+            ["multicast-dns-service-types", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nan", [
+        ["npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz", {
+          "packageLocation": "./.yarn/unplugged/nan-npm-2.14.1-6b7103c9d4/node_modules/nan/",
+          "packageDependencies": [
+            ["nan", "npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"],
+            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nanoid", [
+        ["npm:3.1.16", {
+          "packageLocation": "./.yarn/cache/nanoid-npm-3.1.16-d6962d7364-1903aa0a76.zip/node_modules/nanoid/",
+          "packageDependencies": [
+            ["nanoid", "npm:3.1.16"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nanomatch", [
+        ["npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz", {
+          "packageLocation": "./.yarn/cache/nanomatch-npm-1.2.13-d8b8b8d0d0-2e1440c570.zip/node_modules/nanomatch/",
+          "packageDependencies": [
+            ["nanomatch", "npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"],
+            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"],
+            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
+            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
+            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
+            ["is-windows", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"],
+            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"],
+            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["natural-compare", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-bb22abd68a-2daf93d9bb.zip/node_modules/natural-compare/",
+          "packageDependencies": [
+            ["natural-compare", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["negotiator", [
+        ["npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz", {
+          "packageLocation": "./.yarn/cache/negotiator-npm-0.6.2-fb945ca17e-4b230bd15f.zip/node_modules/negotiator/",
+          "packageDependencies": [
+            ["negotiator", "npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["neo-async", [
+        ["npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", {
+          "packageLocation": "./.yarn/cache/neo-async-npm-2.6.2-205849bb4e-34a8f53091.zip/node_modules/neo-async/",
+          "packageDependencies": [
+            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nice-try", [
+        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/nice-try-npm-1.0.5-d9c04f9768-330f190bf6.zip/node_modules/nice-try/",
+          "packageDependencies": [
+            ["nice-try", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["no-case", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/no-case-npm-3.0.3-8458d9e79f-619e0bd00a.zip/node_modules/no-case/",
+          "packageDependencies": [
+            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
+            ["lower-case", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["node-forge", [
+        ["npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/node-forge-npm-0.9.0-0822411c39-901d6ab679.zip/node_modules/node-forge/",
+          "packageDependencies": [
+            ["node-forge", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["node-gyp", [
+        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz", {
+          "packageLocation": "./.yarn/unplugged/node-gyp-npm-7.0.0-1eaae03300/node_modules/node-gyp/",
+          "packageDependencies": [
+            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"],
+            ["env-paths", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
+            ["nopt", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"],
+            ["npmlog", "npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"],
+            ["request", "npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"],
+            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
+            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["node-releases", [
+        ["npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz", {
+          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.59-25d07777e1-35eb1c268b.zip/node_modules/node-releases/",
+          "packageDependencies": [
+            ["node-releases", "npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz", {
+          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.60-6691924d60-bed3480bd1.zip/node_modules/node-releases/",
+          "packageDependencies": [
+            ["node-releases", "npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.1.64", {
+          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.64-171b1d9b08-09e85fd0ec.zip/node_modules/node-releases/",
+          "packageDependencies": [
+            ["node-releases", "npm:1.1.64"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["node.extend", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/node.extend-npm-2.0.2-54e7799b61-750516f66b.zip/node_modules/node.extend/",
+          "packageDependencies": [
+            ["node.extend", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
+            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nopt", [
+        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/nopt-npm-4.0.3-1930a338e4-bf7b8c15fd.zip/node_modules/nopt/",
+          "packageDependencies": [
+            ["nopt", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"],
+            ["abbrev", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"],
+            ["osenv", "npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["normalize-package-data", [
+        ["npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-4d392e3f0a-97d4d6b061.zip/node_modules/normalize-package-data/",
+          "packageDependencies": [
+            ["normalize-package-data", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"],
+            ["hosted-git-info", "npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"],
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
+            ["validate-npm-package-license", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["normalize-path", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/normalize-path-npm-2.1.1-0182e75f79-9eb82b2f6a.zip/node_modules/normalize-path/",
+          "packageDependencies": [
+            ["normalize-path", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"],
+            ["remove-trailing-separator", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/normalize-path-npm-3.0.0-b159881eab-215a701b47.zip/node_modules/normalize-path/",
+          "packageDependencies": [
+            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["normalize-range", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/normalize-range-npm-0.1.2-ca7f15bcec-bca997d800.zip/node_modules/normalize-range/",
+          "packageDependencies": [
+            ["normalize-range", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["normalize-url", [
+        ["npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/normalize-url-npm-4.5.0-2a9c31c2aa-09794941db.zip/node_modules/normalize-url/",
+          "packageDependencies": [
+            ["normalize-url", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["npm-run-path", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/npm-run-path-npm-2.0.2-0097cb79c9-0a1bc9a1e0.zip/node_modules/npm-run-path/",
+          "packageDependencies": [
+            ["npm-run-path", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"],
+            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.1", {
+          "packageLocation": "./.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-058fd06880.zip/node_modules/npm-run-path/",
+          "packageDependencies": [
+            ["npm-run-path", "npm:4.0.1"],
+            ["path-key", "npm:3.1.1"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["npmlog", [
+        ["npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/npmlog-npm-4.1.2-2cc85ef44d-0cd63f127c.zip/node_modules/npmlog/",
+          "packageDependencies": [
+            ["npmlog", "npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"],
+            ["are-we-there-yet", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"],
+            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"],
+            ["gauge", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"],
+            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["nth-check", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/nth-check-npm-1.0.2-a1ea81a5a5-88a58b8b62.zip/node_modules/nth-check/",
+          "packageDependencies": [
+            ["nth-check", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"],
+            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["num2fraction", [
+        ["npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/num2fraction-npm-1.2.2-ba9254e6b8-c9bb3e7c6d.zip/node_modules/num2fraction/",
+          "packageDependencies": [
+            ["num2fraction", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["number-is-nan", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/number-is-nan-npm-1.0.1-b209a09e41-42251b2653.zip/node_modules/number-is-nan/",
+          "packageDependencies": [
+            ["number-is-nan", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["oauth-sign", [
+        ["npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/oauth-sign-npm-0.9.0-37ace8aaa3-af1ab60297.zip/node_modules/oauth-sign/",
+          "packageDependencies": [
+            ["oauth-sign", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-assign", [
+        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-8ceeb17134-66cf021898.zip/node_modules/object-assign/",
+          "packageDependencies": [
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-copy", [
+        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/object-copy-npm-0.1.0-38eb02d78b-d91d46e542.zip/node_modules/object-copy/",
+          "packageDependencies": [
+            ["object-copy", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"],
+            ["copy-descriptor", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"],
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-inspect", [
+        ["npm:1.8.0", {
+          "packageLocation": "./.yarn/cache/object-inspect-npm-1.8.0-81c2d7cdce-4da23a188b.zip/node_modules/object-inspect/",
+          "packageDependencies": [
+            ["object-inspect", "npm:1.8.0"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/object-inspect-npm-1.8.0-ba47e36e4d-4da23a188b.zip/node_modules/object-inspect/",
+          "packageDependencies": [
+            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-is", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/object-is-npm-1.1.2-085bef0859-9ea7df4475.zip/node_modules/object-is/",
+          "packageDependencies": [
+            ["object-is", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-keys", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/object-keys-npm-1.1.1-5d0bb0990f-30d72d768b.zip/node_modules/object-keys/",
+          "packageDependencies": [
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object-visit", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/object-visit-npm-1.0.1-e8feded7bd-8666727dbf.zip/node_modules/object-visit/",
+          "packageDependencies": [
+            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.assign", [
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/object.assign-npm-4.1.0-b5f0345d8b-92e20891dd.zip/node_modules/object.assign/",
+          "packageDependencies": [
+            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.1", {
+          "packageLocation": "./.yarn/cache/object.assign-npm-4.1.1-775388c06f-2038905bbf.zip/node_modules/object.assign/",
+          "packageDependencies": [
+            ["object.assign", "npm:4.1.1"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.18.0-next.1"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
+            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.entries", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/object.entries-npm-1.1.2-e72d86e3f5-bcde47ee03.zip/node_modules/object.entries/",
+          "packageDependencies": [
+            ["object.entries", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.fromentries", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.2-a1b50ecae0-58fa9edab1.zip/node_modules/object.fromentries/",
+          "packageDependencies": [
+            ["object.fromentries", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.getownpropertydescriptors", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/object.getownpropertydescriptors-npm-2.1.0-ec838cd170-c33dcc3061.zip/node_modules/object.getownpropertydescriptors/",
+          "packageDependencies": [
+            ["object.getownpropertydescriptors", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.pick", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/object.pick-npm-1.3.0-7537a483ac-e22d555d3b.zip/node_modules/object.pick/",
+          "packageDependencies": [
+            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["object.values", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/object.values-npm-1.1.1-b27726e454-33e99ceb5c.zip/node_modules/object.values/",
+          "packageDependencies": [
+            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
+            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["obuf", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/obuf-npm-1.1.2-aa30b1cbce-aa741387b0.zip/node_modules/obuf/",
+          "packageDependencies": [
+            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["on-finished", [
+        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/on-finished-npm-2.3.0-da535fed17-362e646082.zip/node_modules/on-finished/",
+          "packageDependencies": [
+            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
+            ["ee-first", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["on-headers", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/on-headers-npm-1.0.2-001a5ad58c-51e75c8075.zip/node_modules/on-headers/",
+          "packageDependencies": [
+            ["on-headers", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["once", [
+        ["npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz", {
+          "packageLocation": "./.yarn/cache/once-npm-1.3.3-468c28d1e0-c68086bafe.zip/node_modules/once/",
+          "packageDependencies": [
+            ["once", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"],
+            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/once-npm-1.4.0-6edb11c97b-57afc24653.zip/node_modules/once/",
+          "packageDependencies": [
+            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
+            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["onetime", [
+        ["npm:5.1.2", {
+          "packageLocation": "./.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e425f6caeb.zip/node_modules/onetime/",
+          "packageDependencies": [
+            ["onetime", "npm:5.1.2"],
+            ["mimic-fn", "npm:2.1.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["opener", [
+        ["npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz", {
+          "packageLocation": "./.yarn/cache/opener-npm-1.5.1-178cc6d146-055a1efdc2.zip/node_modules/opener/",
+          "packageDependencies": [
+            ["opener", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["opn", [
+        ["npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/opn-npm-5.5.0-1f44eaccf4-0ea3b6550f.zip/node_modules/opn/",
+          "packageDependencies": [
+            ["opn", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"],
+            ["is-wsl", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["optionator", [
+        ["npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz", {
+          "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-f7cdd561cb-bdf5683f98.zip/node_modules/optionator/",
+          "packageDependencies": [
+            ["optionator", "npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"],
+            ["deep-is", "npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"],
+            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"],
+            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
+            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"],
+            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"],
+            ["word-wrap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["original", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/original-npm-1.0.2-c274bd9e5d-6918b9d454.zip/node_modules/original/",
+          "packageDependencies": [
+            ["original", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"],
+            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["os-homedir", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/os-homedir-npm-1.0.2-fdcdae83af-725256246b.zip/node_modules/os-homedir/",
+          "packageDependencies": [
+            ["os-homedir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["os-tmpdir", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/os-tmpdir-npm-1.0.2-15b203aafb-ca158a3c2e.zip/node_modules/os-tmpdir/",
+          "packageDependencies": [
+            ["os-tmpdir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["osenv", [
+        ["npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz", {
+          "packageLocation": "./.yarn/cache/osenv-npm-0.1.5-3bd00d1c66-1c7462808c.zip/node_modules/osenv/",
+          "packageDependencies": [
+            ["osenv", "npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"],
+            ["os-homedir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"],
+            ["os-tmpdir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-cancelable", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-cancelable-npm-2.0.0-74da75cdca-966065f056.zip/node_modules/p-cancelable/",
+          "packageDependencies": [
+            ["p-cancelable", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-finally", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-finally-npm-1.0.0-0bd6687714-01f49b2d9c.zip/node_modules/p-finally/",
+          "packageDependencies": [
+            ["p-finally", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-limit", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-limit-npm-1.3.0-8733d5eba4-579cbd3d6c.zip/node_modules/p-limit/",
+          "packageDependencies": [
+            ["p-limit", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"],
+            ["p-try", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-1a838d725f-5f20492a25.zip/node_modules/p-limit/",
+          "packageDependencies": [
+            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"],
+            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/p-limit-npm-3.0.2-39d32193d2-1eb23d6ea7.zip/node_modules/p-limit/",
+          "packageDependencies": [
+            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
+            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-locate", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-locate-npm-2.0.0-d80a803b39-b6dabbd855.zip/node_modules/p-locate/",
+          "packageDependencies": [
+            ["p-locate", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"],
+            ["p-limit", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-locate-npm-3.0.0-e428a293a5-3ee9e3ed0b.zip/node_modules/p-locate/",
+          "packageDependencies": [
+            ["p-locate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"],
+            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-locate-npm-4.1.0-15e74f2cc4-57f9abef0b.zip/node_modules/p-locate/",
+          "packageDependencies": [
+            ["p-locate", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"],
+            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-map", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-map-npm-2.1.0-b2fa15cc31-8557e841ed.zip/node_modules/p-map/",
+          "packageDependencies": [
+            ["p-map", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-bead9768c8-d51e630d72.zip/node_modules/p-map/",
+          "packageDependencies": [
+            ["p-map", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"],
+            ["aggregate-error", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-retry", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/p-retry-npm-3.0.1-d871c6fe1b-26c888de4e.zip/node_modules/p-retry/",
+          "packageDependencies": [
+            ["p-retry", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"],
+            ["retry", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["p-try", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-try-npm-1.0.0-8c8e61438d-85739d77b3.zip/node_modules/p-try/",
+          "packageDependencies": [
+            ["p-try", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/p-try-npm-2.2.0-ed6cbde710-20983f3765.zip/node_modules/p-try/",
+          "packageDependencies": [
+            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["param-case", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/param-case-npm-3.0.3-84b1b78d85-ef57facfaf.zip/node_modules/param-case/",
+          "packageDependencies": [
+            ["param-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"],
+            ["dot-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["parent-module", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-d19ac229cd-58714b9699.zip/node_modules/parent-module/",
+          "packageDependencies": [
+            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
+            ["callsites", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["parse-json", [
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/parse-json-npm-2.2.0-801beb0840-920582196a.zip/node_modules/parse-json/",
+          "packageDependencies": [
+            ["parse-json", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"],
+            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.1.0", {
+          "packageLocation": "./.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-5e09955194.zip/node_modules/parse-json/",
+          "packageDependencies": [
+            ["parse-json", "npm:5.1.0"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"],
+            ["json-parse-even-better-errors", "npm:2.3.1"],
+            ["lines-and-columns", "npm:1.1.6"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["parseurl", [
+        ["npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz", {
+          "packageLocation": "./.yarn/cache/parseurl-npm-1.3.3-93dc3a804c-52c9e86cb5.zip/node_modules/parseurl/",
+          "packageDependencies": [
+            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pascal-case", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/pascal-case-npm-3.1.1-ffa0435e29-56f66aea7f.zip/node_modules/pascal-case/",
+          "packageDependencies": [
+            ["pascal-case", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"],
+            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pascalcase", [
+        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/pascalcase-npm-0.1.1-9044796ab3-268a9dbf9c.zip/node_modules/pascalcase/",
+          "packageDependencies": [
+            ["pascalcase", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-dirname", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/path-dirname-npm-1.0.2-e724ca8701-4af73745fd.zip/node_modules/path-dirname/",
+          "packageDependencies": [
+            ["path-dirname", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-exists", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/path-exists-npm-3.0.0-fb07c7e0a9-09683e92ba.zip/node_modules/path-exists/",
+          "packageDependencies": [
+            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/path-exists-npm-4.0.0-d9586cbac5-6ab15000c5.zip/node_modules/path-exists/",
+          "packageDependencies": [
+            ["path-exists", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-is-absolute", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/path-is-absolute-npm-1.0.1-995e44d2f4-907e1e3e6a.zip/node_modules/path-is-absolute/",
+          "packageDependencies": [
+            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-is-inside", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/path-is-inside-npm-1.0.2-b713bc149e-9c1841199d.zip/node_modules/path-is-inside/",
+          "packageDependencies": [
+            ["path-is-inside", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-key", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/path-key-npm-2.0.1-4e9a561e45-7dc807a2ba.zip/node_modules/path-key/",
+          "packageDependencies": [
+            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.1", {
+          "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-0e66ea8321-e44aa3ca9f.zip/node_modules/path-key/",
+          "packageDependencies": [
+            ["path-key", "npm:3.1.1"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-a27b0b0e02-e44aa3ca9f.zip/node_modules/path-key/",
+          "packageDependencies": [
+            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-parse", [
+        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/path-parse-npm-1.0.6-173bb133b6-2eee4b93fb.zip/node_modules/path-parse/",
+          "packageDependencies": [
+            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-to-regexp", [
+        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", {
+          "packageLocation": "./.yarn/cache/path-to-regexp-npm-0.1.7-338c0331e7-342fdb0ca4.zip/node_modules/path-to-regexp/",
+          "packageDependencies": [
+            ["path-to-regexp", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/path-to-regexp-npm-1.8.0-735e8244bc-4c0d9aaf3f.zip/node_modules/path-to-regexp/",
+          "packageDependencies": [
+            ["path-to-regexp", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"],
+            ["isarray", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["path-type", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/path-type-npm-2.0.0-59132af1ec-d028f828df.zip/node_modules/path-type/",
+          "packageDependencies": [
+            ["path-type", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"],
+            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/path-type-npm-4.0.0-307bedbdb8-ef5835f2eb.zip/node_modules/path-type/",
+          "packageDependencies": [
+            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pepjs", [
+        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/pepjs-npm-0.5.2-2521e6126a-bc44db87f7.zip/node_modules/pepjs/",
+          "packageDependencies": [
+            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["performance-now", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/performance-now-npm-2.1.0-c3b087506a-bb4ebed0b0.zip/node_modules/performance-now/",
+          "packageDependencies": [
+            ["performance-now", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["picomatch", [
+        ["npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/picomatch-npm-2.2.2-0163e38274-20fa75e0a5.zip/node_modules/picomatch/",
+          "packageDependencies": [
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pify", [
+        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/pify-npm-2.3.0-58f05c0274-d5758aa570.zip/node_modules/pify/",
+          "packageDependencies": [
+            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/pify-npm-4.0.1-a7e05cc66d-786486a8c9.zip/node_modules/pify/",
+          "packageDependencies": [
+            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pinkie", [
+        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/pinkie-npm-2.0.4-522b6b3ab1-2cb484c9da.zip/node_modules/pinkie/",
+          "packageDependencies": [
+            ["pinkie", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pinkie-promise", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/pinkie-promise-npm-2.0.1-f6de399079-1e32e05ffd.zip/node_modules/pinkie-promise/",
+          "packageDependencies": [
+            ["pinkie-promise", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"],
+            ["pinkie", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pkg-dir", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/pkg-dir-npm-2.0.0-bed7e047e5-f8ae3a1517.zip/node_modules/pkg-dir/",
+          "packageDependencies": [
+            ["pkg-dir", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"],
+            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/pkg-dir-npm-3.0.0-0903fcee43-f29a7d0134.zip/node_modules/pkg-dir/",
+          "packageDependencies": [
+            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"],
+            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.2.0", {
+          "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-1956ebf3cf.zip/node_modules/pkg-dir/",
+          "packageDependencies": [
+            ["pkg-dir", "npm:4.2.0"],
+            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-34e5df0823-1956ebf3cf.zip/node_modules/pkg-dir/",
+          "packageDependencies": [
+            ["pkg-dir", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"],
+            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pluralize", [
+        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/pluralize-npm-7.0.0-064327767f-d35d8aeda1.zip/node_modules/pluralize/",
+          "packageDependencies": [
+            ["pluralize", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["portfinder", [
+        ["npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz", {
+          "packageLocation": "./.yarn/cache/portfinder-npm-1.0.27-519aa211df-dfecedbaf8.zip/node_modules/portfinder/",
+          "packageDependencies": [
+            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
+            ["async", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"],
+            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["posix-character-classes", [
+        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/posix-character-classes-npm-0.1.1-0eebf90c33-984f83c2d4.zip/node_modules/posix-character-classes/",
+          "packageDependencies": [
+            ["posix-character-classes", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss", [
+        ["npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-npm-7.0.32-88bddb9ad6-340f4f6ca6.zip/node_modules/postcss/",
+          "packageDependencies": [
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
+            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:8.1.4", {
+          "packageLocation": "./.yarn/cache/postcss-npm-8.1.4-d23d625804-b2bfa799c0.zip/node_modules/postcss/",
+          "packageDependencies": [
+            ["postcss", "npm:8.1.4"],
+            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
+            ["line-column", "npm:1.0.2"],
+            ["nanoid", "npm:3.1.16"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-attribute-case-insensitive", [
+        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-attribute-case-insensitive-npm-4.0.2-bd4a476e54-0de786320f.zip/node_modules/postcss-attribute-case-insensitive/",
+          "packageDependencies": [
+            ["postcss-attribute-case-insensitive", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-color-functional-notation", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-color-functional-notation-npm-2.0.1-0c9d26e19b-8f83bde47b.zip/node_modules/postcss-color-functional-notation/",
+          "packageDependencies": [
+            ["postcss-color-functional-notation", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-color-gray", [
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-color-gray-npm-5.0.0-d071a300bb-99c885049c.zip/node_modules/postcss-color-gray/",
+          "packageDependencies": [
+            ["postcss-color-gray", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"],
+            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-color-hex-alpha", [
+        ["npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-color-hex-alpha-npm-5.0.3-e060ae2969-99e8a9457c.zip/node_modules/postcss-color-hex-alpha/",
+          "packageDependencies": [
+            ["postcss-color-hex-alpha", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-color-mod-function", [
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-color-mod-function-npm-3.0.3-73563f8646-dd484df73c.zip/node_modules/postcss-color-mod-function/",
+          "packageDependencies": [
+            ["postcss-color-mod-function", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"],
+            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-color-rebeccapurple", [
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-color-rebeccapurple-npm-4.0.1-7fdd9ca1fe-a6fcc16f2a.zip/node_modules/postcss-color-rebeccapurple/",
+          "packageDependencies": [
+            ["postcss-color-rebeccapurple", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-custom-media", [
+        ["npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-custom-media-npm-7.0.8-33659cfc62-f0ac879d17.zip/node_modules/postcss-custom-media/",
+          "packageDependencies": [
+            ["postcss-custom-media", "npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-custom-properties", [
+        ["npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-custom-properties-npm-8.0.11-ed1178e664-2d3c11d4c9.zip/node_modules/postcss-custom-properties/",
+          "packageDependencies": [
+            ["postcss-custom-properties", "npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-custom-selectors", [
+        ["npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-custom-selectors-npm-5.1.2-57bf34f359-7d0d5f7751.zip/node_modules/postcss-custom-selectors/",
+          "packageDependencies": [
+            ["postcss-custom-selectors", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-dir-pseudo-class", [
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-dir-pseudo-class-npm-5.0.0-f92c89f60b-fc4f686058.zip/node_modules/postcss-dir-pseudo-class/",
+          "packageDependencies": [
+            ["postcss-dir-pseudo-class", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-double-position-gradients", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-double-position-gradients-npm-1.0.0-bac5e362a8-1511948165.zip/node_modules/postcss-double-position-gradients/",
+          "packageDependencies": [
+            ["postcss-double-position-gradients", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-env-function", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-env-function-npm-2.0.2-f7cec21d88-1cba45f90a.zip/node_modules/postcss-env-function/",
+          "packageDependencies": [
+            ["postcss-env-function", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-focus-visible", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-focus-visible-npm-4.0.0-d9e36401b8-df9f0b029c.zip/node_modules/postcss-focus-visible/",
+          "packageDependencies": [
+            ["postcss-focus-visible", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-focus-within", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-focus-within-npm-3.0.0-bb0e34a41f-9339299c41.zip/node_modules/postcss-focus-within/",
+          "packageDependencies": [
+            ["postcss-focus-within", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-font-variant", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-font-variant-npm-4.0.0-ad37a8ddd9-fe9f8f0124.zip/node_modules/postcss-font-variant/",
+          "packageDependencies": [
+            ["postcss-font-variant", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-gap-properties", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-gap-properties-npm-2.0.0-d4593559c8-fa8be8b253.zip/node_modules/postcss-gap-properties/",
+          "packageDependencies": [
+            ["postcss-gap-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-image-set-function", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-image-set-function-npm-3.0.1-48897f4817-e5612a6075.zip/node_modules/postcss-image-set-function/",
+          "packageDependencies": [
+            ["postcss-image-set-function", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-initial", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-initial-npm-3.0.2-8c7a5cad01-ec01ff4da6.zip/node_modules/postcss-initial/",
+          "packageDependencies": [
+            ["postcss-initial", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"],
+            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-lab-function", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-lab-function-npm-2.0.1-b1f3e97d22-034195cfd9.zip/node_modules/postcss-lab-function/",
+          "packageDependencies": [
+            ["postcss-lab-function", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"],
+            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4", {
+          "packageLocation": "./.yarn/$$virtual/postcss-loader-virtual-33231c816b/0/cache/postcss-loader-npm-4.0.4-1d969435a3-f82028a03d.zip/node_modules/postcss-loader/",
+          "packageDependencies": [
+            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
+            ["cosmiconfig", "npm:7.0.0"],
+            ["klona", "npm:2.0.4"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["postcss", "npm:8.1.4"],
+            ["schema-utils", "npm:3.0.0"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "postcss",
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-logical", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-logical-npm-3.0.0-f07bc87169-fdd9f0519b.zip/node_modules/postcss-logical/",
+          "packageDependencies": [
+            ["postcss-logical", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-media-minmax", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-media-minmax-npm-4.0.0-adf8efd62c-9b4953f4a5.zip/node_modules/postcss-media-minmax/",
+          "packageDependencies": [
+            ["postcss-media-minmax", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-modules-extract-imports", [
+        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0", {
+          "packageLocation": "./.yarn/$$virtual/postcss-modules-extract-imports-virtual-7b154907a7/0/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-874b94fd94.zip/node_modules/postcss-modules-extract-imports/",
+          "packageDependencies": [
+            ["postcss-modules-extract-imports", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
+            ["postcss", "npm:8.1.4"]
+          ],
+          "packagePeers": [
+            "postcss"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-modules-local-by-default", [
+        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0", {
+          "packageLocation": "./.yarn/$$virtual/postcss-modules-local-by-default-virtual-bb39aeb2ec/0/cache/postcss-modules-local-by-default-npm-4.0.0-794014f0a5-c0331dbc56.zip/node_modules/postcss-modules-local-by-default/",
+          "packageDependencies": [
+            ["postcss-modules-local-by-default", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
+            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
+            ["postcss", "npm:8.1.4"],
+            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"],
+            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
+          ],
+          "packagePeers": [
+            "postcss"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-modules-scope", [
+        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0", {
+          "packageLocation": "./.yarn/$$virtual/postcss-modules-scope-virtual-b6e77caa84/0/cache/postcss-modules-scope-npm-3.0.0-0678040a26-0b30c7bd28.zip/node_modules/postcss-modules-scope/",
+          "packageDependencies": [
+            ["postcss-modules-scope", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
+            ["postcss", "npm:8.1.4"],
+            ["postcss-selector-parser", "npm:6.0.4"]
+          ],
+          "packagePeers": [
+            "postcss"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-modules-values", [
+        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0", {
+          "packageLocation": "./.yarn/$$virtual/postcss-modules-values-virtual-6cecbd6eee/0/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-43fa6db334.zip/node_modules/postcss-modules-values/",
+          "packageDependencies": [
+            ["postcss-modules-values", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
+            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
+            ["postcss", "npm:8.1.4"]
+          ],
+          "packagePeers": [
+            "postcss"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-nesting", [
+        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-nesting-npm-7.0.1-761ebc7ac7-ffc3c12f83.zip/node_modules/postcss-nesting/",
+          "packageDependencies": [
+            ["postcss-nesting", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-overflow-shorthand", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-overflow-shorthand-npm-2.0.0-2b2c646dee-4e47823ea0.zip/node_modules/postcss-overflow-shorthand/",
+          "packageDependencies": [
+            ["postcss-overflow-shorthand", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-page-break", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-page-break-npm-2.0.0-014087e6c2-6e8fcbad52.zip/node_modules/postcss-page-break/",
+          "packageDependencies": [
+            ["postcss-page-break", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-place", [
+        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-place-npm-4.0.1-8fd2b9a1cb-db35406cb7.zip/node_modules/postcss-place/",
+          "packageDependencies": [
+            ["postcss-place", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-preset-env", [
+        ["npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-preset-env-npm-6.7.0-6a8abfa5d9-2867000f4d.zip/node_modules/postcss-preset-env/",
+          "packageDependencies": [
+            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
+            ["autoprefixer", "npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"],
+            ["browserslist", "npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"],
+            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
+            ["css-blank-pseudo", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"],
+            ["css-has-pseudo", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"],
+            ["css-prefers-color-scheme", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"],
+            ["cssdb", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-attribute-case-insensitive", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"],
+            ["postcss-color-functional-notation", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"],
+            ["postcss-color-gray", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"],
+            ["postcss-color-hex-alpha", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"],
+            ["postcss-color-mod-function", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"],
+            ["postcss-color-rebeccapurple", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"],
+            ["postcss-custom-media", "npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"],
+            ["postcss-custom-properties", "npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"],
+            ["postcss-custom-selectors", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"],
+            ["postcss-dir-pseudo-class", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"],
+            ["postcss-double-position-gradients", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"],
+            ["postcss-env-function", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"],
+            ["postcss-focus-visible", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"],
+            ["postcss-focus-within", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"],
+            ["postcss-font-variant", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"],
+            ["postcss-gap-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"],
+            ["postcss-image-set-function", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"],
+            ["postcss-initial", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"],
+            ["postcss-lab-function", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"],
+            ["postcss-logical", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"],
+            ["postcss-media-minmax", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"],
+            ["postcss-nesting", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"],
+            ["postcss-overflow-shorthand", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"],
+            ["postcss-page-break", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"],
+            ["postcss-place", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"],
+            ["postcss-pseudo-class-any-link", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"],
+            ["postcss-replace-overflow-wrap", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"],
+            ["postcss-selector-matches", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"],
+            ["postcss-selector-not", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-pseudo-class-any-link", [
+        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-pseudo-class-any-link-npm-6.0.0-7b316c9e7f-ee673573fb.zip/node_modules/postcss-pseudo-class-any-link/",
+          "packageDependencies": [
+            ["postcss-pseudo-class-any-link", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
+            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-replace-overflow-wrap", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-replace-overflow-wrap-npm-3.0.0-6003cd7d8c-b9b6f604b8.zip/node_modules/postcss-replace-overflow-wrap/",
+          "packageDependencies": [
+            ["postcss-replace-overflow-wrap", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-selector-matches", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-selector-matches-npm-4.0.0-5fc6fdefd2-8445f6453b.zip/node_modules/postcss-selector-matches/",
+          "packageDependencies": [
+            ["postcss-selector-matches", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"],
+            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-selector-not", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-selector-not-npm-4.0.0-efbb3e013e-7b3139dbe4.zip/node_modules/postcss-selector-not/",
+          "packageDependencies": [
+            ["postcss-selector-not", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"],
+            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
+            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-selector-parser", [
+        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-5.0.0-0c8cb41c78-eabe69f66f.zip/node_modules/postcss-selector-parser/",
+          "packageDependencies": [
+            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"],
+            ["cssesc", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"],
+            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
+            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.2-efdf587495-0c8bec00e9.zip/node_modules/postcss-selector-parser/",
+          "packageDependencies": [
+            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"],
+            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
+            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
+            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.0.4", {
+          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.4-0a01b64fe5-f6b6e30f51.zip/node_modules/postcss-selector-parser/",
+          "packageDependencies": [
+            ["postcss-selector-parser", "npm:6.0.4"],
+            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
+            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
+            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"],
+            ["util-deprecate", "npm:1.0.2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-value-parser", [
+        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-value-parser-npm-4.1.0-3b2ebe4ea7-7083140388.zip/node_modules/postcss-value-parser/",
+          "packageDependencies": [
+            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["postcss-values-parser", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/postcss-values-parser-npm-2.0.1-6e902a8f13-dfc25618be.zip/node_modules/postcss-values-parser/",
+          "packageDependencies": [
+            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"],
+            ["flatten", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"],
+            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
+            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prelude-ls", [
+        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-e27305417d-bc1649f521.zip/node_modules/prelude-ls/",
+          "packageDependencies": [
+            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prettier", [
+        ["npm:2.1.2", {
+          "packageLocation": "./.yarn/cache/prettier-npm-2.1.2-9d456ef3cd-bedc24c568.zip/node_modules/prettier/",
+          "packageDependencies": [
+            ["prettier", "npm:2.1.2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prettier-linter-helpers", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/prettier-linter-helpers-npm-1.0.0-d81e9133fb-6d698b9c8d.zip/node_modules/prettier-linter-helpers/",
+          "packageDependencies": [
+            ["prettier-linter-helpers", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"],
+            ["fast-diff", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pretty-bytes", [
+        ["npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/pretty-bytes-npm-5.3.0-7a61b0037a-ecc6b1670f.zip/node_modules/pretty-bytes/",
+          "packageDependencies": [
+            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pretty-error", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/pretty-error-npm-2.1.1-8e3aa45bec-dc2a92f598.zip/node_modules/pretty-error/",
+          "packageDependencies": [
+            ["pretty-error", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"],
+            ["renderkid", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"],
+            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["process", [
+        ["npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz", {
+          "packageLocation": "./.yarn/cache/process-npm-0.11.10-7d90e33373-ed93a85e91.zip/node_modules/process/",
+          "packageDependencies": [
+            ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["process-nextick-args", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-d189bc3f5b-ddeb0f07d0.zip/node_modules/process-nextick-args/",
+          "packageDependencies": [
+            ["process-nextick-args", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["progress", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/progress-npm-2.0.3-5c2d9d3842-c46ef5a1de.zip/node_modules/progress/",
+          "packageDependencies": [
+            ["progress", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["promise", [
+        ["npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/promise-npm-7.3.1-7377a67bb2-23267a4b07.zip/node_modules/promise/",
+          "packageDependencies": [
+            ["promise", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"],
+            ["asap", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["promise-deferred", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/promise-deferred-npm-2.0.3-e19e8edfd1-3135c0fe22.zip/node_modules/promise-deferred/",
+          "packageDependencies": [
+            ["promise-deferred", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"],
+            ["promise", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["promise-inflight", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/promise-inflight-npm-1.0.1-157e6ab6b2-c06bce0fc6.zip/node_modules/promise-inflight/",
+          "packageDependencies": [
+            ["promise-inflight", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["promiseback", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/promiseback-npm-2.0.3-22491f3f23-3c405394a4.zip/node_modules/promiseback/",
+          "packageDependencies": [
+            ["promiseback", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"],
+            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
+            ["promise-deferred", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prop-types", [
+        ["npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz", {
+          "packageLocation": "./.yarn/cache/prop-types-npm-15.7.2-e0673ab248-a440dd406c.zip/node_modules/prop-types/",
+          "packageDependencies": [
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
+            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prop-types-extra", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/prop-types-extra-virtual-d0b9d58233/0/cache/prop-types-extra-npm-1.1.1-20a8bf7d72-f1f1cc23b9.zip/node_modules/prop-types-extra/",
+          "packageDependencies": [
+            ["prop-types-extra", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"],
+            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["proxy-addr", [
+        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/proxy-addr-npm-2.0.6-b18b3fba9e-a7dcfd7025.zip/node_modules/proxy-addr/",
+          "packageDependencies": [
+            ["proxy-addr", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"],
+            ["forwarded", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"],
+            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["prr", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/prr-npm-1.0.1-5388e83f25-ac5c0986b4.zip/node_modules/prr/",
+          "packageDependencies": [
+            ["prr", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["psl", [
+        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/psl-npm-1.8.0-35b24832e8-92d47c6257.zip/node_modules/psl/",
+          "packageDependencies": [
+            ["psl", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["pump", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/pump-npm-3.0.0-d2cbad4f95-5464d5cf6c.zip/node_modules/pump/",
+          "packageDependencies": [
+            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"],
+            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
+            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["punycode", [
+        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/punycode-npm-1.3.2-888aa20550-e67fddacd8.zip/node_modules/punycode/",
+          "packageDependencies": [
+            ["punycode", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/punycode-npm-2.1.1-bcaefc3e1a-0202dc191c.zip/node_modules/punycode/",
+          "packageDependencies": [
+            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["qs", [
+        ["npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/qs-npm-6.5.2-1418a3532b-fa0410eff2.zip/node_modules/qs/",
+          "packageDependencies": [
+            ["qs", "npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/qs-npm-6.7.0-e39ef75ae7-8590470436.zip/node_modules/qs/",
+          "packageDependencies": [
+            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz", {
+          "packageLocation": "./.yarn/cache/qs-npm-6.9.4-4fb4385158-beba62d1e1.zip/node_modules/qs/",
+          "packageDependencies": [
+            ["qs", "npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["querystring", [
+        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-e6c0a19fa3-1e76c51462.zip/node_modules/querystring/",
+          "packageDependencies": [
+            ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["querystringify", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/querystringify-npm-2.1.1-aa64f99700-35301cc744.zip/node_modules/querystringify/",
+          "packageDependencies": [
+            ["querystringify", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["quick-lru", [
+        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/quick-lru-npm-5.1.1-270e0f54a1-fafb2b2fa1.zip/node_modules/quick-lru/",
+          "packageDependencies": [
+            ["quick-lru", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["randombytes", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/randombytes-npm-2.1.0-bca5441b67-ede2693af0.zip/node_modules/randombytes/",
+          "packageDependencies": [
+            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["range-parser", [
+        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/range-parser-npm-1.2.1-12bf302196-05074f5b23.zip/node_modules/range-parser/",
+          "packageDependencies": [
+            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["raw-body", [
+        ["npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/raw-body-npm-2.4.0-de3bb579cd-46dc02f8b4.zip/node_modules/raw-body/",
+          "packageDependencies": [
+            ["raw-body", "npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"],
+            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"],
+            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
+            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
+            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react", [
+        ["npm:17.0.1", {
+          "packageLocation": "./.yarn/cache/react-npm-17.0.1-98658812fc-a76d86ec97.zip/node_modules/react/",
+          "packageDependencies": [
+            ["react", "npm:17.0.1"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-bootstrap", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0", {
+          "packageLocation": "./.yarn/$$virtual/react-bootstrap-virtual-4b828bd79c/0/cache/react-bootstrap-npm-1.4.0-e1f4b40041-9ac160925e.zip/node_modules/react-bootstrap/",
+          "packageDependencies": [
+            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
+            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
+            ["@restart/context", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"],
+            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
+            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
+            ["@types/invariant", "npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"],
+            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
+            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
+            ["@types/react-transition-group", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"],
+            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"],
+            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
+            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["prop-types-extra", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["react-overlays", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"],
+            ["react-transition-group", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"],
+            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
+            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "react",
+            "react-dom"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-dom", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1", {
+          "packageLocation": "./.yarn/$$virtual/react-dom-virtual-a0772ec498/0/cache/react-dom-npm-17.0.1-588d0088ca-6a70028fbe.zip/node_modules/react-dom/",
+          "packageDependencies": [
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
+            ["react", "npm:17.0.1"],
+            ["scheduler", "npm:0.20.1"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-from-dom", [
+        ["virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0", {
+          "packageLocation": "./.yarn/$$virtual/react-from-dom-virtual-faf04b89e0/0/cache/react-from-dom-npm-0.5.0-e9d768d66e-a993221297.zip/node_modules/react-from-dom/",
+          "packageDependencies": [
+            ["react-from-dom", "virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0"],
+            ["react", "npm:17.0.1"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-hot-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0", {
+          "packageLocation": "./.yarn/$$virtual/react-hot-loader-virtual-9b6c66cb8a/0/cache/react-hot-loader-npm-4.13.0-ec29a44932-f1df03e932.zip/node_modules/react-hot-loader/",
+          "packageDependencies": [
+            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
+            ["@types/react", "npm:16.9.53"],
+            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"],
+            ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
+            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
+            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"],
+            ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"],
+            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
+          ],
+          "packagePeers": [
+            "@types/react",
+            "react",
+            "react-dom"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-i18next", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3", {
+          "packageLocation": "./.yarn/$$virtual/react-i18next-virtual-bd6e918979/0/cache/react-i18next-npm-11.7.3-30ee610170-7f0b0535bf.zip/node_modules/react-i18next/",
+          "packageDependencies": [
+            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["html-parse-stringify2", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"],
+            ["i18next", "npm:19.8.3"],
+            ["react", "npm:17.0.1"]
+          ],
+          "packagePeers": [
+            "i18next",
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-inlinesvg", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1", {
+          "packageLocation": "./.yarn/$$virtual/react-inlinesvg-virtual-c3a5196020/0/cache/react-inlinesvg-npm-2.1.1-75ae0bdf73-39de7b009a.zip/node_modules/react-inlinesvg/",
+          "packageDependencies": [
+            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
+            ["exenv", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-from-dom", "virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-is", [
+        ["npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz", {
+          "packageLocation": "./.yarn/cache/react-is-npm-16.13.1-97d4b4d55d-11bcf1267a.zip/node_modules/react-is/",
+          "packageDependencies": [
+            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-lifecycles-compat", [
+        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/react-lifecycles-compat-npm-3.0.4-bcaf74926c-82176a55ef.zip/node_modules/react-lifecycles-compat/",
+          "packageDependencies": [
+            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-overlays", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-overlays-virtual-55719a42f3/0/cache/react-overlays-npm-4.1.0-8e31f6545e-64d46694be.zip/node_modules/react-overlays/",
+          "packageDependencies": [
+            ["react-overlays", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"],
+            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
+            ["@popperjs/core", "npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"],
+            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
+            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"],
+            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
+            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "react",
+            "react-dom"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-responsive", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-responsive-virtual-889e4c0da2/0/cache/react-responsive-npm-8.1.0-0c4689f9df-059c460fd4.zip/node_modules/react-responsive/",
+          "packageDependencies": [
+            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
+            ["hyphenate-style-name", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"],
+            ["matchmediaquery", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["shallow-equal", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-router", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-router-virtual-0218b2b499/0/cache/react-router-npm-5.2.0-c093299045-4437eaa9ba.zip/node_modules/react-router/",
+          "packageDependencies": [
+            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
+            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["mini-create-react-context", "virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"],
+            ["path-to-regexp", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"],
+            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
+            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-router-bootstrap", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-router-bootstrap-virtual-2a8441681c/0/cache/react-router-bootstrap-npm-0.25.0-28ad5f848b-c9a66a8cc9.zip/node_modules/react-router-bootstrap/",
+          "packageDependencies": [
+            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"]
+          ],
+          "packagePeers": [
+            "react",
+            "react-router-dom"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-router-dom", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-router-dom-virtual-86c7a05f52/0/cache/react-router-dom-npm-5.2.0-8e78cd9ea8-9ad2d72630.zip/node_modules/react-router-dom/",
+          "packageDependencies": [
+            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
+            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
+            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["react-transition-group", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/react-transition-group-virtual-194db4d2db/0/cache/react-transition-group-npm-4.4.1-7d60c95184-e14446123f.zip/node_modules/react-transition-group/",
+          "packageDependencies": [
+            ["react-transition-group", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"]
+          ],
+          "packagePeers": [
+            "react",
+            "react-dom"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["read-pkg", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/read-pkg-npm-2.0.0-33997d44e1-ddf911317f.zip/node_modules/read-pkg/",
+          "packageDependencies": [
+            ["read-pkg", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"],
+            ["load-json-file", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"],
+            ["normalize-package-data", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"],
+            ["path-type", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["read-pkg-up", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/read-pkg-up-npm-2.0.0-bf8b4f9d8a-f35e4cb457.zip/node_modules/read-pkg-up/",
+          "packageDependencies": [
+            ["read-pkg-up", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"],
+            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"],
+            ["read-pkg", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["readable-stream", [
+        ["npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", {
+          "packageLocation": "./.yarn/cache/readable-stream-npm-2.3.7-f79a45df7e-6e38265606.zip/node_modules/readable-stream/",
+          "packageDependencies": [
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"],
+            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"],
+            ["process-nextick-args", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
+            ["string_decoder", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"],
+            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.0-77923e4148-f178b1daa8.zip/node_modules/readable-stream/",
+          "packageDependencies": [
+            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["string_decoder", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"],
+            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["readdirp", [
+        ["npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/readdirp-npm-2.2.1-0774507b36-00b5209ee5.zip/node_modules/readdirp/",
+          "packageDependencies": [
+            ["readdirp", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
+            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
+            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/readdirp-npm-3.4.0-3aa89dcedb-0159f43eb0.zip/node_modules/readdirp/",
+          "packageDependencies": [
+            ["readdirp", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"],
+            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rechoir", [
+        ["npm:0.7.0", {
+          "packageLocation": "./.yarn/cache/rechoir-npm-0.7.0-9bea79bab8-1d4cc8db1d.zip/node_modules/rechoir/",
+          "packageDependencies": [
+            ["rechoir", "npm:0.7.0"],
+            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["reduce-flatten", [
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/reduce-flatten-npm-2.0.0-01bd4936fa-216ce860c7.zip/node_modules/reduce-flatten/",
+          "packageDependencies": [
+            ["reduce-flatten", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regenerate", [
+        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz", {
+          "packageLocation": "./.yarn/cache/regenerate-npm-1.4.1-1ecee62eb3-67fe7ea332.zip/node_modules/regenerate/",
+          "packageDependencies": [
+            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regenerate-unicode-properties", [
+        ["npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-8.2.0-b6818d06cf-afe83304fb.zip/node_modules/regenerate-unicode-properties/",
+          "packageDependencies": [
+            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
+            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regenerator-runtime", [
+        ["npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", {
+          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.11.1-3ec573d726-d98d44b9f5.zip/node_modules/regenerator-runtime/",
+          "packageDependencies": [
+            ["regenerator-runtime", "npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", {
+          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.5-248d9d221b-8d8ee0eca2.zip/node_modules/regenerator-runtime/",
+          "packageDependencies": [
+            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz", {
+          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.7-2b1c616ba8-6ef567c662.zip/node_modules/regenerator-runtime/",
+          "packageDependencies": [
+            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regenerator-transform", [
+        ["npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", {
+          "packageLocation": "./.yarn/cache/regenerator-transform-npm-0.14.5-bc292a67bb-ed07c2c1d0.zip/node_modules/regenerator-transform/",
+          "packageDependencies": [
+            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regex-not", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/regex-not-npm-1.0.2-343d566231-3d6d95b4fd.zip/node_modules/regex-not/",
+          "packageDependencies": [
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
+            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regexp.prototype.flags", [
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.3.0-cde70d964a-468e19b3ae.zip/node_modules/regexp.prototype.flags/",
+          "packageDependencies": [
+            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regexpp", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/regexpp-npm-3.1.0-3977647602-69d0ce6b44.zip/node_modules/regexpp/",
+          "packageDependencies": [
+            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regexpu-core", [
+        ["npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.0-1580792b88-8947f4c4ac.zip/node_modules/regexpu-core/",
+          "packageDependencies": [
+            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"],
+            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"],
+            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
+            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"],
+            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
+            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
+            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.7.1", {
+          "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-a4d25a11cb.zip/node_modules/regexpu-core/",
+          "packageDependencies": [
+            ["regexpu-core", "npm:4.7.1"],
+            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"],
+            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
+            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"],
+            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
+            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
+            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regjsgen", [
+        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz", {
+          "packageLocation": "./.yarn/cache/regjsgen-npm-0.5.2-8dc0085cc4-629afab3d9.zip/node_modules/regjsgen/",
+          "packageDependencies": [
+            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["regjsparser", [
+        ["npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz", {
+          "packageLocation": "./.yarn/cache/regjsparser-npm-0.6.4-c7173ff3cc-cf7838462e.zip/node_modules/regjsparser/",
+          "packageDependencies": [
+            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
+            ["jsesc", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["relateurl", [
+        ["npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz", {
+          "packageLocation": "./.yarn/cache/relateurl-npm-0.2.7-8e6d0cf054-856db0385d.zip/node_modules/relateurl/",
+          "packageDependencies": [
+            ["relateurl", "npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["remove-trailing-separator", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/remove-trailing-separator-npm-1.1.0-03ba99b196-17dadf3d1f.zip/node_modules/remove-trailing-separator/",
+          "packageDependencies": [
+            ["remove-trailing-separator", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["renderkid", [
+        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/renderkid-npm-2.0.3-3dfbb394e6-6520020e22.zip/node_modules/renderkid/",
+          "packageDependencies": [
+            ["renderkid", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"],
+            ["css-select", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"],
+            ["dom-converter", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"],
+            ["htmlparser2", "npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"],
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
+            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["repeat-element", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/repeat-element-npm-1.1.3-2294823d44-6a59b879ef.zip/node_modules/repeat-element/",
+          "packageDependencies": [
+            ["repeat-element", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["repeat-string", [
+        ["npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz", {
+          "packageLocation": "./.yarn/cache/repeat-string-npm-1.6.1-29d44b5d77-99c431ba7b.zip/node_modules/repeat-string/",
+          "packageDependencies": [
+            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["request", [
+        ["npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", {
+          "packageLocation": "./.yarn/cache/request-npm-2.88.2-cf64f16287-7a74841f30.zip/node_modules/request/",
+          "packageDependencies": [
+            ["request", "npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"],
+            ["aws-sign2", "npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"],
+            ["aws4", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"],
+            ["caseless", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"],
+            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
+            ["extend", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"],
+            ["forever-agent", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"],
+            ["form-data", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"],
+            ["har-validator", "npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"],
+            ["http-signature", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"],
+            ["is-typedarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"],
+            ["isstream", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"],
+            ["json-stringify-safe", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"],
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
+            ["oauth-sign", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"],
+            ["performance-now", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"],
+            ["qs", "npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"],
+            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"],
+            ["tough-cookie", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"],
+            ["tunnel-agent", "npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"],
+            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["require-directory", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-967578aa8b-f495d02d89.zip/node_modules/require-directory/",
+          "packageDependencies": [
+            ["require-directory", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["require-main-filename", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/require-main-filename-npm-2.0.0-bbc6aebacb-8d3633149a.zip/node_modules/require-main-filename/",
+          "packageDependencies": [
+            ["require-main-filename", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["requires-port", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/requires-port-npm-1.0.0-bfc9e1c0bb-0db25fb2ac.zip/node_modules/requires-port/",
+          "packageDependencies": [
+            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve", [
+        ["patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa", {
+          "packageLocation": "./.yarn/cache/resolve-patch-c252489bf9-4bcfb56886.zip/node_modules/resolve/",
+          "packageDependencies": [
+            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
+            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa", {
+          "packageLocation": "./.yarn/cache/resolve-patch-af4189aea7-9e62d2803a.zip/node_modules/resolve/",
+          "packageDependencies": [
+            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"],
+            ["is-core-module", "npm:2.0.0"],
+            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve-alpn", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.0.0-0c262e3904-17baee01c0.zip/node_modules/resolve-alpn/",
+          "packageDependencies": [
+            ["resolve-alpn", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve-cwd", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-cwd-npm-2.0.0-0868e284c1-f5d5526526.zip/node_modules/resolve-cwd/",
+          "packageDependencies": [
+            ["resolve-cwd", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"],
+            ["resolve-from", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0", {
+          "packageLocation": "./.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-97edfbbf83.zip/node_modules/resolve-cwd/",
+          "packageDependencies": [
+            ["resolve-cwd", "npm:3.0.0"],
+            ["resolve-from", "npm:5.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve-from", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-from-npm-3.0.0-70e59f6eb1-dc0c83b3b8.zip/node_modules/resolve-from/",
+          "packageDependencies": [
+            ["resolve-from", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-from-npm-4.0.0-d867319aa7-87a4357c0c.zip/node_modules/resolve-from/",
+          "packageDependencies": [
+            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.0.0", {
+          "packageLocation": "./.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-0d29fc7012.zip/node_modules/resolve-from/",
+          "packageDependencies": [
+            ["resolve-from", "npm:5.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve-pathname", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-pathname-npm-3.0.0-a86f4ccfe8-88ed8b3dd2.zip/node_modules/resolve-pathname/",
+          "packageDependencies": [
+            ["resolve-pathname", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["resolve-url", [
+        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/resolve-url-npm-0.2.1-92942fe0d1-9e1cd0028d.zip/node_modules/resolve-url/",
+          "packageDependencies": [
+            ["resolve-url", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["responselike", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/responselike-npm-2.0.0-0c409d386c-11d8225dd8.zip/node_modules/responselike/",
+          "packageDependencies": [
+            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"],
+            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ret", [
+        ["npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", {
+          "packageLocation": "./.yarn/cache/ret-npm-0.1.15-c9ad274c5c-749c2fcae7.zip/node_modules/ret/",
+          "packageDependencies": [
+            ["ret", "npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["retry", [
+        ["npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", {
+          "packageLocation": "./.yarn/cache/retry-npm-0.12.0-c886249d25-51f2fddddb.zip/node_modules/retry/",
+          "packageDependencies": [
+            ["retry", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["reusify", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-9edf20c681-08ef02ed05.zip/node_modules/reusify/",
+          "packageDependencies": [
+            ["reusify", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rimraf", [
+        ["npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", {
+          "packageLocation": "./.yarn/cache/rimraf-npm-2.6.3-972c571ec0-c9ce1854f1.zip/node_modules/rimraf/",
+          "packageDependencies": [
+            ["rimraf", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", {
+          "packageLocation": "./.yarn/cache/rimraf-npm-2.7.1-37c27764f2-059efac283.zip/node_modules/rimraf/",
+          "packageDependencies": [
+            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-1ec7456598-f0de3e4455.zip/node_modules/rimraf/",
+          "packageDependencies": [
+            ["rimraf", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rollup", [
+        ["npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz", {
+          "packageLocation": "./.yarn/cache/rollup-npm-1.32.1-770bdc9924-fc59b8af48.zip/node_modules/rollup/",
+          "packageDependencies": [
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
+            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"],
+            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
+            ["acorn", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rollup-plugin-babel", [
+        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/rollup-plugin-babel-virtual-97049223de/0/cache/rollup-plugin-babel-npm-4.4.0-6f9aff804c-9f82719d15.zip/node_modules/rollup-plugin-babel/",
+          "packageDependencies": [
+            ["rollup-plugin-babel", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
+            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"]
+          ],
+          "packagePeers": [
+            "@babel/core",
+            "rollup"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rollup-plugin-terser", [
+        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1", {
+          "packageLocation": "./.yarn/$$virtual/rollup-plugin-terser-virtual-c68cfbd274/0/cache/rollup-plugin-terser-npm-5.3.1-825cbdcec7-18ebbdc41a.zip/node_modules/rollup-plugin-terser/",
+          "packageDependencies": [
+            ["rollup-plugin-terser", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1"],
+            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
+            ["jest-worker", "npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
+            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"],
+            ["serialize-javascript", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"],
+            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"]
+          ],
+          "packagePeers": [
+            "rollup"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rollup-pluginutils", [
+        ["npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz", {
+          "packageLocation": "./.yarn/cache/rollup-pluginutils-npm-2.8.2-5d03aa1f3a-6922c1a26d.zip/node_modules/rollup-pluginutils/",
+          "packageDependencies": [
+            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"],
+            ["estree-walker", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["run-parallel", [
+        ["npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz", {
+          "packageLocation": "./.yarn/cache/run-parallel-npm-1.1.9-46d37c1c05-a05ca86e99.zip/node_modules/run-parallel/",
+          "packageDependencies": [
+            ["run-parallel", "npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["rxjs", [
+        ["npm:6.6.3", {
+          "packageLocation": "./.yarn/cache/rxjs-npm-6.6.3-a1e67d677b-61a3da6db9.zip/node_modules/rxjs/",
+          "packageDependencies": [
+            ["rxjs", "npm:6.6.3"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["safe-buffer", [
+        ["npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-cc2f76509a-2708587c1b.zip/node_modules/safe-buffer/",
+          "packageDependencies": [
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-b1d32d9f7a-0bb57f0d8f.zip/node_modules/safe-buffer/",
+          "packageDependencies": [
+            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["safe-regex", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/safe-regex-npm-1.1.0-8792dadac4-c355e3163f.zip/node_modules/safe-regex/",
+          "packageDependencies": [
+            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"],
+            ["ret", "npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["safer-buffer", [
+        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-c3c575408e-549ba83f5b.zip/node_modules/safer-buffer/",
+          "packageDependencies": [
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sass", [
+        ["npm:1.27.0", {
+          "packageLocation": "./.yarn/cache/sass-npm-1.27.0-52525b4c60-db4342b13b.zip/node_modules/sass/",
+          "packageDependencies": [
+            ["sass", "npm:1.27.0"],
+            ["chokidar", "npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sass-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4", {
+          "packageLocation": "./.yarn/$$virtual/sass-loader-virtual-f0d3828a81/0/cache/sass-loader-npm-10.0.4-e2bd742c87-ec8e0b8a38.zip/node_modules/sass-loader/",
+          "packageDependencies": [
+            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
+            ["fibers", null],
+            ["klona", "npm:2.0.4"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"],
+            ["node-sass", null],
+            ["sass", "npm:1.27.0"],
+            ["schema-utils", "npm:3.0.0"],
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "fibers",
+            "node-sass",
+            "sass",
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["scheduler", [
+        ["npm:0.20.1", {
+          "packageLocation": "./.yarn/cache/scheduler-npm-0.20.1-db303b7f5c-377b4ad0d8.zip/node_modules/scheduler/",
+          "packageDependencies": [
+            ["scheduler", "npm:0.20.1"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
+            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["schema-utils", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/schema-utils-npm-1.0.0-5a053ed7a5-d2f753e7a1.zip/node_modules/schema-utils/",
+          "packageDependencies": [
+            ["schema-utils", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["ajv-errors", "virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"],
+            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz", {
+          "packageLocation": "./.yarn/cache/schema-utils-npm-2.7.0-4bd159eb2f-5d3e7c9e53.zip/node_modules/schema-utils/",
+          "packageDependencies": [
+            ["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
+            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0", {
+          "packageLocation": "./.yarn/cache/schema-utils-npm-3.0.0-e97702da81-a084f593f2.zip/node_modules/schema-utils/",
+          "packageDependencies": [
+            ["schema-utils", "npm:3.0.0"],
+            ["@types/json-schema", "npm:7.0.6"],
+            ["ajv", "npm:6.12.6"],
+            ["ajv-keywords", "virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["secure-compare", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/secure-compare-npm-3.0.1-c9353d9b27-6444a93f74.zip/node_modules/secure-compare/",
+          "packageDependencies": [
+            ["secure-compare", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["select-hose", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/select-hose-npm-2.0.0-ee6e100944-4da089c022.zip/node_modules/select-hose/",
+          "packageDependencies": [
+            ["select-hose", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["selfsigned", [
+        ["npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz", {
+          "packageLocation": "./.yarn/cache/selfsigned-npm-1.10.7-4928d51363-ef53d4801c.zip/node_modules/selfsigned/",
+          "packageDependencies": [
+            ["selfsigned", "npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"],
+            ["node-forge", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["semver", [
+        ["npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", {
+          "packageLocation": "./.yarn/cache/semver-npm-5.7.1-da2070833f-06ff0ed753.zip/node_modules/semver/",
+          "packageDependencies": [
+            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/semver-npm-6.3.0-9fd285082e-f0d155c06a.zip/node_modules/semver/",
+          "packageDependencies": [
+            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/semver-npm-7.0.0-746fcb0f5c-5162b31e99.zip/node_modules/semver/",
+          "packageDependencies": [
+            ["semver", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/semver-npm-7.3.2-72893b2b46-bceb46d396.zip/node_modules/semver/",
+          "packageDependencies": [
+            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["send", [
+        ["npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz", {
+          "packageLocation": "./.yarn/cache/send-npm-0.17.1-a7478e86fb-58e4ab2e07.zip/node_modules/send/",
+          "packageDependencies": [
+            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
+            ["destroy", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"],
+            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
+            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"],
+            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"],
+            ["http-errors", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"],
+            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"],
+            ["ms", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"],
+            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
+            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["serialize-javascript", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/serialize-javascript-npm-4.0.0-f3f043f975-f17305aaab.zip/node_modules/serialize-javascript/",
+          "packageDependencies": [
+            ["serialize-javascript", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"],
+            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.0.1", {
+          "packageLocation": "./.yarn/cache/serialize-javascript-npm-5.0.1-8ffc173f09-97eef70a33.zip/node_modules/serialize-javascript/",
+          "packageDependencies": [
+            ["serialize-javascript", "npm:5.0.1"],
+            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["serve-index", [
+        ["npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz", {
+          "packageLocation": "./.yarn/cache/serve-index-npm-1.9.1-b6000b5ebc-035c0b7d5f.zip/node_modules/serve-index/",
+          "packageDependencies": [
+            ["serve-index", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"],
+            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
+            ["batch", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
+            ["http-errors", "npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"],
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
+            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["serve-static", [
+        ["npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz", {
+          "packageLocation": "./.yarn/cache/serve-static-npm-1.14.1-75acf87f3e-97e8c94ec0.zip/node_modules/serve-static/",
+          "packageDependencies": [
+            ["serve-static", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"],
+            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
+            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
+            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
+            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["set-blocking", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-308198d0a7-0ac2403b0c.zip/node_modules/set-blocking/",
+          "packageDependencies": [
+            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["set-value", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/set-value-npm-2.0.1-c520aa107e-a97a99a00c.zip/node_modules/set-value/",
+          "packageDependencies": [
+            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"],
+            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"],
+            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["setprototypeof", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.0-432a7a7143-8a3fb2ff4b.zip/node_modules/setprototypeof/",
+          "packageDependencies": [
+            ["setprototypeof", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.1-e82c3bc38e-0efed4da5a.zip/node_modules/setprototypeof/",
+          "packageDependencies": [
+            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["shallow-equal", [
+        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/shallow-equal-npm-1.2.1-6792473789-5002ac4a36.zip/node_modules/shallow-equal/",
+          "packageDependencies": [
+            ["shallow-equal", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["shallowequal", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/shallowequal-npm-1.1.0-2c381f3031-15820dd544.zip/node_modules/shallowequal/",
+          "packageDependencies": [
+            ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["shebang-command", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/shebang-command-npm-1.2.0-d9ffeb9731-2a1e0092a6.zip/node_modules/shebang-command/",
+          "packageDependencies": [
+            ["shebang-command", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"],
+            ["shebang-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-c5290507f0-85aa394d8c.zip/node_modules/shebang-command/",
+          "packageDependencies": [
+            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
+            ["shebang-regex", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["shebang-regex", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/shebang-regex-npm-1.0.0-dcb222eeca-cf1a41cb09.zip/node_modules/shebang-regex/",
+          "packageDependencies": [
+            ["shebang-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/shebang-regex-npm-3.0.0-1c402e8caa-ea18044ffa.zip/node_modules/shebang-regex/",
+          "packageDependencies": [
+            ["shebang-regex", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["side-channel", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/side-channel-npm-1.0.2-922f4c912e-cbac23d542.zip/node_modules/side-channel/",
+          "packageDependencies": [
+            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["signal-exit", [
+        ["npm:3.0.3", {
+          "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f8f3fec95c.zip/node_modules/signal-exit/",
+          "packageDependencies": [
+            ["signal-exit", "npm:3.0.3"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-0c9bcfc5db-f8f3fec95c.zip/node_modules/signal-exit/",
+          "packageDependencies": [
+            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["slash", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/slash-npm-3.0.0-cb773595d9-fc3e8597d8.zip/node_modules/slash/",
+          "packageDependencies": [
+            ["slash", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["slice-ansi", [
+        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/slice-ansi-npm-2.1.0-74944f2412-7578393cac.zip/node_modules/slice-ansi/",
+          "packageDependencies": [
+            ["slice-ansi", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"],
+            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
+            ["astral-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"],
+            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["snapdragon", [
+        ["npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz", {
+          "packageLocation": "./.yarn/cache/snapdragon-npm-0.8.2-540483f371-c30b63a732.zip/node_modules/snapdragon/",
+          "packageDependencies": [
+            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
+            ["base", "npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"],
+            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
+            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"],
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"],
+            ["source-map-resolve", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"],
+            ["use", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["snapdragon-node", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/snapdragon-node-npm-2.1.1-029cc18e24-75918b0d60.zip/node_modules/snapdragon-node/",
+          "packageDependencies": [
+            ["snapdragon-node", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"],
+            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
+            ["snapdragon-util", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["snapdragon-util", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/snapdragon-util-npm-3.0.1-f44f09ca46-d1a7ab4171.zip/node_modules/snapdragon-util/",
+          "packageDependencies": [
+            ["snapdragon-util", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sockjs", [
+        ["npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz", {
+          "packageLocation": "./.yarn/cache/sockjs-npm-0.3.20-5145b12ae5-9a8596f800.zip/node_modules/sockjs/",
+          "packageDependencies": [
+            ["sockjs", "npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"],
+            ["faye-websocket", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"],
+            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"],
+            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sockjs-client", [
+        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/sockjs-client-npm-1.4.0-ab2730346e-efe7e7bcf2.zip/node_modules/sockjs-client/",
+          "packageDependencies": [
+            ["sockjs-client", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"],
+            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
+            ["eventsource", "npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"],
+            ["faye-websocket", "npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["json3", "npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"],
+            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["source-list-map", [
+        ["npm:2.0.1", {
+          "packageLocation": "./.yarn/cache/source-list-map-npm-2.0.1-625c551052-d8d45f2998.zip/node_modules/source-list-map/",
+          "packageDependencies": [
+            ["source-list-map", "npm:2.0.1"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/source-list-map-npm-2.0.1-f34aa02afc-d8d45f2998.zip/node_modules/source-list-map/",
+          "packageDependencies": [
+            ["source-list-map", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["source-map", [
+        ["npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-npm-0.5.7-9cd4d17475-737face965.zip/node_modules/source-map/",
+          "packageDependencies": [
+            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-npm-0.6.1-b037bddf2e-8647829a06.zip/node_modules/source-map/",
+          "packageDependencies": [
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.7.3", {
+          "packageLocation": "./.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-351ce26ffa.zip/node_modules/source-map/",
+          "packageDependencies": [
+            ["source-map", "npm:0.7.3"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-npm-0.7.3-862f0e3133-351ce26ffa.zip/node_modules/source-map/",
+          "packageDependencies": [
+            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["source-map-resolve", [
+        ["npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-resolve-npm-0.5.3-93f99dc7ea-042ad0c0ba.zip/node_modules/source-map-resolve/",
+          "packageDependencies": [
+            ["source-map-resolve", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"],
+            ["atob", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"],
+            ["decode-uri-component", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"],
+            ["resolve-url", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"],
+            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
+            ["urix", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["source-map-support", [
+        ["npm:0.5.19", {
+          "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-59d4efaae9.zip/node_modules/source-map-support/",
+          "packageDependencies": [
+            ["source-map-support", "npm:0.5.19"],
+            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.19-6160604513-59d4efaae9.zip/node_modules/source-map-support/",
+          "packageDependencies": [
+            ["source-map-support", "npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"],
+            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["source-map-url", [
+        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/source-map-url-npm-0.4.0-252eff568f-84d509cfa1.zip/node_modules/source-map-url/",
+          "packageDependencies": [
+            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sourcemap-codec", [
+        ["npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz", {
+          "packageLocation": "./.yarn/cache/sourcemap-codec-npm-1.4.8-d69e420ed4-4d56d1232a.zip/node_modules/sourcemap-codec/",
+          "packageDependencies": [
+            ["sourcemap-codec", "npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdx-correct", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/spdx-correct-npm-3.1.1-f3740410f8-f3413eb225.zip/node_modules/spdx-correct/",
+          "packageDependencies": [
+            ["spdx-correct", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"],
+            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"],
+            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdx-exceptions", [
+        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/spdx-exceptions-npm-2.3.0-b9d007563f-3cbd249889.zip/node_modules/spdx-exceptions/",
+          "packageDependencies": [
+            ["spdx-exceptions", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdx-expression-parse", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/spdx-expression-parse-npm-3.0.1-e386dadbb9-f0211cada3.zip/node_modules/spdx-expression-parse/",
+          "packageDependencies": [
+            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"],
+            ["spdx-exceptions", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"],
+            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdx-license-ids", [
+        ["npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/spdx-license-ids-npm-3.0.5-d72e7a737e-4ff7c0615a.zip/node_modules/spdx-license-ids/",
+          "packageDependencies": [
+            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdy", [
+        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/spdy-npm-4.0.2-c75dcd93ce-388d39324d.zip/node_modules/spdy/",
+          "packageDependencies": [
+            ["spdy", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["handle-thing", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"],
+            ["http-deceiver", "npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"],
+            ["select-hose", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"],
+            ["spdy-transport", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["spdy-transport", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/spdy-transport-npm-3.0.0-8b3b071693-e717ce9d76.zip/node_modules/spdy-transport/",
+          "packageDependencies": [
+            ["spdy-transport", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"],
+            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["detect-node", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"],
+            ["hpack.js", "npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"],
+            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"],
+            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"],
+            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["split-string", [
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/split-string-npm-3.1.0-56e463aa47-9b610d1509.zip/node_modules/split-string/",
+          "packageDependencies": [
+            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"],
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sprintf-js", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-fe48d344ae-51df1bce9e.zip/node_modules/sprintf-js/",
+          "packageDependencies": [
+            ["sprintf-js", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["sshpk", [
+        ["npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz", {
+          "packageLocation": "./.yarn/cache/sshpk-npm-1.16.1-0aafdb32a8-4bd7422634.zip/node_modules/sshpk/",
+          "packageDependencies": [
+            ["sshpk", "npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"],
+            ["asn1", "npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
+            ["bcrypt-pbkdf", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"],
+            ["dashdash", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"],
+            ["ecc-jsbn", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"],
+            ["getpass", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"],
+            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"],
+            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"],
+            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ssri", [
+        ["npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/ssri-npm-8.0.0-f340282146-97964745a8.zip/node_modules/ssri/",
+          "packageDependencies": [
+            ["ssri", "npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["static-extend", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/static-extend-npm-0.1.2-a36503dc55-c42052c352.zip/node_modules/static-extend/",
+          "packageDependencies": [
+            ["static-extend", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"],
+            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
+            ["object-copy", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["statuses", [
+        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/statuses-npm-1.5.0-d5df314c0d-57735269bf.zip/node_modules/statuses/",
+          "packageDependencies": [
+            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["stream-buffers", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/stream-buffers-npm-3.0.2-6589b98b10-340a04fc13.zip/node_modules/stream-buffers/",
+          "packageDependencies": [
+            ["stream-buffers", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["stream-to-array", [
+        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/stream-to-array-npm-2.3.0-530b745da2-b313d7dfa5.zip/node_modules/stream-to-array/",
+          "packageDependencies": [
+            ["stream-to-array", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"],
+            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["stream-to-promise", [
+        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/stream-to-promise-npm-2.2.0-fb013312ed-1f26f85d57.zip/node_modules/stream-to-promise/",
+          "packageDependencies": [
+            ["stream-to-promise", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"],
+            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"],
+            ["end-of-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"],
+            ["stream-to-array", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["string-width", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/string-width-npm-1.0.2-93338da8af-b11745daa9.zip/node_modules/string-width/",
+          "packageDependencies": [
+            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"],
+            ["code-point-at", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"],
+            ["is-fullwidth-code-point", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"],
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/string-width-npm-3.1.0-876c30817a-54c5d1842d.zip/node_modules/string-width/",
+          "packageDependencies": [
+            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
+            ["emoji-regex", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"],
+            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"],
+            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["string.prototype.matchall", [
+        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/string.prototype.matchall-npm-4.0.2-ad417a2d63-0ca2937d28.zip/node_modules/string.prototype.matchall/",
+          "packageDependencies": [
+            ["string.prototype.matchall", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
+            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
+            ["internal-slot", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"],
+            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"],
+            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["string.prototype.trimend", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.1-54a231bc5c-93046463de.zip/node_modules/string.prototype.trimend/",
+          "packageDependencies": [
+            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["string.prototype.trimstart", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.1-a8222b2c84-20c4a940f1.zip/node_modules/string.prototype.trimstart/",
+          "packageDependencies": [
+            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["string_decoder", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/string_decoder-npm-1.1.1-aaf3877585-bc2dc169d8.zip/node_modules/string_decoder/",
+          "packageDependencies": [
+            ["string_decoder", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"],
+            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/string_decoder-npm-1.3.0-5171e417be-0a09afb610.zip/node_modules/string_decoder/",
+          "packageDependencies": [
+            ["string_decoder", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"],
+            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["stringify-object", [
+        ["npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/stringify-object-npm-3.3.0-34d116d15e-4b0a6802f0.zip/node_modules/stringify-object/",
+          "packageDependencies": [
+            ["stringify-object", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"],
+            ["get-own-enumerable-property-symbols", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"],
+            ["is-obj", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"],
+            ["is-regexp", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-ansi", [
+        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/strip-ansi-npm-3.0.1-261e00f26b-98772dcf44.zip/node_modules/strip-ansi/",
+          "packageDependencies": [
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
+            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/strip-ansi-npm-5.2.0-3a9da5dcd0-44a0d0d354.zip/node_modules/strip-ansi/",
+          "packageDependencies": [
+            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"],
+            ["ansi-regex", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.0-ff0d94fc22-10568c91ca.zip/node_modules/strip-ansi/",
+          "packageDependencies": [
+            ["strip-ansi", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"],
+            ["ansi-regex", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-bom", [
+        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/strip-bom-npm-3.0.0-ed0d0bfd30-361dd1dd08.zip/node_modules/strip-bom/",
+          "packageDependencies": [
+            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-comments", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/strip-comments-npm-1.0.2-f0a6d3bb12-21d667d3ba.zip/node_modules/strip-comments/",
+          "packageDependencies": [
+            ["strip-comments", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"],
+            ["babel-extract-comments", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"],
+            ["babel-plugin-transform-object-rest-spread", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-eof", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/strip-eof-npm-1.0.0-c1e0ee733b-905cd8718a.zip/node_modules/strip-eof/",
+          "packageDependencies": [
+            ["strip-eof", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-final-newline", [
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-74dbd8a602.zip/node_modules/strip-final-newline/",
+          "packageDependencies": [
+            ["strip-final-newline", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["strip-json-comments", [
+        ["npm:3.1.1", {
+          "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-f16719ce25.zip/node_modules/strip-json-comments/",
+          "packageDependencies": [
+            ["strip-json-comments", "npm:3.1.1"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-a2dc3f3262-f16719ce25.zip/node_modules/strip-json-comments/",
+          "packageDependencies": [
+            ["strip-json-comments", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["style-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0", {
+          "packageLocation": "./.yarn/$$virtual/style-loader-virtual-e1949e6a64/0/cache/style-loader-npm-2.0.0-b9a5c4a2aa-ffc3054882.zip/node_modules/style-loader/",
+          "packageDependencies": [
+            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["supports-color", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/supports-color-npm-2.0.0-75916659f1-5d6fb449e2.zip/node_modules/supports-color/",
+          "packageDependencies": [
+            ["supports-color", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-858a1bb480-edacee6425.zip/node_modules/supports-color/",
+          "packageDependencies": [
+            ["supports-color", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"],
+            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/supports-color-npm-6.1.0-07810ac034-8682157129.zip/node_modules/supports-color/",
+          "packageDependencies": [
+            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"],
+            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/supports-color-npm-7.1.0-29ac10beda-6130f36b2a.zip/node_modules/supports-color/",
+          "packageDependencies": [
+            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"],
+            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:7.2.0", {
+          "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-8e57067c39.zip/node_modules/supports-color/",
+          "packageDependencies": [
+            ["supports-color", "npm:7.2.0"],
+            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["table", [
+        ["npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz", {
+          "packageLocation": "./.yarn/cache/table-npm-5.4.6-40372b1ef4-38877a196c.zip/node_modules/table/",
+          "packageDependencies": [
+            ["table", "npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"],
+            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
+            ["slice-ansi", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"],
+            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["table-layout", [
+        ["npm:1.0.1", {
+          "packageLocation": "./.yarn/cache/table-layout-npm-1.0.1-a14b2ef715-b2e899f60f.zip/node_modules/table-layout/",
+          "packageDependencies": [
+            ["table-layout", "npm:1.0.1"],
+            ["array-back", "npm:4.0.1"],
+            ["deep-extend", "npm:0.6.0"],
+            ["typical", "npm:5.2.0"],
+            ["wordwrapjs", "npm:4.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tapable", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/tapable-npm-1.1.3-5d1594602f-b2c2ab2026.zip/node_modules/tapable/",
+          "packageDependencies": [
+            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/tapable-npm-2.0.0-1b1ecde87d-e6321280f9.zip/node_modules/tapable/",
+          "packageDependencies": [
+            ["tapable", "npm:2.0.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tar", [
+        ["npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/tar-npm-6.0.2-c08102c075-7d28cc13d7.zip/node_modules/tar/",
+          "packageDependencies": [
+            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
+            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"],
+            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
+            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
+            ["minizlib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"],
+            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"],
+            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tar-stream", [
+        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/tar-stream-npm-2.1.3-d6be928e6e-57d2284615.zip/node_modules/tar-stream/",
+          "packageDependencies": [
+            ["tar-stream", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"],
+            ["bl", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"],
+            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
+            ["fs-constants", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"],
+            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
+            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["temp-dir", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/temp-dir-npm-1.0.0-31731478b9-4cc703b6ac.zip/node_modules/temp-dir/",
+          "packageDependencies": [
+            ["temp-dir", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tempy", [
+        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/tempy-npm-0.3.0-6bb6a9b3ef-487b16624f.zip/node_modules/tempy/",
+          "packageDependencies": [
+            ["tempy", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"],
+            ["temp-dir", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"],
+            ["type-fest", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"],
+            ["unique-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["terser", [
+        ["npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", {
+          "packageLocation": "./.yarn/cache/terser-npm-4.8.0-fc316bfc83-d7ab95898b.zip/node_modules/terser/",
+          "packageDependencies": [
+            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"],
+            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
+            ["source-map-support", "npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.3.8", {
+          "packageLocation": "./.yarn/cache/terser-npm-5.3.8-5c417c2e25-3fc070378b.zip/node_modules/terser/",
+          "packageDependencies": [
+            ["terser", "npm:5.3.8"],
+            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"],
+            ["source-map", "npm:0.7.3"],
+            ["source-map-support", "npm:0.5.19"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["terser-webpack-plugin", [
+        ["virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1", {
+          "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-8a1d554d58/0/cache/terser-webpack-plugin-npm-5.0.1-e2259a3f81-23dfddfcba.zip/node_modules/terser-webpack-plugin/",
+          "packageDependencies": [
+            ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
+            ["jest-worker", "npm:26.6.1"],
+            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
+            ["schema-utils", "npm:3.0.0"],
+            ["serialize-javascript", "npm:5.0.1"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
+            ["terser", "npm:5.3.8"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["text-table", [
+        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-847bae3160-373904ce70.zip/node_modules/text-table/",
+          "packageDependencies": [
+            ["text-table", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["thunky", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/thunky-npm-1.1.0-2e03df1212-eceb856b64.zip/node_modules/thunky/",
+          "packageDependencies": [
+            ["thunky", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["timeline", [
+        ["workspace:.", {
+          "packageLocation": "./",
+          "packageDependencies": [
+            ["timeline", "workspace:."],
+            ["@babel/core", "npm:7.12.3"],
+            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
+            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
+            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
+            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
+            ["@types/lodash", "npm:4.14.162"],
+            ["@types/node", "npm:14.14.5"],
+            ["@types/react", "npm:16.9.53"],
+            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
+            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
+            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
+            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
+            ["@types/react-router-dom", "npm:5.1.6"],
+            ["@types/webpack-env", "npm:1.15.3"],
+            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"],
+            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
+            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
+            ["axios", "npm:0.21.0"],
+            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
+            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
+            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
+            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"],
+            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
+            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
+            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"],
+            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
+            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"],
+            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
+            ["eslint", "npm:7.12.1"],
+            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
+            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
+            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
+            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
+            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
+            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
+            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
+            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
+            ["i18next", "npm:19.8.3"],
+            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
+            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
+            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"],
+            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
+            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"],
+            ["postcss", "npm:8.1.4"],
+            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
+            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
+            ["prettier", "npm:2.1.2"],
+            ["react", "npm:17.0.1"],
+            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
+            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
+            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
+            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
+            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
+            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
+            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
+            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
+            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
+            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"],
+            ["rxjs", "npm:6.6.3"],
+            ["sass", "npm:1.27.0"],
+            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
+            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
+            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
+            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
+            ["workbox-precaching", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"],
+            ["workbox-strategies", "npm:5.1.4"],
+            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
+            ["workbox-window", "npm:5.1.4"],
+            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"]
+          ],
+          "linkType": "SOFT",
+        }]
+      ]],
+      ["tiny-invariant", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/tiny-invariant-npm-1.1.0-b1fc3471e7-64318fbd77.zip/node_modules/tiny-invariant/",
+          "packageDependencies": [
+            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tiny-warning", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/tiny-warning-npm-1.0.3-1d5479b67a-6cf9f66cb7.zip/node_modules/tiny-warning/",
+          "packageDependencies": [
+            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["to-fast-properties", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/to-fast-properties-npm-1.0.3-4db318f804-bfe41c9367.zip/node_modules/to-fast-properties/",
+          "packageDependencies": [
+            ["to-fast-properties", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-df5ab2c333-40e6198424.zip/node_modules/to-fast-properties/",
+          "packageDependencies": [
+            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["to-object-path", [
+        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/to-object-path-npm-0.3.0-5a713ccaf5-a6a5a50225.zip/node_modules/to-object-path/",
+          "packageDependencies": [
+            ["to-object-path", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"],
+            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["to-regex", [
+        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/to-regex-npm-3.0.2-a380ed7e87-ed733fdff8.zip/node_modules/to-regex/",
+          "packageDependencies": [
+            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"],
+            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
+            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
+            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
+            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["to-regex-range", [
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/to-regex-range-npm-2.1.1-68ddc69671-801501b59d.zip/node_modules/to-regex-range/",
+          "packageDependencies": [
+            ["to-regex-range", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"],
+            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
+            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/to-regex-range-npm-5.0.1-b6ba8d220b-2b6001e314.zip/node_modules/to-regex-range/",
+          "packageDependencies": [
+            ["to-regex-range", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"],
+            ["is-number", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["toidentifier", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.0-cf9ef3320f-95720e8a0f.zip/node_modules/toidentifier/",
+          "packageDependencies": [
+            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tough-cookie", [
+        ["npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/tough-cookie-npm-2.5.0-8c306aca04-bf5d6fac5c.zip/node_modules/tough-cookie/",
+          "packageDependencies": [
+            ["tough-cookie", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"],
+            ["psl", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"],
+            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["treeify", [
+        ["npm:1.1.0", {
+          "packageLocation": "./.yarn/cache/treeify-npm-1.1.0-abf9292333-78db62f564.zip/node_modules/treeify/",
+          "packageDependencies": [
+            ["treeify", "npm:1.1.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ts-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7", {
+          "packageLocation": "./.yarn/$$virtual/ts-loader-virtual-4fd5d21677/0/cache/ts-loader-npm-8.0.7-dd473b9771-062143ef35.zip/node_modules/ts-loader/",
+          "packageDependencies": [
+            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
+            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
+            ["enhanced-resolve", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"],
+            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
+            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
+            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tsconfig-paths", [
+        ["npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz", {
+          "packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.9.0-39cafa29c9-5383ba626b.zip/node_modules/tsconfig-paths/",
+          "packageDependencies": [
+            ["tsconfig-paths", "npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"],
+            ["@types/json5", "npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"],
+            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"],
+            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
+            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tslib", [
+        ["npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz", {
+          "packageLocation": "./.yarn/cache/tslib-npm-1.13.0-630f8c4e72-5dc3bdaea3.zip/node_modules/tslib/",
+          "packageDependencies": [
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tsutils", [
+        ["virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/tsutils-virtual-47afeaf7ca/0/cache/tsutils-npm-3.17.1-e58260689c-bed8ff7998.zip/node_modules/tsutils/",
+          "packageDependencies": [
+            ["tsutils", "virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
+            ["typescript", null]
+          ],
+          "packagePeers": [
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }],
+        ["virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/tsutils-virtual-54d64bec1a/0/cache/tsutils-npm-3.17.1-e58260689c-bed8ff7998.zip/node_modules/tsutils/",
+          "packageDependencies": [
+            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
+            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "packagePeers": [
+            "typescript"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tunnel", [
+        ["npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz", {
+          "packageLocation": "./.yarn/cache/tunnel-npm-0.0.6-f1eb5523cc-78fbb1a55a.zip/node_modules/tunnel/",
+          "packageDependencies": [
+            ["tunnel", "npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tunnel-agent", [
+        ["npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz", {
+          "packageLocation": "./.yarn/cache/tunnel-agent-npm-0.6.0-4b1625a04a-03db75a4f9.zip/node_modules/tunnel-agent/",
+          "packageDependencies": [
+            ["tunnel-agent", "npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"],
+            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["tweetnacl", [
+        ["npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", {
+          "packageLocation": "./.yarn/cache/tweetnacl-npm-0.14.5-e7def9409b-e1c9d52e2e.zip/node_modules/tweetnacl/",
+          "packageDependencies": [
+            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["type-check", [
+        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-6102abc42b-6c2e1ce339.zip/node_modules/type-check/",
+          "packageDependencies": [
+            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"],
+            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["type-fest", [
+        ["npm:0.11.0", {
+          "packageLocation": "./.yarn/cache/type-fest-npm-0.11.0-81410fe889-02e5cadf13.zip/node_modules/type-fest/",
+          "packageDependencies": [
+            ["type-fest", "npm:0.11.0"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/type-fest-npm-0.3.1-96c1013afe-5089230611.zip/node_modules/type-fest/",
+          "packageDependencies": [
+            ["type-fest", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", {
+          "packageLocation": "./.yarn/cache/type-fest-npm-0.8.1-ad1c16447d-f8c4b4249f.zip/node_modules/type-fest/",
+          "packageDependencies": [
+            ["type-fest", "npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["type-is", [
+        ["npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz", {
+          "packageLocation": "./.yarn/cache/type-is-npm-1.6.18-feafb86b19-20a3514f1d.zip/node_modules/type-is/",
+          "packageDependencies": [
+            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"],
+            ["media-typer", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"],
+            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["typescript", [
+        ["patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2", {
+          "packageLocation": "./.yarn/cache/typescript-patch-f9a7df7dbb-d4be0bd2a2.zip/node_modules/typescript/",
+          "packageDependencies": [
+            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["typical", [
+        ["npm:5.2.0", {
+          "packageLocation": "./.yarn/cache/typical-npm-5.2.0-d4de46c932-f4af304978.zip/node_modules/typical/",
+          "packageDependencies": [
+            ["typical", "npm:5.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["uncontrollable", [
+        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz", {
+          "packageLocation": "./.yarn/$$virtual/uncontrollable-virtual-231cace537/0/cache/uncontrollable-npm-7.1.1-26d270508f-208d397c41.zip/node_modules/uncontrollable/",
+          "packageDependencies": [
+            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
+            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
+            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
+            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
+            ["react", "npm:17.0.1"],
+            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"]
+          ],
+          "packagePeers": [
+            "react"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["underscore", [
+        ["npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz", {
+          "packageLocation": "./.yarn/cache/underscore-npm-1.10.2-058b625a43-d49b87c03d.zip/node_modules/underscore/",
+          "packageDependencies": [
+            ["underscore", "npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unicode-canonical-property-names-ecmascript", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-307304fe5a-8b51950f8f.zip/node_modules/unicode-canonical-property-names-ecmascript/",
+          "packageDependencies": [
+            ["unicode-canonical-property-names-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unicode-match-property-ecmascript", [
+        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-f3808527ff-481203b4b8.zip/node_modules/unicode-match-property-ecmascript/",
+          "packageDependencies": [
+            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
+            ["unicode-canonical-property-names-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"],
+            ["unicode-property-aliases-ecmascript", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unicode-match-property-value-ecmascript", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-4d3d9c8666-892ca39335.zip/node_modules/unicode-match-property-value-ecmascript/",
+          "packageDependencies": [
+            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unicode-property-aliases-ecmascript", [
+        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-9e9de9dffa-2fa80e62a6.zip/node_modules/unicode-property-aliases-ecmascript/",
+          "packageDependencies": [
+            ["unicode-property-aliases-ecmascript", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["union", [
+        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz", {
+          "packageLocation": "./.yarn/cache/union-npm-0.5.0-d0338661c6-38d86c00ee.zip/node_modules/union/",
+          "packageDependencies": [
+            ["union", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"],
+            ["qs", "npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["union-value", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/union-value-npm-1.0.1-b67db5c3da-bd6ae611f0.zip/node_modules/union-value/",
+          "packageDependencies": [
+            ["union-value", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"],
+            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"],
+            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
+            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"],
+            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["uniq", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/uniq-npm-1.0.1-4e6b8e3131-a5603a5b31.zip/node_modules/uniq/",
+          "packageDependencies": [
+            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unique-filename", [
+        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/unique-filename-npm-1.1.1-a2067b5b2e-0e674206bd.zip/node_modules/unique-filename/",
+          "packageDependencies": [
+            ["unique-filename", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"],
+            ["unique-slug", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unique-slug", [
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/unique-slug-npm-2.0.2-2b77a75e02-3b17dabc13.zip/node_modules/unique-slug/",
+          "packageDependencies": [
+            ["unique-slug", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"],
+            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unique-string", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/unique-string-npm-1.0.0-f4dd1ca918-860f1ab835.zip/node_modules/unique-string/",
+          "packageDependencies": [
+            ["unique-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"],
+            ["crypto-random-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["universalify", [
+        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/universalify-npm-0.1.2-d623b39c64-420fc65473.zip/node_modules/universalify/",
+          "packageDependencies": [
+            ["universalify", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unpipe", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/unpipe-npm-1.0.0-d6f27bd84a-ba244e8bf6.zip/node_modules/unpipe/",
+          "packageDependencies": [
+            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["unset-value", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/unset-value-npm-1.0.0-9aee344620-b4c4853f27.zip/node_modules/unset-value/",
+          "packageDependencies": [
+            ["unset-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"],
+            ["has-value", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"],
+            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["upath", [
+        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", {
+          "packageLocation": "./.yarn/cache/upath-npm-1.2.0-934902c124-ecb08ff3e7.zip/node_modules/upath/",
+          "packageDependencies": [
+            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["uri-js", [
+        ["npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz", {
+          "packageLocation": "./.yarn/cache/uri-js-npm-4.2.2-62eea54551-651a49f55d.zip/node_modules/uri-js/",
+          "packageDependencies": [
+            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"],
+            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["urix", [
+        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/urix-npm-0.1.0-315615cfa2-6bdfca4e7f.zip/node_modules/urix/",
+          "packageDependencies": [
+            ["urix", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["url", [
+        ["npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz", {
+          "packageLocation": "./.yarn/cache/url-npm-0.11.0-8259cfe04b-537f785b16.zip/node_modules/url/",
+          "packageDependencies": [
+            ["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
+            ["punycode", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"],
+            ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["url-join", [
+        ["npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz", {
+          "packageLocation": "./.yarn/cache/url-join-npm-2.0.5-334c0209dd-142e04d81b.zip/node_modules/url-join/",
+          "packageDependencies": [
+            ["url-join", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["url-loader", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1", {
+          "packageLocation": "./.yarn/$$virtual/url-loader-virtual-d701e1899b/0/cache/url-loader-npm-4.1.1-568e22ebcb-871e8c8df2.zip/node_modules/url-loader/",
+          "packageDependencies": [
+            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
+            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
+            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
+            ["mime-types", "npm:2.1.27"],
+            ["schema-utils", "npm:3.0.0"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
+          ],
+          "packagePeers": [
+            "file-loader",
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["url-parse", [
+        ["npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz", {
+          "packageLocation": "./.yarn/cache/url-parse-npm-1.4.7-8b0f9a3d76-33c44a24b9.zip/node_modules/url-parse/",
+          "packageDependencies": [
+            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"],
+            ["querystringify", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"],
+            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["use", [
+        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/use-npm-3.1.1-4b1ecc7129-8dd3bdeeda.zip/node_modules/use/",
+          "packageDependencies": [
+            ["use", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["util-deprecate", [
+        ["npm:1.0.2", {
+          "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-73c2b1cf02.zip/node_modules/util-deprecate/",
+          "packageDependencies": [
+            ["util-deprecate", "npm:1.0.2"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-77cb133271-73c2b1cf02.zip/node_modules/util-deprecate/",
+          "packageDependencies": [
+            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["util.promisify", [
+        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/util.promisify-npm-1.0.0-5303b5a40d-0dffbe1af6.zip/node_modules/util.promisify/",
+          "packageDependencies": [
+            ["util.promisify", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"],
+            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
+            ["object.getownpropertydescriptors", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["utila", [
+        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/utila-npm-0.4.0-02d7c2417d-6799b0a566.zip/node_modules/utila/",
+          "packageDependencies": [
+            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["utils-merge", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/utils-merge-npm-1.0.1-c9b1088485-a457956ebc.zip/node_modules/utils-merge/",
+          "packageDependencies": [
+            ["utils-merge", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["uuid", [
+        ["npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", {
+          "packageLocation": "./.yarn/cache/uuid-npm-3.4.0-b87400074c-1ce3f37e21.zip/node_modules/uuid/",
+          "packageDependencies": [
+            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["v8-compile-cache", [
+        ["npm:2.1.1", {
+          "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.1.1-efff1ef0a4-1290922fe1.zip/node_modules/v8-compile-cache/",
+          "packageDependencies": [
+            ["v8-compile-cache", "npm:2.1.1"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz", {
+          "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.1.1-f1fb30f3ee-1290922fe1.zip/node_modules/v8-compile-cache/",
+          "packageDependencies": [
+            ["v8-compile-cache", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["validate-npm-package-license", [
+        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz", {
+          "packageLocation": "./.yarn/cache/validate-npm-package-license-npm-3.0.4-f515d7a10c-940899bd4e.zip/node_modules/validate-npm-package-license/",
+          "packageDependencies": [
+            ["validate-npm-package-license", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"],
+            ["spdx-correct", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"],
+            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["value-equal", [
+        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/value-equal-npm-1.0.1-ce12345615-ae8cc7bbb2.zip/node_modules/value-equal/",
+          "packageDependencies": [
+            ["value-equal", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["vary", [
+        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/vary-npm-1.1.2-6556205c46-591f059f72.zip/node_modules/vary/",
+          "packageDependencies": [
+            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["verror", [
+        ["npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", {
+          "packageLocation": "./.yarn/cache/verror-npm-1.10.0-5878666681-38ea80312c.zip/node_modules/verror/",
+          "packageDependencies": [
+            ["verror", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"],
+            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
+            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
+            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["void-elements", [
+        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz", {
+          "packageLocation": "./.yarn/cache/void-elements-npm-2.0.1-2286af2669-768d7e0853.zip/node_modules/void-elements/",
+          "packageDependencies": [
+            ["void-elements", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["warning", [
+        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/warning-npm-4.0.3-8eb9b5a3ea-20ef5d29ff.zip/node_modules/warning/",
+          "packageDependencies": [
+            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"],
+            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["watchpack", [
+        ["npm:2.0.0", {
+          "packageLocation": "./.yarn/cache/watchpack-npm-2.0.0-da98476fce-de23b15ad1.zip/node_modules/watchpack/",
+          "packageDependencies": [
+            ["watchpack", "npm:2.0.0"],
+            ["glob-to-regexp", "npm:0.4.1"],
+            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["wbuf", [
+        ["npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz", {
+          "packageLocation": "./.yarn/cache/wbuf-npm-1.7.3-819c8cd6c3-5916a49cb2.zip/node_modules/wbuf/",
+          "packageDependencies": [
+            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"],
+            ["minimalistic-assert", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0", {
+          "packageLocation": "./.yarn/$$virtual/webpack-virtual-da1918d5ae/0/cache/webpack-npm-5.2.0-128d7e3fc2-1f91563c25.zip/node_modules/webpack/",
+          "packageDependencies": [
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["@types/eslint-scope", "npm:3.7.0"],
+            ["@types/estree", "npm:0.0.45"],
+            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
+            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-edit", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"],
+            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
+            ["acorn", "npm:8.0.4"],
+            ["browserslist", "npm:4.14.5"],
+            ["chrome-trace-event", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"],
+            ["enhanced-resolve", "npm:5.3.1"],
+            ["eslint-scope", "npm:5.1.1"],
+            ["events", "npm:3.2.0"],
+            ["glob-to-regexp", "npm:0.4.1"],
+            ["graceful-fs", "npm:4.2.4"],
+            ["json-parse-better-errors", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"],
+            ["loader-runner", "npm:4.1.0"],
+            ["mime-types", "npm:2.1.27"],
+            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"],
+            ["pkg-dir", "npm:4.2.0"],
+            ["schema-utils", "npm:3.0.0"],
+            ["tapable", "npm:2.0.0"],
+            ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
+            ["watchpack", "npm:2.0.0"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["webpack-sources", "npm:2.1.0"]
+          ],
+          "packagePeers": [
+            "webpack-cli"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-chain", [
+        ["npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz", {
+          "packageLocation": "./.yarn/cache/webpack-chain-npm-6.5.1-77e5cfb864-56995e1899.zip/node_modules/webpack-chain/",
+          "packageDependencies": [
+            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
+            ["deepmerge", "npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"],
+            ["javascript-stringify", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-cli", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0", {
+          "packageLocation": "./.yarn/$$virtual/webpack-cli-virtual-c460e9f85a/0/cache/webpack-cli-npm-4.1.0-fcae536f7b-70402fe84a.zip/node_modules/webpack-cli/",
+          "packageDependencies": [
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["@webpack-cli/generate-loader", null],
+            ["@webpack-cli/generate-plugin", null],
+            ["@webpack-cli/info", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2"],
+            ["@webpack-cli/init", null],
+            ["@webpack-cli/migrate", null],
+            ["@webpack-cli/serve", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1"],
+            ["ansi-escapes", "npm:4.3.1"],
+            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
+            ["command-line-usage", "npm:6.1.0"],
+            ["commander", "npm:6.2.0"],
+            ["enquirer", "npm:2.3.6"],
+            ["execa", "npm:4.0.3"],
+            ["import-local", "npm:3.0.2"],
+            ["interpret", "npm:2.2.0"],
+            ["rechoir", "npm:0.7.0"],
+            ["v8-compile-cache", "npm:2.1.1"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-bundle-analyzer", null],
+            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
+            ["webpack-merge", "npm:4.2.2"]
+          ],
+          "packagePeers": [
+            "@webpack-cli/generate-loader",
+            "@webpack-cli/generate-plugin",
+            "@webpack-cli/init",
+            "@webpack-cli/migrate",
+            "webpack",
+            "webpack-bundle-analyzer",
+            "webpack-dev-server"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-dev-middleware", [
+        ["virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", {
+          "packageLocation": "./.yarn/$$virtual/webpack-dev-middleware-virtual-9add47b0ac/0/cache/webpack-dev-middleware-npm-3.7.2-a804badefa-88480e7d7f.zip/node_modules/webpack-dev-middleware/",
+          "packageDependencies": [
+            ["webpack-dev-middleware", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"],
+            ["memory-fs", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"],
+            ["mime", "npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"],
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
+            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-dev-server", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", {
+          "packageLocation": "./.yarn/$$virtual/webpack-dev-server-virtual-dd7bf9071c/0/cache/webpack-dev-server-npm-3.11.0-6158244322-1d34457456.zip/node_modules/webpack-dev-server/",
+          "packageDependencies": [
+            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
+            ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"],
+            ["bonjour", "npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"],
+            ["chokidar", "npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"],
+            ["compression", "npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"],
+            ["connect-history-api-fallback", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"],
+            ["debug", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
+            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
+            ["express", "npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"],
+            ["html-entities", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"],
+            ["http-proxy-middleware", "npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"],
+            ["import-local", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"],
+            ["internal-ip", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"],
+            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"],
+            ["is-absolute-url", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"],
+            ["killable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"],
+            ["loglevel", "npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"],
+            ["opn", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"],
+            ["p-retry", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"],
+            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
+            ["schema-utils", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"],
+            ["selfsigned", "npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"],
+            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"],
+            ["serve-index", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"],
+            ["sockjs", "npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"],
+            ["sockjs-client", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"],
+            ["spdy", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"],
+            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
+            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"],
+            ["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
+            ["webpack-dev-middleware", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"],
+            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"],
+            ["ws", "npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"],
+            ["yargs", "npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"]
+          ],
+          "packagePeers": [
+            "webpack",
+            "webpack-cli"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-log", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/webpack-log-npm-2.0.0-a052036a7a-250db04c41.zip/node_modules/webpack-log/",
+          "packageDependencies": [
+            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"],
+            ["ansi-colors", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"],
+            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-merge", [
+        ["npm:4.2.2", {
+          "packageLocation": "./.yarn/cache/webpack-merge-npm-4.2.2-f98139a8eb-038c6d8ba4.zip/node_modules/webpack-merge/",
+          "packageDependencies": [
+            ["webpack-merge", "npm:4.2.2"],
+            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["webpack-sources", [
+        ["npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", {
+          "packageLocation": "./.yarn/cache/webpack-sources-npm-1.4.3-9f2fb08694-2a753b36ad.zip/node_modules/webpack-sources/",
+          "packageDependencies": [
+            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"],
+            ["source-list-map", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.1.0", {
+          "packageLocation": "./.yarn/cache/webpack-sources-npm-2.1.0-569bf85c0f-3950d59661.zip/node_modules/webpack-sources/",
+          "packageDependencies": [
+            ["webpack-sources", "npm:2.1.0"],
+            ["source-list-map", "npm:2.0.1"],
+            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["websocket-driver", [
+        ["npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", {
+          "packageLocation": "./.yarn/cache/websocket-driver-npm-0.6.5-7a64ae7b58-1169a0eccc.zip/node_modules/websocket-driver/",
+          "packageDependencies": [
+            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"],
+            ["websocket-extensions", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["websocket-extensions", [
+        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz", {
+          "packageLocation": "./.yarn/cache/websocket-extensions-npm-0.1.4-4ad80c33db-bbafc0ffa1.zip/node_modules/websocket-extensions/",
+          "packageDependencies": [
+            ["websocket-extensions", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["which", [
+        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", {
+          "packageLocation": "./.yarn/cache/which-npm-1.3.1-ba7a168732-298d95f9c1.zip/node_modules/which/",
+          "packageDependencies": [
+            ["which", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"],
+            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }],
+        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/which-npm-2.0.2-06854d31f8-ea9b1db126.zip/node_modules/which/",
+          "packageDependencies": [
+            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"],
+            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["which-module", [
+        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/which-module-npm-2.0.0-db3972df77-3d2107ab18.zip/node_modules/which-module/",
+          "packageDependencies": [
+            ["which-module", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["wide-align", [
+        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz", {
+          "packageLocation": "./.yarn/cache/wide-align-npm-1.1.3-7300fca83c-4f850f84da.zip/node_modules/wide-align/",
+          "packageDependencies": [
+            ["wide-align", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"],
+            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["word-wrap", [
+        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz", {
+          "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-0e2f95df51-6526abd75d.zip/node_modules/word-wrap/",
+          "packageDependencies": [
+            ["word-wrap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["wordwrapjs", [
+        ["npm:4.0.0", {
+          "packageLocation": "./.yarn/cache/wordwrapjs-npm-4.0.0-35c37bc814-022dc1d1a3.zip/node_modules/wordwrapjs/",
+          "packageDependencies": [
+            ["wordwrapjs", "npm:4.0.0"],
+            ["reduce-flatten", "npm:2.0.0"],
+            ["typical", "npm:5.2.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-background-sync", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-background-sync-npm-5.1.4-7507648a4a-5e22713631.zip/node_modules/workbox-background-sync/",
+          "packageDependencies": [
+            ["workbox-background-sync", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-broadcast-update", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-broadcast-update-npm-5.1.4-96771b5403-580c0f56a7.zip/node_modules/workbox-broadcast-update/",
+          "packageDependencies": [
+            ["workbox-broadcast-update", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-build", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-build-npm-5.1.4-17c41a44ce-b20cb791a9.zip/node_modules/workbox-build/",
+          "packageDependencies": [
+            ["workbox-build", "npm:5.1.4"],
+            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
+            ["@babel/preset-env", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["@hapi/joi", "npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"],
+            ["@rollup/plugin-node-resolve", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"],
+            ["@rollup/plugin-replace", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"],
+            ["@surma/rollup-plugin-off-main-thread", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"],
+            ["common-tags", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"],
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
+            ["fs-extra", "npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"],
+            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
+            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
+            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"],
+            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
+            ["rollup-plugin-babel", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"],
+            ["rollup-plugin-terser", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1"],
+            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"],
+            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
+            ["stringify-object", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"],
+            ["strip-comments", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"],
+            ["tempy", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"],
+            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"],
+            ["workbox-background-sync", "npm:5.1.4"],
+            ["workbox-broadcast-update", "npm:5.1.4"],
+            ["workbox-cacheable-response", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"],
+            ["workbox-expiration", "npm:5.1.4"],
+            ["workbox-google-analytics", "npm:5.1.4"],
+            ["workbox-navigation-preload", "npm:5.1.4"],
+            ["workbox-precaching", "npm:5.1.4"],
+            ["workbox-range-requests", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"],
+            ["workbox-strategies", "npm:5.1.4"],
+            ["workbox-streams", "npm:5.1.4"],
+            ["workbox-sw", "npm:5.1.4"],
+            ["workbox-window", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-cacheable-response", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-cacheable-response-npm-5.1.4-89774929bd-1a7600120e.zip/node_modules/workbox-cacheable-response/",
+          "packageDependencies": [
+            ["workbox-cacheable-response", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-core", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-core-npm-5.1.4-a55e463fcd-eaa6021ef9.zip/node_modules/workbox-core/",
+          "packageDependencies": [
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-expiration", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-expiration-npm-5.1.4-a291f68bea-94bb79ca9e.zip/node_modules/workbox-expiration/",
+          "packageDependencies": [
+            ["workbox-expiration", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-google-analytics", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-google-analytics-npm-5.1.4-d1fb97c648-a533d05d07.zip/node_modules/workbox-google-analytics/",
+          "packageDependencies": [
+            ["workbox-google-analytics", "npm:5.1.4"],
+            ["workbox-background-sync", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"],
+            ["workbox-strategies", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-navigation-preload", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-navigation-preload-npm-5.1.4-313f8f1db0-1704ecaadb.zip/node_modules/workbox-navigation-preload/",
+          "packageDependencies": [
+            ["workbox-navigation-preload", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-precaching", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-precaching-npm-5.1.4-d35052cde8-a2add02126.zip/node_modules/workbox-precaching/",
+          "packageDependencies": [
+            ["workbox-precaching", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-range-requests", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-range-requests-npm-5.1.4-460454c038-3df8c87cd2.zip/node_modules/workbox-range-requests/",
+          "packageDependencies": [
+            ["workbox-range-requests", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-routing", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-routing-npm-5.1.4-a3a18707d8-46583ef2c4.zip/node_modules/workbox-routing/",
+          "packageDependencies": [
+            ["workbox-routing", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-strategies", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-strategies-npm-5.1.4-2d603fefe4-4db2d9c987.zip/node_modules/workbox-strategies/",
+          "packageDependencies": [
+            ["workbox-strategies", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-streams", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-streams-npm-5.1.4-3aabea1172-2f62067328.zip/node_modules/workbox-streams/",
+          "packageDependencies": [
+            ["workbox-streams", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"],
+            ["workbox-routing", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-sw", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-sw-npm-5.1.4-f4d0f45a9a-cff84bdecc.zip/node_modules/workbox-sw/",
+          "packageDependencies": [
+            ["workbox-sw", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-webpack-plugin", [
+        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4", {
+          "packageLocation": "./.yarn/$$virtual/workbox-webpack-plugin-virtual-ba223001f6/0/cache/workbox-webpack-plugin-npm-5.1.4-18ef490932-27f7f59865.zip/node_modules/workbox-webpack-plugin/",
+          "packageDependencies": [
+            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
+            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
+            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
+            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
+            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"],
+            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
+            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"],
+            ["workbox-build", "npm:5.1.4"]
+          ],
+          "packagePeers": [
+            "webpack"
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["workbox-window", [
+        ["npm:5.1.4", {
+          "packageLocation": "./.yarn/cache/workbox-window-npm-5.1.4-8aff2708db-1bbefb35ba.zip/node_modules/workbox-window/",
+          "packageDependencies": [
+            ["workbox-window", "npm:5.1.4"],
+            ["workbox-core", "npm:5.1.4"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["wrap-ansi", [
+        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz", {
+          "packageLocation": "./.yarn/cache/wrap-ansi-npm-5.1.0-6be3606251-9622c3aa27.zip/node_modules/wrap-ansi/",
+          "packageDependencies": [
+            ["wrap-ansi", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"],
+            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
+            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
+            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["wrappy", [
+        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", {
+          "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-cf0ddd0ba5-519fcda0fc.zip/node_modules/wrappy/",
+          "packageDependencies": [
+            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["write", [
+        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz", {
+          "packageLocation": "./.yarn/cache/write-npm-1.0.3-3c49e89d8a-e8f8fddefe.zip/node_modules/write/",
+          "packageDependencies": [
+            ["write", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"],
+            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["ws", [
+        ["npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", {
+          "packageLocation": "./.yarn/cache/ws-npm-6.2.1-f4612cd51f-35d32b09e2.zip/node_modules/ws/",
+          "packageDependencies": [
+            ["ws", "npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"],
+            ["async-limiter", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["xregexp", [
+        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz", {
+          "packageLocation": "./.yarn/cache/xregexp-npm-4.3.0-19c70fe731-2dcef4888e.zip/node_modules/xregexp/",
+          "packageDependencies": [
+            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"],
+            ["@babel/runtime-corejs3", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["y18n", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/y18n-npm-4.0.0-88f5897c04-5b7434c95d.zip/node_modules/y18n/",
+          "packageDependencies": [
+            ["y18n", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["yallist", [
+        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz", {
+          "packageLocation": "./.yarn/cache/yallist-npm-4.0.0-8d2665448f-a2960ef879.zip/node_modules/yallist/",
+          "packageDependencies": [
+            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["yaml", [
+        ["npm:1.10.0", {
+          "packageLocation": "./.yarn/cache/yaml-npm-1.10.0-3e2d763b45-d4cc9f9724.zip/node_modules/yaml/",
+          "packageDependencies": [
+            ["yaml", "npm:1.10.0"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["yargs", [
+        ["npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", {
+          "packageLocation": "./.yarn/cache/yargs-npm-13.3.2-41c1b39fb8-92c612cd14.zip/node_modules/yargs/",
+          "packageDependencies": [
+            ["yargs", "npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"],
+            ["cliui", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"],
+            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"],
+            ["get-caller-file", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"],
+            ["require-directory", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"],
+            ["require-main-filename", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"],
+            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"],
+            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
+            ["which-module", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"],
+            ["y18n", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"],
+            ["yargs-parser", "npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]],
+      ["yargs-parser", [
+        ["npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", {
+          "packageLocation": "./.yarn/cache/yargs-parser-npm-13.1.2-d942f466fd-82d3b7ab99.zip/node_modules/yargs-parser/",
+          "packageDependencies": [
+            ["yargs-parser", "npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"],
+            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"],
+            ["decamelize", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"]
+          ],
+          "linkType": "HARD",
+        }]
+      ]]
+    ]
+  }, {basePath: basePath || __dirname});
+  }
+
+(function webpackUniversalModuleDefinition(root, factory) {
+	if(typeof exports === 'object' && typeof module === 'object')
+		module.exports = factory();
+	else if(typeof define === 'function' && define.amd)
+		define([], factory);
+	else if(typeof exports === 'object')
+		exports["pnpHook"] = factory();
+	else
+		root["pnpHook"] = factory();
+})(global, function() {
+return /******/ (() => { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ 398:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+  "uY": () => /* binding */ FakeFS,
+  "fS": () => /* binding */ BasePortableFakeFS
+});
+
+// UNUSED EXPORTS: normalizeLineEndings
+
+// EXTERNAL MODULE: external "os"
+var external_os_ = __webpack_require__(87);
+
+// EXTERNAL MODULE: external "fs"
+var external_fs_ = __webpack_require__(747);
+var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_);
+
+// EXTERNAL MODULE: ../yarnpkg-fslib/sources/path.ts
+var path = __webpack_require__(9);
+
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/copyPromise.ts
+
+ // 1980-01-01, like Fedora
+
+const defaultTime = 315532800;
+async function copyPromise(destinationFs, destination, sourceFs, source, opts) {
+  const normalizedDestination = destinationFs.pathUtils.normalize(destination);
+  const normalizedSource = sourceFs.pathUtils.normalize(source);
+  const operations = [];
+  const lutimes = [];
+  await destinationFs.mkdirpPromise(destination);
+  await copyImpl(operations, lutimes, destinationFs, normalizedDestination, sourceFs, normalizedSource, opts);
+
+  for (const operation of operations) await operation();
+
+  const updateTime = typeof destinationFs.lutimesPromise === `function` ? destinationFs.lutimesPromise.bind(destinationFs) : destinationFs.utimesPromise.bind(destinationFs);
+
+  for (const [p, atime, mtime] of lutimes) {
+    await updateTime(p, atime, mtime);
+  }
+}
+
+async function copyImpl(operations, lutimes, destinationFs, destination, sourceFs, source, opts) {
+  const destinationStat = await maybeLStat(destinationFs, destination);
+  const sourceStat = await sourceFs.lstatPromise(source);
+  if (opts.stableTime) lutimes.push([destination, defaultTime, defaultTime]);else lutimes.push([destination, sourceStat.atime, sourceStat.mtime]);
+
+  switch (true) {
+    case sourceStat.isDirectory():
+      {
+        await copyFolder(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
+      }
+      break;
+
+    case sourceStat.isFile():
+      {
+        await copyFile(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
+      }
+      break;
+
+    case sourceStat.isSymbolicLink():
+      {
+        await copySymlink(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
+      }
+      break;
+
+    default:
+      {
+        throw new Error(`Unsupported file type (${sourceStat.mode})`);
+      }
+      break;
+  }
+
+  operations.push(async () => destinationFs.chmodPromise(destination, sourceStat.mode & 0o777));
+}
+
+async function maybeLStat(baseFs, p) {
+  try {
+    return await baseFs.lstatPromise(p);
+  } catch (e) {
+    return null;
+  }
+}
+
+async function copyFolder(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
+  if (destinationStat !== null && !destinationStat.isDirectory()) {
+    if (opts.overwrite) {
+      operations.push(async () => destinationFs.removePromise(destination));
+      destinationStat = null;
+    } else {
+      return;
+    }
+  }
+
+  if (destinationStat === null) operations.push(async () => destinationFs.mkdirPromise(destination, {
+    mode: sourceStat.mode
+  }));
+  const entries = await sourceFs.readdirPromise(source);
+
+  if (opts.stableSort) {
+    for (const entry of entries.sort()) {
+      await copyImpl(operations, lutimes, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts);
+    }
+  } else {
+    await Promise.all(entries.map(async entry => {
+      await copyImpl(operations, lutimes, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts);
+    }));
+  }
+}
+
+async function copyFile(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
+  if (destinationStat !== null) {
+    if (opts.overwrite) {
+      operations.push(async () => destinationFs.removePromise(destination));
+      destinationStat = null;
+    } else {
+      return;
+    }
+  }
+
+  if (destinationFs === sourceFs) {
+    operations.push(async () => destinationFs.copyFilePromise(source, destination, (external_fs_default()).constants.COPYFILE_FICLONE));
+  } else {
+    operations.push(async () => destinationFs.writeFilePromise(destination, await sourceFs.readFilePromise(source)));
+  }
+}
+
+async function copySymlink(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
+  if (destinationStat !== null) {
+    if (opts.overwrite) {
+      operations.push(async () => destinationFs.removePromise(destination));
+      destinationStat = null;
+    } else {
+      return;
+    }
+  }
+
+  const target = await sourceFs.readlinkPromise(source);
+  operations.push(async () => destinationFs.symlinkPromise((0,path/* convertPath */.CI)(destinationFs.pathUtils, target), destination));
+}
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/FakeFS.ts
+
+
+
+class FakeFS {
+  constructor(pathUtils) {
+    this.pathUtils = pathUtils;
+  }
+
+  async removePromise(p) {
+    let stat;
+
+    try {
+      stat = await this.lstatPromise(p);
+    } catch (error) {
+      if (error.code === `ENOENT`) {
+        return;
+      } else {
+        throw error;
+      }
+    }
+
+    if (stat.isDirectory()) {
+      for (const entry of await this.readdirPromise(p)) await this.removePromise(this.pathUtils.resolve(p, entry)); // 5 gives 1s worth of retries at worst
+
+
+      for (let t = 0; t < 5; ++t) {
+        try {
+          await this.rmdirPromise(p);
+          break;
+        } catch (error) {
+          if (error.code === `EBUSY` || error.code === `ENOTEMPTY`) {
+            await new Promise(resolve => setTimeout(resolve, t * 100));
+            continue;
+          } else {
+            throw error;
+          }
+        }
+      }
+    } else {
+      await this.unlinkPromise(p);
+    }
+  }
+
+  removeSync(p) {
+    let stat;
+
+    try {
+      stat = this.lstatSync(p);
+    } catch (error) {
+      if (error.code === `ENOENT`) {
+        return;
+      } else {
+        throw error;
+      }
+    }
+
+    if (stat.isDirectory()) {
+      for (const entry of this.readdirSync(p)) this.removeSync(this.pathUtils.resolve(p, entry));
+
+      this.rmdirSync(p);
+    } else {
+      this.unlinkSync(p);
+    }
+  }
+
+  async mkdirpPromise(p, {
+    chmod,
+    utimes
+  } = {}) {
+    p = this.resolve(p);
+    if (p === this.pathUtils.dirname(p)) return;
+    const parts = p.split(this.pathUtils.sep);
+
+    for (let u = 2; u <= parts.length; ++u) {
+      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
+
+      if (!this.existsSync(subPath)) {
+        try {
+          await this.mkdirPromise(subPath);
+        } catch (error) {
+          if (error.code === `EEXIST`) {
+            continue;
+          } else {
+            throw error;
+          }
+        }
+
+        if (chmod != null) await this.chmodPromise(subPath, chmod);
+
+        if (utimes != null) {
+          await this.utimesPromise(subPath, utimes[0], utimes[1]);
+        } else {
+          const parentStat = await this.statPromise(this.pathUtils.dirname(subPath));
+          await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime);
+        }
+      }
+    }
+  }
+
+  mkdirpSync(p, {
+    chmod,
+    utimes
+  } = {}) {
+    p = this.resolve(p);
+    if (p === this.pathUtils.dirname(p)) return;
+    const parts = p.split(this.pathUtils.sep);
+
+    for (let u = 2; u <= parts.length; ++u) {
+      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
+
+      if (!this.existsSync(subPath)) {
+        try {
+          this.mkdirSync(subPath);
+        } catch (error) {
+          if (error.code === `EEXIST`) {
+            continue;
+          } else {
+            throw error;
+          }
+        }
+
+        if (chmod != null) this.chmodSync(subPath, chmod);
+
+        if (utimes != null) {
+          this.utimesSync(subPath, utimes[0], utimes[1]);
+        } else {
+          const parentStat = this.statSync(this.pathUtils.dirname(subPath));
+          this.utimesSync(subPath, parentStat.atime, parentStat.mtime);
+        }
+      }
+    }
+  }
+
+  async copyPromise(destination, source, {
+    baseFs = this,
+    overwrite = true,
+    stableSort = false,
+    stableTime = false
+  } = {}) {
+    return await copyPromise(this, destination, baseFs, source, {
+      overwrite,
+      stableSort,
+      stableTime
+    });
+  }
+
+  copySync(destination, source, {
+    baseFs = this,
+    overwrite = true
+  } = {}) {
+    const stat = baseFs.lstatSync(source);
+    const exists = this.existsSync(destination);
+
+    if (stat.isDirectory()) {
+      this.mkdirpSync(destination);
+      const directoryListing = baseFs.readdirSync(source);
+
+      for (const entry of directoryListing) {
+        this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), {
+          baseFs,
+          overwrite
+        });
+      }
+    } else if (stat.isFile()) {
+      if (!exists || overwrite) {
+        if (exists) this.removeSync(destination);
+        const content = baseFs.readFileSync(source);
+        this.writeFileSync(destination, content);
+      }
+    } else if (stat.isSymbolicLink()) {
+      if (!exists || overwrite) {
+        if (exists) this.removeSync(destination);
+        const target = baseFs.readlinkSync(source);
+        this.symlinkSync((0,path/* convertPath */.CI)(this.pathUtils, target), destination);
+      }
+    } else {
+      throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`);
+    }
+
+    const mode = stat.mode & 0o777;
+    this.chmodSync(destination, mode);
+  }
+
+  async changeFilePromise(p, content, {
+    automaticNewlines
+  } = {}) {
+    let current = ``;
+
+    try {
+      current = await this.readFilePromise(p, `utf8`);
+    } catch (error) {// ignore errors, no big deal
+    }
+
+    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
+    if (current === normalizedContent) return;
+    await this.writeFilePromise(p, normalizedContent);
+  }
+
+  changeFileSync(p, content, {
+    automaticNewlines = false
+  } = {}) {
+    let current = ``;
+
+    try {
+      current = this.readFileSync(p, `utf8`);
+    } catch (error) {// ignore errors, no big deal
+    }
+
+    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
+    if (current === normalizedContent) return;
+    this.writeFileSync(p, normalizedContent);
+  }
+
+  async movePromise(fromP, toP) {
+    try {
+      await this.renamePromise(fromP, toP);
+    } catch (error) {
+      if (error.code === `EXDEV`) {
+        await this.copyPromise(toP, fromP);
+        await this.removePromise(fromP);
+      } else {
+        throw error;
+      }
+    }
+  }
+
+  moveSync(fromP, toP) {
+    try {
+      this.renameSync(fromP, toP);
+    } catch (error) {
+      if (error.code === `EXDEV`) {
+        this.copySync(toP, fromP);
+        this.removeSync(fromP);
+      } else {
+        throw error;
+      }
+    }
+  }
+
+  async lockPromise(affectedPath, callback) {
+    const lockPath = `${affectedPath}.flock`;
+    const interval = 1000 / 60;
+    const startTime = Date.now();
+    let fd = null; // Even when we detect that a lock file exists, we still look inside to see
+    // whether the pid that created it is still alive. It's not foolproof
+    // (there are false positive), but there are no false negative and that's
+    // all that matters in 99% of the cases.
+
+    const isAlive = async () => {
+      let pid;
+
+      try {
+        [pid] = await this.readJsonPromise(lockPath);
+      } catch (error) {
+        // If we can't read the file repeatedly, we assume the process was
+        // aborted before even writing finishing writing the payload.
+        return Date.now() - startTime < 500;
+      }
+
+      try {
+        // "As a special case, a signal of 0 can be used to test for the
+        // existence of a process" - so we check whether it's alive.
+        process.kill(pid, 0);
+        return true;
+      } catch (error) {
+        return false;
+      }
+    };
+
+    while (fd === null) {
+      try {
+        fd = await this.openPromise(lockPath, `wx`);
+      } catch (error) {
+        if (error.code === `EEXIST`) {
+          if (!(await isAlive())) {
+            try {
+              await this.unlinkPromise(lockPath);
+              continue;
+            } catch (error) {// No big deal if we can't remove it. Just fallback to wait for
+              // it to be eventually released by its owner.
+            }
+          }
+
+          if (Date.now() - startTime < 60 * 1000) {
+            await new Promise(resolve => setTimeout(resolve, interval));
+          } else {
+            throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`);
+          }
+        } else {
+          throw error;
+        }
+      }
+    }
+
+    await this.writePromise(fd, JSON.stringify([process.pid]));
+
+    try {
+      return await callback();
+    } finally {
+      try {
+        await this.unlinkPromise(lockPath);
+        await this.closePromise(fd);
+      } catch (error) {// noop
+      }
+    }
+  }
+
+  async readJsonPromise(p) {
+    const content = await this.readFilePromise(p, `utf8`);
+
+    try {
+      return JSON.parse(content);
+    } catch (error) {
+      error.message += ` (in ${p})`;
+      throw error;
+    }
+  }
+
+  async readJsonSync(p) {
+    const content = this.readFileSync(p, `utf8`);
+
+    try {
+      return JSON.parse(content);
+    } catch (error) {
+      error.message += ` (in ${p})`;
+      throw error;
+    }
+  }
+
+  async writeJsonPromise(p, data) {
+    return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)}\n`);
+  }
+
+  writeJsonSync(p, data) {
+    return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}\n`);
+  }
+
+  async preserveTimePromise(p, cb) {
+    const stat = await this.lstatPromise(p);
+    const result = await cb();
+    if (typeof result !== `undefined`) p = result;
+
+    if (this.lutimesPromise) {
+      await this.lutimesPromise(p, stat.atime, stat.mtime);
+    } else if (!stat.isSymbolicLink()) {
+      await this.utimesPromise(p, stat.atime, stat.mtime);
+    }
+  }
+
+  async preserveTimeSync(p, cb) {
+    const stat = this.lstatSync(p);
+    const result = cb();
+    if (typeof result !== `undefined`) p = result;
+
+    if (this.lutimesSync) {
+      this.lutimesSync(p, stat.atime, stat.mtime);
+    } else if (!stat.isSymbolicLink()) {
+      this.utimesSync(p, stat.atime, stat.mtime);
+    }
+  }
+
+}
+FakeFS.DEFAULT_TIME = 315532800;
+class BasePortableFakeFS extends FakeFS {
+  constructor() {
+    super(path/* ppath */.y1);
+  }
+
+}
+
+function getEndOfLine(content) {
+  const matches = content.match(/\r?\n/g);
+  if (matches === null) return external_os_.EOL;
+  const crlf = matches.filter(nl => nl === `\r\n`).length;
+  const lf = matches.length - crlf;
+  return crlf > lf ? `\r\n` : `\n`;
+}
+
+function normalizeLineEndings(originalContent, newContent) {
+  return newContent.replace(/\r?\n/g, getEndOfLine(originalContent));
+}
+
+/***/ }),
+
+/***/ 9:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */   "LZ": () => /* binding */ PortablePath,
+/* harmony export */   "cS": () => /* binding */ npath,
+/* harmony export */   "y1": () => /* binding */ ppath,
+/* harmony export */   "CI": () => /* binding */ convertPath
+/* harmony export */ });
+/* unused harmony exports Filename, toFilename */
+/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(622);
+/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
+
+var PathType;
+
+(function (PathType) {
+  PathType[PathType["File"] = 0] = "File";
+  PathType[PathType["Portable"] = 1] = "Portable";
+  PathType[PathType["Native"] = 2] = "Native";
+})(PathType || (PathType = {}));
+
+const PortablePath = {
+  root: `/`,
+  dot: `.`
+};
+const Filename = {
+  nodeModules: `node_modules`,
+  manifest: `package.json`,
+  lockfile: `yarn.lock`,
+  rc: `.yarnrc.yml`
+};
+const npath = Object.create((path__WEBPACK_IMPORTED_MODULE_0___default()));
+const ppath = Object.create((path__WEBPACK_IMPORTED_MODULE_0___default().posix));
+
+npath.cwd = () => process.cwd();
+
+ppath.cwd = () => toPortablePath(process.cwd());
+
+ppath.resolve = (...segments) => path__WEBPACK_IMPORTED_MODULE_0___default().posix.resolve(ppath.cwd(), ...segments);
+
+const contains = function (pathUtils, from, to) {
+  from = pathUtils.normalize(from);
+  to = pathUtils.normalize(to);
+  if (from === to) return `.`;
+  if (!from.endsWith(pathUtils.sep)) from = from + pathUtils.sep;
+
+  if (to.startsWith(from)) {
+    return to.slice(from.length);
+  } else {
+    return null;
+  }
+};
+
+npath.fromPortablePath = fromPortablePath;
+npath.toPortablePath = toPortablePath;
+
+npath.contains = (from, to) => contains(npath, from, to);
+
+ppath.contains = (from, to) => contains(ppath, from, to);
+
+const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
+const UNC_WINDOWS_PATH_REGEXP = /^\\\\(\.\\)?(.*)$/;
+const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
+const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; // Path should look like "/N:/berry/scripts/plugin-pack.js"
+// And transform to "N:\berry\scripts\plugin-pack.js"
+
+function fromPortablePath(p) {
+  if (process.platform !== `win32`) return p;
+  if (p.match(PORTABLE_PATH_REGEXP)) p = p.replace(PORTABLE_PATH_REGEXP, `$1`);else if (p.match(UNC_PORTABLE_PATH_REGEXP)) p = p.replace(UNC_PORTABLE_PATH_REGEXP, (match, p1, p2) => `\\\\${p1 ? `.\\` : ``}${p2}`);else return p;
+  return p.replace(/\//g, `\\`);
+} // Path should look like "N:/berry/scripts/plugin-pack.js"
+// And transform to "/N:/berry/scripts/plugin-pack.js"
+
+
+function toPortablePath(p) {
+  if (process.platform !== `win32`) return p;
+  if (p.match(WINDOWS_PATH_REGEXP)) p = p.replace(WINDOWS_PATH_REGEXP, `/$1`);else if (p.match(UNC_WINDOWS_PATH_REGEXP)) p = p.replace(UNC_WINDOWS_PATH_REGEXP, (match, p1, p2) => `/unc/${p1 ? `.dot/` : ``}${p2}`);
+  return p.replace(/\\/g, `/`);
+}
+
+function convertPath(targetPathUtils, sourcePath) {
+  return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath);
+}
+function toFilename(filename) {
+  if (npath.parse(filename).dir !== `` || ppath.parse(filename).dir !== ``) throw new Error(`Invalid filename: "${filename}"`);
+  return filename;
+}
+
+/***/ }),
+
+/***/ 936:
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, {
+  "default": () => /* default */ _entryPoint
+});
+
+// EXTERNAL MODULE: external "fs"
+var external_fs_ = __webpack_require__(747);
+var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_);
+
+// EXTERNAL MODULE: ../yarnpkg-fslib/sources/FakeFS.ts + 1 modules
+var FakeFS = __webpack_require__(398);
+
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/errors.ts
+function makeError(code, message) {
+  return Object.assign(new Error(`${code}: ${message}`), {
+    code
+  });
+}
+
+function EBUSY(message) {
+  return makeError(`EBUSY`, message);
+}
+function ENOSYS(message, reason) {
+  return makeError(`ENOSYS`, `${message}, ${reason}`);
+}
+function EINVAL(reason) {
+  return makeError(`EINVAL`, `invalid argument, ${reason}`);
+}
+function EBADF(reason) {
+  return makeError(`EBADF`, `bad file descriptor, ${reason}`);
+}
+function ENOENT(reason) {
+  return makeError(`ENOENT`, `no such file or directory, ${reason}`);
+}
+function ENOTDIR(reason) {
+  return makeError(`ENOTDIR`, `not a directory, ${reason}`);
+}
+function EISDIR(reason) {
+  return makeError(`EISDIR`, `illegal operation on a directory, ${reason}`);
+}
+function EEXIST(reason) {
+  return makeError(`EEXIST`, `file already exists, ${reason}`);
+}
+function EROFS(reason) {
+  return makeError(`EROFS`, `read-only filesystem, ${reason}`);
+}
+// EXTERNAL MODULE: ../yarnpkg-fslib/sources/path.ts
+var sources_path = __webpack_require__(9);
+
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/NodeFS.ts
+
+
+
+
+class NodeFS extends FakeFS/* BasePortableFakeFS */.fS {
+  constructor(realFs = (external_fs_default())) {
+    super();
+    this.realFs = realFs; // @ts-ignore
+
+    if (typeof this.realFs.lutimes !== `undefined`) {
+      this.lutimesPromise = this.lutimesPromiseImpl;
+      this.lutimesSync = this.lutimesSyncImpl;
+    }
+  }
+
+  getExtractHint() {
+    return false;
+  }
+
+  getRealPath() {
+    return sources_path/* PortablePath.root */.LZ.root;
+  }
+
+  resolve(p) {
+    return sources_path/* ppath.resolve */.y1.resolve(p);
+  }
+
+  async openPromise(p, flags, mode) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.open(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject));
+    });
+  }
+
+  openSync(p, flags, mode) {
+    return this.realFs.openSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), flags, mode);
+  }
+
+  async readPromise(fd, buffer, offset = 0, length = 0, position = -1) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => {
+        if (error) {
+          reject(error);
+        } else {
+          resolve(bytesRead);
+        }
+      });
+    });
+  }
+
+  readSync(fd, buffer, offset, length, position) {
+    return this.realFs.readSync(fd, buffer, offset, length, position);
+  }
+
+  async writePromise(fd, buffer, offset, length, position) {
+    return await new Promise((resolve, reject) => {
+      if (typeof buffer === `string`) {
+        return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject));
+      } else {
+        return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject));
+      }
+    });
+  }
+
+  writeSync(fd, buffer, offset, length, position) {
+    if (typeof buffer === `string`) {
+      return this.realFs.writeSync(fd, buffer, offset);
+    } else {
+      return this.realFs.writeSync(fd, buffer, offset, length, position);
+    }
+  }
+
+  async closePromise(fd) {
+    await new Promise((resolve, reject) => {
+      this.realFs.close(fd, this.makeCallback(resolve, reject));
+    });
+  }
+
+  closeSync(fd) {
+    this.realFs.closeSync(fd);
+  }
+
+  createReadStream(p, opts) {
+    const realPath = p !== null ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+    return this.realFs.createReadStream(realPath, opts);
+  }
+
+  createWriteStream(p, opts) {
+    const realPath = p !== null ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+    return this.realFs.createWriteStream(realPath, opts);
+  }
+
+  async realpathPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.realpath(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {}, this.makeCallback(resolve, reject));
+    }).then(path => {
+      return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
+    });
+  }
+
+  realpathSync(p) {
+    return sources_path/* npath.toPortablePath */.cS.toPortablePath(this.realFs.realpathSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {}));
+  }
+
+  async existsPromise(p) {
+    return await new Promise(resolve => {
+      this.realFs.exists(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), resolve);
+    });
+  }
+
+  accessSync(p, mode) {
+    return this.realFs.accessSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mode);
+  }
+
+  async accessPromise(p, mode) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.access(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mode, this.makeCallback(resolve, reject));
+    });
+  }
+
+  existsSync(p) {
+    return this.realFs.existsSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+  }
+
+  async statPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.stat(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
+    });
+  }
+
+  statSync(p) {
+    return this.realFs.statSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+  }
+
+  async lstatPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.lstat(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
+    });
+  }
+
+  lstatSync(p) {
+    return this.realFs.lstatSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+  }
+
+  async chmodPromise(p, mask) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.chmod(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mask, this.makeCallback(resolve, reject));
+    });
+  }
+
+  chmodSync(p, mask) {
+    return this.realFs.chmodSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mask);
+  }
+
+  async renamePromise(oldP, newP) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.rename(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(oldP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(newP), this.makeCallback(resolve, reject));
+    });
+  }
+
+  renameSync(oldP, newP) {
+    return this.realFs.renameSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(oldP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(newP));
+  }
+
+  async copyFilePromise(sourceP, destP, flags = 0) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.copyFile(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(sourceP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(destP), flags, this.makeCallback(resolve, reject));
+    });
+  }
+
+  copyFileSync(sourceP, destP, flags = 0) {
+    return this.realFs.copyFileSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(sourceP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(destP), flags);
+  }
+
+  async appendFilePromise(p, content, opts) {
+    return await new Promise((resolve, reject) => {
+      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+
+      if (opts) {
+        this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
+      } else {
+        this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject));
+      }
+    });
+  }
+
+  appendFileSync(p, content, opts) {
+    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+
+    if (opts) {
+      this.realFs.appendFileSync(fsNativePath, content, opts);
+    } else {
+      this.realFs.appendFileSync(fsNativePath, content);
+    }
+  }
+
+  async writeFilePromise(p, content, opts) {
+    return await new Promise((resolve, reject) => {
+      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+
+      if (opts) {
+        this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
+      } else {
+        this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject));
+      }
+    });
+  }
+
+  writeFileSync(p, content, opts) {
+    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+
+    if (opts) {
+      this.realFs.writeFileSync(fsNativePath, content, opts);
+    } else {
+      this.realFs.writeFileSync(fsNativePath, content);
+    }
+  }
+
+  async unlinkPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.unlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
+    });
+  }
+
+  unlinkSync(p) {
+    return this.realFs.unlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+  }
+
+  async utimesPromise(p, atime, mtime) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.utimes(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
+    });
+  }
+
+  utimesSync(p, atime, mtime) {
+    this.realFs.utimesSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime);
+  }
+
+  async lutimesPromiseImpl(p, atime, mtime) {
+    // @ts-ignore: Not yet in DefinitelyTyped
+    const lutimes = this.realFs.lutimes;
+    if (typeof lutimes === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`);
+    return await new Promise((resolve, reject) => {
+      lutimes.call(this.realFs, sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
+    });
+  }
+
+  lutimesSyncImpl(p, atime, mtime) {
+    // @ts-ignore: Not yet in DefinitelyTyped
+    const lutimesSync = this.realFs.lutimesSync;
+    if (typeof lutimesSync === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`);
+    lutimesSync.call(this.realFs, sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime);
+  }
+
+  async mkdirPromise(p, opts) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.mkdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
+    });
+  }
+
+  mkdirSync(p, opts) {
+    return this.realFs.mkdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), opts);
+  }
+
+  async rmdirPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.rmdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
+    });
+  }
+
+  rmdirSync(p) {
+    return this.realFs.rmdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+  }
+
+  async symlinkPromise(target, p, type) {
+    const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`);
+    return await new Promise((resolve, reject) => {
+      this.realFs.symlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(target.replace(/\/+$/, ``)), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), symlinkType, this.makeCallback(resolve, reject));
+    });
+  }
+
+  symlinkSync(target, p, type) {
+    const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`);
+    return this.realFs.symlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(target.replace(/\/+$/, ``)), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), symlinkType);
+  }
+
+  async readFilePromise(p, encoding) {
+    return await new Promise((resolve, reject) => {
+      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+      this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject));
+    });
+  }
+
+  readFileSync(p, encoding) {
+    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
+    return this.realFs.readFileSync(fsNativePath, encoding);
+  }
+
+  async readdirPromise(p, {
+    withFileTypes
+  } = {}) {
+    return await new Promise((resolve, reject) => {
+      if (withFileTypes) {
+        this.realFs.readdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {
+          withFileTypes: true
+        }, this.makeCallback(resolve, reject));
+      } else {
+        this.realFs.readdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(value => resolve(value), reject));
+      }
+    });
+  }
+
+  readdirSync(p, {
+    withFileTypes
+  } = {}) {
+    if (withFileTypes) {
+      return this.realFs.readdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {
+        withFileTypes: true
+      });
+    } else {
+      return this.realFs.readdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
+    }
+  }
+
+  async readlinkPromise(p) {
+    return await new Promise((resolve, reject) => {
+      this.realFs.readlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
+    }).then(path => {
+      return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
+    });
+  }
+
+  readlinkSync(p) {
+    return sources_path/* npath.toPortablePath */.cS.toPortablePath(this.realFs.readlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p)));
+  }
+
+  watch(p, a, b) {
+    return this.realFs.watch(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), // @ts-ignore
+    a, b);
+  }
+
+  makeCallback(resolve, reject) {
+    return (err, result) => {
+      if (err) {
+        reject(err);
+      } else {
+        resolve(result);
+      }
+    };
+  }
+
+}
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ProxiedFS.ts
+
+class ProxiedFS extends FakeFS/* FakeFS */.uY {
+  getExtractHint(hints) {
+    return this.baseFs.getExtractHint(hints);
+  }
+
+  resolve(path) {
+    return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path)));
+  }
+
+  getRealPath() {
+    return this.mapFromBase(this.baseFs.getRealPath());
+  }
+
+  openPromise(p, flags, mode) {
+    return this.baseFs.openPromise(this.mapToBase(p), flags, mode);
+  }
+
+  openSync(p, flags, mode) {
+    return this.baseFs.openSync(this.mapToBase(p), flags, mode);
+  }
+
+  async readPromise(fd, buffer, offset, length, position) {
+    return await this.baseFs.readPromise(fd, buffer, offset, length, position);
+  }
+
+  readSync(fd, buffer, offset, length, position) {
+    return this.baseFs.readSync(fd, buffer, offset, length, position);
+  }
+
+  async writePromise(fd, buffer, offset, length, position) {
+    if (typeof buffer === `string`) {
+      return await this.baseFs.writePromise(fd, buffer, offset);
+    } else {
+      return await this.baseFs.writePromise(fd, buffer, offset, length, position);
+    }
+  }
+
+  writeSync(fd, buffer, offset, length, position) {
+    if (typeof buffer === `string`) {
+      return this.baseFs.writeSync(fd, buffer, offset);
+    } else {
+      return this.baseFs.writeSync(fd, buffer, offset, length, position);
+    }
+  }
+
+  closePromise(fd) {
+    return this.baseFs.closePromise(fd);
+  }
+
+  closeSync(fd) {
+    this.baseFs.closeSync(fd);
+  }
+
+  createReadStream(p, opts) {
+    return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts);
+  }
+
+  createWriteStream(p, opts) {
+    return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts);
+  }
+
+  async realpathPromise(p) {
+    return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p)));
+  }
+
+  realpathSync(p) {
+    return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p)));
+  }
+
+  existsPromise(p) {
+    return this.baseFs.existsPromise(this.mapToBase(p));
+  }
+
+  existsSync(p) {
+    return this.baseFs.existsSync(this.mapToBase(p));
+  }
+
+  accessSync(p, mode) {
+    return this.baseFs.accessSync(this.mapToBase(p), mode);
+  }
+
+  accessPromise(p, mode) {
+    return this.baseFs.accessPromise(this.mapToBase(p), mode);
+  }
+
+  statPromise(p) {
+    return this.baseFs.statPromise(this.mapToBase(p));
+  }
+
+  statSync(p) {
+    return this.baseFs.statSync(this.mapToBase(p));
+  }
+
+  lstatPromise(p) {
+    return this.baseFs.lstatPromise(this.mapToBase(p));
+  }
+
+  lstatSync(p) {
+    return this.baseFs.lstatSync(this.mapToBase(p));
+  }
+
+  chmodPromise(p, mask) {
+    return this.baseFs.chmodPromise(this.mapToBase(p), mask);
+  }
+
+  chmodSync(p, mask) {
+    return this.baseFs.chmodSync(this.mapToBase(p), mask);
+  }
+
+  renamePromise(oldP, newP) {
+    return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP));
+  }
+
+  renameSync(oldP, newP) {
+    return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP));
+  }
+
+  copyFilePromise(sourceP, destP, flags = 0) {
+    return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags);
+  }
+
+  copyFileSync(sourceP, destP, flags = 0) {
+    return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags);
+  }
+
+  appendFilePromise(p, content, opts) {
+    return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts);
+  }
+
+  appendFileSync(p, content, opts) {
+    return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts);
+  }
+
+  writeFilePromise(p, content, opts) {
+    return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts);
+  }
+
+  writeFileSync(p, content, opts) {
+    return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts);
+  }
+
+  unlinkPromise(p) {
+    return this.baseFs.unlinkPromise(this.mapToBase(p));
+  }
+
+  unlinkSync(p) {
+    return this.baseFs.unlinkSync(this.mapToBase(p));
+  }
+
+  utimesPromise(p, atime, mtime) {
+    return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime);
+  }
+
+  utimesSync(p, atime, mtime) {
+    return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime);
+  }
+
+  mkdirPromise(p, opts) {
+    return this.baseFs.mkdirPromise(this.mapToBase(p), opts);
+  }
+
+  mkdirSync(p, opts) {
+    return this.baseFs.mkdirSync(this.mapToBase(p), opts);
+  }
+
+  rmdirPromise(p) {
+    return this.baseFs.rmdirPromise(this.mapToBase(p));
+  }
+
+  rmdirSync(p) {
+    return this.baseFs.rmdirSync(this.mapToBase(p));
+  }
+
+  symlinkPromise(target, p, type) {
+    return this.baseFs.symlinkPromise(this.mapToBase(target), this.mapToBase(p), type);
+  }
+
+  symlinkSync(target, p, type) {
+    return this.baseFs.symlinkSync(this.mapToBase(target), this.mapToBase(p), type);
+  }
+
+  readFilePromise(p, encoding) {
+    // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
+    if (encoding === `utf8`) {
+      return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding);
+    } else {
+      return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding);
+    }
+  }
+
+  readFileSync(p, encoding) {
+    // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
+    if (encoding === `utf8`) {
+      return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
+    } else {
+      return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
+    }
+  }
+
+  async readdirPromise(p, {
+    withFileTypes
+  } = {}) {
+    return this.baseFs.readdirPromise(this.mapToBase(p), {
+      withFileTypes: withFileTypes
+    });
+  }
+
+  readdirSync(p, {
+    withFileTypes
+  } = {}) {
+    return this.baseFs.readdirSync(this.mapToBase(p), {
+      withFileTypes: withFileTypes
+    });
+  }
+
+  async readlinkPromise(p) {
+    return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p)));
+  }
+
+  readlinkSync(p) {
+    return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p)));
+  }
+
+  watch(p, a, b) {
+    return this.baseFs.watch(this.mapToBase(p), // @ts-ignore
+    a, b);
+  }
+
+  fsMapToBase(p) {
+    if (typeof p === `number`) {
+      return p;
+    } else {
+      return this.mapToBase(p);
+    }
+  }
+
+}
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/VirtualFS.ts
+
+
+
+const NUMBER_REGEXP = /^[0-9]+$/; // $0: full path
+// $1: virtual folder
+// $2: virtual segment
+// $3: hash
+// $4: depth
+// $5: subpath
+
+const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/;
+const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/;
+class VirtualFS extends ProxiedFS {
+  constructor({
+    baseFs = new NodeFS()
+  } = {}) {
+    super(sources_path/* ppath */.y1);
+    this.baseFs = baseFs;
+  }
+
+  static makeVirtualPath(base, component, to) {
+    if (sources_path/* ppath.basename */.y1.basename(base) !== `$$virtual`) throw new Error(`Assertion failed: Virtual folders must be named "$$virtual"`);
+    if (!sources_path/* ppath.basename */.y1.basename(component).match(VALID_COMPONENT)) throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); // Obtains the relative distance between the virtual path and its actual target
+
+    const target = sources_path/* ppath.relative */.y1.relative(sources_path/* ppath.dirname */.y1.dirname(base), to);
+    const segments = target.split(`/`); // Counts how many levels we need to go back to start applying the rest of the path
+
+    let depth = 0;
+
+    while (depth < segments.length && segments[depth] === `..`) depth += 1;
+
+    const finalSegments = segments.slice(depth);
+    const fullVirtualPath = sources_path/* ppath.join */.y1.join(base, component, String(depth), ...finalSegments);
+    return fullVirtualPath;
+  }
+
+  static resolveVirtual(p) {
+    const match = p.match(VIRTUAL_REGEXP);
+    if (!match || !match[3] && match[5]) return p;
+    const target = sources_path/* ppath.dirname */.y1.dirname(match[1]);
+    if (!match[3] || !match[4]) return target;
+    const isnum = NUMBER_REGEXP.test(match[4]);
+    if (!isnum) return p;
+    const depth = Number(match[4]);
+    const backstep = `../`.repeat(depth);
+    const subpath = match[5] || `.`;
+    return VirtualFS.resolveVirtual(sources_path/* ppath.join */.y1.join(target, backstep, subpath));
+  }
+
+  getExtractHint(hints) {
+    return this.baseFs.getExtractHint(hints);
+  }
+
+  getRealPath() {
+    return this.baseFs.getRealPath();
+  }
+
+  realpathSync(p) {
+    const match = p.match(VIRTUAL_REGEXP);
+    if (!match) return this.baseFs.realpathSync(p);
+    if (!match[5]) return p;
+    const realpath = this.baseFs.realpathSync(this.mapToBase(p));
+    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
+  }
+
+  async realpathPromise(p) {
+    const match = p.match(VIRTUAL_REGEXP);
+    if (!match) return await this.baseFs.realpathPromise(p);
+    if (!match[5]) return p;
+    const realpath = await this.baseFs.realpathPromise(this.mapToBase(p));
+    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
+  }
+
+  mapToBase(p) {
+    return VirtualFS.resolveVirtual(p);
+  }
+
+  mapFromBase(p) {
+    return p;
+  }
+
+}
+// EXTERNAL MODULE: external "stream"
+var external_stream_ = __webpack_require__(413);
+
+// EXTERNAL MODULE: external "util"
+var external_util_ = __webpack_require__(669);
+
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipFS.ts
+
+
+
+
+
+
+
+const DEFAULT_COMPRESSION_LEVEL = `mixed`;
+const S_IFMT = 0o170000;
+const S_IFDIR = 0o040000;
+const S_IFREG = 0o100000;
+const S_IFLNK = 0o120000;
+
+class DirEntry {
+  constructor() {
+    this.name = ``;
+    this.mode = 0;
+  }
+
+  isBlockDevice() {
+    return false;
+  }
+
+  isCharacterDevice() {
+    return false;
+  }
+
+  isDirectory() {
+    return (this.mode & S_IFMT) === S_IFDIR;
+  }
+
+  isFIFO() {
+    return false;
+  }
+
+  isFile() {
+    return (this.mode & S_IFMT) === S_IFREG;
+  }
+
+  isSocket() {
+    return false;
+  }
+
+  isSymbolicLink() {
+    return (this.mode & S_IFMT) === S_IFLNK;
+  }
+
+}
+
+class StatEntry {
+  constructor() {
+    this.dev = 0;
+    this.ino = 0;
+    this.mode = 0;
+    this.nlink = 1;
+    this.rdev = 0;
+    this.blocks = 1;
+  }
+
+  isBlockDevice() {
+    return false;
+  }
+
+  isCharacterDevice() {
+    return false;
+  }
+
+  isDirectory() {
+    return (this.mode & S_IFMT) === S_IFDIR;
+  }
+
+  isFIFO() {
+    return false;
+  }
+
+  isFile() {
+    return (this.mode & S_IFMT) === S_IFREG;
+  }
+
+  isSocket() {
+    return false;
+  }
+
+  isSymbolicLink() {
+    return (this.mode & S_IFMT) === S_IFLNK;
+  }
+
+}
+
+function makeDefaultStats() {
+  return Object.assign(new StatEntry(), {
+    uid: 0,
+    gid: 0,
+    size: 0,
+    blksize: 0,
+    atimeMs: 0,
+    mtimeMs: 0,
+    ctimeMs: 0,
+    birthtimeMs: 0,
+    atime: new Date(0),
+    mtime: new Date(0),
+    ctime: new Date(0),
+    birthtime: new Date(0),
+    mode: S_IFREG | 0o644
+  });
+}
+
+function toUnixTimestamp(time) {
+  if (typeof time === `string` && String(+time) === time) return +time; // @ts-ignore
+
+  if (Number.isFinite(time)) {
+    if (time < 0) {
+      return Date.now() / 1000;
+    } else {
+      return time;
+    }
+  } // convert to 123.456 UNIX timestamp
+
+
+  if ((0,external_util_.isDate)(time)) return time.getTime() / 1000;
+  throw new Error(`Invalid time`);
+}
+
+class ZipFS extends FakeFS/* BasePortableFakeFS */.fS {
+  constructor(source, opts) {
+    super();
+    this.lzSource = null;
+    this.listings = new Map();
+    this.entries = new Map();
+    this.fds = new Map();
+    this.nextFd = 0;
+    this.ready = false;
+    this.readOnly = false;
+    this.libzip = opts.libzip;
+    const pathOptions = opts;
+    this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL;
+
+    if (source === null) {
+      source = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
+    }
+
+    if (typeof source === `string`) {
+      const {
+        baseFs = new NodeFS()
+      } = pathOptions;
+      this.baseFs = baseFs;
+      this.path = source;
+    } else {
+      this.path = null;
+      this.baseFs = null;
+    }
+
+    if (opts.stats) {
+      this.stats = opts.stats;
+    } else {
+      if (typeof source === `string`) {
+        try {
+          this.stats = this.baseFs.statSync(source);
+        } catch (error) {
+          if (error.code === `ENOENT` && pathOptions.create) {
+            this.stats = makeDefaultStats();
+          } else {
+            throw error;
+          }
+        }
+      } else {
+        this.stats = makeDefaultStats();
+      }
+    }
+
+    const errPtr = this.libzip.malloc(4);
+
+    try {
+      let flags = 0;
+      if (typeof source === `string` && pathOptions.create) flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE;
+
+      if (opts.readOnly) {
+        flags |= this.libzip.ZIP_RDONLY;
+        this.readOnly = true;
+      }
+
+      if (typeof source === `string`) {
+        this.zip = this.libzip.open(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(source), flags, errPtr);
+      } else {
+        const lzSource = this.allocateUnattachedSource(source);
+
+        try {
+          this.zip = this.libzip.openFromSource(lzSource, flags, errPtr);
+          this.lzSource = lzSource;
+        } catch (error) {
+          this.libzip.source.free(lzSource);
+          throw error;
+        }
+      }
+
+      if (this.zip === 0) {
+        const error = this.libzip.struct.errorS();
+        this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`));
+        throw new Error(this.libzip.error.strerror(error));
+      }
+    } finally {
+      this.libzip.free(errPtr);
+    }
+
+    this.listings.set(sources_path/* PortablePath.root */.LZ.root, new Set());
+    const entryCount = this.libzip.getNumEntries(this.zip, 0);
+
+    for (let t = 0; t < entryCount; ++t) {
+      const raw = this.libzip.getName(this.zip, t, 0);
+      if (sources_path/* ppath.isAbsolute */.y1.isAbsolute(raw)) continue;
+      const p = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, raw);
+      this.registerEntry(p, t); // If the raw path is a directory, register it
+      // to prevent empty folder being skipped
+
+      if (raw.endsWith(`/`)) {
+        this.registerListing(p);
+      }
+    }
+
+    this.symlinkCount = this.libzip.ext.countSymlinks(this.zip);
+    this.ready = true;
+  }
+
+  getExtractHint(hints) {
+    for (const fileName of this.entries.keys()) {
+      const ext = this.pathUtils.extname(fileName);
+
+      if (hints.relevantExtensions.has(ext)) {
+        return true;
+      }
+    }
+
+    return false;
+  }
+
+  getAllFiles() {
+    return Array.from(this.entries.keys());
+  }
+
+  getRealPath() {
+    if (!this.path) throw new Error(`ZipFS don't have real paths when loaded from a buffer`);
+    return this.path;
+  }
+
+  getBufferAndClose() {
+    if (!this.ready) throw EBUSY(`archive closed, close`);
+    if (!this.lzSource) throw new Error(`ZipFS was not created from a Buffer`);
+
+    try {
+      // Prevent close from cleaning up the source
+      this.libzip.source.keep(this.lzSource); // Close the zip archive
+
+      if (this.libzip.close(this.zip) === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip))); // Open the source for reading
+
+      if (this.libzip.source.open(this.lzSource) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource))); // Move to the end of source
+
+      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource))); // Get the size of source
+
+      const size = this.libzip.source.tell(this.lzSource); // Move to the start of source
+
+      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));
+      const buffer = this.libzip.malloc(size);
+      if (!buffer) throw new Error(`Couldn't allocate enough memory`);
+
+      try {
+        const rc = this.libzip.source.read(this.lzSource, buffer, size);
+        if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`);
+        const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size);
+        return Buffer.from(memory);
+      } finally {
+        this.libzip.free(buffer);
+      }
+    } finally {
+      this.libzip.source.close(this.lzSource);
+      this.libzip.source.free(this.lzSource);
+      this.ready = false;
+    }
+  }
+
+  saveAndClose() {
+    if (!this.path || !this.baseFs) throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`);
+    if (!this.ready) throw EBUSY(`archive closed, close`);
+
+    if (this.readOnly) {
+      this.discardAndClose();
+      return;
+    }
+
+    const previousMod = this.baseFs.existsSync(this.path) ? this.baseFs.statSync(this.path).mode & 0o777 : null;
+    const rc = this.libzip.close(this.zip);
+    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip))); // this.libzip overrides the chmod when writing the archive, which is a weird
+    // behavior I don't totally understand (plus the umask seems bogus in some
+    // weird cases - maybe related to emscripten?)
+    //
+    // See also https://github.com/nih-at/libzip/issues/77
+
+    if (previousMod === null) this.baseFs.chmodSync(this.path, this.stats.mode);else if (previousMod !== (this.baseFs.statSync(this.path).mode & 0o777)) this.baseFs.chmodSync(this.path, previousMod);
+    this.ready = false;
+  }
+
+  discardAndClose() {
+    if (!this.ready) throw EBUSY(`archive closed, close`);
+    this.libzip.discard(this.zip);
+    this.ready = false;
+  }
+
+  resolve(p) {
+    return sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
+  }
+
+  async openPromise(p, flags, mode) {
+    return this.openSync(p, flags, mode);
+  }
+
+  openSync(p, flags, mode) {
+    const fd = this.nextFd++;
+    this.fds.set(fd, {
+      cursor: 0,
+      p
+    });
+    return fd;
+  }
+
+  async readPromise(fd, buffer, offset, length, position) {
+    return this.readSync(fd, buffer, offset, length, position);
+  }
+
+  readSync(fd, buffer, offset = 0, length = 0, position = -1) {
+    const entry = this.fds.get(fd);
+    if (typeof entry === `undefined`) throw EBADF(`read`);
+    let realPosition;
+    if (position === -1 || position === null) realPosition = entry.cursor;else realPosition = position;
+    const source = this.readFileSync(entry.p);
+    source.copy(buffer, offset, realPosition, realPosition + length);
+    const bytesRead = Math.max(0, Math.min(source.length - realPosition, length));
+    if (position === -1 || position === null) entry.cursor += bytesRead;
+    return bytesRead;
+  }
+
+  async writePromise(fd, buffer, offset, length, position) {
+    if (typeof buffer === `string`) {
+      return this.writeSync(fd, buffer, position);
+    } else {
+      return this.writeSync(fd, buffer, offset, length, position);
+    }
+  }
+
+  writeSync(fd, buffer, offset, length, position) {
+    const entry = this.fds.get(fd);
+    if (typeof entry === `undefined`) throw EBADF(`read`);
+    throw new Error(`Unimplemented`);
+  }
+
+  async closePromise(fd) {
+    return this.closeSync(fd);
+  }
+
+  closeSync(fd) {
+    const entry = this.fds.get(fd);
+    if (typeof entry === `undefined`) throw EBADF(`read`);
+    this.fds.delete(fd);
+  }
+
+  createReadStream(p, {
+    encoding
+  } = {}) {
+    if (p === null) throw new Error(`Unimplemented`);
+    const stream = Object.assign(new external_stream_.PassThrough(), {
+      bytesRead: 0,
+      path: p,
+      close: () => {
+        clearImmediate(immediate);
+      }
+    });
+    const immediate = setImmediate(() => {
+      try {
+        const data = this.readFileSync(p, encoding);
+        stream.bytesRead = data.length;
+        stream.write(data);
+        stream.end();
+      } catch (error) {
+        stream.emit(`error`, error);
+        stream.end();
+      }
+    });
+    return stream;
+  }
+
+  createWriteStream(p, {
+    encoding
+  } = {}) {
+    if (this.readOnly) throw EROFS(`open '${p}'`);
+    if (p === null) throw new Error(`Unimplemented`);
+    const stream = Object.assign(new external_stream_.PassThrough(), {
+      bytesWritten: 0,
+      path: p,
+      close: () => {
+        stream.end();
+      }
+    });
+    const chunks = [];
+    stream.on(`data`, chunk => {
+      const chunkBuffer = Buffer.from(chunk);
+      stream.bytesWritten += chunkBuffer.length;
+      chunks.push(chunkBuffer);
+    });
+    stream.on(`end`, () => {
+      this.writeFileSync(p, Buffer.concat(chunks), encoding);
+    });
+    return stream;
+  }
+
+  async realpathPromise(p) {
+    return this.realpathSync(p);
+  }
+
+  realpathSync(p) {
+    const resolvedP = this.resolveFilename(`lstat '${p}'`, p);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`);
+    return resolvedP;
+  }
+
+  async existsPromise(p) {
+    return this.existsSync(p);
+  }
+
+  existsSync(p) {
+    if (!this.ready) throw EBUSY(`archive closed, existsSync '${p}'`);
+
+    if (this.symlinkCount === 0) {
+      const resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
+      return this.entries.has(resolvedP) || this.listings.has(resolvedP);
+    }
+
+    let resolvedP;
+
+    try {
+      resolvedP = this.resolveFilename(`stat '${p}'`, p);
+    } catch (error) {
+      return false;
+    }
+
+    return this.entries.has(resolvedP) || this.listings.has(resolvedP);
+  }
+
+  async accessPromise(p, mode) {
+    return this.accessSync(p, mode);
+  }
+
+  accessSync(p, mode = external_fs_.constants.F_OK) {
+    const resolvedP = this.resolveFilename(`access '${p}'`, p);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`access '${p}'`);
+
+    if (this.readOnly && mode & external_fs_.constants.W_OK) {
+      throw EROFS(`access '${p}'`);
+    }
+  }
+
+  async statPromise(p) {
+    return this.statSync(p);
+  }
+
+  statSync(p) {
+    const resolvedP = this.resolveFilename(`stat '${p}'`, p);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`stat '${p}'`);
+    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`stat '${p}'`);
+    return this.statImpl(`stat '${p}'`, resolvedP);
+  }
+
+  async lstatPromise(p) {
+    return this.lstatSync(p);
+  }
+
+  lstatSync(p) {
+    const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`);
+    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`lstat '${p}'`);
+    return this.statImpl(`lstat '${p}'`, resolvedP);
+  }
+
+  statImpl(reason, p) {
+    const entry = this.entries.get(p); // File, or explicit directory
+
+    if (typeof entry !== `undefined`) {
+      const stat = this.libzip.struct.statS();
+      const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat);
+      if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+      const uid = this.stats.uid;
+      const gid = this.stats.gid;
+      const size = this.libzip.struct.statSize(stat) >>> 0;
+      const blksize = 512;
+      const blocks = Math.ceil(size / blksize);
+      const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1000;
+      const atimeMs = mtimeMs;
+      const birthtimeMs = mtimeMs;
+      const ctimeMs = mtimeMs;
+      const atime = new Date(atimeMs);
+      const birthtime = new Date(birthtimeMs);
+      const ctime = new Date(ctimeMs);
+      const mtime = new Date(mtimeMs);
+      const type = this.listings.has(p) ? S_IFDIR : this.isSymbolicLink(entry) ? S_IFLNK : S_IFREG;
+      const defaultMode = type === S_IFDIR ? 0o755 : 0o644;
+      const mode = type | this.getUnixMode(entry, defaultMode) & 0o777;
+      return Object.assign(new StatEntry(), {
+        uid,
+        gid,
+        size,
+        blksize,
+        blocks,
+        atime,
+        birthtime,
+        ctime,
+        mtime,
+        atimeMs,
+        birthtimeMs,
+        ctimeMs,
+        mtimeMs,
+        mode
+      });
+    } // Implicit directory
+
+
+    if (this.listings.has(p)) {
+      const uid = this.stats.uid;
+      const gid = this.stats.gid;
+      const size = 0;
+      const blksize = 512;
+      const blocks = 0;
+      const atimeMs = this.stats.mtimeMs;
+      const birthtimeMs = this.stats.mtimeMs;
+      const ctimeMs = this.stats.mtimeMs;
+      const mtimeMs = this.stats.mtimeMs;
+      const atime = new Date(atimeMs);
+      const birthtime = new Date(birthtimeMs);
+      const ctime = new Date(ctimeMs);
+      const mtime = new Date(mtimeMs);
+      const mode = S_IFDIR | 0o755;
+      return Object.assign(new StatEntry(), {
+        uid,
+        gid,
+        size,
+        blksize,
+        blocks,
+        atime,
+        birthtime,
+        ctime,
+        mtime,
+        atimeMs,
+        birthtimeMs,
+        ctimeMs,
+        mtimeMs,
+        mode
+      });
+    }
+
+    throw new Error(`Unreachable`);
+  }
+
+  getUnixMode(index, defaultMode) {
+    const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
+    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
+    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return defaultMode;
+    return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
+  }
+
+  registerListing(p) {
+    let listing = this.listings.get(p);
+    if (listing) return listing;
+    const parentListing = this.registerListing(sources_path/* ppath.dirname */.y1.dirname(p));
+    listing = new Set();
+    parentListing.add(sources_path/* ppath.basename */.y1.basename(p));
+    this.listings.set(p, listing);
+    return listing;
+  }
+
+  registerEntry(p, index) {
+    const parentListing = this.registerListing(sources_path/* ppath.dirname */.y1.dirname(p));
+    parentListing.add(sources_path/* ppath.basename */.y1.basename(p));
+    this.entries.set(p, index);
+  }
+
+  resolveFilename(reason, p, resolveLastComponent = true) {
+    if (!this.ready) throw EBUSY(`archive closed, ${reason}`);
+    let resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
+    if (resolvedP === `/`) return sources_path/* PortablePath.root */.LZ.root;
+    const fileIndex = this.entries.get(resolvedP);
+
+    if (resolveLastComponent && fileIndex !== undefined) {
+      if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) {
+        const target = this.getFileSource(fileIndex).toString();
+        return this.resolveFilename(reason, sources_path/* ppath.resolve */.y1.resolve(sources_path/* ppath.dirname */.y1.dirname(resolvedP), target), true);
+      } else {
+        return resolvedP;
+      }
+    }
+
+    while (true) {
+      const parentP = this.resolveFilename(reason, sources_path/* ppath.dirname */.y1.dirname(resolvedP), true);
+      const isDir = this.listings.has(parentP);
+      const doesExist = this.entries.has(parentP);
+      if (!isDir && !doesExist) throw ENOENT(reason);
+      if (!isDir) throw ENOTDIR(reason);
+      resolvedP = sources_path/* ppath.resolve */.y1.resolve(parentP, sources_path/* ppath.basename */.y1.basename(resolvedP));
+      if (!resolveLastComponent || this.symlinkCount === 0) break;
+      const index = this.libzip.name.locate(this.zip, resolvedP.slice(1));
+      if (index === -1) break;
+
+      if (this.isSymbolicLink(index)) {
+        const target = this.getFileSource(index).toString();
+        resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* ppath.dirname */.y1.dirname(resolvedP), target);
+      } else {
+        break;
+      }
+    }
+
+    return resolvedP;
+  }
+
+  allocateBuffer(content) {
+    if (!Buffer.isBuffer(content)) content = Buffer.from(content);
+    const buffer = this.libzip.malloc(content.byteLength);
+    if (!buffer) throw new Error(`Couldn't allocate enough memory`); // Copy the file into the Emscripten heap
+
+    const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength);
+    heap.set(content);
+    return {
+      buffer,
+      byteLength: content.byteLength
+    };
+  }
+
+  allocateUnattachedSource(content) {
+    const error = this.libzip.struct.errorS();
+    const {
+      buffer,
+      byteLength
+    } = this.allocateBuffer(content);
+    const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, true, error);
+
+    if (source === 0) {
+      this.libzip.free(error);
+      throw new Error(this.libzip.error.strerror(error));
+    }
+
+    return source;
+  }
+
+  allocateSource(content) {
+    const {
+      buffer,
+      byteLength
+    } = this.allocateBuffer(content);
+    const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true);
+
+    if (source === 0) {
+      this.libzip.free(buffer);
+      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    }
+
+    return source;
+  }
+
+  setFileSource(p, content) {
+    const target = sources_path/* ppath.relative */.y1.relative(sources_path/* PortablePath.root */.LZ.root, p);
+    const lzSource = this.allocateSource(content);
+
+    try {
+      const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE);
+
+      if (this.level !== `mixed`) {
+        // Use store for level 0, and deflate for 1..9
+        let method;
+        if (this.level === 0) method = this.libzip.ZIP_CM_STORE;else method = this.libzip.ZIP_CM_DEFLATE;
+        const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level);
+
+        if (rc === -1) {
+          throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+        }
+      }
+
+      return newIndex;
+    } catch (error) {
+      this.libzip.source.free(lzSource);
+      throw error;
+    }
+  }
+
+  isSymbolicLink(index) {
+    if (this.symlinkCount === 0) return false;
+    const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
+    if (attrs === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
+    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return false;
+    const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
+    return (attributes & S_IFMT) === S_IFLNK;
+  }
+
+  getFileSource(index) {
+    const stat = this.libzip.struct.statS();
+    const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat);
+    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    const size = this.libzip.struct.statSize(stat);
+    const buffer = this.libzip.malloc(size);
+
+    try {
+      const file = this.libzip.fopenIndex(this.zip, index, 0, 0);
+      if (file === 0) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+
+      try {
+        const rc = this.libzip.fread(file, buffer, size, 0);
+        if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.file.getError(file)));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`);
+        const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size);
+        const data = Buffer.from(memory);
+        return data;
+      } finally {
+        this.libzip.fclose(file);
+      }
+    } finally {
+      this.libzip.free(buffer);
+    }
+  }
+
+  async chmodPromise(p, mask) {
+    return this.chmodSync(p, mask);
+  }
+
+  chmodSync(p, mask) {
+    if (this.readOnly) throw EROFS(`chmod '${p}'`); // We don't allow to make the extracted entries group-writable
+
+    mask &= 0o755;
+    const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false);
+    const entry = this.entries.get(resolvedP);
+    if (typeof entry === `undefined`) throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`);
+    const oldMod = this.getUnixMode(entry, S_IFREG | 0o000);
+    const newMod = oldMod & ~0o777 | mask;
+    const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16);
+
+    if (rc === -1) {
+      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    }
+  }
+
+  async renamePromise(oldP, newP) {
+    return this.renameSync(oldP, newP);
+  }
+
+  renameSync(oldP, newP) {
+    throw new Error(`Unimplemented`);
+  }
+
+  async copyFilePromise(sourceP, destP, flags) {
+    return this.copyFileSync(sourceP, destP, flags);
+  }
+
+  copyFileSync(sourceP, destP, flags = 0) {
+    if (this.readOnly) throw EROFS(`copyfile '${sourceP} -> '${destP}'`);
+    if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`);
+    const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP);
+    const indexSource = this.entries.get(resolvedSourceP);
+    if (typeof indexSource === `undefined`) throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`);
+    const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP);
+    const indexDest = this.entries.get(resolvedDestP);
+    if ((flags & (external_fs_.constants.COPYFILE_EXCL | external_fs_.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`);
+    const source = this.getFileSource(indexSource);
+    const newIndex = this.setFileSource(resolvedDestP, source);
+
+    if (newIndex !== indexDest) {
+      this.registerEntry(resolvedDestP, newIndex);
+    }
+  }
+
+  async appendFilePromise(p, content, opts) {
+    return this.appendFileSync(p, content, opts);
+  }
+
+  appendFileSync(p, content, opts = {}) {
+    if (this.readOnly) throw EROFS(`open '${p}'`);
+    if (typeof opts === `undefined`) opts = {
+      flag: `a`
+    };else if (typeof opts === `string`) opts = {
+      flag: `a`,
+      encoding: opts
+    };else if (typeof opts.flag === `undefined`) opts = {
+      flag: `a`,
+      ...opts
+    };
+    return this.writeFileSync(p, content, opts);
+  }
+
+  async writeFilePromise(p, content, opts) {
+    return this.writeFileSync(p, content, opts);
+  }
+
+  writeFileSync(p, content, opts) {
+    if (typeof p !== `string`) throw EBADF(`read`);
+    if (this.readOnly) throw EROFS(`open '${p}'`);
+    const resolvedP = this.resolveFilename(`open '${p}'`, p);
+    if (this.listings.has(resolvedP)) throw EISDIR(`open '${p}'`);
+    const index = this.entries.get(resolvedP);
+    if (index !== undefined && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]);
+    let encoding = null;
+    if (typeof opts === `string`) encoding = opts;else if (typeof opts === `object` && opts.encoding) encoding = opts.encoding;
+    if (encoding !== null) content = content.toString(encoding);
+    const newIndex = this.setFileSource(resolvedP, content);
+
+    if (newIndex !== index) {
+      this.registerEntry(resolvedP, newIndex);
+    }
+  }
+
+  async unlinkPromise(p) {
+    return this.unlinkSync(p);
+  }
+
+  unlinkSync(p) {
+    throw new Error(`Unimplemented`);
+  }
+
+  async utimesPromise(p, atime, mtime) {
+    return this.utimesSync(p, atime, mtime);
+  }
+
+  utimesSync(p, atime, mtime) {
+    if (this.readOnly) throw EROFS(`utimes '${p}'`);
+    const resolvedP = this.resolveFilename(`utimes '${p}'`, p);
+    this.utimesImpl(resolvedP, mtime);
+  }
+
+  async lutimesPromise(p, atime, mtime) {
+    return this.lutimesSync(p, atime, mtime);
+  }
+
+  lutimesSync(p, atime, mtime) {
+    if (this.readOnly) throw EROFS(`lutimes '${p}'`);
+    const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false);
+    this.utimesImpl(resolvedP, mtime);
+  }
+
+  utimesImpl(resolvedP, mtime) {
+    if (this.listings.has(resolvedP)) if (!this.entries.has(resolvedP)) this.hydrateDirectory(resolvedP);
+    const entry = this.entries.get(resolvedP);
+    if (entry === undefined) throw new Error(`Unreachable`);
+    const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0);
+
+    if (rc === -1) {
+      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    }
+  }
+
+  async mkdirPromise(p, opts) {
+    return this.mkdirSync(p, opts);
+  }
+
+  mkdirSync(p, {
+    mode = 0o755,
+    recursive = false
+  } = {}) {
+    if (recursive) {
+      this.mkdirpSync(p, {
+        chmod: mode
+      });
+      return;
+    }
+
+    if (this.readOnly) throw EROFS(`mkdir '${p}'`);
+    const resolvedP = this.resolveFilename(`mkdir '${p}'`, p);
+    if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) throw EEXIST(`mkdir '${p}'`);
+    this.hydrateDirectory(resolvedP);
+    this.chmodSync(resolvedP, mode);
+  }
+
+  async rmdirPromise(p) {
+    return this.rmdirSync(p);
+  }
+
+  rmdirSync(p) {
+    throw new Error(`Unimplemented`);
+  }
+
+  hydrateDirectory(resolvedP) {
+    const index = this.libzip.dir.add(this.zip, sources_path/* ppath.relative */.y1.relative(sources_path/* PortablePath.root */.LZ.root, resolvedP));
+    if (index === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    this.registerListing(resolvedP);
+    this.registerEntry(resolvedP, index);
+    return index;
+  }
+
+  async symlinkPromise(target, p) {
+    return this.symlinkSync(target, p);
+  }
+
+  symlinkSync(target, p) {
+    if (this.readOnly) throw EROFS(`symlink '${target}' -> '${p}'`);
+    const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p);
+    if (this.listings.has(resolvedP)) throw EISDIR(`symlink '${target}' -> '${p}'`);
+    if (this.entries.has(resolvedP)) throw EEXIST(`symlink '${target}' -> '${p}'`);
+    const index = this.setFileSource(resolvedP, target);
+    this.registerEntry(resolvedP, index);
+    const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (0o120000 | 0o777) << 16);
+    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    this.symlinkCount += 1;
+  }
+
+  async readFilePromise(p, encoding) {
+    // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
+    switch (encoding) {
+      case `utf8`:
+        return this.readFileSync(p, encoding);
+
+      default:
+        return this.readFileSync(p, encoding);
+    }
+  }
+
+  readFileSync(p, encoding) {
+    if (typeof p !== `string`) throw EBADF(`read`); // This is messed up regarding the TS signatures
+
+    if (typeof encoding === `object`) // @ts-ignore
+      encoding = encoding ? encoding.encoding : undefined;
+    const resolvedP = this.resolveFilename(`open '${p}'`, p);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`open '${p}'`); // Ensures that the last component is a directory, if the user said so (even if it is we'll throw right after with EISDIR anyway)
+
+    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`);
+    if (this.listings.has(resolvedP)) throw EISDIR(`read`);
+    const entry = this.entries.get(resolvedP);
+    if (entry === undefined) throw new Error(`Unreachable`);
+    const data = this.getFileSource(entry);
+    return encoding ? data.toString(encoding) : data;
+  }
+
+  async readdirPromise(p, {
+    withFileTypes
+  } = {}) {
+    return this.readdirSync(p, {
+      withFileTypes: withFileTypes
+    });
+  }
+
+  readdirSync(p, {
+    withFileTypes
+  } = {}) {
+    const resolvedP = this.resolveFilename(`scandir '${p}'`, p);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`scandir '${p}'`);
+    const directoryListing = this.listings.get(resolvedP);
+    if (!directoryListing) throw ENOTDIR(`scandir '${p}'`);
+    const entries = [...directoryListing];
+    if (!withFileTypes) return entries;
+    return entries.map(name => {
+      return Object.assign(this.statImpl(`lstat`, sources_path/* ppath.join */.y1.join(p, name)), {
+        name
+      });
+    });
+  }
+
+  async readlinkPromise(p) {
+    return this.readlinkSync(p);
+  }
+
+  readlinkSync(p) {
+    const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false);
+    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`readlink '${p}'`); // Ensure that the last component is a directory (if it is we'll throw right after with EISDIR anyway)
+
+    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`);
+    if (this.listings.has(resolvedP)) throw EINVAL(`readlink '${p}'`);
+    const entry = this.entries.get(resolvedP);
+    if (entry === undefined) throw new Error(`Unreachable`);
+    const rc = this.libzip.file.getExternalAttributes(this.zip, entry, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
+    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
+    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
+    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) throw EINVAL(`readlink '${p}'`);
+    const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
+    if ((attributes & 0o170000) !== 0o120000) throw EINVAL(`readlink '${p}'`);
+    return this.getFileSource(entry).toString();
+  }
+
+  watch(p, a, b) {
+    let persistent;
+
+    switch (typeof a) {
+      case `function`:
+      case `string`:
+      case `undefined`:
+        {
+          persistent = true;
+        }
+        break;
+
+      default:
+        {
+          // @ts-ignore
+          ({
+            persistent = true
+          } = a);
+        }
+        break;
+    }
+
+    if (!persistent) return {
+      on: () => {},
+      close: () => {}
+    };
+    const interval = setInterval(() => {}, 24 * 60 * 60 * 1000);
+    return {
+      on: () => {},
+      close: () => {
+        clearInterval(interval);
+      }
+    };
+  }
+
+}
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipOpenFS.ts
+
+
+
+
+
+const ZIP_FD = 0x80000000;
+const FILE_PARTS_REGEX = /.*?(?<!\/)\.zip(?=\/|$)/;
+class ZipOpenFS extends FakeFS/* BasePortableFakeFS */.fS {
+  constructor({
+    libzip,
+    baseFs = new NodeFS(),
+    filter = null,
+    maxOpenFiles = Infinity,
+    readOnlyArchives = false,
+    useCache = true
+  }) {
+    super();
+    this.fdMap = new Map();
+    this.nextFd = 3;
+    this.isZip = new Set();
+    this.notZip = new Set();
+    this.libzip = libzip;
+    this.baseFs = baseFs;
+    this.zipInstances = useCache ? new Map() : null;
+    this.filter = filter;
+    this.maxOpenFiles = maxOpenFiles;
+    this.readOnlyArchives = readOnlyArchives;
+  }
+
+  static async openPromise(fn, opts) {
+    const zipOpenFs = new ZipOpenFS(opts);
+
+    try {
+      return await fn(zipOpenFs);
+    } finally {
+      zipOpenFs.saveAndClose();
+    }
+  }
+
+  getExtractHint(hints) {
+    return this.baseFs.getExtractHint(hints);
+  }
+
+  getRealPath() {
+    return this.baseFs.getRealPath();
+  }
+
+  saveAndClose() {
+    if (this.zipInstances) {
+      for (const [path, zipFs] of this.zipInstances.entries()) {
+        zipFs.saveAndClose();
+        this.zipInstances.delete(path);
+      }
+    }
+  }
+
+  discardAndClose() {
+    if (this.zipInstances) {
+      for (const [path, zipFs] of this.zipInstances.entries()) {
+        zipFs.discardAndClose();
+        this.zipInstances.delete(path);
+      }
+    }
+  }
+
+  resolve(p) {
+    return this.baseFs.resolve(p);
+  }
+
+  remapFd(zipFs, fd) {
+    const remappedFd = this.nextFd++ | ZIP_FD;
+    this.fdMap.set(remappedFd, [zipFs, fd]);
+    return remappedFd;
+  }
+
+  async openPromise(p, flags, mode) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.openPromise(p, flags, mode);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return this.remapFd(zipFs, await zipFs.openPromise(subPath, flags, mode));
+    });
+  }
+
+  openSync(p, flags, mode) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.openSync(p, flags, mode);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return this.remapFd(zipFs, zipFs.openSync(subPath, flags, mode));
+    });
+  }
+
+  async readPromise(fd, buffer, offset, length, position) {
+    if ((fd & ZIP_FD) === 0) return await this.baseFs.readPromise(fd, buffer, offset, length, position);
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), {
+      code: `EBADF`
+    });
+    const [zipFs, realFd] = entry;
+    return await zipFs.readPromise(realFd, buffer, offset, length, position);
+  }
+
+  readSync(fd, buffer, offset, length, position) {
+    if ((fd & ZIP_FD) === 0) return this.baseFs.readSync(fd, buffer, offset, length, position);
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), {
+      code: `EBADF`
+    });
+    const [zipFs, realFd] = entry;
+    return zipFs.readSync(realFd, buffer, offset, length, position);
+  }
+
+  async writePromise(fd, buffer, offset, length, position) {
+    if ((fd & ZIP_FD) === 0) {
+      if (typeof buffer === `string`) {
+        return await this.baseFs.writePromise(fd, buffer, offset);
+      } else {
+        return await this.baseFs.writePromise(fd, buffer, offset, length, position);
+      }
+    }
+
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), {
+      code: `EBADF`
+    });
+    const [zipFs, realFd] = entry;
+
+    if (typeof buffer === `string`) {
+      return await zipFs.writePromise(realFd, buffer, offset);
+    } else {
+      return await zipFs.writePromise(realFd, buffer, offset, length, position);
+    }
+  }
+
+  writeSync(fd, buffer, offset, length, position) {
+    if ((fd & ZIP_FD) === 0) {
+      if (typeof buffer === `string`) {
+        return this.baseFs.writeSync(fd, buffer, offset);
+      } else {
+        return this.baseFs.writeSync(fd, buffer, offset, length, position);
+      }
+    }
+
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), {
+      code: `EBADF`
+    });
+    const [zipFs, realFd] = entry;
+
+    if (typeof buffer === `string`) {
+      return zipFs.writeSync(realFd, buffer, offset);
+    } else {
+      return zipFs.writeSync(realFd, buffer, offset, length, position);
+    }
+  }
+
+  async closePromise(fd) {
+    if ((fd & ZIP_FD) === 0) return await this.baseFs.closePromise(fd);
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), {
+      code: `EBADF`
+    });
+    this.fdMap.delete(fd);
+    const [zipFs, realFd] = entry;
+    return await zipFs.closePromise(realFd);
+  }
+
+  closeSync(fd) {
+    if ((fd & ZIP_FD) === 0) return this.baseFs.closeSync(fd);
+    const entry = this.fdMap.get(fd);
+    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), {
+      code: `EBADF`
+    });
+    this.fdMap.delete(fd);
+    const [zipFs, realFd] = entry;
+    return zipFs.closeSync(realFd);
+  }
+
+  createReadStream(p, opts) {
+    if (p === null) return this.baseFs.createReadStream(p, opts);
+    return this.makeCallSync(p, () => {
+      return this.baseFs.createReadStream(p, opts);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.createReadStream(subPath, opts);
+    });
+  }
+
+  createWriteStream(p, opts) {
+    if (p === null) return this.baseFs.createWriteStream(p, opts);
+    return this.makeCallSync(p, () => {
+      return this.baseFs.createWriteStream(p, opts);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.createWriteStream(subPath, opts);
+    });
+  }
+
+  async realpathPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.realpathPromise(p);
+    }, async (zipFs, {
+      archivePath,
+      subPath
+    }) => {
+      return this.pathUtils.resolve(await this.baseFs.realpathPromise(archivePath), this.pathUtils.relative(sources_path/* PortablePath.root */.LZ.root, await zipFs.realpathPromise(subPath)));
+    });
+  }
+
+  realpathSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.realpathSync(p);
+    }, (zipFs, {
+      archivePath,
+      subPath
+    }) => {
+      return this.pathUtils.resolve(this.baseFs.realpathSync(archivePath), this.pathUtils.relative(sources_path/* PortablePath.root */.LZ.root, zipFs.realpathSync(subPath)));
+    });
+  }
+
+  async existsPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.existsPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.existsPromise(subPath);
+    });
+  }
+
+  existsSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.existsSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.existsSync(subPath);
+    });
+  }
+
+  async accessPromise(p, mode) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.accessPromise(p, mode);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.accessPromise(subPath, mode);
+    });
+  }
+
+  accessSync(p, mode) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.accessSync(p, mode);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.accessSync(subPath, mode);
+    });
+  }
+
+  async statPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.statPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.statPromise(subPath);
+    });
+  }
+
+  statSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.statSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.statSync(subPath);
+    });
+  }
+
+  async lstatPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.lstatPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.lstatPromise(subPath);
+    });
+  }
+
+  lstatSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.lstatSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.lstatSync(subPath);
+    });
+  }
+
+  async chmodPromise(p, mask) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.chmodPromise(p, mask);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.chmodPromise(subPath, mask);
+    });
+  }
+
+  chmodSync(p, mask) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.chmodSync(p, mask);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.chmodSync(subPath, mask);
+    });
+  }
+
+  async renamePromise(oldP, newP) {
+    return await this.makeCallPromise(oldP, async () => {
+      return await this.makeCallPromise(newP, async () => {
+        return await this.baseFs.renamePromise(oldP, newP);
+      }, async () => {
+        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+          code: `EEXDEV`
+        });
+      });
+    }, async (zipFsO, {
+      subPath: subPathO
+    }) => {
+      return await this.makeCallPromise(newP, async () => {
+        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+          code: `EEXDEV`
+        });
+      }, async (zipFsN, {
+        subPath: subPathN
+      }) => {
+        if (zipFsO !== zipFsN) {
+          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+            code: `EEXDEV`
+          });
+        } else {
+          return await zipFsO.renamePromise(subPathO, subPathN);
+        }
+      });
+    });
+  }
+
+  renameSync(oldP, newP) {
+    return this.makeCallSync(oldP, () => {
+      return this.makeCallSync(newP, () => {
+        return this.baseFs.renameSync(oldP, newP);
+      }, async () => {
+        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+          code: `EEXDEV`
+        });
+      });
+    }, (zipFsO, {
+      subPath: subPathO
+    }) => {
+      return this.makeCallSync(newP, () => {
+        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+          code: `EEXDEV`
+        });
+      }, (zipFsN, {
+        subPath: subPathN
+      }) => {
+        if (zipFsO !== zipFsN) {
+          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
+            code: `EEXDEV`
+          });
+        } else {
+          return zipFsO.renameSync(subPathO, subPathN);
+        }
+      });
+    });
+  }
+
+  async copyFilePromise(sourceP, destP, flags = 0) {
+    const fallback = async (sourceFs, sourceP, destFs, destP) => {
+      if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), {
+        code: `EXDEV`
+      });
+      if (flags & external_fs_.constants.COPYFILE_EXCL && (await this.existsPromise(sourceP))) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), {
+        code: `EEXIST`
+      });
+      let content;
+
+      try {
+        content = await sourceFs.readFilePromise(sourceP);
+      } catch (error) {
+        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), {
+          code: `EINVAL`
+        });
+      }
+
+      await destFs.writeFilePromise(destP, content);
+    };
+
+    return await this.makeCallPromise(sourceP, async () => {
+      return await this.makeCallPromise(destP, async () => {
+        return await this.baseFs.copyFilePromise(sourceP, destP, flags);
+      }, async (zipFsD, {
+        subPath: subPathD
+      }) => {
+        return await fallback(this.baseFs, sourceP, zipFsD, subPathD);
+      });
+    }, async (zipFsS, {
+      subPath: subPathS
+    }) => {
+      return await this.makeCallPromise(destP, async () => {
+        return await fallback(zipFsS, subPathS, this.baseFs, destP);
+      }, async (zipFsD, {
+        subPath: subPathD
+      }) => {
+        if (zipFsS !== zipFsD) {
+          return await fallback(zipFsS, subPathS, zipFsD, subPathD);
+        } else {
+          return await zipFsS.copyFilePromise(subPathS, subPathD, flags);
+        }
+      });
+    });
+  }
+
+  copyFileSync(sourceP, destP, flags = 0) {
+    const fallback = (sourceFs, sourceP, destFs, destP) => {
+      if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), {
+        code: `EXDEV`
+      });
+      if (flags & external_fs_.constants.COPYFILE_EXCL && this.existsSync(sourceP)) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), {
+        code: `EEXIST`
+      });
+      let content;
+
+      try {
+        content = sourceFs.readFileSync(sourceP);
+      } catch (error) {
+        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), {
+          code: `EINVAL`
+        });
+      }
+
+      destFs.writeFileSync(destP, content);
+    };
+
+    return this.makeCallSync(sourceP, () => {
+      return this.makeCallSync(destP, () => {
+        return this.baseFs.copyFileSync(sourceP, destP, flags);
+      }, (zipFsD, {
+        subPath: subPathD
+      }) => {
+        return fallback(this.baseFs, sourceP, zipFsD, subPathD);
+      });
+    }, (zipFsS, {
+      subPath: subPathS
+    }) => {
+      return this.makeCallSync(destP, () => {
+        return fallback(zipFsS, subPathS, this.baseFs, destP);
+      }, (zipFsD, {
+        subPath: subPathD
+      }) => {
+        if (zipFsS !== zipFsD) {
+          return fallback(zipFsS, subPathS, zipFsD, subPathD);
+        } else {
+          return zipFsS.copyFileSync(subPathS, subPathD, flags);
+        }
+      });
+    });
+  }
+
+  async appendFilePromise(p, content, opts) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.appendFilePromise(p, content, opts);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.appendFilePromise(subPath, content, opts);
+    });
+  }
+
+  appendFileSync(p, content, opts) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.appendFileSync(p, content, opts);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.appendFileSync(subPath, content, opts);
+    });
+  }
+
+  async writeFilePromise(p, content, opts) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.writeFilePromise(p, content, opts);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.writeFilePromise(subPath, content, opts);
+    });
+  }
+
+  writeFileSync(p, content, opts) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.writeFileSync(p, content, opts);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.writeFileSync(subPath, content, opts);
+    });
+  }
+
+  async unlinkPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.unlinkPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.unlinkPromise(subPath);
+    });
+  }
+
+  unlinkSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.unlinkSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.unlinkSync(subPath);
+    });
+  }
+
+  async utimesPromise(p, atime, mtime) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.utimesPromise(p, atime, mtime);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.utimesPromise(subPath, atime, mtime);
+    });
+  }
+
+  utimesSync(p, atime, mtime) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.utimesSync(p, atime, mtime);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.utimesSync(subPath, atime, mtime);
+    });
+  }
+
+  async mkdirPromise(p, opts) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.mkdirPromise(p, opts);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.mkdirPromise(subPath, opts);
+    });
+  }
+
+  mkdirSync(p, opts) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.mkdirSync(p, opts);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.mkdirSync(subPath, opts);
+    });
+  }
+
+  async rmdirPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.rmdirPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.rmdirPromise(subPath);
+    });
+  }
+
+  rmdirSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.rmdirSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.rmdirSync(subPath);
+    });
+  }
+
+  async symlinkPromise(target, p, type) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.symlinkPromise(target, p, type);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.symlinkPromise(target, subPath);
+    });
+  }
+
+  symlinkSync(target, p, type) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.symlinkSync(target, p, type);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.symlinkSync(target, subPath);
+    });
+  }
+
+  async readFilePromise(p, encoding) {
+    return this.makeCallPromise(p, async () => {
+      // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
+      switch (encoding) {
+        case `utf8`:
+          return await this.baseFs.readFilePromise(p, encoding);
+
+        default:
+          return await this.baseFs.readFilePromise(p, encoding);
+      }
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.readFilePromise(subPath, encoding);
+    });
+  }
+
+  readFileSync(p, encoding) {
+    return this.makeCallSync(p, () => {
+      // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
+      switch (encoding) {
+        case `utf8`:
+          return this.baseFs.readFileSync(p, encoding);
+
+        default:
+          return this.baseFs.readFileSync(p, encoding);
+      }
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.readFileSync(subPath, encoding);
+    });
+  }
+
+  async readdirPromise(p, {
+    withFileTypes
+  } = {}) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.readdirPromise(p, {
+        withFileTypes: withFileTypes
+      });
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.readdirPromise(subPath, {
+        withFileTypes: withFileTypes
+      });
+    }, {
+      requireSubpath: false
+    });
+  }
+
+  readdirSync(p, {
+    withFileTypes
+  } = {}) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.readdirSync(p, {
+        withFileTypes: withFileTypes
+      });
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.readdirSync(subPath, {
+        withFileTypes: withFileTypes
+      });
+    }, {
+      requireSubpath: false
+    });
+  }
+
+  async readlinkPromise(p) {
+    return await this.makeCallPromise(p, async () => {
+      return await this.baseFs.readlinkPromise(p);
+    }, async (zipFs, {
+      subPath
+    }) => {
+      return await zipFs.readlinkPromise(subPath);
+    });
+  }
+
+  readlinkSync(p) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.readlinkSync(p);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.readlinkSync(subPath);
+    });
+  }
+
+  watch(p, a, b) {
+    return this.makeCallSync(p, () => {
+      return this.baseFs.watch(p, // @ts-ignore
+      a, b);
+    }, (zipFs, {
+      subPath
+    }) => {
+      return zipFs.watch(subPath, // @ts-ignore
+      a, b);
+    });
+  }
+
+  async makeCallPromise(p, discard, accept, {
+    requireSubpath = true
+  } = {}) {
+    if (typeof p !== `string`) return await discard();
+    const normalizedP = this.resolve(p);
+    const zipInfo = this.findZip(normalizedP);
+    if (!zipInfo) return await discard();
+    if (requireSubpath && zipInfo.subPath === `/`) return await discard();
+    return await this.getZipPromise(zipInfo.archivePath, async zipFs => await accept(zipFs, zipInfo));
+  }
+
+  makeCallSync(p, discard, accept, {
+    requireSubpath = true
+  } = {}) {
+    if (typeof p !== `string`) return discard();
+    const normalizedP = this.resolve(p);
+    const zipInfo = this.findZip(normalizedP);
+    if (!zipInfo) return discard();
+    if (requireSubpath && zipInfo.subPath === `/`) return discard();
+    return this.getZipSync(zipInfo.archivePath, zipFs => accept(zipFs, zipInfo));
+  }
+
+  findZip(p) {
+    if (this.filter && !this.filter.test(p)) return null;
+    let filePath = ``;
+
+    while (true) {
+      const parts = FILE_PARTS_REGEX.exec(p.substr(filePath.length));
+      if (!parts) return null;
+      filePath = this.pathUtils.join(filePath, parts[0]);
+
+      if (this.isZip.has(filePath) === false) {
+        if (this.notZip.has(filePath)) continue;
+
+        try {
+          if (!this.baseFs.lstatSync(filePath).isFile()) {
+            this.notZip.add(filePath);
+            continue;
+          }
+        } catch (_a) {
+          return null;
+        }
+
+        this.isZip.add(filePath);
+      }
+
+      return {
+        archivePath: filePath,
+        subPath: this.pathUtils.resolve(sources_path/* PortablePath.root */.LZ.root, p.substr(filePath.length))
+      };
+    }
+  }
+
+  limitOpenFiles(max) {
+    if (this.zipInstances === null) return;
+    let closeCount = this.zipInstances.size - max;
+
+    for (const [path, zipFs] of this.zipInstances.entries()) {
+      if (closeCount <= 0) break;
+      zipFs.saveAndClose();
+      this.zipInstances.delete(path);
+      closeCount -= 1;
+    }
+  }
+
+  async getZipPromise(p, accept) {
+    const getZipOptions = async () => ({
+      baseFs: this.baseFs,
+      libzip: this.libzip,
+      readOnly: this.readOnlyArchives,
+      stats: await this.baseFs.statPromise(p)
+    });
+
+    if (this.zipInstances) {
+      let zipFs = this.zipInstances.get(p);
+
+      if (!zipFs) {
+        const zipOptions = await getZipOptions(); // We need to recheck because concurrent getZipPromise calls may
+        // have instantiated the zip archive while we were waiting
+
+        zipFs = this.zipInstances.get(p);
+
+        if (!zipFs) {
+          zipFs = new ZipFS(p, zipOptions);
+        }
+      } // Removing then re-adding the field allows us to easily implement
+      // a basic LRU garbage collection strategy
+
+
+      this.zipInstances.delete(p);
+      this.zipInstances.set(p, zipFs);
+      this.limitOpenFiles(this.maxOpenFiles);
+      return await accept(zipFs);
+    } else {
+      const zipFs = new ZipFS(p, await getZipOptions());
+
+      try {
+        return await accept(zipFs);
+      } finally {
+        zipFs.saveAndClose();
+      }
+    }
+  }
+
+  getZipSync(p, accept) {
+    const getZipOptions = () => ({
+      baseFs: this.baseFs,
+      libzip: this.libzip,
+      readOnly: this.readOnlyArchives,
+      stats: this.baseFs.statSync(p)
+    });
+
+    if (this.zipInstances) {
+      let zipFs = this.zipInstances.get(p);
+      if (!zipFs) zipFs = new ZipFS(p, getZipOptions()); // Removing then re-adding the field allows us to easily implement
+      // a basic LRU garbage collection strategy
+
+      this.zipInstances.delete(p);
+      this.zipInstances.set(p, zipFs);
+      this.limitOpenFiles(this.maxOpenFiles);
+      return accept(zipFs);
+    } else {
+      const zipFs = new ZipFS(p, getZipOptions());
+
+      try {
+        return accept(zipFs);
+      } finally {
+        zipFs.saveAndClose();
+      }
+    }
+  }
+
+}
+// CONCATENATED MODULE: ../yarnpkg-libzip/sources/makeInterface.ts
+const number64 = [`number`, `number`];
+const makeInterface = libzip => ({
+  // Those are getters because they can change after memory growth
+  get HEAP8() {
+    return libzip.HEAP8;
+  },
+
+  get HEAPU8() {
+    return libzip.HEAPU8;
+  },
+
+  SEEK_SET: 0,
+  SEEK_CUR: 1,
+  SEEK_END: 2,
+  ZIP_CHECKCONS: 4,
+  ZIP_CREATE: 1,
+  ZIP_EXCL: 2,
+  ZIP_TRUNCATE: 8,
+  ZIP_RDONLY: 16,
+  ZIP_FL_OVERWRITE: 8192,
+  ZIP_OPSYS_DOS: 0x00,
+  ZIP_OPSYS_AMIGA: 0x01,
+  ZIP_OPSYS_OPENVMS: 0x02,
+  ZIP_OPSYS_UNIX: 0x03,
+  ZIP_OPSYS_VM_CMS: 0x04,
+  ZIP_OPSYS_ATARI_ST: 0x05,
+  ZIP_OPSYS_OS_2: 0x06,
+  ZIP_OPSYS_MACINTOSH: 0x07,
+  ZIP_OPSYS_Z_SYSTEM: 0x08,
+  ZIP_OPSYS_CPM: 0x09,
+  ZIP_OPSYS_WINDOWS_NTFS: 0x0a,
+  ZIP_OPSYS_MVS: 0x0b,
+  ZIP_OPSYS_VSE: 0x0c,
+  ZIP_OPSYS_ACORN_RISC: 0x0d,
+  ZIP_OPSYS_VFAT: 0x0e,
+  ZIP_OPSYS_ALTERNATE_MVS: 0x0f,
+  ZIP_OPSYS_BEOS: 0x10,
+  ZIP_OPSYS_TANDEM: 0x11,
+  ZIP_OPSYS_OS_400: 0x12,
+  ZIP_OPSYS_OS_X: 0x13,
+  ZIP_CM_DEFAULT: -1,
+  ZIP_CM_STORE: 0,
+  ZIP_CM_DEFLATE: 8,
+  uint08S: libzip._malloc(1),
+  uint16S: libzip._malloc(2),
+  uint32S: libzip._malloc(4),
+  uint64S: libzip._malloc(8),
+  malloc: libzip._malloc,
+  free: libzip._free,
+  getValue: libzip.getValue,
+  open: libzip.cwrap(`zip_open`, `number`, [`string`, `number`, `number`]),
+  openFromSource: libzip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]),
+  close: libzip.cwrap(`zip_close`, `number`, [`number`]),
+  discard: libzip.cwrap(`zip_discard`, null, [`number`]),
+  getError: libzip.cwrap(`zip_get_error`, `number`, [`number`]),
+  getName: libzip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]),
+  getNumEntries: libzip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]),
+  stat: libzip.cwrap(`zip_stat`, `number`, [`number`, `string`, `number`, `number`]),
+  statIndex: libzip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]),
+  fopen: libzip.cwrap(`zip_fopen`, `number`, [`number`, `string`, `number`]),
+  fopenIndex: libzip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]),
+  fread: libzip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]),
+  fclose: libzip.cwrap(`zip_fclose`, `number`, [`number`]),
+  dir: {
+    add: libzip.cwrap(`zip_dir_add`, `number`, [`number`, `string`])
+  },
+  file: {
+    add: libzip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]),
+    getError: libzip.cwrap(`zip_file_get_error`, `number`, [`number`]),
+    getExternalAttributes: libzip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
+    setExternalAttributes: libzip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
+    setMtime: libzip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]),
+    setCompression: libzip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`])
+  },
+  ext: {
+    countSymlinks: libzip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`])
+  },
+  error: {
+    initWithCode: libzip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]),
+    strerror: libzip.cwrap(`zip_error_strerror`, `string`, [`number`])
+  },
+  name: {
+    locate: libzip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`])
+  },
+  source: {
+    fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, `number`, `number`, `number`]),
+    fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]),
+    free: libzip.cwrap(`zip_source_free`, null, [`number`]),
+    keep: libzip.cwrap(`zip_source_keep`, null, [`number`]),
+    open: libzip.cwrap(`zip_source_open`, `number`, [`number`]),
+    close: libzip.cwrap(`zip_source_close`, `number`, [`number`]),
+    seek: libzip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]),
+    tell: libzip.cwrap(`zip_source_tell`, `number`, [`number`]),
+    read: libzip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]),
+    error: libzip.cwrap(`zip_source_error`, `number`, [`number`]),
+    setMtime: libzip.cwrap(`zip_source_set_mtime`, `number`, [`number`, `number`])
+  },
+  struct: {
+    stat: libzip.cwrap(`zipstruct_stat`, `number`, []),
+    statS: libzip.cwrap(`zipstruct_statS`, `number`, []),
+    statName: libzip.cwrap(`zipstruct_stat_name`, `string`, [`number`]),
+    statIndex: libzip.cwrap(`zipstruct_stat_index`, `number`, [`number`]),
+    statSize: libzip.cwrap(`zipstruct_stat_size`, `number`, [`number`]),
+    statMtime: libzip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]),
+    error: libzip.cwrap(`zipstruct_error`, `number`, []),
+    errorS: libzip.cwrap(`zipstruct_errorS`, `number`, [])
+  }
+});
+// CONCATENATED MODULE: ../yarnpkg-libzip/sources/sync.ts
+
+let mod = null;
+function getLibzipSync() {
+  if (mod === null) mod = makeInterface(__webpack_require__(368));
+  return mod;
+}
+async function getLibzipPromise() {
+  return getLibzipSync();
+}
+// EXTERNAL MODULE: external "module"
+var external_module_ = __webpack_require__(282);
+var external_module_default = /*#__PURE__*/__webpack_require__.n(external_module_);
+
+// EXTERNAL MODULE: external "string_decoder"
+var external_string_decoder_ = __webpack_require__(304);
+var external_string_decoder_default = /*#__PURE__*/__webpack_require__.n(external_string_decoder_);
+
+// EXTERNAL MODULE: external "os"
+var external_os_ = __webpack_require__(87);
+var external_os_default = /*#__PURE__*/__webpack_require__.n(external_os_);
+
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/index.ts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function getTempName(prefix) {
+  const tmpdir = sources_path/* npath.toPortablePath */.cS.toPortablePath(external_os_default().tmpdir());
+  const hash = Math.ceil(Math.random() * 0x100000000).toString(16).padStart(8, `0`);
+  return sources_path/* ppath.join */.y1.join(tmpdir, `${prefix}${hash}`);
+}
+
+function patchFs(patchedFs, fakeFs) {
+  const SYNC_IMPLEMENTATIONS = new Set([`accessSync`, `appendFileSync`, `createReadStream`, `chmodSync`, `closeSync`, `copyFileSync`, `lstatSync`, `lutimesSync`, `mkdirSync`, `openSync`, `readSync`, `readlinkSync`, `readFileSync`, `readdirSync`, `readlinkSync`, `realpathSync`, `renameSync`, `rmdirSync`, `statSync`, `symlinkSync`, `unlinkSync`, `utimesSync`, `watch`, `writeFileSync`, `writeSync`]);
+  const ASYNC_IMPLEMENTATIONS = new Set([`accessPromise`, `appendFilePromise`, `chmodPromise`, `closePromise`, `copyFilePromise`, `lstatPromise`, `lutimesPromise`, `mkdirPromise`, `openPromise`, `readdirPromise`, `realpathPromise`, `readFilePromise`, `readdirPromise`, `readlinkPromise`, `renamePromise`, `rmdirPromise`, `statPromise`, `symlinkPromise`, `unlinkPromise`, `utimesPromise`, `writeFilePromise`, `writeSync`]);
+
+  const setupFn = (target, name, replacement) => {
+    const orig = target[name];
+    target[name] = replacement;
+
+    if (typeof orig[external_util_.promisify.custom] !== `undefined`) {
+      replacement[external_util_.promisify.custom] = orig[external_util_.promisify.custom];
+    }
+  };
+  /** Callback implementations */
+
+
+  {
+    setupFn(patchedFs, `exists`, (p, ...args) => {
+      const hasCallback = typeof args[args.length - 1] === `function`;
+      const callback = hasCallback ? args.pop() : () => {};
+      process.nextTick(() => {
+        fakeFs.existsPromise(p).then(exists => {
+          callback(exists);
+        }, () => {
+          callback(false);
+        });
+      });
+    });
+    setupFn(patchedFs, `read`, (p, buffer, ...args) => {
+      const hasCallback = typeof args[args.length - 1] === `function`;
+      const callback = hasCallback ? args.pop() : () => {};
+      process.nextTick(() => {
+        fakeFs.readPromise(p, buffer, ...args).then(bytesRead => {
+          callback(null, bytesRead, buffer);
+        }, error => {
+          callback(error);
+        });
+      });
+    });
+
+    for (const fnName of ASYNC_IMPLEMENTATIONS) {
+      const origName = fnName.replace(/Promise$/, ``);
+      if (typeof patchedFs[origName] === `undefined`) continue;
+      const fakeImpl = fakeFs[fnName];
+      if (typeof fakeImpl === `undefined`) continue;
+
+      const wrapper = (...args) => {
+        const hasCallback = typeof args[args.length - 1] === `function`;
+        const callback = hasCallback ? args.pop() : () => {};
+        process.nextTick(() => {
+          fakeImpl.apply(fakeFs, args).then(result => {
+            callback(null, result);
+          }, error => {
+            callback(error);
+          });
+        });
+      };
+
+      setupFn(patchedFs, origName, wrapper);
+    }
+
+    patchedFs.realpath.native = patchedFs.realpath;
+  }
+  /** Sync implementations */
+
+  {
+    setupFn(patchedFs, `existsSync`, p => {
+      try {
+        return fakeFs.existsSync(p);
+      } catch (error) {
+        return false;
+      }
+    });
+
+    for (const fnName of SYNC_IMPLEMENTATIONS) {
+      const origName = fnName;
+      if (typeof patchedFs[origName] === `undefined`) continue;
+      const fakeImpl = fakeFs[fnName];
+      if (typeof fakeImpl === `undefined`) continue;
+      setupFn(patchedFs, origName, fakeImpl.bind(fakeFs));
+    }
+
+    patchedFs.realpathSync.native = patchedFs.realpathSync;
+  }
+  /** Promise implementations */
+
+  {
+    // `fs.promises` is a getter that returns a reference to require(`fs/promises`),
+    // so we can just patch `fs.promises` and both will be updated
+    const patchedFsPromises = patchedFs.promises;
+
+    if (typeof patchedFsPromises !== `undefined`) {
+      // `fs.promises.exists` doesn't exist
+      for (const fnName of ASYNC_IMPLEMENTATIONS) {
+        const origName = fnName.replace(/Promise$/, ``);
+        if (typeof patchedFsPromises[origName] === `undefined`) continue;
+        const fakeImpl = fakeFs[fnName];
+        if (typeof fakeImpl === `undefined`) continue;
+        setupFn(patchedFsPromises, origName, fakeImpl.bind(fakeFs));
+      } // `fs.promises.realpath` doesn't have a `native` property
+
+    }
+  }
+}
+function extendFs(realFs, fakeFs) {
+  const patchedFs = Object.create(realFs);
+  patchFs(patchedFs, fakeFs);
+  return patchedFs;
+}
+const tmpdirs = new Set();
+let cleanExitRegistered = false;
+
+function registerCleanExit() {
+  if (!cleanExitRegistered) cleanExitRegistered = true;else return;
+
+  const cleanExit = () => {
+    process.off(`exit`, cleanExit);
+
+    for (const p of tmpdirs) {
+      tmpdirs.delete(p);
+
+      try {
+        xfs.removeSync(p);
+      } catch (_a) {// Too bad if there's an error
+      }
+    }
+  };
+
+  process.on(`exit`, cleanExit);
+}
+
+const xfs = Object.assign(new NodeFS(), {
+  detachTemp(p) {
+    tmpdirs.delete(p);
+  },
+
+  mktempSync(cb) {
+    registerCleanExit();
+
+    while (true) {
+      const p = getTempName(`xfs-`);
+
+      try {
+        this.mkdirSync(p);
+      } catch (error) {
+        if (error.code === `EEXIST`) {
+          continue;
+        } else {
+          throw error;
+        }
+      }
+
+      const realP = this.realpathSync(p);
+      tmpdirs.add(realP);
+
+      if (typeof cb !== `undefined`) {
+        try {
+          return cb(realP);
+        } finally {
+          if (tmpdirs.has(realP)) {
+            tmpdirs.delete(realP);
+
+            try {
+              this.removeSync(realP);
+            } catch (_a) {// Too bad if there's an error
+            }
+          }
+        }
+      } else {
+        return p;
+      }
+    }
+  },
+
+  async mktempPromise(cb) {
+    registerCleanExit();
+
+    while (true) {
+      const p = getTempName(`xfs-`);
+
+      try {
+        await this.mkdirPromise(p);
+      } catch (error) {
+        if (error.code === `EEXIST`) {
+          continue;
+        } else {
+          throw error;
+        }
+      }
+
+      const realP = await this.realpathPromise(p);
+      tmpdirs.add(realP);
+
+      if (typeof cb !== `undefined`) {
+        try {
+          return await cb(realP);
+        } finally {
+          if (tmpdirs.has(realP)) {
+            tmpdirs.delete(realP);
+
+            try {
+              await this.removePromise(realP);
+            } catch (_a) {// Too bad if there's an error
+            }
+          }
+        }
+      } else {
+        return realP;
+      }
+    }
+  }
+
+});
+// CONCATENATED MODULE: ../yarnpkg-fslib/sources/PosixFS.ts
+
+
+class PosixFS extends ProxiedFS {
+  constructor(baseFs) {
+    super(sources_path/* npath */.cS);
+    this.baseFs = baseFs;
+  }
+
+  mapFromBase(path) {
+    return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(path);
+  }
+
+  mapToBase(path) {
+    return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
+  }
+
+}
+// EXTERNAL MODULE: external "url"
+var external_url_ = __webpack_require__(835);
+
+// CONCATENATED MODULE: ./sources/loader/internalTools.ts
+var ErrorCode;
+
+(function (ErrorCode) {
+  ErrorCode["API_ERROR"] = "API_ERROR";
+  ErrorCode["BLACKLISTED"] = "BLACKLISTED";
+  ErrorCode["BUILTIN_NODE_RESOLUTION_FAILED"] = "BUILTIN_NODE_RESOLUTION_FAILED";
+  ErrorCode["MISSING_DEPENDENCY"] = "MISSING_DEPENDENCY";
+  ErrorCode["MISSING_PEER_DEPENDENCY"] = "MISSING_PEER_DEPENDENCY";
+  ErrorCode["QUALIFIED_PATH_RESOLUTION_FAILED"] = "QUALIFIED_PATH_RESOLUTION_FAILED";
+  ErrorCode["INTERNAL"] = "INTERNAL";
+  ErrorCode["UNDECLARED_DEPENDENCY"] = "UNDECLARED_DEPENDENCY";
+  ErrorCode["UNSUPPORTED"] = "UNSUPPORTED";
+})(ErrorCode || (ErrorCode = {})); // Some errors are exposed as MODULE_NOT_FOUND for compatibility with packages
+// that expect this umbrella error when the resolution fails
+
+
+const MODULE_NOT_FOUND_ERRORS = new Set([ErrorCode.BLACKLISTED, ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, ErrorCode.MISSING_DEPENDENCY, ErrorCode.MISSING_PEER_DEPENDENCY, ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, ErrorCode.UNDECLARED_DEPENDENCY]);
+/**
+ * Simple helper function that assign an error code to an error, so that it can more easily be caught and used
+ * by third-parties.
+ */
+
+function internalTools_makeError(pnpCode, message, data = {}) {
+  const code = MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode;
+  const propertySpec = {
+    configurable: true,
+    writable: true,
+    enumerable: false
+  };
+  return Object.defineProperties(new Error(message), {
+    code: { ...propertySpec,
+      value: code
+    },
+    pnpCode: { ...propertySpec,
+      value: pnpCode
+    },
+    data: { ...propertySpec,
+      value: data
+    }
+  });
+}
+/**
+ * Returns the module that should be used to resolve require calls. It's usually the direct parent, except if we're
+ * inside an eval expression.
+ */
+
+function getIssuerModule(parent) {
+  let issuer = parent;
+
+  while (issuer && (issuer.id === `[eval]` || issuer.id === `<repl>` || !issuer.filename)) issuer = issuer.parent;
+
+  return issuer || null;
+}
+// CONCATENATED MODULE: ./sources/loader/applyPatch.ts
+
+
+
+
+
+function applyPatch(pnpapi, opts) {
+  // @ts-ignore
+  const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`)));
+  /**
+   * The cache that will be used for all accesses occuring outside of a PnP context.
+   */
+
+  const defaultCache = {};
+  /**
+   * Used to disable the resolution hooks (for when we want to fallback to the previous resolution - we then need
+   * a way to "reset" the environment temporarily)
+   */
+
+  let enableNativeHooks = true; // @ts-ignore
+
+  process.versions.pnp = String(pnpapi.VERSIONS.std); // @ts-ignore
+
+  const moduleExports = __webpack_require__(282); // @ts-ignore
+
+
+  moduleExports.findPnpApi = lookupSource => {
+    const lookupPath = lookupSource instanceof external_url_.URL ? (0,external_url_.fileURLToPath)(lookupSource) : lookupSource;
+    const apiPath = opts.manager.findApiPathFor(lookupPath);
+    if (apiPath === null) return null;
+    const apiEntry = opts.manager.getApiEntry(apiPath, true);
+    return apiEntry.instance;
+  };
+
+  function getRequireStack(parent) {
+    const requireStack = [];
+
+    for (let cursor = parent; cursor; cursor = cursor.parent) requireStack.push(cursor.filename || cursor.id);
+
+    return requireStack;
+  } // A small note: we don't replace the cache here (and instead use the native one). This is an effort to not
+  // break code similar to "delete require.cache[require.resolve(FOO)]", where FOO is a package located outside
+  // of the Yarn dependency tree. In this case, we defer the load to the native loader. If we were to replace the
+  // cache by our own, the native loader would populate its own cache, which wouldn't be exposed anymore, so the
+  // delete call would be broken.
+
+
+  const originalModuleLoad = external_module_.Module._load;
+
+  external_module_.Module._load = function (request, parent, isMain) {
+    if (!enableNativeHooks) return originalModuleLoad.call(external_module_.Module, request, parent, isMain); // Builtins are managed by the regular Node loader
+
+    if (builtinModules.has(request)) {
+      try {
+        enableNativeHooks = false;
+        return originalModuleLoad.call(external_module_.Module, request, parent, isMain);
+      } finally {
+        enableNativeHooks = true;
+      }
+    }
+
+    const parentApiPath = opts.manager.getApiPathFromParent(parent);
+    const parentApi = parentApiPath !== null ? opts.manager.getApiEntry(parentApiPath, true).instance : null; // Requests that aren't covered by the PnP runtime goes through the
+    // parent `_load` implementation. This is required for VSCode, for example,
+    // which override `_load` to provide additional builtins to its extensions.
+
+    if (parentApi === null) return originalModuleLoad(request, parent, isMain); // The 'pnpapi' name is reserved to return the PnP api currently in use
+    // by the program
+
+    if (request === `pnpapi`) return parentApi; // Request `Module._resolveFilename` (ie. `resolveRequest`) to tell us
+    // which file we should load
+
+    const modulePath = external_module_.Module._resolveFilename(request, parent, isMain); // We check whether the module is owned by the dependency tree of the
+    // module that required it. If it isn't, then we need to create a new
+    // store and possibly load its sandboxed PnP runtime.
+
+
+    const isOwnedByRuntime = parentApi !== null ? parentApi.findPackageLocator(modulePath) !== null : false;
+    const moduleApiPath = isOwnedByRuntime ? parentApiPath : opts.manager.findApiPathFor(sources_path/* npath.dirname */.cS.dirname(modulePath));
+    const entry = moduleApiPath !== null ? opts.manager.getApiEntry(moduleApiPath) : {
+      instance: null,
+      cache: defaultCache
+    }; // Check if the module has already been created for the given file
+
+    const cacheEntry = entry.cache[modulePath];
+    if (cacheEntry) return cacheEntry.exports; // Create a new module and store it into the cache
+    // @ts-ignore
+
+    const module = new external_module_.Module(modulePath, parent); // @ts-ignore
+
+    module.pnpApiPath = moduleApiPath;
+    entry.cache[modulePath] = module; // The main module is exposed as global variable
+
+    if (isMain) {
+      // @ts-ignore
+      process.mainModule = module;
+      module.id = `.`;
+    } // Try to load the module, and remove it from the cache if it fails
+
+
+    let hasThrown = true;
+
+    try {
+      // @ts-ignore
+      module.load(modulePath);
+      hasThrown = false;
+    } finally {
+      if (hasThrown) {
+        delete external_module_.Module._cache[modulePath];
+      }
+    }
+
+    return module.exports;
+  };
+
+  function getIssuerSpecsFromPaths(paths) {
+    return paths.map(path => ({
+      apiPath: opts.manager.findApiPathFor(path),
+      path,
+      module: null
+    }));
+  }
+
+  function getIssuerSpecsFromModule(module) {
+    const issuer = getIssuerModule(module);
+    const issuerPath = issuer !== null ? sources_path/* npath.dirname */.cS.dirname(issuer.filename) : process.cwd();
+    return [{
+      apiPath: opts.manager.getApiPathFromParent(issuer),
+      path: issuerPath,
+      module
+    }];
+  }
+
+  function makeFakeParent(path) {
+    const fakeParent = new external_module_.Module(``);
+    const fakeFilePath = sources_path/* npath.join */.cS.join(path, `[file]`);
+    fakeParent.paths = external_module_.Module._nodeModulePaths(fakeFilePath);
+    return fakeParent;
+  } // Splits a require request into its components, or return null if the request is a file path
+
+
+  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
+  const originalModuleResolveFilename = external_module_.Module._resolveFilename;
+
+  external_module_.Module._resolveFilename = function (request, parent, isMain, options) {
+    if (builtinModules.has(request)) return request;
+    if (!enableNativeHooks) return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, options);
+
+    if (options && options.plugnplay === false) {
+      const {
+        plugnplay,
+        ...rest
+      } = options; // Workaround a bug present in some version of Node (now fixed)
+      // https://github.com/nodejs/node/pull/28078
+
+      const forwardedOptions = Object.keys(rest).length > 0 ? rest : undefined;
+
+      try {
+        enableNativeHooks = false;
+        return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, forwardedOptions);
+      } finally {
+        enableNativeHooks = true;
+      }
+    } // We check that all the options present here are supported; better
+    // to fail fast than to introduce subtle bugs in the runtime.
+
+
+    if (options) {
+      const optionNames = new Set(Object.keys(options));
+      optionNames.delete(`paths`);
+      optionNames.delete(`plugnplay`);
+
+      if (optionNames.size > 0) {
+        throw internalTools_makeError(ErrorCode.UNSUPPORTED, `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})`);
+      }
+    }
+
+    const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent);
+
+    if (request.match(pathRegExp) === null) {
+      const parentDirectory = (parent === null || parent === void 0 ? void 0 : parent.filename) != null ? sources_path/* npath.dirname */.cS.dirname(parent.filename) : null;
+      const absoluteRequest = sources_path/* npath.isAbsolute */.cS.isAbsolute(request) ? request : parentDirectory !== null ? sources_path/* npath.resolve */.cS.resolve(parentDirectory, request) : null;
+
+      if (absoluteRequest !== null) {
+        const apiPath = parentDirectory === sources_path/* npath.dirname */.cS.dirname(absoluteRequest) && (parent === null || parent === void 0 ? void 0 : parent.pnpApiPath) ? parent.pnpApiPath : opts.manager.findApiPathFor(absoluteRequest);
+
+        if (apiPath !== null) {
+          issuerSpecs.unshift({
+            apiPath,
+            path: parentDirectory,
+            module: null
+          });
+        }
+      }
+    }
+
+    let firstError;
+
+    for (const {
+      apiPath,
+      path,
+      module
+    } of issuerSpecs) {
+      let resolution;
+      const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null;
+
+      try {
+        if (issuerApi !== null) {
+          resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null);
+        } else {
+          if (path === null) throw new Error(`Assertion failed: Expected the path to be set`);
+          resolution = originalModuleResolveFilename.call(external_module_.Module, request, module || makeFakeParent(path), isMain);
+        }
+      } catch (error) {
+        firstError = firstError || error;
+        continue;
+      }
+
+      if (resolution !== null) {
+        return resolution;
+      }
+    }
+
+    const requireStack = getRequireStack(parent);
+    Object.defineProperty(firstError, `requireStack`, {
+      configurable: true,
+      writable: true,
+      enumerable: false,
+      value: requireStack
+    });
+    if (requireStack.length > 0) firstError.message += `\nRequire stack:\n- ${requireStack.join(`\n- `)}`;
+    throw firstError;
+  };
+
+  const originalFindPath = external_module_.Module._findPath;
+
+  external_module_.Module._findPath = function (request, paths, isMain) {
+    if (request === `pnpapi`) return false;
+    if (!enableNativeHooks) return originalFindPath.call(external_module_.Module, request, paths, isMain);
+
+    for (const path of paths || []) {
+      let resolution;
+
+      try {
+        const pnpApiPath = opts.manager.findApiPathFor(path);
+
+        if (pnpApiPath !== null) {
+          const api = opts.manager.getApiEntry(pnpApiPath, true).instance;
+          resolution = api.resolveRequest(request, path) || false;
+        } else {
+          resolution = originalFindPath.call(external_module_.Module, request, [path], isMain);
+        }
+      } catch (error) {
+        continue;
+      }
+
+      if (resolution) {
+        return resolution;
+      }
+    }
+
+    return false;
+  };
+
+  patchFs((external_fs_default()), new PosixFS(opts.fakeFs));
+}
+// CONCATENATED MODULE: ./sources/loader/hydrateRuntimeState.ts
+
+function hydrateRuntimeState(data, {
+  basePath
+}) {
+  const portablePath = sources_path/* npath.toPortablePath */.cS.toPortablePath(basePath);
+  const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null;
+  const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => {
+    return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => {
+      return [packageReference, {
+        packageLocation: sources_path/* ppath.resolve */.y1.resolve(portablePath, packageInformationData.packageLocation),
+        packageDependencies: new Map(packageInformationData.packageDependencies),
+        packagePeers: new Set(packageInformationData.packagePeers),
+        linkType: packageInformationData.linkType,
+        discardFromLookup: packageInformationData.discardFromLookup || false
+      }];
+    }))];
+  }));
+  const packageLocatorsByLocations = new Map();
+  const packageLocationLengths = new Set();
+
+  for (const [packageName, storeData] of data.packageRegistryData) {
+    for (const [packageReference, packageInformationData] of storeData) {
+      if (packageName === null !== (packageReference === null)) throw new Error(`Assertion failed: The name and reference should be null, or neither should`);
+      if (packageInformationData.discardFromLookup) continue; // @ts-ignore: TypeScript isn't smart enough to understand the type assertion
+
+      const packageLocator = {
+        name: packageName,
+        reference: packageReference
+      };
+      packageLocatorsByLocations.set(packageInformationData.packageLocation, packageLocator);
+      packageLocationLengths.add(packageInformationData.packageLocation.length);
+    }
+  }
+
+  for (const location of data.locationBlacklistData) packageLocatorsByLocations.set(location, null);
+
+  const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => {
+    return [packageName, new Set(packageReferences)];
+  }));
+  const fallbackPool = new Map(data.fallbackPool);
+  const dependencyTreeRoots = data.dependencyTreeRoots;
+  const enableTopLevelFallback = data.enableTopLevelFallback;
+  return {
+    basePath: portablePath,
+    dependencyTreeRoots,
+    enableTopLevelFallback,
+    fallbackExclusionList,
+    fallbackPool,
+    ignorePattern,
+    packageLocationLengths: [...packageLocationLengths].sort((a, b) => b - a),
+    packageLocatorsByLocations,
+    packageRegistry
+  };
+}
+// CONCATENATED MODULE: ./sources/loader/makeApi.ts
+
+
+
+
+function makeApi(runtimeState, opts) {
+  const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0;
+  const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); // @ts-ignore
+
+  const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`))); // Splits a require request into its components, or return null if the request is a file path
+
+  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; // Matches if the path starts with a valid path qualifier (./, ../, /)
+  // eslint-disable-next-line no-unused-vars
+
+  const isStrictRegExp = /^\.{0,2}\//; // Matches if the path must point to a directory (ie ends with /)
+
+  const isDirRegExp = /\/$/; // We only instantiate one of those so that we can use strict-equal comparisons
+
+  const topLevelLocator = {
+    name: null,
+    reference: null
+  }; // Used for compatibility purposes - cf setupCompatibilityLayer
+
+  const fallbackLocators = []; // To avoid emitting the same warning multiple times
+
+  const emittedWarnings = new Set();
+
+  if (opts.compatibilityMode !== false) {
+    // ESLint currently doesn't have any portable way for shared configs to
+    // specify their own plugins that should be used (cf issue #10125). This
+    // will likely get fixed at some point but it'll take time, so in the
+    // meantime we'll just add additional fallback entries for common shared
+    // configs.
+    // Similarly, Gatsby generates files within the `public` folder located
+    // within the project, but doesn't pre-resolve the `require` calls to use
+    // its own dependencies. Meaning that when PnP see a file from the `public`
+    // folder making a require, it thinks that your project forgot to list one
+    // of your dependencies.
+    for (const name of [`react-scripts`, `gatsby`]) {
+      const packageStore = runtimeState.packageRegistry.get(name);
+
+      if (packageStore) {
+        for (const reference of packageStore.keys()) {
+          if (reference === null) {
+            throw new Error(`Assertion failed: This reference shouldn't be null`);
+          } else {
+            fallbackLocators.push({
+              name,
+              reference
+            });
+          }
+        }
+      }
+    }
+  }
+  /**
+   * The setup code will be injected here. The tables listed below are guaranteed to be filled after the call to
+   * the $$DYNAMICALLY_GENERATED_CODE function.
+   */
+
+
+  const {
+    ignorePattern,
+    packageRegistry,
+    packageLocatorsByLocations,
+    packageLocationLengths
+  } = runtimeState;
+  /**
+   * Allows to print useful logs just be setting a value in the environment
+   */
+
+  function makeLogEntry(name, args) {
+    return {
+      fn: name,
+      args,
+      error: null,
+      result: null
+    };
+  }
+
+  function maybeLog(name, fn) {
+    if (opts.allowDebug === false) return fn;
+
+    if (Number.isFinite(debugLevel)) {
+      if (debugLevel >= 2) {
+        return (...args) => {
+          const logEntry = makeLogEntry(name, args);
+
+          try {
+            return logEntry.result = fn(...args);
+          } catch (error) {
+            throw logEntry.error = error;
+          } finally {
+            console.trace(logEntry);
+          }
+        };
+      } else if (debugLevel >= 1) {
+        return (...args) => {
+          try {
+            return fn(...args);
+          } catch (error) {
+            const logEntry = makeLogEntry(name, args);
+            logEntry.error = error;
+            console.trace(logEntry);
+            throw error;
+          }
+        };
+      }
+    }
+
+    return fn;
+  }
+  /**
+   * Returns information about a package in a safe way (will throw if they cannot be retrieved)
+   */
+
+
+  function getPackageInformationSafe(packageLocator) {
+    const packageInformation = getPackageInformation(packageLocator);
+
+    if (!packageInformation) {
+      throw internalTools_makeError(ErrorCode.INTERNAL, `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)`);
+    }
+
+    return packageInformation;
+  }
+  /**
+   * Returns whether the specified locator is a dependency tree root (in which case it's part of the project) or not
+   */
+
+
+  function isDependencyTreeRoot(packageLocator) {
+    if (packageLocator.name === null) return true;
+
+    for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) return true;
+
+    return false;
+  }
+  /**
+   * Implements the node resolution for folder access and extension selection
+   */
+
+
+  function applyNodeExtensionResolution(unqualifiedPath, candidates, {
+    extensions
+  }) {
+    let stat;
+
+    try {
+      candidates.push(unqualifiedPath);
+      stat = opts.fakeFs.statSync(unqualifiedPath);
+    } catch (error) {} // If the file exists and is a file, we can stop right there
+
+
+    if (stat && !stat.isDirectory()) return opts.fakeFs.realpathSync(unqualifiedPath); // If the file is a directory, we must check if it contains a package.json with a "main" entry
+
+    if (stat && stat.isDirectory()) {
+      let pkgJson;
+
+      try {
+        pkgJson = JSON.parse(opts.fakeFs.readFileSync(sources_path/* ppath.join */.y1.join(unqualifiedPath, `package.json`), `utf8`));
+      } catch (error) {}
+
+      let nextUnqualifiedPath;
+      if (pkgJson && pkgJson.main) nextUnqualifiedPath = sources_path/* ppath.resolve */.y1.resolve(unqualifiedPath, pkgJson.main); // If the "main" field changed the path, we start again from this new location
+
+      if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) {
+        const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, {
+          extensions
+        });
+
+        if (resolution !== null) {
+          return resolution;
+        }
+      }
+    } // Otherwise we check if we find a file that match one of the supported extensions
+
+
+    for (let i = 0, length = extensions.length; i < length; i++) {
+      const candidateFile = `${unqualifiedPath}${extensions[i]}`;
+      candidates.push(candidateFile);
+
+      if (opts.fakeFs.existsSync(candidateFile)) {
+        return candidateFile;
+      }
+    } // Otherwise, we check if the path is a folder - in such a case, we try to use its index
+
+
+    if (stat && stat.isDirectory()) {
+      for (let i = 0, length = extensions.length; i < length; i++) {
+        const candidateFile = sources_path/* ppath.format */.y1.format({
+          dir: unqualifiedPath,
+          name: `index`,
+          ext: extensions[i]
+        });
+        candidates.push(candidateFile);
+
+        if (opts.fakeFs.existsSync(candidateFile)) {
+          return candidateFile;
+        }
+      }
+    } // Otherwise there's nothing else we can do :(
+
+
+    return null;
+  }
+  /**
+   * This function creates fake modules that can be used with the _resolveFilename function.
+   * Ideally it would be nice to be able to avoid this, since it causes useless allocations
+   * and cannot be cached efficiently (we recompute the nodeModulePaths every time).
+   *
+   * Fortunately, this should only affect the fallback, and there hopefully shouldn't have a
+   * lot of them.
+   */
+
+
+  function makeFakeModule(path) {
+    // @ts-ignore
+    const fakeModule = new external_module_.Module(path, null);
+    fakeModule.filename = path;
+    fakeModule.paths = external_module_.Module._nodeModulePaths(path);
+    return fakeModule;
+  }
+  /**
+   * Normalize path to posix format.
+   */
+
+
+  function normalizePath(p) {
+    return sources_path/* npath.toPortablePath */.cS.toPortablePath(p);
+  }
+  /**
+   * Forward the resolution to the next resolver (usually the native one)
+   */
+
+
+  function callNativeResolution(request, issuer) {
+    if (issuer.endsWith(`/`)) issuer = sources_path/* ppath.join */.y1.join(issuer, `internal.js`); // Since we would need to create a fake module anyway (to call _resolveLookupPath that
+    // would give us the paths to give to _resolveFilename), we can as well not use
+    // the {paths} option at all, since it internally makes _resolveFilename create another
+    // fake module anyway.
+
+    return external_module_.Module._resolveFilename(request, makeFakeModule(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(issuer)), false, {
+      plugnplay: false
+    });
+  }
+  /**
+   *
+   */
+
+
+  function isPathIgnored(path) {
+    if (ignorePattern === null) return false;
+    const subPath = sources_path/* ppath.contains */.y1.contains(runtimeState.basePath, path);
+    if (subPath === null) return false;
+
+    if (ignorePattern.test(subPath.replace(/\/$/, ``))) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+  /**
+   * This key indicates which version of the standard is implemented by this resolver. The `std` key is the
+   * Plug'n'Play standard, and any other key are third-party extensions. Third-party extensions are not allowed
+   * to override the standard, and can only offer new methods.
+   *
+   * If a new version of the Plug'n'Play standard is released and some extensions conflict with newly added
+   * functions, they'll just have to fix the conflicts and bump their own version number.
+   */
+
+
+  const VERSIONS = {
+    std: 3,
+    resolveVirtual: 1
+  };
+  /**
+   * We export a special symbol for easy access to the top level locator.
+   */
+
+  const topLevel = topLevelLocator;
+  /**
+   * Gets the package information for a given locator. Returns null if they cannot be retrieved.
+   */
+
+  function getPackageInformation({
+    name,
+    reference
+  }) {
+    const packageInformationStore = packageRegistry.get(name);
+    if (!packageInformationStore) return null;
+    const packageInformation = packageInformationStore.get(reference);
+    if (!packageInformation) return null;
+    return packageInformation;
+  }
+  /**
+   * Find all packages that depend on the specified one.
+   *
+   * Note: This is a private function; we expect consumers to implement it
+   * themselves. We keep it that way because this implementation isn't
+   * optimized at all, since we only need it when printing errors.
+   */
+
+
+  function findPackageDependents({
+    name,
+    reference
+  }) {
+    const dependents = [];
+
+    for (const [dependentName, packageInformationStore] of packageRegistry) {
+      if (dependentName === null) continue;
+
+      for (const [dependentReference, packageInformation] of packageInformationStore) {
+        if (dependentReference === null) continue;
+        const dependencyReference = packageInformation.packageDependencies.get(name);
+        if (dependencyReference !== reference) continue; // Don't forget that all packages depend on themselves
+
+        if (dependentName === name && dependentReference === reference) continue;
+        dependents.push({
+          name: dependentName,
+          reference: dependentReference
+        });
+      }
+    }
+
+    return dependents;
+  }
+  /**
+   * Find all packages that broke the peer dependency on X, starting from Y.
+   *
+   * Note: This is a private function; we expect consumers to implement it
+   * themselves. We keep it that way because this implementation isn't
+   * optimized at all, since we only need it when printing errors.
+   */
+
+
+  function findBrokenPeerDependencies(dependency, initialPackage) {
+    const brokenPackages = new Map();
+    const alreadyVisited = new Set();
+
+    const traversal = currentPackage => {
+      const identifier = JSON.stringify(currentPackage.name);
+      if (alreadyVisited.has(identifier)) return;
+      alreadyVisited.add(identifier);
+      const dependents = findPackageDependents(currentPackage);
+
+      for (const dependent of dependents) {
+        const dependentInformation = getPackageInformationSafe(dependent);
+
+        if (dependentInformation.packagePeers.has(dependency)) {
+          traversal(dependent);
+        } else {
+          let brokenSet = brokenPackages.get(dependent.name);
+          if (typeof brokenSet === `undefined`) brokenPackages.set(dependent.name, brokenSet = new Set());
+          brokenSet.add(dependent.reference);
+        }
+      }
+    };
+
+    traversal(initialPackage);
+    const brokenList = [];
+
+    for (const name of [...brokenPackages.keys()].sort()) for (const reference of [...brokenPackages.get(name)].sort()) brokenList.push({
+      name,
+      reference
+    });
+
+    return brokenList;
+  }
+  /**
+   * Finds the package locator that owns the specified path. If none is found, returns null instead.
+   */
+
+
+  function findPackageLocator(location) {
+    let relativeLocation = normalizePath(sources_path/* ppath.relative */.y1.relative(runtimeState.basePath, location));
+    if (!relativeLocation.match(isStrictRegExp)) relativeLocation = `./${relativeLocation}`;
+    if (location.match(isDirRegExp) && !relativeLocation.endsWith(`/`)) relativeLocation = `${relativeLocation}/`;
+    let from = 0; // If someone wants to use a binary search to go from O(n) to O(log n), be my guest
+
+    while (from < packageLocationLengths.length && packageLocationLengths[from] > relativeLocation.length) from += 1;
+
+    for (let t = from; t < packageLocationLengths.length; ++t) {
+      const locator = packageLocatorsByLocations.get(relativeLocation.substr(0, packageLocationLengths[t]));
+      if (typeof locator === `undefined`) continue; // Ensures that the returned locator isn't a blacklisted one.
+      //
+      // Blacklisted packages are packages that cannot be used because their dependencies cannot be deduced. This only
+      // happens with peer dependencies, which effectively have different sets of dependencies depending on their
+      // parents.
+      //
+      // In order to deambiguate those different sets of dependencies, the Yarn implementation of PnP will generate a
+      // symlink for each combination of <package name>/<package version>/<dependent package> it will find, and will
+      // blacklist the target of those symlinks. By doing this, we ensure that files loaded through a specific path
+      // will always have the same set of dependencies, provided the symlinks are correctly preserved.
+      //
+      // Unfortunately, some tools do not preserve them, and when it happens PnP isn't able anymore to deduce the set of
+      // dependencies based on the path of the file that makes the require calls. But since we've blacklisted those
+      // paths, we're able to print a more helpful error message that points out that a third-party package is doing
+      // something incompatible!
+
+      if (locator === null) {
+        throw internalTools_makeError(ErrorCode.BLACKLISTED, `A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: ${location}`, {
+          location
+        });
+      }
+
+      return locator;
+    }
+
+    return null;
+  }
+  /**
+   * Transforms a request (what's typically passed as argument to the require function) into an unqualified path.
+   * This path is called "unqualified" because it only changes the package name to the package location on the disk,
+   * which means that the end result still cannot be directly accessed (for example, it doesn't try to resolve the
+   * file extension, or to resolve directories to their "index.js" content). Use the "resolveUnqualified" function
+   * to convert them to fully-qualified paths, or just use "resolveRequest" that do both operations in one go.
+   *
+   * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be
+   * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative
+   * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/").
+   */
+
+
+  function resolveToUnqualified(request, issuer, {
+    considerBuiltins = true
+  } = {}) {
+    // The 'pnpapi' request is reserved and will always return the path to the PnP file, from everywhere
+    if (request === `pnpapi`) return sources_path/* npath.toPortablePath */.cS.toPortablePath(opts.pnpapiResolution); // Bailout if the request is a native module
+
+    if (considerBuiltins && builtinModules.has(request)) return null; // We allow disabling the pnp resolution for some subpaths.
+    // This is because some projects, often legacy, contain multiple
+    // levels of dependencies (ie. a yarn.lock inside a subfolder of
+    // a yarn.lock). This is typically solved using workspaces, but
+    // not all of them have been converted already.
+
+    if (issuer && isPathIgnored(issuer)) {
+      // Absolute paths that seem to belong to a PnP tree are still
+      // handled by our runtime even if the issuer isn't. This is
+      // because the native Node resolution uses a special version
+      // of the `stat` syscall which would otherwise bypass the
+      // filesystem layer we require to access the files.
+      if (!sources_path/* ppath.isAbsolute */.y1.isAbsolute(request) || findPackageLocator(request) === null) {
+        const result = callNativeResolution(request, issuer);
+
+        if (result === false) {
+          throw internalTools_makeError(ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${request}"\nRequired by: ${issuer}\n`, {
+            request,
+            issuer
+          });
+        }
+
+        return sources_path/* npath.toPortablePath */.cS.toPortablePath(result);
+      }
+    }
+
+    let unqualifiedPath; // If the request is a relative or absolute path, we just return it normalized
+
+    const dependencyNameMatch = request.match(pathRegExp);
+
+    if (!dependencyNameMatch) {
+      if (sources_path/* ppath.isAbsolute */.y1.isAbsolute(request)) {
+        unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(request);
+      } else {
+        if (!issuer) {
+          throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, {
+            request,
+            issuer
+          });
+        } // We use ppath.join instead of ppath.resolve because:
+        // 1) The request is a relative path in this branch
+        // 2) ppath.join preserves trailing slashes
+
+
+        const absoluteIssuer = sources_path/* ppath.resolve */.y1.resolve(issuer);
+
+        if (issuer.match(isDirRegExp)) {
+          unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(sources_path/* ppath.join */.y1.join(absoluteIssuer, request));
+        } else {
+          unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(sources_path/* ppath.join */.y1.join(sources_path/* ppath.dirname */.y1.dirname(absoluteIssuer), request));
+        }
+      } // No need to use the return value; we just want to check the blacklist status
+
+
+      findPackageLocator(unqualifiedPath);
+    } // Things are more hairy if it's a package require - we then need to figure out which package is needed, and in
+    // particular the exact version for the given location on the dependency tree
+    else {
+        if (!issuer) {
+          throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, {
+            request,
+            issuer
+          });
+        }
+
+        const [, dependencyName, subPath] = dependencyNameMatch;
+        const issuerLocator = findPackageLocator(issuer); // If the issuer file doesn't seem to be owned by a package managed through pnp, then we resort to using the next
+        // resolution algorithm in the chain, usually the native Node resolution one
+
+        if (!issuerLocator) {
+          const result = callNativeResolution(request, issuer);
+
+          if (result === false) {
+            throw internalTools_makeError(ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: "${request}"\nRequired by: ${issuer}\n`, {
+              request,
+              issuer
+            });
+          }
+
+          return sources_path/* npath.toPortablePath */.cS.toPortablePath(result);
+        }
+
+        const issuerInformation = getPackageInformationSafe(issuerLocator); // We obtain the dependency reference in regard to the package that request it
+
+        let dependencyReference = issuerInformation.packageDependencies.get(dependencyName);
+        let fallbackReference = null; // If we can't find it, we check if we can potentially load it from the packages that have been defined as potential fallbacks.
+        // It's a bit of a hack, but it improves compatibility with the existing Node ecosystem. Hopefully we should eventually be able
+        // to kill this logic and become stricter once pnp gets enough traction and the affected packages fix themselves.
+
+        if (dependencyReference == null) {
+          if (issuerLocator.name !== null) {
+            // To allow programs to become gradually stricter, starting from the v2 we enforce that workspaces cannot depend on fallbacks.
+            // This works by having a list containing all their locators, and checking when a fallback is required whether it's one of them.
+            const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name);
+            const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference);
+
+            if (canUseFallbacks) {
+              for (let t = 0, T = fallbackLocators.length; t < T; ++t) {
+                const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]);
+                const reference = fallbackInformation.packageDependencies.get(dependencyName);
+                if (reference == null) continue;
+                if (alwaysWarnOnFallback) fallbackReference = reference;else dependencyReference = reference;
+                break;
+              }
+
+              if (runtimeState.enableTopLevelFallback) {
+                if (dependencyReference == null && fallbackReference === null) {
+                  const reference = runtimeState.fallbackPool.get(dependencyName);
+
+                  if (reference != null) {
+                    fallbackReference = reference;
+                  }
+                }
+              }
+            }
+          }
+        } // If we can't find the path, and if the package making the request is the top-level, we can offer nicer error messages
+
+
+        let error = null;
+
+        if (dependencyReference === null) {
+          if (isDependencyTreeRoot(issuerLocator)) {
+            error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuer}\n`, {
+              request,
+              issuer,
+              dependencyName
+            });
+          } else {
+            const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator);
+
+            if (brokenAncestors.every(ancestor => isDependencyTreeRoot(ancestor))) {
+              error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, {
+                request,
+                issuer,
+                issuerLocator: Object.assign({}, issuerLocator),
+                dependencyName,
+                brokenAncestors
+              });
+            } else {
+              error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, {
+                request,
+                issuer,
+                issuerLocator: Object.assign({}, issuerLocator),
+                dependencyName,
+                brokenAncestors
+              });
+            }
+          }
+        } else if (dependencyReference === undefined) {
+          if (isDependencyTreeRoot(issuerLocator)) {
+            error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuer}\n`, {
+              request,
+              issuer,
+              dependencyName
+            });
+          } else {
+            error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n`, {
+              request,
+              issuer,
+              issuerLocator: Object.assign({}, issuerLocator),
+              dependencyName
+            });
+          }
+        }
+
+        if (dependencyReference == null) {
+          if (fallbackReference === null || error === null) throw error || new Error(`Assertion failed: Expected an error to have been set`);
+          dependencyReference = fallbackReference;
+          const message = error.message.replace(/\n.*/g, ``);
+          error.message = message;
+
+          if (!emittedWarnings.has(message)) {
+            emittedWarnings.add(message);
+            process.emitWarning(error);
+          }
+        } // We need to check that the package exists on the filesystem, because it might not have been installed
+
+
+        const dependencyLocator = Array.isArray(dependencyReference) ? {
+          name: dependencyReference[0],
+          reference: dependencyReference[1]
+        } : {
+          name: dependencyName,
+          reference: dependencyReference
+        };
+        const dependencyInformation = getPackageInformationSafe(dependencyLocator);
+
+        if (!dependencyInformation.packageLocation) {
+          throw internalTools_makeError(ErrorCode.MISSING_DEPENDENCY, `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${dependencyLocator.name}@${dependencyLocator.reference} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n`, {
+            request,
+            issuer,
+            dependencyLocator: Object.assign({}, dependencyLocator)
+          });
+        } // Now that we know which package we should resolve to, we only have to find out the file location
+
+
+        const dependencyLocation = sources_path/* ppath.resolve */.y1.resolve(runtimeState.basePath, dependencyInformation.packageLocation);
+
+        if (subPath) {
+          unqualifiedPath = sources_path/* ppath.resolve */.y1.resolve(dependencyLocation, subPath);
+        } else {
+          unqualifiedPath = dependencyLocation;
+        }
+      }
+
+    return sources_path/* ppath.normalize */.y1.normalize(unqualifiedPath);
+  }
+  /**
+   * Transforms an unqualified path into a qualified path by using the Node resolution algorithm (which automatically
+   * appends ".js" / ".json", and transforms directory accesses into "index.js").
+   */
+
+
+  function resolveUnqualified(unqualifiedPath, {
+    extensions = Object.keys(external_module_.Module._extensions)
+  } = {}) {
+    const candidates = [];
+    const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, {
+      extensions
+    });
+
+    if (qualifiedPath) {
+      return sources_path/* ppath.normalize */.y1.normalize(qualifiedPath);
+    } else {
+      throw internalTools_makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${unqualifiedPath}\n${candidates.map(candidate => `Rejected candidate: ${candidate}\n`).join(``)}`, {
+        unqualifiedPath
+      });
+    }
+  }
+  /**
+   * Transforms a request into a fully qualified path.
+   *
+   * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be
+   * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative
+   * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/").
+   */
+
+
+  function resolveRequest(request, issuer, {
+    considerBuiltins,
+    extensions
+  } = {}) {
+    const unqualifiedPath = resolveToUnqualified(request, issuer, {
+      considerBuiltins
+    });
+    if (unqualifiedPath === null) return null;
+
+    try {
+      return resolveUnqualified(unqualifiedPath, {
+        extensions
+      });
+    } catch (resolutionError) {
+      if (resolutionError.pnpCode === `QUALIFIED_PATH_RESOLUTION_FAILED`) Object.assign(resolutionError.data, {
+        request,
+        issuer
+      });
+      throw resolutionError;
+    }
+  }
+
+  function resolveVirtual(request) {
+    const normalized = sources_path/* ppath.normalize */.y1.normalize(request);
+    const resolved = VirtualFS.resolveVirtual(normalized);
+    return resolved !== normalized ? resolved : null;
+  }
+
+  return {
+    VERSIONS,
+    topLevel,
+    getLocator: (name, referencish) => {
+      if (Array.isArray(referencish)) {
+        return {
+          name: referencish[0],
+          reference: referencish[1]
+        };
+      } else {
+        return {
+          name,
+          reference: referencish
+        };
+      }
+    },
+    getDependencyTreeRoots: () => {
+      return [...runtimeState.dependencyTreeRoots];
+    },
+    getPackageInformation: locator => {
+      const info = getPackageInformation(locator);
+      if (info === null) return null;
+      const packageLocation = sources_path/* npath.fromPortablePath */.cS.fromPortablePath(info.packageLocation);
+      const nativeInfo = { ...info,
+        packageLocation
+      };
+      return nativeInfo;
+    },
+    findPackageLocator: path => {
+      return findPackageLocator(sources_path/* npath.toPortablePath */.cS.toPortablePath(path));
+    },
+    resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts) => {
+      const portableIssuer = issuer !== null ? sources_path/* npath.toPortablePath */.cS.toPortablePath(issuer) : null;
+      const resolution = resolveToUnqualified(sources_path/* npath.toPortablePath */.cS.toPortablePath(request), portableIssuer, opts);
+      if (resolution === null) return null;
+      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolution);
+    }),
+    resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts) => {
+      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolveUnqualified(sources_path/* npath.toPortablePath */.cS.toPortablePath(unqualifiedPath), opts));
+    }),
+    resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts) => {
+      const portableIssuer = issuer !== null ? sources_path/* npath.toPortablePath */.cS.toPortablePath(issuer) : null;
+      const resolution = resolveRequest(sources_path/* npath.toPortablePath */.cS.toPortablePath(request), portableIssuer, opts);
+      if (resolution === null) return null;
+      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolution);
+    }),
+    resolveVirtual: maybeLog(`resolveVirtual`, path => {
+      const result = resolveVirtual(sources_path/* npath.toPortablePath */.cS.toPortablePath(path));
+
+      if (result !== null) {
+        return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(result);
+      } else {
+        return null;
+      }
+    })
+  };
+}
+// CONCATENATED MODULE: ./sources/loader/makeManager.ts
+
+
+function makeManager(pnpapi, opts) {
+  const initialApiPath = sources_path/* npath.toPortablePath */.cS.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null));
+  const initialApiStats = opts.fakeFs.statSync(sources_path/* npath.toPortablePath */.cS.toPortablePath(initialApiPath));
+  const apiMetadata = new Map([[initialApiPath, {
+    cache: external_module_.Module._cache,
+    instance: pnpapi,
+    stats: initialApiStats
+  }]]);
+
+  function loadApiInstance(pnpApiPath) {
+    const nativePath = sources_path/* npath.fromPortablePath */.cS.fromPortablePath(pnpApiPath); // @ts-ignore
+
+    const module = new external_module_.Module(nativePath, null); // @ts-ignore
+
+    module.load(nativePath);
+    return module.exports;
+  }
+
+  function refreshApiEntry(pnpApiPath, apiEntry) {
+    const stats = opts.fakeFs.statSync(pnpApiPath);
+
+    if (stats.mtime > apiEntry.stats.mtime) {
+      console.warn(`[Warning] The runtime detected new informations in a PnP file; reloading the API instance (${pnpApiPath})`);
+      apiEntry.instance = loadApiInstance(pnpApiPath);
+      apiEntry.stats = stats;
+    }
+  }
+
+  function getApiEntry(pnpApiPath, refresh = false) {
+    let apiEntry = apiMetadata.get(pnpApiPath);
+
+    if (typeof apiEntry !== `undefined`) {
+      if (refresh) {
+        refreshApiEntry(pnpApiPath, apiEntry);
+      }
+    } else {
+      apiMetadata.set(pnpApiPath, apiEntry = {
+        cache: {},
+        instance: loadApiInstance(pnpApiPath),
+        stats: opts.fakeFs.statSync(pnpApiPath)
+      });
+    }
+
+    return apiEntry;
+  }
+
+  const findApiPathCache = new Map();
+
+  function addToCache(start, end, target) {
+    let curr;
+    let next = start;
+
+    do {
+      curr = next;
+      findApiPathCache.set(curr, target);
+      next = sources_path/* ppath.dirname */.y1.dirname(curr);
+    } while (curr !== end);
+  }
+
+  function findApiPathFor(modulePath) {
+    const start = VirtualFS.resolveVirtual(sources_path/* ppath.resolve */.y1.resolve(sources_path/* npath.toPortablePath */.cS.toPortablePath(modulePath)));
+    let curr;
+    let next = start;
+
+    do {
+      curr = next;
+      const cached = findApiPathCache.get(curr);
+
+      if (cached !== undefined) {
+        addToCache(start, curr, cached);
+        return cached;
+      }
+
+      const candidate = sources_path/* ppath.join */.y1.join(curr, `.pnp.js`);
+
+      if (xfs.existsSync(candidate) && xfs.statSync(candidate).isFile()) {
+        addToCache(start, curr, candidate);
+        return candidate;
+      }
+
+      const cjsCandidate = sources_path/* ppath.join */.y1.join(curr, `.pnp.cjs`);
+
+      if (xfs.existsSync(cjsCandidate) && xfs.statSync(cjsCandidate).isFile()) {
+        addToCache(start, curr, cjsCandidate);
+        return cjsCandidate;
+      }
+
+      next = sources_path/* ppath.dirname */.y1.dirname(curr);
+    } while (curr !== sources_path/* PortablePath.root */.LZ.root);
+
+    addToCache(start, curr, null);
+    return null;
+  }
+
+  function getApiPathFromParent(parent) {
+    if (parent == null) return initialApiPath;
+
+    if (typeof parent.pnpApiPath === `undefined`) {
+      if (parent.filename !== null) {
+        return parent.pnpApiPath = findApiPathFor(parent.filename);
+      } else {
+        return initialApiPath;
+      }
+    }
+
+    if (parent.pnpApiPath !== null) return parent.pnpApiPath;
+    return null;
+  }
+
+  return {
+    getApiPathFromParent,
+    findApiPathFor,
+    getApiEntry
+  };
+}
+// CONCATENATED MODULE: ./sources/loader/_entryPoint.ts
+
+
+
+
+
+
+
+
+ // We must copy the fs into a local, because otherwise
+// 1. we would make the NodeFS instance use the function that we patched (infinite loop)
+// 2. Object.create(fs) isn't enough, since it won't prevent the proto from being modified
+
+const localFs = { ...(external_fs_default())
+};
+const nodeFs = new NodeFS(localFs);
+const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState);
+const defaultPnpapiResolution = __filename; // We create a virtual filesystem that will do three things:
+// 1. all requests inside a folder named "$$virtual" will be remapped according the virtual folder rules
+// 2. all requests going inside a Zip archive will be handled by the Zip fs implementation
+// 3. any remaining request will be forwarded to Node as-is
+
+const defaultFsLayer = new VirtualFS({
+  baseFs: new ZipOpenFS({
+    baseFs: nodeFs,
+    libzip: getLibzipSync(),
+    maxOpenFiles: 80,
+    readOnlyArchives: true
+  })
+});
+let manager;
+const defaultApi = Object.assign(makeApi(defaultRuntimeState, {
+  fakeFs: defaultFsLayer,
+  pnpapiResolution: defaultPnpapiResolution
+}), {
+  /**
+   * Can be used to generate a different API than the default one (for example
+   * to map it on `/` rather than the local directory path, or to use a
+   * different FS layer than the default one).
+   */
+  makeApi: ({
+    basePath = undefined,
+    fakeFs = defaultFsLayer,
+    pnpapiResolution = defaultPnpapiResolution,
+    ...rest
+  }) => {
+    const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState;
+    return makeApi(apiRuntimeState, {
+      fakeFs,
+      pnpapiResolution,
+      ...rest
+    });
+  },
+
+  /**
+   * Will inject the specified API into the environment, monkey-patching FS. Is
+   * automatically called when the hook is loaded through `--require`.
+   */
+  setup: api => {
+    applyPatch(api || defaultApi, {
+      fakeFs: defaultFsLayer,
+      manager
+    });
+  }
+});
+manager = makeManager(defaultApi, {
+  fakeFs: defaultFsLayer
+}); // eslint-disable-next-line arca/no-default-export
+
+/* harmony default export */ const _entryPoint = (defaultApi);
+
+if (__non_webpack_module__.parent && __non_webpack_module__.parent.id === `internal/preload`) {
+  defaultApi.setup();
+
+  if (__non_webpack_module__.filename) {
+    // We delete it from the cache in order to support the case where the CLI resolver is invoked from "yarn run"
+    // It's annoying because it might cause some issues when the file is multiple times in NODE_OPTIONS, but it shouldn't happen anyway.
+    // @ts-ignore
+    delete (external_module_default())._cache[__non_webpack_module__.filename];
+  }
+} // @ts-ignore
+
+
+if (process.mainModule === __non_webpack_module__) {
+  const reportError = (code, message, data) => {
+    process.stdout.write(`${JSON.stringify([{
+      code,
+      message,
+      data
+    }, null])}\n`);
+  };
+
+  const reportSuccess = resolution => {
+    process.stdout.write(`${JSON.stringify([null, resolution])}\n`);
+  };
+
+  const processResolution = (request, issuer) => {
+    try {
+      reportSuccess(defaultApi.resolveRequest(request, issuer));
+    } catch (error) {
+      reportError(error.code, error.message, error.data);
+    }
+  };
+
+  const processRequest = data => {
+    try {
+      const [request, issuer] = JSON.parse(data);
+      processResolution(request, issuer);
+    } catch (error) {
+      reportError(`INVALID_JSON`, error.message, error.data);
+    }
+  };
+
+  if (process.argv.length > 2) {
+    if (process.argv.length !== 4) {
+      process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} <request> <issuer>\n`);
+      process.exitCode = 64;
+      /* EX_USAGE */
+    } else {
+      processResolution(process.argv[2], process.argv[3]);
+    }
+  } else {
+    let buffer = ``;
+    const decoder = new (external_string_decoder_default()).StringDecoder();
+    process.stdin.on(`data`, chunk => {
+      buffer += decoder.write(chunk);
+
+      do {
+        const index = buffer.indexOf(`\n`);
+        if (index === -1) break;
+        const line = buffer.slice(0, index);
+        buffer = buffer.slice(index + 1);
+        processRequest(line);
+      } while (true);
+    });
+  }
+}
+
+/***/ }),
+
+/***/ 368:
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+var frozenFs = Object.assign({}, __webpack_require__(747));
+var Module = typeof Module !== "undefined" ? Module : {};
+var moduleOverrides = {};
+var key;
+for (key in Module) {
+  if (Module.hasOwnProperty(key)) {
+    moduleOverrides[key] = Module[key];
+  }
+}
+var arguments_ = [];
+var thisProgram = "./this.program";
+var quit_ = function(status, toThrow) {
+  throw toThrow;
+};
+var ENVIRONMENT_IS_WORKER = false;
+var ENVIRONMENT_IS_NODE = true;
+var scriptDirectory = "";
+function locateFile(path) {
+  if (Module["locateFile"]) {
+    return Module["locateFile"](path, scriptDirectory);
+  }
+  return scriptDirectory + path;
+}
+var read_, readBinary;
+var nodeFS;
+var nodePath;
+if (ENVIRONMENT_IS_NODE) {
+  if (ENVIRONMENT_IS_WORKER) {
+    scriptDirectory = __webpack_require__(622).dirname(scriptDirectory) + "/";
+  } else {
+    scriptDirectory = __dirname + "/";
+  }
+  read_ = function shell_read(filename, binary) {
+    var ret = tryParseAsDataURI(filename);
+    if (ret) {
+      return binary ? ret : ret.toString();
+    }
+    if (!nodeFS) nodeFS = frozenFs;
+    if (!nodePath) nodePath = __webpack_require__(622);
+    filename = nodePath["normalize"](filename);
+    return nodeFS["readFileSync"](filename, binary ? null : "utf8");
+  };
+  readBinary = function readBinary(filename) {
+    var ret = read_(filename, true);
+    if (!ret.buffer) {
+      ret = new Uint8Array(ret);
+    }
+    assert(ret.buffer);
+    return ret;
+  };
+  if (process["argv"].length > 1) {
+    thisProgram = process["argv"][1].replace(/\\/g, "/");
+  }
+  arguments_ = process["argv"].slice(2);
+  if (true) {
+    module["exports"] = Module;
+  }
+  (function() {})("uncaughtException", function(ex) {
+    if (!(ex instanceof ExitStatus)) {
+      throw ex;
+    }
+  });
+  (function() {})("unhandledRejection", abort);
+  quit_ = function(status) {
+    process["exit"](status);
+  };
+  Module["inspect"] = function() {
+    return "[Emscripten Module object]";
+  };
+} else {
+}
+var out = Module["print"] || console.log.bind(console);
+var err = Module["printErr"] || console.warn.bind(console);
+for (key in moduleOverrides) {
+  if (moduleOverrides.hasOwnProperty(key)) {
+    Module[key] = moduleOverrides[key];
+  }
+}
+moduleOverrides = null;
+if (Module["arguments"]) arguments_ = Module["arguments"];
+if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
+if (Module["quit"]) quit_ = Module["quit"];
+var tempRet0 = 0;
+var setTempRet0 = function(value) {
+  tempRet0 = value;
+};
+var wasmBinary;
+if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
+var noExitRuntime;
+if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
+if (typeof WebAssembly !== "object") {
+  err("no native wasm support detected");
+}
+function getValue(ptr, type, noSafe) {
+  type = type || "i8";
+  if (type.charAt(type.length - 1) === "*") type = "i32";
+  switch (type) {
+    case "i1":
+      return HEAP8[ptr >> 0];
+    case "i8":
+      return HEAP8[ptr >> 0];
+    case "i16":
+      return HEAP16[ptr >> 1];
+    case "i32":
+      return HEAP32[ptr >> 2];
+    case "i64":
+      return HEAP32[ptr >> 2];
+    case "float":
+      return HEAPF32[ptr >> 2];
+    case "double":
+      return HEAPF64[ptr >> 3];
+    default:
+      abort("invalid type for getValue: " + type);
+  }
+  return null;
+}
+var wasmMemory;
+var wasmTable = new WebAssembly.Table({
+  initial: 31,
+  maximum: 31 + 0,
+  element: "anyfunc"
+});
+var ABORT = false;
+var EXITSTATUS = 0;
+function assert(condition, text) {
+  if (!condition) {
+    abort("Assertion failed: " + text);
+  }
+}
+function getCFunc(ident) {
+  var func = Module["_" + ident];
+  assert(
+    func,
+    "Cannot call unknown function " + ident + ", make sure it is exported"
+  );
+  return func;
+}
+function ccall(ident, returnType, argTypes, args, opts) {
+  var toC = {
+    string: function(str) {
+      var ret = 0;
+      if (str !== null && str !== undefined && str !== 0) {
+        var len = (str.length << 2) + 1;
+        ret = stackAlloc(len);
+        stringToUTF8(str, ret, len);
+      }
+      return ret;
+    },
+    array: function(arr) {
+      var ret = stackAlloc(arr.length);
+      writeArrayToMemory(arr, ret);
+      return ret;
+    }
+  };
+  function convertReturnValue(ret) {
+    if (returnType === "string") return UTF8ToString(ret);
+    if (returnType === "boolean") return Boolean(ret);
+    return ret;
+  }
+  var func = getCFunc(ident);
+  var cArgs = [];
+  var stack = 0;
+  if (args) {
+    for (var i = 0; i < args.length; i++) {
+      var converter = toC[argTypes[i]];
+      if (converter) {
+        if (stack === 0) stack = stackSave();
+        cArgs[i] = converter(args[i]);
+      } else {
+        cArgs[i] = args[i];
+      }
+    }
+  }
+  var ret = func.apply(null, cArgs);
+  ret = convertReturnValue(ret);
+  if (stack !== 0) stackRestore(stack);
+  return ret;
+}
+function cwrap(ident, returnType, argTypes, opts) {
+  argTypes = argTypes || [];
+  var numericArgs = argTypes.every(function(type) {
+    return type === "number";
+  });
+  var numericRet = returnType !== "string";
+  if (numericRet && numericArgs && !opts) {
+    return getCFunc(ident);
+  }
+  return function() {
+    return ccall(ident, returnType, argTypes, arguments, opts);
+  };
+}
+var UTF8Decoder =
+  typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;
+function UTF8ArrayToString(heap, idx, maxBytesToRead) {
+  var endIdx = idx + maxBytesToRead;
+  var endPtr = idx;
+  while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;
+  if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
+    return UTF8Decoder.decode(heap.subarray(idx, endPtr));
+  } else {
+    var str = "";
+    while (idx < endPtr) {
+      var u0 = heap[idx++];
+      if (!(u0 & 128)) {
+        str += String.fromCharCode(u0);
+        continue;
+      }
+      var u1 = heap[idx++] & 63;
+      if ((u0 & 224) == 192) {
+        str += String.fromCharCode(((u0 & 31) << 6) | u1);
+        continue;
+      }
+      var u2 = heap[idx++] & 63;
+      if ((u0 & 240) == 224) {
+        u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
+      } else {
+        u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63);
+      }
+      if (u0 < 65536) {
+        str += String.fromCharCode(u0);
+      } else {
+        var ch = u0 - 65536;
+        str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));
+      }
+    }
+  }
+  return str;
+}
+function UTF8ToString(ptr, maxBytesToRead) {
+  return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
+}
+function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
+  if (!(maxBytesToWrite > 0)) return 0;
+  var startIdx = outIdx;
+  var endIdx = outIdx + maxBytesToWrite - 1;
+  for (var i = 0; i < str.length; ++i) {
+    var u = str.charCodeAt(i);
+    if (u >= 55296 && u <= 57343) {
+      var u1 = str.charCodeAt(++i);
+      u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);
+    }
+    if (u <= 127) {
+      if (outIdx >= endIdx) break;
+      heap[outIdx++] = u;
+    } else if (u <= 2047) {
+      if (outIdx + 1 >= endIdx) break;
+      heap[outIdx++] = 192 | (u >> 6);
+      heap[outIdx++] = 128 | (u & 63);
+    } else if (u <= 65535) {
+      if (outIdx + 2 >= endIdx) break;
+      heap[outIdx++] = 224 | (u >> 12);
+      heap[outIdx++] = 128 | ((u >> 6) & 63);
+      heap[outIdx++] = 128 | (u & 63);
+    } else {
+      if (outIdx + 3 >= endIdx) break;
+      heap[outIdx++] = 240 | (u >> 18);
+      heap[outIdx++] = 128 | ((u >> 12) & 63);
+      heap[outIdx++] = 128 | ((u >> 6) & 63);
+      heap[outIdx++] = 128 | (u & 63);
+    }
+  }
+  heap[outIdx] = 0;
+  return outIdx - startIdx;
+}
+function stringToUTF8(str, outPtr, maxBytesToWrite) {
+  return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
+}
+function lengthBytesUTF8(str) {
+  var len = 0;
+  for (var i = 0; i < str.length; ++i) {
+    var u = str.charCodeAt(i);
+    if (u >= 55296 && u <= 57343)
+      u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023);
+    if (u <= 127) ++len;
+    else if (u <= 2047) len += 2;
+    else if (u <= 65535) len += 3;
+    else len += 4;
+  }
+  return len;
+}
+function allocateUTF8(str) {
+  var size = lengthBytesUTF8(str) + 1;
+  var ret = _malloc(size);
+  if (ret) stringToUTF8Array(str, HEAP8, ret, size);
+  return ret;
+}
+function writeArrayToMemory(array, buffer) {
+  HEAP8.set(array, buffer);
+}
+var WASM_PAGE_SIZE = 65536;
+function alignUp(x, multiple) {
+  if (x % multiple > 0) {
+    x += multiple - (x % multiple);
+  }
+  return x;
+}
+var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+function updateGlobalBufferAndViews(buf) {
+  buffer = buf;
+  Module["HEAP8"] = HEAP8 = new Int8Array(buf);
+  Module["HEAP16"] = HEAP16 = new Int16Array(buf);
+  Module["HEAP32"] = HEAP32 = new Int32Array(buf);
+  Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
+  Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
+  Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
+  Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
+  Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
+}
+var DYNAMIC_BASE = 5263680,
+  DYNAMICTOP_PTR = 20640;
+var INITIAL_INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
+if (Module["wasmMemory"]) {
+  wasmMemory = Module["wasmMemory"];
+} else {
+  wasmMemory = new WebAssembly.Memory({
+    initial: INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE,
+    maximum: 2147483648 / WASM_PAGE_SIZE
+  });
+}
+if (wasmMemory) {
+  buffer = wasmMemory.buffer;
+}
+INITIAL_INITIAL_MEMORY = buffer.byteLength;
+updateGlobalBufferAndViews(buffer);
+HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
+function callRuntimeCallbacks(callbacks) {
+  while (callbacks.length > 0) {
+    var callback = callbacks.shift();
+    if (typeof callback == "function") {
+      callback(Module);
+      continue;
+    }
+    var func = callback.func;
+    if (typeof func === "number") {
+      if (callback.arg === undefined) {
+        Module["dynCall_v"](func);
+      } else {
+        Module["dynCall_vi"](func, callback.arg);
+      }
+    } else {
+      func(callback.arg === undefined ? null : callback.arg);
+    }
+  }
+}
+var __ATPRERUN__ = [];
+var __ATINIT__ = [];
+var __ATMAIN__ = [];
+var __ATPOSTRUN__ = [];
+var runtimeInitialized = false;
+function preRun() {
+  if (Module["preRun"]) {
+    if (typeof Module["preRun"] == "function")
+      Module["preRun"] = [Module["preRun"]];
+    while (Module["preRun"].length) {
+      addOnPreRun(Module["preRun"].shift());
+    }
+  }
+  callRuntimeCallbacks(__ATPRERUN__);
+}
+function initRuntime() {
+  runtimeInitialized = true;
+  if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
+  TTY.init();
+  callRuntimeCallbacks(__ATINIT__);
+}
+function preMain() {
+  FS.ignorePermissions = false;
+  callRuntimeCallbacks(__ATMAIN__);
+}
+function postRun() {
+  if (Module["postRun"]) {
+    if (typeof Module["postRun"] == "function")
+      Module["postRun"] = [Module["postRun"]];
+    while (Module["postRun"].length) {
+      addOnPostRun(Module["postRun"].shift());
+    }
+  }
+  callRuntimeCallbacks(__ATPOSTRUN__);
+}
+function addOnPreRun(cb) {
+  __ATPRERUN__.unshift(cb);
+}
+function addOnPostRun(cb) {
+  __ATPOSTRUN__.unshift(cb);
+}
+var Math_abs = Math.abs;
+var Math_ceil = Math.ceil;
+var Math_floor = Math.floor;
+var Math_min = Math.min;
+var runDependencies = 0;
+var runDependencyWatcher = null;
+var dependenciesFulfilled = null;
+function getUniqueRunDependency(id) {
+  return id;
+}
+function addRunDependency(id) {
+  runDependencies++;
+  if (Module["monitorRunDependencies"]) {
+    Module["monitorRunDependencies"](runDependencies);
+  }
+}
+function removeRunDependency(id) {
+  runDependencies--;
+  if (Module["monitorRunDependencies"]) {
+    Module["monitorRunDependencies"](runDependencies);
+  }
+  if (runDependencies == 0) {
+    if (runDependencyWatcher !== null) {
+      clearInterval(runDependencyWatcher);
+      runDependencyWatcher = null;
+    }
+    if (dependenciesFulfilled) {
+      var callback = dependenciesFulfilled;
+      dependenciesFulfilled = null;
+      callback();
+    }
+  }
+}
+Module["preloadedImages"] = {};
+Module["preloadedAudios"] = {};
+function abort(what) {
+  if (Module["onAbort"]) {
+    Module["onAbort"](what);
+  }
+  what += "";
+  out(what);
+  err(what);
+  ABORT = true;
+  EXITSTATUS = 1;
+  what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
+  throw new WebAssembly.RuntimeError(what);
+}
+function hasPrefix(str, prefix) {
+  return String.prototype.startsWith
+    ? str.startsWith(prefix)
+    : str.indexOf(prefix) === 0;
+}
+var dataURIPrefix = "data:application/octet-stream;base64,";
+function isDataURI(filename) {
+  return hasPrefix(filename, dataURIPrefix);
+}
+var wasmBinaryFile =
+  "data:application/octet-stream;base64,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BRAiGiABKAIMKAIABEAgASgCDCgCABAcCyABKAIMEBYLIAFBEGokAAuBAgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMKAIcNgIEIAEoAgQQ6gIgASABKAIEKAIUNgIIIAEoAgggASgCDCgCEEsEQCABIAEoAgwoAhA2AggLAkAgASgCCEUNACABKAIMKAIMIAEoAgQoAhAgASgCCBAaGiABKAIMIgAgASgCCCAAKAIMajYCDCABKAIEIgAgASgCCCAAKAIQajYCECABKAIMIgAgASgCCCAAKAIUajYCFCABKAIMIgAgACgCECABKAIIazYCECABKAIEIgAgACgCFCABKAIIazYCFCABKAIEKAIUDQAgASgCBCABKAIEKAIINgIQCyABQRBqJAALYAEBfyMAQRBrIgEkACABIAA2AgggASABKAIIQgIQHzYCBAJAIAEoAgRFBEAgAUEAOwEODAELIAEgASgCBC0AACABKAIELQABQQh0ajsBDgsgAS8BDiEAIAFBEGokACAAC1oBAX8jAEEgayICJAAgAiAANgIcIAIgATcDECACIAIoAhwgAikDEBDPATYCDCACKAIMBEAgAigCHCIAIAIpAxAgACkDEHw3AxALIAIoAgwhACACQSBqJAAgAAtvAQF/IwBBEGsiAiQAIAIgADYCCCACIAE7AQYgAiACKAIIQgIQHzYCAAJAIAIoAgBFBEAgAkF/NgIMDAELIAIoAgAgAi8BBjoAACACKAIAIAIvAQZBCHU6AAEgAkEANgIMCyACKAIMGiACQRBqJAALjwEBAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAghCBBAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACKAIEOgAAIAIoAgAgAigCBEEIdjoAASACKAIAIAIoAgRBEHY6AAIgAigCACACKAIEQRh2OgADIAJBADYCDAsgAigCDBogAkEQaiQAC7YCAQF/IwBBMGsiBCQAIAQgADYCJCAEIAE2AiAgBCACNwMYIAQgAzYCFAJAIAQoAiQpAxhCASAEKAIUrYaDUARAIAQoAiRBDGpBHEEAEBUgBEJ/NwMoDAELAkAgBCgCJCgCAEUEQCAEIAQoAiQoAgggBCgCICAEKQMYIAQoAhQgBCgCJCgCBBEPADcDCAwBCyAEIAQoAiQoAgAg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BCgCLEGUAWogBCgCLEGIE2oQtgELCyAEKAIsELkBIAQoAiAEQCAEKAIsELgBCyAEQTBqJAAL1AEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhFOgAPAkAgAigCGEUEQCACIAIpAxCnEBkiADYCGCAARQRAIAJBADYCHAwCCwsgAkEYEBkiADYCCCAARQRAIAItAA9BAXEEQCACKAIYEBYLIAJBADYCHAwBCyACKAIIQQE6AAAgAigCCCACKAIYNgIEIAIoAgggAikDEDcDCCACKAIIQgA3AxAgAigCCCACLQAPQQFxOgABIAIgAigCCDYCHAsgAigCHCEAIAJBIGokACAAC3gBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIEEB82AgQCQCABKAIERQRAIAFBADYCDAwBCyABIAEoAgQtAAAgASgCBC0AASABKAIELQACIAEoAgQtAANBCHRqQQh0akEIdGo2AgwLIAEoAgwhACABQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQf/9+3dqcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAfNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMg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KAIUIANBngFqIANBnAFqEMQBIAMoAkwgAy8BngEQICADKAJMIAMvAZwBECACQAJAIAMtAIUBQQFxRQ0AIAMoAqQBKQMoQhRaDQAgAygCTEEAECEMAQsgAygCTCADKAKkASgCGBAhCwJAAkAgAygCoAFBgAJxQYACRw0AIAMoAqQBKQMgQv////8PVARAIAMoAqQBKQMoQv////8PVA0BCyADKAJMQX8QISADKAJMQX8QIQwBCwJAIAMoAqQBKQMgQv////8PVARAIAMoAkwgAygCpAEpAyCnECEMAQsgAygCTEF/ECELAkAgAygCpAEpAyhC/////w9UBEAgAygCTCADKAKkASkDKKcQIQwBCyADKAJMQX8QIQsLIAMoAkwgAygCpAEoAjAQUkH//wNxECAgAyADKAKkASgCNCADKAKgARCEAUH//wNxIAMoApABQYAGEIQBQf//A3FqNgKIASADKAJMIAMoAogBQf//A3EQICADKAKgAUGAAnFFBEAgAygCTCADKAKkASgCOBBSQf//A3EQICADKAJMIAMoAqQBKAI8Qf//A3EQICADKAJMIAMoAqQBLwFAECAgAygCTCADKAKkASgCRBAhAkAgAygCpAEpA0hC/////w9UBEAgAygCTCADKAKkASkDSKcQIQwBCyADKAJMQX8QIQsLAn8jAEEQayIAIAMoAkw2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCTBAXIAMoApABECQgA0F/NgKsAQwBCyADKAKoASADQdAAagJ+IwBBEGsiACADKAJMNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAkwQFyADKAKkASgCMARAIAMoAqgBIAMoAqQBKAIwEIgBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQAQRAIAMoAqgBIAMoApABQYAGEIMBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQARAkIAMoAqQBKAI0BEAgAygCqAEgAygCpAEoAjQgAygCoAEQgwFBAEgEQCADQX82AqwBDAILCyADKAKgAUGAAnFFBEAgAygCpAEoAjgEQCADKAKoASADKAKkASgCOBCIAUEASARAIANBfzYC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AygCgAEoAgAgAykDcKdBBHRqKAIAKAI0IAMoAjQQhwEhACADKAKAASgCACADKQNwp0EEdGooAgAgADYCNCADKAKAASgCACADKQNwp0EEdGooAgBBAToABCADQQA2AjQgAxBcIAMgAykDcEIBfDcDcAwCCwALCyADAn4gAykDYCADKQNofUL///////////8AVARAIAMpA2AgAykDaH0MAQtC////////////AAs3A4gBCyADKQOIASEEIANBkAFqJAAgBAumAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhAQ+gEiADYCDAJAIABFBEAgA0EANgIcDAELIAMoAgwgAygCGDYCACADKAIMIAMoAhQ2AgQgAygCFEEQcQRAIAMoAgwiACAAKAIUQQJyNgIUIAMoAgwiACAAKAIYQQJyNgIYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvVAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQAJAIAQpAxBC////////////AFcEQCAEKQMQQoCAgICAgICAgH9ZDQELIAQoAghBBEE9EBUgBEF/NgIcDAELAn8gBCkDECEBIAQoAgwhACAEKAIYIgIoAkxBf0wEQCACIAEgABCXAQwBCyACIAEgABCXAQtBAEgEQCAEKAIIQQRBtJwBKAIAEBUgBEF/NgIcDAELIARBADYCHAsgBCgCHCEAIARBIGokACAACycAAn9BAEEAIAAQBSIAIABBG0YbIgBFDQAaQbScASAANgIAQQALGgteAQF/IwBBEGsiAyQAIAMgAUHAgIACcQR/IAMgAkEEajYCDCACKAIABUEACzYCACAAIAFBgIACciADEBEiAEGBYE8EQEG0nAFBACAAazYCAEF/IQALIANBEGokACAACzMBAX8CfyAAEAYiAUFhRgRAIAAQEiEBCyABQYFgTwsEf0G0nAFBACABazYCAEF/BSABCwtpAQJ/AkAgACgCFCAAKAIcTQ0AIABBAEEAIAAoAiQRAQAaIAAoAhQNAEF/DwsgACgCBCIBIAAoAggiAkkEQCAAIAEgAmusQQEgACgCKBEQABoLIABBADYCHCAAQgA3AxAgAEIANwIEQQALpgEBAX8jAEEQayICJAAgAiAANgIIIAIgATYC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AX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC7QCAQF/IwBBMGsiAyQAIAMgADYCKCADIAE3AyAgAyACNgIcAkAgAykDIFAEQCADQQE6AC8MAQsgAyADKAIoKQMQIAMpAyB8NwMIAkAgAykDCCADKQMgWgRAIAMpAwhC/////wBYDQELIAMoAhxBDkEAEBUgA0EAOgAvDAELIAMgAygCKCgCACADKQMIp0EEdBBPIgA2AgQgAEUEQCADKAIcQQ5BABAVIANBADoALwwBCyADKAIoIAMoAgQ2AgAgAyADKAIoKQMINwMQA0AgAykDECADKQMIWkUEQCADKAIoKAIAIAMpAxCnQQR0ahCOASADIAMpAxBCAXw3AxAMAQsLIAMoAiggAykDCCIBNwMQIAMoAiggATcDCCADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAvMAQEBfyMAQSBrIgIkACACIAA3AxAgAiABNgIMIAJBMBAZIgE2AggCQCABRQRAIAIoAgxBDkEAEBUgAkEANgIcDAELIAIoAghBADYCACACKAIIQgA3AxAgAigCCEIANwMIIAIoAghCADcDICACKAIIQgA3AxggAigCCEEANgIoIAIoAghBADoALCACKAIIIAIpAxAgAigCDBCBAUEBcUUEQCACKAIIECUgAkEANgIcDAELIAIgAigCCDYCHAsgAigCHCEBIAJBIGokACABC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMo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AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC4IFAQF/IwBB4ABrIgMkACADIAA2AlggAyABNgJUIAMgAjYCUAJAAkAgAygCVEEATgRAIAMoAlgNAQsgAygCUEESQQAQFSADQQA2AlwMAQsgAyADKAJUNgJMIwBBEGsiACADKAJYNgIMIAMgACgCDCkDGDcDQEHgmwEpAwBCf1EEQCADQX82AhQgA0EDNgIQIANBBzYCDCADQQY2AgggA0ECNgIEIANBATYCAEHgmwFBACADEDc3AwAgA0F/NgI0IANBDzYCMCADQQ02AiwgA0EMNgIoIANBCjYCJCADQQk2AiBB6JsBQQggA0EgahA3NwMAC0HgmwEpAwAgAykDQEHgmwEpAwCDUgRAIAMoAlBBHEEAEBUgA0EANgJcDAELQeibASkDACADKQNAQeibASkDAINSBEAgAyADKAJMQRByNgJMCyADKAJMQRhxQRhGBEAgAygCUEEZQQAQFSADQQA2AlwMAQsgAyADKAJYIAMoAlAQ+AE2AjwCQAJAAkAgAygCPEEBag4CAAECCyADQQA2AlwMAgsgAygCTEEBcUUEQCADKAJQQQlBABAVIANBADYCXAwCCyADIAMoAlggAygCTCADKAJQEGY2AlwMAQsgAygCTEECcQRAIAMoAlBBCkEAEBUgA0EANgJcDAELIAMoAlgQSUEASARAIAMoAlAgAygCWBAYIANBADYCXAwBCwJAIAMoAkxBCHEEQCADIAMoAlggAygCTCADKAJQEGY2AjgMAQsgAyADKAJYIAMoAkwgAygCUBD3ATYCOAsgAygCOEUEQCADKAJYEDIaIANBADYCXAwBCyADIAMoAjg2AlwLIAMoAlwhACADQeAAaiQAIAALjgEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQgAigCCARAIwBBEGsiACACKAIINgIMIAIgACgCDCgCADYCBCACKAIIELABQQFGBEAjAEEQayIAIAIoAgg2AgxBtJwBIAAoAgwoAgQ2AgALCyACKAIMBEAgAigCDCACKAIENgIACyACQRBqJAALlQEBAX8jAEEQayIBJAAgASAANgIIAkACfyMAQRBrIgAgASgCCDYCDCAAKAIMKQMYQoCAEINQCwRAIAEoAggoAgAEQCABIAEoAggoAgAQlAFBAXE6AA8MAgsgAUEBOgAPDAELIAEgASgCCEEAQgBBEhAiPgIEIAEgASgCBEEARzoADwsgAS0AD0EBcSEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEJEBIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAt/AQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgA0EANgIMIAMgAjYCCAJAIAMpAxBC////////////AFYEQCADKAIIQQRBPRAVIANBfzYCHAwBCyADIAMoAhggAykDECADKAIMIAMoAggQZzYCHAsgAygCHCEAIANBIGokACAAC30AIAJBAUYEQCABIAAoAgggACgCBGusfSEBCwJAIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQEAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigREABCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C+ICAQJ/IwBBIGsiAyQAAn8CQAJAQfSXASABLAAAEJkBRQRAQbScAUEcNgIADAELQZgJEBkiAg0BC0EADAELIAJBAEGQARAzIAFBKxCZAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02AgxBrKABKAIARQRAIAJBfzYCTAsgAkGAoQEoAgA2AjhBgKEBKAIAIgAEQCAAIAI2AjQLQYChASACNgIAIAILIQAgA0EgaiQAIAALGgAgACABEIQCIgBBACAALQAAIAFB/wFxRhsLwwIBAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIIKQMAQgKDQgBSBEAgAygCDCADKAIIKQMQNwMQCyADKAIIKQMAQgSDQgBSBEAgAygCDCADKAIIKQMYNwMYCyADKAIIKQMAQgiDQgBSBEAgAygCDCADKAIIKQMgNwMgCyADKAIIKQMAQhCDQgBSBEAgAygCDCADKAIIKAIoNgIoCyADKAIIKQMAQiCDQgBSBEAgAygCDCADKAIIKAIsNgIsCyADKAIIKQMAQsAAg0IAUgRAIAMoAgwgAygCCC8BMDsBMAsgAygCCCkDAEKAAYNCAFIEQCADKAIMIAMoAggvATI7ATILIAMoAggpAwBCgAKDQgBSBEAgAygCDCADKAIIKAI0NgI0CyADKAIMIgAgAygCCCkDACAAKQMAhDcDAEEACxgAIAAoAkxBf0wEQCAAEJwBDwsgABCcAQtgAgJ/AX4gACgCKCEBQQEhAiAAQgAgAC0AAEGAAXEEf0ECQQEgACgCFCAAKAIcSxsFQQELIAEREAAiA0IAWQR+IAAoAhQgACgCHGusIAMgACgCCCAAKAIEa6x9fAUgAwsLdgEBfyAABEAgACgCTEF/TARAIAAQaw8LIAAQaw8LQYShASgCAARAQYShASgCABCdASEBC0GAoQEoAgAiAARAA0AgACgCTEEATgR/QQEFQQALGiAAKAIUIAAoAhxLBEAgABBrIAFyIQELIAAoAjgiAA0ACwsgAQsiACAAIAEQAiIAQYFgTwR/QbScAUEAIABrNgIAQX8FIAALC9YBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCCAEIAQoAhggBCgCGCAEKQMQIAQoAgwgBCgCCBCpASIANgIAAkAgAEUEQCAEQQA2AhwMAQsgBCgCABBJQQBIBEAgBCgCGEEIaiAEKAIAEBggBCgCABAcIARBADYCHAwBCyAEIAQoAhgQlAIiADYCBCAARQRAIAQoAgAQHCAEQQA2AhwMAQsgBCgCBCAEKAIANgIUIAQgBCgCBDYCHAsgBCgCHCEAIARBIGokACAAC6YBAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE3AxAgBSACNgIMIAUgAzYCCCAFIAQ2AgQgBSAFKAIYIAUpAxAgBSgCDEEAEEUiADYCAAJAIABFBEAgBUF/NgIcDAELIAUoAggEQCAFKAIIIAUoAgAvAQhBCHU6AAALIAUoAgQEQCAFKAIEIAUoAgAoAkQ2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAAC6UEAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE3AyAgBSACNgIcIAUgAzoAGyAFIAQ2AhQCQCAFKAIoIAUpAyBBAEEAEEVFBEAgBUF/NgIsDAELIAUoAigoAhhBAnEEQCAFKAIoQQhqQRlBABAVIAVBfzYCLAwBCyAFIAUoAigoAkAgBSkDIKdBBHRqNgIQIAUCfyAFKAIQKAIABEAgBSgCECgCAC8BCEEIdQwBC0EDCzoACyAFAn8gBSgCECgCAARAIAUoAhAoAgAoAkQMAQtBgIDYjXgLNgIEQQEhACAFIAUtABsgBS0AC0YEfyAFKAIUIAUoAgRHBUEBC0EBcTYCDAJAIAUoAgwEQCAFKAIQKAIERQRAIAUoAhAoAgAQRiEAIAUoAhAgADYCBCAARQRAIAUoAihBCGpBDkEAEBUgBUF/NgIsDAQLCyAFKAIQKAIEIAUoAhAoAgQvAQhB/wFxIAUtABtBCHRyOwEIIAUoAhAoAgQgBSgCFDYCRCAFKAIQKAIEIgAgACgCAEEQcjYCAAwBCyAFKAIQKAIEBEAgBSgCECgCBCIAIAAoAgBBb3E2AgACQCAFKAIQKAIEKAIARQRAIAUoAhAoAgQQOiAFKAIQQQA2AgQMAQsgBSgCECgCBCAFKAIQKAIELwEIQf8BcSAFLQALQQh0cjsBCCAFKAIQKAIEIAUoAgQ2AkQLCwsgBUEANgIsCyAFKAIsIQAgBUEwaiQAIAAL7QQCAX8BfiMAQUBqIgQkACAEIAA2AjQgBEJ/NwMoIAQgATYCJCAEIAI2AiAgBCADNgIcAkAgBCgCNCgCGEECcQRAIAQoAjRBCGpBGUEAEBUgBEJ/NwM4DAELIAQgBCgCNCkDMDcDECAEKQMoQn9RBEAgBEJ/NwMIIAQoAhxBgMAAcQRAIAQgBCgCNCAEKAIkIAQoAhxBABBVNwMICyAEKQMIQn9RBEAgBCAEKAI0EKACIgU3AwggBUIAUwRAIARCfzcDOAwDCwsgBCAEKQMINwMoCwJAIAQoAiRFDQAgBCgCNCAEKQMoIAQoAiQgBCgCHBCfAkUNACAEKAI0KQMwIAQpAxBSBEAgBCgCNCgCQCAEKQMop0EEdGoQYiAEKAI0IAQpAxA3AzALIARCfzcDOAwBCyAEKAI0KAJAIAQpAyinQQR0ahBjAkAgBCgCNCgCQCAEKQMop0EEdGooAgBFDQAgBCgCNCgCQCAEKQMop0EEdGooAgQEQCAEKAI0KAJAIAQpAyinQQR0aigCBCgCAEEBcQ0BCyAEKAI0KAJAIAQpAyinQQR0aigCBEUEQCAEKAI0KAJAIAQpAyinQQR0aigCABBGIQAgBCgCNCgCQCAEKQMop0EEdGogADYCBCAARQRAIAQoAjRBCGpBDkEAEBUgBEJ/NwM4DAMLCyAEKAI0KAJAIAQpAyinQQR0aigCBEF+NgIQIAQoAjQoAkAgBCkDKKdBBHRqKAIEIgAgACgCAEEBcjYCAAsgBCgCNCgCQCAEKQMop0EEdGogBCgCIDYCCCAEIAQpAyg3AzgLIAQpAzghBSAEQUBrJAAgBQuYAgACQAJAIAFBFEsNAAJAAkACQAJAAkACQAJAAkAgAUF3ag4KAAECCQMEBQYJBwgLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAAgAkEWEQQACw8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtKAQN/IAAoAgAsAABBUGpBCkkEQANAIAAoAgAiASwAACEDIAAgAUEBajYCACADIAJBCmxqQVBqIQIgASwAAUFQakEKSQ0ACwsgAgt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARClASEAIAEoAgBBQGoLNgIAIAAPCyABIAJBgnhqNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCxIAIABFBEBBAA8LIAAgARC1AgvlAQECfyACQQBHIQMCQAJAAkAgAkUNACAAQQNxRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAEEBaiEAIAJBf2oiAkEARyEDIAJFDQEgAEEDcQ0ACwsgA0UNAQsCQCAALQAAIAFB/wFxRg0AIAJBBEkNACABQf8BcUGBgoQIbCEDA0AgACgCACADcyIEQX9zIARB//37d2pxQYCBgoR4cQ0BIABBBGohACACQXxqIgJBA0sNAAsLIAJFDQAgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBf2oiAg0ACwtBAAuqAQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgIAJBADYCHAJAAkAgAigCKCgCJEEBRgRAIAIoAhxFDQEgAigCHEEBRg0BIAIoAhxBAkYNAQsgAigCKEEMakESQQAQFSACQX82AiwMAQsgAiACKQMgNwMIIAIgAigCHDYCECACQX9BACACKAIoIAJBCGpCEEEMECJCAFMbNgIsCyACKAIsIQAgAkEwaiQAIAALzQsBAX8jAEHAAWsiBSQAIAUgADYCuAEgBSABNgK0ASAFIAI3A6gBIAUgAzYCpAEgBUIANwOYASAFQgA3A5ABIAUgBDYCjAECQCAFKAK4AUUEQCAFQQA2ArwBDAELAkAgBSgCtAEEQCAFKQOoASAFKAK0ASkDMFQNAQsgBSgCuAFBCGpBEkEAEBUgBUEANgK8AQwBCwJAIAUoAqQBQQhxDQAgBSgCtAEoAkAgBSkDqAGnQQR0aigCCEUEQCAFKAK0ASgCQCAFKQOoAadBBHRqLQAMQQFxRQ0BCyAFKAK4AUEIakEPQQAQFSAFQQA2ArwBDAELIAUoArQBIAUpA6gBIAUoAqQBQQhyIAVByABqEHpBAEgEQCAFKAK4AUEIakEUQQAQFSAFQQA2ArwBDAELIAUoAqQBQSBxBEAgBSAFKAKkAUEEcjYCpAELAkAgBSkDmAFCAFgEQCAFKQOQAUIAWA0BCyAFKAKkAUEEcUUNACAFKAK4AUEIakESQQAQFSAFQQA2ArwBDAELAkAgBSkDmAFCAFgEQCAFKQOQAUIAWA0BCyAFKQOYASAFKQOQAXwgBSkDmAFaBEAgBSkDmAEgBSkDkAF8IAUpA2BYDQELIAUoArgBQQhqQRJBABAVIAVBADYCvAEMAQsgBSkDkAFQBEAgBSAFKQNgIAUpA5gBfTcDkAELIAUgBSkDkAEgBSkDYFQ6AEcgBSAFKAKkAUEgcQR/QQAFIAUvAXpBAEcLQQFxOgBFIAUgBSgCpAFBBHEEf0EABSAFLwF4QQBHC0EBcToARCAFAn8gBSgCpAFBBHEEQEEAIAUvAXgNARoLIAUtAEdBf3MLQQFxOgBGIAUtAEVBAXEEQCAFKAKMAUUEQCAFIAUoArgBKAIcNgKMAQsgBSgCjAFFBEAgBSgCuAFBCGpBGkEAEBUgBUEANgK8AQwCCwsgBSkDaFAEQCAFIAUoArgBQQBCAEEAEHk2ArwBDAELAkACQCAFLQBHQQFxRQ0AIAUtAEVBAXENACAFLQBEQQFxDQAgBSAFKQOQATcDICAFIAUpA5ABNwMoIAVBADsBOCAFIAUoAnA2AjAgBULcADcDCCAFIAUoArQBKAIAIAUpA5gBIAUpA5ABIAVBCGpBACAFKAK0ASAFKQOoASAFKAK4AUEIahB+IgA2AogBDAELIAUgBSgCtAEgBSkDqAEgBSgCpAEgBSgCuAFBCGoQRSIANgIEIABFBEAgBUEANgK8AQwCCyAFIAUoArQBKAIAQgAgBSkDaCAFQcgAaiAFKAIELwEMQQF1QQNxIAUoArQBIAUpA6gBIAUoArgBQQhqEH4iADYCiAELIABFBEAgBUEANgK8AQwBCyAFKAKIASAFKAK0ARCGA0EASARAIAUoAogBEBwgBUEANgK8AQwBCyAFLQBFQQFxBEAgBSAFLwF6QQAQdyIANgIAIABFBEAgBSgCuAFBCGpBGEEAEBUgBUEANgK8AQwCCyAFIAUoArgBIAUoAogBIAUvAXpBACAFKAKMASAFKAIAEQYANgKEASAFKAKIARAcIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUtAERBAXEEQCAFIAUoArgBIAUoAogBIAUvAXgQqwE2AoQBIAUoAogBEBwgBSgChAFFBEAgBUEANgK8AQwCCyAFIAUoAoQBNgKIAQsgBS0ARkEBcQRAIAUgBSgCuAEgBSgCiAFBARCqATYChAEgBSgCiAEQHCAFKAKEAUUEQCAFQQA2ArwBDAILIAUgBSgChAE2AogBCwJAIAUtAEdBAXFFDQAgBS0ARUEBcUUEQCAFLQBEQQFxRQ0BCyAFIAUoArgBIAUoAogBIAUpA5gBIAUpA5ABEIgDNgKEASAFKAKIARAcIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUgBSgCiAE2ArwBCyAFKAK8ASEAIAVBwAFqJAAgAAuEAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhRFBEAgAygCGEEIakESQQAQFSADQQA2AhwMAQsgA0E4EBkiADYCDCAARQRAIAMoAhhBCGpBDkEAEBUgA0EANgIcDAELIwBBEGsiACADKAIMQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAMoAgwgAygCEDYCACADKAIMQQA2AgQgAygCDEIANwMoQQBBAEEAEBshACADKAIMIAA2AjAgAygCDEIANwMYIAMgAygCGCADKAIUQRQgAygCDBBkNgIcCyADKAIcIQAgA0EgaiQAIAALQwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBEEAQQAQrQEhACADQRBqJAAgAAtJAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDCgCrEAgASgCDCgCqEAoAgQRAwAgASgCDBA4IAEoAgwQFgsgAUEQaiQAC5cCAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE2AiQgBSACNgIgIAUgAzoAHyAFIAQ2AhggBUEANgIMAkAgBSgCJEUEQCAFKAIoQQhqQRJBABAVIAVBADYCLAwBCyAFIAUoAiAgBS0AH0EBcRCuASIANgIMIABFBEAgBSgCKEEIakEQQQAQFSAFQQA2AiwMAQsgBSAFKAIgIAUtAB9BAXEgBSgCGCAFKAIMEMECIgA2AhQgAEUEQCAFKAIoQQhqQQ5BABAVIAVBADYCLAwBCyAFIAUoAiggBSgCJEETIAUoAhQQZCIANgIQIABFBEAgBSgCFBCsASAFQQA2AiwMAQsgBSAFKAIQNgIsCyAFKAIsIQAgBUEwaiQAIAALzAEBAX8jAEEgayICIAA2AhggAiABOgAXIAICfwJAIAIoAhhBf0cEQCACKAIYQX5HDQELQQgMAQsgAigCGAs7AQ4gAkEANgIQAkADQCACKAIQQdCYASgCAEkEQCACKAIQQQxsQdSYAWovAQAgAi8BDkYEQCACLQAXQQFxBEAgAiACKAIQQQxsQdSYAWooAgQ2AhwMBAsgAiACKAIQQQxsQdSYAWooAgg2AhwMAwUgAiACKAIQQQFqNgIQDAILAAsLIAJBADYCHAsgAigCHAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBkiADYCDAJAIABFBEAgAygCEEEBQbScASgCABAVIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC1oBAX8jAEEQayIBIAA2AggCQAJAIAEoAggoAgBBAE4EQCABKAIIKAIAQaAOKAIASA0BCyABQQA2AgwMAQsgASABKAIIKAIAQQJ0QbAOaigCADYCDAsgASgCDAvjCAEBfyMAQUBqIgIgADYCOCACIAE2AjQgAiACKAI4KAJ8NgIwIAIgAigCOCgCOCACKAI4KAJsajYCLCACIAIoAjgoAng2AiAgAiACKAI4KAKQATYCHCACAn8gAigCOCgCbCACKAI4KAIsQYYCa0sEQCACKAI4KAJsIAIoAjgoAixBhgJrawwBC0EACzYCGCACIAIoAjgoAkA2AhQgAiACKAI4KAI0NgIQIAIgAigCOCgCOCACKAI4KAJsakGCAmo2AgwgAiACKAIsIAIoAiBBAWtqLQAAOgALIAIgAigCLCACKAIgai0AADoACiACKAI4KAJ4IAIoAjgoAowBTwRAIAIgAigCMEECdjYCMAsgAigCHCACKAI4KAJ0SwRAIAIgAigCOCgCdDYCHAsDQAJAIAIgAigCOCgCOCACKAI0ajYCKAJAIAIoAiggAigCIGotAAAgAi0ACkcNACACKAIoIAIoAiBBAWtqLQAAIAItAAtHDQAgAigCKC0AACACKAIsLQAARw0AIAIgAigCKCIAQQFqNgIoIAAtAAEgAigCLC0AAUcEQAwBCyACIAIoAixBAmo2AiwgAiACKAIoQQFqNgIoA0AgAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoAn9BACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAigCLCACKAIMSQtBAXENAAsgAkGCAiACKAIMIAIoAixrazYCJCACIAIoAgxB/n1qNgIsIAIoAiQgAigCIEoEQCACKAI4IAIoAjQ2AnAgAiACKAIkNgIgIAIoAiQgAigCHE4NAiACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKCwsgAiACKAIUIAIoAjQgAigCEHFBAXRqLwEAIgE2AjRBACEAIAEgAigCGEsEfyACIAIoAjBBf2oiADYCMCAAQQBHBUEAC0EBcQ0BCwsCQCACKAIgIAIoAjgoAnRNBEAgAiACKAIgNgI8DAELIAIgAigCOCgCdDYCPAsgAigCPAueEAEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkIAICfyACKAIoKAIMQQVrIAIoAigoAixLBEAgAigCKCgCLAwBCyACKAIoKAIMQQVrCzYCICACQQA2AhAgAiACKAIoKAIAKAIENgIMA0ACQCACQf//AzYCHCACIAIoAigoArwtQSpqQQN1NgIUIAIoAigoAgAoAhAgAigCFEkNACACIAIoAigoAgAoAhAgAigCFGs2AhQgAiACKAIoKAJsIAIoAigoAlxrNgIYIAIoAhwgAigCGCACKAIoKAIAKAIEaksEQCACIAIoAhggAigCKCgCACgCBGo2AhwLIAIoAhwgAigCFEsEQCACIAIoAhQ2AhwLAkAgAigCHCACKAIgTw0AAkAgAigCHEUEQCACKAIkQQRHDQELIAIoAiRFDQAgAigCHCACKAIYIAIoAigoAgAoAgRqRg0BCwwBC0EAIQAgAkEBQQAgAigCJEEERgR/IAIoAhwgAigCGCACKAIoKAIAKAIEakYFQQALQQFxGzYCECACKAIoQQBBACACKAIQEFcgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHSACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGhogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQcxogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGhogAigCKCACKAIoKAIsNgJsDAELIAIoAigoAjwgAigCKCgCbGsgAigCDE0EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAaGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAg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akECdGovAQI2AhQgAyADKAIQQQFqIgA2AhACQAJAIAAgAygCDE4NACADKAIYIAMoAhRHDQAMAQsCQCADKAIQIAMoAghIBEAgAygCLEH8FGogAygCGEECdGoiACADKAIQIAAvAQBqOwEADAELAkAgAygCGARAIAMoAhggAygCHEcEQCADKAIsIAMoAhhBAnRqQfwUaiIAIAAvAQBBAWo7AQALIAMoAiwiACAAQbwVai8BAEEBajsBvBUMAQsCQCADKAIQQQpMBEAgAygCLCIAIABBwBVqLwEAQQFqOwHAFQwBCyADKAIsIgAgAEHEFWovAQBBAWo7AcQVCwsLIANBADYCECADIAMoAhg2AhwCQCADKAIURQRAIANBigE2AgwgA0EDNgIIDAELAkAgAygCGCADKAIURgRAIANBBjYCDCADQQM2AggMAQsgA0EHNgIMIANBBDYCCAsLCyADIAMoAiBBAWo2AiAMAQsLC6cSAQJ/IwBB0ABrIgMgADYCTCADIAE2AkggAyACNgJEIANBADYCOCADKAJMKAKgLQRAA0AgAyADKAJMKAKkLSADKAI4QQF0ai8BADYCQCADKAJMKAKYLSEAIAMgAygCOCIBQQFqNgI4IAMgACABai0AADYCPAJAIAMoAkBFBEAgAyADKAJIIAMoAjxBAnRqLwECNgIsAkAgAygCTCgCvC1BECADKAIsa0oEQCADIAMoAkggAygCPEECdGovAQA2AiggAygCTCIAIAAvAbgtIAMoAihB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCKEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAixBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI8QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCLCAAKAK8LWo2ArwtCwwBCyADIAMoAjwtAIBZNgI0IAMgAygCSCADKAI0QYECakECdGovAQI2AiQCQCADKAJMKAK8LUEQIAMoAiRr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AixBLRAgIAMoAixBABAhIAMoAixBABAhIAMoAiwgAykDqAEQLiADKAIsIAMpA6gBEC4gAygCLCADKQOYARAuIAMoAiwgAykDoAEQLiADKAIsQbvTAEEEEEAgAygCLEEAECEgAygCLCADKQOgASADKQOYAXwQLiADKAIsQQEQIQsgAygCLEHA0wBBBBBAIAMoAixBABAhIAMoAiwCfkL//wMgAykDqAFC//8DWg0AGiADKQOoAQunQf//A3EQICADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ/QX8gAykDmAFC/////w9aDQAaIAMpA5gBpwsQISADKAIsAn9BfyADKQOgAUL/////D1oNABogAykDoAGnCxAhIAMCfyADKAK0AS0AKEEBcQRAIAMoArQBKAIkDAELIAMoArQBKAIgCzYClAEgAygCLAJ/IAMoApQBBEAgAygClAEvAQQMAQtBAAtB//8DcRAgAn8jAEEQayIAIAMoAiw2AgwgACgCDC0AAEEBcUULBEAgAygCtAFBCGpBFEEAEBUgAygCLBAXIANCfzcDuAEMAQsgAygCtAECfyMAQRBrIgAgAygCLDYCDCAAKAIMKAIECwJ+IwBBEGsiACADKAIsNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAIsEBcgA0J/NwO4AQwBCyADKAIsEBcgAygClAEEQCADKAK0ASADKAKUASgCACADKAKUAS8BBK0QNkEASARAIANCfzcDuAEMAgsLIAMgAykDmAE3A7gBCyADKQO4ASECIANBwAFqJAAgAgu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhgFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCFATYCDCACKAIcKAIAKAI0IAIoAgwQhwEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsGAEG0nAELjAEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACQQA2AhACQCACKAIURQRAIAJBADYCHAwBCyACIAIoAhQQGTYCDCACKAIMRQRAIAIoAhBBDkEAEBUgAkEANgIcDAELIAIoAgwgAigCGCACKAIUEBoaIAIgAigCDDYCHAsgAigCHCEAIAJBIGokACAACxgAQaicAUIANwIAQbCcAUEANgIAQaicAQuIAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCAJAAkAgAygCFCgCJEEBRgRAIAMpAwhC////////////AFgNAQsgAygCFEEMakESQQAQFSADQn83AxgMAQsgAyADKAIUIAMoAhAgAykDCEELECI3AxgLIAMpAxghAiADQSBqJAAgAgtzAQF/IwBBIGsiASQAIAEgADYCGCABQgg3AxAgASABKAIYKQMQIAEpAxB8NwMIAkAgASkDCCABKAIYKQMQVARAIAEoAhhBADoAACABQX82AhwMAQsgASABKAIYIAEpAwgQLTYCHAsgASgCHBogAUEgaiQACwgAQQFBDBB9CwcAIAAoAigLlgEBAX8jAEEgayICIAA2AhggAiABNwMQAkACQAJAIAIoAhgtAABBAXFFDQAgAigCGCkDECACKQMQfCACKQMQVA0AIAIoAhgpAxAgAikDEHwgAigCGCkDCFgNAQsgAigCGEEAOgAAIAJBADYCHAwBCyACIAIoAhgoAgQgAigCGCkDEKdqNgIMIAIgAigCDDYCHAsgAigCHAu5AgEBfyMAQRBrIgIgADYCCCACIAE2AgQCQCACKAIIQYABSQRAIAIoAgQgAigCCDoAACACQQE2AgwMAQsgAigCCEGAEEkEQCACKAIEIAIoAghBBnZBH3FBwAFyOgAAIAIoAgQgAigCCEE/cUGAAXI6AAEgAkECNgIMDAELIAIoAghBgIAESQRAIAIoAgQgAigCCEEMdkEPcUHgAXI6AAAgAigCBCACKAIIQQZ2QT9xQYABcjoAASACKAIEIAIoAghBP3FBgAFyOgACIAJBAzYCDAwBCyACKAIEIAIoAghBEnZBB3FB8AFyOgAAIAIoAgQgAigCCEEMdkE/cUGAAXI6AAEgAigCBCACKAIIQQZ2QT9xQYABcjoAAiACKAIEIAIoAghBP3FBgAFyOgADIAJBBDYCDAsgAigCDAtfAQF/IwBBEGsiASAANgIIAkAgASgCCEGAAUkEQCABQQE2AgwMAQsgASgCCEGAEEkEQCABQQI2AgwMAQsgASgCCEGAgARJBEAgAUEDNgIMDAELIAFBBDYCDAsgASgCDAv+AgEBfyMAQTBrIgQkACAEIAA2AiggBCABNgIkIAQgAjYCICAEIAM2AhwgBCAEKAIoNgIYAkAgBCgCJEUEQCAEKAIgBEAgBCgCIEEANgIACyAEQQA2AiwMAQsgBEEBNgIQIARBADYCDANAIAQoAgwgBCgCJE9FBEAgBCAEKAIYIAQoAgxqLQAAQQF0QbDPAGovAQAQ0QEgBCgCEGo2AhAgBCAEKAIMQQFqNgIMDAELCyAEIAQoAhAQGSIANgIUIABFBEAgBCgCHEEOQQAQFSAEQQA2AiwMAQsgBEEANgIIIARBADYCDANAIAQoAgwgBCgCJE9FBEAgBCAEKAIYIAQoAgxqLQAAQQF0QbDPAGovAQAgBCgCFCAEKAIIahDQASAEKAIIajYCCCAEIAQoAgxBAWo2AgwMAQsLIAQoAhQgBCgCEEEBa2pBADoAACAEKAIgBEAgBCgCICAEKAIQQQFrNgIACyAEIAQoAhQ2AiwLIAQoAiwhACAEQTBqJAAgAAsHACAAKAIYC/ILAQF/IwBBIGsiAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIcQQh2QYD+A3EgAygCHEEYdmogAygCHEGA/gNxQQh0aiADKAIcQf8BcUEYdGo2AhAgAyADKAIQQX9zNgIQA0BBACEAIAMoAhQEfyADKAIYQQNxQQBHBUEAC0EBcQRAIAMoAhBBGHYhACADIAMoAhgiAUEBajYCGCADIAEtAAAgAHNBAnRBsC9qKAIAIAMoAhBBCHRzNgIQIAMgAygCFEF/ajYCFAwBCwsgAyADKAIYNgIMA0AgAygCFEEgSUUEQCADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCFEEgazYCFAwBCwsDQCADKAIUQQRJRQRAIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAhRBBGs2AhQMAQsLIAMgAygCDDYCGCADKAIUBEADQCADKAIQQRh2IQAgAyADKAIYIgFBAWo2AhggAyABLQAAIABzQQJ0QbAvaigCACADKAIQQQh0czYCECADIAMoAhRBf2oiADYCFCAADQALCyADIAMoAhBBf3M2AhAgAygCEEEIdkGA/gNxIAMoAhBBGHZqIAMoAhBBgP4DcUEIdGogAygCEEH/AXFBGHRqC5MLAQF/IwBBIGsiAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIcNgIQIAMgAygCEEF/czYCEANAQQAhACADKAIUBH8gAygCGEEDcUEARwVBAAtBAXEEQCADKAIQIQAgAyADKAIYIgFBAWo2AhggAyABLQAAIABzQf8BcUECdEGwD2ooAgAgAygCEEEIdnM2AhAgAyADKAIUQX9qNgIUDAELCyADIAMoAhg2AgwDQCADKAIUQSBJRQRAIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCFEEgazYCFAwBCwsDQCADKAIUQQRJRQRAIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsA9qKAIAIAMoAhBBEHZB/wFxQQJ0QbAXaigCACADKAIQQf8BcUECdEGwJ2ooAgAgAygCEEEIdkH/AXFBAnRBsB9qKAIAc3NzNgIQIAMgAygCFEEEazYCFAwBCwsgAyADKAIMNgIYIAMoAhQEQANAIAMoAhAhACADIAMoAhgiAUEBajYCGCADIAEtAAAgAHNB/wFxQQJ0QbAPaigCACADKAIQQQh2czYCECADIAMoAhRBf2oiADYCFCAADQALCyADIAMoAhBBf3M2AhAgAygCEAuGAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhRFBEAgA0EANgIcDAELIANBATYCDCADLQAMBEAgAyADKAIYIAMoAhQgAygCEBDVATYCHAwBCyADIAMoAhggAygCFCADKAIQENQBNgIcCyADKAIcIQAgA0EgaiQAIAALBwAgACgCEAsUACAAIAGtIAKtQiCGhCADIAQQegsTAQF+IAAQSiIBQiCIpxAAIAGnCxIAIAAgAa0gAq1CIIaEIAMQKAsfAQF+IAAgASACrSADrUIghoQQLyIEQiCIpxAAIASnCxUAIAAgAa0gAq1CIIaEIAMgBBC/AQsUACAAIAEgAq0gA61CIIaEIAQQeQsVACAAIAGtIAKtQiCGhCADIAQQ8AELFwEBfiAAIAEgAhBuIgNCIIinEAAgA6cLFgEBfiAAIAEQkAIiAkIgiKcQACACpwsTACAAIAGtIAKtQiCGhCADEMEBCyABAX4gACABIAKtIAOtQiCGhBCRAiIEQiCIpxAAIASnCxMAIAAgAa0gAq1CIIaEIAMQkgILFQAgACABrSACrUIghoQgAyAEEJcCCxcAIAAgAa0gAq1CIIaEIAMgBCAFEKEBCxcAIAAgAa0gAq1CIIaEIAMgBCAFEKABCxoBAX4gACABIAIgAxCaAiIEQiCIpxAAIASnCxgBAX4gACABIAIQnAIiA0IgiKcQACADpwsJACABIAARAwALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALIgEBfyMAQRBrIgEgADYCDCABKAIMIgAgACgCMEEBajYCMAsEACMAC8QBAQF/IwBBMGsiASQAIAEgADYCKCABQQA2AiQgAUIANwMYAkADQCABKQMYIAEoAigpAzBUBEAgASABKAIoIAEpAxhBACABQRdqIAFBEGoQoAE2AgwgASgCDEF/RgRAIAFBfzYCLAwDBQJAIAEtABdBA0cNACABKAIQQRB2QYDgA3FBgMACRw0AIAEgASgCJEEBajYCJAsgASABKQMYQgF8NwMYDAILAAsLIAEgASgCJDYCLAsgASgCLCEAIAFBMGokACAAC4IBAgF/AX4jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMIAQgBCgCGCAEKAIUIAQoAhAQbiIFNwMAAkAgBUIAUwRAIARBfzYCHAwBCyAEIAQoAhggBCkDACAEKAIQIAQoAgwQejYCHAsgBCgCHCEAIARBIGokACAAC9IDAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDECAEKAIYKQMwVARAIAQoAghBCU0NAQsgBCgCGEEIakESQQAQFSAEQX82AhwMAQsgBCgCGCgCGEECcQRAIAQoAhhBCGpBGUEAEBUgBEF/NgIcDAELIAQoAgwQwwJBAXFFBEAgBCgCGEEIakEQQQAQFSAEQX82AhwMAQsgBCAEKAIYKAJAIAQpAxCnQQR0ajYCBCAEAn9BfyAEKAIEKAIARQ0AGiAEKAIEKAIAKAIQCzYCAAJAIAQoAgwgBCgCAEYEQCAEKAIEKAIEBEAgBCgCBCgCBCIAIAAoAgBBfnE2AgAgBCgCBCgCBEEAOwFQIAQoAgQoAgQoAgBFBEAgBCgCBCgCBBA6IAQoAgRBADYCBAsLDAELIAQoAgQoAgRFBEAgBCgCBCgCABBGIQAgBCgCBCAANgIEIABFBEAgBCgCGEEIakEOQQAQFSAEQX82AhwMAwsLIAQoAgQoAgQgBCgCDDYCECAEKAIEKAIEIAQoAgg7AVAgBCgCBCgCBCIAIAAoAgBBAXI2AgALIARBADYCHAsgBCgCHCEAIARBIGokACAAC5ACAQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQCQAJAAkAgAigCCC8BCiACKAIELwEKSA0AIAIoAggoAhAgAigCBCgCEEcNACACKAIIKAIUIAIoAgQoAhRHDQAgAigCCCgCMCACKAIEKAIwEIkBDQELIAJBfzYCDAwBCwJAAkAgAigCCCgCGCACKAIEKAIYRw0AIAIoAggpAyAgAigCBCkDIFINACACKAIIKQMoIAIoAgQpAyhRDQELAkACQCACKAIELwEMQQhxRQ0AIAIoAgQoAhgNACACKAIEKQMgQgBSDQAgAigCBCkDKFANAQsgAkF/NgIMDAILCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAv6AwEBfyMAQdAAayIEJAAgBCAANgJIIAQgATcDQCAEIAI2AjwgBCADNgI4AkAgBCgCSBAwQhZUBEAgBCgCOEEVQQAQFSAEQQA2AkwMAQsjAEEQayIAIAQoAkg2AgwgBAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALNwMIIAQoAkhCBBAfGiAEKAJIECsEQCAEKAI4QQFBABAVIARBADYCTAwBCyAEIAQoAkgQHkH//wNxrTcDKCAEIAQoAkgQHkH//wNxrTcDICAEKQMgIAQpAyhSBEAgBCgCOEETQQAQFSAEQQA2AkwMAQsgBCAEKAJIECutNwMYIAQgBCgCSBArrTcDECAEKQMQIAQpAxh8IAQpAxBUBEAgBCgCOEEEQRYQFSAEQQA2AkwMAQsgBCkDECAEKQMYfCAEKQNAIAQpAwh8VgRAIAQoAjhBFUEAEBUgBEEANgJMDAELAkAgBCgCPEEEcUUNACAEKQMQIAQpAxh8IAQpA0AgBCkDCHxRDQAgBCgCOEEVQQAQFSAEQQA2AkwMAQsgBCAEKQMgIAQoAjgQggEiADYCNCAARQRAIARBADYCTAwBCyAEKAI0QQA6ACwgBCgCNCAEKQMYNwMYIAQoAjQgBCkDEDcDICAEIAQoAjQ2AkwLIAQoAkwhACAEQdAAaiQAIAAL1QoBAX8jAEGwAWsiBSQAIAUgADYCqAEgBSABNgKkASAFIAI3A5gBIAUgAzYClAEgBSAENgKQASMAQRBrIgAgBSgCpAE2AgwgBQJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALNwMYIAUoAqQBQgQQHxogBSAFKAKkARAeQf//A3E2AhAgBSAFKAKkARAeQf//A3E2AgggBSAFKAKkARAxNwM4AkAgBSkDOEL///////////8AVgRAIAUoApABQQRBFhAVIAVBADYCrAEMAQsgBSkDOEI4fCAFKQMYIAUpA5gBfFYEQCAFKAKQAUEVQQAQFSAFQQA2AqwBDAELAkACQCAFKQM4IAUpA5gBVA0AIAUpAzhCOHwgBSkDmAECfiMAQRBrIgAgBSgCpAE2AgwgACgCDCkDCAt8Vg0AIAUoAqQBIAUpAzggBSkDmAF9EC0aIAVBADoAFwwBCyAFKAKoASAFKQM4QQAQKEEASARAIAUoApABIAUoAqgBEBggBUEANgKsAQwCCyAFIAUoAqgBQjggBUFAayAFKAKQARBBIgA2AqQBIABFBEAgBUEANgKsAQwCCyAFQQE6ABcLIAUoAqQBQgQQHygAAEHQlpkwRwRAIAUoApABQRVBABAVIAUtABdBAXEEQCAFKAKkARAXCyAFQQA2AqwBDAELIAUgBSgCpAEQMTcDMAJAIAUoApQBQQRxRQ0AIAUpAzAgBSkDOHxCDHwgBSkDmAEgBSkDGHxRDQAgBSgCkAFBFUEAEBUgBS0AF0EBcQRAIAUoAqQBEBcLIAVBADYCrAEMAQsgBSgCpAFCBBAfGiAFIAUoAqQBECs2AgwgBSAFKAKkARArNgIEIAUoAhBB//8DRgRAIAUgBSgCDDYCEAsgBSgCCEH//wNGBEAgBSAFKAIENgIICwJAIAUoApQBQQRxRQ0AIAUoAgggBSgCBEYEQCAFKAIQIAUoAgxGDQELIAUoApABQRVBABAVIAUtABdBAXEEQCAFKAKkARAXCyAFQQA2AqwBDAELAkAgBSgCEEUEQCAFKAIIRQ0BCyAFKAKQAUEBQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFIAUoAqQBEDE3AyggBSAFKAKkARAxNwMgIAUpAyggBSkDIFIEQCAFKAKQAUEBQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFIAUoAqQBEDE3AzAgBSAFKAKkARAxNwOAAQJ/IwBBEGsiACAFKAKkATYCDCAAKAIMLQAAQQFxRQsEQCAFKAKQAUEUQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFLQAXQQFxBEAgBSgCpAEQFwsCQCAFKQOAAUL///////////8AWARAIAUpA4ABIAUpAzB8IAUpA4ABWg0BCyAFKAKQAUEEQRYQFSAFQQA2AqwBDAELIAUpA4ABIAUpAzB8IAUpA5gBIAUpAzh8VgRAIAUoApABQRVBABAVIAVBADYCrAEMAQsCQCAFKAKUAUEEcUUNACAFKQOAASAFKQMwfCAFKQOYASAFKQM4fFENACAFKAKQAUEVQQAQFSAFQQA2AqwBDAELIAUpAyggBSkDMEIugFYEQCAFKAKQAUEVQQAQFSAFQQA2AqwBDAELIAUgBSkDKCAFKAKQARCCASIANgKMASAARQRAIAVBADYCrAEMAQsgBSgCjAFBAToALCAFKAKMASAFKQMwNwMYIAUoAowBIAUpA4ABNwMgIAUgBSgCjAE2AqwBCyAFKAKsASEAIAVBsAFqJAAgAAviCwEBfyMAQfAAayIEJAAgBCAANgJoIAQgATYCZCAEIAI3A1ggBCADNgJUIwBBEGsiACAEKAJkNgIMIAQCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACzcDMAJAIAQoAmQQMEIWVARAIAQoAlRBE0EAEBUgBEEANgJsDAELIAQoAmRCBBAfKAAAQdCWlTBHBEAgBCgCVEETQQAQFSAEQQA2AmwMAQsCQAJAIAQpAzBCFFQNACMAQRBrIgAgBCgCZDYCDCAAKAIMKAIEIAQpAzCnakFsaigAAEHQlpk4Rw0AIAQoAmQgBCkDMEIUfRAtGiAEIAQoAmgoAgAgBCgCZCAEKQNYIAQoAmgoAhQgBCgCVBDzATYCUAwBCyAEKAJkIAQpAzAQLRogBCAEKAJkIAQpA1ggBCgCaCgCFCAEKAJUEPIBNgJQCyAEKAJQRQRAIARBADYCbAwBCyAEKAJkIAQpAzBCFHwQLRogBCAEKAJkEB47AU4gBCgCUCkDICAEKAJQKQMYfCAEKQNYIAQpAzB8VgRAIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwBCwJAIAQvAU5FBEAgBCgCaCgCBEEEcUUNAQsgBCgCZCAEKQMwQhZ8EC0aIAQgBCgCZBAwNwMgAkAgBCkDICAELwFOrVoEQCAEKAJoKAIEQQRxRQ0BIAQpAyAgBC8BTq1RDQELIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwCCyAELwFOBEAgBCgCZCAELwFOrRAfIAQvAU5BACAEKAJUEFEhACAEKAJQIAA2AiggAEUEQCAEKAJQECUgBEEANgJsDAMLCwsCQCAEKAJQKQMgIAQpA1haBEAgBCgCZCAEKAJQKQMgIAQpA1h9EC0aIAQgBCgCZCAEKAJQKQMYEB8iADYCHCAARQRAIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwDCyAEIAQoAhwgBCgCUCkDGBAqIgA2AiwgAEUEQCAEKAJUQQ5BABAVIAQoAlAQJSAEQQA2AmwMAwsMAQsgBEEANgIsIAQoAmgoAgAgBCgCUCkDIEEAEChBAEgEQCAEKAJUIAQoAmgoAgAQGCAEKAJQECUgBEEANgJsDAILIAQoAmgoAgAQSiAEKAJQKQMgUgRAIAQoAlRBE0EAEBUgBCgCUBAlIARBADYCbAwCCwsgBCAEKAJQKQMYNwM4IARCADcDQANAAkAgBCkDOEIAWA0AIARBADoAGyAEKQNAIAQoAlApAwhRBEAgBCgCUC0ALEEBcQ0BIAQpAzhCLlQNASAEKAJQQoCABCAEKAJUEIEBQQFxRQRAIAQoAlAQJSAEKAIsEBcgBEEANgJsDAQLIARBAToAGwsQjgMhACAEKAJQKAIAIAQpA0CnQQR0aiAANgIAAkAgAARAIAQgBCgCUCgCACAEKQNAp0EEdGooAgAgBCgCaCgCACAEKAIsQQAgBCgCVBDDASICNwMQIAJCAFkNAQsCQCAELQAbQQFxRQ0AIwBBEGsiACAEKAJUNgIMIAAoAgwoAgBBE0cNACAEKAJUQRVBABAVCyAEKAJQECUgBCgCLBAXIARBADYCbAwDCyAEIAQpA0BCAXw3A0AgBCAEKQM4IAQpAxB9NwM4DAELCwJAIAQpA0AgBCgCUCkDCFEEQCAEKQM4QgBYDQELIAQoAlRBFUEAEBUgBCgCLBAXIAQoAlAQJSAEQQA2AmwMAQsgBCgCaCgCBEEEcQRAAkAgBCgCLARAIAQgBCgCLBBIQQFxOgAPDAELIAQgBCgCaCgCABBKNwMAIAQpAwBCAFMEQCAEKAJUIAQoAmgoAgAQGCAEKAJQECUgBEEANgJsDAMLIAQgBCkDACAEKAJQKQMgIAQoAlApAxh8UToADwsgBC0AD0EBcUUEQCAEKAJUQRVBABAVIAQoAiwQFyAEKAJQECUgBEEANgJsDAILCyAEKAIsEBcgBCAEKAJQNgJsCyAEKAJsIQAgBEHwAGokACAAC9cBAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQgAkGJmAE2AhAgAkEENgIMAkACQCACKAIUIAIoAgxPBEAgAigCDA0BCyACQQA2AhwMAQsgAiACKAIYQX9qNgIIA0ACQCACIAIoAghBAWogAigCEC0AACACKAIYIAIoAghrIAIoAhQgAigCDGtqEKcBIgA2AgggAEUNACACKAIIQQFqIAIoAhBBAWogAigCDEEBaxBTDQEgAiACKAIINgIcDAILCyACQQA2AhwLIAIoAhwhACACQSBqJAAgAAvBBgEBfyMAQeAAayICJAAgAiAANgJYIAIgATcDUAJAIAIpA1BCFlQEQCACKAJYQQhqQRNBABAVIAJBADYCXAwBCyACAn4gAikDUEKqgARUBEAgAikDUAwBC0KqgAQLNwMwIAIoAlgoAgBCACACKQMwfUECEChBAEgEQCMAQRBrIgAgAigCWCgCADYCDCACIAAoAgxBDGo2AggCQAJ/IwBBEGsiACACKAIINgIMIAAoAgwoAgBBBEYLBEAjAEEQayIAIAIoAgg2AgwgACgCDCgCBEEWRg0BCyACKAJYQQhqIAIoAggQRCACQQA2AlwMAgsLIAIgAigCWCgCABBKIgE3AzggAUIAUwRAIAIoAlhBCGogAigCWCgCABAYIAJBADYCXAwBCyACIAIoAlgoAgAgAikDMEEAIAIoAlhBCGoQQSIANgIMIABFBEAgAkEANgJcDAELIAJCfzcDICACQQA2AkwgAikDMEKqgARaBEAgAigCDEIUEC0aCyACQRBqQRNBABAVIAIgAigCDEIAEB82AkQDQAJAIAIgAigCRCACKAIMEDBCEn2nEPUBIgA2AkQgAEUNACACKAIMIAIoAkQCfyMAQRBrIgAgAigCDDYCDCAAKAIMKAIEC2usEC0aIAIgAigCWCACKAIMIAIpAzggAkEQahD0ASIANgJIIAAEQAJAIAIoAkwEQCACKQMgQgBXBEAgAiACKAJYIAIoAkwgAkEQahBlNwMgCyACIAIoAlggAigCSCACQRBqEGU3AygCQCACKQMgIAIpAyhTBEAgAigCTBAlIAIgAigCSDYCTCACIAIpAyg3AyAMAQsgAigCSBAlCwwBCyACIAIoAkg2AkwCQCACKAJYKAIEQQRxBEAgAiACKAJYIAIoAkwgAkEQahBlNwMgDAELIAJCADcDIAsLIAJBADYCSAsgAiACKAJEQQFqNgJEIAIoAgwgAigCRAJ/IwBBEGsiACACKAIMNgIMIAAoAgwoAgQLa6wQLRoMAQsLIAIoAgwQFyACKQMgQgBTBEAgAigCWEEIaiACQRBqEEQgAigCTBAlIAJBADYCXAwBCyACIAIoAkw2AlwLIAIoAlwhACACQeAAaiQAIAALvwUBAX8jAEHwAGsiAyQAIAMgADYCaCADIAE2AmQgAyACNgJgIANBIGoiABA8AkAgAygCaCAAEDlBAEgEQCADKAJgIAMoAmgQGCADQQA2AmwMAQsgAykDIEIEg1AEQCADKAJgQQRBigEQFSADQQA2AmwMAQsgAyADKQM4NwMYIAMgAygCaCADKAJkIAMoAmAQZiIANgJcIABFBEAgA0EANgJsDAELAkAgAykDGFBFDQAgAygCaBCUAUEBcUUNACADIAMoAlw2AmwMAQsgAyADKAJcIAMpAxgQ9gEiADYCWCAARQRAIAMoAmAgAygCXEEIahBEIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPyADQQA2AmwMAQsgAygCXCADKAJYKAIANgJAIAMoAlwgAygCWCkDCDcDMCADKAJcIAMoAlgpAxA3AzggAygCXCADKAJYKAIoNgIgIAMoAlgQFiADKAJcKAJQIAMoAlwpAzAgAygCXEEIahD+AiADQgA3AxADQCADKQMQIAMoAlwpAzBUBEAgAyADKAJcKAJAIAMpAxCnQQR0aigCACgCMEEAQQAgAygCYBBHNgIMIAMoAgxFBEAjAEEQayIAIAMoAmg2AgwgACgCDCIAIAAoAjBBAWo2AjAgAygCXBA/IANBADYCbAwDCyADKAJcKAJQIAMoAgwgAykDEEEIIAMoAlxBCGoQfEEBcUUEQAJAIAMoAlwoAghBCkYEQCADKAJkQQRxRQ0BCyADKAJgIAMoAlxBCGoQRCMAQRBrIgAgAygCaDYCDCAAKAIMIgAgACgCMEEBajYCMCADKAJcED8gA0EANgJsDAQLCyADIAMpAxBCAXw3AxAMAQsLIAMoAlwgAygCXCgCFDYCGCADIAMoAlw2AmwLIAMoAmwhACADQfAAaiQAIAALwQEBAX8jAEHQAGsiAiQAIAIgADYCSCACIAE2AkQgAkEIaiIAEDwCQCACKAJIIAAQOQRAIwBBEGsiACACKAJINgIMIAIgACgCDEEMajYCBCMAQRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIIDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwhAiABQbYDNgIAIAEgACACIAEQaSIANgIQAkAgAEEASARAIAFBADYCHAwBCyABIAEoAhBBgpgBQYaYASABLQAXQQFxGxCYASIANgIIIABFBEAgAUEANgIcDAELIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC8gCAQF/IwBBgAFrIgEkACABIAA2AnggASABKAJ4KAIYECxBCGoQGSIANgJ0AkAgAEUEQCABKAJ4QQ5BABAVIAFBfzYCfAwBCwJAIAEoAngoAhggAUEQahCeAUUEQCABIAEoAhw2AmwMAQsgAUF/NgJsCyABKAJ0IQAgASABKAJ4KAIYNgIAIABB+JcBIAEQbyABIAEoAnQgASgCbBCFAiIANgJwIABBf0YEQCABKAJ4QQxBtJwBKAIAEBUgASgCdBAWIAFBfzYCfAwBCyABIAEoAnBBgpgBEJgBIgA2AmggAEUEQCABKAJ4QQxBtJwBKAIAEBUgASgCcBBoIAEoAnQQahogASgCdBAWIAFBfzYCfAwBCyABKAJ4IAEoAmg2AoQBIAEoAnggASgCdDYCgAEgAUEANgJ8CyABKAJ8IQAgAUGAAWokACAAC8AQAQF/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAVIARCfzcDWAwRCyAEIAQoAkAQ/QGsNwNYDBALIAQoAkAoAhgEQCAEKAJAKAIcEFQaIAQoAkBBADYCHAsgBEIANwNYDA8LIAQoAkAoAoQBEFRBAEgEQCAEKAJAQQA2AoQBIAQoAkBBBkG0nAEoAgAQFQsgBCgCQEEANgKEASAEKAJAKAKAASAEKAJAKAIYEAciAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAAC0EASARAIAQoAkBBAkG0nAEoAgAQFSAEQn83A1gMDwsgBCgCQCgCgAEQFiAEKAJAQQA2AoABIARCADcDWAwOCyAEIAQoAkAgBCgCUCAEKQNIEEM3A1gMDQsgBCgCQCgCGBAWIAQoAkAoAoABEBYgBCgCQCgCHARAIAQoAkAoAhwQVBoLIAQoAkAQFiAEQgA3A1gMDAsgBCgCQCgCGARAIAQoAkAoAhgQ/AEhACAEKAJAIAA2AhwgAEUEQCAEKAJAQQtBtJwBKAIAEBUgBEJ/NwNYDA0LCyAEKAJAKQNoQgBWBEAgBCgCQCgCHCAEKAJAKQNoIAQoAkAQlgFBAEgEQCAEQn83A1gMDQsLIAQoAkBCADcDeCAEQgA3A1gMCwsCQCAEKAJAKQNwQgBWBEAgBCAEKAJAKQNwIAQoAkApA3h9NwMwIAQpAzAgBCkDSFYEQCAEIAQpA0g3AzALDAELIAQgBCkDSDcDMAsgBCkDMEL/////D1YEQCAEQv////8PNwMwCyAEIAQoAjwgBCkDMKcgBCgCQCgCHBCKAiIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbScASgCABAVIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBqQQBIBEAgBCgCQEEWQbScASgCABAVIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBUGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBqGiAEKAJAKAKAARAWIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGdBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEJsBIgI3AyAgAkIAUwRAIAQoAkBBBEG0nAEoAgAQFSAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAVIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQpAyAgBCgCQCkDaHwgBCgCQCkDaFoNAQsgBCgCQEESQQAQFSAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCWAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGdBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBUgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCbATcDCCAEKQMIQgBTBEAgBCgCQEEeQbScASgCABAVIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsCQCAEKAJAKAKEASIAKAJMQQBOBEAgACAAKAIAQU9xNgIADAELIAAgACgCAEFPcTYCAAsgBCAEKAJQIAQpA0inIAQoAkAoAoQBEK0CNgIEAkAgBCkDSCAEKAIErVEEQAJ/IAQoAkAoAoQBIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxRQ0BCyAEKAJAQQZBtJwBKAIAEBUgBEJ/NwNYDAILIAQgBCgCBK03A1gMAQsgBCgCQEEcQQAQFSAEQn83A1gLIAQpA1ghAiAEQeAAaiQAIAILoAkBAX8jAEGgAWsiBCQAIAQgADYCmAEgBEEANgKUASAEIAE3A4gBIAQgAjcDgAEgBEEANgJ8IAQgAzYCeAJAAkAgBCgClAENACAEKAKYAQ0AIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEKQOAAUIAUwRAIARCADcDgAELAkAgBCkDiAFC////////////AFgEQCAEKQOIASAEKQOAAXwgBCkDiAFaDQELIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEQYgBEBkiADYCdCAARQRAIAQoAnhBDkEAEBUgBEEANgKcAQwBCyAEKAJ0QQA2AhggBCgCmAEEQCAEKAKYARCPAiEAIAQoAnQgADYCGCAARQRAIAQoAnhBDkEAEBUgBCgCdBAWIARBADYCnAEMAgsLIAQoAnQgBCgClAE2AhwgBCgCdCAEKQOIATcDaCAEKAJ0IAQpA4ABNwNwAkAgBCgCfARAIAQoAnQiACAEKAJ8IgMpAwA3AyAgACADKQMwNwNQIAAgAykDKDcDSCAAIAMpAyA3A0AgACADKQMYNwM4IAAgAykDEDcDMCAAIAMpAwg3AyggBCgCdEEANgIoIAQoAnQiACAAKQMgQv7///8PgzcDIAwBCyAEKAJ0QSBqEDwLIAQoAnQpA3BCAFYEQCAEKAJ0IAQoAnQpA3A3AzggBCgCdCIAIAApAyBCBIQ3AyALIwBBEGsiACAEKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEKAJ0QQA2AoABIAQoAnRBADYChAEjAEEQayIAIAQoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggBEF/NgIEIARBBzYCAEEOIAQQN0I/hCEBIAQoAnQgATcDEAJAIAQoAnQoAhgEQCAEIAQoAnQoAhggBEEYahCeAUEATjoAFyAELQAXQQFxRQRAAkAgBCgCdCkDaFBFDQAgBCgCdCkDcFBFDQAgBCgCdEL//wM3AxALCwwBCyAEAn8CQCAEKAJ0KAIcIgAoAkxBAEgNAAsgACgCPAsgBEEYahCMAkEATjoAFwsCQCAELQAXQQFxRQRAIAQoAnRB2ABqQQVBtJwBKAIAEBUMAQsgBCgCdCkDIEIQg1AEQCAEKAJ0IAQoAlg2AkggBCgCdCIAIAApAyBCEIQ3AyALIAQoAiRBgOADcUGAgAJGBEAgBCgCdEL/gQE3AxAgBCgCdCkDaCAEKAJ0KQNwfCAEKQNAVgRAIAQoAnhBEkEAEBUgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAMLIAQoAnQpA3BQBEAgBCgCdCAEKQNAIAQoAnQpA2h9NwM4IAQoAnQiACAAKQMgQgSENwMgAkAgBCgCdCgCGEUNACAEKQOIAVBFDQAgBCgCdEL//wM3AxALCwsLIAQoAnQiACAAKQMQQoCAEIQ3AxAgBEEeIAQoAnQgBCgCeBCVASIANgJwIABFBEAgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAELIAQgBCgCcDYCnAELIAQoApwBIQAgBEGgAWokACAACwkAIAAoAjwQBQv3AQEEfyMAQSBrIgMkACADIAE2AhAgAyACIAAoAjAiBEEAR2s2AhQgACgCLCEFIAMgBDYCHCADIAU2AhgCQAJAAn8Cf0EAIAAoAjwgA0EQakECIANBDGoQDSIERQ0AGkG0nAEgBDYCAEF/CwRAIANBfzYCDEF/DAELIAMoAgwiBEEASg0BIAQLIQIgACAAKAIAIAJBMHFBEHNyNgIADAELIAQgAygCFCIGTQRAIAQhAgwBCyAAIAAoAiwiBTYCBCAAIAUgBCAGa2o2AgggACgCMEUNACAAIAVBAWo2AgQgASACakF/aiAFLQAAOgAACyADQSBqJAAgAguBAwEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQAJ/QQAgACgCPCADQRBqQQIgA0EMahADIgRFDQAaQbScASAENgIAQX8LRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUCf0EAIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIANBDGoQAyIERQ0AGkG0nAEgBDYCAEF/C0UNAAsLIANBfzYCDCAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACADQSBqJAAgAAtgAQF/IwBBEGsiAyQAAn4Cf0EAIAAoAjwgAacgAUIgiKcgAkH/AXEgA0EIahALIgBFDQAaQbScASAANgIAQX8LRQRAIAMpAwgMAQsgA0J/NwMIQn8LIQEgA0EQaiQAIAEL2gEBAn8CQCABQf8BcSIDBEAgAEEDcQRAA0AgAC0AACICRQ0DIAIgAUH/AXFGDQMgAEEBaiIAQQNxDQALCwJAIAAoAgAiAkF/cyACQf/9+3dqcUGAgYKEeHENACADQYGChAhsIQMDQCACIANzIgJBf3MgAkH//ft3anFBgIGChHhxDQEgACgCBCECIABBBGohACACQf/9+3dqIAJBf3NxQYCBgoR4cUUNAAsLA0AgACICLQAAIgMEQCACQQFqIQAgAyABQf8BcUcNAQsLIAIPCyAAECwgAGoPCyAAC8UDAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAkEANgIQIAIgAigCKCACKAIoECxqNgIYIAIgAigCGEF/ajYCHANAIAIoAhwgAigCKE8EfyACKAIcLAAAQdgARgVBAAtBAXEEQCACIAIoAhBBAWo2AhAgAiACKAIcQX9qNgIcDAELCwJAIAIoAhBFBEBBtJwBQRw2AgAgAkF/NgIsDAELIAIgAigCHEEBajYCHANAIAIQhgI2AgwgAiACKAIcNgIUA0AgAigCFCACKAIYSQRAIAIgAigCDEEkcDoACwJ/IAIsAAtBCkgEQCACLAALQTBqDAELIAIsAAtB1wBqCyEAIAIgAigCFCIBQQFqNgIUIAEgADoAACACIAIoAgxBJG42AgwMAQsLIAIoAighACACAn9BtgMgAigCJEF/Rg0AGiACKAIkCzYCACACIABBwoEgIAIQaSIANgIgIABBAE4EQCACKAIkQX9HBEAgAigCKCACKAIkEA8iAEGBYE8Ef0G0nAFBACAAazYCAEEABSAACxoLIAIgAigCIDYCLAwCC0G0nAEoAgBBFEYNAAsgAkF/NgIsCyACKAIsIQAgAkEwaiQAIAALVwECfyMAQRBrIgAkAAJAIABBCGoQhwJBAXEEQCAAIAAoAgg2AgwMAQtBlKEBLQAAQQFxRQRAQQAQARCJAgsgABCIAjYCDAsgACgCDCEBIABBEGokACABC6UBAQF/IwBBEGsiASQAIAEgADYCCCABQQQ7AQYgAUHnlwFBAEEAEGkiADYCAAJAIABBAEgEQCABQQA6AA8MAQsgASgCACABKAIIIAEvAQYQECIAQYFgTwR/QbScAUEAIABrNgIAQX8FIAALIAEvAQZHBEAgASgCABBoIAFBADoADwwBCyABKAIAEGggAUEBOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALoQEBBH9BzJoBKAIAIQACQEHImgEoAgAiA0UEQCAAIAAoAgBB7ZyZjgRsQbngAGpB/////wdxIgA2AgAMAQsgAEHQmgEoAgAiAkECdGoiASABKAIAIABBkKEBKAIAIgFBAnRqKAIAaiIANgIAQZChAUEAIAFBAWoiASABIANGGzYCAEHQmgFBACACQQFqIgIgAiADRhs2AgAgAEEBdiEACyAAC6MBAgN/AX5ByJoBKAIAIgFFBEBBzJoBKAIAIAA2AgAPC0HQmgFBA0EDQQEgAUEHRhsgAUEfRhs2AgBBkKEBQQA2AgACQCABQQBMBEBBzJoBKAIAIQIMAQtBzJoBKAIAIQIgAK0hBANAIAIgA0ECdGogBEKt/tXk1IX9qNgAfkIBfCIEQiCIPgIAIANBAWoiAyABRw0ACwsgAiACKAIAQQFyNgIAC7EBAQJ/IAIoAkxBAE4Ef0EBBUEACxogAiACLQBKIgNBf2ogA3I6AEoCfyABIAIoAgggAigCBCIEayIDQQFIDQAaIAAgBCADIAEgAyABSRsiAxAaGiACIAIoAgQgA2o2AgQgACADaiEAIAEgA2sLIgMEQANAAkAgAhCLAkUEQCACIAAgAyACKAIgEQEAIgRBAWpBAUsNAQsgASADaw8LIAAgBGohACADIARrIgMNAAsLIAELfAECfyAAIAAtAEoiAUF/aiABcjoASiAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABoLIABBADYCHCAAQgA3AxAgACgCACIBQQRxBEAgACABQSByNgIAQX8PCyAAIAAoAiwgACgCMGoiAjYCCCAAIAI2AgQgAUEbdEEfdQt2AQJ/IwBBIGsiAiQAAn8CQCAAIAEQCSIDQXhGBEAgABCOAg0BCyADQYFgTwR/QbScAUEAIANrNgIAQX8FIAMLDAELIAIgABCNAiACIAEQAiIAQYFgTwR/QbScAUEAIABrNgIAQX8FIAALCyEAIAJBIGokACAAC54BAQN/A0AgACACaiIDIAJB2JcBai0AADoAACACQQ5HIQQgAkEBaiECIAQNAAsgAQRAQQ4hAiABIQMDQCACQQFqIQIgA0EJSyEEIANBCm4hAyAEDQALIAAgAmpBADoAAANAIAAgAkF/aiICaiABIAFBCm4iA0EKbGtBMHI6AAAgAUEJSyEEIAMhASAEDQALDwsgA0EwOgAAIABBADoADws3AQF/IwBBIGsiASQAAn9BASAAIAFBCGoQCCIARQ0AGkG0nAEgADYCAEEACyEAIAFBIGokACAACyABAn8gABAsQQFqIgEQGSICRQRAQQAPCyACIAAgARAaC6UBAQF/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQEEAIQAgAikDCEIAVgR/IAIoAhQoAkAgAikDCEIBfadBBHRqKAIARQVBAAtBAXEEQCACIAIpAwhCf3w3AwgMAQsLIAIgAikDCDcDGAwBCyACIAIoAhQpAzA3AxgLIAIpAxgL8gEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQCADKAIURQRAIANCfzcDGAwBCyADKAIUKAIEBEAgA0J/NwMYDAELIAMpAwhC////////////AFYEQCADKAIUQQRqQRJBABAVIANCfzcDGAwBCwJAIAMoAhQtABBBAXFFBEAgAykDCFBFDQELIANCADcDGAwBCyADIAMoAhQoAhQgAygCECADKQMIEC8iAjcDACACQgBTBEAgAygCFEEEaiADKAIUKAIUEBggA0J/NwMYDAELIAMgAykDADcDGAsgAykDGCECIANBIGokACACC0cBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHCgCHBCfASEAIANBIGokACAAC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEG4iBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEJ8BNgIcCyADKAIcIQAgA0EgaiQAIAALqgEBAX8jAEEQayIBJAAgASAANgIIIAFBGBAZIgA2AgQCQCAARQRAIAEoAghBCGpBDkEAEBUgAUEANgIMDAELIAEoAgQgASgCCDYCACMAQRBrIgAgASgCBEEEajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ABAgASgCBEEANgIUIAEgASgCBDYCDAsgASgCDCEAIAFBEGok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QdAAaiADQaABahBwIARFDQAaIABBAEEAIAAoAiQRAQAaIABBADYCMCAAIAQ2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAFcjYCACACRQ0ACyADQdABaiQACy8AIAECfyACKAJMQX9MBEAgACABIAIQcQwBCyAAIAEgAhBxCyIARgRAIAEPCyAAC1kBAX8gACAALQBKIgFBf2ogAXI6AEogACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQfSgAQsGAEHwoAELBgBB6KABC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELQCIAIgACAEQYH4ACADaxCzAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBDGASICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtgI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQvAIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsg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BEAgASgCGEEGNgIkCyABIAEoAhgoAihBAUHQNyABKAIYKAIgEQEANgIEIAEoAgRFBEAgAUF8NgIcDAELIAEoAhggASgCBDYCHCABKAIEIAEoAhg2AgAgASgCBEEANgI4IAEoAgRBtP4ANgIEIAEgASgCGCABKAIUENICNgIIIAEoAggEQCABKAIYKAIoIAEoAgQgASgCGCgCJBEEACABKAIYQQA2AhwLIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC60CAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYEEsEQCACQX42AhwMAQsgAiACKAIYKAIcNgIMAkAgAigCFEEASARAIAJBADYCECACQQAgAigCFGs2AhQMAQsgAiACKAIUQQR1QQVqNgIQIAIoAhRBMEgEQCACIAIoAhRBD3E2AhQLCwJAIAIoAhRFDQAgAigCFEEITgRAIAIoAhRBD0wNAQsgAkF+NgIcDAELAkAgAigCDCgCOEUNACACKAIMKAIoIAIoAhRGDQAgAigCGCgCKCACKAIMKAI4IAIoAhgoAiQRBAAgAigCDEEANgI4CyACKAIMIAIoAhA2AgwgAigCDCACKAIUNgIoIAIgAigCGBDTAjYCHAsgAigCHCEAIAJBIGokACAAC3IBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCBBLBEAgAUF+NgIMDAELIAEgASgCCCgCHDYCBCABKAIEQQA2AiwgASgCBEEANgIwIAEoAgRBADYCNCABIAEoAggQ1AI2AgwLIAEoAgwhACABQRBqJAAgAAubAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEEsEQCABQX42AgwMAQsgASABKAIIKAIcNgIEIAEoAgRBADYCICABKAIIQQA2AhQgASgCCEEANgIIIAEoAghBADYCGCABKAIEKAIMBEAgASgCCCABKAIEKAIMQQFxNgIwCyABKAIEQbT+ADYCBCABKAIEQQA2AgggASgCBEEANgIQIAEoAgRBgIACNgIYIAEoAgRBADYCJCABKAIEQQA2AjwgASgCBEEANgJAIAEoAgQgASgCBEG0CmoiADYCcCABKAIEIAA2AlQgASgCBCAANgJQIAEoAgRBATYCxDcgASgCBEF/NgLINyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAuI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AgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsLCwNAIAIoAghBAk1FBEAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIDAELCwwBCyACIAIoAkggAigCBGs2AgADQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAghBA2s2AgggAigCCEECSw0ACwsgAigCCARAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAigCCEEBSwRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAALCwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiAgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAlxBzu0ANgIYIAIoAlRB0f4ANgIEDAQLDAILIAIoAgxBwABxRQRAIAJBEGogAigCJCACLwESIAIoAixBASACKAIMdEEBa3FqQQJ0aigBADYBAAwBCwsgAigCDEEgcQRAIAIoAlRBv/4ANgIEDAILIAIoAlxB5O0ANgIYIAIoAlRB0f4ANgIEDAELQQAhACACKAJQIAIoAkxJBH8gAigCSCACKAJASQVBAAtBAXENAQsLIAIgAigCKEEDdjYCCCACIAIoAlAgAigCCGs2AlAgAiACKAIoIAIoAghBA3RrNgIoIAIgAigCLEEBIAIoAih0QQFrcTYCLCACKAJcIAIoAlA2AgAgAigCXCAC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AghBASACKAIIKAIwdDYCLCACKAIIIAIoAggoAixBAWs2AjQgAigCCCACKAIYQQdqNgJQIAIoAghBASACKAIIKAJQdDYCTCACKAIIIAIoAggoAkxBAWs2AlQgAigCCCACKAIIKAJQQQJqQQNuNgJYIAIoAigoAiggAigCCCgCLEECIAIoAigoAiARAQAhACACKAIIIAA2AjggAigCKCgCKCACKAIIKAIsQQIgAigCKCgCIBEBACEAIAIoAgggADYCQCACKAIoKAIoIAIoAggoAkxBAiACKAIoKAIgEQEAIQAgAigCCCAANgJEIAIoAghBADYCwC0gAigCCEEBIAIoAhhBBmp0NgKcLSACIAIoAigoAiggAigCCCgCnC1BBCACKAIoKAIgEQEANgIAIAIoAgggAigCADYCCCACKAIIIAIoAggoApwtQQJ0NgIMAkACQCACKAIIKAI4RQ0AIAIoAggoAkBFDQAgAigCCCgCREUNACACKAIIKAIIDQELIAIoAghBmgU2AgQgAigCKEHo1AAoAgA2AhggAigCKBCzARogAkF8NgIsDAELIAIoAgggAigCACACKAIIKAKcLUEBdkEBdGo2AqQtIAIoAgggAigCCCgCCCACKAIIKAKcLUEDbGo2ApgtIAIoAgggAigCJDYChAEgAigCCCACKAIUNgKIASACKAIIIAIoAiA6ACQgAiACKAIoEOACNgIsCyACKAIsIQAgAkEwaiQAIAALGAEBfyMAQRBrIgEgADYCDCABKAIMQQxqC2wBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBANAIAIgAigCBCACKAIMQQFxcjYCBCACIAIoAgxBAXY2AgwgAiACKAIEQQF0NgIEIAIgAigCCEF/aiIANgIIIABBAEoNAAsgAigCBEEBdguVAgEBfyMAQUBqIgMkACADIAA2AjwgAyABNgI4IAMgAjYCNCADQQA2AgwgA0EBNgIIA0AgAygCCEEPSkUEQCADIAMoAgwgAygCNCADKAIIQQFrQQF0ai8BAGpBAXQ2AgwgA0EQaiADKAIIQQF0aiADKAIMOwEAIAMgAygCCEEBajYCCAwBCwsgA0EANgIEA0AgAygCBCADKAI4TARAIAMgAygCPCADKAIEQQJ0ai8BAjYCACADKAIABEAgA0EQaiADKAIAQQF0aiIBLwEAIQAg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ACAALwG4LUHA4wAvAQAgASgCHCgCvC10cjsBuC0gASgCHCIAIAEoAhAgACgCvC1qNgK8LQsgASgCHBC3ASABQSBqJAALIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBC3ASABQRBqJAALlgEBAX8jAEEQayIBJAAgASAANgIMIAEoAgwgASgCDEGUAWo2ApgWIAEoAgxBgNsANgKgFiABKAIMIAEoAgxBiBNqNgKkFiABKAIMQZTbADYCrBYgASgCDCABKAIMQfwUajYCsBYgASgCDEGo2wA2ArgWIAEoAgxBADsBuC0gASgCDEEANgK8LSABKAIMELkBIAFBEGokAAvXDQEBfyMAQSBrIgMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGEEQdjYCDCADIAMoAhhB//8DcTYCGAJAIAMoAhBBAUYEQCADIAMoAhQtAAAgAygCGGo2AhggAygCGEHx/wNPBEAgAyADKAIYQfH/A2s2AhgLIAMgAygCGCADKAIMajYCDCADKAIMQfH/A08EQCADIAMoAgxB8f8DazYCDAsgAyADKAIYIAMoAgxBEHRyNgIcDAELIAMoAhRFBEAgA0EBNgIcDAELIAMoAhBBEEkEQANAIAMgAygCECIAQX9qNgIQIAAEQCADIAMoAhQiAEEBajYCFCADIAAtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMDAELCyADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIMQfH/A3A2AgwgAyADKAIYIAMoAgxBEHRyNgIcDAELA0AgAygCEEGwK0lFBEAgAyADKAIQQbArazYCECADQdsCNgIIA0AgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAPIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhRBEGo2AhQgAyADKAIIQX9qIgA2AgggAA0ACyADIAMoAhhB8f8DcDYCGCADIAMoAgxB8f8DcDYCDAwBCwsgAygCEARAA0AgAygCEEEQSUUEQCADIAMoAhBBEGs2AhAgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygC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JCADIAE3AxggAyACNgIUIAMgAygCJCADKQMYIAMoAhQQfyIBNwMIAkAgAVAEQCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCADYCBAJAIAMpAwggAygCBCkDIHwgAykDCFoEQCADKQMIIAMoAgQpAyB8Qv///////////wBYDQELIAMoAhRBBEEWEBUgA0IANwMoDAELIAMgAygCBCkDICADKQMIfDcDCCADKAIELwEMQQhxBEAgAygCJCgCACADKQMIQQAQKEEASARAIAMoAhQgAygCJCgCABAYIANCADcDKAwCCyADKAIkKAIAIANCBBAvQgRSBEAgAygCFCADKAIkKAIAEBggA0IANwMoDAILIAMoAABB0JadwABGBEAgAyADKQMIQgR8NwMICyADIAMpAwhCDHw3AwggAygCBEEAEIABQQFxBEAgAyADKQMIQgh8NwMICyADKQMIQv///////////wBWBEAgAygCFEEEQRYQFSADQgA3AygMAgsLIAMgAykDCDcDKAsgAykDKCEBIANBMGokACABC/8BAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABCAAUEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBSIgA7AQggAEH//wNxQQBKBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAALwAIBAX8jAEEwayICJAAgAiAANgIoIAJBgAI7ASYgAiABNgIgIAIgAi8BJkGAAnFBAEc6ABsgAkEeQS4gAi0AG0EBcRs2AhwCQCACKAIoQRpBHCACLQAbQQFxG6xBARAoQQBIBEAgAigCICACKAIoEBggAkF/NgIsDAELIAIgAigCKEEEQQYgAi0AG0EBcRusIAJBDmogAigCIBBBIgA2AgggAEUEQCACQX82AiwMAQsgAkEANgIUA0AgAigCFEECQQMgAi0AG0EBcRtIBEAgAiACKAIIEB5B//8DcSACKAIcajYCHCACIAIoAhRBAWo2AhQMAQsLIAIoAggQSEEBcUUEQCACKAIgQRRBABAVIAIoAggQFyACQX82AiwMAQsgAigCCBAXIAIgAigCHDYCLAsgAigCLCEAIAJBMGokACAAC/8DAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYKAIQQeMARwRAIAJBAToAHwwBCyACIAIoAhgoAjQgAkESakGBsgJBgAZBABBfNgIIAkAgAigCCARAIAIvARJBB04NAQsgAigCFEEVQQAQFSACQQA6AB8MAQsgAiACKAIIIAIvARKtECoiADYCDCAARQRAIAIoAhRBFEEAEBUgAkEAOgAfDAELIAJBAToABwJAAkACQCACKAIMEB5Bf2oOAgIAAQsgAigCGCkDKEIUVARAIAJBADoABwsMAQsgAigCFEEYQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAgxCAhAfLwAAQcGKAUcEQCACKAIUQRhBABAVIAIoAgwQFyACQQA6AB8MAQsCQAJAAkACQAJAIAIoAgwQjQFBf2oOAwABAgMLIAJBgQI7AQQMAwsgAkGCAjsBBAwCCyACQYMCOwEEDAELIAIoAhRBGEEAEBUgAigCDBAXIAJBADoAHwwBCyACLwESQQdHBEAgAigCFEEVQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAhggAi0AB0EBcToABiACKAIYIAIvAQQ7AVIgAigCDBAeQf//A3EhACACKAIYIAA2AhAgAigCDBAXIAJBAToAHwsgAi0AH0EBcSEAIAJBIGokACAAC7kBAQF/IwBBMGsiAiQAIAIgADsBLiACIAE7ASwgAkIANwIAIAJBADYCKCACQgA3AiAgAkIANwIYIAJCADcCECACQgA3AgggAkEANgIgIAIgAi8BLEEJdUHQAGo2AhQgAiACLwEsQQV1QQ9xQQFrNgIQIAIgAi8BLEEfcTYCDCACIAIvAS5BC3U2AgggAiACLwEuQQV1QT9xNgIEIAIgAi8BLkEBdEE+cTYCACACEAwhACACQTBqJAAgAAtMAQJ/IwBBEGsiACQAIABB2AAQGSIBNgIIAkAgAUUEQCAAQQA2AgwMAQsgACgCCBBdIAAgACgCCDYCDAsgACgCDCEBIABBEGokACABCwgAQQFBOBB9CwMAAQsL8o0BJwBBgAgLlAVObyBlcnJvcgBNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABTZWVrIGVycm9yAFJlYWQgZXJyb3IAV3JpdGUgZXJyb3IAQ1JDIGVycm9yAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABObyBzdWNoIGZpbGUARmlsZSBhbHJlYWR5IGV4aXN0cwBDYW4ndCBvcGVuIGZpbGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAWmxpYiBlcnJvcgBNYWxsb2MgZmFpbHVyZQBFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBJbnZhbGlkIGFyZ3VtZW50AE5vdCBhIHppcCBhcmNoaXZlAEludGVybmFsIGVycm9yAFppcCBhcmNoaXZlIGluY29uc2lzdGVudABDYW4ndCByZW1vdmUgZmlsZQBFbnRyeSBoYXMgYmVlbiBkZWxldGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAUmVhZC1vbmx5IGFyY2hpdmUATm8gcGFzc3dvcmQgcHJvdmlkZWQAV3JvbmcgcGFzc3dvcmQgcHJvdmlkZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAFRlbGwgZXJyb3IAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQAQaENC4ABBAAACQQAAC8EAABOBAAAaQQAAHQEAAB/BAAAiwQAAJUEAAC3BAAAxAQAANgEAADoBAAACQUAABQFAAAjBQAAOgUAAFsFAABxBQAAggUAAJQFAACjBQAAvAUAAM4FAADlBQAABQYAABcGAAAsBgAARAYAAFwGAAByBgAAfQYAACAAQbgOCxEBAAAAAQAAAAEAAAABAAAAAQBB3A4LCQEAAAABAAAAAgBBiA8LAQEAQagPCwEBAEG0DwuSRZYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2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AAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0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AAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAMS4yLjExAC0rICAgMFgweAAobnVsbCkAQbCDAQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQtLDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAEHchwELARcAQYOIAQsF//////8AQdCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGwiQEL3Q5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAVW5rbm93biBlcnJvciAlZAAlcyVzJXMAADogAC9wcm9jL3NlbGYvZmQvAC9kZXYvdXJhbmRvbQByd2EAJXMuWFhYWFhYAHIrYgByYgBQSwUGAEGQmAELTgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAABAAAACAAAABBMAAAwTABBkJoBCwJQUABByJoBCwkfAAAAZE0AAAMAQeSaAQuMAS30UVjPjLHARva1yykxA8cEW3AwtF39IHh/i5rYWSlQaEiJq6dWA2z/t82IP9R3tCulo3DxuuSo/EGD/dlv4Yp6Ly10lgcfDQleA3YscPdApSynb1dBqKp036BYZANKx8Q8U66vXxgEFbHjbSiGqwykv0Pw6VCBOVcWUjf/////////////////////";
+if (!isDataURI(wasmBinaryFile)) {
+  wasmBinaryFile = locateFile(wasmBinaryFile);
+}
+function getBinary() {
+  try {
+    if (wasmBinary) {
+      return new Uint8Array(wasmBinary);
+    }
+    var binary = tryParseAsDataURI(wasmBinaryFile);
+    if (binary) {
+      return binary;
+    }
+    if (readBinary) {
+      return readBinary(wasmBinaryFile);
+    } else {
+      throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";
+    }
+  } catch (err) {
+    abort(err);
+  }
+}
+function createWasm() {
+  var info = { a: asmLibraryArg };
+  function receiveInstance(instance, module) {
+    var exports = instance.exports;
+    Module["asm"] = exports;
+    removeRunDependency("wasm-instantiate");
+  }
+  addRunDependency("wasm-instantiate");
+  function instantiateSync() {
+    var instance;
+    var module;
+    var binary;
+    try {
+      binary = getBinary();
+      module = new WebAssembly.Module(binary);
+      instance = new WebAssembly.Instance(module, info);
+    } catch (e) {
+      var str = e.toString();
+      err("failed to compile wasm module: " + str);
+      if (
+        str.indexOf("imported Memory") >= 0 ||
+        str.indexOf("memory import") >= 0
+      ) {
+        err(
+          "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."
+        );
+      }
+      throw e;
+    }
+    receiveInstance(instance, module);
+  }
+  if (Module["instantiateWasm"]) {
+    try {
+      var exports = Module["instantiateWasm"](info, receiveInstance);
+      return exports;
+    } catch (e) {
+      err("Module.instantiateWasm callback failed with error: " + e);
+      return false;
+    }
+  }
+  instantiateSync();
+  return Module["asm"];
+}
+var tempDouble;
+var tempI64;
+__ATINIT__.push({
+  func: function() {
+    ___wasm_call_ctors();
+  }
+});
+function demangle(func) {
+  return func;
+}
+function demangleAll(text) {
+  var regex = /\b_Z[\w\d_]+/g;
+  return text.replace(regex, function(x) {
+    var y = demangle(x);
+    return x === y ? x : y + " [" + x + "]";
+  });
+}
+function jsStackTrace() {
+  var err = new Error();
+  if (!err.stack) {
+    try {
+      throw new Error();
+    } catch (e) {
+      err = e;
+    }
+    if (!err.stack) {
+      return "(no stack trace available)";
+    }
+  }
+  return err.stack.toString();
+}
+function stackTrace() {
+  var js = jsStackTrace();
+  if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"]();
+  return demangleAll(js);
+}
+var PATH = {
+  splitPath: function(filename) {
+    var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+    return splitPathRe.exec(filename).slice(1);
+  },
+  normalizeArray: function(parts, allowAboveRoot) {
+    var up = 0;
+    for (var i = parts.length - 1; i >= 0; i--) {
+      var last = parts[i];
+      if (last === ".") {
+        parts.splice(i, 1);
+      } else if (last === "..") {
+        parts.splice(i, 1);
+        up++;
+      } else if (up) {
+        parts.splice(i, 1);
+        up--;
+      }
+    }
+    if (allowAboveRoot) {
+      for (; up; up--) {
+        parts.unshift("..");
+      }
+    }
+    return parts;
+  },
+  normalize: function(path) {
+    var isAbsolute = path.charAt(0) === "/",
+      trailingSlash = path.substr(-1) === "/";
+    path = PATH.normalizeArray(
+      path.split("/").filter(function(p) {
+        return !!p;
+      }),
+      !isAbsolute
+    ).join("/");
+    if (!path && !isAbsolute) {
+      path = ".";
+    }
+    if (path && trailingSlash) {
+      path += "/";
+    }
+    return (isAbsolute ? "/" : "") + path;
+  },
+  dirname: function(path) {
+    var result = PATH.splitPath(path),
+      root = result[0],
+      dir = result[1];
+    if (!root && !dir) {
+      return ".";
+    }
+    if (dir) {
+      dir = dir.substr(0, dir.length - 1);
+    }
+    return root + dir;
+  },
+  basename: function(path) {
+    if (path === "/") return "/";
+    var lastSlash = path.lastIndexOf("/");
+    if (lastSlash === -1) return path;
+    return path.substr(lastSlash + 1);
+  },
+  extname: function(path) {
+    return PATH.splitPath(path)[3];
+  },
+  join: function() {
+    var paths = Array.prototype.slice.call(arguments, 0);
+    return PATH.normalize(paths.join("/"));
+  },
+  join2: function(l, r) {
+    return PATH.normalize(l + "/" + r);
+  }
+};
+function setErrNo(value) {
+  HEAP32[___errno_location() >> 2] = value;
+  return value;
+}
+var PATH_FS = {
+  resolve: function() {
+    var resolvedPath = "",
+      resolvedAbsolute = false;
+    for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+      var path = i >= 0 ? arguments[i] : FS.cwd();
+      if (typeof path !== "string") {
+        throw new TypeError("Arguments to path.resolve must be strings");
+      } else if (!path) {
+        return "";
+      }
+      resolvedPath = path + "/" + resolvedPath;
+      resolvedAbsolute = path.charAt(0) === "/";
+    }
+    resolvedPath = PATH.normalizeArray(
+      resolvedPath.split("/").filter(function(p) {
+        return !!p;
+      }),
+      !resolvedAbsolute
+    ).join("/");
+    return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
+  },
+  relative: function(from, to) {
+    from = PATH_FS.resolve(from).substr(1);
+    to = PATH_FS.resolve(to).substr(1);
+    function trim(arr) {
+      var start = 0;
+      for (; start < arr.length; start++) {
+        if (arr[start] !== "") break;
+      }
+      var end = arr.length - 1;
+      for (; end >= 0; end--) {
+        if (arr[end] !== "") break;
+      }
+      if (start > end) return [];
+      return arr.slice(start, end - start + 1);
+    }
+    var fromParts = trim(from.split("/"));
+    var toParts = trim(to.split("/"));
+    var length = Math.min(fromParts.length, toParts.length);
+    var samePartsLength = length;
+    for (var i = 0; i < length; i++) {
+      if (fromParts[i] !== toParts[i]) {
+        samePartsLength = i;
+        break;
+      }
+    }
+    var outputParts = [];
+    for (var i = samePartsLength; i < fromParts.length; i++) {
+      outputParts.push("..");
+    }
+    outputParts = outputParts.concat(toParts.slice(samePartsLength));
+    return outputParts.join("/");
+  }
+};
+var TTY = {
+  ttys: [],
+  init: function() {},
+  shutdown: function() {},
+  register: function(dev, ops) {
+    TTY.ttys[dev] = { input: [], output: [], ops: ops };
+    FS.registerDevice(dev, TTY.stream_ops);
+  },
+  stream_ops: {
+    open: function(stream) {
+      var tty = TTY.ttys[stream.node.rdev];
+      if (!tty) {
+        throw new FS.ErrnoError(43);
+      }
+      stream.tty = tty;
+      stream.seekable = false;
+    },
+    close: function(stream) {
+      stream.tty.ops.flush(stream.tty);
+    },
+    flush: function(stream) {
+      stream.tty.ops.flush(stream.tty);
+    },
+    read: function(stream, buffer, offset, length, pos) {
+      if (!stream.tty || !stream.tty.ops.get_char) {
+        throw new FS.ErrnoError(60);
+      }
+      var bytesRead = 0;
+      for (var i = 0; i < length; i++) {
+        var result;
+        try {
+          result = stream.tty.ops.get_char(stream.tty);
+        } catch (e) {
+          throw new FS.ErrnoError(29);
+        }
+        if (result === undefined && bytesRead === 0) {
+          throw new FS.ErrnoError(6);
+        }
+        if (result === null || result === undefined) break;
+        bytesRead++;
+        buffer[offset + i] = result;
+      }
+      if (bytesRead) {
+        stream.node.timestamp = Date.now();
+      }
+      return bytesRead;
+    },
+    write: function(stream, buffer, offset, length, pos) {
+      if (!stream.tty || !stream.tty.ops.put_char) {
+        throw new FS.ErrnoError(60);
+      }
+      try {
+        for (var i = 0; i < length; i++) {
+          stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
+        }
+      } catch (e) {
+        throw new FS.ErrnoError(29);
+      }
+      if (length) {
+        stream.node.timestamp = Date.now();
+      }
+      return i;
+    }
+  },
+  default_tty_ops: {
+    get_char: function(tty) {
+      if (!tty.input.length) {
+        var result = null;
+        if (ENVIRONMENT_IS_NODE) {
+          var BUFSIZE = 256;
+          var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);
+          var bytesRead = 0;
+          try {
+            bytesRead = nodeFS.readSync(
+              process.stdin.fd,
+              buf,
+              0,
+              BUFSIZE,
+              null
+            );
+          } catch (e) {
+            if (e.toString().indexOf("EOF") != -1) bytesRead = 0;
+            else throw e;
+          }
+          if (bytesRead > 0) {
+            result = buf.slice(0, bytesRead).toString("utf-8");
+          } else {
+            result = null;
+          }
+        } else if (
+          typeof window != "undefined" &&
+          typeof window.prompt == "function"
+        ) {
+          result = window.prompt("Input: ");
+          if (result !== null) {
+            result += "\n";
+          }
+        } else if (typeof readline == "function") {
+          result = readline();
+          if (result !== null) {
+            result += "\n";
+          }
+        }
+        if (!result) {
+          return null;
+        }
+        tty.input = intArrayFromString(result, true);
+      }
+      return tty.input.shift();
+    },
+    put_char: function(tty, val) {
+      if (val === null || val === 10) {
+        out(UTF8ArrayToString(tty.output, 0));
+        tty.output = [];
+      } else {
+        if (val != 0) tty.output.push(val);
+      }
+    },
+    flush: function(tty) {
+      if (tty.output && tty.output.length > 0) {
+        out(UTF8ArrayToString(tty.output, 0));
+        tty.output = [];
+      }
+    }
+  },
+  default_tty1_ops: {
+    put_char: function(tty, val) {
+      if (val === null || val === 10) {
+        err(UTF8ArrayToString(tty.output, 0));
+        tty.output = [];
+      } else {
+        if (val != 0) tty.output.push(val);
+      }
+    },
+    flush: function(tty) {
+      if (tty.output && tty.output.length > 0) {
+        err(UTF8ArrayToString(tty.output, 0));
+        tty.output = [];
+      }
+    }
+  }
+};
+var MEMFS = {
+  ops_table: null,
+  mount: function(mount) {
+    return MEMFS.createNode(null, "/", 16384 | 511, 0);
+  },
+  createNode: function(parent, name, mode, dev) {
+    if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
+      throw new FS.ErrnoError(63);
+    }
+    if (!MEMFS.ops_table) {
+      MEMFS.ops_table = {
+        dir: {
+          node: {
+            getattr: MEMFS.node_ops.getattr,
+            setattr: MEMFS.node_ops.setattr,
+            lookup: MEMFS.node_ops.lookup,
+            mknod: MEMFS.node_ops.mknod,
+            rename: MEMFS.node_ops.rename,
+            unlink: MEMFS.node_ops.unlink,
+            rmdir: MEMFS.node_ops.rmdir,
+            readdir: MEMFS.node_ops.readdir,
+            symlink: MEMFS.node_ops.symlink
+          },
+          stream: { llseek: MEMFS.stream_ops.llseek }
+        },
+        file: {
+          node: {
+            getattr: MEMFS.node_ops.getattr,
+            setattr: MEMFS.node_ops.setattr
+          },
+          stream: {
+            llseek: MEMFS.stream_ops.llseek,
+            read: MEMFS.stream_ops.read,
+            write: MEMFS.stream_ops.write,
+            allocate: MEMFS.stream_ops.allocate,
+            mmap: MEMFS.stream_ops.mmap,
+            msync: MEMFS.stream_ops.msync
+          }
+        },
+        link: {
+          node: {
+            getattr: MEMFS.node_ops.getattr,
+            setattr: MEMFS.node_ops.setattr,
+            readlink: MEMFS.node_ops.readlink
+          },
+          stream: {}
+        },
+        chrdev: {
+          node: {
+            getattr: MEMFS.node_ops.getattr,
+            setattr: MEMFS.node_ops.setattr
+          },
+          stream: FS.chrdev_stream_ops
+        }
+      };
+    }
+    var node = FS.createNode(parent, name, mode, dev);
+    if (FS.isDir(node.mode)) {
+      node.node_ops = MEMFS.ops_table.dir.node;
+      node.stream_ops = MEMFS.ops_table.dir.stream;
+      node.contents = {};
+    } else if (FS.isFile(node.mode)) {
+      node.node_ops = MEMFS.ops_table.file.node;
+      node.stream_ops = MEMFS.ops_table.file.stream;
+      node.usedBytes = 0;
+      node.contents = null;
+    } else if (FS.isLink(node.mode)) {
+      node.node_ops = MEMFS.ops_table.link.node;
+      node.stream_ops = MEMFS.ops_table.link.stream;
+    } else if (FS.isChrdev(node.mode)) {
+      node.node_ops = MEMFS.ops_table.chrdev.node;
+      node.stream_ops = MEMFS.ops_table.chrdev.stream;
+    }
+    node.timestamp = Date.now();
+    if (parent) {
+      parent.contents[name] = node;
+    }
+    return node;
+  },
+  getFileDataAsRegularArray: function(node) {
+    if (node.contents && node.contents.subarray) {
+      var arr = [];
+      for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
+      return arr;
+    }
+    return node.contents;
+  },
+  getFileDataAsTypedArray: function(node) {
+    if (!node.contents) return new Uint8Array(0);
+    if (node.contents.subarray)
+      return node.contents.subarray(0, node.usedBytes);
+    return new Uint8Array(node.contents);
+  },
+  expandFileStorage: function(node, newCapacity) {
+    var prevCapacity = node.contents ? node.contents.length : 0;
+    if (prevCapacity >= newCapacity) return;
+    var CAPACITY_DOUBLING_MAX = 1024 * 1024;
+    newCapacity = Math.max(
+      newCapacity,
+      (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0
+    );
+    if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);
+    var oldContents = node.contents;
+    node.contents = new Uint8Array(newCapacity);
+    if (node.usedBytes > 0)
+      node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
+    return;
+  },
+  resizeFileStorage: function(node, newSize) {
+    if (node.usedBytes == newSize) return;
+    if (newSize == 0) {
+      node.contents = null;
+      node.usedBytes = 0;
+      return;
+    }
+    if (!node.contents || node.contents.subarray) {
+      var oldContents = node.contents;
+      node.contents = new Uint8Array(newSize);
+      if (oldContents) {
+        node.contents.set(
+          oldContents.subarray(0, Math.min(newSize, node.usedBytes))
+        );
+      }
+      node.usedBytes = newSize;
+      return;
+    }
+    if (!node.contents) node.contents = [];
+    if (node.contents.length > newSize) node.contents.length = newSize;
+    else while (node.contents.length < newSize) node.contents.push(0);
+    node.usedBytes = newSize;
+  },
+  node_ops: {
+    getattr: function(node) {
+      var attr = {};
+      attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
+      attr.ino = node.id;
+      attr.mode = node.mode;
+      attr.nlink = 1;
+      attr.uid = 0;
+      attr.gid = 0;
+      attr.rdev = node.rdev;
+      if (FS.isDir(node.mode)) {
+        attr.size = 4096;
+      } else if (FS.isFile(node.mode)) {
+        attr.size = node.usedBytes;
+      } else if (FS.isLink(node.mode)) {
+        attr.size = node.link.length;
+      } else {
+        attr.size = 0;
+      }
+      attr.atime = new Date(node.timestamp);
+      attr.mtime = new Date(node.timestamp);
+      attr.ctime = new Date(node.timestamp);
+      attr.blksize = 4096;
+      attr.blocks = Math.ceil(attr.size / attr.blksize);
+      return attr;
+    },
+    setattr: function(node, attr) {
+      if (attr.mode !== undefined) {
+        node.mode = attr.mode;
+      }
+      if (attr.timestamp !== undefined) {
+        node.timestamp = attr.timestamp;
+      }
+      if (attr.size !== undefined) {
+        MEMFS.resizeFileStorage(node, attr.size);
+      }
+    },
+    lookup: function(parent, name) {
+      throw FS.genericErrors[44];
+    },
+    mknod: function(parent, name, mode, dev) {
+      return MEMFS.createNode(parent, name, mode, dev);
+    },
+    rename: function(old_node, new_dir, new_name) {
+      if (FS.isDir(old_node.mode)) {
+        var new_node;
+        try {
+          new_node = FS.lookupNode(new_dir, new_name);
+        } catch (e) {}
+        if (new_node) {
+          for (var i in new_node.contents) {
+            throw new FS.ErrnoError(55);
+          }
+        }
+      }
+      delete old_node.parent.contents[old_node.name];
+      old_node.name = new_name;
+      new_dir.contents[new_name] = old_node;
+      old_node.parent = new_dir;
+    },
+    unlink: function(parent, name) {
+      delete parent.contents[name];
+    },
+    rmdir: function(parent, name) {
+      var node = FS.lookupNode(parent, name);
+      for (var i in node.contents) {
+        throw new FS.ErrnoError(55);
+      }
+      delete parent.contents[name];
+    },
+    readdir: function(node) {
+      var entries = [".", ".."];
+      for (var key in node.contents) {
+        if (!node.contents.hasOwnProperty(key)) {
+          continue;
+        }
+        entries.push(key);
+      }
+      return entries;
+    },
+    symlink: function(parent, newname, oldpath) {
+      var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
+      node.link = oldpath;
+      return node;
+    },
+    readlink: function(node) {
+      if (!FS.isLink(node.mode)) {
+        throw new FS.ErrnoError(28);
+      }
+      return node.link;
+    }
+  },
+  stream_ops: {
+    read: function(stream, buffer, offset, length, position) {
+      var contents = stream.node.contents;
+      if (position >= stream.node.usedBytes) return 0;
+      var size = Math.min(stream.node.usedBytes - position, length);
+      if (size > 8 && contents.subarray) {
+        buffer.set(contents.subarray(position, position + size), offset);
+      } else {
+        for (var i = 0; i < size; i++)
+          buffer[offset + i] = contents[position + i];
+      }
+      return size;
+    },
+    write: function(stream, buffer, offset, length, position, canOwn) {
+      if (buffer.buffer === HEAP8.buffer) {
+        canOwn = false;
+      }
+      if (!length) return 0;
+      var node = stream.node;
+      node.timestamp = Date.now();
+      if (buffer.subarray && (!node.contents || node.contents.subarray)) {
+        if (canOwn) {
+          node.contents = buffer.subarray(offset, offset + length);
+          node.usedBytes = length;
+          return length;
+        } else if (node.usedBytes === 0 && position === 0) {
+          node.contents = buffer.slice(offset, offset + length);
+          node.usedBytes = length;
+          return length;
+        } else if (position + length <= node.usedBytes) {
+          node.contents.set(buffer.subarray(offset, offset + length), position);
+          return length;
+        }
+      }
+      MEMFS.expandFileStorage(node, position + length);
+      if (node.contents.subarray && buffer.subarray)
+        node.contents.set(buffer.subarray(offset, offset + length), position);
+      else {
+        for (var i = 0; i < length; i++) {
+          node.contents[position + i] = buffer[offset + i];
+        }
+      }
+      node.usedBytes = Math.max(node.usedBytes, position + length);
+      return length;
+    },
+    llseek: function(stream, offset, whence) {
+      var position = offset;
+      if (whence === 1) {
+        position += stream.position;
+      } else if (whence === 2) {
+        if (FS.isFile(stream.node.mode)) {
+          position += stream.node.usedBytes;
+        }
+      }
+      if (position < 0) {
+        throw new FS.ErrnoError(28);
+      }
+      return position;
+    },
+    allocate: function(stream, offset, length) {
+      MEMFS.expandFileStorage(stream.node, offset + length);
+      stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
+    },
+    mmap: function(stream, address, length, position, prot, flags) {
+      assert(address === 0);
+      if (!FS.isFile(stream.node.mode)) {
+        throw new FS.ErrnoError(43);
+      }
+      var ptr;
+      var allocated;
+      var contents = stream.node.contents;
+      if (!(flags & 2) && contents.buffer === buffer) {
+        allocated = false;
+        ptr = contents.byteOffset;
+      } else {
+        if (position > 0 || position + length < contents.length) {
+          if (contents.subarray) {
+            contents = contents.subarray(position, position + length);
+          } else {
+            contents = Array.prototype.slice.call(
+              contents,
+              position,
+              position + length
+            );
+          }
+        }
+        allocated = true;
+        ptr = _malloc(length);
+        if (!ptr) {
+          throw new FS.ErrnoError(48);
+        }
+        HEAP8.set(contents, ptr);
+      }
+      return { ptr: ptr, allocated: allocated };
+    },
+    msync: function(stream, buffer, offset, length, mmapFlags) {
+      if (!FS.isFile(stream.node.mode)) {
+        throw new FS.ErrnoError(43);
+      }
+      if (mmapFlags & 2) {
+        return 0;
+      }
+      var bytesWritten = MEMFS.stream_ops.write(
+        stream,
+        buffer,
+        0,
+        length,
+        offset,
+        false
+      );
+      return 0;
+    }
+  }
+};
+var ERRNO_CODES = {
+  EPERM: 63,
+  ENOENT: 44,
+  ESRCH: 71,
+  EINTR: 27,
+  EIO: 29,
+  ENXIO: 60,
+  E2BIG: 1,
+  ENOEXEC: 45,
+  EBADF: 8,
+  ECHILD: 12,
+  EAGAIN: 6,
+  EWOULDBLOCK: 6,
+  ENOMEM: 48,
+  EACCES: 2,
+  EFAULT: 21,
+  ENOTBLK: 105,
+  EBUSY: 10,
+  EEXIST: 20,
+  EXDEV: 75,
+  ENODEV: 43,
+  ENOTDIR: 54,
+  EISDIR: 31,
+  EINVAL: 28,
+  ENFILE: 41,
+  EMFILE: 33,
+  ENOTTY: 59,
+  ETXTBSY: 74,
+  EFBIG: 22,
+  ENOSPC: 51,
+  ESPIPE: 70,
+  EROFS: 69,
+  EMLINK: 34,
+  EPIPE: 64,
+  EDOM: 18,
+  ERANGE: 68,
+  ENOMSG: 49,
+  EIDRM: 24,
+  ECHRNG: 106,
+  EL2NSYNC: 156,
+  EL3HLT: 107,
+  EL3RST: 108,
+  ELNRNG: 109,
+  EUNATCH: 110,
+  ENOCSI: 111,
+  EL2HLT: 112,
+  EDEADLK: 16,
+  ENOLCK: 46,
+  EBADE: 113,
+  EBADR: 114,
+  EXFULL: 115,
+  ENOANO: 104,
+  EBADRQC: 103,
+  EBADSLT: 102,
+  EDEADLOCK: 16,
+  EBFONT: 101,
+  ENOSTR: 100,
+  ENODATA: 116,
+  ETIME: 117,
+  ENOSR: 118,
+  ENONET: 119,
+  ENOPKG: 120,
+  EREMOTE: 121,
+  ENOLINK: 47,
+  EADV: 122,
+  ESRMNT: 123,
+  ECOMM: 124,
+  EPROTO: 65,
+  EMULTIHOP: 36,
+  EDOTDOT: 125,
+  EBADMSG: 9,
+  ENOTUNIQ: 126,
+  EBADFD: 127,
+  EREMCHG: 128,
+  ELIBACC: 129,
+  ELIBBAD: 130,
+  ELIBSCN: 131,
+  ELIBMAX: 132,
+  ELIBEXEC: 133,
+  ENOSYS: 52,
+  ENOTEMPTY: 55,
+  ENAMETOOLONG: 37,
+  ELOOP: 32,
+  EOPNOTSUPP: 138,
+  EPFNOSUPPORT: 139,
+  ECONNRESET: 15,
+  ENOBUFS: 42,
+  EAFNOSUPPORT: 5,
+  EPROTOTYPE: 67,
+  ENOTSOCK: 57,
+  ENOPROTOOPT: 50,
+  ESHUTDOWN: 140,
+  ECONNREFUSED: 14,
+  EADDRINUSE: 3,
+  ECONNABORTED: 13,
+  ENETUNREACH: 40,
+  ENETDOWN: 38,
+  ETIMEDOUT: 73,
+  EHOSTDOWN: 142,
+  EHOSTUNREACH: 23,
+  EINPROGRESS: 26,
+  EALREADY: 7,
+  EDESTADDRREQ: 17,
+  EMSGSIZE: 35,
+  EPROTONOSUPPORT: 66,
+  ESOCKTNOSUPPORT: 137,
+  EADDRNOTAVAIL: 4,
+  ENETRESET: 39,
+  EISCONN: 30,
+  ENOTCONN: 53,
+  ETOOMANYREFS: 141,
+  EUSERS: 136,
+  EDQUOT: 19,
+  ESTALE: 72,
+  ENOTSUP: 138,
+  ENOMEDIUM: 148,
+  EILSEQ: 25,
+  EOVERFLOW: 61,
+  ECANCELED: 11,
+  ENOTRECOVERABLE: 56,
+  EOWNERDEAD: 62,
+  ESTRPIPE: 135
+};
+var NODEFS = {
+  isWindows: false,
+  staticInit: function() {
+    NODEFS.isWindows = !!process.platform.match(/^win/);
+    var flags = { fs: fs.constants };
+    if (flags["fs"]) {
+      flags = flags["fs"];
+    }
+    NODEFS.flagsForNodeMap = {
+      1024: flags["O_APPEND"],
+      64: flags["O_CREAT"],
+      128: flags["O_EXCL"],
+      0: flags["O_RDONLY"],
+      2: flags["O_RDWR"],
+      4096: flags["O_SYNC"],
+      512: flags["O_TRUNC"],
+      1: flags["O_WRONLY"]
+    };
+  },
+  bufferFrom: function(arrayBuffer) {
+    return Buffer["alloc"] ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer);
+  },
+  convertNodeCode: function(e) {
+    var code = e.code;
+    return ERRNO_CODES[code];
+  },
+  mount: function(mount) {
+    return NODEFS.createNode(null, "/", NODEFS.getMode(mount.opts.root), 0);
+  },
+  createNode: function(parent, name, mode, dev) {
+    if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
+      throw new FS.ErrnoError(28);
+    }
+    var node = FS.createNode(parent, name, mode);
+    node.node_ops = NODEFS.node_ops;
+    node.stream_ops = NODEFS.stream_ops;
+    return node;
+  },
+  getMode: function(path) {
+    var stat;
+    try {
+      stat = fs.lstatSync(path);
+      if (NODEFS.isWindows) {
+        stat.mode = stat.mode | ((stat.mode & 292) >> 2);
+      }
+    } catch (e) {
+      if (!e.code) throw e;
+      throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+    }
+    return stat.mode;
+  },
+  realPath: function(node) {
+    var parts = [];
+    while (node.parent !== node) {
+      parts.push(node.name);
+      node = node.parent;
+    }
+    parts.push(node.mount.opts.root);
+    parts.reverse();
+    return PATH.join.apply(null, parts);
+  },
+  flagsForNode: function(flags) {
+    flags &= ~2097152;
+    flags &= ~2048;
+    flags &= ~32768;
+    flags &= ~524288;
+    var newFlags = 0;
+    for (var k in NODEFS.flagsForNodeMap) {
+      if (flags & k) {
+        newFlags |= NODEFS.flagsForNodeMap[k];
+        flags ^= k;
+      }
+    }
+    if (!flags) {
+      return newFlags;
+    } else {
+      throw new FS.ErrnoError(28);
+    }
+  },
+  node_ops: {
+    getattr: function(node) {
+      var path = NODEFS.realPath(node);
+      var stat;
+      try {
+        stat = fs.lstatSync(path);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+      if (NODEFS.isWindows && !stat.blksize) {
+        stat.blksize = 4096;
+      }
+      if (NODEFS.isWindows && !stat.blocks) {
+        stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0;
+      }
+      return {
+        dev: stat.dev,
+        ino: stat.ino,
+        mode: stat.mode,
+        nlink: stat.nlink,
+        uid: stat.uid,
+        gid: stat.gid,
+        rdev: stat.rdev,
+        size: stat.size,
+        atime: stat.atime,
+        mtime: stat.mtime,
+        ctime: stat.ctime,
+        blksize: stat.blksize,
+        blocks: stat.blocks
+      };
+    },
+    setattr: function(node, attr) {
+      var path = NODEFS.realPath(node);
+      try {
+        if (attr.mode !== undefined) {
+          fs.chmodSync(path, attr.mode);
+          node.mode = attr.mode;
+        }
+        if (attr.timestamp !== undefined) {
+          var date = new Date(attr.timestamp);
+          fs.utimesSync(path, date, date);
+        }
+        if (attr.size !== undefined) {
+          fs.truncateSync(path, attr.size);
+        }
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    lookup: function(parent, name) {
+      var path = PATH.join2(NODEFS.realPath(parent), name);
+      var mode = NODEFS.getMode(path);
+      return NODEFS.createNode(parent, name, mode);
+    },
+    mknod: function(parent, name, mode, dev) {
+      var node = NODEFS.createNode(parent, name, mode, dev);
+      var path = NODEFS.realPath(node);
+      try {
+        if (FS.isDir(node.mode)) {
+          fs.mkdirSync(path, node.mode);
+        } else {
+          fs.writeFileSync(path, "", { mode: node.mode });
+        }
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+      return node;
+    },
+    rename: function(oldNode, newDir, newName) {
+      var oldPath = NODEFS.realPath(oldNode);
+      var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
+      try {
+        fs.renameSync(oldPath, newPath);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+      oldNode.name = newName;
+    },
+    unlink: function(parent, name) {
+      var path = PATH.join2(NODEFS.realPath(parent), name);
+      try {
+        fs.unlinkSync(path);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    rmdir: function(parent, name) {
+      var path = PATH.join2(NODEFS.realPath(parent), name);
+      try {
+        fs.rmdirSync(path);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    readdir: function(node) {
+      var path = NODEFS.realPath(node);
+      try {
+        return fs.readdirSync(path);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    symlink: function(parent, newName, oldPath) {
+      var newPath = PATH.join2(NODEFS.realPath(parent), newName);
+      try {
+        fs.symlinkSync(oldPath, newPath);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    readlink: function(node) {
+      var path = NODEFS.realPath(node);
+      try {
+        path = fs.readlinkSync(path);
+        path = NODEJS_PATH.relative(
+          NODEJS_PATH.resolve(node.mount.opts.root),
+          path
+        );
+        return path;
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    }
+  },
+  stream_ops: {
+    open: function(stream) {
+      var path = NODEFS.realPath(stream.node);
+      try {
+        if (FS.isFile(stream.node.mode)) {
+          stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags));
+        }
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    close: function(stream) {
+      try {
+        if (FS.isFile(stream.node.mode) && stream.nfd) {
+          fs.closeSync(stream.nfd);
+        }
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    read: function(stream, buffer, offset, length, position) {
+      if (length === 0) return 0;
+      try {
+        return fs.readSync(
+          stream.nfd,
+          NODEFS.bufferFrom(buffer.buffer),
+          offset,
+          length,
+          position
+        );
+      } catch (e) {
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    write: function(stream, buffer, offset, length, position) {
+      try {
+        return fs.writeSync(
+          stream.nfd,
+          NODEFS.bufferFrom(buffer.buffer),
+          offset,
+          length,
+          position
+        );
+      } catch (e) {
+        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+      }
+    },
+    llseek: function(stream, offset, whence) {
+      var position = offset;
+      if (whence === 1) {
+        position += stream.position;
+      } else if (whence === 2) {
+        if (FS.isFile(stream.node.mode)) {
+          try {
+            var stat = fs.fstatSync(stream.nfd);
+            position += stat.size;
+          } catch (e) {
+            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
+          }
+        }
+      }
+      if (position < 0) {
+        throw new FS.ErrnoError(28);
+      }
+      return position;
+    },
+    mmap: function(stream, address, length, position, prot, flags) {
+      assert(address === 0);
+      if (!FS.isFile(stream.node.mode)) {
+        throw new FS.ErrnoError(43);
+      }
+      var ptr = _malloc(length);
+      NODEFS.stream_ops.read(stream, HEAP8, ptr, length, position);
+      return { ptr: ptr, allocated: true };
+    },
+    msync: function(stream, buffer, offset, length, mmapFlags) {
+      if (!FS.isFile(stream.node.mode)) {
+        throw new FS.ErrnoError(43);
+      }
+      if (mmapFlags & 2) {
+        return 0;
+      }
+      var bytesWritten = NODEFS.stream_ops.write(
+        stream,
+        buffer,
+        0,
+        length,
+        offset,
+        false
+      );
+      return 0;
+    }
+  }
+};
+var NODERAWFS = {
+  lookupPath: function(path) {
+    return { path: path, node: { mode: NODEFS.getMode(path) } };
+  },
+  createStandardStreams: function() {
+    FS.streams[0] = {
+      fd: 0,
+      nfd: 0,
+      position: 0,
+      path: "",
+      flags: 0,
+      tty: true,
+      seekable: false
+    };
+    for (var i = 1; i < 3; i++) {
+      FS.streams[i] = {
+        fd: i,
+        nfd: i,
+        position: 0,
+        path: "",
+        flags: 577,
+        tty: true,
+        seekable: false
+      };
+    }
+  },
+  cwd: function() {
+    return process.cwd();
+  },
+  chdir: function() {
+    process.chdir.apply(void 0, arguments);
+  },
+  mknod: function(path, mode) {
+    if (FS.isDir(path)) {
+      fs.mkdirSync(path, mode);
+    } else {
+      fs.writeFileSync(path, "", { mode: mode });
+    }
+  },
+  mkdir: function() {
+    fs.mkdirSync.apply(void 0, arguments);
+  },
+  symlink: function() {
+    fs.symlinkSync.apply(void 0, arguments);
+  },
+  rename: function() {
+    fs.renameSync.apply(void 0, arguments);
+  },
+  rmdir: function() {
+    fs.rmdirSync.apply(void 0, arguments);
+  },
+  readdir: function() {
+    fs.readdirSync.apply(void 0, arguments);
+  },
+  unlink: function() {
+    fs.unlinkSync.apply(void 0, arguments);
+  },
+  readlink: function() {
+    return fs.readlinkSync.apply(void 0, arguments);
+  },
+  stat: function() {
+    return fs.statSync.apply(void 0, arguments);
+  },
+  lstat: function() {
+    return fs.lstatSync.apply(void 0, arguments);
+  },
+  chmod: function() {
+    fs.chmodSync.apply(void 0, arguments);
+  },
+  fchmod: function() {
+    fs.fchmodSync.apply(void 0, arguments);
+  },
+  chown: function() {
+    fs.chownSync.apply(void 0, arguments);
+  },
+  fchown: function() {
+    fs.fchownSync.apply(void 0, arguments);
+  },
+  truncate: function() {
+    fs.truncateSync.apply(void 0, arguments);
+  },
+  ftruncate: function() {
+    fs.ftruncateSync.apply(void 0, arguments);
+  },
+  utime: function() {
+    fs.utimesSync.apply(void 0, arguments);
+  },
+  open: function(path, flags, mode, suggestFD) {
+    if (typeof flags === "string") {
+      flags = VFS.modeStringToFlags(flags);
+    }
+    var nfd = fs.openSync(path, NODEFS.flagsForNode(flags), mode);
+    var fd = suggestFD != null ? suggestFD : FS.nextfd(nfd);
+    var stream = {
+      fd: fd,
+      nfd: nfd,
+      position: 0,
+      path: path,
+      flags: flags,
+      seekable: true
+    };
+    FS.streams[fd] = stream;
+    return stream;
+  },
+  close: function(stream) {
+    if (!stream.stream_ops) {
+      fs.closeSync(stream.nfd);
+    }
+    FS.closeStream(stream.fd);
+  },
+  llseek: function(stream, offset, whence) {
+    if (stream.stream_ops) {
+      return VFS.llseek(stream, offset, whence);
+    }
+    var position = offset;
+    if (whence === 1) {
+      position += stream.position;
+    } else if (whence === 2) {
+      position += fs.fstatSync(stream.nfd).size;
+    } else if (whence !== 0) {
+      throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
+    }
+    if (position < 0) {
+      throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
+    }
+    stream.position = position;
+    return position;
+  },
+  read: function(stream, buffer, offset, length, position) {
+    if (stream.stream_ops) {
+      return VFS.read(stream, buffer, offset, length, position);
+    }
+    var seeking = typeof position !== "undefined";
+    if (!seeking && stream.seekable) position = stream.position;
+    var bytesRead = fs.readSync(
+      stream.nfd,
+      NODEFS.bufferFrom(buffer.buffer),
+      offset,
+      length,
+      position
+    );
+    if (!seeking) stream.position += bytesRead;
+    return bytesRead;
+  },
+  write: function(stream, buffer, offset, length, position) {
+    if (stream.stream_ops) {
+      return VFS.write(stream, buffer, offset, length, position);
+    }
+    if (stream.flags & +"1024") {
+      FS.llseek(stream, 0, +"2");
+    }
+    var seeking = typeof position !== "undefined";
+    if (!seeking && stream.seekable) position = stream.position;
+    var bytesWritten = fs.writeSync(
+      stream.nfd,
+      NODEFS.bufferFrom(buffer.buffer),
+      offset,
+      length,
+      position
+    );
+    if (!seeking) stream.position += bytesWritten;
+    return bytesWritten;
+  },
+  allocate: function() {
+    throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
+  },
+  mmap: function() {
+    throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
+  },
+  msync: function() {
+    return 0;
+  },
+  munmap: function() {
+    return 0;
+  },
+  ioctl: function() {
+    throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
+  }
+};
+var FS = {
+  root: null,
+  mounts: [],
+  devices: {},
+  streams: [],
+  nextInode: 1,
+  nameTable: null,
+  currentPath: "/",
+  initialized: false,
+  ignorePermissions: true,
+  trackingDelegate: {},
+  tracking: { openFlags: { READ: 1, WRITE: 2 } },
+  ErrnoError: null,
+  genericErrors: {},
+  filesystems: null,
+  syncFSRequests: 0,
+  handleFSError: function(e) {
+    if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
+    return setErrNo(e.errno);
+  },
+  lookupPath: function(path, opts) {
+    path = PATH_FS.resolve(FS.cwd(), path);
+    opts = opts || {};
+    if (!path) return { path: "", node: null };
+    var defaults = { follow_mount: true, recurse_count: 0 };
+    for (var key in defaults) {
+      if (opts[key] === undefined) {
+        opts[key] = defaults[key];
+      }
+    }
+    if (opts.recurse_count > 8) {
+      throw new FS.ErrnoError(32);
+    }
+    var parts = PATH.normalizeArray(
+      path.split("/").filter(function(p) {
+        return !!p;
+      }),
+      false
+    );
+    var current = FS.root;
+    var current_path = "/";
+    for (var i = 0; i < parts.length; i++) {
+      var islast = i === parts.length - 1;
+      if (islast && opts.parent) {
+        break;
+      }
+      current = FS.lookupNode(current, parts[i]);
+      current_path = PATH.join2(current_path, parts[i]);
+      if (FS.isMountpoint(current)) {
+        if (!islast || (islast && opts.follow_mount)) {
+          current = current.mounted.root;
+        }
+      }
+      if (!islast || opts.follow) {
+        var count = 0;
+        while (FS.isLink(current.mode)) {
+          var link = FS.readlink(current_path);
+          current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
+          var lookup = FS.lookupPath(current_path, {
+            recurse_count: opts.recurse_count
+          });
+          current = lookup.node;
+          if (count++ > 40) {
+            throw new FS.ErrnoError(32);
+          }
+        }
+      }
+    }
+    return { path: current_path, node: current };
+  },
+  getPath: function(node) {
+    var path;
+    while (true) {
+      if (FS.isRoot(node)) {
+        var mount = node.mount.mountpoint;
+        if (!path) return mount;
+        return mount[mount.length - 1] !== "/"
+          ? mount + "/" + path
+          : mount + path;
+      }
+      path = path ? node.name + "/" + path : node.name;
+      node = node.parent;
+    }
+  },
+  hashName: function(parentid, name) {
+    var hash = 0;
+    for (var i = 0; i < name.length; i++) {
+      hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
+    }
+    return ((parentid + hash) >>> 0) % FS.nameTable.length;
+  },
+  hashAddNode: function(node) {
+    var hash = FS.hashName(node.parent.id, node.name);
+    node.name_next = FS.nameTable[hash];
+    FS.nameTable[hash] = node;
+  },
+  hashRemoveNode: function(node) {
+    var hash = FS.hashName(node.parent.id, node.name);
+    if (FS.nameTable[hash] === node) {
+      FS.nameTable[hash] = node.name_next;
+    } else {
+      var current = FS.nameTable[hash];
+      while (current) {
+        if (current.name_next === node) {
+          current.name_next = node.name_next;
+          break;
+        }
+        current = current.name_next;
+      }
+    }
+  },
+  lookupNode: function(parent, name) {
+    var errCode = FS.mayLookup(parent);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode, parent);
+    }
+    var hash = FS.hashName(parent.id, name);
+    for (var node = FS.nameTable[hash]; node; node = node.name_next) {
+      var nodeName = node.name;
+      if (node.parent.id === parent.id && nodeName === name) {
+        return node;
+      }
+    }
+    return FS.lookup(parent, name);
+  },
+  createNode: function(parent, name, mode, rdev) {
+    var node = new FS.FSNode(parent, name, mode, rdev);
+    FS.hashAddNode(node);
+    return node;
+  },
+  destroyNode: function(node) {
+    FS.hashRemoveNode(node);
+  },
+  isRoot: function(node) {
+    return node === node.parent;
+  },
+  isMountpoint: function(node) {
+    return !!node.mounted;
+  },
+  isFile: function(mode) {
+    return (mode & 61440) === 32768;
+  },
+  isDir: function(mode) {
+    return (mode & 61440) === 16384;
+  },
+  isLink: function(mode) {
+    return (mode & 61440) === 40960;
+  },
+  isChrdev: function(mode) {
+    return (mode & 61440) === 8192;
+  },
+  isBlkdev: function(mode) {
+    return (mode & 61440) === 24576;
+  },
+  isFIFO: function(mode) {
+    return (mode & 61440) === 4096;
+  },
+  isSocket: function(mode) {
+    return (mode & 49152) === 49152;
+  },
+  flagModes: {
+    r: 0,
+    rs: 1052672,
+    "r+": 2,
+    w: 577,
+    wx: 705,
+    xw: 705,
+    "w+": 578,
+    "wx+": 706,
+    "xw+": 706,
+    a: 1089,
+    ax: 1217,
+    xa: 1217,
+    "a+": 1090,
+    "ax+": 1218,
+    "xa+": 1218
+  },
+  modeStringToFlags: function(str) {
+    var flags = FS.flagModes[str];
+    if (typeof flags === "undefined") {
+      throw new Error("Unknown file open mode: " + str);
+    }
+    return flags;
+  },
+  flagsToPermissionString: function(flag) {
+    var perms = ["r", "w", "rw"][flag & 3];
+    if (flag & 512) {
+      perms += "w";
+    }
+    return perms;
+  },
+  nodePermissions: function(node, perms) {
+    if (FS.ignorePermissions) {
+      return 0;
+    }
+    if (perms.indexOf("r") !== -1 && !(node.mode & 292)) {
+      return 2;
+    } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) {
+      return 2;
+    } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) {
+      return 2;
+    }
+    return 0;
+  },
+  mayLookup: function(dir) {
+    var errCode = FS.nodePermissions(dir, "x");
+    if (errCode) return errCode;
+    if (!dir.node_ops.lookup) return 2;
+    return 0;
+  },
+  mayCreate: function(dir, name) {
+    try {
+      var node = FS.lookupNode(dir, name);
+      return 20;
+    } catch (e) {}
+    return FS.nodePermissions(dir, "wx");
+  },
+  mayDelete: function(dir, name, isdir) {
+    var node;
+    try {
+      node = FS.lookupNode(dir, name);
+    } catch (e) {
+      return e.errno;
+    }
+    var errCode = FS.nodePermissions(dir, "wx");
+    if (errCode) {
+      return errCode;
+    }
+    if (isdir) {
+      if (!FS.isDir(node.mode)) {
+        return 54;
+      }
+      if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
+        return 10;
+      }
+    } else {
+      if (FS.isDir(node.mode)) {
+        return 31;
+      }
+    }
+    return 0;
+  },
+  mayOpen: function(node, flags) {
+    if (!node) {
+      return 44;
+    }
+    if (FS.isLink(node.mode)) {
+      return 32;
+    } else if (FS.isDir(node.mode)) {
+      if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
+        return 31;
+      }
+    }
+    return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
+  },
+  MAX_OPEN_FDS: 4096,
+  nextfd: function(fd_start, fd_end) {
+    fd_start = fd_start || 0;
+    fd_end = fd_end || FS.MAX_OPEN_FDS;
+    for (var fd = fd_start; fd <= fd_end; fd++) {
+      if (!FS.streams[fd]) {
+        return fd;
+      }
+    }
+    throw new FS.ErrnoError(33);
+  },
+  getStream: function(fd) {
+    return FS.streams[fd];
+  },
+  createStream: function(stream, fd_start, fd_end) {
+    if (!FS.FSStream) {
+      FS.FSStream = function() {};
+      FS.FSStream.prototype = {
+        object: {
+          get: function() {
+            return this.node;
+          },
+          set: function(val) {
+            this.node = val;
+          }
+        },
+        isRead: {
+          get: function() {
+            return (this.flags & 2097155) !== 1;
+          }
+        },
+        isWrite: {
+          get: function() {
+            return (this.flags & 2097155) !== 0;
+          }
+        },
+        isAppend: {
+          get: function() {
+            return this.flags & 1024;
+          }
+        }
+      };
+    }
+    var newStream = new FS.FSStream();
+    for (var p in stream) {
+      newStream[p] = stream[p];
+    }
+    stream = newStream;
+    var fd = FS.nextfd(fd_start, fd_end);
+    stream.fd = fd;
+    FS.streams[fd] = stream;
+    return stream;
+  },
+  closeStream: function(fd) {
+    FS.streams[fd] = null;
+  },
+  chrdev_stream_ops: {
+    open: function(stream) {
+      var device = FS.getDevice(stream.node.rdev);
+      stream.stream_ops = device.stream_ops;
+      if (stream.stream_ops.open) {
+        stream.stream_ops.open(stream);
+      }
+    },
+    llseek: function() {
+      throw new FS.ErrnoError(70);
+    }
+  },
+  major: function(dev) {
+    return dev >> 8;
+  },
+  minor: function(dev) {
+    return dev & 255;
+  },
+  makedev: function(ma, mi) {
+    return (ma << 8) | mi;
+  },
+  registerDevice: function(dev, ops) {
+    FS.devices[dev] = { stream_ops: ops };
+  },
+  getDevice: function(dev) {
+    return FS.devices[dev];
+  },
+  getMounts: function(mount) {
+    var mounts = [];
+    var check = [mount];
+    while (check.length) {
+      var m = check.pop();
+      mounts.push(m);
+      check.push.apply(check, m.mounts);
+    }
+    return mounts;
+  },
+  syncfs: function(populate, callback) {
+    if (typeof populate === "function") {
+      callback = populate;
+      populate = false;
+    }
+    FS.syncFSRequests++;
+    if (FS.syncFSRequests > 1) {
+      err(
+        "warning: " +
+          FS.syncFSRequests +
+          " FS.syncfs operations in flight at once, probably just doing extra work"
+      );
+    }
+    var mounts = FS.getMounts(FS.root.mount);
+    var completed = 0;
+    function doCallback(errCode) {
+      FS.syncFSRequests--;
+      return callback(errCode);
+    }
+    function done(errCode) {
+      if (errCode) {
+        if (!done.errored) {
+          done.errored = true;
+          return doCallback(errCode);
+        }
+        return;
+      }
+      if (++completed >= mounts.length) {
+        doCallback(null);
+      }
+    }
+    mounts.forEach(function(mount) {
+      if (!mount.type.syncfs) {
+        return done(null);
+      }
+      mount.type.syncfs(mount, populate, done);
+    });
+  },
+  mount: function(type, opts, mountpoint) {
+    var root = mountpoint === "/";
+    var pseudo = !mountpoint;
+    var node;
+    if (root && FS.root) {
+      throw new FS.ErrnoError(10);
+    } else if (!root && !pseudo) {
+      var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+      mountpoint = lookup.path;
+      node = lookup.node;
+      if (FS.isMountpoint(node)) {
+        throw new FS.ErrnoError(10);
+      }
+      if (!FS.isDir(node.mode)) {
+        throw new FS.ErrnoError(54);
+      }
+    }
+    var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] };
+    var mountRoot = type.mount(mount);
+    mountRoot.mount = mount;
+    mount.root = mountRoot;
+    if (root) {
+      FS.root = mountRoot;
+    } else if (node) {
+      node.mounted = mount;
+      if (node.mount) {
+        node.mount.mounts.push(mount);
+      }
+    }
+    return mountRoot;
+  },
+  unmount: function(mountpoint) {
+    var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+    if (!FS.isMountpoint(lookup.node)) {
+      throw new FS.ErrnoError(28);
+    }
+    var node = lookup.node;
+    var mount = node.mounted;
+    var mounts = FS.getMounts(mount);
+    Object.keys(FS.nameTable).forEach(function(hash) {
+      var current = FS.nameTable[hash];
+      while (current) {
+        var next = current.name_next;
+        if (mounts.indexOf(current.mount) !== -1) {
+          FS.destroyNode(current);
+        }
+        current = next;
+      }
+    });
+    node.mounted = null;
+    var idx = node.mount.mounts.indexOf(mount);
+    node.mount.mounts.splice(idx, 1);
+  },
+  lookup: function(parent, name) {
+    return parent.node_ops.lookup(parent, name);
+  },
+  mknod: function(path, mode, dev) {
+    var lookup = FS.lookupPath(path, { parent: true });
+    var parent = lookup.node;
+    var name = PATH.basename(path);
+    if (!name || name === "." || name === "..") {
+      throw new FS.ErrnoError(28);
+    }
+    var errCode = FS.mayCreate(parent, name);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    if (!parent.node_ops.mknod) {
+      throw new FS.ErrnoError(63);
+    }
+    return parent.node_ops.mknod(parent, name, mode, dev);
+  },
+  create: function(path, mode) {
+    mode = mode !== undefined ? mode : 438;
+    mode &= 4095;
+    mode |= 32768;
+    return FS.mknod(path, mode, 0);
+  },
+  mkdir: function(path, mode) {
+    mode = mode !== undefined ? mode : 511;
+    mode &= 511 | 512;
+    mode |= 16384;
+    return FS.mknod(path, mode, 0);
+  },
+  mkdirTree: function(path, mode) {
+    var dirs = path.split("/");
+    var d = "";
+    for (var i = 0; i < dirs.length; ++i) {
+      if (!dirs[i]) continue;
+      d += "/" + dirs[i];
+      try {
+        FS.mkdir(d, mode);
+      } catch (e) {
+        if (e.errno != 20) throw e;
+      }
+    }
+  },
+  mkdev: function(path, mode, dev) {
+    if (typeof dev === "undefined") {
+      dev = mode;
+      mode = 438;
+    }
+    mode |= 8192;
+    return FS.mknod(path, mode, dev);
+  },
+  symlink: function(oldpath, newpath) {
+    if (!PATH_FS.resolve(oldpath)) {
+      throw new FS.ErrnoError(44);
+    }
+    var lookup = FS.lookupPath(newpath, { parent: true });
+    var parent = lookup.node;
+    if (!parent) {
+      throw new FS.ErrnoError(44);
+    }
+    var newname = PATH.basename(newpath);
+    var errCode = FS.mayCreate(parent, newname);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    if (!parent.node_ops.symlink) {
+      throw new FS.ErrnoError(63);
+    }
+    return parent.node_ops.symlink(parent, newname, oldpath);
+  },
+  rename: function(old_path, new_path) {
+    var old_dirname = PATH.dirname(old_path);
+    var new_dirname = PATH.dirname(new_path);
+    var old_name = PATH.basename(old_path);
+    var new_name = PATH.basename(new_path);
+    var lookup, old_dir, new_dir;
+    try {
+      lookup = FS.lookupPath(old_path, { parent: true });
+      old_dir = lookup.node;
+      lookup = FS.lookupPath(new_path, { parent: true });
+      new_dir = lookup.node;
+    } catch (e) {
+      throw new FS.ErrnoError(10);
+    }
+    if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
+    if (old_dir.mount !== new_dir.mount) {
+      throw new FS.ErrnoError(75);
+    }
+    var old_node = FS.lookupNode(old_dir, old_name);
+    var relative = PATH_FS.relative(old_path, new_dirname);
+    if (relative.charAt(0) !== ".") {
+      throw new FS.ErrnoError(28);
+    }
+    relative = PATH_FS.relative(new_path, old_dirname);
+    if (relative.charAt(0) !== ".") {
+      throw new FS.ErrnoError(55);
+    }
+    var new_node;
+    try {
+      new_node = FS.lookupNode(new_dir, new_name);
+    } catch (e) {}
+    if (old_node === new_node) {
+      return;
+    }
+    var isdir = FS.isDir(old_node.mode);
+    var errCode = FS.mayDelete(old_dir, old_name, isdir);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    errCode = new_node
+      ? FS.mayDelete(new_dir, new_name, isdir)
+      : FS.mayCreate(new_dir, new_name);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    if (!old_dir.node_ops.rename) {
+      throw new FS.ErrnoError(63);
+    }
+    if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
+      throw new FS.ErrnoError(10);
+    }
+    if (new_dir !== old_dir) {
+      errCode = FS.nodePermissions(old_dir, "w");
+      if (errCode) {
+        throw new FS.ErrnoError(errCode);
+      }
+    }
+    try {
+      if (FS.trackingDelegate["willMovePath"]) {
+        FS.trackingDelegate["willMovePath"](old_path, new_path);
+      }
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['willMovePath']('" +
+          old_path +
+          "', '" +
+          new_path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+    FS.hashRemoveNode(old_node);
+    try {
+      old_dir.node_ops.rename(old_node, new_dir, new_name);
+    } catch (e) {
+      throw e;
+    } finally {
+      FS.hashAddNode(old_node);
+    }
+    try {
+      if (FS.trackingDelegate["onMovePath"])
+        FS.trackingDelegate["onMovePath"](old_path, new_path);
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['onMovePath']('" +
+          old_path +
+          "', '" +
+          new_path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+  },
+  rmdir: function(path) {
+    var lookup = FS.lookupPath(path, { parent: true });
+    var parent = lookup.node;
+    var name = PATH.basename(path);
+    var node = FS.lookupNode(parent, name);
+    var errCode = FS.mayDelete(parent, name, true);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    if (!parent.node_ops.rmdir) {
+      throw new FS.ErrnoError(63);
+    }
+    if (FS.isMountpoint(node)) {
+      throw new FS.ErrnoError(10);
+    }
+    try {
+      if (FS.trackingDelegate["willDeletePath"]) {
+        FS.trackingDelegate["willDeletePath"](path);
+      }
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['willDeletePath']('" +
+          path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+    parent.node_ops.rmdir(parent, name);
+    FS.destroyNode(node);
+    try {
+      if (FS.trackingDelegate["onDeletePath"])
+        FS.trackingDelegate["onDeletePath"](path);
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['onDeletePath']('" +
+          path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+  },
+  readdir: function(path) {
+    var lookup = FS.lookupPath(path, { follow: true });
+    var node = lookup.node;
+    if (!node.node_ops.readdir) {
+      throw new FS.ErrnoError(54);
+    }
+    return node.node_ops.readdir(node);
+  },
+  unlink: function(path) {
+    var lookup = FS.lookupPath(path, { parent: true });
+    var parent = lookup.node;
+    var name = PATH.basename(path);
+    var node = FS.lookupNode(parent, name);
+    var errCode = FS.mayDelete(parent, name, false);
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    if (!parent.node_ops.unlink) {
+      throw new FS.ErrnoError(63);
+    }
+    if (FS.isMountpoint(node)) {
+      throw new FS.ErrnoError(10);
+    }
+    try {
+      if (FS.trackingDelegate["willDeletePath"]) {
+        FS.trackingDelegate["willDeletePath"](path);
+      }
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['willDeletePath']('" +
+          path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+    parent.node_ops.unlink(parent, name);
+    FS.destroyNode(node);
+    try {
+      if (FS.trackingDelegate["onDeletePath"])
+        FS.trackingDelegate["onDeletePath"](path);
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['onDeletePath']('" +
+          path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+  },
+  readlink: function(path) {
+    var lookup = FS.lookupPath(path);
+    var link = lookup.node;
+    if (!link) {
+      throw new FS.ErrnoError(44);
+    }
+    if (!link.node_ops.readlink) {
+      throw new FS.ErrnoError(28);
+    }
+    return PATH_FS.resolve(
+      FS.getPath(link.parent),
+      link.node_ops.readlink(link)
+    );
+  },
+  stat: function(path, dontFollow) {
+    var lookup = FS.lookupPath(path, { follow: !dontFollow });
+    var node = lookup.node;
+    if (!node) {
+      throw new FS.ErrnoError(44);
+    }
+    if (!node.node_ops.getattr) {
+      throw new FS.ErrnoError(63);
+    }
+    return node.node_ops.getattr(node);
+  },
+  lstat: function(path) {
+    return FS.stat(path, true);
+  },
+  chmod: function(path, mode, dontFollow) {
+    var node;
+    if (typeof path === "string") {
+      var lookup = FS.lookupPath(path, { follow: !dontFollow });
+      node = lookup.node;
+    } else {
+      node = path;
+    }
+    if (!node.node_ops.setattr) {
+      throw new FS.ErrnoError(63);
+    }
+    node.node_ops.setattr(node, {
+      mode: (mode & 4095) | (node.mode & ~4095),
+      timestamp: Date.now()
+    });
+  },
+  lchmod: function(path, mode) {
+    FS.chmod(path, mode, true);
+  },
+  fchmod: function(fd, mode) {
+    var stream = FS.getStream(fd);
+    if (!stream) {
+      throw new FS.ErrnoError(8);
+    }
+    FS.chmod(stream.node, mode);
+  },
+  chown: function(path, uid, gid, dontFollow) {
+    var node;
+    if (typeof path === "string") {
+      var lookup = FS.lookupPath(path, { follow: !dontFollow });
+      node = lookup.node;
+    } else {
+      node = path;
+    }
+    if (!node.node_ops.setattr) {
+      throw new FS.ErrnoError(63);
+    }
+    node.node_ops.setattr(node, { timestamp: Date.now() });
+  },
+  lchown: function(path, uid, gid) {
+    FS.chown(path, uid, gid, true);
+  },
+  fchown: function(fd, uid, gid) {
+    var stream = FS.getStream(fd);
+    if (!stream) {
+      throw new FS.ErrnoError(8);
+    }
+    FS.chown(stream.node, uid, gid);
+  },
+  truncate: function(path, len) {
+    if (len < 0) {
+      throw new FS.ErrnoError(28);
+    }
+    var node;
+    if (typeof path === "string") {
+      var lookup = FS.lookupPath(path, { follow: true });
+      node = lookup.node;
+    } else {
+      node = path;
+    }
+    if (!node.node_ops.setattr) {
+      throw new FS.ErrnoError(63);
+    }
+    if (FS.isDir(node.mode)) {
+      throw new FS.ErrnoError(31);
+    }
+    if (!FS.isFile(node.mode)) {
+      throw new FS.ErrnoError(28);
+    }
+    var errCode = FS.nodePermissions(node, "w");
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    node.node_ops.setattr(node, { size: len, timestamp: Date.now() });
+  },
+  ftruncate: function(fd, len) {
+    var stream = FS.getStream(fd);
+    if (!stream) {
+      throw new FS.ErrnoError(8);
+    }
+    if ((stream.flags & 2097155) === 0) {
+      throw new FS.ErrnoError(28);
+    }
+    FS.truncate(stream.node, len);
+  },
+  utime: function(path, atime, mtime) {
+    var lookup = FS.lookupPath(path, { follow: true });
+    var node = lookup.node;
+    node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
+  },
+  open: function(path, flags, mode, fd_start, fd_end) {
+    if (path === "") {
+      throw new FS.ErrnoError(44);
+    }
+    flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags;
+    mode = typeof mode === "undefined" ? 438 : mode;
+    if (flags & 64) {
+      mode = (mode & 4095) | 32768;
+    } else {
+      mode = 0;
+    }
+    var node;
+    if (typeof path === "object") {
+      node = path;
+    } else {
+      path = PATH.normalize(path);
+      try {
+        var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
+        node = lookup.node;
+      } catch (e) {}
+    }
+    var created = false;
+    if (flags & 64) {
+      if (node) {
+        if (flags & 128) {
+          throw new FS.ErrnoError(20);
+        }
+      } else {
+        node = FS.mknod(path, mode, 0);
+        created = true;
+      }
+    }
+    if (!node) {
+      throw new FS.ErrnoError(44);
+    }
+    if (FS.isChrdev(node.mode)) {
+      flags &= ~512;
+    }
+    if (flags & 65536 && !FS.isDir(node.mode)) {
+      throw new FS.ErrnoError(54);
+    }
+    if (!created) {
+      var errCode = FS.mayOpen(node, flags);
+      if (errCode) {
+        throw new FS.ErrnoError(errCode);
+      }
+    }
+    if (flags & 512) {
+      FS.truncate(node, 0);
+    }
+    flags &= ~(128 | 512 | 131072);
+    var stream = FS.createStream(
+      {
+        node: node,
+        path: FS.getPath(node),
+        flags: flags,
+        seekable: true,
+        position: 0,
+        stream_ops: node.stream_ops,
+        ungotten: [],
+        error: false
+      },
+      fd_start,
+      fd_end
+    );
+    if (stream.stream_ops.open) {
+      stream.stream_ops.open(stream);
+    }
+    if (Module["logReadFiles"] && !(flags & 1)) {
+      if (!FS.readFiles) FS.readFiles = {};
+      if (!(path in FS.readFiles)) {
+        FS.readFiles[path] = 1;
+        err("FS.trackingDelegate error on read file: " + path);
+      }
+    }
+    try {
+      if (FS.trackingDelegate["onOpenFile"]) {
+        var trackingFlags = 0;
+        if ((flags & 2097155) !== 1) {
+          trackingFlags |= FS.tracking.openFlags.READ;
+        }
+        if ((flags & 2097155) !== 0) {
+          trackingFlags |= FS.tracking.openFlags.WRITE;
+        }
+        FS.trackingDelegate["onOpenFile"](path, trackingFlags);
+      }
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['onOpenFile']('" +
+          path +
+          "', flags) threw an exception: " +
+          e.message
+      );
+    }
+    return stream;
+  },
+  close: function(stream) {
+    if (FS.isClosed(stream)) {
+      throw new FS.ErrnoError(8);
+    }
+    if (stream.getdents) stream.getdents = null;
+    try {
+      if (stream.stream_ops.close) {
+        stream.stream_ops.close(stream);
+      }
+    } catch (e) {
+      throw e;
+    } finally {
+      FS.closeStream(stream.fd);
+    }
+    stream.fd = null;
+  },
+  isClosed: function(stream) {
+    return stream.fd === null;
+  },
+  llseek: function(stream, offset, whence) {
+    if (FS.isClosed(stream)) {
+      throw new FS.ErrnoError(8);
+    }
+    if (!stream.seekable || !stream.stream_ops.llseek) {
+      throw new FS.ErrnoError(70);
+    }
+    if (whence != 0 && whence != 1 && whence != 2) {
+      throw new FS.ErrnoError(28);
+    }
+    stream.position = stream.stream_ops.llseek(stream, offset, whence);
+    stream.ungotten = [];
+    return stream.position;
+  },
+  read: function(stream, buffer, offset, length, position) {
+    if (length < 0 || position < 0) {
+      throw new FS.ErrnoError(28);
+    }
+    if (FS.isClosed(stream)) {
+      throw new FS.ErrnoError(8);
+    }
+    if ((stream.flags & 2097155) === 1) {
+      throw new FS.ErrnoError(8);
+    }
+    if (FS.isDir(stream.node.mode)) {
+      throw new FS.ErrnoError(31);
+    }
+    if (!stream.stream_ops.read) {
+      throw new FS.ErrnoError(28);
+    }
+    var seeking = typeof position !== "undefined";
+    if (!seeking) {
+      position = stream.position;
+    } else if (!stream.seekable) {
+      throw new FS.ErrnoError(70);
+    }
+    var bytesRead = stream.stream_ops.read(
+      stream,
+      buffer,
+      offset,
+      length,
+      position
+    );
+    if (!seeking) stream.position += bytesRead;
+    return bytesRead;
+  },
+  write: function(stream, buffer, offset, length, position, canOwn) {
+    if (length < 0 || position < 0) {
+      throw new FS.ErrnoError(28);
+    }
+    if (FS.isClosed(stream)) {
+      throw new FS.ErrnoError(8);
+    }
+    if ((stream.flags & 2097155) === 0) {
+      throw new FS.ErrnoError(8);
+    }
+    if (FS.isDir(stream.node.mode)) {
+      throw new FS.ErrnoError(31);
+    }
+    if (!stream.stream_ops.write) {
+      throw new FS.ErrnoError(28);
+    }
+    if (stream.seekable && stream.flags & 1024) {
+      FS.llseek(stream, 0, 2);
+    }
+    var seeking = typeof position !== "undefined";
+    if (!seeking) {
+      position = stream.position;
+    } else if (!stream.seekable) {
+      throw new FS.ErrnoError(70);
+    }
+    var bytesWritten = stream.stream_ops.write(
+      stream,
+      buffer,
+      offset,
+      length,
+      position,
+      canOwn
+    );
+    if (!seeking) stream.position += bytesWritten;
+    try {
+      if (stream.path && FS.trackingDelegate["onWriteToFile"])
+        FS.trackingDelegate["onWriteToFile"](stream.path);
+    } catch (e) {
+      err(
+        "FS.trackingDelegate['onWriteToFile']('" +
+          stream.path +
+          "') threw an exception: " +
+          e.message
+      );
+    }
+    return bytesWritten;
+  },
+  allocate: function(stream, offset, length) {
+    if (FS.isClosed(stream)) {
+      throw new FS.ErrnoError(8);
+    }
+    if (offset < 0 || length <= 0) {
+      throw new FS.ErrnoError(28);
+    }
+    if ((stream.flags & 2097155) === 0) {
+      throw new FS.ErrnoError(8);
+    }
+    if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
+      throw new FS.ErrnoError(43);
+    }
+    if (!stream.stream_ops.allocate) {
+      throw new FS.ErrnoError(138);
+    }
+    stream.stream_ops.allocate(stream, offset, length);
+  },
+  mmap: function(stream, address, length, position, prot, flags) {
+    if (
+      (prot & 2) !== 0 &&
+      (flags & 2) === 0 &&
+      (stream.flags & 2097155) !== 2
+    ) {
+      throw new FS.ErrnoError(2);
+    }
+    if ((stream.flags & 2097155) === 1) {
+      throw new FS.ErrnoError(2);
+    }
+    if (!stream.stream_ops.mmap) {
+      throw new FS.ErrnoError(43);
+    }
+    return stream.stream_ops.mmap(
+      stream,
+      address,
+      length,
+      position,
+      prot,
+      flags
+    );
+  },
+  msync: function(stream, buffer, offset, length, mmapFlags) {
+    if (!stream || !stream.stream_ops.msync) {
+      return 0;
+    }
+    return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
+  },
+  munmap: function(stream) {
+    return 0;
+  },
+  ioctl: function(stream, cmd, arg) {
+    if (!stream.stream_ops.ioctl) {
+      throw new FS.ErrnoError(59);
+    }
+    return stream.stream_ops.ioctl(stream, cmd, arg);
+  },
+  readFile: function(path, opts) {
+    opts = opts || {};
+    opts.flags = opts.flags || "r";
+    opts.encoding = opts.encoding || "binary";
+    if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
+      throw new Error('Invalid encoding type "' + opts.encoding + '"');
+    }
+    var ret;
+    var stream = FS.open(path, opts.flags);
+    var stat = FS.stat(path);
+    var length = stat.size;
+    var buf = new Uint8Array(length);
+    FS.read(stream, buf, 0, length, 0);
+    if (opts.encoding === "utf8") {
+      ret = UTF8ArrayToString(buf, 0);
+    } else if (opts.encoding === "binary") {
+      ret = buf;
+    }
+    FS.close(stream);
+    return ret;
+  },
+  writeFile: function(path, data, opts) {
+    opts = opts || {};
+    opts.flags = opts.flags || "w";
+    var stream = FS.open(path, opts.flags, opts.mode);
+    if (typeof data === "string") {
+      var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
+      var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+      FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
+    } else if (ArrayBuffer.isView(data)) {
+      FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
+    } else {
+      throw new Error("Unsupported data type");
+    }
+    FS.close(stream);
+  },
+  cwd: function() {
+    return FS.currentPath;
+  },
+  chdir: function(path) {
+    var lookup = FS.lookupPath(path, { follow: true });
+    if (lookup.node === null) {
+      throw new FS.ErrnoError(44);
+    }
+    if (!FS.isDir(lookup.node.mode)) {
+      throw new FS.ErrnoError(54);
+    }
+    var errCode = FS.nodePermissions(lookup.node, "x");
+    if (errCode) {
+      throw new FS.ErrnoError(errCode);
+    }
+    FS.currentPath = lookup.path;
+  },
+  createDefaultDirectories: function() {
+    FS.mkdir("/tmp");
+    FS.mkdir("/home");
+    FS.mkdir("/home/web_user");
+  },
+  createDefaultDevices: function() {
+    FS.mkdir("/dev");
+    FS.registerDevice(FS.makedev(1, 3), {
+      read: function() {
+        return 0;
+      },
+      write: function(stream, buffer, offset, length, pos) {
+        return length;
+      }
+    });
+    FS.mkdev("/dev/null", FS.makedev(1, 3));
+    TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
+    TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
+    FS.mkdev("/dev/tty", FS.makedev(5, 0));
+    FS.mkdev("/dev/tty1", FS.makedev(6, 0));
+    var random_device;
+    if (
+      typeof crypto === "object" &&
+      typeof crypto["getRandomValues"] === "function"
+    ) {
+      var randomBuffer = new Uint8Array(1);
+      random_device = function() {
+        crypto.getRandomValues(randomBuffer);
+        return randomBuffer[0];
+      };
+    } else if (ENVIRONMENT_IS_NODE) {
+      try {
+        var crypto_module = __webpack_require__(417);
+        random_device = function() {
+          return crypto_module["randomBytes"](1)[0];
+        };
+      } catch (e) {}
+    } else {
+    }
+    if (!random_device) {
+      random_device = function() {
+        abort("random_device");
+      };
+    }
+    FS.createDevice("/dev", "random", random_device);
+    FS.createDevice("/dev", "urandom", random_device);
+    FS.mkdir("/dev/shm");
+    FS.mkdir("/dev/shm/tmp");
+  },
+  createSpecialDirectories: function() {
+    FS.mkdir("/proc");
+    FS.mkdir("/proc/self");
+    FS.mkdir("/proc/self/fd");
+    FS.mount(
+      {
+        mount: function() {
+          var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
+          node.node_ops = {
+            lookup: function(parent, name) {
+              var fd = +name;
+              var stream = FS.getStream(fd);
+              if (!stream) throw new FS.ErrnoError(8);
+              var ret = {
+                parent: null,
+                mount: { mountpoint: "fake" },
+                node_ops: {
+                  readlink: function() {
+                    return stream.path;
+                  }
+                }
+              };
+              ret.parent = ret;
+              return ret;
+            }
+          };
+          return node;
+        }
+      },
+      {},
+      "/proc/self/fd"
+    );
+  },
+  createStandardStreams: function() {
+    if (Module["stdin"]) {
+      FS.createDevice("/dev", "stdin", Module["stdin"]);
+    } else {
+      FS.symlink("/dev/tty", "/dev/stdin");
+    }
+    if (Module["stdout"]) {
+      FS.createDevice("/dev", "stdout", null, Module["stdout"]);
+    } else {
+      FS.symlink("/dev/tty", "/dev/stdout");
+    }
+    if (Module["stderr"]) {
+      FS.createDevice("/dev", "stderr", null, Module["stderr"]);
+    } else {
+      FS.symlink("/dev/tty1", "/dev/stderr");
+    }
+    var stdin = FS.open("/dev/stdin", "r");
+    var stdout = FS.open("/dev/stdout", "w");
+    var stderr = FS.open("/dev/stderr", "w");
+  },
+  ensureErrnoError: function() {
+    if (FS.ErrnoError) return;
+    FS.ErrnoError = function ErrnoError(errno, node) {
+      this.node = node;
+      this.setErrno = function(errno) {
+        this.errno = errno;
+      };
+      this.setErrno(errno);
+      this.message = "FS error";
+    };
+    FS.ErrnoError.prototype = new Error();
+    FS.ErrnoError.prototype.constructor = FS.ErrnoError;
+    [44].forEach(function(code) {
+      FS.genericErrors[code] = new FS.ErrnoError(code);
+      FS.genericErrors[code].stack = "<generic error, no stack>";
+    });
+  },
+  staticInit: function() {
+    FS.ensureErrnoError();
+    FS.nameTable = new Array(4096);
+    FS.mount(MEMFS, {}, "/");
+    FS.createDefaultDirectories();
+    FS.createDefaultDevices();
+    FS.createSpecialDirectories();
+    FS.filesystems = { MEMFS: MEMFS, NODEFS: NODEFS };
+  },
+  init: function(input, output, error) {
+    FS.init.initialized = true;
+    FS.ensureErrnoError();
+    Module["stdin"] = input || Module["stdin"];
+    Module["stdout"] = output || Module["stdout"];
+    Module["stderr"] = error || Module["stderr"];
+    FS.createStandardStreams();
+  },
+  quit: function() {
+    FS.init.initialized = false;
+    var fflush = Module["_fflush"];
+    if (fflush) fflush(0);
+    for (var i = 0; i < FS.streams.length; i++) {
+      var stream = FS.streams[i];
+      if (!stream) {
+        continue;
+      }
+      FS.close(stream);
+    }
+  },
+  getMode: function(canRead, canWrite) {
+    var mode = 0;
+    if (canRead) mode |= 292 | 73;
+    if (canWrite) mode |= 146;
+    return mode;
+  },
+  joinPath: function(parts, forceRelative) {
+    var path = PATH.join.apply(null, parts);
+    if (forceRelative && path[0] == "/") path = path.substr(1);
+    return path;
+  },
+  absolutePath: function(relative, base) {
+    return PATH_FS.resolve(base, relative);
+  },
+  standardizePath: function(path) {
+    return PATH.normalize(path);
+  },
+  findObject: function(path, dontResolveLastLink) {
+    var ret = FS.analyzePath(path, dontResolveLastLink);
+    if (ret.exists) {
+      return ret.object;
+    } else {
+      setErrNo(ret.error);
+      return null;
+    }
+  },
+  analyzePath: function(path, dontResolveLastLink) {
+    try {
+      var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+      path = lookup.path;
+    } catch (e) {}
+    var ret = {
+      isRoot: false,
+      exists: false,
+      error: 0,
+      name: null,
+      path: null,
+      object: null,
+      parentExists: false,
+      parentPath: null,
+      parentObject: null
+    };
+    try {
+      var lookup = FS.lookupPath(path, { parent: true });
+      ret.parentExists = true;
+      ret.parentPath = lookup.path;
+      ret.parentObject = lookup.node;
+      ret.name = PATH.basename(path);
+      lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+      ret.exists = true;
+      ret.path = lookup.path;
+      ret.object = lookup.node;
+      ret.name = lookup.node.name;
+      ret.isRoot = lookup.path === "/";
+    } catch (e) {
+      ret.error = e.errno;
+    }
+    return ret;
+  },
+  createFolder: function(parent, name, canRead, canWrite) {
+    var path = PATH.join2(
+      typeof parent === "string" ? parent : FS.getPath(parent),
+      name
+    );
+    var mode = FS.getMode(canRead, canWrite);
+    return FS.mkdir(path, mode);
+  },
+  createPath: function(parent, path, canRead, canWrite) {
+    parent = typeof parent === "string" ? parent : FS.getPath(parent);
+    var parts = path.split("/").reverse();
+    while (parts.length) {
+      var part = parts.pop();
+      if (!part) continue;
+      var current = PATH.join2(parent, part);
+      try {
+        FS.mkdir(current);
+      } catch (e) {}
+      parent = current;
+    }
+    return current;
+  },
+  createFile: function(parent, name, properties, canRead, canWrite) {
+    var path = PATH.join2(
+      typeof parent === "string" ? parent : FS.getPath(parent),
+      name
+    );
+    var mode = FS.getMode(canRead, canWrite);
+    return FS.create(path, mode);
+  },
+  createDataFile: function(parent, name, data, canRead, canWrite, canOwn) {
+    var path = name
+      ? PATH.join2(
+          typeof parent === "string" ? parent : FS.getPath(parent),
+          name
+        )
+      : parent;
+    var mode = FS.getMode(canRead, canWrite);
+    var node = FS.create(path, mode);
+    if (data) {
+      if (typeof data === "string") {
+        var arr = new Array(data.length);
+        for (var i = 0, len = data.length; i < len; ++i)
+          arr[i] = data.charCodeAt(i);
+        data = arr;
+      }
+      FS.chmod(node, mode | 146);
+      var stream = FS.open(node, "w");
+      FS.write(stream, data, 0, data.length, 0, canOwn);
+      FS.close(stream);
+      FS.chmod(node, mode);
+    }
+    return node;
+  },
+  createDevice: function(parent, name, input, output) {
+    var path = PATH.join2(
+      typeof parent === "string" ? parent : FS.getPath(parent),
+      name
+    );
+    var mode = FS.getMode(!!input, !!output);
+    if (!FS.createDevice.major) FS.createDevice.major = 64;
+    var dev = FS.makedev(FS.createDevice.major++, 0);
+    FS.registerDevice(dev, {
+      open: function(stream) {
+        stream.seekable = false;
+      },
+      close: function(stream) {
+        if (output && output.buffer && output.buffer.length) {
+          output(10);
+        }
+      },
+      read: function(stream, buffer, offset, length, pos) {
+        var bytesRead = 0;
+        for (var i = 0; i < length; i++) {
+          var result;
+          try {
+            result = input();
+          } catch (e) {
+            throw new FS.ErrnoError(29);
+          }
+          if (result === undefined && bytesRead === 0) {
+            throw new FS.ErrnoError(6);
+          }
+          if (result === null || result === undefined) break;
+          bytesRead++;
+          buffer[offset + i] = result;
+        }
+        if (bytesRead) {
+          stream.node.timestamp = Date.now();
+        }
+        return bytesRead;
+      },
+      write: function(stream, buffer, offset, length, pos) {
+        for (var i = 0; i < length; i++) {
+          try {
+            output(buffer[offset + i]);
+          } catch (e) {
+            throw new FS.ErrnoError(29);
+          }
+        }
+        if (length) {
+          stream.node.timestamp = Date.now();
+        }
+        return i;
+      }
+    });
+    return FS.mkdev(path, mode, dev);
+  },
+  createLink: function(parent, name, target, canRead, canWrite) {
+    var path = PATH.join2(
+      typeof parent === "string" ? parent : FS.getPath(parent),
+      name
+    );
+    return FS.symlink(target, path);
+  },
+  forceLoadFile: function(obj) {
+    if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
+    var success = true;
+    if (typeof XMLHttpRequest !== "undefined") {
+      throw new Error(
+        "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."
+      );
+    } else if (read_) {
+      try {
+        obj.contents = intArrayFromString(read_(obj.url), true);
+        obj.usedBytes = obj.contents.length;
+      } catch (e) {
+        success = false;
+      }
+    } else {
+      throw new Error("Cannot load without read() or XMLHttpRequest.");
+    }
+    if (!success) setErrNo(29);
+    return success;
+  },
+  createLazyFile: function(parent, name, url, canRead, canWrite) {
+    function LazyUint8Array() {
+      this.lengthKnown = false;
+      this.chunks = [];
+    }
+    LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+      if (idx > this.length - 1 || idx < 0) {
+        return undefined;
+      }
+      var chunkOffset = idx % this.chunkSize;
+      var chunkNum = (idx / this.chunkSize) | 0;
+      return this.getter(chunkNum)[chunkOffset];
+    };
+    LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(
+      getter
+    ) {
+      this.getter = getter;
+    };
+    LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
+      var xhr = new XMLHttpRequest();
+      xhr.open("HEAD", url, false);
+      xhr.send(null);
+      if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304))
+        throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+      var datalength = Number(xhr.getResponseHeader("Content-length"));
+      var header;
+      var hasByteServing =
+        (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+      var usesGzip =
+        (header = xhr.getResponseHeader("Content-Encoding")) &&
+        header === "gzip";
+      var chunkSize = 1024 * 1024;
+      if (!hasByteServing) chunkSize = datalength;
+      var doXHR = function(from, to) {
+        if (from > to)
+          throw new Error(
+            "invalid range (" + from + ", " + to + ") or no bytes requested!"
+          );
+        if (to > datalength - 1)
+          throw new Error(
+            "only " + datalength + " bytes available! programmer error!"
+          );
+        var xhr = new XMLHttpRequest();
+        xhr.open("GET", url, false);
+        if (datalength !== chunkSize)
+          xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
+        if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer";
+        if (xhr.overrideMimeType) {
+          xhr.overrideMimeType("text/plain; charset=x-user-defined");
+        }
+        xhr.send(null);
+        if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304))
+          throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+        if (xhr.response !== undefined) {
+          return new Uint8Array(xhr.response || []);
+        } else {
+          return intArrayFromString(xhr.responseText || "", true);
+        }
+      };
+      var lazyArray = this;
+      lazyArray.setDataGetter(function(chunkNum) {
+        var start = chunkNum * chunkSize;
+        var end = (chunkNum + 1) * chunkSize - 1;
+        end = Math.min(end, datalength - 1);
+        if (typeof lazyArray.chunks[chunkNum] === "undefined") {
+          lazyArray.chunks[chunkNum] = doXHR(start, end);
+        }
+        if (typeof lazyArray.chunks[chunkNum] === "undefined")
+          throw new Error("doXHR failed!");
+        return lazyArray.chunks[chunkNum];
+      });
+      if (usesGzip || !datalength) {
+        chunkSize = datalength = 1;
+        datalength = this.getter(0).length;
+        chunkSize = datalength;
+        out(
+          "LazyFiles on gzip forces download of the whole file when length is accessed"
+        );
+      }
+      this._length = datalength;
+      this._chunkSize = chunkSize;
+      this.lengthKnown = true;
+    };
+    if (typeof XMLHttpRequest !== "undefined") {
+      if (!ENVIRONMENT_IS_WORKER)
+        throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
+      var lazyArray = new LazyUint8Array();
+      Object.defineProperties(lazyArray, {
+        length: {
+          get: function() {
+            if (!this.lengthKnown) {
+              this.cacheLength();
+            }
+            return this._length;
+          }
+        },
+        chunkSize: {
+          get: function() {
+            if (!this.lengthKnown) {
+              this.cacheLength();
+            }
+            return this._chunkSize;
+          }
+        }
+      });
+      var properties = { isDevice: false, contents: lazyArray };
+    } else {
+      var properties = { isDevice: false, url: url };
+    }
+    var node = FS.createFile(parent, name, properties, canRead, canWrite);
+    if (properties.contents) {
+      node.contents = properties.contents;
+    } else if (properties.url) {
+      node.contents = null;
+      node.url = properties.url;
+    }
+    Object.defineProperties(node, {
+      usedBytes: {
+        get: function() {
+          return this.contents.length;
+        }
+      }
+    });
+    var stream_ops = {};
+    var keys = Object.keys(node.stream_ops);
+    keys.forEach(function(key) {
+      var fn = node.stream_ops[key];
+      stream_ops[key] = function forceLoadLazyFile() {
+        if (!FS.forceLoadFile(node)) {
+          throw new FS.ErrnoError(29);
+        }
+        return fn.apply(null, arguments);
+      };
+    });
+    stream_ops.read = function stream_ops_read(
+      stream,
+      buffer,
+      offset,
+      length,
+      position
+    ) {
+      if (!FS.forceLoadFile(node)) {
+        throw new FS.ErrnoError(29);
+      }
+      var contents = stream.node.contents;
+      if (position >= contents.length) return 0;
+      var size = Math.min(contents.length - position, length);
+      if (contents.slice) {
+        for (var i = 0; i < size; i++) {
+          buffer[offset + i] = contents[position + i];
+        }
+      } else {
+        for (var i = 0; i < size; i++) {
+          buffer[offset + i] = contents.get(position + i);
+        }
+      }
+      return size;
+    };
+    node.stream_ops = stream_ops;
+    return node;
+  },
+  createPreloadedFile: function(
+    parent,
+    name,
+    url,
+    canRead,
+    canWrite,
+    onload,
+    onerror,
+    dontCreateFile,
+    canOwn,
+    preFinish
+  ) {
+    Browser.init();
+    var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
+    var dep = getUniqueRunDependency("cp " + fullname);
+    function processData(byteArray) {
+      function finish(byteArray) {
+        if (preFinish) preFinish();
+        if (!dontCreateFile) {
+          FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
+        }
+        if (onload) onload();
+        removeRunDependency(dep);
+      }
+      var handled = false;
+      Module["preloadPlugins"].forEach(function(plugin) {
+        if (handled) return;
+        if (plugin["canHandle"](fullname)) {
+          plugin["handle"](byteArray, fullname, finish, function() {
+            if (onerror) onerror();
+            removeRunDependency(dep);
+          });
+          handled = true;
+        }
+      });
+      if (!handled) finish(byteArray);
+    }
+    addRunDependency(dep);
+    if (typeof url == "string") {
+      Browser.asyncLoad(
+        url,
+        function(byteArray) {
+          processData(byteArray);
+        },
+        onerror
+      );
+    } else {
+      processData(url);
+    }
+  },
+  indexedDB: function() {
+    return (
+      window.indexedDB ||
+      window.mozIndexedDB ||
+      window.webkitIndexedDB ||
+      window.msIndexedDB
+    );
+  },
+  DB_NAME: function() {
+    return "EM_FS_" + window.location.pathname;
+  },
+  DB_VERSION: 20,
+  DB_STORE_NAME: "FILE_DATA",
+  saveFilesToDB: function(paths, onload, onerror) {
+    onload = onload || function() {};
+    onerror = onerror || function() {};
+    var indexedDB = FS.indexedDB();
+    try {
+      var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
+    } catch (e) {
+      return onerror(e);
+    }
+    openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
+      out("creating db");
+      var db = openRequest.result;
+      db.createObjectStore(FS.DB_STORE_NAME);
+    };
+    openRequest.onsuccess = function openRequest_onsuccess() {
+      var db = openRequest.result;
+      var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
+      var files = transaction.objectStore(FS.DB_STORE_NAME);
+      var ok = 0,
+        fail = 0,
+        total = paths.length;
+      function finish() {
+        if (fail == 0) onload();
+        else onerror();
+      }
+      paths.forEach(function(path) {
+        var putRequest = files.put(FS.analyzePath(path).object.contents, path);
+        putRequest.onsuccess = function putRequest_onsuccess() {
+          ok++;
+          if (ok + fail == total) finish();
+        };
+        putRequest.onerror = function putRequest_onerror() {
+          fail++;
+          if (ok + fail == total) finish();
+        };
+      });
+      transaction.onerror = onerror;
+    };
+    openRequest.onerror = onerror;
+  },
+  loadFilesFromDB: function(paths, onload, onerror) {
+    onload = onload || function() {};
+    onerror = onerror || function() {};
+    var indexedDB = FS.indexedDB();
+    try {
+      var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
+    } catch (e) {
+      return onerror(e);
+    }
+    openRequest.onupgradeneeded = onerror;
+    openRequest.onsuccess = function openRequest_onsuccess() {
+      var db = openRequest.result;
+      try {
+        var transaction = db.transaction([FS.DB_STORE_NAME], "readonly");
+      } catch (e) {
+        onerror(e);
+        return;
+      }
+      var files = transaction.objectStore(FS.DB_STORE_NAME);
+      var ok = 0,
+        fail = 0,
+        total = paths.length;
+      function finish() {
+        if (fail == 0) onload();
+        else onerror();
+      }
+      paths.forEach(function(path) {
+        var getRequest = files.get(path);
+        getRequest.onsuccess = function getRequest_onsuccess() {
+          if (FS.analyzePath(path).exists) {
+            FS.unlink(path);
+          }
+          FS.createDataFile(
+            PATH.dirname(path),
+            PATH.basename(path),
+            getRequest.result,
+            true,
+            true,
+            true
+          );
+          ok++;
+          if (ok + fail == total) finish();
+        };
+        getRequest.onerror = function getRequest_onerror() {
+          fail++;
+          if (ok + fail == total) finish();
+        };
+      });
+      transaction.onerror = onerror;
+    };
+    openRequest.onerror = onerror;
+  }
+};
+var SYSCALLS = {
+  mappings: {},
+  DEFAULT_POLLMASK: 5,
+  umask: 511,
+  calculateAt: function(dirfd, path) {
+    if (path[0] !== "/") {
+      var dir;
+      if (dirfd === -100) {
+        dir = FS.cwd();
+      } else {
+        var dirstream = FS.getStream(dirfd);
+        if (!dirstream) throw new FS.ErrnoError(8);
+        dir = dirstream.path;
+      }
+      path = PATH.join2(dir, path);
+    }
+    return path;
+  },
+  doStat: function(func, path, buf) {
+    try {
+      var stat = func(path);
+    } catch (e) {
+      if (
+        e &&
+        e.node &&
+        PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))
+      ) {
+        return -54;
+      }
+      throw e;
+    }
+    HEAP32[buf >> 2] = stat.dev;
+    HEAP32[(buf + 4) >> 2] = 0;
+    HEAP32[(buf + 8) >> 2] = stat.ino;
+    HEAP32[(buf + 12) >> 2] = stat.mode;
+    HEAP32[(buf + 16) >> 2] = stat.nlink;
+    HEAP32[(buf + 20) >> 2] = stat.uid;
+    HEAP32[(buf + 24) >> 2] = stat.gid;
+    HEAP32[(buf + 28) >> 2] = stat.rdev;
+    HEAP32[(buf + 32) >> 2] = 0;
+    (tempI64 = [
+      stat.size >>> 0,
+      ((tempDouble = stat.size),
+      +Math_abs(tempDouble) >= 1
+        ? tempDouble > 0
+          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+            0
+          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+            0
+        : 0)
+    ]),
+      (HEAP32[(buf + 40) >> 2] = tempI64[0]),
+      (HEAP32[(buf + 44) >> 2] = tempI64[1]);
+    HEAP32[(buf + 48) >> 2] = 4096;
+    HEAP32[(buf + 52) >> 2] = stat.blocks;
+    HEAP32[(buf + 56) >> 2] = (stat.atime.getTime() / 1e3) | 0;
+    HEAP32[(buf + 60) >> 2] = 0;
+    HEAP32[(buf + 64) >> 2] = (stat.mtime.getTime() / 1e3) | 0;
+    HEAP32[(buf + 68) >> 2] = 0;
+    HEAP32[(buf + 72) >> 2] = (stat.ctime.getTime() / 1e3) | 0;
+    HEAP32[(buf + 76) >> 2] = 0;
+    (tempI64 = [
+      stat.ino >>> 0,
+      ((tempDouble = stat.ino),
+      +Math_abs(tempDouble) >= 1
+        ? tempDouble > 0
+          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+            0
+          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+            0
+        : 0)
+    ]),
+      (HEAP32[(buf + 80) >> 2] = tempI64[0]),
+      (HEAP32[(buf + 84) >> 2] = tempI64[1]);
+    return 0;
+  },
+  doMsync: function(addr, stream, len, flags, offset) {
+    var buffer = HEAPU8.slice(addr, addr + len);
+    FS.msync(stream, buffer, offset, len, flags);
+  },
+  doMkdir: function(path, mode) {
+    path = PATH.normalize(path);
+    if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1);
+    FS.mkdir(path, mode, 0);
+    return 0;
+  },
+  doMknod: function(path, mode, dev) {
+    switch (mode & 61440) {
+      case 32768:
+      case 8192:
+      case 24576:
+      case 4096:
+      case 49152:
+        break;
+      default:
+        return -28;
+    }
+    FS.mknod(path, mode, dev);
+    return 0;
+  },
+  doReadlink: function(path, buf, bufsize) {
+    if (bufsize <= 0) return -28;
+    var ret = FS.readlink(path);
+    var len = Math.min(bufsize, lengthBytesUTF8(ret));
+    var endChar = HEAP8[buf + len];
+    stringToUTF8(ret, buf, bufsize + 1);
+    HEAP8[buf + len] = endChar;
+    return len;
+  },
+  doAccess: function(path, amode) {
+    if (amode & ~7) {
+      return -28;
+    }
+    var node;
+    var lookup = FS.lookupPath(path, { follow: true });
+    node = lookup.node;
+    if (!node) {
+      return -44;
+    }
+    var perms = "";
+    if (amode & 4) perms += "r";
+    if (amode & 2) perms += "w";
+    if (amode & 1) perms += "x";
+    if (perms && FS.nodePermissions(node, perms)) {
+      return -2;
+    }
+    return 0;
+  },
+  doDup: function(path, flags, suggestFD) {
+    var suggest = FS.getStream(suggestFD);
+    if (suggest) FS.close(suggest);
+    return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
+  },
+  doReadv: function(stream, iov, iovcnt, offset) {
+    var ret = 0;
+    for (var i = 0; i < iovcnt; i++) {
+      var ptr = HEAP32[(iov + i * 8) >> 2];
+      var len = HEAP32[(iov + (i * 8 + 4)) >> 2];
+      var curr = FS.read(stream, HEAP8, ptr, len, offset);
+      if (curr < 0) return -1;
+      ret += curr;
+      if (curr < len) break;
+    }
+    return ret;
+  },
+  doWritev: function(stream, iov, iovcnt, offset) {
+    var ret = 0;
+    for (var i = 0; i < iovcnt; i++) {
+      var ptr = HEAP32[(iov + i * 8) >> 2];
+      var len = HEAP32[(iov + (i * 8 + 4)) >> 2];
+      var curr = FS.write(stream, HEAP8, ptr, len, offset);
+      if (curr < 0) return -1;
+      ret += curr;
+    }
+    return ret;
+  },
+  varargs: undefined,
+  get: function() {
+    SYSCALLS.varargs += 4;
+    var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2];
+    return ret;
+  },
+  getStr: function(ptr) {
+    var ret = UTF8ToString(ptr);
+    return ret;
+  },
+  getStreamFromFD: function(fd) {
+    var stream = FS.getStream(fd);
+    if (!stream) throw new FS.ErrnoError(8);
+    return stream;
+  },
+  get64: function(low, high) {
+    return low;
+  }
+};
+function ___sys_chmod(path, mode) {
+  try {
+    path = SYSCALLS.getStr(path);
+    FS.chmod(path, mode);
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_fcntl64(fd, cmd, varargs) {
+  SYSCALLS.varargs = varargs;
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    switch (cmd) {
+      case 0: {
+        var arg = SYSCALLS.get();
+        if (arg < 0) {
+          return -28;
+        }
+        var newStream;
+        newStream = FS.open(stream.path, stream.flags, 0, arg);
+        return newStream.fd;
+      }
+      case 1:
+      case 2:
+        return 0;
+      case 3:
+        return stream.flags;
+      case 4: {
+        var arg = SYSCALLS.get();
+        stream.flags |= arg;
+        return 0;
+      }
+      case 12: {
+        var arg = SYSCALLS.get();
+        var offset = 0;
+        HEAP16[(arg + offset) >> 1] = 2;
+        return 0;
+      }
+      case 13:
+      case 14:
+        return 0;
+      case 16:
+      case 8:
+        return -28;
+      case 9:
+        setErrNo(28);
+        return -1;
+      default: {
+        return -28;
+      }
+    }
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_fstat64(fd, buf) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    return SYSCALLS.doStat(FS.stat, stream.path, buf);
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_ioctl(fd, op, varargs) {
+  SYSCALLS.varargs = varargs;
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    switch (op) {
+      case 21509:
+      case 21505: {
+        if (!stream.tty) return -59;
+        return 0;
+      }
+      case 21510:
+      case 21511:
+      case 21512:
+      case 21506:
+      case 21507:
+      case 21508: {
+        if (!stream.tty) return -59;
+        return 0;
+      }
+      case 21519: {
+        if (!stream.tty) return -59;
+        var argp = SYSCALLS.get();
+        HEAP32[argp >> 2] = 0;
+        return 0;
+      }
+      case 21520: {
+        if (!stream.tty) return -59;
+        return -28;
+      }
+      case 21531: {
+        var argp = SYSCALLS.get();
+        return FS.ioctl(stream, op, argp);
+      }
+      case 21523: {
+        if (!stream.tty) return -59;
+        return 0;
+      }
+      case 21524: {
+        if (!stream.tty) return -59;
+        return 0;
+      }
+      default:
+        abort("bad ioctl syscall " + op);
+    }
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_open(path, flags, varargs) {
+  SYSCALLS.varargs = varargs;
+  try {
+    var pathname = SYSCALLS.getStr(path);
+    var mode = SYSCALLS.get();
+    var stream = FS.open(pathname, flags, mode);
+    return stream.fd;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_read(fd, buf, count) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    return FS.read(stream, HEAP8, buf, count);
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_rename(old_path, new_path) {
+  try {
+    old_path = SYSCALLS.getStr(old_path);
+    new_path = SYSCALLS.getStr(new_path);
+    FS.rename(old_path, new_path);
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_rmdir(path) {
+  try {
+    path = SYSCALLS.getStr(path);
+    FS.rmdir(path);
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_stat64(path, buf) {
+  try {
+    path = SYSCALLS.getStr(path);
+    return SYSCALLS.doStat(FS.stat, path, buf);
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function ___sys_unlink(path) {
+  try {
+    path = SYSCALLS.getStr(path);
+    FS.unlink(path);
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return -e.errno;
+  }
+}
+function _emscripten_memcpy_big(dest, src, num) {
+  HEAPU8.copyWithin(dest, src, src + num);
+}
+function _emscripten_get_heap_size() {
+  return HEAPU8.length;
+}
+function emscripten_realloc_buffer(size) {
+  try {
+    wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);
+    updateGlobalBufferAndViews(wasmMemory.buffer);
+    return 1;
+  } catch (e) {}
+}
+function _emscripten_resize_heap(requestedSize) {
+  requestedSize = requestedSize >>> 0;
+  var oldSize = _emscripten_get_heap_size();
+  var PAGE_MULTIPLE = 65536;
+  var maxHeapSize = 2147483648;
+  if (requestedSize > maxHeapSize) {
+    return false;
+  }
+  var minHeapSize = 16777216;
+  for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+    var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
+    overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+    var newSize = Math.min(
+      maxHeapSize,
+      alignUp(
+        Math.max(minHeapSize, requestedSize, overGrownHeapSize),
+        PAGE_MULTIPLE
+      )
+    );
+    var replacement = emscripten_realloc_buffer(newSize);
+    if (replacement) {
+      return true;
+    }
+  }
+  return false;
+}
+function _fd_close(fd) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    FS.close(stream);
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+}
+function _fd_fdstat_get(fd, pbuf) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    var type = stream.tty
+      ? 2
+      : FS.isDir(stream.mode)
+      ? 3
+      : FS.isLink(stream.mode)
+      ? 7
+      : 4;
+    HEAP8[pbuf >> 0] = type;
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+}
+function _fd_read(fd, iov, iovcnt, pnum) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    var num = SYSCALLS.doReadv(stream, iov, iovcnt);
+    HEAP32[pnum >> 2] = num;
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+}
+function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    var HIGH_OFFSET = 4294967296;
+    var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
+    var DOUBLE_LIMIT = 9007199254740992;
+    if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
+      return -61;
+    }
+    FS.llseek(stream, offset, whence);
+    (tempI64 = [
+      stream.position >>> 0,
+      ((tempDouble = stream.position),
+      +Math_abs(tempDouble) >= 1
+        ? tempDouble > 0
+          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
+            0
+          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
+            0
+        : 0)
+    ]),
+      (HEAP32[newOffset >> 2] = tempI64[0]),
+      (HEAP32[(newOffset + 4) >> 2] = tempI64[1]);
+    if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+}
+function _fd_write(fd, iov, iovcnt, pnum) {
+  try {
+    var stream = SYSCALLS.getStreamFromFD(fd);
+    var num = SYSCALLS.doWritev(stream, iov, iovcnt);
+    HEAP32[pnum >> 2] = num;
+    return 0;
+  } catch (e) {
+    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
+    return e.errno;
+  }
+}
+var ___tm_current = 20656;
+var ___tm_timezone = (stringToUTF8("GMT", 20704, 4), 20704);
+function _gmtime_r(time, tmPtr) {
+  var date = new Date(HEAP32[time >> 2] * 1e3);
+  HEAP32[tmPtr >> 2] = date.getUTCSeconds();
+  HEAP32[(tmPtr + 4) >> 2] = date.getUTCMinutes();
+  HEAP32[(tmPtr + 8) >> 2] = date.getUTCHours();
+  HEAP32[(tmPtr + 12) >> 2] = date.getUTCDate();
+  HEAP32[(tmPtr + 16) >> 2] = date.getUTCMonth();
+  HEAP32[(tmPtr + 20) >> 2] = date.getUTCFullYear() - 1900;
+  HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay();
+  HEAP32[(tmPtr + 36) >> 2] = 0;
+  HEAP32[(tmPtr + 32) >> 2] = 0;
+  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
+  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
+  HEAP32[(tmPtr + 28) >> 2] = yday;
+  HEAP32[(tmPtr + 40) >> 2] = ___tm_timezone;
+  return tmPtr;
+}
+function _gmtime(time) {
+  return _gmtime_r(time, ___tm_current);
+}
+function _setTempRet0($i) {
+  setTempRet0($i | 0);
+}
+function _time(ptr) {
+  var ret = (Date.now() / 1e3) | 0;
+  if (ptr) {
+    HEAP32[ptr >> 2] = ret;
+  }
+  return ret;
+}
+function _tzset() {
+  if (_tzset.called) return;
+  _tzset.called = true;
+  HEAP32[__get_timezone() >> 2] = new Date().getTimezoneOffset() * 60;
+  var currentYear = new Date().getFullYear();
+  var winter = new Date(currentYear, 0, 1);
+  var summer = new Date(currentYear, 6, 1);
+  HEAP32[__get_daylight() >> 2] = Number(
+    winter.getTimezoneOffset() != summer.getTimezoneOffset()
+  );
+  function extractZone(date) {
+    var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
+    return match ? match[1] : "GMT";
+  }
+  var winterName = extractZone(winter);
+  var summerName = extractZone(summer);
+  var winterNamePtr = allocateUTF8(winterName);
+  var summerNamePtr = allocateUTF8(summerName);
+  if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) {
+    HEAP32[__get_tzname() >> 2] = winterNamePtr;
+    HEAP32[(__get_tzname() + 4) >> 2] = summerNamePtr;
+  } else {
+    HEAP32[__get_tzname() >> 2] = summerNamePtr;
+    HEAP32[(__get_tzname() + 4) >> 2] = winterNamePtr;
+  }
+}
+function _timegm(tmPtr) {
+  _tzset();
+  var time = Date.UTC(
+    HEAP32[(tmPtr + 20) >> 2] + 1900,
+    HEAP32[(tmPtr + 16) >> 2],
+    HEAP32[(tmPtr + 12) >> 2],
+    HEAP32[(tmPtr + 8) >> 2],
+    HEAP32[(tmPtr + 4) >> 2],
+    HEAP32[tmPtr >> 2],
+    0
+  );
+  var date = new Date(time);
+  HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay();
+  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
+  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
+  HEAP32[(tmPtr + 28) >> 2] = yday;
+  return (date.getTime() / 1e3) | 0;
+}
+var FSNode = function(parent, name, mode, rdev) {
+  if (!parent) {
+    parent = this;
+  }
+  this.parent = parent;
+  this.mount = parent.mount;
+  this.mounted = null;
+  this.id = FS.nextInode++;
+  this.name = name;
+  this.mode = mode;
+  this.node_ops = {};
+  this.stream_ops = {};
+  this.rdev = rdev;
+};
+var readMode = 292 | 73;
+var writeMode = 146;
+Object.defineProperties(FSNode.prototype, {
+  read: {
+    get: function() {
+      return (this.mode & readMode) === readMode;
+    },
+    set: function(val) {
+      val ? (this.mode |= readMode) : (this.mode &= ~readMode);
+    }
+  },
+  write: {
+    get: function() {
+      return (this.mode & writeMode) === writeMode;
+    },
+    set: function(val) {
+      val ? (this.mode |= writeMode) : (this.mode &= ~writeMode);
+    }
+  },
+  isFolder: {
+    get: function() {
+      return FS.isDir(this.mode);
+    }
+  },
+  isDevice: {
+    get: function() {
+      return FS.isChrdev(this.mode);
+    }
+  }
+});
+FS.FSNode = FSNode;
+FS.staticInit();
+if (ENVIRONMENT_IS_NODE) {
+  var fs = frozenFs;
+  var NODEJS_PATH = __webpack_require__(622);
+  NODEFS.staticInit();
+}
+if (ENVIRONMENT_IS_NODE) {
+  var _wrapNodeError = function(func) {
+    return function() {
+      try {
+        return func.apply(this, arguments);
+      } catch (e) {
+        if (!e.code) throw e;
+        throw new FS.ErrnoError(ERRNO_CODES[e.code]);
+      }
+    };
+  };
+  var VFS = Object.assign({}, FS);
+  for (var _key in NODERAWFS) FS[_key] = _wrapNodeError(NODERAWFS[_key]);
+} else {
+  throw new Error(
+    "NODERAWFS is currently only supported on Node.js environment."
+  );
+}
+function intArrayFromString(stringy, dontAddNull, length) {
+  var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
+  var u8array = new Array(len);
+  var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
+  if (dontAddNull) u8array.length = numBytesWritten;
+  return u8array;
+}
+var decodeBase64 =
+  typeof atob === "function"
+    ? atob
+    : function(input) {
+        var keyStr =
+          "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+        var output = "";
+        var chr1, chr2, chr3;
+        var enc1, enc2, enc3, enc4;
+        var i = 0;
+        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+        do {
+          enc1 = keyStr.indexOf(input.charAt(i++));
+          enc2 = keyStr.indexOf(input.charAt(i++));
+          enc3 = keyStr.indexOf(input.charAt(i++));
+          enc4 = keyStr.indexOf(input.charAt(i++));
+          chr1 = (enc1 << 2) | (enc2 >> 4);
+          chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+          chr3 = ((enc3 & 3) << 6) | enc4;
+          output = output + String.fromCharCode(chr1);
+          if (enc3 !== 64) {
+            output = output + String.fromCharCode(chr2);
+          }
+          if (enc4 !== 64) {
+            output = output + String.fromCharCode(chr3);
+          }
+        } while (i < input.length);
+        return output;
+      };
+function intArrayFromBase64(s) {
+  if (typeof ENVIRONMENT_IS_NODE === "boolean" && ENVIRONMENT_IS_NODE) {
+    var buf;
+    try {
+      buf = Buffer.from(s, "base64");
+    } catch (_) {
+      buf = new Buffer(s, "base64");
+    }
+    return new Uint8Array(buf["buffer"], buf["byteOffset"], buf["byteLength"]);
+  }
+  try {
+    var decoded = decodeBase64(s);
+    var bytes = new Uint8Array(decoded.length);
+    for (var i = 0; i < decoded.length; ++i) {
+      bytes[i] = decoded.charCodeAt(i);
+    }
+    return bytes;
+  } catch (_) {
+    throw new Error("Converting base64 string to bytes failed.");
+  }
+}
+function tryParseAsDataURI(filename) {
+  if (!isDataURI(filename)) {
+    return;
+  }
+  return intArrayFromBase64(filename.slice(dataURIPrefix.length));
+}
+var asmLibraryArg = {
+  p: ___sys_chmod,
+  e: ___sys_fcntl64,
+  j: ___sys_fstat64,
+  o: ___sys_ioctl,
+  r: ___sys_open,
+  q: ___sys_read,
+  h: ___sys_rename,
+  s: ___sys_rmdir,
+  c: ___sys_stat64,
+  g: ___sys_unlink,
+  t: _emscripten_memcpy_big,
+  u: _emscripten_resize_heap,
+  f: _fd_close,
+  i: _fd_fdstat_get,
+  n: _fd_read,
+  l: _fd_seek,
+  d: _fd_write,
+  k: _gmtime,
+  memory: wasmMemory,
+  a: _setTempRet0,
+  table: wasmTable,
+  b: _time,
+  m: _timegm
+};
+var asm = createWasm();
+var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = asm["v"]);
+var _zipstruct_stat = (Module["_zipstruct_stat"] = asm["w"]);
+var _zipstruct_statS = (Module["_zipstruct_statS"] = asm["x"]);
+var _zipstruct_stat_name = (Module["_zipstruct_stat_name"] = asm["y"]);
+var _zipstruct_stat_index = (Module["_zipstruct_stat_index"] = asm["z"]);
+var _zipstruct_stat_size = (Module["_zipstruct_stat_size"] = asm["A"]);
+var _zipstruct_stat_mtime = (Module["_zipstruct_stat_mtime"] = asm["B"]);
+var _zipstruct_error = (Module["_zipstruct_error"] = asm["C"]);
+var _zipstruct_errorS = (Module["_zipstruct_errorS"] = asm["D"]);
+var _zip_close = (Module["_zip_close"] = asm["E"]);
+var _zip_dir_add = (Module["_zip_dir_add"] = asm["F"]);
+var _zip_discard = (Module["_zip_discard"] = asm["G"]);
+var _zip_error_init_with_code = (Module["_zip_error_init_with_code"] =
+  asm["H"]);
+var _zip_get_error = (Module["_zip_get_error"] = asm["I"]);
+var _zip_file_get_error = (Module["_zip_file_get_error"] = asm["J"]);
+var _zip_error_strerror = (Module["_zip_error_strerror"] = asm["K"]);
+var _zip_fclose = (Module["_zip_fclose"] = asm["L"]);
+var _zip_file_add = (Module["_zip_file_add"] = asm["M"]);
+var _zip_file_get_external_attributes = (Module[
+  "_zip_file_get_external_attributes"
+] = asm["N"]);
+var _zip_file_set_external_attributes = (Module[
+  "_zip_file_set_external_attributes"
+] = asm["O"]);
+var _zip_file_set_mtime = (Module["_zip_file_set_mtime"] = asm["P"]);
+var _zip_fopen = (Module["_zip_fopen"] = asm["Q"]);
+var _zip_fopen_index = (Module["_zip_fopen_index"] = asm["R"]);
+var _zip_fread = (Module["_zip_fread"] = asm["S"]);
+var _zip_get_name = (Module["_zip_get_name"] = asm["T"]);
+var _zip_get_num_entries = (Module["_zip_get_num_entries"] = asm["U"]);
+var _zip_name_locate = (Module["_zip_name_locate"] = asm["V"]);
+var _zip_open = (Module["_zip_open"] = asm["W"]);
+var _zip_open_from_source = (Module["_zip_open_from_source"] = asm["X"]);
+var _zip_set_file_compression = (Module["_zip_set_file_compression"] =
+  asm["Y"]);
+var _zip_source_buffer = (Module["_zip_source_buffer"] = asm["Z"]);
+var _zip_source_buffer_create = (Module["_zip_source_buffer_create"] =
+  asm["_"]);
+var _zip_source_close = (Module["_zip_source_close"] = asm["$"]);
+var _zip_source_error = (Module["_zip_source_error"] = asm["aa"]);
+var _zip_source_free = (Module["_zip_source_free"] = asm["ba"]);
+var _zip_source_keep = (Module["_zip_source_keep"] = asm["ca"]);
+var _zip_source_open = (Module["_zip_source_open"] = asm["da"]);
+var _zip_source_read = (Module["_zip_source_read"] = asm["ea"]);
+var _zip_source_seek = (Module["_zip_source_seek"] = asm["fa"]);
+var _zip_source_set_mtime = (Module["_zip_source_set_mtime"] = asm["ga"]);
+var _zip_source_tell = (Module["_zip_source_tell"] = asm["ha"]);
+var _zip_stat = (Module["_zip_stat"] = asm["ia"]);
+var _zip_stat_index = (Module["_zip_stat_index"] = asm["ja"]);
+var _zip_ext_count_symlinks = (Module["_zip_ext_count_symlinks"] = asm["ka"]);
+var ___errno_location = (Module["___errno_location"] = asm["la"]);
+var __get_tzname = (Module["__get_tzname"] = asm["ma"]);
+var __get_daylight = (Module["__get_daylight"] = asm["na"]);
+var __get_timezone = (Module["__get_timezone"] = asm["oa"]);
+var stackSave = (Module["stackSave"] = asm["pa"]);
+var stackRestore = (Module["stackRestore"] = asm["qa"]);
+var stackAlloc = (Module["stackAlloc"] = asm["ra"]);
+var _malloc = (Module["_malloc"] = asm["sa"]);
+var _free = (Module["_free"] = asm["ta"]);
+var dynCall_vi = (Module["dynCall_vi"] = asm["ua"]);
+Module["cwrap"] = cwrap;
+Module["getValue"] = getValue;
+var calledRun;
+function ExitStatus(status) {
+  this.name = "ExitStatus";
+  this.message = "Program terminated with exit(" + status + ")";
+  this.status = status;
+}
+dependenciesFulfilled = function runCaller() {
+  if (!calledRun) run();
+  if (!calledRun) dependenciesFulfilled = runCaller;
+};
+function run(args) {
+  args = args || arguments_;
+  if (runDependencies > 0) {
+    return;
+  }
+  preRun();
+  if (runDependencies > 0) return;
+  function doRun() {
+    if (calledRun) return;
+    calledRun = true;
+    Module["calledRun"] = true;
+    if (ABORT) return;
+    initRuntime();
+    preMain();
+    if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
+    postRun();
+  }
+  if (Module["setStatus"]) {
+    Module["setStatus"]("Running...");
+    setTimeout(function() {
+      setTimeout(function() {
+        Module["setStatus"]("");
+      }, 1);
+      doRun();
+    }, 1);
+  } else {
+    doRun();
+  }
+}
+Module["run"] = run;
+if (Module["preInit"]) {
+  if (typeof Module["preInit"] == "function")
+    Module["preInit"] = [Module["preInit"]];
+  while (Module["preInit"].length > 0) {
+    Module["preInit"].pop()();
+  }
+}
+noExitRuntime = true;
+run();
+
+
+/***/ }),
+
+/***/ 417:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("crypto");
+
+/***/ }),
+
+/***/ 747:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("fs");
+
+/***/ }),
+
+/***/ 282:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("module");
+
+/***/ }),
+
+/***/ 87:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("os");
+
+/***/ }),
+
+/***/ 622:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("path");
+
+/***/ }),
+
+/***/ 413:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("stream");
+
+/***/ }),
+
+/***/ 304:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("string_decoder");
+
+/***/ }),
+
+/***/ 835:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("url");
+
+/***/ }),
+
+/***/ 669:
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("util");
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		if(__webpack_module_cache__[moduleId]) {
+/******/ 			return __webpack_module_cache__[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	(() => {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = (module) => {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				() => module['default'] :
+/******/ 				() => module;
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	})();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	(() => {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = (exports, definition) => {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	})();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	(() => {
+/******/ 		__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
+/******/ 	})();
+/******/ 	
+/************************************************************************/
+/******/ 	// module exports must be returned from runtime so entry inlining is disabled
+/******/ 	// startup
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(936);
+/******/ })()
+.default;
+});
\ No newline at end of file
diff --git a/FrontEnd/.vscode/extensions.json b/FrontEnd/.vscode/extensions.json
new file mode 100644
index 00000000..be640996
--- /dev/null
+++ b/FrontEnd/.vscode/extensions.json
@@ -0,0 +1,9 @@
+{
+  "recommendations": [
+    "dbaeumer.vscode-eslint",
+    "esbenp.prettier-vscode",
+    "arcanis.vscode-zipfs",
+    "syler.sass-indented",
+    "editorconfig.editorconfig"
+  ]
+}
diff --git a/FrontEnd/.vscode/preview.yml b/FrontEnd/.vscode/preview.yml
new file mode 100644
index 00000000..b2cf70af
--- /dev/null
+++ b/FrontEnd/.vscode/preview.yml
@@ -0,0 +1,10 @@
+
+# .vscode/preview.yml
+autoOpen: false # 打开工作空间时是否自动开启所有应用的预览
+apps:
+  - port: 3000 # 应用的端口
+    run: yarn start:mock # 应用的启动命令
+    root: . # 应用的启动目录
+    name: timeline # 应用名称
+    description: Timeline App # 应用描述
+    autoOpen: false # 打开工作空间时是否自动开启预览（优先级高于根级 autoOpen）
diff --git a/FrontEnd/.vscode/settings.json b/FrontEnd/.vscode/settings.json
new file mode 100644
index 00000000..3db658ba
--- /dev/null
+++ b/FrontEnd/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+  "eslint.nodePath": ".yarn/sdks",
+  "prettier.prettierPath": ".yarn/sdks/prettier/index.js",
+  "typescript.tsdk": ".yarn/sdks/typescript/lib",
+  "typescript.enablePromptUseWorkspaceTsdk": true
+}
diff --git a/FrontEnd/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs b/FrontEnd/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
new file mode 100644
index 00000000..190d5899
--- /dev/null
+++ b/FrontEnd/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
@@ -0,0 +1,38 @@
+/* eslint-disable */
+module.exports = {
+name: "@yarnpkg/plugin-interactive-tools",
+factory: function (require) {
+var plugin;plugin=(()=>{var __webpack_modules__={120:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>H});function r(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}var i,o=n(2594),u=n(966),a=n(4930),l=n(7382),s=n.n(l);!function(e){e.BEFORE="before",e.AFTER="after"}(i||(i={}));const c=function(e,t,{active:n,minus:r,plus:i,set:o,loop:u=!0}){const{stdin:s}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!n)return;const a=(n,a)=>{const l=t.indexOf(e);switch(a.name){case r:{const e=l-1;if(u)return void o(t[(t.length+e)%t.length]);if(e<0)return;o(t[e])}break;case i:{const e=l+1;if(u)return void o(t[e%t.length]);if(e>=t.length)return;o(t[e])}}};return s.on("keypress",a),()=>{s.off("keypress",a)}},[t,e,n])},f=({active:e=!0,children:t=[],radius:n=10,size:r=1,loop:o=!0,onFocusRequest:u,willReachEnd:f})=>{const d=s().Children.map(t,e=>(e=>{if(null===e.key)throw new Error("Expected all children to have a key");return e.key})(e)),p=d[0],[h,m]=(0,l.useState)(p),v=d.indexOf(h);(0,l.useEffect)(()=>{d.includes(h)||m(p)},[t]),(0,l.useEffect)(()=>{f&&v>=d.length-2&&f()},[v]),function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e||void 0===t)return;const r=(e,n)=>{"tab"===n.name&&(n.shift?t(i.BEFORE):t(i.AFTER))};return n.on("keypress",r),()=>{n.off("keypress",r)}},[e,t])}({active:e,handler:u}),c(h,d,{active:e,minus:"up",plus:"down",set:m,loop:o});let b=v-n,g=v+n;g>d.length&&(b-=g-d.length,g=d.length),b<0&&(g+=-b,b=0),g>=d.length&&(g=d.length-1);const _=[];for(let n=b;n<=g;++n){const i=d[n],o=e&&i===h;_.push(s().createElement(a.Box,{key:i,height:r},s().createElement(a.Box,{marginLeft:1,marginRight:1},o?s().createElement(a.Color,{cyan:!0,bold:!0},">"):" "),s().createElement(a.Box,null,s().cloneElement(t[n],{active:o}))))}return s().createElement(a.Box,{flexDirection:"column",width:"100%"},_)},d=s().createContext(null),p=function({children:e}){const{setRawMode:t}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{t&&t(!0)},[]);const[n,r]=(0,l.useState)(new Map),i=(0,l.useMemo)(()=>({getAll:()=>n,get:e=>n.get(e),set:(e,t)=>r(new Map([...n,[e,t]]))}),[n,r]);return s().createElement(d.Provider,{value:i,children:e})};function h(e,t){const n=(0,l.useContext)(d);if(null===n)throw new Error("Expected this hook to run with a ministore context attached");if(void 0===e)return n.getAll();const r=(0,l.useCallback)(t=>{n.set(e,t)},[e,n.set]);let i=n.get(e);return void 0===i&&(i=t),[i,r]}async function m(e,t){let n;const{waitUntilExit:r}=(0,a.render)(s().createElement(p,null,s().createElement(e,Object.assign({},t,{useSubmit:e=>{const{exit:t}=(0,l.useContext)(a.AppContext),{stdin:r}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{const i=(r,i)=>{"return"===i.name&&(n=e,t())};return r.on("keypress",i),()=>{r.off("keypress",i)}},[r,t,e])}}))));return await r(),n}var v=n(8042),b=n(9645),g=n(4410);const _={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},y=n.n(g)()(_.appId,_.apiKey).initIndex(_.indexName),D=async(e,t=0)=>await y.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10}),w=["regular","dev","peer"];class E extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),t=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:48},s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<up>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<down>")," to move between packages."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<space>")," to select a package."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<space>")," again to change the target.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<enter>")," to install the selected packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<ctrl+c>")," to abort."))),n=()=>s().createElement(s().Fragment,null,s().createElement(a.Box,{width:15},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Owner")),s().createElement(a.Box,{width:11},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Version")),s().createElement(a.Box,{width:10},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Downloads"))),r=()=>s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Target")),i=({hit:t,active:n})=>{const[r,i]=h(t.name,null);!function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e)return;const r=(e,n)=>{"space"===n.name&&t()};return n.on("keypress",r),()=>{n.off("keypress",r)}},[t])}({active:n,handler:()=>{if(!r)return void i(w[0]);const e=w.indexOf(r)+1;e===w.length?i(null):i(w[e])}});const o=u.structUtils.parseIdent(t.name),c=u.structUtils.prettyIdent(e,o);return s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},c)),s().createElement(a.Box,{width:14,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{bold:!0},t.owner.name)),s().createElement(a.Box,{width:10,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{italic:!0},t.version)),s().createElement(a.Box,{width:16,textWrap:"truncate",marginLeft:1},t.humanDownloadsLast30Days))},o=({name:t,active:n})=>{const[r]=h(t,null),i=u.structUtils.parseIdent(t);return s().createElement(a.Box,null,s().createElement(a.Box,{width:47},s().createElement(a.Text,{bold:!0}," - ",u.structUtils.prettyIdent(e,i))),w.map(e=>s().createElement(a.Box,{key:e,width:14,marginLeft:1},r===e?s().createElement(a.Color,{green:!0}," ◉ "):s().createElement(a.Color,{yellow:!0}," ◯ "),s().createElement(a.Text,{bold:!0},e))))},c=()=>s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,null,"Powered by Algolia.")),d=await m(({useSubmit:e})=>{const u=h();e(u);const d=Array.from(u.keys()).filter(e=>null!==u.get(e)),[p,m]=(0,l.useState)(""),[v,g]=(0,l.useState)(0),[_,y]=(0,l.useState)([]);(0,l.useEffect)(()=>{p?(async()=>{g(0);const e=await D(p);e.query===p&&y(e.hits)})():y([])},[p]);const w=b.ZP;return s().createElement(a.Box,{flexDirection:"column"},s().createElement(t,null),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Text,{bold:!0},"Search: "),s().createElement(a.Box,{width:41},s().createElement(w,{value:p,onChange:e=>{e.match(/\t| /)||m(e)},placeholder:"i.e. babel, webpack, react...",showCursor:!1})),s().createElement(n,null)),_.length?s().createElement(f,{radius:2,loop:!1,children:_.map(e=>s().createElement(i,{key:e.name,hit:e,active:!1})),willReachEnd:async()=>{const e=await D(p,v+1);e.query===p&&e.page-1===v&&(g(e.page),y([..._,...e.hits]))}}):s().createElement(a.Color,{gray:!0},"Start typing..."),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Box,{width:49},s().createElement(a.Text,{bold:!0},"Selected:")),s().createElement(r,null)),d.length?d.map(e=>s().createElement(o,{key:e,name:e,active:!1})):s().createElement(a.Color,{gray:!0},"No selected packages..."),s().createElement(c,null))},{});if(void 0===d)return 1;const p=Array.from(d.keys()).filter(e=>"regular"===d.get(e)),v=Array.from(d.keys()).filter(e=>"dev"===d.get(e)),g=Array.from(d.keys()).filter(e=>"peer"===d.get(e));return p.length&&await this.cli.run(["add",...p]),v.length&&await this.cli.run(["add","--dev",...v]),g&&await this.cli.run(["add","--peer",...g]),0}}E.usage=v.Command.Usage({category:"Interactive commands",description:"open the search interface",details:"\n    This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.\n    ",examples:[["Open the search window","yarn search"]]}),r([v.Command.Path("search")],E.prototype,"execute",null);const C=function({active:e,options:t,value:n,onChange:r,sizes:i=[]}){const o=t.map(({value:e})=>e),u=o.indexOf(n);return c(n,o,{active:e,minus:"left",plus:"right",set:r}),s().createElement(s().Fragment,null,t.map(({label:e},t)=>t===u?s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{green:!0}," ◉ ")," ",s().createElement(a.Text,{bold:!0},e)):s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{yellow:!0}," ◯ ")," ",s().createElement(a.Text,{bold:!0},e))))};var T=n(4850);function k(){}function S(e,t,n,r,i){for(var o=0,u=t.length,a=0,l=0;o<u;o++){var s=t[o];if(s.removed){if(s.value=e.join(r.slice(l,l+s.count)),l+=s.count,o&&t[o-1].added){var c=t[o-1];t[o-1]=t[o],t[o]=c}}else{if(!s.added&&i){var f=n.slice(a,a+s.count);f=f.map((function(e,t){var n=r[l+t];return n.length>e.length?n:e})),s.value=e.join(f)}else s.value=e.join(n.slice(a,a+s.count));a+=s.count,s.added||(l+=s.count)}}var d=t[u-1];return u>1&&"string"==typeof d.value&&(d.added||d.removed)&&e.equals("",d.value)&&(t[u-2].value+=d.value,t.pop()),t}function M(e){return{newPos:e.newPos,components:e.components.slice(0)}}k.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var i=this;function o(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var u=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,l=1,s=u+a,c=[{newPos:-1,components:[]}],f=this.extractCommon(c[0],t,e,0);if(c[0].newPos+1>=u&&f+1>=a)return o([{value:this.join(t),count:t.length}]);function d(){for(var n=-1*l;n<=l;n+=2){var r=void 0,s=c[n-1],f=c[n+1],d=(f?f.newPos:0)-n;s&&(c[n-1]=void 0);var p=s&&s.newPos+1<u,h=f&&0<=d&&d<a;if(p||h){if(!p||h&&s.newPos<f.newPos?(r=M(f),i.pushComponent(r.components,void 0,!0)):((r=s).newPos++,i.pushComponent(r.components,!0,void 0)),d=i.extractCommon(r,t,e,n),r.newPos+1>=u&&d+1>=a)return o(S(i,r.components,t,e,i.useLongestToken));c[n]=r}else c[n]=void 0}l++}if(r)!function e(){setTimeout((function(){if(l>s)return r();d()||e()}),0)}();else for(;l<=s;){var p=d();if(p)return p}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var i=t.length,o=n.length,u=e.newPos,a=u-r,l=0;u+1<i&&a+1<o&&this.equals(t[u+1],n[a+1]);)u++,a++,l++;return l&&e.components.push({count:l}),e.newPos=u,a},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};new k;function x(e,t){if("function"==typeof e)t.callback=e;else if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var A=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,P=/\S/,O=new k;O.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!P.test(e)&&!P.test(t)},O.tokenize=function(e){for(var t=e.split(/(\s+|[()[\]{}'"]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&A.test(t[n])&&A.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t};var R=new k;R.tokenize=function(e){var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var N=new k;N.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var I=new k;function F(e){return(F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}I.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var B=Object.prototype.toString,L=new k;L.useLongestToken=!0,L.tokenize=R.tokenize,L.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=void 0===r?function(e,t){return void 0===t?n:t}:r;return"string"==typeof e?e:JSON.stringify(function e(t,n,r,i,o){n=n||[],r=r||[],i&&(t=i(o,t));var u,a;for(u=0;u<n.length;u+=1)if(n[u]===t)return r[u];if("[object Array]"===B.call(t)){for(n.push(t),a=new Array(t.length),r.push(a),u=0;u<t.length;u+=1)a[u]=e(t[u],n,r,i,o);return n.pop(),r.pop(),a}t&&t.toJSON&&(t=t.toJSON());if("object"===F(t)&&null!==t){n.push(t),a={},r.push(a);var l,s=[];for(l in t)t.hasOwnProperty(l)&&s.push(l);for(s.sort(),u=0;u<s.length;u+=1)l=s[u],a[l]=e(t[l],n,r,i,l);n.pop(),r.pop()}else a=t;return a}(e,null,null,i),i,"  ")},L.equals=function(e,t){return k.prototype.equals.call(L,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))};var U=new k;U.tokenize=function(e){return e.slice()},U.join=U.removeEmpty=function(e){return e};var j=n(9513),W=n.n(j);const z=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;class q extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await u.Project.find(e,this.context.cwd),r=await u.Cache.find(e);if(!n)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=(t,n)=>{const r=(i=t,o=n,u=x(u,{ignoreWhitespace:!0}),O.diff(i,o,u));var i,o,u;let a="";for(const t of r)t.added?a+=e.format(t.value,"green"):t.removed||(a+=t.value);return a},c=(t,n)=>{if(t===n)return n;const r=u.structUtils.parseRange(t),o=u.structUtils.parseRange(n),a=r.selector.match(z),l=o.selector.match(z);if(!a||!l)return i(t,n);const s=["gray","red","yellow","green","magenta"];let c=null,f="";for(let t=1;t<s.length;++t)null!==c||a[t]!==l[t]?(null===c&&(c=s[t-1]),f+=e.format(l[t],c)):f+=l[t];return f},d=async(e,n,i)=>{const o=await T.suggestUtils.fetchDescriptorFrom(e,i,{project:t,cache:r,preserveModifier:n});return null!==o?o.range:e.range},p=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:49},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<up>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<down>")," to select packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<left>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<right>")," to select versions.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<enter>")," to install."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<ctrl+c>")," to abort."))),v=()=>s().createElement(a.Box,{flexDirection:"row",paddingTop:1,paddingBottom:1},s().createElement(a.Box,{width:50},s().createElement(a.Text,{bold:!0},s().createElement(a.Color,{greenBright:!0},"?")," Pick the packages you want to upgrade.")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Current")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Range/Latest"))),b=({active:t,descriptor:n})=>{const[r,i]=h(n.descriptorHash,null),[o,f]=(0,l.useState)(null),p=(0,l.useRef)(!0);return(0,l.useEffect)(()=>()=>{p.current=!1},[]),(0,l.useEffect)(()=>{(async e=>{const t=W().valid(e.range)?"^"+e.range:e.range,[n,r]=await Promise.all([d(e,e.range,t),d(e,e.range,"latest")]),i=[{value:null,label:e.range}];return n!==e.range&&i.push({value:n,label:c(e.range,n)}),r!==n&&r!==e.range&&i.push({value:r,label:c(e.range,r)}),i})(n).then(e=>{p.current&&f(e)})},[n.descriptorHash]),s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},u.structUtils.prettyIdent(e,n))),null!==o?s().createElement(C,{active:t,options:o,value:r,onChange:i,sizes:[17,17,17]}):s().createElement(a.Box,{marginLeft:2},s().createElement(a.Color,{gray:!0},"Fetching suggestions...")))},g=await m(({useSubmit:e})=>{e(h());const n=new Map;for(const e of t.workspaces)for(const r of["dependencies","devDependencies"])for(const i of e.manifest[r].values())null===t.tryWorkspaceByDescriptor(i)&&n.set(i.descriptorHash,i);const r=u.miscUtils.sortMap(n.values(),e=>u.structUtils.stringifyDescriptor(e));return s().createElement(s().Fragment,null,s().createElement(a.Box,{flexDirection:"column"},s().createElement(p,null),s().createElement(v,null),s().createElement(f,{radius:10,children:r.map(e=>s().createElement(b,{key:e.descriptorHash,active:!1,descriptor:e}))})))},{});if(void 0===g)return 1;let _=!1;for(const e of t.workspaces)for(const t of["dependencies","devDependencies"]){const n=e.manifest[t];for(const e of n.values()){const t=g.get(e.descriptorHash);null!=t&&(n.set(e.identHash,u.structUtils.makeDescriptor(e,t)),_=!0)}}if(!_)return 0;return(await u.StreamReport.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:r,report:e})})).exitCode()}}q.usage=v.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n      This command opens a fullscreen terminal interface where you can see the packages used by your application, their status compared to the latest versions available on the remote registry, and let you upgrade.\n    ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]}),r([v.Command.Path("upgrade-interactive")],q.prototype,"execute",null);const H={commands:[E,q]}},9645:(e,t,n)=>{"use strict";t.ZP=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var o=r?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(7382)),i=a(n(6271)),o=n(4930),u=a(n(5882));function a(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class f extends r.PureComponent{constructor(...e){super(...e),c(this,"state",{cursorOffset:(this.props.value||"").length,cursorWidth:0}),c(this,"isMounted",!1),c(this,"handleInput",e=>{const{value:t,focus:n,showCursor:r,mask:i,onChange:o,onSubmit:u}=this.props,{cursorOffset:a}=this.state;if(!1===n||!1===this.isMounted)return;const l=String(e);if("[A"===l||"[B"===l||""===l)return;if("\r"===l)return void(u&&u(t));let s=a,c=t,f=0;"[D"===l?r&&!i&&s--:"[C"===l?r&&!i&&s++:"\b"===l||""===l?(c=c.slice(0,s-1)+c.slice(s,c.length),s--):(c=c.slice(0,s)+l+c.slice(s,c.length),s+=l.length,l.length>1&&(f=l.length)),s<0&&(s=0),s>c.length&&(s=c.length),this.setState({cursorOffset:s,cursorWidth:f}),c!==t&&o(c)})}render(){const{value:e,placeholder:t,showCursor:n,focus:i,mask:a,highlightPastedText:l}=this.props,{cursorOffset:s,cursorWidth:c}=this.state,f=e.length>0;let d=e;const p=l?c:0;if(n&&!a&&i){d=e.length>0?"":u.default.inverse(" ");let t=0;for(const n of e)d+=t>=s-p&&t<=s?u.default.inverse(n):n,t++;e.length>0&&s===e.length&&(d+=u.default.inverse(" "))}return a&&(d=a.repeat(d.length)),r.default.createElement(o.Color,{dim:!f&&t},t?f?d:t:d)}componentDidMount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!0,t(!0),e.on("data",this.handleInput)}componentWillUnmount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!1,e.removeListener("data",this.handleInput),t(!1)}}c(f,"propTypes",{value:i.default.string.isRequired,placeholder:i.default.string,focus:i.default.bool,mask:i.default.string,highlightPastedText:i.default.bool,showCursor:i.default.bool,stdin:i.default.object.isRequired,setRawMode:i.default.func.isRequired,onChange:i.default.func.isRequired,onSubmit:i.default.func}),c(f,"defaultProps",{placeholder:"",showCursor:!0,focus:!0,mask:void 0,highlightPastedText:!1,onSubmit:void 0});class d extends r.PureComponent{render(){return r.default.createElement(o.StdinContext.Consumer,null,({stdin:e,setRawMode:t})=>r.default.createElement(f,s({},this.props,{stdin:e,setRawMode:t})))}}t.ZP=d;class p extends r.PureComponent{constructor(...e){super(...e),c(this,"state",{value:""}),c(this,"setValue",this.setValue.bind(this))}setValue(e){this.setState({value:e})}render(){return r.default.createElement(d,s({},this.props,{value:this.state.value,onChange:this.setValue}))}}},9043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(2821))&&r.__esModule?r:{default:r};const o=(e,t)=>({}.hasOwnProperty.call(e,t));t.default=(e,t={})=>{((e,t)=>{t.margin&&(e.setMargin(i.default.EDGE_TOP,t.margin),e.setMargin(i.default.EDGE_BOTTOM,t.margin),e.setMargin(i.default.EDGE_START,t.margin),e.setMargin(i.default.EDGE_END,t.margin)),t.marginX&&(e.setMargin(i.default.EDGE_START,t.marginX),e.setMargin(i.default.EDGE_END,t.marginX)),t.marginY&&(e.setMargin(i.default.EDGE_TOP,t.marginY),e.setMargin(i.default.EDGE_BOTTOM,t.marginY)),t.marginTop&&e.setMargin(i.default.EDGE_TOP,t.marginTop),t.marginBottom&&e.setMargin(i.default.EDGE_BOTTOM,t.marginBottom),t.marginLeft&&e.setMargin(i.default.EDGE_START,t.marginLeft),t.marginRight&&e.setMargin(i.default.EDGE_END,t.marginRight)})(e,t),((e,t)=>{t.padding&&(e.setPadding(i.default.EDGE_TOP,t.padding),e.setPadding(i.default.EDGE_BOTTOM,t.padding),e.setPadding(i.default.EDGE_LEFT,t.padding),e.setPadding(i.default.EDGE_RIGHT,t.padding)),t.paddingX&&(e.setPadding(i.default.EDGE_LEFT,t.paddingX),e.setPadding(i.default.EDGE_RIGHT,t.paddingX)),t.paddingY&&(e.setPadding(i.default.EDGE_TOP,t.paddingY),e.setPadding(i.default.EDGE_BOTTOM,t.paddingY)),t.paddingTop&&e.setPadding(i.default.EDGE_TOP,t.paddingTop),t.paddingBottom&&e.setPadding(i.default.EDGE_BOTTOM,t.paddingBottom),t.paddingLeft&&e.setPadding(i.default.EDGE_LEFT,t.paddingLeft),t.paddingRight&&e.setPadding(i.default.EDGE_RIGHT,t.paddingRight)})(e,t),((e,t)=>{t.flexGrow&&e.setFlexGrow(t.flexGrow),t.flexShrink&&e.setFlexShrink(t.flexShrink),t.flexDirection&&("row"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW),"row-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW_REVERSE),"column"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN),"column-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN_REVERSE)),o(t,"flexBasis")&&e.setFlexBasis(t.flexBasis),t.alignItems&&("flex-start"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_START),"center"===t.alignItems&&e.setAlignItems(i.default.ALIGN_CENTER),"flex-end"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_END)),t.justifyContent&&("flex-start"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_START),"center"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_CENTER),"flex-end"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_END),"space-between"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_BETWEEN),"space-around"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_AROUND))})(e,t),((e,t)=>{o(t,"width")&&e.setWidth(t.width),o(t,"height")&&e.setHeight(t.height),o(t,"minWidth")&&e.setMinWidth(t.minWidth),o(t,"minHeight")&&e.setMinHeight(t.minHeight)})(e,t)}},1:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(2821)),i=u(n(9043)),o=u(n(3425));function u(e){return e&&e.__esModule?e:{default:e}}const a=(e,t)=>{const{config:n,terminalWidth:u,skipStaticElements:l}=t,s=r.default.Node.create(n);e.yogaNode=s;const c=e.style||{};if("ROOT"===e.nodeName){if(s.setWidth(u||100),e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const n=a(r,t).yogaNode;s.insertChild(n,e)}}return e}if((0,i.default)(s,c),e.textContent||e.nodeValue){const{width:t,height:n}=(0,o.default)(e.textContent||e.nodeValue);return s.setWidth(c.width||t),s.setHeight(c.height||n),e}if(Array.isArray(e.childNodes)&&e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const{yogaNode:n}=a(r,t);s.insertChild(n,e)}}return e};var l=a;t.default=l},1752:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(1058)),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=c(n(6271)),u=c(n(1305)),a=c(n(4974)),l=c(n(7454)),s=c(n(3742));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class d extends i.PureComponent{isRawModeSupported(){return this.props.stdin.isTTY}constructor(){super(),f(this,"handleSetRawMode",e=>{const{stdin:t}=this.props;if(!this.isRawModeSupported())throw t===process.stdin?new Error("Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported"):new Error("Raw mode is not supported on the stdin provided to Ink.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported");if(t.setEncoding("utf8"),e)return 0===this.rawModeEnabledCount&&(t.addListener("data",this.handleInput),t.resume(),t.setRawMode(!0),r.default.emitKeypressEvents(t)),void this.rawModeEnabledCount++;0==--this.rawModeEnabledCount&&(t.setRawMode(!1),t.removeListener("data",this.handleInput),t.pause())}),f(this,"handleInput",e=>{""===e&&this.props.exitOnCtrlC&&this.handleExit()}),f(this,"handleExit",e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)}),this.rawModeEnabledCount=0}render(){return i.default.createElement(a.default.Provider,{value:{exit:this.handleExit}},i.default.createElement(l.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported()}},i.default.createElement(s.default.Provider,{value:{stdout:this.props.stdout}},this.props.children)))}componentDidMount(){u.default.hide(this.props.stdout)}componentWillUnmount(){u.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}}t.default=d,f(d,"propTypes",{children:o.default.node.isRequired,stdin:o.default.object.isRequired,stdout:o.default.object.isRequired,exitOnCtrlC:o.default.bool.isRequired,onExit:o.default.func.isRequired})},4974:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({exit(){}});t.default=i},522:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l extends i.PureComponent{constructor(){super(),this.nodeRef=i.default.createRef()}render(){const e=this.props,{children:t,unstable__transformChildren:n}=e,r=u(e,["children","unstable__transformChildren"]);return i.default.createElement("div",{ref:this.nodeRef,style:r,unstable__transformChildren:n},t)}unstable__getComputedWidth(){return this.nodeRef.current.yogaNode.getComputedWidth()}}t.default=l,a(l,"propTypes",{margin:o.default.number,marginX:o.default.number,marginY:o.default.number,marginTop:o.default.number,marginBottom:o.default.number,marginLeft:o.default.number,marginRight:o.default.number,padding:o.default.number,paddingX:o.default.number,paddingY:o.default.number,paddingTop:o.default.number,paddingBottom:o.default.number,paddingLeft:o.default.number,paddingRight:o.default.number,width:o.default.oneOfType([o.default.number,o.default.string]),minWidth:o.default.number,height:o.default.oneOfType([o.default.number,o.default.string]),minHeight:o.default.number,flexGrow:o.default.number,flexShrink:o.default.number,flexDirection:o.default.oneOf(["row","row-reverse","column","column-reverse"]),flexBasis:o.default.oneOfType([o.default.number,o.default.string]),alignItems:o.default.oneOf(["flex-start","center","flex-end"]),justifyContent:o.default.oneOf(["flex-start","center","flex-end","space-between","space-around"]),textWrap:o.default.oneOf(["wrap","truncate","truncate-start","truncate-middle","truncate-end"]),unstable__transformChildren:o.default.func,children:o.default.node}),a(l,"defaultProps",{flexDirection:"row",flexGrow:0,flexShrink:1})},3862:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7382)),i=a(n(6271)),o=a(n(3810)),u=a(n(9244));function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}const s=["hex","hsl","hsv","hwb","rgb","keyword","bgHex","bgHsl","bgHsv","bgHwb","bgRgb","bgKeyword"],c=e=>{let{children:t}=e,n=l(e,["children"]);return r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:e=>(Object.keys(n).forEach(t=>{n[t]&&(s.includes(t)?e=u.default[t](...(0,o.default)(n[t]))(e):"function"==typeof u.default[t]&&(e=u.default[t](e)))}),e)},t)};c.propTypes={children:i.default.node.isRequired};var f=c;t.default=f},8075:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=e=>Array.isArray(e)?e:[e];class s extends i.Component{constructor(...e){super(...e),a(this,"state",{lastIndex:null})}render(){const e=this.props,{children:t}=e,n=u(e,["children"]),{lastIndex:r}=this.state;let o=t;return"number"==typeof r&&(o=l(t).slice(r)),i.default.createElement("div",{unstable__static:!0,style:n},o)}componentDidMount(){this.saveLastIndex(this.props.children)}componentDidUpdate(e,t){t.lastIndex===this.state.lastIndex&&this.saveLastIndex(this.props.children)}saveLastIndex(e){const t=l(e).length;this.state.lastIndex!==t&&this.setState({lastIndex:t})}}t.default=s,a(s,"propTypes",{children:o.default.node})},7454:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdin:void 0,setRawMode:void 0});t.default=i},3742:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdout:void 0});t.default=i},4127:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(7382)),i=u(n(6271)),o=u(n(9244));function u(e){return e&&e.__esModule?e:{default:e}}const a=({bold:e,italic:t,underline:n,strikethrough:i,children:u,unstable__transformChildren:a})=>r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:r=>(e&&(r=o.default.bold(r)),t&&(r=o.default.italic(r)),n&&(r=o.default.underline(r)),i&&(r=o.default.strikethrough(r)),a&&(r=a(r)),r)},u);a.propTypes={bold:i.default.bool,italic:i.default.bool,underline:i.default.bool,strikethrough:i.default.bool,children:i.default.node.isRequired,unstable__transformChildren:i.default.func},a.defaultProps={bold:!1,italic:!1,underline:!1,strikethrough:!1,unstable__transformChildren:void 0};var l=a;t.default=l},3976:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createTextNode=t.setAttribute=t.removeChildNode=t.insertBeforeNode=t.appendStaticNode=t.appendChildNode=t.createNode=void 0;t.createNode=e=>({nodeName:e.toUpperCase(),style:{},attributes:{},childNodes:[],parentNode:null});t.appendChildNode=(e,t)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e,e.childNodes.push(t)};t.appendStaticNode=(e,t)=>{e.childNodes.push(t)};t.insertBeforeNode=(e,t,r)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e;const i=e.childNodes.indexOf(r);i>=0?e.childNodes.splice(i,0,t):e.childNodes.push(t)};const n=(e,t)=>{t.parentNode=null;const n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1)};t.removeChildNode=n;t.setAttribute=(e,t,n)=>{e.attributes[t]=n};t.createTextNode=e=>({nodeName:"#text",nodeValue:e})},4431:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.getComputedWidth()-2*e.getComputedPadding()},4930:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"render",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Box",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"Text",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"Color",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"AppContext",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"StdinContext",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"StdoutContext",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"Static",{enumerable:!0,get:function(){return c.default}});var r=f(n(4763)),i=f(n(522)),o=f(n(4127)),u=f(n(3862)),a=f(n(4974)),l=f(n(7454)),s=f(n(3742)),c=f(n(8075));function f(e){return e&&e.__esModule?e:{default:e}}},7018:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(7382)),i=h(n(4623)),o=h(n(2939)),u=h(n(4046)),a=h(n(2738)),l=h(n(6458)),s=h(n(7190)),c=h(n(9646)),f=n(3976),d=h(n(4455)),p=h(n(1752));function h(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){(0,o.default)(this),this.options=e,this.rootNode=(0,f.createNode)("root"),this.rootNode.onRender=this.onRender,this.renderer=(0,c.default)({terminalWidth:e.stdout.columns}),this.log=u.default.create(e.stdout),this.throttledLog=e.debug?this.log:(0,i.default)(this.log,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=s.default.createContainer(this.rootNode,!1,!1),this.exitPromise=new Promise((e,t)=>{this.resolveExitPromise=e,this.rejectExitPromise=t}),this.unsubscribeExit=(0,l.default)(this.unmount,{alwaysLast:!1})}onRender(){if(this.isUnmounted)return;const{output:e,staticOutput:t}=this.renderer(this.rootNode),n=t&&"\n"!==t;if(this.options.debug)return n&&(this.fullStaticOutput+=t),void this.options.stdout.write(this.fullStaticOutput+e);n&&(a.default||this.log.clear(),this.options.stdout.write(t),a.default||this.log(e)),e!==this.lastOutput&&(a.default||this.throttledLog(e),this.lastOutput=e)}render(e){const t=r.default.createElement(p.default,{stdin:this.options.stdin,stdout:this.options.stdout,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);s.default.updateContainer(t,this.container)}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),a.default?this.options.stdout.write(this.lastOutput+"\n"):this.options.debug||this.log.done(),this.isUnmounted=!0,s.default.updateContainer(null,this.container),d.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise}}},4455:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new WeakMap;t.default=n},3425:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(128))&&r.__esModule?r:{default:r};t.default=e=>({width:(0,i.default)(e),height:e.split("\n").length})},6734:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(2989)),i=o(n(7498));function o(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor({width:e,height:t}){const n=[];for(let r=0;r<t;r++)n.push(" ".repeat(e));this.output=n}write(e,t,n,{transformers:o}){if(!n)return;const u=n.split("\n");let a=0;for(let n of u){const u=(0,r.default)(n),l=this.output[t+a];if(l){for(const e of o)n=e(n);this.output[t+a]=(0,i.default)(l,0,e)+n+(0,i.default)(l,e+u),a++}}}get(){return this.output.map(e=>e.trimRight()).join("\n")}}},7190:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(5201),o=(r=n(9437))&&r.__esModule?r:{default:r},u=n(3976);const a={schedulePassiveEffects:i.unstable_scheduleCallback,cancelPassiveEffects:i.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>!0,prepareForCommit:()=>{},resetAfterCommit:e=>{e.onRender()},getChildHostContext:()=>!0,shouldSetTextContent:(e,t)=>"string"==typeof t.children||"number"==typeof t.children,createInstance:(e,t)=>{const n=(0,u.createNode)(e);for(const[r,i]of Object.entries(t))if("children"===r){if("string"==typeof i||"number"==typeof i){if("div"===e){const e=(0,u.createNode)("div");e.textContent=String(i),(0,u.appendChildNode)(n,e)}"span"===e&&(n.textContent=String(i))}}else"style"===r?Object.assign(n.style,i):"unstable__transformChildren"===r?n.unstable__transformChildren=i:"unstable__static"===r?n.unstable__static=!0:(0,u.setAttribute)(n,r,i);return n},createTextInstance:u.createTextNode,resetTextContent:e=>{if(e.textContent&&(e.textContent=""),e.childNodes.length>0)for(const t of e.childNodes)t.yogaNode.free(),(0,u.removeChildNode)(e,t)},getPublicInstance:e=>e,appendInitialChild:u.appendChildNode,appendChild:u.appendChildNode,insertBefore:u.insertBeforeNode,finalizeInitialChildren:()=>{},supportsMutation:!0,appendChildToContainer:u.appendChildNode,insertInContainerBefore:u.insertBeforeNode,removeChildFromContainer:u.removeChildNode,prepareUpdate:()=>!0,commitUpdate:(e,t,n,r,i)=>{for(const[t,r]of Object.entries(i))if("children"===t){if("string"==typeof r||"number"==typeof r){if("div"===n)if(0===e.childNodes.length){const t=(0,u.createNode)("div");t.textContent=String(r),(0,u.appendChildNode)(e,t)}else e.childNodes[0].textContent=String(r);"span"===n&&(e.textContent=String(r))}}else"style"===t?Object.assign(e.style,r):"unstable__transformChildren"===t?e.unstable__transformChildren=r:"unstable__static"===t?e.unstable__static=!0:(0,u.setAttribute)(e,t,r)},commitTextUpdate:(e,t,n)=>{"#text"===e.nodeName?e.nodeValue=n:e.textContent=n},removeChild:u.removeChildNode};var l=(0,o.default)(a);t.default=l},3496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(128)),i=u(n(335)),o=u(n(4431));function u(e){return e&&e.__esModule?e:{default:e}}const a=e=>{if("#text"===e.nodeName)return!0;if("SPAN"===e.nodeName){if(e.textContent)return!0;if(Array.isArray(e.childNodes))return e.childNodes.every(a)}return!1},l=e=>{let t="";for(const n of e.childNodes){let e;"#text"===n.nodeName&&(e=n.nodeValue),"SPAN"===n.nodeName&&(e=n.textContent||l(n)),n.unstable__transformChildren&&(e=n.unstable__transformChildren(e)),t+=e}return t},s=(e,t,{offsetX:n=0,offsetY:u=0,transformers:c=[],skipStaticElements:f})=>{if(e.unstable__static&&f)return;const{yogaNode:d}=e,p=n+d.getComputedLeft(),h=u+d.getComputedTop();let m=c;if(e.unstable__transformChildren&&(m=[e.unstable__transformChildren,...c]),e.textContent){let n=e.textContent;if(e.parentNode.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(e.parentNode.yogaNode);t>u&&(n=(0,i.default)(n,u,{textWrap:e.parentNode.style.textWrap}))}t.write(p,h,n,{transformers:m})}else if("#text"!==e.nodeName){if(Array.isArray(e.childNodes)&&e.childNodes.length>0){if("row"===e.style.flexDirection&&e.childNodes.every(a)){let n=l(e);if(e.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(d);t>u&&(n=(0,i.default)(n,u,{textWrap:e.style.textWrap}))}return void t.write(p,h,n,{transformers:m})}for(const n of e.childNodes)s(n,t,{offsetX:p,offsetY:h,transformers:m,skipStaticElements:f})}}else t.write(p,h,e.nodeValue,{transformers:m})};var c=s;t.default=c},4763:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(7018)),i=o(n(4455));function o(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=(e,t={})=>{let n;return"function"==typeof t.write&&(t={stdout:t,stdin:process.stdin}),t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){u(e,t,n[t])}))}return e}({stdout:process.stdout,stdin:process.stdin,debug:!1,exitOnCtrlC:!0},t),i.default.has(t.stdout)?n=i.default.get(t.stdout):(n=new r.default(t),i.default.set(t.stdout,n)),n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>i.default.delete(t.stdout)}}},9646:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(2821)),i=f(n(6734)),o=n(3976),u=f(n(1)),a=f(n(3496)),l=f(n(3425)),s=f(n(335)),c=f(n(4431));function f(e){return e&&e.__esModule?e:{default:e}}const d=e=>{if(e.textContent&&"string"==typeof e.parentNode.style.textWrap){const{yogaNode:t}=e,n=e.parentNode.yogaNode,r=(0,c.default)(n);if(t.getComputedWidth()>r){const{textWrap:n}=e.parentNode.style,i=(0,s.default)(e.textContent,r,{textWrap:n}),{width:o,height:u}=(0,l.default)(i);t.setWidth(o),t.setHeight(u)}}else if(Array.isArray(e.childNodes)&&e.childNodes.length>0)for(const t of e.childNodes)d(t)},p=e=>{const t=[];for(const n of e.childNodes)n.unstable__static&&t.push(n),Array.isArray(n.childNodes)&&n.childNodes.length>0&&t.push(...p(n));return t};t.default=({terminalWidth:e})=>{const t=r.default.Config.create();let n,l;return s=>{n&&n.freeRecursive(),l&&l.freeRecursive();const c=p(s);let f;if(c.length,1===c.length){const n=(0,o.createNode)("root");(0,o.appendStaticNode)(n,c[0]);const{yogaNode:s}=(0,u.default)(n,{config:t,terminalWidth:e,skipStaticElements:!1});s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(n),s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),l=s,f=new i.default({width:s.getComputedWidth(),height:s.getComputedHeight()}),(0,a.default)(n,f,{skipStaticElements:!1})}const{yogaNode:h}=(0,u.default)(s,{config:t,terminalWidth:e,skipStaticElements:!0});h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(s),h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),n=h;const m=new i.default({width:h.getComputedWidth(),height:h.getComputedHeight()});return(0,a.default)(s,m,{skipStaticElements:!0}),{output:m.get(),staticOutput:f?f.get()+"\n":void 0}}}},335:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(5449)),i=o(n(4093));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,{textWrap:n}={})=>{if("wrap"===n)return(0,r.default)(e,t,{trim:!1,hard:!0});if(String(n).startsWith("truncate")){let r;return"truncate"!==n&&"truncate-end"!==n||(r="end"),"truncate-middle"===n&&(r="middle"),"truncate-start"===n&&(r="start"),(0,i.default)(e,t,{position:r})}return e}},5591:(e,t,n)=>{
+/** @license React v0.20.4
+ * react-reconciler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+e.exports=function t(r){"use strict";var i=n(9381),o=n(7382),u=n(5201);function a(e,t,n,r,i,o,u,a){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,o,u,a],s=0;(e=Error(t.replace(/%s/g,(function(){return l[s++]})))).name="Invariant Violation"}throw e.framesToPop=1,e}}function l(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);a(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}var s=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;s.hasOwnProperty("ReactCurrentDispatcher")||(s.ReactCurrentDispatcher={current:null});var c="function"==typeof Symbol&&Symbol.for,f=c?Symbol.for("react.element"):60103,d=c?Symbol.for("react.portal"):60106,p=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,m=c?Symbol.for("react.profiler"):60114,v=c?Symbol.for("react.provider"):60109,b=c?Symbol.for("react.context"):60110,g=c?Symbol.for("react.concurrent_mode"):60111,_=c?Symbol.for("react.forward_ref"):60112,y=c?Symbol.for("react.suspense"):60113,D=c?Symbol.for("react.memo"):60115,w=c?Symbol.for("react.lazy"):60116,E="function"==typeof Symbol&&Symbol.iterator;function C(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=E&&e[E]||e["@@iterator"])?e:null}function T(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"ConcurrentMode";case p:return"Fragment";case d:return"Portal";case m:return"Profiler";case h:return"StrictMode";case y:return"Suspense"}if("object"==typeof e)switch(e.$$typeof){case b:return"Context.Consumer";case v:return"Context.Provider";case _:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case D:return T(e.type);case w:if(e=1===e._status?e._result:null)return T(e)}return null}function k(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function S(e){2!==k(e)&&l("188")}function M(e){var t=e.alternate;if(!t)return 3===(t=k(e))&&l("188"),1===t?null:e;for(var n=e,r=t;;){var i=n.return,o=i?i.alternate:null;if(!i||!o)break;if(i.child===o.child){for(var u=i.child;u;){if(u===n)return S(i),e;if(u===r)return S(i),t;u=u.sibling}l("188")}if(n.return!==r.return)n=i,r=o;else{u=!1;for(var a=i.child;a;){if(a===n){u=!0,n=i,r=o;break}if(a===r){u=!0,r=i,n=o;break}a=a.sibling}if(!u){for(a=o.child;a;){if(a===n){u=!0,n=o,r=i;break}if(a===r){u=!0,r=o,n=i;break}a=a.sibling}u||l("189")}}n.alternate!==r&&l("190")}return 3!==n.tag&&l("188"),n.stateNode.current===n?e:t}function x(e){if(!(e=M(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var A=r.getPublicInstance,P=r.getRootHostContext,O=r.getChildHostContext,R=r.prepareForCommit,N=r.resetAfterCommit,I=r.createInstance,F=r.appendInitialChild,B=r.finalizeInitialChildren,L=r.prepareUpdate,U=r.shouldSetTextContent,j=r.shouldDeprioritizeSubtree,W=r.createTextInstance,z=r.scheduleDeferredCallback,q=r.cancelDeferredCallback,H=r.shouldYield,G=r.setTimeout,V=r.clearTimeout,Y=r.noTimeout,K=r.schedulePassiveEffects,$=r.cancelPassiveEffects,X=r.now,J=r.isPrimaryRenderer,Q=r.supportsMutation,Z=r.supportsPersistence,ee=r.supportsHydration,te=r.appendChild,ne=r.appendChildToContainer,re=r.commitTextUpdate,ie=r.commitMount,oe=r.commitUpdate,ue=r.insertBefore,ae=r.insertInContainerBefore,le=r.removeChild,se=r.removeChildFromContainer,ce=r.resetTextContent,fe=r.hideInstance,de=r.hideTextInstance,pe=r.unhideInstance,he=r.unhideTextInstance,me=r.cloneInstance,ve=r.createContainerChildSet,be=r.appendChildToContainerChildSet,ge=r.finalizeContainerChildren,_e=r.replaceContainerChildren,ye=r.cloneHiddenInstance,De=r.cloneUnhiddenInstance,we=r.createHiddenTextInstance,Ee=r.canHydrateInstance,Ce=r.canHydrateTextInstance,Te=r.getNextHydratableSibling,ke=r.getFirstHydratableChild,Se=r.hydrateInstance,Me=r.hydrateTextInstance,xe=/^(.*)[\\\/]/;function Ae(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,o=T(e.type);n=null,r&&(n=T(r.type)),r=o,o="",i?o=" (at "+i.fileName.replace(xe,"")+":"+i.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n    in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}new Set;var Pe=[],Oe=-1;function Re(e){0>Oe||(e.current=Pe[Oe],Pe[Oe]=null,Oe--)}function Ne(e,t){Oe++,Pe[Oe]=e.current,e.current=t}var Ie={},Fe={current:Ie},Be={current:!1},Le=Ie;function Ue(e,t){var n=e.type.contextTypes;if(!n)return Ie;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function je(e){return null!=(e=e.childContextTypes)}function We(e){Re(Be),Re(Fe)}function ze(e){Re(Be),Re(Fe)}function qe(e,t,n){Fe.current!==Ie&&l("168"),Ne(Fe,t),Ne(Be,n)}function He(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())o in e||l("108",T(t)||"Unknown",o);return i({},n,r)}function Ge(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Ie,Le=Fe.current,Ne(Fe,t),Ne(Be,Be.current),!0}function Ve(e,t,n){var r=e.stateNode;r||l("169"),n?(t=He(e,t,Le),r.__reactInternalMemoizedMergedChildContext=t,Re(Be),Re(Fe),Ne(Fe,t)):Re(Be),Ne(Be,n)}var Ye=null,Ke=null;function $e(e){return function(t){try{return e(t)}catch(e){}}}function Xe(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Je(e,t,n,r){return new Xe(e,t,n,r)}function Qe(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ze(e,t){var n=e.alternate;return null===n?((n=Je(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function et(e,t,n,r,i,o){var u=2;if(r=e,"function"==typeof e)Qe(e)&&(u=1);else if("string"==typeof e)u=5;else e:switch(e){case p:return tt(n.children,i,o,t);case g:return nt(n,3|i,o,t);case h:return nt(n,2|i,o,t);case m:return(e=Je(12,n,t,4|i)).elementType=m,e.type=m,e.expirationTime=o,e;case y:return(e=Je(13,n,t,i)).elementType=y,e.type=y,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case v:u=10;break e;case b:u=9;break e;case _:u=11;break e;case D:u=14;break e;case w:u=16,r=null;break e}l("130",null==e?e:typeof e,"")}return(t=Je(u,n,t,i)).elementType=e,t.type=r,t.expirationTime=o,t}function tt(e,t,n,r){return(e=Je(7,e,r,t)).expirationTime=n,e}function nt(e,t,n,r){return e=Je(8,e,r,t),t=0==(1&t)?h:g,e.elementType=t,e.type=t,e.expirationTime=n,e}function rt(e,t,n){return(e=Je(6,e,null,t)).expirationTime=n,e}function it(e,t,n){return(t=Je(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ot(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:n<t?e.earliestPendingTime=t:e.latestPendingTime>t&&(e.latestPendingTime=t),lt(t,e)}function ut(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:n<t?e.earliestSuspendedTime=t:r>t&&(e.latestSuspendedTime=t),lt(t,e)}function at(e,t){var n=e.earliestPendingTime;return n>t&&(t=n),(e=e.earliestSuspendedTime)>t&&(t=e),t}function lt(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,i=t.earliestPendingTime,o=t.latestPingedTime;0===(i=0!==i?i:o)&&(0===e||r<e)&&(i=r),0!==(e=i)&&n>e&&(e=n),t.nextExpirationTimeToWorkOn=i,t.expirationTime=e}function st(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var ct=Object.prototype.hasOwnProperty;function ft(e,t){if(st(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ct.call(t,n[r])||!st(e[n[r]],t[n[r]]))return!1;return!0}function dt(e,t){if(e&&e.defaultProps)for(var n in t=i({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var pt=(new o.Component).refs;function ht(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:i({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var mt={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===k(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=Si(),i=Xn(r=Qr(r,e));i.payload=t,null!=n&&(i.callback=n),Vr(),Qn(e,i),ni(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=Si(),i=Xn(r=Qr(r,e));i.tag=Gn,i.payload=t,null!=n&&(i.callback=n),Vr(),Qn(e,i),ni(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=Si(),r=Xn(n=Qr(n,e));r.tag=Vn,null!=t&&(r.callback=t),Vr(),Qn(e,r),ni(e,n)}};function vt(e,t,n,r,i,o,u){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,u):!t.prototype||!t.prototype.isPureReactComponent||(!ft(n,r)||!ft(i,o))}function bt(e,t,n){var r=!1,i=Ie,o=t.contextType;return"object"==typeof o&&null!==o?o=Hn(o):(i=je(t)?Le:Fe.current,o=(r=null!=(r=t.contextTypes))?Ue(e,i):Ie),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mt,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function gt(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&mt.enqueueReplaceState(t,t.state,null)}function _t(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs=pt;var o=t.contextType;"object"==typeof o&&null!==o?i.context=Hn(o):(o=je(t)?Le:Fe.current,i.context=Ue(e,o)),null!==(o=e.updateQueue)&&(nr(e,o,n,i,r),i.state=e.memoizedState),"function"==typeof(o=t.getDerivedStateFromProps)&&(ht(e,t,o,n),i.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof i.getSnapshotBeforeUpdate||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||(t=i.state,"function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&mt.enqueueReplaceState(i,i.state,null),null!==(o=e.updateQueue)&&(nr(e,o,n,i,r),i.state=e.memoizedState)),"function"==typeof i.componentDidMount&&(e.effectTag|=4)}var yt=Array.isArray;function Dt(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;n&&(1!==n.tag&&l("309"),r=n.stateNode),r||l("147",e);var i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:((t=function(e){var t=r.refs;t===pt&&(t=r.refs={}),null===e?delete t[i]:t[i]=e})._stringRef=i,t)}"string"!=typeof e&&l("284"),n._owner||l("290",e)}return e}function wt(e,t){"textarea"!==e.type&&l("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Et(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t,n){return(e=Ze(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function u(t){return e&&null===t.alternate&&(t.effectTag=2),t}function a(e,t,n,r){return null===t||6!==t.tag?((t=rt(n,e.mode,r)).return=e,t):((t=i(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=i(t,n.props)).ref=Dt(e,t,n),r.return=e,r):((r=et(n.type,n.key,n.props,null,e.mode,r)).ref=Dt(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=it(n,e.mode,r)).return=e,t):((t=i(t,n.children||[])).return=e,t)}function h(e,t,n,r,o){return null===t||7!==t.tag?((t=tt(n,e.mode,r,o)).return=e,t):((t=i(t,n)).return=e,t)}function m(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=rt(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case f:return(n=et(t.type,t.key,t.props,null,e.mode,n)).ref=Dt(e,null,t),n.return=e,n;case d:return(t=it(t,e.mode,n)).return=e,t}if(yt(t)||C(t))return(t=tt(t,e.mode,n,null)).return=e,t;wt(e,t)}return null}function v(e,t,n,r){var i=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==i?null:a(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case f:return n.key===i?n.type===p?h(e,t,n.props.children,r,i):s(e,t,n,r):null;case d:return n.key===i?c(e,t,n,r):null}if(yt(n)||C(n))return null!==i?null:h(e,t,n,r,null);wt(e,n)}return null}function b(e,t,n,r,i){if("string"==typeof r||"number"==typeof r)return a(t,e=e.get(n)||null,""+r,i);if("object"==typeof r&&null!==r){switch(r.$$typeof){case f:return e=e.get(null===r.key?n:r.key)||null,r.type===p?h(t,e,r.props.children,i,r.key):s(t,e,r,i);case d:return c(t,e=e.get(null===r.key?n:r.key)||null,r,i)}if(yt(r)||C(r))return h(t,e=e.get(n)||null,r,i,null);wt(t,r)}return null}function g(i,u,a,l){for(var s=null,c=null,f=u,d=u=0,p=null;null!==f&&d<a.length;d++){f.index>d?(p=f,f=null):p=f.sibling;var h=v(i,f,a[d],l);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&t(i,f),u=o(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===a.length)return n(i,f),s;if(null===f){for(;d<a.length;d++)(f=m(i,a[d],l))&&(u=o(f,u,d),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(i,f);d<a.length;d++)(p=b(f,i,d,a[d],l))&&(e&&null!==p.alternate&&f.delete(null===p.key?d:p.key),u=o(p,u,d),null===c?s=p:c.sibling=p,c=p);return e&&f.forEach((function(e){return t(i,e)})),s}function _(i,u,a,s){var c=C(a);"function"!=typeof c&&l("150"),null==(a=c.call(a))&&l("151");for(var f=c=null,d=u,p=u=0,h=null,g=a.next();null!==d&&!g.done;p++,g=a.next()){d.index>p?(h=d,d=null):h=d.sibling;var _=v(i,d,g.value,s);if(null===_){d||(d=h);break}e&&d&&null===_.alternate&&t(i,d),u=o(_,u,p),null===f?c=_:f.sibling=_,f=_,d=h}if(g.done)return n(i,d),c;if(null===d){for(;!g.done;p++,g=a.next())null!==(g=m(i,g.value,s))&&(u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return c}for(d=r(i,d);!g.done;p++,g=a.next())null!==(g=b(d,i,p,g.value,s))&&(e&&null!==g.alternate&&d.delete(null===g.key?p:g.key),u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return e&&d.forEach((function(e){return t(i,e)})),c}return function(e,r,o,a){var s="object"==typeof o&&null!==o&&o.type===p&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case f:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?o.type===p:s.elementType===o.type){n(e,s.sibling),(r=i(s,o.type===p?o.props.children:o.props)).ref=Dt(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===p?((r=tt(o.props.children,e.mode,a,o.key)).return=e,e=r):((a=et(o.type,o.key,o.props,null,e.mode,a)).ref=Dt(e,r,o),a.return=e,e=a)}return u(e);case d:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=it(o,e.mode,a)).return=e,e=r}return u(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=rt(o,e.mode,a)).return=e,e=r),u(e);if(yt(o))return g(e,r,o,a);if(C(o))return _(e,r,o,a);if(c&&wt(e,o),void 0===o&&!s)switch(e.tag){case 1:case 0:l("152",(a=e.type).displayName||a.name||"Component")}return n(e,r)}}var Ct=Et(!0),Tt=Et(!1),kt={},St={current:kt},Mt={current:kt},xt={current:kt};function At(e){return e===kt&&l("174"),e}function Pt(e,t){Ne(xt,t),Ne(Mt,e),Ne(St,kt),t=P(t),Re(St),Ne(St,t)}function Ot(e){Re(St),Re(Mt),Re(xt)}function Rt(){return At(St.current)}function Nt(e){var t=At(xt.current),n=At(St.current);n!==(t=O(n,e.type,t))&&(Ne(Mt,e),Ne(St,t))}function It(e){Mt.current===e&&(Re(St),Re(Mt))}var Ft=s.ReactCurrentDispatcher,Bt=0,Lt=null,Ut=null,jt=null,Wt=null,zt=null,qt=null,Ht=0,Gt=null,Vt=0,Yt=!1,Kt=null,$t=0;function Xt(){l("321")}function Jt(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!st(e[n],t[n]))return!1;return!0}function Qt(e,t,n,r,i,o){if(Bt=o,Lt=t,jt=null!==e?e.memoizedState:null,Ft.current=null===jt?dn:pn,t=n(r,i),Yt){do{Yt=!1,$t+=1,jt=null!==e?e.memoizedState:null,qt=Wt,Gt=zt=Ut=null,Ft.current=pn,t=n(r,i)}while(Yt);Kt=null,$t=0}return Ft.current=fn,(e=Lt).memoizedState=Wt,e.expirationTime=Ht,e.updateQueue=Gt,e.effectTag|=Vt,e=null!==Ut&&null!==Ut.next,Bt=0,qt=zt=Wt=jt=Ut=Lt=null,Ht=0,Gt=null,Vt=0,e&&l("300"),t}function Zt(){Ft.current=fn,Bt=0,qt=zt=Wt=jt=Ut=Lt=null,Ht=0,Gt=null,Vt=0,Yt=!1,Kt=null,$t=0}function en(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===zt?Wt=zt=e:zt=zt.next=e,zt}function tn(){if(null!==qt)qt=(zt=qt).next,jt=null!==(Ut=jt)?Ut.next:null;else{null===jt&&l("310");var e={memoizedState:(Ut=jt).memoizedState,baseState:Ut.baseState,queue:Ut.queue,baseUpdate:Ut.baseUpdate,next:null};zt=null===zt?Wt=e:zt.next=e,jt=Ut.next}return zt}function nn(e,t){return"function"==typeof t?t(e):t}function rn(e){var t=tn(),n=t.queue;if(null===n&&l("311"),n.lastRenderedReducer=e,0<$t){var r=n.dispatch;if(null!==Kt){var i=Kt.get(n);if(void 0!==i){Kt.delete(n);var o=t.memoizedState;do{o=e(o,i.action),i=i.next}while(null!==i);return st(o,t.memoizedState)||(Cn=!0),t.memoizedState=o,t.baseUpdate===n.last&&(t.baseState=o),n.lastRenderedState=o,[o,r]}}return[t.memoizedState,r]}r=n.last;var u=t.baseUpdate;if(o=t.baseState,null!==u?(null!==r&&(r.next=null),r=u.next):r=null!==r?r.next:null,null!==r){var a=i=null,s=r,c=!1;do{var f=s.expirationTime;f<Bt?(c||(c=!0,a=u,i=o),f>Ht&&(Ht=f)):o=s.eagerReducer===e?s.eagerState:e(o,s.action),u=s,s=s.next}while(null!==s&&s!==r);c||(a=u,i=o),st(o,t.memoizedState)||(Cn=!0),t.memoizedState=o,t.baseUpdate=a,t.baseState=i,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function on(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Gt?(Gt={lastEffect:null}).lastEffect=e.next=e:null===(t=Gt.lastEffect)?Gt.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Gt.lastEffect=e),e}function un(e,t,n,r){var i=en();Vt|=e,i.memoizedState=on(t,n,void 0,void 0===r?null:r)}function an(e,t,n,r){var i=tn();r=void 0===r?null:r;var o=void 0;if(null!==Ut){var u=Ut.memoizedState;if(o=u.destroy,null!==r&&Jt(r,u.deps))return void on(0,n,o,r)}Vt|=e,i.memoizedState=on(t,n,o,r)}function ln(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function sn(){}function cn(e,t,n){25>$t||l("301");var r=e.alternate;if(e===Lt||null!==r&&r===Lt)if(Yt=!0,e={expirationTime:Bt,action:n,eagerReducer:null,eagerState:null,next:null},null===Kt&&(Kt=new Map),void 0===(n=Kt.get(t)))Kt.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Vr();var i=Si(),o={expirationTime:i=Qr(i,e),action:n,eagerReducer:null,eagerState:null,next:null},u=t.last;if(null===u)o.next=o;else{var a=u.next;null!==a&&(o.next=a),u.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(o.eagerReducer=r,o.eagerState=c,st(c,s))return}catch(e){}ni(e,i)}}var fn={readContext:Hn,useCallback:Xt,useContext:Xt,useEffect:Xt,useImperativeHandle:Xt,useLayoutEffect:Xt,useMemo:Xt,useReducer:Xt,useRef:Xt,useState:Xt,useDebugValue:Xt},dn={readContext:Hn,useCallback:function(e,t){return en().memoizedState=[e,void 0===t?null:t],e},useContext:Hn,useEffect:function(e,t){return un(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,un(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return un(4,36,e,t)},useMemo:function(e,t){var n=en();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=en();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=cn.bind(null,Lt,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},en().memoizedState=e},useState:function(e){var t=en();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:nn,lastRenderedState:e}).dispatch=cn.bind(null,Lt,e),[t.memoizedState,e]},useDebugValue:sn},pn={readContext:Hn,useCallback:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Hn,useEffect:function(e,t){return an(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,an(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return an(4,36,e,t)},useMemo:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:rn,useRef:function(){return tn().memoizedState},useState:function(e){return rn(nn)},useDebugValue:sn},hn=null,mn=null,vn=!1;function bn(e,t){var n=Je(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function gn(e,t){switch(e.tag){case 5:return null!==(t=Ee(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Ce(t,e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function _n(e){if(vn){var t=mn;if(t){var n=t;if(!gn(e,t)){if(!(t=Te(n))||!gn(e,t))return e.effectTag|=2,vn=!1,void(hn=e);bn(hn,n)}hn=e,mn=ke(t)}else e.effectTag|=2,vn=!1,hn=e}}function yn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;hn=e}function Dn(e){if(!ee||e!==hn)return!1;if(!vn)return yn(e),vn=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!U(t,e.memoizedProps))for(t=mn;t;)bn(e,t),t=Te(t);return yn(e),mn=hn?Te(e.stateNode):null,!0}function wn(){ee&&(mn=hn=null,vn=!1)}var En=s.ReactCurrentOwner,Cn=!1;function Tn(e,t,n,r){t.child=null===e?Tt(t,null,n,r):Ct(t,e.child,n,r)}function kn(e,t,n,r,i){n=n.render;var o=t.ref;return qn(t,i),r=Qt(e,t,n,r,o,i),null===e||Cn?(t.effectTag|=1,Tn(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),In(e,t,i))}function Sn(e,t,n,r,i,o){if(null===e){var u=n.type;return"function"!=typeof u||Qe(u)||void 0!==u.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=et(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=u,Mn(e,t,u,r,i,o))}return u=e.child,i<o&&(i=u.memoizedProps,(n=null!==(n=n.compare)?n:ft)(i,r)&&e.ref===t.ref)?In(e,t,o):(t.effectTag|=1,(e=Ze(u,r)).ref=t.ref,e.return=t,t.child=e)}function Mn(e,t,n,r,i,o){return null!==e&&ft(e.memoizedProps,r)&&e.ref===t.ref&&(Cn=!1,i<o)?In(e,t,o):An(e,t,n,r,o)}function xn(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function An(e,t,n,r,i){var o=je(n)?Le:Fe.current;return o=Ue(t,o),qn(t,i),n=Qt(e,t,n,r,o,i),null===e||Cn?(t.effectTag|=1,Tn(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),In(e,t,i))}function Pn(e,t,n,r,i){if(je(n)){var o=!0;Ge(t)}else o=!1;if(qn(t,i),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),bt(t,n,r),_t(t,n,r,i),r=!0;else if(null===e){var u=t.stateNode,a=t.memoizedProps;u.props=a;var l=u.context,s=n.contextType;"object"==typeof s&&null!==s?s=Hn(s):s=Ue(t,s=je(n)?Le:Fe.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof u.getSnapshotBeforeUpdate;f||"function"!=typeof u.UNSAFE_componentWillReceiveProps&&"function"!=typeof u.componentWillReceiveProps||(a!==r||l!==s)&&gt(t,u,r,s),Yn=!1;var d=t.memoizedState;l=u.state=d;var p=t.updateQueue;null!==p&&(nr(t,p,r,u,i),l=t.memoizedState),a!==r||d!==l||Be.current||Yn?("function"==typeof c&&(ht(t,n,c,r),l=t.memoizedState),(a=Yn||vt(t,n,a,r,d,l,s))?(f||"function"!=typeof u.UNSAFE_componentWillMount&&"function"!=typeof u.componentWillMount||("function"==typeof u.componentWillMount&&u.componentWillMount(),"function"==typeof u.UNSAFE_componentWillMount&&u.UNSAFE_componentWillMount()),"function"==typeof u.componentDidMount&&(t.effectTag|=4)):("function"==typeof u.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=l),u.props=r,u.state=l,u.context=s,r=a):("function"==typeof u.componentDidMount&&(t.effectTag|=4),r=!1)}else u=t.stateNode,a=t.memoizedProps,u.props=t.type===t.elementType?a:dt(t.type,a),l=u.context,"object"==typeof(s=n.contextType)&&null!==s?s=Hn(s):s=Ue(t,s=je(n)?Le:Fe.current),(f="function"==typeof(c=n.getDerivedStateFromProps)||"function"==typeof u.getSnapshotBeforeUpdate)||"function"!=typeof u.UNSAFE_componentWillReceiveProps&&"function"!=typeof u.componentWillReceiveProps||(a!==r||l!==s)&&gt(t,u,r,s),Yn=!1,l=t.memoizedState,d=u.state=l,null!==(p=t.updateQueue)&&(nr(t,p,r,u,i),d=t.memoizedState),a!==r||l!==d||Be.current||Yn?("function"==typeof c&&(ht(t,n,c,r),d=t.memoizedState),(c=Yn||vt(t,n,a,r,l,d,s))?(f||"function"!=typeof u.UNSAFE_componentWillUpdate&&"function"!=typeof u.componentWillUpdate||("function"==typeof u.componentWillUpdate&&u.componentWillUpdate(r,d,s),"function"==typeof u.UNSAFE_componentWillUpdate&&u.UNSAFE_componentWillUpdate(r,d,s)),"function"==typeof u.componentDidUpdate&&(t.effectTag|=4),"function"==typeof u.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof u.componentDidUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof u.getSnapshotBeforeUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),u.props=r,u.state=d,u.context=s,r=c):("function"!=typeof u.componentDidUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof u.getSnapshotBeforeUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),r=!1);return On(e,t,n,r,o,i)}function On(e,t,n,r,i,o){xn(e,t);var u=0!=(64&t.effectTag);if(!r&&!u)return i&&Ve(t,n,!1),In(e,t,o);r=t.stateNode,En.current=t;var a=u&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&u?(t.child=Ct(t,e.child,null,o),t.child=Ct(t,null,a,o)):Tn(e,t,a,o),t.memoizedState=r.state,i&&Ve(t,n,!0),t.child}function Rn(e){var t=e.stateNode;t.pendingContext?qe(0,t.pendingContext,t.pendingContext!==t.context):t.context&&qe(0,t.context,!1),Pt(e,t.containerInfo)}function Nn(e,t,n){var r=t.mode,i=t.pendingProps,o=t.memoizedState;if(0==(64&t.effectTag)){o=null;var u=!1}else o={timedOutAt:null!==o?o.timedOutAt:0},u=!0,t.effectTag&=-65;if(null===e)if(u){var a=i.fallback;e=tt(null,r,0,null),0==(1&t.mode)&&(e.child=null!==t.memoizedState?t.child.child:t.child),r=tt(a,r,n,null),e.sibling=r,(n=e).return=r.return=t}else n=r=Tt(t,null,i.children,n);else null!==e.memoizedState?(a=(r=e.child).sibling,u?(n=i.fallback,i=Ze(r,r.pendingProps),0==(1&t.mode)&&((u=null!==t.memoizedState?t.child.child:t.child)!==r.child&&(i.child=u)),r=i.sibling=Ze(a,n,a.expirationTime),n=i,i.childExpirationTime=0,n.return=r.return=t):n=r=Ct(t,r.child,i.children,n)):(a=e.child,u?(u=i.fallback,(i=tt(null,r,0,null)).child=a,0==(1&t.mode)&&(i.child=null!==t.memoizedState?t.child.child:t.child),(r=i.sibling=tt(u,r,n,null)).effectTag|=2,n=i,i.childExpirationTime=0,n.return=r.return=t):r=n=Ct(t,a,i.children,n)),t.stateNode=e.stateNode;return t.memoizedState=o,t.child=n,r}function In(e,t,n){if(null!==e&&(t.contextDependencies=e.contextDependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child&&l("153"),null!==t.child){for(n=Ze(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ze(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function Fn(e,t,n){var r=t.expirationTime;if(null!==e){if(e.memoizedProps!==t.pendingProps||Be.current)Cn=!0;else if(r<n){switch(Cn=!1,t.tag){case 3:Rn(t),wn();break;case 5:Nt(t);break;case 1:je(t.type)&&Ge(t);break;case 4:Pt(t,t.stateNode.containerInfo);break;case 10:Wn(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?Nn(e,t,n):null!==(t=In(e,t,n))?t.sibling:null}return In(e,t,n)}}else Cn=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=Ue(t,Fe.current);if(qn(t,n),i=Qt(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,Zt(),je(r)){var o=!0;Ge(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var u=r.getDerivedStateFromProps;"function"==typeof u&&ht(t,r,u,e),i.updater=mt,t.stateNode=i,i._reactInternalFiber=t,_t(t,r,e,n),t=On(null,t,r,!0,o,n)}else t.tag=0,Tn(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),o=t.pendingProps,e=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(i),t.type=e,i=t.tag=function(e){if("function"==typeof e)return Qe(e)?1:0;if(null!=e){if((e=e.$$typeof)===_)return 11;if(e===D)return 14}return 2}(e),o=dt(e,o),u=void 0,i){case 0:u=An(null,t,e,o,n);break;case 1:u=Pn(null,t,e,o,n);break;case 11:u=kn(null,t,e,o,n);break;case 14:u=Sn(null,t,e,dt(e.type,o),r,n);break;default:l("306",e,"")}return u;case 0:return r=t.type,i=t.pendingProps,An(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 1:return r=t.type,i=t.pendingProps,Pn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 3:return Rn(t),null===(r=t.updateQueue)&&l("282"),i=null!==(i=t.memoizedState)?i.element:null,nr(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?(wn(),t=In(e,t,n)):(i=t.stateNode,(i=(null===e||null===e.child)&&i.hydrate)&&(ee?(mn=ke(t.stateNode.containerInfo),hn=t,i=vn=!0):i=!1),i?(t.effectTag|=2,t.child=Tt(t,null,r,n)):(Tn(e,t,r,n),wn()),t=t.child),t;case 5:return Nt(t),null===e&&_n(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,u=i.children,U(r,i)?u=null:null!==o&&U(r,o)&&(t.effectTag|=16),xn(e,t),1!==n&&1&t.mode&&j(r,i)?(t.expirationTime=t.childExpirationTime=1,t=null):(Tn(e,t,u,n),t=t.child),t;case 6:return null===e&&_n(t),null;case 13:return Nn(e,t,n);case 4:return Pt(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ct(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,kn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,u=t.memoizedProps,Wn(t,o=i.value),null!==u){var a=u.value;if(0===(o=st(a,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(a,o):1073741823))){if(u.children===i.children&&!Be.current){t=In(e,t,n);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var s=a.contextDependencies;if(null!==s){u=a.child;for(var c=s.first;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===a.tag&&((c=Xn(n)).tag=Vn,Qn(a,c)),a.expirationTime<n&&(a.expirationTime=n),null!==(c=a.alternate)&&c.expirationTime<n&&(c.expirationTime=n),c=n;for(var f=a.return;null!==f;){var d=f.alternate;if(f.childExpirationTime<c)f.childExpirationTime=c,null!==d&&d.childExpirationTime<c&&(d.childExpirationTime=c);else{if(!(null!==d&&d.childExpirationTime<c))break;d.childExpirationTime=c}f=f.return}s.expirationTime<n&&(s.expirationTime=n);break}c=c.next}}else u=10===a.tag&&a.type===t.type?null:a.child;if(null!==u)u.return=a;else for(u=a;null!==u;){if(u===t){u=null;break}if(null!==(a=u.sibling)){a.return=u.return,u=a;break}u=u.return}a=u}}Tn(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=(o=t.pendingProps).children,qn(t,n),r=r(i=Hn(i,o.unstable_observedBits)),t.effectTag|=1,Tn(e,t,r,n),t.child;case 14:return o=dt(i=t.type,t.pendingProps),Sn(e,t,i,o=dt(i.type,o),r,n);case 15:return Mn(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,je(r)?(e=!0,Ge(t)):e=!1,qn(t,n),bt(t,r,i),_t(t,r,i,n),On(null,t,r,!0,e,n)}l("156")}var Bn={current:null},Ln=null,Un=null,jn=null;function Wn(e,t){var n=e.type._context;J?(Ne(Bn,n._currentValue),n._currentValue=t):(Ne(Bn,n._currentValue2),n._currentValue2=t)}function zn(e){var t=Bn.current;Re(Bn),e=e.type._context,J?e._currentValue=t:e._currentValue2=t}function qn(e,t){Ln=e,jn=Un=null;var n=e.contextDependencies;null!==n&&n.expirationTime>=t&&(Cn=!0),e.contextDependencies=null}function Hn(e,t){return jn!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(jn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Un?(null===Ln&&l("308"),Un=t,Ln.contextDependencies={first:t,expirationTime:0}):Un=Un.next=t),J?e._currentValue:e._currentValue2}var Gn=1,Vn=2,Yn=!1;function Kn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $n(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Xn(e){return{expirationTime:e,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Jn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Qn(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Kn(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Kn(e.memoizedState),i=n.updateQueue=Kn(n.memoizedState)):r=e.updateQueue=$n(i):null===i&&(i=n.updateQueue=$n(r));null===i||r===i?Jn(r,t):null===r.lastUpdate||null===i.lastUpdate?(Jn(r,t),Jn(i,t)):(Jn(r,t),i.lastUpdate=t)}function Zn(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Kn(e.memoizedState):er(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function er(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=$n(t)),t}function tr(e,t,n,r,o,u){switch(n.tag){case Gn:return"function"==typeof(e=n.payload)?e.call(u,r,o):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(o="function"==typeof(e=n.payload)?e.call(u,r,o):e))break;return i({},r,o);case Vn:Yn=!0}return r}function nr(e,t,n,r,i){Yn=!1;for(var o=(t=er(e,t)).baseState,u=null,a=0,l=t.firstUpdate,s=o;null!==l;){var c=l.expirationTime;c<i?(null===u&&(u=l,o=s),a<c&&(a=c)):(s=tr(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=l:(t.lastEffect.nextEffect=l,t.lastEffect=l))),l=l.next}for(c=null,l=t.firstCapturedUpdate;null!==l;){var f=l.expirationTime;f<i?(null===c&&(c=l,null===u&&(o=s)),a<f&&(a=f)):(s=tr(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=l:(t.lastCapturedEffect.nextEffect=l,t.lastCapturedEffect=l))),l=l.next}null===u&&(t.lastUpdate=null),null===c?t.lastCapturedUpdate=null:e.effectTag|=32,null===u&&null===c&&(o=s),t.baseState=o,t.firstUpdate=u,t.firstCapturedUpdate=c,e.expirationTime=a,e.memoizedState=s}function rr(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),ir(t.firstEffect,n),t.firstEffect=t.lastEffect=null,ir(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function ir(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;"function"!=typeof n&&l("191",n),n.call(r)}e=e.nextEffect}}function or(e,t){return{value:e,source:t,stack:Ae(t)}}function ur(e){e.effectTag|=4}var ar=void 0,lr=void 0,sr=void 0,cr=void 0;if(Q)ar=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)F(e,n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},lr=function(){},sr=function(e,t,n,r,i){if((e=e.memoizedProps)!==r){var o=t.stateNode,u=Rt();n=L(o,n,e,r,i,u),(t.updateQueue=n)&&ur(t)}},cr=function(e,t,n,r){n!==r&&ur(t)};else if(Z){ar=function(e,t,n,r){for(var i=t.child;null!==i;){e:if(5===i.tag){var o=i.stateNode;if(n){var u=i.memoizedProps,a=i.type;o=r?ye(o,a,u,i):De(o,a,u,i),i.stateNode=o}F(e,o)}else if(6===i.tag)o=i.stateNode,n&&(o=i.memoizedProps,u=At(xt.current),a=Rt(),o=r?we(o,u,a,t):W(o,u,a,t),i.stateNode=o),F(e,o);else if(4!==i.tag){if(13===i.tag&&(null!==(u=i.alternate)&&(o=null!==i.memoizedState,null!==u.memoizedState!==o))){null!==(u=o?i.child:i)&&ar(e,u,!0,o);break e}if(null!==i.child){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}};var fr=function(e,t,n,r){for(var i=t.child;null!==i;){e:if(5===i.tag){var o=i.stateNode;if(n){var u=i.memoizedProps,a=i.type;o=r?ye(o,a,u,i):De(o,a,u,i),i.stateNode=o}be(e,o)}else if(6===i.tag)o=i.stateNode,n&&(o=i.memoizedProps,u=At(xt.current),a=Rt(),o=r?we(o,u,a,t):W(o,u,a,t),i.stateNode=o),be(e,o);else if(4!==i.tag){if(13===i.tag&&(null!==(u=i.alternate)&&(o=null!==i.memoizedState,null!==u.memoizedState!==o))){null!==(u=o?i.child:i)&&fr(e,u,!0,o);break e}if(null!==i.child){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}};lr=function(e){var t=e.stateNode;if(null!==e.firstEffect){var n=t.containerInfo,r=ve(n);fr(r,e,!1,!1),t.pendingChildren=r,ur(e),ge(n,r)}},sr=function(e,t,n,r,i){var o=e.stateNode,u=e.memoizedProps;if((e=null===t.firstEffect)&&u===r)t.stateNode=o;else{var a=t.stateNode,l=Rt(),s=null;u!==r&&(s=L(a,n,u,r,i,l)),e&&null===s?t.stateNode=o:(o=me(o,s,n,u,r,t,e,a),B(o,n,r,i,l)&&ur(t),t.stateNode=o,e?ur(t):ar(o,t,!1,!1))}},cr=function(e,t,n,r){n!==r&&(e=At(xt.current),n=Rt(),t.stateNode=W(r,e,n,t),ur(t))}}else lr=function(){},sr=function(){},cr=function(){};var dr="function"==typeof WeakSet?WeakSet:Set;function pr(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=Ae(n)),null!==n&&T(n.type),t=t.value,null!==e&&1===e.tag&&T(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function hr(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Jr(e,t)}else t.current=null}function mr(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var i=r.destroy;r.destroy=void 0,void 0!==i&&i()}0!=(r.tag&t)&&(i=r.create,r.destroy=i()),r=r.next}while(r!==n)}}function vr(e){switch("function"==typeof Ke&&Ke(e),e.tag){case 0:case 11:case 14:case 15:var t=e.updateQueue;if(null!==t&&null!==(t=t.lastEffect)){var n=t=t.next;do{var r=n.destroy;if(void 0!==r){var i=e;try{r()}catch(e){Jr(i,e)}}n=n.next}while(n!==t)}break;case 1:if(hr(e),"function"==typeof(t=e.stateNode).componentWillUnmount)try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Jr(e,t)}break;case 5:hr(e);break;case 4:Q?yr(e):Z&&Z&&(e=e.stateNode.containerInfo,t=ve(e),_e(e,t))}}function br(e){for(var t=e;;)if(vr(t),null===t.child||Q&&4===t.tag){if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function gr(e){return 5===e.tag||3===e.tag||4===e.tag}function _r(e){if(Q){e:{for(var t=e.return;null!==t;){if(gr(t)){var n=t;break e}t=t.return}l("160"),n=void 0}var r=t=void 0;switch(n.tag){case 5:t=n.stateNode,r=!1;break;case 3:case 4:t=n.stateNode.containerInfo,r=!0;break;default:l("161")}16&n.effectTag&&(ce(t),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||gr(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var i=e;;){if(5===i.tag||6===i.tag)n?r?ae(t,i.stateNode,n):ue(t,i.stateNode,n):r?ne(t,i.stateNode):te(t,i.stateNode);else if(4!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===e)break;for(;null===i.sibling;){if(null===i.return||i.return===e)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}}function yr(e){for(var t=e,n=!1,r=void 0,i=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&l("160"),n.tag){case 5:r=n.stateNode,i=!1;break e;case 3:case 4:r=n.stateNode.containerInfo,i=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag)br(t),i?se(r,t.stateNode):le(r,t.stateNode);else if(4===t.tag){if(null!==t.child){r=t.stateNode.containerInfo,i=!0,t.child.return=t,t=t.child;continue}}else if(vr(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;4===(t=t.return).tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function Dr(e,t){if(Q)switch(t.tag){case 0:case 11:case 14:case 15:mr(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,o=t.updateQueue;t.updateQueue=null,null!==o&&oe(n,o,i,e,r,t)}break;case 6:null===t.stateNode&&l("162"),n=t.memoizedProps,re(t.stateNode,null!==e?e.memoizedProps:n,n);break;case 3:case 12:break;case 13:if(n=t.memoizedState,r=void 0,e=t,null===n?r=!1:(r=!0,e=t.child,0===n.timedOutAt&&(n.timedOutAt=Si())),null!==e&&function(e,t){if(Q)for(var n=e;;){if(5===n.tag){var r=n.stateNode;t?fe(r):pe(n.stateNode,n.memoizedProps)}else if(6===n.tag)r=n.stateNode,t?de(r):he(r,n.memoizedProps);else{if(13===n.tag&&null!==n.memoizedState){(r=n.child.sibling).return=n,n=r;continue}if(null!==n.child){n.child.return=n,n=n.child;continue}}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}(e,r),null!==(n=t.updateQueue)){t.updateQueue=null;var u=t.stateNode;null===u&&(u=t.stateNode=new dr),n.forEach((function(e){var n=ei.bind(null,t,e);u.has(e)||(u.add(e),e.then(n,n))}))}break;case 17:break;default:l("163")}else{switch(t.tag){case 0:case 11:case 14:case 15:return void mr(4,8,t)}!function(e){if(Z)switch(e.tag){case 1:case 5:case 6:break;case 3:case 4:e=e.stateNode,_e(e.containerInfo,e.pendingChildren);break;default:l("163")}}(t)}}var wr="function"==typeof WeakMap?WeakMap:Map;function Er(e,t,n){(n=Xn(n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Bi(r),pr(e,t)},n}function Cr(e,t,n){(n=Xn(n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return r(i)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===jr?jr=new Set([this]):jr.add(this));var n=t.value,i=t.stack;pr(e,t),this.componentDidCatch(n,{componentStack:null!==i?i:""})}),n}function Tr(e){switch(e.tag){case 1:je(e.type)&&We();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:return Ot(),ze(),0!=(64&(t=e.effectTag))&&l("285"),e.effectTag=-2049&t|64,e;case 5:return It(e),null;case 13:return 2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 4:return Ot(),null;case 10:return zn(e),null;default:return null}}var kr=s.ReactCurrentDispatcher,Sr=s.ReactCurrentOwner,Mr=1073741822,xr=!1,Ar=null,Pr=null,Or=0,Rr=-1,Nr=!1,Ir=null,Fr=!1,Br=null,Lr=null,Ur=null,jr=null;function Wr(){if(null!==Ar)for(var e=Ar.return;null!==e;){var t=e;switch(t.tag){case 1:var n=t.type.childContextTypes;null!=n&&We();break;case 3:Ot(),ze();break;case 5:It(t);break;case 4:Ot();break;case 10:zn(t)}e=e.return}Pr=null,Or=0,Rr=-1,Nr=!1,Ar=null}function zr(){for(;null!==Ir;){var e=Ir.effectTag;if(16&e&&Q&&ce(Ir.stateNode),128&e){var t=Ir.alternate;null!==t&&(null!==(t=t.ref)&&("function"==typeof t?t(null):t.current=null))}switch(14&e){case 2:_r(Ir),Ir.effectTag&=-3;break;case 6:_r(Ir),Ir.effectTag&=-3,Dr(Ir.alternate,Ir);break;case 4:Dr(Ir.alternate,Ir);break;case 8:e=Ir,Q?yr(e):br(e),e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,null!==(e=e.alternate)&&(e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null)}Ir=Ir.nextEffect}}function qr(){for(;null!==Ir;){if(256&Ir.effectTag)e:{var e=Ir.alternate,t=Ir;switch(t.tag){case 0:case 11:case 15:mr(2,0,t);break e;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:dt(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break e;case 3:case 5:case 6:case 4:case 17:break e;default:l("163")}}Ir=Ir.nextEffect}}function Hr(e,t){for(;null!==Ir;){var n=Ir.effectTag;if(36&n){var r=Ir.alternate,i=Ir,o=t;switch(i.tag){case 0:case 11:case 15:mr(16,32,i);break;case 1:var u=i.stateNode;if(4&i.effectTag)if(null===r)u.componentDidMount();else{var a=i.elementType===i.type?r.memoizedProps:dt(i.type,r.memoizedProps);u.componentDidUpdate(a,r.memoizedState,u.__reactInternalSnapshotBeforeUpdate)}null!==(r=i.updateQueue)&&rr(0,r,u);break;case 3:if(null!==(r=i.updateQueue)){if(u=null,null!==i.child)switch(i.child.tag){case 5:u=A(i.child.stateNode);break;case 1:u=i.child.stateNode}rr(0,r,u)}break;case 5:o=i.stateNode,null===r&&4&i.effectTag&&ie(o,i.type,i.memoizedProps,i);break;case 6:case 4:case 12:case 13:case 17:break;default:l("163")}}if(128&n&&null!==(i=Ir.ref)){switch(o=Ir.stateNode,Ir.tag){case 5:o=A(o)}"function"==typeof i?i(o):i.current=o}512&n&&(Br=e),Ir=Ir.nextEffect}}function Gr(e,t){Ur=Lr=Br=null;var n=li;li=!0;do{if(512&t.effectTag){var r=!1,i=void 0;try{var o=t;mr(128,0,o),mr(0,64,o)}catch(e){r=!0,i=e}r&&Jr(t,i)}t=t.nextEffect}while(null!==t);li=n,0!==(n=e.expirationTime)&&Mi(e,n),hi||li||Ri(1073741823,!1)}function Vr(){null!==Lr&&$(Lr),null!==Ur&&Ur()}function Yr(e,t){Fr=xr=!0,e.current===t&&l("177");var n=e.pendingCommitExpirationTime;0===n&&l("261"),e.pendingCommitExpirationTime=0;var r=t.expirationTime,i=t.childExpirationTime;for(function(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{t<e.latestPingedTime&&(e.latestPingedTime=0);var n=e.latestPendingTime;0!==n&&(n>t?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?ot(e,t):t<e.latestSuspendedTime?(e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0,ot(e,t)):t>n&&ot(e,t)}lt(0,e)}(e,i>r?i:r),Sr.current=null,r=void 0,1<t.effectTag?null!==t.lastEffect?(t.lastEffect.nextEffect=t,r=t.firstEffect):r=t:r=t.firstEffect,R(e.containerInfo),Ir=r;null!==Ir;){i=!1;var o=void 0;try{qr()}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}for(Ir=r;null!==Ir;){i=!1,o=void 0;try{zr()}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}for(N(e.containerInfo),e.current=t,Ir=r;null!==Ir;){i=!1,o=void 0;try{Hr(e,n)}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}if(null!==r&&null!==Br){var a=Gr.bind(null,e,r);Lr=u.unstable_runWithPriority(u.unstable_NormalPriority,(function(){return K(a)})),Ur=a}xr=Fr=!1,"function"==typeof Ye&&Ye(t.stateNode),n=t.expirationTime,0===(t=(t=t.childExpirationTime)>n?t:n)&&(jr=null),function(e,t){e.expirationTime=t,e.finishedWork=null}(e,t)}function Kr(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Ar=e;e:{var i=t,o=Or,u=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:je(t.type)&&We();break;case 3:Ot(),ze(),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),null!==i&&null!==i.child||(Dn(t),t.effectTag&=-3),lr(t);break;case 5:It(t),o=At(xt.current);var a=t.type;if(null!==i&&null!=t.stateNode)sr(i,t,a,u,o),i.ref!==t.ref&&(t.effectTag|=128);else if(u){if(i=Rt(),Dn(t))u=t,ee||l("175"),i=Se(u.stateNode,u.type,u.memoizedProps,o,i,u),u.updateQueue=i,(i=null!==i)&&ur(t);else{var s=I(a,u,o,i,t);ar(s,t,!1,!1),B(s,a,u,o,i)&&ur(t),t.stateNode=s}null!==t.ref&&(t.effectTag|=128)}else null===t.stateNode&&l("166");break;case 6:i&&null!=t.stateNode?cr(i,t,i.memoizedProps,u):("string"!=typeof u&&(null===t.stateNode&&l("166")),i=At(xt.current),o=Rt(),Dn(t)?(i=t,ee||l("176"),(i=Me(i.stateNode,i.memoizedProps,i))&&ur(t)):t.stateNode=W(u,i,o,t));break;case 11:break;case 13:if(u=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=o,Ar=t;break e}u=null!==u,o=null!==i&&null!==i.memoizedState,null!==i&&!u&&o&&(null!==(i=i.child.sibling)&&(null!==(a=t.firstEffect)?(t.firstEffect=i,i.nextEffect=a):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),(u||o)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Ot(),lr(t);break;case 10:zn(t);break;case 9:case 14:break;case 17:je(t.type)&&We();break;case 18:break;default:l("156")}Ar=null}if(t=e,1===Or||1!==t.childExpirationTime){for(i=0,u=t.child;null!==u;)(o=u.expirationTime)>i&&(i=o),(a=u.childExpirationTime)>i&&(i=a),u=u.sibling;t.childExpirationTime=i}if(null!==Ar)return Ar;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e))}else{if(null!==(e=Tr(e)))return e.effectTag&=1023,e;null!==n&&(n.firstEffect=n.lastEffect=null,n.effectTag|=1024)}if(null!==r)return r;if(null===n)break;e=n}return null}function $r(e){var t=Fn(e.alternate,e,Or);return e.memoizedProps=e.pendingProps,null===t&&(t=Kr(e)),Sr.current=null,t}function Xr(e,t){xr&&l("243"),Vr(),xr=!0;var n=kr.current;kr.current=fn;var r=e.nextExpirationTimeToWorkOn;r===Or&&e===Pr&&null!==Ar||(Wr(),Or=r,Ar=Ze((Pr=e).current,null),e.pendingCommitExpirationTime=0);for(var i=!1;;){try{if(t)for(;null!==Ar&&!Pi();)Ar=$r(Ar);else for(;null!==Ar;)Ar=$r(Ar)}catch(t){if(jn=Un=Ln=null,Zt(),null===Ar)i=!0,Bi(t);else{null===Ar&&l("271");var o=Ar,u=o.return;if(null!==u){e:{var a=e,s=u,c=o,f=t;if(u=Or,c.effectTag|=1024,c.firstEffect=c.lastEffect=null,null!==f&&"object"==typeof f&&"function"==typeof f.then){var d=f;f=s;var p=-1,h=-1;do{if(13===f.tag){var m=f.alternate;if(null!==m&&null!==(m=m.memoizedState)){h=10*(1073741822-m.timedOutAt);break}"number"==typeof(m=f.pendingProps.maxDuration)&&(0>=m?p=0:(-1===p||m<p)&&(p=m))}f=f.return}while(null!==f);f=s;do{if((m=13===f.tag)&&(m=void 0!==f.memoizedProps.fallback&&null===f.memoizedState),m){if(null===(s=f.updateQueue)?((s=new Set).add(d),f.updateQueue=s):s.add(d),0==(1&f.mode)){f.effectTag|=64,c.effectTag&=-1957,1===c.tag&&(null===c.alternate?c.tag=17:((u=Xn(1073741823)).tag=Vn,Qn(c,u))),c.expirationTime=1073741823;break e}s=u;var v=(c=a).pingCache;null===v?(v=c.pingCache=new wr,m=new Set,v.set(d,m)):void 0===(m=v.get(d))&&(m=new Set,v.set(d,m)),m.has(s)||(m.add(s),c=Zr.bind(null,c,d,s),d.then(c,c)),-1===p?a=1073741823:(-1===h&&(h=10*(1073741822-at(a,u))-5e3),a=h+p),0<=a&&Rr<a&&(Rr=a),f.effectTag|=2048,f.expirationTime=u;break e}f=f.return}while(null!==f);f=Error((T(c.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+Ae(c))}Nr=!0,f=or(f,c),a=s;do{switch(a.tag){case 3:a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Er(a,f,u));break e;case 1:if(p=f,h=a.type,c=a.stateNode,0==(64&a.effectTag)&&("function"==typeof h.getDerivedStateFromError||null!==c&&"function"==typeof c.componentDidCatch&&(null===jr||!jr.has(c)))){a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Cr(a,p,u));break e}}a=a.return}while(null!==a)}Ar=Kr(o);continue}i=!0,Bi(t)}}break}if(xr=!1,kr.current=n,jn=Un=Ln=null,Zt(),i)Pr=null,e.finishedWork=null;else if(null!==Ar)e.finishedWork=null;else{if(null===(n=e.current.alternate)&&l("281"),Pr=null,Nr){if(i=e.latestPendingTime,o=e.latestSuspendedTime,u=e.latestPingedTime,0!==i&&i<r||0!==o&&o<r||0!==u&&u<r)return ut(e,r),void Ti(e,n,r,e.expirationTime,-1);if(!e.didError&&t)return e.didError=!0,r=e.nextExpirationTimeToWorkOn=r,t=e.expirationTime=1073741823,void Ti(e,n,r,t,-1)}t&&-1!==Rr?(ut(e,r),(t=10*(1073741822-at(e,r)))<Rr&&(Rr=t),t=10*(1073741822-Si()),t=Rr-t,Ti(e,n,r,e.expirationTime,0>t?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Jr(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===jr||!jr.has(r)))return Qn(n,e=Cr(n,e=or(t,e),1073741823)),void ni(n,1073741823);break;case 3:return Qn(n,e=Er(n,e=or(t,e),1073741823)),void ni(n,1073741823)}n=n.return}3===e.tag&&(Qn(e,n=Er(e,n=or(t,e),1073741823)),ni(e,1073741823))}function Qr(e,t){var n=u.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(xr&&!Fr)r=Or;else{switch(n){case u.unstable_ImmediatePriority:r=1073741823;break;case u.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case u.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case u.unstable_LowPriority:case u.unstable_IdlePriority:r=1;break;default:l("313")}null!==Pr&&r===Or&&--r}return n===u.unstable_UserBlockingPriority&&(0===fi||r<fi)&&(fi=r),r}function Zr(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),null!==Pr&&Or===n?Pr=null:(t=e.earliestSuspendedTime,r=e.latestSuspendedTime,0!==t&&n<=t&&n>=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),lt(n,e),0!==(n=e.expirationTime)&&Mi(e,n)))}function ei(e,t){var n=e.stateNode;null!==n&&n.delete(t),null!==(e=ti(e,t=Qr(t=Si(),e)))&&(ot(e,t),0!==(t=e.expirationTime)&&Mi(e,t))}function ti(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,i=null;if(null===r&&3===e.tag)i=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){i=r.stateNode;break}r=r.return}return i}function ni(e,t){null!==(e=ti(e,t))&&(!xr&&0!==Or&&t>Or&&Wr(),ot(e,t),xr&&!Fr&&Pr===e||Mi(e,e.expirationTime),Di>yi&&(Di=0,l("185")))}function ri(e,t,n,r,i){return u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){return e(t,n,r,i)}))}var ii=null,oi=null,ui=0,ai=void 0,li=!1,si=null,ci=0,fi=0,di=!1,pi=null,hi=!1,mi=!1,vi=null,bi=X(),gi=1073741822-(bi/10|0),_i=gi,yi=50,Di=0,wi=null;function Ei(){gi=1073741822-((X()-bi)/10|0)}function Ci(e,t){if(0!==ui){if(t<ui)return;null!==ai&&q(ai)}ui=t,e=X()-bi,ai=z(Oi,{timeout:10*(1073741822-t)-e})}function Ti(e,t,n,r,i){e.expirationTime=r,0!==i||Pi()?0<i&&(e.timeoutHandle=G(ki.bind(null,e,t,n),i)):(e.pendingCommitExpirationTime=n,e.finishedWork=t)}function ki(e,t,n){e.pendingCommitExpirationTime=n,e.finishedWork=t,Ei(),_i=gi,Ni(e,n)}function Si(){return li||(xi(),0!==ci&&1!==ci||(Ei(),_i=gi)),_i}function Mi(e,t){null===e.nextScheduledRoot?(e.expirationTime=t,null===oi?(ii=oi=e,e.nextScheduledRoot=e):(oi=oi.nextScheduledRoot=e).nextScheduledRoot=ii):t>e.expirationTime&&(e.expirationTime=t),li||(hi?mi&&(si=e,ci=1073741823,Ii(e,1073741823,!1)):1073741823===t?Ri(1073741823,!1):Ci(e,t))}function xi(){var e=0,t=null;if(null!==oi)for(var n=oi,r=ii;null!==r;){var i=r.expirationTime;if(0===i){if((null===n||null===oi)&&l("244"),r===r.nextScheduledRoot){ii=oi=r.nextScheduledRoot=null;break}if(r===ii)ii=i=r.nextScheduledRoot,oi.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===oi){(oi=n).nextScheduledRoot=ii,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===oi)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}si=t,ci=e}var Ai=!1;function Pi(){return!!Ai||!!H()&&(Ai=!0)}function Oi(){try{if(!Pi()&&null!==ii){Ei();var e=ii;do{var t=e.expirationTime;0!==t&&gi<=t&&(e.nextExpirationTimeToWorkOn=gi),e=e.nextScheduledRoot}while(e!==ii)}Ri(0,!0)}finally{Ai=!1}}function Ri(e,t){if(xi(),t)for(Ei(),_i=gi;null!==si&&0!==ci&&e<=ci&&!(Ai&&gi>ci);)Ii(si,ci,gi>ci),xi(),Ei(),_i=gi;else for(;null!==si&&0!==ci&&e<=ci;)Ii(si,ci,!1),xi();if(t&&(ui=0,ai=null),0!==ci&&Ci(si,ci),Di=0,wi=null,null!==vi)for(e=vi,vi=null,t=0;t<e.length;t++){var n=e[t];try{n._onComplete()}catch(e){di||(di=!0,pi=e)}}if(di)throw e=pi,pi=null,di=!1,e}function Ni(e,t){li&&l("253"),si=e,ci=t,Ii(e,t,!1),Ri(1073741823,!1)}function Ii(e,t,n){if(li&&l("245"),li=!0,n){var r=e.finishedWork;null!==r?Fi(e,r,t):(e.finishedWork=null,(r=e.timeoutHandle)!==Y&&(e.timeoutHandle=Y,V(r)),Xr(e,n),null!==(r=e.finishedWork)&&(Pi()?e.finishedWork=r:Fi(e,r,t)))}else null!==(r=e.finishedWork)?Fi(e,r,t):(e.finishedWork=null,(r=e.timeoutHandle)!==Y&&(e.timeoutHandle=Y,V(r)),Xr(e,n),null!==(r=e.finishedWork)&&Fi(e,r,t));li=!1}function Fi(e,t,n){var r=e.firstBatch;if(null!==r&&r._expirationTime>=n&&(null===vi?vi=[r]:vi.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===wi?Di++:(wi=e,Di=0),u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){Yr(e,t)}))}function Bi(e){null===si&&l("246"),si.expirationTime=0,di||(di=!0,pi=e)}function Li(e,t,n,r,i){var o=t.current;e:if(n){t:{2===k(n=n._reactInternalFiber)&&1===n.tag||l("170");var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(je(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);l("171"),u=void 0}if(1===n.tag){var a=n.type;if(je(a)){n=He(n,a,u);break e}}n=u}else n=Ie;return null===t.context?t.context=n:t.pendingContext=n,t=i,(i=Xn(r)).payload={element:e},null!==(t=void 0===t?null:t)&&(i.callback=t),Vr(),Qn(o,i),ni(o,r),r}function Ui(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?l("188"):l("268",Object.keys(e))),null===(e=x(t))?null:e.stateNode}var ji={updateContainerAtExpirationTime:Li,createContainer:function(e,t,n){return e={current:t=Je(3,null,null,t?3:0),containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:Y,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},t.stateNode=e},updateContainer:function(e,t,n,r){var i=t.current;return Li(e,t,n,i=Qr(Si(),i),r)},flushRoot:Ni,requestWork:Mi,computeUniqueAsyncExpiration:function(){var e=1073741822-25*(1+((1073741822-Si()+500)/25|0));return e>=Mr&&(e=Mr-1),Mr=e},batchedUpdates:function(e,t){var n=hi;hi=!0;try{return e(t)}finally{(hi=n)||li||Ri(1073741823,!1)}},unbatchedUpdates:function(e,t){if(hi&&!mi){mi=!0;try{return e(t)}finally{mi=!1}}return e(t)},deferredUpdates:u.unstable_next,syncUpdates:ri,interactiveUpdates:function(e,t,n){hi||li||0===fi||(Ri(fi,!1),fi=0);var r=hi;hi=!0;try{return u.unstable_runWithPriority(u.unstable_UserBlockingPriority,(function(){return e(t,n)}))}finally{(hi=r)||li||Ri(1073741823,!1)}},flushInteractiveUpdates:function(){li||0===fi||(Ri(fi,!1),fi=0)},flushControlled:function(e){var t=hi;hi=!0;try{ri(e)}finally{(hi=t)||li||Ri(1073741823,!1)}},flushSync:function(e,t){li&&l("187");var n=hi;hi=!0;try{return ri(e,t)}finally{hi=n,Ri(1073741823,!1)}},getPublicRootInstance:function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:return A(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:Ui,findHostInstanceWithWarning:function(e){return Ui(e)},findHostInstanceWithNoPortals:function(e){return null===(e=function(e){if(!(e=M(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}(e))?null:e.stateNode},injectIntoDevTools:function(e){var t=e.findFiberByHostInstance;return function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ye=$e((function(e){return t.onCommitFiberRoot(n,e)})),Ke=$e((function(e){return t.onCommitFiberUnmount(n,e)}))}catch(e){}return!0}(i({},e,{overrideProps:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=x(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}};e.exports=ji.default||ji;var Wi=e.exports;return e.exports=t,Wi}},9437:(e,t,n)=>{"use strict";e.exports=n(5591)},469:(e,t,n)=>{"use strict";function r(e){const t=[...e.caches],n=t.shift();return void 0===n?i():{get:(e,i,o={miss:()=>Promise.resolve()})=>n.get(e,i,o).catch(()=>r({caches:t}).get(e,i,o)),set:(e,i)=>n.set(e,i).catch(()=>r({caches:t}).set(e,i)),delete:e=>n.delete(e).catch(()=>r({caches:t}).delete(e)),clear:()=>n.clear().catch(()=>r({caches:t}).clear())}}function i(){return{get:(e,t,n={miss:()=>Promise.resolve()})=>t().then(e=>Promise.all([e,n.miss(e)])).then(([e])=>e),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}}n.r(t),n.d(t,{createFallbackableCache:()=>r,createNullCache:()=>i})},6712:(e,t,n)=>{"use strict";function r(e={serializable:!0}){let t={};return{get(n,r,i={miss:()=>Promise.resolve()}){const o=JSON.stringify(n);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);const u=r(),a=i&&i.miss||(()=>Promise.resolve());return u.then(e=>a(e)).then(()=>u)},set:(n,r)=>(t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}n.r(t),n.d(t,{createInMemoryCache:()=>r})},2223:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addABTest:()=>a,createAnalyticsClient:()=>u,deleteABTest:()=>l,getABTest:()=>s,getABTests:()=>c,stopABTest:()=>f});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u=e.appId;return(0,r.addMethods)({appId:u,transporter:o},e.methods)},a=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"2/abtests",data:t},n),l=e=>(t,n)=>e.transporter.write({method:o.N.Delete,path:(0,r.encode)("2/abtests/%s",t)},n),s=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("2/abtests/%s",t)},n),c=e=>t=>e.transporter.read({method:o.N.Get,path:"2/abtests"},t),f=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:(0,r.encode)("2/abtests/%s/stop",t)},n)},1757:(e,t,n)=>{"use strict";function r(e,t,n){const r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:()=>e===f.WithinHeaders?r:{},queryParameters:()=>e===f.WithinQueryParameters?r:{}}}function i(e){let t=0;const n=()=>(t++,new Promise(r=>{setTimeout(()=>{r(e(n))},Math.min(100*t,1e3))}));return e(n)}function o(e,t=((e,t)=>Promise.resolve())){return Object.assign(e,{wait:n=>o(e.then(e=>Promise.all([t(e,n),e])).then(e=>e[1]))})}function u(e){let t=e.length-1;for(;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function a(e,t){return Object.keys(void 0!==t?t:{}).forEach(n=>{e[n]=t[n](e)}),e}function l(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}n.r(t),n.d(t,{AuthMode:()=>f,addMethods:()=>a,createAuth:()=>r,createRetryablePromise:()=>i,createWaitablePromise:()=>o,destroy:()=>c,encode:()=>l,shuffle:()=>u,version:()=>s});const s="4.2.0",c=e=>()=>e.transporter.requester.destroy(),f={WithinQueryParameters:0,WithinHeaders:1}},103:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createRecommendationClient:()=>u,getPersonalizationStrategy:()=>a,setPersonalizationStrategy:()=>l});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`recommendation.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}});return(0,r.addMethods)({appId:e.appId,transporter:o},e.methods)},a=e=>t=>e.transporter.read({method:o.N.Get,path:"1/strategies/personalization"},t),l=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"1/strategies/personalization",data:t},n)},6586:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ApiKeyACLEnum:()=>Se,BatchActionEnum:()=>Me,ScopeEnum:()=>xe,StrategyEnum:()=>Ae,SynonymEnum:()=>Pe,addApiKey:()=>d,assignUserID:()=>p,assignUserIDs:()=>h,batch:()=>W,browseObjects:()=>z,browseRules:()=>q,browseSynonyms:()=>H,chunkedBatch:()=>G,clearObjects:()=>V,clearRules:()=>Y,clearSynonyms:()=>K,copyIndex:()=>m,copyRules:()=>v,copySettings:()=>b,copySynonyms:()=>g,createBrowsablePromise:()=>a,createMissingObjectIDError:()=>s,createObjectNotFoundError:()=>c,createSearchClient:()=>l,createValidUntilNotFoundError:()=>f,deleteApiKey:()=>_,deleteBy:()=>$,deleteIndex:()=>X,deleteObject:()=>J,deleteObjects:()=>Q,deleteRule:()=>Z,deleteSynonym:()=>ee,exists:()=>te,findObject:()=>ne,generateSecuredApiKey:()=>y,getApiKey:()=>D,getLogs:()=>w,getObject:()=>re,getObjectPosition:()=>ie,getObjects:()=>oe,getRule:()=>ue,getSecuredApiKeyRemainingValidity:()=>E,getSettings:()=>ae,getSynonym:()=>le,getTask:()=>se,getTopUserIDs:()=>C,getUserID:()=>T,hasPendingMappings:()=>k,initIndex:()=>S,listApiKeys:()=>M,listClusters:()=>x,listIndices:()=>A,listUserIDs:()=>P,moveIndex:()=>O,multipleBatch:()=>R,multipleGetObjects:()=>N,multipleQueries:()=>I,multipleSearchForFacetValues:()=>F,partialUpdateObject:()=>ce,partialUpdateObjects:()=>fe,removeUserID:()=>B,replaceAllObjects:()=>de,replaceAllRules:()=>pe,replaceAllSynonyms:()=>he,restoreApiKey:()=>L,saveObject:()=>me,saveObjects:()=>ve,saveRule:()=>be,saveRules:()=>ge,saveSynonym:()=>_e,saveSynonyms:()=>ye,search:()=>De,searchForFacetValues:()=>we,searchRules:()=>Ee,searchSynonyms:()=>Ce,searchUserIDs:()=>U,setSettings:()=>Te,updateApiKey:()=>j,waitTask:()=>ke});var r=n(1757),i=n(7858),o=n(5541),u=n(6417);function a(e){const t=n=>e.request(n).then(r=>{if(void 0!==e.batch&&e.batch(r.hits),!e.shouldStop(r))return r.cursor?t({cursor:r.cursor}):t({page:(n.page||0)+1})});return t({})}const l=e=>{const t=e.appId,n=(0,r.createAuth)(void 0!==e.authMode?e.authMode:r.AuthMode.WithinHeaders,t,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:t+"-dsn.algolia.net",accept:i.CallEnum.Read},{url:t+".algolia.net",accept:i.CallEnum.Write}].concat((0,r.shuffle)([{url:t+"-1.algolianet.com"},{url:t+"-2.algolianet.com"},{url:t+"-3.algolianet.com"}])),...e,headers:{...n.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u={transporter:o,appId:t,addAlgoliaAgent(e,t){o.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})};return(0,r.addMethods)(u,e.methods)};function s(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function c(){return{name:"ObjectNotFoundError",message:"Object not found."}}function f(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}const d=e=>(t,n)=>{const{queryParameters:i,...u}=n||{},a={acl:t,...void 0!==i?{queryParameters:i}:{}};return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/keys",data:a},u),(t,n)=>(0,r.createRetryablePromise)(r=>D(e)(t.key,n).catch(e=>{if(404!==e.status)throw e;return r()})))},p=e=>(t,n,r)=>{const u=(0,i.createMappedRequestOptions)(r);return u.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Post,path:"1/clusters/mapping",data:{cluster:n}},u)},h=e=>(t,n,r)=>e.transporter.write({method:o.N.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:n}},r),m=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"copy",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),v=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Rules]}),b=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Settings]}),g=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Synonyms]}),_=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/keys/%s",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).then(n).catch(e=>{if(404!==e.status)throw e}))),y=()=>(e,t)=>{const n=(0,i.serializeQueryParameters)(t),r=(0,u.createHmac)("sha256",e).update(n).digest("hex");return Buffer.from(r+n).toString("base64")},D=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/keys/%s",t)},n),w=e=>t=>e.transporter.read({method:o.N.Get,path:"1/logs"},t),E=()=>e=>{const t=Buffer.from(e,"base64").toString("ascii").match(/validUntil=(\d+)/);if(null===t)throw{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."};return parseInt(t[1],10)-Math.round((new Date).getTime()/1e3)},C=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/top"},t),T=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/clusters/mapping/%s",t)},n),k=e=>t=>{const{retrieveMappings:n,...r}=t||{};return!0===n&&(r.getClusters=!0),e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/pending"},r)},S=e=>(t,n={})=>{const i={transporter:e.transporter,appId:e.appId,indexName:t};return(0,r.addMethods)(i,n.methods)},M=e=>t=>e.transporter.read({method:o.N.Get,path:"1/keys"},t),x=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters"},t),A=e=>t=>e.transporter.read({method:o.N.Get,path:"1/indexes"},t),P=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping"},t),O=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"move",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),R=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/indexes/*/batch",data:{requests:t}},n),(t,n)=>Promise.all(Object.keys(t.taskID).map(r=>S(e)(r,{methods:{waitTask:ke}}).waitTask(t.taskID[r],n)))),N=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:t}},n),I=e=>(t,n)=>{const r=t.map(e=>({...e,params:(0,i.serializeQueryParameters)(e.params||{})}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)},F=e=>(t,n)=>Promise.all(t.map(t=>{const{facetName:r,facetQuery:i,...o}=t.params;return S(e)(t.indexName,{methods:{searchForFacetValues:we}}).searchForFacetValues(r,i,{...n,...o})})),B=e=>(t,n)=>{const r=(0,i.createMappedRequestOptions)(n);return r.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Delete,path:"1/clusters/mapping"},r)},L=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/keys/%s/restore",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).catch(e=>{if(404!==e.status)throw e;return n()}))),U=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/clusters/mapping/search",data:{query:t}},n),j=e=>(t,n)=>{const i=Object.assign({},n),{queryParameters:u,...a}=n||{},l=u?{queryParameters:u}:{},s=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/keys/%s",t),data:l},a),(n,o)=>(0,r.createRetryablePromise)(n=>D(e)(t,o).then(e=>(e=>Object.keys(i).filter(e=>-1!==s.indexOf(e)).every(t=>e[t]===i[t]))(e)?Promise.resolve():n())))},W=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/batch",e.indexName),data:{requests:t}},n),(t,n)=>ke(e)(t.taskID,n)),z=e=>t=>a({...t,shouldStop:e=>void 0===e.cursor,request:n=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/browse",e.indexName),data:n},t)}),q=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.length<n.hitsPerPage,request:t=>Ee(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},H=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.length<n.hitsPerPage,request:t=>Ce(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},G=e=>(t,n,i)=>{const{batchSize:o,...u}=i||{},a={taskIDs:[],objectIDs:[]},l=(r=0)=>{const i=[];let s;for(s=r;s<t.length&&(i.push(t[s]),i.length!==(o||1e3));s++);return 0===i.length?Promise.resolve(a):W(e)(i.map(e=>({action:n,body:e})),u).then(e=>(a.objectIDs=a.objectIDs.concat(e.objectIDs),a.taskIDs.push(e.taskID),s++,l(s)))};return(0,r.createWaitablePromise)(l(),(t,n)=>Promise.all(t.taskIDs.map(t=>ke(e)(t,n))))},V=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/clear",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),Y=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},K=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},$=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/deleteByQuery",e.indexName),data:t},n),(t,n)=>ke(e)(t.taskID,n)),X=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),J=e=>(t,n)=>(0,r.createWaitablePromise)(Q(e)([t],n).then(e=>({taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),Q=e=>(t,n)=>{const r=t.map(e=>({objectID:e}));return G(e)(r,Me.DeleteObject,n)},Z=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},ee=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},te=e=>t=>ae(e)(t).then(()=>!0).catch(e=>{if(404!==e.status)throw e;return!1}),ne=e=>(t,n)=>{const{query:r,paginate:i,...o}=n||{};let u=0;const a=()=>De(e)(r||"",{...o,page:u}).then(e=>{for(const[n,r]of Object.entries(e.hits))if(t(r))return{object:r,position:parseInt(n,10),page:u};if(u++,!1===i||u>=e.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return a()});return a()},re=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/%s",e.indexName,t)},n),ie=()=>(e,t)=>{for(const[n,r]of Object.entries(e.hits))if(r.objectID===t)return parseInt(n,10);return-1},oe=e=>(t,n)=>{const{attributesToRetrieve:r,...i}=n||{},u=t.map(t=>({indexName:e.indexName,objectID:t,...r?{attributesToRetrieve:r}:{}}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:u}},i)},ue=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},n),ae=e=>t=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),le=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},n),se=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/task/%s",e.indexName,t.toString())},n),ce=e=>(t,n)=>(0,r.createWaitablePromise)(fe(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),fe=e=>(t,n)=>{const{createIfNotExists:r,...i}=n||{},o=r?Me.PartialUpdateObject:Me.PartialUpdateObjectNoCreate;return G(e)(t,o,i)},de=e=>(t,n)=>{const{safe:i,autoGenerateObjectIDIfNotExist:u,batchSize:a,...l}=n||{},s=(t,n,i,u)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:i,destination:n}},u),(t,n)=>ke(e)(t.taskID,n)),c=Math.random().toString(36).substring(7),f=`${e.indexName}_tmp_${c}`,d=ve({appId:e.appId,transporter:e.transporter,indexName:f});let p=[];const h=s(e.indexName,f,"copy",{...l,scope:["settings","synonyms","rules"]});p.push(h);const m=(i?h.wait(l):h).then(()=>{const e=d(t,{...l,autoGenerateObjectIDIfNotExist:u,batchSize:a});return p.push(e),i?e.wait(l):e}).then(()=>{const t=s(f,e.indexName,"move",l);return p.push(t),i?t.wait(l):t}).then(()=>Promise.all(p)).then(([e,t,n])=>({objectIDs:t.objectIDs,taskIDs:[e.taskID,...t.taskIDs,n.taskID]}));return(0,r.createWaitablePromise)(m,(e,t)=>Promise.all(p.map(e=>e.wait(t))))},pe=e=>(t,n)=>ge(e)(t,{...n,clearExistingRules:!0}),he=e=>(t,n)=>ye(e)(t,{...n,replaceExistingSynonyms:!0}),me=e=>(t,n)=>(0,r.createWaitablePromise)(ve(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),ve=e=>(t,n)=>{const{autoGenerateObjectIDIfNotExist:i,...o}=n||{},u=i?Me.AddObject:Me.UpdateObject;if(u===Me.UpdateObject)for(const e of t)if(void 0===e.objectID)return(0,r.createWaitablePromise)(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}));return G(e)(t,u,o)},be=e=>(t,n)=>ge(e)([t],n),ge=e=>(t,n)=>{const{forwardToReplicas:u,clearExistingRules:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.clearExistingRules=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},_e=e=>(t,n)=>ye(e)([t],n),ye=e=>(t,n)=>{const{forwardToReplicas:u,replaceExistingSynonyms:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.replaceExistingSynonyms=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},De=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n),we=e=>(t,n,i)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},i),Ee=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/search",e.indexName),data:{query:t}},n),Ce=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},n),Te=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:t},l),(t,n)=>ke(e)(t.taskID,n))},ke=e=>(t,n)=>(0,r.createRetryablePromise)(r=>se(e)(t,n).then(e=>"published"!==e.status?r():void 0)),Se={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Me={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},xe={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ae={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Pe={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"}},8045:(e,t,n)=>{"use strict";function r(){return{debug:(e,t)=>Promise.resolve(),info:(e,t)=>Promise.resolve(),error:(e,t)=>Promise.resolve()}}n.r(t),n.d(t,{LogLevelEnum:()=>i,createNullLogger:()=>r});const i={Debug:1,Info:2,Error:3}},5541:(e,t,n)=>{"use strict";n.d(t,{N:()=>r});const r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"}},9178:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createNodeHttpRequester:()=>u});var r=n(8605),i=n(7211),o=n(8835);function u(){const e={keepAlive:!0},t=new r.Agent(e),n=new i.Agent(e);return{send:e=>new Promise(u=>{const a=(0,o.parse)(e.url),l=null===a.query?a.pathname:`${a.pathname}?${a.query}`,s={agent:"https:"===a.protocol?n:t,hostname:a.hostname,path:l,method:e.method,headers:e.headers,...void 0!==a.port?{port:a.port||""}:{}},c=("https:"===a.protocol?i:r).request(s,e=>{let t="";e.on("data",e=>t+=e),e.on("end",()=>{clearTimeout(d),clearTimeout(p),u({status:e.statusCode||0,content:t,isTimedOut:!1})})}),f=(e,t)=>setTimeout(()=>{c.abort(),u({status:0,content:t,isTimedOut:!0})},1e3*e),d=f(e.connectTimeout,"Connection timeout");let p;c.on("error",e=>{clearTimeout(d),clearTimeout(p),u({status:0,content:e.message,isTimedOut:!1})}),c.once("response",()=>{clearTimeout(d),p=f(e.responseTimeout,"Socket timeout")}),void 0!==e.data&&c.write(e.data),c.end()}),destroy:()=>(t.destroy(),n.destroy(),Promise.resolve())}}},7858:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CallEnum:()=>o,HostStatusEnum:()=>u,createApiError:()=>w,createDeserializationError:()=>E,createMappedRequestOptions:()=>i,createRetryError:()=>C,createStatefulHost:()=>a,createStatelessHost:()=>c,createTransporter:()=>d,createUserAgent:()=>p,deserializeFailure:()=>m,deserializeSuccess:()=>h,isStatefulHostTimeouted:()=>s,isStatefulHostUp:()=>l,serializeData:()=>g,serializeHeaders:()=>_,serializeQueryParameters:()=>b,serializeUrl:()=>v,stackFrameWithoutCredentials:()=>D,stackTraceWithoutCredentials:()=>y});var r=n(5541);function i(e,t){const n=e||{},r=n.data||{};return Object.keys(n).forEach(e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(r[e]=n[e])}),{data:Object.entries(r).length>0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}const o={Read:1,Write:2,Any:3},u={Up:1,Down:2,Timeouted:3};function a(e,t=u.Up){return{...e,status:t,lastUpdate:Date.now()}}function l(e){return e.status===u.Up||Date.now()-e.lastUpdate>12e4}function s(e){return e.status===u.Timeouted&&Date.now()-e.lastUpdate<=12e4}function c(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||o.Any}}function f(e,t,n,i){const o=[],f=g(n,i),d=_(e,i),p=n.method,b=n.method!==r.N.Get?{}:{...n.data,...i.data},w={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...b,...i.queryParameters};let E=0;const T=(t,r)=>{const l=t.pop();if(void 0===l)throw C(y(o));const s={data:f,headers:d,method:p,url:v(l,n.path,w),connectTimeout:r(E,e.timeouts.connect),responseTimeout:r(E,i.timeout)},c=e=>{const n={request:s,response:e,host:l,triesLeft:t.length};return o.push(n),n},b={onSucess:e=>h(e),onRetry(n){const i=c(n);return n.isTimedOut&&E++,Promise.all([e.logger.info("Retryable failure",D(i)),e.hostsCache.set(l,a(l,n.isTimedOut?u.Timeouted:u.Down))]).then(()=>T(t,r))},onFail(e){throw c(e),m(e,y(o))}};return e.requester.send(s).then(e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSucess(e):t.onFail(e))(e,b))};return function(e,t){return Promise.all(t.map(t=>e.get(t,()=>Promise.resolve(a(t))))).then(e=>{const n=e.filter(e=>l(e)),r=e.filter(e=>s(e)),i=[...n,...r];return{getTimeout:(e,t)=>(0===r.length&&0===e?1:r.length+3+e)*t,statelessHosts:i.length>0?i.map(e=>c(e)):t}})}(e.hostsCache,t).then(e=>T([...e.statelessHosts].reverse(),e.getTimeout))}function d(e){const{hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,hosts:d,queryParameters:p,headers:h}=e,m={hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,headers:h,queryParameters:p,hosts:d.map(e=>c(e)),read(e,t){const n=i(t,m.timeouts.read),r=()=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Read)),e,n);if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();const u={request:e,mappedRequestOptions:n,transporter:{queryParameters:m.queryParameters,headers:m.headers}};return m.responsesCache.get(u,()=>m.requestsCache.get(u,()=>m.requestsCache.set(u,r()).then(e=>Promise.all([m.requestsCache.delete(u),e]),e=>Promise.all([m.requestsCache.delete(u),Promise.reject(e)])).then(([e,t])=>t)),{miss:e=>m.responsesCache.set(u,e)})},write:(e,t)=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Write)),e,i(t,m.timeouts.write))};return m}function p(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const n=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(n)&&(t.value=`${t.value}${n}`),t}};return t}function h(e){try{return JSON.parse(e.content)}catch(t){throw E(t.message,e)}}function m({content:e,status:t},n){let r=e;try{r=JSON.parse(e).message}catch(e){}return w(r,t,n)}function v(e,t,n){const r=b(n);let i=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return r.length&&(i+="?"+r),i}function b(e){return Object.keys(e).map(t=>{return function(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n}).join("&")}function g(e,t){if(e.method===r.N.Get||void 0===e.data&&void 0===t.data)return;const n=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(n)}function _(e,t){const n={...e.headers,...t.headers},r={};return Object.keys(n).forEach(e=>{const t=n[e];r[e.toLowerCase()]=t}),r}function y(e){return e.map(e=>D(e))}function D(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function w(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}function E(e,t){return{name:"DeserializationError",message:e,response:t}}function C(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}},8774:(e,t,n)=>{"use strict";var r=n(469),i=n(6712),o=n(2223),u=n(1757),a=n(103),l=n(6586),s=n(8045),c=n(9178),f=n(7858);function d(e,t,n){const d={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:c.createNodeHttpRequester(),logger:s.createNullLogger(),responsesCache:r.createNullCache(),requestsCache:r.createNullCache(),hostsCache:i.createInMemoryCache(),userAgent:f.createUserAgent(u.version).add({segment:"Node.js",version:process.versions.node})};return l.createSearchClient({...d,...n,methods:{search:l.multipleQueries,searchForFacetValues:l.multipleSearchForFacetValues,multipleBatch:l.multipleBatch,multipleGetObjects:l.multipleGetObjects,multipleQueries:l.multipleQueries,copyIndex:l.copyIndex,copySettings:l.copySettings,copyRules:l.copyRules,copySynonyms:l.copySynonyms,moveIndex:l.moveIndex,listIndices:l.listIndices,getLogs:l.getLogs,listClusters:l.listClusters,multipleSearchForFacetValues:l.multipleSearchForFacetValues,getApiKey:l.getApiKey,addApiKey:l.addApiKey,listApiKeys:l.listApiKeys,updateApiKey:l.updateApiKey,deleteApiKey:l.deleteApiKey,restoreApiKey:l.restoreApiKey,assignUserID:l.assignUserID,assignUserIDs:l.assignUserIDs,getUserID:l.getUserID,searchUserIDs:l.searchUserIDs,listUserIDs:l.listUserIDs,getTopUserIDs:l.getTopUserIDs,removeUserID:l.removeUserID,hasPendingMappings:l.hasPendingMappings,generateSecuredApiKey:l.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:l.getSecuredApiKeyRemainingValidity,destroy:u.destroy,initIndex:e=>t=>l.initIndex(e)(t,{methods:{batch:l.batch,delete:l.deleteIndex,getObject:l.getObject,getObjects:l.getObjects,saveObject:l.saveObject,saveObjects:l.saveObjects,search:l.search,searchForFacetValues:l.searchForFacetValues,waitTask:l.waitTask,setSettings:l.setSettings,getSettings:l.getSettings,partialUpdateObject:l.partialUpdateObject,partialUpdateObjects:l.partialUpdateObjects,deleteObject:l.deleteObject,deleteObjects:l.deleteObjects,deleteBy:l.deleteBy,clearObjects:l.clearObjects,browseObjects:l.browseObjects,getObjectPosition:l.getObjectPosition,findObject:l.findObject,exists:l.exists,saveSynonym:l.saveSynonym,saveSynonyms:l.saveSynonyms,getSynonym:l.getSynonym,searchSynonyms:l.searchSynonyms,browseSynonyms:l.browseSynonyms,deleteSynonym:l.deleteSynonym,clearSynonyms:l.clearSynonyms,replaceAllObjects:l.replaceAllObjects,replaceAllSynonyms:l.replaceAllSynonyms,searchRules:l.searchRules,getRule:l.getRule,deleteRule:l.deleteRule,saveRule:l.saveRule,saveRules:l.saveRules,replaceAllRules:l.replaceAllRules,browseRules:l.browseRules,clearRules:l.clearRules}}),initAnalytics:()=>e=>o.createAnalyticsClient({...d,...e,methods:{addABTest:o.addABTest,getABTest:o.getABTest,getABTests:o.getABTests,stopABTest:o.stopABTest,deleteABTest:o.deleteABTest}}),initRecommendation:()=>e=>a.createRecommendationClient({...d,...e,methods:{getPersonalizationStrategy:a.getPersonalizationStrategy,setPersonalizationStrategy:a.setPersonalizationStrategy}})}})}d.version=u.version,e.exports=d},4410:(e,t,n)=>{const r=n(8774);e.exports=r,e.exports.default=r},327:e=>{"use strict";const t=e.exports,n="[",r="]",i="",o=";",u="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?n+(e+1)+"G":n+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let r="";return e<0?r+=n+-e+"D":e>0&&(r+=n+e+"C"),t<0?r+=n+-t+"A":t>0&&(r+=n+t+"B"),r},t.cursorUp=e=>n+("number"==typeof e?e:1)+"A",t.cursorDown=e=>n+("number"==typeof e?e:1)+"B",t.cursorForward=e=>n+("number"==typeof e?e:1)+"C",t.cursorBackward=e=>n+("number"==typeof e?e:1)+"D",t.cursorLeft="[G",t.cursorSavePosition=n+(u?"7":"s"),t.cursorRestorePosition=n+(u?"8":"u"),t.cursorGetPosition="[6n",t.cursorNextLine="[E",t.cursorPrevLine="[F",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let n="";for(let r=0;r<e;r++)n+=t.eraseLine+(r<e-1?t.cursorUp():"");return e&&(n+=t.cursorLeft),n},t.eraseEndLine="[K",t.eraseStartLine="[1K",t.eraseLine="[2K",t.eraseDown="[J",t.eraseUp="[1J",t.eraseScreen="[2J",t.scrollUp="[S",t.scrollDown="[T",t.clearScreen="c",t.clearTerminal="win32"===process.platform?t.eraseScreen+"[0f":t.eraseScreen+"[3J[H",t.beep=i,t.link=(e,t)=>[r,"8",o,o,t,i,e,r,"8",o,o,i].join(""),t.image=(e,t)=>{let n=r+"1337;File=inline=1";return(t=t||{}).width&&(n+=";width="+t.width),t.height&&(n+=";height="+t.height),!1===t.preserveAspectRatio&&(n+=";preserveAspectRatio=0"),n+":"+e.toString("base64")+i},t.iTerm={},t.iTerm.setCwd=e=>r+"50;CurrentDir="+(e||process.cwd())+i},7788:e=>{"use strict";e.exports=()=>{const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|");return new RegExp(e,"g")}},5378:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},5256:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(7410),i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},o=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},u=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const i=r[n];t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,a=(e,t,n)=>[e,t,n];t.color.close="[39m",t.bgColor.close="[49m",t.color.ansi={ansi:i(n,0)},t.color.ansi256={ansi256:o(n,0)},t.color.ansi16m={rgb:u(a,0)},t.bgColor.ansi={ansi:i(n,10)},t.bgColor.ansi256={ansi256:o(n,10)},t.bgColor.ansi16m={rgb:u(a,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=i(n.ansi16,0),t.bgColor.ansi[e]=i(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=o(n.ansi256,0),t.bgColor.ansi256[e]=o(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=u(n.rgb,0),t.bgColor.ansi16m[e]=u(n.rgb,10))}return t}})},8483:(e,t,n)=>{"use strict";e=n.nmd(e);const r=(e,t)=>(...n)=>`[${e(...n)+t}m`,i=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};5;${r}m`},o=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},u=e=>e,a=(e,t,n)=>[e,t,n],l=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{const r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})};let s;const c=(e,t,r,i)=>{void 0===s&&(s=n(2744));const o=i?10:0,u={};for(const[n,i]of Object.entries(s)){const a="ansi16"===n?"ansi":n;n===t?u[a]=e(r,o):"object"==typeof i&&(u[a]=e(i[t],o))}return u};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[n,r]of Object.entries(t)){for(const[n,i]of Object.entries(r))t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="[39m",t.bgColor.close="[49m",l(t.color,"ansi",()=>c(r,"ansi16",u,!1)),l(t.color,"ansi256",()=>c(i,"ansi256",u,!1)),l(t.color,"ansi16m",()=>c(o,"rgb",a,!1)),l(t.bgColor,"ansi",()=>c(r,"ansi16",u,!0)),l(t.bgColor,"ansi256",()=>c(i,"ansi256",u,!0)),l(t.bgColor,"ansi16m",()=>c(o,"rgb",a,!0)),t}})},3810:e=>{"use strict";e.exports=function(e){return null==e?[]:Array.isArray(e)?e:[e]}},5640:e=>{"use strict";e.exports=e=>e&&e.exact?new RegExp("^[\ud800-\udbff][\udc00-\udfff]$"):new RegExp("[\ud800-\udbff][\udc00-\udfff]","g")},2939:(e,t,n)=>{"use strict";e=n.nmd(e);e.exports=(e,t)=>{t=Object.assign({},t);const n=e=>{const n=t=>"string"==typeof t?e===t:t.test(e);return t.include?t.include.some(n):!t.exclude||!t.exclude.some(n)};for(const[t,r]of(e=>{const t=new Set;do{for(const n of Reflect.ownKeys(e))t.add([e,n])}while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t})(e.constructor.prototype)){if("constructor"===r||!n(r))continue;const i=Reflect.getOwnPropertyDescriptor(t,r);i&&"function"==typeof i.value&&(e[r]=e[r].bind(e))}return e};const r=["componentWillMount","UNSAFE_componentWillMount","render","getSnapshotBeforeUpdate","componentDidMount","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","componentDidUpdate","componentWillUnmount","componentDidCatch","setState","forceUpdate"];e.exports.react=(t,n)=>((n=Object.assign({},n)).exclude=(n.exclude||[]).concat(r),e.exports(t,n))},9244:(e,t,n)=>{"use strict";const r=n(6349),i=n(5256),o=n(5180).stdout,u=n(2831),a="win32"===process.platform&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),l=["ansi","ansi","ansi256","ansi16m"],s=new Set(["gray"]),c=Object.create(null);function f(e,t){t=t||{};const n=o?o.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function d(e){if(!this||!(this instanceof d)||this.template){const t={};return f(t,e),t.template=function(){const e=[].slice.call(arguments);return v.apply(null,[t.template].concat(e))},Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=d,t.template}f(this,e)}a&&(i.blue.open="[94m");for(const e of Object.keys(i))i[e].closeRe=new RegExp(r(i[e].close),"g"),c[e]={get(){const t=i[e];return h.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};c.visible={get(){return h.call(this,this._styles||[],!0,"visible")}},i.color.closeRe=new RegExp(r(i.color.close),"g");for(const e of Object.keys(i.color.ansi))s.has(e)||(c[e]={get(){const t=this.level;return function(){const n=i.color[l[t]][e].apply(null,arguments),r={open:n,close:i.color.close,closeRe:i.color.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}});i.bgColor.closeRe=new RegExp(r(i.bgColor.close),"g");for(const e of Object.keys(i.bgColor.ansi)){if(s.has(e))continue;c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const t=this.level;return function(){const n=i.bgColor[l[t]][e].apply(null,arguments),r={open:n,close:i.bgColor.close,closeRe:i.bgColor.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}}}const p=Object.defineProperties(()=>{},c);function h(e,t,n){const r=function(){return m.apply(r,arguments)};r._styles=e,r._empty=t;const i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:()=>i.level,set(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>i.enabled,set(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=p,r}function m(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;r<t;r++)n+=" "+e[r];if(!this.enabled||this.level<=0||!n)return this._empty?"":n;const r=i.dim.open;a&&this.hasGrey&&(i.dim.open="");for(const e of this._styles.slice().reverse())n=e.open+n.replace(e.closeRe,e.open)+e.close,n=n.replace(/\r?\n/g,`${e.close}$&${e.open}`);return i.dim.open=r,n}function v(e,t){if(!Array.isArray(t))return[].slice.call(arguments,1).join(" ");const n=[].slice.call(arguments,2),r=[t.raw[0]];for(let e=1;e<t.length;e++)r.push(String(n[e-1]).replace(/[{}\\]/g,"\\$&")),r.push(String(t.raw[e]));return u(e,r.join(""))}Object.defineProperties(d.prototype,c),e.exports=d(),e.exports.supportsColor=o,e.exports.default=e.exports},2831:e=>{"use strict";const t=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o)if(isNaN(t)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(Number(t));return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},5882:(e,t,n)=>{"use strict";const r=n(8483),{stdout:i,stderr:o}=n(9428),{stringReplaceAll:u,stringEncaseCRLFWithFirstIndex:a}=n(3327),l=["ansi","ansi","ansi256","ansi16m"],s=Object.create(null);class c{constructor(e){return f(e)}}const f=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const n=i?i.level:0;e.level=void 0===t.level?n:t.level})(t,e),t.template=(...e)=>_(t.template,...e),Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=c,t.template};function d(e){return f(e)}for(const[e,t]of Object.entries(r))s[e]={get(){const n=v(this,m(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};s.visible={get(){const e=v(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const p=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of p)s[e]={get(){const{level:t}=this;return function(...n){const i=m(r.color[l[t]][e](...n),r.color.close,this._styler);return v(this,i,this._isEmpty)}}};for(const e of p){s["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...n){const i=m(r.bgColor[l[t]][e](...n),r.bgColor.close,this._styler);return v(this,i,this._isEmpty)}}}}const h=Object.defineProperties(()=>{},{...s,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),m=(e,t,n)=>{let r,i;return void 0===n?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},v=(e,t,n)=>{const r=(...e)=>b(r,1===e.length?""+e[0]:e.join(" "));return r.__proto__=h,r._generator=e,r._styler=t,r._isEmpty=n,r},b=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(void 0===n)return t;const{openAll:r,closeAll:i}=n;if(-1!==t.indexOf(""))for(;void 0!==n;)t=u(t,n.close,n.open),n=n.parent;const o=t.indexOf("\n");return-1!==o&&(t=a(t,i,r,o)),r+t+i};let g;const _=(e,...t)=>{const[r]=t;if(!Array.isArray(r))return t.join(" ");const i=t.slice(1),o=[r.raw[0]];for(let e=1;e<r.length;e++)o.push(String(i[e-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[e]));return void 0===g&&(g=n(690)),g(e,o.join(""))};Object.defineProperties(d.prototype,s);const y=d();y.supportsColor=i,y.stderr=d({level:o?o.level:0}),y.stderr.supportsColor=o,y.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"},e.exports=y},690:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){const t="u"===e[0],n="{"===e[1];return t&&!n&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(o)}return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=t.length>0?r[e](...t):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},3327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,n)=>{let r=e.indexOf(t);if(-1===r)return e;const i=t.length;let o=0,u="";do{u+=e.substr(o,r-o)+t+n,o=r+i,r=e.indexOf(t,o)}while(-1!==r);return u+=e.substr(o),u},stringEncaseCRLFWithFirstIndex:(e,t,n,r)=>{let i=0,o="";do{const u="\r"===e[r-1];o+=e.substr(i,(u?r-1:r)-i)+t+(u?"\r\n":"\n")+n,i=r+1,r=e.indexOf("\n",i)}while(-1!==r);return o+=e.substr(i),o}}},5864:(e,t,n)=>{"use strict";var r=n(5832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:r.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,r.forEach((function(e){var n=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=n,n)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},5832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},1305:(e,t,n)=>{"use strict";const r=n(2428);let i=!1;t.show=e=>{const t=e||process.stderr;t.isTTY&&(i=!1,t.write("[?25h"))},t.hide=e=>{const t=e||process.stderr;t.isTTY&&(r(),i=!0,t.write("[?25l"))},t.toggle=(e,n)=>{void 0!==e&&(i=e),i?t.show(n):t.hide(n)}},4093:(e,t,n)=>{"use strict";const r=n(7498),i=n(5478);e.exports=(e,t,n)=>{const o=(n=Object.assign({position:"end"},n)).position;if("string"!=typeof e)throw new TypeError("Expected `input` to be a string, got "+typeof e);if("number"!=typeof t)throw new TypeError("Expected `columns` to be a number, got "+typeof t);if(t<1)return"";if(1===t)return"…";const u=i(e);if(u<=t)return e;if("start"===o)return"…"+r(e,u-t+1,u);if("middle"===o){const n=Math.floor(t/2);return r(e,0,n)+"…"+r(e,u-(t-n)+1,u)}if("end"===o)return r(e,0,t-1)+"…";throw new Error("Expected `options.position` to be either `start`, `middle` or `end`, got "+o)}},9486:(e,t,n)=>{var r=n(3110),i={};for(var o in r)r.hasOwnProperty(o)&&(i[r[o]]=o);var u=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var a in u)if(u.hasOwnProperty(a)){if(!("channels"in u[a]))throw new Error("missing channels property: "+a);if(!("labels"in u[a]))throw new Error("missing channel labels property: "+a);if(u[a].labels.length!==u[a].channels)throw new Error("channel and label counts mismatch: "+a);var l=u[a].channels,s=u[a].labels;delete u[a].channels,delete u[a].labels,Object.defineProperty(u[a],"channels",{value:l}),Object.defineProperty(u[a],"labels",{value:s})}u.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,u=Math.min(r,i,o),a=Math.max(r,i,o),l=a-u;return a===u?t=0:r===a?t=(i-o)/l:i===a?t=2+(o-r)/l:o===a&&(t=4+(r-i)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(u+a)/2,[t,100*(a===u?0:n<=.5?l/(a+u):l/(2-a-u)),100*n]},u.rgb.hsv=function(e){var t,n,r,i,o,u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?i=o=0:(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},u.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[u.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},u.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},u.rgb.keyword=function(e){var t=i[e];if(t)return t;var n,o,u,a=1/0;for(var l in r)if(r.hasOwnProperty(l)){var s=r[l],c=(o=e,u=s,Math.pow(o[0]-u[0],2)+Math.pow(o[1]-u[1],2)+Math.pow(o[2]-u[2],2));c<a&&(a=c,n=l)}return n},u.keyword.rgb=function(e){return r[e]},u.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},u.rgb.lab=function(e){var t=u.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},u.hsl.rgb=function(e){var t,n,r,i,o,u=e[0]/360,a=e[1]/100,l=e[2]/100;if(0===a)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+a):l+a-l*a),i=[0,0,0];for(var s=0;s<3;s++)(r=u+1/3*-(s-1))<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[s]=255*o;return i},u.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=o<=1?o:2-o,[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},u.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},u.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,u=e[2]/100,a=Math.max(u,.01);return r=(2-o)*u,n=o*a,[i,100*(n=(n/=(t=(2-o)*a)<=1?t:2-t)||0),100*(r/=2)]},u.hwb.rgb=function(e){var t,n,r,i,o,u,a,l=e[0]/360,s=e[1]/100,c=e[2]/100,f=s+c;switch(f>1&&(s/=f,c/=f),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),i=s+r*((n=1-c)-s),t){default:case 6:case 0:o=n,u=i,a=s;break;case 1:o=i,u=n,a=s;break;case 2:o=s,u=n,a=i;break;case 3:o=s,u=i,a=n;break;case 4:o=i,u=s,a=n;break;case 5:o=n,u=s,a=i}return[255*o,255*u,255*a]},u.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},u.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,u=e[2]/100;return n=-.9689*i+1.8758*o+.0415*u,r=.0557*i+-.204*o+1.057*u,t=(t=3.2406*i+-1.5372*o+-.4986*u)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},u.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},u.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var o=Math.pow(n,3),u=Math.pow(t,3),a=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},u.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},u.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},u.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:u.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},u.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},u.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},u.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},u.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,o=Math.max(Math.max(n,r),i),u=Math.min(Math.min(n,r),i),a=o-u;return t=a<=0?0:o===n?(r-i)/a%6:o===r?2+(i-n)/a:4+(n-r)/a+4,t/=6,[360*(t%=1),100*a,100*(a<1?u/(1-a):0)]},u.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},u.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,o=[0,0,0],u=t%1*6,a=u%1,l=1-a;switch(Math.floor(u)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return i=(1-n)*r,[255*(n*o[0]+i),255*(n*o[1]+i),255*(n*o[2]+i)]},u.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},u.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},u.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},u.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=u.gray.hsv=function(e){return[0,0,e[0]]},u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},7410:(e,t,n)=>{var r=n(9486),i=n(9445),o={};Object.keys(r).forEach((function(e){o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});var t=i(e);Object.keys(t).forEach((function(n){var r=t[n];o[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i<r;i++)n[i]=Math.round(n[i]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(r),o[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=o},9445:(e,t,n)=>{var r=n(9486);function i(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,i=0;i<n;i++)e[t[i]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;)for(var i=n.pop(),o=Object.keys(r[i]),u=o.length,a=0;a<u;a++){var l=o[a],s=t[l];-1===s.distance&&(s.distance=t[i].distance+1,s.parent=i,n.unshift(l))}return t}function o(e,t){return function(n){return t(e(n))}}function u(e,t){for(var n=[t[e].parent,e],i=r[t[e].parent][e],u=t[e].parent;t[u].parent;)n.unshift(t[u].parent),i=o(r[t[u].parent][u],i),u=t[u].parent;return i.conversion=n,i}e.exports=function(e){for(var t=i(e),n={},r=Object.keys(t),o=r.length,a=0;a<o;a++){var l=r[a];null!==t[l].parent&&(n[l]=u(l,t))}return n}},5311:(e,t,n)=>{const r=n(3300),i={};for(const e of Object.keys(r))i[r[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:n}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:n})}o.rgb.hsl=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),o=Math.max(t,n,r),u=o-i;let a,l;o===i?a=0:t===o?a=(n-r)/u:n===o?a=2+(r-t)/u:r===o&&(a=4+(t-n)/u),a=Math.min(60*a,360),a<0&&(a+=360);const s=(i+o)/2;return l=o===i?0:s<=.5?u/(o+i):u/(2-o-i),[a,100*l,100*s]},o.rgb.hsv=function(e){let t,n,r,i,o;const u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?(i=0,o=0):(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},o.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const i=o.rgb.hsl(e)[0],u=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*u,100*r]},o.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r);return[100*((1-t-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let n,o=1/0;for(const t of Object.keys(r)){const i=r[t],l=(a=i,((u=e)[0]-a[0])**2+(u[1]-a[1])**2+(u[2]-a[2])**2);l<o&&(o=l,n=t)}var u,a;return n},o.keyword.rgb=function(e){return r[e]},o.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;return[100*(.4124*t+.3576*n+.1805*r),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let n=t[0],r=t[1],i=t[2];n/=95.047,r/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*r-16,500*(n-r),200*(r-i)]},o.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let i,o,u;if(0===n)return u=255*r,[u,u,u];i=r<.5?r*(1+n):r+n-r*n;const a=2*r-i,l=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,u=6*o<1?a+6*(i-a)*o:2*o<1?i:3*o<2?a+(i-a)*(2/3-o)*6:a,l[e]=255*u;return l},o.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,i=n;const o=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=o<=1?o:2-o;return[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},o.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01);let o,u;u=(2-n)*r;const a=(2-n)*i;return o=n*i,o/=a<=1?a:2-a,o=o||0,u/=2,[t,100*o,100*u]},o.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const i=n+r;let o;i>1&&(n/=i,r/=i);const u=Math.floor(6*t),a=1-r;o=6*t-u,0!=(1&u)&&(o=1-o);const l=n+o*(a-n);let s,c,f;switch(u){default:case 6:case 0:s=a,c=l,f=n;break;case 1:s=l,c=a,f=n;break;case 2:s=n,c=a,f=l;break;case 3:s=n,c=l,f=a;break;case 4:s=l,c=n,f=a;break;case 5:s=a,c=n,f=l}return[255*s,255*c,255*f]},o.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let i,o,u;return i=3.2406*t+-1.5372*n+-.4986*r,o=-.9689*t+1.8758*n+.0415*r,u=.0557*t+-.204*n+1.057*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),u=Math.min(Math.max(0,u),1),[255*i,255*o,255*u]},o.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*n-16,500*(t-n),200*(n-r)]},o.lab.xyz=function(e){let t,n,r;n=(e[0]+16)/116,t=e[1]/500+n,r=n-e[2]/200;const i=n**3,o=t**3,u=r**3;return n=i>.008856?i:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,r=u>.008856?u:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},o.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let i;i=360*Math.atan2(r,n)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(n*n+r*r),i]},o.lch.lab=function(e){const t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},o.rgb.ansi16=function(e,t=null){const[n,r,i]=e;let u=null===t?o.rgb.hsv(e)[2]:t;if(u=Math.round(u/50),0===u)return 30;let a=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return 2===u&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];3===t[0].length&&(n=n.split("").map(e=>e+e).join(""));const r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},o.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),o=Math.min(Math.min(t,n),r),u=i-o;let a,l;return a=u<1?o/(1-u):0,l=u<=0?0:i===t?(n-r)/u%6:i===n?2+(r-t)/u:4+(t-n)/u,l/=6,l%=1,[360*l,100*u,100*a]},o.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];const i=[0,0,0],o=t%1*6,u=o%1,a=1-u;let l=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=u,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=u;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=u,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-n)*r,[255*(n*i[0]+l),255*(n*i[1]+l),255*(n*i[2]+l)]},o.hcg.hsv=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);let r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},o.hcg.hsl=function(e){const t=e[1]/100,n=e[2]/100*(1-t)+.5*t;let r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},o.hcg.hwb=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){const t=e[1]/100,n=1-e[2]/100,r=n-t;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,n)=>{const r=n(5311),i=n(8577),o={};Object.keys(r).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});const t=i(e);Object.keys(t).forEach(n=>{const r=t[n];o[e][n]=function(e){const t=function(...t){const n=t[0];if(null==n)return n;n.length>1&&(t=n);const r=e(t);if("object"==typeof r)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return"conversion"in e&&(t.conversion=e.conversion),t}(r),o[e][n].raw=function(e){const t=function(...t){const n=t[0];return null==n?n:(n.length>1&&(t=n),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=o},8577:(e,t,n)=>{const r=n(5311);function i(e){const t=function(){const e={},t=Object.keys(r);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;){const e=n.pop(),i=Object.keys(r[e]);for(let r=i.length,o=0;o<r;o++){const r=i[o],u=t[r];-1===u.distance&&(u.distance=t[e].distance+1,u.parent=e,n.unshift(r))}}return t}function o(e,t){return function(n){return t(e(n))}}function u(e,t){const n=[t[e].parent,e];let i=r[t[e].parent][e],u=t[e].parent;for(;t[u].parent;)n.unshift(t[u].parent),i=o(r[t[u].parent][u],i),u=t[u].parent;return i.conversion=n,i}e.exports=function(e){const t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){const e=r[i];null!==t[e].parent&&(n[e]=u(e,t))}return n}},3110:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},3300:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},2517:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},6349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},6591:e=>{"use strict";e.exports=(e,t)=>{t=t||process.argv;const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r<i)}},2918:e=>{"use strict";e.exports=(e,t=process.argv)=>{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r<i)}},2738:(e,t,n)=>{"use strict";e.exports=n(5864).isCI},703:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141))},4623:e=>{var t=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,u="object"==typeof global&&global&&global.Object===Object&&global,a="object"==typeof self&&self&&self.Object===Object&&self,l=u||a||Function("return this")(),s=Object.prototype.toString,c=Math.max,f=Math.min,d=function(){return l.Date.now()};function p(e,t,n){var r,i,o,u,a,l,s=0,p=!1,v=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,o=i;return r=i=void 0,s=t,u=e.apply(o,n)}function _(e){return s=e,a=setTimeout(D,t),p?g(e):u}function y(e){var n=e-l;return void 0===l||n>=t||n<0||v&&e-s>=o}function D(){var e=d();if(y(e))return w(e);a=setTimeout(D,function(e){var n=t-(e-l);return v?f(n,o-(e-s)):n}(e))}function w(e){return a=void 0,b&&r?g(e):(r=i=void 0,u)}function E(){var e=d(),n=y(e);if(r=arguments,i=this,l=e,n){if(void 0===a)return _(l);if(v)return a=setTimeout(D,t),g(l)}return void 0===a&&(a=setTimeout(D,t)),u}return t=m(t)||0,h(n)&&(p=!!n.leading,o=(v="maxWait"in n)?c(m(n.maxWait)||0,t):o,b="trailing"in n?!!n.trailing:b),E.cancel=function(){void 0!==a&&clearTimeout(a),s=0,r=l=i=a=void 0},E.flush=function(){return void 0===a?u:w(d())},E}function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function m(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==s.call(e)}(e))return NaN;if(h(e)){var u="function"==typeof e.valueOf?e.valueOf():e;e=h(u)?u+"":u}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(t,"");var a=r.test(e);return a||i.test(e)?o(e.slice(2),a?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return h(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),p(e,t,{leading:r,maxWait:t,trailing:i})}},4046:(e,t,n)=>{"use strict";const r=n(327),i=n(1305),o=n(5449),u=(e,t)=>{t=Object.assign({showCursor:!1},t);let n=0;const u=(...u)=>{t.showCursor||i.hide();let a=u.join(" ")+"\n";a=o(a,(e=>{const{columns:t}=e;return t?"win32"===process.platform?t-1:t:80})(e),{trim:!1,hard:!0,wordWrap:!1}),e.write(r.eraseLines(n)+a),n=a.split("\n").length};return u.clear=()=>{e.write(r.eraseLines(n)),n=0},u.done=()=>{n=0,t.showCursor||i.show()},u};e.exports=u(process.stdout),e.exports.default=e.exports,e.exports.stderr=u(process.stderr),e.exports.create=u},2658:e=>{"use strict";e.exports=(e,t)=>{for(const n of Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)))Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n));return e}},9381:e=>{"use strict";
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var u,a,l=i(e),s=1;s<arguments.length;s++){for(var c in u=Object(arguments[s]))n.call(u,c)&&(l[c]=u[c]);if(t){a=t(u);for(var f=0;f<a.length;f++)r.call(u,a[f])&&(l[a[f]]=u[a[f]])}}return l}},4767:(e,t,n)=>{"use strict";const r=n(2658);e.exports=(e,t)=>{if(!0===t)throw new TypeError("The second argument is now an options object");if("function"!=typeof e)throw new TypeError("Expected a function");let n;t=t||{};let i=!1;const o=e.displayName||e.name||"<anonymous>",u=function(){if(i){if(!0===t.throw)throw new Error(`Function \`${o}\` can only be called once`);return n}return i=!0,n=e.apply(this,arguments),e=null,n};return r(u,e),u}},6976:(e,t,n)=>{"use strict";var r=n(9090);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},6271:(e,t,n)=>{e.exports=n(6976)()},9090:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6099:(e,t,n)=>{"use strict";
+/** @license React v16.13.1
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var r=n(9381),i="function"==typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,u=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,s=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,h=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116,v="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function y(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||g}function D(){}function w(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(b(85));this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},D.prototype=y.prototype;var E=w.prototype=new D;E.constructor=w,r(E,y.prototype),E.isPureReactComponent=!0;var C={current:null},T=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,i={},u=null,a=null;if(null!=t)for(r in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(u=""+t.key),t)T.call(t,r)&&!k.hasOwnProperty(r)&&(i[r]=t[r]);var l=arguments.length-2;if(1===l)i.children=n;else if(1<l){for(var s=Array(l),c=0;c<l;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===i[r]&&(i[r]=l[r]);return{$$typeof:o,type:e,key:u,ref:a,props:i,_owner:C.current}}function M(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var x=/\/+/g,A=[];function P(e,t,n,r){if(A.length){var i=A.pop();return i.result=e,i.keyPrefix=t,i.func=n,i.context=r,i.count=0,i}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function O(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>A.length&&A.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,i){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var l=!1;if(null===t)l=!0;else switch(a){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case u:l=!0}}if(l)return r(i,t,""===n?"."+N(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s<t.length;s++){var c=n+N(a=t[s],s);l+=e(a,c,r,i)}else if(null===t||"object"!=typeof t?c=null:c="function"==typeof(c=v&&t[v]||t["@@iterator"])?c:null,"function"==typeof c)for(t=c.call(t),s=0;!(a=t.next()).done;)l+=e(a=a.value,c=n+N(a,s++),r,i);else if("object"===a)throw r=""+t,Error(b(31,"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return l}(e,"",t,n)}function N(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function I(e,t){e.func.call(e.context,t,e.count++)}function F(e,t,n){var r=e.result,i=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?B(e,r,n,(function(e){return e})):null!=e&&(M(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,i+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(x,"$&/")+"/")+n)),r.push(e))}function B(e,t,n,r,i){var o="";null!=n&&(o=(""+n).replace(x,"$&/")+"/"),R(e,F,t=P(t,o,r,i)),O(t)}var L={current:null};function U(){var e=L.current;if(null===e)throw Error(b(321));return e}var j={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:C,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:function(e,t,n){if(null==e)return e;var r=[];return B(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;R(e,I,t=P(null,null,t,n)),O(t)},count:function(e){return R(e,(function(){return null}),null)},toArray:function(e){var t=[];return B(e,t,null,(function(e){return e})),t},only:function(e){if(!M(e))throw Error(b(143));return e}},t.Component=y,t.Fragment=a,t.Profiler=s,t.PureComponent=w,t.StrictMode=l,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=j,t.cloneElement=function(e,t,n){if(null==e)throw Error(b(267,e));var i=r({},e.props),u=e.key,a=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,l=C.current),void 0!==t.key&&(u=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)T.call(t,c)&&!k.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];i.children=s}return{$$typeof:o,type:e.type,key:u,ref:a,props:i,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:d,render:e}},t.isValidElement=M,t.lazy=function(e){return{$$typeof:m,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:h,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return U().useCallback(e,t)},t.useContext=function(e,t){return U().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return U().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return U().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return U().useLayoutEffect(e,t)},t.useMemo=function(e,t){return U().useMemo(e,t)},t.useReducer=function(e,t,n){return U().useReducer(e,t,n)},t.useRef=function(e){return U().useRef(e)},t.useState=function(e){return U().useState(e)},t.version="16.13.1"},7382:(e,t,n)=>{"use strict";e.exports=n(6099)},2428:(e,t,n)=>{"use strict";const r=n(4767),i=n(6458);e.exports=r(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},8992:(e,t)=>{"use strict";
+/** @license React v0.13.6
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,i=3,o=-1,u=-1,a=!1,l=!1;function s(){if(!a){var e=n.expirationTime;l?E():l=!0,w(d,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var o=i,a=u;i=e,u=t;try{var l=r()}finally{i=o,u=a}if("function"==typeof l)if(l={callback:l,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=l.next=l.previous=l;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=l,s()),(t=r.previous).next=r.previous=l,l.next=r,l.previous=t}}function f(){if(-1===o&&null!==n&&1===n.priorityLevel){a=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{a=!1,null!==n?s():l=!1}}}function d(e){a=!0;var i=r;r=e;try{if(e)for(;null!==n;){var o=t.unstable_now();if(!(n.expirationTime<=o))break;do{c()}while(null!==n&&n.expirationTime<=o)}else if(null!==n)do{c()}while(null!==n&&!C())}finally{a=!1,r=i,null!==n?s():l=!1,f()}}var p,h,m=Date,v="function"==typeof setTimeout?setTimeout:void 0,b="function"==typeof clearTimeout?clearTimeout:void 0,g="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,_="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function y(e){p=g((function(t){b(h),e(t)})),h=v((function(){_(p),e(t.unstable_now())}),100)}if("object"==typeof performance&&"function"==typeof performance.now){var D=performance;t.unstable_now=function(){return D.now()}}else t.unstable_now=function(){return m.now()};var w,E,C,T=null;if("undefined"!=typeof window?T=window:"undefined"!=typeof global&&(T=global),T&&T._schedMock){var k=T._schedMock;w=k[0],E=k[1],C=k[2],t.unstable_now=k[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var S=null,M=function(e){if(null!==S)try{S(e)}finally{S=null}};w=function(e){null!==S?setTimeout(w,0,e):(S=e,setTimeout(M,0,!1))},E=function(){S=null},C=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof g&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof _&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var x=null,A=!1,P=-1,O=!1,R=!1,N=0,I=33,F=33;C=function(){return N<=t.unstable_now()};var B=new MessageChannel,L=B.port2;B.port1.onmessage=function(){A=!1;var e=x,n=P;x=null,P=-1;var r=t.unstable_now(),i=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return O||(O=!0,y(U)),x=e,void(P=n);i=!0}if(null!==e){R=!0;try{e(i)}finally{R=!1}}};var U=function(e){if(null!==x){y(U);var t=e-N+F;t<F&&I<F?(8>t&&(t=8),F=t<I?I:t):I=t,N=e+F,A||(A=!0,L.postMessage(void 0))}else O=!1};w=function(e,t){x=e,P=t,R||0>t?L.postMessage(void 0):O||(O=!0,y(U))},E=function(){x=null,A=!1,P=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=i,u=o;i=e,o=t.unstable_now();try{return n()}finally{i=r,o=u,f()}},t.unstable_next=function(e){switch(i){case 1:case 2:case 3:var n=3;break;default:n=i}var r=i,u=o;i=n,o=t.unstable_now();try{return e()}finally{i=r,o=u,f()}},t.unstable_scheduleCallback=function(e,r){var u=-1!==o?o:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=u+r.timeout;else switch(i){case 1:r=u+-1;break;case 2:r=u+250;break;case 5:r=u+1073741823;break;case 4:r=u+1e4;break;default:r=u+5e3}if(e={callback:e,priorityLevel:i,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,s();else{u=null;var a=n;do{if(a.expirationTime>r){u=a;break}a=a.next}while(a!==n);null===u?u=n:u===n&&(n=e,s()),(r=u.previous).next=u.previous=e,e.next=u,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=i;return function(){var r=i,u=o;i=n,o=t.unstable_now();try{return e.apply(this,arguments)}finally{i=r,o=u,f()}}},t.unstable_getCurrentPriorityLevel=function(){return i},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime<u||C())},t.unstable_continueExecution=function(){null!==n&&s()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return n}},5201:(e,t,n)=>{"use strict";e.exports=n(8992)},6458:(e,t,n)=>{var r,i=n(2357),o=n(8082),u=n(8614);function a(){c&&(c=!1,o.forEach((function(e){try{process.removeListener(e,s[e])}catch(e){}})),process.emit=h,process.reallyExit=d,r.count-=1)}function l(e,t,n){r.emitted[e]||(r.emitted[e]=!0,r.emit(e,t,n))}"function"!=typeof u&&(u=u.EventEmitter),process.__signal_exit_emitter__?r=process.__signal_exit_emitter__:((r=process.__signal_exit_emitter__=new u).count=0,r.emitted={}),r.infinite||(r.setMaxListeners(1/0),r.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===c&&f();var n="exit";t&&t.alwaysLast&&(n="afterexit");return r.on(n,e),function(){r.removeListener(n,e),0===r.listeners("exit").length&&0===r.listeners("afterexit").length&&a()}},e.exports.unload=a;var s={};o.forEach((function(e){s[e]=function(){process.listeners(e).length===r.count&&(a(),l("exit",null,e),l("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=f;var c=!1;function f(){c||(c=!0,r.count+=1,o=o.filter((function(e){try{return process.on(e,s[e]),!0}catch(e){return!1}})),process.emit=m,process.reallyExit=p)}var d=process.reallyExit;function p(e){process.exitCode=e||0,l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),d.call(process,process.exitCode)}var h=process.emit;function m(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var n=h.apply(this,arguments);return l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),n}return h.apply(this,arguments)}},8082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},7498:(e,t,n)=>{"use strict";const r=n(703),i=["",""],o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,u=new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[90,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49]]),a=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=Array.from(e.normalize());n="number"==typeof n?n:l.length;let s,c=!1,f=0,d="";for(const p of l.entries()){const l=p[0],h=p[1];let m=!1;if(-1!==i.indexOf(h)){c=!0;const t=/\d[^m]*/.exec(e.slice(l,l+4));s=39===t?null:t}else c&&"m"===h&&(c=!1,m=!0);if(c||m||++f,!o.test(h)&&r(h.codePointAt())&&++f,f>t&&f<=n)d+=h;else if(f!==t||c||void 0===s||39===s){if(f>=n){void 0!==s&&(d+=a(u.get(parseInt(s,10))||39));break}}else d+=a(s)}return d}},2989:(e,t,n)=>{"use strict";const r=n(3455),i=n(5640);e.exports=e=>r(e).replace(i()," ").length},5478:(e,t,n)=>{"use strict";const r=n(3455),i=n(703);e.exports=e=>{if("string"!=typeof e||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n<e.length;n++){const r=e.codePointAt(n);r<=31||r>=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},5554:(e,t,n)=>{"use strict";const r=n(7402),i=n(703),o=n(2517)();e.exports=e=>{if("string"!=typeof(e=e.replace(o,"  "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n<e.length;n++){const r=e.codePointAt(n);r<=31||r>=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},3455:(e,t,n)=>{"use strict";const r=n(7788);e.exports=e=>"string"==typeof e?e.replace(r(),""):e},7402:(e,t,n)=>{"use strict";const r=n(5378),i=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=i,e.exports.default=i},5180:(e,t,n)=>{"use strict";const r=n(2087),i=n(6591),o=process.env;let u;function a(e){return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(function(e){if(!1===u)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(e&&!e.isTTY&&!0!==u)return 0;const t=u?1:0;if("win32"===process.platform){const e=r.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:t;if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0;if("truecolor"===o.COLORTERM)return 3;if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)||"COLORTERM"in o?1:(o.TERM,t)}(e))}i("no-color")||i("no-colors")||i("color=false")?u=!1:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(u=!0),"FORCE_COLOR"in o&&(u=0===o.FORCE_COLOR.length||0!==parseInt(o.FORCE_COLOR,10)),e.exports={supportsColor:a,stdout:a(process.stdout),stderr:a(process.stderr)}},9428:(e,t,n)=>{"use strict";const r=n(2087),i=n(3867),o=n(2918),{env:u}=process;let a;function l(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function s(e,t){if(0===a)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===a)return 0;const n=a||0;if("dumb"===u.TERM)return n;if("win32"===process.platform){const e=r.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in u)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in u)||"codeship"===u.CI_NAME?1:n;if("TEAMCITY_VERSION"in u)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in u)return 1;if("truecolor"===u.COLORTERM)return 3;if("TERM_PROGRAM"in u){const e=parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(u.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)||"COLORTERM"in u?1:n}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?a=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(a=1),"FORCE_COLOR"in u&&(a="true"===u.FORCE_COLOR?1:"false"===u.FORCE_COLOR?0:0===u.FORCE_COLOR.length?1:Math.min(parseInt(u.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return l(s(e,e&&e.isTTY))},stdout:l(s(!0,i.isatty(1))),stderr:l(s(!0,i.isatty(2)))}},128:(e,t,n)=>{"use strict";const r=n(5478);e.exports=e=>{let t=0;for(const n of e.split("\n"))t=Math.max(t,r(n));return t}},5449:(e,t,n)=>{"use strict";const r=n(5554),i=n(7402),o=n(5256),u=new Set(["",""]),a=e=>`${u.values().next().value}[${e}m`,l=(e,t,n)=>{const o=[...t];let a=!1,l=r(i(e[e.length-1]));for(const[t,i]of o.entries()){const s=r(i);if(l+s<=n?e[e.length-1]+=i:(e.push(i),l=0),u.has(i))a=!0;else if(a&&"m"===i){a=!1;continue}a||(l+=s,l===n&&t<o.length-1&&(e.push(""),l=0))}!l&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},s=e=>{const t=e.split(" ");let n=t.length;for(;n>0&&!(r(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},c=(e,t,n={})=>{if(!1!==n.trim&&""===e.trim())return"";let i,c="",f="";const d=(e=>e.split(" ").map(e=>r(e)))(e);let p=[""];for(const[i,o]of e.split(" ").entries()){!1!==n.trim&&(p[p.length-1]=p[p.length-1].trimLeft());let e=r(p[p.length-1]);if(0!==i&&(e>=t&&(!1===n.wordWrap||!1===n.trim)&&(p.push(""),e=0),(e>0||!1===n.trim)&&(p[p.length-1]+=" ",e++)),n.hard&&d[i]>t){const n=t-e,r=1+Math.floor((d[i]-n-1)/t);Math.floor((d[i]-1)/t)<r&&p.push(""),l(p,o,t)}else{if(e+d[i]>t&&e>0&&d[i]>0){if(!1===n.wordWrap&&e<t){l(p,o,t);continue}p.push("")}e+d[i]>t&&!1===n.wordWrap?l(p,o,t):p[p.length-1]+=o}}!1!==n.trim&&(p=p.map(s)),c=p.join("\n");for(const[e,t]of[...c].entries()){if(f+=t,u.has(t)){const t=parseFloat(/\d[^m]*/.exec(c.slice(e,e+4)));i=39===t?null:t}const n=o.codes.get(Number(i));i&&n&&("\n"===c[e+1]?f+=a(n):"\n"===t&&(f+=a(i)))}return f};e.exports=(e,t,n)=>String(e).normalize().split("\n").map(e=>c(e,t,n)).join("\n")},7356:function(module,exports){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,wrapper;wrapper=function(Module,cb){var Module;"function"==typeof Module&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(e){return void t(e)}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb),Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,nodeFS,nodePath;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE)Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn),Module.read=function(e,t){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e})),Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Module.readAsync=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):n()},r.onerror=n,r.send(null)},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){if(e){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var n=Runtime.funcWrappers[t];return n[e]||(1===t.length?n[e]=function(){return Runtime.dynCall(t,e)}:2===t.length?n[e]=function(n){return Runtime.dynCall(t,e,[n])}:n[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),n[e]}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=15+(STACKTOP=STACKTOP+e|0)&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=15+(STATICTOP=STATICTOP+e|0)&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],n=-16&(t+e+15|0);return HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY&&!enlargeMemory()?(HEAP32[DYNAMICTOP_PTR>>2]=t,0):t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,n){return n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!=e&&0!==e){var n=1+(e.length<<2);stringToUTF8(e,t=Runtime.stackAlloc(n),n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,r,i){var o=getCFunc(e),u=[],a=0;if(r)for(var l=0;l<r.length;l++){var s=toC[n[l]];s?(0===a&&(a=Runtime.stackSave()),u[l]=s(r[l])):u[l]=r[l]}var c=o.apply(null,u);if("string"===t&&(c=Pointer_stringify(c)),0!==a){if(i&&i.async)return void EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(a)}));Runtime.stackRestore(a)}return c};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource)for(var e in JSsource={},JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every((function(e){return"number"===e})),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map((function(e,t){return"$"+t})),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,t,n,r){var i,o;"number"==typeof e?(i=!0,o=e):(i=!1,o=e.length);var u,a="string"==typeof t?t:null;if(u=n==ALLOC_NONE?r:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(o,a?1:t.length)),i){var l;for(r=u,assert(0==(3&u)),l=u+(-4&o);r<l;r+=4)HEAP32[r>>2]=0;for(l=u+o;r<l;)HEAP8[r++>>0]=0;return u}if("i8"===a)return e.subarray||e.slice?HEAPU8.set(e,u):HEAPU8.set(new Uint8Array(e),u),u;for(var s,c,f,d=0;d<o;){var p=e[d];"function"==typeof p&&(p=Runtime.getFunctionIndex(p)),0!==(s=a||t[d])?("i64"==s&&(s="i32"),setValue(u+d,p,s),f!==s&&(c=Runtime.getNativeTypeSize(s),f=s),d+=c):d++}return u}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var n,r=0,i=0;r|=n=HEAPU8[e+i>>0],(0!=n||t)&&(i++,!t||i!=t););t||(t=i);var o="";if(r<128){for(var u;t>0;)u=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+u:u,e+=1024,t-=1024;return o}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var r,i,o,u,a,l="";;){if(!(r=e[t++]))return l;if(128&r)if(i=63&e[t++],192!=(224&r))if(o=63&e[t++],224==(240&r)?r=(15&r)<<12|i<<6|o:(u=63&e[t++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|u:(a=63&e[t++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|u<<6|a:(1&r)<<30|i<<24|o<<18|u<<12|a<<6|63&e[t++])),r<65536)l+=String.fromCharCode(r);else{var s=r-65536;l+=String.fromCharCode(55296|s>>10,56320|1023&s)}else l+=String.fromCharCode((31&r)<<6|i);else l+=String.fromCharCode(r)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,r){if(!(r>0))return 0;for(var i=n,o=n+r-1,u=0;u<e.length;++u){var a=e.charCodeAt(u);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++u)),a<=127){if(n>=o)break;t[n++]=a}else if(a<=2047){if(n+1>=o)break;t[n++]=192|a>>6,t[n++]=128|63&a}else if(a<=65535){if(n+2>=o)break;t[n++]=224|a>>12,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=2097151){if(n+3>=o)break;t[n++]=240|a>>18,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=67108863){if(n+4>=o)break;t[n++]=248|a>>24,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else{if(n+5>=o)break;t[n++]=252|a>>30,t[n++]=128|a>>24&63,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}}return t[n]=0,n-i}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r>=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++n)),r<=127?++t:t+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return t}Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),r=lengthBytesUTF8(n)+1,i=_malloc(r);stringToUTF8(n,i,r);var o=_malloc(4),u=t(i,0,0,o);if(0===getValue(o,"i32")&&u)return Pointer_stringify(u)}catch(e){}finally{i&&_free(i),o&&_free(o),u&&_free(u)}return e}return Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}Module.stackTrace=stackTrace,STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;function getTotalMemory(){return TOTAL_MEMORY}if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var r=n>0?n:lengthBytesUTF8(e)+1,i=new Array(r),o=stringToUTF8Array(e,i,0,i.length);return t&&(i.length=o),i}function intArrayToString(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];r>255&&(r&=255),t.push(String.fromCharCode(r))}return t.join("")}function writeStringToMemory(e,t,n){var r,i;Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),n&&(i=t+lengthBytesUTF8(e),r=HEAP8[i]),stringToUTF8(e,t,1/0),n&&(HEAP8[i]=r)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var r=0;r<e.length;++r)HEAP8[t++>>0]=e.charCodeAt(r);n||(HEAP8[t>>0]=0)}if(Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(e,t,n,r,i,o,u,a){return _nbind.callbackSignatureList[e].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(e,t,n,r,i,o,u,a){return ASM_CONSTS[e](t,n,r,i,o,u,a)}function _emscripten_asm_const_iiiii(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiidddddd(e,t,n,r,i,o,u,a,l){return ASM_CONSTS[e](t,n,r,i,o,u,a,l)}function _emscripten_asm_const_iiididi(e,t,n,r,i,o,u){return ASM_CONSTS[e](t,n,r,i,o,u)}function _emscripten_asm_const_iiii(e,t,n,r){return ASM_CONSTS[e](t,n,r)}function _emscripten_asm_const_iiiid(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiiiii(e,t,n,r,i,o){return ASM_CONSTS[e](t,n,r,i,o)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}function _defineHidden(e){return function(t,n){Object.defineProperty(t,n,{configurable:!1,enumerable:!1,value:e,writable:!0})}}STATICTOP+=16;var _nbind={};function __nbind_free_external(e){_nbind.externalList[e].dereference(e)}function __nbind_reference_external(e){_nbind.externalList[e].reference()}function _llvm_stackrestore(e){var t=_llvm_stacksave,n=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(n)}function __nbind_register_pool(e,t,n,r){_nbind.Pool.pageSize=e,_nbind.Pool.usedPtr=t/4,_nbind.Pool.rootPtr=n,_nbind.Pool.pagePtr=r/4,HEAP32[t/4]=16909060,1==HEAP8[t]&&(_nbind.bigEndian=!0),HEAP32[t/4]=0,_nbind.makeTypeKindTbl=((i={})[1024]=_nbind.PrimitiveType,i[64]=_nbind.Int64Type,i[2048]=_nbind.BindClass,i[3072]=_nbind.BindClassPtr,i[4096]=_nbind.SharedClassPtr,i[5120]=_nbind.ArrayType,i[6144]=_nbind.ArrayType,i[7168]=_nbind.CStringType,i[9216]=_nbind.CallbackType,i[10240]=_nbind.BindType,i),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var i,o=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});o.proto=Module,_nbind.BindClass.list.push(o)}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(0==e)Browser.mainLoop.scheduler=function(){var e=0|Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now());setTimeout(Browser.mainLoop.runner,e)},Browser.mainLoop.method="timeout";else if(1==e)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(2==e){if(!window.setImmediate){var n=[];window.addEventListener("message",(function(e){e.source===window&&"setimmediate"===e.data&&(e.stopPropagation(),n.shift()())}),!0),window.setImmediate=function(e){n.push(e),ENVIRONMENT_IS_WORKER?(void 0===Module.setImmediates&&(Module.setImmediates=[]),Module.setImmediates.push(e),window.postMessage({target:"setimmediate"})):window.postMessage("setimmediate","*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(e,t,n,r,i){var o;Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=r,o=void 0!==r?function(){Module.dynCall_vi(e,r)}:function(){Module.dynCall_v(e)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT)if(Browser.mainLoop.queue.length>0){var e=Date.now(),t=Browser.mainLoop.queue.shift();if(t.func(t.arg),Browser.mainLoop.remainingBlockers){var n=Browser.mainLoop.remainingBlockers,r=n%1==0?n-1:Math.floor(n);t.counted?Browser.mainLoop.remainingBlockers=r:(r+=.5,Browser.mainLoop.remainingBlockers=(8*n+r)/9)}if(console.log('main loop blocker "'+t.name+'" took '+(Date.now()-e)+" ms"),Browser.mainLoop.updateStatus(),u<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0)}else u<Browser.mainLoop.currentlyRunningMainloop||(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,1==Browser.mainLoop.timingMode&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():(0==Browser.mainLoop.timingMode&&(Browser.mainLoop.tickStartTime=_emscripten_get_now()),"timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(o),u<Browser.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())))},i||(t&&t>0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),n)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,n=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(n,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,n=Browser.mainLoop.expectedBlockers;t?t<n?Module.setStatus(e+" ("+(n-t)+"/"+n+")"):Module.setStatus(e):Module.setStatus("")}},runIter:function(e){if(!ABORT){if(Module.preMainLoop&&!1===Module.preMainLoop())return;try{e()}catch(e){if(e instanceof ExitStatus)return;throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(e){Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,Module.noImageDecoding||void 0!==Browser.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={canHandle:function(e){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,n,r){var i=null;if(Browser.hasBlobConstructor)try{(i=new Blob([e],{type:Browser.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Browser.getMimetype(t)}))}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var o=new Browser.BlobBuilder;o.append(new Uint8Array(e).buffer),i=o.getBlob()}var u=Browser.URLObject.createObjectURL(i),a=new Image;a.onload=function(){assert(a.complete,"Image "+t+" could not be decoded");var r=document.createElement("canvas");r.width=a.width,r.height=a.height,r.getContext("2d").drawImage(a,0,0),Module.preloadedImages[t]=r,Browser.URLObject.revokeObjectURL(u),n&&n(e)},a.onerror=function(e){console.log("Image "+u+" could not be decoded"),r&&r()},a.src=u}};Module.preloadPlugins.push(e);var t={canHandle:function(e){return!Module.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,n,r){var i=!1;function o(r){i||(i=!0,Module.preloadedAudios[t]=r,n&&n(e))}function u(){i||(i=!0,Module.preloadedAudios[t]=new Audio,r&&r())}if(!Browser.hasBlobConstructor)return u();try{var a=new Blob([e],{type:Browser.getMimetype(t)})}catch(e){return u()}var l=Browser.URLObject.createObjectURL(a),s=new Audio;s.addEventListener("canplaythrough",(function(){o(s)}),!1),s.onerror=function(n){i||(console.log("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),s.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="",r=0,i=0,o=0;o<e.length;o++)for(r=r<<8|e[o],i+=8;i>=6;){var u=r>>i-6&63;i-=6,n+=t[u]}return 2==i?(n+=t[(3&r)<<4],n+="=="):4==i&&(n+=t[(15&r)<<2],n+="="),n}(e),o(s))},s.src=l,Browser.safeSetTimeout((function(){o(s)}),1e4)}};Module.preloadPlugins.push(t);var n=Module.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&n.addEventListener("click",(function(e){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),e.preventDefault())}),!1))}function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}},createContext:function(e,t,n,r){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var i,o;if(t){var u={antialias:!1,alpha:!1};if(r)for(var a in r)u[a]=r[a];(o=GL.createContext(e,u))&&(i=GL.getContext(o).GLctx)}else i=e.getContext("2d");return i?(n&&(t||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=i,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),Browser.init()),i):null},destroyContext:function(e,t,n){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t,n){Browser.lockPointer=e,Browser.resizeCanvas=t,Browser.vrDevice=n,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1),void 0===Browser.vrDevice&&(Browser.vrDevice=null);var r=Module.canvas;function i(){Browser.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},r.exitFullscreen=r.exitFullscreen.bind(document),Browser.lockPointer&&r.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(r)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1),document.addEventListener("MSFullscreenChange",i,!1));var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),n?o.requestFullscreen({vrDisplay:n}):o.requestFullscreen()},requestFullScreen:function(e,t,n){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(e,t,n){return Browser.requestFullscreen(e,t,n)},Browser.requestFullscreen(e,t,n)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var n=Math.max(Browser.nextRAF-t,0);setTimeout(e,n)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach((function(e){e()}))}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}))},safeSetTimeout:function(e,t){return Module.noExitRuntime=!0,setTimeout((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}),t)},safeSetInterval:function(e,t){return Module.noExitRuntime=!0,setInterval((function(){ABORT||Browser.allowAsyncCallbacks&&e()}),t)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail;break;case"mousewheel":t=e.wheelDelta;break;case"wheel":t=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),n=Module.canvas.width,r=Module.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,o=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var u=e.touch;if(void 0===u)return;var a=u.pageX-(i+t.left),l=u.pageY-(o+t.top),s={x:a*=n/t.width,y:l*=r/t.height};if("touchstart"===e.type)Browser.lastTouches[u.identifier]=s,Browser.touches[u.identifier]=s;else if("touchend"===e.type||"touchmove"===e.type){var c=Browser.touches[u.identifier];c||(c=s),Browser.lastTouches[u.identifier]=c,Browser.touches[u.identifier]=s}return}var f=e.pageX-(i+t.left),d=e.pageY-(o+t.top);f*=n/t.width,d*=r/t.height,Browser.mouseMovementX=f-Browser.mouseX,Browser.mouseMovementY=d-Browser.mouseY,Browser.mouseX=f,Browser.mouseY=d}},asyncLoad:function(e,t,n,r){var i=r?"":getUniqueRunDependency("al "+e);Module.readAsync(e,(function(n){assert(n,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(n)),i&&removeRunDependency(i)}),(function(t){if(!n)throw'Loading data file "'+e+'" failed.';n()})),i&&addRunDependency(i)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,n){var r=Module.canvas;Browser.updateCanvasDimensions(r,e,t),n||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,n){t&&n?(e.widthNative=t,e.heightNative=n):(t=e.widthNative,n=e.heightNative);var r=t,i=n;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(r/i<Module.forcedAspectRatio?r=Math.round(i*Module.forcedAspectRatio):i=Math.round(r/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var o=Math.min(screen.width/r,screen.height/i);r=Math.round(r*o),i=Math.round(i*o)}Browser.resizeCanvas?(e.width!=r&&(e.width=r),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=n&&(e.height=n),void 0!==e.style&&(r!=t||i!=n?(e.style.setProperty("width",r+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var e=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,e}},SYSCALLS={varargs:0,get:function(e){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return assert(e>=0?0===t:-1===t),e},getZero:function(){assert(0===SYSCALLS.get())}};function ___syscall6(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD();return FS.close(n),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _typeModule(e){var t=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function n(e,t,n,r,i,o){if(1==t){var u=896&r;128!=u&&256!=u&&384!=u||(e="X const")}return(o?n.replace("X",e).replace("Y",i):e.replace("X",n).replace("Y",i)).replace(/([*&]) (?=[*&])/g,"$1")}function r(e,t){var n=t.flags,r=896&n,i=15360&n;return t.name||1024!=i||(1==t.ptrSize?t.name=(16&n?"":(8&n?"un":"")+"signed ")+"char":t.name=(8&n?"u":"")+(32&n?"float":"int")+8*t.ptrSize+"_t"),8!=t.ptrSize||32&n||(i=64),2048==i&&(512==r||640==r?i=4096:r&&(i=3072)),e(i,t)}var i={Type:function(){function e(e){this.id=e.id,this.name=e.name,this.flags=e.flags,this.spec=e}return e.prototype.toString=function(){return this.name},e}(),getComplexType:function e(i,o,u,a,l,s,c,f){void 0===s&&(s="X"),void 0===f&&(f=1);var d=u(i);if(d)return d;var p,h=a(i),m=h.placeholderFlag,v=t[m];c&&v&&(s=n(c[2],c[0],s,v[0],"?",!0)),0==m&&(p="Unbound"),m>=10&&(p="Corrupt"),f>20&&(p="Deeply nested"),p&&function(e,t,n,r,i){throw new Error(e+" type "+n.replace("X",t+"?")+(r?" with flag "+r:"")+" in "+i)}(p,i,s,m,l||"?");var b,g=e(h.paramList[0],o,u,a,l,s,v,f+1),_={flags:v[0],id:i,name:"",paramList:[g]},y=[],D="?";switch(h.placeholderFlag){case 1:b=g.spec;break;case 2:if(1024==(15360&g.flags)&&1==g.spec.ptrSize){_.flags=7168;break}case 3:case 6:case 5:b=g.spec,g.flags;break;case 8:D=""+h.paramList[1],_.paramList.push(h.paramList[1]);break;case 9:for(var w=0,E=h.paramList[1];w<E.length;w++){var C=e(E[w],o,u,a,l,s,v,f+1);y.push(C.name),_.paramList.push(C)}D=y.join(", ")}if(_.name=n(v[2],v[0],g.name,g.flags,D),b){for(var T=0,k=Object.keys(b);T<k.length;T++){var S=k[T];_[S]=_[S]||b[S]}_.flags|=b.flags}return r(o,_)},makeType:r,structureList:t};return e.output=i,e.output||i}function __nbind_register_type(e,t){var n={flags:10240,id:e,name:_nbind.readAsciiString(t)};_nbind.makeType(_nbind.constructType,n)}function __nbind_register_callback_signature(e,t){var n=_nbind.readTypeIdList(e,t),r=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[r]=_nbind.makeJSCaller(n),r}function __extends(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function __nbind_register_class(e,t,n,r,i,o,u){var a=_nbind.readAsciiString(u),l=_nbind.readPolicyList(t),s=HEAPU32.subarray(e/4,e/4+2),c={flags:2048|(l.Value?2:0),id:s[0],name:a},f=_nbind.makeType(_nbind.constructType,c);f.ptrType=_nbind.getComplexType(s[1],_nbind.constructType,_nbind.getType,_nbind.queryType),f.destroy=_nbind.makeMethodCaller(f.ptrType,{boundID:c.id,flags:0,name:"destroy",num:0,ptr:o,title:f.name+".free",typeList:["void","uint32_t","uint32_t"]}),i&&(f.superIdList=Array.prototype.slice.call(HEAPU32.subarray(n/4,n/4+i)),f.upcastList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+i))),Module[f.name]=f.makeBound(l),_nbind.BindClass.list.push(f)}function _removeAccessorPrefix(e){return e.replace(/^[Gg]et_?([A-Z]?([A-Z]?))/,(function(e,t,n){return n?t:t.toLowerCase()}))}function __nbind_register_function(e,t,n,r,i,o,u,a,l,s){var c,f=_nbind.getType(e),d=_nbind.readPolicyList(t),p=_nbind.readTypeIdList(n,r);if(5==u)c=[{direct:i,name:"__nbindConstructor",ptr:0,title:f.name+" constructor",typeList:["uint32_t"].concat(p.slice(1))},{direct:o,name:"__nbindValueConstructor",ptr:0,title:f.name+" value constructor",typeList:["void","uint32_t"].concat(p.slice(1))}];else{var h=_nbind.readAsciiString(a),m=(f.name&&f.name+".")+h;3!=u&&4!=u||(h=_removeAccessorPrefix(h)),c=[{boundID:e,direct:o,name:h,ptr:i,title:m,typeList:p}]}for(var v=0,b=c;v<b.length;v++){var g=b[v];g.signatureType=u,g.policyTbl=d,g.num=l,g.flags=s,f.addMethod(g)}}function _nbind_value(e,t){_nbind.typeNameTbl[e]||_nbind.throwError("Unknown value type "+e),Module.NBind.bind_value(e,t),_defineHidden(_nbind.typeNameTbl[e].proto.prototype.__nbindValueConstructor)(t.prototype,"__nbindValueConstructor")}function __nbind_get_value_object(e,t){var n=_nbind.popValue(e);if(!n.fromJS)throw new Error("Object "+n+" has no fromJS function");n.fromJS((function(){n.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([t],arguments))}))}function _emscripten_memcpy_big(e,t,n){return HEAPU8.set(HEAPU8.subarray(t,t+n),e),e}function __nbind_register_primitive(e,t,n){var r={flags:1024|n,id:e,ptrSize:t};_nbind.makeType(_nbind.constructType,r)}Module._nbind_value=_nbind_value;var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD(),r=(SYSCALLS.get(),SYSCALLS.get()),i=SYSCALLS.get(),o=SYSCALLS.get(),u=r;return FS.llseek(n,u,o),HEAP32[i>>2]=n.position,n.getdents&&0===u&&0===o&&(n.getdents=null),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.get(),r=SYSCALLS.get(),i=SYSCALLS.get(),o=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(e,t){var n=___syscall146.buffers[e];assert(n),0===t||10===t?((1===e?Module.print:Module.printErr)(UTF8ArrayToString(n,0)),n.length=0):n.push(t)});for(var u=0;u<i;u++){for(var a=HEAP32[r+8*u>>2],l=HEAP32[r+(8*u+4)>>2],s=0;s<l;s++)___syscall146.printChar(n,HEAPU8[a+s]);o+=l}return o}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function __nbind_finish(){for(var e=0,t=_nbind.BindClass.list;e<t.length;e++)t[e].finish()}var ___dso_handle=STATICTOP;function invoke_viiiii(e,t,n,r,i,o){try{Module.dynCall_viiiii(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vif(e,t,n){try{Module.dynCall_vif(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vid(e,t,n){try{Module.dynCall_vid(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_fiff(e,t,n,r){try{return Module.dynCall_fiff(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vii(e,t,n){try{Module.dynCall_vii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viddi(e,t,n,r,i){try{Module.dynCall_viddi(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vidd(e,t,n,r){try{Module.dynCall_vidd(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iiii(e,t,n,r){try{return Module.dynCall_iiii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_diii(e,t,n,r){try{return Module.dynCall_diii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_di(e,t){try{return Module.dynCall_di(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iid(e,t,n){try{return Module.dynCall_iid(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iii(e,t,n){try{return Module.dynCall_iii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiddi(e,t,n,r,i,o){try{Module.dynCall_viiddi(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiiiii(e,t,n,r,i,o,u){try{Module.dynCall_viiiiii(e,t,n,r,i,o,u)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_dii(e,t,n){try{return Module.dynCall_dii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_i(e){try{return Module.dynCall_i(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,n,r,i,o){try{return Module.dynCall_iiiiii(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiid(e,t,n,r,i){try{Module.dynCall_viiid(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viififi(e,t,n,r,i,o,u){try{Module.dynCall_viififi(e,t,n,r,i,o,u)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viii(e,t,n,r){try{Module.dynCall_viii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viid(e,t,n,r){try{Module.dynCall_viid(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_idd(e,t,n){try{return Module.dynCall_idd(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiii(e,t,n,r,i){try{Module.dynCall_viiii(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function e(){}return e.lalloc=function(t){t=t+7&-8;var n=HEAPU32[e.usedPtr];return t>e.pageSize/2||t>e.pageSize-n?_nbind.typeNameTbl.NBind.proto.lalloc(t):(HEAPU32[e.usedPtr]=n+t,e.rootPtr+n)},e.lreset=function(t,n){HEAPU32[e.pagePtr]?_nbind.typeNameTbl.NBind.proto.lreset(t,n):HEAPU32[e.usedPtr]=t},e}();function constructType(e,t){var n=new(10240==e?_nbind.makeTypeNameTbl[t.name]||_nbind.BindType:_nbind.makeTypeKindTbl[e])(t);return typeIdTbl[t.id]=n,_nbind.typeNameTbl[t.name]=n,n}function getType(e){return typeIdTbl[e]}function queryType(e){var t=HEAPU8[e],n=_nbind.structureList[t][1];e/=4,n<0&&(++e,n=HEAPU32[e]+1);var r=Array.prototype.slice.call(HEAPU32.subarray(e+1,e+1+n));return 9==t&&(r=[r[0],r.slice(1)]),{paramList:r,placeholderFlag:t}}function getTypes(e,t){return e.map((function(e){return"number"==typeof e?_nbind.getComplexType(e,constructType,getType,queryType,t):_nbind.typeNameTbl[e]}))}function readTypeIdList(e,t){return Array.prototype.slice.call(HEAPU32,e/4,e/4+t)}function readAsciiString(e){for(var t=e;HEAPU8[t++];);return String.fromCharCode.apply("",HEAPU8.subarray(e,t-1))}function readPolicyList(e){var t={};if(e)for(;;){var n=HEAPU32[e/4];if(!n)break;t[readAsciiString(n)]=!0,e+=4}return t}function getDynCall(e,t){var n={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},r=e.map((function(e){return n[e.name]||"i"})).join(""),i=Module["dynCall_"+r];if(!i)throw new Error("dynCall_"+r+" not found for "+t+"("+e.map((function(e){return e.name})).join(", ")+")");return i}function addMethod(e,t,n,r){var i=e[t];e.hasOwnProperty(t)&&i?((i.arity||0===i.arity)&&(i=_nbind.makeOverloader(i,i.arity),e[t]=i),i.addMethod(n,r)):(n.arity=r,e[t]=n)}function throwError(e){throw new Error(e)}_nbind.Pool=Pool,_nbind.constructType=constructType,_nbind.getType=getType,_nbind.queryType=queryType,_nbind.getTypes=getTypes,_nbind.readTypeIdList=readTypeIdList,_nbind.readAsciiString=readAsciiString,_nbind.readPolicyList=readPolicyList,_nbind.getDynCall=getDynCall,_nbind.addMethod=addMethod,_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.heap=HEAPU32,t.ptrSize=4,t}return __extends(t,e),t.prototype.needsWireRead=function(e){return!!this.wireRead||!!this.makeWireRead},t.prototype.needsWireWrite=function(e){return!!this.wireWrite||!!this.makeWireWrite},t}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(e){function t(t){var n=e.call(this,t)||this,r=32&t.flags?{32:HEAPF32,64:HEAPF64}:8&t.flags?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return n.heap=r[8*t.ptrSize],n.ptrSize=t.ptrSize,n}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("number"==typeof e)return e;throw new Error("Type mismatch")}},t}(BindType);function pushCString(e,t){if(null==e){if(t&&t.Nullable)return 0;throw new Error("Type mismatch")}if(t&&t.Strict){if("string"!=typeof e)throw new Error("Type mismatch")}else e=e.toString();var n=Module.lengthBytesUTF8(e)+1,r=_nbind.Pool.lalloc(n);return Module.stringToUTF8Array(e,HEAPU8,r,n),r}function popCString(e){return 0===e?null:Module.Pointer_stringify(e)}_nbind.PrimitiveType=PrimitiveType,_nbind.pushCString=pushCString,_nbind.popCString=popCString;var CStringType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popCString,t.wireWrite=pushCString,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushCString(e,t)}},t}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=function(e){return!!e},t}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireRead=function(e){return"!!("+e+")"},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("boolean"==typeof e)return e;throw new Error("Type mismatch")}||e},t}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function e(){}return e.prototype.persist=function(){this.__nbindState|=1},e}();function makeBound(e,t){var n=function(e){function n(t,r,i,o){var u=e.call(this)||this;if(!(u instanceof n))return new(Function.prototype.bind.apply(n,Array.prototype.concat.apply([null],arguments)));var a=r,l=i,s=o;if(t!==_nbind.ptrMarker){var c=u.__nbindConstructor.apply(u,arguments);a=4608,s=HEAPU32[c/4],l=HEAPU32[c/4+1]}var f={configurable:!0,enumerable:!1,value:null,writable:!1},d={__nbindFlags:a,__nbindPtr:l};s&&(d.__nbindShared=s,_nbind.mark(u));for(var p=0,h=Object.keys(d);p<h.length;p++){var m=h[p];f.value=d[m],Object.defineProperty(u,m,f)}return _defineHidden(0)(u,"__nbindState"),u}return __extends(n,e),n.prototype.free=function(){t.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},n}(Wrapper);return __decorate([_defineHidden()],n.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],n.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(e)],n.prototype,"__nbindPolicies",void 0),n}function disableMember(e,t){function n(){throw new Error("Accessing deleted object")}Object.defineProperty(e,t,{configurable:!1,enumerable:!1,get:n,set:n})}_nbind.Wrapper=Wrapper,_nbind.makeBound=makeBound,_nbind.ptrMarker={};var BindClass=function(e){function t(t){var n=e.call(this,t)||this;return n.wireRead=function(e){return _nbind.popValue(e,n.ptrType)},n.wireWrite=function(e){return pushPointer(e,n.ptrType,!0)},n.pendingSuperCount=0,n.ready=!1,n.methodTbl={},t.paramList?(n.classType=t.paramList[0].classType,n.proto=n.classType.proto):n.classType=n,n}return __extends(t,e),t.prototype.makeBound=function(e){var t=_nbind.makeBound(e,this);return this.proto=t,this.ptrType.proto=t,t},t.prototype.addMethod=function(e){var t=this.methodTbl[e.name]||[];t.push(e),this.methodTbl[e.name]=t},t.prototype.registerMethods=function(e,t){for(var n,r=0,i=Object.keys(e.methodTbl);r<i.length;r++)for(var o=i[r],u=0,a=e.methodTbl[o];u<a.length;u++){var l=a[u],s=void 0,c=void 0;if(s=this.proto.prototype,!t||1==l.signatureType)switch(l.signatureType){case 1:s=this.proto;case 5:c=_nbind.makeCaller(l),_nbind.addMethod(s,l.name,c,l.typeList.length-1);break;case 4:n=_nbind.makeMethodCaller(e.ptrType,l);break;case 3:Object.defineProperty(s,l.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(e.ptrType,l),set:n});break;case 2:c=_nbind.makeMethodCaller(e.ptrType,l),_nbind.addMethod(s,l.name,c,l.typeList.length-1)}}},t.prototype.registerSuperMethods=function(e,t,n){if(!n[e.name]){n[e.name]=!0;for(var r,i=0,o=0,u=e.superIdList||[];o<u.length;o++){var a=u[o],l=_nbind.getType(a);r=i++<t||t<0?-1:0,this.registerSuperMethods(l,r,n)}this.registerMethods(e,t<0)}},t.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map((function(e){return _nbind.getType(e).finish()}));var e=this.proto;if(this.superList.length){var t=function(){this.constructor=e};t.prototype=this.superList[0].proto.prototype,e.prototype=new t}return e!=Module&&(e.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},t.prototype.upcastStep=function(e,t){if(e==this)return t;for(var n=0;n<this.superList.length;++n){var r=this.superList[n].upcastStep(e,_nbind.callUpcast(this.upcastList[n],t));if(r)return r}return 0},t}(_nbind.BindType);function popPointer(e,t){return e?new t.proto(_nbind.ptrMarker,t.flags,e):null}function pushPointer(e,t,n){if(!(e instanceof _nbind.Wrapper)){if(n)return _nbind.pushValue(e);throw new Error("Type mismatch")}var r=e.__nbindPtr,i=e.__nbindType.classType,o=t.classType;if(e instanceof t.proto)for(;i!=o;)r=_nbind.callUpcast(i.upcastList[0],r),i=i.superList[0];else if(!(r=i.upcastStep(o,r)))throw new Error("Type mismatch");return r}function pushMutablePointer(e,t){var n=pushPointer(e,t);if(1&e.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return n}BindClass.list=[],_nbind.BindClass=BindClass,_nbind.popPointer=popPointer,_nbind.pushPointer=pushPointer;var BindClassPtr=function(e){function t(t){var n=e.call(this,t)||this;n.classType=t.paramList[0].classType,n.proto=n.classType.proto;var r=1&t.flags,i=256==(896&n.flags)&&2&t.flags,o=r?pushPointer:pushMutablePointer,u=i?_nbind.popValue:popPointer;return n.makeWireWrite=function(e,t){return t.Nullable?function(e){return e?o(e,n):0}:function(e){return o(e,n)}},n.wireRead=function(e){return u(e,n)},n.wireWrite=function(e){return o(e,n)},n}return __extends(t,e),t}(_nbind.BindType);function popShared(e,t){var n=HEAPU32[e/4],r=HEAPU32[e/4+1];return r?new t.proto(_nbind.ptrMarker,t.flags,r,n):null}function pushShared(e,t){if(!(e instanceof t.proto))throw new Error("Type mismatch");return e.__nbindShared}function pushMutableShared(e,t){if(!(e instanceof t.proto))throw new Error("Type mismatch");if(1&e.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return e.__nbindShared}_nbind.BindClassPtr=BindClassPtr,_nbind.popShared=popShared;var SharedClassPtr=function(e){function t(t){var n=e.call(this,t)||this;n.readResources=[_nbind.resources.pool],n.classType=t.paramList[0].classType,n.proto=n.classType.proto;var r=1&t.flags?pushShared:pushMutableShared;return n.wireRead=function(e){return popShared(e,n)},n.wireWrite=function(e){return r(e,n)},n}return __extends(t,e),t}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function e(e){this.refCount=1,this.data=e}return e.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},e.prototype.reference=function(){++this.refCount},e.prototype.dereference=function(e){0==--this.refCount&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},e}();function popExternal(e){var t=_nbind.externalList[e];return t.dereference(e),t.data}function pushExternal(e){var t=new External(e);return t.reference(),t.register()}_nbind.External=External;var ExternalType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popExternal,t.wireWrite=pushExternal,t}return __extends(t,e),t}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=function(e){return"function"!=typeof e&&_nbind.throwError("Type mismatch"),new _nbind.External(e).register()},t}return __extends(t,e),t}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(e){var t=firstFreeValue;return t?firstFreeValue=_nbind.valueList[t]:t=_nbind.valueList.length,_nbind.valueList[t]=e,2*t+1}function popValue(e,t){if(e||_nbind.throwError("Value type JavaScript class is missing or not registered"),1&e){e>>=1;var n=_nbind.valueList[e];return _nbind.valueList[e]=firstFreeValue,firstFreeValue=e,n}if(t)return _nbind.popShared(e,t);throw new Error("Invalid value slot "+e)}_nbind.pushValue=pushValue,_nbind.popValue=popValue;var valueBase=0x10000000000000000;function push64(e){return"number"==typeof e?e:4096*pushValue(e)+valueBase}function pop64(e){return e<valueBase?e:popValue((e-valueBase)/4096)}var CreateValueType=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.makeWireWrite=function(e){return"(_nbind.pushValue(new "+e+"))"},t}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=push64,t.wireRead=pop64,t}return __extends(t,e),t}(_nbind.BindType);function pushArray(e,t){if(!e)return 0;var n=e.length;if((t.size||0===t.size)&&n<t.size)throw new Error("Type mismatch");var r=t.memberType.ptrSize,i=_nbind.Pool.lalloc(4+n*r);HEAPU32[i/4]=n;var o=t.memberType.heap,u=(i+4)/r,a=t.memberType.wireWrite,l=0;if(a)for(;l<n;)o[u++]=a(e[l++]);else for(;l<n;)o[u++]=e[l++];return i}function popArray(e,t){if(0===e)return null;var n=HEAPU32[e/4],r=new Array(n),i=t.memberType.heap;e=(e+4)/t.memberType.ptrSize;var o=t.memberType.wireRead,u=0;if(o)for(;u<n;)r[u++]=o(i[e++]);else for(;u<n;)r[u++]=i[e++];return r}_nbind.Int64Type=Int64Type,_nbind.pushArray=pushArray,_nbind.popArray=popArray;var ArrayType=function(e){function t(t){var n=e.call(this,t)||this;return n.wireRead=function(e){return popArray(e,n)},n.wireWrite=function(e){return pushArray(e,n)},n.readResources=[_nbind.resources.pool],n.writeResources=[_nbind.resources.pool],n.memberType=t.paramList[0],t.paramList[1]&&(n.size=t.paramList[1]),n}return __extends(t,e),t}(_nbind.BindType);function pushString(e,t){if(null==e){if(!t||!t.Nullable)throw new Error("Type mismatch");e=""}if(t&&t.Strict){if("string"!=typeof e)throw new Error("Type mismatch")}else e=e.toString();var n=Module.lengthBytesUTF8(e),r=_nbind.Pool.lalloc(4+n+1);return HEAPU32[r/4]=n,Module.stringToUTF8Array(e,HEAPU8,r+4,n+1),r}function popString(e){if(0===e)return null;var t=HEAPU32[e/4];return Module.Pointer_stringify(e+4,t)}_nbind.ArrayType=ArrayType,_nbind.pushString=pushString,_nbind.popString=popString;var StringType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popString,t.wireWrite=pushString,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushString(e,t)}},t}(_nbind.BindType);function makeArgList(e){return Array.apply(null,Array(e)).map((function(e,t){return"a"+(t+1)}))}function anyNeedsWireWrite(e,t){return e.reduce((function(e,n){return e||n.needsWireWrite(t)}),!1)}function anyNeedsWireRead(e,t){return e.reduce((function(e,n){return e||!!n.needsWireRead(t)}),!1)}function makeWireRead(e,t,n,r){var i=e.length;return n.makeWireRead?n.makeWireRead(r,e,i):n.wireRead?(e[i]=n.wireRead,"(convertParamList["+i+"]("+r+"))"):r}function makeWireWrite(e,t,n,r){var i,o=e.length;return(i=n.makeWireWrite?n.makeWireWrite(r,t,e,o):n.wireWrite)?"string"==typeof i?i:(e[o]=i,"(convertParamList["+o+"]("+r+"))"):r}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map((function(e,t){return makeWireWrite(convertParamList,policyTbl,argTypeList[t],e)}))).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map((function(e,t){return makeWireRead(convertParamList,null,argTypeList[t],e)})).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function makeJSCaller(e){var t=e.length-1,n=_nbind.getTypes(e,"callback"),r=n[0],i=n.slice(1),o=anyNeedsWireRead(i,null);if(!r.needsWireWrite(null)&&!o)switch(t){case 0:return function(e,t){return _nbind.externalList[t].data()};case 1:return function(e,t,n){return _nbind.externalList[t].data(n)};case 2:return function(e,t,n,r){return _nbind.externalList[t].data(n,r)};case 3:return function(e,t,n,r,i){return _nbind.externalList[t].data(n,r,i)}}return buildJSCallerFunction(r,i)}function makeMethodCaller(e,t){var n=t.typeList.length-1,r=t.typeList.slice(0);r.splice(1,0,"uint32_t",t.boundID);var i=_nbind.getTypes(r,t.title),o=i[0],u=i.slice(3),a=o.needsWireRead(t.policyTbl),l=anyNeedsWireWrite(u,t.policyTbl),s=t.ptr,c=t.num,f=_nbind.getDynCall(i,t.title),d=1&~t.flags;function p(){throw new Error("Calling a non-const method on a const object")}if(!a&&!l)switch(n){case 0:return function(){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e))};case 1:return function(t){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t)};case 2:return function(t,n){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t,n)};case 3:return function(t,n,r){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t,n,r)}}return buildCallerFunction(f,e,s,c,t.policyTbl,l,"ptr,num,pushPointer(this,ptrType)",o,u,d,p)}function makeCaller(e){var t,n=e.typeList.length-1,r=_nbind.getTypes(e.typeList,e.title),i=r[0],o=r.slice(1),u=i.needsWireRead(e.policyTbl),a=anyNeedsWireWrite(o,e.policyTbl),l=e.direct,s=e.ptr;if(e.direct&&!u&&!a){var c=_nbind.getDynCall(r,e.title);switch(n){case 0:return function(){return c(l)};case 1:return function(e){return c(l,e)};case 2:return function(e,t){return c(l,e,t)};case 3:return function(e,t,n){return c(l,e,t,n)}}s=0}if(s){var f=e.typeList.slice(0);f.splice(1,0,"uint32_t"),r=_nbind.getTypes(f,e.title),t="ptr,num"}else s=l,t="ptr";return buildCallerFunction(_nbind.getDynCall(r,e.title),null,s,e.num,e.policyTbl,a,t,i,o)}function makeOverloader(e,t){var n=[];function r(){return n[arguments.length].apply(this,arguments)}return r.addMethod=function(e,t){n[t]=e},r.addMethod(e,t),r}_nbind.StringType=StringType,_nbind.buildJSCallerFunction=buildJSCallerFunction,_nbind.makeJSCaller=makeJSCaller,_nbind.makeMethodCaller=makeMethodCaller,_nbind.makeCaller=makeCaller,_nbind.makeOverloader=makeOverloader;var Resource=function(){function e(e,t){var n=this;this.makeOpen=function(){return Object.keys(n.openTbl).join("")},this.makeClose=function(){return Object.keys(n.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),t&&(this.closeTbl[t]=!0)}return e.prototype.add=function(e){for(var t=0,n=Object.keys(e.openTbl);t<n.length;t++){var r=n[t];this.openTbl[r]=!0}for(var i=0,o=Object.keys(e.closeTbl);i<o.length;i++)r=o[i],this.closeTbl[r]=!0},e.prototype.remove=function(e){for(var t=0,n=Object.keys(e.openTbl);t<n.length;t++){var r=n[t];delete this.openTbl[r]}for(var i=0,o=Object.keys(e.closeTbl);i<o.length;i++)r=o[i],delete this.closeTbl[r]},e}();function listResources(e,t){for(var n=new Resource,r=0,i=e;r<i.length;r++)for(var o=0,u=i[r].readResources||[];o<u.length;o++){var a=u[o];n.add(a)}for(var l=0,s=t;l<s.length;l++)for(var c=0,f=s[l].writeResources||[];c<f.length;c++)a=f[c],n.add(a);return n}_nbind.Resource=Resource,_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(e){function t(t,n){var r=e.call(this,t)||this;return r.ptr=n,r}return __extends(t,e),t.prototype.free=function(){_free(this.ptr)},t}(_nbind.External);function getBuffer(e){return e instanceof ArrayBuffer?new Uint8Array(e):e instanceof DataView?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function pushBuffer(e,t){if(null==e&&t&&t.Nullable&&(e=[]),"object"!=typeof e)throw new Error("Type mismatch");var n=e,r=n.byteLength||n.length;if(!r&&0!==r&&0!==n.byteLength)throw new Error("Type mismatch");var i=_nbind.Pool.lalloc(8),o=_malloc(r),u=i/4;return HEAPU32[u++]=r,HEAPU32[u++]=o,HEAPU32[u++]=new ExternalBuffer(e,o).register(),HEAPU8.set(getBuffer(e),o),i}var BufferType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=pushBuffer,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushBuffer(e,t)}},t}(_nbind.BindType);function commitBuffer(e,t,n){var r=_nbind.externalList[e].data,i=Buffer;if("function"!=typeof Buffer&&(i=function(){}),r instanceof Array);else{var o=HEAPU8.subarray(t,t+n);r instanceof i?("function"==typeof Buffer.from&&Buffer.from.length>=3?Buffer.from(o):new Buffer(o)).copy(r):getBuffer(r).set(o)}}_nbind.BufferType=BufferType,_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var e=0,t=dirtyList;e<t.length;e++){var n=t[e];3&n.__nbindState||n.free()}dirtyList=[],gcTimer=0}function toggleLightGC(e){_nbind.mark=e?function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:function(e){}}_nbind.mark=function(e){},_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function(e,t,n){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,t,n)},Module.requestFullscreen=function(e,t,n){Browser.requestFullscreen(e,t,n)},Module.requestAnimationFrame=function(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function(e,t,n){Browser.setCanvasSize(e,t,n)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(e,t,n,r){return Browser.createContext(e,t,n,r)},_emscripten_get_now=ENVIRONMENT_IS_NODE?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:"object"==typeof self&&self.performance&&"function"==typeof self.performance.now?function(){return self.performance.now()}:"object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:Date.now,__ATEXIT__.push((function(){var e=Module._fflush;e&&e(0);var t=___syscall146.printChar;if(t){var n=___syscall146.buffers;n[1].length&&t(1,10),n[2].length&&t(2,10)}})),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(e,t,n){"use asm";var r=new e.Int8Array(n);var i=new e.Int16Array(n);var o=new e.Int32Array(n);var u=new e.Uint8Array(n);var a=new e.Uint16Array(n);var l=new e.Uint32Array(n);var s=new e.Float32Array(n);var c=new e.Float64Array(n);var f=t.DYNAMICTOP_PTR|0;var d=t.tempDoublePtr|0;var p=t.ABORT|0;var h=t.STACKTOP|0;var m=t.STACK_MAX|0;var v=t.cttz_i8|0;var b=t.___dso_handle|0;var g=0;var _=0;var y=0;var D=0;var w=e.NaN,E=e.Infinity;var C=0,T=0,k=0,S=0,M=0.0;var x=0;var A=e.Math.floor;var P=e.Math.abs;var O=e.Math.sqrt;var R=e.Math.pow;var N=e.Math.cos;var I=e.Math.sin;var F=e.Math.tan;var B=e.Math.acos;var L=e.Math.asin;var U=e.Math.atan;var j=e.Math.atan2;var W=e.Math.exp;var z=e.Math.log;var q=e.Math.ceil;var H=e.Math.imul;var G=e.Math.min;var V=e.Math.max;var Y=e.Math.clz32;var K=e.Math.fround;var $=t.abort;var X=t.assert;var J=t.enlargeMemory;var Q=t.getTotalMemory;var Z=t.abortOnCannotGrowMemory;var ee=t.invoke_viiiii;var te=t.invoke_vif;var ne=t.invoke_vid;var re=t.invoke_fiff;var ie=t.invoke_vi;var oe=t.invoke_vii;var ue=t.invoke_ii;var ae=t.invoke_viddi;var le=t.invoke_vidd;var se=t.invoke_iiii;var ce=t.invoke_diii;var fe=t.invoke_di;var de=t.invoke_iid;var pe=t.invoke_iii;var he=t.invoke_viiddi;var me=t.invoke_viiiiii;var ve=t.invoke_dii;var be=t.invoke_i;var ge=t.invoke_iiiiii;var _e=t.invoke_viiid;var ye=t.invoke_viififi;var De=t.invoke_viii;var we=t.invoke_v;var Ee=t.invoke_viid;var Ce=t.invoke_idd;var Te=t.invoke_viiii;var ke=t._emscripten_asm_const_iiiii;var Se=t._emscripten_asm_const_iiidddddd;var Me=t._emscripten_asm_const_iiiid;var xe=t.__nbind_reference_external;var Ae=t._emscripten_asm_const_iiiiiiii;var Pe=t._removeAccessorPrefix;var Oe=t._typeModule;var Re=t.__nbind_register_pool;var Ne=t.__decorate;var Ie=t._llvm_stackrestore;var Fe=t.___cxa_atexit;var Be=t.__extends;var Le=t.__nbind_get_value_object;var Ue=t.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj;var je=t._emscripten_set_main_loop_timing;var We=t.__nbind_register_primitive;var ze=t.__nbind_register_type;var qe=t._emscripten_memcpy_big;var He=t.__nbind_register_function;var Ge=t.___setErrNo;var Ve=t.__nbind_register_class;var Ye=t.__nbind_finish;var Ke=t._abort;var $e=t._nbind_value;var Xe=t._llvm_stacksave;var Je=t.___syscall54;var Qe=t._defineHidden;var Ze=t._emscripten_set_main_loop;var et=t._emscripten_get_now;var tt=t.__nbind_register_callback_signature;var nt=t._emscripten_asm_const_iiiiii;var rt=t.__nbind_free_external;var it=t._emscripten_asm_const_iiii;var ot=t._emscripten_asm_const_iiididi;var ut=t.___syscall6;var at=t._atexit;var lt=t.___syscall140;var st=t.___syscall146;var ct=K(0);const ft=K(0);function dt(e){e=e|0;var t=0;t=h;h=h+e|0;h=h+15&-16;return t|0}function pt(){return h|0}function ht(e){e=e|0;h=e}function mt(e,t){e=e|0;t=t|0;h=e;m=t}function vt(e,t){e=e|0;t=t|0;if(!g){g=e;_=t}}function bt(e){e=e|0;x=e}function gt(){return x|0}function _t(){var e=0,t=0;iM(8104,8,400)|0;iM(8504,408,540)|0;e=9044;t=e+44|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));r[9088]=0;r[9089]=1;o[2273]=0;o[2274]=948;o[2275]=948;Fe(17,8104,b|0)|0;return}function yt(e){e=e|0;Gt(e+948|0);return}function Dt(e){e=K(e);return((Oi(e)|0)&2147483647)>>>0>2139095040|0}function wt(e,t,n){e=e|0;t=t|0;n=n|0;e:do{if(!(o[e+(t<<3)+4>>2]|0)){if((t|2|0)==3?o[e+60>>2]|0:0){e=e+56|0;break}switch(t|0){case 0:case 2:case 4:case 5:{if(o[e+52>>2]|0){e=e+48|0;break e}break}default:{}}if(!(o[e+68>>2]|0)){e=(t|1|0)==5?948:n;break}else{e=e+64|0;break}}else e=e+(t<<3)|0}while(0);return e|0}function Et(e){e=e|0;var t=0;t=Gk(1e3)|0;Ct(e,(t|0)!=0,2456);o[2276]=(o[2276]|0)+1;iM(t|0,8104,1e3)|0;if(r[e+2>>0]|0){o[t+4>>2]=2;o[t+12>>2]=4}o[t+976>>2]=e;return t|0}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Br(e,5,3197,r)}h=i;return}function Tt(){return Et(956)|0}function kt(e){e=e|0;var t=0;t=YS(1e3)|0;St(t,e);Ct(o[e+976>>2]|0,1,2456);o[2276]=(o[2276]|0)+1;o[t+944>>2]=0;return t|0}function St(e,t){e=e|0;t=t|0;var n=0;iM(e|0,t|0,948)|0;jr(e+948|0,t+948|0);n=e+960|0;e=t+960|0;t=n+40|0;do{o[n>>2]=o[e>>2];n=n+4|0;e=e+4|0}while((n|0)<(t|0));return}function Mt(e){e=e|0;var t=0,n=0,r=0,i=0;t=e+944|0;n=o[t>>2]|0;if(n|0){xt(n+948|0,e)|0;o[t>>2]=0}n=At(e)|0;if(n|0){t=0;do{o[(Pt(e,t)|0)+944>>2]=0;t=t+1|0}while((t|0)!=(n|0))}n=e+948|0;r=o[n>>2]|0;i=e+952|0;t=o[i>>2]|0;if((t|0)!=(r|0))o[i>>2]=t+(~((t+-4-r|0)>>>2)<<2);Ot(n);Vk(e);o[2276]=(o[2276]|0)+-1;return}function xt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0;r=o[e>>2]|0;l=e+4|0;n=o[l>>2]|0;u=n;e:do{if((r|0)==(n|0)){i=r;a=4}else{e=r;while(1){if((o[e>>2]|0)==(t|0)){i=e;a=4;break e}e=e+4|0;if((e|0)==(n|0)){e=0;break}}}}while(0);if((a|0)==4)if((i|0)!=(n|0)){r=i+4|0;e=u-r|0;t=e>>2;if(t){sM(i|0,r|0,e|0)|0;n=o[l>>2]|0}e=i+(t<<2)|0;if((n|0)==(e|0))e=1;else{o[l>>2]=n+(~((n+-4-e|0)>>>2)<<2);e=1}}else e=0;return e|0}function At(e){e=e|0;return(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2|0}function Pt(e,t){e=e|0;t=t|0;var n=0;n=o[e+948>>2]|0;if((o[e+952>>2]|0)-n>>2>>>0>t>>>0)e=o[n+(t<<2)>>2]|0;else e=0;return e|0}function Ot(e){e=e|0;var t=0,n=0,r=0,i=0;r=h;h=h+32|0;t=r;i=o[e>>2]|0;n=(o[e+4>>2]|0)-i|0;if(((o[e+8>>2]|0)-i|0)>>>0>n>>>0){i=n>>2;Ri(t,i,i,e+8|0);Ni(e,t);Ii(t)}h=r;return}function Rt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;c=At(e)|0;do{if(c|0){if((o[(Pt(e,0)|0)+944>>2]|0)==(e|0)){if(!(xt(e+948|0,t)|0))break;iM(t+400|0,8504,540)|0;o[t+944>>2]=0;Ht(e);break}a=o[(o[e+976>>2]|0)+12>>2]|0;l=e+948|0;s=(a|0)==0;n=0;u=0;do{r=o[(o[l>>2]|0)+(u<<2)>>2]|0;if((r|0)==(t|0))Ht(e);else{i=kt(r)|0;o[(o[l>>2]|0)+(n<<2)>>2]=i;o[i+944>>2]=e;if(!s)Ix[a&15](r,i,e,n);n=n+1|0}u=u+1|0}while((u|0)!=(c|0));if(n>>>0<c>>>0){s=e+948|0;l=e+952|0;a=n;n=o[l>>2]|0;do{u=(o[s>>2]|0)+(a<<2)|0;r=u+4|0;i=n-r|0;t=i>>2;if(!t)i=n;else{sM(u|0,r|0,i|0)|0;n=o[l>>2]|0;i=n}r=u+(t<<2)|0;if((i|0)!=(r|0)){n=i+(~((i+-4-r|0)>>>2)<<2)|0;o[l>>2]=n}a=a+1|0}while((a|0)!=(c|0))}}}while(0);return}function Nt(e){e=e|0;var t=0,n=0,i=0,u=0;It(e,(At(e)|0)==0,2491);It(e,(o[e+944>>2]|0)==0,2545);t=e+948|0;n=o[t>>2]|0;i=e+952|0;u=o[i>>2]|0;if((u|0)!=(n|0))o[i>>2]=u+(~((u+-4-n|0)>>>2)<<2);Ot(t);t=e+976|0;n=o[t>>2]|0;iM(e|0,8104,1e3)|0;if(r[n+2>>0]|0){o[e+4>>2]=2;o[e+12>>2]=4}o[t>>2]=n;return}function It(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Tr(e,5,3197,r)}h=i;return}function Ft(){return o[2276]|0}function Bt(){var e=0;e=Gk(20)|0;Lt((e|0)!=0,2592);o[2277]=(o[2277]|0)+1;o[e>>2]=o[239];o[e+4>>2]=o[240];o[e+8>>2]=o[241];o[e+12>>2]=o[242];o[e+16>>2]=o[243];return e|0}function Lt(e,t){e=e|0;t=t|0;var n=0,r=0;r=h;h=h+16|0;n=r;if(!e){o[n>>2]=t;Tr(0,5,3197,n)}h=r;return}function Ut(e){e=e|0;Vk(e);o[2277]=(o[2277]|0)+-1;return}function jt(e,t){e=e|0;t=t|0;var n=0;if(!t){n=0;t=0}else{It(e,(At(e)|0)==0,2629);n=1}o[e+964>>2]=t;o[e+988>>2]=n;return}function Wt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+8|0;i=r+4|0;a=r;o[i>>2]=t;It(e,(o[t+944>>2]|0)==0,2709);It(e,(o[e+964>>2]|0)==0,2763);zt(e);t=e+948|0;o[a>>2]=(o[t>>2]|0)+(n<<2);o[u>>2]=o[a>>2];qt(t,u,i)|0;o[(o[i>>2]|0)+944>>2]=e;Ht(e);h=r;return}function zt(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=At(e)|0;if(n|0?(o[(Pt(e,0)|0)+944>>2]|0)!=(e|0):0){r=o[(o[e+976>>2]|0)+12>>2]|0;i=e+948|0;u=(r|0)==0;t=0;do{a=o[(o[i>>2]|0)+(t<<2)>>2]|0;l=kt(a)|0;o[(o[i>>2]|0)+(t<<2)>>2]=l;o[l+944>>2]=e;if(!u)Ix[r&15](a,l,e,t);t=t+1|0}while((t|0)!=(n|0))}return}function qt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+64|0;d=g+52|0;l=g+48|0;p=g+28|0;m=g+24|0;v=g+20|0;b=g;r=o[e>>2]|0;u=r;t=r+((o[t>>2]|0)-u>>2<<2)|0;r=e+4|0;i=o[r>>2]|0;a=e+8|0;do{if(i>>>0<(o[a>>2]|0)>>>0){if((t|0)==(i|0)){o[t>>2]=o[n>>2];o[r>>2]=(o[r>>2]|0)+4;break}Fi(e,t,i,t+4|0);if(t>>>0<=n>>>0)n=(o[r>>2]|0)>>>0>n>>>0?n+4|0:n;o[t>>2]=o[n>>2]}else{r=(i-u>>2)+1|0;i=qr(e)|0;if(i>>>0<r>>>0)jS(e);f=o[e>>2]|0;c=(o[a>>2]|0)-f|0;u=c>>1;Ri(b,c>>2>>>0<i>>>1>>>0?u>>>0<r>>>0?r:u:i,t-f>>2,e+8|0);f=b+8|0;r=o[f>>2]|0;u=b+12|0;c=o[u>>2]|0;a=c;s=r;do{if((r|0)==(c|0)){c=b+4|0;r=o[c>>2]|0;_=o[b>>2]|0;i=_;if(r>>>0<=_>>>0){r=a-i>>1;r=(r|0)==0?1:r;Ri(p,r,r>>>2,o[b+16>>2]|0);o[m>>2]=o[c>>2];o[v>>2]=o[f>>2];o[l>>2]=o[m>>2];o[d>>2]=o[v>>2];Li(p,l,d);r=o[b>>2]|0;o[b>>2]=o[p>>2];o[p>>2]=r;r=p+4|0;_=o[c>>2]|0;o[c>>2]=o[r>>2];o[r>>2]=_;r=p+8|0;_=o[f>>2]|0;o[f>>2]=o[r>>2];o[r>>2]=_;r=p+12|0;_=o[u>>2]|0;o[u>>2]=o[r>>2];o[r>>2]=_;Ii(p);r=o[f>>2]|0;break}u=r;a=((u-i>>2)+1|0)/-2|0;l=r+(a<<2)|0;i=s-u|0;u=i>>2;if(u){sM(l|0,r|0,i|0)|0;r=o[c>>2]|0}_=l+(u<<2)|0;o[f>>2]=_;o[c>>2]=r+(a<<2);r=_}}while(0);o[r>>2]=o[n>>2];o[f>>2]=(o[f>>2]|0)+4;t=Bi(e,b,t)|0;Ii(b)}}while(0);h=g;return t|0}function Ht(e){e=e|0;var t=0;do{t=e+984|0;if(r[t>>0]|0)break;r[t>>0]=1;s[e+504>>2]=K(w);e=o[e+944>>2]|0}while((e|0)!=0);return}function Gt(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function Vt(e){e=e|0;return o[e+944>>2]|0}function Yt(e){e=e|0;It(e,(o[e+964>>2]|0)!=0,2832);Ht(e);return}function Kt(e){e=e|0;return(r[e+984>>0]|0)!=0|0}function $t(e,t){e=e|0;t=t|0;if(iS(e,t,400)|0){iM(e|0,t|0,400)|0;Ht(e)}return}function Xt(e){e=e|0;var t=ft;t=K(s[e+44>>2]);e=Dt(t)|0;return K(e?K(0.0):t)}function Jt(e){e=e|0;var t=ft;t=K(s[e+48>>2]);if(Dt(t)|0)t=r[(o[e+976>>2]|0)+2>>0]|0?K(1.0):K(0.0);return K(t)}function Qt(e,t){e=e|0;t=t|0;o[e+980>>2]=t;return}function Zt(e){e=e|0;return o[e+980>>2]|0}function en(e,t){e=e|0;t=t|0;var n=0;n=e+4|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function tn(e){e=e|0;return o[e+4>>2]|0}function nn(e,t){e=e|0;t=t|0;var n=0;n=e+8|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function rn(e){e=e|0;return o[e+8>>2]|0}function on(e,t){e=e|0;t=t|0;var n=0;n=e+12|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function un(e){e=e|0;return o[e+12>>2]|0}function an(e,t){e=e|0;t=t|0;var n=0;n=e+16|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function ln(e){e=e|0;return o[e+16>>2]|0}function sn(e,t){e=e|0;t=t|0;var n=0;n=e+20|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function cn(e){e=e|0;return o[e+20>>2]|0}function fn(e,t){e=e|0;t=t|0;var n=0;n=e+24|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function dn(e){e=e|0;return o[e+24>>2]|0}function pn(e,t){e=e|0;t=t|0;var n=0;n=e+28|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function hn(e){e=e|0;return o[e+28>>2]|0}function mn(e,t){e=e|0;t=t|0;var n=0;n=e+32|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function vn(e){e=e|0;return o[e+32>>2]|0}function bn(e,t){e=e|0;t=t|0;var n=0;n=e+36|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function gn(e){e=e|0;return o[e+36>>2]|0}function _n(e,t){e=e|0;t=K(t);var n=0;n=e+40|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function yn(e,t){e=e|0;t=K(t);var n=0;n=e+44|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function Dn(e,t){e=e|0;t=K(t);var n=0;n=e+48|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+52|0;i=e+56|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function En(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+52|0;n=e+56|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Cn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+52|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Tn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function kn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Sn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+132+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Mn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function xn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function An(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+60+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Pn(e,t){e=e|0;t=t|0;var n=0;n=e+60+(t<<3)+4|0;if((o[n>>2]|0)!=3){s[e+60+(t<<3)>>2]=K(w);o[n>>2]=3;Ht(e)}return}function On(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Rn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Nn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+204+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function In(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+276+(t<<3)|0;t=e+276+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Fn(e,t){e=e|0;t=t|0;return K(s[e+276+(t<<3)>>2])}function Bn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+348|0;i=e+352|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Ln(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+348|0;n=e+352|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Un(e){e=e|0;var t=0;t=e+352|0;if((o[t>>2]|0)!=3){s[e+348>>2]=K(w);o[t>>2]=3;Ht(e)}return}function jn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+348|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+356|0;i=e+360|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function zn(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+356|0;n=e+360|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function qn(e){e=e|0;var t=0;t=e+360|0;if((o[t>>2]|0)!=3){s[e+356>>2]=K(w);o[t>>2]=3;Ht(e)}return}function Hn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+356|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Gn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Vn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Yn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+364|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Kn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function $n(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Xn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+372|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Jn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Qn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Zn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+380|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function er(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function tr(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function nr(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+388|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function rr(e,t){e=e|0;t=K(t);var n=0;n=e+396|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function ir(e){e=e|0;return K(s[e+396>>2])}function or(e){e=e|0;return K(s[e+400>>2])}function ur(e){e=e|0;return K(s[e+404>>2])}function ar(e){e=e|0;return K(s[e+408>>2])}function lr(e){e=e|0;return K(s[e+412>>2])}function sr(e){e=e|0;return K(s[e+416>>2])}function cr(e){e=e|0;return K(s[e+420>>2])}function fr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+424+(t<<2)>>2])}function dr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+448+(t<<2)>>2])}function pr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+472+(t<<2)>>2])}function hr(e,t){e=e|0;t=t|0;var n=0,r=ft;n=o[e+4>>2]|0;if((n|0)==(o[t+4>>2]|0)){if(!n)e=1;else{r=K(s[e>>2]);e=K(P(K(r-K(s[t>>2]))))<K(.0000999999974)}}else e=0;return e|0}function mr(e,t){e=K(e);t=K(t);var n=0;if(Dt(e)|0)n=Dt(t)|0;else n=K(P(K(e-t)))<K(.0000999999974);return n|0}function vr(e,t){e=e|0;t=t|0;br(e,t);return}function br(e,t){e=e|0;t=t|0;var n=0,i=0;n=h;h=h+16|0;i=n+4|0;o[i>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;Ue(i|0,e|0,t|0,0);Tr(e,3,(r[i+11>>0]|0)<0?o[i>>2]|0:i,n);XS(i);h=n;return}function gr(e,t,n,r){e=K(e);t=K(t);n=n|0;r=r|0;var i=ft;e=K(e*t);i=K(BS(e,K(1.0)));do{if(!(mr(i,K(0.0))|0)){e=K(e-i);if(mr(i,K(1.0))|0){e=K(e+K(1.0));break}if(n){e=K(e+K(1.0));break}if(!r){if(i>K(.5))i=K(1.0);else{r=mr(i,K(.5))|0;i=r?K(1.0):K(0.0)}e=K(e+i)}}else e=K(e-i)}while(0);return K(e/t)}function _r(e,t,n,r,i,o,u,a,l,c,f,d,p){e=e|0;t=K(t);n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;a=K(a);l=K(l);c=K(c);f=K(f);d=K(d);p=p|0;var h=0,m=ft,v=ft,b=ft,g=ft,_=ft,y=ft;if(l<K(0.0)|c<K(0.0))p=0;else{if((p|0)!=0?(m=K(s[p+4>>2]),m!=K(0.0)):0){b=K(gr(t,m,0,0));g=K(gr(r,m,0,0));v=K(gr(o,m,0,0));m=K(gr(a,m,0,0))}else{v=o;b=t;m=a;g=r}if((i|0)==(e|0))h=mr(v,b)|0;else h=0;if((u|0)==(n|0))p=mr(m,g)|0;else p=0;if((!h?(_=K(t-f),!(yr(e,_,l)|0)):0)?!(Dr(e,_,i,l)|0):0)h=wr(e,_,i,o,l)|0;else h=1;if((!p?(y=K(r-d),!(yr(n,y,c)|0)):0)?!(Dr(n,y,u,c)|0):0)p=wr(n,y,u,a,c)|0;else p=1;p=h&p}return p|0}function yr(e,t,n){e=e|0;t=K(t);n=K(n);if((e|0)==1)e=mr(t,n)|0;else e=0;return e|0}function Dr(e,t,n,r){e=e|0;t=K(t);n=n|0;r=K(r);if((e|0)==2&(n|0)==0){if(!(t>=r))e=mr(t,r)|0;else e=1}else e=0;return e|0}function wr(e,t,n,r,i){e=e|0;t=K(t);n=n|0;r=K(r);i=K(i);if((e|0)==2&(n|0)==2&r>t){if(!(i<=t))e=mr(t,i)|0;else e=1}else e=0;return e|0}function Er(e,t,n,i,u,a,l,f,d,p,m){e=e|0;t=K(t);n=K(n);i=i|0;u=u|0;a=a|0;l=K(l);f=K(f);d=d|0;p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=ft,N=ft,I=ft,F=0.0,B=0.0;O=h;h=h+160|0;x=O+152|0;M=O+120|0;S=O+104|0;C=O+72|0;_=O+56|0;k=O+8|0;E=O;T=(o[2279]|0)+1|0;o[2279]=T;A=e+984|0;if((r[A>>0]|0)!=0?(o[e+512>>2]|0)!=(o[2278]|0):0)w=4;else if((o[e+516>>2]|0)==(i|0))P=0;else w=4;if((w|0)==4){o[e+520>>2]=0;o[e+924>>2]=-1;o[e+928>>2]=-1;s[e+932>>2]=K(-1.0);s[e+936>>2]=K(-1.0);P=1}e:do{if(!(o[e+964>>2]|0)){if(d){v=e+916|0;if(!(mr(K(s[v>>2]),t)|0)){w=21;break}if(!(mr(K(s[e+920>>2]),n)|0)){w=21;break}if((o[e+924>>2]|0)!=(u|0)){w=21;break}v=(o[e+928>>2]|0)==(a|0)?v:0;w=22;break}g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;if(((mr(K(s[v>>2]),t)|0?mr(K(s[e+524+(b*24|0)+4>>2]),n)|0:0)?(o[e+524+(b*24|0)+8>>2]|0)==(u|0):0)?(o[e+524+(b*24|0)+12>>2]|0)==(a|0):0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else{y=K(Cr(e,2,l));D=K(Cr(e,0,l));v=e+916|0;I=K(s[v>>2]);N=K(s[e+920>>2]);R=K(s[e+932>>2]);if(!(_r(u,t,a,n,o[e+924>>2]|0,I,o[e+928>>2]|0,N,R,K(s[e+936>>2]),y,D,m)|0)){g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;R=K(s[v>>2]);N=K(s[e+524+(b*24|0)+4>>2]);I=K(s[e+524+(b*24|0)+16>>2]);if(_r(u,t,a,n,o[e+524+(b*24|0)+8>>2]|0,R,o[e+524+(b*24|0)+12>>2]|0,N,I,K(s[e+524+(b*24|0)+20>>2]),y,D,m)|0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else w=22}}while(0);do{if((w|0)==21){if(!(r[11697]|0)){v=0;w=31}else{v=0;w=28}}else if((w|0)==22){b=(r[11697]|0)!=0;if(!((v|0)!=0&(P^1)))if(b){w=28;break}else{w=31;break}_=v+16|0;o[e+908>>2]=o[_>>2];g=v+20|0;o[e+912>>2]=o[g>>2];if(!((r[11698]|0)==0|b^1)){o[E>>2]=kr(T)|0;o[E+4>>2]=T;Tr(e,4,2972,E);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);u=Sr(u,d)|0;a=Sr(a,d)|0;B=+K(s[_>>2]);F=+K(s[g>>2]);o[k>>2]=u;o[k+4>>2]=a;c[k+8>>3]=+t;c[k+16>>3]=+n;c[k+24>>3]=B;c[k+32>>3]=F;o[k+40>>2]=p;Tr(e,4,2989,k)}}}while(0);if((w|0)==28){b=kr(T)|0;o[_>>2]=b;o[_+4>>2]=T;o[_+8>>2]=P?3047:11699;Tr(e,4,3038,_);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;w=Sr(a,d)|0;o[C>>2]=k;o[C+4>>2]=w;c[C+8>>3]=+t;c[C+16>>3]=+n;o[C+24>>2]=p;Tr(e,4,3049,C);w=31}if((w|0)==31){Mr(e,t,n,i,u,a,l,f,d,m);if(r[11697]|0){b=o[2279]|0;k=kr(b)|0;o[S>>2]=k;o[S+4>>2]=b;o[S+8>>2]=P?3047:11699;Tr(e,4,3083,S);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;S=Sr(a,d)|0;F=+K(s[e+908>>2]);B=+K(s[e+912>>2]);o[M>>2]=k;o[M+4>>2]=S;c[M+8>>3]=F;c[M+16>>3]=B;o[M+24>>2]=p;Tr(e,4,3092,M)}o[e+516>>2]=i;if(!v){b=e+520|0;v=o[b>>2]|0;if((v|0)==16){if(r[11697]|0)Tr(e,4,3124,x);o[b>>2]=0;v=0}if(d)v=e+916|0;else{o[b>>2]=v+1;v=e+524+(v*24|0)|0}s[v>>2]=t;s[v+4>>2]=n;o[v+8>>2]=u;o[v+12>>2]=a;o[v+16>>2]=o[e+908>>2];o[v+20>>2]=o[e+912>>2];v=0}}if(d){o[e+416>>2]=o[e+908>>2];o[e+420>>2]=o[e+912>>2];r[e+985>>0]=1;r[A>>0]=0}o[2279]=(o[2279]|0)+-1;o[e+512>>2]=o[2278];h=O;return P|(v|0)==0|0}function Cr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(Hr(e,t,n));return K(r+K(Gr(e,t,n)))}function Tr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u;o[i>>2]=r;if(!e)r=0;else r=o[e+976>>2]|0;Lr(r,e,t,n,i);h=u;return}function kr(e){e=e|0;return(e>>>0>60?3201:3201+(60-e)|0)|0}function Sr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i+12|0;r=i;o[n>>2]=o[254];o[n+4>>2]=o[255];o[n+8>>2]=o[256];o[r>>2]=o[257];o[r+4>>2]=o[258];o[r+8>>2]=o[259];if((e|0)>2)e=11699;else e=o[(t?r:n)+(e<<2)>>2]|0;h=i;return e|0}function Mr(e,t,n,i,a,l,c,f,p,m){e=e|0;t=K(t);n=K(n);i=i|0;a=a|0;l=l|0;c=K(c);f=K(f);p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=ft,E=ft,C=ft,T=ft,k=ft,S=0,M=0,x=0,A=ft,P=ft,O=0,R=ft,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,$=0,X=0,J=0,Q=0,Z=ft,ee=ft,te=ft,ne=ft,re=ft,ie=0,oe=0,ue=0,ae=0,le=0,se=ft,ce=ft,fe=ft,de=ft,pe=ft,he=ft,me=0,ve=ft,be=ft,ge=ft,_e=ft,ye=ft,De=ft,we=0,Ee=0,Ce=ft,Te=ft,ke=0,Se=0,Me=0,xe=0,Ae=ft,Pe=0,Oe=0,Re=0,Ne=0,Ie=0,Fe=0,Be=0,Le=ft,Ue=0,je=0;Be=h;h=h+16|0;ie=Be+12|0;oe=Be+8|0;ue=Be+4|0;ae=Be;It(e,(a|0)==0|(Dt(t)|0)^1,3326);It(e,(l|0)==0|(Dt(n)|0)^1,3406);Oe=Kr(e,i)|0;o[e+496>>2]=Oe;Ie=$r(2,Oe)|0;Fe=$r(0,Oe)|0;s[e+440>>2]=K(Hr(e,Ie,c));s[e+444>>2]=K(Gr(e,Ie,c));s[e+428>>2]=K(Hr(e,Fe,c));s[e+436>>2]=K(Gr(e,Fe,c));s[e+464>>2]=K(Xr(e,Ie));s[e+468>>2]=K(Jr(e,Ie));s[e+452>>2]=K(Xr(e,Fe));s[e+460>>2]=K(Jr(e,Fe));s[e+488>>2]=K(Qr(e,Ie,c));s[e+492>>2]=K(Zr(e,Ie,c));s[e+476>>2]=K(Qr(e,Fe,c));s[e+484>>2]=K(Zr(e,Fe,c));do{if(!(o[e+964>>2]|0)){Re=e+948|0;Ne=(o[e+952>>2]|0)-(o[Re>>2]|0)>>2;if(!Ne){ti(e,t,n,a,l,c,f);break}if(!p?ni(e,t,n,a,l,c,f)|0:0)break;zt(e);X=e+508|0;r[X>>0]=0;Ie=$r(o[e+4>>2]|0,Oe)|0;Fe=ri(Ie,Oe)|0;Pe=Vr(Ie)|0;J=o[e+8>>2]|0;Se=e+28|0;Q=(o[Se>>2]|0)!=0;ye=Pe?c:f;Ce=Pe?f:c;Z=K(ii(e,Ie,c));ee=K(oi(e,Ie,c));y=K(ii(e,Fe,c));De=K(ui(e,Ie,c));Te=K(ui(e,Fe,c));x=Pe?a:l;ke=Pe?l:a;Ae=Pe?De:Te;C=Pe?Te:De;_e=K(Cr(e,2,c));E=K(Cr(e,0,c));D=K(K(Rr(e+364|0,c))-Ae);w=K(K(Rr(e+380|0,c))-Ae);T=K(K(Rr(e+372|0,f))-C);k=K(K(Rr(e+388|0,f))-C);te=Pe?D:T;ne=Pe?w:k;_e=K(t-_e);t=K(_e-Ae);if(Dt(t)|0)Ae=t;else Ae=K(RS(K(IS(t,w)),D));be=K(n-E);t=K(be-C);if(Dt(t)|0)ge=t;else ge=K(RS(K(IS(t,k)),T));D=Pe?Ae:ge;ve=Pe?ge:Ae;e:do{if((x|0)==1){i=0;b=0;while(1){v=Pt(e,b)|0;if(!i){if(K(li(v))>K(0.0)?K(si(v))>K(0.0):0)i=v;else i=0}else if(ai(v)|0){_=0;break e}b=b+1|0;if(b>>>0>=Ne>>>0){_=i;break}}}else _=0}while(0);S=_+500|0;M=_+504|0;i=0;v=0;t=K(0.0);g=0;do{b=o[(o[Re>>2]|0)+(g<<2)>>2]|0;if((o[b+36>>2]|0)==1){ci(b);r[b+985>>0]=1;r[b+984>>0]=0}else{Pr(b);if(p)Nr(b,Kr(b,Oe)|0,D,ve,Ae);do{if((o[b+24>>2]|0)!=1){if((b|0)==(_|0)){o[S>>2]=o[2278];s[M>>2]=K(0.0);break}else{fi(e,b,Ae,a,ge,Ae,ge,l,Oe,m);break}}else{if(v|0)o[v+960>>2]=b;o[b+960>>2]=0;v=b;i=(i|0)==0?b:i}}while(0);he=K(s[b+504>>2]);t=K(t+K(he+K(Cr(b,Ie,Ae))))}g=g+1|0}while((g|0)!=(Ne|0));F=t>D;me=Q&((x|0)==2&F)?1:x;N=(ke|0)==1;L=N&(p^1);U=(me|0)==1;j=(me|0)==2;W=976+(Ie<<2)|0;z=(ke|2|0)==2;Y=N&(Q^1);q=1040+(Fe<<2)|0;H=1040+(Ie<<2)|0;G=976+(Fe<<2)|0;V=(ke|0)!=1;F=Q&((x|0)!=0&F);I=e+976|0;N=N^1;t=D;O=0;B=0;he=K(0.0);re=K(0.0);while(1){e:do{if(O>>>0<Ne>>>0){M=o[Re>>2]|0;g=0;k=K(0.0);T=K(0.0);w=K(0.0);D=K(0.0);b=0;v=0;_=O;while(1){S=o[M+(_<<2)>>2]|0;if((o[S+36>>2]|0)!=1?(o[S+940>>2]=B,(o[S+24>>2]|0)!=1):0){E=K(Cr(S,Ie,Ae));$=o[W>>2]|0;n=K(Rr(S+380+($<<3)|0,ye));C=K(s[S+504>>2]);n=K(IS(n,C));n=K(RS(K(Rr(S+364+($<<3)|0,ye)),n));if(Q&(g|0)!=0&K(E+K(T+n))>t){l=g;E=k;x=_;break e}E=K(E+n);n=K(T+E);E=K(k+E);if(ai(S)|0){w=K(w+K(li(S)));D=K(D-K(C*K(si(S))))}if(v|0)o[v+960>>2]=S;o[S+960>>2]=0;g=g+1|0;v=S;b=(b|0)==0?S:b}else{E=k;n=T}_=_+1|0;if(_>>>0<Ne>>>0){k=E;T=n}else{l=g;x=_;break}}}else{l=0;E=K(0.0);w=K(0.0);D=K(0.0);b=0;x=O}}while(0);$=w>K(0.0)&w<K(1.0);A=$?K(1.0):w;$=D>K(0.0)&D<K(1.0);k=$?K(1.0):D;do{if(!U){if(!(E<te&((Dt(te)|0)^1))){if(!(E>ne&((Dt(ne)|0)^1))){if(!(r[(o[I>>2]|0)+3>>0]|0)){if(!(A==K(0.0))?!(K(li(e))==K(0.0)):0){$=53;break}t=E;$=53}else $=51}else{t=ne;$=51}}else{t=te;$=51}}else $=51}while(0);if(($|0)==51){$=0;if(Dt(t)|0)$=53;else{P=K(t-E);R=t}}if(($|0)==53){$=0;if(E<K(0.0)){P=K(-E);R=t}else{P=K(0.0);R=t}}if(!L?(le=(b|0)==0,!le):0){g=o[W>>2]|0;_=P<K(0.0);C=K(P/k);S=P>K(0.0);T=K(P/A);w=K(0.0);E=K(0.0);t=K(0.0);v=b;do{n=K(Rr(v+380+(g<<3)|0,ye));D=K(Rr(v+364+(g<<3)|0,ye));D=K(IS(n,K(RS(D,K(s[v+504>>2])))));if(_){n=K(D*K(si(v)));if(n!=K(-0.0)?(Le=K(D-K(C*n)),se=K(di(v,Ie,Le,R,Ae)),Le!=se):0){w=K(w-K(se-D));t=K(t+n)}}else if((S?(ce=K(li(v)),ce!=K(0.0)):0)?(Le=K(D+K(T*ce)),fe=K(di(v,Ie,Le,R,Ae)),Le!=fe):0){w=K(w-K(fe-D));E=K(E-ce)}v=o[v+960>>2]|0}while((v|0)!=0);t=K(k+t);D=K(P+w);if(!le){C=K(A+E);_=o[W>>2]|0;S=D<K(0.0);M=t==K(0.0);T=K(D/t);g=D>K(0.0);C=K(D/C);t=K(0.0);do{Le=K(Rr(b+380+(_<<3)|0,ye));w=K(Rr(b+364+(_<<3)|0,ye));w=K(IS(Le,K(RS(w,K(s[b+504>>2])))));if(S){Le=K(w*K(si(b)));D=K(-Le);if(Le!=K(-0.0)){Le=K(T*D);D=K(di(b,Ie,K(w+(M?D:Le)),R,Ae))}else D=w}else if(g?(de=K(li(b)),de!=K(0.0)):0)D=K(di(b,Ie,K(w+K(C*de)),R,Ae));else D=w;t=K(t-K(D-w));E=K(Cr(b,Ie,Ae));n=K(Cr(b,Fe,Ae));D=K(D+E);s[oe>>2]=D;o[ae>>2]=1;w=K(s[b+396>>2]);e:do{if(Dt(w)|0){v=Dt(ve)|0;do{if(!v){if(F|(Or(b,Fe,ve)|0|N))break;if((pi(e,b)|0)!=4)break;if((o[(hi(b,Fe)|0)+4>>2]|0)==3)break;if((o[(mi(b,Fe)|0)+4>>2]|0)==3)break;s[ie>>2]=ve;o[ue>>2]=1;break e}}while(0);if(Or(b,Fe,ve)|0){v=o[b+992+(o[G>>2]<<2)>>2]|0;Le=K(n+K(Rr(v,ve)));s[ie>>2]=Le;v=V&(o[v+4>>2]|0)==2;o[ue>>2]=((Dt(Le)|0|v)^1)&1;break}else{s[ie>>2]=ve;o[ue>>2]=v?0:2;break}}else{Le=K(D-E);A=K(Le/w);Le=K(w*Le);o[ue>>2]=1;s[ie>>2]=K(n+(Pe?A:Le))}}while(0);vi(b,Ie,R,Ae,ae,oe);vi(b,Fe,ve,Ae,ue,ie);do{if(!(Or(b,Fe,ve)|0)?(pi(e,b)|0)==4:0){if((o[(hi(b,Fe)|0)+4>>2]|0)==3){v=0;break}v=(o[(mi(b,Fe)|0)+4>>2]|0)!=3}else v=0}while(0);Le=K(s[oe>>2]);A=K(s[ie>>2]);Ue=o[ae>>2]|0;je=o[ue>>2]|0;Er(b,Pe?Le:A,Pe?A:Le,Oe,Pe?Ue:je,Pe?je:Ue,Ae,ge,p&(v^1),3488,m)|0;r[X>>0]=r[X>>0]|r[b+508>>0];b=o[b+960>>2]|0}while((b|0)!=0)}else t=K(0.0)}else t=K(0.0);t=K(P+t);je=t<K(0.0)&1;r[X>>0]=je|u[X>>0];if(j&t>K(0.0)){v=o[W>>2]|0;if((o[e+364+(v<<3)+4>>2]|0)!=0?(pe=K(Rr(e+364+(v<<3)|0,ye)),pe>=K(0.0)):0)D=K(RS(K(0.0),K(pe-K(R-t))));else D=K(0.0)}else D=t;S=O>>>0<x>>>0;if(S){_=o[Re>>2]|0;g=O;v=0;do{b=o[_+(g<<2)>>2]|0;if(!(o[b+24>>2]|0)){v=((o[(hi(b,Ie)|0)+4>>2]|0)==3&1)+v|0;v=v+((o[(mi(b,Ie)|0)+4>>2]|0)==3&1)|0}g=g+1|0}while((g|0)!=(x|0));if(v){E=K(0.0);n=K(0.0)}else $=101}else $=101;e:do{if(($|0)==101){$=0;switch(J|0){case 1:{v=0;E=K(D*K(.5));n=K(0.0);break e}case 2:{v=0;E=D;n=K(0.0);break e}case 3:{if(l>>>0<=1){v=0;E=K(0.0);n=K(0.0);break e}n=K((l+-1|0)>>>0);v=0;E=K(0.0);n=K(K(RS(D,K(0.0)))/n);break e}case 5:{n=K(D/K((l+1|0)>>>0));v=0;E=n;break e}case 4:{n=K(D/K(l>>>0));v=0;E=K(n*K(.5));break e}default:{v=0;E=K(0.0);n=K(0.0);break e}}}}while(0);t=K(Z+E);if(S){w=K(D/K(v|0));g=o[Re>>2]|0;b=O;D=K(0.0);do{v=o[g+(b<<2)>>2]|0;e:do{if((o[v+36>>2]|0)!=1){switch(o[v+24>>2]|0){case 1:{if(bi(v,Ie)|0){if(!p)break e;Le=K(gi(v,Ie,R));Le=K(Le+K(Xr(e,Ie)));Le=K(Le+K(Hr(v,Ie,Ae)));s[v+400+(o[H>>2]<<2)>>2]=Le;break e}break}case 0:{je=(o[(hi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(p){je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(t+K(s[je>>2]))}je=(o[(mi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(L){Le=K(n+K(Cr(v,Ie,Ae)));D=ve;t=K(t+K(Le+K(s[v+504>>2])));break e}else{t=K(t+K(n+K(_i(v,Ie,Ae))));D=K(RS(D,K(_i(v,Fe,Ae))));break e}}default:{}}if(p){Le=K(E+K(Xr(e,Ie)));je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}}while(0);b=b+1|0}while((b|0)!=(x|0))}else D=K(0.0);n=K(ee+t);if(z)E=K(K(di(e,Fe,K(Te+D),Ce,c))-Te);else E=ve;w=K(K(di(e,Fe,K(Te+(Y?ve:D)),Ce,c))-Te);if(S&p){b=O;do{g=o[(o[Re>>2]|0)+(b<<2)>>2]|0;do{if((o[g+36>>2]|0)!=1){if((o[g+24>>2]|0)==1){if(bi(g,Fe)|0){Le=K(gi(g,Fe,ve));Le=K(Le+K(Xr(e,Fe)));Le=K(Le+K(Hr(g,Fe,Ae)));v=o[q>>2]|0;s[g+400+(v<<2)>>2]=Le;if(!(Dt(Le)|0))break}else v=o[q>>2]|0;Le=K(Xr(e,Fe));s[g+400+(v<<2)>>2]=K(Le+K(Hr(g,Fe,Ae)));break}v=pi(e,g)|0;do{if((v|0)==4){if((o[(hi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if((o[(mi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if(Or(g,Fe,ve)|0){t=y;break}Ue=o[g+908+(o[W>>2]<<2)>>2]|0;o[ie>>2]=Ue;t=K(s[g+396>>2]);je=Dt(t)|0;D=(o[d>>2]=Ue,K(s[d>>2]));if(je)t=w;else{P=K(Cr(g,Fe,Ae));Le=K(D/t);t=K(t*D);t=K(P+(Pe?Le:t))}s[oe>>2]=t;s[ie>>2]=K(K(Cr(g,Ie,Ae))+D);o[ue>>2]=1;o[ae>>2]=1;vi(g,Ie,R,Ae,ue,ie);vi(g,Fe,ve,Ae,ae,oe);t=K(s[ie>>2]);P=K(s[oe>>2]);Le=Pe?t:P;t=Pe?P:t;je=((Dt(Le)|0)^1)&1;Er(g,Le,t,Oe,je,((Dt(t)|0)^1)&1,Ae,ge,1,3493,m)|0;t=y}else $=139}while(0);e:do{if(($|0)==139){$=0;t=K(E-K(_i(g,Fe,Ae)));do{if((o[(hi(g,Fe)|0)+4>>2]|0)==3){if((o[(mi(g,Fe)|0)+4>>2]|0)!=3)break;t=K(y+K(RS(K(0.0),K(t*K(.5)))));break e}}while(0);if((o[(mi(g,Fe)|0)+4>>2]|0)==3){t=y;break}if((o[(hi(g,Fe)|0)+4>>2]|0)==3){t=K(y+K(RS(K(0.0),t)));break}switch(v|0){case 1:{t=y;break e}case 2:{t=K(y+K(t*K(.5)));break e}default:{t=K(y+t);break e}}}}while(0);Le=K(he+t);je=g+400+(o[q>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}while(0);b=b+1|0}while((b|0)!=(x|0))}he=K(he+w);re=K(RS(re,n));l=B+1|0;if(x>>>0>=Ne>>>0)break;else{t=R;O=x;B=l}}do{if(p){v=l>>>0>1;if(!v?!(yi(e)|0):0)break;if(!(Dt(ve)|0)){t=K(ve-he);e:do{switch(o[e+12>>2]|0){case 3:{y=K(y+t);T=K(0.0);break}case 2:{y=K(y+K(t*K(.5)));T=K(0.0);break}case 4:{if(ve>he)T=K(t/K(l>>>0));else T=K(0.0);break}case 7:if(ve>he){y=K(y+K(t/K(l<<1>>>0)));T=K(t/K(l>>>0));T=v?T:K(0.0);break e}else{y=K(y+K(t*K(.5)));T=K(0.0);break e}case 6:{T=K(t/K(B>>>0));T=ve>he&v?T:K(0.0);break}default:T=K(0.0)}}while(0);if(l|0){S=1040+(Fe<<2)|0;M=976+(Fe<<2)|0;_=0;b=0;while(1){e:do{if(b>>>0<Ne>>>0){D=K(0.0);w=K(0.0);t=K(0.0);g=b;while(1){v=o[(o[Re>>2]|0)+(g<<2)>>2]|0;do{if((o[v+36>>2]|0)!=1?(o[v+24>>2]|0)==0:0){if((o[v+940>>2]|0)!=(_|0))break e;if(Di(v,Fe)|0){Le=K(s[v+908+(o[M>>2]<<2)>>2]);t=K(RS(t,K(Le+K(Cr(v,Fe,Ae)))))}if((pi(e,v)|0)!=5)break;pe=K(wi(v));pe=K(pe+K(Hr(v,0,Ae)));Le=K(s[v+912>>2]);Le=K(K(Le+K(Cr(v,0,Ae)))-pe);pe=K(RS(w,pe));Le=K(RS(D,Le));D=Le;w=pe;t=K(RS(t,K(pe+Le)))}}while(0);v=g+1|0;if(v>>>0<Ne>>>0)g=v;else{g=v;break}}}else{w=K(0.0);t=K(0.0);g=b}}while(0);C=K(T+t);n=y;y=K(y+C);if(b>>>0<g>>>0){E=K(n+w);v=b;do{b=o[(o[Re>>2]|0)+(v<<2)>>2]|0;e:do{if((o[b+36>>2]|0)!=1?(o[b+24>>2]|0)==0:0)switch(pi(e,b)|0){case 1:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 3:{Le=K(K(y-K(Gr(b,Fe,Ae)))-K(s[b+908+(o[M>>2]<<2)>>2]));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 2:{Le=K(n+K(K(C-K(s[b+908+(o[M>>2]<<2)>>2]))*K(.5)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 4:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;if(Or(b,Fe,ve)|0)break e;if(Pe){D=K(s[b+908>>2]);t=K(D+K(Cr(b,Ie,Ae)));w=C}else{w=K(s[b+912>>2]);w=K(w+K(Cr(b,Fe,Ae)));t=C;D=K(s[b+908>>2])}if(mr(t,D)|0?mr(w,K(s[b+912>>2]))|0:0)break e;Er(b,t,w,Oe,1,1,Ae,ge,1,3501,m)|0;break e}case 5:{s[b+404>>2]=K(K(E-K(wi(b)))+K(gi(b,0,ve)));break e}default:break e}}while(0);v=v+1|0}while((v|0)!=(g|0))}_=_+1|0;if((_|0)==(l|0))break;else b=g}}}}}while(0);s[e+908>>2]=K(di(e,2,_e,c,c));s[e+912>>2]=K(di(e,0,be,f,c));if((me|0)!=0?(we=o[e+32>>2]|0,Ee=(me|0)==2,!(Ee&(we|0)!=2)):0){if(Ee&(we|0)==2){t=K(De+R);t=K(RS(K(IS(t,K(Ei(e,Ie,re,ye)))),De));$=198}}else{t=K(di(e,Ie,re,ye,c));$=198}if(($|0)==198)s[e+908+(o[976+(Ie<<2)>>2]<<2)>>2]=t;if((ke|0)!=0?(Me=o[e+32>>2]|0,xe=(ke|0)==2,!(xe&(Me|0)!=2)):0){if(xe&(Me|0)==2){t=K(Te+ve);t=K(RS(K(IS(t,K(Ei(e,Fe,K(Te+he),Ce)))),Te));$=204}}else{t=K(di(e,Fe,K(Te+he),Ce,c));$=204}if(($|0)==204)s[e+908+(o[976+(Fe<<2)>>2]<<2)>>2]=t;if(p){if((o[Se>>2]|0)==2){b=976+(Fe<<2)|0;g=1040+(Fe<<2)|0;v=0;do{_=Pt(e,v)|0;if(!(o[_+24>>2]|0)){Ue=o[b>>2]|0;Le=K(s[e+908+(Ue<<2)>>2]);je=_+400+(o[g>>2]<<2)|0;Le=K(Le-K(s[je>>2]));s[je>>2]=K(Le-K(s[_+908+(Ue<<2)>>2]))}v=v+1|0}while((v|0)!=(Ne|0))}if(i|0){v=Pe?me:a;do{Ci(e,i,Ae,v,ge,Oe,m);i=o[i+960>>2]|0}while((i|0)!=0)}v=(Ie|2|0)==3;b=(Fe|2|0)==3;if(v|b){i=0;do{g=o[(o[Re>>2]|0)+(i<<2)>>2]|0;if((o[g+36>>2]|0)!=1){if(v)Ti(e,g,Ie);if(b)Ti(e,g,Fe)}i=i+1|0}while((i|0)!=(Ne|0))}}}else ei(e,t,n,a,l,c,f)}while(0);h=Be;return}function xr(e,t){e=e|0;t=K(t);var n=0;Ct(e,t>=K(0.0),3147);n=t==K(0.0);s[e+4>>2]=n?K(0.0):t;return}function Ar(e,t,n,i){e=e|0;t=K(t);n=K(n);i=i|0;var u=ft,a=ft,l=0,c=0,f=0;o[2278]=(o[2278]|0)+1;Pr(e);if(!(Or(e,2,t)|0)){u=K(Rr(e+380|0,t));if(!(u>=K(0.0))){f=((Dt(t)|0)^1)&1;u=t}else f=2}else{u=K(Rr(o[e+992>>2]|0,t));f=1;u=K(u+K(Cr(e,2,t)))}if(!(Or(e,0,n)|0)){a=K(Rr(e+388|0,n));if(!(a>=K(0.0))){c=((Dt(n)|0)^1)&1;a=n}else c=2}else{a=K(Rr(o[e+996>>2]|0,n));c=1;a=K(a+K(Cr(e,0,t)))}l=e+976|0;if(Er(e,u,a,i,f,c,t,n,1,3189,o[l>>2]|0)|0?(Nr(e,o[e+496>>2]|0,t,n,t),Ir(e,K(s[(o[l>>2]|0)+4>>2]),K(0.0),K(0.0)),r[11696]|0):0)vr(e,7);return}function Pr(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;a=l+24|0;u=l+16|0;r=l+8|0;i=l;n=0;do{t=e+380+(n<<3)|0;if(!((o[e+380+(n<<3)+4>>2]|0)!=0?(s=t,c=o[s+4>>2]|0,f=r,o[f>>2]=o[s>>2],o[f+4>>2]=c,f=e+364+(n<<3)|0,c=o[f+4>>2]|0,s=i,o[s>>2]=o[f>>2],o[s+4>>2]=c,o[u>>2]=o[r>>2],o[u+4>>2]=o[r+4>>2],o[a>>2]=o[i>>2],o[a+4>>2]=o[i+4>>2],hr(u,a)|0):0))t=e+348+(n<<3)|0;o[e+992+(n<<2)>>2]=t;n=n+1|0}while((n|0)!=2);h=l;return}function Or(e,t,n){e=e|0;t=t|0;n=K(n);var r=0;e=o[e+992+(o[976+(t<<2)>>2]<<2)>>2]|0;switch(o[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{if(K(s[e>>2])<K(0.0))e=0;else r=5;break}case 2:{if(K(s[e>>2])<K(0.0))e=0;else e=(Dt(n)|0)^1;break}default:r=5}if((r|0)==5)e=1;return e|0}function Rr(e,t){e=e|0;t=K(t);switch(o[e+4>>2]|0){case 2:{t=K(K(K(s[e>>2])*t)/K(100.0));break}case 1:{t=K(s[e>>2]);break}default:t=K(w)}return K(t)}function Nr(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);var u=0,a=ft;t=o[e+944>>2]|0?t:1;u=$r(o[e+4>>2]|0,t)|0;t=ri(u,t)|0;n=K(Pi(e,u,n));r=K(Pi(e,t,r));a=K(n+K(Hr(e,u,i)));s[e+400+(o[1040+(u<<2)>>2]<<2)>>2]=a;n=K(n+K(Gr(e,u,i)));s[e+400+(o[1e3+(u<<2)>>2]<<2)>>2]=n;n=K(r+K(Hr(e,t,i)));s[e+400+(o[1040+(t<<2)>>2]<<2)>>2]=n;i=K(r+K(Gr(e,t,i)));s[e+400+(o[1e3+(t<<2)>>2]<<2)>>2]=i;return}function Ir(e,t,n,r){e=e|0;t=K(t);n=K(n);r=K(r);var i=0,u=0,a=ft,l=ft,c=0,f=0,d=ft,p=0,h=ft,m=ft,v=ft,b=ft;if(!(t==K(0.0))){i=e+400|0;b=K(s[i>>2]);u=e+404|0;v=K(s[u>>2]);p=e+416|0;m=K(s[p>>2]);f=e+420|0;a=K(s[f>>2]);h=K(b+n);d=K(v+r);r=K(h+m);l=K(d+a);c=(o[e+988>>2]|0)==1;s[i>>2]=K(gr(b,t,0,c));s[u>>2]=K(gr(v,t,0,c));n=K(BS(K(m*t),K(1.0)));if(mr(n,K(0.0))|0)u=0;else u=(mr(n,K(1.0))|0)^1;n=K(BS(K(a*t),K(1.0)));if(mr(n,K(0.0))|0)i=0;else i=(mr(n,K(1.0))|0)^1;b=K(gr(r,t,c&u,c&(u^1)));s[p>>2]=K(b-K(gr(h,t,0,c)));b=K(gr(l,t,c&i,c&(i^1)));s[f>>2]=K(b-K(gr(d,t,0,c)));u=(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2;if(u|0){i=0;do{Ir(Pt(e,i)|0,t,h,d);i=i+1|0}while((i|0)!=(u|0))}}return}function Fr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;switch(n|0){case 5:case 0:{e=oS(o[489]|0,r,i)|0;break}default:e=US(r,i)|0}return e|0}function Br(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;i=h;h=h+16|0;u=i;o[u>>2]=r;Lr(e,0,t,n,u);h=i;return}function Lr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;e=e|0?e:956;Mx[o[e+8>>2]&1](e,t,n,r,i)|0;if((n|0)==5)Ke();else return}function Ur(e,t,n){e=e|0;t=t|0;n=n|0;r[e+t>>0]=n&1;return}function jr(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){Wr(e,r);zr(e,o[t>>2]|0,o[n>>2]|0,r)}return}function Wr(e,t){e=e|0;t=t|0;var n=0;if((qr(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function zr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function qr(e){e=e|0;return 1073741823}function Hr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)e=e+92|0;else e=wt(e+60|0,o[1040+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Gr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)e=e+100|0;else e=wt(e+60|0,o[1e3+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Vr(e){e=e|0;return(e|1|0)==3|0}function Yr(e,t){e=e|0;t=K(t);if((o[e+4>>2]|0)==3)t=K(0.0);else t=K(Rr(e,t));return K(t)}function Kr(e,t){e=e|0;t=t|0;e=o[e>>2]|0;return((e|0)==0?(t|0)>1?t:1:e)|0}function $r(e,t){e=e|0;t=t|0;var n=0;e:do{if((t|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{n=4;break e}}e=2}else n=4}while(0);return e|0}function Xr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+312>>2]|0)!=0:0)?(n=K(s[e+308>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1040+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Jr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+320>>2]|0)!=0:0)?(n=K(s[e+316>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1e3+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Qr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+240>>2]|0)!=0:0)?(r=K(Rr(e+236|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1040+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function Zr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+248>>2]|0)!=0:0)?(r=K(Rr(e+244|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1e3+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function ei(e,t,n,r,i,u,a){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;u=K(u);a=K(a);var l=ft,c=ft,f=ft,d=ft,p=ft,m=ft,v=0,b=0,g=0;g=h;h=h+16|0;v=g;b=e+964|0;It(e,(o[b>>2]|0)!=0,3519);l=K(ui(e,2,t));c=K(ui(e,0,t));f=K(Cr(e,2,t));d=K(Cr(e,0,t));if(Dt(t)|0)p=t;else p=K(RS(K(0.0),K(K(t-f)-l)));if(Dt(n)|0)m=n;else m=K(RS(K(0.0),K(K(n-d)-c)));if((r|0)==1&(i|0)==1){s[e+908>>2]=K(di(e,2,K(t-f),u,u));t=K(di(e,0,K(n-d),a,u))}else{Ax[o[b>>2]&1](v,e,p,r,m,i);p=K(l+K(s[v>>2]));m=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?p:m,u,u));m=K(c+K(s[v+4>>2]));t=K(n-d);t=K(di(e,0,(i|2|0)==2?m:t,a,u))}s[e+912>>2]=t;h=g;return}function ti(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=ft,l=ft,c=ft,f=ft;c=K(ui(e,2,o));a=K(ui(e,0,o));f=K(Cr(e,2,o));l=K(Cr(e,0,o));t=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?c:t,o,o));n=K(n-l);s[e+912>>2]=K(di(e,0,(i|2|0)==2?a:n,u,o));return}function ni(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=0,l=ft,c=ft;a=(r|0)==2;if((!(t<=K(0.0)&a)?!(n<=K(0.0)&(i|0)==2):0)?!((r|0)==1&(i|0)==1):0)e=0;else{l=K(Cr(e,0,o));c=K(Cr(e,2,o));a=t<K(0.0)&a|(Dt(t)|0);t=K(t-c);s[e+908>>2]=K(di(e,2,a?K(0.0):t,o,o));t=K(n-l);a=n<K(0.0)&(i|0)==2|(Dt(n)|0);s[e+912>>2]=K(di(e,0,a?K(0.0):t,u,o));e=1}return e|0}function ri(e,t){e=e|0;t=t|0;if(ki(e)|0)e=$r(2,t)|0;else e=0;return e|0}function ii(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Qr(e,t,n));return K(n+K(Xr(e,t)))}function oi(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Zr(e,t,n));return K(n+K(Jr(e,t)))}function ui(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(ii(e,t,n));return K(r+K(oi(e,t,n)))}function ai(e){e=e|0;if(!(o[e+24>>2]|0)){if(K(li(e))!=K(0.0))e=1;else e=K(si(e))!=K(0.0)}else e=0;return e|0}function li(e){e=e|0;var t=ft;if(o[e+944>>2]|0){t=K(s[e+44>>2]);if(Dt(t)|0){t=K(s[e+40>>2]);e=t>K(0.0)&((Dt(t)|0)^1);return K(e?t:K(0.0))}}else t=K(0.0);return K(t)}function si(e){e=e|0;var t=ft,n=0,i=ft;do{if(o[e+944>>2]|0){t=K(s[e+48>>2]);if(Dt(t)|0){n=r[(o[e+976>>2]|0)+2>>0]|0;if(n<<24>>24==0?(i=K(s[e+40>>2]),i<K(0.0)&((Dt(i)|0)^1)):0){t=K(-i);break}t=n<<24>>24?K(1.0):K(0.0)}}else t=K(0.0)}while(0);return K(t)}function ci(e){e=e|0;var t=0,n=0;tM(e+400|0,0,540)|0;r[e+985>>0]=1;zt(e);n=At(e)|0;if(n|0){t=e+948|0;e=0;do{ci(o[(o[t>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=(n|0))}return}function fi(e,t,n,r,i,u,a,l,c,f){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);u=K(u);a=K(a);l=l|0;c=c|0;f=f|0;var d=0,p=ft,m=0,v=0,b=ft,g=ft,_=0,y=ft,D=0,E=ft,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0;O=h;h=h+16|0;k=O+12|0;S=O+8|0;M=O+4|0;x=O;P=$r(o[e+4>>2]|0,c)|0;C=Vr(P)|0;p=K(Rr(Si(t)|0,C?u:a));T=Or(t,2,u)|0;A=Or(t,0,a)|0;do{if(!(Dt(p)|0)?!(Dt(C?n:i)|0):0){d=t+504|0;if(!(Dt(K(s[d>>2]))|0)){if(!(Mi(o[t+976>>2]|0,0)|0))break;if((o[t+500>>2]|0)==(o[2278]|0))break}s[d>>2]=K(RS(p,K(ui(t,P,u))))}else m=7}while(0);do{if((m|0)==7){D=C^1;if(!(D|T^1)){a=K(Rr(o[t+992>>2]|0,u));s[t+504>>2]=K(RS(a,K(ui(t,2,u))));break}if(!(C|A^1)){a=K(Rr(o[t+996>>2]|0,a));s[t+504>>2]=K(RS(a,K(ui(t,0,u))));break}s[k>>2]=K(w);s[S>>2]=K(w);o[M>>2]=0;o[x>>2]=0;y=K(Cr(t,2,u));E=K(Cr(t,0,u));if(T){b=K(y+K(Rr(o[t+992>>2]|0,u)));s[k>>2]=b;o[M>>2]=1;v=1}else{v=0;b=K(w)}if(A){p=K(E+K(Rr(o[t+996>>2]|0,a)));s[S>>2]=p;o[x>>2]=1;d=1}else{d=0;p=K(w)}m=o[e+32>>2]|0;if(!(C&(m|0)==2)){if(Dt(b)|0?!(Dt(n)|0):0){s[k>>2]=n;o[M>>2]=2;v=2;b=n}}else m=2;if((!((m|0)==2&D)?Dt(p)|0:0)?!(Dt(i)|0):0){s[S>>2]=i;o[x>>2]=2;d=2;p=i}g=K(s[t+396>>2]);_=Dt(g)|0;do{if(!_){if((v|0)==1&D){s[S>>2]=K(K(b-y)/g);o[x>>2]=1;d=1;m=1;break}if(C&(d|0)==1){s[k>>2]=K(g*K(p-E));o[M>>2]=1;d=1;m=1}else m=v}else m=v}while(0);R=Dt(n)|0;v=(pi(e,t)|0)!=4;if(!(C|T|((r|0)!=1|R)|(v|(m|0)==1))?(s[k>>2]=n,o[M>>2]=1,!_):0){s[S>>2]=K(K(n-y)/g);o[x>>2]=1;d=1}if(!(A|D|((l|0)!=1|(Dt(i)|0))|(v|(d|0)==1))?(s[S>>2]=i,o[x>>2]=1,!_):0){s[k>>2]=K(g*K(i-E));o[M>>2]=1}vi(t,2,u,u,M,k);vi(t,0,a,u,x,S);n=K(s[k>>2]);i=K(s[S>>2]);Er(t,n,i,c,o[M>>2]|0,o[x>>2]|0,u,a,0,3565,f)|0;a=K(s[t+908+(o[976+(P<<2)>>2]<<2)>>2]);s[t+504>>2]=K(RS(a,K(ui(t,P,u))))}}while(0);o[t+500>>2]=o[2278];h=O;return}function di(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);r=K(Ei(e,t,n,r));return K(RS(r,K(ui(e,t,i))))}function pi(e,t){e=e|0;t=t|0;t=t+20|0;t=o[((o[t>>2]|0)==0?e+16|0:t)>>2]|0;if((t|0)==5?ki(o[e+4>>2]|0)|0:0)t=1;return t|0}function hi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)t=4;else t=o[1040+(t<<2)>>2]|0;return e+60+(t<<3)|0}function mi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)t=5;else t=o[1e3+(t<<2)>>2]|0;return e+60+(t<<3)|0}function vi(e,t,n,r,i,u){e=e|0;t=t|0;n=K(n);r=K(r);i=i|0;u=u|0;n=K(Rr(e+380+(o[976+(t<<2)>>2]<<3)|0,n));n=K(n+K(Cr(e,t,r)));switch(o[i>>2]|0){case 2:case 1:{i=Dt(n)|0;r=K(s[u>>2]);s[u>>2]=i|r<n?r:n;break}case 0:{if(!(Dt(n)|0)){o[i>>2]=2;s[u>>2]=n}break}default:{}}return}function bi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,4,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1040+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function gi(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,4,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1040+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function _i(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);r=K(r+K(Hr(e,t,n)));return K(r+K(Gr(e,t,n)))}function yi(e){e=e|0;var t=0,n=0,r=0;e:do{if(!(ki(o[e+4>>2]|0)|0)){if((o[e+16>>2]|0)!=5){n=At(e)|0;if(!n)t=0;else{t=0;while(1){r=Pt(e,t)|0;if((o[r+24>>2]|0)==0?(o[r+20>>2]|0)==5:0){t=1;break e}t=t+1|0;if(t>>>0>=n>>>0){t=0;break}}}}else t=1}else t=0}while(0);return t|0}function Di(e,t){e=e|0;t=t|0;var n=ft;n=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);return n>=K(0.0)&((Dt(n)|0)^1)|0}function wi(e){e=e|0;var t=ft,n=0,r=0,i=0,u=0,a=0,l=0,c=ft;n=o[e+968>>2]|0;if(!n){u=At(e)|0;do{if(u|0){n=0;i=0;while(1){r=Pt(e,i)|0;if(o[r+940>>2]|0){a=8;break}if((o[r+24>>2]|0)!=1){l=(pi(e,r)|0)==5;if(l){n=r;break}else n=(n|0)==0?r:n}i=i+1|0;if(i>>>0>=u>>>0){a=8;break}}if((a|0)==8)if(!n)break;t=K(wi(n));return K(t+K(s[n+404>>2]))}}while(0);t=K(s[e+912>>2])}else{c=K(s[e+908>>2]);t=K(s[e+912>>2]);t=K(px[n&0](e,c,t));It(e,(Dt(t)|0)^1,3573)}return K(t)}function Ei(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);var i=ft,o=0;if(!(ki(t)|0)){if(Vr(t)|0){t=0;o=3}else{r=K(w);i=K(w)}}else{t=1;o=3}if((o|0)==3){i=K(Rr(e+364+(t<<3)|0,r));r=K(Rr(e+380+(t<<3)|0,r))}o=r<n&(r>=K(0.0)&((Dt(r)|0)^1));n=o?r:n;o=i>=K(0.0)&((Dt(i)|0)^1)&n<i;return K(o?i:n)}function Ci(e,t,n,r,i,u,a){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);u=u|0;a=a|0;var l=ft,c=ft,f=0,d=0,p=ft,h=ft,m=ft,v=0,b=0,g=0,_=0,y=ft,D=0;g=$r(o[e+4>>2]|0,u)|0;v=ri(g,u)|0;b=Vr(g)|0;p=K(Cr(t,2,n));h=K(Cr(t,0,n));if(!(Or(t,2,n)|0)){if(bi(t,2)|0?xi(t,2)|0:0){l=K(s[e+908>>2]);c=K(Xr(e,2));c=K(l-K(c+K(Jr(e,2))));l=K(gi(t,2,n));l=K(di(t,2,K(c-K(l+K(Ai(t,2,n)))),n,n))}else l=K(w)}else l=K(p+K(Rr(o[t+992>>2]|0,n)));if(!(Or(t,0,i)|0)){if(bi(t,0)|0?xi(t,0)|0:0){c=K(s[e+912>>2]);y=K(Xr(e,0));y=K(c-K(y+K(Jr(e,0))));c=K(gi(t,0,i));c=K(di(t,0,K(y-K(c+K(Ai(t,0,i)))),i,n))}else c=K(w)}else c=K(h+K(Rr(o[t+996>>2]|0,i)));f=Dt(l)|0;d=Dt(c)|0;do{if(f^d?(m=K(s[t+396>>2]),!(Dt(m)|0)):0)if(f){l=K(p+K(K(c-h)*m));break}else{y=K(h+K(K(l-p)/m));c=d?y:c;break}}while(0);d=Dt(l)|0;f=Dt(c)|0;if(d|f){D=(d^1)&1;r=n>K(0.0)&((r|0)!=0&d);l=b?l:r?n:l;Er(t,l,c,u,b?D:r?2:D,d&(f^1)&1,l,c,0,3623,a)|0;l=K(s[t+908>>2]);l=K(l+K(Cr(t,2,n)));c=K(s[t+912>>2]);c=K(c+K(Cr(t,0,n)))}Er(t,l,c,u,1,1,l,c,1,3635,a)|0;if(xi(t,g)|0?!(bi(t,g)|0):0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,g)));y=K(y-K(Gr(t,g,n)));y=K(y-K(Ai(t,g,b?n:i)));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}else _=21;do{if((_|0)==21){if(!(bi(t,g)|0)?(o[e+8>>2]|0)==1:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y;break}if(!(bi(t,g)|0)?(o[e+8>>2]|0)==2:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}}}while(0);if(xi(t,v)|0?!(bi(t,v)|0):0){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,v)));y=K(y-K(Gr(t,v,n)));y=K(y-K(Ai(t,v,b?i:n)));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}else _=30;do{if((_|0)==30?!(bi(t,v)|0):0){if((pi(e,t)|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y;break}D=(pi(e,t)|0)==3;if(D^(o[e+28>>2]|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}}}while(0);return}function Ti(e,t,n){e=e|0;t=t|0;n=n|0;var r=ft,i=0;i=o[976+(n<<2)>>2]|0;r=K(s[t+908+(i<<2)>>2]);r=K(K(s[e+908+(i<<2)>>2])-r);r=K(r-K(s[t+400+(o[1040+(n<<2)>>2]<<2)>>2]));s[t+400+(o[1e3+(n<<2)>>2]<<2)>>2]=r;return}function ki(e){e=e|0;return(e|1|0)==1|0}function Si(e){e=e|0;var t=ft;switch(o[e+56>>2]|0){case 0:case 3:{t=K(s[e+40>>2]);if(t>K(0.0)&((Dt(t)|0)^1))e=r[(o[e+976>>2]|0)+2>>0]|0?1056:992;else e=1056;break}default:e=e+52|0}return e|0}function Mi(e,t){e=e|0;t=t|0;return(r[e+t>>0]|0)!=0|0}function xi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,5,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1e3+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function Ai(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,5,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1e3+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function Pi(e,t,n){e=e|0;t=t|0;n=K(n);if(bi(e,t)|0)n=K(gi(e,t,n));else n=K(-K(Ai(e,t,n)));return K(n)}function Oi(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function Ri(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Ni(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ii(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Fi(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;a=e+4|0;l=o[a>>2]|0;i=l-r|0;u=i>>2;e=t+(u<<2)|0;if(e>>>0<n>>>0){r=l;do{o[r>>2]=o[e>>2];e=e+4|0;r=(o[a>>2]|0)+4|0;o[a>>2]=r}while(e>>>0<n>>>0)}if(u|0)sM(l+(0-u<<2)|0,t|0,i|0)|0;return}function Bi(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;l=t+4|0;s=o[l>>2]|0;i=o[e>>2]|0;a=n;u=a-i|0;r=s+(0-(u>>2)<<2)|0;o[l>>2]=r;if((u|0)>0)iM(r|0,i|0,u|0)|0;i=e+4|0;u=t+8|0;r=(o[i>>2]|0)-a|0;if((r|0)>0){iM(o[u>>2]|0,n|0,r|0)|0;o[u>>2]=(o[u>>2]|0)+(r>>>2<<2)}a=o[e>>2]|0;o[e>>2]=o[l>>2];o[l>>2]=a;a=o[i>>2]|0;o[i>>2]=o[u>>2];o[u>>2]=a;a=e+8|0;n=t+12|0;e=o[a>>2]|0;o[a>>2]=o[n>>2];o[n>>2]=e;o[t>>2]=o[l>>2];return s|0}function Li(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=o[t>>2]|0;u=o[n>>2]|0;if((a|0)!=(u|0)){i=e+8|0;n=((u+-4-a|0)>>>2)+1|0;e=a;r=o[i>>2]|0;do{o[r>>2]=o[e>>2];r=(o[i>>2]|0)+4|0;o[i>>2]=r;e=e+4|0}while((e|0)!=(u|0));o[t>>2]=a+(n<<2)}return}function Ui(){_t();return}function ji(){var e=0;e=YS(4)|0;Wi(e);return e|0}function Wi(e){e=e|0;o[e>>2]=Bt()|0;return}function zi(e){e=e|0;if(e|0){qi(e);$S(e)}return}function qi(e){e=e|0;Ut(o[e>>2]|0);return}function Hi(e,t,n){e=e|0;t=t|0;n=n|0;Ur(o[e>>2]|0,t,n);return}function Gi(e,t){e=e|0;t=K(t);xr(o[e>>2]|0,t);return}function Vi(e,t){e=e|0;t=t|0;return Mi(o[e>>2]|0,t)|0}function Yi(){var e=0;e=YS(8)|0;Ki(e,0);return e|0}function Ki(e,t){e=e|0;t=t|0;if(!t)t=Tt()|0;else t=Et(o[t>>2]|0)|0;o[e>>2]=t;o[e+4>>2]=0;Qt(t,e);return}function $i(e){e=e|0;var t=0;t=YS(8)|0;Ki(t,e);return t|0}function Xi(e){e=e|0;if(e|0){Ji(e);$S(e)}return}function Ji(e){e=e|0;var t=0;Mt(o[e>>2]|0);t=e+4|0;e=o[t>>2]|0;o[t>>2]=0;if(e|0){Qi(e);$S(e)}return}function Qi(e){e=e|0;Zi(e);return}function Zi(e){e=e|0;e=o[e>>2]|0;if(e|0)rt(e|0);return}function eo(e){e=e|0;return Zt(e)|0}function to(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}Nt(o[e>>2]|0);return}function no(e,t){e=e|0;t=t|0;$t(o[e>>2]|0,o[t>>2]|0);return}function ro(e,t){e=e|0;t=t|0;fn(o[e>>2]|0,t);return}function io(e,t,n){e=e|0;t=t|0;n=+n;Tn(o[e>>2]|0,t,K(n));return}function oo(e,t,n){e=e|0;t=t|0;n=+n;kn(o[e>>2]|0,t,K(n));return}function uo(e,t){e=e|0;t=t|0;on(o[e>>2]|0,t);return}function ao(e,t){e=e|0;t=t|0;an(o[e>>2]|0,t);return}function lo(e,t){e=e|0;t=t|0;sn(o[e>>2]|0,t);return}function so(e,t){e=e|0;t=t|0;en(o[e>>2]|0,t);return}function co(e,t){e=e|0;t=t|0;pn(o[e>>2]|0,t);return}function fo(e,t){e=e|0;t=t|0;nn(o[e>>2]|0,t);return}function po(e,t,n){e=e|0;t=t|0;n=+n;Mn(o[e>>2]|0,t,K(n));return}function ho(e,t,n){e=e|0;t=t|0;n=+n;xn(o[e>>2]|0,t,K(n));return}function mo(e,t){e=e|0;t=t|0;Pn(o[e>>2]|0,t);return}function vo(e,t){e=e|0;t=t|0;mn(o[e>>2]|0,t);return}function bo(e,t){e=e|0;t=t|0;bn(o[e>>2]|0,t);return}function go(e,t){e=e|0;t=+t;_n(o[e>>2]|0,K(t));return}function _o(e,t){e=e|0;t=+t;wn(o[e>>2]|0,K(t));return}function yo(e,t){e=e|0;t=+t;En(o[e>>2]|0,K(t));return}function Do(e,t){e=e|0;t=+t;yn(o[e>>2]|0,K(t));return}function wo(e,t){e=e|0;t=+t;Dn(o[e>>2]|0,K(t));return}function Eo(e,t){e=e|0;t=+t;Bn(o[e>>2]|0,K(t));return}function Co(e,t){e=e|0;t=+t;Ln(o[e>>2]|0,K(t));return}function To(e){e=e|0;Un(o[e>>2]|0);return}function ko(e,t){e=e|0;t=+t;Wn(o[e>>2]|0,K(t));return}function So(e,t){e=e|0;t=+t;zn(o[e>>2]|0,K(t));return}function Mo(e){e=e|0;qn(o[e>>2]|0);return}function xo(e,t){e=e|0;t=+t;Gn(o[e>>2]|0,K(t));return}function Ao(e,t){e=e|0;t=+t;Vn(o[e>>2]|0,K(t));return}function Po(e,t){e=e|0;t=+t;Kn(o[e>>2]|0,K(t));return}function Oo(e,t){e=e|0;t=+t;$n(o[e>>2]|0,K(t));return}function Ro(e,t){e=e|0;t=+t;Jn(o[e>>2]|0,K(t));return}function No(e,t){e=e|0;t=+t;Qn(o[e>>2]|0,K(t));return}function Io(e,t){e=e|0;t=+t;er(o[e>>2]|0,K(t));return}function Fo(e,t){e=e|0;t=+t;tr(o[e>>2]|0,K(t));return}function Bo(e,t){e=e|0;t=+t;rr(o[e>>2]|0,K(t));return}function Lo(e,t,n){e=e|0;t=t|0;n=+n;In(o[e>>2]|0,t,K(n));return}function Uo(e,t,n){e=e|0;t=t|0;n=+n;On(o[e>>2]|0,t,K(n));return}function jo(e,t,n){e=e|0;t=t|0;n=+n;Rn(o[e>>2]|0,t,K(n));return}function Wo(e){e=e|0;return dn(o[e>>2]|0)|0}function zo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Sn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function qo(e,t){e=e|0;t=t|0;Ho(e,o[t+4>>2]|0,+K(s[t>>2]));return}function Ho(e,t,n){e=e|0;t=t|0;n=+n;o[e>>2]=t;c[e+8>>3]=n;return}function Go(e){e=e|0;return un(o[e>>2]|0)|0}function Vo(e){e=e|0;return ln(o[e>>2]|0)|0}function Yo(e){e=e|0;return cn(o[e>>2]|0)|0}function Ko(e){e=e|0;return tn(o[e>>2]|0)|0}function $o(e){e=e|0;return hn(o[e>>2]|0)|0}function Xo(e){e=e|0;return rn(o[e>>2]|0)|0}function Jo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;An(i,o[t>>2]|0,n);qo(e,i);h=r;return}function Qo(e){e=e|0;return vn(o[e>>2]|0)|0}function Zo(e){e=e|0;return gn(o[e>>2]|0)|0}function eu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Cn(r,o[t>>2]|0);qo(e,r);h=n;return}function tu(e){e=e|0;return+ +K(Xt(o[e>>2]|0))}function nu(e){e=e|0;return+ +K(Jt(o[e>>2]|0))}function ru(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;jn(r,o[t>>2]|0);qo(e,r);h=n;return}function iu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Hn(r,o[t>>2]|0);qo(e,r);h=n;return}function ou(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Yn(r,o[t>>2]|0);qo(e,r);h=n;return}function uu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Xn(r,o[t>>2]|0);qo(e,r);h=n;return}function au(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Zn(r,o[t>>2]|0);qo(e,r);h=n;return}function lu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;nr(r,o[t>>2]|0);qo(e,r);h=n;return}function su(e){e=e|0;return+ +K(ir(o[e>>2]|0))}function cu(e,t){e=e|0;t=t|0;return+ +K(Fn(o[e>>2]|0,t))}function fu(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Nn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function du(e,t,n){e=e|0;t=t|0;n=n|0;Wt(o[e>>2]|0,o[t>>2]|0,n);return}function pu(e,t){e=e|0;t=t|0;Rt(o[e>>2]|0,o[t>>2]|0);return}function hu(e){e=e|0;return At(o[e>>2]|0)|0}function mu(e){e=e|0;e=Vt(o[e>>2]|0)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function vu(e,t){e=e|0;t=t|0;e=Pt(o[e>>2]|0,t)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function bu(e,t){e=e|0;t=t|0;var n=0,r=0;r=YS(4)|0;gu(r,t);n=e+4|0;t=o[n>>2]|0;o[n>>2]=r;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,1);return}function gu(e,t){e=e|0;t=t|0;Lu(e,t);return}function _u(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;var u=0,a=0;u=h;h=h+16|0;a=u;yu(a,Zt(t)|0,+n,r,+i,o);s[e>>2]=K(+c[a>>3]);s[e+4>>2]=K(+c[a+8>>3]);h=u;return}function yu(e,t,n,r,i,u){e=e|0;t=t|0;n=+n;r=r|0;i=+i;u=u|0;var a=0,l=0,s=0,f=0,d=0;a=h;h=h+32|0;d=a+8|0;f=a+20|0;s=a;l=a+16|0;c[d>>3]=n;o[f>>2]=r;c[s>>3]=i;o[l>>2]=u;Du(e,o[t+4>>2]|0,d,f,s,l);h=a;return}function Du(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);t=wu(t)|0;Eu(e,t,+c[n>>3],o[r>>2]|0,+c[i>>3],o[u>>2]|0);Tk(l);h=a;return}function wu(e){e=e|0;return o[e>>2]|0}function Eu(e,t,n,r,i,o){e=e|0;t=t|0;n=+n;r=r|0;i=+i;o=o|0;var u=0;u=Tu(Cu()|0)|0;n=+ku(n);r=Su(r)|0;i=+ku(i);Mu(e,ot(0,u|0,t|0,+n,r|0,+i,Su(o)|0)|0);return}function Cu(){var e=0;if(!(r[7608]|0)){Iu(9120);e=7608;o[e>>2]=1;o[e+4>>2]=0}return 9120}function Tu(e){e=e|0;return o[e+8>>2]|0}function ku(e){e=+e;return+ +Nu(e)}function Su(e){e=e|0;return Ru(e)|0}function Mu(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=t;if(!(r&1)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2]}else{xu(n,0);Le(r|0,n|0)|0;Au(e,n);Pu(n)}h=i;return}function xu(e,t){e=e|0;t=t|0;Ou(e,t);o[e+8>>2]=0;r[e+24>>0]=0;return}function Au(e,t){e=e|0;t=t|0;t=t+8|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];return}function Pu(e){e=e|0;r[e+24>>0]=0;return}function Ou(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Ru(e){e=e|0;return e|0}function Nu(e){e=+e;return+e}function Iu(e){e=e|0;Bu(e,Fu()|0,4);return}function Fu(){return 1064}function Bu(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=tt(t|0,n+1|0)|0;return}function Lu(e,t){e=e|0;t=t|0;t=o[t>>2]|0;o[e>>2]=t;xe(t|0);return}function Uu(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,0);return}function ju(e){e=e|0;Yt(o[e>>2]|0);return}function Wu(e){e=e|0;return Kt(o[e>>2]|0)|0}function zu(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;Ar(o[e>>2]|0,K(t),K(n),r);return}function qu(e){e=e|0;return+ +K(or(o[e>>2]|0))}function Hu(e){e=e|0;return+ +K(ar(o[e>>2]|0))}function Gu(e){e=e|0;return+ +K(ur(o[e>>2]|0))}function Vu(e){e=e|0;return+ +K(lr(o[e>>2]|0))}function Yu(e){e=e|0;return+ +K(sr(o[e>>2]|0))}function Ku(e){e=e|0;return+ +K(cr(o[e>>2]|0))}function $u(e,t){e=e|0;t=t|0;c[e>>3]=+K(or(o[t>>2]|0));c[e+8>>3]=+K(ar(o[t>>2]|0));c[e+16>>3]=+K(ur(o[t>>2]|0));c[e+24>>3]=+K(lr(o[t>>2]|0));c[e+32>>3]=+K(sr(o[t>>2]|0));c[e+40>>3]=+K(cr(o[t>>2]|0));return}function Xu(e,t){e=e|0;t=t|0;return+ +K(fr(o[e>>2]|0,t))}function Ju(e,t){e=e|0;t=t|0;return+ +K(dr(o[e>>2]|0,t))}function Qu(e,t){e=e|0;t=t|0;return+ +K(pr(o[e>>2]|0,t))}function Zu(){return Ft()|0}function ea(){ta();na();ra();ia();oa();ua();return}function ta(){Wy(11713,4938,1);return}function na(){ty(10448);return}function ra(){I_(10408);return}function ia(){Qg(10324);return}function oa(){Gv(10096);return}function ua(){aa(9132);return}function aa(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,K=0,$=0,X=0,J=0,Q=0,Z=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,ue=0,ae=0,le=0,se=0,ce=0,fe=0,de=0,pe=0,he=0,me=0,ve=0,be=0,ge=0,_e=0,ye=0,De=0,we=0,Ee=0,Ce=0,Te=0,ke=0,Se=0,Me=0,xe=0,Ae=0,Pe=0,Oe=0;t=h;h=h+672|0;n=t+656|0;Oe=t+648|0;Pe=t+640|0;Ae=t+632|0;xe=t+624|0;Me=t+616|0;Se=t+608|0;ke=t+600|0;Te=t+592|0;Ce=t+584|0;Ee=t+576|0;we=t+568|0;De=t+560|0;ye=t+552|0;_e=t+544|0;ge=t+536|0;be=t+528|0;ve=t+520|0;me=t+512|0;he=t+504|0;pe=t+496|0;de=t+488|0;fe=t+480|0;ce=t+472|0;se=t+464|0;le=t+456|0;ae=t+448|0;ue=t+440|0;oe=t+432|0;ie=t+424|0;re=t+416|0;ne=t+408|0;te=t+400|0;ee=t+392|0;Z=t+384|0;Q=t+376|0;J=t+368|0;X=t+360|0;$=t+352|0;K=t+344|0;Y=t+336|0;V=t+328|0;G=t+320|0;H=t+312|0;q=t+304|0;z=t+296|0;W=t+288|0;j=t+280|0;U=t+272|0;L=t+264|0;B=t+256|0;F=t+248|0;I=t+240|0;N=t+232|0;R=t+224|0;O=t+216|0;P=t+208|0;A=t+200|0;x=t+192|0;M=t+184|0;S=t+176|0;k=t+168|0;T=t+160|0;C=t+152|0;E=t+144|0;w=t+136|0;D=t+128|0;y=t+120|0;_=t+112|0;g=t+104|0;b=t+96|0;v=t+88|0;m=t+80|0;p=t+72|0;d=t+64|0;f=t+56|0;c=t+48|0;s=t+40|0;l=t+32|0;a=t+24|0;u=t+16|0;i=t+8|0;r=t;la(e,3646);sa(e,3651,2)|0;ca(e,3665,2)|0;fa(e,3682,18)|0;o[Oe>>2]=19;o[Oe+4>>2]=0;o[n>>2]=o[Oe>>2];o[n+4>>2]=o[Oe+4>>2];da(e,3690,n)|0;o[Pe>>2]=1;o[Pe+4>>2]=0;o[n>>2]=o[Pe>>2];o[n+4>>2]=o[Pe+4>>2];pa(e,3696,n)|0;o[Ae>>2]=2;o[Ae+4>>2]=0;o[n>>2]=o[Ae>>2];o[n+4>>2]=o[Ae+4>>2];ha(e,3706,n)|0;o[xe>>2]=1;o[xe+4>>2]=0;o[n>>2]=o[xe>>2];o[n+4>>2]=o[xe+4>>2];ma(e,3722,n)|0;o[Me>>2]=2;o[Me+4>>2]=0;o[n>>2]=o[Me>>2];o[n+4>>2]=o[Me+4>>2];ma(e,3734,n)|0;o[Se>>2]=3;o[Se+4>>2]=0;o[n>>2]=o[Se>>2];o[n+4>>2]=o[Se+4>>2];ha(e,3753,n)|0;o[ke>>2]=4;o[ke+4>>2]=0;o[n>>2]=o[ke>>2];o[n+4>>2]=o[ke+4>>2];ha(e,3769,n)|0;o[Te>>2]=5;o[Te+4>>2]=0;o[n>>2]=o[Te>>2];o[n+4>>2]=o[Te+4>>2];ha(e,3783,n)|0;o[Ce>>2]=6;o[Ce+4>>2]=0;o[n>>2]=o[Ce>>2];o[n+4>>2]=o[Ce+4>>2];ha(e,3796,n)|0;o[Ee>>2]=7;o[Ee+4>>2]=0;o[n>>2]=o[Ee>>2];o[n+4>>2]=o[Ee+4>>2];ha(e,3813,n)|0;o[we>>2]=8;o[we+4>>2]=0;o[n>>2]=o[we>>2];o[n+4>>2]=o[we+4>>2];ha(e,3825,n)|0;o[De>>2]=3;o[De+4>>2]=0;o[n>>2]=o[De>>2];o[n+4>>2]=o[De+4>>2];ma(e,3843,n)|0;o[ye>>2]=4;o[ye+4>>2]=0;o[n>>2]=o[ye>>2];o[n+4>>2]=o[ye+4>>2];ma(e,3853,n)|0;o[_e>>2]=9;o[_e+4>>2]=0;o[n>>2]=o[_e>>2];o[n+4>>2]=o[_e+4>>2];ha(e,3870,n)|0;o[ge>>2]=10;o[ge+4>>2]=0;o[n>>2]=o[ge>>2];o[n+4>>2]=o[ge+4>>2];ha(e,3884,n)|0;o[be>>2]=11;o[be+4>>2]=0;o[n>>2]=o[be>>2];o[n+4>>2]=o[be+4>>2];ha(e,3896,n)|0;o[ve>>2]=1;o[ve+4>>2]=0;o[n>>2]=o[ve>>2];o[n+4>>2]=o[ve+4>>2];va(e,3907,n)|0;o[me>>2]=2;o[me+4>>2]=0;o[n>>2]=o[me>>2];o[n+4>>2]=o[me+4>>2];va(e,3915,n)|0;o[he>>2]=3;o[he+4>>2]=0;o[n>>2]=o[he>>2];o[n+4>>2]=o[he+4>>2];va(e,3928,n)|0;o[pe>>2]=4;o[pe+4>>2]=0;o[n>>2]=o[pe>>2];o[n+4>>2]=o[pe+4>>2];va(e,3948,n)|0;o[de>>2]=5;o[de+4>>2]=0;o[n>>2]=o[de>>2];o[n+4>>2]=o[de+4>>2];va(e,3960,n)|0;o[fe>>2]=6;o[fe+4>>2]=0;o[n>>2]=o[fe>>2];o[n+4>>2]=o[fe+4>>2];va(e,3974,n)|0;o[ce>>2]=7;o[ce+4>>2]=0;o[n>>2]=o[ce>>2];o[n+4>>2]=o[ce+4>>2];va(e,3983,n)|0;o[se>>2]=20;o[se+4>>2]=0;o[n>>2]=o[se>>2];o[n+4>>2]=o[se+4>>2];da(e,3999,n)|0;o[le>>2]=8;o[le+4>>2]=0;o[n>>2]=o[le>>2];o[n+4>>2]=o[le+4>>2];va(e,4012,n)|0;o[ae>>2]=9;o[ae+4>>2]=0;o[n>>2]=o[ae>>2];o[n+4>>2]=o[ae+4>>2];va(e,4022,n)|0;o[ue>>2]=21;o[ue+4>>2]=0;o[n>>2]=o[ue>>2];o[n+4>>2]=o[ue+4>>2];da(e,4039,n)|0;o[oe>>2]=10;o[oe+4>>2]=0;o[n>>2]=o[oe>>2];o[n+4>>2]=o[oe+4>>2];va(e,4053,n)|0;o[ie>>2]=11;o[ie+4>>2]=0;o[n>>2]=o[ie>>2];o[n+4>>2]=o[ie+4>>2];va(e,4065,n)|0;o[re>>2]=12;o[re+4>>2]=0;o[n>>2]=o[re>>2];o[n+4>>2]=o[re+4>>2];va(e,4084,n)|0;o[ne>>2]=13;o[ne+4>>2]=0;o[n>>2]=o[ne>>2];o[n+4>>2]=o[ne+4>>2];va(e,4097,n)|0;o[te>>2]=14;o[te+4>>2]=0;o[n>>2]=o[te>>2];o[n+4>>2]=o[te+4>>2];va(e,4117,n)|0;o[ee>>2]=15;o[ee+4>>2]=0;o[n>>2]=o[ee>>2];o[n+4>>2]=o[ee+4>>2];va(e,4129,n)|0;o[Z>>2]=16;o[Z+4>>2]=0;o[n>>2]=o[Z>>2];o[n+4>>2]=o[Z+4>>2];va(e,4148,n)|0;o[Q>>2]=17;o[Q+4>>2]=0;o[n>>2]=o[Q>>2];o[n+4>>2]=o[Q+4>>2];va(e,4161,n)|0;o[J>>2]=18;o[J+4>>2]=0;o[n>>2]=o[J>>2];o[n+4>>2]=o[J+4>>2];va(e,4181,n)|0;o[X>>2]=5;o[X+4>>2]=0;o[n>>2]=o[X>>2];o[n+4>>2]=o[X+4>>2];ma(e,4196,n)|0;o[$>>2]=6;o[$+4>>2]=0;o[n>>2]=o[$>>2];o[n+4>>2]=o[$+4>>2];ma(e,4206,n)|0;o[K>>2]=7;o[K+4>>2]=0;o[n>>2]=o[K>>2];o[n+4>>2]=o[K+4>>2];ma(e,4217,n)|0;o[Y>>2]=3;o[Y+4>>2]=0;o[n>>2]=o[Y>>2];o[n+4>>2]=o[Y+4>>2];ba(e,4235,n)|0;o[V>>2]=1;o[V+4>>2]=0;o[n>>2]=o[V>>2];o[n+4>>2]=o[V+4>>2];ga(e,4251,n)|0;o[G>>2]=4;o[G+4>>2]=0;o[n>>2]=o[G>>2];o[n+4>>2]=o[G+4>>2];ba(e,4263,n)|0;o[H>>2]=5;o[H+4>>2]=0;o[n>>2]=o[H>>2];o[n+4>>2]=o[H+4>>2];ba(e,4279,n)|0;o[q>>2]=6;o[q+4>>2]=0;o[n>>2]=o[q>>2];o[n+4>>2]=o[q+4>>2];ba(e,4293,n)|0;o[z>>2]=7;o[z+4>>2]=0;o[n>>2]=o[z>>2];o[n+4>>2]=o[z+4>>2];ba(e,4306,n)|0;o[W>>2]=8;o[W+4>>2]=0;o[n>>2]=o[W>>2];o[n+4>>2]=o[W+4>>2];ba(e,4323,n)|0;o[j>>2]=9;o[j+4>>2]=0;o[n>>2]=o[j>>2];o[n+4>>2]=o[j+4>>2];ba(e,4335,n)|0;o[U>>2]=2;o[U+4>>2]=0;o[n>>2]=o[U>>2];o[n+4>>2]=o[U+4>>2];ga(e,4353,n)|0;o[L>>2]=12;o[L+4>>2]=0;o[n>>2]=o[L>>2];o[n+4>>2]=o[L+4>>2];_a(e,4363,n)|0;o[B>>2]=1;o[B+4>>2]=0;o[n>>2]=o[B>>2];o[n+4>>2]=o[B+4>>2];ya(e,4376,n)|0;o[F>>2]=2;o[F+4>>2]=0;o[n>>2]=o[F>>2];o[n+4>>2]=o[F+4>>2];ya(e,4388,n)|0;o[I>>2]=13;o[I+4>>2]=0;o[n>>2]=o[I>>2];o[n+4>>2]=o[I+4>>2];_a(e,4402,n)|0;o[N>>2]=14;o[N+4>>2]=0;o[n>>2]=o[N>>2];o[n+4>>2]=o[N+4>>2];_a(e,4411,n)|0;o[R>>2]=15;o[R+4>>2]=0;o[n>>2]=o[R>>2];o[n+4>>2]=o[R+4>>2];_a(e,4421,n)|0;o[O>>2]=16;o[O+4>>2]=0;o[n>>2]=o[O>>2];o[n+4>>2]=o[O+4>>2];_a(e,4433,n)|0;o[P>>2]=17;o[P+4>>2]=0;o[n>>2]=o[P>>2];o[n+4>>2]=o[P+4>>2];_a(e,4446,n)|0;o[A>>2]=18;o[A+4>>2]=0;o[n>>2]=o[A>>2];o[n+4>>2]=o[A+4>>2];_a(e,4458,n)|0;o[x>>2]=3;o[x+4>>2]=0;o[n>>2]=o[x>>2];o[n+4>>2]=o[x+4>>2];ya(e,4471,n)|0;o[M>>2]=1;o[M+4>>2]=0;o[n>>2]=o[M>>2];o[n+4>>2]=o[M+4>>2];Da(e,4486,n)|0;o[S>>2]=10;o[S+4>>2]=0;o[n>>2]=o[S>>2];o[n+4>>2]=o[S+4>>2];ba(e,4496,n)|0;o[k>>2]=11;o[k+4>>2]=0;o[n>>2]=o[k>>2];o[n+4>>2]=o[k+4>>2];ba(e,4508,n)|0;o[T>>2]=3;o[T+4>>2]=0;o[n>>2]=o[T>>2];o[n+4>>2]=o[T+4>>2];ga(e,4519,n)|0;o[C>>2]=4;o[C+4>>2]=0;o[n>>2]=o[C>>2];o[n+4>>2]=o[C+4>>2];wa(e,4530,n)|0;o[E>>2]=19;o[E+4>>2]=0;o[n>>2]=o[E>>2];o[n+4>>2]=o[E+4>>2];Ea(e,4542,n)|0;o[w>>2]=12;o[w+4>>2]=0;o[n>>2]=o[w>>2];o[n+4>>2]=o[w+4>>2];Ca(e,4554,n)|0;o[D>>2]=13;o[D+4>>2]=0;o[n>>2]=o[D>>2];o[n+4>>2]=o[D+4>>2];Ta(e,4568,n)|0;o[y>>2]=2;o[y+4>>2]=0;o[n>>2]=o[y>>2];o[n+4>>2]=o[y+4>>2];ka(e,4578,n)|0;o[_>>2]=20;o[_+4>>2]=0;o[n>>2]=o[_>>2];o[n+4>>2]=o[_+4>>2];Sa(e,4587,n)|0;o[g>>2]=22;o[g+4>>2]=0;o[n>>2]=o[g>>2];o[n+4>>2]=o[g+4>>2];da(e,4602,n)|0;o[b>>2]=23;o[b+4>>2]=0;o[n>>2]=o[b>>2];o[n+4>>2]=o[b+4>>2];da(e,4619,n)|0;o[v>>2]=14;o[v+4>>2]=0;o[n>>2]=o[v>>2];o[n+4>>2]=o[v+4>>2];Ma(e,4629,n)|0;o[m>>2]=1;o[m+4>>2]=0;o[n>>2]=o[m>>2];o[n+4>>2]=o[m+4>>2];xa(e,4637,n)|0;o[p>>2]=4;o[p+4>>2]=0;o[n>>2]=o[p>>2];o[n+4>>2]=o[p+4>>2];ya(e,4653,n)|0;o[d>>2]=5;o[d+4>>2]=0;o[n>>2]=o[d>>2];o[n+4>>2]=o[d+4>>2];ya(e,4669,n)|0;o[f>>2]=6;o[f+4>>2]=0;o[n>>2]=o[f>>2];o[n+4>>2]=o[f+4>>2];ya(e,4686,n)|0;o[c>>2]=7;o[c+4>>2]=0;o[n>>2]=o[c>>2];o[n+4>>2]=o[c+4>>2];ya(e,4701,n)|0;o[s>>2]=8;o[s+4>>2]=0;o[n>>2]=o[s>>2];o[n+4>>2]=o[s+4>>2];ya(e,4719,n)|0;o[l>>2]=9;o[l+4>>2]=0;o[n>>2]=o[l>>2];o[n+4>>2]=o[l+4>>2];ya(e,4736,n)|0;o[a>>2]=21;o[a+4>>2]=0;o[n>>2]=o[a>>2];o[n+4>>2]=o[a+4>>2];Aa(e,4754,n)|0;o[u>>2]=2;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];Da(e,4772,n)|0;o[i>>2]=3;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Da(e,4790,n)|0;o[r>>2]=4;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Da(e,4808,n)|0;h=t;return}function la(e,t){e=e|0;t=t|0;var n=0;n=Nv()|0;o[e>>2]=n;Iv(n,t);cD(o[e>>2]|0);return}function sa(e,t,n){e=e|0;t=t|0;n=n|0;bv(e,Oa(t)|0,n,0);return e|0}function ca(e,t,n){e=e|0;t=t|0;n=n|0;Xm(e,Oa(t)|0,n,0);return e|0}function fa(e,t,n){e=e|0;t=t|0;n=n|0;Rm(e,Oa(t)|0,n,0);return e|0}function da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hm(e,t,i);h=r;return e|0}function pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vh(e,t,i);h=r;return e|0}function ha(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Sh(e,t,i);h=r;return e|0}function ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];lh(e,t,i);h=r;return e|0}function va(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];qp(e,t,i);h=r;return e|0}function ba(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Cp(e,t,i);h=r;return e|0}function ga(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];op(e,t,i);h=r;return e|0}function _a(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Td(e,t,i);h=r;return e|0}function ya(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ud(e,t,i);h=r;return e|0}function Da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Wf(e,t,i);h=r;return e|0}function wa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];wf(e,t,i);h=r;return e|0}function Ea(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zc(e,t,i);h=r;return e|0}function Ca(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Rc(e,t,i);h=r;return e|0}function Ta(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hc(e,t,i);h=r;return e|0}function ka(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gs(e,t,i);h=r;return e|0}function Sa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ds(e,t,i);h=r;return e|0}function Ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ts(e,t,i);h=r;return e|0}function xa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Al(e,t,i);h=r;return e|0}function Aa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pa(e,t,i);h=r;return e|0}function Pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ra(e,n,i,1);h=r;return}function Oa(e){e=e|0;return e|0}function Ra(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Na()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ia(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Fa(u,r)|0,r);h=i;return}function Na(){var e=0,t=0;if(!(r[7616]|0)){Ka(9136);Fe(24,9136,b|0)|0;t=7616;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9136)|0)){e=9136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ka(9136)}return 9136}function Ia(e){e=e|0;return 0}function Fa(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Na()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];za(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{qa(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ba(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;a=h;h=h+32|0;p=a+24|0;d=a+20|0;s=a+16|0;f=a+12|0;c=a+8|0;l=a+4|0;m=a;o[d>>2]=t;o[s>>2]=n;o[f>>2]=r;o[c>>2]=i;o[l>>2]=u;u=e+28|0;o[m>>2]=o[u>>2];o[p>>2]=o[m>>2];La(e+24|0,p,d,f,c,s,l)|0;o[u>>2]=o[o[u>>2]>>2];h=a;return}function La(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;e=Ua(t)|0;t=YS(24)|0;ja(t+4|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0,o[a>>2]|0);o[t>>2]=o[e>>2];o[e>>2]=t;return t|0}function Ua(e){e=e|0;return o[e>>2]|0}function ja(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function Wa(e,t){e=e|0;t=t|0;return t|e|0}function za(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function qa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ha(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ga(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];za(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Va(e,l);Ya(l);h=c;return}}function Ha(e){e=e|0;return 357913941}function Ga(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Va(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ya(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ka(e){e=e|0;Qa(e);return}function $a(e){e=e|0;Ja(e+24|0);return}function Xa(e){e=e|0;return o[e>>2]|0}function Ja(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Qa(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,el()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Za(){return 9228}function el(){return 1140}function tl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=rl(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=il(t,r)|0;h=n;return t|0}function nl(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function rl(e){e=e|0;return(o[(Na()|0)+24>>2]|0)+(e*12|0)|0}function il(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+48|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=ol(r)|0;h=i;return r|0}function ol(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(ul()|0)|0;if(!r)e=dl(e)|0;else{ll(t,r);sl(n,t);cl(e,n);e=fl(t)|0}h=i;return e|0}function ul(){var e=0;if(!(r[7632]|0)){El(9184);Fe(25,9184,b|0)|0;e=7632;o[e>>2]=1;o[e+4>>2]=0}return 9184}function al(e){e=e|0;return o[e+36>>2]|0}function ll(e,t){e=e|0;t=t|0;o[e>>2]=t;o[e+4>>2]=e;o[e+8>>2]=0;return}function sl(e,t){e=e|0;t=t|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=0;return}function cl(e,t){e=e|0;t=t|0;bl(t,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0;return}function fl(e){e=e|0;return o[(o[e+4>>2]|0)+8>>2]|0}function dl(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;s=h;h=h+16|0;n=s+4|0;r=s;i=jE(8)|0;u=i;a=YS(48)|0;l=a;t=l+48|0;do{o[l>>2]=o[e>>2];l=l+4|0;e=e+4|0}while((l|0)<(t|0));t=u+4|0;o[t>>2]=a;l=YS(8)|0;a=o[t>>2]|0;o[r>>2]=0;o[n>>2]=o[r>>2];pl(l,a,n);o[i>>2]=l;h=s;return u|0}function pl(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1092;o[n+12>>2]=t;o[e+4>>2]=n;return}function hl(e){e=e|0;WS(e);$S(e);return}function ml(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function vl(e){e=e|0;$S(e);return}function bl(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;u=gl(o[e>>2]|0,t,n,r,i,u,a)|0;a=e+4|0;o[(o[a>>2]|0)+8>>2]=u;return o[(o[a>>2]|0)+8>>2]|0}function gl(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);e=wu(e)|0;u=_l(e,+c[t>>3],+c[n>>3],+c[r>>3],+c[i>>3],+c[o>>3],+c[u>>3])|0;Tk(l);h=a;return u|0}function _l(e,t,n,r,i,o,u){e=e|0;t=+t;n=+n;r=+r;i=+i;o=+o;u=+u;var a=0;a=Tu(yl()|0)|0;t=+ku(t);n=+ku(n);r=+ku(r);i=+ku(i);o=+ku(o);return Se(0,a|0,e|0,+t,+n,+r,+i,+o,+ +ku(u))|0}function yl(){var e=0;if(!(r[7624]|0)){Dl(9172);e=7624;o[e>>2]=1;o[e+4>>2]=0}return 9172}function Dl(e){e=e|0;Bu(e,wl()|0,6);return}function wl(){return 1112}function El(e){e=e|0;xl(e);return}function Cl(e){e=e|0;Tl(e+24|0);kl(e+16|0);return}function Tl(e){e=e|0;Ml(e);return}function kl(e){e=e|0;Sl(e);return}function Sl(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function Ml(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function xl(e){e=e|0;var t=0;o[e+16>>2]=0;o[e+20>>2]=0;t=e+24|0;o[t>>2]=0;o[e+28>>2]=t;o[e+36>>2]=0;r[e+40>>0]=0;r[e+41>>0]=0;return}function Al(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pl(e,n,i,0);h=r;return}function Pl(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ol()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Rl(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Nl(u,r)|0,r);h=i;return}function Ol(){var e=0,t=0;if(!(r[7640]|0)){Wl(9232);Fe(26,9232,b|0)|0;t=7640;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9232)|0)){e=9232;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Wl(9232)}return 9232}function Rl(e){e=e|0;return 0}function Nl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ol()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Il(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Fl(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Il(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Fl(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Bl(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ll(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Il(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ul(e,l);jl(l);h=c;return}}function Bl(e){e=e|0;return 357913941}function Ll(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ul(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function jl(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Wl(e){e=e|0;Hl(e);return}function zl(e){e=e|0;ql(e+24|0);return}function ql(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Hl(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Gl()|0,3);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Gl(){return 1144}function Vl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;a=u+8|0;l=u;s=Yl(e)|0;e=o[s+4>>2]|0;o[l>>2]=o[s>>2];o[l+4>>2]=e;o[a>>2]=o[l>>2];o[a+4>>2]=o[l+4>>2];Kl(t,a,n,r,i);h=u;return}function Yl(e){e=e|0;return(o[(Ol()|0)+24>>2]|0)+(e*12|0)|0}function Kl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0,c=0;c=h;h=h+16|0;a=c+2|0;l=c+1|0;s=c;u=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)u=o[(o[e>>2]|0)+u>>2]|0;$l(a,n);n=+Xl(a,n);$l(l,r);r=+Xl(l,r);Jl(s,i);s=Ql(s,i)|0;bx[u&1](e,n,r,s);h=c;return}function $l(e,t){e=e|0;t=+t;return}function Xl(e,t){e=e|0;t=+t;return+ +es(t)}function Jl(e,t){e=e|0;t=t|0;return}function Ql(e,t){e=e|0;t=t|0;return Zl(t)|0}function Zl(e){e=e|0;return e|0}function es(e){e=+e;return+e}function ts(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ns(e,n,i,1);h=r;return}function ns(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=rs()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=is(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,os(u,r)|0,r);h=i;return}function rs(){var e=0,t=0;if(!(r[7648]|0)){ds(9268);Fe(27,9268,b|0)|0;t=7648;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9268)|0)){e=9268;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ds(9268)}return 9268}function is(e){e=e|0;return 0}function os(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=rs()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];us(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{as(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function as(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ls(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ss(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];us(u,r,n);o[s>>2]=(o[s>>2]|0)+12;cs(e,l);fs(l);h=c;return}}function ls(e){e=e|0;return 357913941}function ss(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function cs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fs(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ds(e){e=e|0;ms(e);return}function ps(e){e=e|0;hs(e+24|0);return}function hs(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function ms(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,vs()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vs(){return 1160}function bs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=gs(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=_s(t,r)|0;h=n;return t|0}function gs(e){e=e|0;return(o[(rs()|0)+24>>2]|0)+(e*12|0)|0}function _s(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return ys(vx[n&31](e)|0)|0}function ys(e){e=e|0;return e&1|0}function Ds(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ws(e,n,i,0);h=r;return}function ws(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Es()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Cs(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ts(u,r)|0,r);h=i;return}function Es(){var e=0,t=0;if(!(r[7656]|0)){Os(9304);Fe(28,9304,b|0)|0;t=7656;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9304)|0)){e=9304;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Os(9304)}return 9304}function Cs(e){e=e|0;return 0}function Ts(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Es()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ks(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ss(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ks(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ss(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ms(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;xs(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ks(u,r,n);o[s>>2]=(o[s>>2]|0)+12;As(e,l);Ps(l);h=c;return}}function Ms(e){e=e|0;return 357913941}function xs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function As(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ps(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Os(e){e=e|0;Is(e);return}function Rs(e){e=e|0;Ns(e+24|0);return}function Ns(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Is(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Fs()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Fs(){return 1164}function Bs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ls(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Us(t,i,n);h=r;return}function Ls(e){e=e|0;return(o[(Es()|0)+24>>2]|0)+(e*12|0)|0}function Us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;js(i,n);n=Ws(i,n)|0;mx[r&31](e,n);zs(i);h=u;return}function js(e,t){e=e|0;t=t|0;qs(e,t);return}function Ws(e,t){e=e|0;t=t|0;return e|0}function zs(e){e=e|0;Qi(e);return}function qs(e,t){e=e|0;t=t|0;Hs(e,t);return}function Hs(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Gs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vs(e,n,i,0);h=r;return}function Vs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ys()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ks(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,$s(u,r)|0,r);h=i;return}function Ys(){var e=0,t=0;if(!(r[7664]|0)){nc(9340);Fe(29,9340,b|0)|0;t=7664;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9340)|0)){e=9340;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));nc(9340)}return 9340}function Ks(e){e=e|0;return 0}function $s(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ys()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Xs(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Js(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Xs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Js(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Qs(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Zs(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Xs(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ec(e,l);tc(l);h=c;return}}function Qs(e){e=e|0;return 357913941}function Zs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function tc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function nc(e){e=e|0;oc(e);return}function rc(e){e=e|0;ic(e+24|0);return}function ic(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function oc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,uc()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function uc(){return 1180}function ac(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=lc(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=sc(t,i,n)|0;h=r;return n|0}function lc(e){e=e|0;return(o[(Ys()|0)+24>>2]|0)+(e*12|0)|0}function sc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;cc(i,n);i=fc(i,n)|0;i=dc(Ex[r&15](e,i)|0)|0;h=u;return i|0}function cc(e,t){e=e|0;t=t|0;return}function fc(e,t){e=e|0;t=t|0;return pc(t)|0}function dc(e){e=e|0;return e|0}function pc(e){e=e|0;return e|0}function hc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mc(e,n,i,0);h=r;return}function mc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vc()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gc(u,r)|0,r);h=i;return}function vc(){var e=0,t=0;if(!(r[7672]|0)){Tc(9376);Fe(30,9376,b|0)|0;t=7672;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9376)|0)){e=9376;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tc(9376)}return 9376}function bc(e){e=e|0;return 0}function gc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vc()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_c(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{yc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _c(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function yc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dc(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wc(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_c(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ec(e,l);Cc(l);h=c;return}}function Dc(e){e=e|0;return 357913941}function wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tc(e){e=e|0;Mc(e);return}function kc(e){e=e|0;Sc(e+24|0);return}function Sc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xc(){return 1196}function Ac(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Oc(t,r)|0;h=n;return t|0}function Pc(e){e=e|0;return(o[(vc()|0)+24>>2]|0)+(e*12|0)|0}function Oc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return dc(vx[n&31](e)|0)|0}function Rc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Nc(e,n,i,1);h=r;return}function Nc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ic()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Fc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Bc(u,r)|0,r);h=i;return}function Ic(){var e=0,t=0;if(!(r[7680]|0)){Hc(9412);Fe(31,9412,b|0)|0;t=7680;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9412)|0)){e=9412;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Hc(9412)}return 9412}function Fc(e){e=e|0;return 0}function Bc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ic()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Lc(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Uc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Lc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Uc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=jc(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Wc(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Lc(u,r,n);o[s>>2]=(o[s>>2]|0)+12;zc(e,l);qc(l);h=c;return}}function jc(e){e=e|0;return 357913941}function Wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function zc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function qc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Hc(e){e=e|0;Yc(e);return}function Gc(e){e=e|0;Vc(e+24|0);return}function Vc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Yc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Kc(){return 1200}function $c(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Xc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Jc(t,r)|0;h=n;return t|0}function Xc(e){e=e|0;return(o[(Ic()|0)+24>>2]|0)+(e*12|0)|0}function Jc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Qc(vx[n&31](e)|0)|0}function Qc(e){e=e|0;return e|0}function Zc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ef(e,n,i,0);h=r;return}function ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=tf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=nf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,rf(u,r)|0,r);h=i;return}function tf(){var e=0,t=0;if(!(r[7688]|0)){ff(9448);Fe(32,9448,b|0)|0;t=7688;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9448)|0)){e=9448;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ff(9448)}return 9448}function nf(e){e=e|0;return 0}function rf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=tf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];of(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{uf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function of(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function uf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=af(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;lf(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];of(u,r,n);o[s>>2]=(o[s>>2]|0)+12;sf(e,l);cf(l);h=c;return}}function af(e){e=e|0;return 357913941}function lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function sf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function cf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ff(e){e=e|0;hf(e);return}function df(e){e=e|0;pf(e+24|0);return}function pf(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function hf(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function mf(){return 1204}function vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=bf(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gf(t,i,n);h=r;return}function bf(e){e=e|0;return(o[(tf()|0)+24>>2]|0)+(e*12|0)|0}function gf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;_f(i,n);i=yf(i,n)|0;mx[r&31](e,i);h=u;return}function _f(e,t){e=e|0;t=t|0;return}function yf(e,t){e=e|0;t=t|0;return Df(t)|0}function Df(e){e=e|0;return e|0}function wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ef(e,n,i,0);h=r;return}function Ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Cf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Tf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,kf(u,r)|0,r);h=i;return}function Cf(){var e=0,t=0;if(!(r[7696]|0)){Rf(9484);Fe(33,9484,b|0)|0;t=7696;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9484)|0)){e=9484;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Rf(9484)}return 9484}function Tf(e){e=e|0;return 0}function kf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Cf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Sf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Mf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Sf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Mf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=xf(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Af(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Sf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Pf(e,l);Of(l);h=c;return}}function xf(e){e=e|0;return 357913941}function Af(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Pf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Of(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Rf(e){e=e|0;Ff(e);return}function Nf(e){e=e|0;If(e+24|0);return}function If(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ff(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Bf()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Bf(){return 1212}function Lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Uf(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];jf(t,u,n,r);h=i;return}function Uf(e){e=e|0;return(o[(Cf()|0)+24>>2]|0)+(e*12|0)|0}function jf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;_f(u,n);u=yf(u,n)|0;cc(a,r);a=fc(a,r)|0;Px[i&15](e,u,a);h=l;return}function Wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];zf(e,n,i,1);h=r;return}function zf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=qf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Hf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Gf(u,r)|0,r);h=i;return}function qf(){var e=0,t=0;if(!(r[7704]|0)){Qf(9520);Fe(34,9520,b|0)|0;t=7704;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9520)|0)){e=9520;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Qf(9520)}return 9520}function Hf(e){e=e|0;return 0}function Gf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=qf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Vf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Yf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Yf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Kf(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;$f(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Vf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Xf(e,l);Jf(l);h=c;return}}function Kf(e){e=e|0;return 357913941}function $f(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Xf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Jf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Qf(e){e=e|0;td(e);return}function Zf(e){e=e|0;ed(e+24|0);return}function ed(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function td(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,nd()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function nd(){return 1224}function rd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0.0,i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=id(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];r=+od(t,u,n);h=i;return+r}function id(e){e=e|0;return(o[(qf()|0)+24>>2]|0)+(e*12|0)|0}function od(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0.0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;a=+Nu(+kx[r&7](e,i));h=u;return+a}function ud(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ad(e,n,i,1);h=r;return}function ad(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ld()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=sd(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,cd(u,r)|0,r);h=i;return}function ld(){var e=0,t=0;if(!(r[7712]|0)){bd(9556);Fe(35,9556,b|0)|0;t=7712;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9556)|0)){e=9556;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bd(9556)}return 9556}function sd(e){e=e|0;return 0}function cd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ld()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];fd(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{dd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function fd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function dd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=pd(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;hd(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];fd(u,r,n);o[s>>2]=(o[s>>2]|0)+12;md(e,l);vd(l);h=c;return}}function pd(e){e=e|0;return 357913941}function hd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function md(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vd(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function bd(e){e=e|0;yd(e);return}function gd(e){e=e|0;_d(e+24|0);return}function _d(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function yd(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Dd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dd(){return 1232}function wd(e,t){e=e|0;t=t|0;var n=0.0,r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ed(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=+Cd(t,i);h=r;return+n}function Ed(e){e=e|0;return(o[(ld()|0)+24>>2]|0)+(e*12|0)|0}function Cd(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return+ +Nu(+Dx[n&15](e))}function Td(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];kd(e,n,i,1);h=r;return}function kd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Sd()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Md(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,xd(u,r)|0,r);h=i;return}function Sd(){var e=0,t=0;if(!(r[7720]|0)){Fd(9592);Fe(36,9592,b|0)|0;t=7720;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9592)|0)){e=9592;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Fd(9592)}return 9592}function Md(e){e=e|0;return 0}function xd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Sd()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Ad(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Pd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ad(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Pd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Od(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Rd(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Ad(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Nd(e,l);Id(l);h=c;return}}function Od(e){e=e|0;return 357913941}function Rd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Nd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Id(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Fd(e){e=e|0;Ud(e);return}function Bd(e){e=e|0;Ld(e+24|0);return}function Ld(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ud(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,jd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function jd(){return 1276}function Wd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=zd(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=qd(t,r)|0;h=n;return t|0}function zd(e){e=e|0;return(o[(Sd()|0)+24>>2]|0)+(e*12|0)|0}function qd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=Hd(r)|0;h=i;return r|0}function Hd(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(Gd()|0)|0;if(!r)e=Yd(e)|0;else{ll(t,r);sl(n,t);Vd(e,n);e=fl(t)|0}h=i;return e|0}function Gd(){var e=0;if(!(r[7736]|0)){ip(9640);Fe(25,9640,b|0)|0;e=7736;o[e>>2]=1;o[e+4>>2]=0}return 9640}function Vd(e,t){e=e|0;t=t|0;Qd(t,e,e+8|0)|0;return}function Yd(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(16)|0;o[l>>2]=o[e>>2];o[l+4>>2]=o[e+4>>2];o[l+8>>2]=o[e+8>>2];o[l+12>>2]=o[e+12>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(e,u,i);o[r>>2]=e;h=n;return t|0}function Kd(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1244;o[n+12>>2]=t;o[e+4>>2]=n;return}function $d(e){e=e|0;WS(e);$S(e);return}function Xd(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function Jd(e){e=e|0;$S(e);return}function Qd(e,t,n){e=e|0;t=t|0;n=n|0;t=Zd(o[e>>2]|0,t,n)|0;n=e+4|0;o[(o[n>>2]|0)+8>>2]=t;return o[(o[n>>2]|0)+8>>2]|0}function Zd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Ek(i);e=wu(e)|0;n=ep(e,o[t>>2]|0,+c[n>>3])|0;Tk(i);h=r;return n|0}function ep(e,t,n){e=e|0;t=t|0;n=+n;var r=0;r=Tu(tp()|0)|0;t=Su(t)|0;return Me(0,r|0,e|0,t|0,+ +ku(n))|0}function tp(){var e=0;if(!(r[7728]|0)){np(9628);e=7728;o[e>>2]=1;o[e+4>>2]=0}return 9628}function np(e){e=e|0;Bu(e,rp()|0,2);return}function rp(){return 1264}function ip(e){e=e|0;xl(e);return}function op(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];up(e,n,i,1);h=r;return}function up(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ap()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=lp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,sp(u,r)|0,r);h=i;return}function ap(){var e=0,t=0;if(!(r[7744]|0)){vp(9684);Fe(37,9684,b|0)|0;t=7744;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9684)|0)){e=9684;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));vp(9684)}return 9684}function lp(e){e=e|0;return 0}function sp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ap()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];cp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{fp(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function fp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=dp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;pp(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];cp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;hp(e,l);mp(l);h=c;return}}function dp(e){e=e|0;return 357913941}function pp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function hp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function mp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function vp(e){e=e|0;_p(e);return}function bp(e){e=e|0;gp(e+24|0);return}function gp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function _p(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,yp()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function yp(){return 1280}function Dp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=wp(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=Ep(t,i,n)|0;h=r;return n|0}function wp(e){e=e|0;return(o[(ap()|0)+24>>2]|0)+(e*12|0)|0}function Ep(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=h;h=h+32|0;i=a;u=a+16|0;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(u,n);u=Ql(u,n)|0;Px[r&15](i,e,u);u=Hd(i)|0;h=a;return u|0}function Cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Tp(e,n,i,1);h=r;return}function Tp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=kp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Sp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Mp(u,r)|0,r);h=i;return}function kp(){var e=0,t=0;if(!(r[7752]|0)){Ip(9720);Fe(38,9720,b|0)|0;t=7752;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9720)|0)){e=9720;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ip(9720)}return 9720}function Sp(e){e=e|0;return 0}function Mp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=kp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];xp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ap(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function xp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ap(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Pp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Op(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];xp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Rp(e,l);Np(l);h=c;return}}function Pp(e){e=e|0;return 357913941}function Op(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Rp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Np(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ip(e){e=e|0;Lp(e);return}function Fp(e){e=e|0;Bp(e+24|0);return}function Bp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Lp(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,Up()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Up(){return 1288}function jp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Wp(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=zp(t,r)|0;h=n;return t|0}function Wp(e){e=e|0;return(o[(kp()|0)+24>>2]|0)+(e*12|0)|0}function zp(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Ru(vx[n&31](e)|0)|0}function qp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Hp(e,n,i,0);h=r;return}function Hp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Gp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Vp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Yp(u,r)|0,r);h=i;return}function Gp(){var e=0,t=0;if(!(r[7760]|0)){eh(9756);Fe(39,9756,b|0)|0;t=7760;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9756)|0)){e=9756;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));eh(9756)}return 9756}function Vp(e){e=e|0;return 0}function Yp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Gp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Kp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{$p(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Kp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function $p(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Xp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Jp(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Kp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Qp(e,l);Zp(l);h=c;return}}function Xp(e){e=e|0;return 357913941}function Jp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Qp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Zp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function eh(e){e=e|0;rh(e);return}function th(e){e=e|0;nh(e+24|0);return}function nh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function rh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,ih()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ih(){return 1292}function oh(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=uh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ah(t,i,n);h=r;return}function uh(e){e=e|0;return(o[(Gp()|0)+24>>2]|0)+(e*12|0)|0}function ah(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;$l(i,n);n=+Xl(i,n);dx[r&31](e,n);h=u;return}function lh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];sh(e,n,i,0);h=r;return}function sh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ch()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=fh(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,dh(u,r)|0,r);h=i;return}function ch(){var e=0,t=0;if(!(r[7768]|0)){_h(9792);Fe(40,9792,b|0)|0;t=7768;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9792)|0)){e=9792;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_h(9792)}return 9792}function fh(e){e=e|0;return 0}function dh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ch()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ph(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{hh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ph(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function hh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=mh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;vh(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ph(u,r,n);o[s>>2]=(o[s>>2]|0)+12;bh(e,l);gh(l);h=c;return}}function mh(e){e=e|0;return 357913941}function vh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function bh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function _h(e){e=e|0;wh(e);return}function yh(e){e=e|0;Dh(e+24|0);return}function Dh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Eh()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Eh(){return 1300}function Ch(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Th(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];kh(t,u,n,r);h=i;return}function Th(e){e=e|0;return(o[(ch()|0)+24>>2]|0)+(e*12|0)|0}function kh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;$l(a,r);r=+Xl(a,r);Rx[i&15](e,u,r);h=l;return}function Sh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Mh(e,n,i,0);h=r;return}function Mh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=xh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ah(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ph(u,r)|0,r);h=i;return}function xh(){var e=0,t=0;if(!(r[7776]|0)){Lh(9828);Fe(41,9828,b|0)|0;t=7776;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9828)|0)){e=9828;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Lh(9828)}return 9828}function Ah(e){e=e|0;return 0}function Ph(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=xh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Oh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Rh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Oh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Rh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Nh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ih(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Oh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Fh(e,l);Bh(l);h=c;return}}function Nh(e){e=e|0;return 357913941}function Ih(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Fh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Bh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Lh(e){e=e|0;Wh(e);return}function Uh(e){e=e|0;jh(e+24|0);return}function jh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,zh()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function zh(){return 1312}function qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Hh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gh(t,i,n);h=r;return}function Hh(e){e=e|0;return(o[(xh()|0)+24>>2]|0)+(e*12|0)|0}function Gh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;mx[r&31](e,i);h=u;return}function Vh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Yh(e,n,i,0);h=r;return}function Yh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Kh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=$h(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Xh(u,r)|0,r);h=i;return}function Kh(){var e=0,t=0;if(!(r[7784]|0)){rm(9864);Fe(42,9864,b|0)|0;t=7784;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9864)|0)){e=9864;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));rm(9864)}return 9864}function $h(e){e=e|0;return 0}function Xh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Kh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Jh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Qh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Jh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Zh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;em(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Jh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;tm(e,l);nm(l);h=c;return}}function Zh(e){e=e|0;return 357913941}function em(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function tm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function nm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function rm(e){e=e|0;um(e);return}function im(e){e=e|0;om(e+24|0);return}function om(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function um(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,am()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function am(){return 1320}function lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=sm(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];cm(t,i,n);h=r;return}function sm(e){e=e|0;return(o[(Kh()|0)+24>>2]|0)+(e*12|0)|0}function cm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;fm(i,n);i=dm(i,n)|0;mx[r&31](e,i);h=u;return}function fm(e,t){e=e|0;t=t|0;return}function dm(e,t){e=e|0;t=t|0;return pm(t)|0}function pm(e){e=e|0;return e|0}function hm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mm(e,n,i,0);h=r;return}function mm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vm()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bm(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gm(u,r)|0,r);h=i;return}function vm(){var e=0,t=0;if(!(r[7792]|0)){Tm(9900);Fe(43,9900,b|0)|0;t=7792;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9900)|0)){e=9900;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tm(9900)}return 9900}function bm(e){e=e|0;return 0}function gm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vm()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_m(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ym(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _m(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ym(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dm(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wm(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_m(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Em(e,l);Cm(l);h=c;return}}function Dm(e){e=e|0;return 357913941}function wm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Em(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tm(e){e=e|0;Mm(e);return}function km(e){e=e|0;Sm(e+24|0);return}function Sm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mm(e){e=e|0;var t=0;t=Za()|0;nl(e,2,22,t,xm()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xm(){return 1344}function Am(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pm(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];Om(t,r);h=n;return}function Pm(e){e=e|0;return(o[(vm()|0)+24>>2]|0)+(e*12|0)|0}function Om(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;hx[n&127](e);return}function Rm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Nm()|0;e=Im(n)|0;Ba(u,t,i,e,Fm(n,r)|0,r);return}function Nm(){var e=0,t=0;if(!(r[7800]|0)){qm(9936);Fe(44,9936,b|0)|0;t=7800;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9936)|0)){e=9936;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));qm(9936)}return 9936}function Im(e){e=e|0;return e|0}function Fm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Nm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Bm(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Lm(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Bm(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Um(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;jm(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Bm(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Wm(e,i);zm(i);h=l;return}}function Um(e){e=e|0;return 536870911}function jm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Wm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function zm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function qm(e){e=e|0;Vm(e);return}function Hm(e){e=e|0;Gm(e+24|0);return}function Gm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Vm(e){e=e|0;var t=0;t=Za()|0;nl(e,1,23,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ym(e,t){e=e|0;t=t|0;$m(o[(Km(e)|0)>>2]|0,t);return}function Km(e){e=e|0;return(o[(Nm()|0)+24>>2]|0)+(e<<3)|0}function $m(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;_f(r,t);t=yf(r,t)|0;hx[e&127](t);h=n;return}function Xm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Jm()|0;e=Qm(n)|0;Ba(u,t,i,e,Zm(n,r)|0,r);return}function Jm(){var e=0,t=0;if(!(r[7808]|0)){uv(9972);Fe(45,9972,b|0)|0;t=7808;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9972)|0)){e=9972;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));uv(9972)}return 9972}function Qm(e){e=e|0;return e|0}function Zm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Jm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){ev(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{tv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function ev(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function tv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=nv(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;rv(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;ev(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;iv(e,i);ov(i);h=l;return}}function nv(e){e=e|0;return 536870911}function rv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function iv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ov(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function uv(e){e=e|0;sv(e);return}function av(e){e=e|0;lv(e+24|0);return}function lv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sv(e){e=e|0;var t=0;t=Za()|0;nl(e,1,9,t,cv()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cv(){return 1348}function fv(e,t){e=e|0;t=t|0;return pv(o[(dv(e)|0)>>2]|0,t)|0}function dv(e){e=e|0;return(o[(Jm()|0)+24>>2]|0)+(e<<3)|0}function pv(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;t=dc(vx[e&31](t)|0)|0;h=n;return t|0}function hv(e,t){e=e|0;t=t|0;return}function mv(e,t){e=e|0;t=t|0;return vv(t)|0}function vv(e){e=e|0;return e|0}function bv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=gv()|0;e=_v(n)|0;Ba(u,t,i,e,yv(n,r)|0,r);return}function gv(){var e=0,t=0;if(!(r[7816]|0)){Sv(10008);Fe(46,10008,b|0)|0;t=7816;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10008)|0)){e=10008;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Sv(10008)}return 10008}function _v(e){e=e|0;return e|0}function yv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=gv()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Dv(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{wv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Dv(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function wv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Ev(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Cv(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Dv(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Tv(e,i);kv(i);h=l;return}}function Ev(e){e=e|0;return 536870911}function Cv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Tv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function kv(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Sv(e){e=e|0;Av(e);return}function Mv(e){e=e|0;xv(e+24|0);return}function xv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Av(e){e=e|0;var t=0;t=Za()|0;nl(e,1,15,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Pv(e){e=e|0;return Rv(o[(Ov(e)|0)>>2]|0)|0}function Ov(e){e=e|0;return(o[(gv()|0)+24>>2]|0)+(e<<3)|0}function Rv(e){e=e|0;return dc(Sx[e&7]()|0)|0}function Nv(){var e=0;if(!(r[7832]|0)){Hv(10052);Fe(25,10052,b|0)|0;e=7832;o[e>>2]=1;o[e+4>>2]=0}return 10052}function Iv(e,t){e=e|0;t=t|0;o[e>>2]=Fv()|0;o[e+4>>2]=Bv()|0;o[e+12>>2]=t;o[e+8>>2]=Lv()|0;o[e+32>>2]=2;return}function Fv(){return 11709}function Bv(){return 1188}function Lv(){return zv()|0}function Uv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Wv(n);$S(n)}}else if(t|0){Ji(t);$S(t)}return}function jv(e,t){e=e|0;t=t|0;return t&e|0}function Wv(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function zv(){var e=0;if(!(r[7824]|0)){o[2511]=qv()|0;o[2512]=0;e=7824;o[e>>2]=1;o[e+4>>2]=0}return 10044}function qv(){return 0}function Hv(e){e=e|0;xl(e);return}function Gv(e){e=e|0;var t=0,n=0,r=0,i=0,u=0;t=h;h=h+32|0;n=t+24|0;u=t+16|0;i=t+8|0;r=t;Vv(e,4827);Yv(e,4834,3)|0;Kv(e,3682,47)|0;o[u>>2]=9;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];$v(e,4841,n)|0;o[i>>2]=1;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Xv(e,4871,n)|0;o[r>>2]=10;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Jv(e,4891,n)|0;h=t;return}function Vv(e,t){e=e|0;t=t|0;var n=0;n=Hg()|0;o[e>>2]=n;Gg(n,t);cD(o[e>>2]|0);return}function Yv(e,t,n){e=e|0;t=t|0;n=n|0;Tg(e,Oa(t)|0,n,0);return e|0}function Kv(e,t,n){e=e|0;t=t|0;n=n|0;ag(e,Oa(t)|0,n,0);return e|0}function $v(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ub(e,t,i);h=r;return e|0}function Xv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];bb(e,t,i);h=r;return e|0}function Jv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Qv(e,t,i);h=r;return e|0}function Qv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zv(e,n,i,1);h=r;return}function Zv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=eb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=tb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,nb(u,r)|0,r);h=i;return}function eb(){var e=0,t=0;if(!(r[7840]|0)){sb(10100);Fe(48,10100,b|0)|0;t=7840;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10100)|0)){e=10100;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));sb(10100)}return 10100}function tb(e){e=e|0;return 0}function nb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=eb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];rb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ib(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function rb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ib(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ob(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ub(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];rb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ab(e,l);lb(l);h=c;return}}function ob(e){e=e|0;return 357913941}function ub(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ab(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function lb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function sb(e){e=e|0;db(e);return}function cb(e){e=e|0;fb(e+24|0);return}function fb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function db(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,pb()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function pb(){return 1364}function hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=mb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=vb(t,i,n)|0;h=r;return n|0}function mb(e){e=e|0;return(o[(eb()|0)+24>>2]|0)+(e*12|0)|0}function vb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;i=ys(Ex[r&15](e,i)|0)|0;h=u;return i|0}function bb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gb(e,n,i,0);h=r;return}function gb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=_b()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=yb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Db(u,r)|0,r);h=i;return}function _b(){var e=0,t=0;if(!(r[7848]|0)){Mb(10136);Fe(49,10136,b|0)|0;t=7848;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10136)|0)){e=10136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Mb(10136)}return 10136}function yb(e){e=e|0;return 0}function Db(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=_b()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];wb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Eb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function wb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Eb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Cb(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Tb(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];wb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;kb(e,l);Sb(l);h=c;return}}function Cb(e){e=e|0;return 357913941}function Tb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Sb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Mb(e){e=e|0;Pb(e);return}function xb(e){e=e|0;Ab(e+24|0);return}function Ab(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Pb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,9,t,Ob()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ob(){return 1372}function Rb(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Nb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ib(t,i,n);h=r;return}function Nb(e){e=e|0;return(o[(_b()|0)+24>>2]|0)+(e*12|0)|0}function Ib(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=ft;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Fb(i,n);a=K(Bb(i,n));fx[r&1](e,a);h=u;return}function Fb(e,t){e=e|0;t=+t;return}function Bb(e,t){e=e|0;t=+t;return K(Lb(t))}function Lb(e){e=+e;return K(e)}function Ub(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];jb(e,n,i,0);h=r;return}function jb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Wb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=zb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,qb(u,r)|0,r);h=i;return}function Wb(){var e=0,t=0;if(!(r[7856]|0)){Xb(10172);Fe(50,10172,b|0)|0;t=7856;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10172)|0)){e=10172;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Xb(10172)}return 10172}function zb(e){e=e|0;return 0}function qb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Wb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Hb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Gb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Gb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Vb(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Yb(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Hb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Kb(e,l);$b(l);h=c;return}}function Vb(e){e=e|0;return 357913941}function Yb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function $b(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Xb(e){e=e|0;Zb(e);return}function Jb(e){e=e|0;Qb(e+24|0);return}function Qb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Zb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,eg()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function eg(){return 1380}function tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=ng(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];rg(t,u,n,r);h=i;return}function ng(e){e=e|0;return(o[(Wb()|0)+24>>2]|0)+(e*12|0)|0}function rg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;ig(a,r);a=og(a,r)|0;Px[i&15](e,u,a);h=l;return}function ig(e,t){e=e|0;t=t|0;return}function og(e,t){e=e|0;t=t|0;return ug(t)|0}function ug(e){e=e|0;return(e|0)!=0|0}function ag(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=lg()|0;e=sg(n)|0;Ba(u,t,i,e,cg(n,r)|0,r);return}function lg(){var e=0,t=0;if(!(r[7864]|0)){bg(10208);Fe(51,10208,b|0)|0;t=7864;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10208)|0)){e=10208;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bg(10208)}return 10208}function sg(e){e=e|0;return e|0}function cg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=lg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){fg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{dg(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function fg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function dg(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=pg(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;hg(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;fg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;mg(e,i);vg(i);h=l;return}}function pg(e){e=e|0;return 536870911}function hg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vg(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function bg(e){e=e|0;yg(e);return}function gg(e){e=e|0;_g(e+24|0);return}function _g(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function yg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,24,t,Dg()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dg(){return 1392}function wg(e,t){e=e|0;t=t|0;Cg(o[(Eg(e)|0)>>2]|0,t);return}function Eg(e){e=e|0;return(o[(lg()|0)+24>>2]|0)+(e<<3)|0}function Cg(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;hx[e&127](t);h=n;return}function Tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=kg()|0;e=Sg(n)|0;Ba(u,t,i,e,Mg(n,r)|0,r);return}function kg(){var e=0,t=0;if(!(r[7872]|0)){Ig(10244);Fe(52,10244,b|0)|0;t=7872;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10244)|0)){e=10244;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ig(10244)}return 10244}function Sg(e){e=e|0;return e|0}function Mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=kg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){xg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Ag(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function xg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Ag(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Pg(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Og(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;xg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Rg(e,i);Ng(i);h=l;return}}function Pg(e){e=e|0;return 536870911}function Og(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Rg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ng(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Ig(e){e=e|0;Lg(e);return}function Fg(e){e=e|0;Bg(e+24|0);return}function Bg(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Lg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,16,t,Ug()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ug(){return 1400}function jg(e){e=e|0;return zg(o[(Wg(e)|0)>>2]|0)|0}function Wg(e){e=e|0;return(o[(kg()|0)+24>>2]|0)+(e<<3)|0}function zg(e){e=e|0;return qg(Sx[e&7]()|0)|0}function qg(e){e=e|0;return e|0}function Hg(){var e=0;if(!(r[7880]|0)){Jg(10280);Fe(25,10280,b|0)|0;e=7880;o[e>>2]=1;o[e+4>>2]=0}return 10280}function Gg(e,t){e=e|0;t=t|0;o[e>>2]=Vg()|0;o[e+4>>2]=Yg()|0;o[e+12>>2]=t;o[e+8>>2]=Kg()|0;o[e+32>>2]=4;return}function Vg(){return 11711}function Yg(){return 1356}function Kg(){return zv()|0}function $g(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Xg(n);$S(n)}}else if(t|0){qi(t);$S(t)}return}function Xg(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function Jg(e){e=e|0;xl(e);return}function Qg(e){e=e|0;Zg(e,4920);e_(e)|0;t_(e)|0;return}function Zg(e,t){e=e|0;t=t|0;var n=0;n=Gd()|0;o[e>>2]=n;S_(n,t);cD(o[e>>2]|0);return}function e_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,m_()|0);return e|0}function t_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,n_()|0);return e|0}function n_(){var e=0;if(!(r[7888]|0)){i_(10328);Fe(53,10328,b|0)|0;e=7888;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10328)|0))i_(10328);return 10328}function r_(e,t){e=e|0;t=t|0;Ba(e,0,t,0,0,0);return}function i_(e){e=e|0;a_(e);s_(e,10);return}function o_(e){e=e|0;u_(e+24|0);return}function u_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function a_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,d_()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function l_(e,t,n){e=e|0;t=t|0;n=+n;c_(e,t,n);return}function s_(e,t){e=e|0;t=t|0;o[e+20>>2]=t;return}function c_(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;u=r+8|0;l=r+13|0;i=r;a=r+12|0;Jl(l,t);o[u>>2]=Ql(l,t)|0;$l(a,n);c[i>>3]=+Xl(a,n);f_(e,u,i);h=r;return}function f_(e,t,n){e=e|0;t=t|0;n=n|0;Ho(e+8|0,o[t>>2]|0,+c[n>>3]);r[e+24>>0]=1;return}function d_(){return 1404}function p_(e,t){e=e|0;t=+t;return h_(e,t)|0}function h_(e,t){e=e|0;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;u=r+4|0;a=r+8|0;l=r;i=jE(8)|0;n=i;s=YS(16)|0;Jl(u,e);e=Ql(u,e)|0;$l(a,t);Ho(s,e,+Xl(a,t));a=n+4|0;o[a>>2]=s;e=YS(8)|0;a=o[a>>2]|0;o[l>>2]=0;o[u>>2]=o[l>>2];Kd(e,a,u);o[i>>2]=e;h=r;return n|0}function m_(){var e=0;if(!(r[7896]|0)){v_(10364);Fe(54,10364,b|0)|0;e=7896;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10364)|0))v_(10364);return 10364}function v_(e){e=e|0;__(e);s_(e,55);return}function b_(e){e=e|0;g_(e+24|0);return}function g_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function __(e){e=e|0;var t=0;t=Za()|0;nl(e,5,4,t,C_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function y_(e){e=e|0;D_(e);return}function D_(e){e=e|0;w_(e);return}function w_(e){e=e|0;E_(e+8|0);r[e+24>>0]=1;return}function E_(e){e=e|0;o[e>>2]=0;c[e+8>>3]=0.0;return}function C_(){return 1424}function T_(){return k_()|0}function k_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;E_(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(r,u,i);o[n>>2]=r;h=t;return e|0}function S_(e,t){e=e|0;t=t|0;o[e>>2]=M_()|0;o[e+4>>2]=x_()|0;o[e+12>>2]=t;o[e+8>>2]=A_()|0;o[e+32>>2]=5;return}function M_(){return 11710}function x_(){return 1416}function A_(){return R_()|0}function P_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){O_(n);$S(n)}}else if(t|0)$S(t);return}function O_(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function R_(){var e=0;if(!(r[7904]|0)){o[2600]=N_()|0;o[2601]=0;e=7904;o[e>>2]=1;o[e+4>>2]=0}return 10400}function N_(){return o[357]|0}function I_(e){e=e|0;F_(e,4926);B_(e)|0;return}function F_(e,t){e=e|0;t=t|0;var n=0;n=ul()|0;o[e>>2]=n;$_(n,t);cD(o[e>>2]|0);return}function B_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,L_()|0);return e|0}function L_(){var e=0;if(!(r[7912]|0)){U_(10412);Fe(56,10412,b|0)|0;e=7912;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10412)|0))U_(10412);return 10412}function U_(e){e=e|0;z_(e);s_(e,57);return}function j_(e){e=e|0;W_(e+24|0);return}function W_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function z_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,5,t,V_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function q_(e){e=e|0;H_(e);return}function H_(e){e=e|0;G_(e);return}function G_(e){e=e|0;var t=0,n=0;t=e+8|0;n=t+48|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));r[e+56>>0]=1;return}function V_(){return 1432}function Y_(){return K_()|0}function K_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0,l=0;a=h;h=h+16|0;e=a+4|0;t=a;n=jE(8)|0;r=n;i=YS(48)|0;u=i;l=u+48|0;do{o[u>>2]=0;u=u+4|0}while((u|0)<(l|0));u=r+4|0;o[u>>2]=i;l=YS(8)|0;u=o[u>>2]|0;o[t>>2]=0;o[e>>2]=o[t>>2];pl(l,u,e);o[n>>2]=l;h=a;return r|0}function $_(e,t){e=e|0;t=t|0;o[e>>2]=X_()|0;o[e+4>>2]=J_()|0;o[e+12>>2]=t;o[e+8>>2]=Q_()|0;o[e+32>>2]=6;return}function X_(){return 11704}function J_(){return 1436}function Q_(){return R_()|0}function Z_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){ey(n);$S(n)}}else if(t|0)$S(t);return}function ey(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function ty(e){e=e|0;ny(e,4933);ry(e)|0;iy(e)|0;return}function ny(e,t){e=e|0;t=t|0;var n=0;n=Ry()|0;o[e>>2]=n;Ny(n,t);cD(o[e>>2]|0);return}function ry(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,Dy()|0);return e|0}function iy(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,oy()|0);return e|0}function oy(){var e=0;if(!(r[7920]|0)){uy(10452);Fe(58,10452,b|0)|0;e=7920;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10452)|0))uy(10452);return 10452}function uy(e){e=e|0;sy(e);s_(e,1);return}function ay(e){e=e|0;ly(e+24|0);return}function ly(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sy(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,hy()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cy(e,t,n){e=e|0;t=+t;n=+n;fy(e,t,n);return}function fy(e,t,n){e=e|0;t=+t;n=+n;var r=0,i=0,o=0,u=0,a=0;r=h;h=h+32|0;o=r+8|0;a=r+17|0;i=r;u=r+16|0;$l(a,t);c[o>>3]=+Xl(a,t);$l(u,n);c[i>>3]=+Xl(u,n);dy(e,o,i);h=r;return}function dy(e,t,n){e=e|0;t=t|0;n=n|0;py(e+8|0,+c[t>>3],+c[n>>3]);r[e+24>>0]=1;return}function py(e,t,n){e=e|0;t=+t;n=+n;c[e>>3]=t;c[e+8>>3]=n;return}function hy(){return 1472}function my(e,t){e=+e;t=+t;return vy(e,t)|0}function vy(e,t){e=+e;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;a=r+4|0;l=r+8|0;s=r;i=jE(8)|0;n=i;u=YS(16)|0;$l(a,e);e=+Xl(a,e);$l(l,t);py(u,e,+Xl(l,t));l=n+4|0;o[l>>2]=u;u=YS(8)|0;l=o[l>>2]|0;o[s>>2]=0;o[a>>2]=o[s>>2];by(u,l,a);o[i>>2]=u;h=r;return n|0}function by(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1452;o[n+12>>2]=t;o[e+4>>2]=n;return}function gy(e){e=e|0;WS(e);$S(e);return}function _y(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function yy(e){e=e|0;$S(e);return}function Dy(){var e=0;if(!(r[7928]|0)){wy(10488);Fe(59,10488,b|0)|0;e=7928;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10488)|0))wy(10488);return 10488}function wy(e){e=e|0;Ty(e);s_(e,60);return}function Ey(e){e=e|0;Cy(e+24|0);return}function Cy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ty(e){e=e|0;var t=0;t=Za()|0;nl(e,5,6,t,Ay()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ky(e){e=e|0;Sy(e);return}function Sy(e){e=e|0;My(e);return}function My(e){e=e|0;xy(e+8|0);r[e+24>>0]=1;return}function xy(e){e=e|0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;return}function Ay(){return 1492}function Py(){return Oy()|0}function Oy(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;xy(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];by(r,u,i);o[n>>2]=r;h=t;return e|0}function Ry(){var e=0;if(!(r[7936]|0)){jy(10524);Fe(25,10524,b|0)|0;e=7936;o[e>>2]=1;o[e+4>>2]=0}return 10524}function Ny(e,t){e=e|0;t=t|0;o[e>>2]=Iy()|0;o[e+4>>2]=Fy()|0;o[e+12>>2]=t;o[e+8>>2]=By()|0;o[e+32>>2]=7;return}function Iy(){return 11700}function Fy(){return 1484}function By(){return R_()|0}function Ly(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Uy(n);$S(n)}}else if(t|0)$S(t);return}function Uy(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function jy(e){e=e|0;xl(e);return}function Wy(e,t,n){e=e|0;t=t|0;n=n|0;e=Oa(t)|0;t=zy(n)|0;n=qy(n,0)|0;MD(e,t,n,Hy()|0,0);return}function zy(e){e=e|0;return e|0}function qy(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Hy()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Qy(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Zy(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Hy(){var e=0,t=0;if(!(r[7944]|0)){Gy(10568);Fe(61,10568,b|0)|0;t=7944;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10568)|0)){e=10568;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Gy(10568)}return 10568}function Gy(e){e=e|0;Ky(e);return}function Vy(e){e=e|0;Yy(e+24|0);return}function Yy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ky(e){e=e|0;var t=0;t=Za()|0;nl(e,1,17,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function $y(e){e=e|0;return Jy(o[(Xy(e)|0)>>2]|0)|0}function Xy(e){e=e|0;return(o[(Hy()|0)+24>>2]|0)+(e<<3)|0}function Jy(e){e=e|0;return Qc(Sx[e&7]()|0)|0}function Qy(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Zy(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=eD(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;tD(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Qy(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;nD(e,i);rD(i);h=l;return}}function eD(e){e=e|0;return 536870911}function tD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function nD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function rD(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function iD(){oD();return}function oD(){uD(10604);return}function uD(e){e=e|0;aD(e,4955);return}function aD(e,t){e=e|0;t=t|0;var n=0;n=lD()|0;o[e>>2]=n;sD(n,t);cD(o[e>>2]|0);return}function lD(){var e=0;if(!(r[7952]|0)){yD(10612);Fe(25,10612,b|0)|0;e=7952;o[e>>2]=1;o[e+4>>2]=0}return 10612}function sD(e,t){e=e|0;t=t|0;o[e>>2]=mD()|0;o[e+4>>2]=vD()|0;o[e+12>>2]=t;o[e+8>>2]=bD()|0;o[e+32>>2]=8;return}function cD(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;fD()|0;o[n>>2]=e;dD(10608,n);h=t;return}function fD(){if(!(r[11714]|0)){o[2652]=0;Fe(62,10608,b|0)|0;r[11714]=1}return 10608}function dD(e,t){e=e|0;t=t|0;var n=0;n=YS(8)|0;o[n+4>>2]=o[t>>2];o[n>>2]=o[e>>2];o[e>>2]=n;return}function pD(e){e=e|0;hD(e);return}function hD(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function mD(){return 11715}function vD(){return 1496}function bD(){return zv()|0}function gD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){_D(n);$S(n)}}else if(t|0)$S(t);return}function _D(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function yD(e){e=e|0;xl(e);return}function DD(e,t){e=e|0;t=t|0;var n=0,r=0;fD()|0;n=o[2652]|0;e:do{if(n|0){while(1){r=o[n+4>>2]|0;if(r|0?(rS(wD(r)|0,e)|0)==0:0)break;n=o[n>>2]|0;if(!n)break e}ED(r,t)}}while(0);return}function wD(e){e=e|0;return o[e+12>>2]|0}function ED(e,t){e=e|0;t=t|0;var n=0;e=e+36|0;n=o[e>>2]|0;if(n|0){Qi(n);$S(n)}n=YS(4)|0;gu(n,t);o[e>>2]=n;return}function CD(){if(!(r[11716]|0)){o[2664]=0;Fe(63,10656,b|0)|0;r[11716]=1}return 10656}function TD(){var e=0;if(!(r[11717]|0)){kD();o[2665]=1504;r[11717]=1;e=1504}else e=o[2665]|0;return e|0}function kD(){if(!(r[11740]|0)){r[11718]=Wa(Wa(8,0)|0,0)|0;r[11719]=Wa(Wa(0,0)|0,0)|0;r[11720]=Wa(Wa(0,16)|0,0)|0;r[11721]=Wa(Wa(8,0)|0,0)|0;r[11722]=Wa(Wa(0,0)|0,0)|0;r[11723]=Wa(Wa(8,0)|0,0)|0;r[11724]=Wa(Wa(0,0)|0,0)|0;r[11725]=Wa(Wa(8,0)|0,0)|0;r[11726]=Wa(Wa(0,0)|0,0)|0;r[11727]=Wa(Wa(8,0)|0,0)|0;r[11728]=Wa(Wa(0,0)|0,0)|0;r[11729]=Wa(Wa(0,0)|0,32)|0;r[11730]=Wa(Wa(0,0)|0,32)|0;r[11740]=1}return}function SD(){return 1572}function MD(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;f=u+16|0;c=u+12|0;s=u+8|0;l=u+4|0;a=u;o[f>>2]=e;o[c>>2]=t;o[s>>2]=n;o[l>>2]=r;o[a>>2]=i;CD()|0;xD(10656,f,c,s,l,a);h=u;return}function xD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0;a=YS(24)|0;ja(a+4|0,o[t>>2]|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0);o[a>>2]=o[e>>2];o[e>>2]=a;return}function AD(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0;y=h;h=h+32|0;v=y+20|0;b=y+8|0;g=y+4|0;_=y;t=o[t>>2]|0;if(t|0){m=v+4|0;s=v+8|0;c=b+4|0;f=b+8|0;d=b+8|0;p=v+8|0;do{a=t+4|0;l=PD(a)|0;if(l|0){i=OD(l)|0;o[v>>2]=0;o[m>>2]=0;o[s>>2]=0;r=(RD(l)|0)+1|0;ND(v,r);if(r|0)while(1){r=r+-1|0;bk(b,o[i>>2]|0);u=o[m>>2]|0;if(u>>>0<(o[p>>2]|0)>>>0){o[u>>2]=o[b>>2];o[m>>2]=(o[m>>2]|0)+4}else ID(v,b);if(!r)break;else i=i+4|0}r=FD(l)|0;o[b>>2]=0;o[c>>2]=0;o[f>>2]=0;e:do{if(o[r>>2]|0){i=0;u=0;while(1){if((i|0)==(u|0))BD(b,r);else{o[i>>2]=o[r>>2];o[c>>2]=(o[c>>2]|0)+4}r=r+4|0;if(!(o[r>>2]|0))break e;i=o[c>>2]|0;u=o[d>>2]|0}}}while(0);o[g>>2]=LD(a)|0;o[_>>2]=Xa(l)|0;UD(n,e,g,_,v,b);jD(b);WD(v)}t=o[t>>2]|0}while((t|0)!=0)}h=y;return}function PD(e){e=e|0;return o[e+12>>2]|0}function OD(e){e=e|0;return o[e+12>>2]|0}function RD(e){e=e|0;return o[e+16>>2]|0}function ND(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=o[e>>2]|0;if((o[e+8>>2]|0)-r>>2>>>0<t>>>0){yw(n,t,(o[e+4>>2]|0)-r>>2,e+8|0);Dw(e,n);ww(n)}h=i;return}function ID(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=vw(e)|0;if(u>>>0<i>>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;yw(n,c>>2>>>0<u>>>1>>>0?s>>>0<i>>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;Dw(e,n);ww(n);h=a;return}}function FD(e){e=e|0;return o[e+8>>2]|0}function BD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=pw(e)|0;if(u>>>0<i>>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;bw(n,c>>2>>>0<u>>>1>>>0?s>>>0<i>>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;gw(e,n);_w(n);h=a;return}}function LD(e){e=e|0;return o[e>>2]|0}function UD(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;zD(e,t,n,r,i,o);return}function jD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function WD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function zD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+48|0;f=a+40|0;l=a+32|0;d=a+24|0;s=a+12|0;c=a;Ek(l);e=wu(e)|0;o[d>>2]=o[t>>2];n=o[n>>2]|0;r=o[r>>2]|0;qD(s,i);HD(c,u);o[f>>2]=o[d>>2];GD(e,f,n,r,s,c);jD(c);WD(s);Tk(l);h=a;return}function qD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){hw(e,r);mw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function HD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){fw(e,r);dw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function GD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+32|0;f=a+28|0;d=a+24|0;l=a+12|0;s=a;c=Tu(VD()|0)|0;o[d>>2]=o[t>>2];o[f>>2]=o[d>>2];t=YD(f)|0;n=KD(n)|0;r=$D(r)|0;o[l>>2]=o[i>>2];f=i+4|0;o[l+4>>2]=o[f>>2];d=i+8|0;o[l+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[i>>2]=0;i=XD(l)|0;o[s>>2]=o[u>>2];f=u+4|0;o[s+4>>2]=o[f>>2];d=u+8|0;o[s+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[u>>2]=0;Ae(0,c|0,e|0,t|0,n|0,r|0,i|0,JD(s)|0)|0;jD(s);WD(l);h=a;return}function VD(){var e=0;if(!(r[7968]|0)){sw(10708);e=7968;o[e>>2]=1;o[e+4>>2]=0}return 10708}function YD(e){e=e|0;return tw(e)|0}function KD(e){e=e|0;return ZD(e)|0}function $D(e){e=e|0;return Qc(e)|0}function XD(e){e=e|0;return ew(e)|0}function JD(e){e=e|0;return QD(e)|0}function QD(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=ZD(o[(o[e>>2]|0)+(t<<2)>>2]|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function ZD(e){e=e|0;return e|0}function ew(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=tw((o[e>>2]|0)+(t<<2)|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function tw(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(nw()|0)|0;if(!r)e=rw(e)|0;else{ll(t,r);sl(n,t);yk(e,n);e=fl(t)|0}h=i;return e|0}function nw(){var e=0;if(!(r[7960]|0)){lw(10664);Fe(25,10664,b|0)|0;e=7960;o[e>>2]=1;o[e+4>>2]=0}return 10664}function rw(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;o[l>>2]=o[e>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function iw(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1656;o[n+12>>2]=t;o[e+4>>2]=n;return}function ow(e){e=e|0;WS(e);$S(e);return}function uw(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function aw(e){e=e|0;$S(e);return}function lw(e){e=e|0;xl(e);return}function sw(e){e=e|0;Bu(e,cw()|0,5);return}function cw(){return 1676}function fw(e,t){e=e|0;t=t|0;var n=0;if((pw(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function dw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function pw(e){e=e|0;return 1073741823}function hw(e,t){e=e|0;t=t|0;var n=0;if((vw(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function mw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function vw(e){e=e|0;return 1073741823}function bw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function gw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function _w(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function yw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Dw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ww(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Ew(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0;b=h;h=h+32|0;f=b+20|0;d=b+12|0;c=b+16|0;p=b+4|0;m=b;v=b+8|0;l=TD()|0;u=o[l>>2]|0;a=o[u>>2]|0;if(a|0){s=o[l+8>>2]|0;l=o[l+4>>2]|0;while(1){bk(f,a);Cw(e,f,l,s);u=u+4|0;a=o[u>>2]|0;if(!a)break;else{s=s+1|0;l=l+1|0}}}u=SD()|0;a=o[u>>2]|0;if(a|0)do{bk(f,a);o[d>>2]=o[u+4>>2];Tw(t,f,d);u=u+8|0;a=o[u>>2]|0}while((a|0)!=0);u=o[(fD()|0)>>2]|0;if(u|0)do{t=o[u+4>>2]|0;bk(f,o[(kw(t)|0)>>2]|0);o[d>>2]=wD(t)|0;Sw(n,f,d);u=o[u>>2]|0}while((u|0)!=0);bk(c,0);u=CD()|0;o[f>>2]=o[c>>2];AD(f,u,i);u=o[(fD()|0)>>2]|0;if(u|0){e=f+4|0;t=f+8|0;n=f+8|0;do{s=o[u+4>>2]|0;bk(d,o[(kw(s)|0)>>2]|0);xw(p,Mw(s)|0);a=o[p>>2]|0;if(a|0){o[f>>2]=0;o[e>>2]=0;o[t>>2]=0;do{bk(m,o[(kw(o[a+4>>2]|0)|0)>>2]|0);l=o[e>>2]|0;if(l>>>0<(o[n>>2]|0)>>>0){o[l>>2]=o[m>>2];o[e>>2]=(o[e>>2]|0)+4}else ID(f,m);a=o[a>>2]|0}while((a|0)!=0);Aw(r,d,f);WD(f)}o[v>>2]=o[d>>2];c=Pw(s)|0;o[f>>2]=o[v>>2];AD(f,c,i);kl(p);u=o[u>>2]|0}while((u|0)!=0)}h=b;return}function Cw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Gw(e,t,n,r);return}function Tw(e,t,n){e=e|0;t=t|0;n=n|0;Hw(e,t,n);return}function kw(e){e=e|0;return e|0}function Sw(e,t,n){e=e|0;t=t|0;n=n|0;Uw(e,t,n);return}function Mw(e){e=e|0;return e+16|0}function xw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;u=h;h=h+16|0;i=u+8|0;n=u;o[e>>2]=0;r=o[t>>2]|0;o[i>>2]=r;o[n>>2]=e;n=Bw(n)|0;if(r|0){r=YS(12)|0;a=(Lw(i)|0)+4|0;e=o[a+4>>2]|0;t=r+4|0;o[t>>2]=o[a>>2];o[t+4>>2]=e;t=o[o[i>>2]>>2]|0;o[i>>2]=t;if(!t)e=r;else{t=r;while(1){e=YS(12)|0;s=(Lw(i)|0)+4|0;l=o[s+4>>2]|0;a=e+4|0;o[a>>2]=o[s>>2];o[a+4>>2]=l;o[t>>2]=e;a=o[o[i>>2]>>2]|0;o[i>>2]=a;if(!a)break;else t=e}}o[e>>2]=o[n>>2];o[n>>2]=r}h=u;return}function Aw(e,t,n){e=e|0;t=t|0;n=n|0;Ow(e,t,n);return}function Pw(e){e=e|0;return e+24|0}function Ow(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+24|0;i=r+16|0;l=r+12|0;u=r;Ek(i);e=wu(e)|0;o[l>>2]=o[t>>2];qD(u,n);o[a>>2]=o[l>>2];Rw(e,a,u);WD(u);Tk(i);h=r;return}function Rw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+16|0;l=r+12|0;i=r;u=Tu(Nw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;o[i>>2]=o[n>>2];a=n+4|0;o[i+4>>2]=o[a>>2];l=n+8|0;o[i+8>>2]=o[l>>2];o[l>>2]=0;o[a>>2]=0;o[n>>2]=0;ke(0,u|0,e|0,t|0,XD(i)|0)|0;WD(i);h=r;return}function Nw(){var e=0;if(!(r[7976]|0)){Iw(10720);e=7976;o[e>>2]=1;o[e+4>>2]=0}return 10720}function Iw(e){e=e|0;Bu(e,Fw()|0,2);return}function Fw(){return 1732}function Bw(e){e=e|0;return o[e>>2]|0}function Lw(e){e=e|0;return o[e>>2]|0}function Uw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function jw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+4|0;a=r;i=Tu(Ww()|0)|0;o[a>>2]=o[t>>2];o[u>>2]=o[a>>2];t=YD(u)|0;ke(0,i|0,e|0,t|0,KD(n)|0)|0;h=r;return}function Ww(){var e=0;if(!(r[7984]|0)){zw(10732);e=7984;o[e>>2]=1;o[e+4>>2]=0}return 10732}function zw(e){e=e|0;Bu(e,qw()|0,2);return}function qw(){return 1744}function Hw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function Gw(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);e=wu(e)|0;o[s>>2]=o[t>>2];n=r[n>>0]|0;i=r[i>>0]|0;o[l>>2]=o[s>>2];Vw(e,l,n,i);Tk(a);h=u;return}function Vw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;a=i+4|0;l=i;u=Tu(Yw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;n=Kw(n)|0;nt(0,u|0,e|0,t|0,n|0,Kw(r)|0)|0;h=i;return}function Yw(){var e=0;if(!(r[7992]|0)){Xw(10744);e=7992;o[e>>2]=1;o[e+4>>2]=0}return 10744}function Kw(e){e=e|0;return $w(e)|0}function $w(e){e=e|0;return e&255|0}function Xw(e){e=e|0;Bu(e,Jw()|0,3);return}function Jw(){return 1756}function Qw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;m=h;h=h+32|0;s=m+8|0;c=m+4|0;f=m+20|0;d=m;Hs(e,0);i=_k(t)|0;o[s>>2]=0;p=s+4|0;o[p>>2]=0;o[s+8>>2]=0;switch(i<<24>>24){case 0:{r[f>>0]=0;Zw(c,n,f);eE(e,c)|0;Zi(c);break}case 8:{p=gk(t)|0;r[f>>0]=8;bk(d,o[p+4>>2]|0);tE(c,n,f,d,p+8|0);eE(e,c)|0;Zi(c);break}case 9:{a=gk(t)|0;t=o[a+4>>2]|0;if(t|0){l=s+8|0;u=a+12|0;while(1){t=t+-1|0;bk(c,o[u>>2]|0);i=o[p>>2]|0;if(i>>>0<(o[l>>2]|0)>>>0){o[i>>2]=o[c>>2];o[p>>2]=(o[p>>2]|0)+4}else ID(s,c);if(!t)break;else u=u+4|0}}r[f>>0]=9;bk(d,o[a+8>>2]|0);nE(c,n,f,d,s);eE(e,c)|0;Zi(c);break}default:{p=gk(t)|0;r[f>>0]=i;bk(d,o[p+4>>2]|0);rE(c,n,f,d);eE(e,c)|0;Zi(c)}}WD(s);h=m;return}function Zw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;i=h;h=h+16|0;o=i;Ek(o);t=wu(t)|0;bE(e,t,r[n>>0]|0);Tk(o);h=i;return}function eE(e,t){e=e|0;t=t|0;var n=0;n=o[e>>2]|0;if(n|0)rt(n|0);o[e>>2]=o[t>>2];o[t>>2]=0;return e|0}function tE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0;a=h;h=h+32|0;s=a+16|0;l=a+8|0;c=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[c>>2]=o[i>>2];u=o[u>>2]|0;o[s>>2]=o[c>>2];pE(e,t,n,s,u);Tk(l);h=a;return}function nE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0;a=h;h=h+32|0;c=a+24|0;l=a+16|0;f=a+12|0;s=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[f>>2]=o[i>>2];qD(s,u);o[c>>2]=o[f>>2];sE(e,t,n,c,s);WD(s);Tk(l);h=a;return}function rE(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);t=wu(t)|0;n=r[n>>0]|0;o[s>>2]=o[i>>2];o[l>>2]=o[s>>2];iE(e,t,n,l);Tk(a);h=u;return}function iE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+4|0;l=i;a=Tu(oE()|0)|0;n=Kw(n)|0;o[l>>2]=o[r>>2];o[u>>2]=o[l>>2];uE(e,ke(0,a|0,t|0,n|0,YD(u)|0)|0);h=i;return}function oE(){var e=0;if(!(r[8e3]|0)){aE(10756);e=8e3;o[e>>2]=1;o[e+4>>2]=0}return 10756}function uE(e,t){e=e|0;t=t|0;Hs(e,t);return}function aE(e){e=e|0;Bu(e,lE()|0,2);return}function lE(){return 1772}function sE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0;u=h;h=h+32|0;s=u+16|0;c=u+12|0;a=u;l=Tu(cE()|0)|0;n=Kw(n)|0;o[c>>2]=o[r>>2];o[s>>2]=o[c>>2];r=YD(s)|0;o[a>>2]=o[i>>2];s=i+4|0;o[a+4>>2]=o[s>>2];c=i+8|0;o[a+8>>2]=o[c>>2];o[c>>2]=0;o[s>>2]=0;o[i>>2]=0;uE(e,nt(0,l|0,t|0,n|0,r|0,XD(a)|0)|0);WD(a);h=u;return}function cE(){var e=0;if(!(r[8008]|0)){fE(10768);e=8008;o[e>>2]=1;o[e+4>>2]=0}return 10768}function fE(e){e=e|0;Bu(e,dE()|0,3);return}function dE(){return 1784}function pE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;l=u+4|0;s=u;a=Tu(hE()|0)|0;n=Kw(n)|0;o[s>>2]=o[r>>2];o[l>>2]=o[s>>2];r=YD(l)|0;uE(e,nt(0,a|0,t|0,n|0,r|0,$D(i)|0)|0);h=u;return}function hE(){var e=0;if(!(r[8016]|0)){mE(10780);e=8016;o[e>>2]=1;o[e+4>>2]=0}return 10780}function mE(e){e=e|0;Bu(e,vE()|0,3);return}function vE(){return 1800}function bE(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=Tu(gE()|0)|0;uE(e,it(0,r|0,t|0,Kw(n)|0)|0);return}function gE(){var e=0;if(!(r[8024]|0)){_E(10792);e=8024;o[e>>2]=1;o[e+4>>2]=0}return 10792}function _E(e){e=e|0;Bu(e,yE()|0,1);return}function yE(){return 1816}function DE(){wE();EE();CE();return}function wE(){o[2702]=KS(65536)|0;return}function EE(){YE(10856);return}function CE(){TE(10816);return}function TE(e){e=e|0;kE(e,5044);SE(e)|0;return}function kE(e,t){e=e|0;t=t|0;var n=0;n=nw()|0;o[e>>2]=n;WE(n,t);cD(o[e>>2]|0);return}function SE(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,ME()|0);return e|0}function ME(){var e=0;if(!(r[8032]|0)){xE(10820);Fe(64,10820,b|0)|0;e=8032;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10820)|0))xE(10820);return 10820}function xE(e){e=e|0;OE(e);s_(e,25);return}function AE(e){e=e|0;PE(e+24|0);return}function PE(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function OE(e){e=e|0;var t=0;t=Za()|0;nl(e,5,18,t,BE()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function RE(e,t){e=e|0;t=t|0;NE(e,t);return}function NE(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;n=h;h=h+16|0;r=n;i=n+4|0;cc(i,t);o[r>>2]=fc(i,t)|0;IE(e,r);h=n;return}function IE(e,t){e=e|0;t=t|0;FE(e+4|0,o[t>>2]|0);r[e+8>>0]=1;return}function FE(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function BE(){return 1824}function LE(e){e=e|0;return UE(e)|0}function UE(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;cc(i,e);FE(l,fc(i,e)|0);u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function jE(e){e=e|0;var t=0,n=0;e=e+7&-8;if(e>>>0<=32768?(t=o[2701]|0,e>>>0<=(65536-t|0)>>>0):0){n=(o[2702]|0)+t|0;o[2701]=t+e;e=n}else{e=KS(e+8|0)|0;o[e>>2]=o[2703];o[2703]=e;e=e+8|0}return e|0}function WE(e,t){e=e|0;t=t|0;o[e>>2]=zE()|0;o[e+4>>2]=qE()|0;o[e+12>>2]=t;o[e+8>>2]=HE()|0;o[e+32>>2]=9;return}function zE(){return 11744}function qE(){return 1832}function HE(){return R_()|0}function GE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){VE(n);$S(n)}}else if(t|0)$S(t);return}function VE(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function YE(e){e=e|0;KE(e,5052);$E(e)|0;XE(e,5058,26)|0;JE(e,5069,1)|0;QE(e,5077,10)|0;ZE(e,5087,19)|0;tC(e,5094,27)|0;return}function KE(e,t){e=e|0;t=t|0;var n=0;n=sk()|0;o[e>>2]=n;ck(n,t);cD(o[e>>2]|0);return}function $E(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,KT()|0);return e|0}function XE(e,t,n){e=e|0;t=t|0;n=n|0;ST(e,Oa(t)|0,n,0);return e|0}function JE(e,t,n){e=e|0;t=t|0;n=n|0;sT(e,Oa(t)|0,n,0);return e|0}function QE(e,t,n){e=e|0;t=t|0;n=n|0;LC(e,Oa(t)|0,n,0);return e|0}function ZE(e,t,n){e=e|0;t=t|0;n=n|0;yC(e,Oa(t)|0,n,0);return e|0}function eC(e,t){e=e|0;t=t|0;var n=0,r=0;e:while(1){n=o[2703]|0;while(1){if((n|0)==(t|0))break e;r=o[n>>2]|0;o[2703]=r;if(!n)n=r;else break}$S(n)}o[2701]=e;return}function tC(e,t,n){e=e|0;t=t|0;n=n|0;nC(e,Oa(t)|0,n,0);return e|0}function nC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=rC()|0;e=iC(n)|0;Ba(u,t,i,e,oC(n,r)|0,r);return}function rC(){var e=0,t=0;if(!(r[8040]|0)){dC(10860);Fe(65,10860,b|0)|0;t=8040;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10860)|0)){e=10860;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));dC(10860)}return 10860}function iC(e){e=e|0;return e|0}function oC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=rC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){uC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{aC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function uC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function aC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=lC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;sC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;uC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;cC(e,i);fC(i);h=l;return}}function lC(e){e=e|0;return 536870911}function sC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function cC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function dC(e){e=e|0;mC(e);return}function pC(e){e=e|0;hC(e+24|0);return}function hC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function mC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,vC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vC(){return 1840}function bC(e,t,n){e=e|0;t=t|0;n=n|0;_C(o[(gC(e)|0)>>2]|0,t,n);return}function gC(e){e=e|0;return(o[(rC()|0)+24>>2]|0)+(e<<3)|0}function _C(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+1|0;i=r;cc(o,t);t=fc(o,t)|0;cc(i,n);n=fc(i,n)|0;mx[e&31](t,n);h=r;return}function yC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=DC()|0;e=wC(n)|0;Ba(u,t,i,e,EC(n,r)|0,r);return}function DC(){var e=0,t=0;if(!(r[8048]|0)){AC(10896);Fe(66,10896,b|0)|0;t=8048;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10896)|0)){e=10896;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));AC(10896)}return 10896}function wC(e){e=e|0;return e|0}function EC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=DC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){CC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{TC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function CC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function TC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=kC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;SC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;CC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;MC(e,i);xC(i);h=l;return}}function kC(e){e=e|0;return 536870911}function SC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function MC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function xC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function AC(e){e=e|0;RC(e);return}function PC(e){e=e|0;OC(e+24|0);return}function OC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function RC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,NC()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function NC(){return 1852}function IC(e,t){e=e|0;t=t|0;return BC(o[(FC(e)|0)>>2]|0,t)|0}function FC(e){e=e|0;return(o[(DC()|0)+24>>2]|0)+(e<<3)|0}function BC(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;cc(r,t);t=fc(r,t)|0;t=Qc(vx[e&31](t)|0)|0;h=n;return t|0}function LC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=UC()|0;e=jC(n)|0;Ba(u,t,i,e,WC(n,r)|0,r);return}function UC(){var e=0,t=0;if(!(r[8056]|0)){KC(10932);Fe(67,10932,b|0)|0;t=8056;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10932)|0)){e=10932;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));KC(10932)}return 10932}function jC(e){e=e|0;return e|0}function WC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=UC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){zC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{qC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function zC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function qC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=HC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;GC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;zC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;VC(e,i);YC(i);h=l;return}}function HC(e){e=e|0;return 536870911}function GC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function VC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function YC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function KC(e){e=e|0;JC(e);return}function $C(e){e=e|0;XC(e+24|0);return}function XC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function JC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,7,t,QC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function QC(){return 1860}function ZC(e,t,n){e=e|0;t=t|0;n=n|0;return tT(o[(eT(e)|0)>>2]|0,t,n)|0}function eT(e){e=e|0;return(o[(UC()|0)+24>>2]|0)+(e<<3)|0}function tT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+32|0;a=r+12|0;u=r+8|0;l=r;s=r+16|0;i=r+4|0;nT(s,t);rT(l,s,t);js(i,n);n=Ws(i,n)|0;o[a>>2]=o[l>>2];Px[e&15](u,a,n);n=iT(u)|0;Zi(u);zs(i);h=r;return n|0}function nT(e,t){e=e|0;t=t|0;return}function rT(e,t,n){e=e|0;t=t|0;n=n|0;oT(e,n);return}function iT(e){e=e|0;return wu(e)|0}function oT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;n=i;r=t;if(!(r&1))o[e>>2]=o[t>>2];else{uT(n,0);Le(r|0,n|0)|0;aT(e,n);lT(n)}h=i;return}function uT(e,t){e=e|0;t=t|0;Ou(e,t);o[e+4>>2]=0;r[e+8>>0]=0;return}function aT(e,t){e=e|0;t=t|0;o[e>>2]=o[t+4>>2];return}function lT(e){e=e|0;r[e+8>>0]=0;return}function sT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=cT()|0;e=fT(n)|0;Ba(u,t,i,e,dT(n,r)|0,r);return}function cT(){var e=0,t=0;if(!(r[8064]|0)){_T(10968);Fe(68,10968,b|0)|0;t=8064;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10968)|0)){e=10968;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_T(10968)}return 10968}function fT(e){e=e|0;return e|0}function dT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=cT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){pT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{hT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function pT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function hT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=mT(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;vT(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;pT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;bT(e,i);gT(i);h=l;return}}function mT(e){e=e|0;return 536870911}function vT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function bT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function _T(e){e=e|0;wT(e);return}function yT(e){e=e|0;DT(e+24|0);return}function DT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function wT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,1,t,ET()|0,5);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ET(){return 1872}function CT(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;kT(o[(TT(e)|0)>>2]|0,t,n,r,i,u);return}function TT(e){e=e|0;return(o[(cT()|0)+24>>2]|0)+(e<<3)|0}function kT(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;a=u+16|0;l=u+12|0;s=u+8|0;c=u+4|0;f=u;js(a,t);t=Ws(a,t)|0;js(l,n);n=Ws(l,n)|0;js(s,r);r=Ws(s,r)|0;js(c,i);i=Ws(c,i)|0;js(f,o);o=Ws(f,o)|0;cx[e&1](t,n,r,i,o);zs(f);zs(c);zs(s);zs(l);zs(a);h=u;return}function ST(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=MT()|0;e=xT(n)|0;Ba(u,t,i,e,AT(n,r)|0,r);return}function MT(){var e=0,t=0;if(!(r[8072]|0)){BT(11004);Fe(69,11004,b|0)|0;t=8072;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(11004)|0)){e=11004;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));BT(11004)}return 11004}function xT(e){e=e|0;return e|0}function AT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=MT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){PT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{OT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function PT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function OT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=RT(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;NT(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;PT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;IT(e,i);FT(i);h=l;return}}function RT(e){e=e|0;return 536870911}function NT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function IT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function FT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function BT(e){e=e|0;jT(e);return}function LT(e){e=e|0;UT(e+24|0);return}function UT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function jT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,12,t,WT()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function WT(){return 1896}function zT(e,t,n){e=e|0;t=t|0;n=n|0;HT(o[(qT(e)|0)>>2]|0,t,n);return}function qT(e){e=e|0;return(o[(MT()|0)+24>>2]|0)+(e<<3)|0}function HT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+4|0;i=r;GT(o,t);t=VT(o,t)|0;js(i,n);n=Ws(i,n)|0;mx[e&31](t,n);zs(i);h=r;return}function GT(e,t){e=e|0;t=t|0;return}function VT(e,t){e=e|0;t=t|0;return YT(t)|0}function YT(e){e=e|0;return e|0}function KT(){var e=0;if(!(r[8080]|0)){$T(11040);Fe(70,11040,b|0)|0;e=8080;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(11040)|0))$T(11040);return 11040}function $T(e){e=e|0;QT(e);s_(e,71);return}function XT(e){e=e|0;JT(e+24|0);return}function JT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function QT(e){e=e|0;var t=0;t=Za()|0;nl(e,5,7,t,nk()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ZT(e){e=e|0;ek(e);return}function ek(e){e=e|0;tk(e);return}function tk(e){e=e|0;r[e+8>>0]=1;return}function nk(){return 1936}function rk(){return ik()|0}function ik(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;u=e+4|0;o[u>>2]=YS(1)|0;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];ok(r,u,i);o[n>>2]=r;h=t;return e|0}function ok(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1916;o[n+12>>2]=t;o[e+4>>2]=n;return}function uk(e){e=e|0;WS(e);$S(e);return}function ak(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function lk(e){e=e|0;$S(e);return}function sk(){var e=0;if(!(r[8088]|0)){vk(11076);Fe(25,11076,b|0)|0;e=8088;o[e>>2]=1;o[e+4>>2]=0}return 11076}function ck(e,t){e=e|0;t=t|0;o[e>>2]=fk()|0;o[e+4>>2]=dk()|0;o[e+12>>2]=t;o[e+8>>2]=pk()|0;o[e+32>>2]=10;return}function fk(){return 11745}function dk(){return 1940}function pk(){return zv()|0}function hk(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){mk(n);$S(n)}}else if(t|0)$S(t);return}function mk(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function vk(e){e=e|0;xl(e);return}function bk(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function gk(e){e=e|0;return o[e>>2]|0}function _k(e){e=e|0;return r[o[e>>2]>>0]|0}function yk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;o[r>>2]=o[e>>2];Dk(t,r)|0;h=n;return}function Dk(e,t){e=e|0;t=t|0;var n=0;n=wk(o[e>>2]|0,t)|0;t=e+4|0;o[(o[t>>2]|0)+8>>2]=n;return o[(o[t>>2]|0)+8>>2]|0}function wk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Ek(r);e=wu(e)|0;t=Ck(e,o[t>>2]|0)|0;Tk(r);h=n;return t|0}function Ek(e){e=e|0;o[e>>2]=o[2701];o[e+4>>2]=o[2703];return}function Ck(e,t){e=e|0;t=t|0;var n=0;n=Tu(kk()|0)|0;return it(0,n|0,e|0,$D(t)|0)|0}function Tk(e){e=e|0;eC(o[e>>2]|0,o[e+4>>2]|0);return}function kk(){var e=0;if(!(r[8096]|0)){Sk(11120);e=8096;o[e>>2]=1;o[e+4>>2]=0}return 11120}function Sk(e){e=e|0;Bu(e,Mk()|0,1);return}function Mk(){return 1948}function xk(){Ak();return}function Ak(){var e=0,t=0,n=0,i=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+16|0;p=g+4|0;m=g;Re(65536,10804,o[2702]|0,10812);n=TD()|0;t=o[n>>2]|0;e=o[t>>2]|0;if(e|0){i=o[n+8>>2]|0;n=o[n+4>>2]|0;while(1){We(e|0,u[n>>0]|0|0,r[i>>0]|0);t=t+4|0;e=o[t>>2]|0;if(!e)break;else{i=i+1|0;n=n+1|0}}}e=SD()|0;t=o[e>>2]|0;if(t|0)do{ze(t|0,o[e+4>>2]|0);e=e+8|0;t=o[e>>2]|0}while((t|0)!=0);ze(Pk()|0,5167);d=fD()|0;e=o[d>>2]|0;e:do{if(e|0){do{Ok(o[e+4>>2]|0);e=o[e>>2]|0}while((e|0)!=0);e=o[d>>2]|0;if(e|0){f=d;do{while(1){a=e;e=o[e>>2]|0;a=o[a+4>>2]|0;if(!(Rk(a)|0))break;o[m>>2]=f;o[p>>2]=o[m>>2];Nk(d,p)|0;if(!e)break e}Ik(a);f=o[f>>2]|0;t=Fk(a)|0;l=Xe()|0;s=h;h=h+((1*(t<<2)|0)+15&-16)|0;c=h;h=h+((1*(t<<2)|0)+15&-16)|0;t=o[(Mw(a)|0)>>2]|0;if(t|0){n=s;i=c;while(1){o[n>>2]=o[(kw(o[t+4>>2]|0)|0)>>2];o[i>>2]=o[t+8>>2];t=o[t>>2]|0;if(!t)break;else{n=n+4|0;i=i+4|0}}}_=kw(a)|0;t=Bk(a)|0;n=Fk(a)|0;i=Lk(a)|0;Ve(_|0,t|0,s|0,c|0,n|0,i|0,wD(a)|0);Ie(l|0)}while((e|0)!=0)}}}while(0);e=o[(CD()|0)>>2]|0;if(e|0)do{_=e+4|0;d=PD(_)|0;a=FD(d)|0;l=OD(d)|0;s=(RD(d)|0)+1|0;c=Uk(d)|0;f=jk(_)|0;d=Xa(d)|0;p=LD(_)|0;m=Wk(_)|0;He(0,a|0,l|0,s|0,c|0,f|0,d|0,p|0,m|0,zk(_)|0);e=o[e>>2]|0}while((e|0)!=0);e=o[(fD()|0)>>2]|0;e:do{if(e|0){t:while(1){t=o[e+4>>2]|0;if(t|0?(v=o[(kw(t)|0)>>2]|0,b=o[(Pw(t)|0)>>2]|0,b|0):0){n=b;do{t=n+4|0;i=PD(t)|0;n:do{if(i|0)switch(Xa(i)|0){case 0:break t;case 4:case 3:case 2:{c=FD(i)|0;f=OD(i)|0;d=(RD(i)|0)+1|0;p=Uk(i)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,c|0,f|0,d|0,p|0,0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 1:{s=FD(i)|0;c=OD(i)|0;f=(RD(i)|0)+1|0;d=Uk(i)|0;p=jk(t)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,s|0,c|0,f|0,d|0,p|0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 5:{d=FD(i)|0;p=OD(i)|0;m=(RD(i)|0)+1|0;_=Uk(i)|0;He(v|0,d|0,p|0,m|0,_|0,qk(i)|0,Xa(i)|0,0,0,0);break n}default:break n}}while(0);n=o[n>>2]|0}while((n|0)!=0)}e=o[e>>2]|0;if(!e)break e}Ke()}}while(0);Ye();h=g;return}function Pk(){return 11703}function Ok(e){e=e|0;r[e+40>>0]=0;return}function Rk(e){e=e|0;return(r[e+40>>0]|0)!=0|0}function Nk(e,t){e=e|0;t=t|0;t=Hk(t)|0;e=o[t>>2]|0;o[t>>2]=o[e>>2];$S(e);return o[t>>2]|0}function Ik(e){e=e|0;r[e+40>>0]=1;return}function Fk(e){e=e|0;return o[e+20>>2]|0}function Bk(e){e=e|0;return o[e+8>>2]|0}function Lk(e){e=e|0;return o[e+32>>2]|0}function Uk(e){e=e|0;return o[e+4>>2]|0}function jk(e){e=e|0;return o[e+4>>2]|0}function Wk(e){e=e|0;return o[e+8>>2]|0}function zk(e){e=e|0;return o[e+16>>2]|0}function qk(e){e=e|0;return o[e+20>>2]|0}function Hk(e){e=e|0;return o[e>>2]|0}function Gk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0;E=h;h=h+16|0;p=E;do{if(e>>>0<245){c=e>>>0<11?16:e+11&-8;e=c>>>3;d=o[2783]|0;n=d>>>e;if(n&3|0){t=(n&1^1)+e|0;e=11172+(t<<1<<2)|0;n=e+8|0;r=o[n>>2]|0;i=r+8|0;u=o[i>>2]|0;if((e|0)==(u|0))o[2783]=d&~(1<<t);else{o[u+12>>2]=e;o[n>>2]=u}w=t<<3;o[r+4>>2]=w|3;w=r+w+4|0;o[w>>2]=o[w>>2]|1;w=i;h=E;return w|0}f=o[2785]|0;if(c>>>0>f>>>0){if(n|0){t=2<<e;t=n<<e&(t|0-t);t=(t&0-t)+-1|0;a=t>>>12&16;t=t>>>a;n=t>>>5&8;t=t>>>n;i=t>>>2&4;t=t>>>i;e=t>>>1&2;t=t>>>e;r=t>>>1&1;r=(n|a|i|e|r)+(t>>>r)|0;t=11172+(r<<1<<2)|0;e=t+8|0;i=o[e>>2]|0;a=i+8|0;n=o[a>>2]|0;if((t|0)==(n|0)){e=d&~(1<<r);o[2783]=e}else{o[n+12>>2]=t;o[e>>2]=n;e=d}u=(r<<3)-c|0;o[i+4>>2]=c|3;r=i+c|0;o[r+4>>2]=u|1;o[r+u>>2]=u;if(f|0){i=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=i;o[t+12>>2]=i;o[i+8>>2]=t;o[i+12>>2]=n}o[2785]=u;o[2788]=r;w=a;h=E;return w|0}l=o[2784]|0;if(l){n=(l&0-l)+-1|0;a=n>>>12&16;n=n>>>a;u=n>>>5&8;n=n>>>u;s=n>>>2&4;n=n>>>s;r=n>>>1&2;n=n>>>r;e=n>>>1&1;e=o[11436+((u|a|s|r|e)+(n>>>e)<<2)>>2]|0;n=(o[e+4>>2]&-8)-c|0;r=o[e+16+(((o[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!r){s=e;u=n}else{do{a=(o[r+4>>2]&-8)-c|0;s=a>>>0<n>>>0;n=s?a:n;e=s?r:e;r=o[r+16+(((o[r+16>>2]|0)==0&1)<<2)>>2]|0}while((r|0)!=0);s=e;u=n}a=s+c|0;if(s>>>0<a>>>0){i=o[s+24>>2]|0;t=o[s+12>>2]|0;do{if((t|0)==(s|0)){e=s+20|0;t=o[e>>2]|0;if(!t){e=s+16|0;t=o[e>>2]|0;if(!t){n=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0;n=t}else{n=o[s+8>>2]|0;o[n+12>>2]=t;o[t+8>>2]=n;n=t}}while(0);do{if(i|0){t=o[s+28>>2]|0;e=11436+(t<<2)|0;if((s|0)==(o[e>>2]|0)){o[e>>2]=n;if(!n){o[2784]=l&~(1<<t);break}}else{o[i+16+(((o[i+16>>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=i;t=o[s+16>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}t=o[s+20>>2]|0;if(t|0){o[n+20>>2]=t;o[t+24>>2]=n}}}while(0);if(u>>>0<16){w=u+c|0;o[s+4>>2]=w|3;w=s+w+4|0;o[w>>2]=o[w>>2]|1}else{o[s+4>>2]=c|3;o[a+4>>2]=u|1;o[a+u>>2]=u;if(f|0){r=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<<t;if(!(d&t)){o[2783]=d|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=r;o[t+12>>2]=r;o[r+8>>2]=t;o[r+12>>2]=n}o[2785]=u;o[2788]=a}w=s+8|0;h=E;return w|0}else d=c}else d=c}else d=c}else if(e>>>0<=4294967231){e=e+11|0;c=e&-8;s=o[2784]|0;if(s){r=0-c|0;e=e>>>8;if(e){if(c>>>0>16777215)l=31;else{d=(e+1048320|0)>>>16&8;D=e<<d;f=(D+520192|0)>>>16&4;D=D<<f;l=(D+245760|0)>>>16&2;l=14-(f|d|l)+(D<<l>>>15)|0;l=c>>>(l+7|0)&1|l<<1}}else l=0;n=o[11436+(l<<2)>>2]|0;e:do{if(!n){n=0;e=0;D=57}else{e=0;a=c<<((l|0)==31?0:25-(l>>>1)|0);u=0;while(1){i=(o[n+4>>2]&-8)-c|0;if(i>>>0<r>>>0)if(!i){e=n;r=0;i=n;D=61;break e}else{e=n;r=i}i=o[n+20>>2]|0;n=o[n+16+(a>>>31<<2)>>2]|0;u=(i|0)==0|(i|0)==(n|0)?u:i;i=(n|0)==0;if(i){n=u;D=57;break}else a=a<<((i^1)&1)}}}while(0);if((D|0)==57){if((n|0)==0&(e|0)==0){e=2<<l;e=s&(e|0-e);if(!e){d=c;break}d=(e&0-e)+-1|0;a=d>>>12&16;d=d>>>a;u=d>>>5&8;d=d>>>u;l=d>>>2&4;d=d>>>l;f=d>>>1&2;d=d>>>f;n=d>>>1&1;e=0;n=o[11436+((u|a|l|f|n)+(d>>>n)<<2)>>2]|0}if(!n){l=e;a=r}else{i=n;D=61}}if((D|0)==61)while(1){D=0;n=(o[i+4>>2]&-8)-c|0;d=n>>>0<r>>>0;n=d?n:r;e=d?i:e;i=o[i+16+(((o[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){l=e;a=n;break}else{r=n;D=61}}if((l|0)!=0?a>>>0<((o[2785]|0)-c|0)>>>0:0){u=l+c|0;if(l>>>0>=u>>>0){w=0;h=E;return w|0}i=o[l+24>>2]|0;t=o[l+12>>2]|0;do{if((t|0)==(l|0)){e=l+20|0;t=o[e>>2]|0;if(!t){e=l+16|0;t=o[e>>2]|0;if(!t){t=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0}else{w=o[l+8>>2]|0;o[w+12>>2]=t;o[t+8>>2]=w}}while(0);do{if(i){e=o[l+28>>2]|0;n=11436+(e<<2)|0;if((l|0)==(o[n>>2]|0)){o[n>>2]=t;if(!t){r=s&~(1<<e);o[2784]=r;break}}else{o[i+16+(((o[i+16>>2]|0)!=(l|0)&1)<<2)>>2]=t;if(!t){r=s;break}}o[t+24>>2]=i;e=o[l+16>>2]|0;if(e|0){o[t+16>>2]=e;o[e+24>>2]=t}e=o[l+20>>2]|0;if(e){o[t+20>>2]=e;o[e+24>>2]=t;r=s}else r=s}else r=s}while(0);do{if(a>>>0>=16){o[l+4>>2]=c|3;o[u+4>>2]=a|1;o[u+a>>2]=a;t=a>>>3;if(a>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=u;o[t+12>>2]=u;o[u+8>>2]=t;o[u+12>>2]=n;break}t=a>>>8;if(t){if(a>>>0>16777215)t=31;else{D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;t=(w+245760|0)>>>16&2;t=14-(y|D|t)+(w<<t>>>15)|0;t=a>>>(t+7|0)&1|t<<1}}else t=0;n=11436+(t<<2)|0;o[u+28>>2]=t;e=u+16|0;o[e+4>>2]=0;o[e>>2]=0;e=1<<t;if(!(r&e)){o[2784]=r|e;o[n>>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}e=a<<((t|0)==31?0:25-(t>>>1)|0);n=o[n>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(a|0)){D=97;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=96;break}else{e=e<<1;n=t}}if((D|0)==96){o[r>>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}else if((D|0)==97){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=u;o[D>>2]=u;o[u+8>>2]=w;o[u+12>>2]=n;o[u+24>>2]=0;break}}else{w=a+c|0;o[l+4>>2]=w|3;w=l+w+4|0;o[w>>2]=o[w>>2]|1}}while(0);w=l+8|0;h=E;return w|0}else d=c}else d=c}else d=-1}while(0);n=o[2785]|0;if(n>>>0>=d>>>0){t=n-d|0;e=o[2788]|0;if(t>>>0>15){w=e+d|0;o[2788]=w;o[2785]=t;o[w+4>>2]=t|1;o[w+t>>2]=t;o[e+4>>2]=d|3}else{o[2785]=0;o[2788]=0;o[e+4>>2]=n|3;w=e+n+4|0;o[w>>2]=o[w>>2]|1}w=e+8|0;h=E;return w|0}a=o[2786]|0;if(a>>>0>d>>>0){y=a-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}if(!(o[2901]|0)){o[2903]=4096;o[2902]=4096;o[2904]=-1;o[2905]=-1;o[2906]=0;o[2894]=0;e=p&-16^1431655768;o[p>>2]=e;o[2901]=e;e=4096}else e=o[2903]|0;l=d+48|0;s=d+47|0;u=e+s|0;i=0-e|0;c=u&i;if(c>>>0<=d>>>0){w=0;h=E;return w|0}e=o[2893]|0;if(e|0?(f=o[2891]|0,p=f+c|0,p>>>0<=f>>>0|p>>>0>e>>>0):0){w=0;h=E;return w|0}e:do{if(!(o[2894]&4)){n=o[2789]|0;t:do{if(n){r=11580;while(1){e=o[r>>2]|0;if(e>>>0<=n>>>0?(b=r+4|0,(e+(o[b>>2]|0)|0)>>>0>n>>>0):0)break;e=o[r+8>>2]|0;if(!e){D=118;break t}else r=e}t=u-a&i;if(t>>>0<2147483647){e=lM(t|0)|0;if((e|0)==((o[r>>2]|0)+(o[b>>2]|0)|0)){if((e|0)!=(-1|0)){a=t;u=e;D=135;break e}}else{r=e;D=126}}else t=0}else D=118}while(0);do{if((D|0)==118){n=lM(0)|0;if((n|0)!=(-1|0)?(t=n,m=o[2902]|0,v=m+-1|0,t=((v&t|0)==0?0:(v+t&0-m)-t|0)+c|0,m=o[2891]|0,v=t+m|0,t>>>0>d>>>0&t>>>0<2147483647):0){b=o[2893]|0;if(b|0?v>>>0<=m>>>0|v>>>0>b>>>0:0){t=0;break}e=lM(t|0)|0;if((e|0)==(n|0)){a=t;u=n;D=135;break e}else{r=e;D=126}}else t=0}}while(0);do{if((D|0)==126){n=0-t|0;if(!(l>>>0>t>>>0&(t>>>0<2147483647&(r|0)!=(-1|0))))if((r|0)==(-1|0)){t=0;break}else{a=t;u=r;D=135;break e}e=o[2903]|0;e=s-t+e&0-e;if(e>>>0>=2147483647){a=t;u=r;D=135;break e}if((lM(e|0)|0)==(-1|0)){lM(n|0)|0;t=0;break}else{a=e+t|0;u=r;D=135;break e}}}while(0);o[2894]=o[2894]|4;D=133}else{t=0;D=133}}while(0);if(((D|0)==133?c>>>0<2147483647:0)?(y=lM(c|0)|0,b=lM(0)|0,g=b-y|0,_=g>>>0>(d+40|0)>>>0,!((y|0)==(-1|0)|_^1|y>>>0<b>>>0&((y|0)!=(-1|0)&(b|0)!=(-1|0))^1)):0){a=_?g:t;u=y;D=135}if((D|0)==135){t=(o[2891]|0)+a|0;o[2891]=t;if(t>>>0>(o[2892]|0)>>>0)o[2892]=t;s=o[2789]|0;do{if(s){t=11580;while(1){e=o[t>>2]|0;n=t+4|0;r=o[n>>2]|0;if((u|0)==(e+r|0)){D=145;break}i=o[t+8>>2]|0;if(!i)break;else t=i}if(((D|0)==145?(o[t+12>>2]&8|0)==0:0)?s>>>0<u>>>0&s>>>0>=e>>>0:0){o[n>>2]=r+a;w=s+8|0;w=(w&7|0)==0?0:0-w&7;D=s+w|0;w=(o[2786]|0)+(a-w)|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905];break}if(u>>>0<(o[2787]|0)>>>0)o[2787]=u;n=u+a|0;t=11580;while(1){if((o[t>>2]|0)==(n|0)){D=153;break}e=o[t+8>>2]|0;if(!e)break;else t=e}if((D|0)==153?(o[t+12>>2]&8|0)==0:0){o[t>>2]=u;f=t+4|0;o[f>>2]=(o[f>>2]|0)+a;f=u+8|0;f=u+((f&7|0)==0?0:0-f&7)|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;c=f+d|0;l=t-f-d|0;o[f+4>>2]=d|3;do{if((t|0)!=(s|0)){if((t|0)==(o[2788]|0)){w=(o[2785]|0)+l|0;o[2785]=w;o[2788]=c;o[c+4>>2]=w|1;o[c+w>>2]=w;break}e=o[t+4>>2]|0;if((e&3|0)==1){a=e&-8;r=e>>>3;e:do{if(e>>>0<256){e=o[t+8>>2]|0;n=o[t+12>>2]|0;if((n|0)==(e|0)){o[2783]=o[2783]&~(1<<r);break}else{o[e+12>>2]=n;o[n+8>>2]=e;break}}else{u=o[t+24>>2]|0;e=o[t+12>>2]|0;do{if((e|0)==(t|0)){r=t+16|0;n=r+4|0;e=o[n>>2]|0;if(!e){e=o[r>>2]|0;if(!e){e=0;break}else n=r}while(1){r=e+20|0;i=o[r>>2]|0;if(i|0){e=i;n=r;continue}r=e+16|0;i=o[r>>2]|0;if(!i)break;else{e=i;n=r}}o[n>>2]=0}else{w=o[t+8>>2]|0;o[w+12>>2]=e;o[e+8>>2]=w}}while(0);if(!u)break;n=o[t+28>>2]|0;r=11436+(n<<2)|0;do{if((t|0)!=(o[r>>2]|0)){o[u+16+(((o[u+16>>2]|0)!=(t|0)&1)<<2)>>2]=e;if(!e)break e}else{o[r>>2]=e;if(e|0)break;o[2784]=o[2784]&~(1<<n);break e}}while(0);o[e+24>>2]=u;n=t+16|0;r=o[n>>2]|0;if(r|0){o[e+16>>2]=r;o[r+24>>2]=e}n=o[n+4>>2]|0;if(!n)break;o[e+20>>2]=n;o[n+24>>2]=e}}while(0);t=t+a|0;i=a+l|0}else i=l;t=t+4|0;o[t>>2]=o[t>>2]&-2;o[c+4>>2]=i|1;o[c+i>>2]=i;t=i>>>3;if(i>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=c;o[t+12>>2]=c;o[c+8>>2]=t;o[c+12>>2]=n;break}t=i>>>8;do{if(!t)t=0;else{if(i>>>0>16777215){t=31;break}D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;t=(w+245760|0)>>>16&2;t=14-(y|D|t)+(w<<t>>>15)|0;t=i>>>(t+7|0)&1|t<<1}}while(0);r=11436+(t<<2)|0;o[c+28>>2]=t;e=c+16|0;o[e+4>>2]=0;o[e>>2]=0;e=o[2784]|0;n=1<<t;if(!(e&n)){o[2784]=e|n;o[r>>2]=c;o[c+24>>2]=r;o[c+12>>2]=c;o[c+8>>2]=c;break}e=i<<((t|0)==31?0:25-(t>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){D=194;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=193;break}else{e=e<<1;n=t}}if((D|0)==193){o[r>>2]=c;o[c+24>>2]=n;o[c+12>>2]=c;o[c+8>>2]=c;break}else if((D|0)==194){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=c;o[D>>2]=c;o[c+8>>2]=w;o[c+12>>2]=n;o[c+24>>2]=0;break}}else{w=(o[2786]|0)+l|0;o[2786]=w;o[2789]=c;o[c+4>>2]=w|1}}while(0);w=f+8|0;h=E;return w|0}t=11580;while(1){e=o[t>>2]|0;if(e>>>0<=s>>>0?(w=e+(o[t+4>>2]|0)|0,w>>>0>s>>>0):0)break;t=o[t+8>>2]|0}i=w+-47|0;e=i+8|0;e=i+((e&7|0)==0?0:0-e&7)|0;i=s+16|0;e=e>>>0<i>>>0?s:e;t=e+8|0;n=u+8|0;n=(n&7|0)==0?0:0-n&7;D=u+n|0;n=a+-40-n|0;o[2789]=D;o[2786]=n;o[D+4>>2]=n|1;o[D+n+4>>2]=40;o[2790]=o[2905];n=e+4|0;o[n>>2]=27;o[t>>2]=o[2895];o[t+4>>2]=o[2896];o[t+8>>2]=o[2897];o[t+12>>2]=o[2898];o[2895]=u;o[2896]=a;o[2898]=0;o[2897]=t;t=e+24|0;do{D=t;t=t+4|0;o[t>>2]=7}while((D+8|0)>>>0<w>>>0);if((e|0)!=(s|0)){u=e-s|0;o[n>>2]=o[n>>2]&-2;o[s+4>>2]=u|1;o[e>>2]=u;t=u>>>3;if(u>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=s;o[t+12>>2]=s;o[s+8>>2]=t;o[s+12>>2]=n;break}t=u>>>8;if(t){if(u>>>0>16777215)n=31;else{D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;n=(w+245760|0)>>>16&2;n=14-(y|D|n)+(w<<n>>>15)|0;n=u>>>(n+7|0)&1|n<<1}}else n=0;r=11436+(n<<2)|0;o[s+28>>2]=n;o[s+20>>2]=0;o[i>>2]=0;t=o[2784]|0;e=1<<n;if(!(t&e)){o[2784]=t|e;o[r>>2]=s;o[s+24>>2]=r;o[s+12>>2]=s;o[s+8>>2]=s;break}e=u<<((n|0)==31?0:25-(n>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(u|0)){D=216;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=215;break}else{e=e<<1;n=t}}if((D|0)==215){o[r>>2]=s;o[s+24>>2]=n;o[s+12>>2]=s;o[s+8>>2]=s;break}else if((D|0)==216){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=s;o[D>>2]=s;o[s+8>>2]=w;o[s+12>>2]=n;o[s+24>>2]=0;break}}}else{w=o[2787]|0;if((w|0)==0|u>>>0<w>>>0)o[2787]=u;o[2895]=u;o[2896]=a;o[2898]=0;o[2792]=o[2901];o[2791]=-1;t=0;do{w=11172+(t<<1<<2)|0;o[w+12>>2]=w;o[w+8>>2]=w;t=t+1|0}while((t|0)!=32);w=u+8|0;w=(w&7|0)==0?0:0-w&7;D=u+w|0;w=a+-40-w|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905]}}while(0);t=o[2786]|0;if(t>>>0>d>>>0){y=t-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}}o[(Qk()|0)>>2]=12;w=0;h=E;return w|0}function Vk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;if(!e)return;n=e+-8|0;i=o[2787]|0;e=o[e+-4>>2]|0;t=e&-8;s=n+t|0;do{if(!(e&1)){r=o[n>>2]|0;if(!(e&3))return;a=n+(0-r)|0;u=r+t|0;if(a>>>0<i>>>0)return;if((a|0)==(o[2788]|0)){e=s+4|0;t=o[e>>2]|0;if((t&3|0)!=3){l=a;t=u;break}o[2785]=u;o[e>>2]=t&-2;o[a+4>>2]=u|1;o[a+u>>2]=u;return}n=r>>>3;if(r>>>0<256){e=o[a+8>>2]|0;t=o[a+12>>2]|0;if((t|0)==(e|0)){o[2783]=o[2783]&~(1<<n);l=a;t=u;break}else{o[e+12>>2]=t;o[t+8>>2]=e;l=a;t=u;break}}i=o[a+24>>2]|0;e=o[a+12>>2]|0;do{if((e|0)==(a|0)){n=a+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){e=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0}else{l=o[a+8>>2]|0;o[l+12>>2]=e;o[e+8>>2]=l}}while(0);if(i){t=o[a+28>>2]|0;n=11436+(t<<2)|0;if((a|0)==(o[n>>2]|0)){o[n>>2]=e;if(!e){o[2784]=o[2784]&~(1<<t);l=a;t=u;break}}else{o[i+16+(((o[i+16>>2]|0)!=(a|0)&1)<<2)>>2]=e;if(!e){l=a;t=u;break}}o[e+24>>2]=i;t=a+16|0;n=o[t>>2]|0;if(n|0){o[e+16>>2]=n;o[n+24>>2]=e}t=o[t+4>>2]|0;if(t){o[e+20>>2]=t;o[t+24>>2]=e;l=a;t=u}else{l=a;t=u}}else{l=a;t=u}}else{l=n;a=n}}while(0);if(a>>>0>=s>>>0)return;e=s+4|0;r=o[e>>2]|0;if(!(r&1))return;if(!(r&2)){e=o[2788]|0;if((s|0)==(o[2789]|0)){s=(o[2786]|0)+t|0;o[2786]=s;o[2789]=l;o[l+4>>2]=s|1;if((l|0)!=(e|0))return;o[2788]=0;o[2785]=0;return}if((s|0)==(e|0)){s=(o[2785]|0)+t|0;o[2785]=s;o[2788]=a;o[l+4>>2]=s|1;o[a+s>>2]=s;return}i=(r&-8)+t|0;n=r>>>3;do{if(r>>>0<256){t=o[s+8>>2]|0;e=o[s+12>>2]|0;if((e|0)==(t|0)){o[2783]=o[2783]&~(1<<n);break}else{o[t+12>>2]=e;o[e+8>>2]=t;break}}else{u=o[s+24>>2]|0;e=o[s+12>>2]|0;do{if((e|0)==(s|0)){n=s+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){n=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0;n=e}else{n=o[s+8>>2]|0;o[n+12>>2]=e;o[e+8>>2]=n;n=e}}while(0);if(u|0){e=o[s+28>>2]|0;t=11436+(e<<2)|0;if((s|0)==(o[t>>2]|0)){o[t>>2]=n;if(!n){o[2784]=o[2784]&~(1<<e);break}}else{o[u+16+(((o[u+16>>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=u;e=s+16|0;t=o[e>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}e=o[e+4>>2]|0;if(e|0){o[n+20>>2]=e;o[e+24>>2]=n}}}}while(0);o[l+4>>2]=i|1;o[a+i>>2]=i;if((l|0)==(o[2788]|0)){o[2785]=i;return}}else{o[e>>2]=r&-2;o[l+4>>2]=t|1;o[a+t>>2]=t;i=t}e=i>>>3;if(i>>>0<256){n=11172+(e<<1<<2)|0;t=o[2783]|0;e=1<<e;if(!(t&e)){o[2783]=t|e;e=n;t=n+8|0}else{t=n+8|0;e=o[t>>2]|0}o[t>>2]=l;o[e+12>>2]=l;o[l+8>>2]=e;o[l+12>>2]=n;return}e=i>>>8;if(e){if(i>>>0>16777215)e=31;else{a=(e+1048320|0)>>>16&8;s=e<<a;u=(s+520192|0)>>>16&4;s=s<<u;e=(s+245760|0)>>>16&2;e=14-(u|a|e)+(s<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}}else e=0;r=11436+(e<<2)|0;o[l+28>>2]=e;o[l+20>>2]=0;o[l+16>>2]=0;t=o[2784]|0;n=1<<e;do{if(t&n){t=i<<((e|0)==31?0:25-(e>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){e=73;break}r=n+16+(t>>>31<<2)|0;e=o[r>>2]|0;if(!e){e=72;break}else{t=t<<1;n=e}}if((e|0)==72){o[r>>2]=l;o[l+24>>2]=n;o[l+12>>2]=l;o[l+8>>2]=l;break}else if((e|0)==73){a=n+8|0;s=o[a>>2]|0;o[s+12>>2]=l;o[a>>2]=l;o[l+8>>2]=s;o[l+12>>2]=n;o[l+24>>2]=0;break}}else{o[2784]=t|n;o[r>>2]=l;o[l+24>>2]=r;o[l+12>>2]=l;o[l+8>>2]=l}}while(0);s=(o[2791]|0)+-1|0;o[2791]=s;if(!s)e=11588;else return;while(1){e=o[e>>2]|0;if(!e)break;else e=e+8|0}o[2791]=-1;return}function Yk(){return 11628}function Kk(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;o[n>>2]=tS(o[e+60>>2]|0)|0;e=Jk(ut(6,n|0)|0)|0;h=t;return e|0}function $k(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;d=h;h=h+48|0;c=d+16|0;u=d;i=d+32|0;l=e+28|0;r=o[l>>2]|0;o[i>>2]=r;s=e+20|0;r=(o[s>>2]|0)-r|0;o[i+4>>2]=r;o[i+8>>2]=t;o[i+12>>2]=n;r=r+n|0;a=e+60|0;o[u>>2]=o[a>>2];o[u+4>>2]=i;o[u+8>>2]=2;u=Jk(st(146,u|0)|0)|0;e:do{if((r|0)!=(u|0)){t=2;while(1){if((u|0)<0)break;r=r-u|0;m=o[i+4>>2]|0;p=u>>>0>m>>>0;i=p?i+8|0:i;t=(p<<31>>31)+t|0;m=u-(p?m:0)|0;o[i>>2]=(o[i>>2]|0)+m;p=i+4|0;o[p>>2]=(o[p>>2]|0)-m;o[c>>2]=o[a>>2];o[c+4>>2]=i;o[c+8>>2]=t;u=Jk(st(146,c|0)|0)|0;if((r|0)==(u|0)){f=3;break e}}o[e+16>>2]=0;o[l>>2]=0;o[s>>2]=0;o[e>>2]=o[e>>2]|32;if((t|0)==2)n=0;else n=n-(o[i+4>>2]|0)|0}else f=3}while(0);if((f|0)==3){m=o[e+44>>2]|0;o[e+16>>2]=m+(o[e+48>>2]|0);o[l>>2]=m;o[s>>2]=m}h=d;return n|0}function Xk(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;i=h;h=h+32|0;u=i;r=i+20|0;o[u>>2]=o[e+60>>2];o[u+4>>2]=0;o[u+8>>2]=t;o[u+12>>2]=r;o[u+16>>2]=n;if((Jk(lt(140,u|0)|0)|0)<0){o[r>>2]=-1;e=-1}else e=o[r>>2]|0;h=i;return e|0}function Jk(e){e=e|0;if(e>>>0>4294963200){o[(Qk()|0)>>2]=0-e;e=-1}return e|0}function Qk(){return(Zk()|0)+64|0}function Zk(){return eS()|0}function eS(){return 2084}function tS(e){e=e|0;return e|0}function nS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0;u=h;h=h+32|0;i=u;o[e+36>>2]=1;if((o[e>>2]&64|0)==0?(o[i>>2]=o[e+60>>2],o[i+4>>2]=21523,o[i+8>>2]=u+16,Je(54,i|0)|0):0)r[e+75>>0]=-1;i=$k(e,t,n)|0;h=u;return i|0}function rS(e,t){e=e|0;t=t|0;var n=0,i=0;n=r[e>>0]|0;i=r[t>>0]|0;if(n<<24>>24==0?1:n<<24>>24!=i<<24>>24)e=i;else{do{e=e+1|0;t=t+1|0;n=r[e>>0]|0;i=r[t>>0]|0}while(!(n<<24>>24==0?1:n<<24>>24!=i<<24>>24));e=i}return(n&255)-(e&255)|0}function iS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;e:do{if(!n)e=0;else{while(1){i=r[e>>0]|0;o=r[t>>0]|0;if(i<<24>>24!=o<<24>>24)break;n=n+-1|0;if(!n){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(i&255)-(o&255)|0}}while(0);return e|0}function oS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0;g=h;h=h+224|0;d=g+120|0;p=g+80|0;v=g;b=g+136|0;i=p;u=i+40|0;do{o[i>>2]=0;i=i+4|0}while((i|0)<(u|0));o[d>>2]=o[n>>2];if((uS(0,t,d,v,p)|0)<0)n=-1;else{if((o[e+76>>2]|0)>-1)m=aS(e)|0;else m=0;n=o[e>>2]|0;f=n&32;if((r[e+74>>0]|0)<1)o[e>>2]=n&-33;i=e+48|0;if(!(o[i>>2]|0)){u=e+44|0;a=o[u>>2]|0;o[u>>2]=b;l=e+28|0;o[l>>2]=b;s=e+20|0;o[s>>2]=b;o[i>>2]=80;c=e+16|0;o[c>>2]=b+80;n=uS(e,t,d,v,p)|0;if(a){_x[o[e+36>>2]&7](e,0,0)|0;n=(o[s>>2]|0)==0?-1:n;o[u>>2]=a;o[i>>2]=0;o[c>>2]=0;o[l>>2]=0;o[s>>2]=0}}else n=uS(e,t,d,v,p)|0;i=o[e>>2]|0;o[e>>2]=i|f;if(m|0)lS(e);n=(i&32|0)==0?n:-1}h=g;return n|0}function uS(e,t,n,u,a){e=e|0;t=t|0;n=n|0;u=u|0;a=a|0;var l=0,s=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+64|0;M=R+16|0;A=R;k=R+24|0;P=R+8|0;O=R+20|0;o[M>>2]=t;E=(e|0)!=0;C=k+40|0;T=C;k=k+39|0;S=P+4|0;s=0;l=0;m=0;e:while(1){do{if((l|0)>-1)if((s|0)>(2147483647-l|0)){o[(Qk()|0)>>2]=75;l=-1;break}else{l=s+l|0;break}}while(0);s=r[t>>0]|0;if(!(s<<24>>24)){w=87;break}else f=t;t:while(1){switch(s<<24>>24){case 37:{s=f;w=9;break t}case 0:{s=f;break t}default:{}}D=f+1|0;o[M>>2]=D;s=r[D>>0]|0;f=D}t:do{if((w|0)==9)while(1){w=0;if((r[f+1>>0]|0)!=37)break t;s=s+1|0;f=f+2|0;o[M>>2]=f;if((r[f>>0]|0)==37)w=9;else break}}while(0);s=s-t|0;if(E)sS(e,t,s);if(s|0){t=f;continue}d=f+1|0;s=(r[d>>0]|0)+-48|0;if(s>>>0<10){D=(r[f+2>>0]|0)==36;y=D?s:-1;m=D?1:m;d=D?f+3|0:d}else y=-1;o[M>>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;t:do{if(f>>>0<32){p=0;v=s;while(1){s=1<<f;if(!(s&75913)){s=v;break t}p=s|p;d=d+1|0;o[M>>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;if(f>>>0>=32)break;else v=s}}else p=0}while(0);if(s<<24>>24==42){f=d+1|0;s=(r[f>>0]|0)+-48|0;if(s>>>0<10?(r[d+2>>0]|0)==36:0){o[a+(s<<2)>>2]=10;s=o[u+((r[f>>0]|0)+-48<<3)>>2]|0;m=1;d=d+3|0}else{if(m|0){l=-1;break}if(E){m=(o[n>>2]|0)+(4-1)&~(4-1);s=o[m>>2]|0;o[n>>2]=m+4;m=0;d=f}else{s=0;m=0;d=f}}o[M>>2]=d;D=(s|0)<0;s=D?0-s|0:s;p=D?p|8192:p}else{s=cS(M)|0;if((s|0)<0){l=-1;break}d=o[M>>2]|0}do{if((r[d>>0]|0)==46){if((r[d+1>>0]|0)!=42){o[M>>2]=d+1;f=cS(M)|0;d=o[M>>2]|0;break}v=d+2|0;f=(r[v>>0]|0)+-48|0;if(f>>>0<10?(r[d+3>>0]|0)==36:0){o[a+(f<<2)>>2]=10;f=o[u+((r[v>>0]|0)+-48<<3)>>2]|0;d=d+4|0;o[M>>2]=d;break}if(m|0){l=-1;break e}if(E){D=(o[n>>2]|0)+(4-1)&~(4-1);f=o[D>>2]|0;o[n>>2]=D+4}else f=0;o[M>>2]=v;d=v}else f=-1}while(0);_=0;while(1){if(((r[d>>0]|0)+-65|0)>>>0>57){l=-1;break e}D=d+1|0;o[M>>2]=D;v=r[(r[d>>0]|0)+-65+(5178+(_*58|0))>>0]|0;b=v&255;if((b+-1|0)>>>0<8){_=b;d=D}else break}if(!(v<<24>>24)){l=-1;break}g=(y|0)>-1;do{if(v<<24>>24==19){if(g){l=-1;break e}else w=49}else{if(g){o[a+(y<<2)>>2]=b;g=u+(y<<3)|0;y=o[g+4>>2]|0;w=A;o[w>>2]=o[g>>2];o[w+4>>2]=y;w=49;break}if(!E){l=0;break e}fS(A,b,n)}}while(0);if((w|0)==49?(w=0,!E):0){s=0;t=D;continue}d=r[d>>0]|0;d=(_|0)!=0&(d&15|0)==3?d&-33:d;g=p&-65537;y=(p&8192|0)==0?p:g;t:do{switch(d|0){case 110:switch((_&255)<<24>>24){case 0:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 1:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 2:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}case 3:{i[o[A>>2]>>1]=l;s=0;t=D;continue e}case 4:{r[o[A>>2]>>0]=l;s=0;t=D;continue e}case 6:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 7:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}default:{s=0;t=D;continue e}}case 112:{d=120;f=f>>>0>8?f:8;t=y|8;w=61;break}case 88:case 120:{t=y;w=61;break}case 111:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;b=pS(t,d,C)|0;g=T-b|0;p=0;v=5642;f=(y&8|0)==0|(f|0)>(g|0)?f:g+1|0;g=y;w=67;break}case 105:case 100:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;if((d|0)<0){t=ZS(0,0,t|0,d|0)|0;d=x;p=A;o[p>>2]=t;o[p+4>>2]=d;p=1;v=5642;w=66;break t}else{p=(y&2049|0)!=0&1;v=(y&2048|0)==0?(y&1|0)==0?5642:5644:5643;w=66;break t}}case 117:{d=A;p=0;v=5642;t=o[d>>2]|0;d=o[d+4>>2]|0;w=66;break}case 99:{r[k>>0]=o[A>>2];t=k;p=0;v=5642;b=C;d=1;f=g;break}case 109:{d=mS(o[(Qk()|0)>>2]|0)|0;w=71;break}case 115:{d=o[A>>2]|0;d=d|0?d:5652;w=71;break}case 67:{o[P>>2]=o[A>>2];o[S>>2]=0;o[A>>2]=P;b=-1;d=P;w=75;break}case 83:{t=o[A>>2]|0;if(!f){bS(e,32,s,0,y);t=0;w=84}else{b=f;d=t;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{s=_S(e,+c[A>>3],s,f,y,d)|0;t=D;continue e}default:{p=0;v=5642;b=C;d=f;f=y}}}while(0);t:do{if((w|0)==61){y=A;_=o[y>>2]|0;y=o[y+4>>2]|0;b=dS(_,y,C,d&32)|0;v=(t&8|0)==0|(_|0)==0&(y|0)==0;p=v?0:2;v=v?5642:5642+(d>>4)|0;g=t;t=_;d=y;w=67}else if((w|0)==66){b=hS(t,d,C)|0;g=y;w=67}else if((w|0)==71){w=0;y=vS(d,0,f)|0;_=(y|0)==0;t=d;p=0;v=5642;b=_?d+f|0:y;d=_?f:y-d|0;f=g}else if((w|0)==75){w=0;v=d;t=0;f=0;while(1){p=o[v>>2]|0;if(!p)break;f=gS(O,p)|0;if((f|0)<0|f>>>0>(b-t|0)>>>0)break;t=f+t|0;if(b>>>0>t>>>0)v=v+4|0;else break}if((f|0)<0){l=-1;break e}bS(e,32,s,t,y);if(!t){t=0;w=84}else{p=0;while(1){f=o[d>>2]|0;if(!f){w=84;break t}f=gS(O,f)|0;p=f+p|0;if((p|0)>(t|0)){w=84;break t}sS(e,O,f);if(p>>>0>=t>>>0){w=84;break}else d=d+4|0}}}}while(0);if((w|0)==67){w=0;d=(t|0)!=0|(d|0)!=0;y=(f|0)!=0|d;d=((d^1)&1)+(T-b)|0;t=y?b:C;b=C;d=y?(f|0)>(d|0)?f:d:f;f=(f|0)>-1?g&-65537:g}else if((w|0)==84){w=0;bS(e,32,s,t,y^8192);s=(s|0)>(t|0)?s:t;t=D;continue}_=b-t|0;g=(d|0)<(_|0)?_:d;y=g+p|0;s=(s|0)<(y|0)?y:s;bS(e,32,s,y,f);sS(e,v,p);bS(e,48,s,y,f^65536);bS(e,48,g,_,0);sS(e,t,_);bS(e,32,s,y,f^8192);t=D}e:do{if((w|0)==87)if(!e)if(!m)l=0;else{l=1;while(1){t=o[a+(l<<2)>>2]|0;if(!t)break;fS(u+(l<<3)|0,t,n);l=l+1|0;if((l|0)>=10){l=1;break e}}while(1){if(o[a+(l<<2)>>2]|0){l=-1;break e}l=l+1|0;if((l|0)>=10){l=1;break}}}}while(0);h=R;return l|0}function aS(e){e=e|0;return 0}function lS(e){e=e|0;return}function sS(e,t,n){e=e|0;t=t|0;n=n|0;if(!(o[e>>2]&32))PS(t,n,e)|0;return}function cS(e){e=e|0;var t=0,n=0,i=0;n=o[e>>2]|0;i=(r[n>>0]|0)+-48|0;if(i>>>0<10){t=0;do{t=i+(t*10|0)|0;n=n+1|0;o[e>>2]=n;i=(r[n>>0]|0)+-48|0}while(i>>>0<10)}else t=0;return t|0}function fS(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0.0;e:do{if(t>>>0<=20)do{switch(t|0){case 9:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;o[e>>2]=t;break e}case 10:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=0;break e}case 12:{r=(o[n>>2]|0)+(8-1)&~(8-1);t=r;i=o[t>>2]|0;t=o[t+4>>2]|0;o[n>>2]=r+8;r=e;o[r>>2]=i;o[r+4>>2]=t;break e}case 13:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&65535)<<16>>16;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 14:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&65535;o[i+4>>2]=0;break e}case 15:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&255)<<24>>24;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 16:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&255;o[i+4>>2]=0;break e}case 17:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}case 18:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}default:break e}}while(0)}while(0);return}function dS(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=u[5694+(e&15)>>0]|0|i;e=rM(e|0,t|0,4)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function pS(e,t,n){e=e|0;t=t|0;n=n|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=e&7|48;e=rM(e|0,t|0,3)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function hS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if(t>>>0>0|(t|0)==0&e>>>0>4294967295){while(1){i=cM(e|0,t|0,10,0)|0;n=n+-1|0;r[n>>0]=i&255|48;i=e;e=aM(e|0,t|0,10,0)|0;if(!(t>>>0>9|(t|0)==9&i>>>0>4294967295))break;else t=x}t=e}else t=e;if(t)while(1){n=n+-1|0;r[n>>0]=(t>>>0)%10|0|48;if(t>>>0<10)break;else t=(t>>>0)/10|0}return n|0}function mS(e){e=e|0;return kS(e,o[(TS()|0)+188>>2]|0)|0}function vS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=t&255;i=(n|0)!=0;e:do{if(i&(e&3|0)!=0){u=t&255;while(1){if((r[e>>0]|0)==u<<24>>24){l=6;break e}e=e+1|0;n=n+-1|0;i=(n|0)!=0;if(!(i&(e&3|0)!=0)){l=5;break}}}else l=5}while(0);if((l|0)==5)if(i)l=6;else n=0;e:do{if((l|0)==6){u=t&255;if((r[e>>0]|0)!=u<<24>>24){i=H(a,16843009)|0;t:do{if(n>>>0>3)while(1){a=o[e>>2]^i;if((a&-2139062144^-2139062144)&a+-16843009|0)break;e=e+4|0;n=n+-4|0;if(n>>>0<=3){l=11;break t}}else l=11}while(0);if((l|0)==11)if(!n){n=0;break}while(1){if((r[e>>0]|0)==u<<24>>24)break e;e=e+1|0;n=n+-1|0;if(!n){n=0;break}}}}}while(0);return(n|0?e:0)|0}function bS(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var o=0,u=0;u=h;h=h+256|0;o=u;if((n|0)>(r|0)&(i&73728|0)==0){i=n-r|0;tM(o|0,t|0,(i>>>0<256?i:256)|0)|0;if(i>>>0>255){t=n-r|0;do{sS(e,o,256);i=i+-256|0}while(i>>>0>255);i=t&255}sS(e,o,i)}h=u;return}function gS(e,t){e=e|0;t=t|0;if(!e)e=0;else e=ES(e,t,0)|0;return e|0}function _S(e,t,n,i,a,l){e=e|0;t=+t;n=n|0;i=i|0;a=a|0;l=l|0;var s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0.0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+560|0;f=R+8|0;y=R;O=R+524|0;P=O;d=R+512|0;o[y>>2]=0;A=d+12|0;yS(t)|0;if((x|0)<0){t=-t;S=1;k=5659}else{S=(a&2049|0)!=0&1;k=(a&2048|0)==0?(a&1|0)==0?5660:5665:5662}yS(t)|0;M=x&2146435072;do{if(M>>>0<2146435072|(M|0)==2146435072&0<0){b=+DS(t,y)*2.0;s=b!=0.0;if(s)o[y>>2]=(o[y>>2]|0)+-1;w=l|32;if((w|0)==97){g=l&32;v=(g|0)==0?k:k+9|0;m=S|2;s=12-i|0;do{if(!(i>>>0>11|(s|0)==0)){t=8.0;do{s=s+-1|0;t=t*16.0}while((s|0)!=0);if((r[v>>0]|0)==45){t=-(t+(-b-t));break}else{t=b+t-t;break}}else t=b}while(0);c=o[y>>2]|0;s=(c|0)<0?0-c|0:c;s=hS(s,((s|0)<0)<<31>>31,A)|0;if((s|0)==(A|0)){s=d+11|0;r[s>>0]=48}r[s+-1>>0]=(c>>31&2)+43;p=s+-2|0;r[p>>0]=l+15;d=(i|0)<1;f=(a&8|0)==0;s=O;do{M=~~t;c=s+1|0;r[s>>0]=u[5694+M>>0]|g;t=(t-+(M|0))*16.0;if((c-P|0)==1?!(f&(d&t==0.0)):0){r[c>>0]=46;s=s+2|0}else s=c}while(t!=0.0);M=s-P|0;P=A-p|0;A=(i|0)!=0&(M+-2|0)<(i|0)?i+2|0:M;s=P+m+A|0;bS(e,32,n,s,a);sS(e,v,m);bS(e,48,n,s,a^65536);sS(e,O,M);bS(e,48,A-M|0,0,0);sS(e,p,P);bS(e,32,n,s,a^8192);break}c=(i|0)<0?6:i;if(s){s=(o[y>>2]|0)+-28|0;o[y>>2]=s;t=b*268435456.0}else{t=b;s=o[y>>2]|0}M=(s|0)<0?f:f+288|0;f=M;do{C=~~t>>>0;o[f>>2]=C;f=f+4|0;t=(t-+(C>>>0))*1.0e9}while(t!=0.0);if((s|0)>0){d=M;m=f;while(1){p=(s|0)<29?s:29;s=m+-4|0;if(s>>>0>=d>>>0){f=0;do{E=nM(o[s>>2]|0,0,p|0)|0;E=eM(E|0,x|0,f|0,0)|0;C=x;D=cM(E|0,C|0,1e9,0)|0;o[s>>2]=D;f=aM(E|0,C|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=d>>>0);if(f){d=d+-4|0;o[d>>2]=f}}f=m;while(1){if(f>>>0<=d>>>0)break;s=f+-4|0;if(!(o[s>>2]|0))f=s;else break}s=(o[y>>2]|0)-p|0;o[y>>2]=s;if((s|0)>0)m=f;else break}}else d=M;if((s|0)<0){i=((c+25|0)/9|0)+1|0;_=(w|0)==102;do{g=0-s|0;g=(g|0)<9?g:9;if(d>>>0<f>>>0){p=(1<<g)+-1|0;m=1e9>>>g;v=0;s=d;do{C=o[s>>2]|0;o[s>>2]=(C>>>g)+v;v=H(C&p,m)|0;s=s+4|0}while(s>>>0<f>>>0);s=(o[d>>2]|0)==0?d+4|0:d;if(!v){d=s;s=f}else{o[f>>2]=v;d=s;s=f+4|0}}else{d=(o[d>>2]|0)==0?d+4|0:d;s=f}f=_?M:d;f=(s-f>>2|0)>(i|0)?f+(i<<2)|0:s;s=(o[y>>2]|0)+g|0;o[y>>2]=s}while((s|0)<0);s=d;i=f}else{s=d;i=f}C=M;if(s>>>0<i>>>0){f=(C-s>>2)*9|0;p=o[s>>2]|0;if(p>>>0>=10){d=10;do{d=d*10|0;f=f+1|0}while(p>>>0>=d>>>0)}}else f=0;_=(w|0)==103;D=(c|0)!=0;d=c-((w|0)!=102?f:0)+((D&_)<<31>>31)|0;if((d|0)<(((i-C>>2)*9|0)+-9|0)){d=d+9216|0;g=M+4+(((d|0)/9|0)+-1024<<2)|0;d=((d|0)%9|0)+1|0;if((d|0)<9){p=10;do{p=p*10|0;d=d+1|0}while((d|0)!=9)}else p=10;m=o[g>>2]|0;v=(m>>>0)%(p>>>0)|0;d=(g+4|0)==(i|0);if(!(d&(v|0)==0)){b=(((m>>>0)/(p>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;E=(p|0)/2|0;t=v>>>0<E>>>0?.5:d&(v|0)==(E|0)?1.0:1.5;if(S){E=(r[k>>0]|0)==45;t=E?-t:t;b=E?-b:b}d=m-v|0;o[g>>2]=d;if(b+t!=b){E=d+p|0;o[g>>2]=E;if(E>>>0>999999999){f=g;while(1){d=f+-4|0;o[f>>2]=0;if(d>>>0<s>>>0){s=s+-4|0;o[s>>2]=0}E=(o[d>>2]|0)+1|0;o[d>>2]=E;if(E>>>0>999999999)f=d;else break}}else d=g;f=(C-s>>2)*9|0;m=o[s>>2]|0;if(m>>>0>=10){p=10;do{p=p*10|0;f=f+1|0}while(m>>>0>=p>>>0)}}else d=g}else d=g;d=d+4|0;d=i>>>0>d>>>0?d:i;E=s}else{d=i;E=s}w=d;while(1){if(w>>>0<=E>>>0){y=0;break}s=w+-4|0;if(!(o[s>>2]|0))w=s;else{y=1;break}}i=0-f|0;do{if(_){s=((D^1)&1)+c|0;if((s|0)>(f|0)&(f|0)>-5){p=l+-1|0;c=s+-1-f|0}else{p=l+-2|0;c=s+-1|0}s=a&8;if(!s){if(y?(T=o[w+-4>>2]|0,(T|0)!=0):0){if(!((T>>>0)%10|0)){d=0;s=10;do{s=s*10|0;d=d+1|0}while(!((T>>>0)%(s>>>0)|0|0))}else d=0}else d=9;s=((w-C>>2)*9|0)+-9|0;if((p|32|0)==102){g=s-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}else{g=s+f-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}}else g=s}else{p=l;g=a&8}}while(0);_=c|g;m=(_|0)!=0&1;v=(p|32|0)==102;if(v){D=0;s=(f|0)>0?f:0}else{s=(f|0)<0?i:f;s=hS(s,((s|0)<0)<<31>>31,A)|0;d=A;if((d-s|0)<2)do{s=s+-1|0;r[s>>0]=48}while((d-s|0)<2);r[s+-1>>0]=(f>>31&2)+43;s=s+-2|0;r[s>>0]=p;D=s;s=d-s|0}s=S+1+c+m+s|0;bS(e,32,n,s,a);sS(e,k,S);bS(e,48,n,s,a^65536);if(v){p=E>>>0>M>>>0?M:E;g=O+9|0;m=g;v=O+8|0;d=p;do{f=hS(o[d>>2]|0,0,g)|0;if((d|0)==(p|0)){if((f|0)==(g|0)){r[v>>0]=48;f=v}}else if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,m-f|0);d=d+4|0}while(d>>>0<=M>>>0);if(_|0)sS(e,5710,1);if(d>>>0<w>>>0&(c|0)>0)while(1){f=hS(o[d>>2]|0,0,g)|0;if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,(c|0)<9?c:9);d=d+4|0;f=c+-9|0;if(!(d>>>0<w>>>0&(c|0)>9)){c=f;break}else c=f}bS(e,48,c+9|0,9,0)}else{_=y?w:E+4|0;if((c|0)>-1){y=O+9|0;g=(g|0)==0;i=y;m=0-P|0;v=O+8|0;p=E;do{f=hS(o[p>>2]|0,0,y)|0;if((f|0)==(y|0)){r[v>>0]=48;f=v}do{if((p|0)==(E|0)){d=f+1|0;sS(e,f,1);if(g&(c|0)<1){f=d;break}sS(e,5710,1);f=d}else{if(f>>>0<=O>>>0)break;tM(O|0,48,f+m|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}}while(0);P=i-f|0;sS(e,f,(c|0)>(P|0)?P:c);c=c-P|0;p=p+4|0}while(p>>>0<_>>>0&(c|0)>-1)}bS(e,48,c+18|0,18,0);sS(e,D,A-D|0)}bS(e,32,n,s,a^8192)}else{O=(l&32|0)!=0;s=S+3|0;bS(e,32,n,s,a&-65537);sS(e,k,S);sS(e,t!=t|0.0!=0.0?O?5686:5690:O?5678:5682,3);bS(e,32,n,s,a^8192)}}while(0);h=R;return((s|0)<(n|0)?n:s)|0}function yS(e){e=+e;var t=0;c[d>>3]=e;t=o[d>>2]|0;x=o[d+4>>2]|0;return t|0}function DS(e,t){e=+e;t=t|0;return+ +wS(e,t)}function wS(e,t){e=+e;t=t|0;var n=0,r=0,i=0;c[d>>3]=e;n=o[d>>2]|0;r=o[d+4>>2]|0;i=rM(n|0,r|0,52)|0;switch(i&2047){case 0:{if(e!=0.0){e=+wS(e*18446744073709551616.0,t);n=(o[t>>2]|0)+-64|0}else n=0;o[t>>2]=n;break}case 2047:break;default:{o[t>>2]=(i&2047)+-1022;o[d>>2]=n;o[d+4>>2]=r&-2146435073|1071644672;e=+c[d>>3]}}return+e}function ES(e,t,n){e=e|0;t=t|0;n=n|0;do{if(e){if(t>>>0<128){r[e>>0]=t;e=1;break}if(!(o[o[(CS()|0)+188>>2]>>2]|0))if((t&-128|0)==57216){r[e>>0]=t;e=1;break}else{o[(Qk()|0)>>2]=84;e=-1;break}if(t>>>0<2048){r[e>>0]=t>>>6|192;r[e+1>>0]=t&63|128;e=2;break}if(t>>>0<55296|(t&-8192|0)==57344){r[e>>0]=t>>>12|224;r[e+1>>0]=t>>>6&63|128;r[e+2>>0]=t&63|128;e=3;break}if((t+-65536|0)>>>0<1048576){r[e>>0]=t>>>18|240;r[e+1>>0]=t>>>12&63|128;r[e+2>>0]=t>>>6&63|128;r[e+3>>0]=t&63|128;e=4;break}else{o[(Qk()|0)>>2]=84;e=-1;break}}else e=1}while(0);return e|0}function CS(){return eS()|0}function TS(){return eS()|0}function kS(e,t){e=e|0;t=t|0;var n=0,i=0;i=0;while(1){if((u[5712+i>>0]|0)==(e|0)){e=2;break}n=i+1|0;if((n|0)==87){n=5800;i=87;e=5;break}else i=n}if((e|0)==2)if(!i)n=5800;else{n=5800;e=5}if((e|0)==5)while(1){do{e=n;n=n+1|0}while((r[e>>0]|0)!=0);i=i+-1|0;if(!i)break;else e=5}return SS(n,o[t+20>>2]|0)|0}function SS(e,t){e=e|0;t=t|0;return MS(e,t)|0}function MS(e,t){e=e|0;t=t|0;if(!t)t=0;else t=xS(o[t>>2]|0,o[t+4>>2]|0,e)|0;return(t|0?t:e)|0}function xS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0;h=(o[e>>2]|0)+1794895138|0;a=AS(o[e+8>>2]|0,h)|0;i=AS(o[e+12>>2]|0,h)|0;u=AS(o[e+16>>2]|0,h)|0;e:do{if((a>>>0<t>>>2>>>0?(p=t-(a<<2)|0,i>>>0<p>>>0&u>>>0<p>>>0):0)?((u|i)&3|0)==0:0){p=i>>>2;d=u>>>2;f=0;while(1){s=a>>>1;c=f+s|0;l=c<<1;u=l+p|0;i=AS(o[e+(u<<2)>>2]|0,h)|0;u=AS(o[e+(u+1<<2)>>2]|0,h)|0;if(!(u>>>0<t>>>0&i>>>0<(t-u|0)>>>0)){i=0;break e}if(r[e+(u+i)>>0]|0){i=0;break e}i=rS(n,e+u|0)|0;if(!i)break;i=(i|0)<0;if((a|0)==1){i=0;break e}else{f=i?f:c;a=i?s:a-s|0}}i=l+d|0;u=AS(o[e+(i<<2)>>2]|0,h)|0;i=AS(o[e+(i+1<<2)>>2]|0,h)|0;if(i>>>0<t>>>0&u>>>0<(t-i|0)>>>0)i=(r[e+(i+u)>>0]|0)==0?e+i|0:0;else i=0}else i=0}while(0);return i|0}function AS(e,t){e=e|0;t=t|0;var n=0;n=fM(e|0)|0;return((t|0)==0?e:n)|0}function PS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0;i=n+16|0;u=o[i>>2]|0;if(!u){if(!(OS(n)|0)){u=o[i>>2]|0;a=5}else i=0}else a=5;e:do{if((a|0)==5){s=n+20|0;l=o[s>>2]|0;i=l;if((u-l|0)>>>0<t>>>0){i=_x[o[n+36>>2]&7](n,e,t)|0;break}t:do{if((r[n+75>>0]|0)>-1){l=t;while(1){if(!l){a=0;u=e;break t}u=l+-1|0;if((r[e+u>>0]|0)==10)break;else l=u}i=_x[o[n+36>>2]&7](n,e,l)|0;if(i>>>0<l>>>0)break e;a=l;u=e+l|0;t=t-l|0;i=o[s>>2]|0}else{a=0;u=e}}while(0);iM(i|0,u|0,t|0)|0;o[s>>2]=(o[s>>2]|0)+t;i=a+t|0}}while(0);return i|0}function OS(e){e=e|0;var t=0,n=0;t=e+74|0;n=r[t>>0]|0;r[t>>0]=n+255|n;t=o[e>>2]|0;if(!(t&8)){o[e+8>>2]=0;o[e+4>>2]=0;n=o[e+44>>2]|0;o[e+28>>2]=n;o[e+20>>2]=n;o[e+16>>2]=n+(o[e+48>>2]|0);e=0}else{o[e>>2]=t|32;e=-1}return e|0}function RS(e,t){e=K(e);t=K(t);var n=0,r=0;n=NS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=NS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?t:e;break}else{e=e<t?t:e;break}}else e=t}while(0);return K(e)}function NS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function IS(e,t){e=K(e);t=K(t);var n=0,r=0;n=FS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=FS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?e:t;break}else{e=e<t?e:t;break}}else e=t}while(0);return K(e)}function FS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function BS(e,t){e=K(e);t=K(t);var n=0,r=0,i=0,u=0,a=0,l=0,c=0,f=0;u=(s[d>>2]=e,o[d>>2]|0);l=(s[d>>2]=t,o[d>>2]|0);n=u>>>23&255;a=l>>>23&255;c=u&-2147483648;i=l<<1;e:do{if((i|0)!=0?!((n|0)==255|((LS(t)|0)&2147483647)>>>0>2139095040):0){r=u<<1;if(r>>>0<=i>>>0){t=K(e*K(0.0));return K((r|0)==(i|0)?t:e)}if(!n){n=u<<9;if((n|0)>-1){r=n;n=0;do{n=n+-1|0;r=r<<1}while((r|0)>-1)}else n=0;r=u<<1-n}else r=u&8388607|8388608;if(!a){u=l<<9;if((u|0)>-1){i=0;do{i=i+-1|0;u=u<<1}while((u|0)>-1)}else i=0;a=i;l=l<<1-i}else l=l&8388607|8388608;i=r-l|0;u=(i|0)>-1;t:do{if((n|0)>(a|0)){while(1){if(u)if(!i)break;else r=i;r=r<<1;n=n+-1|0;i=r-l|0;u=(i|0)>-1;if((n|0)<=(a|0))break t}t=K(e*K(0.0));break e}}while(0);if(u)if(!i){t=K(e*K(0.0));break}else r=i;if(r>>>0<8388608)do{r=r<<1;n=n+-1|0}while(r>>>0<8388608);if((n|0)>0)n=r+-8388608|n<<23;else n=r>>>(1-n|0);t=(o[d>>2]=n|c,K(s[d>>2]))}else f=3}while(0);if((f|0)==3){t=K(e*t);t=K(t/t)}return K(t)}function LS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function US(e,t){e=e|0;t=t|0;return oS(o[582]|0,e,t)|0}function jS(e){e=e|0;Ke()}function WS(e){e=e|0;return}function zS(e,t){e=e|0;t=t|0;return 0}function qS(e){e=e|0;if((HS(e+4|0)|0)==-1){hx[o[(o[e>>2]|0)+8>>2]&127](e);e=1}else e=0;return e|0}function HS(e){e=e|0;var t=0;t=o[e>>2]|0;o[e>>2]=t+-1;return t+-1|0}function GS(e){e=e|0;if(qS(e)|0)VS(e);return}function VS(e){e=e|0;var t=0;t=e+8|0;if(!((o[t>>2]|0)!=0?(HS(t)|0)!=-1:0))hx[o[(o[e>>2]|0)+16>>2]&127](e);return}function YS(e){e=e|0;var t=0;t=(e|0)==0?1:e;while(1){e=Gk(t)|0;if(e|0)break;e=JS()|0;if(!e){e=0;break}Ox[e&0]()}return e|0}function KS(e){e=e|0;return YS(e)|0}function $S(e){e=e|0;Vk(e);return}function XS(e){e=e|0;if((r[e+11>>0]|0)<0)$S(o[e>>2]|0);return}function JS(){var e=0;e=o[2923]|0;o[2923]=e+0;return e|0}function QS(){}function ZS(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=t-r-(n>>>0>e>>>0|0)>>>0;return(x=r,e-n>>>0|0)|0}function eM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;n=e+n>>>0;return(x=t+r+(n>>>0<e>>>0|0)>>>0,n|0)|0}function tM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){r[e>>0]=t;e=e+1|0}i=a&-4|0;u=i-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(u|0)){o[e>>2]=l;o[e+4>>2]=l;o[e+8>>2]=l;o[e+12>>2]=l;o[e+16>>2]=l;o[e+20>>2]=l;o[e+24>>2]=l;o[e+28>>2]=l;o[e+32>>2]=l;o[e+36>>2]=l;o[e+40>>2]=l;o[e+44>>2]=l;o[e+48>>2]=l;o[e+52>>2]=l;o[e+56>>2]=l;o[e+60>>2]=l;e=e+64|0}while((e|0)<(i|0)){o[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){r[e>>0]=t;e=e+1|0}return a-n|0}function nM(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t<<n|(e&(1<<n)-1<<32-n)>>>32-n;return e<<n}x=e<<n-32;return 0}function rM(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t>>>n;return e>>>n|(t&(1<<n)-1)<<32-n}x=0;return t>>>n-32|0}function iM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0;if((n|0)>=8192)return qe(e|0,t|0,n|0)|0;a=e|0;u=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}n=u&-4|0;i=n-64|0;while((e|0)<=(i|0)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];o[e+16>>2]=o[t+16>>2];o[e+20>>2]=o[t+20>>2];o[e+24>>2]=o[t+24>>2];o[e+28>>2]=o[t+28>>2];o[e+32>>2]=o[t+32>>2];o[e+36>>2]=o[t+36>>2];o[e+40>>2]=o[t+40>>2];o[e+44>>2]=o[t+44>>2];o[e+48>>2]=o[t+48>>2];o[e+52>>2]=o[t+52>>2];o[e+56>>2]=o[t+56>>2];o[e+60>>2]=o[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(n|0)){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0}}else{n=u-4|0;while((e|0)<(n|0)){r[e>>0]=r[t>>0]|0;r[e+1>>0]=r[t+1>>0]|0;r[e+2>>0]=r[t+2>>0]|0;r[e+3>>0]=r[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(u|0)){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function oM(e){e=e|0;var t=0;t=r[v+(e&255)>>0]|0;if((t|0)<8)return t|0;t=r[v+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=r[v+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(r[v+(e>>>24)>>0]|0)+24|0}function uM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0,m=0;f=e;s=t;c=s;a=n;p=r;l=p;if(!c){u=(i|0)!=0;if(!l){if(u){o[i>>2]=(f>>>0)%(a>>>0);o[i+4>>2]=0}p=0;i=(f>>>0)/(a>>>0)>>>0;return(x=p,i)|0}else{if(!u){p=0;i=0;return(x=p,i)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;p=0;i=0;return(x=p,i)|0}}u=(l|0)==0;do{if(a){if(!u){u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=31){d=u+1|0;l=31-u|0;t=u-31>>31;a=d;e=f>>>(d>>>0)&t|c<<l;t=c>>>(d>>>0)&t;u=0;l=f<<l;break}if(!i){p=0;i=0;return(x=p,i)|0}o[i>>2]=e|0;o[i+4>>2]=s|t&0;p=0;i=0;return(x=p,i)|0}u=a-1|0;if(u&a|0){l=(Y(a|0)|0)+33-(Y(c|0)|0)|0;m=64-l|0;d=32-l|0;s=d>>31;h=l-32|0;t=h>>31;a=l;e=d-1>>31&c>>>(h>>>0)|(c<<d|f>>>(l>>>0))&t;t=t&c>>>(l>>>0);u=f<<m&s;l=(c<<m|f>>>(h>>>0))&s|f<<d&l-33>>31;break}if(i|0){o[i>>2]=u&f;o[i+4>>2]=0}if((a|0)==1){h=s|t&0;m=e|0|0;return(x=h,m)|0}else{m=oM(a|0)|0;h=c>>>(m>>>0)|0;m=c<<32-m|f>>>(m>>>0)|0;return(x=h,m)|0}}else{if(u){if(i|0){o[i>>2]=(c>>>0)%(a>>>0);o[i+4>>2]=0}h=0;m=(c>>>0)/(a>>>0)>>>0;return(x=h,m)|0}if(!f){if(i|0){o[i>>2]=0;o[i+4>>2]=(c>>>0)%(l>>>0)}h=0;m=(c>>>0)/(l>>>0)>>>0;return(x=h,m)|0}u=l-1|0;if(!(u&l)){if(i|0){o[i>>2]=e|0;o[i+4>>2]=u&c|t&0}h=0;m=c>>>((oM(l|0)|0)>>>0);return(x=h,m)|0}u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=30){t=u+1|0;l=31-u|0;a=t;e=c<<l|f>>>(t>>>0);t=c>>>(t>>>0);u=0;l=f<<l;break}if(!i){h=0;m=0;return(x=h,m)|0}o[i>>2]=e|0;o[i+4>>2]=s|t&0;h=0;m=0;return(x=h,m)|0}}while(0);if(!a){c=l;s=0;l=0}else{d=n|0|0;f=p|r&0;c=eM(d|0,f|0,-1,-1)|0;n=x;s=l;l=0;do{r=s;s=u>>>31|s<<1;u=l|u<<1;r=e<<1|r>>>31|0;p=e>>>31|t<<1|0;ZS(c|0,n|0,r|0,p|0)|0;m=x;h=m>>31|((m|0)<0?-1:0)<<1;l=h&1;e=ZS(r|0,p|0,h&d|0,(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&f|0)|0;t=x;a=a-1|0}while((a|0)!=0);c=s;s=0}a=0;if(i|0){o[i>>2]=e;o[i+4>>2]=t}h=(u|0)>>>31|(c|a)<<1|(a<<1|u>>>31)&0|s;m=(u<<1|0>>>31)&-2|l;return(x=h,m)|0}function aM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return uM(e,t,n,r,0)|0}function lM(e){e=e|0;var t=0,n=0;n=e+15&-16|0;t=o[f>>2]|0;e=t+n|0;if((n|0)>0&(e|0)<(t|0)|(e|0)<0){Z()|0;Ge(12);return-1}o[f>>2]=e;if((e|0)>(Q()|0)?(J()|0)==0:0){o[f>>2]=t;Ge(12);return-1}return t|0}function sM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if((t|0)<(e|0)&(e|0)<(t+n|0)){i=e;t=t+n|0;e=e+n|0;while((n|0)>0){e=e-1|0;t=t-1|0;n=n-1|0;r[e>>0]=r[t>>0]|0}e=i}else iM(e,t,n)|0;return e|0}function cM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u|0;uM(e,t,n,r,i)|0;h=u;return(x=o[i+4>>2]|0,o[i>>2]|0)|0}function fM(e){e=e|0;return(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function dM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;cx[e&1](t|0,n|0,r|0,i|0,o|0)}function pM(e,t,n){e=e|0;t=t|0;n=K(n);fx[e&1](t|0,K(n))}function hM(e,t,n){e=e|0;t=t|0;n=+n;dx[e&31](t|0,+n)}function mM(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);return K(px[e&0](t|0,K(n),K(r)))}function vM(e,t){e=e|0;t=t|0;hx[e&127](t|0)}function bM(e,t,n){e=e|0;t=t|0;n=n|0;mx[e&31](t|0,n|0)}function gM(e,t){e=e|0;t=t|0;return vx[e&31](t|0)|0}function _M(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;bx[e&1](t|0,+n,+r,i|0)}function yM(e,t,n,r){e=e|0;t=t|0;n=+n;r=+r;gx[e&1](t|0,+n,+r)}function DM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return _x[e&7](t|0,n|0,r|0)|0}function wM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return+yx[e&1](t|0,n|0,r|0)}function EM(e,t){e=e|0;t=t|0;return+Dx[e&15](t|0)}function CM(e,t,n){e=e|0;t=t|0;n=+n;return wx[e&1](t|0,+n)|0}function TM(e,t,n){e=e|0;t=t|0;n=n|0;return Ex[e&15](t|0,n|0)|0}function kM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=+r;i=+i;o=o|0;Cx[e&1](t|0,n|0,+r,+i,o|0)}function SM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;Tx[e&1](t|0,n|0,r|0,i|0,o|0,u|0)}function MM(e,t,n){e=e|0;t=t|0;n=n|0;return+kx[e&7](t|0,n|0)}function xM(e){e=e|0;return Sx[e&7]()|0}function AM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;return Mx[e&1](t|0,n|0,r|0,i|0,o|0)|0}function PM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=+i;xx[e&1](t|0,n|0,r|0,+i)}function OM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;Ax[e&1](t|0,n|0,K(r),i|0,K(o),u|0)}function RM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Px[e&15](t|0,n|0,r|0)}function NM(e){e=e|0;Ox[e&0]()}function IM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;Rx[e&15](t|0,n|0,+r)}function FM(e,t,n){e=e|0;t=+t;n=+n;return Nx[e&1](+t,+n)|0}function BM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;Ix[e&15](t|0,n|0,r|0,i|0)}function LM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(0)}function UM(e,t){e=e|0;t=K(t);$(1)}function jM(e,t){e=e|0;t=+t;$(2)}function WM(e,t,n){e=e|0;t=K(t);n=K(n);$(3);return ft}function zM(e){e=e|0;$(4)}function qM(e,t){e=e|0;t=t|0;$(5)}function HM(e){e=e|0;$(6);return 0}function GM(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;$(7)}function VM(e,t,n){e=e|0;t=+t;n=+n;$(8)}function YM(e,t,n){e=e|0;t=t|0;n=n|0;$(9);return 0}function KM(e,t,n){e=e|0;t=t|0;n=n|0;$(10);return 0.0}function $M(e){e=e|0;$(11);return 0.0}function XM(e,t){e=e|0;t=+t;$(12);return 0}function JM(e,t){e=e|0;t=t|0;$(13);return 0}function QM(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;$(14)}function ZM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;$(15)}function ex(e,t){e=e|0;t=t|0;$(16);return 0.0}function tx(){$(17);return 0}function nx(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(18);return 0}function rx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;$(19)}function ix(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;$(20)}function ox(e,t,n){e=e|0;t=t|0;n=n|0;$(21)}function ux(){$(22)}function ax(e,t,n){e=e|0;t=t|0;n=+n;$(23)}function lx(e,t){e=+e;t=+t;$(24);return 0}function sx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;$(25)}var cx=[LM,Ew];var fx=[UM,Gi];var dx=[jM,go,_o,yo,Do,wo,Eo,Co,ko,So,xo,Ao,Po,Oo,Ro,No,Io,Fo,Bo,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM];var px=[WM];var hx=[zM,WS,hl,ml,vl,$d,Xd,Jd,gy,_y,yy,ow,uw,aw,uk,ak,lk,yt,Xi,to,To,Mo,Uu,ju,$a,Cl,zl,ps,Rs,rc,kc,Gc,df,Nf,Zf,gd,Bd,bp,Fp,th,yh,Uh,im,km,Hm,av,Mv,zi,cb,xb,Jb,gg,Fg,o_,b_,y_,j_,q_,ay,Ey,ky,Vy,pD,Tl,AE,pC,PC,$C,yT,LT,XT,ZT,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM];var mx=[qM,no,ro,uo,ao,lo,so,co,fo,mo,vo,bo,eu,ru,iu,ou,uu,au,lu,pu,bu,$u,Am,Ym,wg,RE,DD,eC,qM,qM,qM,qM];var vx=[HM,Kk,$i,Wo,Go,Vo,Yo,Ko,$o,Xo,Qo,Zo,hu,mu,Wu,Pv,jg,$y,LE,jE,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM];var bx=[GM,zu];var gx=[VM,cy];var _x=[YM,$k,Xk,nS,ac,Dp,hb,ZC];var yx=[KM,rd];var Dx=[$M,tu,nu,su,qu,Hu,Gu,Vu,Yu,Ku,$M,$M,$M,$M,$M,$M];var wx=[XM,p_];var Ex=[JM,zS,vu,tl,bs,Ac,$c,Wd,jp,fv,Vi,IC,JM,JM,JM,JM];var Cx=[QM,Vl];var Tx=[ZM,CT];var kx=[ex,cu,Xu,Ju,Qu,wd,ex,ex];var Sx=[tx,Zu,Yi,ji,T_,Y_,Py,rk];var Mx=[nx,Fr];var xx=[rx,Ch];var Ax=[ix,_u];var Px=[ox,zo,Jo,fu,du,Bs,vf,qh,lm,Hi,Qw,bC,zT,ox,ox,ox];var Ox=[ux];var Rx=[ax,io,oo,po,ho,Lo,Uo,jo,oh,Rb,l_,ax,ax,ax,ax,ax];var Nx=[lx,my];var Ix=[sx,Lf,Uv,tg,$g,P_,Z_,Ly,gD,GE,hk,sx,sx,sx,sx,sx];return{_llvm_bswap_i32:fM,dynCall_idd:FM,dynCall_i:xM,_i64Subtract:ZS,___udivdi3:aM,dynCall_vif:pM,setThrew:vt,dynCall_viii:RM,_bitshift64Lshr:rM,_bitshift64Shl:nM,dynCall_vi:vM,dynCall_viiddi:kM,dynCall_diii:wM,dynCall_iii:TM,_memset:tM,_sbrk:lM,_memcpy:iM,__GLOBAL__sub_I_Yoga_cpp:Ui,dynCall_vii:bM,___uremdi3:cM,dynCall_vid:hM,stackAlloc:dt,_nbind_init:xk,getTempRet0:gt,dynCall_di:EM,dynCall_iid:CM,setTempRet0:bt,_i64Add:eM,dynCall_fiff:mM,dynCall_iiii:DM,_emscripten_get_global_libc:Yk,dynCall_viid:IM,dynCall_viiid:PM,dynCall_viififi:OM,dynCall_ii:gM,__GLOBAL__sub_I_Binding_cc:DE,dynCall_viiii:BM,dynCall_iiiiii:AM,stackSave:pt,dynCall_viiiii:dM,__GLOBAL__sub_I_nbind_cc:ea,dynCall_vidd:yM,_free:Vk,runPostSets:QS,dynCall_viiiiii:SM,establishStackSpace:mt,_memmove:sM,stackRestore:ht,_malloc:Gk,__GLOBAL__sub_I_common_cc:iD,dynCall_viddi:_M,dynCall_dii:MM,dynCall_v:NM}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii,initialStackTop;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){e=e||[],ensureInitRuntime();var t=e.length+1;function n(){for(var e=0;e<3;e++)r.push(0)}var r=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];n();for(var i=0;i<t-1;i+=1)r.push(allocate(intArrayFromString(e[i]),"i8",ALLOC_NORMAL)),n();r.push(0),r=allocate(r,"i32",ALLOC_NORMAL);try{exit(Module._main(t,r,0),!0)}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);var o=e;e&&"object"==typeof e&&e.stack&&(o=[e,e.stack]),Module.printErr("exception thrown: "+o),Module.quit(1,e)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];function abort(e){Module.onAbort&&Module.onAbort(e),void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="abort("+e+") at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw abortDecorators&&abortDecorators.forEach((function(n){t=n(t,e)})),t}if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return wrapper}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__=[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},9532:e=>{"use strict";e.exports={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2}},2821:(e,t,n)=>{"use strict";var r=n(6863),i=n(7356),o=!1,u=null;if(i({},(function(e,t){if(!o){if(o=!0,e)throw e;u=t}})),!o)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");e.exports=r(u.bind,u.lib)},6863:(e,t,n)=>{"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=n(9532),l=function(){function e(t,n,r,i,o,a){u(this,e),this.left=t,this.right=n,this.top=r,this.bottom=i,this.width=o,this.height=a}return i(e,[{key:"fromJS",value:function(e){e(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),e}(),s=function(){function e(t,n){u(this,e),this.width=t,this.height=n}return i(e,null,[{key:"fromJS",value:function(t){return new e(t.width,t.height)}}]),i(e,[{key:"fromJS",value:function(e){e(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),e}(),c=function(){function e(t,n){u(this,e),this.unit=t,this.value=n}return i(e,[{key:"fromJS",value:function(e){e(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case a.UNIT_POINT:return String(this.value);case a.UNIT_PERCENT:return this.value+"%";case a.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();e.exports=function(e,t){function n(e,t,n){var r=e[t];e[t]=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return n.call.apply(n,[this,r].concat(t))}}for(var i=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],u=function(){var e,r=i[f],u=(o(e={},a.UNIT_POINT,t.Node.prototype[r]),o(e,a.UNIT_PERCENT,t.Node.prototype[r+"Percent"]),o(e,a.UNIT_AUTO,t.Node.prototype[r+"Auto"]),e);n(t.Node.prototype,r,(function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var o,l,s=n.pop(),f=void 0,d=void 0;if("auto"===s)f=a.UNIT_AUTO,d=void 0;else if(s instanceof c)f=s.unit,d=s.valueOf();else if(f="string"==typeof s&&s.endsWith("%")?a.UNIT_PERCENT:a.UNIT_POINT,d=parseFloat(s),!Number.isNaN(s)&&Number.isNaN(d))throw new Error("Invalid value "+s+" for "+r);if(!u[f])throw new Error('Failed to execute "'+r+"\": Unsupported unit '"+s+"'");return void 0!==d?(o=u[f]).call.apply(o,[this].concat(n,[d])):(l=u[f]).call.apply(l,[this].concat(n))}))},f=0;f<i.length;f++)u();return n(t.Config.prototype,"free",(function(){t.Config.destroy(this)})),n(t.Node,"create",(function(e,n){return n?t.Node.createWithConfig(n):t.Node.createDefault()})),n(t.Node.prototype,"free",(function(){t.Node.destroy(this)})),n(t.Node.prototype,"freeRecursive",(function(){for(var e=0,t=this.getChildCount();e<t;++e)this.getChild(0).freeRecursive();this.free()})),n(t.Node.prototype,"setMeasureFunc",(function(e,t){return t?e.call(this,(function(){return s.fromJS(t.apply(void 0,arguments))})):this.unsetMeasureFunc()})),n(t.Node.prototype,"calculateLayout",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.DIRECTION_LTR;return e.call(this,t,n,r)})),r({Config:t.Config,Node:t.Node,Layout:e("Layout",l),Size:e("Size",s),Value:e("Value",c),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},a)}},2594:e=>{"use strict";e.exports=require("@yarnpkg/cli")},966:e=>{"use strict";e.exports=require("@yarnpkg/core")},4850:e=>{"use strict";e.exports=require("@yarnpkg/plugin-essentials")},2357:e=>{"use strict";e.exports=require("assert")},8042:e=>{"use strict";e.exports=require("clipanion")},6417:e=>{"use strict";e.exports=require("crypto")},8614:e=>{"use strict";e.exports=require("events")},8605:e=>{"use strict";e.exports=require("http")},7211:e=>{"use strict";e.exports=require("https")},2087:e=>{"use strict";e.exports=require("os")},1058:e=>{"use strict";e.exports=require("readline")},9513:e=>{"use strict";e.exports=require("semver")},3867:e=>{"use strict";e.exports=require("tty")},8835:e=>{"use strict";e.exports=require("url")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(120)})();
+return plugin;
+}
+};
\ No newline at end of file
diff --git a/FrontEnd/.yarn/releases/yarn-2.1.1.cjs b/FrontEnd/.yarn/releases/yarn-2.1.1.cjs
new file mode 100644
index 00000000..ee3e40df
--- /dev/null
+++ b/FrontEnd/.yarn/releases/yarn-2.1.1.cjs
@@ -0,0 +1,86 @@
+#!/usr/bin/env node
+module.exports=(()=>{var __webpack_modules__={49775:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-compat"}')},35729:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-dlx"}')},37904:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-essentials"}')},17508:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-file"}')},84779:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-git"}')},88454:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-github"}')},91953:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-http"}')},63756:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-init"}')},23100:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-link"}')},47047:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-node-modules"}')},31880:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm-cli"}')},67310:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm"}')},74617:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pack"}')},12437:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-patch"}')},8211:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pnp"}')},80150:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132);const i={optional:!0},o=[["@samverschueren/stream-to-observable@*",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@*",{peerDependenciesMeta:{"supports-color":i}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":i,"postcss-jsx":i,"postcss-less":i,"postcss-markdown":i,"postcss-scss":i}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}]],s=r(78761).brotliDecompressSync(Buffer.from("G8EIABwHuTnyDkxeQiomXep01zJ90cJ3iFSgGcnN+dVTE5YC1CBsZn0bRMFnq2+/bPJOWLRlcCblbWaytN6yn94lDuHQVXEMzob/mhDOafB/uXcOjPnzEX5TF8I/4H+A7n4PCzSY0xTuWjDfxxV8F1neM4x7jymltl+dnYEp13SxCOpkQxUClagaNItavHVUdwD73pT3+c52oJFtOTmagkX/GAaKFyr1bLfAnKMY+OZmY+0YsC6Sci7AJQI2zADQHhdIcc03Dz+GOC05kpj3M0kiNKsdFu1U3ornmwco/hOeYDp3IUlCIQqaE6eg8ho+SQaBwAeE4PktvsKmDJJy8fXAx0jTz4Oj2wWKVgNnuMz/CR5AZNuo2eZk0HwujkkFQBytGPu+p1RoCpRBYVcTf7REjfuVBUIa+MgTpb+ZaKgASLlmw2dFNlIsdYEsSntc1vhEJfQLSkVdBXXK67OUoZjcjVu8DPd8oSwu1vK52tVmsLNeekvJW3ss4Z1+thxuul1A0bzLBLT7MQMQxaGNFQUpvaAsmmOVo1hZFKHViytsKRvkULx6+VpOghLO9W/tHqSTQkqQkLWIKtzBlsPNUviOym6eOz3jjDM43Jfi2pXbla5apaLf+jR3njZPcG1zp9bxgi6Acg2V4n8rU8+1ANM2CXkW5tkqS6QfhnL1z8/s5G8r/f4omOaXOkzbHh9HdPhfxz9Tftr698n6L7UYF/L089Ch+9QgeDSlUXdaBAyLU3G6bkC5ygWmNqZMBYJHB6iFj4uo0iI9yR5r3KUooI0Zg1IkiYsgqxR8jMug6VgwtyIaxNxP30CqZH3zo/g16/wof1VdCLhd+YIOeBHFhA/D2eAvyld7FIAT8EiOA1Msg41mq8UNYCwZt2Pc519uZYhp9gP6kOwhcU+Ydc0CsPIqfy0ZGgbIKNYGZ+RP4ESfRzdDW6vhSsXuu2VB29YEdri/7CbQ7XCsVevHtY2mms7dVEMb6Wa/Ln6ZokATZTjZ/kMMNoWEp0AqBKG0DaCyBxlBsylqymr/6xM+mxOAAVREIXXGnW4IXuQ5oSGimw0C7BKZb3ZDLEWtkWXM5FB7jjp37QA=","base64")).toString(),A=r(78761).brotliDecompressSync(Buffer.from("G1QTIIzURnVBnGa0VPvr81orV8AFIqdU0sqrdcVgCdukgAZwi8a50gLk9+19Z2NcUILjmzXkzt4dzm5a6Yoys+/9qnKiaApXukOiuoyUaMcynG4X7X4vBaIE/PL30gwG6HSGJkLxb9PnLjfMr+748n7sM6C/NycK6ber/bX1reVVxta6W/31tZIhfrS+upoE/TPRHj0S/l0T59gTGdtKOp1OmMOJt9rhfucDdLJ2tgyfnO+u4YMkQAcYq/nebTcDmbXhqhgo6iQA4M3m4xya4Cos3p6klmkmQT+S4DLDZfwfMF+sUCx36KleOtaHLQfEIz0Bmncj/Ngi3lqOl4391EWEfIss6gVp3oDUGwsSZJKeOVONJWZg+Mue3KUMV3aMqYJ+7b2219D+GFDi8EV5y/Y+5J+He0oNjKAgqLsJziEsS9uIaCu3BHBKSXxNKKa2ShbfglcWoiiVT2kfGI7Gw+YJ/Sqy1H6wdFWtyVUQIa82JPwbeV25YKLzc5ZIFM6GCPSA+J9dTvJbs5LuuKnLP3f09gCu2jxqsAv6CA+ZySVaUJr2d3A70BC/uBCKr2OVrWgC3fSwb7NlfkgSEEiejrMGvhya9lMbVI6lMsFKN330A1/FOaefHQdNGLEZ3IwFF87H3xVlM0Xxsmbi/7A60oymRcIe0tH90alG6ez/yA7jwYotxuHWZdR+1HlMcddGHAV6QD/gXYPV0wnNv47I+5FGevzZFMqWSO8GU4nQ3FjsdgdJcD+c1rvudERKuLyd7bxiBpnsMDHsvPP4nXdXkld/gUNks3GAE1Otmb90bavDyiw4Mrx496Iw+jbLTgsCZGZXSZ9vM55C7KGe4HyJAKXEk0iT/Cj/PFwLJBN7pcP7ZFfYtUApGTWKkYhI9IE2zt/5ByH72wdvH+88b71zuv/FMCX3w6x5nzhY44Cg5IYv9LeKwHuHIWgPbfgrAcUxOlKkPRdQOIDF/aBuLPJAXD+TgxCNXx4jQxeR/qlBWVikFPfEI4rXMUc4kZ2w9KbPKYRvFUag0dVlVoyUP4zfidbTXAdZF88jAckl+NHjLFCNdX7EQ1PbLSOl+P+MqgwEOCi6dxgWZ7NCwJBjWKpk1LaxwKrhZ4aEC/0lMPJYe5S8xAakDcmA2kSS86GjEMTrv3VEu0S0YGZcxToMV524G4WAc4CReePePdipvs4aXRL5p+aeN96yfMGjsiTbQNxgbdRKc+keQ+NxYIEm1mBtEO29WrcbrqNbQRMR66KpGG4aG0NtmRyZ2JhUvu0paCklRlID8PT3gSiwZrqr4XZXoBBzBMrveWCuOg7iTgGDXDdbGi8XHkQf5KXDGFUxWueu5wkSa6gMWY1599g2piQjwBKIAPt4N5cOZdFBidz2feGwEAy1j1UydGxDSCCUsh314cUIIRV/dWCheceubL2gU8CibewmP7UxmN5kN4I7zfQhPxkP0NCcei8GXQpw4c3krEzW7PR2hgi/hqqqR58UJ/ZVfWxfcH5ZKMo4itkmPK0FCGxzzIRP20lK/gz28Y03sY233KvSVWUKl9rcbX6MbHjpUG8MvNlw72p6FwTejv92zgpnCxVJnIHHZhCBxNcHF5RTveRp513hUtTHHq4BIndlytZT5xoTSYfHKqKNr4o9kcGINIz6tZSKRdtbON3Ydr9cgqxHIeisMNIsvPg/IFMZuBbSqqDLeSO5dak1cGr76FtH2PC7hs0S0Oq3GsmF1Ga4YABAMGcdPAWzTk26B7cKV91I2b0V/GYvnsEQ1YGntRqi5EQqTlgZszbV/32GuZtUF49JOA/r4jAdwUOsbPo6mNoBlJPYjM5axrZaWQf33bFsLWqiyvvDOM4x0Ng802T7cuP2a3q98GWq6yiq6q3M77hcZlOUnmryctRYmI4Hb2F5XixFohkBmySCjU+M7/WQVE5YAtnlxiUJDhFN0y1tNeMWY9E0MfZi2rQ4eC72WXjsAA==","base64")).toString(),a=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString(),c=new Map([[n.structUtils.makeIdent(null,"fsevents").identHash,s],[n.structUtils.makeIdent(null,"resolve").identHash,A],[n.structUtils.makeIdent(null,"typescript").identHash,a]]),u={hooks:{registerPackageExtensions:async(e,t)=>{for(const[e,r]of o)t(n.structUtils.parseDescriptor(e,!0),r)},getBuiltinPatch:async(e,t)=>{if(!t.startsWith("compat/"))return;const r=n.structUtils.parseIdent(t.slice("compat/".length)),i=c.get(r.identHash);return void 0!==i?i:null},reduceDependency:async(e,t,r,i)=>void 0===c.get(e.identHash)?e:n.structUtils.makeDescriptor(e,n.structUtils.makeRange({protocol:"patch:",source:n.structUtils.stringifyDescriptor(e),selector:`builtin<compat/${n.structUtils.stringifyIdent(e)}>`,params:null}))}}},10420:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var n=r(36370),i=r(95397),o=r(84132),s=r(17278);class A extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){const e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");const t=o.structUtils.parseIdent(this.command),r=o.structUtils.makeIdent(t.scope,"create-"+t.name);return this.cli.run(["dlx",...e,o.structUtils.stringifyIdent(r),...this.args])}}(0,n.gn)([s.Command.String("-p,--package")],A.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],A.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],A.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],A.prototype,"args",void 0),(0,n.gn)([s.Command.Path("create")],A.prototype,"execute",null);var a=r(27122),c=r(40376),u=r(56537),l=r(46009);class h extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){return await u.xfs.mktempPromise(async e=>{const t=l.y1.join(e,"dlx-"+process.pid);await u.xfs.mkdirPromise(t),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("package.json")),"{}\n"),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("yarn.lock")),"");const r=l.y1.join(t,(0,l.Zu)(".yarnrc.yml")),n=await a.VK.findProjectCwd(this.context.cwd,l.QS.lockfile),s=null!==n?l.y1.join(n,(0,l.Zu)(".yarnrc.yml")):null;null!==s&&u.xfs.existsSync(s)?(await u.xfs.copyFilePromise(s,r),await a.VK.updateConfiguration(t,e=>void 0===e.plugins?{enableGlobalCache:!0}:{enableGlobalCache:!0,plugins:e.plugins.map(e=>{const t="string"==typeof e?e:e.path,r=l.cS.isAbsolute(t)?t:l.cS.resolve(l.cS.fromPortablePath(n),t);return"string"==typeof e?r:{path:r,spec:e.spec}})})):await u.xfs.writeFilePromise(r,"enableGlobalCache: true\n");const A=void 0!==this.pkg?[this.pkg]:[this.command],h=o.structUtils.parseDescriptor(this.command).name,g=await this.cli.run(["add","--",...A],{cwd:t,quiet:this.quiet});if(0!==g)return g;this.quiet||this.context.stdout.write("\n");const f=await a.VK.find(t,this.context.plugins),{project:p,workspace:d}=await c.I.find(f,t);if(null===d)throw new i.WorkspaceRequiredError(p.cwd,t);return await p.restoreInstallState(),await o.scriptUtils.executeWorkspaceAccessibleBinary(d,h,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}}h.usage=s.Command.Usage({description:"run a package in a temporary environment",details:"\n      This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n      By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n      Also by default Yarn will print the full install logs when installing the given package. This behavior can be disabled by using the `-q,--quiet` flag which will instruct Yarn to only report critical errors.\n\n      Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n    ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"]]}),(0,n.gn)([s.Command.String("-p,--package")],h.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],h.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],h.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],h.prototype,"args",void 0),(0,n.gn)([s.Command.Path("dlx")],h.prototype,"execute",null);const g={commands:[A,h]}},72926:(e,t,r)=>{"use strict";r.r(t),r.d(t,{suggestUtils:()=>n,default:()=>Ke});var n={};r.r(n),r.d(n,{Modifier:()=>o,Strategy:()=>s,Target:()=>i,applyModifier:()=>b,extractDescriptorFromPath:()=>k,extractRangeModifier:()=>D,fetchDescriptorFrom:()=>F,findProjectDescriptors:()=>S,getModifier:()=>Q,getSuggestedDescriptors:()=>x});var i,o,s,A=r(27122),a=r(36370),c=r(95397),u=r(28148),l=r(62152),h=r(92659),g=r(40376),f=r(15815),p=r(84132),d=r(17278),C=r(9494),E=r.n(C),I=r(33720),m=r(46611),y=r(46009),w=r(53887),B=r.n(w);function Q(e,t){return e.exact?o.EXACT:e.caret?o.CARET:e.tilde?o.TILDE:t.configuration.get("defaultSemverRangePrefix")}!function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"}(i||(i={})),function(e){e.CARET="^",e.TILDE="~",e.EXACT=""}(o||(o={})),function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"}(s||(s={}));const v=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function D(e,{project:t}){const r=e.match(v);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function b(e,t){let{protocol:r,source:n,params:i,selector:o}=p.structUtils.parseRange(e.range);return B().valid(o)&&(o=`${t}${e.range}`),p.structUtils.makeDescriptor(e,p.structUtils.makeRange({protocol:r,source:n,params:i,selector:o}))}async function S(e,{project:t,target:r}){const n=new Map,o=e=>{let t=n.get(e.descriptorHash);return t||n.set(e.descriptorHash,t={descriptor:e,locators:[]}),t};for(const n of t.workspaces)if(r===i.PEER){const t=n.manifest.peerDependencies.get(e.identHash);void 0!==t&&o(t).locators.push(n.locator)}else{const t=n.manifest.dependencies.get(e.identHash),s=n.manifest.devDependencies.get(e.identHash);r===i.DEVELOPMENT?void 0!==s?o(s).locators.push(n.locator):void 0!==t&&o(t).locators.push(n.locator):void 0!==t?o(t).locators.push(n.locator):void 0!==s&&o(s).locators.push(n.locator)}return n}async function k(e,{cache:t,cwd:r,workspace:n}){y.y1.isAbsolute(e)||(e=y.y1.resolve(r,e));const i=n.project,o=await F(p.structUtils.makeIdent(null,"archive"),e,{project:n.project,cache:t});if(!o)throw new Error("Assertion failed: The descriptor should have been found");const s=new I.$,A=i.configuration.makeResolver(),a=i.configuration.makeFetcher(),c={checksums:i.storedChecksums,project:i,cache:t,fetcher:a,report:s,resolver:A},u=A.bindDescriptor(o,n.anchoredLocator,c),l=p.structUtils.convertDescriptorToLocator(u),h=await a.fetch(l,c),g=await m.G.find(h.prefixPath,{baseFs:h.packageFs});if(!g.name)throw new Error("Target path doesn't have a name");return p.structUtils.makeDescriptor(g.name,e)}async function x(e,{project:t,workspace:r,cache:n,target:o,modifier:A,strategies:a,maxResults:c=1/0}){if(!(c>=0))throw new Error(`Invalid maxResults (${c})`);if("unknown"!==e.range)return[{descriptor:e,reason:"Unambiguous explicit request"}];const u=null!=r&&r.manifest[o].get(e.identHash)||null,l=[];for(const h of a){if(l.length>=c)break;switch(h){case s.KEEP:if(u){const e=`Keep ${p.structUtils.prettyDescriptor(t.configuration,u)} (no changes)`;l.push({descriptor:u,reason:e})}break;case s.REUSE:for(const{descriptor:n,locators:i}of(await S(e,{project:t,target:o})).values()){if(1===i.length&&i[0].locatorHash===r.anchoredLocator.locatorHash&&a.includes(s.KEEP))continue;let e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,n)} (originally used by ${p.structUtils.prettyLocator(t.configuration,i[0])}`;e+=i.length>1?` and ${i.length-1} other${i.length>2?"s":""})`:")",l.push({descriptor:n,reason:e})}break;case s.CACHE:for(const r of t.storedDescriptors.values())if(r.identHash===e.identHash){const e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,r)} (already used somewhere in the lockfile)`;l.push({descriptor:r,reason:e})}break;case s.PROJECT:{if(null!==r.manifest.name&&e.identHash===r.manifest.name.identHash)continue;const n=t.tryWorkspaceByIdent(e);if(null===n)continue;const i=`Attach ${p.structUtils.prettyWorkspace(t.configuration,n)} (local workspace at ${n.cwd})`;l.push({descriptor:n.anchoredDescriptor,reason:i})}break;case s.LATEST:if("unknown"!==e.range){const r=`Use ${p.structUtils.prettyRange(t.configuration,e.range)} (explicit range requested)`;l.push({descriptor:e,reason:r})}else if(o===i.PEER){const t="Use * (catch-all peer dependency pattern)";l.push({descriptor:p.structUtils.makeDescriptor(e,"*"),reason:t})}else if(t.configuration.get("enableNetwork")){let r;try{r=await F(e,"latest",{project:t,cache:n,preserveModifier:!1})}catch(e){}if(r){r=b(r,A);const e=`Use ${p.structUtils.prettyDescriptor(t.configuration,r)} (resolved from latest)`;l.push({descriptor:r,reason:e})}}else{const e="Resolve from latest "+t.configuration.format("(unavailable because enableNetwork is toggled off)","grey");l.push({descriptor:null,reason:e})}}}return l.slice(0,c)}async function F(e,t,{project:r,cache:n,preserveModifier:i=!0}){const o=p.structUtils.makeDescriptor(e,t),s=new I.$,A=r.configuration.makeFetcher(),a=r.configuration.makeResolver(),c={checksums:r.storedChecksums,project:r,cache:n,fetcher:A,report:s,resolver:a};let u;try{u=await a.getCandidates(o,new Map,c)}catch(e){return null}if(0===u.length)return null;const l=u[0];let{protocol:h,source:g,params:f,selector:d}=p.structUtils.parseRange(p.structUtils.convertToManifestRange(l.reference));if(h===r.configuration.get("defaultProtocol")&&(h=null),B().valid(d)&&!1!==i){d=D("string"==typeof i?i:o.range,{project:r})+d}return p.structUtils.makeDescriptor(l,p.structUtils.makeRange({protocol:h,source:g,params:f,selector:d}))}class M extends c.BaseCommand{constructor(){super(...arguments),this.packages=[],this.json=!1,this.exact=!1,this.tilde=!1,this.caret=!1,this.dev=!1,this.peer=!1,this.optional=!1,this.preferDev=!1,this.interactive=!1,this.cached=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=[...this.interactive?[s.REUSE]:[],s.PROJECT,...this.cached?[s.CACHE]:[],s.LATEST],I=this.interactive?1/0:1,m=await Promise.all(this.packages.map(async e=>{const o=e.match(/^\.{0,2}\//)?await k(e,{cache:n,cwd:this.context.cwd,workspace:r}):p.structUtils.parseDescriptor(e),s=function(e,t,{dev:r,peer:n,preferDev:o,optional:s}){const A=e.manifest[i.REGULAR].has(t.identHash),a=e.manifest[i.DEVELOPMENT].has(t.identHash),c=e.manifest[i.PEER].has(t.identHash);if((r||n)&&A)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||o)&&s)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);return n?i.PEER:r||o?i.DEVELOPMENT:A?i.REGULAR:a?i.DEVELOPMENT:i.REGULAR}(r,o,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return[o,await x(o,{project:t,workspace:r,cache:n,target:s,modifier:a,strategies:C,maxResults:I}),s]})),y=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[n,i]of m){0===i.filter(e=>null!==e.descriptor).length&&(t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"))}});if(y.hasErrors())return y.exitCode();let w=!1;const B=[],v=[];for(const[,e,n]of m){let i;const s=e.filter(e=>null!==e.descriptor),A=s[0].descriptor,a=s.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,A));1===s.length||a?i=A:(w=!0,({answer:i}=await o({type:"list",name:"answer",message:"Which range do you want to use?",choices:e.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const c=r.manifest[n].get(i.identHash);void 0!==c&&c.descriptorHash===i.descriptorHash||(r.manifest[n].set(i.identHash,i),this.optional&&("dependencies"===n?r.manifest.ensureDependencyMeta({...i,range:"unknown"}).optional=!0:"peerDependencies"===n&&(r.manifest.ensurePeerDependencyMeta({...i,range:"unknown"}).optional=!0)),void 0===c?B.push([r,n,i,C]):v.push([r,n,c,i]))}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyAddition,B),await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),w&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}M.usage=d.Command.Usage({description:"add dependencies to the project",details:"\n      This command adds a package to the package.json for the nearest workspace.\n\n      - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n      - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n      - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n      - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n      - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `savePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n      - If the added package specifies a tag range (such as `latest` or `rc`), Yarn will resolve this tag to a semver version and use that in the resulting package.json entry (meaning that `yarn add foo@latest` will have exactly the same effect as `yarn add foo`).\n\n      If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n      If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      For a compilation of all the supported protocols, please consult the dedicated page from our website: .\n    ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]}),(0,a.gn)([d.Command.Rest()],M.prototype,"packages",void 0),(0,a.gn)([d.Command.Boolean("--json")],M.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],M.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],M.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],M.prototype,"caret",void 0),(0,a.gn)([d.Command.Boolean("-D,--dev")],M.prototype,"dev",void 0),(0,a.gn)([d.Command.Boolean("-P,--peer")],M.prototype,"peer",void 0),(0,a.gn)([d.Command.Boolean("-O,--optional")],M.prototype,"optional",void 0),(0,a.gn)([d.Command.Boolean("--prefer-dev")],M.prototype,"preferDev",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],M.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("--cached")],M.prototype,"cached",void 0),(0,a.gn)([d.Command.Path("add")],M.prototype,"execute",null);class N extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,locator:r}=await g.I.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){const n=(await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t})).get(this.name);if(!n)throw new d.UsageError(`Couldn't find a binary named "${this.name}" for package "${p.structUtils.prettyLocator(e,r)}"`);const[,i]=n;return this.context.stdout.write(i+"\n"),0}return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{const i=await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t}),o=Array.from(i.keys()).reduce((e,t)=>Math.max(e,t.length),0);for(const[e,[t,r]]of i)n.reportJson({name:e,source:p.structUtils.stringifyIdent(t),path:r});if(this.verbose)for(const[t,[r]]of i)n.reportInfo(null,`${t.padEnd(o," ")}   ${p.structUtils.prettyLocator(e,r)}`);else for(const e of i.keys())n.reportInfo(null,e)})).exitCode()}}N.usage=d.Command.Usage({description:"get the path to a binary script",details:"\n      When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the `-v,--verbose` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n      When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]}),(0,a.gn)([d.Command.String({required:!1})],N.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],N.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],N.prototype,"json",void 0),(0,a.gn)([d.Command.Path("bin")],N.prototype,"execute",null);var R=r(56537);class K extends c.BaseCommand{constructor(){super(...arguments),this.mirror=!1,this.all=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=await u.C.find(e);return(await f.P.start({configuration:e,stdout:this.context.stdout},async()=>{const e=(this.all||this.mirror)&&null!==t.mirrorCwd,r=!this.mirror;e&&await R.xfs.removePromise(t.mirrorCwd),r&&await R.xfs.removePromise(t.cwd)})).exitCode()}}K.usage=d.Command.Usage({description:"remove the shared cache files",details:"\n      This command will remove all the files from the cache.\n\n      By default only the local cache will be cleaned. This behavior can be disabled with the `--mirror`, which will lead to the removal of the global cache files instead, or `--all` (which will remove both the local and global caches for the current project).\n    ",examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]}),(0,a.gn)([d.Command.Boolean("--mirror")],K.prototype,"mirror",void 0),(0,a.gn)([d.Command.Boolean("--all")],K.prototype,"all",void 0),(0,a.gn)([d.Command.Path("cache","clean")],K.prototype,"execute",null);var L=r(44674),T=r.n(L),P=r(31669);class U extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.unsafe=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=_(e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0})),i=r?T()(n,r):n,o=await f.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async e=>{e.reportJson(i)});if(!this.json){if("string"==typeof i)return this.context.stdout.write(i+"\n"),o.exitCode();P.inspect.styles.name="cyan",this.context.stdout.write((0,P.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n")}return o.exitCode()}}function _(e){if(e instanceof Map&&(e=Object.fromEntries(e)),"object"==typeof e&&null!==e)for(const t of Object.keys(e)){const r=e[t];"object"==typeof r&&null!==r&&(e[t]=_(r))}return e}U.usage=d.Command.Usage({description:"read a configuration settings",details:"\n      This command will print a configuration setting.\n\n      Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the `--no-redacted` to get the untransformed value.\n    ",examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration","yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'"],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]}),(0,a.gn)([d.Command.String()],U.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("--json")],U.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--no-redacted")],U.prototype,"unsafe",void 0),(0,a.gn)([d.Command.Path("config","get")],U.prototype,"execute",null);var O=r(82558),j=r.n(O),Y=r(81534),G=r.n(Y);class J extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(!e.projectCwd)throw new d.UsageError("This command must be run from within a project folder");const t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=this.json?JSON.parse(this.value):this.value;await A.VK.updateConfiguration(e.projectCwd,e=>{if(r){const t=j()(e);return G()(t,this.name,n),t}return{...e,[t]:n}});const i=_((await A.VK.find(this.context.cwd,this.context.plugins)).getSpecial(t,{hideSecrets:!0,getNativePaths:!0})),o=r?T()(i,r):i;return(await f.P.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async e=>{P.inspect.styles.name="cyan",e.reportInfo(h.b.UNNAMED,`Successfully set ${this.name} to ${(0,P.inspect)(o,{depth:1/0,colors:!0,compact:!1})}`)})).exitCode()}}J.usage=d.Command.Usage({description:"change a configuration settings",details:"\n      This command will set a configuration setting.\n\n      When used without the `--json` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n      When used with the `--json` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n    ",examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",'yarn config set unsafeHttpWhitelist --json \'["*.example.com", "example.com"]\''],["Set a complex configuration setting (an Object) using the `--json` flag",'yarn config set packageExtensions --json \'{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }\'']]}),(0,a.gn)([d.Command.String()],J.prototype,"name",void 0),(0,a.gn)([d.Command.String()],J.prototype,"value",void 0),(0,a.gn)([d.Command.Boolean("--json")],J.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config","set")],J.prototype,"execute",null);class H extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.why=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins,{strict:!1});return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{if(e.invalid.size>0&&!this.json){for(const[r,n]of e.invalid)t.reportError(h.b.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${r}" in ${n}`);t.reportSeparator()}if(this.json){const r=p.miscUtils.sortMap(e.settings.keys(),e=>e);for(const n of r){const r=e.settings.get(n),i=e.getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),o=e.sources.get(n);this.verbose?t.reportJson({key:n,effective:i,source:o}):t.reportJson({key:n,effective:i,source:o,...r})}}else{const r=p.miscUtils.sortMap(e.settings.keys(),e=>e),n=r.reduce((e,t)=>Math.max(e,t.length),0),i={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){const o=r.map(t=>{const r=e.settings.get(t);if(!r)throw new Error(`Assertion failed: This settings ("${t}") should have been registered`);return[t,this.why?e.sources.get(t)||"<default>":r.description]}),s=o.reduce((e,[,t])=>Math.max(e,t.length),0);for(const[r,A]of o)t.reportInfo(null,`${r.padEnd(n," ")}   ${A.padEnd(s," ")}   ${(0,P.inspect)(e.getSpecial(r,{hideSecrets:!0,getNativePaths:!0}),i)}`)}else for(const o of r)t.reportInfo(null,`${o.padEnd(n," ")}   ${(0,P.inspect)(e.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),i)}`)}})).exitCode()}}H.usage=d.Command.Usage({description:"display the current configuration",details:"\n      This command prints the current active configuration settings.\n\n      When used together with the `-v,--verbose` option, the output will contain the settings description on top of the regular key/value information.\n\n      When used together with the `--why` flag, the output will also contain the reason why a settings is set a particular way.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      Note that the paths settings will be normalized - especially on Windows. It means that paths such as `C:\\project` will be transparently shown as `/mnt/c/project`.\n    ",examples:[["Print the active configuration settings","$0 config"]]}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],H.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--why")],H.prototype,"why",void 0),(0,a.gn)([d.Command.Boolean("--json")],H.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config")],H.prototype,"execute",null);class q extends d.Command{async execute(){const{plugins:e}=await A.VK.find(this.context.cwd,this.context.plugins),t=[];for(const r of e){const{commands:e}=r[1];if(e){const n=d.Cli.from(e).definitions();t.push([r[0],n])}}const n=this.cli.definitions(),i=r(60306)["@yarnpkg/builder"].bundles.standard;for(const e of t){const t=e[1];for(const r of t)n.find(e=>{return t=e.path,n=r.path,t.split(" ").slice(1).join()===n.split(" ").slice(1).join();var t,n}).plugin={name:e[0],isDefault:i.includes(e[0])}}this.context.stdout.write(JSON.stringify({commands:n},null,2)+"\n")}}(0,a.gn)([d.Command.Path("--clipanion=definitions")],q.prototype,"execute",null);class z extends d.Command{async execute(){this.context.stdout.write(this.cli.usage(null))}}(0,a.gn)([d.Command.Path("help"),d.Command.Path("--help"),d.Command.Path("-h")],z.prototype,"execute",null);class W extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!p.structUtils.tryParseIdent(this.leadingArgument)){const e=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}return await this.cli.run(["run",this.leadingArgument,...this.args])}}(0,a.gn)([d.Command.String()],W.prototype,"leadingArgument",void 0),(0,a.gn)([d.Command.Proxy()],W.prototype,"args",void 0);var V=r(59355);class X extends d.Command{async execute(){this.context.stdout.write((V.o||"<unknown>")+"\n")}}(0,a.gn)([d.Command.Path("-v"),d.Command.Path("--version")],X.prototype,"execute",null);class Z extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return await R.xfs.mktempPromise(async e=>{const{code:r}=await p.execUtils.pipevp(this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await p.scriptUtils.makeScriptEnv({project:t,binFolder:e})});return r})}}Z.usage=d.Command.Usage({description:"execute a shell command",details:"\n      This command simply executes a shell binary within the context of the root directory of the active workspace.\n\n      It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n    ",examples:[["Execute a shell command","$0 exec echo Hello World"]]}),(0,a.gn)([d.Command.String()],Z.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Z.prototype,"args",void 0),(0,a.gn)([d.Command.Path("exec")],Z.prototype,"execute",null);var $=r(35691),ee=r(55125);class te extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.checkCache=!1,this.silent=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);void 0!==this.inlineBuilds&&e.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});const t=!!process.env.NOW_BUILDER,r=!!process.env.NETLIFY,n=async(t,{error:r})=>{const n=await f.P.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async e=>{r?e.reportError(h.b.DEPRECATED_CLI_SETTINGS,t):e.reportWarning(h.b.DEPRECATED_CLI_SETTINGS,t)});return n.hasErrors()?n.exitCode():null};if(void 0!==this.ignoreEngines){const e=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!t});if(null!==e)return e}if(void 0!==this.registry){const e=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(null!==e)return e}if(void 0!==this.preferOffline){const e=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!t});if(null!==e)return e}if(void 0!==this.frozenLockfile){const e=await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!0});if(null!==e)return e}if(void 0!==this.cacheFolder){const e=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!r});if(null!==e)return e}const i=void 0===this.immutable&&void 0===this.frozenLockfile?e.get("enableImmutableInstalls"):this.immutable||this.frozenLockfile;if(null!==e.projectCwd){const t=await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async t=>{await async function(e,t){if(!e.projectCwd)return!1;const r=y.y1.join(e.projectCwd,e.get("lockfileFilename"));if(!await R.xfs.existsPromise(r))return!1;const n=await R.xfs.readFilePromise(r,"utf8");if(!n.includes("<<<<<<<"))return!1;if(t)throw new $.lk(h.b.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");const[i,o]=function(e){const t=[[],[]],r=e.split(/\r?\n/g);let n=!1;for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith("<<<<<<<")){for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if("======="===e){n=!1;break}n||e.startsWith("|||||||")?n=!0:t[0].push(e)}for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith(">>>>>>>"))break;t[1].push(e)}}else t[0].push(e),t[1].push(e)}return[t[0].join("\n"),t[1].join("\n")]}(n);let s,A;try{s=(0,ee.parseSyml)(i),A=(0,ee.parseSyml)(o)}catch(e){throw new $.lk(h.b.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}const a={...s,...A};for(const[e,t]of Object.entries(a))"string"==typeof t&&delete a[e];return await R.xfs.changeFilePromise(r,(0,ee.stringifySyml)(a),{automaticNewlines:!0}),!0}(e,i)&&t.reportInfo(h.b.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts 👍")});if(t.hasErrors())return t.exitCode()}const{project:o,workspace:s}=await g.I.find(e,this.context.cwd),a=await u.C.find(e,{immutable:this.immutableCache,check:this.checkCache});if(!s)throw new c.WorkspaceRequiredError(o.cwd,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async e=>{await o.install({cache:a,report:e,immutable:i})})).exitCode()}}te.usage=d.Command.Usage({description:"install the project dependencies",details:"\n      This command setup your project if needed. The installation is splitted in four different steps that each have their own characteristics:\n\n      - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n      - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where are stored the cache files).\n\n      - **Link:** Then we send the dependency tree information to internal plugins tasked from writing them on the disk in some form (for example by generating the .pnp.js file you might know).\n\n      - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another.\n\n      Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.js file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n      If the `--immutable` option is set, Yarn will abort with an error exit code if anything in the install artifacts (`yarn.lock`, `.pnp.js`, ...) was to be modified. For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n      If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n      If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n      If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]}),(0,a.gn)([d.Command.Boolean("--json")],te.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--immutable")],te.prototype,"immutable",void 0),(0,a.gn)([d.Command.Boolean("--immutable-cache")],te.prototype,"immutableCache",void 0),(0,a.gn)([d.Command.Boolean("--check-cache")],te.prototype,"checkCache",void 0),(0,a.gn)([d.Command.Boolean("--frozen-lockfile",{hidden:!0})],te.prototype,"frozenLockfile",void 0),(0,a.gn)([d.Command.Boolean("--prefer-offline",{hidden:!0})],te.prototype,"preferOffline",void 0),(0,a.gn)([d.Command.Boolean("--ignore-engines",{hidden:!0})],te.prototype,"ignoreEngines",void 0),(0,a.gn)([d.Command.String("--registry",{hidden:!0})],te.prototype,"registry",void 0),(0,a.gn)([d.Command.Boolean("--inline-builds")],te.prototype,"inlineBuilds",void 0),(0,a.gn)([d.Command.String("--cache-folder",{hidden:!0})],te.prototype,"cacheFolder",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],te.prototype,"silent",void 0),(0,a.gn)([d.Command.Path(),d.Command.Path("install")],te.prototype,"execute",null);class re extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.private=!1,this.relative=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.destination)),o=await A.VK.find(i,this.context.plugins),{project:s,workspace:a}=await g.I.find(o,i);if(!a)throw new c.WorkspaceRequiredError(s.cwd,i);const l=t.topLevelWorkspace,h=[];if(this.all){for(const e of s.workspaces)!e.manifest.name||e.manifest.private&&!this.private||h.push(e);if(0===h.length)throw new d.UsageError("No workspace found to be linked in the target project")}else{if(!a.manifest.name)throw new d.UsageError("The target workspace doesn't have a name and thus cannot be linked");if(a.manifest.private&&!this.private)throw new d.UsageError("The target workspace is marked private - use the --private flag to link it anyway");h.push(a)}for(const e of h){const r=p.structUtils.stringifyIdent(e.locator),n=this.relative?y.y1.relative(t.cwd,e.cwd):e.cwd;l.manifest.resolutions.push({pattern:{descriptor:{fullName:r}},reference:"portal:"+n})}return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}re.usage=d.Command.Usage({description:"connect the local project to another one",details:"\n      This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n\n      If the `--all` option is set, all workspaces belonging to the target project will be linked to the current one.\n\n      There is no `yarn unlink` command. To unlink the workspaces from the current project one must revert the changes made to the `resolutions` field.\n    ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]}),(0,a.gn)([d.Command.String()],re.prototype,"destination",void 0),(0,a.gn)([d.Command.Boolean("--all")],re.prototype,"all",void 0),(0,a.gn)([d.Command.Boolean("-p,--private")],re.prototype,"private",void 0),(0,a.gn)([d.Command.Boolean("-r,--relative")],re.prototype,"relative",void 0),(0,a.gn)([d.Command.Path("link")],re.prototype,"execute",null);class ne extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){return this.cli.run(["exec","node",...this.args])}}ne.usage=d.Command.Usage({description:"run node with the hook already setup",details:"\n      This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n      The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n    ",examples:[["Run a Node script","$0 node ./my-script.js"]]}),(0,a.gn)([d.Command.Proxy()],ne.prototype,"args",void 0),(0,a.gn)([d.Command.Path("node")],ne.prototype,"execute",null);var ie=r(12087),oe=r(85622),se=r.n(oe);class Ae extends c.BaseCommand{constructor(){super(...arguments),this.onlyIfNeeded=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t;if("latest"===this.version||"berry"===this.version)t="https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js";else if("classic"===this.version)t="https://nightly.yarnpkg.com/latest.js";else if(p.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))t=`https://github.com/yarnpkg/berry/raw/%40yarnpkg/cli/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else{if(!p.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))throw B().validRange(this.version)?new d.UsageError("Support for ranges got removed - please use the exact version you want to install, or 'latest' to get the latest build available"):new d.UsageError(`Invalid version descriptor "${this.version}"`);t=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`}return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{r.reportInfo(h.b.UNNAMED,"Downloading "+e.format(t,"green"));const n=await p.httpUtils.get(t,{configuration:e});await ae(e,null,n,{report:r})})).exitCode()}}async function ae(e,t,r,{report:n}){const i=e.projectCwd?e.projectCwd:e.startingCwd;null===t&&await R.xfs.mktempPromise(async e=>{const n=y.y1.join(e,"yarn.cjs");await R.xfs.writeFilePromise(n,r);const{stdout:o}=await p.execUtils.execvp(process.execPath,[y.cS.fromPortablePath(n),"--version"],{cwd:i,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(t=o.trim(),!B().valid(t))throw new Error("Invalid semver version")});const o=y.y1.resolve(i,".yarn/releases"),s=y.y1.resolve(o,`yarn-${t}.cjs`),a=y.y1.relative(e.startingCwd,s),c=y.y1.relative(i,s),u=e.get("yarnPath"),l=null===u||u.startsWith(o+"/");n.reportInfo(h.b.UNNAMED,"Saving the new release in "+e.format(a,"magenta")),await R.xfs.removePromise(y.y1.dirname(s)),await R.xfs.mkdirpPromise(y.y1.dirname(s)),await R.xfs.writeFilePromise(s,r),await R.xfs.chmodPromise(s,493),l&&await A.VK.updateConfiguration(i,{yarnPath:c})}Ae.usage=d.Command.Usage({description:"lock the Yarn version used by the project",details:"\n      This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n      A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n    ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"]]}),(0,a.gn)([d.Command.Boolean("--only-if-needed")],Ae.prototype,"onlyIfNeeded",void 0),(0,a.gn)([d.Command.String()],Ae.prototype,"version",void 0),(0,a.gn)([d.Command.Path("policies","set-version"),d.Command.Path("set","version")],Ae.prototype,"execute",null);const ce=/^[0-9]+$/;function ue(e){return ce.test(e)?`pull/${e}/head`:e}class le extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.plugins=[],this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh bundle"),r.reportSeparator(),await he((({plugins:e,noMinify:t},r)=>[["yarn","build:cli",...(new Array).concat(...e.map(e=>["--plugin",se().resolve(r,e)])),...t?["--no-minify"]:[],"|"]])(this,t),{configuration:e,context:this.context,target:t}),r.reportSeparator();const n=y.y1.resolve(t,"packages/yarnpkg-cli/bundles/yarn.js"),i=await R.xfs.readFilePromise(n);await ae(e,"sources",i,{report:r})})).exitCode()}}async function he(e,{configuration:t,context:r,target:n}){for(const[i,...o]of e){const e="|"===o[o.length-1];if(e&&o.pop(),e)await p.execUtils.pipevp(i,o,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(t.format("  $ "+[i,...o].join(" "),"grey")+"\n");try{await p.execUtils.execvp(i,o,{cwd:n,strict:!0})}catch(e){throw r.stdout.write(e.stdout||e.stack),e}}}}async function ge(e,{configuration:t,report:r,target:n}){let i=!1;if(!e.force&&R.xfs.existsSync(y.y1.join(n,".git"))){r.reportInfo(h.b.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await he((({branch:e})=>[["git","fetch","origin",ue(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]])(e),{configuration:t,context:e.context,target:n}),i=!0}catch(e){r.reportSeparator(),r.reportWarning(h.b.UNNAMED,"Repository update failed; we'll try to regenerate it")}}i||(r.reportInfo(h.b.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await R.xfs.removePromise(n),await R.xfs.mkdirpPromise(n),await he((({repository:e,branch:t},r)=>[["git","init",y.cS.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin",ue(t)],["git","reset","--hard","FETCH_HEAD"]])(e,n),{configuration:t,context:e.context,target:n}))}le.usage=d.Command.Usage({description:"build Yarn from master",details:"\n      This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n    ",examples:[["Build Yarn from master","$0 set version from sources"]]}),(0,a.gn)([d.Command.String("--path")],le.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],le.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],le.prototype,"branch",void 0),(0,a.gn)([d.Command.Array("--plugin")],le.prototype,"plugins",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],le.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],le.prototype,"force",void 0),(0,a.gn)([d.Command.Path("set","version","from","sources")],le.prototype,"execute",null);var fe=r(92184);async function pe(e){const t=await p.httpUtils.get("https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml",{configuration:e});return(0,ee.parseSyml)(t.toString())}class de extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{const r=await pe(e);for(const[e,{experimental:n,...i}]of Object.entries(r)){let r=e;n&&(r+=" [experimental]"),t.reportJson({name:e,experimental:n,...i}),t.reportInfo(null,r)}})).exitCode()}}de.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n      This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n    ",examples:[["List the official plugins","$0 plugin list"]]}),(0,a.gn)([d.Command.Boolean("--json")],de.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","list")],de.prototype,"execute",null);class Ce extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const{project:r}=await g.I.find(e,this.context.cwd);let n,i;if(this.name.match(/^\.{0,2}[\\/]/)||y.cS.isAbsolute(this.name)){const o=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.name));t.reportInfo(h.b.UNNAMED,"Reading "+e.format(o,"green")),n=y.y1.relative(r.cwd,o),i=await R.xfs.readFilePromise(o)}else{let r;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch(e){throw new $.lk(h.b.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}n=this.name,r=this.name}else{const t=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),i=p.structUtils.stringifyIdent(t),o=await pe(e);if(!Object.prototype.hasOwnProperty.call(o,i))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${i}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);n=i,r=o[i].url}t.reportInfo(h.b.UNNAMED,"Downloading "+e.format(r,"green")),i=await p.httpUtils.get(r,{configuration:e})}await Ee(n,i,{project:r,report:t})})).exitCode()}}async function Ee(e,t,{project:r,report:n}){const{configuration:i}=r,o={},s={exports:o};(0,fe.runInNewContext)(t.toString(),{module:s,exports:o});const a=s.exports.name,c=`.yarn/plugins/${a}.cjs`,u=y.y1.resolve(r.cwd,c);n.reportInfo(h.b.UNNAMED,"Saving the new plugin in "+i.format(c,"magenta")),await R.xfs.mkdirpPromise(y.y1.dirname(u)),await R.xfs.writeFilePromise(u,t);const l={path:c,spec:e};await A.VK.updateConfiguration(r.cwd,e=>{const t=[];let n=!1;for(const i of e.plugins||[]){const e="string"!=typeof i?i.path:i,o=y.y1.resolve(r.cwd,y.cS.toPortablePath(e)),{name:s}=p.miscUtils.dynamicRequire(y.cS.fromPortablePath(o));s!==a?t.push(i):(t.push(l),n=!0)}return n||t.push(l),{plugins:t}})}Ce.usage=d.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:"\n      This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n      Three types of plugin references are accepted:\n\n      - If the plugin is stored within the Yarn repository, it can be referenced by name.\n      - Third-party plugins can be referenced directly through their public urls.\n      - Local plugins can be referenced by their path on the disk.\n\n      Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the `@yarnpkg/builder` package).\n    ",examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]}),(0,a.gn)([d.Command.String()],Ce.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","import")],Ce.prototype,"execute",null);class Ie extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const{project:n}=await g.I.find(e,this.context.cwd),i=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),o=p.structUtils.stringifyIdent(i),s=await pe(e);if(!Object.prototype.hasOwnProperty.call(s,o))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${o}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);const A=o,a=A.replace(/@yarnpkg\//,"");await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh "+a),r.reportSeparator(),await he((({pluginName:e,noMinify:t},r)=>[["yarn","build:"+e,...t?["--no-minify"]:[],"|"]])({pluginName:a,noMinify:this.noMinify}),{configuration:e,context:this.context,target:t}),r.reportSeparator();const c=y.y1.resolve(t,`packages/${a}/bundles/${A}.js`),u=await R.xfs.readFilePromise(c);await Ee(A,u,{project:n,report:r})})).exitCode()}}Ie.usage=d.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:"\n      This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n      The plugins can be referenced by their short name if sourced from the official Yarn repository.\n    ",examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]}),(0,a.gn)([d.Command.String()],Ie.prototype,"name",void 0),(0,a.gn)([d.Command.String("--path")],Ie.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],Ie.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],Ie.prototype,"branch",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],Ie.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],Ie.prototype,"force",void 0),(0,a.gn)([d.Command.Path("plugin","import","from","sources")],Ie.prototype,"execute",null);class me extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const n=this.name,i=p.structUtils.parseIdent(n);if(!e.plugins.has(n))throw new d.UsageError(p.structUtils.prettyIdent(e,i)+" isn't referenced by the current configuration");const o=`.yarn/plugins/${n}.cjs`,s=y.y1.resolve(t.cwd,o);R.xfs.existsSync(s)&&(r.reportInfo(h.b.UNNAMED,`Removing ${e.format(o,A.a5.PATH)}...`),await R.xfs.removePromise(s)),r.reportInfo(h.b.UNNAMED,"Updating the configuration..."),await A.VK.updateConfiguration(t.cwd,e=>{if(!Array.isArray(e.plugins))return{};return{plugins:e.plugins.filter(e=>e.path!==o)}})})).exitCode()}}me.usage=d.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:"\n      This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n      **Note:** The plugins have to be referenced by their name property, which can be obtained using the `yarn plugin runtime` command. Shorthands are not allowed.\n   ",examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]}),(0,a.gn)([d.Command.String()],me.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","remove")],me.prototype,"execute",null);class ye extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{for(const r of e.plugins.keys()){const e=this.context.plugins.plugins.has(r);let n=r;e&&(n+=" [builtin]"),t.reportJson({name:r,builtin:e}),t.reportInfo(null,""+n)}})).exitCode()}}ye.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:"\n      This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n    ",examples:[["List the currently active plugins","$0 plugin runtime"]]}),(0,a.gn)([d.Command.Boolean("--json")],ye.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","runtime")],ye.prototype,"execute",null);class we extends c.BaseCommand{constructor(){super(...arguments),this.idents=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=new Set;for(const e of this.idents)i.add(p.structUtils.parseIdent(e).identHash);await t.resolveEverything({cache:n,report:new I.$});const o=e.get("bstatePath"),s=R.xfs.existsSync(o)?(0,ee.parseSyml)(await R.xfs.readFilePromise(o,"utf8")):{},a=new Map;for(const e of t.storedPackages.values()){if(!Object.prototype.hasOwnProperty.call(s,e.locatorHash))continue;if(0===i.size||i.has(e.identHash))continue;const t=s[e.locatorHash];a.set(e.locatorHash,t)}if(a.size>0){const r=e.get("bstatePath"),n=g.I.generateBuildStateFile(a,t.storedPackages);await R.xfs.mkdirpPromise(y.y1.dirname(r)),await R.xfs.changeFilePromise(r,n,{automaticNewlines:!0})}else await R.xfs.removePromise(o);return(await f.P.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}we.usage=d.Command.Usage({description:"rebuild the project's native packages",details:"\n      This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n      Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n      By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n    ",examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]}),(0,a.gn)([d.Command.Rest()],we.prototype,"idents",void 0),(0,a.gn)([d.Command.Path("rebuild")],we.prototype,"execute",null);var Be=r(2401),Qe=r.n(Be);class ve extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.patterns=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=this.all?t.workspaces:[r],s=[i.REGULAR,i.DEVELOPMENT,i.PEER],a=[];let l=!1;const h=[];for(const e of this.patterns){let t=!1;const r=p.structUtils.parseIdent(e);for(const n of o){const i=[...n.manifest.peerDependenciesMeta.keys()];for(const r of Qe()(i,e))n.manifest.peerDependenciesMeta.delete(r),l=!0,t=!0;for(const e of s){const i=n.manifest.getForScope(e),o=[...i.values()].map(e=>p.structUtils.stringifyIdent(e));for(const s of Qe()(o,p.structUtils.stringifyIdent(r))){const{identHash:r}=p.structUtils.parseIdent(s),o=i.get(r);if(void 0===o)throw new Error("Assertion failed: Expected the descriptor to be registered");n.manifest[e].delete(r),h.push([n,e,o]),l=!0,t=!0}}}t||a.push(e)}const C=a.length>1?"Patterns":"Pattern",E=a.length>1?"don't":"doesn't",I=this.all?"any":"this";if(a.length>0)throw new d.UsageError(`${C} ${a.join(", ")} ${E} match packages referenced by ${I} workspace`);if(l){await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyRemoval,h);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}return 0}}ve.usage=d.Command.Usage({description:"remove dependencies from the project",details:"\n      This command will remove the packages matching the specified patterns from the current workspace.\n\n      If the `-A,--all` option is set, the operation will be applied to all workspaces from the current project.\n\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n    ",examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]}),(0,a.gn)([d.Command.Boolean("-A,--all")],ve.prototype,"all",void 0),(0,a.gn)([d.Command.Rest()],ve.prototype,"patterns",void 0),(0,a.gn)([d.Command.Path("remove")],ve.prototype,"execute",null);class De extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const n=r.manifest.scripts,i=p.miscUtils.sortMap(n.keys(),e=>e),o={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},s=i.reduce((e,t)=>Math.max(e,t.length),0);for(const[e,r]of n.entries())t.reportInfo(null,`${e.padEnd(s," ")}   ${(0,P.inspect)(r,o)}`)})).exitCode()}}(0,a.gn)([d.Command.Path("run")],De.prototype,"execute",null);const be=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["interactive-tools",[["upgrade-interactive"]]],["stage",[["stage"]]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","foreach"],["workspace"]]]]);class Se extends c.BaseCommand{constructor(){super(...arguments),this.inspect=!1,this.inspectBrk=!1,this.topLevel=!1,this.binariesOnly=!1,this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r,locator:n}=await g.I.find(e,this.context.cwd);await t.restoreInstallState();const i=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await p.scriptUtils.hasPackageScript(i,this.scriptName,{project:t}))return await p.scriptUtils.executePackageScript(i,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if((await p.scriptUtils.getPackageAccessibleBinaries(i,{project:t})).get(this.scriptName)){const e=[];return this.inspect&&("string"==typeof this.inspect?e.push("--inspect="+this.inspect):e.push("--inspect")),this.inspectBrk&&("string"==typeof this.inspectBrk?e.push("--inspect-brk="+this.inspectBrk):e.push("--inspect-brk")),await p.scriptUtils.executePackageAccessibleBinary(i,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:e})}if(!this.topLevel&&!this.binariesOnly&&r&&this.scriptName.includes(":")){const e=(await Promise.all(t.workspaces.map(async e=>e.manifest.scripts.has(this.scriptName)?e:null))).filter(e=>null!==e);if(1===e.length)return await p.scriptUtils.executeWorkspaceScript(e[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw"node-gyp"===this.scriptName?new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}).`);{if("global"===this.scriptName)throw new d.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");const e=[this.scriptName].concat(this.args);for(const[t,r]of be)for(const n of r)if(e.length>=n.length&&JSON.stringify(e.slice(0,n.length))===JSON.stringify(n))throw new d.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${t} plugin. You can install it with "yarn plugin import ${t}".`);throw new d.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}}Se.usage=d.Command.Usage({description:"run a script defined in the package.json",details:"\n      This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n      - If the `scripts` field from your local package.json contains a matching script name, its definition will get executed.\n\n      - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed (the `--inspect` and `--inspect-brk` options will then be forwarded to the underlying Node process).\n\n      - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n      Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n    ",examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]}),(0,a.gn)([d.Command.String("--inspect",{tolerateBoolean:!0})],Se.prototype,"inspect",void 0),(0,a.gn)([d.Command.String("--inspect-brk",{tolerateBoolean:!0})],Se.prototype,"inspectBrk",void 0),(0,a.gn)([d.Command.Boolean("-T,--top-level",{hidden:!0})],Se.prototype,"topLevel",void 0),(0,a.gn)([d.Command.Boolean("-B,--binaries-only",{hidden:!0})],Se.prototype,"binariesOnly",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],Se.prototype,"silent",void 0),(0,a.gn)([d.Command.String()],Se.prototype,"scriptName",void 0),(0,a.gn)([d.Command.Proxy()],Se.prototype,"args",void 0),(0,a.gn)([d.Command.Path("run")],Se.prototype,"execute",null);class ke extends c.BaseCommand{constructor(){super(...arguments),this.save=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=p.structUtils.parseDescriptor(this.descriptor,!0),o=p.structUtils.makeDescriptor(i,this.resolution);t.storedDescriptors.set(i.descriptorHash,i),t.storedDescriptors.set(o.descriptorHash,o),t.resolutionAliases.set(i.descriptorHash,o.descriptorHash);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}ke.usage=d.Command.Usage({description:"enforce a package resolution",details:'\n      This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n      Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n      Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n    ',examples:[["Force all instances of lodash@^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@^1.2.3 1.5.0"]]}),(0,a.gn)([d.Command.String()],ke.prototype,"descriptor",void 0),(0,a.gn)([d.Command.String()],ke.prototype,"resolution",void 0),(0,a.gn)([d.Command.Boolean("-s,--save")],ke.prototype,"save",void 0),(0,a.gn)([d.Command.Path("set","resolution")],ke.prototype,"execute",null);class xe extends c.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.interactive=!1,this.verbose=!1,this.exact=!1,this.tilde=!1,this.caret=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=this.interactive?[s.KEEP,s.REUSE,s.PROJECT,s.LATEST]:[s.PROJECT,s.LATEST],I=[],m=[];for(const e of this.patterns){let r=!1;const o=p.structUtils.parseDescriptor(e);for(const e of t.workspaces)for(const s of[i.REGULAR,i.DEVELOPMENT]){const i=[...e.manifest.getForScope(s).values()].map(e=>p.structUtils.stringifyIdent(e));for(const A of Qe()(i,p.structUtils.stringifyIdent(o))){const i=p.structUtils.parseIdent(A),c=e.manifest[s].get(i.identHash);if(void 0===c)throw new Error("Assertion failed: Expected the descriptor to be registered");const u=p.structUtils.makeDescriptor(i,o.range);I.push(Promise.resolve().then(async()=>[e,s,c,await x(u,{project:t,workspace:e,cache:n,target:s,modifier:a,strategies:C})])),r=!0}}r||m.push(e)}if(m.length>1)throw new d.UsageError(`Patterns ${m.join(", ")} don't match any packages referenced by any workspace`);if(m.length>0)throw new d.UsageError(`Pattern ${m[0]} doesn't match any packages referenced by any workspace`);const y=await Promise.all(I),w=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[,,n,i]of y){const o=i.filter(e=>null!==e.descriptor);0===o.length?t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"):o.length>1&&!this.interactive&&r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" has multiple possible upgrade strategies; use -i to disambiguate manually")}});if(w.hasErrors())return w.exitCode();let B=!1;const v=[];for(const[r,n,,i]of y){let s;const A=i.filter(e=>null!==e.descriptor),a=A[0].descriptor,c=A.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,a));1===A.length||c?s=a:(B=!0,({answer:s}=await o({type:"list",name:"answer",message:`Which range to you want to use in ${p.structUtils.prettyWorkspace(e,r)} ❯ ${n}?`,choices:i.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const u=r.manifest[n].get(s.identHash);if(void 0===u)throw new Error("Assertion failed: This descriptor should have a matching entry");if(u.descriptorHash!==s.descriptorHash)r.manifest[n].set(s.identHash,s),v.push([r,n,u,s]);else{const n=e.makeResolver(),i={project:t,resolver:n},o=n.bindDescriptor(u,r.anchoredLocator,i);t.forgetResolution(o)}}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),B&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}xe.usage=d.Command.Usage({description:"upgrade dependencies across the project",details:"\n      This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n      If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n      The, `-C,--caret`, `-E,--exact` and  `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n      This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n      **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n    ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),(0,a.gn)([d.Command.Rest()],xe.prototype,"patterns",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],xe.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],xe.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],xe.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],xe.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],xe.prototype,"caret",void 0),(0,a.gn)([d.Command.Path("up")],xe.prototype,"execute",null);var Fe=r(94682);class Me extends c.BaseCommand{constructor(){super(...arguments),this.recursive=!1,this.peers=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const n=p.structUtils.parseIdent(this.package).identHash,i=this.recursive?function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.workspaces,e=>p.structUtils.stringifyLocator(e.anchoredLocator)),o=new Set,s=new Set,A=r=>{if(o.has(r.locatorHash))return s.has(r.locatorHash);if(o.add(r.locatorHash),r.identHash===t)return s.add(r.locatorHash),!0;let i=!1;r.identHash===t&&(i=!0);for(const t of r.dependencies.values()){if(!n&&r.peerDependencies.has(t.identHash))continue;const o=e.storedResolutions.get(t.descriptorHash);if(!o)throw new Error("Assertion failed: The resolution should have been registered");const s=e.storedPackages.get(o);if(!s)throw new Error("Assertion failed: The package should have been registered");A(s)&&(i=!0)}return i&&s.add(r.locatorHash),i};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");A(r)}const a=new Set,c={},u=(t,i,o)=>{if(!s.has(t.locatorHash))return;const A={};if(i[null!==o?`${p.structUtils.prettyLocator(r,t)} (via ${p.structUtils.prettyRange(r,o)})`:""+p.structUtils.prettyLocator(r,t)]=A,!a.has(t.locatorHash)&&(a.add(t.locatorHash),null===o||!e.tryWorkspaceByLocator(t)))for(const r of t.dependencies.values()){if(!n&&t.peerDependencies.has(r.identHash))continue;const i=e.storedResolutions.get(r.descriptorHash);if(!i)throw new Error("Assertion failed: The resolution should have been registered");const o=e.storedPackages.get(i);if(!o)throw new Error("Assertion failed: The package should have been registered");u(o,A,r.range)}};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");u(r,c,null)}return c}(t,n,{configuration:e,peers:this.peers}):function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.storedPackages.values(),e=>p.structUtils.stringifyLocator(e)),o={};for(const s of i){let i=null;for(const A of s.dependencies.values()){if(!n&&s.peerDependencies.has(A.identHash))continue;const a=e.storedResolutions.get(A.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");const c=e.storedPackages.get(a);if(!c)throw new Error("Assertion failed: The package should have been registered");if(c.identHash!==t)continue;if(null===i){i={};const e=""+p.structUtils.prettyLocator(r,s);o[e]=i}const u=`${p.structUtils.prettyLocator(r,c)} (via ${p.structUtils.prettyRange(r,A.range)})`;i[u]={}}}return o}(t,n,{configuration:e,peers:this.peers});!function(e,t){let r=(0,Fe.asTree)(t,!1,!1);r=r.replace(/^([├└]─)/gm,"│\n$1").replace(/^│\n/,""),e.write(r)}(this.context.stdout,i)}}Me.usage=d.Command.Usage({description:"display the reason why a package is needed",details:'\n      This command prints the exact reasons why a package appears in the dependency tree.\n\n      If `-R,--recursive` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.\n\n      If `--peers` is set, the command will also print the peer dependencies that match the specified name.\n    ',examples:[["Explain why lodash is used in your project","$0 why lodash"]]}),(0,a.gn)([d.Command.String()],Me.prototype,"package",void 0),(0,a.gn)([d.Command.Boolean("-R,--recursive")],Me.prototype,"recursive",void 0),(0,a.gn)([d.Command.Boolean("--peers")],Me.prototype,"peers",void 0),(0,a.gn)([d.Command.Path("why")],Me.prototype,"execute",null);class Ne extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async e=>{for(const r of t.workspaces){const{manifest:n}=r;let i;if(this.verbose){const e=new Set,r=new Set;for(const i of m.G.hardDependencies)for(const[o,s]of n.getForScope(i)){const n=t.tryWorkspaceByDescriptor(s);null===n?t.workspacesByIdent.has(o)&&r.add(s):e.add(n)}i={workspaceDependencies:Array.from(e).map(e=>e.relativeCwd),mismatchedWorkspaceDependencies:Array.from(r).map(e=>p.structUtils.stringifyDescriptor(e))}}e.reportInfo(null,""+r.relativeCwd),e.reportJson({location:r.relativeCwd,name:n.name?p.structUtils.stringifyIdent(n.name):null,...i})}})).exitCode()}}Ne.usage=d.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n      This command will print the list of all workspaces in the project. If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    "}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],Ne.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],Ne.prototype,"json",void 0),(0,a.gn)([d.Command.Path("workspaces","list")],Ne.prototype,"execute",null);class Re extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const n=t.workspaces,i=new Map(n.map(e=>{const t=p.structUtils.convertToIdent(e.locator);return[p.structUtils.stringifyIdent(t),e]})),o=i.get(this.workspaceName);if(void 0===o){const e=Array.from(i.keys()).sort();throw new d.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n  - ${e.join("\n  - ")}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}}Re.usage=d.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:"\n      This command will run a given sub-command on a single workspace.\n    ",examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]}),(0,a.gn)([d.Command.String()],Re.prototype,"workspaceName",void 0),(0,a.gn)([d.Command.String()],Re.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Re.prototype,"args",void 0),(0,a.gn)([d.Command.Path("workspace")],Re.prototype,"execute",null);const Ke={configuration:{enableImmutableInstalls:{description:"If true, prevents the install command from modifying the lockfile",type:A.a2.BOOLEAN,default:!1},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:A.a2.STRING,default:o.CARET}},commands:[K,U,J,ke,le,Ae,Ne,q,z,W,X,M,N,H,Z,te,re,ne,Ie,Ce,me,de,ye,we,ve,De,Se,xe,Me,Re]}},41466:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132),i=r(46009),o=r(75448);const s=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,A=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;var a=r(46611),c=r(32485);const u={fetchers:[class{supports(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s),l=await c.readFilePromise(u);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1}),a.releaseFs)}},class{supports(e,t){return!!e.reference.startsWith("file:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.makeArchiveFromDirectory(u,{baseFs:c,prefixPath:n.structUtils.getIdentVendorPath(e),compressionLevel:t.project.configuration.get("compressionLevel")}),a.releaseFs)}}],resolvers:[class{supportsDescriptor(e,t){return!!A.test(e.range)&&(!!e.range.startsWith("file:")||!!s.test(e.range))}supportsLocator(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}},class{supportsDescriptor(e,t){return!!e.range.match(s)||!!e.range.startsWith("file:")}supportsLocator(e,t){return!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},10284:(e,t,r)=>{"use strict";r.r(t),r.d(t,{gitUtils:()=>n,default:()=>B});var n={};r.r(n),r.d(n,{TreeishProtocols:()=>g,clone:()=>m,isGitUrl:()=>f,lsRemote:()=>E,normalizeLocator:()=>C,normalizeRepoUrl:()=>d,resolveUrl:()=>I,splitRepoUrl:()=>p});var i=r(84132),o=r(46009),s=r(56537),A=r(71191),a=r.n(A),c=r(53887),u=r.n(c);function l(){return{...process.env,GIT_SSH_COMMAND:"ssh -o BatchMode=yes"}}const h=[/^ssh:/,/^git(?:\+ssh)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^(?:git\+)https?:[^#]+\/[^#]+(?:\.git)?(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/];var g;function f(e){return!!e&&h.some(t=>!!e.match(t))}function p(e){const t=(e=d(e)).indexOf("#");if(-1===t)return{repo:e,treeish:{protocol:g.Head,request:"master"},extra:{}};const r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){const e=a().parse(n);for(const[t,r]of Object.entries(e))if("string"!=typeof r)throw new Error(`Assertion failed: The ${t} parameter must be a literal string`);const t=Object.values(g).find(t=>Object.prototype.hasOwnProperty.call(e,t));let i,o;void 0!==t?(i=t,o=e[t]):(i=g.Head,o="master");for(const t of Object.values(g))delete e[t];return{repo:r,treeish:{protocol:i,request:o},extra:e}}{const e=n.indexOf(":");let t,i;return-1===e?(t=null,i=n):(t=n.slice(0,e),i=n.slice(e+1)),{repo:r,treeish:{protocol:t,request:i},extra:{}}}}function d(e){return e=(e=(e=e.replace(/^git\+https:/,"https:")).replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3")).replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3")}function C(e){return i.structUtils.makeLocator(e,d(e.reference))}async function E(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);let r;try{r=await i.execUtils.execvp("git",["ls-remote","--refs",d(e)],{cwd:t.startingCwd,env:l(),strict:!0})}catch(t){throw t.message=`Listing the refs for ${e} failed`,t}const n=new Map,o=/^([a-f0-9]{40})\t(refs\/[^\n]+)/gm;let s;for(;null!==(s=o.exec(r.stdout));)n.set(s[2],s[1]);return n}async function I(e,t){const{repo:r,treeish:{protocol:n,request:i},extra:o}=p(e),s=await E(r,t),A=(e,t)=>{switch(e){case g.Commit:if(!t.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return a().stringify({...o,commit:t});case g.Head:{const e=s.get("refs/heads/"+t);if(void 0===e)throw new Error(`Unknown head ("${t}")`);return a().stringify({...o,commit:e})}case g.Tag:{const e=s.get("refs/tags/"+t);if(void 0===e)throw new Error(`Unknown tag ("${t}")`);return a().stringify({...o,commit:e})}case g.Semver:{if(!u().validRange(t))throw new Error(`Invalid range ("${t}")`);const e=new Map([...s.entries()].filter(([e])=>e.startsWith("refs/tags/")).map(([e,t])=>[u().parse(e.slice(10)),t]).filter(e=>null!==e[0])),r=u().maxSatisfying([...e.keys()],t);if(null===r)throw new Error(`No matching range ("${t}")`);return a().stringify({...o,commit:e.get(r)})}case null:{let e;if(null!==(e=c(g.Commit,t)))return e;if(null!==(e=c(g.Tag,t)))return e;if(null!==(e=c(g.Head,t)))return e;throw t.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${e}")`)}},c=(e,t)=>{try{return A(e,t)}catch(e){return null}};return`${r}#${A(n,i)}`}async function m(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);const{repo:r,treeish:{protocol:n,request:A}}=p(e);if("commit"!==n)throw new Error("Invalid treeish protocol when cloning");const a=await s.xfs.mktempPromise(),c={cwd:a,env:l(),strict:!0};try{await i.execUtils.execvp("git",["clone","-c core.autocrlf=false",""+d(r),o.cS.fromPortablePath(a)],c),await i.execUtils.execvp("git",["checkout",""+A],c)}catch(e){throw e.message="Repository clone failed: "+e.message,e}return a}!function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"}(g||(g={}));var y=r(32485),w=r(46611);const B={fetchers:[class{supports(e,t){return f(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,n=C(e),o=new Map(t.checksums);o.set(n.locatorHash,r);const s={...t,checksums:o},A=await this.downloadHosted(n,s);if(null!==A)return A;const[a,c,u]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote repository"),loader:()=>this.cloneFromRemote(n,s),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:a,releaseFs:c,prefixPath:i.structUtils.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(e=>e.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){const r=await m(e.reference,t.project.configuration),n=p(e.reference),A=o.y1.join(r,"package.tgz");await i.scriptUtils.prepareExternalProject(r,A,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace});const a=await s.xfs.readFilePromise(A);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.convertToZip(a,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:i.structUtils.getIdentVendorPath(e),stripComponents:1}))}}],resolvers:[class{supportsDescriptor(e,t){return f(e.range)}supportsLocator(e,t){return f(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=await I(e.range,r.project.configuration);return[i.structUtils.makeLocator(e,n)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await w.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:y.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]}},23599:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var n=r(84132),i=r(56537),o=r(75448),s=r(46009),A=r(10284),a=r(71191),c=r.n(a);const u=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];class l{supports(e,t){return!(!(r=e.reference)||!u.some(e=>!!r.match(e)));var r}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from GitHub"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await i.xfs.mktempPromise(async a=>{const c=new o.M(a);await n.tgzUtils.extractArchiveTo(r,c,{stripComponents:1});const u=A.gitUtils.splitRepoUrl(e.reference),l=s.y1.join(a,"package.tgz");await n.scriptUtils.prepareExternalProject(a,l,{configuration:t.project.configuration,report:t.report,workspace:u.extra.workspace});const h=await i.xfs.readFilePromise(l);return await n.tgzUtils.convertToZip(h,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){const{auth:r,username:n,reponame:i,treeish:o}=function(e){let t;for(const r of u)if(t=e.match(r),t)break;if(!t)throw new Error(`Input cannot be parsed as a valid GitHub URL ('${e}').`);let[,r,n,i,o="master"]=t;const{commit:s}=c().parse(o);return o=s||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:i,treeish:o}}(e.reference);return`https://${r?r+"@":""}github.com/${n}/${i}/archive/${o}.tar.gz`}}const h={hooks:{async fetchHostedRepository(e,t,r){if(null!==e)return e;const n=new l;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch(e){return null}}}}},21754:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=r(84132);const i=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,o=/^https?:/;var s=r(46611),A=r(32485);const a={fetchers:[class{supports(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(e.reference,{configuration:t.project.configuration});return await n.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})}}],resolvers:[class{supportsDescriptor(e,t){return!!i.test(e.range)&&!!o.test(e.range)}supportsLocator(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[n.structUtils.convertDescriptorToLocator(e)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await s.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:A.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},74230:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p});var n=r(27122),i=r(36370),o=r(95397),s=r(46611),A=r(40376),a=r(84132),c=r(56537),u=r(46009),l=r(17278),h=r(7564),g=r(31669);class f extends o.BaseCommand{constructor(){super(...arguments),this.usev2=!1,this.assumeFreshProject=!1,this.yes=!1,this.private=!1,this.workspace=!1,this.install=!1}async execute(){if(c.xfs.existsSync(u.y1.join(this.context.cwd,s.G.fileName)))throw new l.UsageError("A package.json already exists in the specified directory");const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.install?!0===this.install?"latest":this.install:null;return null!==t?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(null!==e.get("yarnPath"))throw new l.UsageError(`Cannot use the --install flag when the current directory already uses yarnPath (from ${e.sources.get("yarnPath")})`);if(null!==e.projectCwd)throw new l.UsageError("Cannot use the --install flag when the current directory is already part of a project");c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=u.y1.join(this.context.cwd,e.get("lockfileFilename"));c.xfs.existsSync(r)||await c.xfs.writeFilePromise(r,"");const n=await this.cli.run(["set","version",t]);if(0!==n)return n;this.context.stdout.write("\n");const i=["--assume-fresh-project"];return this.private&&i.push("-p"),this.workspace&&i.push("-w"),this.yes&&i.push("-y"),await c.xfs.mktempPromise(async e=>{const{code:t}=await a.execUtils.pipevp("yarn",["init",...i],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await a.scriptUtils.makeScriptEnv({binFolder:e})});return t})}async executeRegular(e){let t=null;if(!this.assumeFreshProject)try{t=await A.I.find(e,this.context.cwd)}catch(e){t=null}c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=new s.G,n=Object.fromEntries(e.get("initFields").entries());r.load(n),r.name=a.structUtils.makeIdent(e.get("initScope"),u.y1.basename(this.context.cwd)),r.version=e.get("initVersion"),r.private=this.private||this.workspace,r.license=e.get("initLicense"),this.workspace&&(await c.xfs.mkdirpPromise(u.y1.join(this.context.cwd,"packages")),r.workspaceDefinitions=[{pattern:"packages/*"}]);const i={};r.exportTo(i),g.inspect.styles.name="cyan",this.context.stdout.write((0,g.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n");const o=u.y1.join(this.context.cwd,s.G.fileName);await c.xfs.changeFilePromise(o,JSON.stringify(i,null,2)+"\n");const l=u.y1.join(this.context.cwd,"README.md");if(c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,`# ${a.structUtils.stringifyIdent(r.name)}\n`),!t){const t=u.y1.join(this.context.cwd,u.QS.lockfile);await c.xfs.writeFilePromise(t,"");const r=["/.yarn/** linguist-vendored"].map(e=>e+"\n").join(""),n=u.y1.join(this.context.cwd,".gitattributes");c.xfs.existsSync(n)||await c.xfs.writeFilePromise(n,r);const i=["/.yarn/*","!/.yarn/releases","!/.yarn/plugins","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(e=>e+"\n").join(""),o=u.y1.join(this.context.cwd,".gitignore");c.xfs.existsSync(o)||await c.xfs.writeFilePromise(o,i);const s={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,.yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,h.merge)(s,e.get("initEditorConfig"));let A="root = true\n";for(const[e,t]of Object.entries(s)){A+=`\n[${e}]\n`;for(const[e,r]of Object.entries(t)){A+=`${e.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())} = ${r}\n`}}const l=u.y1.join(this.context.cwd,".editorconfig");c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,A),await a.execUtils.execvp("git",["init"],{cwd:this.context.cwd})}}}f.usage=l.Command.Usage({description:"create a new package",details:"\n      This command will setup a new package in your local directory.\n\n      If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n      If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n      If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n      The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n    ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]}),(0,i.gn)([l.Command.Boolean("-2",{hidden:!0})],f.prototype,"usev2",void 0),(0,i.gn)([l.Command.Boolean("--assume-fresh-project",{hidden:!0})],f.prototype,"assumeFreshProject",void 0),(0,i.gn)([l.Command.Boolean("-y,--yes",{hidden:!0})],f.prototype,"yes",void 0),(0,i.gn)([l.Command.Boolean("-p,--private")],f.prototype,"private",void 0),(0,i.gn)([l.Command.Boolean("-w,--workspace")],f.prototype,"workspace",void 0),(0,i.gn)([l.Command.String("-i,--install",{tolerateBoolean:!0})],f.prototype,"install",void 0),(0,i.gn)([l.Command.Path("init")],f.prototype,"execute",null);const p={configuration:{initLicense:{description:"License used when creating packages via the init command",type:n.a2.STRING,default:null},initScope:{description:"Scope used when creating packages via the init command",type:n.a2.STRING,default:null},initVersion:{description:"Version used when creating packages via the init command",type:n.a2.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}}},commands:[f]}},86161:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>c});var n=r(84132),i=r(46009),o=r(75448),s=r(10489);var A=r(46611),a=r(32485);const c={fetchers:[class{supports(e,t){return!!e.reference.startsWith("link:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0}}},class{supports(e,t){return!!e.reference.startsWith("portal:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot}}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("link:")}supportsLocator(e,t){return!!e.reference.startsWith("link:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("link:".length);return[n.structUtils.makeLocator(e,"link:"+i.cS.toPortablePath(o))]}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("portal:")}supportsLocator(e,t){return!!e.reference.startsWith("portal:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("portal:".length);return[n.structUtils.makeLocator(e,"portal:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await A.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map([...i.dependencies,...i.devDependencies]),peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},8149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>ee,default:()=>te});var n=r(46009),i=r(92659),o=r(32485),s=r(92409),A=r(84132),a=r(46611),c=r(35691),u=r(17674),l=r(53660),h=r(56537),g=r(29486),f=r(55125),p=r(5780);const d=(e,t)=>`${e}@${t}`,C=(e,t)=>{const r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return d(e,n)},E=(e,t={})=>{const r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),n={check:t.check||r>=9,debugLevel:r};n.debugLevel>=0&&console.time("hoist");const i=Q(e);if(m(i,i,new Set([i.locator]),n),n.debugLevel>=0&&console.timeEnd("hoist"),n.debugLevel>=1){const e=B(i);if(e)throw new Error(`${e}, after hoisting finished:\n${k(i)}`)}return n.debugLevel>=2&&console.log(k(i)),D(i)},I=(e,t)=>{if(t.decoupled)return t;const{name:r,references:n,ident:i,locator:o,dependencies:s,originalDependencies:A,hoistedDependencies:a,peerNames:c,reasons:u}=t,l={name:r,references:new Set(n),ident:i,locator:o,dependencies:new Map(s),originalDependencies:new Map(A),hoistedDependencies:new Map(a),peerNames:new Set(c),reasons:new Map(u),decoupled:!0},h=l.dependencies.get(r);return h&&h.ident==l.ident&&l.dependencies.set(r,l),e.dependencies.set(l.name,l),l},m=(e,t,r,n,i=new Set)=>{if(i.has(t))return;i.add(t);const o=((e,t)=>{const r=new Map([[e.name,[e.ident]]]);for(const t of e.dependencies.values())e.peerNames.has(t.name)||r.set(t.name,[t.ident]);const n=Array.from(t.keys());n.sort((e,r)=>t.get(r).size-t.get(e).size);for(const t of n){const n=t.substring(0,t.indexOf("@",1)),i=t.substring(n.length+1);if(!e.peerNames.has(n)){let e=r.get(n);e||(e=[],r.set(n,e)),e.indexOf(i)<0&&e.push(i)}}return r})(t,b(t)),s=new Set(Array.from(o.values()).map(e=>e[0])),A=t===e?new Map:(e=>{const t=new Map,r=new Set,n=i=>{if(!r.has(i)){r.add(i);for(const r of i.hoistedDependencies.values())e.dependencies.has(r.name)||t.set(r.name,r);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(e)}};return n(e),t})(t);let a;do{w(e,t,r,A,s,o,n),a=!1;for(const[e,r]of o)r.length>1&&!t.dependencies.has(e)&&(s.delete(r[0]),r.shift(),s.add(r[0]),a=!0)}while(a);for(const i of t.dependencies.values())t.peerNames.has(i.name)||r.has(i.locator)||(r.add(i.locator),m(e,i,r,n),r.delete(i.locator))},y=e=>{const t=new Set,r=(n,i=new Set)=>{if(!i.has(n)){i.add(n);for(const o of n.peerNames)if(!e.peerNames.has(o)){const n=e.dependencies.get(o);n&&!t.has(n)&&r(n,i)}t.add(n)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||r(t);return t},w=(e,t,r,n,i,o,s)=>{const A=new Set,a=(c,u,l,h)=>{if(A.has(l))return;let g,f;s.debugLevel>=2&&(g=""+Array.from(r).map(e=>S(e)).join("→"));let p=i.has(l.ident);if(s.debugLevel>=2&&!p&&(f=`- filled by: ${S(o.get(l.name)[0])} at ${g}`),p){let e=!0;const t=new Set(l.peerNames);for(let r=c.length-1;r>=1;r--){const n=c[r];for(const r of t){if(n.peerNames.has(r)&&n.originalDependencies.has(r))continue;const i=n.dependencies.get(r);if(i){s.debugLevel>=2&&(f=`- peer dependency ${S(i.locator)} from parent ${S(n.locator)} was not hoisted to ${g}`),e=!1;break}t.delete(r)}if(!e)break}p=e}if(p){let e=!1;const t=n.get(l.name);if(e=!t||t.ident===l.ident,s.debugLevel>=2&&!e&&(f=`- filled by: ${S(t.locator)} at ${g}`),e)for(let t=1;t<c.length-1;t++){const r=c[t],n=r.dependencies.get(l.name);if(n&&n.ident!==l.ident){e=!1,s.debugLevel>=2&&(f=`- filled by: ${S(n.locator)} at ${S(r.locator)}`);break}}p=e}if(p){const r=c[c.length-1];r.dependencies.delete(l.name),r.hoistedDependencies.set(l.name,l),r.reasons.delete(l.name);const n=t.dependencies.get(l.name);if(n)for(const e of l.references)n.references.add(e);else t.ident!==l.ident&&(t.dependencies.set(l.name,l),h.add(l));if(s.check){const r=B(e);if(r)throw new Error(`${r}, after hoisting ${[t,...c,l].map(e=>S(e.locator)).join("→")}:\n${k(e)}`)}}else if(s.debugLevel>=2){c[c.length-1].reasons.set(l.name,f)}if(!p&&u.indexOf(l.locator)<0){const e=I(c[c.length-1],l);A.add(e);for(const t of y(l))a([...c,e],[...u,l.locator],t,h);A.delete(e)}};let c,u=new Set(t.dependencies.values());do{c=u,u=new Set;for(const e of c){if(t.peerNames.has(e.name)||e.locator===t.locator)continue;const r=I(t,e);A.add(r);for(const n of y(e))n.locator!==e.locator&&a([t,r],[t.locator,e.locator],n,u);A.delete(r)}}while(u.size>0)},B=e=>{const t=[],r=new Set,n=new Set,i=(e,o)=>{if(r.has(e))return;if(r.add(e),n.has(e))return;const s=new Map(o);for(const t of e.dependencies.values())e.peerNames.has(t.name)||s.set(t.name,t);for(const r of e.originalDependencies.values()){const i=s.get(r.name),A=()=>""+Array.from(n).concat([e]).map(e=>S(e.locator)).join("→");if(e.peerNames.has(r.name)){const e=o.get(r.name);e!==i&&t.push(`${A()} - broken peer promise: expected ${i.locator} but found ${e?e.locator:e}`)}else i?i.ident!==r.ident&&t.push(`${A()} - broken require promise for ${r.name}: expected ${r.ident}, but found: ${i.ident}`):t.push(`${A()} - broken require promise: no required dependency ${r.locator} found`)}n.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||i(t,s);n.delete(e)};return i(e,e.dependencies),t.join("\n")},Q=e=>{const{identName:t,name:r,reference:n,peerNames:i}=e,o={name:r,references:new Set([n]),locator:d(t,n),ident:C(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(i),reasons:new Map,decoupled:!0},s=new Map([[e,o]]),A=(e,t)=>{let r=s.get(e);const n=!!r;if(!r){const{name:t,identName:n,reference:i,peerNames:o}=e;r={name:t,references:new Set([i]),locator:d(n,i),ident:C(n,i),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0},s.set(e,r)}if(t.dependencies.set(e.name,r),t.originalDependencies.set(e.name,r),n){const e=new Set,t=r=>{if(!e.has(r)){e.add(r),r.decoupled=!1;for(const e of r.dependencies.values())r.peerNames.has(e.name)||t(e)}};t(r)}else for(const t of e.dependencies)A(t,r)};for(const t of e.dependencies)A(t,o);return o},v=e=>e.substring(0,e.indexOf("@",1)),D=e=>{const t={name:e.name,identName:v(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(e,t,i)=>{const o=r.has(e);let s;if(t===e)s=i;else{const{name:t,references:r,locator:n}=e;s={name:t,identName:v(n),references:r,dependencies:new Set}}if(i.dependencies.add(s),!o){r.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(t,e,s);r.delete(e)}};for(const r of e.dependencies.values())n(r,e,t);return t},b=e=>{const t=new Map,r=new Set([e]),n=(e,i)=>{const o=!!r.has(i),s=(e=>`${e.name}@${e.ident}`)(i);let A=t.get(s);if(A||(A=new Set,t.set(s,A)),A.add(e.ident),!o){r.add(i);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(i,e)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(e,t);return t},S=e=>{const t=e.indexOf("@",1),r=e.substring(0,t),n=e.substring(t+1);if("workspace:."===n)return".";if(n){const e=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")?`v:${r}@${e}`:`${r}@${e}`}return""+r},k=e=>{let t=0;const r=(e,n,i="")=>{if(t>5e4||n.has(e))return"";t++;const o=Array.from(e.dependencies.values());let s="";n.add(e);for(let t=0;t<o.length;t++){const A=o[t];if(!e.peerNames.has(A.name)){const a=e.reasons.get(A.name),c=v(A.locator);s+=`${i}${t<o.length-1?"├─":"└─"}${(n.has(A)?">":"")+(c!==A.name?`a:${A.name}:`:"")+S(A.locator)+(a?" "+a:"")}\n`,s+=r(A,n,`${i}${t<o.length-1?"│ ":"  "}`)}}return n.delete(e),s};return r(e,new Set)+(t>5e4?"\nTree is too large, part of the tree has been dunped\n":"")};var x;!function(e){e.HARD="HARD",e.SOFT="SOFT"}(x||(x={}));const F=(0,n.Zu)("node_modules"),M=(e,t)=>{const r=R(e,t),n=E(r);return K(e,n,t)},N=e=>`${e.name}@${e.reference}`;const R=(e,t)=>{const r=e.getDependencyTreeRoots(),n=e.getPackageInformation(e.topLevel);if(null===n)throw new Error("Assertion failed: Expected the top-level package to have been registered");const i=e.findPackageLocator(n.packageLocation);if(null===i)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");for(const e of r)e.name===i.name&&e.reference===i.reference||n.packageDependencies.set(e.name+"$wsroot$",e.reference);const o={name:i.name,identName:i.name,reference:i.reference,peerNames:n.packagePeers,dependencies:new Set},s=new Map,a=(r,n,c,u,l)=>{const h=((e,t)=>`${N(t)}:${e}`)(r,c);let g=s.get(h);const f=!!g;f||c.name!==i.name||c.reference!==i.reference||(g=o,s.set(h,o)),g||(g={name:r,identName:c.name,reference:c.reference,dependencies:new Set,peerNames:n.packagePeers},s.set(h,g)),u.dependencies.add(g);const p=t.pnpifyFs||!function(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("portal:")}(h);if(!f&&p)for(const[t,r]of n.packageDependencies)if(null!==r&&!g.peerNames.has(t)){const i=e.getLocator(t,r),o=e.getLocator(t.replace("$wsroot$",""),r),s=e.getPackageInformation(o);if(null===s)throw new Error("Assertion failed: Expected the package to have been registered");if(i.name===c.name&&i.reference===c.reference)continue;a(t,s,i,g,n)}};return a(i.name,n,i,o,n),o};const K=(e,t,r)=>{const i=new Map,o=(t,i)=>{const{linkType:o,target:s}=function(e,t,r){const i=t.getLocator(e.name.replace("$wsroot$",""),e.reference),o=t.getPackageInformation(i);if(null===o)throw new Error("Assertion failed: Expected the package to be registered");let s,A;if(r.pnpifyFs)A=n.cS.toPortablePath(o.packageLocation),s=x.SOFT;else{const r=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(o.packageLocation):o.packageLocation;A=n.cS.toPortablePath(r||o.packageLocation),s=o.linkType}return{linkType:s,target:A}}(t,e,r);return{locator:N(t),target:s,linkType:o,aliases:i}},s=e=>{const[t,r]=e.split("/");return r?{scope:(0,n.Zu)(t),name:(0,n.Zu)(r)}:{scope:null,name:(0,n.Zu)(t)}},a=new Set,c=(e,t)=>{if(!a.has(e)){a.add(e);for(const r of e.dependencies){if(r===e)continue;const a=Array.from(r.references).sort(),u={name:r.identName,reference:a[0]},{name:l,scope:h}=s(r.name),g=h?[h,l]:[l],f=n.y1.join(t,F),p=n.y1.join(f,...g),d=o(u,a.slice(1));if(!r.name.endsWith("$wsroot$")){const e=i.get(p);if(e){if(e.dirList)throw new Error(`Assertion failed: ${p} cannot merge dir node with leaf node`);{const t=A.structUtils.parseLocator(e.locator),r=A.structUtils.parseLocator(d.locator);if(e.linkType!==d.linkType)throw new Error(`Assertion failed: ${p} cannot merge nodes with different link types`);if(t.identHash!==r.identHash)throw new Error(`Assertion failed: ${p} cannot merge nodes with different idents ${A.structUtils.stringifyLocator(t)} and ${A.structUtils.stringifyLocator(r)}`);d.aliases=[...d.aliases,...e.aliases,A.structUtils.parseLocator(e.locator).reference]}}i.set(p,d);const t=p.split("/"),r=t.indexOf(F);let o=t.length-1;for(;r>=0&&o>r;){const e=n.cS.toPortablePath(t.slice(0,o).join(n.y1.sep)),r=(0,n.Zu)(t[o]),s=i.get(e);if(s){if(s.dirList){if(s.dirList.has(r))break;s.dirList.add(r)}}else i.set(e,{dirList:new Set([r])});o--}}c(r,d.linkType===x.SOFT?d.target:p)}}},u=o({name:t.name,reference:Array.from(t.references)[0]},[]),l=u.target;return i.set(l,u),c(t,l),i};var L=r(88563),T=r(58069),P=r.n(T),U=r(17278),_=r(35747),O=r.n(_);const j="node_modules";class Y extends p.AbstractPnpInstaller{constructor(){super(...arguments),this.manifestCache=new Map}async getBuildScripts(e,t,r){return[]}async transformPackage(e,t,r,n,i){return r.packageFs}async finalizeInstallWithPnp(e){if("node-modules"!==this.opts.project.configuration.get("nodeLinker"))return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})});let r=await G(this.opts.project);if(null===r){const e=this.opts.project.configuration.get("bstatePath");await h.xfs.existsPromise(e)&&await h.xfs.unlinkPromise(e),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map}}const s=(0,L.oC)(e,this.opts.project.cwd,t),a=(e=>{const t=new Map;for(const[r,n]of e.entries())if(!n.dirList){let e=t.get(n.locator);e||(e={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,e)),e.locations.push(r)}for(const e of t.values())e.locations=e.locations.sort((e,t)=>{const r=e.split(n.y1.delimiter).length,i=t.split(n.y1.delimiter).length;return r!==i?i-r:t.localeCompare(e)});return t})(M(s,{pnpifyFs:!1}));await async function(e,t,{baseFs:r,project:i,report:s,loadManifest:A}){const a=n.y1.join(i.cwd,j),{locationTree:u,binSymlinks:l}=function(e,t){const r=new Map([...e]),i=new Map([...t]);for(const[t,r]of e){const e=n.y1.join(t,j);if(!h.xfs.existsSync(e)){r.children.delete(j);for(const t of i.keys())null!==n.y1.contains(e,t)&&i.delete(t)}}return{locationTree:r,binSymlinks:i}}(e.locationTree,e.binSymlinks),g=q(t,{skipPrefix:i.cwd}),f=[],p=async({srcDir:e,dstDir:t,linkType:i})=>{const s=(async()=>{try{i===o.U.SOFT?(await h.xfs.mkdirpPromise(n.y1.dirname(t)),await z(n.y1.resolve(e),t)):await W(t,e,{baseFs:r})}catch(r){throw r.message=`While persisting ${e} -> ${t} ${r.message}`,r}finally{m.tick()}})().then(()=>f.splice(f.indexOf(s),1));f.push(s),f.length>4&&await Promise.race(f)},d=async(e,t,r)=>{const i=(async()=>{const i=async(e,t,r)=>{try{r&&r.innerLoop||await h.xfs.mkdirpPromise(t);const o=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const s of o){if(!(r&&r.innerLoop||".bin"!==s.name))continue;const o=n.y1.join(e,s.name),A=n.y1.join(t,s.name);s.isDirectory()?(s.name!==j||r&&r.innerLoop)&&(await h.xfs.mkdirpPromise(A),await i(o,A,{innerLoop:!0})):await h.xfs.copyFilePromise(o,A,O().constants.COPYFILE_FICLONE)}}catch(n){throw r&&r.innerLoop||(n.message=`While cloning ${e} -> ${t} ${n.message}`),n}finally{r&&r.innerLoop||m.tick()}};await i(e,t,r)})().then(()=>f.splice(f.indexOf(i),1));f.push(i),f.length>4&&await Promise.race(f)},C=async(e,t,r)=>{if(r)for(const[i,o]of t.children){const t=r.children.get(i);await C(n.y1.join(e,i),o,t)}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!1}),await J(e,{contentsOnly:e===a})};for(const[e,t]of u){const r=g.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await C(n.y1.join(e,i),o,t)}}const E=async(e,t,r)=>{if(r){X(t.locator,r.locator)||await J(e,{contentsOnly:t.linkType===o.U.HARD});for(const[i,o]of t.children){const t=r.children.get(i);await E(n.y1.join(e,i),o,t)}}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!0}),await J(e,{contentsOnly:t.linkType===o.U.HARD})};for(const[e,t]of g){const r=u.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await E(n.y1.join(e,i),o,t)}}const I=[];for(const[r,{locations:o}]of e.locatorMap.entries())for(const e of o){const{locationRoot:o,segments:s}=H(e,{skipPrefix:i.cwd});let A=g.get(o),a=o;if(A){for(const e of s)if(a=n.y1.join(a,e),A=A.children.get(e),!A)break;if(A&&!X(A.locator,r)){const e=t.get(A.locator),r=e.target,n=a,i=e.linkType;r!==n&&I.push({srcDir:r,dstDir:n,linkType:i})}}}for(const[e,{locations:r}]of t.entries())for(const o of r){const{locationRoot:r,segments:s}=H(o,{skipPrefix:i.cwd});let A=u.get(r),a=g.get(r),c=r;const l=t.get(e),h=l.target,f=o;if(h===f)continue;const p=l.linkType;for(const e of s)a=a.children.get(e);if(A){for(const e of s)if(c=n.y1.join(c,e),A=A.children.get(e),!A){I.push({srcDir:h,dstDir:f,linkType:p});break}}else I.push({srcDir:h,dstDir:f,linkType:p})}const m=c.yG.progressViaCounter(I.length),y=s.reportProgress(m);try{const e=new Map;for(const t of I)t.linkType!==o.U.SOFT&&e.has(t.srcDir)||(e.set(t.srcDir,t.dstDir),await p({...t}));await Promise.all(f),f.length=0;for(const t of I){const r=e.get(t.srcDir);t.linkType!==o.U.SOFT&&t.dstDir!==r&&await d(r,t.dstDir)}await Promise.all(f),await h.xfs.mkdirpPromise(a);const r=await async function(e,t,r,{loadManifest:i}){const o=new Map;for(const[t,{locations:r}]of e){const e=V(t)?null:await i(r[0]),s=new Map;if(e)for(const[t,i]of e.bin){const e=n.y1.join(r[0],i);""!==i&&h.xfs.existsSync(e)&&s.set(t,i)}o.set(t,s)}const s=new Map,A=(e,t,i)=>{const a=new Map,c=n.y1.contains(r,e);if(i.locator&&null!==c){const t=o.get(i.locator);for(const[r,i]of t){const t=n.y1.join(e,n.cS.toPortablePath(i));a.set((0,n.Zu)(r),t)}for(const[t,r]of i.children){const i=n.y1.join(e,t),o=A(i,i,r);o.size>0&&s.set(e,new Map([...s.get(e)||new Map,...o]))}}else for(const[r,o]of i.children){const i=A(n.y1.join(e,r),t,o);for(const[e,t]of i)a.set(e,t)}return a};for(const[e,r]of t){const t=A(e,e,r);t.size>0&&s.set(e,new Map([...s.get(e)||new Map,...t]))}return s}(t,g,i.cwd,{loadManifest:A});await async function(e,t){for(const r of e.keys())if(!t.has(r)){const e=n.y1.join(r,j,".bin");await h.xfs.removePromise(e)}for(const[r,i]of t){const t=n.y1.join(r,j,".bin"),o=e.get(r)||new Map;await h.xfs.mkdirpPromise(t);for(const e of o.keys())i.has(e)||(await h.xfs.removePromise(n.y1.join(t,e)),"win32"===process.platform&&await h.xfs.removePromise(n.y1.join(t,(0,n.Zu)(e+".cmd"))));for(const[e,r]of i){const i=o.get(e),s=n.y1.join(t,e);i!==r&&("win32"===process.platform?await P()(n.cS.fromPortablePath(r),n.cS.fromPortablePath(s),{createPwshFile:!1}):(await h.xfs.removePromise(s),await z(r,s),await h.xfs.chmodPromise(r,493)))}}}(l,r),await async function(e,t,r){let i="";i+="# Warning: This file is automatically generated. Removing it is fine, but will\n",i+="# cause your node_modules installation to become invalidated.\n",i+="\n",i+="__metadata:\n",i+="  version: 1\n";const o=Array.from(t.keys()).sort();for(const s of o){const o=t.get(s);i+="\n",i+=JSON.stringify(s)+":\n",i+="  locations:\n";let A=!1;for(const t of o.locations){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=`    - ${JSON.stringify(r)}\n`,t===e.cwd&&(A=!0)}if(o.aliases.length>0){i+="  aliases:\n";for(const e of o.aliases)i+=`    - ${JSON.stringify(e)}\n`}if(A&&r.size>0){i+="  bin:\n";for(const[t,o]of r){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=`    ${JSON.stringify(r)}:\n`;for(const[e,r]of o){const o=n.y1.relative(n.y1.join(t,j),r);i+=`      ${JSON.stringify(e)}: ${JSON.stringify(o)}\n`}}}}const s=e.cwd,A=n.y1.join(s,j,".yarn-state.yml");await h.xfs.changeFilePromise(A,i,{automaticNewlines:!0})}(i,t,r)}finally{y.stop()}}(r,a,{baseFs:t,project:this.opts.project,report:this.opts.report,loadManifest:this.cachedManifestLoad.bind(this)});const f=[];for(const[e,t]of a.entries()){if(V(e))continue;const r=A.structUtils.parseLocator(e),a={name:A.structUtils.stringifyIdent(r),reference:r.reference};if(null===s.getPackageInformation(a))throw new Error(`Assertion failed: Expected the package to be registered (${A.structUtils.prettyLocator(this.opts.project.configuration,r)})`);const c=n.cS.toPortablePath(t.locations[0]),u=await this.cachedManifestLoad(c),l=await this.getSourceBuildScripts(c,u);l.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(i.b.DISABLED_BUILD_SCRIPTS,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but all build scripts have been disabled."),l.length=0),l.length>0&&t.linkType!==o.U.HARD&&!this.opts.project.tryWorkspaceByLocator(r)&&(this.opts.report.reportWarningOnce(i.b.SOFT_LINK_BUILD,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),l.length=0);const h=this.opts.project.getDependencyMeta(r,u.version);l.length>0&&h&&!1===h.built&&(this.opts.report.reportInfoOnce(i.b.BUILD_DISABLED,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but its build has been explicitly disabled through configuration."),l.length=0),l.length>0&&f.push({buildLocations:t.locations,locatorHash:r.locatorHash,buildDirective:l})}return f}async cachedManifestLoad(e){let t=this.manifestCache.get(e);if(t)return t;try{t=await a.G.find(e)}catch(t){throw t.message=`While loading ${e}: ${t.message}`,t}return this.manifestCache.set(e,t),t}async getSourceBuildScripts(e,t){const r=[],{scripts:i}=t;for(const e of["preinstall","install","postinstall"])i.has(e)&&r.push([s.k.SCRIPT,e]);const o=n.y1.resolve(e,(0,n.Zu)("binding.gyp"));return!i.has("install")&&h.xfs.existsSync(o)&&r.push([s.k.SHELLCODE,"node-gyp rebuild"]),r}}async function G(e,{unrollAliases:t=!1}={}){const r=e.cwd,i=n.y1.join(r,j,".yarn-state.yml");if(!h.xfs.existsSync(i))return null;const s=(0,f.parseSyml)(await h.xfs.readFilePromise(i,"utf8"));if(s.__metadata.version>1)return null;const a=new Map,c=new Map;delete s.__metadata;for(const[e,i]of Object.entries(s)){const s=i.locations.map(e=>n.y1.join(r,e)),u=i.bin;if(u)for(const[e,t]of Object.entries(u)){const i=n.y1.join(r,n.cS.toPortablePath(e)),o=A.miscUtils.getMapWithDefault(c,i);for(const[e,r]of Object.entries(t))o.set((0,n.Zu)(e),n.cS.toPortablePath([i,j,r].join(n.y1.delimiter)))}if(a.set(e,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:i.aliases||[]}),t&&i.aliases)for(const t of i.aliases){const{scope:r,name:i}=A.structUtils.parseLocator(e),c=A.structUtils.makeLocator(A.structUtils.makeIdent(r,i),t),u=A.structUtils.stringifyLocator(c);a.set(u,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:[]})}}return{locatorMap:a,binSymlinks:c,locationTree:q(a,{skipPrefix:e.cwd})}}const J=async(e,t)=>{if(e.split(n.y1.sep).indexOf(j)<0)throw new Error("Assertion failed: trying to remove dir that doesn't contain node_modules: "+e);try{if(!t.innerLoop){if((await h.xfs.lstatPromise(e)).isSymbolicLink())return void await h.xfs.unlinkPromise(e)}const r=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const i of r){const r=n.y1.join(e,(0,n.Zu)(i.name));i.isDirectory()?(i.name!==j||t&&t.innerLoop)&&await J(r,{innerLoop:!0,contentsOnly:!1}):await h.xfs.unlinkPromise(r)}t.contentsOnly||await h.xfs.rmdirPromise(e)}catch(e){if("ENOENT"!==e.code&&"ENOTEMPTY"!==e.code)throw e}},H=(e,{skipPrefix:t})=>{const r=n.y1.contains(t,e);if(null===r)throw new Error(`Assertion failed: Cannot process a path that isn't part of the requested prefix (${e} isn't within ${t})`);const i=r.split(n.y1.sep),o=i.indexOf(j),s=i.slice(0,o).join(n.y1.sep);return{locationRoot:n.y1.join(t,s),segments:i.slice(o)}},q=(e,{skipPrefix:t})=>{const r=new Map;if(null===e)return r;const i=()=>({children:new Map,linkType:o.U.HARD});for(const[s,a]of e.entries()){if(a.linkType===o.U.SOFT){if(null!==n.y1.contains(t,a.target)){const e=A.miscUtils.getFactoryWithDefault(r,a.target,i);e.locator=s,e.linkType=a.linkType}}for(const e of a.locations){const{locationRoot:n,segments:o}=H(e,{skipPrefix:t});let c=A.miscUtils.getFactoryWithDefault(r,n,i);for(let e=0;e<o.length;++e){const t=o[e];if("."!==t){const e=A.miscUtils.getFactoryWithDefault(c.children,t,i);c.children.set(t,e),c=e}e===o.length-1&&(c.locator=s,c.linkType=a.linkType)}}}return r},z=async(e,t)=>h.xfs.symlinkPromise("win32"!==process.platform?n.y1.relative(n.y1.dirname(t),e):e,t,"win32"===process.platform?"junction":void 0),W=async(e,t,{baseFs:r,innerLoop:i})=>{await h.xfs.mkdirpPromise(e);const o=await r.readdirPromise(t,{withFileTypes:!0}),s=async(e,t,i)=>{if(i.isFile()){const n=await r.lstatPromise(t);await r.copyFilePromise(t,e);const i=511&n.mode;420!==i&&await h.xfs.chmodPromise(e,i)}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${await h.xfs.statSync(t).mode.toString(8).padStart(6,"0")})`);{const i=await r.readlinkPromise(t);await z(n.y1.resolve(t,i),e)}}};for(const A of o){const o=n.y1.join(t,(0,n.Zu)(A.name)),a=n.y1.join(e,(0,n.Zu)(A.name));A.isDirectory()?(A.name!==j||i)&&await W(a,o,{baseFs:r,innerLoop:!0}):await s(a,o,A)}};function V(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}const X=(e,t)=>{if(!e||!t)return e===t;let r=A.structUtils.parseLocator(e);A.structUtils.isVirtualLocator(r)&&(r=A.structUtils.devirtualizeLocator(r));let n=A.structUtils.parseLocator(t);return A.structUtils.isVirtualLocator(n)&&(n=A.structUtils.devirtualizeLocator(n)),A.structUtils.areLocatorsEqual(r,n)};class Z extends p.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(e){return new $(e)}}class $ extends p.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})}),r=(0,L.oC)(e,this.opts.project.cwd,t),i=M(r,{pnpifyFs:!1}),o=new Map;e.fallbackPool=o;const s=(e,t)=>{const r=A.structUtils.parseLocator(t.locator),n=A.structUtils.stringifyIdent(r);n===e?o.set(e,r.reference):o.set(e,[n,r.reference])},a=n.y1.join(this.opts.project.cwd,n.QS.nodeModules),c=i.get(a);if(void 0===c)throw new Error("Assertion failed: Expected a root junction point");if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(const e of c.dirList){const t=n.y1.join(a,e),r=i.get(t);if(void 0===r)throw new Error("Assertion failed: Expected the child to have been registered");if("target"in r)s(e,r);else for(const o of r.dirList){const r=n.y1.join(t,o),A=i.get(r);if(void 0===A)throw new Error("Assertion failed: Expected the subchild to have been registered");if(!("target"in A))throw new Error("Assertion failed: Expected the leaf junction to be a package");s(`${e}/${o}`,A)}}return super.finalizeInstallWithPnp(e)}}const ee=e=>n.y1.join(e.cwd,".pnp.js"),te={linkers:[class{supportsPackage(e,t){return"node-modules"===t.project.configuration.get("nodeLinker")}async findPackageLocation(e,t){const r=t.project.tryWorkspaceByLocator(e);if(r)return r.cwd;const n=await G(t.project,{unrollAliases:!0});if(null===n)throw new U.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");const i=n.locatorMap.get(A.structUtils.stringifyLocator(e));if(!i)throw new U.UsageError(`Couldn't find ${A.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);return i.locations[0]}async findPackageLocator(e,t){const r=await G(t.project,{unrollAliases:!0});if(null===r)return null;const{locationRoot:i,segments:o}=H(n.y1.resolve(e),{skipPrefix:t.project.cwd});let s=r.locationTree.get(i);if(!s)return null;let a=s.locator;for(const e of o){if(s=s.children.get(e),!s)break;a=s.locator||a}return A.structUtils.parseLocator(a)}makeInstaller(e){return new Y({...e,skipIncompatiblePackageLinking:!0})}},Z]}},94573:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>F});var n=r(27122),i=r(36370),o=r(95397),s=r(40376),A=r(84132),a=r(35691),c=r(15815),u=r(92659),l=r(86717),h=r(17278),g=r(85622),f=r.n(g),p=r(53887),d=r.n(p),C=r(31669);class E extends o.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t}=await s.I.find(e,this.context.cwd),r=void 0!==this.fields?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,i=[];let o=!1;const g=await c.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async n=>{for(const s of this.packages){let c;if("."===s){const e=t.topLevelWorkspace;if(!e.manifest.name)throw new h.UsageError("Missing 'name' field in "+f().join(e.cwd,"package.json"));c=A.structUtils.makeDescriptor(e.manifest.name,"unknown")}else c=A.structUtils.parseDescriptor(s);const g=l.npmHttpUtils.getIdentUrl(c);let p;try{p=I(await l.npmHttpUtils.get(g,{configuration:e,ident:c,json:!0}))}catch(e){throw"HTTPError"!==e.name?e:404===e.response.statusCode?new a.lk(u.b.EXCEPTION,"Package not found"):new a.lk(u.b.EXCEPTION,e.toString())}const C=Object.keys(p.versions).sort(d().compareLoose);let E=p["dist-tags"].latest||C[C.length-1];if(d().validRange(c.range)){const t=d().maxSatisfying(C,c.range);null!==t?E=t:(n.reportWarning(u.b.UNNAMED,`Unmet range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0)}else"unknown"!==c.range&&(n.reportWarning(u.b.UNNAMED,`Invalid range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0);const m=p.versions[E],y={...p,...m,version:E,versions:C};let w;if(null!==r){w={};for(const t of r){const r=y[t];void 0!==r?w[t]=r:(n.reportWarning(u.b.EXCEPTION,`The '${t}' field doesn't exist inside ${A.structUtils.prettyIdent(e,c)}'s informations`),o=!0)}}else this.json||(delete y.dist,delete y.readme,delete y.users),w=y;n.reportJson(w),this.json||i.push(w)}});C.inspect.styles.name="cyan";for(const e of i)(e!==i[0]||o)&&this.context.stdout.write("\n"),this.context.stdout.write((0,C.inspect)(e,{depth:1/0,colors:!0,compact:!1})+"\n");return g.exitCode()}}function I(e){if(Array.isArray(e)){const t=[];for(let r of e)r=I(r),r&&t.push(r);return t}if("object"==typeof e&&null!==e){const t={};for(const r of Object.keys(e)){if(r.startsWith("_"))continue;const n=I(e[r]);n&&(t[r]=n)}return t}return e||null}E.usage=h.Command.Usage({description:"show information about a package",details:"\n      This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n      The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n      Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n      If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n      By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]}),(0,i.gn)([h.Command.Rest()],E.prototype,"packages",void 0),(0,i.gn)([h.Command.String("-f,--fields")],E.prototype,"fields",void 0),(0,i.gn)([h.Command.Boolean("--json")],E.prototype,"json",void 0),(0,i.gn)([h.Command.Path("npm","info")],E.prototype,"execute",null);var m=r(9494),y=r.n(m);class w extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=y().createPromptModule({input:this.context.stdin,output:this.context.stdout}),r=await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async i=>{const o=await async function(e,{registry:t,report:r}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};r.reportInfo(u.b.UNNAMED,"Logging in to "+t);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(u.b.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0);r.reportSeparator();const{username:i,password:o}=await e([{type:"input",name:"username",message:"Username:",validate:e=>Q(e,"Username")},{type:"password",name:"password",message:n?"Token:":"Password:",validate:e=>Q(e,"Password")}]);return r.reportSeparator(),{name:i,password:o}}(t,{registry:r,report:i}),s="/-/user/org.couchdb.user:"+encodeURIComponent(o.name),A=await l.npmHttpUtils.put(s,o,{attemptedAs:o.name,configuration:e,registry:r,json:!0,authType:l.npmHttpUtils.AuthType.NO_AUTH});return await async function(e,t,{configuration:r}){return await n.VK.updateHomeConfiguration({npmRegistries:(r={})=>({...r,[e]:{...r[e],npmAuthToken:t}})})}(r,A.token,{configuration:e}),i.reportInfo(u.b.UNNAMED,"Successfully logged in")})).exitCode()}}async function B({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?l.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?l.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(r,n)).manifest,{configuration:r}):l.npmConfigUtils.getDefaultRegistry({configuration:r})}function Q(e,t){return e.length>0||t+" is required"}w.usage=h.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n      This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n      Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n    ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]}),(0,i.gn)([h.Command.String("-s,--scope")],w.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],w.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","login")],w.prototype,"execute",null);class v extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1,this.all=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.all?null:await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async e=>(await async function(e){return await n.VK.updateHomeConfiguration({npmRegistries:(t={})=>null===e?void 0:{...t,[e]:void 0}})}(t),e.reportInfo(u.b.UNNAMED,"Successfully logged out of "+(null===t?"all registries":t))))).exitCode()}}v.usage=h.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n      This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n      Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n      Adding the `-A,--all` flag will cause the deletion to be done against all registries.\n    ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the registry linked to the @my-scope registry","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of the publish registry for the current package linked to the @my-scope registry","yarn npm logout --publish --scope my-scope"],["Logout of all registries","yarn npm logout --all"]]}),(0,i.gn)([h.Command.String("-s,--scope")],v.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],v.prototype,"publish",void 0),(0,i.gn)([h.Command.Boolean("-A,--all")],v.prototype,"all",void 0),(0,i.gn)([h.Command.Path("npm","logout")],v.prototype,"execute",null);var D=r(5973),b=r(76417),S=r(10129);class k extends o.BaseCommand{constructor(){super(...arguments),this.tag="latest",this.tolerateRepublish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await s.I.find(e,this.context.cwd);if(!r)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);if(r.manifest.private)throw new h.UsageError("Private workspaces cannot be published");if(null===r.manifest.name||null===r.manifest.version)throw new h.UsageError("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();const i=r.manifest.name,g=r.manifest.version,f=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async t=>{if(this.tolerateRepublish)try{const r=await l.npmHttpUtils.get(l.npmHttpUtils.getIdentUrl(i),{configuration:e,registry:f,ident:i,json:!0});if(!Object.prototype.hasOwnProperty.call(r,"versions"))throw new a.lk(u.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(r.versions,g))return void t.reportWarning(u.b.UNNAMED,`Registry already knows about version ${g}; skipping.`)}catch(e){if("HTTPError"!==e.name)throw e;if(404!==e.response.statusCode)throw new a.lk(u.b.NETWORK_ERROR,`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`)}await D.packUtils.prepareForPack(r,{report:t},async()=>{const n=await D.packUtils.genPackList(r);for(const e of n)t.reportInfo(null,e);const o=await D.packUtils.genPackStream(r,n),s=await A.miscUtils.bufferStream(o),a=await async function(e,t,{access:r,tag:n,registry:i}){const o=e.project.configuration,s=e.manifest.name,a=e.manifest.version,c=A.structUtils.stringifyIdent(s),u=(0,b.createHash)("sha1").update(t).digest("hex"),l=S.Sd(t).toString();void 0===r&&(r=e.manifest.publishConfig&&"string"==typeof e.manifest.publishConfig.access?e.manifest.publishConfig.access:null!==o.get("npmPublishAccess")?o.get("npmPublishAccess"):s.scope?"restricted":"public");const h=await D.packUtils.genPackageManifest(e),g=`${c}-${a}.tgz`,f=new URL(`${c}/-/${g}`,i);return{_id:c,_attachments:{[g]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}},name:c,access:r,"dist-tags":{[n]:a},versions:{[a]:{...h,_id:`${c}@${a}`,name:c,version:a,dist:{shasum:u,integrity:l,tarball:f.toString()}}}}}(r,s,{access:this.access,tag:this.tag,registry:f});try{await l.npmHttpUtils.put(l.npmHttpUtils.getIdentUrl(i),a,{configuration:e,registry:f,ident:i,json:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(u.b.NETWORK_ERROR,r)}}}),t.hasErrors()||t.reportInfo(u.b.UNNAMED,"Package archive published")})).exitCode()}}k.usage=h.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n      This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n      The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n      Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n    ',examples:[["Publish the active workspace","yarn npm publish"]]}),(0,i.gn)([h.Command.String("--access")],k.prototype,"access",void 0),(0,i.gn)([h.Command.String("--tag")],k.prototype,"tag",void 0),(0,i.gn)([h.Command.Boolean("--tolerate-republish")],k.prototype,"tolerateRepublish",void 0),(0,i.gn)([h.Command.Path("npm","publish")],k.prototype,"execute",null);class x extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);let t;t=this.scope&&this.publish?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e}):this.publish?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(e,this.context.cwd)).manifest,{configuration:e}):l.npmConfigUtils.getDefaultRegistry({configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async r=>{try{const n=await l.npmHttpUtils.get("/-/whoami",{configuration:e,registry:t,authType:l.npmHttpUtils.AuthType.ALWAYS_AUTH,json:!0});r.reportInfo(u.b.UNNAMED,n.username)}catch(e){if("HTTPError"!==e.name)throw e;401===e.response.statusCode||403===e.response.statusCode?r.reportError(u.b.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired"):r.reportError(u.b.AUTHENTICATION_INVALID,e.toString())}})).exitCode()}}x.usage=h.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n      Print the username associated with the current authentication settings to the standard output.\n\n      When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n      When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n    ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]}),(0,i.gn)([h.Command.String("-s,--scope")],x.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],x.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","whoami")],x.prototype,"execute",null);const F={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:n.a2.STRING,default:null}},commands:[E,w,v,k,x]}},86717:(e,t,r)=>{"use strict";r.r(t),r.d(t,{npmConfigUtils:()=>n,npmHttpUtils:()=>i,default:()=>T});var n={};r.r(n),r.d(n,{RegistryType:()=>c,getAuthConfiguration:()=>y,getDefaultRegistry:()=>E,getPublishRegistry:()=>d,getRegistryConfiguration:()=>I,getScopeConfiguration:()=>m,getScopeRegistry:()=>C,normalizeRegistry:()=>p});var i={};r.r(i),r.d(i,{AuthType:()=>u,get:()=>B,getIdentUrl:()=>w,put:()=>Q});var o=r(27122),s=r(84132),A=r(53887),a=r.n(A);var c,u,l=r(35691),h=r(92659),g=r(9494),f=r.n(g);function p(e){return e.replace(/\/$/,"")}function d(e,{configuration:t}){return e.publishConfig&&e.publishConfig.registry?p(e.publishConfig.registry):e.name?C(e.name.scope,{configuration:t,type:c.PUBLISH_REGISTRY}):E({configuration:t,type:c.PUBLISH_REGISTRY})}function C(e,{configuration:t,type:r=c.FETCH_REGISTRY}){const n=m(e,{configuration:t});if(null===n)return E({configuration:t,type:r});const i=n.get(r);return null===i?E({configuration:t,type:r}):p(i)}function E({configuration:e,type:t=c.FETCH_REGISTRY}){const r=e.get(t);return p(null!==r?r:e.get(c.FETCH_REGISTRY))}function I(e,{configuration:t}){const r=t.get("npmRegistries"),n=r.get(e);if(void 0!==n)return n;const i=r.get(e.replace(/^[a-z]+:/,""));return void 0!==i?i:null}function m(e,{configuration:t}){if(null===e)return null;const r=t.get("npmScopes").get(e);return r||null}function y(e,{configuration:t,ident:r}){const n=r&&m(r.scope,{configuration:t});if((null==n?void 0:n.get("npmAuthIdent"))||(null==n?void 0:n.get("npmAuthToken")))return n;return I(e,{configuration:t})||t}function w(e){return e.scope?`/@${e.scope}%2f${e.name}`:"/"+e.name}async function B(e,{configuration:t,headers:r,ident:n,authType:i,registry:o,...A}){if(n&&void 0===o&&(o=C(n.scope,{configuration:t})),n&&n.scope&&void 0===i&&(i=u.BEST_EFFORT),"string"!=typeof o)throw new Error("Assertion failed: The registry should be a string");const a=v(o,{authType:i,configuration:t,ident:n});let c;a&&(r={...r,authorization:a});try{c=new URL(e)}catch(t){c=new URL(o+e)}try{return await s.httpUtils.get(c.href,{configuration:t,headers:r,...A})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (as ${await D(o,r,{configuration:t})})`)}}async function Q(e,t,{attemptedAs:r,configuration:n,headers:i,ident:o,authType:A=u.ALWAYS_AUTH,registry:a,...c}){if(o&&void 0===a&&(a=C(o.scope,{configuration:n})),"string"!=typeof a)throw new Error("Assertion failed: The registry should be a string");const g=v(a,{authType:A,configuration:n,ident:o});g&&(i={...i,authorization:g});try{return await s.httpUtils.put(a+e,t,{configuration:n,headers:i,...c})}catch(o){if(!function(e){if("HTTPError"!==e.name)return!1;try{return e.response.headers["www-authenticate"].split(/,\s*/).map(e=>e.toLowerCase()).includes("otp")}catch(e){return!1}}(o))throw"HTTPError"!==o.name||401!==o.response.statusCode&&403!==o.response.statusCode?o:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,i,{configuration:n}):"attempted as "+r})`);const A=await async function(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";const e=f().createPromptModule(),{otp:t}=await e({type:"input",name:"otp",message:"One-time password:",validate:e=>e.length>0||"One-time password is required"});return t}(),u={...i,...b(A)};try{return await s.httpUtils.put(`${a}${e}`,t,{configuration:n,headers:u,...c})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,u,{configuration:n}):"attempted as "+r})`)}}}function v(e,{authType:t=u.CONFIGURATION,configuration:r,ident:n}){const i=y(e,{configuration:r,ident:n}),o=function(e,t){switch(t){case u.CONFIGURATION:return e.get("npmAlwaysAuth");case u.BEST_EFFORT:case u.ALWAYS_AUTH:return!0;case u.NO_AUTH:return!1;default:throw new Error("Unreachable")}}(i,t);if(!o)return null;if(i.get("npmAuthToken"))return"Bearer "+i.get("npmAuthToken");if(i.get("npmAuthIdent"))return"Basic "+i.get("npmAuthIdent");if(o&&t!==u.BEST_EFFORT)throw new l.lk(h.b.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}async function D(e,t,{configuration:r}){if(void 0===t||void 0===t.authorization)return"an anonymous user";try{return(await s.httpUtils.get(new URL(e+"/-/whoami").href,{configuration:r,headers:t})).username}catch(e){return"an unknown user"}}function b(e){return{"npm-otp":e}}!function(e){e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"}(c||(c={})),function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"}(u||(u={}));var S=r(78835);class k{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const r=new S.URL(e.reference);return!!a().valid(r.pathname)&&!r.searchParams.has("__archiveUrl")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote registry"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let r;try{r=await B(k.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){r=await B(k.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await s.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:r}){let n=C(e.scope,{configuration:r});const i=k.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),(t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"))===n+i||t===n+i.replace(/%2f/g,"/")}static getLocatorUrl(e){const t=a().clean(e.reference.slice("npm:".length));if(null===t)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${w(e)}/-/${e.name}-${t}.tgz`}}var x=r(46611),F=r(32485);const M=s.structUtils.makeIdent(null,"node-gyp"),N=/\b(node-gyp|prebuild-install)\b/;var R=r(52779);const K={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:o.a2.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:o.a2.SECRET,default:null}},L={npmPublishRegistry:{description:"Registry to push packages to",type:o.a2.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.STRING,default:"https://registry.yarnpkg.com"}},T={configuration:{...K,...L,npmScopes:{description:"Settings per package scope",type:o.a2.MAP,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K,...L}}},npmRegistries:{description:"Settings per registry",type:o.a2.MAP,normalizeKeys:p,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K}}}},fetchers:[class{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r,params:n}=s.structUtils.parseRange(e.reference);return!!a().valid(r)&&(null!==n&&"string"==typeof n.__archiveUrl)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const{params:r}=s.structUtils.parseRange(e.reference);if(null===r||"string"!=typeof r.__archiveUrl)throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");const n=await B(r.__archiveUrl,{configuration:t.project.configuration,ident:e});return await s.tgzUtils.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}},k],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!s.structUtils.tryParseDescriptor(e.range.slice("npm:".length),!0)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){const r=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return t.resolver.getResolutionDependencies(r,t)}async getCandidates(e,t,r){const n=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return await r.resolver.getCandidates(n,t,r)}resolve(e,t){throw new Error("Unreachable")}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!a().validRange(e.range.slice("npm:".length))}supportsLocator(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r}=s.structUtils.parseRange(e.reference);return!!a().valid(r)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0}),o=Object.keys(i.versions).filter(e=>a().satisfies(e,n));return o.sort((e,t)=>-a().compare(e,t)),o.map(t=>{const n=s.structUtils.makeLocator(e,"npm:"+t),o=i.versions[t].dist.tarball;return k.isConventionalTarballUrl(n,o,{configuration:r.project.configuration})?n:s.structUtils.bindLocator(n,{__archiveUrl:o})})}async resolve(e,t){const{selector:r}=s.structUtils.parseRange(e.reference),n=a().clean(r);if(null===n)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");const i=await B(w(e),{configuration:t.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"versions"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(i.versions,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);const o=new x.G;if(o.load(i.versions[n]),!o.dependencies.has(M.identHash)&&!o.peerDependencies.has(M.identHash))for(const r of o.scripts.values())if(r.match(N)){o.dependencies.set(M.identHash,s.structUtils.makeDescriptor(M,"latest")),t.report.reportWarning(h.b.NODE_GYP_INJECTED,s.structUtils.prettyLocator(t.project.configuration,e)+": Implicit dependencies on node-gyp are discouraged");break}return"string"==typeof o.raw.deprecated&&t.report.reportWarning(h.b.DEPRECATED_PACKAGE,`${s.structUtils.prettyLocator(t.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),{...e,version:n,languageName:"node",linkType:F.U.HARD,dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!R.c.test(e.range.slice("npm:".length))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"dist-tags"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');const o=i["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);const A=o[n],a=s.structUtils.makeLocator(e,"npm:"+A),c=i.versions[A].dist.tarball;return k.isConventionalTarballUrl(a,c,{configuration:r.project.configuration})?[a]:[s.structUtils.bindLocator(a,{__archiveUrl:c})]}async resolve(e,t){throw new Error("Unreachable")}}]}},5973:(e,t,r)=>{"use strict";r.r(t),r.d(t,{packUtils:()=>n,default:()=>T});var n={};r.r(n),r.d(n,{genPackList:()=>k,genPackStream:()=>b,genPackageManifest:()=>S,hasPackScripts:()=>v,prepareForPack:()=>D});var i=r(84132),o=r(35691),s=r(92659),A=r(36370),a=r(95397),c=r(27122),u=r(40376),l=r(28148),h=r(33720),g=r(15815),f=r(46009),p=r(56537),d=r(17278),C=r(10489),E=r(2401),I=r.n(E),m=r(92413),y=r(59938),w=r(78761);const B=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],Q=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function v(e){return!!await i.scriptUtils.hasWorkspaceScript(e,"prepack")||!!await i.scriptUtils.hasWorkspaceScript(e,"postpack")}async function D(e,{report:t},r){const n=new m.PassThrough,A=new m.PassThrough;if(await i.scriptUtils.hasWorkspaceScript(e,"prepack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "prepack" lifecycle script');if(0!==await i.scriptUtils.executeWorkspaceScript(e,"prepack",[],{stdin:null,stdout:n,stderr:A}))throw new o.lk(s.b.LIFECYCLE_SCRIPT,'Prepack script failed; run "yarn prepack" to investigate')}try{await r()}finally{if(await i.scriptUtils.hasWorkspaceScript(e,"postpack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "postpack" lifecycle script');0!==await i.scriptUtils.executeWorkspaceScript(e,"postpack",[],{stdin:null,stdout:n,stderr:A})&&t.reportWarning(s.b.LIFECYCLE_SCRIPT,'Postpack script failed; run "yarn postpack" to investigate')}}}async function b(e,t){void 0===t&&(t=await k(e));const r=y.P();process.nextTick(async()=>{for(const n of t){const t=f.y1.resolve(e.cwd,n),i=f.y1.join("package",n),o=await p.xfs.lstatPromise(t),s={name:i,mtime:new Date(315532800)};let A,a;const c=new Promise((e,t)=>{A=e,a=t}),u=e=>{e?a(e):A()};if(o.isFile()){let i;i="package.json"===n?Buffer.from(JSON.stringify(await S(e),null,2)):await p.xfs.readFilePromise(t),r.entry({...s,type:"file"},i,u)}else o.isSymbolicLink()&&r.entry({...s,type:"symlink",linkname:await p.xfs.readlinkPromise(t)},u);await c}r.finalize()});const n=(0,w.createGzip)();return r.pipe(n),n}async function S(e){const t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t),t}async function k(e){const t=e.project,r=t.configuration,n={accept:[],reject:[]};for(const e of Q)n.reject.push(e);for(const e of B)n.accept.push(e);n.reject.push(r.get("rcFilename"));const i=t=>{if(null===t||!t.startsWith(e.cwd+"/"))return;const r=f.y1.relative(e.cwd,t),i=f.y1.resolve(f.LZ.root,r);n.reject.push(i)};i(f.y1.resolve(t.cwd,r.get("lockfileFilename"))),i(r.get("bstatePath")),i(r.get("cacheFolder")),i(r.get("globalFolder")),i(r.get("installStatePath")),i(r.get("virtualFolder")),i(r.get("yarnPath")),await r.triggerHook(e=>e.populateYarnPaths,t,e=>{i(e)});for(const r of t.workspaces){const t=f.y1.relative(e.cwd,r.cwd);""===t||t.match(/^(\.\.)?\//)||n.reject.push("/"+t)}const o={accept:[],reject:[]};e.manifest.publishConfig&&e.manifest.publishConfig.main?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.main)):e.manifest.main&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.main)),e.manifest.publishConfig&&e.manifest.publishConfig.module?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.module)):e.manifest.module&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.module));const s=null!==e.manifest.files;if(s){o.reject.push("/*");for(const t of e.manifest.files)F(o.accept,t,{cwd:f.LZ.root})}return await async function(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){const i=[],o=new C.n(e),s=[[f.LZ.root,[n]]];for(;s.length>0;){const[e,n]=s.pop(),A=await o.lstatPromise(e);if(!M(e,{globalList:r,ignoreLists:A.isDirectory()?null:n}))if(A.isDirectory()){const i=await o.readdirPromise(e);let A=!1,a=!1;if(!t||e!==f.LZ.root)for(const e of i)A=A||".gitignore"===e,a=a||".npmignore"===e;const c=a?await x(o,e,(0,f.Zu)(".npmignore")):A?await x(o,e,(0,f.Zu)(".gitignore")):null;let u=null!==c?[c].concat(n):n;M(e,{globalList:r,ignoreLists:n})&&(u=[...n,{accept:[],reject:["**/*"]}]);for(const t of i)s.push([f.y1.resolve(e,t),u])}else i.push(f.y1.relative(f.LZ.root,e))}return i.sort()}(e.cwd,{hasExplicitFileList:s,globalList:n,ignoreList:o})}async function x(e,t,r){const n={accept:[],reject:[]},i=await e.readFilePromise(f.y1.join(t,r),"utf8");for(const e of i.split(/\n/g))F(n.reject,e,{cwd:t});return n}function F(e,t,{cwd:r}){const n=t.trim();""!==n&&"#"!==n[0]&&e.push(function(e,{cwd:t}){const r="!"===e[0];return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=f.y1.resolve(t,e)),r&&(e="!"+e),e}(n,{cwd:r}))}function M(e,{globalList:t,ignoreLists:r}){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0;if(null!==r)for(const t of r){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0}return!1}function N(e,t){let r=t;const n=[];for(let e=0;e<t.length;++e)"!"!==t[e][0]?r!==t&&r.push(t[e]):(r===t&&(r=t.slice(0,e)),n.push(t[e].slice(1)));return!R(e,n)&&!!R(e,r)}function R(e,t){let r=t;const n=[];for(let e=0;e<t.length;++e)t[e].includes("/")?r!==t&&r.push(t[e]):(r===t&&(r=t.slice(0,e)),n.push(t[e]));return!!I().isMatch(e,r,{dot:!0,nocase:!0})||!!I().isMatch(e,n,{dot:!0,basename:!0,nocase:!0})}class K extends a.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=!1,this.dryRun=!1,this.json=!1}async execute(){const e=await c.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await u.I.find(e,this.context.cwd);if(!r)throw new a.WorkspaceRequiredError(t.cwd,this.context.cwd);await v(r)&&(this.installIfNeeded?await t.install({cache:await l.C.find(e),report:new h.$}):await t.restoreInstallState());const n=void 0!==this.out?f.y1.resolve(this.context.cwd,function(e,{workspace:t}){const r=e.replace("%s",function(e){return null!==e.manifest.name?i.structUtils.slugifyIdent(e.manifest.name):"package"}(t)).replace("%v",function(e){return null!==e.manifest.version?e.manifest.version:"unknown"}(t));return f.cS.toPortablePath(r)}(this.out,{workspace:r})):f.y1.resolve(r.cwd,"package.tgz");return(await g.P.start({configuration:e,stdout:this.context.stdout,json:this.json},async t=>{await D(r,{report:t},async()=>{t.reportJson({base:r.cwd});const e=await k(r);for(const r of e)t.reportInfo(null,r),t.reportJson({location:r});if(!this.dryRun){const t=await b(r,e),i=p.xfs.createWriteStream(n);t.pipe(i),await new Promise(e=>{i.on("finish",e)})}}),this.dryRun||(t.reportInfo(s.b.UNNAMED,"Package archive generated in "+e.format(n,"magenta")),t.reportJson({output:n}))})).exitCode()}}K.usage=d.Command.Usage({description:"generate a tarball from the active workspace",details:"\n      This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n      If the `--install-if-needed` flag is set Yarn will run a preliminary `yarn install` if the package contains build scripts.\n\n      If the `-n,--dry-run` flag is set the command will just print the file paths without actually generating the package archive.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n    ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]}),(0,A.gn)([d.Command.Boolean("--install-if-needed")],K.prototype,"installIfNeeded",void 0),(0,A.gn)([d.Command.Boolean("-n,--dry-run")],K.prototype,"dryRun",void 0),(0,A.gn)([d.Command.Boolean("--json")],K.prototype,"json",void 0),(0,A.gn)([d.Command.String("--filename",{hidden:!1}),d.Command.String("-o,--out")],K.prototype,"out",void 0),(0,A.gn)([d.Command.Path("pack")],K.prototype,"execute",null);const L=["dependencies","devDependencies","peerDependencies"],T={hooks:{beforeWorkspacePacking:(e,t)=>{t.publishConfig&&(t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));const r=e.project;for(const n of L)for(const A of e.manifest.getForScope(n).values()){const e=r.tryWorkspaceByDescriptor(A),a=i.structUtils.parseRange(A.range);if("workspace:"===a.protocol)if(null===e){if(null===r.tryWorkspaceByIdent(A))throw new o.lk(s.b.WORKSPACE_NOT_FOUND,i.structUtils.prettyDescriptor(r.configuration,A)+": No local workspace found for this range")}else{let r;r=i.structUtils.areDescriptorsEqual(A,e.anchoredDescriptor)||"*"===a.selector?e.manifest.version:a.selector,t[n][i.structUtils.stringifyIdent(A)]=r}}}},commands:[K]}},5698:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchUtils:()=>n,default:()=>q});var n={};r.r(n),r.d(n,{applyPatchFile:()=>g,diffFolders:()=>L,extractPackageToDisk:()=>K,isParentRequired:()=>N,loadPatchFiles:()=>R,makeDescriptor:()=>x,makeLocator:()=>F,parseDescriptor:()=>b,parseLocator:()=>S,parsePatchFile:()=>B});var i=r(84132),o=r(56537),s=r(46009),A=r(90739),a=r(75448),c=r(29486),u=r(33720),l=r(78420);async function h(e,t,r){const n=await e.lstatPromise(t),i=await r();if(void 0!==i&&(t=i),e.lutimesPromise)await e.lutimesPromise(t,n.atime,n.mtime);else{if(n.isSymbolicLink())throw new Error("Cannot preserve the time values of a symlink");await e.utimesPromise(t,n.atime,n.mtime)}}async function g(e,{baseFs:t=new l.S,dryRun:r=!1,version:n=null}={}){for(const o of e)if(null===o.semverExclusivity||null===n||i.semverUtils.satisfiesWithPrereleases(n,o.semverExclusivity))switch(o.type){case"file deletion":if(r){if(!t.existsSync(o.path))throw new Error("Trying to delete file that doesn't exist: "+o.path)}else await h(t,s.y1.dirname(o.path),async()=>{await t.unlinkPromise(o.path)});break;case"rename":if(r){if(!t.existsSync(o.fromPath))throw new Error("Trying to move file that doesn't exist: "+o.fromPath)}else await h(t,s.y1.dirname(o.fromPath),async()=>{await h(t,s.y1.dirname(o.toPath),async()=>{await h(t,o.fromPath,async()=>(await t.movePromise(o.fromPath,o.toPath),o.toPath))})});break;case"file creation":if(r){if(t.existsSync(o.path))throw new Error("Trying to create file that already exists: "+o.path)}else{const e=o.hunk?o.hunk.parts[0].lines.join("\n")+(o.hunk.parts[0].noNewlineAtEndOfFile?"":"\n"):"";await t.mkdirpPromise(s.y1.dirname(o.path),{chmod:493,utimes:[315532800,315532800]}),await t.writeFilePromise(o.path,e,{mode:o.mode}),await t.utimesPromise(o.path,315532800,315532800)}break;case"patch":await h(t,o.path,async()=>{await d(o,{baseFs:t,dryRun:r})});break;case"mode change":{const e=(await t.statPromise(o.path)).mode;if(f(o.newMode)!==f(e))continue;await h(t,o.path,async()=>{await t.chmodPromise(o.path,o.newMode)})}break;default:i.miscUtils.assertNever(o)}}function f(e){return(64&e)>0}function p(e){return e.replace(/\s+$/,"")}async function d({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){const o=await r.statSync(t).mode,s=(await r.readFileSync(t,"utf8")).split(/\n/),A=[];let a=0,c=0;for(const t of e){const r=Math.max(c,t.header.patched.start+a),n=Math.max(0,r-c),i=Math.max(0,s.length-r-t.header.original.length),o=Math.max(n,i);let u=0,l=0,h=null;for(;u<=o;){if(u<=n&&(l=r-u,h=C(t,s,l),null!==h)){u=-u;break}if(u<=i&&(l=r+u,h=C(t,s,l),null!==h))break;u+=1}if(null===h)throw new Error("Cannot apply hunk #"+(e.indexOf(t)+1));A.push(h),a+=u,c=l+t.header.original.length}if(n)return;let u=0;for(const e of A)for(const t of e)switch(t.type){case"splice":{const e=t.index+u;s.splice(e,t.numToDelete,...t.linesToInsert),u+=t.linesToInsert.length-t.numToDelete}break;case"pop":s.pop();break;case"push":s.push(t.line);break;default:i.miscUtils.assertNever(t)}await r.writeFilePromise(t,s.join("\n"),{mode:o})}function C(e,t,r){const n=[];for(const s of e.parts)switch(s.type){case"deletion":case"context":for(const e of s.lines){const n=t[r];if(null==n||(o=e,p(n)!==p(o)))return null;r+=1}"deletion"===s.type&&(n.push({type:"splice",index:r-s.lines.length,numToDelete:s.lines.length,linesToInsert:[]}),s.noNewlineAtEndOfFile&&n.push({type:"push",line:""}));break;case"insertion":n.push({type:"splice",index:r,numToDelete:0,linesToInsert:s.lines}),s.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:i.miscUtils.assertNever(s.type)}var o;return n}const E=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function I(e){return s.y1.relative(s.LZ.root,s.y1.resolve(s.LZ.root,s.cS.toPortablePath(e)))}function m(e){const t=e.trim().match(E);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}const y={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function w(e){const t=511&parseInt(e,8);if(420!==t&&493!==t)throw new Error("Unexpected file mode string: "+e);return t}function B(e){const t=e.split(/\n/g);return""===t[t.length-1]&&t.pop(),function(e){const t=[];for(const r of e){const{semverExclusivity:e,diffLineFromPath:n,diffLineToPath:o,oldMode:s,newMode:A,deletedFileMode:a,newFileMode:c,renameFrom:u,renameTo:l,beforeHash:h,afterHash:g,fromPath:f,toPath:p,hunks:d}=r,C=u?"rename":a?"file deletion":c?"file creation":d&&d.length>0?"patch":"mode change";let E=null;switch(C){case"rename":if(!u||!l)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:e,fromPath:I(u),toPath:I(l)}),E=l;break;case"file deletion":{const r=n||f;if(!r)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(a),hash:h})}break;case"file creation":{const r=o||p;if(!r)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(c),hash:g})}break;case"patch":case"mode change":E=p||o;break;default:i.miscUtils.assertNever(C)}E&&s&&A&&s!==A&&t.push({type:"mode change",semverExclusivity:e,path:I(E),oldMode:w(s),newMode:w(A)}),E&&d&&d.length&&t.push({type:"patch",semverExclusivity:e,path:I(E),hunks:d,beforeHash:h,afterHash:g})}return t}(function(e){const t=[];let r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null},n="parsing header",o=null,s=null;function A(){o&&(s&&(o.parts.push(s),s=null),r.hunks.push(o),o=null)}function a(){A(),t.push(r),r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}}for(let t=0;t<e.length;t++){const c=e[t];if("parsing header"===n)if(c.startsWith("@@"))n="parsing hunks",r.hunks=[],t-=1;else if(c.startsWith("diff --git ")){r&&r.diffLineFromPath&&a();const e=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!e)throw new Error("Bad diff line: "+c);r.diffLineFromPath=e[1],r.diffLineToPath=e[2]}else if(c.startsWith("old mode "))r.oldMode=c.slice("old mode ".length).trim();else if(c.startsWith("new mode "))r.newMode=c.slice("new mode ".length).trim();else if(c.startsWith("deleted file mode "))r.deletedFileMode=c.slice("deleted file mode ".length).trim();else if(c.startsWith("new file mode "))r.newFileMode=c.slice("new file mode ".length).trim();else if(c.startsWith("rename from "))r.renameFrom=c.slice("rename from ".length).trim();else if(c.startsWith("rename to "))r.renameTo=c.slice("rename to ".length).trim();else if(c.startsWith("index ")){const e=c.match(/(\w+)\.\.(\w+)/);if(!e)continue;r.beforeHash=e[1],r.afterHash=e[2]}else c.startsWith("semver exclusivity ")?r.semverExclusivity=c.slice("semver exclusivity ".length).trim():c.startsWith("--- ")?r.fromPath=c.slice("--- a/".length).trim():c.startsWith("+++ ")&&(r.toPath=c.slice("+++ b/".length).trim());else{const e=y[c[0]]||null;switch(e){case"header":A(),o={header:m(c),parts:[]};break;case null:n="parsing header",a(),t-=1;break;case"pragma":if(!c.startsWith("\\ No newline at end of file"))throw new Error("Unrecognized pragma in patch file: "+c);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0;break;case"insertion":case"deletion":case"context":if(!o)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==e&&(o.parts.push(s),s=null),s||(s={type:e,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1));break;default:i.miscUtils.assertNever(e)}}}a();for(const{hunks:e}of t)if(e)for(const t of e)Q(t);return t}(t))}function Q(e){let t=0,r=0;for(const{type:n,lines:o}of e.parts)switch(n){case"context":r+=o.length,t+=o.length;break;case"deletion":t+=o.length;break;case"insertion":r+=o.length;break;default:i.miscUtils.assertNever(n)}if(t!==e.header.original.length||r!==e.header.patched.length){const n=e=>e<0?e:"+"+e;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}const v=/^builtin<([^>]+)>$/;function D(e,t){const{source:r,selector:n,params:o}=i.structUtils.parseRange(e);if(null===r)throw new Error("Patch locators must explicitly define their source");const A=n?n.split(/&/).map(e=>s.cS.toPortablePath(e)):[],a=o&&"string"==typeof o.locator?i.structUtils.parseLocator(o.locator):null,c=o&&"string"==typeof o.version?o.version:null;return{parentLocator:a,sourceItem:t(r),patchPaths:A,sourceVersion:c}}function b(e){const{sourceItem:t,...r}=D(e.range,i.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function S(e){const{sourceItem:t,...r}=D(e.reference,i.structUtils.parseLocator);return{...r,sourceLocator:t}}function k({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:o},s){const A=null!==e?{locator:i.structUtils.stringifyLocator(e)}:{},a=void 0!==n?{version:n}:{},c=void 0!==o?{hash:o}:{};return i.structUtils.makeRange({protocol:"patch:",source:s(t),selector:r.join("&"),params:{...a,...c,...A}})}function x(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,patchPaths:n},i.structUtils.stringifyDescriptor))}function F(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:o}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:o},i.structUtils.stringifyLocator))}function M({onAbsolute:e,onRelative:t,onBuiltin:r},n){const i=n.match(v);return null!==i?r(i[1]):s.y1.isAbsolute(n)?e(n):t(n)}function N(e){return M({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},e)}async function R(e,t,r){const n=null!==e?await r.fetcher.fetch(e,r):null,A=n&&n.localPath?{packageFs:new a.M(s.LZ.root),prefixPath:s.y1.relative(s.LZ.root,n.localPath)}:n;n&&n!==A&&n.releaseFs&&n.releaseFs();return(await i.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async e=>M({onAbsolute:async()=>await o.xfs.readFilePromise(e,"utf8"),onRelative:async()=>{if(null===n)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(e,"utf8")},onBuiltin:async e=>await r.project.configuration.firstHook(e=>e.getBuiltinPatch,r.project,e)},e))))).map(e=>"string"==typeof e?e.replace(/\r\n?/g,"\n"):e)}async function K(e,{cache:t,project:r}){const n=r.storedChecksums,A=new u.$,a=r.configuration.makeFetcher(),c=await a.fetch(e,{cache:t,project:r,fetcher:a,checksums:n,report:A}),l=await o.xfs.mktempPromise();return await o.xfs.copyPromise(l,c.prefixPath,{baseFs:c.packageFs}),await o.xfs.writeJsonPromise(s.y1.join(l,".yarn-patch.json"),{locator:i.structUtils.stringifyLocator(e)}),o.xfs.detachTemp(l),l}async function L(e,t){const r=s.cS.fromPortablePath(e).replace(/\\/g,"/"),n=s.cS.fromPortablePath(t).replace(/\\/g,"/"),{stdout:o}=await i.execUtils.execvp("git",["diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index",r,n],{cwd:s.cS.toPortablePath(process.cwd())}),A=r.startsWith("/")?e=>e.slice(1):e=>e;return o.replace(new RegExp(`(a|b)(${i.miscUtils.escapeRegExp(`/${A(r)}/`)})`,"g"),"$1/").replace(new RegExp("(a|b)"+i.miscUtils.escapeRegExp(`/${A(n)}/`),"g"),"$1/").replace(new RegExp(i.miscUtils.escapeRegExp(r+"/"),"g"),"").replace(new RegExp(i.miscUtils.escapeRegExp(n+"/"),"g"),"")}var T=r(36370),P=r(95397),U=r(27122),_=r(40376),O=r(28148),j=r(17278);class Y extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const A=s.y1.resolve(this.context.cwd,s.cS.toPortablePath(this.patchFolder)),a=s.y1.join(A,".yarn-patch.json");if(!o.xfs.existsSync(a))throw new j.UsageError("The argument folder didn't get created by 'yarn patch'");const c=await o.xfs.readJsonPromise(a),u=i.structUtils.parseLocator(c.locator,!0);if(!t.storedPackages.has(u.locatorHash))throw new j.UsageError("No package found in the project for the given locator");const l=await K(u,{cache:n,project:t});this.context.stdout.write(await L(l,A))}}Y.usage=j.Command.Usage({description:"\n      This will turn the folder passed in parameter into a patchfile suitable for consumption with the `patch:` protocol.\n\n      Only folders generated through `yarn patch` are accepted as valid input for `yarn patch-commit`.\n    "}),(0,T.gn)([j.Command.String()],Y.prototype,"patchFolder",void 0),(0,T.gn)([j.Command.Path("patch-commit")],Y.prototype,"execute",null);var G=r(15815),J=r(92659);class H extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();let o=i.structUtils.parseLocator(this.package);if("unknown"===o.reference){const r=i.miscUtils.mapAndFilter([...t.storedPackages.values()],e=>e.identHash!==o.identHash||i.structUtils.isVirtualLocator(e)?i.miscUtils.mapAndFilter.skip:e);if(0===r.length)throw new j.UsageError("No package found in the project for the given locator");if(r.length>1)throw new j.UsageError("Multiple candidate packages found; explicitly choose one of them (use `yarn why <package>` to get more information as to who depends on them):\n"+r.map(t=>"\n- "+i.structUtils.prettyLocator(e,t)).join(""));o=r[0]}if(!t.storedPackages.has(o.locatorHash))throw new j.UsageError("No package found in the project for the given locator");await G.P.start({configuration:e,stdout:this.context.stdout},async r=>{const A=await K(o,{cache:n,project:t});r.reportInfo(J.b.UNNAMED,`Package ${i.structUtils.prettyLocator(e,o)} got extracted with success!`),r.reportInfo(J.b.UNNAMED,"You can now edit the following folder: "+e.format(s.cS.fromPortablePath(A),"magenta")),r.reportInfo(J.b.UNNAMED,`Once you are done run ${e.format("yarn patch-commit "+s.cS.fromPortablePath(A),"cyan")} and Yarn will store a patchfile based on your changes.`)})}}H.usage=j.Command.Usage({description:'\n      This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n    '}),(0,T.gn)([j.Command.String()],H.prototype,"package",void 0),(0,T.gn)([j.Command.Path("patch")],H.prototype,"execute",null);const q={commands:[Y,H],fetchers:[class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:o,prefixPath:i.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async patchPackage(e,t){const{parentLocator:r,sourceLocator:n,sourceVersion:u,patchPaths:l}=S(e),h=await R(r,l,t),f=await o.xfs.mktempPromise(),p=s.y1.join(f,"patched.zip"),d=await t.fetcher.fetch(n,t),C=i.structUtils.getIdentVendorPath(e),E=await(0,c.getLibzipPromise)(),I=new A.d(p,{libzip:E,create:!0,level:t.project.configuration.get("compressionLevel")});await I.mkdirpPromise(C),await i.miscUtils.releaseAfterUseAsync(async()=>{await I.copyPromise(C,d.prefixPath,{baseFs:d.packageFs,stableSort:!0})},d.releaseFs),I.saveAndClose();const m=new A.d(p,{libzip:E,level:t.project.configuration.get("compressionLevel")}),y=new a.M(s.y1.resolve(s.LZ.root,C),{baseFs:m});for(const e of h)null!==e&&await g(B(e),{baseFs:y,version:u});return m}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){const{patchPaths:n}=b(e);return n.every(e=>!N(e))?e:i.structUtils.bindDescriptor(e,{locator:i.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){const{sourceDescriptor:r}=b(e);return[r]}async getCandidates(e,t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const{parentLocator:n,sourceDescriptor:o,patchPaths:s}=b(e),A=await R(n,s,r.fetchOptions),a=t.get(o.descriptorHash);if(void 0===a)throw new Error("Assertion failed: The dependency should have been resolved");return[F(e,{parentLocator:n,sourcePackage:a,patchPaths:s,patchHash:i.hashUtils.makeHash("2",...A).slice(0,6)})]}async resolve(e,t){const{sourceLocator:r}=S(e);return{...await t.resolver.resolve(r,t),...e}}}]}},5780:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>b,quotePathIfNeeded:()=>S,AbstractPnpInstaller:()=>d,PnpInstaller:()=>m,PnpLinker:()=>I,default:()=>k});var n=r(27122),i=r(46009),o=r(56537),s=r(53887),A=r.n(s),a=r(92659),c=r(92409),u=r(84132),l=r(75448),h=r(88563),g=r(17278),f=r(46611),p=r(32485);class d{constructor(e){this.opts=e,this.packageRegistry=new Map,this.blacklistedPaths=new Set,this.opts=e}checkAndReportManifestIncompatibility(e,t){return e&&!e.isCompatibleWithOS(process.platform)?(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_OS,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The platform ${process.platform} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1):!(e&&!e.isCompatibleWithCPU(process.arch))||(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_CPU,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The CPU architecture ${process.arch} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1)}async installPackage(e,t){const r=u.structUtils.requirableIdent(e),n=e.reference,o=e.peerDependencies.size>0&&!u.structUtils.isVirtualLocator(e)&&!this.opts.project.tryWorkspaceByLocator(e),s=!o||this.opts.skipIncompatiblePackageLinking?await f.G.tryFind(t.prefixPath,{baseFs:t.packageFs}):null,A=this.checkAndReportManifestIncompatibility(s,e);if(this.opts.skipIncompatiblePackageLinking&&!A)return{packageLocation:null,buildDirective:null};const c=o?[]:await this.getBuildScripts(e,s,t);c.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(a.b.DISABLED_BUILD_SCRIPTS,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but all build scripts have been disabled."),c.length=0),c.length>0&&e.linkType!==p.U.HARD&&!this.opts.project.tryWorkspaceByLocator(e)&&(this.opts.report.reportWarningOnce(a.b.SOFT_LINK_BUILD,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),c.length=0);const l=this.opts.project.getDependencyMeta(e,e.version);c.length>0&&l&&!1===l.built&&(this.opts.report.reportInfoOnce(a.b.BUILD_DISABLED,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but its build has been explicitly disabled through configuration."),c.length=0);const h=o||e.linkType===p.U.SOFT?t.packageFs:await this.transformPackage(e,s,t,l,{hasBuildScripts:c.length>0});if(i.y1.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);const g=i.y1.resolve(h.getRealPath(),t.prefixPath),d=this.normalizeDirectoryPath(g),C=new Map,E=new Set;if(u.structUtils.isVirtualLocator(e))for(const t of e.peerDependencies.values())C.set(u.structUtils.requirableIdent(t),null),E.add(u.structUtils.stringifyIdent(t));return u.miscUtils.getMapWithDefault(this.packageRegistry,r).set(n,{packageLocation:d,packageDependencies:C,packagePeers:E,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),o&&this.blacklistedPaths.add(d),{packageLocation:g,buildDirective:c.length>0&&A?c:null}}async attachInternalDependencies(e,t){const r=this.getPackageInformation(e);for(const[e,n]of t){const t=u.structUtils.areIdentsEqual(e,n)?n.reference:[u.structUtils.requirableIdent(n),n.reference];r.packageDependencies.set(u.structUtils.requirableIdent(e),t)}}async attachExternalDependents(e,t){for(const r of t){this.getDiskInformation(r).packageDependencies.set(u.structUtils.requirableIdent(e),e.reference)}}async finalizeInstall(){this.trimBlacklistedPackages(),this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));const e=this.opts.project.configuration.get("pnpFallbackMode"),t=this.blacklistedPaths,r=this.opts.project.workspaces.map(({anchoredLocator:e})=>({name:u.structUtils.requirableIdent(e),reference:e.reference})),n="none"!==e,i=[],o=this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator).packageDependencies,s=u.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),A=this.packageRegistry,a=this.opts.project.configuration.get("pnpShebang");if("dependencies-only"===e)for(const e of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(e)&&i.push({name:u.structUtils.requirableIdent(e),reference:e.reference});return await this.finalizeInstallWithPnp({blacklistedLocations:t,dependencyTreeRoots:r,enableTopLevelFallback:n,fallbackExclusionList:i,fallbackPool:o,ignorePattern:s,packageRegistry:A,shebang:a})}getPackageInformation(e){const t=u.structUtils.requirableIdent(e),r=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${u.structUtils.prettyIdent(this.opts.project.configuration,e)})`);const i=n.get(r);if(!i)throw new Error(`Assertion failed: The package information should have been available (for ${u.structUtils.prettyLocator(this.opts.project.configuration,e)})`);return i}getDiskInformation(e){const t=u.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),r=this.normalizeDirectoryPath(e);return u.miscUtils.getFactoryWithDefault(t,r,()=>({packageLocation:r,packageDependencies:new Map,packagePeers:new Set,linkType:p.U.SOFT,discardFromLookup:!1}))}trimBlacklistedPackages(){for(const e of this.packageRegistry.values())for(const[t,r]of e)r.packageLocation&&this.blacklistedPaths.has(r.packageLocation)&&e.delete(t)}normalizeDirectoryPath(e){let t=i.y1.relative(this.opts.project.cwd,e);return t.match(/^\.{0,2}\//)||(t="./"+t),t.replace(/\/?$/,"/")}}const C=new Set([u.structUtils.makeIdent(null,"nan").identHash,u.structUtils.makeIdent(null,"node-gyp").identHash,u.structUtils.makeIdent(null,"node-pre-gyp").identHash,u.structUtils.makeIdent(null,"node-addon-api").identHash,u.structUtils.makeIdent(null,"fsevents").identHash]),E=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);class I{constructor(){this.mode="strict"}supportsPackage(e,t){return"pnp"===t.project.configuration.get("nodeLinker")&&t.project.configuration.get("pnpMode")===this.mode}async findPackageLocation(e,t){const r=b(t.project).main;if(!o.xfs.existsSync(r))throw new g.UsageError(`The project in ${t.project.cwd}/package.json doesn't seem to have been installed - running an install there might help`);const n=u.miscUtils.dynamicRequireNoCache(r),s={name:u.structUtils.requirableIdent(e),reference:e.reference},A=n.getPackageInformation(s);if(!A)throw new g.UsageError(`Couldn't find ${u.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return i.cS.toPortablePath(A.packageLocation)}async findPackageLocator(e,t){const n=b(t.project).main;if(!o.xfs.existsSync(n))return null;const s=i.cS.fromPortablePath(n),A=u.miscUtils.dynamicRequire(s);delete r.c[s];const a=A.findPackageLocator(i.cS.fromPortablePath(e));return a?u.structUtils.makeLocator(u.structUtils.parseIdent(a.name),a.reference):null}makeInstaller(e){return new m(e)}}class m extends d{constructor(){super(...arguments),this.mode="strict",this.unpluggedPaths=new Set}async getBuildScripts(e,t,r){if(null===t)return[];const n=[];for(const e of["preinstall","install","postinstall"])t.scripts.has(e)&&n.push([c.k.SCRIPT,e]);const o=i.y1.join(r.prefixPath,(0,i.Zu)("binding.gyp"));return!t.scripts.has("install")&&r.packageFs.existsSync(o)&&n.push([c.k.SHELLCODE,"node-gyp rebuild"]),n}async transformPackage(e,t,r,n,{hasBuildScripts:i}){return this.isUnplugged(e,t,r,n,{hasBuildScripts:i})?this.unplugPackage(e,r.packageFs):r.packageFs}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=b(this.opts.project),r=this.opts.project.configuration.get("pnpDataPath");if(await o.xfs.removePromise(t.other),"pnp"!==this.opts.project.configuration.get("nodeLinker"))return await o.xfs.removePromise(t.main),void await o.xfs.removePromise(r);const n=await this.locateNodeModules();if(n.length>0){this.opts.report.reportWarning(a.b.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(const e of n)await o.xfs.removePromise(e)}if(this.opts.project.configuration.get("pnpEnableInlining")){const n=(0,h.gY)(e);await o.xfs.changeFilePromise(t.main,n,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.removePromise(r)}else{const n=i.y1.relative(i.y1.dirname(t.main),r),{dataFile:s,loaderFile:A}=(0,h.Q$)({...e,dataLocation:n});await o.xfs.changeFilePromise(t.main,A,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.changeFilePromise(r,s,{automaticNewlines:!0}),await o.xfs.chmodPromise(r,420)}const s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(0===this.unpluggedPaths.size)await o.xfs.removePromise(s);else for(const e of await o.xfs.readdirPromise(s)){const t=i.y1.resolve(s,e);this.unpluggedPaths.has(t)||await o.xfs.removePromise(t)}}async locateNodeModules(){const e=[];for(const t of this.opts.project.workspaces){const r=i.y1.join(t.cwd,(0,i.Zu)("node_modules"));if(!o.xfs.existsSync(r))continue;const n=await o.xfs.readdirPromise(r,{withFileTypes:!0}),s=n.filter(e=>!e.isDirectory()||".bin"===e.name||!e.name.startsWith("."));if(s.length===n.length)e.push(r);else for(const t of s)e.push(i.y1.join(r,t.name))}return e}getUnpluggedPath(e){return i.y1.resolve(this.opts.project.configuration.get("pnpUnpluggedFolder"),u.structUtils.slugifyLocator(e))}async unplugPackage(e,t){const r=this.getUnpluggedPath(e);return this.unpluggedPaths.add(r),await o.xfs.mkdirpPromise(r),await o.xfs.copyPromise(r,i.LZ.dot,{baseFs:t,overwrite:!1}),new l.M(r)}isUnplugged(e,t,r,n,{hasBuildScripts:i}){return void 0!==n.unplugged?n.unplugged:!!C.has(e.identHash)||(null!==t&&null!==t.preferUnplugged?t.preferUnplugged:!(!i&&!r.packageFs.getExtractHint({relevantExtensions:E})))}}var y=r(36370),w=r(95397),B=r(40376),Q=r(28148),v=r(15815);class D extends w.BaseCommand{constructor(){super(...arguments),this.patterns=[]}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await B.I.find(e,this.context.cwd),i=await Q.C.find(e);if(!r)throw new w.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=t.topLevelWorkspace;for(const e of this.patterns){const t=u.structUtils.parseDescriptor(e);o.manifest.ensureDependencyMeta(t).unplugged=!0}await o.persistManifest();return(await v.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:i,report:e})})).exitCode()}}D.usage=g.Command.Usage({description:"force the unpacking of a list of packages",details:"\n      This command will add the specified selectors to the list of packages that must be unplugged when installed.\n\n      A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `virtualFolder`.\n\n      Unpacking a package isn't advised as a general tool because it makes it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n      The unplug command sets a flag that's persisted in your top-level `package.json` through the `dependenciesMeta` field. As such, to undo its effects, just revert the changes made to the manifest and run `yarn install`.\n    ",examples:[["Unplug lodash","yarn unplug lodash"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"]]}),(0,y.gn)([g.Command.Rest()],D.prototype,"patterns",void 0),(0,y.gn)([g.Command.Path("unplug")],D.prototype,"execute",null);const b=e=>{let t,r;return"module"===e.topLevelWorkspace.manifest.type?(t=".pnp.cjs",r=".pnp.js"):(t=".pnp.js",r=".pnp.cjs"),{main:i.y1.join(e.cwd,t),other:i.y1.join(e.cwd,r)}},S=e=>/\s/.test(e)?JSON.stringify(e):e;const k={hooks:{populateYarnPaths:async function(e,t){t(b(e).main),t(b(e).other),t(e.configuration.get("pnpDataPath")),t(e.configuration.get("pnpUnpluggedFolder"))},setupScriptEnvironment:async function(e,t,r){const n=b(e).main,s="--require "+S(i.cS.fromPortablePath(n));if(n.includes(" ")&&A().lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(o.xfs.existsSync(n)){let e=t.NODE_OPTIONS||"";const r=/\s*--require\s+\S*\.pnp\.c?js\s*/g;e=e.replace(r," ").trim(),e=e?`${s} ${e}`:s,t.NODE_OPTIONS=e}}},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:n.a2.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:n.a2.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:n.a2.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:n.a2.STRING,default:[],isArray:!0},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:n.a2.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:n.a2.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:n.a2.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:n.a2.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[I],commands:[D]}},28638:(e,t,r)=>{"use strict";r.r(t);var n=r(50683),i=r.n(n);Object.fromEntries||(Object.fromEntries=i());var o=r(59355),s=r(91058),A=r(45330);(0,s.D)({binaryVersion:o.o||"<unknown>",pluginConfiguration:(0,A.e)()})},95397:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseCommand:()=>n.F,WorkspaceRequiredError:()=>A,getDynamicLibs:()=>c,getPluginConfiguration:()=>u.e,openWorkspace:()=>h,main:()=>g.D});var n=r(56087),i=r(46611),o=r(46009),s=r(17278);class A extends s.UsageError{constructor(e,t){super(`This command can only be run from within a workspace of your project (${o.y1.relative(e,t)} isn't a workspace of ${o.y1.join(e,i.G.fileName)}).`)}}const a=["@yarnpkg/cli","@yarnpkg/core","@yarnpkg/fslib","@yarnpkg/libzip","@yarnpkg/parsers","@yarnpkg/shell","clipanion","semver","yup"],c=()=>new Map(a.map(e=>[e,r(98497)(e)]));var u=r(45330),l=r(40376);async function h(e,t){const{project:r,workspace:n}=await l.I.find(e,t);if(!n)throw new A(r.cwd,t);return n}var g=r(91058)},91058:(e,t,r)=>{"use strict";r.d(t,{D:()=>h});var n=r(27122),i=r(46009),o=r(56537),s=r(63129),A=r(17278),a=r(35747),c=r(36370),u=r(56087);class l extends u.F{async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);this.context.stdout.write((e=>`\n${e.format("Welcome on Yarn 2!","bold")} 🎉 Thanks for helping us shape our vision of how projects\nshould be managed going forward.\n\nBeing still in RC, Yarn 2 isn't completely stable yet. Some features might be\nmissing, and some behaviors may have received major overhaul. In case of doubt,\nuse the following URLs to get some insight:\n\n  - The changelog:\n    ${e.format("https://github.com/yarnpkg/berry/tree/CHANGELOG.md","cyan")}\n\n  - Our issue tracker:\n    ${e.format("https://github.com/yarnpkg/berry","cyan")}\n\n  - Our Discord server:\n    ${e.format("https://discord.gg/yarnpkg","cyan")}\n\nWe're hoping you will enjoy the experience. For now, a good start is to run\nthe two following commands:\n\n  ${e.format("find . -name node_modules -prune -exec rm -r {} \\;","magenta")}\n  ${e.format("yarn install","magenta")}\n\nOne last trick! If you need at some point to upgrade Yarn to a nightly build,\nthe following command will install the CLI straight from master:\n\n  ${e.format("yarn set version from sources","magenta")}\n\nSee you later 👋\n`)(e).trim()+"\n")}}async function h({binaryVersion:e,pluginConfiguration:t}){async function r(){const c=new A.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:e});c.register(l);try{await async function(e){const A=await n.VK.find(i.cS.toPortablePath(process.cwd()),t,{usePath:!0,strict:!1}),c=A.get("yarnPath"),u=A.get("ignorePath"),l=A.get("ignoreCwd");if(null===c||u){u&&delete process.env.YARN_IGNORE_PATH;for(const t of A.plugins.values())for(const r of t.commands||[])e.register(r);const n=e.process(process.argv.slice(2)),o=n.cwd;if(void 0!==o&&!l){const e=(0,a.realpathSync)(process.cwd()),t=(0,a.realpathSync)(o);if(e!==t)return process.chdir(o),void await r()}e.runExit(n,{cwd:i.cS.toPortablePath(process.cwd()),plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}else if(o.xfs.existsSync(c))try{!function(e){const t=i.cS.fromPortablePath(e);process.on("SIGINT",()=>{}),t?(0,s.execFileSync)(process.execPath,[t,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,s.execFileSync)(t,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}(c)}catch(e){process.exitCode=e.code||1}else process.stdout.write(e.error(new Error(`The "yarn-path" option has been set (in ${A.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1}(c)}catch(e){process.stdout.write(c.error(e)),process.exitCode=1}}return r().catch(e=>{process.stdout.write(e.stack||e.message),process.exitCode=1})}(0,c.gn)([A.Command.Path("--welcome")],l.prototype,"execute",null)},56087:(e,t,r)=>{"use strict";r.d(t,{F:()=>o});var n=r(36370),i=r(17278);class o extends i.Command{}(0,n.gn)([i.Command.String("--cwd",{hidden:!0})],o.prototype,"cwd",void 0)},28148:(e,t,r)=>{"use strict";r.d(t,{C:()=>C});var n=r(78420),i=r(90739),o=r(15037),s=r(46009),A=r(56537),a=r(29486),c=r(35747),u=r.n(c),l=r(92659),h=r(35691),g=r(20624),f=r(73632),p=r(54143);const d=5;class C{constructor(e,{configuration:t,immutable:r=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set,this.mutexes=new Map,this.configuration=t,this.cwd=e,this.immutable=r,this.check=n;const o=t.get("cacheKeyOverride");if(null!==o)this.cacheKey=""+o;else{const e=t.get("compressionLevel"),r=e!==i.k?"c"+e:"";this.cacheKey=[d,r].join("")}}static async find(e,{immutable:t,check:r}={}){const n=new C(e.get("cacheFolder"),{configuration:e,immutable:t,check:r});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;const e=this.configuration.get("globalFolder")+"/cache";return e!==this.cwd?e:null}getVersionFilename(e){return`${p.slugifyLocator(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){const r=function(e){const t=e.indexOf("/");return-1!==t?e.slice(t+1):e}(t).slice(0,10);return`${p.slugifyLocator(e)}-${r}.zip`}getLocatorPath(e,t){if(null===this.mirrorCwd)return s.y1.resolve(this.cwd,this.getVersionFilename(e));if(null===t)return null;return E(t)!==this.cacheKey?null:s.y1.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){const t=this.mirrorCwd;return null!==t?s.y1.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache")){await A.xfs.mkdirpPromise(this.cwd);const e=s.y1.resolve(this.cwd,(0,s.Zu)(".gitignore"));await A.xfs.existsPromise(e)||await A.xfs.writeFilePromise(e,"/.gitignore\n*.lock\n")}}async fetchPackageFromCache(e,t,{onHit:r,onMiss:c,loader:d,skipIntegrityCheck:C}){const I=this.getLocatorMirrorPath(e),m=new n.S,y=async(e,r=null)=>{const n=C&&t?t:`${this.cacheKey}/${await g.checksumFile(e)}`;if(null!==r){if(n!==(C&&t?t:`${this.cacheKey}/${await g.checksumFile(r)}`))throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(null!==t&&n!==t){let e;switch(e=this.check?"throw":E(t)!==E(n)?"update":this.configuration.get("checksumBehavior"),e){case"ignore":return t;case"update":return n;default:case"throw":throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return n},w=async t=>{if(!d)throw new Error("Cache check required but no loader configured for "+p.prettyLocator(this.configuration,e));const r=await d(),n=r.getRealPath();return r.saveAndClose(),await A.xfs.chmodPromise(n,420),await y(t,n)},B=async()=>{if(null===I||!A.xfs.existsSync(I))return await d();const t=await A.xfs.mktempPromise(),r=s.y1.join(t,this.getVersionFilename(e));return await A.xfs.copyFilePromise(I,r,u().constants.COPYFILE_FICLONE),new i.d(r,{libzip:await(0,a.getLibzipPromise)()})},Q=async()=>{if(!d)throw new Error("Cache entry required but missing for "+p.prettyLocator(this.configuration,e));if(this.immutable)throw new h.lk(l.b.IMMUTABLE_CACHE,"Cache entry required but missing for "+p.prettyLocator(this.configuration,e));const t=await B(),r=t.getRealPath();t.saveAndClose(),await A.xfs.chmodPromise(r,420);const n=await y(r),i=this.getLocatorPath(e,n);if(!i)throw new Error("Assertion failed: Expected the cache path to be available");return await this.writeFileWithLock(i,async()=>await this.writeFileWithLock(I,async()=>(await A.xfs.movePromise(r,i),null!==I&&await A.xfs.copyFilePromise(i,I,u().constants.COPYFILE_FICLONE),[i,n])))},v=async()=>{const t=Q();this.mutexes.set(e.locatorHash,t);try{return await t}finally{this.mutexes.delete(e.locatorHash)}};for(let t;t=this.mutexes.get(e.locatorHash);)await t;const D=this.getLocatorPath(e,t),b=null!==D&&m.existsSync(D),S=b?r:c;let k,x;S&&S(),b?(k=D,x=this.check?await w(k):await y(k)):[k,x]=await v(),this.markedFiles.add(k);let F=null;const M=await(0,a.getLibzipPromise)();return[new o.v(()=>f.prettifySyncErrors(()=>F=new i.d(k,{baseFs:m,libzip:M,readOnly:!0}),t=>`Failed to open the cache entry for ${p.prettyLocator(this.configuration,e)}: ${t}`),s.y1),()=>{null!==F&&F.discardAndClose()},x]}async writeFileWithLock(e,t){return null===e?await t():(await A.xfs.mkdirpPromise(s.y1.dirname(e)),await A.xfs.lockPromise(e,async()=>await t()))}}function E(e){const t=e.indexOf("/");return-1!==t?e.slice(0,t):null}},27122:(e,t,r)=>{"use strict";r.d(t,{tr:()=>_,nh:()=>O,a2:()=>j,a5:()=>Y,EW:()=>V,VK:()=>X});var n=r(90739),i=r(46009),o=r(56537),s=r(55125),A=r(54738),a=r.n(A),c=r(95882),u=r.n(c),l=r(5864),h=r(17278),g=r(53887),f=r.n(g),p=r(92413),d=r(92659),C=r(54143);const E={hooks:{reduceDependency:(e,t,r,n,{resolver:i,resolveOptions:o})=>{for(const{pattern:n,reference:s}of t.topLevelWorkspace.manifest.resolutions){if(n.from&&n.from.fullName!==C.requirableIdent(r))continue;if(n.from&&n.from.description&&n.from.description!==r.reference)continue;if(n.descriptor.fullName!==C.requirableIdent(e))continue;if(n.descriptor.description&&n.descriptor.description!==e.range)continue;return i.bindDescriptor(C.makeDescriptor(e,s),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(const r of e.workspaces){const n=C.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(e=>e.validateWorkspace,r,{reportWarning:(e,r)=>t.reportWarning(e,`${n}: ${r}`),reportError:(e,r)=>t.reportError(e,`${n}: ${r}`)})}},validateWorkspace:async(e,t)=>{const{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(const e of r.errors)t.reportWarning(d.b.INVALID_MANIFEST,e.message)}}};var I=r(46611),m=r(35691);class y{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){const r=this.getFetcher(e,t);return await r.fetch(e,t)}tryFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));return r||null}getFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));if(!r)throw new m.lk(d.b.FETCHER_NOT_FOUND,C.prettyLocator(t.project.configuration,e)+" isn't supported by any available fetcher");return r}}var w=r(27092),B=r(52779),Q=r(60895);class v{static isVirtualDescriptor(e){return!!e.range.startsWith(v.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(v.protocol)}supportsDescriptor(e,t){return v.isVirtualDescriptor(e)}supportsLocator(e,t){return v.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,r){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}v.protocol="virtual:";var D=r(75448),b=r(94538);class S{supports(e){return!!e.reference.startsWith(b.d.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){const r=this.getWorkspace(e,t).cwd;return{packageFs:new D.M(r),prefixPath:i.LZ.dot,localPath:r}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(b.d.protocol.length))}}var k=r(81111),x=r(73632),F=r(32282),M=r.n(F);function N(e){return("undefined"!=typeof require?require:r(32178))(e)}var R=r(36545);const K=process.env.GITHUB_ACTIONS?{level:2}:u().supportsColor?{level:u().supportsColor.level}:{level:0},L=0!==K.level,T=L&&!process.env.GITHUB_ACTIONS,P=new(u().Instance)(K),U=new Set(["binFolder","version","flags","profile","gpg","wrapOutput"]),_=(0,i.Zu)(".yarnrc.yml"),O=(0,i.Zu)("yarn.lock");var j,Y;!function(e){e.ANY="ANY",e.BOOLEAN="BOOLEAN",e.ABSOLUTE_PATH="ABSOLUTE_PATH",e.LOCATOR="LOCATOR",e.LOCATOR_LOOSE="LOCATOR_LOOSE",e.NUMBER="NUMBER",e.STRING="STRING",e.SECRET="SECRET",e.SHAPE="SHAPE",e.MAP="MAP"}(j||(j={})),function(e){e.NAME="NAME",e.NUMBER="NUMBER",e.PATH="PATH",e.RANGE="RANGE",e.REFERENCE="REFERENCE",e.SCOPE="SCOPE",e.ADDED="ADDED",e.REMOVED="REMOVED"}(Y||(Y={}));const G=K.level>=3?new Map([[Y.NAME,"#d7875f"],[Y.RANGE,"#00afaf"],[Y.REFERENCE,"#87afff"],[Y.NUMBER,"#ffd700"],[Y.PATH,"#d75fd7"],[Y.SCOPE,"#d75f00"],[Y.ADDED,"#5faf00"],[Y.REMOVED,"#d70000"]]):new Map([[Y.NAME,173],[Y.RANGE,37],[Y.REFERENCE,111],[Y.NUMBER,220],[Y.PATH,170],[Y.SCOPE,166],[Y.ADDED,70],[Y.REMOVED,160]]),J={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:j.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:j.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:j.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:j.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:j.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:j.ABSOLUTE_PATH,default:k.getDefaultGlobalFolder()},cacheFolder:{description:"Folder where the cache files must be written",type:j.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:j.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:n.k},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named $$virtual)",type:j.ABSOLUTE_PATH,default:"./.yarn/$$virtual"},bstatePath:{description:"Path of the file where the current state of the built packages must be stored",type:j.ABSOLUTE_PATH,default:"./.yarn/build-state.yml"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:j.STRING,default:O},installStatePath:{description:"Path of the file where the install state will be persisted",type:j.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},rcFilename:{description:"Name of the files where the configuration can be found",type:j.STRING,default:W()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:j.BOOLEAN,default:!1},enableAbsoluteVirtuals:{description:"If true, the virtual symlinks will use absolute paths if required [non portable!!]",type:j.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:j.BOOLEAN,default:L,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:j.BOOLEAN,default:T,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:j.BOOLEAN,default:l.isCI,defaultText:"<dynamic>"},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:j.BOOLEAN,default:!l.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:j.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:j.BOOLEAN,default:l.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:j.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:j.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:j.STRING,default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:j.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:j.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:j.BOOLEAN,default:!0},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:j.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:j.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:j.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:j.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:j.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:j.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:j.NUMBER,default:3},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:j.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:j.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:j.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:j.MAP,valueDefinition:{description:"",type:j.ANY}}};function H(e,t,r,n,i){if(n.isArray)return Array.isArray(r)?r.map((r,o)=>q(e,`${t}[${o}]`,r,n,i)):String(r).split(/,/).map(r=>q(e,t,r,n,i));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return q(e,t,r,n,i)}function q(e,t,r,n,o){var s;switch(n.type){case j.ANY:return r;case j.SHAPE:return function(e,t,r,n,i){if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Object configuration settings "${t}" must be an object`);const o=z(e,n);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=`${t}.${s}`;if(!n.properties[s])throw new h.UsageError(`Unrecognized configuration settings found: ${t}.${s} - run "yarn config -v" to see the list of settings supported in Yarn`);o.set(s,H(e,r,A,n.properties[s],i))}return o}(e,t,r,n,o);case j.MAP:return function(e,t,r,n,i){const o=new Map;if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Map configuration settings "${t}" must be an object`);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=n.normalizeKeys?n.normalizeKeys(s):s,a=`${t}['${r}']`,c=n.valueDefinition;o.set(r,H(e,a,A,c,i))}return o}(e,t,r,n,o)}if(null===r&&!n.isNullable&&null!==n.default)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if(null===(s=n.values)||void 0===s?void 0:s.includes(r))return r;const A=(()=>{if(n.type===j.BOOLEAN)return function(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}(r);if("string"!=typeof r)throw new Error(`Expected value (${r}) to be a string`);const e=x.replaceEnvVariables(r,{env:process.env});switch(n.type){case j.ABSOLUTE_PATH:return i.y1.resolve(o,i.cS.toPortablePath(e));case j.LOCATOR_LOOSE:return C.parseLocator(e,!1);case j.NUMBER:return parseInt(e);case j.LOCATOR:return C.parseLocator(e);default:return e}})();if(n.values&&!n.values.includes(A))throw new Error("Invalid value, expected one of "+n.values.join(", "));return A}function z(e,t){switch(t.type){case j.SHAPE:{const r=new Map;for(const[n,i]of Object.entries(t.properties))r.set(n,z(e,i));return r}case j.MAP:return new Map;case j.ABSOLUTE_PATH:return null===t.default?null:null===e.projectCwd?i.y1.isAbsolute(t.default)?i.y1.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(t=>i.y1.resolve(e.projectCwd,t)):i.y1.resolve(e.projectCwd,t.default);default:return t.default}}function W(){for(const[e,t]of Object.entries(process.env))if("yarn_rc_filename"===e.toLowerCase()&&"string"==typeof t)return t;return _}var V;!function(e){e[e.LOCKFILE=0]="LOCKFILE",e[e.MANIFEST=1]="MANIFEST",e[e.NONE=2]="NONE"}(V||(V={}));class X{constructor(e){this.projectCwd=null,this.plugins=new Map,this.settings=new Map,this.values=new Map,this.sources=new Map,this.invalid=new Map,this.packageExtensions=new Map,this.startingCwd=e}static create(e,t,r){const n=new X(e);void 0===t||t instanceof Map||(n.projectCwd=t),n.importSettings(J);const i=void 0!==r?r:t instanceof Map?t:new Map;for(const[e,t]of i)n.activatePlugin(e,t);return n}static async find(e,t,{lookup:r=V.LOCKFILE,strict:n=!0,usePath:s=!1,useRc:A=!0}={}){const c=function(){const e={};for(let[t,r]of Object.entries(process.env))t=t.toLowerCase(),t.startsWith("yarn_")&&(t=a()(t.slice("yarn_".length)),e[t]=r);return e}();delete c.rcFilename;const u=await X.findRcFiles(e),l=await X.findHomeRcFile(),g=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n})=>({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n}),f=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n,...i})=>i,p=new X(e);p.importSettings(g(J)),p.useWithSource("<environment>",g(c),e,{strict:!1});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,g(r),t,{strict:!1});if(l&&p.useWithSource(l.path,g(l.data),l.cwd,{strict:!1}),s){const e=p.get("yarnPath"),t=p.get("ignorePath");if(null!==e&&!t)return p}const d=p.get("lockfileFilename");let C;switch(r){case V.LOCKFILE:C=await X.findProjectCwd(e,d);break;case V.MANIFEST:C=await X.findProjectCwd(e,null);break;case V.NONE:C=o.xfs.existsSync(i.y1.join(e,"package.json"))?i.y1.resolve(e):null}p.startingCwd=e,p.projectCwd=C,p.importSettings(f(J));const I=new Map([["@@core",E]]);if(null!==t){for(const e of t.plugins.keys())I.set(e,(m=t.modules.get(e)).__esModule?m.default:m);const r=new Map;for(const e of new Set(M().builtinModules||Object.keys(process.binding("natives"))))r.set(e,()=>N(e));for(const[e,n]of t.modules)r.set(e,()=>n);const n=new Set,o=e=>e.default||e,s=(e,t)=>{const{factory:s,name:A}=N(i.cS.fromPortablePath(e));if(n.has(A))return;const a=new Map(r),c=e=>{if(a.has(e))return a.get(e)();throw new h.UsageError(`This plugin cannot access the package referenced via ${e} which is neither a builtin, nor an exposed entry`)},u=x.prettifySyncErrors(()=>o(s(c)),e=>`${e} (when initializing ${A}, defined in ${t})`);r.set(A,()=>u),n.add(A),I.set(A,u)};if(c.plugins)for(const t of c.plugins.split(";")){s(i.y1.resolve(e,i.cS.toPortablePath(t)),"<environment>")}for(const{path:e,cwd:t,data:r}of u)if(A&&Array.isArray(r.plugins))for(const n of r.plugins){const r="string"!=typeof n?n.path:n;s(i.y1.resolve(t,i.cS.toPortablePath(r)),e)}}var m;for(const[e,t]of I)p.activatePlugin(e,t);p.useWithSource("<environment>",f(c),e,{strict:n});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,f(r),t,{strict:n});return l&&p.useWithSource(l.path,f(l.data),l.cwd,{strict:n}),p.get("enableGlobalCache")&&(p.values.set("cacheFolder",p.get("globalFolder")+"/cache"),p.sources.set("cacheFolder","<internal>")),await p.refreshPackageExtensions(),p}static async findRcFiles(e){const t=W(),r=[];let n=e,A=null;for(;n!==A;){A=n;const e=i.y1.join(A,t);if(o.xfs.existsSync(e)){const t=await o.xfs.readFilePromise(e,"utf8");let n;try{n=(0,s.parseSyml)(t)}catch(r){let n="";throw t.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(n=" (in particular, make sure you list the colons after each key name)"),new h.UsageError(`Parse error when loading ${e}; please check it's proper Yaml${n}`)}r.push({path:e,cwd:A,data:n})}n=i.y1.dirname(A)}return r}static async findHomeRcFile(){const e=W(),t=k.getHomeFolder(),r=i.y1.join(t,e);if(o.xfs.existsSync(r)){const e=await o.xfs.readFilePromise(r,"utf8");return{path:r,cwd:t,data:(0,s.parseSyml)(e)}}return null}static async findProjectCwd(e,t){let r=null,n=e,s=null;for(;n!==s;){if(s=n,o.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))&&(r=s),null!==t){if(o.xfs.existsSync(i.y1.join(s,t))){r=s;break}}else if(null!==r)break;n=i.y1.dirname(s)}return r}static async updateConfiguration(e,t){const r=W(),n=i.y1.join(e,r),A=o.xfs.existsSync(n)?(0,s.parseSyml)(await o.xfs.readFilePromise(n,"utf8")):{};let a=!1;if("function"==typeof t&&(t=t(A)),"function"==typeof t)throw new Error("Assertion failed: Invalid configuration type");for(const e of Object.keys(t)){const r=A[e],n="function"==typeof t[e]?t[e](r):t[e];r!==n&&(A[e]=n,a=!0)}a&&await o.xfs.changeFilePromise(n,(0,s.stringifySyml)(A),{automaticNewlines:!0})}static async updateHomeConfiguration(e){const t=k.getHomeFolder();return await X.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),void 0!==t.configuration&&this.importSettings(t.configuration)}importSettings(e){for(const[t,r]of Object.entries(e)){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,r),this.values.set(t,z(this,r))}}useWithSource(e,t,r,{strict:n=!0,overwrite:i=!1}){try{this.use(e,t,r,{strict:n,overwrite:i})}catch(t){throw t.message+=` (in ${e})`,t}}use(e,t,r,{strict:n=!0,overwrite:i=!1}){for(const o of Object.keys(t)){if(void 0===t[o])continue;if("plugins"===o)continue;if("<environment>"===e&&U.has(o))continue;if("rcFilename"===o)throw new h.UsageError(`The rcFilename settings can only be set via ${"yarn_RC_FILENAME".toUpperCase()}, not via a rc file`);const s=this.settings.get(o);if(!s){if(n)throw new h.UsageError(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!i)continue;let A;try{A=H(this,o,t[o],s,r)}catch(t){throw t.message+=" in "+e,t}this.values.set(o,A),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:r=!1}){const n=this.get(e),o=this.settings.get(e);if(void 0===o)throw new h.UsageError(`Couldn't find a configuration settings named "${e}"`);return function e(t,r,n){if(r.type===j.SECRET&&"string"==typeof t&&n.hideSecrets)return"********";if(r.type===j.ABSOLUTE_PATH&&"string"==typeof t&&n.getNativePaths)return i.cS.fromPortablePath(t);if(r.isArray&&Array.isArray(t)){const i=[];for(const o of t)i.push(e(o,r,n));return i}if(r.type===j.MAP&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries())i.set(o,e(s,r.valueDefinition,n));return i}if(r.type===j.SHAPE&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries()){const t=r.properties[o];i.set(o,e(s,t,n))}return i}return t}(n,o,{hideSecrets:t,getNativePaths:r})}getSubprocessStreams(e,{header:t,prefix:r,report:n}){let i,s;const A=o.xfs.createWriteStream(e);if(this.get("enableInlineBuilds")){const e=n.createStreamReporter(`${r} ${this.format("STDOUT","green")}`),t=n.createStreamReporter(`${r} ${this.format("STDERR","red")}`);i=new p.PassThrough,i.pipe(e),i.pipe(A),s=new p.PassThrough,s.pipe(t),s.pipe(A)}else i=A,s=A,void 0!==t&&i.write(t+"\n");return{stdout:i,stderr:s}}makeResolver(){const e=[];for(const t of this.plugins.values())for(const r of t.resolvers||[])e.push(new r);return new w.B([new v,new b.d,new B.O,...e])}makeFetcher(){const e=[];for(const t of this.plugins.values())for(const r of t.fetchers||[])e.push(new r);return new y([new Q.N,new S,...e])}getLinkers(){const e=[];for(const t of this.plugins.values())for(const r of t.linkers||[])e.push(new r);return e}async refreshPackageExtensions(){this.packageExtensions=new Map;const e=this.packageExtensions,t=(t,r)=>{if(!f().validRange(t.range))throw new Error("Only semver ranges are allowed as keys for the lockfileExtensions setting");const n=new I.G;n.load(r),x.getArrayWithDefault(e,t.identHash).push({range:t.range,patch:e=>{e.dependencies=new Map([...e.dependencies,...n.dependencies]),e.peerDependencies=new Map([...e.peerDependencies,...n.peerDependencies]),e.dependenciesMeta=new Map([...e.dependenciesMeta,...n.dependenciesMeta]),e.peerDependenciesMeta=new Map([...e.peerDependenciesMeta,...n.peerDependenciesMeta])}})};for(const[e,r]of this.get("packageExtensions"))t(C.parseDescriptor(e,!0),r);await this.triggerHook(e=>e.registerPackageExtensions,this,t)}normalizePackage(e){const t=C.copyPackage(e);if(null==this.packageExtensions)throw new Error("refreshPackageExtensions has to be called before normalizing packages");const r=this.packageExtensions.get(e.identHash);if(void 0!==r){const n=e.version;if(null!==n){const e=r.find(({range:e})=>R.satisfiesWithPrereleases(n,e));void 0!==e&&e.patch(t)}}return t.dependencies=new Map(x.sortMap(t.dependencies,([,e])=>e.name)),t.peerDependencies=new Map(x.sortMap(t.peerDependencies,([,e])=>e.name)),t}async triggerHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);i&&await i(...t)}}async triggerMultipleHooks(e,t){for(const r of t)await this.triggerHook(e,...r)}async reduceHook(e,t,...r){let n=t;for(const t of this.plugins.values()){const i=t.hooks;if(!i)continue;const o=e(i);o&&(n=await o(n,...r))}return n}async firstHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);if(!i)continue;const o=await i(...t);if(void 0!==o)return o}return null}format(e,t){if(t===Y.PATH&&(e=i.cS.fromPortablePath(e)),!this.get("enableColors"))return e;let r=G.get(t);void 0===r&&(r=t);return("number"==typeof r?P.ansi256(r):r.startsWith("#")?P.hex(r):P[r])(e)}}},92409:(e,t,r)=>{"use strict";var n;r.d(t,{k:()=>n}),function(e){e[e.SCRIPT=0]="SCRIPT",e[e.SHELLCODE=1]="SHELLCODE"}(n||(n={}))},62152:(e,t,r)=>{"use strict";r.d(t,{h:()=>i});var n=r(35691);class i extends n.yG{constructor({configuration:e,stdout:t,suggestInstall:r=!0}){super(),this.errorCount=0,this.configuration=e,this.stdout=t,this.suggestInstall=r}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${this.configuration.format("➤","redBright")} ${this.formatName(e)}: ${t}\n`)}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(this.configuration.format("➤","redBright")+" Errors happened when preparing the environment required to run this command.\n"),this.suggestInstall&&this.stdout.write(this.configuration.format("➤","redBright")+' This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.\n'))}formatName(e){return"BR"+e.toString(10).padStart(4,"0")}}},46611:(e,t,r)=>{"use strict";r.d(t,{G:()=>u});var n=r(78420),i=r(46009),o=r(55125),s=r(53887),A=r.n(s),a=r(73632),c=r(54143);class u{constructor(){this.indent="  ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.type=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(e,{baseFs:t=new n.S}={}){const r=i.y1.join(e,(0,i.Zu)("package.json"));return await t.existsPromise(r)?await u.fromFile(r,{baseFs:t}):null}static async find(e,{baseFs:t}={}){const r=await u.tryFind(e,{baseFs:t});if(null===r)throw new Error("Manifest not found");return r}static async fromFile(e,{baseFs:t=new n.S}={}){const r=new u;return await r.loadFile(e,{baseFs:t}),r}static fromText(e){const t=new u;return t.loadFromText(e),t}loadFromText(e){let t;try{t=JSON.parse(h(e)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(t),this.indent=l(e)}async loadFile(e,{baseFs:t=new n.S}){const r=await t.readFilePromise(e,"utf8");let i;try{i=JSON.parse(h(r)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(i),this.indent=l(r)}load(e){if("object"!=typeof e||null===e)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;const t=[];if("string"==typeof e.name)try{this.name=c.parseIdent(e.name)}catch(e){t.push(new Error("Parsing failed for the 'name' field"))}if("string"==typeof e.version&&(this.version=e.version),Array.isArray(e.os)){const r=[];this.os=r;for(const n of e.os)"string"!=typeof n?t.push(new Error("Parsing failed for the 'os' field")):r.push(n)}if(Array.isArray(e.cpu)){const r=[];this.cpu=r;for(const n of e.cpu)"string"!=typeof n?t.push(new Error("Parsing failed for the 'cpu' field")):r.push(n)}if("string"==typeof e.type&&(this.type=e.type),"boolean"==typeof e.private&&(this.private=e.private),"string"==typeof e.license&&(this.license=e.license),"string"==typeof e.languageName&&(this.languageName=e.languageName),"string"==typeof e.bin)null!==this.name?this.bin=new Map([[this.name.name,e.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.bin&&null!==e.bin)for(const[r,n]of Object.entries(e.bin))"string"==typeof n?this.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`));if("object"==typeof e.scripts&&null!==e.scripts)for(const[r,n]of Object.entries(e.scripts))"string"==typeof n?this.scripts.set(r,n):t.push(new Error(`Invalid script definition for '${r}'`));if("object"==typeof e.dependencies&&null!==e.dependencies)for(const[r,n]of Object.entries(e.dependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i)}if("object"==typeof e.devDependencies&&null!==e.devDependencies)for(const[r,n]of Object.entries(e.devDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.devDependencies.set(i.identHash,i)}if("object"==typeof e.peerDependencies&&null!==e.peerDependencies)for(let[r,n]of Object.entries(e.peerDependencies)){let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}"string"==typeof n&&A().validRange(n)||(t.push(new Error(`Invalid dependency range for '${r}'`)),n="*");const i=c.makeDescriptor(e,n);this.peerDependencies.set(i.identHash,i)}const r=Array.isArray(e.workspaces)?e.workspaces:"object"==typeof e.workspaces&&null!==e.workspaces&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];for(const e of r)"string"==typeof e?this.workspaceDefinitions.push({pattern:e}):t.push(new Error(`Invalid workspace definition for '${e}'`));if("object"==typeof e.dependenciesMeta&&null!==e.dependenciesMeta)for(const[r,n]of Object.entries(e.dependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensureDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.peerDependenciesMeta&&null!==e.peerDependenciesMeta)for(const[r,n]of Object.entries(e.peerDependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensurePeerDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.resolutions&&null!==e.resolutions)for(const[r,n]of Object.entries(e.resolutions))if("string"==typeof n)try{this.resolutions.push({pattern:(0,o.parseResolution)(r),reference:n})}catch(e){t.push(e);continue}else t.push(new Error(`Invalid resolution entry for '${r}'`));if(Array.isArray(e.files)&&0!==e.files.length){this.files=new Set;for(const r of e.files)"string"==typeof r?this.files.add(r):t.push(new Error(`Invalid files entry for '${r}'`))}if("object"==typeof e.publishConfig&&null!==e.publishConfig)if(this.publishConfig={},"string"==typeof e.publishConfig.access&&(this.publishConfig.access=e.publishConfig.access),"string"==typeof e.publishConfig.main&&(this.publishConfig.main=e.publishConfig.main),"string"==typeof e.publishConfig.registry&&(this.publishConfig.registry=e.publishConfig.registry),"string"==typeof e.publishConfig.module&&(this.publishConfig.module=e.publishConfig.module),"string"==typeof e.publishConfig.bin)null!==this.name?this.publishConfig.bin=new Map([[this.name.name,e.publishConfig.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.publishConfig.bin&&null!==e.publishConfig.bin){this.publishConfig.bin=new Map;for(const[r,n]of Object.entries(e.publishConfig.bin))"string"==typeof n?this.publishConfig.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`))}if("object"==typeof e.optionalDependencies&&null!==e.optionalDependencies)for(const[r,n]of Object.entries(e.optionalDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i);const o=c.makeDescriptor(e,"unknown"),s=this.ensureDependencyMeta(o);Object.assign(s,{optional:!0})}"boolean"==typeof e.preferUnplugged&&(this.preferUnplugged=e.preferUnplugged),this.errors=t}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!this.dependencies.has(e.identHash)||!!this.peerDependencies.has(e.identHash)}hasHardDependency(e){return!!this.dependencies.has(e.identHash)||!!this.devDependencies.has(e.identHash)}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!this.hasHardDependency(e)||!!this.hasSoftDependency(e)}isCompatibleWithOS(e){return null===this.os||g(this.os,e)}isCompatibleWithCPU(e){return null===this.cpu||g(this.cpu,e)}ensureDependencyMeta(e){if("unknown"!==e.range&&!A().valid(e.range))throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e),r="unknown"!==e.range?e.range:null;let n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let i=n.get(r);return i||n.set(r,i={}),i}ensurePeerDependencyMeta(e){if("unknown"!==e.range)throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e);let r=this.peerDependenciesMeta.get(t);return r||this.peerDependenciesMeta.set(t,r={}),this.peerDependencies.has(e.identHash)||this.peerDependencies.set(e.identHash,c.makeDescriptor(e,"*")),r}setRawField(e,t,{after:r=[]}={}){const n=new Set(r.filter(e=>Object.prototype.hasOwnProperty.call(this.raw,e)));if(0===n.size||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{const r=this.raw,i=this.raw={};let o=!1;for(const s of Object.keys(r))i[s]=r[s],o||(n.delete(s),0===n.size&&(i[e]=t,o=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){Object.assign(e,this.raw),null!==this.name?e.name=c.stringifyIdent(this.name):delete e.name,null!==this.version?e.version=this.version:delete e.version,null!==this.os?e.os=this.os:delete this.os,null!==this.cpu?e.cpu=this.cpu:delete this.cpu,null!==this.type?e.type=this.type:delete e.type,this.private?e.private=!0:delete e.private,null!==this.license?e.license=this.license:delete e.license,null!==this.languageName?e.languageName=this.languageName:delete e.languageName,1===this.bin.size&&null!==this.name&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(e=>({[e]:this.bin.get(e)}))):delete e.bin;const r=[],n=[];for(const e of this.dependencies.values()){const i=this.dependenciesMeta.get(c.stringifyIdent(e));let o=!1;if(t&&i){const e=i.get(null);e&&e.optional&&(o=!0)}o?n.push(e):r.push(e)}r.length>0?e.dependencies=Object.assign({},...c.sortDescriptors(r).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...c.sortDescriptors(n).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...c.sortDescriptors(this.devDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...c.sortDescriptors(this.peerDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(const[r,n]of a.sortMap(this.dependenciesMeta.entries(),([e,t])=>e))for(const[i,o]of a.sortMap(n.entries(),([e,t])=>null!==e?"0"+e:"1")){const n=null!==i?c.stringifyDescriptor(c.makeDescriptor(c.parseIdent(r),i)):r,s={...o};t&&null===i&&delete s.optional,0!==Object.keys(s).length&&(e.dependenciesMeta[n]=s)}return 0===Object.keys(e.dependenciesMeta).length&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...a.sortMap(this.peerDependenciesMeta.entries(),([e,t])=>e).map(([e,t])=>({[e]:t}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:e,reference:t})=>({[(0,o.stringifyResolution)(e)]:t}))):delete e.resolutions,null!==this.files?e.files=Array.from(this.files):delete e.files,null!==this.preferUnplugged?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,e}}function l(e){const t=e.match(/^[ \t]+/m);return t?t[0]:"  "}function h(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function g(e,t){let r=!0,n=!1;for(const i of e)if("!"===i[0]){if(n=!0,t===i.slice(1))return!1}else if(r=!1,i===t)return!0;return n&&r}u.fileName="package.json",u.allDependencies=["dependencies","devDependencies","peerDependencies"],u.hardDependencies=["dependencies","devDependencies"]},92659:(e,t,r)=>{"use strict";var n;r.d(t,{b:()=>n}),function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU"}(n||(n={}))},27092:(e,t,r)=>{"use strict";r.d(t,{B:()=>i});var n=r(54143);class i{constructor(e){this.resolvers=e.filter(e=>e)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.getResolverByDescriptor(e,r).bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,r){const n=this.getResolverByDescriptor(e,r);return await n.getCandidates(e,t,r)}async resolve(e,t){const r=this.getResolverByLocator(e,t);return await r.resolve(e,t)}tryResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));return r||null}getResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));if(!r)throw new Error(n.prettyDescriptor(t.project.configuration,e)+" isn't supported by any available resolver");return r}tryResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));return r||null}getResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));if(!r)throw new Error(n.prettyLocator(t.project.configuration,e)+" isn't supported by any available resolver");return r}}},40376:(e,t,r)=>{"use strict";r.d(t,{I:()=>ne});var n=r(56537),i=r(46009),o=r(35398),s=r(55125),A=r(17278),a=r(76417);function c(){}function u(e,t,r,n,i){for(var o=0,s=t.length,A=0,a=0;o<s;o++){var c=t[o];if(c.removed){if(c.value=e.join(n.slice(a,a+c.count)),a+=c.count,o&&t[o-1].added){var u=t[o-1];t[o-1]=t[o],t[o]=u}}else{if(!c.added&&i){var l=r.slice(A,A+c.count);l=l.map((function(e,t){var r=n[a+t];return r.length>e.length?r:e})),c.value=e.join(l)}else c.value=e.join(r.slice(A,A+c.count));A+=c.count,c.added||(a+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}function l(e){return{newPos:e.newPos,components:e.components.slice(0)}}c.prototype={diff:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.callback;"function"==typeof r&&(n=r,r={}),this.options=r;var i=this;function o(e){return n?(setTimeout((function(){n(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,A=e.length,a=1,c=s+A,h=[{newPos:-1,components:[]}],g=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=s&&g+1>=A)return o([{value:this.join(t),count:t.length}]);function f(){for(var r=-1*a;r<=a;r+=2){var n=void 0,c=h[r-1],g=h[r+1],f=(g?g.newPos:0)-r;c&&(h[r-1]=void 0);var p=c&&c.newPos+1<s,d=g&&0<=f&&f<A;if(p||d){if(!p||d&&c.newPos<g.newPos?(n=l(g),i.pushComponent(n.components,void 0,!0)):((n=c).newPos++,i.pushComponent(n.components,!0,void 0)),f=i.extractCommon(n,t,e,r),n.newPos+1>=s&&f+1>=A)return o(u(i,n.components,t,e,i.useLongestToken));h[r]=n}else h[r]=void 0}a++}if(n)!function e(){setTimeout((function(){if(a>c)return n();f()||e()}),0)}();else for(;a<=c;){var p=f();if(p)return p}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var i=t.length,o=r.length,s=e.newPos,A=s-n,a=0;s+1<i&&A+1<o&&this.equals(t[s+1],r[A+1]);)s++,A++,a++;return a&&e.components.push({count:a}),e.newPos=s,A},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],r=0;r<e.length;r++)e[r]&&t.push(e[r]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};new c;var h=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,g=/\S/,f=new c;f.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!g.test(e)&&!g.test(t)},f.tokenize=function(e){for(var t=e.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r<t.length-1;r++)!t[r+1]&&t[r+2]&&h.test(t[r])&&h.test(t[r+2])&&(t[r]+=t[r+2],t.splice(r+1,2),r--);return t};var p=new c;p.tokenize=function(e){var t=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var n=0;n<r.length;n++){var i=r[n];n%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var d=new c;d.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var C=new c;function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}C.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var m=Object.prototype.toString,y=new c;y.useLongestToken=!0,y.tokenize=p.tokenize,y.castInput=function(e){var t=this.options,r=t.undefinedReplacement,n=t.stringifyReplacer,i=void 0===n?function(e,t){return void 0===t?r:t}:n;return"string"==typeof e?e:JSON.stringify(function e(t,r,n,i,o){r=r||[],n=n||[],i&&(t=i(o,t));var s,A;for(s=0;s<r.length;s+=1)if(r[s]===t)return n[s];if("[object Array]"===m.call(t)){for(r.push(t),A=new Array(t.length),n.push(A),s=0;s<t.length;s+=1)A[s]=e(t[s],r,n,i,o);return r.pop(),n.pop(),A}t&&t.toJSON&&(t=t.toJSON());if("object"===E(t)&&null!==t){r.push(t),A={},n.push(A);var a,c=[];for(a in t)t.hasOwnProperty(a)&&c.push(a);for(c.sort(),s=0;s<c.length;s+=1)a=c[s],A[a]=e(t[a],r,n,i,a);r.pop(),n.pop()}else A=t;return A}(e,null,null,i),i,"  ")},y.equals=function(e,t){return c.prototype.equals.call(y,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))};var w=new c;function B(e,t,r,n,i,o,s){s||(s={}),void 0===s.context&&(s.context=4);var A=function(e,t,r){return p.diff(e,t,r)}(r,n,s);function a(e){return e.map((function(e){return" "+e}))}A.push({value:"",lines:[]});for(var c=[],u=0,l=0,h=[],g=1,f=1,d=function(e){var t=A[e],i=t.lines||t.value.replace(/\n$/,"").split("\n");if(t.lines=i,t.added||t.removed){var o;if(!u){var p=A[e-1];u=g,l=f,p&&(h=s.context>0?a(p.lines.slice(-s.context)):[],u-=h.length,l-=h.length)}(o=h).push.apply(o,I(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?f+=i.length:g+=i.length}else{if(u)if(i.length<=2*s.context&&e<A.length-2){var d;(d=h).push.apply(d,I(a(i)))}else{var C,E=Math.min(i.length,s.context);(C=h).push.apply(C,I(a(i.slice(0,E))));var m={oldStart:u,oldLines:g-u+E,newStart:l,newLines:f-l+E,lines:h};if(e>=A.length-2&&i.length<=s.context){var y=/\n$/.test(r),w=/\n$/.test(n),B=0==i.length&&h.length>m.oldLines;!y&&B&&h.splice(m.oldLines,0,"\\ No newline at end of file"),(y||B)&&w||h.push("\\ No newline at end of file")}c.push(m),u=0,l=0,h=[]}g+=i.length,f+=i.length}},C=0;C<A.length;C++)d(C);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:o,hunks:c}}w.tokenize=function(e){return e.slice()},w.join=w.removeEmpty=function(e){return e};var Q=r(58708),v=r.n(Q),D=r(61578),b=r.n(D),S=r(53887),k=r.n(S),x=r(31669),F=r(68987),M=r.n(F),N=r(78761),R=r.n(N),K=r(27122),L=r(92409),T=r(92659),P=r(54143);const U=[[/^(git(?:\+(?:https|ssh))?:\/\/.*\.git)#(.*)$/,(e,t,r,n)=>`${r}#commit:${n}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https?:\/\/[^/]+\/(?:@[^/]+\/)?([^/]+)\/-\/\1-[^/]+\.tgz(?:#|$)/,e=>"npm:"+e],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>"npm:"+e]];class _{constructor(){this.resolutions=null}async setup(e,{report:t}){const r=i.y1.join(e.cwd,e.configuration.get("lockfileFilename"));if(!n.xfs.existsSync(r))return;const o=await n.xfs.readFilePromise(r,"utf8"),A=(0,s.parseSyml)(o);if(Object.prototype.hasOwnProperty.call(A,"__metadata"))return;const a=this.resolutions=new Map;for(const r of Object.keys(A)){let n=P.tryParseDescriptor(r);if(!n){t.reportWarning(T.b.YARN_IMPORT_FAILED,`Failed to parse the string "${r}" into a proper descriptor`);continue}k().validRange(n.range)&&(n=P.makeDescriptor(n,"npm:"+n.range));const{version:i,resolved:o}=A[r];if(!o)continue;let s;for(const[e,t]of U){const r=o.match(e);if(r){s=t(i,...r);break}}if(!s){t.reportWarning(T.b.YARN_IMPORT_FAILED,`${P.prettyDescriptor(e.configuration,n)}: Only some patterns can be imported from legacy lockfiles (not "${o}")`);continue}const c=P.makeLocator(n,s);a.set(n.descriptorHash,c)}}supportsDescriptor(e,t){return!!this.resolutions&&this.resolutions.has(e.descriptorHash)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");const n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}class O{supportsDescriptor(e,t){return!!t.project.storedResolutions.get(e.descriptorHash)||!!t.project.originalPackages.has(P.convertDescriptorToLocator(e).locatorHash)}supportsLocator(e,t){return!!t.project.originalPackages.has(e.locatorHash)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=r.project.originalPackages.get(P.convertDescriptorToLocator(e).locatorHash);if(n)return[n];const i=r.project.storedResolutions.get(e.descriptorHash);if(!i)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=r.project.originalPackages.get(i),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async resolve(e,t){const r=t.project.originalPackages.get(e.locatorHash);if(!r)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return r}}var j=r(46611),Y=r(27092),G=r(35691);class J{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.resolver.bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,r){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async resolve(e,t){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}}var H=r(33720),q=r(17722),z=r(81111),W=r(20624),V=r(73632),X=r(63088),Z=r(36545),$=r(32485);const ee=/ *, */g,te=(0,x.promisify)(R().gzip),re=(0,x.promisify)(R().gunzip);class ne{constructor(e,{configuration:t}){this.resolutionAliases=new Map,this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map,this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.storedChecksums=new Map,this.accessibleLocators=new Set,this.originalPackages=new Map,this.optionalBuilds=new Set,this.lockFileChecksum=null,this.configuration=t,this.cwd=e}static async find(e,t){if(!e.projectCwd)throw new A.UsageError("No project found in "+t);let r=e.projectCwd,o=t,s=null;for(;s!==e.projectCwd;){if(s=o,n.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))){r=s;break}o=i.y1.dirname(s)}const a=new ne(e.projectCwd,{configuration:e});await a.setupResolutions(),await a.setupWorkspaces();const c=a.tryWorkspaceByCwd(r);if(c)return{project:a,workspace:c,locator:c.anchoredLocator};const u=await a.findLocatorForLocation(r+"/");if(u)return{project:a,locator:u,workspace:null};throw new A.UsageError(`The nearest package directory (${r}) doesn't seem to be part of the project declared at ${a.cwd}. If the project directory is right, it might be that you forgot to list a workspace. If it isn't, it's likely because you have a yarn.lock file at the detected location, confusing the project detection.`)}static generateBuildStateFile(e,t){let r="# Warning: This file is automatically generated. Removing it is fine, but will\n# cause all your builds to become invalidated.\n";const n=[...e].map(([e,r])=>{const n=t.get(e);if(void 0===n)throw new Error("Assertion failed: The locator should have been registered");return[P.stringifyLocator(n),n.locatorHash,r]});for(const[e,t,i]of V.sortMap(n,[e=>e[0],e=>e[1]]))r+="\n",r+=`# ${e}\n`,r+=JSON.stringify(t)+":\n",r+=`  ${i}\n`;return r}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(n.xfs.existsSync(e)){const r=await n.xfs.readFilePromise(e,"utf8");this.lockFileChecksum=W.makeHash("1",r);const i=(0,s.parseSyml)(r);if(i.__metadata){const e=i.__metadata.version,r=i.__metadata.cacheKey;for(const n of Object.keys(i)){if("__metadata"===n)continue;const o=i[n];if(void 0===o.resolution)throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${n})`);const s=P.parseLocator(o.resolution,!0),A=new j.G;A.load(o);const a=A.version,c=A.languageName||t,u=o.linkType.toUpperCase(),l=A.dependencies,h=A.peerDependencies,g=A.dependenciesMeta,f=A.peerDependenciesMeta,p=A.bin;if(null!=o.checksum){const e=void 0===r||o.checksum.includes("/")?o.checksum:`${r}/${o.checksum}`;this.storedChecksums.set(s.locatorHash,e)}if(e>=4){const e={...s,version:a,languageName:c,linkType:u,dependencies:l,peerDependencies:h,dependenciesMeta:g,peerDependenciesMeta:f,bin:p};this.originalPackages.set(e.locatorHash,e)}for(const t of n.split(ee)){const r=P.parseDescriptor(t);if(this.storedDescriptors.set(r.descriptorHash,r),e>=4)this.storedResolutions.set(r.descriptorHash,s.locatorHash);else{const e=P.convertLocatorToDescriptor(s);e.descriptorHash!==r.descriptorHash&&(this.storedDescriptors.set(e.descriptorHash,e),this.resolutionAliases.set(r.descriptorHash,e.descriptorHash))}}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){const t=e;e=[];for(const r of t){if(this.workspacesByCwd.has(r))continue;const t=await this.addWorkspace(r),n=this.storedPackages.get(t.anchoredLocator.locatorHash);n&&(t.dependencies=n.dependencies);for(const r of t.workspacesCwds)e.push(r)}}}async addWorkspace(e){const t=new q.j(e,{project:this});await t.setup();const r=this.workspacesByIdent.get(t.locator.identHash);if(void 0!==r)throw new Error(`Duplicate workspace name ${P.prettyIdent(this.configuration,t.locator)}: ${e} conflicts with ${r.cwd}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){i.y1.isAbsolute(e)||(e=i.y1.resolve(this.cwd,e));const t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){const t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(const r of this.workspaces){i.y1.relative(r.cwd,e).startsWith("../")||(t&&t.cwd.length>=r.cwd.length||(t=r))}return t||null}getWorkspaceByFilePath(e){const t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){const t=this.workspacesByIdent.get(e.identHash);return void 0===t?null:t}getWorkspaceByIdent(e){const t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${P.prettyIdent(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){const t=this.tryWorkspaceByIdent(e);return null!==t&&t.accepts(e.range)?t:null}getWorkspaceByDescriptor(e){const t=this.tryWorkspaceByDescriptor(e);if(null===t)throw new Error(`Workspace not found (${P.prettyDescriptor(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){P.isVirtualLocator(e)&&(e=P.devirtualizeLocator(e));const t=this.tryWorkspaceByIdent(e);return null===t||t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash?null:t}getWorkspaceByLocator(e){const t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${P.prettyLocator(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(const e of this.workspaces){const t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error("Assertion failed: Expected workspace to have been resolved");e.dependencies=new Map(t.dependencies)}}forgetResolution(e){for(const[t,r]of this.storedResolutions){const n="descriptorHash"in e&&e.descriptorHash===t,i="locatorHash"in e&&e.locatorHash===r;(n||i)&&(this.storedDescriptors.delete(t),this.storedResolutions.delete(t),this.originalPackages.delete(r))}}forgetTransientResolutions(){const e=this.configuration.makeResolver();for(const t of this.originalPackages.values()){let r;try{r=e.shouldPersistResolution(t,{project:this,resolver:e})}catch(e){r=!1}r||this.forgetResolution(t)}}forgetVirtualResolutions(){for(const e of this.storedPackages.values())for(const[t,r]of e.dependencies)P.isVirtualDescriptor(r)&&e.dependencies.set(t,P.devirtualizeDescriptor(r))}getDependencyMeta(e,t){const r={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(P.stringifyIdent(e));if(!n)return r;const i=n.get(null);if(i&&Object.assign(r,i),null===t||!k().valid(t))return r;for(const[e,i]of n)null!==e&&e===t&&Object.assign(r,i);return r}async findLocatorForLocation(e){const t=new H.$,r=this.configuration.getLinkers(),n={project:this,report:t};for(const t of r){const r=await t.findPackageLocator(e,n);if(r)return r}return null}async validateEverything(e){for(const t of e.validationWarnings)e.report.reportWarning(t.name,t.text);for(const t of e.validationErrors)e.report.reportError(t.name,t.text)}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();const t=e.resolver||this.configuration.makeResolver(),r=new _;await r.setup(this,{report:e.report});const o=e.lockfileOnly?new Y.B([new O,new J(t)]):new Y.B([new O,r,t]),s=this.configuration.makeFetcher(),A=e.lockfileOnly?{project:this,report:e.report,resolver:o}:{project:this,report:e.report,resolver:o,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:s}},a=new Map,c=new Map,u=new Map,l=new Map,h=new Map,g=new Set;let f=new Set;for(const e of this.workspaces){const t=e.anchoredDescriptor;a.set(t.descriptorHash,t),f.add(t.descriptorHash)}const p=b()(10);for(;0!==f.size;){const e=f;f=new Set;for(const t of e)u.has(t)&&e.delete(t);if(0===e.size)break;const t=new Set,r=new Map;for(const n of e){const i=a.get(n);if(!i)throw new Error("Assertion failed: The descriptor should have been registered");let s=h.get(n);if(void 0===s){h.set(n,s=new Set);for(const e of o.getResolutionDependencies(i,A))a.set(e.descriptorHash,e),s.add(e.descriptorHash)}const l=V.getMapWithDefault(r,n);for(const r of s){const i=u.get(r);if(void 0!==i){const e=c.get(i);if(void 0===e)throw new Error("Assertion failed: The package should have been registered");l.set(r,e)}else t.add(n),e.add(r)}}for(const r of t)e.delete(r),f.add(r);if(0===e.size)throw new Error("Assertion failed: Descriptors should not have cyclic dependencies");const n=new Map(await Promise.all(Array.from(e).map(e=>p(async()=>{const t=a.get(e);if(void 0===t)throw new Error("Assertion failed: The descriptor should have been registered");const n=r.get(t.descriptorHash);if(void 0===n)throw new Error("Assertion failed: The descriptor dependencies should have been registered");let i;try{i=await o.getCandidates(t,n,A)}catch(e){throw e.message=`${P.prettyDescriptor(this.configuration,t)}: ${e.message}`,e}if(0===i.length)throw new Error("No candidate found for "+P.prettyDescriptor(this.configuration,t));return[t.descriptorHash,i]})))),i=new Map;for(const[e,t]of n)1===t.length&&(i.set(e,t[0]),n.delete(e));for(const[e,t]of n){const r=t.find(e=>c.has(e.locatorHash));r&&(i.set(e,r),n.delete(e))}if(n.size>0){const e=new(v().Solver);for(const t of n.values())e.require(v().or(...t.map(e=>e.locatorHash)));let t,r=100,o=null,s=1/0;for(;r>0&&null!==(t=e.solve());){const n=t.getTrueVars();e.forbid(t.getFormula()),n.length<s&&(o=n,s=n.length),r-=1}if(!o)throw new Error("Assertion failed: No resolution found by the SAT solver");const A=new Set(o);for(const[e,t]of n.entries()){const r=t.find(e=>A.has(e.locatorHash));if(!r)throw new Error("Assertion failed: The descriptor should have been solved during the previous step");i.set(e,r),n.delete(e)}}const s=Array.from(i.values()).filter(e=>!c.has(e.locatorHash)),d=new Map(await Promise.all(s.map(async e=>{const t=await V.prettifyAsyncErrors(async()=>await o.resolve(e,A),t=>`${P.prettyLocator(this.configuration,e)}: ${t}`);if(!P.areLocatorsEqual(e,t))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${P.prettyLocator(this.configuration,e)} to ${P.prettyLocator(this.configuration,t)})`);const r=this.configuration.normalizePackage(t);for(const[t,n]of r.dependencies){const i=await this.configuration.reduceHook(e=>e.reduceDependency,n,this,r,n,{resolver:o,resolveOptions:A});if(!P.areIdentsEqual(n,i))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");const s=o.bindDescriptor(i,e,A);r.dependencies.set(t,s)}return[r.locatorHash,{original:t,pkg:r}]})));for(const t of e){const e=i.get(t);if(!e)throw new Error("Assertion failed: The locator should have been registered");u.set(t,e.locatorHash);const r=d.get(e.locatorHash);if(void 0===r)continue;const{original:n,pkg:o}=r;l.set(n.locatorHash,n),c.set(o.locatorHash,o);for(const e of o.dependencies.values()){a.set(e.descriptorHash,e),f.add(e.descriptorHash);const t=this.resolutionAliases.get(e.descriptorHash);if(void 0===t)continue;if(e.descriptorHash===t)continue;const r=this.storedDescriptors.get(t);if(!r)throw new Error("Assertion failed: The alias should have been registered");u.has(e.descriptorHash)||(u.set(e.descriptorHash,"temporary"),f.delete(e.descriptorHash),f.add(t),a.set(t,r),g.add(e.descriptorHash))}}}for(;g.size>0;){let e=!1;for(const t of g){if(!a.get(t))throw new Error("Assertion failed: The descriptor should have been registered");const r=this.resolutionAliases.get(t);if(void 0===r)throw new Error("Assertion failed: The descriptor should have an alias");const n=u.get(r);if(void 0===n)throw new Error("Assertion failed: The resolution should have been registered");"temporary"!==n&&(g.delete(t),u.set(t,n),e=!0)}if(!e)throw new Error("Alias loop detected")}const d=new Set(this.resolutionAliases.values()),C=new Set(c.keys()),E=new Set;!function({project:e,allDescriptors:t,allResolutions:r,allPackages:o,accessibleLocators:s=new Set,optionalBuilds:A=new Set,volatileDescriptors:a=new Set,report:c,tolerateMissingPackages:u=!1}){const l=new Map,h=[],g=new Map,f=new Map,p=new Map(e.workspaces.map(e=>{const t=e.anchoredLocator.locatorHash,r=o.get(t);if(void 0===r){if(u)return[t,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[t,P.copyPackage(r)]})),d=()=>{const e=n.xfs.mktempSync(),t=i.y1.join(e,"stacktrace.log"),r=String(h.length+1).length,o=h.map((e,t)=>`${(t+1+".").padStart(r," ")} ${P.stringifyLocator(e)}\n`).join("");throw n.xfs.writeFileSync(t,o),new G.lk(T.b.STACK_OVERFLOW_RESOLUTION,"Encountered a stack overflow when resolving peer dependencies; cf "+t)},C=e=>{const t=r.get(e.descriptorHash);if(void 0===t)throw new Error("Assertion failed: The resolution should have been registered");const n=o.get(t);if(!n)throw new Error("Assertion failed: The package could not be found");return n},E=(e,t,r)=>{h.length>1e3&&d(),h.push(e);const n=I(e,t,r);return h.pop(),n},I=(n,i,h)=>{if(s.has(n.locatorHash))return;s.add(n.locatorHash),h||A.delete(n.locatorHash);const I=o.get(n.locatorHash);if(!I){if(u)return;throw new Error(`Assertion failed: The package (${P.prettyLocator(e.configuration,n)}) should have been registered`)}const m=[],y=[],w=[],B=[],Q=[];for(const s of Array.from(I.dependencies.values())){if(I.peerDependencies.has(s.identHash)&&!i)continue;if(P.isVirtualDescriptor(s))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(s.descriptorHash);let A=h;if(!A){const e=I.dependenciesMeta.get(P.stringifyIdent(s));if(void 0!==e){const t=e.get(null);void 0!==t&&t.optional&&(A=!0)}}const g=r.get(s.descriptorHash);if(!g){if(u)continue;throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(e.configuration,s)}) should have been registered`)}const v=p.get(g)||o.get(g);if(!v)throw new Error(`Assertion failed: The package (${g}, resolved from ${P.prettyDescriptor(e.configuration,s)}) should have been registered`);if(0===v.peerDependencies.size){E(v,!1,A);continue}const D=l.get(v.locatorHash);let b,S;"number"==typeof D&&D>=2&&d();const k=new Set;y.push(()=>{b=P.virtualizeDescriptor(s,n.locatorHash),S=P.virtualizePackage(v,n.locatorHash),I.dependencies.delete(s.identHash),I.dependencies.set(b.identHash,b),r.set(b.descriptorHash,S.locatorHash),t.set(b.descriptorHash,b),o.set(S.locatorHash,S),m.push([v,b,S])}),w.push(()=>{for(const i of S.peerDependencies.values()){let o=I.dependencies.get(i.identHash);if(!o&&P.areIdentsEqual(n,i)&&(o=P.convertLocatorToDescriptor(n),t.set(o.descriptorHash,o),r.set(o.descriptorHash,n.locatorHash),a.delete(o.descriptorHash)),o||!S.dependencies.has(i.identHash)){if(!o){if(!I.peerDependencies.has(i.identHash)){const t=S.peerDependenciesMeta.get(P.stringifyIdent(i));null===c||t&&t.optional||c.reportWarning(T.b.MISSING_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} doesn't provide ${P.prettyDescriptor(e.configuration,i)} requested by ${P.prettyLocator(e.configuration,v)}`)}o=P.makeDescriptor(i,"missing:")}if(S.dependencies.set(o.identHash,o),P.isVirtualDescriptor(o)){V.getSetWithDefault(f,o.descriptorHash).add(S.locatorHash)}if("missing:"===o.range)k.add(o.identHash);else if(null!==c){const t=C(o);Z.satisfiesWithPrereleases(t.version,i.range)||c.reportWarning(T.b.INCOMPATIBLE_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} provides ${P.prettyLocator(e.configuration,t)} with version ${t.version} which doesn't satisfy ${P.prettyRange(e.configuration,i.range)} requested by ${P.prettyLocator(e.configuration,v)}`)}}else S.peerDependencies.delete(i.identHash)}S.dependencies=new Map(V.sortMap(S.dependencies,([e,t])=>P.stringifyIdent(t)))}),B.push(()=>{if(!o.has(S.locatorHash))return;const e=l.get(v.locatorHash),t=void 0!==e?e+1:1;l.set(v.locatorHash,t),E(S,!1,A),l.set(v.locatorHash,t-1)}),Q.push(()=>{if(o.has(S.locatorHash))for(const e of k)S.dependencies.delete(e)})}for(const e of[...y,...w])e();let v;do{v=!0;for(const[n,i,A]of m){if(!o.has(A.locatorHash))continue;const a=V.getMapWithDefault(g,n.locatorHash),c=W.makeHash(...[...A.dependencies.values()].map(t=>{const n="missing:"!==t.range?r.get(t.descriptorHash):"missing:";if(void 0===n)throw new Error(`Assertion failed: Expected the resolution for ${P.prettyDescriptor(e.configuration,t)} to have been registered`);return n})),u=a.get(c);if(void 0===u){a.set(c,i);continue}if(u===i)continue;v=!1,o.delete(A.locatorHash),t.delete(i.descriptorHash),r.delete(i.descriptorHash),s.delete(A.locatorHash);const l=f.get(i.descriptorHash)||[],h=[I.locatorHash,...l];for(const e of h){const t=o.get(e);void 0!==t&&t.dependencies.set(i.identHash,u)}}}while(!v);for(const e of[...B,...Q])e()};for(const t of e.workspaces)a.delete(t.anchoredDescriptor.descriptorHash),E(t.anchoredLocator,!0,!1)}({project:this,report:e.report,accessibleLocators:E,volatileDescriptors:d,optionalBuilds:C,allDescriptors:a,allResolutions:u,allPackages:c});for(const e of d)a.delete(e),u.delete(e);this.storedResolutions=u,this.storedDescriptors=a,this.storedPackages=c,this.accessibleLocators=E,this.originalPackages=l,this.optionalBuilds=C,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:r}){const n=r||this.configuration.makeFetcher(),i={checksums:this.storedChecksums,project:this,cache:e,fetcher:n,report:t},o=V.sortMap(this.storedResolutions.values(),[e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");return P.stringifyLocator(t)}]);let s=!1;const A=G.yG.progressViaCounter(o.length);t.reportProgress(A);const a=b()(32);if(await t.startCacheReport(async()=>{await Promise.all(o.map(e=>a(async()=>{const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The locator should have been registered");if(P.isVirtualLocator(r))return;let o;try{o=await n.fetch(r,i)}catch(e){return e.message=`${P.prettyLocator(this.configuration,r)}: ${e.message}`,t.reportExceptionOnce(e),void(s=e)}o.checksum?this.storedChecksums.set(r.locatorHash,o.checksum):this.storedChecksums.delete(r.locatorHash),o.releaseFs&&o.releaseFs()}).finally(()=>{A.tick()})))}),s)throw s}async linkEverything({cache:e,report:t,fetcher:r}){const o=r||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0},c=this.configuration.getLinkers(),u={project:this,report:t},l=new Map(c.map(e=>[e,e.makeInstaller(u)])),h=new Map,g=new Map,f=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=await o.fetch(t,A);if(null!==this.tryWorkspaceByLocator(t)){const e=[],{scripts:n}=await j.G.find(r.prefixPath,{baseFs:r.packageFs});for(const t of["preinstall","install","postinstall"])n.has(t)&&e.push([L.k.SCRIPT,t]);try{for(const e of l.values())await e.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}const o=i.y1.join(r.packageFs.getRealPath(),r.prefixPath);g.set(t.locatorHash,o),e.length>0&&f.set(t.locatorHash,{directives:e,buildLocations:[o]})}else{const e=c.find(e=>e.supportsPackage(t,u));if(!e)throw new G.lk(T.b.LINKER_NOT_FOUND,P.prettyLocator(this.configuration,t)+" isn't supported by any available linker");const n=l.get(e);if(!n)throw new Error("Assertion failed: The installer should have been registered");let i;try{i=await n.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}h.set(t.locatorHash,e),g.set(t.locatorHash,i.packageLocation),i.buildDirective&&i.packageLocation&&f.set(t.locatorHash,{directives:i.buildDirective,buildLocations:[i.packageLocation]})}}const p=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=null!==this.tryWorkspaceByLocator(t),n=async(e,n)=>{const i=g.get(t.locatorHash);if(void 0===i)throw new Error(`Assertion failed: The package (${P.prettyLocator(this.configuration,t)}) should have been registered`);const o=[];for(const n of t.dependencies.values()){const s=this.storedResolutions.get(n.descriptorHash);if(void 0===s)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,n)}, from ${P.prettyLocator(this.configuration,t)})should have been registered`);const A=this.storedPackages.get(s);if(void 0===A)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const a=null===this.tryWorkspaceByLocator(A)?h.get(s):null;if(void 0===a)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const c=null===a;if(a===e||r||c)null!==g.get(A.locatorHash)&&o.push([n,A]);else if(null!==i){V.getArrayWithDefault(p,s).push(i)}}null!==i&&await n.attachInternalDependencies(t,o)};if(r)for(const[e,t]of l)await n(e,t);else{const e=h.get(t.locatorHash);if(!e)throw new Error("Assertion failed: The linker should have been found");const r=l.get(e);if(!r)throw new Error("Assertion failed: The installer should have been registered");await n(e,r)}}for(const[e,t]of p){const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The package should have been registered");const n=h.get(r.locatorHash);if(!n)throw new Error("Assertion failed: The linker should have been found");const i=l.get(n);if(!i)throw new Error("Assertion failed: The installer should have been registered");await i.attachExternalDependents(r,t)}for(const e of l.values()){const t=await e.finalizeInstall();if(t)for(const e of t)e.buildDirective&&f.set(e.locatorHash,{directives:e.buildDirective,buildLocations:e.buildLocations})}const d=new Set(this.storedPackages.keys()),C=new Set(f.keys());for(const e of C)d.delete(e);const E=(0,a.createHash)("sha512");E.update(process.versions.node),this.configuration.triggerHook(e=>e.globalHashGeneration,this,e=>{E.update("\0"),E.update(e)});const I=E.digest("hex"),m=new Map,y=e=>{let t=m.get(e.locatorHash);if(void 0!==t)return t;const r=this.storedPackages.get(e.locatorHash);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");const n=(0,a.createHash)("sha512");n.update(e.locatorHash),m.set(e.locatorHash,"<recursive>");for(const e of r.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(void 0===t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(void 0===this.storedPackages.get(t))throw new Error("Assertion failed: The package should have been registered");n.update(y(r))}return t=n.digest("hex"),m.set(e.locatorHash,t),t},w=(e,t)=>{const r=(0,a.createHash)("sha512");r.update(I),r.update(y(e));for(const e of t)r.update(e);return r.digest("hex")},B=this.configuration.get("bstatePath"),Q=n.xfs.existsSync(B)?(0,s.parseSyml)(await n.xfs.readFilePromise(B,"utf8")):{},v=new Map;for(;C.size>0;){const e=C.size,r=[];for(const e of C){const o=this.storedPackages.get(e);if(!o)throw new Error("Assertion failed: The package should have been registered");let s=!0;for(const e of o.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(!t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(C.has(t)){s=!1;break}}if(!s)continue;C.delete(e);const A=f.get(o.locatorHash);if(!A)throw new Error("Assertion failed: The build directive should have been registered");const a=w(o,A.buildLocations);if(Object.prototype.hasOwnProperty.call(Q,o.locatorHash)&&Q[o.locatorHash]===a)v.set(o.locatorHash,a);else{Object.prototype.hasOwnProperty.call(Q,o.locatorHash)?t.reportInfo(T.b.MUST_REBUILD,P.prettyLocator(this.configuration,o)+" must be rebuilt because its dependency tree changed"):t.reportInfo(T.b.MUST_BUILD,P.prettyLocator(this.configuration,o)+" must be built because it never did before or the last one failed");for(const e of A.buildLocations){if(!i.y1.isAbsolute(e))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${e})`);r.push((async()=>{for(const[r,s]of A.directives){let A=`# This file contains the result of Yarn building a package (${P.stringifyLocator(o)})\n`;switch(r){case L.k.SCRIPT:A+=`# Script name: ${s}\n`;break;case L.k.SHELLCODE:A+=`# Script code: ${s}\n`}const c=null;await n.xfs.mktempPromise(async u=>{const l=i.y1.join(u,"build.log"),{stdout:h,stderr:g}=this.configuration.getSubprocessStreams(l,{header:A,prefix:P.prettyLocator(this.configuration,o),report:t});let f;try{switch(r){case L.k.SCRIPT:f=await X.executePackageScript(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g});break;case L.k.SHELLCODE:f=await X.executePackageShellcode(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g})}}catch(e){g.write(e.stack),f=1}if(h.end(),g.end(),0===f)return v.set(o.locatorHash,a),!0;n.xfs.detachTemp(u);const p=`${P.prettyLocator(this.configuration,o)} couldn't be built successfully (exit code ${this.configuration.format(String(f),K.a5.NUMBER)}, logs can be found here: ${this.configuration.format(l,K.a5.PATH)})`;return t.reportInfo(T.b.BUILD_FAILED,p),this.optionalBuilds.has(o.locatorHash)?(v.set(o.locatorHash,a),!0):(t.reportError(T.b.BUILD_FAILED,p),!1)})}})())}}}if(await Promise.all(r),e===C.size){const e=Array.from(C).map(e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The package should have been registered");return P.prettyLocator(this.configuration,t)}).join(", ");t.reportError(T.b.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${e})`);break}}if(v.size>0){const e=this.configuration.get("bstatePath"),t=ne.generateBuildStateFile(v,this.storedPackages);await n.xfs.mkdirpPromise(i.y1.dirname(e)),await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}else await n.xfs.removePromise(B)}async install(e){const t=[],r=[];await this.configuration.triggerHook(e=>e.validateProject,this,{reportWarning:(e,r)=>t.push({name:e,text:r}),reportError:(e,t)=>r.push({name:e,text:t})});t.length+r.length>0&&await e.report.startTimerPromise("Validation step",async()=>{await this.validateEverything({validationWarnings:t,validationErrors:r,report:e.report})}),await e.report.startTimerPromise("Resolution step",async()=>{const t=i.y1.join(this.cwd,this.configuration.get("lockfileFilename"));let r=null;if(e.immutable)try{r=await n.xfs.readFilePromise(t,"utf8")}catch(e){throw"ENOENT"===e.code?new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):e}if(await this.resolveEverything(e),null!==r){const n=(0,o.qH)(r,this.generateLockfile());if(n!==r){const i=B(t,t,r,n);e.report.reportSeparator();for(const t of i.hunks){e.report.reportInfo(null,`@@ -${t.oldStart},${t.oldLines} +${t.newStart},${t.newLines} @@`);for(const r of t.lines)r.startsWith("+")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.ADDED)):r.startsWith("-")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.REMOVED)):e.report.reportInfo(null,this.configuration.format(r,"grey"))}throw e.report.reportSeparator(),new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}}),await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(void 0===e.persistProject||e.persistProject)&&await this.cacheCleanup(e)}),(void 0===e.persistProject||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{await this.linkEverything(e)}),await this.configuration.triggerHook(e=>e.afterAllInstalled,this)}generateLockfile(){const e=new Map;for(const[t,r]of this.storedResolutions.entries()){let n=e.get(r);n||e.set(r,n=new Set),n.add(t)}const t={__metadata:{version:4}};for(const[r,n]of e.entries()){const e=this.originalPackages.get(r);if(!e)continue;const i=[];for(const e of n){const t=this.storedDescriptors.get(e);if(!t)throw new Error("Assertion failed: The descriptor should have been registered");i.push(t)}const o=i.map(e=>P.stringifyDescriptor(e)).sort().join(", "),s=new j.G;let A;s.version=e.linkType===$.U.HARD?e.version:"0.0.0-use.local",s.languageName=e.languageName,s.dependencies=new Map(e.dependencies),s.peerDependencies=new Map(e.peerDependencies),s.dependenciesMeta=new Map(e.dependenciesMeta),s.peerDependenciesMeta=new Map(e.peerDependenciesMeta),s.bin=new Map(e.bin);const a=this.storedChecksums.get(e.locatorHash);if(void 0!==a){const e=a.indexOf("/");if(-1===e)throw new Error("Assertion failed: Expecte the checksum to reference its cache key");const r=a.slice(0,e),n=a.slice(e+1);void 0===t.__metadata.cacheKey&&(t.__metadata.cacheKey=r),A=r===t.__metadata.cacheKey?n:a}t[o]={...s.exportTo({},{compatibilityMode:!1}),linkType:e.linkType.toLowerCase(),resolution:P.stringifyLocator(e),checksum:A}}return['# This file is generated by running "yarn install" inside your project.\n',"# Manual changes might be lost - proceed with caution!\n"].join("")+"\n"+(0,s.stringifySyml)(t)}async persistLockfile(){const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.generateLockfile();await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}async persistInstallStateFile(){const{accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A}=this,a={accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A},c=await te(M().serialize(a)),u=this.configuration.get("installStatePath");await n.xfs.mkdirpPromise(i.y1.dirname(u)),await n.xfs.writeFilePromise(u,c)}async restoreInstallState(){const e=this.configuration.get("installStatePath");if(!n.xfs.existsSync(e))return void await this.applyLightResolution();const t=await n.xfs.readFilePromise(e),r=M().deserialize(await re(t));r.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,r),this.refreshWorkspaceDependencies()):await this.applyLightResolution()}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new H.$}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile(),await this.persistInstallStateFile();for(const e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){const r=new Set([".gitignore"]);if(n.xfs.existsSync(e.cwd)&&(0,z.isFolderInside)(e.cwd,this.cwd)){for(const o of await n.xfs.readdirPromise(e.cwd)){if(r.has(o))continue;const s=i.y1.resolve(e.cwd,o);e.markedFiles.has(s)||(e.immutable?t.reportError(T.b.IMMUTABLE_CACHE,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused and would marked for deletion, but the cache is immutable"):(t.reportInfo(T.b.UNUSED_CACHE_ENTRY,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused - removing"),await n.xfs.unlinkPromise(s)))}e.markedFiles.clear()}}}},52779:(e,t,r)=>{"use strict";r.d(t,{c:()=>s,O:()=>A});var n=r(53887),i=r.n(n),o=r(54143);const s=/^(?!v)[a-z0-9-.]+$/i;class A{supportsDescriptor(e,t){return!!i().validRange(e.range)||!!s.test(e.range)}supportsLocator(e,t){return!!i().validRange(e.reference)||!!s.test(e.reference)}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,r){return r.resolver.bindDescriptor(this.forwardDescriptor(e,r),t,r)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,r){return await r.resolver.getCandidates(this.forwardDescriptor(e,r),t,r)}async resolve(e,t){const r=await t.resolver.resolve(this.forwardLocator(e,t),t);return o.renamePackage(r,e)}forwardDescriptor(e,t){return o.makeDescriptor(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return o.makeLocator(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}}},35691:(e,t,r)=>{"use strict";r.d(t,{lk:()=>s,yG:()=>A});var n=r(92413),i=r(24304),o=r(92659);class s extends Error{constructor(e,t){super(t),this.reportCode=e}}class A{constructor(){this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}static progressViaCounter(e){let t,r=0,n=new Promise(e=>{t=e});const i=e=>{const i=t;n=new Promise(e=>{t=e}),r=e,i()},o=async function*(){for(;r<e;)await n,yield{progress:r/e}}();return{[Symbol.asyncIterator]:()=>o,set:i,tick:(e=0)=>{i(r+1)}}}reportInfoOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t))}reportWarningOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t))}reportErrorOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t))}reportExceptionOnce(e){!function(e){return void 0!==e.reportCode}(e)?this.reportErrorOnce(o.b.EXCEPTION,e.stack||e.message,{key:e}):this.reportErrorOnce(e.reportCode,e.message,{key:e})}createStreamReporter(e=null){const t=new n.PassThrough,r=new i.StringDecoder;let o="";return t.on("data",t=>{let n,i=r.write(t);do{if(n=i.indexOf("\n"),-1!==n){const t=o+i.substr(0,n);i=i.substr(n+1),o="",null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t)}}while(-1!==n);o+=i}),t.on("end",()=>{const t=r.end();""!==t&&(null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t))}),t}}},15815:(e,t,r)=>{"use strict";r.d(t,{P:()=>f});var n=r(29148),i=r.n(n),o=r(92659),s=r(35691);const A=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],a=new Set([o.b.FETCH_NOT_CACHED,o.b.UNUSED_CACHE_ENTRY]),c=process.env.GITHUB_ACTIONS?{start:e=>`::group::${e}\n`,end:e=>"::endgroup::\n"}:process.env.TRAVIS?{start:e=>`travis_fold:start:${e}\n`,end:e=>`travis_fold:end:${e}\n`}:process.env.GITLAB_CI?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K${e}\n`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K`}:null,u=new Date,l=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM),h={patrick:{date:[17,3],chars:["🍀","🌱"],size:40},simba:{date:[19,7],chars:["🌟","✨"],size:40},jack:{date:[31,10],chars:["🎃","🦇"],size:40},hogsfather:{date:[31,12],chars:["🎉","🎄"],size:40},default:{chars:["=","-"],size:80}},g=l&&Object.keys(h).find(e=>{const t=h[e];return!t.date||t.date[0]===u.getDate()&&t.date[1]===u.getMonth()+1})||"default";class f extends s.yG{constructor({configuration:e,stdout:t,json:r=!1,includeFooter:n=!0,includeLogs:i=!r,includeInfos:o=i,includeWarnings:s=i,forgettableBufferSize:A=5,forgettableNames:c=new Set}){super(),this.cacheHitCount=0,this.cacheMissCount=0,this.warningCount=0,this.errorCount=0,this.startTime=Date.now(),this.indent=0,this.progress=new Map,this.progressTime=0,this.progressFrame=0,this.progressTimeout=null,this.forgettableLines=[],this.configuration=e,this.forgettableBufferSize=A,this.forgettableNames=new Set([...c,...a]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=s,this.json=r,this.stdout=t}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.cacheMissCount+=1,void 0===t||this.configuration.get("preferAggregateCacheInfo")||this.reportInfo(o.b.FETCH_NOT_CACHED,t)}startTimerSync(e,t){this.reportInfo(null,"┌ "+e);const r=Date.now();this.indent+=1;try{return t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const e=Date.now();this.indent-=1,this.configuration.get("enableTimers")&&e-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(e-r)):this.reportInfo(null,"└ Completed")}}async startTimerPromise(e,t){this.reportInfo(null,"┌ "+e),null!==c&&this.stdout.write(c.start(e));const r=Date.now();this.indent+=1;try{return await t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const t=Date.now();this.indent-=1,null!==c&&this.stdout.write(c.end(e)),this.configuration.get("enableTimers")&&t-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(t-r)):this.reportInfo(null,"└ Completed")}}async startCacheReport(e){const t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(e){throw this.reportExceptionOnce(e),e}finally{null!==t&&this.reportCacheChanges(t)}}reportSeparator(){0===this.indent?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;const r=`${this.configuration.format("➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(r),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(r,{truncate:!0});else this.writeLineWithForgettableReset(r)}reportWarning(e,t){this.warningCount+=1,this.includeWarnings&&(this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","yellowBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`))}reportError(e,t){this.errorCount+=1,this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){let t=!1;const r=Promise.resolve().then(async()=>{const r={progress:0,title:void 0};this.progress.set(e,r),this.refreshProgress(-1);for await(const{progress:n,title:i}of e)t||r.progress===n&&r.title===i||(r.progress=n,r.title=i,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress(1))};return{...r,stop:n}}reportJson(e){this.json&&this.writeLineWithForgettableReset(""+JSON.stringify(e))}async finalize(){if(!this.includeFooter)return;let e="";e=this.errorCount>0?"Failed with errors":this.warningCount>0?"Done with warnings":"Done";const t=this.formatTiming(Date.now()-this.startTime),r=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(o.b.UNNAMED,r):this.warningCount>0?this.reportWarning(o.b.UNNAMED,r):this.reportInfo(o.b.UNNAMED,r)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(this.truncate(e,{truncate:t})+"\n"),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(const r of e)this.stdout.write(this.truncate(r,{truncate:t})+"\n");this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){const r=this.cacheHitCount-e,n=this.cacheMissCount-t;if(0===r&&0===n)return;let i="";this.cacheHitCount>1?i+=this.cacheHitCount+" packages were already cached":1===this.cacheHitCount?i+=" - one package was already cached":i+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?i+=`, ${this.cacheMissCount} had to be fetched`:1===this.cacheMissCount&&(i+=", one had to be fetched"):this.cacheMissCount>1?i+=` - ${this.cacheMissCount} packages had to be fetched`:1===this.cacheMissCount&&(i+=" - one package had to be fetched"),this.reportInfo(o.b.FETCH_NOT_CACHED,i)}clearProgress({delta:e=0,clear:t=!1}){this.configuration.get("enableProgressBars")&&!this.json&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write("[0J"))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json)return;if(null!==this.progressTimeout&&clearTimeout(this.progressTimeout),this.progressTimeout=null,0===this.progress.size)return;const e=Date.now();e-this.progressTime>80&&(this.progressFrame=(this.progressFrame+1)%A.length,this.progressTime=e);const t=A[this.progressFrame],r=this.configuration.get("progressBarStyle")||g;if(!Object.prototype.hasOwnProperty.call(h,r))throw new Error("Assertion failed: Invalid progress bar style");const n=h[r],i="➤ YN0000: ┌ ".length,o=Math.max(0,Math.min(process.stdout.columns-i,80)),s=Math.floor(n.size*o/80);for(const{progress:e}of this.progress.values()){const r=s*e,i=n.chars[0].repeat(r),o=n.chars[1].repeat(s-r);this.stdout.write(`${this.configuration.format("➤","blueBright")} ${this.formatName(null)}: ${t} ${i}${o}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},1e3/60)}refreshProgress(e=0){this.clearProgress({delta:e}),this.writeProgress()}formatTiming(e){return e<6e4?Math.round(e/10)/100+"s":Math.round(e/600)/100+"m"}truncate(e,{truncate:t}={}){return this.configuration.get("enableProgressBars")||(t=!1),void 0===t&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=i()(e,0,process.stdout.columns-1)),e}formatName(e){const t="YN"+(null===e?0:e).toString(10).padStart(4,"0");return this.json||null!==e?t:this.configuration.format(t,"grey")}formatNameWithHyperlink(e){const t=this.formatName(e);if(!this.configuration.get("enableHyperlinks"))return t;if(null===e||e===o.b.UNNAMED)return t;return`]8;;${`https://yarnpkg.com/advanced/error-codes#${t}---${o.b[e]}`.toLowerCase()}${t}]8;;`}formatIndent(){return"│ ".repeat(this.indent)}}},33720:(e,t,r)=>{"use strict";r.d(t,{$:()=>i});var n=r(35691);class i extends n.yG{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}},60895:(e,t,r)=>{"use strict";r.d(t,{N:()=>A});var n=r(17674),i=r(14626),o=r(46009),s=r(54143);class A{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n);return t.fetcher.getLocalPath(i,t)}async fetch(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n),o=await t.fetcher.fetch(i,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return s.slugifyLocator(e)}async ensureVirtualLink(e,t,r){const s=t.packageFs.getRealPath(),A=r.project.configuration.get("virtualFolder"),a=this.getLocatorFilename(e),c=n.p.makeVirtualPath(A,a,s),u=new i.K(c,{baseFs:t.packageFs,pathUtils:o.y1});return{...t,packageFs:u}}}},17722:(e,t,r)=>{"use strict";r.d(t,{j:()=>g});var n=r(56537),i=r(46009),o=r(18710),s=r.n(o),A=r(53887),a=r.n(A),c=r(46611),u=r(94538),l=r(20624),h=r(54143);class g{constructor(e,{project:t}){this.workspacesCwds=new Set,this.dependencies=new Map,this.project=t,this.cwd=e}async setup(){this.manifest=n.xfs.existsSync(i.y1.join(this.cwd,c.G.fileName))?await c.G.find(this.cwd):new c.G,this.relativeCwd=i.y1.relative(this.project.cwd,this.cwd)||i.LZ.dot;const e=this.manifest.name?this.manifest.name:h.makeIdent(null,`${this.computeCandidateName()}-${l.makeHash(this.relativeCwd).substr(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=h.makeLocator(e,t),this.anchoredDescriptor=h.makeDescriptor(this.locator,`${u.d.protocol}${this.relativeCwd}`),this.anchoredLocator=h.makeLocator(this.locator,`${u.d.protocol}${this.relativeCwd}`);for(const e of this.manifest.workspaceDefinitions){const t=await s()(e.pattern,{absolute:!0,cwd:i.cS.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});t.sort();for(const e of t){const t=i.y1.resolve(this.cwd,i.cS.toPortablePath(e));n.xfs.existsSync(i.y1.join(t,(0,i.Zu)("package.json")))&&this.workspacesCwds.add(t)}}}accepts(e){const t=e.indexOf(":"),r=-1!==t?e.slice(0,t+1):null,n=-1!==t?e.slice(t+1):e;return r===u.d.protocol&&n===this.relativeCwd||(r===u.d.protocol&&"*"===n||!!a().validRange(n)&&(r===u.d.protocol?a().satisfies(null!==this.manifest.version?this.manifest.version:"0.0.0",n):!!this.project.configuration.get("enableTransparentWorkspaces")&&(null!==this.manifest.version&&a().satisfies(this.manifest.version,n))))}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":""+i.y1.basename(this.cwd)||"unnamed-workspace"}async persistManifest(){const e={};this.manifest.exportTo(e);const t=i.y1.join(this.cwd,c.G.fileName),r=JSON.stringify(e,null,this.manifest.indent)+"\n";await n.xfs.changeFilePromise(t,r,{automaticNewlines:!0})}}},94538:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(32485);class i{supportsDescriptor(e,t){if(e.range.startsWith(i.protocol))return!0;return null!==t.project.tryWorkspaceByDescriptor(e)}supportsLocator(e,t){return!!e.reference.startsWith(i.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[r.project.getWorkspaceByDescriptor(e).anchoredLocator]}async resolve(e,t){const r=t.project.getWorkspaceByCwd(e.reference.slice(i.protocol.length));return{...e,version:r.manifest.version||"0.0.0",languageName:"unknown",linkType:n.U.SOFT,dependencies:new Map([...r.manifest.dependencies,...r.manifest.devDependencies]),peerDependencies:new Map([...r.manifest.peerDependencies]),dependenciesMeta:r.manifest.dependenciesMeta,peerDependenciesMeta:r.manifest.peerDependenciesMeta,bin:r.manifest.bin}}}i.protocol="workspace:"},59355:(e,t,r)=>{"use strict";r.d(t,{o:()=>n});const n="2.1.1"},6220:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EndStrategy:()=>n,pipevp:()=>u,execvp:()=>l});var n,i=r(46009),o=r(67566),s=r.n(o);function A(e){return null!==e&&"number"==typeof e.fd}function a(){}!function(e){e[e.Never=0]="Never",e[e.ErrorCode=1]="ErrorCode",e[e.Always=2]="Always"}(n||(n={}));let c=0;async function u(e,t,{cwd:r,env:o=process.env,strict:u=!1,stdin:l=null,stdout:h,stderr:g,end:f=n.Always}){const p=["pipe","pipe","pipe"];null===l?p[0]="ignore":A(l)&&(p[0]=l),A(h)&&(p[1]=h),A(g)&&(p[2]=g),0==c++&&process.on("SIGINT",a);const d=s()(e,t,{cwd:i.cS.fromPortablePath(r),env:{...o,PWD:i.cS.fromPortablePath(r)},stdio:p});A(l)||null===l||l.pipe(d.stdin),A(h)||d.stdout.pipe(h,{end:!1}),A(g)||d.stderr.pipe(g,{end:!1});const C=()=>{for(const e of new Set([h,g]))A(e)||e.end()};return new Promise((t,r)=>{d.on("error",e=>{0==--c&&process.off("SIGINT",a),f!==n.Always&&f!==n.ErrorCode||C(),r(e)}),d.on("close",(i,o)=>{0==--c&&process.off("SIGINT",a),(f===n.Always||f===n.ErrorCode&&i>0)&&C(),0!==i&&u?r(null!==i?new Error(`Child "${e}" exited with exit code ${i}`):new Error(`Child "${e}" exited with signal ${o}`)):t({code:i})})})}async function l(e,t,{cwd:r,env:n=process.env,encoding:o="utf8",strict:A=!1}){const a=["ignore","pipe","pipe"],c=[],u=[],l=i.cS.fromPortablePath(r);void 0!==n.PWD&&(n={...n,PWD:l});const h=s()(e,t,{cwd:l,env:n,stdio:a});return h.stdout.on("data",e=>{c.push(e)}),h.stderr.on("data",e=>{u.push(e)}),await new Promise((t,r)=>{h.on("close",n=>{const i="buffer"===o?Buffer.concat(c):Buffer.concat(c).toString(o),s="buffer"===o?Buffer.concat(u):Buffer.concat(u).toString(o);0!==n&&A?r(Object.assign(new Error(`Child "${e}" exited with exit code ${n}\n\n${s}`),{code:n,stdout:i,stderr:s})):t({code:n,stdout:i,stderr:s})})})}},81111:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getDefaultGlobalFolder:()=>o,getHomeFolder:()=>s,isFolderInside:()=>A});var n=r(46009),i=r(12087);function o(){if("win32"===process.platform){const e=n.cS.toPortablePath(process.env.LOCALAPPDATA||n.cS.join((0,i.homedir)(),"AppData","Local"));return n.y1.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){const e=n.cS.toPortablePath(process.env.XDG_DATA_HOME);return n.y1.resolve(e,"yarn/berry")}return n.y1.resolve(s(),".yarn/berry")}function s(){return n.cS.toPortablePath((0,i.homedir)()||"/usr/local/share")}function A(e,t){const r=n.y1.relative(t,e);return r&&!r.startsWith("..")&&!n.y1.isAbsolute(r)}},20624:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeHash:()=>o,checksumFile:()=>s});var n=r(78420),i=r(76417);function o(...e){const t=(0,i.createHash)("sha512");for(const r of e)t.update(r||"");return t.digest("hex")}function s(e){return new Promise((t,r)=>{const o=new n.S,s=(0,i.createHash)("sha512"),A=o.createReadStream(e,{});A.on("data",e=>{s.update(e)}),A.on("error",e=>{r(e)}),A.on("end",()=>{t(s.digest("hex"))})})}},84132:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Cache:()=>O.C,DEFAULT_RC_FILENAME:()=>j.tr,DEFAULT_LOCK_FILENAME:()=>j.nh,Configuration:()=>j.VK,FormatType:()=>j.a5,ProjectLookup:()=>j.EW,SettingsType:()=>j.a2,BuildType:()=>Y.k,LightReport:()=>G.h,Manifest:()=>J.G,MessageName:()=>H.b,Project:()=>q.I,TAG_REGEXP:()=>z.c,ReportError:()=>W.lk,Report:()=>W.yG,StreamReport:()=>V.P,ThrowReport:()=>X.$,VirtualFetcher:()=>Z.N,WorkspaceResolver:()=>$.d,Workspace:()=>ee.j,YarnVersion:()=>te.o,LinkType:()=>re.U,hashUtils:()=>A,httpUtils:()=>n,execUtils:()=>o,folderUtils:()=>s,miscUtils:()=>S,scriptUtils:()=>k,semverUtils:()=>x,structUtils:()=>F,tgzUtils:()=>i});var n={};r.r(n),r.d(n,{Method:()=>Q,get:()=>D,put:()=>b,request:()=>v});var i={};r.r(i),r.d(i,{convertToZip:()=>U,extractArchiveTo:()=>_,makeArchiveFromDirectory:()=>P});var o=r(6220),s=r(81111),A=r(20624),a=r(22395),c=r.n(a),u=r(57211),l=r(98605),h=r(2401),g=r.n(h),f=r(61578),p=r.n(f),d=r(98161),C=r.n(d),E=r(78835);const I=p()(8),m=new Map,y=new l.Agent({keepAlive:!0}),w=new u.Agent({keepAlive:!0});function B(e){const t=new E.URL(e),r={host:t.hostname,headers:{}};return t.port&&(r.port=Number(t.port)),{proxy:r}}var Q;async function v(e,t,{configuration:r,headers:n,json:i,method:o=Q.GET}){if(!r.get("enableNetwork"))throw new Error(`Network access have been disabled by configuration (${o} ${e})`);const s=new E.URL(e);if("http:"===s.protocol&&!g().isMatch(s.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${s.hostname})`);const A=r.get("httpProxy"),a=r.get("httpsProxy"),u={agent:{http:A?C().httpOverHttp(B(A)):y,https:a?C().httpsOverHttp(B(a)):w},headers:n,method:o};u.responseType=i?"json":"buffer",null!==t&&("string"==typeof t||Buffer.isBuffer(t)?u.body=t:u.json=t);const l=r.get("httpTimeout"),h=r.get("httpRetry"),f=c().extend({timeout:l,retry:h,...u});return I(()=>f(e))}async function D(e,{configuration:t,json:r,...n}){let i=m.get(e);return i||(i=v(e,null,{configuration:t,...n}).then(t=>(m.set(e,t.body),t.body)),m.set(e,i)),!1===Buffer.isBuffer(i)&&(i=await i),r?JSON.parse(i.toString()):i}async function b(e,t,r){return(await v(e,t,{...r,method:Q.PUT})).body}!function(e){e.GET="GET",e.PUT="PUT"}(Q||(Q={}));var S=r(73632),k=r(63088),x=r(36545),F=r(54143),M=r(78420),N=r(46009),R=r(56537),K=r(90739),L=r(29486),T=r(27700);async function P(e,{baseFs:t=new M.S,prefixPath:r=N.LZ.root,compressionLevel:n}={}){const i=await R.xfs.mktempPromise(),o=N.y1.join(i,"archive.zip"),s=new K.d(o,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:n}),A=N.y1.resolve(N.LZ.root,r);return await s.copyPromise(A,e,{baseFs:t,stableTime:!0,stableSort:!0}),s}async function U(e,t){const r=await R.xfs.mktempPromise(),n=N.y1.join(r,"archive.zip"),{compressionLevel:i,...o}=t;return await _(e,new K.d(n,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:i}),o)}async function _(e,t,{stripComponents:r=0,prefixPath:n=N.LZ.dot}={}){const i=new T.Ze;return i.on("entry",e=>{if(function(e){if("/"===e[0])return!0;const t=e.path.split(/\//g);return!!t.some(e=>".."===e)||t.length<=r}(e))return void e.resume();const i=N.y1.normalize(N.cS.toPortablePath(e.path)).replace(/\/$/,"").split(/\//g);if(i.length<=r)return void e.resume();const o=i.slice(r).join("/"),s=N.y1.join(n,o),A=[];let a=420;"Directory"!==e.type&&0==(73&e.mode)||(a|=73),e.on("data",e=>{A.push(e)}),e.on("end",()=>{var r;switch(e.type){case"Directory":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.mkdirSync(s),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"OldFile":case"File":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.writeFileSync(s,Buffer.concat(A)),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"SymbolicLink":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.symlinkSync(e.linkpath,s),null===(r=t.lutimesSync)||void 0===r||r.call(t,s,315532800,315532800)}})}),await new Promise((r,n)=>{i.on("error",e=>{n(e)}),i.on("close",()=>{r(t)}),i.end(e)})}var O=r(28148),j=r(27122),Y=r(92409),G=r(62152),J=r(46611),H=r(92659),q=r(40376),z=r(52779),W=r(35691),V=r(15815),X=r(33720),Z=r(60895),$=r(94538),ee=r(17722),te=r(59355),re=r(32485)},73632:(e,t,r)=>{"use strict";r.r(t),r.d(t,{escapeRegExp:()=>a,assertNever:()=>c,mapAndFilter:()=>u,mapAndFind:()=>h,getFactoryWithDefault:()=>f,getArrayWithDefault:()=>p,getSetWithDefault:()=>d,getMapWithDefault:()=>C,releaseAfterUseAsync:()=>E,prettifyAsyncErrors:()=>I,prettifySyncErrors:()=>m,bufferStream:()=>y,BufferStream:()=>w,DefaultStream:()=>B,dynamicRequire:()=>Q,dynamicRequireNoCache:()=>v,sortMap:()=>D,buildIgnorePattern:()=>b,replaceEnvVariables:()=>S});var n=r(46009),i=r(17278),o=r(2401),s=r.n(o),A=r(92413);function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function u(e,t){const r=[];for(const n of e){const e=t(n);e!==l&&r.push(e)}return r}e=r.hmd(e);const l=Symbol();function h(e,t){for(const r of e){const e=t(r);if(e!==g)return e}}u.skip=l;const g=Symbol();function f(e,t,r){let n=e.get(t);return void 0===n&&e.set(t,n=r()),n}function p(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=[]),r}function d(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Set),r}function C(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Map),r}async function E(e,t){if(null==t)return await e();try{return await e()}finally{await t()}}async function I(e,t){try{return await e()}catch(e){throw e.message=t(e.message),e}}function m(e,t){try{return e()}catch(e){throw e.message=t(e.message),e}}async function y(e){return await new Promise((t,r)=>{const n=[];e.on("error",e=>{r(e)}),e.on("data",e=>{n.push(e)}),e.on("end",()=>{t(Buffer.concat(n))})})}h.skip=g;class w extends A.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),r(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}}class B extends A.Transform{constructor(e=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=e}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,r(null,e)}_flush(e){this.active&&this.ifEmpty.length>0&&e(null,this.ifEmpty)}}function Q(e){return"undefined"!=typeof require?require(e):r(32178)(e)}function v(t){const i=n.cS.fromPortablePath(t),o=r.c[i];let s;delete r.c[i];try{s=Q(i);const t=r.c[i],n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1)}finally{r.c[i]=o}return s}function D(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]<r[t]?-1:r[e]>r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function b(e){return 0===e.length?null:e.map(e=>`(${s().makeRe(e,{windows:!1}).source})`).join("|")}function S(e,{env:t}){return e.replace(/\${(?<variableName>[\d\w_]+)(?<colon>:)?-?(?<fallback>[^}]+)?}/g,(...e)=>{const{variableName:r,colon:n,fallback:o}=e[e.length-1],s=Object.prototype.hasOwnProperty.call(t,r),A=process.env[r];if(A)return A;if(s&&!A&&n)return o;if(s)return A;if(o)return o;throw new i.UsageError(`Environment variable not found (${r})`)})}},63088:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeScriptEnv:()=>m,prepareExternalProject:()=>y,hasPackageScript:()=>w,executePackageScript:()=>B,executePackageShellcode:()=>Q,executeWorkspaceScript:()=>D,hasWorkspaceScript:()=>b,getPackageAccessibleBinaries:()=>S,getWorkspaceAccessibleBinaries:()=>k,executePackageAccessibleBinary:()=>x,executeWorkspaceAccessibleBinary:()=>F});var n,i=r(46009),o=r(53660),s=r(75448),A=r(56537),a=r(29486),c=r(43982),u=r(92413),l=r(46611),h=r(92659),g=r(35691),f=r(15815),p=r(59355),d=r(6220),C=r(73632),E=r(54143);async function I(e,t,r,n=[]){"win32"===process.platform&&await A.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".cmd"}),`@"${r}" ${n.map(e=>`"${e.replace('"','""')}"`).join(" ")} %*\n`),await A.xfs.writeFilePromise(i.y1.join(e,t),`#!/bin/sh\nexec "${r}" ${n.map(e=>`'${e.replace(/'/g,"'\"'\"'")}'`).join(" ")} "$@"\n`),await A.xfs.chmodPromise(i.y1.join(e,t),493)}async function m({project:e,binFolder:t,lifecycleScript:r}){const n={};for(const[e,t]of Object.entries(process.env))void 0!==t&&(n["path"!==e.toLowerCase()?e:"PATH"]=t);const o=i.cS.fromPortablePath(t);n.BERRY_BIN_FOLDER=i.cS.fromPortablePath(o),await I(t,(0,i.Zu)("node"),process.execPath),null!==p.o&&(await I(t,(0,i.Zu)("run"),process.execPath,[process.argv[1],"run"]),await I(t,(0,i.Zu)("yarn"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("yarnpkg"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("node-gyp"),process.execPath,[process.argv[1],"run","--top-level","node-gyp"])),e&&(n.INIT_CWD=i.cS.fromPortablePath(e.configuration.startingCwd)),n.PATH=n.PATH?`${o}${i.cS.delimiter}${n.PATH}`:""+o,n.npm_execpath=`${o}${i.cS.sep}yarn`,n.npm_node_execpath=`${o}${i.cS.sep}node`;const s=null!==p.o?"yarn/"+p.o:`yarn/${C.dynamicRequire("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${s} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,r&&(n.npm_lifecycle_event=r),e&&await e.configuration.triggerHook(e=>e.setupScriptEnvironment,e,n,async(e,r,n)=>await I(t,(0,i.Zu)(e),r,n)),n}async function y(e,t,{configuration:r,report:o,workspace:s=null}){await A.xfs.mktempPromise(async a=>{const c=i.y1.join(a,"pack.log"),{stdout:l,stderr:f}=r.getSubprocessStreams(c,{prefix:e,report:o}),p=await async function(e){let t=null;try{t=await A.xfs.readFilePromise(i.y1.join(e,i.QS.lockfile),"utf8")}catch(e){}return null!==t?t.match(/^__metadata:$/m)?n.Yarn2:n.Yarn1:A.xfs.existsSync(i.y1.join(e,"package-lock.json"))?n.Npm:A.xfs.existsSync(i.y1.join(e,"pnpm-lock.yaml"))?n.Pnpm:null}(e);let E;null!==p?(l.write(`Installing the project using ${p}\n\n`),E=p):(l.write("No package manager detected; defaulting to Yarn\n\n"),E=n.Yarn2),await A.xfs.mktempPromise(async r=>{const o=await m({binFolder:r}),p=new Map([[n.Yarn1,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",["set","version","classic","--only-if-needed"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==n.code)return n.code;await A.xfs.appendFilePromise(i.y1.join(e,".npmignore"),"/.yarn\n"),l.write("\n");const a=await d.pipevp("yarn",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==a.code)return a.code;l.write("\n");const c=await d.pipevp("yarn",[...r,"pack","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==c.code?c.code:0}],[n.Yarn2,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",[...r,"pack","--install-if-needed","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==n.code?n.code:0}],[n.Npm,async()=>{if(null!==s)throw new Error("Workspaces aren't supported by npm, which has been detected as the primary package manager for "+e);delete o.npm_config_user_agent;const r=await d.pipevp("npm",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==r.code)return r.code;const n=new u.PassThrough,a=C.bufferStream(n);n.pipe(l);const c=await d.pipevp("npm",["pack","--silent"],{cwd:e,env:o,stdin:null,stdout:n,stderr:f});if(0!==c.code)return c.code;const h=(await a).toString().trim(),g=i.y1.resolve(e,i.cS.toPortablePath(h));return await A.xfs.renamePromise(g,t),0}]]).get(E);if(void 0===p)throw new Error("Assertion failed: Unsupported workflow");const I=await p();if(0!==I&&void 0!==I)throw A.xfs.detachTemp(a),new g.lk(h.b.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${I}, logs can be found here: ${c})`)})})}async function w(e,t,{project:r}){const n=r.storedPackages.get(e.locatorHash);if(!n)throw new Error(`Package for ${E.prettyLocator(r.configuration,e)} not found in the project`);return await o.A.openPromise(async e=>{const o=r.configuration,A=r.configuration.getLinkers(),a={project:r,report:new f.P({stdout:new u.PassThrough,configuration:o})},c=A.find(e=>e.supportsPackage(n,a));if(!c)throw new Error(`The package ${E.prettyLocator(r.configuration,n)} isn't supported by any of the available linkers`);const h=await c.findPackageLocation(n,a),g=new s.M(h,{baseFs:e});return(await l.G.find(i.LZ.dot,{baseFs:g})).scripts.has(t)},{libzip:await(0,a.getLibzipPromise)()})}async function B(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{manifest:u,env:l,cwd:h}=await v(e,{project:i,binFolder:A,cwd:n,lifecycleScript:t}),g=u.scripts.get(t);if(void 0===g)return 1;const f=await i.configuration.reduceHook(e=>e.wrapScriptExecution,async()=>await(0,c.execute)(g,r,{cwd:h,env:l,stdin:o,stdout:s,stderr:a}),i,e,t,{script:g,args:r,cwd:h,env:l,stdin:o,stdout:s,stderr:a});return await f()})}async function Q(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{env:u,cwd:l}=await v(e,{project:i,binFolder:A,cwd:n});return await(0,c.execute)(t,r,{cwd:l,env:u,stdin:o,stdout:s,stderr:a})})}async function v(e,{project:t,binFolder:r,cwd:n,lifecycleScript:A}){const c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${E.prettyLocator(t.configuration,e)} not found in the project`);return await o.A.openPromise(async o=>{const a=t.configuration,h=t.configuration.getLinkers(),g={project:t,report:new f.P({stdout:new u.PassThrough,configuration:a})},p=h.find(e=>e.supportsPackage(c,g));if(!p)throw new Error(`The package ${E.prettyLocator(t.configuration,c)} isn't supported by any of the available linkers`);const d=await m({project:t,binFolder:r,lifecycleScript:A});for(const[n,[,o]]of await S(e,{project:t}))await I(r,(0,i.Zu)(n),process.execPath,[o]);const C=await p.findPackageLocation(c,g),y=new s.M(C,{baseFs:o}),w=await l.G.find(i.LZ.dot,{baseFs:y});return void 0===n&&(n=C),{manifest:w,binFolder:r,env:d,cwd:n}},{libzip:await(0,a.getLibzipPromise)()})}async function D(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await B(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:i,stdout:o,stderr:s})}async function b(e,t){return e.manifest.scripts.has(t)}async function S(e,{project:t}){const r=t.configuration,n=new Map,o=t.storedPackages.get(e.locatorHash);if(!o)throw new Error(`Package for ${E.prettyLocator(r,e)} not found in the project`);const s=new u.Writable,A=r.getLinkers(),a={project:t,report:new f.P({configuration:r,stdout:s})},c=new Set([e.locatorHash]);for(const e of o.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(!n)throw new Error(`Assertion failed: The resolution (${E.prettyDescriptor(r,e)}) should have been registered`);c.add(n)}for(const e of c){const r=t.storedPackages.get(e);if(!r)throw new Error(`Assertion failed: The package (${e}) should have been registered`);if(0===r.bin.size)continue;const o=A.find(e=>e.supportsPackage(r,a));if(!o)continue;const s=await o.findPackageLocation(r,a);for(const[e,t]of r.bin)n.set(e,[r,i.cS.fromPortablePath(i.y1.resolve(s,t))])}return n}async function k(e){return await S(e.anchoredLocator,{project:e.project})}async function x(e,t,r,{cwd:n,project:o,stdin:s,stdout:a,stderr:c,nodeArgs:u=[]}){const l=await S(e,{project:o}),h=l.get(t);if(!h)throw new Error(`Binary not found (${t}) for ${E.prettyLocator(o.configuration,e)}`);return await A.xfs.mktempPromise(async e=>{const[,t]=h,g=await m({project:o,binFolder:e});for(const[e,[,t]]of l)await I(g.BERRY_BIN_FOLDER,(0,i.Zu)(e),process.execPath,[t]);let f;try{f=await d.pipevp(process.execPath,[...u,t,...r],{cwd:n,env:g,stdin:s,stdout:a,stderr:c})}finally{await A.xfs.removePromise(g.BERRY_BIN_FOLDER)}return f.code})}async function F(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await x(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:i,stdout:o,stderr:s})}!function(e){e.Yarn1="Yarn Classic",e.Yarn2="Yarn",e.Npm="npm",e.Pnpm="pnpm"}(n||(n={}))},36545:(e,t,r)=>{"use strict";r.r(t),r.d(t,{satisfiesWithPrereleases:()=>o});var n=r(53887),i=r.n(n);function o(e,t,r=!1){let n,o;try{n=new(i().Range)(t,r)}catch(e){return!1}if(!e)return!1;try{o=new(i().SemVer)(e,n.loose),o.prerelease&&(o.prerelease=[])}catch(e){return!1}return n.set.some(e=>{for(const t of e)t.semver.prerelease&&(t.semver.prerelease=[]);return e.every(e=>e.test(o))})}},54143:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeIdent:()=>l,makeDescriptor:()=>h,makeLocator:()=>g,convertToIdent:()=>f,convertDescriptorToLocator:()=>p,convertLocatorToDescriptor:()=>d,convertPackageToLocator:()=>C,renamePackage:()=>E,copyPackage:()=>I,virtualizeDescriptor:()=>m,virtualizePackage:()=>y,isVirtualDescriptor:()=>w,isVirtualLocator:()=>B,devirtualizeDescriptor:()=>Q,devirtualizeLocator:()=>v,bindDescriptor:()=>D,bindLocator:()=>b,areIdentsEqual:()=>S,areDescriptorsEqual:()=>k,areLocatorsEqual:()=>x,areVirtualPackagesEquivalent:()=>F,parseIdent:()=>M,tryParseIdent:()=>N,parseDescriptor:()=>R,tryParseDescriptor:()=>K,parseLocator:()=>L,tryParseLocator:()=>T,parseRange:()=>P,parseFileStyleRange:()=>U,makeRange:()=>O,convertToManifestRange:()=>j,requirableIdent:()=>Y,stringifyIdent:()=>G,stringifyDescriptor:()=>J,stringifyLocator:()=>H,slugifyIdent:()=>q,slugifyLocator:()=>z,prettyIdent:()=>W,prettyRange:()=>X,prettyDescriptor:()=>Z,prettyReference:()=>$,prettyLocator:()=>ee,prettyLocatorNoColors:()=>te,sortDescriptors:()=>re,prettyWorkspace:()=>ne,getIdentVendorPath:()=>ie});var n=r(46009),i=r(71191),o=r.n(i),s=r(53887),A=r.n(s),a=r(27122),c=r(20624),u=r(73632);function l(e,t){return{identHash:c.makeHash(e,t),scope:e,name:t}}function h(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:c.makeHash(e.identHash,t),range:t}}function g(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:c.makeHash(e.identHash,t),reference:t}}function f(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function p(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function d(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function C(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function E(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function I(e){return E(e,e)}function m(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return h(e,`virtual:${t}#${e.range}`)}function y(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return E(e,g(e,`virtual:${t}#${e.reference}`))}function w(e){return e.range.startsWith("virtual:")}function B(e){return e.reference.startsWith("virtual:")}function Q(e){if(!w(e))throw new Error("Not a virtual descriptor");return h(e,e.range.replace(/^[^#]*#/,""))}function v(e){if(!B(e))throw new Error("Not a virtual descriptor");return g(e,e.reference.replace(/^[^#]*#/,""))}function D(e,t){return e.range.includes("::")?e:h(e,`${e.range}::${o().stringify(t)}`)}function b(e,t){return e.reference.includes("::")?e:g(e,`${e.reference}::${o().stringify(t)}`)}function S(e,t){return e.identHash===t.identHash}function k(e,t){return e.descriptorHash===t.descriptorHash}function x(e,t){return e.locatorHash===t.locatorHash}function F(e,t){if(!B(e))throw new Error("Invalid package type");if(!B(t))throw new Error("Invalid package type");if(!S(e,t))return!1;if(e.dependencies.size!==t.dependencies.size)return!1;for(const r of e.dependencies.values()){const e=t.dependencies.get(r.identHash);if(!e)return!1;if(!k(r,e))return!1}return!0}function M(e){const t=N(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}function N(e){const t=e.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!t)return null;const[,r,n]=t;return l(void 0!==r?r:null,n)}function R(e,t=!1){const r=K(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}function K(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid range (${e})`);const s=void 0!==o?o:"unknown";return h(l(void 0!==n?n:null,i),s)}function L(e,t=!1){const r=T(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}function T(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid reference (${e})`);const s=void 0!==o?o:"unknown";return g(l(void 0!==n?n:null,i),s)}function P(e,t){const r=e.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(null===r)throw new Error(`Invalid range (${e})`);const n=void 0!==r[1]?r[1]:null;if("string"==typeof(null==t?void 0:t.requireProtocol)&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if((null==t?void 0:t.requireProtocol)&&null===n)throw new Error(`Missing protocol (${n})`);const i=void 0!==r[3]?decodeURIComponent(r[2]):null;if((null==t?void 0:t.requireSource)&&null===i)throw new Error(`Missing source (${e})`);const s=void 0!==r[3]?decodeURIComponent(r[3]):decodeURIComponent(r[2]);return{protocol:n,source:i,selector:(null==t?void 0:t.parseSelector)?o().parse(s):s,params:void 0!==r[4]?o().parse(r[4]):null}}function U(e,{protocol:t}){const{selector:r,params:n}=P(e,{requireProtocol:t,requireBindings:!0});if("string"!=typeof n.locator)throw new Error("Assertion failed: Invalid bindings for "+e);return{parentLocator:L(n.locator,!0),path:r}}function _(e){return e=(e=(e=e.replace(/%/g,"%25")).replace(/:/g,"%3A")).replace(/#/g,"%23")}function O({protocol:e,source:t,selector:r,params:n}){let i="";return null!==e&&(i+=""+e),null!==t&&(i+=_(t)+"#"),i+=_(r),function(e){return null!==e&&Object.entries(e).length>0}(n)&&(i+="::"+o().stringify(n)),i}function j(e){const{params:t,protocol:r,source:n,selector:i}=P(e);for(const e in t)e.startsWith("__")&&delete t[e];return O({protocol:r,source:n,params:t,selector:i})}function Y(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function G(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function J(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function H(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function q(e){return null!==e.scope?`@${e.scope}-${e.name}`:e.name}function z(e){const{protocol:t,selector:r}=P(e.reference),i=null!==t?t.replace(/:$/,""):"exotic",o=A().valid(r),s=null!==o?`${i}-${o}`:""+i,a=(e.scope,`${q(e)}-${s}-${e.locatorHash.slice(0,10)}`);return(0,n.Zu)(a)}function W(e,t){return t.scope?`${e.format(`@${t.scope}/`,a.a5.SCOPE)}${e.format(t.name,a.a5.NAME)}`:""+e.format(t.name,a.a5.NAME)}function V(e){if(e.startsWith("virtual:")){return`${V(e.substr(e.indexOf("#")+1))} [${e.substr("virtual:".length,5)}]`}return e.replace(/\?.*/,"?[...]")}function X(e,t){return""+e.format(V(t),a.a5.RANGE)}function Z(e,t){return`${W(e,t)}${e.format("@",a.a5.RANGE)}${X(e,t.range)}`}function $(e,t){return""+e.format(V(t),a.a5.REFERENCE)}function ee(e,t){return`${W(e,t)}${e.format("@",a.a5.REFERENCE)}${$(e,t.reference)}`}function te(e){return`${G(e)}@${V(e.reference)}`}function re(e){return u.sortMap(e,[e=>G(e),e=>e.range])}function ne(e,t){return W(e,t.locator)}function ie(e){return"node_modules/"+Y(e)}},32485:(e,t,r)=>{"use strict";var n;r.d(t,{U:()=>n}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={}))},14626:(e,t,r)=>{"use strict";r.d(t,{K:()=>i});var n=r(42096);class i extends n.p{constructor(e,{baseFs:t,pathUtils:r}){super(r),this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}},75448:(e,t,r)=>{"use strict";r.d(t,{M:()=>s});var n=r(78420),i=r(42096),o=r(46009);class s extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?o.y1.normalize(e):this.baseFs.resolve(o.y1.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}},35398:(e,t,r)=>{"use strict";r.d(t,{uY:()=>a,fS:()=>c,qH:()=>u});var n=r(12087),i=r(35747),o=r.n(i),s=r(46009);async function A(e,t,r,n,i,a,c){const u=await async function(e,t){try{return await e.lstatPromise(t)}catch(e){return null}}(r,n),l=await i.lstatPromise(a);switch(c.stableTime?t.push([n,315532800,315532800]):t.push([n,l.atime,l.mtime]),!0){case l.isDirectory():await async function(e,t,r,n,i,o,s,a,c){if(null!==i&&!i.isDirectory()){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}null===i&&e.push(async()=>r.mkdirPromise(n,{mode:a.mode}));const u=await o.readdirPromise(s);if(c.stableSort)for(const i of u.sort())await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c);else await Promise.all(u.map(async i=>{await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c)}))}(e,t,r,n,u,i,a,l,c);break;case l.isFile():await async function(e,t,r,n,i,s,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}r===s?e.push(async()=>r.copyFilePromise(A,n,o().constants.COPYFILE_FICLONE)):e.push(async()=>r.writeFilePromise(n,await s.readFilePromise(A)))}(e,0,r,n,u,i,a,0,c);break;case l.isSymbolicLink():await async function(e,t,r,n,i,o,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}const u=await o.readlinkPromise(A);e.push(async()=>r.symlinkPromise((0,s.CI)(r.pathUtils,u),n))}(e,0,r,n,u,i,a,0,c);break;default:throw new Error(`Unsupported file type (${l.mode})`)}e.push(async()=>r.chmodPromise(n,511&l.mode))}class a{constructor(e){this.pathUtils=e}async removePromise(e){let t;try{t=await this.lstatPromise(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of await this.readdirPromise(e))await this.removePromise(this.pathUtils.resolve(e,t));for(let t=0;t<5;++t)try{await this.rmdirPromise(e);break}catch(e){if("EBUSY"===e.code||"ENOTEMPTY"===e.code){await new Promise(e=>setTimeout(e,100*t));continue}throw e}}else await this.unlinkPromise(e)}removeSync(e){let t;try{t=this.lstatSync(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,t));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{await this.mkdirPromise(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&await this.chmodPromise(i,t),null!=r)await this.utimesPromise(i,r[0],r[1]);else{const e=await this.statPromise(this.pathUtils.dirname(i));await this.utimesPromise(i,e.atime,e.mtime)}}}}mkdirpSync(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{this.mkdirSync(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&this.chmodSync(i,t),null!=r)this.utimesSync(i,r[0],r[1]);else{const e=this.statSync(this.pathUtils.dirname(i));this.utimesSync(i,e.atime,e.mtime)}}}}async copyPromise(e,t,{baseFs:r=this,overwrite:n=!0,stableSort:i=!1,stableTime:o=!1}={}){return await async function(e,t,r,n,i){const o=e.pathUtils.normalize(t),s=r.pathUtils.normalize(n),a=[],c=[];await e.mkdirpPromise(t),await A(a,c,e,o,r,s,i);for(const e of a)await e();const u="function"==typeof e.lutimesPromise?e.lutimesPromise.bind(e):e.utimesPromise.bind(e);for(const[e,t,r]of c)await u(e,t,r)}(this,e,r,t,{overwrite:n,stableSort:i,stableTime:o})}copySync(e,t,{baseFs:r=this,overwrite:n=!0}={}){const i=r.lstatSync(t),o=this.existsSync(e);if(i.isDirectory()){this.mkdirpSync(e);const i=r.readdirSync(t);for(const o of i)this.copySync(this.pathUtils.join(e,o),r.pathUtils.join(t,o),{baseFs:r,overwrite:n})}else if(i.isFile()){if(!o||n){o&&this.removeSync(e);const n=r.readFileSync(t);this.writeFileSync(e,n)}}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${i.mode.toString(8).padStart(6,"0")})`);if(!o||n){o&&this.removeSync(e);const n=r.readlinkSync(t);this.symlinkSync((0,s.CI)(this.pathUtils,n),e)}}const A=511&i.mode;this.chmodSync(e,A)}async changeFilePromise(e,t,{automaticNewlines:r}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&await this.writeFilePromise(e,i)}changeFileSync(e,t,{automaticNewlines:r=!1}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&this.writeFileSync(e,i)}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(r){if("EXDEV"!==r.code)throw r;await this.copyPromise(t,e),await this.removePromise(e)}}moveSync(e,t){try{this.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;this.copySync(t,e),this.removeSync(e)}}async lockPromise(e,t){const r=e+".flock",n=Date.now();let i=null;const o=async()=>{let e;try{[e]=await this.readJsonPromise(r)}catch(e){return Date.now()-n<500}try{return process.kill(e,0),!0}catch(e){return!1}};for(;null===i;)try{i=await this.openPromise(r,"wx")}catch(e){if("EEXIST"!==e.code)throw e;if(!await o())try{await this.unlinkPromise(r);continue}catch(e){}if(!(Date.now()-n<6e4))throw new Error(`Couldn't acquire a lock in a reasonable time (via ${r})`);await new Promise(e=>setTimeout(e,1e3/60))}await this.writePromise(i,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.unlinkPromise(r),await this.closePromise(i)}catch(e){}}}async readJsonPromise(e){const t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async readJsonSync(e){const t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,JSON.stringify(t,null,2)+"\n")}writeJsonSync(e,t){return this.writeFileSync(e,JSON.stringify(t,null,2)+"\n")}async preserveTimePromise(e,t){const r=await this.lstatPromise(e),n=await t();void 0!==n&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,r.atime,r.mtime):r.isSymbolicLink()||await this.utimesPromise(e,r.atime,r.mtime)}async preserveTimeSync(e,t){const r=this.lstatSync(e),n=t();void 0!==n&&(e=n),this.lutimesSync?this.lutimesSync(e,r.atime,r.mtime):r.isSymbolicLink()||this.utimesSync(e,r.atime,r.mtime)}}a.DEFAULT_TIME=315532800;class c extends a{constructor(){super(s.y1)}}function u(e,t){return t.replace(/\r?\n/g,function(e){const t=e.match(/\r?\n/g);if(null===t)return n.EOL;const r=t.filter(e=>"\r\n"===e).length;return r>t.length-r?"\r\n":"\n"}(e))}},10489:(e,t,r)=>{"use strict";r.d(t,{n:()=>A});var n=r(78420),i=r(42096),o=r(46009);const s=o.LZ.root;class A extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.resolve(o.LZ.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(o.LZ.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){const t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(s,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(s,this.pathUtils.relative(this.target,e))}}},15037:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(42096);class i extends n.p{constructor(e,t){super(t),this.instance=null,this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}}},78420:(e,t,r)=>{"use strict";r.d(t,{S:()=>a});var n=r(35747),i=r.n(n),o=r(35398),s=r(26984),A=r(46009);class a extends o.fS{constructor(e=i()){super(),this.realFs=e,void 0!==this.realFs.lutimes&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return A.LZ.root}resolve(e){return A.y1.resolve(e)}async openPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.open(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}openSync(e,t,r){return this.realFs.openSync(A.cS.fromPortablePath(e),t,r)}async readPromise(e,t,r=0,n=0,i=-1){return await new Promise((o,s)=>{this.realFs.read(e,t,r,n,i,(e,t)=>{e?s(e):o(t)})})}readSync(e,t,r,n,i){return this.realFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return await new Promise((o,s)=>"string"==typeof t?this.realFs.write(e,t,r,this.makeCallback(o,s)):this.realFs.write(e,t,r,n,i,this.makeCallback(o,s)))}writeSync(e,t,r,n,i){return"string"==typeof t?this.realFs.writeSync(e,t,r):this.realFs.writeSync(e,t,r,n,i)}async closePromise(e){await new Promise((t,r)=>{this.realFs.close(e,this.makeCallback(t,r))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createReadStream(r,t)}createWriteStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createWriteStream(r,t)}async realpathPromise(e){return await new Promise((t,r)=>{this.realFs.realpath(A.cS.fromPortablePath(e),{},this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}realpathSync(e){return A.cS.toPortablePath(this.realFs.realpathSync(A.cS.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(A.cS.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(A.cS.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((r,n)=>{this.realFs.access(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}existsSync(e){return this.realFs.existsSync(A.cS.fromPortablePath(e))}async statPromise(e){return await new Promise((t,r)=>{this.realFs.stat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}statSync(e){return this.realFs.statSync(A.cS.fromPortablePath(e))}async lstatPromise(e){return await new Promise((t,r)=>{this.realFs.lstat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}lstatSync(e){return this.realFs.lstatSync(A.cS.fromPortablePath(e))}async chmodPromise(e,t){return await new Promise((r,n)=>{this.realFs.chmod(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}chmodSync(e,t){return this.realFs.chmodSync(A.cS.fromPortablePath(e),t)}async renamePromise(e,t){return await new Promise((r,n)=>{this.realFs.rename(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),this.makeCallback(r,n))})}renameSync(e,t){return this.realFs.renameSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t))}async copyFilePromise(e,t,r=0){return await new Promise((n,i)=>{this.realFs.copyFile(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r,this.makeCallback(n,i))})}copyFileSync(e,t,r=0){return this.realFs.copyFileSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r)}async appendFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFile(o,t,r,this.makeCallback(n,i)):this.realFs.appendFile(o,t,this.makeCallback(n,i))})}appendFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFileSync(n,t,r):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFile(o,t,r,this.makeCallback(n,i)):this.realFs.writeFile(o,t,this.makeCallback(n,i))})}writeFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFileSync(n,t,r):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,r)=>{this.realFs.unlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}unlinkSync(e){return this.realFs.unlinkSync(A.cS.fromPortablePath(e))}async utimesPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.utimes(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}utimesSync(e,t,r){this.realFs.utimesSync(A.cS.fromPortablePath(e),t,r)}async lutimesPromiseImpl(e,t,r){const n=this.realFs.lutimes;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);return await new Promise((i,o)=>{n.call(this.realFs,A.cS.fromPortablePath(e),t,r,this.makeCallback(i,o))})}lutimesSyncImpl(e,t,r){const n=this.realFs.lutimesSync;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,A.cS.fromPortablePath(e),t,r)}async mkdirPromise(e,t){return await new Promise((r,n)=>{this.realFs.mkdir(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(A.cS.fromPortablePath(e),t)}async rmdirPromise(e){return await new Promise((t,r)=>{this.realFs.rmdir(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}rmdirSync(e){return this.realFs.rmdirSync(A.cS.fromPortablePath(e))}async symlinkPromise(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return await new Promise((r,i)=>{this.realFs.symlink(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n,this.makeCallback(r,i))})}symlinkSync(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return this.realFs.symlinkSync(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n)}async readFilePromise(e,t){return await new Promise((r,n)=>{const i="string"==typeof e?A.cS.fromPortablePath(e):e;this.realFs.readFile(i,t,this.makeCallback(r,n))})}readFileSync(e,t){const r="string"==typeof e?A.cS.fromPortablePath(e):e;return this.realFs.readFileSync(r,t)}async readdirPromise(e,{withFileTypes:t}={}){return await new Promise((r,n)=>{t?this.realFs.readdir(A.cS.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(r,n)):this.realFs.readdir(A.cS.fromPortablePath(e),this.makeCallback(e=>r(e),n))})}readdirSync(e,{withFileTypes:t}={}){return t?this.realFs.readdirSync(A.cS.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(A.cS.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,r)=>{this.realFs.readlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}readlinkSync(e){return A.cS.toPortablePath(this.realFs.readlinkSync(A.cS.fromPortablePath(e)))}watch(e,t,r){return this.realFs.watch(A.cS.fromPortablePath(e),t,r)}makeCallback(e,t){return(r,n)=>{r?t(r):e(n)}}}},39725:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(42096),i=r(46009);class o extends n.p{constructor(e){super(i.cS),this.baseFs=e}mapFromBase(e){return i.cS.fromPortablePath(e)}mapToBase(e){return i.cS.toPortablePath(e)}}},42096:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var n=r(35398);class i extends n.uY{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}openPromise(e,t,r){return this.baseFs.openPromise(this.mapToBase(e),t,r)}openSync(e,t,r){return this.baseFs.openSync(this.mapToBase(e),t,r)}async readPromise(e,t,r,n,i){return await this.baseFs.readPromise(e,t,r,n,i)}readSync(e,t,r,n,i){return this.baseFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i)}writeSync(e,t,r,n,i){return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i)}closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(null!==e?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(null!==e?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}statPromise(e){return this.baseFs.statPromise(this.mapToBase(e))}statSync(e){return this.baseFs.statSync(this.mapToBase(e))}lstatPromise(e){return this.baseFs.lstatPromise(this.mapToBase(e))}lstatSync(e){return this.baseFs.lstatSync(this.mapToBase(e))}chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}copyFilePromise(e,t,r=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),r)}copyFileSync(e,t,r=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),r)}appendFilePromise(e,t,r){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,r)}appendFileSync(e,t,r){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,r)}writeFilePromise(e,t,r){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,r)}writeFileSync(e,t,r){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,r)}unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}utimesPromise(e,t,r){return this.baseFs.utimesPromise(this.mapToBase(e),t,r)}utimesSync(e,t,r){return this.baseFs.utimesSync(this.mapToBase(e),t,r)}mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}rmdirPromise(e){return this.baseFs.rmdirPromise(this.mapToBase(e))}rmdirSync(e){return this.baseFs.rmdirSync(this.mapToBase(e))}symlinkPromise(e,t,r){return this.baseFs.symlinkPromise(this.mapToBase(e),this.mapToBase(t),r)}symlinkSync(e,t,r){return this.baseFs.symlinkSync(this.mapToBase(e),this.mapToBase(t),r)}readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,{withFileTypes:t}={}){return this.baseFs.readdirPromise(this.mapToBase(e),{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){return this.baseFs.readdirSync(this.mapToBase(e),{withFileTypes:t})}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}watch(e,t,r){return this.baseFs.watch(this.mapToBase(e),t,r)}fsMapToBase(e){return"number"==typeof e?e:this.mapToBase(e)}}},17674:(e,t,r)=>{"use strict";r.d(t,{p:()=>c});var n=r(78420),i=r(42096),o=r(46009);const s=/^[0-9]+$/,A=/^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,a=/^([^/]+-)?[a-f0-9]+$/;class c extends i.p{constructor({baseFs:e=new n.S}={}){super(o.y1),this.baseFs=e}static makeVirtualPath(e,t,r){if("$$virtual"!==o.y1.basename(e))throw new Error('Assertion failed: Virtual folders must be named "$$virtual"');if(!o.y1.basename(t).match(a))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");const n=o.y1.relative(o.y1.dirname(e),r).split("/");let i=0;for(;i<n.length&&".."===n[i];)i+=1;const s=n.slice(i);return o.y1.join(e,t,String(i),...s)}static resolveVirtual(e){const t=e.match(A);if(!t||!t[3]&&t[5])return e;const r=o.y1.dirname(t[1]);if(!t[3]||!t[4])return r;if(!s.test(t[4]))return e;const n=Number(t[4]),i="../".repeat(n),a=t[5]||".";return c.resolveVirtual(o.y1.join(r,i,a))}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){const t=e.match(A);if(!t)return this.baseFs.realpathSync(e);if(!t[5])return e;const r=this.baseFs.realpathSync(this.mapToBase(e));return c.makeVirtualPath(t[1],t[3],r)}async realpathPromise(e){const t=e.match(A);if(!t)return await this.baseFs.realpathPromise(e);if(!t[5])return e;const r=await this.baseFs.realpathPromise(this.mapToBase(e));return c.makeVirtualPath(t[1],t[3],r)}mapToBase(e){return c.resolveVirtual(e)}mapFromBase(e){return e}}},90739:(e,t,r)=>{"use strict";r.d(t,{k:()=>u,d:()=>g});var n=r(35747),i=r(92413),o=r(31669),s=r(35398),A=r(78420),a=r(26984),c=r(46009);const u="mixed";class l{constructor(){this.dev=0,this.ino=0,this.mode=0,this.nlink=1,this.rdev=0,this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return 16384==(61440&this.mode)}isFIFO(){return!1}isFile(){return 32768==(61440&this.mode)}isSocket(){return!1}isSymbolicLink(){return 40960==(61440&this.mode)}}function h(){return Object.assign(new l,{uid:0,gid:0,size:0,blksize:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),mode:33188})}class g extends s.fS{constructor(e,t){super(),this.lzSource=null,this.listings=new Map,this.entries=new Map,this.fds=new Map,this.nextFd=0,this.ready=!1,this.readOnly=!1,this.libzip=t.libzip;const r=t;if(this.level=void 0!==r.level?r.level:u,null===e&&(e=Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),"string"==typeof e){const{baseFs:t=new A.S}=r;this.baseFs=t,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if("string"==typeof e)try{this.stats=this.baseFs.statSync(e)}catch(e){if("ENOENT"!==e.code||!r.create)throw e;this.stats=h()}else this.stats=h();const n=this.libzip.malloc(4);try{let i=0;if("string"==typeof e&&r.create&&(i|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(i|=this.libzip.ZIP_RDONLY,this.readOnly=!0),"string"==typeof e)this.zip=this.libzip.open(c.cS.fromPortablePath(e),i,n);else{const t=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(t,i,n),this.lzSource=t}catch(e){throw this.libzip.source.free(t),e}}if(0===this.zip){const e=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(e,this.libzip.getValue(n,"i32")),new Error(this.libzip.error.strerror(e))}}finally{this.libzip.free(n)}this.listings.set(c.LZ.root,new Set);const i=this.libzip.getNumEntries(this.zip,0);for(let e=0;e<i;++e){const t=this.libzip.getName(this.zip,e,0);if(c.y1.isAbsolute(t))continue;const r=c.y1.resolve(c.LZ.root,t);this.registerEntry(r,e),t.endsWith("/")&&this.registerListing(r)}this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.ready=!0}getExtractHint(e){for(const t of this.entries.keys()){const r=this.pathUtils.extname(t);if(e.relevantExtensions.has(r))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(!this.ready)throw a.Vw("archive closed, close");if(!this.lzSource)throw new Error("ZipFS was not created from a Buffer");try{if(this.libzip.source.keep(this.lzSource),-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(-1===this.libzip.source.open(this.lzSource))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));if(-1===this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));const e=this.libzip.source.tell(this.lzSource);if(-1===this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));const t=this.libzip.malloc(e);if(!t)throw new Error("Couldn't allocate enough memory");try{const r=this.libzip.source.read(this.lzSource,t,e);if(-1===r)throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));if(r<e)throw new Error("Incomplete read");if(r>e)throw new Error("Overread");const n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(!this.ready)throw a.Vw("archive closed, close");if(this.readOnly)return void this.discardAndClose();const e=this.baseFs.existsSync(this.path)?511&this.baseFs.statSync(this.path).mode:null;if(-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));null===e?this.baseFs.chmodSync(this.path,this.stats.mode):e!==(511&this.baseFs.statSync(this.path).mode)&&this.baseFs.chmodSync(this.path,e),this.ready=!1}discardAndClose(){if(!this.ready)throw a.Vw("archive closed, close");this.libzip.discard(this.zip),this.ready=!1}resolve(e){return c.y1.resolve(c.LZ.root,e)}async openPromise(e,t,r){return this.openSync(e,t,r)}openSync(e,t,r){const n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}async readPromise(e,t,r,n,i){return this.readSync(e,t,r,n,i)}readSync(e,t,r=0,n=0,i=-1){const o=this.fds.get(e);if(void 0===o)throw a.Ch("read");let s;s=-1===i||null===i?o.cursor:i;const A=this.readFileSync(o.p);A.copy(t,r,s,s+n);const c=Math.max(0,Math.min(A.length-s,n));return-1!==i&&null!==i||(o.cursor+=c),c}async writePromise(e,t,r,n,i){return"string"==typeof t?this.writeSync(e,t,i):this.writeSync(e,t,r,n,i)}writeSync(e,t,r,n,i){if(void 0===this.fds.get(e))throw a.Ch("read");throw new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(void 0===this.fds.get(e))throw a.Ch("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesRead:0,path:e,close:()=>{clearImmediate(n)}}),n=setImmediate(()=>{try{const n=this.readFileSync(e,t);r.bytesRead=n.length,r.write(n),r.end()}catch(e){r.emit("error",e),r.end()}});return r}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw a.YW(`open '${e}'`);if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesWritten:0,path:e,close:()=>{r.end()}}),n=[];return r.on("data",e=>{const t=Buffer.from(e);r.bytesWritten+=t.length,n.push(t)}),r.on("end",()=>{this.writeFileSync(e,Buffer.concat(n),t)}),r}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){const t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw a.Vw(`archive closed, existsSync '${e}'`);if(0===this.symlinkCount){const t=c.y1.resolve(c.LZ.root,e);return this.entries.has(t)||this.listings.has(t)}let t;try{t=this.resolveFilename(`stat '${e}'`,e)}catch(e){return!1}return this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=n.constants.F_OK){const r=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`access '${e}'`);if(this.readOnly&&t&n.constants.W_OK)throw a.YW(`access '${e}'`)}async statPromise(e){return this.statSync(e)}statSync(e){const t=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`stat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`stat '${e}'`);return this.statImpl(`stat '${e}'`,t)}async lstatPromise(e){return this.lstatSync(e)}lstatSync(e){const t=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,t)}statImpl(e,t){const r=this.entries.get(t);if(void 0!==r){const e=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,r,0,0,e))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const n=this.stats.uid,i=this.stats.gid,o=this.libzip.struct.statSize(e)>>>0,s=512,A=Math.ceil(o/s),a=1e3*(this.libzip.struct.statMtime(e)>>>0),c=a,u=a,h=a,g=new Date(c),f=new Date(u),p=new Date(h),d=new Date(a),C=this.listings.has(t)?16384:this.isSymbolicLink(r)?40960:32768,E=16384===C?493:420,I=C|511&this.getUnixMode(r,E);return Object.assign(new l,{uid:n,gid:i,size:o,blksize:s,blocks:A,atime:g,birthtime:f,ctime:p,mtime:d,atimeMs:c,birthtimeMs:u,ctimeMs:h,mtimeMs:a,mode:I})}if(this.listings.has(t)){const e=this.stats.uid,t=this.stats.gid,r=0,n=512,i=0,o=this.stats.mtimeMs,s=this.stats.mtimeMs,A=this.stats.mtimeMs,a=this.stats.mtimeMs,c=new Date(o),u=new Date(s),h=new Date(A),g=new Date(a),f=16877;return Object.assign(new l,{uid:e,gid:t,size:r,blksize:n,blocks:i,atime:c,birthtime:u,ctime:h,mtime:g,atimeMs:o,birthtimeMs:s,ctimeMs:A,mtimeMs:a,mode:f})}throw new Error("Unreachable")}getUnixMode(e,t){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;const r=this.registerListing(c.y1.dirname(e));return t=new Set,r.add(c.y1.basename(e)),this.listings.set(e,t),t}registerEntry(e,t){this.registerListing(c.y1.dirname(e)).add(c.y1.basename(e)),this.entries.set(e,t)}resolveFilename(e,t,r=!0){if(!this.ready)throw a.Vw("archive closed, "+e);let n=c.y1.resolve(c.LZ.root,t);if("/"===n)return c.LZ.root;const i=this.entries.get(n);if(r&&void 0!==i){if(0!==this.symlinkCount&&this.isSymbolicLink(i)){const t=this.getFileSource(i).toString();return this.resolveFilename(e,c.y1.resolve(c.y1.dirname(n),t),!0)}return n}for(;;){const t=this.resolveFilename(e,c.y1.dirname(n),!0),i=this.listings.has(t),o=this.entries.has(t);if(!i&&!o)throw a.z6(e);if(!i)throw a.Ab(e);if(n=c.y1.resolve(t,c.y1.basename(n)),!r||0===this.symlinkCount)break;const s=this.libzip.name.locate(this.zip,n.slice(1));if(-1===s)break;if(!this.isSymbolicLink(s))break;{const e=this.getFileSource(s).toString();n=c.y1.resolve(c.y1.dirname(n),e)}}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));const t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){const t=this.libzip.struct.errorS(),{buffer:r,byteLength:n}=this.allocateBuffer(e),i=this.libzip.source.fromUnattachedBuffer(r,n,0,!0,t);if(0===i)throw this.libzip.free(t),new Error(this.libzip.error.strerror(t));return i}allocateSource(e){const{buffer:t,byteLength:r}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,r,0,!0);if(0===n)throw this.libzip.free(t),new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return n}setFileSource(e,t){const r=c.y1.relative(c.LZ.root,e),n=this.allocateSource(t);try{const e=this.libzip.file.add(this.zip,r,n,this.libzip.ZIP_FL_OVERWRITE);if("mixed"!==this.level){let t;t=0===this.level?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(-1===this.libzip.file.setCompression(this.zip,e,0,t,this.level))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}return e}catch(e){throw this.libzip.source.free(n),e}}isSymbolicLink(e){if(0===this.symlinkCount)return!1;if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)return!1;return 40960==(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16)}getFileSource(e){const t=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,e,0,0,t))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const r=this.libzip.struct.statSize(t),n=this.libzip.malloc(r);try{const t=this.libzip.fopenIndex(this.zip,e,0,0);if(0===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));try{const e=this.libzip.fread(t,n,r,0);if(-1===e)throw new Error(this.libzip.error.strerror(this.libzip.file.getError(t)));if(e<r)throw new Error("Incomplete read");if(e>r)throw new Error("Overread");const i=this.libzip.HEAPU8.subarray(n,n+r);return Buffer.from(i)}finally{this.libzip.fclose(t)}}finally{this.libzip.free(n)}}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw a.YW(`chmod '${e}'`);t&=493;const r=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(r);if(void 0===n)throw new Error(`Assertion failed: The entry should have been registered (${r})`);const i=-512&this.getUnixMode(n,32768)|t;if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,i<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,r){return this.copyFileSync(e,t,r)}copyFileSync(e,t,r=0){if(this.readOnly)throw a.YW(`copyfile '${e} -> '${t}'`);if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw a.bk("unsupported clone operation",`copyfile '${e}' -> ${t}'`);const i=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),o=this.entries.get(i);if(void 0===o)throw a.hq(`copyfile '${e}' -> '${t}'`);const s=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),A=this.entries.get(s);if(0!=(r&(n.constants.COPYFILE_EXCL|n.constants.COPYFILE_FICLONE_FORCE))&&void 0!==A)throw a.cT(`copyfile '${e}' -> '${t}'`);const c=this.getFileSource(o),u=this.setFileSource(s,c);u!==A&&this.registerEntry(s,u)}async appendFilePromise(e,t,r){return this.appendFileSync(e,t,r)}appendFileSync(e,t,r={}){if(this.readOnly)throw a.YW(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFileSync(e,t,r)}async writeFilePromise(e,t,r){return this.writeFileSync(e,t,r)}writeFileSync(e,t,r){if("string"!=typeof e)throw a.Ch("read");if(this.readOnly)throw a.YW(`open '${e}'`);const n=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(n))throw a.GA(`open '${e}'`);const i=this.entries.get(n);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(i),Buffer.from(t)]));let o=null;"string"==typeof r?o=r:"object"==typeof r&&r.encoding&&(o=r.encoding),null!==o&&(t=t.toString(o));const s=this.setFileSource(n,t);s!==i&&this.registerEntry(n,s)}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){throw new Error("Unimplemented")}async utimesPromise(e,t,r){return this.utimesSync(e,t,r)}utimesSync(e,t,r){if(this.readOnly)throw a.YW(`utimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,r)}async lutimesPromise(e,t,r){return this.lutimesSync(e,t,r)}lutimesSync(e,t,r){if(this.readOnly)throw a.YW(`lutimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,r)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));const r=this.entries.get(e);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.setMtime(this.zip,r,0,function(e){if("string"==typeof e&&String(+e)===e)return+e;if(Number.isFinite(e))return e<0?Date.now()/1e3:e;if((0,o.isDate)(e))return e.getTime()/1e3;throw new Error("Invalid time")}(t),0))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:r=!1}={}){if(r)return void this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw a.YW(`mkdir '${e}'`);const n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw a.cT(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e){return this.rmdirSync(e)}rmdirSync(e){throw new Error("Unimplemented")}hydrateDirectory(e){const t=this.libzip.dir.add(this.zip,c.y1.relative(c.LZ.root,e));if(-1===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.registerListing(e),this.registerEntry(e,t),t}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw a.YW(`symlink '${e}' -> '${t}'`);const r=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(r))throw a.GA(`symlink '${e}' -> '${t}'`);if(this.entries.has(r))throw a.cT(`symlink '${e}' -> '${t}'`);const n=this.setFileSource(r,e);this.registerEntry(r,n);if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));this.symlinkCount+=1}async readFilePromise(e,t){switch(t){case"utf8":default:return this.readFileSync(e,t)}}readFileSync(e,t){if("string"!=typeof e)throw a.Ch("read");"object"==typeof t&&(t=t?t.encoding:void 0);const r=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`open '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(r))throw a.Ab(`open '${e}'`);if(this.listings.has(r))throw a.GA("read");const n=this.entries.get(r);if(void 0===n)throw new Error("Unreachable");const i=this.getFileSource(n);return t?i.toString(t):i}async readdirPromise(e,{withFileTypes:t}={}){return this.readdirSync(e,{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){const r=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`scandir '${e}'`);const n=this.listings.get(r);if(!n)throw a.Ab(`scandir '${e}'`);const i=[...n];return t?i.map(t=>Object.assign(this.statImpl("lstat",c.y1.join(e,t)),{name:t})):i}async readlinkPromise(e){return this.readlinkSync(e)}readlinkSync(e){const t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`readlink '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`open '${e}'`);if(this.listings.has(t))throw a.hq(`readlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)throw a.hq(`readlink '${e}'`);if(40960!=(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16))throw a.hq(`readlink '${e}'`);return this.getFileSource(r).toString()}watch(e,t,r){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t)}if(!n)return{on:()=>{},close:()=>{}};const i=setInterval(()=>{},864e5);return{on:()=>{},close:()=>{clearInterval(i)}}}}},53660:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(35747),i=r(35398),o=r(78420),s=r(90739),A=r(46009);const a=2147483648,c=/.*?(?<!\/)\.zip(?=\/|$)/;class u extends i.fS{constructor({libzip:e,baseFs:t=new o.S,filter:r=null,maxOpenFiles:n=1/0,readOnlyArchives:i=!1,useCache:s=!0}){super(),this.fdMap=new Map,this.nextFd=3,this.isZip=new Set,this.notZip=new Set,this.libzip=e,this.baseFs=t,this.zipInstances=s?new Map:null,this.filter=r,this.maxOpenFiles=n,this.readOnlyArchives=i}static async openPromise(e,t){const r=new u(t);try{return await e(r)}finally{r.saveAndClose()}}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,t){const r=this.nextFd++|a;return this.fdMap.set(r,[e,t]),r}async openPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,t,r),async(e,{subPath:n})=>this.remapFd(e,await e.openPromise(n,t,r)))}openSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,r),(e,{subPath:n})=>this.remapFd(e,e.openSync(n,t,r)))}async readPromise(e,t,r,n,i){if(0==(e&a))return await this.baseFs.readPromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return await s.readPromise(A,t,r,n,i)}readSync(e,t,r,n,i){if(0==(e&a))return this.baseFs.readSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return s.readSync(A,t,r,n,i)}async writePromise(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?await s.writePromise(A,t,r):await s.writePromise(A,t,r,n,i)}writeSync(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?s.writeSync(A,t,r):s.writeSync(A,t,r,n,i)}async closePromise(e){if(0==(e&a))return await this.baseFs.closePromise(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return await r.closePromise(n)}closeSync(e){if(0==(e&a))return this.baseFs.closeSync(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return r.closeSync(n)}createReadStream(e,t){return null===e?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(e,{subPath:r})=>e.createReadStream(r,t))}createWriteStream(e,t){return null===e?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(e,{subPath:r})=>e.createWriteStream(r,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(await this.baseFs.realpathPromise(t),this.pathUtils.relative(A.LZ.root,await e.realpathPromise(r))))}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(this.baseFs.realpathSync(t),this.pathUtils.relative(A.LZ.root,e.realpathSync(r))))}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(e,{subPath:t})=>await e.existsPromise(t))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(e,{subPath:t})=>e.existsSync(t))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(e,{subPath:r})=>await e.accessPromise(r,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(e,{subPath:r})=>e.accessSync(r,t))}async statPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e),async(e,{subPath:t})=>await e.statPromise(t))}statSync(e){return this.makeCallSync(e,()=>this.baseFs.statSync(e),(e,{subPath:t})=>e.statSync(t))}async lstatPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e),async(e,{subPath:t})=>await e.lstatPromise(t))}lstatSync(e){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e),(e,{subPath:t})=>e.lstatSync(t))}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(e,{subPath:r})=>await e.chmodPromise(r,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(e,{subPath:r})=>e.chmodSync(r,t))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(e,{subPath:r})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await e.renamePromise(r,n)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(e,{subPath:r})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return e.renameSync(r,n)}))}async copyFilePromise(e,t,r=0){const i=async(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&await this.existsPromise(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=await e.readFilePromise(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}await i.writeFilePromise(o,s)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,r),async(t,{subPath:r})=>await i(this.baseFs,e,t,r)),async(e,{subPath:n})=>await this.makeCallPromise(t,async()=>await i(e,n,this.baseFs,t),async(t,{subPath:o})=>e!==t?await i(e,n,t,o):await e.copyFilePromise(n,o,r)))}copyFileSync(e,t,r=0){const i=(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&this.existsSync(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=e.readFileSync(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}i.writeFileSync(o,s)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,r),(t,{subPath:r})=>i(this.baseFs,e,t,r)),(e,{subPath:n})=>this.makeCallSync(t,()=>i(e,n,this.baseFs,t),(t,{subPath:o})=>e!==t?i(e,n,t,o):e.copyFileSync(n,o,r)))}async appendFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,r),async(e,{subPath:n})=>await e.appendFilePromise(n,t,r))}appendFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,r),(e,{subPath:n})=>e.appendFileSync(n,t,r))}async writeFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,r),async(e,{subPath:n})=>await e.writeFilePromise(n,t,r))}writeFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,r),(e,{subPath:n})=>e.writeFileSync(n,t,r))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(e,{subPath:t})=>await e.unlinkPromise(t))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(e,{subPath:t})=>e.unlinkSync(t))}async utimesPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,r),async(e,{subPath:n})=>await e.utimesPromise(n,t,r))}utimesSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,r),(e,{subPath:n})=>e.utimesSync(n,t,r))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(e,{subPath:r})=>await e.mkdirPromise(r,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(e,{subPath:r})=>e.mkdirSync(r,t))}async rmdirPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e),async(e,{subPath:t})=>await e.rmdirPromise(t))}rmdirSync(e){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e),(e,{subPath:t})=>e.rmdirSync(t))}async symlinkPromise(e,t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,r),async(t,{subPath:r})=>await t.symlinkPromise(e,r))}symlinkSync(e,t,r){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,r),(t,{subPath:r})=>t.symlinkSync(e,r))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":default:return await this.baseFs.readFilePromise(e,t)}},async(e,{subPath:r})=>await e.readFilePromise(r,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":default:return this.baseFs.readFileSync(e,t)}},(e,{subPath:r})=>e.readFileSync(r,t))}async readdirPromise(e,{withFileTypes:t}={}){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,{withFileTypes:t}),async(e,{subPath:r})=>await e.readdirPromise(r,{withFileTypes:t}),{requireSubpath:!1})}readdirSync(e,{withFileTypes:t}={}){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,{withFileTypes:t}),(e,{subPath:r})=>e.readdirSync(r,{withFileTypes:t}),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(e,{subPath:t})=>await e.readlinkPromise(t))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(e,{subPath:t})=>e.readlinkSync(t))}watch(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,r),(e,{subPath:n})=>e.watch(n,t,r))}async makeCallPromise(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return await t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?await t():await this.getZipPromise(o.archivePath,async e=>await r(e,o)):await t()}makeCallSync(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?t():this.getZipSync(o.archivePath,e=>r(e,o)):t()}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){const r=c.exec(e.substr(t.length));if(!r)return null;if(t=this.pathUtils.join(t,r[0]),!1===this.isZip.has(t)){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch(e){return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.resolve(A.LZ.root,e.substr(t.length))}}}limitOpenFiles(e){if(null===this.zipInstances)return;let t=this.zipInstances.size-e;for(const[e,r]of this.zipInstances.entries()){if(t<=0)break;r.saveAndClose(),this.zipInstances.delete(e),t-=1}}async getZipPromise(e,t){const r=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){const t=await r();n=this.zipInstances.get(e),n||(n=new s.d(e,t))}return this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),await t(n)}{const n=new s.d(e,await r());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){const r=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n=new s.d(e,r())),this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),t(n)}{const n=new s.d(e,r());try{return t(n)}finally{n.saveAndClose()}}}}},26984:(e,t,r)=>{"use strict";function n(e,t){return Object.assign(new Error(`${e}: ${t}`),{code:e})}function i(e){return n("EBUSY",e)}function o(e,t){return n("ENOSYS",`${e}, ${t}`)}function s(e){return n("EINVAL","invalid argument, "+e)}function A(e){return n("EBADF","bad file descriptor, "+e)}function a(e){return n("ENOENT","no such file or directory, "+e)}function c(e){return n("ENOTDIR","not a directory, "+e)}function u(e){return n("EISDIR","illegal operation on a directory, "+e)}function l(e){return n("EEXIST","file already exists, "+e)}function h(e){return n("EROFS","read-only filesystem, "+e)}r.d(t,{Vw:()=>i,bk:()=>o,hq:()=>s,Ch:()=>A,z6:()=>a,Ab:()=>c,GA:()=>u,cT:()=>l,YW:()=>h})},56537:(e,t,r)=>{"use strict";r.r(t),r.d(t,{normalizeLineEndings:()=>a.qH,DEFAULT_COMPRESSION_LEVEL:()=>c.k,PortablePath:()=>A.LZ,Filename:()=>A.QS,npath:()=>A.cS,ppath:()=>A.y1,toFilename:()=>A.Zu,AliasFS:()=>u.K,FakeFS:()=>a.uY,CwdFS:()=>l.M,JailFS:()=>h.n,LazyFS:()=>g.v,NoFS:()=>p,NodeFS:()=>s.S,PosixFS:()=>d.i,ProxiedFS:()=>C.p,VirtualFS:()=>E.p,ZipFS:()=>c.d,ZipOpenFS:()=>I.A,patchFs:()=>y,extendFs:()=>w,xfs:()=>D});var n=r(12087),i=r.n(n),o=r(31669),s=r(78420),A=r(46009),a=r(35398),c=r(90739),u=r(14626),l=r(75448),h=r(10489),g=r(15037);const f=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"});class p extends a.uY{constructor(){super(A.y1)}getExtractHint(){throw f()}getRealPath(){throw f()}resolve(){throw f()}async openPromise(){throw f()}openSync(){throw f()}async readPromise(){throw f()}readSync(){throw f()}async writePromise(){throw f()}writeSync(){throw f()}async closePromise(){throw f()}closeSync(){throw f()}createWriteStream(){throw f()}createReadStream(){throw f()}async realpathPromise(){throw f()}realpathSync(){throw f()}async readdirPromise(){throw f()}readdirSync(){throw f()}async existsPromise(e){throw f()}existsSync(e){throw f()}async accessPromise(){throw f()}accessSync(){throw f()}async statPromise(){throw f()}statSync(){throw f()}async lstatPromise(e){throw f()}lstatSync(e){throw f()}async chmodPromise(){throw f()}chmodSync(){throw f()}async mkdirPromise(){throw f()}mkdirSync(){throw f()}async rmdirPromise(){throw f()}rmdirSync(){throw f()}async symlinkPromise(){throw f()}symlinkSync(){throw f()}async renamePromise(){throw f()}renameSync(){throw f()}async copyFilePromise(){throw f()}copyFileSync(){throw f()}async appendFilePromise(){throw f()}appendFileSync(){throw f()}async writeFilePromise(){throw f()}writeFileSync(){throw f()}async unlinkPromise(){throw f()}unlinkSync(){throw f()}async utimesPromise(){throw f()}utimesSync(){throw f()}async readFilePromise(){throw f()}readFileSync(){throw f()}async readlinkPromise(){throw f()}readlinkSync(){throw f()}watch(){throw f()}}p.instance=new p;var d=r(39725),C=r(42096),E=r(17674),I=r(53660);function m(e){const t=A.cS.toPortablePath(i().tmpdir()),r=Math.ceil(4294967296*Math.random()).toString(16).padStart(8,"0");return A.y1.join(t,`${e}${r}`)}function y(e,t){const r=new Set(["accessSync","appendFileSync","createReadStream","chmodSync","closeSync","copyFileSync","lstatSync","lutimesSync","mkdirSync","openSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","unlinkSync","utimesSync","watch","writeFileSync","writeSync"]),n=new Set(["accessPromise","appendFilePromise","chmodPromise","closePromise","copyFilePromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),i=(e,t,r)=>{const n=e[t];e[t]=r,void 0!==n[o.promisify.custom]&&(r[o.promisify.custom]=n[o.promisify.custom])};i(e,"exists",(e,...r)=>{const n="function"==typeof r[r.length-1]?r.pop():()=>{};process.nextTick(()=>{t.existsPromise(e).then(e=>{n(e)},()=>{n(!1)})})}),i(e,"read",(e,r,...n)=>{const i="function"==typeof n[n.length-1]?n.pop():()=>{};process.nextTick(()=>{t.readPromise(e,r,...n).then(e=>{i(null,e,r)},e=>{i(e)})})});for(const r of n){const n=r.replace(/Promise$/,"");if(void 0===e[n])continue;const o=t[r];if(void 0===o)continue;i(e,n,(...e)=>{const r="function"==typeof e[e.length-1]?e.pop():()=>{};process.nextTick(()=>{o.apply(t,e).then(e=>{r(null,e)},e=>{r(e)})})})}e.realpath.native=e.realpath,i(e,"existsSync",e=>{try{return t.existsSync(e)}catch(e){return!1}});for(const n of r){const r=n;if(void 0===e[r])continue;const o=t[n];void 0!==o&&i(e,r,o.bind(t))}e.realpathSync.native=e.realpathSync;{const r=e.promises;if(void 0!==r)for(const e of n){const n=e.replace(/Promise$/,"");if(void 0===r[n])continue;const o=t[e];void 0!==o&&i(r,n,o.bind(t))}}}function w(e,t){const r=Object.create(e);return y(r,t),r}const B=new Set;let Q=!1;function v(){if(Q)return;Q=!0;const e=()=>{process.off("exit",e);for(const e of B){B.delete(e);try{D.removeSync(e)}catch(e){}}};process.on("exit",e)}const D=Object.assign(new s.S,{detachTemp(e){B.delete(e)},mktempSync(e){for(v();;){const t=m("xfs-");try{this.mkdirSync(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=this.realpathSync(t);if(B.add(r),void 0===e)return t;try{return e(r)}finally{if(B.has(r)){B.delete(r);try{this.removeSync(r)}catch(e){}}}}},async mktempPromise(e){for(v();;){const t=m("xfs-");try{await this.mkdirPromise(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=await this.realpathPromise(t);if(B.add(r),void 0===e)return r;try{return await e(r)}finally{if(B.has(r)){B.delete(r);try{await this.removePromise(r)}catch(e){}}}}}})},46009:(e,t,r)=>{"use strict";r.d(t,{LZ:()=>s,QS:()=>A,cS:()=>a,y1:()=>c,CI:()=>C,Zu:()=>E});var n,i=r(85622),o=r.n(i);!function(e){e[e.File=0]="File",e[e.Portable=1]="Portable",e[e.Native=2]="Native"}(n||(n={}));const s={root:"/",dot:"."},A={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",rc:".yarnrc.yml"},a=Object.create(o()),c=Object.create(o().posix);a.cwd=()=>process.cwd(),c.cwd=()=>d(process.cwd()),c.resolve=(...e)=>o().posix.resolve(c.cwd(),...e);const u=function(e,t,r){return(t=e.normalize(t))===(r=e.normalize(r))?".":(t.endsWith(e.sep)||(t+=e.sep),r.startsWith(t)?r.slice(t.length):null)};a.fromPortablePath=p,a.toPortablePath=d,a.contains=(e,t)=>u(a,e,t),c.contains=(e,t)=>u(c,e,t);const l=/^([a-zA-Z]:.*)$/,h=/^\\\\(\.\\)?(.*)$/,g=/^\/([a-zA-Z]:.*)$/,f=/^\/unc\/(\.dot\/)?(.*)$/;function p(e){if("win32"!==process.platform)return e;if(e.match(g))e=e.replace(g,"$1");else{if(!e.match(f))return e;e=e.replace(f,(e,t,r)=>`\\\\${t?".\\":""}${r}`)}return e.replace(/\//g,"\\")}function d(e){return"win32"!==process.platform?e:(e.match(l)?e=e.replace(l,"/$1"):e.match(h)&&(e=e.replace(h,(e,t,r)=>`/unc/${t?".dot/":""}${r}`)),e.replace(/\\/g,"/"))}function C(e,t){return e===a?p(t):d(t)}function E(e){if(""!==a.parse(e).dir||""!==c.parse(e).dir)throw new Error(`Invalid filename: "${e}"`);return e}},29486:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getLibzipSync:()=>o,getLibzipPromise:()=>s});const n=["number","number"];let i=null;function o(){var e;return null===i&&(e=r(3368),i={get HEAP8(){return e.HEAP8},get HEAPU8(){return e.HEAPU8},SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:e._malloc(1),uint16S:e._malloc(2),uint32S:e._malloc(4),uint64S:e._malloc(8),malloc:e._malloc,free:e._free,getValue:e.getValue,open:e.cwrap("zip_open","number",["string","number","number"]),openFromSource:e.cwrap("zip_open_from_source","number",["number","number","number"]),close:e.cwrap("zip_close","number",["number"]),discard:e.cwrap("zip_discard",null,["number"]),getError:e.cwrap("zip_get_error","number",["number"]),getName:e.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:e.cwrap("zip_get_num_entries","number",["number","number"]),stat:e.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:e.cwrap("zip_stat_index","number",["number",...n,"number","number"]),fopen:e.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:e.cwrap("zip_fopen_index","number",["number",...n,"number"]),fread:e.cwrap("zip_fread","number",["number","number","number","number"]),fclose:e.cwrap("zip_fclose","number",["number"]),dir:{add:e.cwrap("zip_dir_add","number",["number","string"])},file:{add:e.cwrap("zip_file_add","number",["number","string","number","number"]),getError:e.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:e.cwrap("zip_file_get_external_attributes","number",["number",...n,"number","number","number"]),setExternalAttributes:e.cwrap("zip_file_set_external_attributes","number",["number",...n,"number","number","number"]),setMtime:e.cwrap("zip_file_set_mtime","number",["number",...n,"number","number"]),setCompression:e.cwrap("zip_set_file_compression","number",["number",...n,"number","number"])},ext:{countSymlinks:e.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:e.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:e.cwrap("zip_error_strerror","string",["number"])},name:{locate:e.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:e.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:e.cwrap("zip_source_buffer","number",["number","number",...n,"number"]),free:e.cwrap("zip_source_free",null,["number"]),keep:e.cwrap("zip_source_keep",null,["number"]),open:e.cwrap("zip_source_open","number",["number"]),close:e.cwrap("zip_source_close","number",["number"]),seek:e.cwrap("zip_source_seek","number",["number",...n,"number"]),tell:e.cwrap("zip_source_tell","number",["number"]),read:e.cwrap("zip_source_read","number",["number","number","number"]),error:e.cwrap("zip_source_error","number",["number"]),setMtime:e.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:e.cwrap("zipstruct_stat","number",[]),statS:e.cwrap("zipstruct_statS","number",[]),statName:e.cwrap("zipstruct_stat_name","string",["number"]),statIndex:e.cwrap("zipstruct_stat_index","number",["number"]),statSize:e.cwrap("zipstruct_stat_size","number",["number"]),statMtime:e.cwrap("zipstruct_stat_mtime","number",["number"]),error:e.cwrap("zipstruct_error","number",[]),errorS:e.cwrap("zipstruct_errorS","number",[])}}),i}async function s(){return o()}},55125:(e,t,r)=>{"use strict";r.r(t),r.d(t,{parseShell:()=>i,parseResolution:()=>s,stringifyResolution:()=>A,parseSyml:()=>C,stringifySyml:()=>f});var n=r(92962);function i(e,t={isGlobPattern:()=>!1}){try{return(0,n.parse)(e,t)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}var o=r(98261);function s(e){const t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,o.parse)(e)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function A(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+="@"+e.from.description),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+="@"+e.descriptor.description),t}var a=r(21194),c=r(85443);const u=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,l=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"];class h{constructor(e){this.data=e}}function g(e){return e.match(u)?e:JSON.stringify(e)}function f(e){try{return function e(t,r,n){if(null===t)return"null\n";if("number"==typeof t||"boolean"==typeof t)return t.toString()+"\n";if("string"==typeof t)return g(t)+"\n";if(Array.isArray(t)){if(0===t.length)return"[]\n";const n="  ".repeat(r);return"\n"+t.map(t=>`${n}- ${e(t,r+1,!1)}`).join("")}if("object"==typeof t&&t){let i,o;t instanceof h?(i=t.data,o=!1):(i=t,o=!0);const s="  ".repeat(r),A=Object.keys(i);o&&A.sort((e,t)=>{const r=l.indexOf(e),n=l.indexOf(t);return-1===r&&-1===n?e<t?-1:e>t?1:0:-1!==r&&-1===n?-1:-1===r&&-1!==n?1:r-n});const a=A.filter(e=>void 0!==i[e]).map((t,o)=>{const A=i[t],a=g(t),c=e(A,r+1,!0),u=o>0||n?s:"";return c.startsWith("\n")?`${u}${a}:${c}`:`${u}${a}: ${c}`}).join(0===r?"\n":"")||"\n";return n?"\n"+a:""+a}throw new Error(`Unsupported value type (${t})`)}(e,0,!1)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}f.PreserveOrdering=h;const p=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function d(e){if(p.test(e))return function(e){return e.endsWith("\n")||(e+="\n"),(0,c.parse)(e)}(e);const t=(0,a.safeLoad)(e,{schema:a.FAILSAFE_SCHEMA});if(null==t)return{};if("object"!=typeof t)throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function C(e){return d(e)}},88563:(e,t,r)=>{"use strict";var n,i;r.d(t,{gY:()=>I,Q$:()=>m,oC:()=>F}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={})),function(e){e.DEFAULT="DEFAULT",e.TOP_LEVEL="TOP_LEVEL",e.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",e.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",e.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",e.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",e.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",e.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",e.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",e.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",e.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",e.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"}(i||(i={}));const o={[i.DEFAULT]:{collapsed:!1,next:{"*":i.DEFAULT}},[i.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:i.FALLBACK_EXCLUSION_LIST,packageRegistryData:i.PACKAGE_REGISTRY_DATA,"*":i.DEFAULT}},[i.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{"*":i.FALLBACK_EXCLUSION_ENTRIES}},[i.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{"*":i.FALLBACK_EXCLUSION_DATA}},[i.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{"*":i.DEFAULT}},[i.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_REGISTRY_ENTRIES}},[i.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_STORE_DATA}},[i.PACKAGE_STORE_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_STORE_ENTRIES}},[i.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_INFORMATION_DATA}},[i.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:i.PACKAGE_DEPENDENCIES,"*":i.DEFAULT}},[i.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{"*":i.PACKAGE_DEPENDENCY}},[i.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{"*":i.DEFAULT}}};function s(e,t,r,n){const{next:i}=o[r];return A(t,i[e]||i["*"],n)}function A(e,t,r){const{collapsed:n}=o[t];return Array.isArray(e)?n?function(e,t,r){let n="";n+="[";for(let i=0,o=e.length;i<o;++i)n+=s(String(i),e[i],t,r).replace(/^ +/g,""),i+1<o&&(n+=", ");return n+="]",n}(e,t,r):function(e,t,r){const n=r+"  ";let i="";i+=r,i+="[\n";for(let r=0,o=e.length;r<o;++r)i+=n+s(String(r),e[r],t,n).replace(/^ +/,""),r+1<o&&(i+=","),i+="\n";return i+=r,i+="]",i}(e,t,r):"object"==typeof e&&null!==e?n?function(e,t,r){const n=Object.keys(e);let i="";i+="{";for(let o=0,A=n.length;o<A;++o){const a=n[o],c=e[a];void 0!==c&&(i+=JSON.stringify(a),i+=": ",i+=s(a,c,t,r).replace(/^ +/g,""),o+1<A&&(i+=", "))}return i+="}",i}(e,t,r):function(e,t,r){const n=Object.keys(e),i=r+"  ";let o="";o+=r,o+="{\n";for(let r=0,A=n.length;r<A;++r){const a=n[r],c=e[a];void 0!==c&&(o+=i,o+=JSON.stringify(a),o+=": ",o+=s(a,c,t,i).replace(/^ +/g,""),r+1<A&&(o+=","),o+="\n")}return o+=r,o+="}",o}(e,t,r):JSON.stringify(e)}function a(e){return A(e,i.TOP_LEVEL,"")}function c(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]<r[t]?-1:r[e]>r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function u(e){const t=new Map,r=c(e.fallbackExclusionList||[],[({name:e,reference:t})=>e,({name:e,reference:t})=>t]);for(const{name:e,reference:n}of r){let r=t.get(e);void 0===r&&t.set(e,r=new Set),r.add(n)}return Array.from(t).map(([e,t])=>[e,Array.from(t)])}function l(e){return c(e.fallbackPool||[],([e])=>e)}function h(e){const t=[];for(const[r,n]of c(e.packageRegistry,([e])=>null===e?"0":"1"+e)){const e=[];t.push([r,e]);for(const[t,{packageLocation:i,packageDependencies:o,packagePeers:s,linkType:A,discardFromLookup:a}]of c(n,([e])=>null===e?"0":"1"+e)){const n=[];null===r||null===t||o.has(r)||n.push([r,t]);for(const[e,t]of c(o.entries(),([e])=>e))n.push([e,t]);const u=s&&s.size>0?Array.from(s):void 0,l=a||void 0;e.push([t,{packageLocation:i,packageDependencies:n,packagePeers:u,linkType:A,discardFromLookup:l}])}}return t}function g(e){return c(e.blacklistedLocations||[],e=>e)}function f(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,fallbackExclusionList:u(e),fallbackPool:l(e),locationBlacklistData:g(e),packageRegistryData:h(e)}}var p=r(20103),d=r.n(p);function C(e,t){return[e?e+"\n":"","/* eslint-disable */\n\n","try {\n","  Object.freeze({}).detectStrictMode = true;\n","} catch (error) {\n","  throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n","}\n","\n","var __non_webpack_module__ = module;\n","\n","function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n",t.replace(/^/gm,"  "),"}\n","\n",d()].join("")}function E(e){return JSON.stringify(e,null,2)}function I(e){const t=function(e){return[`return hydrateRuntimeState(${a(e)}, {basePath: basePath || __dirname});\n`].join("")}(f(e));return C(e.shebang,t)}function m(e){const t=f(e),r=(n=e.dataLocation,["var path = require('path');\n",`var dataLocation = path.resolve(__dirname, ${JSON.stringify(n)});\n`,"return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n"].join(""));var n;const i=C(e.shebang,r);return{dataFile:E(t),loaderFile:i}}var y=r(35747),w=(r(85622),r(31669)),B=r(46009);function Q(e,{basePath:t}){const r=B.cS.toPortablePath(t),n=null!==e.ignorePatternData?new RegExp(e.ignorePatternData):null,i=new Map(e.packageRegistryData.map(([e,t])=>[e,new Map(t.map(([e,t])=>[e,{packageLocation:B.y1.resolve(r,t.packageLocation),packageDependencies:new Map(t.packageDependencies),packagePeers:new Set(t.packagePeers),linkType:t.linkType,discardFromLookup:t.discardFromLookup||!1}]))])),o=new Map,s=new Set;for(const[t,r]of e.packageRegistryData)for(const[e,n]of r){if(null===t!=(null===e))throw new Error("Assertion failed: The name and reference should be null, or neither should");if(n.discardFromLookup)continue;const r={name:t,reference:e};o.set(n.packageLocation,r),s.add(n.packageLocation.length)}for(const t of e.locationBlacklistData)o.set(t,null);const A=new Map(e.fallbackExclusionList.map(([e,t])=>[e,new Set(t)])),a=new Map(e.fallbackPool),c=e.dependencyTreeRoots,u=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:A,fallbackPool:a,ignorePattern:n,packageLocationLengths:[...s].sort((e,t)=>t-e),packageLocatorsByLocations:o,packageRegistry:i}}var v,D=r(17674),b=r(32282);!function(e){e.API_ERROR="API_ERROR",e.BLACKLISTED="BLACKLISTED",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED"}(v||(v={}));const S=new Set([v.BLACKLISTED,v.BUILTIN_NODE_RESOLUTION_FAILED,v.MISSING_DEPENDENCY,v.MISSING_PEER_DEPENDENCY,v.QUALIFIED_PATH_RESOLUTION_FAILED,v.UNDECLARED_DEPENDENCY]);function k(e,t,r={}){const n=S.has(e)?"MODULE_NOT_FOUND":e,i={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...i,value:n},pnpCode:{...i,value:e},data:{...i,value:r}})}function x(e,t){const r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),i=new Set(b.Module.builtinModules||Object.keys(process.binding("natives"))),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^\.{0,2}\//,A=/\/$/,a=[],c=new Set;if(!1!==t.compatibilityMode)for(const t of["react-scripts","gatsby"]){const r=e.packageRegistry.get(t);if(r)for(const e of r.keys()){if(null===e)throw new Error("Assertion failed: This reference shouldn't be null");a.push({name:t,reference:e})}}const{ignorePattern:u,packageRegistry:l,packageLocatorsByLocations:h,packageLocationLengths:g}=e;function f(e,t){return{fn:e,args:t,error:null,result:null}}function p(e,r){if(!1===t.allowDebug)return r;if(Number.isFinite(n)){if(n>=2)return(...t)=>{const n=f(e,t);try{return n.result=r(...t)}catch(e){throw n.error=e}finally{console.trace(n)}};if(n>=1)return(...t)=>{try{return r(...t)}catch(r){const n=f(e,t);throw n.error=r,console.trace(n),r}}}return r}function d(e){const t=I(e);if(!t)throw k(v.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return t}function C(t){if(null===t.name)return!0;for(const r of e.dependencyTreeRoots)if(r.name===t.name&&r.reference===t.reference)return!0;return!1}function E(e,t){return t.endsWith("/")&&(t=B.y1.join(t,"internal.js")),b.Module._resolveFilename(e,function(e){const t=new b.Module(e,null);return t.filename=e,t.paths=b.Module._nodeModulePaths(e),t}(B.cS.fromPortablePath(t)),!1,{plugnplay:!1})}function I({name:e,reference:t}){const r=l.get(e);if(!r)return null;const n=r.get(t);return n||null}function m(e,t){const r=new Map,n=new Set,i=t=>{const o=JSON.stringify(t.name);if(n.has(o))return;n.add(o);const s=function({name:e,reference:t}){const r=[];for(const[n,i]of l)if(null!==n)for(const[o,s]of i){if(null===o)continue;s.packageDependencies.get(e)===t&&(n===e&&o===t||r.push({name:n,reference:o}))}return r}(t);for(const t of s){if(d(t).packagePeers.has(e))i(t);else{let e=r.get(t.name);void 0===e&&r.set(t.name,e=new Set),e.add(t.reference)}}};i(t);const o=[];for(const e of[...r.keys()].sort())for(const t of[...r.get(e)].sort())o.push({name:e,reference:t});return o}function y(t){let r=(n=B.y1.relative(e.basePath,t),B.cS.toPortablePath(n));var n;r.match(s)||(r="./"+r),t.match(A)&&!r.endsWith("/")&&(r+="/");let i=0;for(;i<g.length&&g[i]>r.length;)i+=1;for(let e=i;e<g.length;++e){const n=h.get(r.substr(0,g[e]));if(void 0!==n){if(null===n)throw k(v.BLACKLISTED,"A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: "+t,{location:t});return n}}return null}function w(n,s,{considerBuiltins:l=!0}={}){if("pnpapi"===n)return B.cS.toPortablePath(t.pnpapiResolution);if(l&&i.has(n))return null;if(s&&function(t){if(null===u)return!1;const r=B.y1.contains(e.basePath,t);return null!==r&&!!u.test(r.replace(/\/$/,""))}(s)&&(!B.y1.isAbsolute(n)||null===y(n))){const e=E(n,s);if(!1===e)throw k(v.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${n}"\nRequired by: ${s}\n`,{request:n,issuer:s});return B.cS.toPortablePath(e)}let h;const g=n.match(o);if(g){if(!s)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});const[,t,i]=g,o=y(s);if(!o){const e=E(n,s);if(!1===e)throw k(v.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: "${n}"\nRequired by: ${s}\n`,{request:n,issuer:s});return B.cS.toPortablePath(e)}let A=d(o).packageDependencies.get(t),u=null;if(null==A&&null!==o.name){const n=e.fallbackExclusionList.get(o.name);if(!n||!n.has(o.reference)){for(let e=0,n=a.length;e<n;++e){const n=d(a[e]).packageDependencies.get(t);if(null!=n){r?u=n:A=n;break}}if(e.enableTopLevelFallback&&null==A&&null===u){const r=e.fallbackPool.get(t);null!=r&&(u=r)}}}let l=null;if(null===A)if(C(o))l=k(v.MISSING_PEER_DEPENDENCY,`Your application tried to access ${t} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t});else{const e=m(t,o);l=e.every(e=>C(e))?k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e}):k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e})}else void 0===A&&(l=C(o)?k(v.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t}):k(v.UNDECLARED_DEPENDENCY,`${o.name} tried to access ${t}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t}));if(null==A){if(null===u||null===l)throw l||new Error("Assertion failed: Expected an error to have been set");A=u;const e=l.message.replace(/\n.*/g,"");l.message=e,c.has(e)||(c.add(e),process.emitWarning(l))}const f=Array.isArray(A)?{name:A[0],reference:A[1]}:{name:t,reference:A},p=d(f);if(!p.packageLocation)throw k(v.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${f.name}@${f.reference} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,dependencyLocator:Object.assign({},f)});const I=B.y1.resolve(e.basePath,p.packageLocation);h=i?B.y1.resolve(I,i):I}else{if(B.y1.isAbsolute(n))h=B.y1.normalize(n);else{if(!s)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});const e=B.y1.resolve(s);h=s.match(A)?B.y1.normalize(B.y1.join(e,n)):B.y1.normalize(B.y1.join(B.y1.dirname(e),n))}y(h)}return B.y1.normalize(h)}function Q(e,{extensions:r=Object.keys(b.Module._extensions)}={}){const n=[],i=function e(r,n,{extensions:i}){let o;try{n.push(r),o=t.fakeFs.statSync(r)}catch(e){}if(o&&!o.isDirectory())return t.fakeFs.realpathSync(r);if(o&&o.isDirectory()){let o,s;try{o=JSON.parse(t.fakeFs.readFileSync(B.y1.join(r,"package.json"),"utf8"))}catch(e){}if(o&&o.main&&(s=B.y1.resolve(r,o.main)),s&&s!==r){const t=e(s,n,{extensions:i});if(null!==t)return t}}for(let e=0,o=i.length;e<o;e++){const o=`${r}${i[e]}`;if(n.push(o),t.fakeFs.existsSync(o))return o}if(o&&o.isDirectory())for(let e=0,o=i.length;e<o;e++){const o=B.y1.format({dir:r,name:"index",ext:i[e]});if(n.push(o),t.fakeFs.existsSync(o))return o}return null}(e,n,{extensions:r});if(i)return B.y1.normalize(i);throw k(v.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${e}\n${n.map(e=>`Rejected candidate: ${e}\n`).join("")}`,{unqualifiedPath:e})}return{VERSIONS:{std:3,resolveVirtual:1},topLevel:{name:null,reference:null},getLocator:(e,t)=>Array.isArray(t)?{name:t[0],reference:t[1]}:{name:e,reference:t},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getPackageInformation:e=>{const t=I(e);if(null===t)return null;const r=B.cS.fromPortablePath(t.packageLocation);return{...t,packageLocation:r}},findPackageLocator:e=>y(B.cS.toPortablePath(e)),resolveToUnqualified:p("resolveToUnqualified",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=w(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveUnqualified:p("resolveUnqualified",(e,t)=>B.cS.fromPortablePath(Q(B.cS.toPortablePath(e),t))),resolveRequest:p("resolveRequest",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=function(e,t,{considerBuiltins:r,extensions:n}={}){const i=w(e,t,{considerBuiltins:r});if(null===i)return null;try{return Q(i,{extensions:n})}catch(r){throw"QUALIFIED_PATH_RESOLUTION_FAILED"===r.pnpCode&&Object.assign(r.data,{request:e,issuer:t}),r}}(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveVirtual:p("resolveVirtual",e=>{const t=function(e){const t=B.y1.normalize(e),r=D.p.resolveVirtual(t);return r!==t?r:null}(B.cS.toPortablePath(e));return null!==t?B.cS.fromPortablePath(t):null})}}(0,w.promisify)(y.readFile);const F=(e,t,r)=>x(Q(f(e),{basePath:t}),{fakeFs:r,pnpapiResolution:B.cS.join(t,".pnp.js")})},43982:(e,t,r)=>{"use strict";r.r(t),r.d(t,{execute:()=>F});var n,i=r(46009),o=r(56537),s=r(39725),A=r(55125),a=r(19347),c=r.n(a),u=r(92413),l=r(67566),h=r.n(l);function g(){}!function(e){e[e.STDOUT=1]="STDOUT",e[e.STDERR=2]="STDERR"}(n||(n={}));let f=0;class p{constructor(e){this.stream=e}close(){}get(){return this.stream}}class d{constructor(){this.stream=null}close(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");return this.stream}}class C{constructor(e,t){this.stdin=null,this.stdout=null,this.stderr=null,this.pipe=null,this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:r,stderr:n}){const i=new C(null,e);return i.stdin=t,i.stdout=r,i.stderr=n,i}pipeTo(e,t=n.STDOUT){const r=new C(this,e),i=new d;return r.pipe=i,r.stdout=this.stdout,r.stderr=this.stderr,(t&n.STDOUT)===n.STDOUT?this.stdout=i:null!==this.ancestor&&(this.stderr=this.ancestor.stdout),(t&n.STDERR)===n.STDERR?this.stderr=i:null!==this.ancestor&&(this.stderr=this.ancestor.stderr),r}async exec(){const e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(null===this.stdin)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t,r;if(null===this.stdout)throw new Error("Assertion failed: No output stream registered");if(t=this.stdout,e[1]=t.get(),null===this.stderr)throw new Error("Assertion failed: No error stream registered");r=this.stderr,e[2]=r.get();const n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(e=>(t.close(),r.close(),e))}async run(){const e=[];for(let t=this;t;t=t.ancestor)e.push(t.exec());return(await Promise.all(e))[0]}}function E(e,t){return C.start(e,t)}function I(e,t={}){const r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}const m=new Map([["cd",async([e,...t],r,n)=>{const s=i.y1.resolve(n.cwd,i.cS.toPortablePath(e));return(await o.xfs.statPromise(s)).isDirectory()?(n.cwd=s,0):(n.stderr.write("cd: not a directory\n"),1)}],["pwd",async(e,t,r)=>(r.stdout.write(i.cS.fromPortablePath(r.cwd)+"\n"),0)],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,n)=>n.exitCode=parseInt(e,10)],["echo",async(e,t,r)=>(r.stdout.write(e.join(" ")+"\n"),0)],["__ysh_run_procedure",async(e,t,r)=>{const n=r.procedures[e[0]];return await E(n,{stdin:new p(r.stdin),stdout:new p(r.stdout),stderr:new p(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let n=r.stdin,s=r.stdout;const A=r.stderr,a=[],c=[];let l=0;for(;"--"!==e[l];){const t=e[l++],n=Number(e[l++]),s=l+n;for(let n=l;n<s;++l,++n)switch(t){case"<":a.push(()=>o.xfs.createReadStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case"<<<":a.push(()=>{const t=new u.PassThrough;return process.nextTick(()=>{t.write(e[n]+"\n"),t.end()}),t});break;case">":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case">>":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n])),{flags:"a"}))}}if(a.length>0){const e=new u.PassThrough;n=e;const t=r=>{if(r===a.length)e.end();else{const n=a[r]();n.pipe(e,{end:!1}),n.on("end",()=>{t(r+1)})}};t(0)}if(c.length>0){const e=new u.PassThrough;s=e;for(const t of c)e.pipe(t)}const h=await E(Q(e.slice(l+1),t,r),{stdin:new p(n),stdout:new p(s),stderr:new p(A)}).run();return await Promise.all(c.map(e=>new Promise(t=>{e.on("close",()=>{t()}),e.end()}))),h}]]);async function y(e,t,r){const n=[],i=new u.PassThrough;return i.on("data",e=>n.push(e)),await S(e,t,I(r,{stdout:i})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function w(e,t,r){const n=e.map(async e=>{const n=await B(e.args,t,r);return{name:e.name,value:n.join(" ")}});return(await Promise.all(n)).reduce((e,t)=>(e[t.name]=t.value,e),{})}async function B(e,t,r){const n=new Map,i=[];let o=[];const s=e=>e.match(/[^ \r\n\t]+/g)||[],A=e=>{o.push(e)},a=()=>{o.length>0&&i.push(o.join("")),o=[]},c=e=>{A(e),a()},u=(e,t)=>{let r=n.get(e);void 0===r&&n.set(e,r=[]),r.push(t)};for(const n of e){switch(n.type){case"redirection":{const e=await B(n.args,t,r);for(const t of e)u(n.subtype,t)}break;case"argument":for(const e of n.segments)switch(e.type){case"text":A(e.text);break;case"glob":{const n=await t.glob.match(e.pattern,{cwd:r.cwd});if(!n.length)throw new Error(`No file matches found: "${e.pattern}". Note: Glob patterns currently only support files that exist on the filesystem (Help Wanted)`);for(const e of n.sort())c(e)}break;case"shell":{const n=await y(e.shell,t,r);if(e.quoted)A(n);else{const e=s(n);for(let t=0;t<e.length-1;++t)c(e[t]);A(e[e.length-1])}}break;case"variable":switch(e.name){case"#":A(String(t.args.length));break;case"@":if(e.quoted)for(const e of t.args)c(e);else for(const e of t.args){const t=s(e);for(let e=0;e<t.length-1;++e)c(t[e]);A(t[t.length-1])}break;case"*":{const r=t.args.join(" ");if(e.quoted)A(r);else for(const e of s(r))c(e)}break;default:{const n=parseInt(e.name,10);if(Number.isFinite(n)){if(!(n>=0&&n<t.args.length))throw new Error("Unbound argument #"+n);A(t.args[n])}else if(Object.prototype.hasOwnProperty.call(r.variables,e.name))A(r.variables[e.name]);else if(Object.prototype.hasOwnProperty.call(r.environment,e.name))A(r.environment[e.name]);else{if(!e.defaultValue)throw new Error(`Unbound variable "${e.name}"`);A((await B(e.defaultValue,t,r)).join(" "))}}}}}a()}if(n.size>0){const e=[];for(const[t,r]of n.entries())e.splice(e.length,0,t,String(r.length),...r);i.splice(0,0,"__ysh_set_redirects",...e,"--")}return i}function Q(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);const n=i.cS.fromPortablePath(r.cwd);let o=r.environment;void 0!==o.PWD&&(o={...o,PWD:n});const[s,...A]=e;if("command"===s)return function(e,t,r,n){return r=>{const i=r[0]instanceof u.Transform?"pipe":r[0],o=r[1]instanceof u.Transform?"pipe":r[1],s=r[2]instanceof u.Transform?"pipe":r[2],A=h()(e,t,{...n,stdio:[i,o,s]});return 0==f++&&process.on("SIGINT",g),r[0]instanceof u.Transform&&r[0].pipe(A.stdin),r[1]instanceof u.Transform&&A.stdout.pipe(r[1],{end:!1}),r[2]instanceof u.Transform&&A.stderr.pipe(r[2],{end:!1}),{stdin:A.stdin,promise:new Promise(t=>{A.on("error",n=>{switch(0==--f&&process.off("SIGINT",g),n.code){case"ENOENT":r[2].write(`command not found: ${e}\n`),t(127);break;case"EACCESS":r[2].write(`permission denied: ${e}\n`),t(128);break;default:r[2].write(`uncaught error: ${n.message}\n`),t(1)}}),A.on("exit",e=>{0==--f&&process.off("SIGINT",g),t(null!==e?e:129)})})}}}(A[0],A.slice(1),0,{cwd:n,env:o});const a=t.builtins.get(s);if(void 0===a)throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return function(e){return t=>{const r="pipe"===t[0]?new u.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}(async({stdin:e,stdout:n,stderr:i})=>(r.stdin=e,r.stdout=n,r.stderr=i,await a(A,t,r)))}function v(e,t,r){return n=>{const i=new u.PassThrough;return{stdin:i,promise:S(e,t,I(r,{stdin:i}))}}}async function D(e,t,r){let n=e,i=null,o=null;for(;n;){const e=n.then?{...r}:r;let s;switch(n.type){case"command":{const i=await B(n.args,t,r),o=await w(n.envs,t,r);s=n.envs.length?Q(i,t,I(e,{environment:o})):Q(i,t,e)}break;case"subshell":{const i=await B(n.args,t,r),o=v(n.subshell,t,e);if(0===i.length)s=o;else{let r;do{r=String(Math.random())}while(Object.prototype.hasOwnProperty.call(e.procedures,r));e.procedures={...e.procedures},e.procedures[r]=o,s=Q([...i,"__ysh_run_procedure",r],t,e)}}break;case"envs":{const i=await w(n.envs,t,r);e.environment={...e.environment,...i},s=Q(["true"],t,e)}}if(void 0===s)throw new Error("Assertion failed: An action should have been generated");if(null===i)o=E(s,{stdin:new p(e.stdin),stdout:new p(e.stdout),stderr:new p(e.stderr)});else{if(null===o)throw new Error("The execution pipeline should have been setup");switch(i){case"|":case"|&":o=o.pipeTo(s)}}n.then?(i=n.then.type,n=n.then.chain):n=null}if(null===o)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function b(e,t,r){if(!e.then)return await D(e.chain,t,r);const n=await D(e.chain,t,r);if(null!==r.exitCode)return r.exitCode;switch(r.variables["?"]=String(n),e.then.type){case"&&":return 0===n?await b(e.then.line,t,r):n;case"||":return 0!==n?await b(e.then.line,t,r):n;default:throw new Error(`Unsupported command type: "${e.then.type}"`)}}async function S(e,t,r){let n=0;for(const i of e){if(n=await b(i,t,r),null!==r.exitCode)return r.exitCode;r.variables["?"]=String(n)}return n}function k(e){switch(e.type){case"redirection":return e.args.some(e=>k(e));case"argument":return e.segments.some(e=>function(e){switch(e.type){case"variable":return"@"===e.name||"#"===e.name||"*"===e.name||Number.isFinite(parseInt(e.name,10))||!!e.defaultValue&&e.defaultValue.some(e=>k(e));case"shell":return x(e.shell);default:return!1}}(e));default:throw new Error("Unreacheable")}}function x(e){return e.some(e=>{for(;e;){let t=e.chain;for(;t;){let e;switch(t.type){case"subshell":e=x(t.subshell);break;case"command":e=t.envs.some(e=>e.args.some(e=>k(e)))||t.args.some(e=>k(e))}if(e)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function F(e,t=[],{builtins:r={},cwd:n=i.cS.toPortablePath(process.cwd()),env:a=process.env,stdin:l=process.stdin,stdout:h=process.stdout,stderr:g=process.stderr,variables:f={},glob:p={isGlobPattern:c().isDynamicPattern,match:(e,{cwd:t,fs:r=o.xfs})=>c()(e,{cwd:i.cS.fromPortablePath(t),fs:new s.i(r)})}}={}){const d={};for(const[e,t]of Object.entries(a))void 0!==t&&(d[e]=t);const C=new Map(m);for(const[e,t]of Object.entries(r))C.set(e,t);null===l&&(l=new u.PassThrough).end();const E=(0,A.parseShell)(e,p);if(!x(E)&&E.length>0&&t.length>0){let e=E[E.length-1];for(;e.then;)e=e.then.line;let r=e.chain;for(;r.then;)r=r.then.chain;"command"===r.type&&(r.args=r.args.concat(t.map(e=>({type:"argument",segments:[{type:"text",text:e}]}))))}return await S(E,{args:t,builtins:C,initialStdin:l,initialStdout:h,initialStderr:g,glob:p},{cwd:n,environment:d,exitCode:null,procedures:{},stdin:l,stdout:h,stderr:g,variables:Object.assign(Object.create(f),{"?":0})})}},45330:(e,t,r)=>{t.e=()=>({modules:new Map([[r(60306).name,r(95397)],[r(73841).u2,r(84132)],[r(4670).u2,r(56537)],[r(81386).u2,r(29486)],[r(54920).u2,r(55125)],[r(75418).u2,r(43982)],[r(75426).u2,r(17278)],[r(89153).u2,r(53887)],[r(38422).u2,r(15966)],[r(37904).u2,r(72926)],[r(49775).u2,r(80150)],[r(35729).u2,r(10420)],[r(17508).u2,r(41466)],[r(84779).u2,r(10284)],[r(88454).u2,r(23599)],[r(91953).u2,r(21754)],[r(63756).u2,r(74230)],[r(23100).u2,r(86161)],[r(47047).u2,r(8149)],[r(67310).u2,r(86717)],[r(31880).u2,r(94573)],[r(74617).u2,r(5973)],[r(12437).u2,r(5698)],[r(8211).u2,r(5780)]]),plugins:new Set([r(37904).u2,r(49775).u2,r(35729).u2,r(17508).u2,r(84779).u2,r(88454).u2,r(91953).u2,r(63756).u2,r(23100).u2,r(47047).u2,r(67310).u2,r(31880).u2,r(74617).u2,r(12437).u2,r(8211).u2])})},29148:(e,t,r)=>{const n=r(74988),i=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,o=new n;e.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");const n=r-t;let s="",A=0,a=0;for(;e.length>0;){const r=e.match(i)||[e,e,void 0];let c=o.splitGraphemes(r[1]);const u=Math.min(t-A,c.length);c=c.slice(u);const l=Math.min(n-a,c.length);s+=c.slice(0,l).join(""),A+=u,a+=l,void 0!==r[2]&&(s+=r[2]),e=e.slice(r[0].length)}return s}},72912:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.exports=t},60087:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},19228:(e,t,r)=>{var n=r(54694);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var A=o?Object.getOwnPropertyDescriptor(e,s):null;A&&(A.get||A.set)?Object.defineProperty(r,s,A):r[s]=e[s]}return r.default=e,t&&t.set(e,r),r}},74943:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},62407:e=>{e.exports=function(e,t){return t||(t=e.slice(0)),e.raw=t,e}},54694:e=>{function t(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(r)}e.exports=t},96117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},79774:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=process.versions.node.split("."),n=parseInt(r[0],10),i=parseInt(r[1],10),o=n>10,s=10===n&&i>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=o||s},85670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31020),i=r(35516),o=r(38844);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.scandir=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.scandirSync=function(e,t){const r=s(t);return i.read(e,r)}},31020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(69078),o=r(79774),s=r(65225);function A(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,o)=>{if(null!==n)return c(r,n);const A=o.map(r=>({dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`}));if(!t.followSymbolicLinks)return u(r,A);const a=A.map(e=>function(e,t){return r=>{if(!e.dirent.isSymbolicLink())return r(null,e);t.fs.stat(e.path,(n,i)=>null!==n?t.throwErrorOnBrokenSymbolicLink?r(n):r(null,e):(e.dirent=s.fs.createDirentFromStats(e.name,i),r(null,e)))}}(e,t));i(a,(e,t)=>{if(null!==e)return c(r,e);u(r,t)})})}function a(e,t,r){t.fs.readdir(e,(o,A)=>{if(null!==o)return c(r,o);const a=A.map(r=>`${e}${t.pathSegmentSeparator}${r}`),l=a.map(e=>r=>n.stat(e,t.fsStatSettings,r));i(l,(e,n)=>{if(null!==e)return c(r,e);const i=[];A.forEach((e,r)=>{const o=n[r],A={name:e,path:a[r],dirent:s.fs.createDirentFromStats(e,o)};t.stats&&(A.stats=o),i.push(A)}),u(r,i)})})}function c(e,t){e(t)}function u(e,t){e(null,t)}t.read=function(e,t,r){return!t.stats&&o.IS_SUPPORT_READDIR_WITH_FILE_TYPES?A(e,t,r):a(e,t,r)},t.readdirWithFileTypes=A,t.readdir=a},35516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(79774),o=r(65225);function s(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(r=>{const n={dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`};if(n.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{const e=t.fs.statSync(n.path);n.dirent=o.fs.createDirentFromStats(n.name,e)}catch(e){if(t.throwErrorOnBrokenSymbolicLink)throw e}return n})}function A(e,t){return t.fs.readdirSync(e).map(r=>{const i=`${e}${t.pathSegmentSeparator}${r}`,s=n.statSync(i,t.fsStatSettings),A={name:r,path:i,dirent:o.fs.createDirentFromStats(r,s)};return t.stats&&(A.stats=s),A})}t.read=function(e,t){return!t.stats&&i.IS_SUPPORT_READDIR_WITH_FILE_TYPES?s(e,t):A(e,t)},t.readdirWithFileTypes=s,t.readdir=A},38844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(96117);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=o.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new i.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},72156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},65225:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(72156);t.fs=n},71208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},53403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(17790),i=r(34846),o=r(92687);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.stat=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.statSync=function(e,t){const r=s(t);return i.read(e,r)}},17790:(e,t)=>{"use strict";function r(e,t){e(t)}function n(e,t){e(null,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t,i){t.fs.lstat(e,(o,s)=>null!==o?r(i,o):s.isSymbolicLink()&&t.followSymbolicLink?void t.fs.stat(e,(e,o)=>{if(null!==e)return t.throwErrorOnBrokenSymbolicLink?r(i,e):n(i,s);t.markSymbolicLink&&(o.isSymbolicLink=()=>!0),n(i,o)}):n(i,s))}},34846:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t){const r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{const r=t.fs.statSync(e);return t.markSymbolicLink&&(r.isSymbolicLink=()=>!0),r}catch(e){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw e}}},92687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71208);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=n.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return void 0===e?t:e}}},72897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(42369),i=r(27696),o=r(22111),s=r(14954);function A(e={}){return e instanceof s.default?e:new s.default(e)}t.Settings=s.default,t.walk=function(e,t,r){if("function"==typeof t)return new n.default(e,A()).read(t);new n.default(e,A(t)).read(r)},t.walkSync=function(e,t){const r=A(t);return new o.default(e,r).read()},t.walkStream=function(e,t){const r=A(t);return new i.default(e,r).read()}},42369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{!function(e,t){e(t)}(e,t)}),this._reader.onEntry(e=>{this._storage.add(e)}),this._reader.onEnd(()=>{!function(e,t){e(null,t)}(e,[...this._storage])}),this._reader.read()}}},27696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings),this._stream=new n.Readable({objectMode:!0,read:()=>{},destroy:this._reader.destroy.bind(this._reader)})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},22111:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97835);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings)}read(){return this._reader.read()}}},98566:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(85670),o=r(98360),s=r(10750),A=r(75504);class a extends A.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=i.scandir,this._emitter=new n.EventEmitter,this._queue=o(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const r={directory:e,base:t};this._queue.push(r,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(r,n)=>{if(null!==r)return t(r,void 0);for(const t of n)this._handleEntry(t,e.base);t(null,void 0)})}_handleError(e){s.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const r=e.path;void 0!==t&&(e.path=s.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),s.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&s.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=a},10750:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFatalError=function(e,t){return null===e.errorFilter||!e.errorFilter(t)},t.isAppliedFilter=function(e,t){return null===e||e(t)},t.replacePathSegmentSeparator=function(e,t){return e.split(/[\\/]/).join(t)},t.joinPathSegments=function(e,t,r){return""===e?t:e+r+t}},75504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10750);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=n.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},97835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85670),i=r(10750),o=r(75504);class s extends o.default{constructor(){super(...arguments),this._scandir=n.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(const e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{const r=this._scandir(e,this._settings.fsScandirSettings);for(const e of r)this._handleEntry(e,t)}catch(e){this._handleError(e)}}_handleError(e){if(i.isFatalError(this._settings,e))throw e}_handleEntry(e,t){const r=e.path;void 0!==t&&(e.path=i.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),i.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&i.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_pushToStorage(e){this._storage.add(e)}}t.default=s},14954:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(85670);t.default=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,1/0),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.fsScandirSettings=new i.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},8189:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const{toString:r}=Object.prototype,n=e=>t=>typeof t===e,i=e=>{const t=r.call(e).slice(8,-1);if(t)return t},o=e=>t=>i(t)===e;function s(e){switch(e){case null:return"null";case!0:case!1:return"boolean"}switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"bigint":return"bigint";case"symbol":return"symbol"}if(s.function_(e))return"Function";if(s.observable(e))return"Observable";if(s.array(e))return"Array";if(s.buffer(e))return"Buffer";const t=i(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}s.undefined=n("undefined"),s.string=n("string");const A=n("number");s.number=e=>A(e)&&!s.nan(e),s.bigint=n("bigint"),s.function_=n("function"),s.null_=e=>null===e,s.class_=e=>s.function_(e)&&e.toString().startsWith("class "),s.boolean=e=>!0===e||!1===e,s.symbol=n("symbol"),s.numericString=e=>s.string(e)&&!s.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),s.array=Array.isArray,s.buffer=e=>{var t,r,n,i;return null!==(i=null===(n=null===(r=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===r?void 0:r.isBuffer)||void 0===n?void 0:n.call(r,e))&&void 0!==i&&i},s.nullOrUndefined=e=>s.null_(e)||s.undefined(e),s.object=e=>!s.null_(e)&&("object"==typeof e||s.function_(e)),s.iterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},s.asyncIterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},s.generator=e=>s.iterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.asyncGenerator=e=>s.asyncIterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.nativePromise=e=>o("Promise")(e);s.promise=e=>s.nativePromise(e)||(e=>{var t,r;return s.function_(null===(t=e)||void 0===t?void 0:t.then)&&s.function_(null===(r=e)||void 0===r?void 0:r.catch)})(e),s.generatorFunction=o("GeneratorFunction"),s.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===i(e),s.asyncFunction=e=>"AsyncFunction"===i(e),s.boundFunction=e=>s.function_(e)&&!e.hasOwnProperty("prototype"),s.regExp=o("RegExp"),s.date=o("Date"),s.error=o("Error"),s.map=e=>o("Map")(e),s.set=e=>o("Set")(e),s.weakMap=e=>o("WeakMap")(e),s.weakSet=e=>o("WeakSet")(e),s.int8Array=o("Int8Array"),s.uint8Array=o("Uint8Array"),s.uint8ClampedArray=o("Uint8ClampedArray"),s.int16Array=o("Int16Array"),s.uint16Array=o("Uint16Array"),s.int32Array=o("Int32Array"),s.uint32Array=o("Uint32Array"),s.float32Array=o("Float32Array"),s.float64Array=o("Float64Array"),s.bigInt64Array=o("BigInt64Array"),s.bigUint64Array=o("BigUint64Array"),s.arrayBuffer=o("ArrayBuffer"),s.sharedArrayBuffer=o("SharedArrayBuffer"),s.dataView=o("DataView"),s.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,s.urlInstance=e=>o("URL")(e),s.urlString=e=>{if(!s.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},s.truthy=e=>Boolean(e),s.falsy=e=>!e,s.nan=e=>Number.isNaN(e);const a=new Set(["undefined","string","number","bigint","boolean","symbol"]);s.primitive=e=>s.null_(e)||a.has(typeof e),s.integer=e=>Number.isInteger(e),s.safeInteger=e=>Number.isSafeInteger(e),s.plainObject=e=>{if("Object"!==i(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})};const c=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"]);s.typedArray=e=>{const t=i(e);return void 0!==t&&c.has(t)};s.arrayLike=e=>!s.nullOrUndefined(e)&&!s.function_(e)&&(e=>s.safeInteger(e)&&e>=0)(e.length),s.inRange=(e,t)=>{if(s.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(s.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError("Invalid range: "+JSON.stringify(t))};const u=["innerHTML","ownerDocument","style","attributes","nodeValue"];s.domElement=e=>s.object(e)&&1===e.nodeType&&s.string(e.nodeName)&&!s.plainObject(e)&&u.every(t=>t in e),s.observable=e=>{var t,r,n,i;return!!e&&(e===(null===(r=(t=e)[Symbol.observable])||void 0===r?void 0:r.call(t))||e===(null===(i=(n=e)["@@observable"])||void 0===i?void 0:i.call(n)))},s.nodeStream=e=>s.object(e)&&s.function_(e.pipe)&&!s.observable(e),s.infinite=e=>e===1/0||e===-1/0;const l=e=>t=>s.integer(t)&&Math.abs(t%2)===e;s.evenInteger=l(0),s.oddInteger=l(1),s.emptyArray=e=>s.array(e)&&0===e.length,s.nonEmptyArray=e=>s.array(e)&&e.length>0,s.emptyString=e=>s.string(e)&&0===e.length,s.nonEmptyString=e=>s.string(e)&&e.length>0;s.emptyStringOrWhitespace=e=>s.emptyString(e)||(e=>s.string(e)&&!/\S/.test(e))(e),s.emptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&0===Object.keys(e).length,s.nonEmptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&Object.keys(e).length>0,s.emptySet=e=>s.set(e)&&0===e.size,s.nonEmptySet=e=>s.set(e)&&e.size>0,s.emptyMap=e=>s.map(e)&&0===e.size,s.nonEmptyMap=e=>s.map(e)&&e.size>0;const h=(e,t,r)=>{if(!s.function_(t))throw new TypeError("Invalid predicate: "+JSON.stringify(t));if(0===r.length)throw new TypeError("Invalid number of values");return e.call(r,t)};s.any=(e,...t)=>(s.array(e)?e:[e]).some(e=>h(Array.prototype.some,e,t)),s.all=(e,...t)=>h(Array.prototype.every,e,t);const g=(e,t,r)=>{if(!e)throw new TypeError(`Expected value which is \`${t}\`, received value of type \`${s(r)}\`.`)};t.assert={undefined:e=>g(s.undefined(e),"undefined",e),string:e=>g(s.string(e),"string",e),number:e=>g(s.number(e),"number",e),bigint:e=>g(s.bigint(e),"bigint",e),function_:e=>g(s.function_(e),"Function",e),null_:e=>g(s.null_(e),"null",e),class_:e=>g(s.class_(e),"Class",e),boolean:e=>g(s.boolean(e),"boolean",e),symbol:e=>g(s.symbol(e),"symbol",e),numericString:e=>g(s.numericString(e),"string with a number",e),array:e=>g(s.array(e),"Array",e),buffer:e=>g(s.buffer(e),"Buffer",e),nullOrUndefined:e=>g(s.nullOrUndefined(e),"null or undefined",e),object:e=>g(s.object(e),"Object",e),iterable:e=>g(s.iterable(e),"Iterable",e),asyncIterable:e=>g(s.asyncIterable(e),"AsyncIterable",e),generator:e=>g(s.generator(e),"Generator",e),asyncGenerator:e=>g(s.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>g(s.nativePromise(e),"native Promise",e),promise:e=>g(s.promise(e),"Promise",e),generatorFunction:e=>g(s.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>g(s.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>g(s.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>g(s.boundFunction(e),"Function",e),regExp:e=>g(s.regExp(e),"RegExp",e),date:e=>g(s.date(e),"Date",e),error:e=>g(s.error(e),"Error",e),map:e=>g(s.map(e),"Map",e),set:e=>g(s.set(e),"Set",e),weakMap:e=>g(s.weakMap(e),"WeakMap",e),weakSet:e=>g(s.weakSet(e),"WeakSet",e),int8Array:e=>g(s.int8Array(e),"Int8Array",e),uint8Array:e=>g(s.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>g(s.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>g(s.int16Array(e),"Int16Array",e),uint16Array:e=>g(s.uint16Array(e),"Uint16Array",e),int32Array:e=>g(s.int32Array(e),"Int32Array",e),uint32Array:e=>g(s.uint32Array(e),"Uint32Array",e),float32Array:e=>g(s.float32Array(e),"Float32Array",e),float64Array:e=>g(s.float64Array(e),"Float64Array",e),bigInt64Array:e=>g(s.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>g(s.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>g(s.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>g(s.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>g(s.dataView(e),"DataView",e),urlInstance:e=>g(s.urlInstance(e),"URL",e),urlString:e=>g(s.urlString(e),"string with a URL",e),truthy:e=>g(s.truthy(e),"truthy",e),falsy:e=>g(s.falsy(e),"falsy",e),nan:e=>g(s.nan(e),"NaN",e),primitive:e=>g(s.primitive(e),"primitive",e),integer:e=>g(s.integer(e),"integer",e),safeInteger:e=>g(s.safeInteger(e),"integer",e),plainObject:e=>g(s.plainObject(e),"plain object",e),typedArray:e=>g(s.typedArray(e),"TypedArray",e),arrayLike:e=>g(s.arrayLike(e),"array-like",e),domElement:e=>g(s.domElement(e),"Element",e),observable:e=>g(s.observable(e),"Observable",e),nodeStream:e=>g(s.nodeStream(e),"Node.js Stream",e),infinite:e=>g(s.infinite(e),"infinite number",e),emptyArray:e=>g(s.emptyArray(e),"empty array",e),nonEmptyArray:e=>g(s.nonEmptyArray(e),"non-empty array",e),emptyString:e=>g(s.emptyString(e),"empty string",e),nonEmptyString:e=>g(s.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>g(s.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>g(s.emptyObject(e),"empty object",e),nonEmptyObject:e=>g(s.nonEmptyObject(e),"non-empty object",e),emptySet:e=>g(s.emptySet(e),"empty set",e),nonEmptySet:e=>g(s.nonEmptySet(e),"non-empty set",e),emptyMap:e=>g(s.emptyMap(e),"empty map",e),nonEmptyMap:e=>g(s.nonEmptyMap(e),"non-empty map",e),evenInteger:e=>g(s.evenInteger(e),"even integer",e),oddInteger:e=>g(s.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>g(s.directInstanceOf(e,t),"T",e),inRange:(e,t)=>g(s.inRange(e,t),"in range",e),any:(e,...t)=>g(s.any(e,...t),"predicate returns truthy for any value",t),all:(e,...t)=>g(s.all(e,...t),"predicate returns truthy for all values",t)},Object.defineProperties(s,{class:{value:s.class_},function:{value:s.function_},null:{value:s.null_}}),Object.defineProperties(t.assert,{class:{value:t.assert.class_},function:{value:t.assert.function_},null:{value:t.assert.null_}}),t.default=s,e.exports=s,e.exports.default=s,e.exports.assert=t.assert},98298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(93121),i=Number(process.versions.node.split(".")[0]),o=e=>{const t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;const r=e=>{const r=e.emit.bind(e);e.emit=(n,...i)=>("error"===n&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=r),r(n,...i))};r(e),e.prependOnceListener("abort",()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)});const o=e=>{t.socket=Date.now(),t.phases.wait=t.socket-t.start;const r=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener("lookup",r),n.default(e,{connect:()=>{t.connect=Date.now(),void 0===t.lookup&&(e.removeListener("lookup",r),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?o(e.socket):e.prependOnceListener("socket",o);const s=()=>{var e;t.upload=Date.now(),t.phases.request=t.upload-(null!=(e=t.secureConnect)?e:t.connect)};return("boolean"==typeof e.writableFinished?!e.writableFinished:!e.finished||0!==e.outputSize||e.socket&&0!==e.socket.writableLength)?e.prependOnceListener("finish",s):s(),e.prependOnceListener("response",e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,r(e),e.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start})}),t};t.default=o,e.exports=o,e.exports.default=o},58069:(e,t,r)=>{"use strict";l.ifExists=function(e,t,r){return l(e,t,r).catch(()=>{})};const n=r(31669),i=r(46227),o=r(85622),s=r(97369),A=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,a={createPwshFile:!0,createCmdFile:s(),fs:r(35747)},c=new Map([[".js","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function u(e){const t={...a,...e},r=t.fs;return t.fs_={chmod:r.chmod?n.promisify(r.chmod):async()=>{},stat:n.promisify(r.stat),unlink:n.promisify(r.unlink),readFile:n.promisify(r.readFile),writeFile:n.promisify(r.writeFile)},t}async function l(e,t,r){const n=u(r);await n.fs_.stat(e),await async function(e,t,r){const n=await async function(e,t){const r=await t.fs_.readFile(e,"utf8"),n=r.trim().split(/\r*\n/)[0].match(A);if(!n){const t=o.extname(e).toLowerCase();return{program:c.get(t)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}(e,r);return await function(e,t){return i(o.dirname(e),{fs:t.fs})}(t,r),function(e,t,r,n){const i=u(n),o=[{generator:g,extension:""}];i.createCmdFile&&o.push({generator:h,extension:".cmd"});i.createPwshFile&&o.push({generator:f,extension:".ps1"});return Promise.all(o.map(n=>async function(e,t,r,n,i){const o=i.preserveSymlinks?"--preserve-symlinks":"",s=[r.additionalArgs,o].filter(e=>e).join(" ");return i=Object.assign({},i,{prog:r.program,args:s}),await function(e,t){return function(e,t){return t.fs_.unlink(e).catch(()=>{})}(e,t)}(t,i),await i.fs_.writeFile(t,n(e,t,i),"utf8"),function(e,t){return function(e,t){return t.fs_.chmod(e,493)}(e,t)}(t,i)}(e,t+n.extension,r,n.generator,i)))}(e,t,n,r)}(e,t,n)}function h(e,t,r){let n=o.relative(o.dirname(t),e).split("/").join("\\");const i=o.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`;let s,A=r.prog,a=r.args||"";const c=p(r.nodePath).win32;A?(s=`"%~dp0\\${A}.exe"`,n=i):(A=i,a="",n="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l=c?`@SET NODE_PATH=${c}\r\n`:"";return l+=s?`@IF EXIST ${s} (\r\n  ${s} ${a} ${n} ${u}%*\r\n) ELSE (\r\n  @SETLOCAL\r\n  @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n  ${A} ${a} ${n} ${u}%*\r\n)`:`@${A} ${a} ${n} ${u}%*\r\n`,l}function g(e,t,r){let n,i=o.relative(o.dirname(t),e),s=r.prog&&r.prog.split("\\").join("/");i=i.split("\\").join("/");const A=o.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`;let a=r.args||"";const c=p(r.nodePath).posix;s?(n=`"$basedir/${r.prog}"`,i=A):(s=A,a="",i="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l="#!/bin/sh\n";l+='basedir=$(dirname "$(echo "$0" | sed -e \'s,\\\\,/,g\')")\n\ncase `uname` in\n    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\nesac\n\n';const h=r.nodePath?`export NODE_PATH="${c}"\n`:"";return l+=n?h+`if [ -x ${n} ]; then\n`+`  exec ${n} ${a} ${i} ${u}"$@"\nelse \n`+`  exec ${s} ${a} ${i} ${u}"$@"\nfi\n`:`${h}${s} ${a} ${i} ${u}"$@"\nexit $?\n`,l}function f(e,t,r){let n=o.relative(o.dirname(t),e);const i=r.prog&&r.prog.split("\\").join("/");let s,A=i&&`"${i}$exe"`;n=n.split("\\").join("/");const a=o.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`;let c=r.args||"",u=p(r.nodePath);const l=u.win32,h=u.posix;A?(s=`"$basedir/${r.prog}$exe"`,n=a):(A=a,c="",n="");let g=r.progArgs?r.progArgs.join(" ")+" ":"",f='#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=""\n'+(r.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH="${l}"\n`:"")+'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n  # Fix case when both the Windows and Linux builds of Node\n  # are installed in the same directory\n  $exe=".exe"\n}';return r.nodePath&&(f=f+" else {\n"+`  $env:NODE_PATH="${h}"\n}`),f+="\n",f=s?f+"$ret=0\n"+`if (Test-Path ${s}) {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n`+`    $input | & ${s} ${c} ${n} ${g}$args\n  } else {\n`+`    & ${s} ${c} ${n} ${g}$args\n  }\n  $ret=$LASTEXITCODE\n} else {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n`+`    $input | & ${A} ${c} ${n} ${g}$args\n  } else {\n`+`    & ${A} ${c} ${n} ${g}$args\n  }\n  $ret=$LASTEXITCODE\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $ret\n":f+"# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n"+`  $input | & ${A} ${c} ${n} ${g}$args\n} else {\n`+`  & ${A} ${c} ${n} ${g}$args\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $LASTEXITCODE\n",f}function p(e){if(!e)return{win32:"",posix:""};let t="string"==typeof e?e.split(o.delimiter):Array.from(e),r={};for(let e=0;e<t.length;e++){const n=t[e].split("/").join("\\"),i=s()?t[e].split("\\").join("/").replace(/^([^:\\/]*):/,(e,t)=>"/mnt/"+t.toLowerCase()):t[e];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${i}`:i,r[e]={win32:n,posix:i}}return r}e.exports=l},27589:e=>{"use strict";const t=e.exports;e.exports.default=t;const r="[",n="]",i="",o=";",s="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?r+(e+1)+"G":r+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let n="";return e<0?n+=r+-e+"D":e>0&&(n+=r+e+"C"),t<0?n+=r+-t+"A":t>0&&(n+=r+t+"B"),n},t.cursorUp=(e=1)=>r+e+"A",t.cursorDown=(e=1)=>r+e+"B",t.cursorForward=(e=1)=>r+e+"C",t.cursorBackward=(e=1)=>r+e+"D",t.cursorLeft="[G",t.cursorSavePosition=s?"7":"[s",t.cursorRestorePosition=s?"8":"[u",t.cursorGetPosition="[6n",t.cursorNextLine="[E",t.cursorPrevLine="[F",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let r="";for(let n=0;n<e;n++)r+=t.eraseLine+(n<e-1?t.cursorUp():"");return e&&(r+=t.cursorLeft),r},t.eraseEndLine="[K",t.eraseStartLine="[1K",t.eraseLine="[2K",t.eraseDown="[J",t.eraseUp="[1J",t.eraseScreen="[2J",t.scrollUp="[S",t.scrollDown="[T",t.clearScreen="c",t.clearTerminal="win32"===process.platform?t.eraseScreen+"[0f":t.eraseScreen+"[3J[H",t.beep=i,t.link=(e,t)=>[n,"8",o,o,t,i,e,n,"8",o,o,i].join(""),t.image=(e,t={})=>{let r=n+"1337;File=inline=1";return t.width&&(r+=";width="+t.width),t.height&&(r+=";height="+t.height),!1===t.preserveAspectRatio&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+i},t.iTerm={setCwd:(e=process.cwd())=>`${n}50;CurrentDir=${e}${i}`,annotation:(e,t={})=>{let r=n+"1337;";const o=void 0!==t.x,s=void 0!==t.y;if((o||s)&&(!o||!s||void 0===t.length))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(o?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+i}}},81337:e=>{"use strict";e.exports=({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}},18483:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},o=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},s=e=>e,A=(e,t,r)=>[e,t,r],a=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let c;const u=(e,t,n,i)=>{void 0===c&&(c=r(2744));const o=i?10:0,s={};for(const[r,i]of Object.entries(c)){const A="ansi16"===r?"ansi":r;r===t?s[A]=e(n,o):"object"==typeof i&&(s[A]=e(i[t],o))}return s};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,i]of Object.entries(n))t[r]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[r]=t[r],e.set(i[0],i[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="[39m",t.bgColor.close="[49m",a(t.color,"ansi",()=>u(n,"ansi16",s,!1)),a(t.color,"ansi256",()=>u(i,"ansi256",s,!1)),a(t.color,"ansi16m",()=>u(o,"rgb",A,!1)),a(t.bgColor,"ansi",()=>u(n,"ansi16",s,!0)),a(t.bgColor,"ansi256",()=>u(i,"ansi256",s,!0)),a(t.bgColor,"ansi16m",()=>u(o,"rgb",A,!0)),t}})},39920:e=>{"use strict";e.exports=(...e)=>[...new Set([].concat(...e))]},86792:e=>{"use strict";function t(e,t,i){e instanceof RegExp&&(e=r(e,i)),t instanceof RegExp&&(t=r(t,i));var o=n(e,t,i);return o&&{start:o[0],end:o[1],pre:i.slice(0,o[0]),body:i.slice(o[0]+e.length,o[1]),post:i.slice(o[1]+t.length)}}function r(e,t){var r=t.match(e);return r?r[0]:null}function n(e,t,r){var n,i,o,s,A,a=r.indexOf(e),c=r.indexOf(t,a+1),u=a;if(a>=0&&c>0){for(n=[],o=r.length;u>=0&&!A;)u==a?(n.push(u),a=r.indexOf(e,u+1)):1==n.length?A=[n.pop(),c]:((i=n.pop())<o&&(o=i,s=c),c=r.indexOf(t,u+1)),u=a<c&&a>=0?a:c;n.length&&(A=[o,s])}return A}e.exports=t,t.range=n},73975:(e,t,r)=>{"use strict";var n=r(86897).Duplex;function i(e){if(!(this instanceof i))return new i(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);n.call(this)}r(31669).inherits(i,n),i.prototype._offset=function(e){var t,r=0,n=0;if(0===e)return[0,0];for(;n<this._bufs.length;n++){if(e<(t=r+this._bufs[n].length)||n==this._bufs.length-1)return[n,e-r];r=t}},i.prototype._reverseOffset=function(e){for(var t=e[0],r=e[1],n=0;n<t;n++)r+=this._bufs[n].length;return r},i.prototype.append=function(e){var t=0;if(Buffer.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof i)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(Buffer.from(e)));return this},i.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},i.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},i.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},i.prototype.end=function(e){n.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},i.prototype.get=function(e){if(!(e>this.length||e<0)){var t=this._offset(e);return this._bufs[t[0]][t[1]]}},i.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},i.prototype.copy=function(e,t,r,n){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof n||n>this.length)&&(n=this.length),r>=this.length)return e||Buffer.alloc(0);if(n<=0)return e||Buffer.alloc(0);var i,o,s=!!e,A=this._offset(r),a=n-r,c=a,u=s&&t||0,l=A[1];if(0===r&&n==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:Buffer.concat(this._bufs,this.length);for(o=0;o<this._bufs.length;o++)this._bufs[o].copy(e,u),u+=this._bufs[o].length;return e}if(c<=this._bufs[A[0]].length-l)return s?this._bufs[A[0]].copy(e,t,l,l+c):this._bufs[A[0]].slice(l,l+c);for(s||(e=Buffer.allocUnsafe(a)),o=A[0];o<this._bufs.length;o++){if(!(c>(i=this._bufs[o].length-l))){this._bufs[o].copy(e,u,l,l+c);break}this._bufs[o].copy(e,u,l),u+=i,c-=i,l&&(l=0)}return e},i.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return new i;var r=this._offset(e),n=this._offset(t),o=this._bufs.slice(r[0],n[0]+1);return 0==n[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,n[1]),0!=r[1]&&(o[0]=o[0].slice(r[1])),new i(o)},i.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},i.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},i.prototype.duplicate=function(){for(var e=0,t=new i;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},i.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},i.prototype.indexOf=function(e,t,r){if(void 0===r&&"string"==typeof t&&(r=t,t=void 0),"function"==typeof e||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if("number"==typeof e?e=Buffer.from([e]):"string"==typeof e?e=Buffer.from(e,r):e instanceof i?e=e.slice():Buffer.isBuffer(e)||(e=Buffer.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),0===e.length)return t>this.length?this.length:t;for(var n=this._offset(t),o=n[0],s=n[1];o<this._bufs.length;o++){for(var A=this._bufs[o];s<A.length;){if(A.length-s>=e.length){var a=A.indexOf(e,s);if(-1!==a)return this._reverseOffset([o,a]);s=A.length-e.length+1}else{var c=this._reverseOffset([o,s]);if(this._match(c,e))return c;s++}}s=0}return-1},i.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(var r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(var t in e)!function(t){i.prototype[t]=null===e[t]?function(e,r){return this.slice(e,e+r)[t](0,r)}:function(r){return this.slice(r,r+e[t])[t](0)}}(t)}(),e.exports=i},1289:(e,t,r)=>{var n=r(36547),i=r(86792);e.exports=function(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return function e(t,r){var o=[],s=i("{","}",t);if(!s||/\$$/.test(s.pre))return[t];var a,c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),d=c||l,C=s.body.indexOf(",")>=0;if(!d&&!C)return s.post.match(/,.*\}/)?(t=s.pre+"{"+s.body+A+s.post,e(t)):[t];if(d)a=s.body.split(/\.\./);else{if(1===(a=function e(t){if(!t)return[""];var r=[],n=i("{","}",t);if(!n)return t.split(",");var o=n.pre,s=n.body,A=n.post,a=o.split(",");a[a.length-1]+="{"+s+"}";var c=e(A);A.length&&(a[a.length-1]+=c.shift(),a.push.apply(a,c));return r.push.apply(r,a),r}(s.body)).length)if(1===(a=e(a[0],!1).map(h)).length)return(m=s.post.length?e(s.post,!1):[""]).map((function(e){return s.pre+a[0]+e}))}var E,I=s.pre,m=s.post.length?e(s.post,!1):[""];if(d){var y=u(a[0]),w=u(a[1]),B=Math.max(a[0].length,a[1].length),Q=3==a.length?Math.abs(u(a[2])):1,v=f;w<y&&(Q*=-1,v=p);var D=a.some(g);E=[];for(var b=y;v(b,w);b+=Q){var S;if(l)"\\"===(S=String.fromCharCode(b))&&(S="");else if(S=String(b),D){var k=B-S.length;if(k>0){var x=new Array(k+1).join("0");S=b<0?"-"+x+S.slice(1):x+S}}E.push(S)}}else E=n(a,(function(t){return e(t,!1)}));for(var F=0;F<E.length;F++)for(var M=0;M<m.length;M++){var N=I+E[F]+m[M];(!r||d||N)&&o.push(N)}return o}(function(e){return e.split("\\\\").join(o).split("\\{").join(s).split("\\}").join(A).split("\\,").join(a).split("\\.").join(c)}(e),!0).map(l)};var o="\0SLASH"+Math.random()+"\0",s="\0OPEN"+Math.random()+"\0",A="\0CLOSE"+Math.random()+"\0",a="\0COMMA"+Math.random()+"\0",c="\0PERIOD"+Math.random()+"\0";function u(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function l(e){return e.split(o).join("\\").split(s).join("{").split(A).join("}").split(a).join(",").split(c).join(".")}function h(e){return"{"+e+"}"}function g(e){return/^-?0\d/.test(e)}function f(e,t){return e<=t}function p(e,t){return e>=t}},12235:(e,t,r)=>{"use strict";const n=r(54900),i=r(44617),o=r(1495),s=r(425),A=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let e=A.create(n,t);Array.isArray(e)?r.push(...e):r.push(e)}else r=[].concat(A.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(r=[...new Set(r)]),r};A.parse=(e,t={})=>s(e,t),A.stringify=(e,t={})=>n("string"==typeof e?A.parse(e,t):e,t),A.compile=(e,t={})=>("string"==typeof e&&(e=A.parse(e,t)),i(e,t)),A.expand=(e,t={})=>{"string"==typeof e&&(e=A.parse(e,t));let r=o(e,t);return!0===t.noempty&&(r=r.filter(Boolean)),!0===t.nodupes&&(r=[...new Set(r)]),r},A.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?A.compile(e,t):A.expand(e,t),e.exports=A},44617:(e,t,r)=>{"use strict";const n=r(52169),i=r(4542);e.exports=(e,t={})=>{let r=(e,o={})=>{let s=i.isInvalidBrace(o),A=!0===e.invalid&&!0===t.escapeInvalid,a=!0===s||!0===A,c=!0===t.escapeInvalid?"\\":"",u="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return c+e.value;if("open"===e.type)return a?c+e.value:"(";if("close"===e.type)return a?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":a?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let r=i.reduce(e.nodes),o=n(...r,{...t,wrap:!1,toRegex:!0});if(0!==o.length)return r.length>1&&o.length>1?`(${o})`:o}if(e.nodes)for(let t of e.nodes)u+=r(t,e);return u};return r(e)}},5384:e=>{"use strict";e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},1495:(e,t,r)=>{"use strict";const n=r(52169),i=r(54900),o=r(4542),s=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return r?o.flatten(t).map(e=>`{${e}}`):t;for(let i of e)if(Array.isArray(i))for(let e of i)n.push(s(e,t,r));else for(let e of t)!0===r&&"string"==typeof e&&(e=`{${e}}`),n.push(Array.isArray(e)?s(i,e,r):i+e);return o.flatten(n)};e.exports=(e,t={})=>{let r=void 0===t.rangeLimit?1e3:t.rangeLimit,A=(e,a={})=>{e.queue=[];let c=a,u=a.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)c=c.parent,u=c.queue;if(e.invalid||e.dollar)return void u.push(s(u.pop(),i(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(s(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){let A=o.reduce(e.nodes);if(o.exceedsLimit(...A,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let a=n(...A,t);return 0===a.length&&(a=i(e,t)),u.push(s(u.pop(),a)),void(e.nodes=[])}let l=o.encloseBrace(e),h=e.queue,g=e;for(;"brace"!==g.type&&"root"!==g.type&&g.parent;)g=g.parent,h=g.queue;for(let t=0;t<e.nodes.length;t++){let r=e.nodes[t];"comma"!==r.type||"brace"!==e.type?"close"!==r.type?r.value&&"open"!==r.type?h.push(s(h.pop(),r.value)):r.nodes&&A(r,e):u.push(s(u.pop(),h,l)):(1===t&&h.push(""),h.push(""))}return h};return o.flatten(A(e))}},425:(e,t,r)=>{"use strict";const n=r(54900),{MAX_LENGTH:i,CHAR_BACKSLASH:o,CHAR_BACKTICK:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:c,CHAR_RIGHT_PARENTHESES:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_RIGHT_CURLY_BRACE:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_RIGHT_SQUARE_BRACKET:f,CHAR_DOUBLE_QUOTE:p,CHAR_SINGLE_QUOTE:d,CHAR_NO_BREAK_SPACE:C,CHAR_ZERO_WIDTH_NOBREAK_SPACE:E}=r(5384);e.exports=(e,t={})=>{if("string"!=typeof e)throw new TypeError("Expected a string");let r=t||{},I="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;if(e.length>I)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${I})`);let m,y={type:"root",input:e,nodes:[]},w=[y],B=y,Q=y,v=0,D=e.length,b=0,S=0;const k=()=>e[b++],x=e=>{if("text"===e.type&&"dot"===Q.type&&(Q.type="text"),!Q||"text"!==Q.type||"text"!==e.type)return B.nodes.push(e),e.parent=B,e.prev=Q,Q=e,e;Q.value+=e.value};for(x({type:"bos"});b<D;)if(B=w[w.length-1],m=k(),m!==E&&m!==C)if(m!==o)if(m!==f)if(m!==g)if(m!==c)if(m!==u)if(m!==p&&m!==d&&m!==s)if(m!==l)if(m!==h)if(m===A&&S>0){if(B.ranges>0){B.ranges=0;let e=B.nodes.shift();B.nodes=[e,{type:"text",value:n(B)}]}x({type:"comma",value:m}),B.commas++}else if(m===a&&S>0&&0===B.commas){let e=B.nodes;if(0===S||0===e.length){x({type:"text",value:m});continue}if("dot"===Q.type){if(B.range=[],Q.value+=m,Q.type="range",3!==B.nodes.length&&5!==B.nodes.length){B.invalid=!0,B.ranges=0,Q.type="text";continue}B.ranges++,B.args=[];continue}if("range"===Q.type){e.pop();let t=e[e.length-1];t.value+=Q.value+m,Q=t,B.ranges--;continue}x({type:"dot",value:m})}else x({type:"text",value:m});else{if("brace"!==B.type){x({type:"text",value:m});continue}let e="close";B=w.pop(),B.close=!0,x({type:e,value:m}),S--,B=w[w.length-1]}else{S++;let e=Q.value&&"$"===Q.value.slice(-1)||!0===B.dollar;B=x({type:"brace",open:!0,close:!1,dollar:e,depth:S,commas:0,ranges:0,nodes:[]}),w.push(B),x({type:"open",value:m})}else{let e,r=m;for(!0!==t.keepQuotes&&(m="");b<D&&(e=k());)if(e!==o){if(e===r){!0===t.keepQuotes&&(m+=e);break}m+=e}else m+=e+k();x({type:"text",value:m})}else{if("paren"!==B.type){x({type:"text",value:m});continue}B=w.pop(),x({type:"text",value:m}),B=w[w.length-1]}else B=x({type:"paren",nodes:[]}),w.push(B),x({type:"text",value:m});else{v++;let e;for(;b<D&&(e=k());)if(m+=e,e!==g)if(e!==o){if(e===f&&(v--,0===v))break}else m+=k();else v++;x({type:"text",value:m})}else x({type:"text",value:"\\"+m});else x({type:"text",value:(t.keepEscaping?m:"")+k()});do{if(B=w.pop(),"root"!==B.type){B.nodes.forEach(e=>{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=w[w.length-1],t=e.nodes.indexOf(B);e.nodes.splice(t,1,...B.nodes)}}while(w.length>0);return x({type:"eos"}),y}},54900:(e,t,r)=>{"use strict";const n=r(4542);e.exports=(e,t={})=>{let r=(e,i={})=>{let o=t.escapeInvalid&&n.isInvalidBrace(i),s=!0===e.invalid&&!0===t.escapeInvalid,A="";if(e.value)return(o||s)&&n.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)A+=r(t);return A};return r(e)}},4542:(e,t)=>{"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,r,n=1,i)=>!1!==i&&(!(!t.isInteger(e)||!t.isInteger(r))&&(Number(r)-Number(e))/Number(n)>=i),t.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||"open"===n.type||"close"===n.type)&&!0!==n.escaped&&(n.value="\\"+n.value,n.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0||!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0)),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],r=e=>{for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?r(i,t):void 0!==i&&t.push(i)}return t};return r(e),t}},76438:(e,t,r)=>{"use strict";const n=r(85622),{watch:i}=r(35747),{readFile:o}=r(35747).promises,{isIP:s}=r(11631),A="win32"===process.platform?n.join(process.env.SystemDrive,"Windows\\System32\\drivers\\etc\\hosts"):"/etc/hosts",a=/^(?:(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*(?:[A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])$/,c=e=>a.test(e),u={encoding:"utf8"},l=/\s+/g;class h{constructor({watching:e,customHostsPath:t=A}){this._hostsPath=t,this._error=null,this._watcher=null,this._watching=e,this._hosts={},this._init()}_init(){"string"==typeof this._hostsPath&&(this._promise=(async()=>{await this._update(),this._promise=null,this._error||this._watching&&(this._watcher=i(this._hostsPath,{persistent:!1},e=>{"change"===e?this._update():this._watcher.close()}),this._watcher.once("error",e=>{this._error=e,this._hosts={}}),this._watcher.once("close",()=>{this._init()}))})())}async _update(){try{let e=await o(this._hostsPath,u);e=e.split("\n"),this._hosts={};for(let t of e){t=t.replace(l," ").trim();const e=t.split(" "),r=s(e[0]);if(!r)continue;const n=e.shift();for(const t of e){if(!c(t))break;if(this._hosts[t]){let e=!1;for(const n of this._hosts[t])if(n.family===r){e=!0;break}if(e)continue}else this._hosts[t]=[],this._hosts[t].expires=1/0;this._hosts[t].push({address:n,family:r,expires:1/0,ttl:1/0})}}}catch(e){this._hosts={},this._error=e}}async get(e){if(this._promise&&await this._promise,this._error)throw this._error;return this._hosts[e]}}const g={};h.getResolver=({customHostsPath:e,watching:t})=>{void 0!==e&&"string"!=typeof e&&(e=!1);const r=`${e}:${t=Boolean(t)}`;let n=g[r];return n||(n=new h({customHostsPath:e,watching:t}),g[r]=n,n)},e.exports=h},43261:(e,t,r)=>{"use strict";const{V4MAPPED:n,ADDRCONFIG:i,promises:{Resolver:o},lookup:s}=r(40881),{promisify:A}=r(31669),a=r(12087),{getResolver:c}=r(76438),u=Symbol("cacheableLookupCreateConnection"),l=Symbol("cacheableLookupInstance"),h=e=>{if(!e||"function"!=typeof e.createConnection)throw new Error("Expected an Agent instance as the first argument")},g=()=>{let e=!1,t=!1;for(const r of Object.values(a.networkInterfaces()))for(const n of r)if(!n.internal&&("IPv6"===n.family?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},f={ttl:!0};class p{constructor({customHostsPath:e,watchingHostsFile:t=!1,cache:r=new Map,maxTtl:n=1/0,resolver:i=new o,fallbackTtl:a=1,errorTtl:u=.15}={}){this.maxTtl=n,this.fallbackTtl=a,this.errorTtl=u,this._cache=r,this._resolver=i,this._lookup=A(s),this._resolver instanceof o?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=A(this._resolver.resolve4.bind(this._resolver)),this._resolve6=A(this._resolver.resolve6.bind(this._resolver))),this._iface=g(),this._hostsResolver=c({customHostsPath:e,watching:t}),this._pending={},this._nextRemovalTime=!1,this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.updateInterfaceInfo(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,r){if("function"==typeof t?(r=t,t={}):"number"==typeof t&&(t={family:t}),!r)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(e=>{t.all?r(null,e):r(null,e.address,e.family,e.expires,e.ttl)},r)}async lookupAsync(e,t={}){"number"==typeof t&&(t={family:t});let r=await this.query(e);if(6===t.family){const e=r.filter(e=>6===e.family);0===e.length&&t.hints&n?(e=>{for(const t of e)t.address="::ffff:"+t.address,t.family=6})(r):r=e}else 4===t.family&&(r=r.filter(e=>4===e.family));if(t.hints&i){const{_iface:e}=this;r=r.filter(t=>6===t.family?e.has6:e.has4)}if(0===r.length){const t=new Error("ENOTFOUND "+e);throw t.code="ENOTFOUND",t.hostname=e,t}return t.all?r:1===r.length?r[0]:this._getEntry(r,e)}async query(e){let t=await this._hostsResolver.get(e)||await this._cache.get(e);if(!t){const r=this._pending[e];if(r)t=await r;else{const r=this.queryAndCache(e);this._pending[e]=r,t=await r}}return t=t.map(e=>({...e})),t}async queryAndCache(e){const[t,r]=await Promise.all([this._resolve4(e,f).catch(()=>[]),this._resolve6(e,f).catch(()=>[])]);let n=0;if(t)for(const e of t)e.family=4,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);if(r)for(const e of r)e.family=6,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);let i=[...t||[],...r||[]];if(0===i.length)try{i=await this._lookup(e,{all:!0});for(const e of i)e.ttl=this.fallbackTtl,e.expires=Date.now()+1e3*e.ttl;n=1e3*this.fallbackTtl}catch(t){throw delete this._pending[e],"ENOTFOUND"===t.code&&(n=1e3*this.errorTtl,i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),t}else n=1e3*Math.min(this.maxTtl,n);return this.maxTtl>0&&n>0&&(i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),delete this._pending[e],i}_getEntry(e,t){return e[0]}tick(){}_tick(e){if(!(this._cache instanceof Map)||void 0===e)return;const t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let e=1/0;const t=Date.now();for(const[r,{expires:n}]of this._cache)t>=n?this._cache.delete(r):n<e&&(e=n);e!==1/0&&this._tick(e-t)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(h(e),u in e)throw new Error("CacheableLookup has been already installed");e[u]=e.createConnection,e[l]=this,e.createConnection=(t,r)=>("lookup"in t||(t.lookup=this.lookup),e[u](t,r))}uninstall(e){if(h(e),e[u]){if(e[l]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[u],delete e[u],delete e[l]}}updateInterfaceInfo(){this._iface=g(),this._cache.clear()}clear(e){e?this._cache.delete(e):this._cache.clear()}}e.exports=p,e.exports.default=p},11200:(e,t,r)=>{"use strict";const n=r(28614),i=r(78835),o=r(19793),s=r(58764),A=r(86834),a=r(48491),c=r(55737),u=r(15751),l=r(72515);class h{constructor(e,t){if("function"!=typeof e)throw new TypeError("Parameter `request` must be a function");return this.cache=new l({uri:"string"==typeof t&&t,store:"string"!=typeof t&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,r)=>{let l;if("string"==typeof t)l=f(i.parse(t)),t={};else if(t instanceof i.URL)l=f(i.parse(t.toString())),t={};else{const[e,...r]=(t.path||"").split("?"),n=r.length>0?"?"+r.join("?"):"";l=f({...t,pathname:e,search:n})}(t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...g(l)}).headers=c(t.headers);const p=new n,d=o(i.format(l),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),C=`${t.method}:${d}`;let E=!1,I=!1;const m=t=>{I=!0;let n,i=!1;const o=new Promise(e=>{n=()=>{i||(i=!0,e())}}),c=e=>{if(E&&!t.forceRefresh){e.status=e.statusCode;const r=A.fromObject(E.cachePolicy).revalidatedPolicy(t,e);if(!r.modified){const t=r.policy.responseHeaders();(e=new a(E.statusCode,t,E.body,E.url)).cachePolicy=r.policy,e.fromCache=!0}}let n;e.fromCache||(e.cachePolicy=new A(t,e,t),e.fromCache=!1),t.cache&&e.cachePolicy.storable()?(n=u(e),(async()=>{try{const r=s.buffer(e);if(await Promise.race([o,new Promise(t=>e.once("end",t))]),i)return;const n=await r,A={cachePolicy:e.cachePolicy.toObject(),url:e.url,statusCode:e.fromCache?E.statusCode:e.statusCode,body:n};let a=t.strictTtl?e.cachePolicy.timeToLive():void 0;t.maxTtl&&(a=a?Math.min(a,t.maxTtl):t.maxTtl),await this.cache.set(C,A,a)}catch(e){p.emit("error",new h.CacheError(e))}})()):t.cache&&E&&(async()=>{try{await this.cache.delete(C)}catch(e){p.emit("error",new h.CacheError(e))}})(),p.emit("response",n||e),"function"==typeof r&&r(n||e)};try{const r=e(t,c);r.once("error",n),r.once("abort",n),p.emit("request",r)}catch(e){p.emit("error",new h.RequestError(e))}};return(async()=>{const e=async e=>{await Promise.resolve();const t=e.cache?await this.cache.get(C):void 0;if(void 0===t)return m(e);const n=A.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){const e=n.responseHeaders(),i=new a(t.statusCode,e,t.body,t.url);i.cachePolicy=n,i.fromCache=!0,p.emit("response",i),"function"==typeof r&&r(i)}else E=t,e.headers=n.revalidationHeaders(e),m(e)},n=e=>p.emit("error",new h.CacheError(e));this.cache.once("error",n),p.on("response",()=>this.cache.removeListener("error",n));try{await e(t)}catch(e){t.automaticFailover&&!I&&m(t),p.emit("error",new h.CacheError(e))}})(),p}}}function g(e){const t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function f(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}h.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}},h.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}},e.exports=h},54738:e=>{"use strict";const t=(e,t)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);if(0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";if(1===e.length)return t.pascalCase?e.toUpperCase():e.toLowerCase();return e!==e.toLowerCase()&&(e=(e=>{let t=!1,r=!1,n=!1;for(let i=0;i<e.length;i++){const o=e[i];t&&/[a-zA-Z]/.test(o)&&o.toUpperCase()===o?(e=e.slice(0,i)+"-"+e.slice(i),t=!1,n=r,r=!0,i++):r&&n&&/[a-zA-Z]/.test(o)&&o.toLowerCase()===o?(e=e.slice(0,i-1)+"-"+e.slice(i-1),n=r,r=!1,t=!0):(t=o.toLowerCase()===o&&o.toUpperCase()!==o,n=r,r=o.toUpperCase()===o&&o.toLowerCase()!==o)}return e})(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,t)=>t.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase()),r=e,t.pascalCase?r.charAt(0).toUpperCase()+r.slice(1):r;var r};e.exports=t,e.exports.default=t},95882:(e,t,r)=>{"use strict";const n=r(18483),{stdout:i,stderr:o}=r(59428),{stringReplaceAll:s,stringEncaseCRLFWithFirstIndex:A}=r(73327),a=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class u{constructor(e){return l(e)}}const l=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>I(t.template,...e),Object.setPrototypeOf(t,h.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=u,t.template};function h(e){return l(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=d(this,p(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=d(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const g=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of g)c[e]={get(){const{level:t}=this;return function(...r){const i=p(n.color[a[t]][e](...r),n.color.close,this._styler);return d(this,i,this._isEmpty)}}};for(const e of g){c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=p(n.bgColor[a[t]][e](...r),n.bgColor.close,this._styler);return d(this,i,this._isEmpty)}}}}const f=Object.defineProperties(()=>{},{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),p=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},d=(e,t,r)=>{const n=(...e)=>C(n,1===e.length?""+e[0]:e.join(" "));return n.__proto__=f,n._generator=e,n._styler=t,n._isEmpty=r,n},C=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=s(t,r.close,r.open),r=r.parent;const o=t.indexOf("\n");return-1!==o&&(t=A(t,i,n,o)),n+t+i};let E;const I=(e,...t)=>{const[n]=t;if(!Array.isArray(n))return t.join(" ");const i=t.slice(1),o=[n.raw[0]];for(let e=1;e<n.length;e++)o.push(String(i[e-1]).replace(/[{}\\]/g,"\\$&"),String(n.raw[e]));return void 0===E&&(E=r(80690)),E(e,o.join(""))};Object.defineProperties(h.prototype,c);const m=h();m.supportsColor=i,m.stderr=h({level:o?o.level:0}),m.stderr.supportsColor=o,m.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"},e.exports=m},80690:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function s(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function A(e,t){const r=[],o=t.trim().split(/\s*,\s*/g);let A;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(A=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(A[2].replace(i,(e,t,r)=>t?s(t):r))}else r.push(o)}return r}function a(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=A(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function c(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],i=[];let o=[];if(r.replace(t,(t,r,A,u,l,h)=>{if(r)o.push(s(r));else if(u){const t=o.join("");o=[],i.push(0===n.length?t:c(e,n)(t)),n.push({inverse:A,styles:a(u)})}else if(l){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");i.push(c(e,n)(o.join(""))),o=[],n.pop()}else o.push(h)}),i.push(o.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},73327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let o=0,s="";do{s+=e.substr(o,n-o)+t+r,o=n+i,n=e.indexOf(t,o)}while(-1!==n);return s+=e.substr(o),s},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,o="";do{const s="\r"===e[n-1];o+=e.substr(i,(s?n-1:n)-i)+t+(s?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return o+=e.substr(i),o}}},31059:(e,t,r)=>{var n=r(31669),i=r(24250);function o(){}o.prototype.match=function(e){var t,r,n,o,s=0,A=0,a=0,c=e.fInputBytes,u=e.fInputLen;e:for(t=0;t<u;t++){if(27==c[t]){t:for(n=0;n<this.escapeSequences.length;n++){var l=this.escapeSequences[n];if(!(u-t<l.length)){for(r=1;r<l.length;r++)if(l[r]!=c[t+r])continue t;s++,t+=l.length-1;continue e}}A++}14!=c[t]&&15!=c[t]||a++}return 0==s?null:(o=(100*s-100*A)/(s+A),s+a<5&&(o-=10*(5-(s+a))),o<=0?null:new i(e,this,o))},e.exports.ISO_2022_JP=function(){this.name=function(){return"ISO-2022-JP"},this.escapeSequences=[[27,36,40,67],[27,36,40,68],[27,36,64],[27,36,65],[27,36,66],[27,38,64],[27,40,66],[27,40,72],[27,40,73],[27,40,74],[27,46,65],[27,46,70]]},n.inherits(e.exports.ISO_2022_JP,o),e.exports.ISO_2022_KR=function(){this.name=function(){return"ISO-2022-KR"},this.escapeSequences=[[27,36,41,67]]},n.inherits(e.exports.ISO_2022_KR,o),e.exports.ISO_2022_CN=function(){this.name=function(){return"ISO-2022-CN"},this.escapeSequences=[[27,36,41,65],[27,36,41,71],[27,36,42,72],[27,36,41,69],[27,36,43,73],[27,36,43,74],[27,36,43,75],[27,36,43,76],[27,36,43,77],[27,78],[27,79]]},n.inherits(e.exports.ISO_2022_CN,o)},9044:(e,t,r)=>{var n=r(31669),i=r(24250);function o(){this.charValue=0,this.index=0,this.nextIndex=0,this.error=!1,this.done=!1,this.reset=function(){this.charValue=0,this.index=-1,this.nextIndex=0,this.error=!1,this.done=!1},this.nextByte=function(e){return this.nextIndex>=e.fRawLength?(this.done=!0,-1):255&e.fRawInput[this.nextIndex++]}}function s(){}function A(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0;return(r=e.charValue=e.nextByte(t))<0?e.done=!0:r<=141||(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=161&&r<=254?n<161&&(e.error=!0):142!=r?143==r&&(i=e.nextByte(t),e.charValue=e.charValue<<8|i,i<161&&(e.error=!0)):n<161&&(e.error=!0)),0==e.done}s.prototype.match=function(e){var t,r=0,n=0,s=0,A=0,a=0,c=new o;e:{for(c.reset();this.nextChar(c,e);){if(A++,c.error)s++;else{var u=4294967295&c.charValue;u<=255?0:(r++,null!=this.commonChars&&function e(t,r,n,i){if(i<n)return-1;var o=Math.floor(n+i>>>1);return r>t[o]?e(t,r,o+1,i):r<t[o]?e(t,r,n,o-1):o}(t=this.commonChars,u,0,t.length-1)>=0&&n++)}if(s>=2&&5*s>=r)break e}if(r<=10&&0==s)a=0==r&&A<10?0:10;else if(r<20*s)a=0;else if(null==this.commonChars)(a=30+r-20*s)>100&&(a=100);else{var l=90/Math.log(parseFloat(r)/4);a=Math.floor(Math.log(n+1)*l+10),a=Math.min(a,100)}}return 0==a?null:new i(e,this,a)},s.prototype.nextChar=function(e,t){},e.exports.sjis=function(){this.name=function(){return"Shift-JIS"},this.language=function(){return"ja"},this.commonChars=[33088,33089,33090,33093,33115,33129,33130,33141,33142,33440,33442,33444,33449,33450,33451,33453,33455,33457,33459,33461,33463,33469,33470,33473,33476,33477,33478,33480,33481,33484,33485,33500,33504,33511,33512,33513,33514,33520,33521,33601,33603,33614,33615,33624,33630,33634,33639,33653,33654,33673,33674,33675,33677,33683,36502,37882,38314],this.nextChar=function(e,t){var r;if(e.index=e.nextIndex,e.error=!1,(r=e.charValue=e.nextByte(t))<0)return!1;if(r<=127||r>160&&r<=223)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=r<<8|n,n>=64&&n<=127||n>=128&&n<=255||(e.error=!0),!0)}},n.inherits(e.exports.sjis,s),e.exports.big5=function(){this.name=function(){return"Big5"},this.language=function(){return"zh"},this.commonChars=[41280,41281,41282,41283,41287,41289,41333,41334,42048,42054,42055,42056,42065,42068,42071,42084,42090,42092,42103,42147,42148,42151,42177,42190,42193,42207,42216,42237,42304,42312,42328,42345,42445,42471,42583,42593,42594,42600,42608,42664,42675,42681,42707,42715,42726,42738,42816,42833,42841,42970,43171,43173,43181,43217,43219,43236,43260,43456,43474,43507,43627,43706,43710,43724,43772,44103,44111,44208,44242,44377,44745,45024,45290,45423,45747,45764,45935,46156,46158,46412,46501,46525,46544,46552,46705,47085,47207,47428,47832,47940,48033,48593,49860,50105,50240,50271],this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=e.charValue=e.nextByte(t);if(r<0)return!1;if(r<=127||255==r)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=e.charValue<<8|n,(n<64||127==n||255==n)&&(e.error=!0),!0)}},n.inherits(e.exports.big5,s),e.exports.euc_jp=function(){this.name=function(){return"EUC-JP"},this.language=function(){return"ja"},this.commonChars=[41377,41378,41379,41382,41404,41418,41419,41430,41431,42146,42148,42150,42152,42154,42155,42156,42157,42159,42161,42163,42165,42167,42169,42171,42173,42175,42176,42177,42179,42180,42182,42183,42184,42185,42186,42187,42190,42191,42192,42206,42207,42209,42210,42212,42216,42217,42218,42219,42220,42223,42226,42227,42402,42403,42404,42406,42407,42410,42413,42415,42416,42419,42421,42423,42424,42425,42431,42435,42438,42439,42440,42441,42443,42448,42453,42454,42455,42462,42464,42465,42469,42473,42474,42475,42476,42477,42483,47273,47572,47854,48072,48880,49079,50410,50940,51133,51896,51955,52188,52689],this.nextChar=A},n.inherits(e.exports.euc_jp,s),e.exports.euc_kr=function(){this.name=function(){return"EUC-KR"},this.language=function(){return"ko"},this.commonChars=[45217,45235,45253,45261,45268,45286,45293,45304,45306,45308,45496,45497,45511,45527,45538,45994,46011,46274,46287,46297,46315,46501,46517,46527,46535,46569,46835,47023,47042,47054,47270,47278,47286,47288,47291,47337,47531,47534,47564,47566,47613,47800,47822,47824,47857,48103,48115,48125,48301,48314,48338,48374,48570,48576,48579,48581,48838,48840,48863,48878,48888,48890,49057,49065,49088,49124,49131,49132,49144,49319,49327,49336,49338,49339,49341,49351,49356,49358,49359,49366,49370,49381,49403,49404,49572,49574,49590,49622,49631,49654,49656,50337,50637,50862,51151,51153,51154,51160,51173,51373],this.nextChar=A},n.inherits(e.exports.euc_kr,s),e.exports.gb_18030=function(){this.name=function(){return"GB18030"},this.language=function(){return"zh"},this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0,o=0;e:if((r=e.charValue=e.nextByte(t))<0)e.done=!0;else if(!(r<=128))if(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=129&&r<=254){if(n>=64&&n<=126||n>=80&&n<=254)break e;if(n>=48&&n<=57&&(i=e.nextByte(t))>=129&&i<=254&&(o=e.nextByte(t))>=48&&o<=57){e.charValue=e.charValue<<16|i<<8|o;break e}e.error=!0}else;return 0==e.done},this.commonChars=[41377,41378,41379,41380,41392,41393,41457,41459,41889,41900,41914,45480,45496,45502,45755,46025,46070,46323,46525,46532,46563,46767,46804,46816,47010,47016,47037,47062,47069,47284,47327,47350,47531,47561,47576,47610,47613,47821,48039,48086,48097,48122,48316,48347,48382,48588,48845,48861,49076,49094,49097,49332,49389,49611,49883,50119,50396,50410,50636,50935,51192,51371,51403,51413,51431,51663,51706,51889,51893,51911,51920,51926,51957,51965,52460,52728,52906,52932,52946,52965,53173,53186,53206,53442,53445,53456,53460,53671,53930,53938,53941,53947,53972,54211,54224,54269,54466,54490,54754,54992]},n.inherits(e.exports.gb_18030,s)},71216:(e,t,r)=>{var n=r(31669),i=r(24250);function o(e,t){this.byteIndex=0,this.ngram=0,this.ngramList=e,this.byteMap=t,this.ngramCount=0,this.hitCount=0,this.spaceChar,this.search=function(e,t){var r=0;return e[r+32]<=t&&(r+=32),e[r+16]<=t&&(r+=16),e[r+8]<=t&&(r+=8),e[r+4]<=t&&(r+=4),e[r+2]<=t&&(r+=2),e[r+1]<=t&&(r+=1),e[r]>t&&(r-=1),r<0||e[r]!=t?-1:r},this.lookup=function(e){this.ngramCount+=1,this.search(this.ngramList,e)>=0&&(this.hitCount+=1)},this.addByte=function(e){this.ngram=(this.ngram<<8)+(255&e)&16777215,this.lookup(this.ngram)},this.nextByte=function(e){return this.byteIndex>=e.fInputLen?-1:255&e.fInputBytes[this.byteIndex++]},this.parse=function(e,t){var r,n=!1;for(this.spaceChar=t;(r=this.nextByte(e))>=0;){var i=this.byteMap[r];0!=i&&(i==this.spaceChar&&n||this.addByte(i),n=i==this.spaceChar)}this.addByte(this.spaceChar);var o=this.hitCount/this.ngramCount;return o>.33?98:Math.floor(300*o)}}function s(e,t){this.fLang=e,this.fNGrams=t}function A(){}A.prototype.spaceChar=32,A.prototype.ngrams=function(){},A.prototype.byteMap=function(){},A.prototype.match=function(e){var t=this.ngrams();if(!(Array.isArray(t)&&t[0]instanceof s))return(a=new o(t,this.byteMap()).parse(e,this.spaceChar))<=0?null:new i(e,this,a);for(var r=-1,n=null,A=t.length-1;A>=0;A--){var a,c=t[A];(a=new o(c.fNGrams,this.byteMap()).parse(e,this.spaceChar))>r&&(r=a,n=c.fLang)}var u=this.name(e);return r<=0?null:new i(e,this,r,u,n)},e.exports.ISO_8859_1=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[new s("da",[2122086,2122100,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126697,2126708,2126953,2127465,6383136,6385184,6385252,6386208,6386720,6579488,6579566,6579570,6579572,6627443,6644768,6644837,6647328,6647396,6648352,6648421,6648608,6648864,6713202,6776096,6776174,6776178,6907749,6908960,6909543,7038240,7039845,7103858,7104871,7105637,7169380,7234661,7234848,7235360,7235429,7300896,7302432,7303712,7398688,7479396,7479397,7479411,7496992,7566437,7610483,7628064,7628146,7629164,7759218]),new s("de",[2122094,2122101,2122341,2122849,2122853,2122857,2123113,2123621,2123873,2124142,2125161,2126691,2126693,2127214,2127461,2127471,2127717,2128501,6448498,6514720,6514789,6514804,6578547,6579566,6579570,6580581,6627428,6627443,6646126,6646132,6647328,6648352,6648608,6776174,6841710,6845472,6906728,6907168,6909472,6909541,6911008,7104867,7105637,7217249,7217252,7217267,7234592,7234661,7234848,7235360,7235429,7238757,7479396,7496805,7497065,7562088,7566437,7610468,7628064,7628142,7628146,7695972,7695975,7759218]),new s("en",[2122016,2122094,2122341,2122607,2123375,2123873,2123877,2124142,2125153,2125670,2125938,2126437,2126689,2126708,2126952,2126959,2127720,6383972,6384672,6385184,6385252,6386464,6386720,6386789,6386793,6561889,6561908,6627425,6627443,6627444,6644768,6647412,6648352,6648608,6713202,6840692,6841632,6841714,6906912,6909472,6909543,6909806,6910752,7217249,7217268,7234592,7235360,7238688,7300640,7302688,7303712,7496992,7500576,7544929,7544948,7561577,7566368,7610484,7628146,7628897,7628901,7629167,7630624,7631648]),new s("es",[2122016,2122593,2122607,2122853,2123116,2123118,2123123,2124142,2124897,2124911,2125921,2125935,2125938,2126197,2126437,2126693,2127214,2128160,6365283,6365284,6365285,6365292,6365296,6382441,6382703,6384672,6386208,6386464,6515187,6516590,6579488,6579564,6582048,6627428,6627429,6627436,6646816,6647328,6647412,6648608,6648692,6907246,6943598,7102752,7106419,7217253,7238757,7282788,7282789,7302688,7303712,7303968,7364978,7435621,7495968,7497075,7544932,7544933,7544944,7562528,7628064,7630624,7693600,15953440]),new s("fr",[2122101,2122607,2122849,2122853,2122869,2123118,2123124,2124897,2124901,2125921,2125935,2125938,2126197,2126693,2126703,2127214,2154528,6385268,6386793,6513952,6516590,6579488,6579571,6583584,6627425,6627427,6627428,6627429,6627436,6627440,6627443,6647328,6647412,6648352,6648608,6648864,6649202,6909806,6910752,6911008,7102752,7103776,7103859,7169390,7217252,7234848,7238432,7238688,7302688,7302772,7304562,7435621,7479404,7496992,7544929,7544932,7544933,7544940,7544944,7610468,7628064,7629167,7693600,7696928]),new s("it",[2122092,2122600,2122607,2122853,2122857,2123040,2124140,2124142,2124897,2125925,2125938,2127214,6365283,6365284,6365296,6365299,6386799,6514789,6516590,6579564,6580512,6627425,6627427,6627428,6627433,6627436,6627440,6627443,6646816,6646892,6647412,6648352,6841632,6889569,6889571,6889572,6889587,6906144,6908960,6909472,6909806,7102752,7103776,7104800,7105633,7234848,7235872,7237408,7238757,7282785,7282788,7282793,7282803,7302688,7302757,7366002,7495968,7496992,7563552,7627040,7628064,7629088,7630624,8022383]),new s("nl",[2122092,2122341,2122849,2122853,2122857,2123109,2123118,2123621,2123877,2124142,2125153,2125157,2125680,2126949,2127457,2127461,2127471,2127717,2128489,6381934,6381938,6385184,6385252,6386208,6386720,6514804,6579488,6579566,6579570,6627426,6627446,6645102,6645106,6647328,6648352,6648435,6648864,6776174,6841716,6907168,6909472,6909543,6910752,7217250,7217252,7217253,7217256,7217263,7217270,7234661,7235360,7302756,7303026,7303200,7303712,7562088,7566437,7610468,7628064,7628142,7628146,7758190,7759218,7761775]),new s("no",[2122100,2122102,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126693,2126699,2126703,2126708,2126953,2127465,2155808,6385252,6386208,6386720,6579488,6579566,6579572,6627443,6644768,6647328,6647397,6648352,6648421,6648864,6648948,6713202,6776174,6908779,6908960,6909543,7038240,7039845,7103776,7105637,7169380,7169390,7217267,7234848,7235360,7235429,7237221,7300896,7302432,7303712,7398688,7479411,7496992,7565165,7566437,7610483,7628064,7628142,7628146,7629164,7631904,7631973,7759218]),new s("pt",[2122016,2122607,2122849,2122853,2122863,2123040,2123123,2125153,2125423,2125600,2125921,2125935,2125938,2126197,2126437,2126693,2127213,6365281,6365283,6365284,6365296,6382693,6382703,6384672,6386208,6386273,6386464,6516589,6516590,6578464,6579488,6582048,6582131,6627425,6627428,6647072,6647412,6648608,6648692,6906144,6906721,7169390,7238757,7238767,7282785,7282787,7282788,7282789,7282800,7303968,7364978,7435621,7495968,7497075,7544929,7544932,7544933,7544944,7566433,7628064,7630624,7693600,14905120,15197039]),new s("sv",[2122100,2122102,2122853,2123118,2123510,2123873,2124064,2124142,2124655,2125157,2125667,2126053,2126699,2126703,2126708,2126953,2127457,2127465,2155634,6382693,6385184,6385252,6386208,6386804,6514720,6579488,6579566,6579570,6579572,6644768,6647328,6648352,6648864,6747762,6776174,6909036,6909543,7037216,7105568,7169380,7217267,7233824,7234661,7235360,7235429,7235950,7299944,7302432,7302688,7398688,7479393,7479411,7495968,7564129,7565165,7610483,7627040,7628064,7628146,7629164,7631904,7758194,14971424,16151072])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1252":"ISO-8859-1"}},n.inherits(e.exports.ISO_8859_1,A),e.exports.ISO_8859_2=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,177,32,179,32,181,182,32,32,185,186,187,188,32,190,191,32,177,32,179,32,181,182,183,32,185,186,187,188,32,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[new s("cs",[2122016,2122361,2122863,2124389,2125409,2125413,2125600,2125668,2125935,2125938,2126072,2126447,2126693,2126703,2126708,2126959,2127392,2127481,2128481,6365296,6513952,6514720,6627440,6627443,6627446,6647072,6647533,6844192,6844260,6910836,6972704,7042149,7103776,7104800,7233824,7268640,7269408,7269664,7282800,7300206,7301737,7304052,7304480,7304801,7368548,7368554,7369327,7403621,7562528,7565173,7566433,7566441,7566446,7628146,7630573,7630624,7676016,12477728,14773997,15296623,15540336,15540339,15559968,16278884]),new s("hu",[2122016,2122106,2122341,2123111,2123116,2123365,2123873,2123887,2124147,2124645,2124649,2124790,2124901,2125153,2125157,2125161,2125413,2126714,2126949,2156915,6365281,6365291,6365293,6365299,6384416,6385184,6388256,6447470,6448494,6645625,6646560,6646816,6646885,6647072,6647328,6648421,6648864,6648933,6648948,6781216,6844263,6909556,6910752,7020641,7075450,7169383,7170414,7217249,7233899,7234923,7234925,7238688,7300985,7544929,7567973,7567988,7568097,7596391,7610465,7631904,7659891,8021362,14773792,15299360]),new s("pl",[2122618,2122863,2124064,2124389,2124655,2125153,2125161,2125409,2125417,2125668,2125935,2125938,2126697,2127648,2127721,2127737,2128416,2128481,6365296,6365303,6385257,6514720,6519397,6519417,6582048,6584937,6627440,6627443,6627447,6627450,6645615,6646304,6647072,6647401,6778656,6906144,6907168,6907242,7037216,7039264,7039333,7170405,7233824,7235937,7235941,7282800,7305057,7305065,7368556,7369313,7369327,7369338,7502437,7502457,7563754,7564137,7566433,7825765,7955304,7957792,8021280,8022373,8026400,15955744]),new s("ro",[2122016,2122083,2122593,2122597,2122607,2122613,2122853,2122857,2124897,2125153,2125925,2125938,2126693,2126819,2127214,2144873,2158190,6365283,6365284,6386277,6386720,6386789,6386976,6513010,6516590,6518048,6546208,6579488,6627425,6627427,6627428,6627440,6627443,6644e3,6646048,6646885,6647412,6648692,6889569,6889571,6889572,6889584,6907168,6908192,6909472,7102752,7103776,7106418,7107945,7234848,7238770,7303712,7365998,7496992,7497057,7501088,7594784,7628064,7631477,7660320,7694624,7695392,12216608,15625760])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1250":"ISO-8859-2"}},n.inherits(e.exports.ISO_8859_2,A),e.exports.ISO_8859_5=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255]},this.ngrams=function(){return[2150944,2151134,2151646,2152400,2152480,2153168,2153182,2153936,2153941,2154193,2154462,2154464,2154704,2154974,2154978,2155230,2156514,2158050,13688280,13689580,13884960,14015468,14015960,14016994,14017056,14164191,14210336,14211104,14216992,14407133,14407712,14413021,14536736,14538016,14538965,14538991,14540320,14540498,14557394,14557407,14557409,14602784,14602960,14603230,14604576,14605292,14605344,14606818,14671579,14672085,14672088,14672094,14733522,14734804,14803664,14803666,14803672,14806816,14865883,14868e3,14868192,14871584,15196894,15459616]},this.name=function(e){return"ISO-8859-5"},this.language=function(){return"ru"}},n.inherits(e.exports.ISO_8859_5,A),e.exports.ISO_8859_6=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]},this.ngrams=function(){return[2148324,2148326,2148551,2152932,2154986,2155748,2156006,2156743,13050055,13091104,13093408,13095200,13100064,13100227,13100231,13100232,13100234,13100236,13100237,13100239,13100243,13100249,13100258,13100261,13100264,13100266,13100320,13100576,13100746,13115591,13181127,13181153,13181156,13181157,13181160,13246663,13574343,13617440,13705415,13748512,13836487,14229703,14279913,14805536,14950599,14993696,15001888,15002144,15016135,15058720,15059232,15066656,15081671,15147207,15189792,15255524,15263264,15278279,15343815,15343845,15343848,15386912,15388960,15394336]},this.name=function(e){return"ISO-8859-6"},this.language=function(){return"ar"}},n.inherits(e.exports.ISO_8859_6,A),e.exports.ISO_8859_7=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,161,162,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,220,32,221,222,223,32,252,32,253,254,192,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,32,243,244,245,246,247,248,249,250,251,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[2154989,2154992,2155497,2155753,2156016,2156320,2157281,2157797,2158049,2158368,2158817,2158831,2158833,2159604,2159605,2159847,2159855,14672160,14754017,14754036,14805280,14806304,14807292,14807584,14936545,15067424,15069728,15147252,15199520,15200800,15278324,15327520,15330014,15331872,15393257,15393268,15525152,15540449,15540453,15540464,15589664,15725088,15725856,15790069,15790575,15793184,15868129,15868133,15868138,15868144,15868148,15983904,15984416,15987951,16048416,16048617,16050157,16050162,16050666,16052e3,16052213,16054765,16379168,16706848]},this.name=function(e){return e&&e.fC1Bytes?"windows-1253":"ISO-8859-7"},this.language=function(){return"el"}},n.inherits(e.exports.ISO_8859_7,A),e.exports.ISO_8859_8=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,32,32,32,32,32]},this.ngrams=function(){return[new s("he",[2154725,2154727,2154729,2154746,2154985,2154990,2155744,2155749,2155753,2155758,2155762,2155769,2155770,2157792,2157796,2158304,2159340,2161132,14744096,14950624,14950625,14950628,14950636,14950638,14950649,15001056,15065120,15068448,15068960,15071264,15071776,15278308,15328288,15328762,15329773,15330592,15331104,15333408,15333920,15474912,15474916,15523872,15524896,15540448,15540449,15540452,15540460,15540462,15540473,15655968,15671524,15787040,15788320,15788525,15920160,16261348,16312813,16378912,16392416,16392417,16392420,16392428,16392430,16392441]),new s("he",[2154725,2154732,2155753,2155756,2155758,2155760,2157040,2157810,2157817,2158053,2158057,2158565,2158569,2160869,2160873,2161376,2161381,2161385,14688484,14688492,14688493,14688506,14738464,14738916,14740512,14741024,14754020,14754029,14754042,14950628,14950633,14950636,14950637,14950639,14950648,14950650,15002656,15065120,15066144,15196192,15327264,15327520,15328288,15474916,15474925,15474938,15528480,15530272,15591913,15591920,15591928,15605988,15605997,15606010,15655200,15655968,15918112,16326884,16326893,16326906,16376864,16441376,16442400,16442857])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1255":"ISO-8859-8"},this.language=function(){return"he"}},n.inherits(e.exports.ISO_8859_8,A),e.exports.ISO_8859_9=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,105,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2122337,2122345,2122357,2122849,2122853,2123621,2123873,2124140,2124641,2124655,2125153,2125676,2126689,2126945,2127461,2128225,6365282,6384416,6384737,6384993,6385184,6385405,6386208,6386273,6386429,6386685,6388065,6449522,6578464,6579488,6580512,6627426,6627435,6644841,6647328,6648352,6648425,6648681,6909029,6909472,6909545,6910496,7102830,7102834,7103776,7103858,7217249,7217250,7217259,7234657,7234661,7234848,7235872,7235950,7273760,7498094,7535982,7759136,7954720,7958386,16608800,16608868,16609021,16642301]},this.name=function(e){return e&&e.fC1Bytes?"windows-1254":"ISO-8859-9"},this.language=function(){return"tr"}},n.inherits(e.exports.ISO_8859_9,A),e.exports.windows_1251=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,144,131,32,131,32,32,32,32,32,32,154,32,156,157,158,159,144,32,32,32,32,32,32,32,32,32,154,32,156,157,158,159,32,162,162,188,32,180,32,32,184,32,186,32,32,32,32,191,32,32,179,179,180,181,32,32,184,32,186,32,188,190,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2155040,2155246,2155758,2156512,2156576,2157280,2157294,2158048,2158053,2158305,2158574,2158576,2158816,2159086,2159090,2159342,2160626,2162162,14740968,14742268,14937632,15068156,15068648,15069682,15069728,15212783,15263008,15263776,15269664,15459821,15460384,15465709,15589408,15590688,15591653,15591679,15592992,15593186,15605986,15605999,15606001,15655456,15655648,15655918,15657248,15657980,15658016,15659506,15724267,15724773,15724776,15724782,15786210,15787492,15856352,15856354,15856360,15859488,15918571,15920672,15920880,15924256,16249582,16512288]},this.name=function(e){return"windows-1251"},this.language=function(){return"ru"}},n.inherits(e.exports.windows_1251,A),e.exports.windows_1256=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,129,32,131,32,32,32,32,136,32,138,32,156,141,142,143,144,32,32,32,32,32,32,32,152,32,154,32,156,32,32,159,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,32,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,32,32,32,244,32,32,32,32,249,32,251,252,32,32,255]},this.ngrams=function(){return[2148321,2148324,2148551,2153185,2153965,2154977,2155492,2156231,13050055,13091104,13093408,13095200,13099296,13099459,13099463,13099464,13099466,13099468,13099469,13099471,13099475,13099482,13099486,13099491,13099494,13099501,13099808,13100064,13100234,13115591,13181127,13181149,13181153,13181155,13181158,13246663,13574343,13617440,13705415,13748512,13836487,14295239,14344684,14544160,14753991,14797088,14806048,14806304,14885063,14927648,14928160,14935072,14950599,15016135,15058720,15124449,15131680,15474887,15540423,15540451,15540454,15583520,15585568,15590432]},this.name=function(e){return"windows-1256"},this.language=function(){return"ar"}},n.inherits(e.exports.windows_1256,A),e.exports.KOI8_R=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223]},this.ngrams=function(){return[2147535,2148640,2149313,2149327,2150081,2150085,2150338,2150607,2150610,2151105,2151375,2151380,2151631,2152224,2152399,2153153,2153684,2154196,12701385,12702936,12963032,12963529,12964820,12964896,13094688,13181136,13223200,13224224,13226272,13419982,13420832,13424846,13549856,13550880,13552069,13552081,13553440,13553623,13574352,13574355,13574359,13617103,13617696,13618392,13618464,13620180,13621024,13621185,13684684,13685445,13685449,13685455,13812183,13813188,13881632,13882561,13882569,13882583,13944268,13946656,13946834,13948960,14272544,14603471]},this.name=function(e){return"KOI8-R"},this.language=function(){return"ru"}},n.inherits(e.exports.KOI8_R,A)},48794:(e,t,r)=>{"use strict";var n=r(31669),i=r(24250);function o(){}e.exports.UTF_16BE=function(){this.name=function(){return"UTF-16BE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&254==(255&t[0])&&255==(255&t[1])?new i(e,this,100):null}},e.exports.UTF_16LE=function(){this.name=function(){return"UTF-16LE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&255==(255&t[0])&&254==(255&t[1])?t.length>=4&&0==t[2]&&0==t[3]?null:new i(e,this,100):null}},o.prototype.match=function(e){var t=e.fRawInput,r=e.fRawLength/4*4,n=0,o=0,s=!1,A=0;if(0==r)return null;65279==this.getChar(t,0)&&(s=!0);for(var a=0;a<r;a+=4){var c=this.getChar(t,a);c<0||c>=1114111||c>=55296&&c<=57343?o+=1:n+=1}return s&&0==o?A=100:s&&n>10*o?A=80:n>3&&0==o?A=100:n>0&&0==o?A=80:n>10*o&&(A=25),0==A?null:new i(e,this,A)},e.exports.UTF_32BE=function(){this.name=function(){return"UTF-32BE"},this.getChar=function(e,t){return(255&e[t+0])<<24|(255&e[t+1])<<16|(255&e[t+2])<<8|255&e[t+3]}},n.inherits(e.exports.UTF_32BE,o),e.exports.UTF_32LE=function(){this.name=function(){return"UTF-32LE"},this.getChar=function(e,t){return(255&e[t+3])<<24|(255&e[t+2])<<16|(255&e[t+1])<<8|255&e[t+0]}},n.inherits(e.exports.UTF_32LE,o)},76023:(e,t,r)=>{var n=r(24250);e.exports=function(){this.name=function(){return"UTF-8"},this.match=function(e){var t,r=!1,i=0,o=0,s=e.fRawInput,A=0;e.fRawLength>=3&&239==(255&s[0])&&187==(255&s[1])&&191==(255&s[2])&&(r=!0);for(var a=0;a<e.fRawLength;a++){var c=s[a];if(0!=(128&c)){if(192==(224&c))A=1;else if(224==(240&c))A=2;else if(240==(248&c))A=3;else{if(++o>5)break;A=0}for(;!(++a>=e.fRawLength);){if(128!=(192&s[a])){o++;break}if(0==--A){i++;break}}}}if(t=0,r&&0==o)t=100;else if(r&&i>10*o)t=80;else if(i>3&&0==o)t=100;else if(i>0&&0==o)t=80;else if(0==i&&0==o)t=10;else{if(!(i>10*o))return null;t=25}return new n(e,this,t)}}},80848:function(e,t,r){var n=r(35747),i=r(76023),o=r(48794),s=r(9044),A=r(71216),a=r(31059),c=this,u=[new i,new o.UTF_16BE,new o.UTF_16LE,new o.UTF_32BE,new o.UTF_32LE,new s.sjis,new s.big5,new s.euc_jp,new s.euc_kr,new s.gb_18030,new a.ISO_2022_JP,new a.ISO_2022_KR,new a.ISO_2022_CN,new A.ISO_8859_1,new A.ISO_8859_2,new A.ISO_8859_5,new A.ISO_8859_6,new A.ISO_8859_7,new A.ISO_8859_8,new A.ISO_8859_9,new A.windows_1251,new A.windows_1256,new A.KOI8_R];e.exports.detect=function(e,t){for(var r=[],n=0;n<256;n++)r[n]=0;for(n=e.length-1;n>=0;n--)r[255&e[n]]++;var i=!1;for(n=128;n<=159;n+=1)if(0!=r[n]){i=!0;break}var o={fByteStats:r,fC1Bytes:i,fRawInput:e,fRawLength:e.length,fInputBytes:e,fInputLen:e.length},s=u.map((function(e){return e.match(o)})).filter((function(e){return!!e})).sort((function(e,t){return t.confidence-e.confidence}));return t&&!0===t.returnAllMatches?s:s.length>0?s[0].name:null},e.exports.detectFile=function(e,t,r){var i;"function"==typeof t&&(r=t,t=void 0);var o=function(e,o){if(i&&n.closeSync(i),e)return r(e,null);r(null,c.detect(o,t))};if(t&&t.sampleSize)return i=n.openSync(e,"r"),sample=Buffer.allocUnsafe(t.sampleSize),void n.read(i,sample,0,t.sampleSize,null,(function(e){o(e,sample)}));n.readFile(e,o)},e.exports.detectFileSync=function(e,t){if(t&&t.sampleSize){var r=n.openSync(e,"r"),i=Buffer.allocUnsafe(t.sampleSize);return n.readSync(r,i,0,t.sampleSize),n.closeSync(r),c.detect(i,t)}return c.detect(n.readFileSync(e),t)},e.exports.detectAll=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detect(e,t)},e.exports.detectFileAll=function(e,t,r){"function"==typeof t&&(r=t,t=void 0),"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFile(e,t,r)},e.exports.detectFileAllSync=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFileSync(e,t)}},24250:e=>{e.exports=function(e,t,r,n,i){this.confidence=r,this.name=n||t.name(e),this.lang=i}},82758:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),o=n.lchown?"lchown":"chown",s=n.lchownSync?"lchownSync":"chownSync",A=process.version;let a=(e,t,r)=>n.readdir(e,t,r);/^v4\./.test(A)&&(a=(e,t,r)=>n.readdir(e,r));const c=(e,t,r,s,A)=>{if("string"==typeof t)return n.lstat(i.resolve(e,t),(n,i)=>{if(n)return A(n);i.name=t,c(e,i,r,s,A)});t.isDirectory()?u(i.resolve(e,t.name),r,s,a=>{if(a)return A(a);n[o](i.resolve(e,t.name),r,s,A)}):n[o](i.resolve(e,t.name),r,s,A)},u=(e,t,r,i)=>{a(e,{withFileTypes:!0},(s,A)=>{if(s&&"ENOTDIR"!==s.code&&"ENOTSUP"!==s.code)return i(s);if(s||!A.length)return n[o](e,t,r,i);let a=A.length,u=null;const l=s=>{if(!u)return s?i(u=s):0==--a?n[o](e,t,r,i):void 0};A.forEach(n=>c(e,n,t,r,l))})},l=(e,t,r)=>{let o;try{o=((e,t)=>n.readdirSync(e,t))(e,{withFileTypes:!0})}catch(i){if(i&&"ENOTDIR"===i.code&&"ENOTSUP"!==i.code)return n[s](e,t,r);throw i}return o.length&&o.forEach(o=>((e,t,r,o)=>{if("string"==typeof t){const r=n.lstatSync(i.resolve(e,t));r.name=t,t=r}t.isDirectory()&&l(i.resolve(e,t.name),r,o),n[s](i.resolve(e,t.name),r,o)})(e,o,t,r)),n[s](e,t,r)};e.exports=u,u.sync=l},5864:(e,t,r)=>{"use strict";var n=r(85832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:n.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,n.forEach((function(e){var r=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=r,r)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},85832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},61696:(e,t,r)=>{"use strict";const n=r(3390);let i=!1;t.show=(e=process.stderr)=>{e.isTTY&&(i=!1,e.write("[?25h"))},t.hide=(e=process.stderr)=>{e.isTTY&&(n(),i=!0,e.write("[?25l"))},t.toggle=(e,r)=>{void 0!==e&&(i=e),i?t.show(r):t.hide(r)}},17945:(e,t,r)=>{"use strict";e.exports=function(e){var t=function(e){var t={defaultWidth:0,output:process.stdout,tty:r(33867)};return e?(Object.keys(t).forEach((function(r){e[r]||(e[r]=t[r])})),e):t}(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){var n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&0!==n)return n}return t.defaultWidth}},17278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this.help=!1}static getMeta(e){const t=e.constructor;return t.meta=Object.prototype.hasOwnProperty.call(t,"meta")?t.meta:{definitions:[],transformers:[(e,t)=>{for(const{name:r,value:n}of e.options)"-h"!==r&&"--help"!==r||(t.help=n)}]}}static resolveMeta(e){const t=[],n=[];for(let i=e;i instanceof r;i=i.__proto__){const e=this.getMeta(i);for(const r of e.definitions)t.push(r);for(const t of e.transformers)n.push(t)}return{definitions:t,transformers:n}}static registerDefinition(e,t){this.getMeta(e).definitions.push(t)}static registerTransformer(e,t){this.getMeta(e).transformers.push(t)}static addPath(...e){this.Path(...e)(this.prototype,"execute")}static addOption(e,t){t(this.prototype,e)}static Path(...e){return(t,r)=>{this.registerDefinition(t,t=>{t.addPath(e)})}}static Boolean(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:0,hidden:t,allowBinding:!1})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=o)})}}static String(e={required:!0},{tolerateBoolean:t=!1,hidden:r=!1}={}){return(n,i)=>{if("string"==typeof e){const o=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:o,arity:t?0:1,hidden:r})}),this.registerTransformer(n,(e,t)=>{for(const{name:r,value:n}of e.options)o.includes(r)&&(t[i]=n)})}else this.registerDefinition(n,t=>{t.addPositional({name:i,required:e.required})}),this.registerTransformer(n,(e,t)=>{e.positionals.length>0&&(t[i]=e.positionals.shift().value)})}}static Array(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:1,hidden:t})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=t[n]||[],t[n].push(o))})}}static Rest({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addRest({name:r,required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Proxy({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addProxy({required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Usage(e){return e}static Schema(e){return e}async validateAndExecute(){const e=this.constructor.schema;if(void 0!==e)try{await e.validate(this)}catch(e){throw"ValidationError"===e.name&&(e.clipanion={type:"usage"}),e}const t=await this.execute();return void 0!==t?t:0}}
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+function n(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}r.Entries={};class i extends r{async execute(){this.context.stdout.write(this.cli.usage(null))}}n([r.Path("--help"),r.Path("-h")],i.prototype,"execute",null);class o extends r{async execute(){var e;this.context.stdout.write((null!==(e=this.cli.binaryVersion)&&void 0!==e?e:"<unknown>")+"\n")}}n([r.Path("--version"),r.Path("-v")],o.prototype,"execute",null);const s=/^(-h|--help)(?:=([0-9]+))?$/,A=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,a=/^-[a-zA-Z]{2,}$/,c=/^([^=]+)=([\s\S]*)$/,u="1"===process.env.DEBUG_CLI;class l extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}}class h extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",0===this.candidates.length)this.message="Command not found, but we're not sure what's the alternative.";else if(1===this.candidates.length&&null!==this.candidates[0].reason){const[{usage:e,reason:t}]=this.candidates;this.message=`${t}\n\n$ ${e}`}else if(1===this.candidates.length){const[{usage:t}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${t}\n${f(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:e},t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}class g extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find who to pick amongst the following alternatives:\n\n${this.usages.map((e,t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}const f=e=>"While running "+e.filter(e=>"\0"!==e).map(e=>{const t=JSON.stringify(e);return e.match(/\s/)||0===e.length||t!==`"${e}"`?t:e}).join(" ");function p(e){u&&console.log(e)}function d(e,t){return e.nodes.push(t),e.nodes.length-1}function C(e,t,r=!1){p("Running a vm on "+JSON.stringify(t));let n=[{node:0,state:{candidateUsage:null,errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];!function(e,{prefix:t=""}={}){p(t+"Nodes are:");for(let r=0;r<e.nodes.length;++r)p(`${t}  ${r}: ${JSON.stringify(e.nodes[r])}`)}(e,{prefix:"  "});const i=["",...t];for(let o=0;o<i.length;++o){const s=i[o];p("  Processing "+JSON.stringify(s));const A=[];for(const{node:t,state:a}of n){p("    Current node is "+t);const n=e.nodes[t];if(2===t){A.push({node:t,state:a});continue}console.assert(0===n.shortcuts.length,"Shortcuts should have been eliminated by now");const c=Object.prototype.hasOwnProperty.call(n.statics,s);if(!r||o<i.length-1||c)if(c){const e=n.statics[s];for(const{to:t,reducer:r}of e)A.push({node:t,state:void 0!==r?b(x,r,a,s):a}),p(`      Static transition to ${t} found`)}else p("      No static transition found");else{let e=!1;for(const t of Object.keys(n.statics))if(t.startsWith(s)){if(s===t)for(const{to:e,reducer:r}of n.statics[t])A.push({node:e,state:void 0!==r?b(x,r,a,s):a}),p(`      Static transition to ${e} found`);else for(const{to:e,reducer:r}of n.statics[t])A.push({node:e,state:Object.assign(Object.assign({},a),{remainder:t.slice(s.length)})}),p(`      Static transition to ${e} found (partial match)`);e=!0}e||p("      No partial static transition found")}if("\0"!==s)for(const[e,{to:t,reducer:r}]of n.dynamics)b(k,e,a,s)&&(A.push({node:t,state:void 0!==r?b(x,r,a,s):a}),p(`      Dynamic transition to ${t} found (via ${e})`))}if(0===A.length)throw new h(t,n.filter(({node:e})=>2!==e).map(({state:e})=>({usage:e.candidateUsage,reason:null})));if(A.every(({node:e})=>2===e))throw new h(t,A.map(({state:e})=>({usage:e.candidateUsage,reason:e.errorMessage})));n=m(A)}if(n.length>0){p("  Results:");for(const e of n)p(`    - ${e.node} -> ${JSON.stringify(e.state)}`)}else p("  No results");return n}function E(e,t){if(null!==t.selectedIndex)return!0;if(Object.prototype.hasOwnProperty.call(e.statics,"\0"))for(const{to:t}of e.statics["\0"])if(1===t)return!0;return!1}function I(e,t){return function(e,t){const r=t.filter(e=>null!==e.selectedIndex);if(0===r.length)throw new Error;let n=0;for(const e of r)e.path.length>n&&(n=e.path.length);const i=r.filter(e=>e.path.length===n),o=e=>e.positionals.filter(({extra:e})=>!e).length+e.options.length,s=i.map(e=>({state:e,positionalCount:o(e)}));let A=0;for(const{positionalCount:e}of s)e>A&&(A=e);const a=function(e){const t=[],r=[];for(const n of e)-1===n.selectedIndex?r.push(...n.options):t.push(n);r.length>0&&t.push({candidateUsage:null,errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:r,remainder:null,selectedIndex:-1});return t}(s.filter(({positionalCount:e})=>e===A).map(({state:e})=>e));if(a.length>1)throw new g(e,a.map(e=>e.candidateUsage));return a[0]}(t,C(e,[...t,"\0"]).map(({state:e})=>e))}function m(e){let t=0;for(const{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:e})=>e.path.length===t)}function y(e){return 1===e||2===e}function w(e,t=0){return{to:y(e.to)?e.to:e.to>2?e.to+t-2:e.to+t,reducer:e.reducer}}function B(e,t=0){const r={dynamics:[],shortcuts:[],statics:{}};for(const[n,i]of e.dynamics)r.dynamics.push([n,w(i,t)]);for(const n of e.shortcuts)r.shortcuts.push(w(n,t));for(const[n,i]of Object.entries(e.statics))r.statics[n]=i.map(e=>w(e,t));return r}function Q(e,t,r,n,i){e.nodes[t].dynamics.push([r,{to:n,reducer:i}])}function v(e,t,r,n){e.nodes[t].shortcuts.push({to:r,reducer:n})}function D(e,t,r,n,i){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,r)?e.nodes[t].statics[r]:e.nodes[t].statics[r]=[]).push({to:n,reducer:i})}function b(e,t,r,n){if(Array.isArray(t)){const[i,...o]=t;return e[i](r,n,...o)}return e[t](r,n)}function S(e,t){const r=Array.isArray(e)?k[e[0]]:k[e];if(void 0===r.suggest)return null;const n=Array.isArray(e)?e.slice(1):[];return r.suggest(t,...n)}const k={always:()=>!0,isNotOptionLike:(e,t)=>e.ignoreOptions||!t.startsWith("-"),isOption:(e,t,r,n)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,r)=>!e.ignoreOptions&&a.test(t)&&[...t.slice(1)].every(e=>r.includes("-"+e)),isBoundOption:(e,t,r,n)=>{const i=t.match(c);return!e.ignoreOptions&&!!i&&A.test(i[1])&&r.includes(i[1])&&n.filter(e=>e.names.includes(i[1])).every(e=>e.allowBinding)},isNegatedOption:(e,t,r)=>!e.ignoreOptions&&t==="--no-"+r.slice(2),isHelp:(e,t)=>!e.ignoreOptions&&s.test(t),isUnsupportedOption:(e,t,r)=>!e.ignoreOptions&&t.startsWith("-")&&A.test(t)&&!r.includes(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!A.test(t)};k.isOption.suggest=(e,t,r=!0)=>r?null:[t];const x={setCandidateUsage:(e,t,r)=>Object.assign(Object.assign({},e),{candidateUsage:r}),setSelectedIndex:(e,t,r)=>Object.assign(Object.assign({},e),{selectedIndex:r}),pushBatch:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat([...t.slice(1)].map(e=>({name:"-"+e,value:!0})))}),pushBound:(e,t)=>{const[,r,n]=t.match(c);return Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:n})})},pushPath:(e,t)=>Object.assign(Object.assign({},e),{path:e.path.concat(t)}),pushPositional:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!1})}),pushExtra:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!0})}),pushTrue:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:!0})}),pushFalse:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:!1})}),pushUndefined:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:void 0})}),setStringValue:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.slice(0,-1).concat(Object.assign(Object.assign({},e.options[e.options.length-1]),{value:t}))}),inhibateOptions:e=>Object.assign(Object.assign({},e),{ignoreOptions:!0}),useHelp:(e,t,r)=>{const[,n,i]=t.match(s);return void 0!==i?Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)}]})},setError:(e,t,r)=>"\0"===t?Object.assign(Object.assign({},e),{errorMessage:r+"."}):Object.assign(Object.assign({},e),{errorMessage:`${r} ("${t}").`})},F=Symbol();class M{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:r=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:r,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===F)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");t||this.arity.extra===F?this.arity.extra!==F&&0===this.arity.extra.length?this.arity.leading.push(e):this.arity.trailing.push(e):this.arity.extra.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===F)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let r=0;r<t;++r)this.addPositional({name:e});this.arity.extra=F}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,arity:t=0,hidden:r=!1,allowBinding:n=!0}){this.allOptionNames.push(...e),this.options.push({names:e,arity:t,hidden:r,allowBinding:n})}setContext(e){this.context=e}usage({detailed:e=!0}={}){const t=[this.cliOpts.binaryName];if(this.paths.length>0&&t.push(...this.paths[0]),e){for(const{names:e,arity:r,hidden:n}of this.options){if(n)continue;const i=[];for(let e=0;e<r;++e)i.push(" #"+e);t.push(`[${e.join(",")}${i.join("")}]`)}t.push(...this.arity.leading.map(e=>`<${e}>`)),this.arity.extra===F?t.push("..."):t.push(...this.arity.extra.map(e=>`[${e}]`)),t.push(...this.arity.trailing.map(e=>`<${e}>`))}return t.join(" ")}compile(){if(void 0===this.context)throw new Error("Assertion failed: No context attached");const e={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]};let t=0;t=d(e,{dynamics:[],shortcuts:[],statics:{}}),D(e,0,"",t,["setCandidateUsage",this.usage()]);const r=this.arity.proxy?"always":"isNotOptionLike",n=this.paths.length>0?this.paths:[[]];for(const i of n){let n=t;if(i.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});v(e,n,t),this.registerOptions(e,t),n=t}for(let t=0;t<i.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});D(e,n,i[t],r,"pushPath"),n=r}if(this.arity.leading.length>0||!this.arity.proxy){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,n,"isHelp",t,["useHelp",this.cliIndex]),D(e,t,"\0",1,["setSelectedIndex",-1]),this.registerOptions(e,n)}this.arity.leading.length>0&&D(e,n,"\0",2,["setError","Not enough positional arguments"]);let o=n;for(let t=0;t<this.arity.leading.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,r),(this.arity.trailing.length>0||t+1!==this.arity.leading.length)&&D(e,r,"\0",2,["setError","Not enough positional arguments"]),Q(e,o,"isNotOptionLike",r,"pushPositional"),o=r}let s=o;if(this.arity.extra===F||this.arity.extra.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});if(v(e,o,t),this.arity.extra===F){const n=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),Q(e,o,r,n,"pushExtra"),Q(e,n,r,n,"pushExtra"),v(e,n,t)}else for(let n=0;n<this.arity.extra.length;++n){const n=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),Q(e,s,r,n,"pushExtra"),v(e,n,t),s=n}s=t}this.arity.trailing.length>0&&D(e,s,"\0",2,["setError","Not enough positional arguments"]);let A=s;for(let t=0;t<this.arity.trailing.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,r),t+1<this.arity.trailing.length&&D(e,r,"\0",2,["setError","Not enough positional arguments"]),Q(e,A,"isNotOptionLike",r,"pushPositional"),A=r}Q(e,A,r,2,["setError","Extraneous positional argument"]),D(e,A,"\0",1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Q(e,t,["isOption","--"],t,"inhibateOptions"),Q(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),Q(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),Q(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Q(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(const r of this.options){const n=r.names.reduce((e,t)=>t.length>e.length?t:e,"");if(0===r.arity)for(const i of r.names)Q(e,t,["isOption",i,r.hidden||i!==n],t,"pushTrue"),i.startsWith("--")&&Q(e,t,["isNegatedOption",i,r.hidden||i!==n],t,["pushFalse",i]);else{if(1!==r.arity)throw new Error(`Unsupported option arity (${r.arity})`);{const i=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,i,"isNotOptionLike",t,"setStringValue");for(const o of r.names)Q(e,t,["isOption",o,r.hidden||o!==n],i,"pushUndefined")}}}}}class N{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new N(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(const t of e)t(this.command());return this}command(){const e=new M(this.builders.length,this.opts);return this.builders.push(e),e}compile(){const e=[],t=[];for(const r of this.builders){const{machine:n,context:i}=r.compile();e.push(n),t.push(i)}const r=function(e){const t={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]},r=[];let n=t.nodes.length;for(const i of e){r.push(n);for(let e=0;e<i.nodes.length;++e)y(e)||t.nodes.push(B(i.nodes[e],n));n+=i.nodes.length-2}for(const e of r)v(t,0,e);return t}(e);return function(e){const t=new Set,r=n=>{if(t.has(n))return;t.add(n);const i=e.nodes[n];for(const e of Object.values(i.statics))for(const{to:t}of e)r(t);for(const[,{to:e}]of i.dynamics)r(e);for(const{to:e}of i.shortcuts)r(e);const o=new Set(i.shortcuts.map(({to:e})=>e));for(;i.shortcuts.length>0;){const{to:t}=i.shortcuts.shift(),r=e.nodes[t];for(const[e,t]of Object.entries(r.statics)){let r=Object.prototype.hasOwnProperty.call(i.statics,e)?i.statics[e]:i.statics[e]=[];for(const e of t)r.some(({to:t})=>e.to===t)||r.push(e)}for(const[e,t]of r.dynamics)i.dynamics.some(([r,{to:n}])=>e===r&&t.to===n)||i.dynamics.push([e,t]);for(const e of r.shortcuts)o.has(e.to)||(i.shortcuts.push(e),o.add(e.to))}};r(0)}(r),{machine:r,contexts:t,process:e=>I(r,e),suggest:(e,t)=>function(e,t,r){const n=r&&t.length>0?[""]:[],i=C(e,t,r),o=[],s=new Set,A=(t,r,n=!0)=>{let i=[r];for(;i.length>0;){const r=i;i=[];for(const o of r){const r=e.nodes[o],s=Object.keys(r.statics);for(const e of Object.keys(r.statics)){const e=s[0];for(const{to:o,reducer:s}of r.statics[e])"pushPath"===s&&(n||t.push(e),i.push(o))}}n=!1}const A=JSON.stringify(t);s.has(A)||(o.push(t),s.add(A))};for(const{node:t,state:r}of i){if(null!==r.remainder){A([r.remainder],t);continue}const i=e.nodes[t],o=E(i,r);for(const[e,r]of Object.entries(i.statics))(o&&"\0"!==e||!e.startsWith("-")&&r.some(({reducer:e})=>"pushPath"===e))&&A([...n,e],t);if(o)for(const[e,{to:o}]of i.dynamics){if(2===o)continue;const i=S(e,r);if(null!==i)for(const e of i)A([...n,e],t)}}return[...o].sort()}(r,e,t)}}}const R={bold:e=>`[1m${e}[22m`,error:e=>`[31m[1m${e}[22m[39m`,code:e=>`[36m${e}[39m`},K={bold:e=>e,error:e=>e,code:e=>e};function L(e,{format:t,paragraphs:r}){return e=(e=(e=(e=(e=e.replace(/\r\n?/g,"\n")).replace(/^[\t ]+|[\t ]+$/gm,"")).replace(/^\n+|\n+$/g,"")).replace(/^-([^\n]*?)\n+/gm,"-$1\n\n")).replace(/\n(\n)?\n*/g,"$1"),r&&(e=e.split(/\n/).map((function(e){let t=e.match(/^[*-][\t ]+(.*)/);return t?t[1].match(/(.{1,78})(?: |$)/g).map((e,t)=>(0===t?"- ":"  ")+e).join("\n"):e.match(/(.{1,80})(?: |$)/g).join("\n")})).join("\n\n")),(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(function(e,r,n){return t.code(r+n+r)})))?e+"\n":""}class T extends r{constructor(e,t){super(),this.realCli=e,this.contexts=t,this.commands=[]}static from(e,t,r){const n=new T(t,r);for(const t of e.options)switch(t.name){case"-c":n.commands.push(Number(t.value));break;case"-i":n.index=Number(t.value)}return n}async execute(){let e=this.commands;if(void 0!==this.index&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),1===e.length)this.context.stdout.write(this.realCli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write("Multiple commands match your selection:\n"),this.context.stdout.write("\n");let e=0;for(const t of this.commands)this.context.stdout.write(this.realCli.usage(this.contexts[t].commandClass,{prefix:(e+++". ").padStart(5)}));this.context.stdout.write("\n"),this.context.stdout.write("Run again with -h=<index> to see the longer details of any of those commands.\n")}}}function P(){return"0"!==process.env.FORCE_COLOR&&("1"===process.env.FORCE_COLOR||!(void 0===process.stdout||!process.stdout.isTTY))}class U{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:r,enableColors:n=P()}={}){this.registrations=new Map,this.builder=new N({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=r,this.enableColors=n}static from(e){const t=new U;for(const r of e)t.register(r);return t}register(e){const t=this.builder.command();this.registrations.set(e,t.cliIndex);const{definitions:r}=e.resolveMeta(e.prototype);for(const e of r)e(t);t.setContext({commandClass:e})}process(e){const{contexts:t,process:r}=this.builder.compile(),n=r(e);switch(n.selectedIndex){case-1:return T.from(n,this,t);default:{const{commandClass:e}=t[n.selectedIndex],r=new e;r.path=n.path;const{transformers:i}=e.resolveMeta(e.prototype);for(const e of i)e(n,r);return r}}}async run(e,t){let r,n;if(Array.isArray(e))try{r=this.process(e)}catch(e){return t.stdout.write(this.error(e)),1}else r=e;if(r.help)return t.stdout.write(this.usage(r,{detailed:!0})),0;r.context=t,r.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,definitions:()=>this.definitions(),error:(e,t)=>this.error(e,t),process:e=>this.process(e),run:(e,r)=>this.run(e,Object.assign(Object.assign({},t),r)),usage:(e,t)=>this.usage(e,t)};try{n=await r.validateAndExecute()}catch(e){return t.stdout.write(this.error(e,{command:r})),1}return n}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){const{contexts:r,process:n,suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){const t=[];for(const[r,n]of this.registrations){if(void 0===r.usage)continue;const i=this.getUsageByIndex(n,{detailed:!1}),o=this.getUsageByIndex(n,{detailed:!0}),s=void 0!==r.usage.category?L(r.usage.category,{format:this.format(e),paragraphs:!1}):void 0,A=void 0!==r.usage.description?L(r.usage.description,{format:this.format(e),paragraphs:!1}):void 0,a=void 0!==r.usage.details?L(r.usage.details,{format:this.format(e),paragraphs:!0}):void 0,c=void 0!==r.usage.examples?r.usage.examples.map(([t,r])=>[L(t,{format:this.format(e),paragraphs:!1}),r.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:i,usage:o,category:s,description:A,details:a,examples:c})}return t}usage(e=null,{colored:t,detailed:r=!1,prefix:n="$ "}={}){const i=null!==e&&void 0===e.getMeta?e.constructor:e;let o="";if(i)if(r){const{description:e="",details:r="",examples:s=[]}=i.usage||{};if(""!==e&&(o+=L(e,{format:this.format(t),paragraphs:!1}).replace(/^./,e=>e.toUpperCase()),o+="\n"),(""!==r||s.length>0)&&(o+=this.format(t).bold("Usage:")+"\n",o+="\n"),o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`,""!==r&&(o+="\n",o+=this.format(t).bold("Details:")+"\n",o+="\n",o+=L(r,{format:this.format(t),paragraphs:!0})),s.length>0){o+="\n",o+=this.format(t).bold("Examples:")+"\n";for(let[e,r]of s)o+="\n",o+=L(e,{format:this.format(t),paragraphs:!1}),o+=r.replace(/^/m,"  "+this.format(t).bold(n)).replace(/\$0/g,this.binaryName)+"\n"}}else o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`;else{const e=new Map;for(const[r,n]of this.registrations.entries()){if(void 0===r.usage)continue;const i=void 0!==r.usage.category?L(r.usage.category,{format:this.format(t),paragraphs:!1}):null;let o=e.get(i);void 0===o&&e.set(i,o=[]);const s=this.getUsageByIndex(n);o.push({commandClass:r,usage:s})}const r=Array.from(e.keys()).sort((e,t)=>null===e?-1:null===t?1:e.localeCompare(t,"en",{usage:"sort",caseFirst:"upper"})),i=void 0!==this.binaryLabel,s=void 0!==this.binaryVersion;i||s?(o+=i&&s?this.format(t).bold(`${this.binaryLabel} - ${this.binaryVersion}`)+"\n\n":i?this.format(t).bold(""+this.binaryLabel)+"\n":this.format(t).bold(""+this.binaryVersion)+"\n",o+=`  ${this.format(t).bold(n)}${this.binaryName} <command>\n`):o+=`${this.format(t).bold(n)}${this.binaryName} <command>\n`;for(let n of r){const r=e.get(n).slice().sort((e,t)=>e.usage.localeCompare(t.usage,"en",{usage:"sort",caseFirst:"upper"})),i=null!==n?n.trim():"Where <command> is one of";o+="\n",o+=this.format(t).bold(i+":")+"\n";for(let{commandClass:e,usage:n}of r){const r=e.usage.description||"undocumented";o+="\n",o+=`  ${this.format(t).bold(n)}\n`,o+="    "+L(r,{format:this.format(t),paragraphs:!1})}}o+="\n",o+=L("You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return o}error(e,{colored:t,command:r=null}={}){e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let n="",i=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");"Error"===i&&(i="Internal Error"),n+=`${this.format(t).error(i)}: ${e.message}\n`;const o=e.clipanion;return void 0!==o?"usage"===o.type&&(n+="\n",n+=this.usage(r)):e.stack&&(n+=e.stack.replace(/^.*\n/,"")+"\n"),n}getUsageByRegistration(e,t){const r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}format(e=this.enableColors){return e?R:K}}U.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},r.Entries.Help=i,r.Entries.Version=o,t.Cli=U,t.Command=r,t.UsageError=l},75426:e=>{"use strict";e.exports={u2:"clipanion"}},15751:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=r(65007);e.exports=e=>{if(!e||!e.pipe)throw new TypeError("Parameter `response` must be a response stream.");const t=new n;return i(e,t),e.pipe(t)}},15311:(e,t,r)=>{const n=r(93300),i={};for(const e of Object.keys(n))i[n[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:r})}o.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=o-i;let A,a;o===i?A=0:t===o?A=(r-n)/s:r===o?A=2+(n-t)/s:n===o&&(A=4+(t-r)/s),A=Math.min(60*A,360),A<0&&(A+=360);const c=(i+o)/2;return a=o===i?0:c<=.5?s/(o+i):s/(2-o-i),[A,100*a,100*c]},o.rgb.hsv=function(e){let t,r,n,i,o;const s=e[0]/255,A=e[1]/255,a=e[2]/255,c=Math.max(s,A,a),u=c-Math.min(s,A,a),l=function(e){return(c-e)/6/u+.5};return 0===u?(i=0,o=0):(o=u/c,t=l(s),r=l(A),n=l(a),s===c?i=n-r:A===c?i=1/3+t-n:a===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*c]},o.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const i=o.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,100*s,100*n]},o.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,o=1/0;for(const t of Object.keys(n)){const i=n[t],a=(A=i,((s=e)[0]-A[0])**2+(s[1]-A[1])**2+(s[2]-A[2])**2);a<o&&(o=a,r=t)}var s,A;return r},o.keyword.rgb=function(e){return n[e]},o.rgb.xyz=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},o.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,o,s;if(0===r)return s=255*n,[s,s,s];i=n<.5?n*(1+r):n+r-n*r;const A=2*n-i,a=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,s=6*o<1?A+6*(i-A)*o:2*o<1?i:3*o<2?A+(i-A)*(2/3-o)*6:A,a[e]=255*s;return a},o.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=o<=1?o:2-o;return[t,100*(0===n?2*i/(o+i):2*r/(n+r)),100*((n+r)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),s=255*n*(1-r),A=255*n*(1-r*o),a=255*n*(1-r*(1-o));switch(n*=255,i){case 0:return[n,a,s];case 1:return[A,n,s];case 2:return[s,n,a];case 3:return[s,A,n];case 4:return[a,s,n];case 5:return[n,s,A]}},o.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let o,s;s=(2-r)*n;const A=(2-r)*i;return o=r*i,o/=A<=1?A:2-A,o=o||0,s/=2,[t,100*o,100*s]},o.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let o;i>1&&(r/=i,n/=i);const s=Math.floor(6*t),A=1-n;o=6*t-s,0!=(1&s)&&(o=1-o);const a=r+o*(A-r);let c,u,l;switch(s){default:case 6:case 0:c=A,u=a,l=r;break;case 1:c=a,u=A,l=r;break;case 2:c=r,u=A,l=a;break;case 3:c=r,u=a,l=A;break;case 4:c=a,u=r,l=A;break;case 5:c=A,u=r,l=a}return[255*c,255*u,255*l]},o.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,o,s;return i=3.2406*t+-1.5372*r+-.4986*n,o=-.9689*t+1.8758*r+.0415*n,s=.0557*t+-.204*r+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*i,255*o,255*s]},o.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*r-16,500*(t-r),200*(r-n)]},o.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const i=r**3,o=t**3,s=n**3;return r=i>.008856?i:(r-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,n=s>.008856?s:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},o.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(r*r+n*n),i]},o.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},o.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let s=null===t?o.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let A=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===s&&(A+=60),A},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},o.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),s=i-o;let A,a;return A=s<1?o/(1-s):0,a=s<=0?0:i===t?(r-n)/s%6:i===r?2+(n-t)/s:4+(t-r)/s,a/=6,a%=1,[360*a,100*s,100*A]},o.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],o=t%1*6,s=o%1,A=1-s;let a=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=A,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=A,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=A}return a=(1-r)*n,[255*(r*i[0]+a),255*(r*i[1]+a),255*(r*i[2]+a)]},o.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},o.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},o.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},o.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,r)=>{const n=r(15311),i=r(78577),o={};Object.keys(n).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:n[e].channels}),Object.defineProperty(o[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];o[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t<e;t++)n[t]=Math.round(n[t]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(n),o[e][r].raw=function(e){const t=function(...t){const r=t[0];return null==r?r:(r.length>1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=o},78577:(e,t,r)=>{const n=r(15311);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n<r;n++)e[t[n]]={distance:-1,parent:null};return e}(),r=[e];for(t[e].distance=0;r.length;){const e=r.pop(),i=Object.keys(n[e]);for(let n=i.length,o=0;o<n;o++){const n=i[o],s=t[n];-1===s.distance&&(s.distance=t[e].distance+1,s.parent=e,r.unshift(n))}}return t}function o(e,t){return function(r){return t(e(r))}}function s(e,t){const r=[t[e].parent,e];let i=n[t[e].parent][e],s=t[e].parent;for(;t[s].parent;)r.unshift(t[s].parent),i=o(n[t[s].parent][s],i),s=t[s].parent;return i.conversion=r,i}e.exports=function(e){const t=i(e),r={},n=Object.keys(t);for(let e=n.length,i=0;i<e;i++){const e=n[i];null!==t[e].parent&&(r[e]=s(e,t))}return r}},93300:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},36547:e=>{e.exports=function(e,r){for(var n=[],i=0;i<e.length;i++){var o=r(e[i],i);t(o)?n.push.apply(n,o):n.push(o)}return n};var t=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},67566:(e,t,r)=>{"use strict";const n=r(63129),i=r(14951),o=r(10779);function s(e,t,r){const s=i(e,t,r),A=n.spawn(s.command,s.args,s.options);return o.hookChildProcess(A,s),A}e.exports=s,e.exports.spawn=s,e.exports.sync=function(e,t,r){const s=i(e,t,r),A=n.spawnSync(s.command,s.args,s.options);return A.error=A.error||o.verifyENOENTSync(A.status,s),A},e.exports._parse=i,e.exports._enoent=o},10779:e=>{"use strict";const t="win32"===process.platform;function r(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function n(e,n){return t&&1===e&&!n.file?r(n.original,"spawn"):null}e.exports={hookChildProcess:function(e,r){if(!t)return;const i=e.emit;e.emit=function(t,o){if("exit"===t){const t=n(o,r);if(t)return i.call(e,"error",t)}return i.apply(e,arguments)}},verifyENOENT:n,verifyENOENTSync:function(e,n){return t&&1===e&&!n.file?r(n.original,"spawnSync"):null},notFoundError:r}},14951:(e,t,r)=>{"use strict";const n=r(85622),i=r(47447),o=r(27066),s=r(35187),A="win32"===process.platform,a=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function u(e){if(!A)return e;const t=function(e){e.file=i(e);const t=e.file&&s(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}(e),r=!a.test(t);if(e.options.forceShell||r){const r=c.test(t);e.command=n.normalize(e.command),e.command=o.command(e.command),e.args=e.args.map(e=>o.argument(e,r));const i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}e.exports=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);const n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:u(n)}},27066:e=>{"use strict";const t=/([()\][%!^"`<>&|;, *?])/g;e.exports.command=function(e){return e=e.replace(t,"^$1")},e.exports.argument=function(e,r){return e=(e=`"${e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(t,"^$1"),r&&(e=e.replace(t,"^$1")),e}},35187:(e,t,r)=>{"use strict";const n=r(35747),i=r(91470);e.exports=function(e){const t=Buffer.alloc(150);let r;try{r=n.openSync(e,"r"),n.readSync(r,t,0,150,0),n.closeSync(r)}catch(e){}return i(t.toString())}},47447:(e,t,r)=>{"use strict";const n=r(85622),i=r(87945),o=r(37127);function s(e,t){const r=e.options.env||process.env,s=process.cwd(),A=null!=e.options.cwd,a=A&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch(e){}let c;try{c=i.sync(e.command,{path:r[o({env:r})],pathExt:t?n.delimiter:void 0})}catch(e){}finally{a&&process.chdir(s)}return c&&(c=n.resolve(A?e.options.cwd:"",c)),c}e.exports=function(e){return s(e)||s(e,!0)}},53832:(e,t,r)=>{"use strict";const{pipeline:n,PassThrough:i}=r(92413),o=r(78761),s=r(60102);e.exports=e=>{const t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;const r="br"===t;if(r&&"function"!=typeof o.createBrotliDecompress)return e;const A=r?o.createBrotliDecompress():o.createUnzip(),a=new i;A.on("error",e=>{"Z_BUF_ERROR"!==e.code?a.emit("error",e):a.end()});const c=n(e,A,a,()=>{});return s(e,c),c}},93121:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4016),i=(e,t)=>{let r;if("function"==typeof t){r={connect:t}}else r=t;const i="function"==typeof r.connect,o="function"==typeof r.secureConnect,s="function"==typeof r.close,A=()=>{i&&r.connect(),e instanceof n.TLSSocket&&o&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),s&&e.once("close",r.close)};e.writable&&!e.connecting?A():e.connecting?e.once("connect",A):e.destroyed&&s&&r.close(e._hadError)};t.default=i,e.exports=i,e.exports.default=i},66241:(e,t,r)=>{"use strict";const n=r(85622),i=r(5763),o=e=>e.length>1?`{${e.join(",")}}`:e[0],s=(e,t)=>{const r="!"===e[0]?e.slice(1):e;return n.isAbsolute(r)?r:n.join(t,r)},A=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>{return n.posix.join(e,(i=r,s=t.extensions,n.extname(i)?"**/"+i:`**/${i}.${o(s)}`));var i,s}):t.files?t.files.map(t=>n.posix.join(e,"**/"+t)):t.extensions?[n.posix.join(e,"**/*."+o(t.extensions))]:[n.posix.join(e,"**")]};e.exports=async(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=await Promise.all([].concat(e).map(async e=>await i.isDirectory(s(e,t.cwd))?A(e,t):e));return[].concat.apply([],r)},e.exports.sync=(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=[].concat(e).map(e=>i.isDirectorySync(s(e,t.cwd))?A(e,t):e);return[].concat.apply([],r)}},1013:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},97681:(e,t,r)=>{var n=r(91162),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r()},h=function(){a=!1,c||r()},g=function(e){r(e?new Error("exited with error code: "+e):null)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r(new Error("premature close"))},p=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",f),e.req?p():e.on("request",p)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",r),e.on("close",f),function(){e.removeListener("complete",l),e.removeListener("abort",f),e.removeListener("request",p),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",r),e.removeListener("close",f)}};e.exports=o},17067:(e,t,r)=>{var n=r(27180),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r.call(e)},h=function(){a=!1,c||r.call(e)},g=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},f=function(t){r.call(e,t)},p=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r.call(e,new Error("premature close"))},d=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",p),e.req?d():e.on("request",d)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",f),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",d),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",f),e.removeListener("close",p)}};e.exports=o},66349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},41313:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1),i=r(3),o=r(8),s=r(15);function A(e,t,r){var s=null,A=function(e,t){r&&r(e,t),s&&s.visit(e,t)},a="function"==typeof r?A:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(c||u)&&((s=new n.CommentHandler).attach=u,t.comment=!0,a=A)}var l,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),l=t&&"boolean"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,a):new o.Parser(e,t,a);var g=h?l.parseModule():l.parseScript();return c&&s&&(g.comments=s.comments),l.config.tokens&&(g.tokens=l.tokens),l.config.tolerant&&(g.errors=l.errorHandler.errors),g}t.parse=A,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType="module",A(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType="script",A(e,n,r)},t.tokenize=function(e,t,r){var n,i=new s.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var a=r(2);t.Syntax=a.Syntax,t.version="4.0.1"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&((o=this.stack[this.stack.length-1])&&o.start>=e.start.offset);)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(5),A=r(6),a=r(7),c=r(8),u=r(13),l=r(14);function h(e){var t;switch(e.type){case A.JSXSyntax.JSXIdentifier:t=e.name;break;case A.JSXSyntax.JSXNamespacedName:var r=e;t=h(r.namespace)+":"+h(r.name);break;case A.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var g=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var A=this.scanner.source[this.scanner.index];if(A===e)break;if(n=";"===A,t+=A,++this.scanner.index,!n)switch(t.length){case 2:i="#"===A;break;case 3:i&&(r=(s="x"===A)||o.Character.isDecimalDigit(A.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(A.charCodeAt(0))))&&!(s&&!o.Character.isHexDigit(A.charCodeAt(0)))}}if(r&&n&&t.length>2){var a=t.substr(1,t.length-2);i&&a.length>1?t=String.fromCharCode(parseInt(a.substr(1),10)):s&&a.length>2?t=String.fromCharCode(parseInt("0"+a.substr(1),16)):i||s||!l.XHTMLEntities[a]||(t=l.XHTMLEntities[a])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:A=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(a=this.scanner.source[this.scanner.index++])!==r;)n+="&"===a?this.scanXHTMLEntity(r):a;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),s=this.scanner.source.charCodeAt(this.scanner.index+2),A=46===i&&46===s?"...":".";return t=this.scanner.index,this.scanner.index+=A.length,{type:7,value:A,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var a=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(a)&&92!==a)++this.scanner.index;else{if(45!==a)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new s.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new s.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new s.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new s.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new s.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new s.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start<r.end){var n=this.getTokenRaw(r),i=this.finalize(t,new s.JSXText(r.value,n));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var r=this.createJSXChildNode(),n=this.parseJSXBoundaryElement();if(n.type===A.JSXSyntax.JSXOpeningElement){var i=n;if(i.selfClosing){var o=this.finalize(r,new s.JSXElement(i,[],null));e.children.push(o)}else t.push(e),e={node:r,opening:i,closing:null,children:[]}}if(n.type===A.JSXSyntax.JSXClosingElement){e.closing=n;var a=h(e.opening.name);if(a!==h(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",a),!(t.length>0))break;o=this.finalize(e.node,new s.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new s.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(c.Parser);t.JSXParser=g},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var s=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=s;var A=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=A;var a=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=a;var c=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=c;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var l=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=l;var h=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=h;var g=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=g;var f=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var s=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=s;var A=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=A;var a=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=a;var c=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=c;var u=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var l=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=l;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var g=function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=g;var f=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=f;var p=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=p;var d=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=d;var C=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=C;var E=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=E;var I=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=I;var m=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=m;var y=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=y;var w=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=w;var B=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=B;var Q=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=Q;var v=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=v;var D=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=D;var b=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=b;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var k=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=k;var x=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=x;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var M=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=M;var N=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=N;var R=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=R;var K=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=K;var L=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=L;var T=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=T;var P=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=P;var U=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=U;var _=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=_;var O=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=O;var j=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=j;var Y=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=Y;var G=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=G;var J=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=J;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var q=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=q;var z=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=z;var W=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=W;var V=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=V;var X=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=X;var Z=function(e,t,r,i,o,s){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=s};t.Property=Z;var $=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=$;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var se=function(){this.type=n.Syntax.Super};t.Super=se;var Ae=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=Ae;var ae=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ae;var ce=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=ce;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var le=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=le;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var ge=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=ge;var fe=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=fe;var pe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=pe;var de=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=de;var Ce=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=Ce;var Ee=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=Ee;var Ie=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=Ie;var me=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=me;var ye=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=ye},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(10),o=r(11),s=r(7),A=r(12),a=r(2),c=r(13),u=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new A.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]})),s=this.lastMarker.index,A=this.lastMarker.line,a=this.lastMarker.column+1;throw this.errorHandler.createError(s,A,a,o)},e.prototype.tolerateError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]})),s=this.lastMarker.index,A=this.scanner.lineNumber,a=this.lastMarker.column+1;this.errorHandler.tolerateError(s,A,a,o)},e.prototype.unexpectedTokenError=function(e,t){var r,n=t||o.Messages.UnexpectedToken;if(e?(t||(n=2===e.type?o.Messages.UnexpectedEOS:3===e.type?o.Messages.UnexpectedIdentifier:6===e.type?o.Messages.UnexpectedNumber:8===e.type?o.Messages.UnexpectedString:10===e.type?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,4===e.type&&(this.scanner.isFutureReservedWord(e.value)?n=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=o.Messages.StrictReservedWord))),r=e.value):r="ILLEGAL",n=n.replace("%0",r),e&&"number"==typeof e.lineNumber){var i=e.start,s=e.lineNumber,A=this.lastMarker.index-this.lastMarker.column,a=e.start-A+1;return this.errorHandler.createError(i,s,a,n)}return i=this.lastMarker.index,s=this.lastMarker.line,a=this.lastMarker.column+1,this.errorHandler.createError(i,s,a,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var r=e[t],n=void 0;n={type:r.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(r.slice[0],r.slice[1])},this.config.range&&(n.range=r.range),this.config.loc&&(n.loc=r.loc);var i={start:{line:r.loc.start.line,column:r.loc.start.column,offset:r.range[0]},end:{line:r.loc.end.line,column:r.loc.end.column,offset:r.range[1]}};this.delegate(n,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t={type:c.TokenName[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===e.type){var r=e.pattern,n=e.flags;t.regex={pattern:r,flags:n}}return t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&3===t.type&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&2!==t.type&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},e.prototype.startNode=function(e,t){void 0===t&&(t=0);var r=e.start-e.lineStart,n=e.lineNumber;return r<0&&(r+=t,n--),{index:e.start,line:n,column:r}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var r={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,r)}return t},e.prototype.expect=function(e){var t=this.nextToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;7===e.type&&","===e.value?this.nextToken():7===e.type&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();4===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return 7===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return 4===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return 3===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(7!==this.lookahead.type)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new s.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new s.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new s.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new s.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new s.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new s.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new s.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new s.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===a.Syntax.Identifier&&e.name===t||e.type===a.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(3===n.type){var h=n.value;this.nextToken(),a=this.match("["),i=(l=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new s.Identifier(h))}else this.match("*")?this.nextToken():(a=this.match("["),i=this.parseObjectPropertyKey());var g=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&g)t="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&g)t="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&g)t="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!l)!a&&this.isPropertyKey(i,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),A=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0;else if(3===n.type)if(h=this.finalize(r,new s.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var f=this.isolateCoverGrammar(this.parseAssignmentExpression);A=this.finalize(r,new s.AssignmentPattern(h,f))}else u=!0,A=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new s.Property(t,i,a,A,c,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new s.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new s.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case a.Syntax.Identifier:case a.Syntax.MemberExpression:case a.Syntax.RestElement:case a.Syntax.AssignmentPattern:break;case a.Syntax.SpreadElement:e.type=a.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case a.Syntax.ArrayExpression:e.type=a.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case a.Syntax.ObjectExpression:for(e.type=a.Syntax.ObjectPattern,t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case a.Syntax.AssignmentExpression:e.type=a.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:"ArrowParameterPlaceHolder",params:i,async:!1}}else if(this.match("...")){for(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(r)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:"ArrowParameterPlaceHolder",params:i,async:!1}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new s.SequenceExpression(i)))}if(!n){if(this.expect(")"),this.match("=>")&&(e.type===a.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:"ArrowParameterPlaceHolder",params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===a.Syntax.SequenceExpression)for(o=0;o<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);e={type:"ArrowParameterPlaceHolder",params:e.type===a.Syntax.SequenceExpression?e.expressions:[e],async:!1}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return 3===e.type||4===e.type||1===e.type||5===e.type},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new s.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e,t=this.createNode(),r=this.parseIdentifierName();if(n.assert("new"===r.name,"New expression must start with `new`"),this.match("."))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();e=new s.MetaProperty(r,i)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),A=this.match("(")?this.parseArguments():[];e=new s.NewExpression(o,A),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,e)},e.prototype.parseAsyncArgument=function(){var e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e},e.prototype.parseAsyncArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e,t=this.lookahead,r=this.matchContextualKeyword("async"),n=this.context.allowIn;for(this.context.allowIn=!0,this.matchKeyword("super")&&this.context.inFunctionBody?(e=this.createNode(),this.nextToken(),e=this.finalize(e,new s.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):e=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var i=this.parseIdentifierName();e=this.finalize(this.startNode(t),new s.StaticMemberExpression(e,i))}else if(this.match("(")){var o=r&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var A=o?this.parseAsyncArguments():this.parseArguments();if(e=this.finalize(this.startNode(t),new s.CallExpression(e,A)),o&&this.match("=>")){for(var a=0;a<A.length;++a)this.reinterpretExpressionAsPattern(A[a]);e={type:"ArrowParameterPlaceHolder",params:A,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),i=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),e=this.finalize(this.startNode(t),new s.ComputedMemberExpression(e,i));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var c=this.parseTemplateLiteral();e=this.finalize(this.startNode(t),new s.TaggedTemplateExpression(e,c))}return this.context.allowIn=n,e},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new s.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new s.ComputedMemberExpression(t,r))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),r=this.parseIdentifierName(),t=this.finalize(e,new s.StaticMemberExpression(t,r));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new s.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var r=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var i=!0;e=this.finalize(r,new s.UpdateExpression(n.value,e,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var A=this.nextToken().value;i=!1,e=this.finalize(this.startNode(t),new s.UpdateExpression(A,e,i))}return e},e.prototype.parseAwaitExpression=function(){var e=this.createNode();this.nextToken();var t=this.parseUnaryExpression();return this.finalize(e,new s.AwaitExpression(t))},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new s.UnaryExpression(r.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===a.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==a.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new s.BinaryExpression("**",r,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return 7===e.type?this.operatorPrecedence[t]||0:4===e.type&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),r=this.lookahead,n=this.binaryPrecedence(r);if(n>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,A=this.isolateCoverGrammar(this.parseExponentiationExpression),a=[o,r.value,A],c=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;a.length>2&&n<=c[c.length-1];){A=a.pop();var u=a.pop();c.pop(),o=a.pop(),i.pop();var l=this.startNode(i[i.length-1]);a.push(this.finalize(l,new s.BinaryExpression(u,o,A)))}a.push(this.nextToken().value),c.push(n),i.push(this.lookahead),a.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=a.length-1;t=a[h];for(var g=i.pop();h>1;){var f=i.pop(),p=g&&g.lineStart;l=this.startNode(f,p),u=a[h-1],t=this.finalize(l,new s.BinaryExpression(u,a[h-2],t)),h-=2,g=f}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new s.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case a.Syntax.Identifier:this.validateParam(e,t,t.name);break;case a.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case a.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case a.Syntax.ArrayPattern:for(var r=0;r<t.elements.length;r++)null!==t.elements[r]&&this.checkPatternParam(e,t.elements[r]);break;case a.Syntax.ObjectPattern:for(r=0;r<t.properties.length;r++)this.checkPatternParam(e,t.properties[r].value)}e.simple=e.simple&&t instanceof s.Identifier},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,r=[e],n=!1;switch(e.type){case a.Syntax.Identifier:break;case"ArrowParameterPlaceHolder":r=e.params,n=e.async;break;default:return null}t={simple:!0,paramSet:{}};for(var i=0;i<r.length;++i)(s=r[i]).type===a.Syntax.AssignmentPattern?s.right.type===a.Syntax.YieldExpression&&(s.right.argument&&this.throwUnexpectedToken(this.lookahead),s.right.type=a.Syntax.Identifier,s.right.name="yield",delete s.right.argument,delete s.right.delegate):n&&s.type===a.Syntax.Identifier&&"await"===s.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(t,s),r[i]=s;if(this.context.strict||!this.context.allowYield)for(i=0;i<r.length;++i){var s;(s=r[i]).type===a.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===o.Messages.StrictParamDupe){var A=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(A,t.message)}return{simple:t.simple,params:r,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,r=t;if(e=this.parseConditionalExpression(),3===r.type&&r.lineNumber===this.lookahead.lineNumber&&"async"===r.value&&(3===this.lookahead.type||this.matchKeyword("yield"))){var n=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(n),e={type:"ArrowParameterPlaceHolder",params:[n],async:!0}}if("ArrowParameterPlaceHolder"===e.type||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,A=this.reinterpretAsCoverFormalsList(e);if(A){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=A.simple;var l=this.context.allowYield,h=this.context.await;this.context.allowYield=!0,this.context.await=i;var g=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var p=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=p}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var d=f.type!==a.Syntax.BlockStatement;this.context.strict&&A.firstRestricted&&this.throwUnexpectedToken(A.firstRestricted,A.message),this.context.strict&&A.stricted&&this.tolerateUnexpectedToken(A.stricted,A.message),e=i?this.finalize(g,new s.AsyncArrowFunctionExpression(A.params,f,d)):this.finalize(g,new s.ArrowFunctionExpression(A.params,f,d)),this.context.strict=c,this.context.allowStrictDirective=u,this.context.allowYield=l,this.context.await=h}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===a.Syntax.Identifier){var C=e;this.scanner.isRestrictedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var E=(r=this.nextToken()).value,I=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new s.AssignmentExpression(E,e,I)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new s.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new s.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==a.Syntax.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new s.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new s.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new s.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new s.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,A=!1;if(3===this.lookahead.type){var a=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new s.Identifier(a.value));if(this.match("=")){e.push(a),A=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(a),new s.AssignmentPattern(c,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(a),A=!0,n=c)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new s.Property("init",r,o,n,!1,A))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new s.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new s.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new s.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===a.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new s.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new s.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new s.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new s.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new s.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new s.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,A=null,c=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===h.length&&this.matchKeyword("in")){var g=h[0];g.init&&(g.id.type===a.Syntax.ArrayPattern||g.id.type===a.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var f=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(f,{inFor:!0}),this.context.allowIn=l,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(this.consumeSemicolon(),n=this.finalize(n,new s.VariableDeclaration(h,f)))):(n=this.finalize(n,new s.Identifier(f)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var p=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,c=!1;else{if(this.match(",")){for(var d=[n];this.match(",");)this.nextToken(),d.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(p),new s.SequenceExpression(d))}this.expect(";")}}if(void 0===e&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(A=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=C}return void 0===e?this.finalize(u,new s.ForStatement(n,i,A,r)):c?this.finalize(u,new s.ForInStatement(e,t,r)):this.finalize(u,new s.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new s.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new s.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new s.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new s.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect("{");!this.match("}");){var A=this.parseSwitchCase();null===A.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(A)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new s.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===a.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[i]=!0;var A=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),A=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(c,o.Messages.GeneratorInLegacyContext),A=u}else A=this.parseStatement();delete this.context.labelSet[i],e=new s.LabeledStatement(n,A)}else this.consumeSemicolon(),e=new s.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i<t.length;i++){var A="$"+t[i].value;Object.prototype.hasOwnProperty.call(n,A)&&this.tolerateError(o.Messages.DuplicateBinding,t[i].value),n[A]=!0}this.context.strict&&r.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(")");var c=this.parseBlock();return this.finalize(e,new s.CatchClause(r,c))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),r=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return r||n||this.throwError(o.Messages.NoCatchOrFinally),this.finalize(e,new s.TryStatement(t,r,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new s.DebuggerStatement)},e.prototype.parseStatement=function(){var e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),r=this.context.labelSet,n=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=r,this.context.inIteration=n,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(e,new s.BlockStatement(t))},e.prototype.validateParam=function(e,t,r){var n="$"+r;this.context.strict?(this.scanner.isRestrictedWord(r)&&(e.stricted=t,e.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var r=this.parsePattern(e);return this.match("=")&&this.throwError(o.Messages.DefaultRestParameter),this.match(")")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(t,new s.RestElement(r))},e.prototype.parseFormalParameter=function(e){for(var t=[],r=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);e.simple=e.simple&&r instanceof s.Identifier,e.params.push(r)},e.prototype.parseFormalParameters=function(e){var t;if(t={simple:!0,params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(t),!this.match(")"))&&(this.expect(","),!this.match(")")););return this.expect(")"),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.matchAsyncFunction=function(){var e=this.matchContextualKeyword("async");if(e){var t=this.scanner.saveState();this.scanner.scanComments();var r=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===r.lineNumber&&4===r.type&&"function"===r.value}return e},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode(),r=this.matchContextualKeyword("async");r&&this.nextToken(),this.expectKeyword("function");var n,i=!r&&this.match("*");i&&this.nextToken();var A=null,a=null;if(!e||!this.match("(")){var c=this.lookahead;A=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(c.value)&&this.tolerateUnexpectedToken(c,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(c.value)?(a=c,n=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(c.value)&&(a=c,n=o.Messages.StrictReservedWord)}var u=this.context.await,l=this.context.allowYield;this.context.await=r,this.context.allowYield=!i;var h=this.parseFormalParameters(a),g=h.params,f=h.stricted;a=h.firstRestricted,h.message&&(n=h.message);var p=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var C=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,n),this.context.strict&&f&&this.tolerateUnexpectedToken(f,n),this.context.strict=p,this.context.allowStrictDirective=d,this.context.await=u,this.context.allowYield=l,r?this.finalize(t,new s.AsyncFunctionDeclaration(A,g,C)):this.finalize(t,new s.FunctionDeclaration(A,g,C,i))},e.prototype.parseFunctionExpression=function(){var e=this.createNode(),t=this.matchContextualKeyword("async");t&&this.nextToken(),this.expectKeyword("function");var r,n=!t&&this.match("*");n&&this.nextToken();var i,A=null,a=this.context.await,c=this.context.allowYield;if(this.context.await=t,this.context.allowYield=!n,!this.match("(")){var u=this.lookahead;A=this.context.strict||n||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(u.value)&&this.tolerateUnexpectedToken(u,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(u.value)?(i=u,r=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(u.value)&&(i=u,r=o.Messages.StrictReservedWord)}var l=this.parseFormalParameters(i),h=l.params,g=l.stricted;i=l.firstRestricted,l.message&&(r=l.message);var f=this.context.strict,p=this.context.allowStrictDirective;this.context.allowStrictDirective=l.simple;var d=this.parseFunctionSourceElements();return this.context.strict&&i&&this.throwUnexpectedToken(i,r),this.context.strict&&g&&this.tolerateUnexpectedToken(g,r),this.context.strict=f,this.context.allowStrictDirective=p,this.context.await=a,this.context.allowYield=c,t?this.finalize(e,new s.AsyncFunctionExpression(A,h,d)):this.finalize(e,new s.FunctionExpression(A,h,d,n))},e.prototype.parseDirective=function(){var e=this.lookahead,t=this.createNode(),r=this.parseExpression(),n=r.type===a.Syntax.Literal?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,n?new s.Directive(r,n):new s.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var r=this.lookahead;if(8!==r.type)break;var n=this.parseDirective();t.push(n);var i=n.directive;if("string"!=typeof i)break;"use strict"===i?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(r,o.Messages.IllegalLanguageModeDirective)):!e&&r.octal&&(e=r)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();r.params.length>0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof s.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new s.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n="",i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(this.match("*"))this.nextToken();else if(a=this.match("["),"static"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,a=this.match("["),this.match("*")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(l=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var g=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&g?(n="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod()):"set"===t.value&&g&&(n="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod()):7===t.type&&"*"===t.value&&g&&(n="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0),!n&&i&&this.match("(")&&(n="init",A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),a||(u&&this.isPropertyKey(i,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(i,"constructor")&&(("method"!==n||!c||A&&A.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(r,new s.MethodDefinition(i,a,A,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new s.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new s.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new s.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new s.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new s.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new s.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new s.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new s.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new s.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new s.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new s.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new s.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null));else{var A=[],a=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),A.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),a=this.parseModuleSpecifier(),this.consumeSemicolon()):c?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new s.ExportNamedDeclaration(null,A,a))}return e},e}();t.Parser=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(4),o=r(11);function s(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function A(e){return"01234567".indexOf(e)}var a=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var s={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(s)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},s={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(s)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,n=0;n<t;++n){if(this.eof()||!i.Character.isHexDigit(this.source.charCodeAt(this.index)))return null;r=16*r+s(this.source[this.index++])}return String.fromCharCode(r)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],i.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+s(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=A(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+A(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+A(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!i.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];n.assert(i.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var r="";if("."!==t){if(r=this.source[this.index++],t=this.source[this.index],"0"===r){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&i.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(r+=this.source[this.index++];i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(r+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(r+=this.source[this.index++]),i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];else this.throwUnexpectedToken();return i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];n.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var r=!1,s="";!this.eof();){var A=this.source[this.index++];if(A===t){t="";break}if("\\"===A)if((A=this.source[this.index++])&&i.Character.isLineTerminator(A.charCodeAt(0)))++this.lineNumber,"\r"===A&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(A){case"u":if("{"===this.source[this.index])++this.index,s+=this.scanUnicodeCodePointEscape();else{var a=this.scanHexEscape(A);null===a&&this.throwUnexpectedToken(),s+=a}break;case"x":var c=this.scanHexEscape(A);null===c&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),s+=c;break;case"n":s+="\n";break;case"r":s+="\r";break;case"t":s+="\t";break;case"b":s+="\b";break;case"f":s+="\f";break;case"v":s+="\v";break;case"8":case"9":s+=A,this.tolerateUnexpectedToken();break;default:if(A&&i.Character.isOctalDigit(A.charCodeAt(0))){var u=this.octalToDecimal(A);r=u.octal||r,s+=String.fromCharCode(u.code)}else s+=A}else{if(i.Character.isLineTerminator(A.charCodeAt(0)))break;s+=A}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:s,octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,r=this.index,n="`"===this.source[r],s=!1,A=2;for(++this.index;!this.eof();){var a=this.source[this.index++];if("`"===a){A=1,s=!0,t=!0;break}if("$"===a){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=a}else if("\\"===a)if(a=this.source[this.index++],i.Character.isLineTerminator(a.charCodeAt(0)))++this.lineNumber,"\r"===a&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(a){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var c=this.index,u=this.scanHexEscape(a);null!==u?e+=u:(this.index=c,e+=a)}break;case"x":var l=this.scanHexEscape(a);null===l&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),e+=l;break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===a?(i.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),e+="\0"):i.Character.isOctalDigit(a.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):e+=a}else i.Character.isLineTerminator(a.charCodeAt(0))?(++this.lineNumber,"\r"===a&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=a}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:10,value:this.source.slice(r+1,this.index-A),cooked:e,head:n,tail:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}},e.prototype.testRegExp=function(e,t){var r=e,n=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):""})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,""));try{RegExp(r)}catch(e){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,s=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){s=!0;break}"["===e&&(r=!0)}return s||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;r<this.index;++r)this.source[r];else this.index=r,e+="u";this.tolerateUnexpectedToken()}else this.tolerateUnexpectedToken()}return e},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),r=this.scanRegExpFlags();return{type:9,value:"",pattern:t,flags:r,regex:this.testRegExp(t,r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return i.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?i.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():i.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="<end>",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),i=r(12),o=r(13),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),A=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var r=e[t],n=this.scanner.source.slice(r.slice[0],r.slice[1]),i={type:r.multiLine?"BlockComment":"LineComment",value:n};this.trackRange&&(i.range=r.range),this.trackLoc&&(i.loc=r.loc),this.buffer.push(i)}if(!this.scanner.eof()){var s=void 0;this.trackLoc&&(s={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var A="/"===this.scanner.source[this.scanner.index]&&this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(A);var a={type:o.TokenName[A.type],value:this.scanner.source.slice(A.start,A.end)};if(this.trackRange&&(a.range=[A.start,A.end]),this.trackLoc&&(s.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},a.loc=s),9===A.type){var c=A.pattern,u=A.flags;a.regex={pattern:c,flags:u}}this.buffer.push(a)}}return this.buffer.shift()},e}();t.Tokenizer=A}])},e.exports=t()},79932:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to create temporary file for editor")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.CreateFileError=i},89885:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed launch editor")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.LaunchEditorError=i},11124:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to read temporary file")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.ReadFileError=i},60239:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to cleanup temporary file")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.RemoveFileError=i},48011:(e,t,r)=>{"use strict";var n=r(80848),i=r(63129),o=r(35747),s=r(14503),A=r(67783),a=r(79932);a.CreateFileError;var c=r(89885);c.LaunchEditorError;var u=r(11124);u.ReadFileError;var l=r(60239);l.RemoveFileError,t.Wl=function(e,t){void 0===e&&(e="");var r=new h(e);r.runAsync((function(e,n){if(e)setImmediate(t,e,null);else try{r.cleanup(),setImmediate(t,null,n)}catch(e){setImmediate(t,e,null)}}))};var h=function(){function e(e){void 0===e&&(e=""),this.text="",this.text=e,this.determineEditor(),this.createTemporaryFile()}return e.splitStringBySpace=function(e){for(var t=[],r="",n=0;n<e.length;n++){var i=e[n];n>0&&" "===i&&"\\"!==e[n-1]&&r.length>0?(t.push(r),r=""):r+=i}return r.length>0&&t.push(r),t},Object.defineProperty(e.prototype,"temp_file",{get:function(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last_exit_status",{get:function(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus},enumerable:!0,configurable:!0}),e.prototype.run=function(){return this.launchEditor(),this.readTemporaryFile(),this.text},e.prototype.runAsync=function(e){var t=this;try{this.launchEditorAsync((function(){try{t.readTemporaryFile(),setImmediate(e,null,t.text)}catch(t){setImmediate(e,t,null)}}))}catch(t){setImmediate(e,t,null)}},e.prototype.cleanup=function(){this.removeTemporaryFile()},e.prototype.determineEditor=function(){var t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:/^win/.test(process.platform)?"notepad":"vim",r=e.splitStringBySpace(t).map((function(e){return e.replace("\\ "," ")})),n=r.shift();this.editor={args:r,bin:n}},e.prototype.createTemporaryFile=function(){try{this.tempFile=A.tmpNameSync({}),o.writeFileSync(this.tempFile,this.text,{encoding:"utf8"})}catch(e){throw new a.CreateFileError(e)}},e.prototype.readTemporaryFile=function(){try{var e=o.readFileSync(this.tempFile);if(0===e.length)this.text="";else{var t=n.detect(e).toString();s.encodingExists(t)||(t="utf8"),this.text=s.decode(e,t)}}catch(e){throw new u.ReadFileError(e)}},e.prototype.removeTemporaryFile=function(){try{o.unlinkSync(this.tempFile)}catch(e){throw new l.RemoveFileError(e)}},e.prototype.launchEditor=function(){try{var e=i.spawnSync(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=e.status}catch(e){throw new c.LaunchEditorError(e)}},e.prototype.launchEditorAsync=function(e){var t=this;try{i.spawn(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",(function(r){t.lastExitStatus=r,setImmediate(e)}))}catch(e){throw new c.LaunchEditorError(e)}},e}()},19347:(e,t,r)=>{"use strict";const n=r(80598),i=r(58182),o=r(67652),s=r(81340),A=r(43754),a=r(16777);async function c(e,t){l(e);const r=u(e,i.default,t),n=await Promise.all(r);return a.array.flatten(n)}function u(e,t,r){const i=[].concat(e),o=new A.default(r),s=n.generate(i,o),a=new t(o);return s.map(a.read,a)}function l(e){if(![].concat(e).every(e=>a.string.isString(e)&&!a.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){e.sync=function(e,t){l(e);const r=u(e,s.default,t);return a.array.flatten(r)},e.stream=function(e,t){l(e);const r=u(e,o.default,t);return a.stream.merge(r)},e.generateTasks=function(e,t){l(e);const r=[].concat(e),i=new A.default(t);return n.generate(r,i)},e.isDynamicPattern=function(e,t){l(e);const r=new A.default(t);return a.pattern.isDynamicPattern(e,r)},e.escapePath=function(e){return l(e),a.path.escape(e)}}(c||(c={})),e.exports=c},80598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);function i(e,t,r){const n=A(e);if("."in n){return[c(".",e,t,r)]}return a(n,t,r)}function o(e){return n.pattern.getPositivePatterns(e)}function s(e,t){return n.pattern.getNegativePatterns(e).concat(t).map(n.pattern.convertToPositivePattern)}function A(e){return e.reduce((e,t)=>{const r=n.pattern.getBaseDirectory(t);return r in e?e[r].push(t):e[r]=[t],e},{})}function a(e,t,r){return Object.keys(e).map(n=>c(n,e[n],t,r))}function c(e,t,r,i){return{dynamic:i,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(n.pattern.convertToNegativePattern))}}t.generate=function(e,t){const r=o(e),A=s(e,t.ignore),a=r.filter(e=>n.pattern.isStaticPattern(e,t)),c=r.filter(e=>n.pattern.isDynamicPattern(e,t)),u=i(a,A,!1),l=i(c,A,!0);return u.concat(l)},t.convertPatternsToTasks=i,t.getPositivePatterns=o,t.getNegativePatternsAsPositive=s,t.groupPatternsByBaseDirectory=A,t.convertPatternGroupsToTasks=a,t.convertPatternGroupToTask=c},58182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(82774),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),n=[];return new Promise((i,o)=>{const s=this.api(t,e,r);s.once("error",o),s.on("data",e=>n.push(r.transform(e))),s.once("end",()=>i(n))})}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},65989:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777),i=r(42585);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,r){const n=this._getMatcher(t),i=this._getNegativePatternsRe(r);return t=>this._filter(e,t,n,i)}_getMatcher(e){return new i.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){const t=e.filter(n.pattern.isAffectDepthOfReadingPattern);return n.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,r,i){const o=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(o))return!1;if(this._isSkippedSymbolicLink(t))return!1;const s=n.path.removeLeadingDotSegment(t.path);return!this._isSkippedByPositivePatterns(s,r)&&this._isSkippedByNegativePatterns(s,i)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){const r=e.split("/").length;return t.split("/").length-(""===e?0:r)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!n.pattern.matchAny(e,t)}}},37338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){const r=n.pattern.convertPatternsToRe(e,this._micromatchOptions),i=n.pattern.convertPatternsToRe(t,this._micromatchOptions);return e=>this._filter(e,r,i)}_filter(e,t,r){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e))return!1;if(this._isSkippedByAbsoluteNegativePatterns(e,r))return!1;const n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,r)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;const r=n.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(r,t)}_isMatchToPatterns(e,t){const r=n.path.removeLeadingDotSegment(e);return n.pattern.matchAny(r,t)}}},54345:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return n.errno.isEnoentCodeError(e)||this._settings.suppressErrors}}},34789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t,r){this._patterns=e,this._settings=t,this._micromatchOptions=r,this._storage=[],this._fillStorage()}_fillStorage(){const e=n.pattern.expandPatternsWithBraceExpansion(this._patterns);for(const t of e){const e=this._getPatternSegments(t),r=this._splitSegmentsIntoSections(e);this._storage.push({complete:r.length<=1,pattern:t,segments:e,sections:r})}}_getPatternSegments(e){return n.pattern.getPatternParts(e,this._micromatchOptions).map(e=>n.pattern.isDynamicPattern(e,this._settings)?{dynamic:!0,pattern:e,patternRe:n.pattern.makeRe(e,this._micromatchOptions)}:{dynamic:!1,pattern:e})}_splitSegmentsIntoSections(e){return n.array.splitWhen(e,e=>e.dynamic&&n.pattern.hasGlobStar(e.pattern))}}},42585:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(34789);class i extends n.default{match(e){const t=e.split("/"),r=t.length,n=this._storage.filter(e=>!e.complete||e.segments.length>r);for(const e of n){const n=e.sections[0];if(!e.complete&&r>n.length)return!0;if(t.every((t,r)=>{const n=e.segments[r];return!(!n.dynamic||!n.patternRe.test(t))||!n.dynamic&&n.pattern===t}))return!0}return!1}}t.default=i},40545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(65989),o=r(37338),s=r(54345),A=r(77541);t.default=class{constructor(e){this._settings=e,this.errorFilter=new s.default(this._settings),this.entryFilter=new o.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new i.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new A.default(this._settings)}_getRootDirectory(e){return n.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},67652:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(82774),o=r(40545);class s extends o.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),i=this.api(t,e,r),o=new n.Readable({objectMode:!0,read:()=>{}});return i.once("error",e=>o.emit("error",e)).on("data",e=>o.emit("data",r.transform(e))).once("end",()=>o.emit("end")),o.once("close",()=>i.destroy()),o}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=s},81340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29543),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e);return this.api(t,e,r).map(r.transform)}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},77541:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=n.path.makeAbsolute(this._settings.cwd,t),t=n.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}}},99458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(16777);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:o.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!o.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},82774:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(53403),o=r(72897),s=r(99458);class A extends s.default{constructor(){super(...arguments),this._walkStream=o.walkStream,this._stat=i.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const r=e.map(this._getFullEntryPath,this),i=new n.PassThrough({objectMode:!0});i._write=(n,o,s)=>this._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),s()}).catch(s);for(let e=0;e<r.length;e++)i.write(e);return i}_getEntry(e,t,r){return this._getStat(e).then(e=>this._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=A},29543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(72897),o=r(99458);class s extends o.default{constructor(){super(...arguments),this._walkSync=i.walkSync,this._statSync=n.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){const r=[];for(const n of e){const e=this._getFullEntryPath(n),i=this._getEntry(e,n,t);null!==i&&t.entryFilter(i)&&r.push(i)}return r}_getEntry(e,t,r){try{const r=this._getStat(e);return this._makeEntry(r,t)}catch(e){if(r.errorFilter(e))return null;throw e}}_getStat(e){return this._statSync(e,this._fsStatSettings)}}t.default=s},43754:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(12087).cpus().length;t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:n.lstat,lstatSync:n.lstatSync,stat:n.stat,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync};t.default=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,i),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return void 0===e?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),e)}}},60919:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flatten=function(e){return e.reduce((e,t)=>[].concat(e,t),[])},t.splitWhen=function(e,t){const r=[[]];let n=0;for(const i of e)t(i)?(n++,r[n]=[]):r[n].push(i);return r}},35525:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=function(e){return"ENOENT"===e.code}},62524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},16777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(60919);t.array=n;const i=r(35525);t.errno=i;const o=r(62524);t.fs=o;const s=r(71462);t.path=s;const A=r(14659);t.pattern=A;const a=r(2042);t.stream=a;const c=r(10217);t.string=c},71462:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;t.unixify=function(e){return e.replace(/\\/g,"/")},t.makeAbsolute=function(e,t){return n.resolve(e,t)},t.escape=function(e){return e.replace(i,"\\$2")},t.removeLeadingDotSegment=function(e){if("."===e.charAt(0)){const t=e.charAt(1);if("/"===t||"\\"===t)return e.slice(2)}return e}},14659:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(97098),o=r(2401),s=r(54722),A=/[*?]|^!/,a=/\[.*]/,c=/(?:^|[^!*+?@])\(.*\|.*\)/,u=/[!*+?@]\(.*\)/,l=/{.*(?:,|\.\.).*}/;function h(e,t={}){return!g(e,t)}function g(e,t={}){return!(!1!==t.caseSensitiveMatch&&!e.includes("\\"))||(!!(A.test(e)||a.test(e)||c.test(e))||(!(!1===t.extglob||!u.test(e))||!(!1===t.braceExpansion||!l.test(e))))}function f(e){return e.startsWith("!")&&"("!==e[1]}function p(e){return!f(e)}function d(e){return e.endsWith("/**")}function C(e){return o.braces(e,{expand:!0,nodupes:!0})}function E(e,t){return o.makeRe(e,t)}t.isStaticPattern=h,t.isDynamicPattern=g,t.convertToPositivePattern=function(e){return f(e)?e.slice(1):e},t.convertToNegativePattern=function(e){return"!"+e},t.isNegativePattern=f,t.isPositivePattern=p,t.getNegativePatterns=function(e){return e.filter(f)},t.getPositivePatterns=function(e){return e.filter(p)},t.getBaseDirectory=function(e){return i(e,{flipBackslashes:!1})},t.hasGlobStar=function(e){return e.includes("**")},t.endsWithSlashGlobStar=d,t.isAffectDepthOfReadingPattern=function(e){const t=n.basename(e);return d(e)||h(t)},t.expandPatternsWithBraceExpansion=function(e){return e.reduce((e,t)=>e.concat(C(t)),[])},t.expandBraceExpansion=C,t.getPatternParts=function(e,t){const r=s.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return 0===r.parts.length?[e]:r.parts},t.makeRe=E,t.convertPatternsToRe=function(e,t){return e.map(e=>E(e,t))},t.matchAny=function(e,t){return t.some(t=>t.test(e))}},2042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(55598);function i(e){e.forEach(e=>e.emit("close"))}t.merge=function(e){const t=n(e);return e.forEach(e=>{e.once("error",e=>t.emit("error",e))}),t.once("close",()=>i(e)),t.once("end",()=>i(e)),t}},10217:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isString=function(e){return"string"==typeof e},t.isEmpty=function(e){return""===e}},98360:(e,t,r)=>{"use strict";var n=r(2383);function i(){}function o(){this.value=null,this.callback=i,this.next=null,this.release=i,this.context=null;var e=this;this.worked=function(t,r){var n=e.callback;e.value=null,e.callback=i,n.call(e.context,t,r),e.release(e)}}e.exports=function(e,t,r){"function"==typeof e&&(r=t,t=e,e=null);var s=n(o),A=null,a=null,c=0,u={push:function(r,n){var o=s.get();o.context=e,o.release=l,o.value=r,o.callback=n||i,c===u.concurrency||u.paused?a?(a.next=o,a=o):(A=o,a=o,u.saturated()):(c++,t.call(e,o.value,o.worked))},drain:i,saturated:i,pause:function(){u.paused=!0},paused:!1,concurrency:r,running:function(){return c},resume:function(){if(!u.paused)return;u.paused=!1;for(var e=0;e<u.concurrency;e++)c++,l()},idle:function(){return 0===c&&0===u.length()},length:function(){var e=A,t=0;for(;e;)e=e.next,t++;return t},unshift:function(r,n){var o=s.get();o.context=e,o.release=l,o.value=r,o.callback=n||i,c===u.concurrency||u.paused?A?(o.next=A,A=o):(A=o,a=o,u.saturated()):(c++,t.call(e,o.value,o.worked))},empty:i,kill:function(){A=null,a=null,u.drain=i},killAndDrain:function(){A=null,a=null,u.drain(),u.drain=i}};return u;function l(r){r&&s.release(r);var n=A;n?u.paused?c--:(a===A&&(a=null),A=n.next,n.next=null,t.call(e,n.value,n.worked),null===a&&u.empty()):0==--c&&u.drain()}}},19184:(e,t,r)=>{"use strict";class n{constructor(e,t,r){this.__specs=e||{},Object.keys(this.__specs).forEach(e=>{if("string"==typeof this.__specs[e]){const t=this.__specs[e],r=this.__specs[t];if(!r)throw new Error(`Alias refers to invalid key: ${t} -> ${e}`);{const n=r.aliases||[];n.push(e,t),r.aliases=[...new Set(n)],this.__specs[e]=r}}}),this.__opts=t||{},this.__providers=A(r.filter(e=>null!=e&&"object"==typeof e)),this.__isFiggyPudding=!0}get(e){return i(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[r,n]of this.entries())e.call(t,n,r,this)}toJSON(){const e={};return this.forEach((t,r)=>{e[r]=t}),e}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];const t=e||this.__opts.other;if(t){const e=new Set;for(let r of this.__providers){const n=r.entries?r.entries(t):a(r);for(let[r,i]of n)t(r)&&!e.has(r)&&(e.add(r),yield[r,i])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new n(this.__specs,this.__opts,A(this.__providers).concat(e)),s)}}try{const e=r(31669);n.prototype[e.inspect.custom]=function(t,r){return this[Symbol.toStringTag]+" "+e.inspect(this.toJSON(),r)}}catch(e){}function i(e,t,r){let n=e.__specs[t];if(!r||n||e.__opts.other&&e.__opts.other(t)){let r;n||(n={});for(let i of e.__providers){if(r=o(t,i),void 0===r&&n.aliases&&n.aliases.length)for(let e of n.aliases)if(e!==t&&(r=o(e,i),void 0!==r))break;if(void 0!==r)break}return void 0===r&&void 0!==n.default?"function"==typeof n.default?n.default(e):n.default:r}!function(e){throw Object.assign(new Error("invalid config key requested: "+e),{code:"EBADKEY"})}(t)}function o(e,t){let r;return r=t.__isFiggyPudding?i(t,e,!1):"function"==typeof t.get?t.get(e):t[e],r}const s={has:(e,t)=>t in e.__specs&&void 0!==i(e,t,!1),ownKeys:e=>Object.keys(e.__specs),get:(e,t)=>"symbol"==typeof t||"__"===t.slice(0,2)||t in n.prototype?e[t]:e.get(t),set(e,t,r){if("symbol"==typeof t||"__"===t.slice(0,2))return e[t]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};function A(e){const t=[];return e.forEach(e=>t.unshift(e)),t}function a(e){return Object.keys(e).map(t=>[t,e[t]])}e.exports=function(e,t){return function(...r){return new Proxy(new n(e,t,r),s)}}},51938:(e,t,r)=>{"use strict";const n=r(66349),{platform:i}=process,o={tick:"✔",cross:"✖",star:"★",square:"▇",squareSmall:"◻",squareSmallFilled:"◼",play:"▶",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",circleQuestionMark:"?⃝",bullet:"●",dot:"․",line:"─",ellipsis:"…",pointer:"❯",pointerSmall:"›",info:"ℹ",warning:"⚠",hamburger:"☰",smiley:"㋡",mustache:"෴",heart:"♥",nodejs:"⬢",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",questionMarkPrefix:"?⃝",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneSeventh:"⅐",oneEighth:"⅛",oneNinth:"⅑",oneTenth:"⅒",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞"},s={tick:"√",cross:"×",star:"*",square:"█",squareSmall:"[ ]",squareSmallFilled:"[█]",play:"►",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"─",ellipsis:"...",pointer:">",pointerSmall:"»",info:"i",warning:"‼",hamburger:"≡",smiley:"☺",mustache:"┌─┐",heart:o.heart,nodejs:"♦",arrowUp:o.arrowUp,arrowDown:o.arrowDown,arrowLeft:o.arrowLeft,arrowRight:o.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",questionMarkPrefix:"？",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};"linux"===i&&(o.questionMarkPrefix="?");const A="win32"===i?s:o;e.exports=Object.assign(e=>{if(A===o)return e;for(const[t,r]of Object.entries(o))r!==A[t]&&(e=e.replace(new RegExp(n(r),"g"),A[t]));return e},A),e.exports.main=o,e.exports.windows=s},52169:(e,t,r)=>{"use strict";
+/*!
+ * fill-range <https://github.com/jonschlinkert/fill-range>
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */const n=r(31669),i=r(84615),o=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=e=>"number"==typeof e||"string"==typeof e&&""!==e,A=e=>Number.isInteger(+e),a=e=>{let t=""+e,r=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++r];);return r>0},c=(e,t,r)=>{if(t>0){let r="-"===e[0]?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return!1===r?String(e):e},u=(e,t)=>{let r="-"===e[0]?"-":"";for(r&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return r?"-"+e:e},l=(e,t,r,n)=>{if(r)return i(e,t,{wrap:!1,...n});let o=String.fromCharCode(e);return e===t?o:`[${o}-${String.fromCharCode(t)}]`},h=(e,t,r)=>{if(Array.isArray(e)){let t=!0===r.wrap,n=r.capture?"":"?:";return t?`(${n}${e.join("|")})`:e.join("|")}return i(e,t,r)},g=(...e)=>new RangeError("Invalid range arguments: "+n.inspect(...e)),f=(e,t,r)=>{if(!0===r.strictRanges)throw g([e,t]);return[]},p=(e,t,r=1,n={})=>{let i=Number(e),o=Number(t);if(!Number.isInteger(i)||!Number.isInteger(o)){if(!0===n.strictRanges)throw g([e,t]);return[]}0===i&&(i=0),0===o&&(o=0);let s=i>o,A=String(e),f=String(t),p=String(r);r=Math.max(Math.abs(r),1);let d=a(A)||a(f)||a(p),C=d?Math.max(A.length,f.length,p.length):0,E=!1===d&&!1===((e,t,r)=>"string"==typeof e||"string"==typeof t||!0===r.stringify)(e,t,n),I=n.transform||(e=>t=>!0===e?Number(t):String(t))(E);if(n.toRegex&&1===r)return l(u(e,C),u(t,C),!0,n);let m={negatives:[],positives:[]},y=[],w=0;for(;s?i>=o:i<=o;)!0===n.toRegex&&r>1?m[(B=i)<0?"negatives":"positives"].push(Math.abs(B)):y.push(c(I(i,w),C,E)),i=s?i-r:i+r,w++;var B;return!0===n.toRegex?r>1?((e,t)=>{e.negatives.sort((e,t)=>e<t?-1:e>t?1:0),e.positives.sort((e,t)=>e<t?-1:e>t?1:0);let r,n=t.capture?"":"?:",i="",o="";return e.positives.length&&(i=e.positives.join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.join("|")})`),r=i&&o?`${i}|${o}`:i||o,t.wrap?`(${n}${r})`:r})(m,n):h(y,null,{wrap:!1,...n}):y},d=(e,t,r,n={})=>{if(null==t&&s(e))return[e];if(!s(e)||!s(t))return f(e,t,n);if("function"==typeof r)return d(e,t,1,{transform:r});if(o(r))return d(e,t,0,r);let i={...n};return!0===i.capture&&(i.wrap=!0),r=r||i.step||1,A(r)?A(e)&&A(t)?p(e,t,r,i):((e,t,r=1,n={})=>{if(!A(e)&&e.length>1||!A(t)&&t.length>1)return f(e,t,n);let i=n.transform||(e=>String.fromCharCode(e)),o=(""+e).charCodeAt(0),s=(""+t).charCodeAt(0),a=o>s,c=Math.min(o,s),u=Math.max(o,s);if(n.toRegex&&1===r)return l(c,u,!1,n);let g=[],p=0;for(;a?o>=s:o<=s;)g.push(i(o,p)),o=a?o-r:o+r,p++;return!0===n.toRegex?h(g,null,{wrap:!1,options:n}):g})(e,t,Math.max(Math.abs(r),1),i):null==r||o(r)?d(e,t,1,r):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(r,i)};e.exports=d},50683:e=>{e.exports=function(e){return[...e].reduce((e,[t,r])=>(e[t]=r,e),{})}},13302:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},28123:(e,t,r)=>{"use strict";const n=r(44380),i=r(28614).EventEmitter,o=r(35747),s=process.binding("fs"),A=(s.writeBuffers,s.FSReqWrap),a=Symbol("_autoClose"),c=Symbol("_close"),u=Symbol("_ended"),l=Symbol("_fd"),h=Symbol("_finished"),g=Symbol("_flags"),f=Symbol("_flush"),p=Symbol("_handleChunk"),d=Symbol("_makeBuf"),C=Symbol("_mode"),E=Symbol("_needDrain"),I=Symbol("_onerror"),m=Symbol("_onopen"),y=Symbol("_onread"),w=Symbol("_onwrite"),B=Symbol("_open"),Q=Symbol("_path"),v=Symbol("_pos"),D=Symbol("_queue"),b=Symbol("_read"),S=Symbol("_readSize"),k=Symbol("_reading"),x=Symbol("_remain"),F=Symbol("_size"),M=Symbol("_write"),N=Symbol("_writing"),R=Symbol("_defaultFlag");class K extends n{constructor(e,t){if(super(t=t||{}),this.writable=!1,"string"!=typeof e)throw new TypeError("path must be a string");this[l]="number"==typeof t.fd?t.fd:null,this[Q]=e,this[S]=t.readSize||16777216,this[k]=!1,this[F]="number"==typeof t.size?t.size:1/0,this[x]=this[F],this[a]="boolean"!=typeof t.autoClose||t.autoClose,"number"==typeof this[l]?this[b]():this[B]()}get fd(){return this[l]}get path(){return this[Q]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[B](){o.open(this[Q],"r",(e,t)=>this[m](e,t))}[m](e,t){e?this[I](e):(this[l]=t,this.emit("open",t),this[b]())}[d](){return Buffer.allocUnsafe(Math.min(this[S],this[x]))}[b](){if(!this[k]){this[k]=!0;const e=this[d]();if(0===e.length)return process.nextTick(()=>this[y](null,0,e));o.read(this[l],e,0,e.length,null,(e,t,r)=>this[y](e,t,r))}}[y](e,t,r){this[k]=!1,e?this[I](e):this[p](t,r)&&this[b]()}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}[I](e){this[k]=!0,this[c](),this.emit("error",e)}[p](e,t){let r=!1;return this[x]-=e,e>0&&(r=super.write(e<t.length?t.slice(0,e):t)),(0===e||this[x]<=0)&&(r=!1,this[c](),super.end()),r}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":"number"==typeof this[l]&&this[b]();break;default:return super.emit(e,t)}}}class L extends i{constructor(e,t){super(t=t||{}),this.readable=!1,this[N]=!1,this[u]=!1,this[E]=!1,this[D]=[],this[Q]=e,this[l]="number"==typeof t.fd?t.fd:null,this[C]=void 0===t.mode?438:t.mode,this[v]="number"==typeof t.start?t.start:null,this[a]="boolean"!=typeof t.autoClose||t.autoClose;const r=null!==this[v]?"r+":"w";this[R]=void 0===t.flags,this[g]=this[R]?r:t.flags,null===this[l]&&this[B]()}get fd(){return this[l]}get path(){return this[Q]}[I](e){this[c](),this[N]=!0,this.emit("error",e)}[B](){o.open(this[Q],this[g],this[C],(e,t)=>this[m](e,t))}[m](e,t){this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code?(this[g]="w",this[B]()):e?this[I](e):(this[l]=t,this.emit("open",t),this[f]())}end(e,t){e&&this.write(e,t),this[u]=!0,this[N]||this[D].length||"number"!=typeof this[l]||this[w](null,0)}write(e,t){return"string"==typeof e&&(e=new Buffer(e,t)),this[u]?(this.emit("error",new Error("write() after end()")),!1):null===this[l]||this[N]||this[D].length?(this[D].push(e),this[E]=!0,!1):(this[N]=!0,this[M](e),!0)}[M](e){o.write(this[l],e,0,e.length,this[v],(e,t)=>this[w](e,t))}[w](e,t){e?this[I](e):(null!==this[v]&&(this[v]+=t),this[D].length?this[f]():(this[N]=!1,this[u]&&!this[h]?(this[h]=!0,this[c](),this.emit("finish")):this[E]&&(this[E]=!1,this.emit("drain"))))}[f](){if(0===this[D].length)this[u]&&this[w](null,0);else if(1===this[D].length)this[M](this[D].pop());else{const e=this[D];this[D]=[],T(this[l],e,this[v],(e,t)=>this[w](e,t))}}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}}const T=(e,t,r,n)=>{const i=new A;i.oncomplete=(e,r)=>n(e,r,t),s.writeBuffers(e,t,r,i)};t.ReadStream=K,t.ReadStreamSync=class extends K{[B](){let e=!0;try{this[m](null,o.openSync(this[Q],"r")),e=!1}finally{e&&this[c]()}}[b](){let e=!0;try{if(!this[k]){for(this[k]=!0;;){const e=this[d](),t=0===e.length?0:o.readSync(this[l],e,0,e.length,null);if(!this[p](t,e))break}this[k]=!1}e=!1}finally{e&&this[c]()}}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}},t.WriteStream=L,t.WriteStreamSync=class extends L{[B](){let e;try{e=o.openSync(this[Q],this[g],this[C])}catch(e){if(this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code)return this[g]="w",this[B]();throw e}this[m](null,e)}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}[M](e){try{this[w](null,o.writeSync(this[l],e,0,e.length,this[v]))}catch(e){this[w](e,0)}}}},33198:(e,t,r)=>{e.exports=u,u.realpath=u,u.sync=l,u.realpathSync=l,u.monkeypatch=function(){n.realpath=u,n.realpathSync=l},u.unmonkeypatch=function(){n.realpath=i,n.realpathSync=o};var n=r(35747),i=n.realpath,o=n.realpathSync,s=process.version,A=/^v[0-5]\./.test(s),a=r(7343);function c(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function u(e,t,r){if(A)return i(e,t,r);"function"==typeof t&&(r=t,t=null),i(e,t,(function(n,i){c(n)?a.realpath(e,t,r):r(n,i)}))}function l(e,t){if(A)return o(e,t);try{return o(e,t)}catch(r){if(c(r))return a.realpathSync(e,t);throw r}}},7343:(e,t,r)=>{var n=r(85622),i="win32"===process.platform,o=r(35747),s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function A(e){return"function"==typeof e?e:function(){var e;if(s){var t=new Error;e=function(e){e&&(t.message=e.message,r(e=t))}}else e=r;return e;function r(e){if(e){if(process.throwDeprecation)throw e;if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);process.traceDeprecation?console.trace(t):console.error(t)}}}}()}n.normalize;if(i)var a=/(.*?)(?:[\/\\]+|$)/g;else a=/(.*?)(?:[\/]+|$)/g;if(i)var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;else c=/^[\/]*/;t.realpathSync=function(e,t){if(e=n.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var r,s,A,u,l=e,h={},g={};function f(){var t=c.exec(e);r=t[0].length,s=t[0],A=t[0],u="",i&&!g[A]&&(o.lstatSync(A),g[A]=!0)}for(f();r<e.length;){a.lastIndex=r;var p=a.exec(e);if(u=s,s+=p[0],A=u+p[1],r=a.lastIndex,!(g[A]||t&&t[A]===A)){var d;if(t&&Object.prototype.hasOwnProperty.call(t,A))d=t[A];else{var C=o.lstatSync(A);if(!C.isSymbolicLink()){g[A]=!0,t&&(t[A]=A);continue}var E=null;if(!i){var I=C.dev.toString(32)+":"+C.ino.toString(32);h.hasOwnProperty(I)&&(E=h[I])}null===E&&(o.statSync(A),E=o.readlinkSync(A)),d=n.resolve(u,E),t&&(t[A]=d),i||(h[I]=E)}e=n.resolve(d,e.slice(r)),f()}}return t&&(t[l]=e),e},t.realpath=function(e,t,r){if("function"!=typeof r&&(r=A(t),t=null),e=n.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return process.nextTick(r.bind(null,null,t[e]));var s,u,l,h,g=e,f={},p={};function d(){var t=c.exec(e);s=t[0].length,u=t[0],l=t[0],h="",i&&!p[l]?o.lstat(l,(function(e){if(e)return r(e);p[l]=!0,C()})):process.nextTick(C)}function C(){if(s>=e.length)return t&&(t[g]=e),r(null,e);a.lastIndex=s;var n=a.exec(e);return h=u,u+=n[0],l=h+n[1],s=a.lastIndex,p[l]||t&&t[l]===l?process.nextTick(C):t&&Object.prototype.hasOwnProperty.call(t,l)?m(t[l]):o.lstat(l,E)}function E(e,n){if(e)return r(e);if(!n.isSymbolicLink())return p[l]=!0,t&&(t[l]=l),process.nextTick(C);if(!i){var s=n.dev.toString(32)+":"+n.ino.toString(32);if(f.hasOwnProperty(s))return I(null,f[s],l)}o.stat(l,(function(e){if(e)return r(e);o.readlink(l,(function(e,t){i||(f[s]=t),I(e,t)}))}))}function I(e,i,o){if(e)return r(e);var s=n.resolve(h,i);t&&(t[o]=s),m(s)}function m(t){e=n.resolve(t,e.slice(s)),d()}d()}},72137:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const i="buffer"===r;let o=!1;t?o=!(r||i):r=r||"utf8",i&&(r=null);const s=new n({objectMode:o});r&&s.setEncoding(r);let A=0;const a=[];return s.on("data",e=>{a.push(e),o?A=a.length:A+=e.length}),s.getBufferedValue=()=>t?a:i?Buffer.concat(a,A):a.join(""),s.getBufferedLength=()=>A,s}},58764:(e,t,r)=>{"use strict";const n=r(50372),i=r(72137);class o extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function s(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let s;return await new Promise((A,a)=>{const c=e=>{e&&(e.bufferedData=s.getBufferedValue()),a(e)};s=n(e,i(t),e=>{e?c(e):A()}),s.on("data",()=>{s.getBufferedLength()>r&&c(new o)})}),s.getBufferedValue()}e.exports=s,e.exports.default=s,e.exports.buffer=(e,t)=>s(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>s(e,{...t,array:!0}),e.exports.MaxBufferError=o},72171:(e,t,r)=>{function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.alphasort=c,t.alphasorti=a,t.setopts=function(e,t,r){r||(r={});if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0);e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),function(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]);e.ignore.length&&(e.ignore=e.ignore.map(u))}(e,r),e.changedCwd=!1;var o=process.cwd();n(r,"cwd")?(e.cwd=i.resolve(r.cwd),e.changedCwd=e.cwd!==o):e.cwd=o;e.root=r.root||i.resolve(e.cwd,"/"),e.root=i.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/"));e.cwdAbs=s(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/"));e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new A(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(e){for(var t=e.nounique,r=t?[]:Object.create(null),n=0,i=e.matches.length;n<i;n++){var o=e.matches[n];if(o&&0!==Object.keys(o).length){var s=Object.keys(o);t?r.push.apply(r,s):s.forEach((function(e){r[e]=!0}))}else if(e.nonull){var A=e.minimatch.globSet[n];t?r.push(A):r[A]=!0}}t||(r=Object.keys(r));e.nosort||(r=r.sort(e.nocase?a:c));if(e.mark){for(n=0;n<r.length;n++)r[n]=e._mark(r[n]);e.nodir&&(r=r.filter((function(t){var r=!/\/$/.test(t),n=e.cache[t]||e.cache[l(e,t)];return r&&n&&(r="DIR"!==n&&!Array.isArray(n)),r})))}e.ignore.length&&(r=r.filter((function(t){return!h(e,t)})));e.found=r},t.mark=function(e,t){var r=l(e,t),n=e.cache[r],i=t;if(n){var o="DIR"===n||Array.isArray(n),s="/"===t.slice(-1);if(o&&!s?i+="/":!o&&s&&(i=i.slice(0,-1)),i!==t){var A=l(e,i);e.statCache[A]=e.statCache[r],e.cache[A]=e.cache[r]}}return i},t.isIgnored=h,t.childrenIgnored=function(e,t){return!!e.ignore.length&&e.ignore.some((function(e){return!(!e.gmatcher||!e.gmatcher.match(t))}))};var i=r(85622),o=r(52670),s=r(71471),A=o.Minimatch;function a(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}function c(e,t){return e.localeCompare(t)}function u(e){var t=null;if("/**"===e.slice(-3)){var r=e.replace(/(\/\*\*)+$/,"");t=new A(r,{dot:!0})}return{matcher:new A(e,{dot:!0}),gmatcher:t}}function l(e,t){var r=t;return r="/"===t.charAt(0)?i.join(e.root,t):s(t)||""===t?t:e.changedCwd?i.resolve(e.cwd,t):i.resolve(t),"win32"===process.platform&&(r=r.replace(/\\/g,"/")),r}function h(e,t){return!!e.ignore.length&&e.ignore.some((function(e){return e.matcher.match(t)||!(!e.gmatcher||!e.gmatcher.match(t))}))}},8401:(e,t,r)=>{e.exports=I;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(85870)),A=r(28614).EventEmitter,a=r(85622),c=r(42357),u=r(71471),l=r(131),h=r(72171),g=(h.alphasort,h.alphasorti,h.setopts),f=h.ownProp,p=r(24679),d=(r(31669),h.childrenIgnored),C=h.isIgnored,E=r(91162);function I(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return l(e,t)}return new y(e,t,r)}I.sync=l;var m=I.GlobSync=l.GlobSync;function y(e,t,r){if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new m(e,t)}if(!(this instanceof y))return new y(e,t,r);g(this,e,t),this._didRealPath=!1;var n=this.minimatch.set.length;this.matches=new Array(n),"function"==typeof r&&(r=E(r),this.on("error",r),this.on("end",(function(e){r(null,e)})));var i=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===n)return s();for(var o=0;o<n;o++)this._process(this.minimatch.set[o],o,!1,s);function s(){--i._processing,i._processing<=0&&i._finish()}}I.glob=I,I.hasMagic=function(e,t){var r=function(e,t){if(null===t||"object"!=typeof t)return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}({},t);r.noprocess=!0;var n=new y(e,r).minimatch.set;if(!e)return!1;if(n.length>1)return!0;for(var i=0;i<n[0].length;i++)if("string"!=typeof n[0][i])return!0;return!1},I.Glob=y,s(y,A),y.prototype._finish=function(){if(c(this instanceof y),!this.aborted){if(this.realpath&&!this._didRealpath)return this._realpath();h.finish(this),this.emit("end",this.found)}},y.prototype._realpath=function(){if(!this._didRealpath){this._didRealpath=!0;var e=this.matches.length;if(0===e)return this._finish();for(var t=this,r=0;r<this.matches.length;r++)this._realpathSet(r,n)}function n(){0==--e&&t._finish()}},y.prototype._realpathSet=function(e,t){var r=this.matches[e];if(!r)return t();var n=Object.keys(r),o=this,s=n.length;if(0===s)return t();var A=this.matches[e]=Object.create(null);n.forEach((function(r,n){r=o._makeAbs(r),i.realpath(r,o.realpathCache,(function(n,i){n?"stat"===n.syscall?A[r]=!0:o.emit("error",n):A[i]=!0,0==--s&&(o.matches[e]=A,t())}))}))},y.prototype._mark=function(e){return h.mark(this,e)},y.prototype._makeAbs=function(e){return h.makeAbs(this,e)},y.prototype.abort=function(){this.aborted=!0,this.emit("abort")},y.prototype.pause=function(){this.paused||(this.paused=!0,this.emit("pause"))},y.prototype.resume=function(){if(this.paused){if(this.emit("resume"),this.paused=!1,this._emitQueue.length){var e=this._emitQueue.slice(0);this._emitQueue.length=0;for(var t=0;t<e.length;t++){var r=e[t];this._emitMatch(r[0],r[1])}}if(this._processQueue.length){var n=this._processQueue.slice(0);this._processQueue.length=0;for(t=0;t<n.length;t++){var i=n[t];this._processing--,this._process(i[0],i[1],i[2],i[3])}}}},y.prototype._process=function(e,t,r,n){if(c(this instanceof y),c("function"==typeof n),!this.aborted)if(this._processing++,this.paused)this._processQueue.push([e,t,r,n]);else{for(var i,s=0;"string"==typeof e[s];)s++;switch(s){case e.length:return void this._processSimple(e.join("/"),t,n);case 0:i=null;break;default:i=e.slice(0,s).join("/")}var A,a=e.slice(s);null===i?A=".":u(i)||u(e.join("/"))?(i&&u(i)||(i="/"+i),A=i):A=i;var l=this._makeAbs(A);if(d(this,A))return n();a[0]===o.GLOBSTAR?this._processGlobStar(i,A,l,a,t,r,n):this._processReaddir(i,A,l,a,t,r,n)}},y.prototype._processReaddir=function(e,t,r,n,i,o,s){var A=this;this._readdir(r,o,(function(a,c){return A._processReaddir2(e,t,r,n,i,o,c,s)}))},y.prototype._processReaddir2=function(e,t,r,n,i,o,s,A){if(!s)return A();for(var c=n[0],u=!!this.minimatch.negate,l=c._glob,h=this.dot||"."===l.charAt(0),g=[],f=0;f<s.length;f++){if("."!==(d=s[f]).charAt(0)||h)(u&&!e?!d.match(c):d.match(c))&&g.push(d)}var p=g.length;if(0===p)return A();if(1===n.length&&!this.mark&&!this.stat){this.matches[i]||(this.matches[i]=Object.create(null));for(f=0;f<p;f++){var d=g[f];e&&(d="/"!==e?e+"/"+d:e+d),"/"!==d.charAt(0)||this.nomount||(d=a.join(this.root,d)),this._emitMatch(i,d)}return A()}n.shift();for(f=0;f<p;f++){d=g[f];e&&(d="/"!==e?e+"/"+d:e+d),this._process([d].concat(n),i,o,A)}A()},y.prototype._emitMatch=function(e,t){if(!this.aborted&&!C(this,t))if(this.paused)this._emitQueue.push([e,t]);else{var r=u(t)?t:this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if("DIR"===n||Array.isArray(n))return}this.matches[e][t]=!0;var i=this.statCache[r];i&&this.emit("stat",t,i),this.emit("match",t)}}},y.prototype._readdirInGlobStar=function(e,t){if(!this.aborted){if(this.follow)return this._readdir(e,!1,t);var r=this,i=p("lstat\0"+e,(function(n,i){if(n&&"ENOENT"===n.code)return t();var o=i&&i.isSymbolicLink();r.symlinks[e]=o,o||!i||i.isDirectory()?r._readdir(e,!1,t):(r.cache[e]="FILE",t())}));i&&n.lstat(e,i)}},y.prototype._readdir=function(e,t,r){if(!this.aborted&&(r=p("readdir\0"+e+"\0"+t,r))){if(t&&!f(this.symlinks,e))return this._readdirInGlobStar(e,r);if(f(this.cache,e)){var i=this.cache[e];if(!i||"FILE"===i)return r();if(Array.isArray(i))return r(null,i)}n.readdir(e,function(e,t,r){return function(n,i){n?e._readdirError(t,n,r):e._readdirEntries(t,i,r)}}(this,e,r))}},y.prototype._readdirEntries=function(e,t,r){if(!this.aborted){if(!this.mark&&!this.stat)for(var n=0;n<t.length;n++){var i=t[n];i="/"===e?e+i:e+"/"+i,this.cache[i]=!0}return this.cache[e]=t,r(null,t)}},y.prototype._readdirError=function(e,t,r){if(!this.aborted){switch(t.code){case"ENOTSUP":case"ENOTDIR":var n=this._makeAbs(e);if(this.cache[n]="FILE",n===this.cwdAbs){var i=new Error(t.code+" invalid cwd "+this.cwd);i.path=this.cwd,i.code=t.code,this.emit("error",i),this.abort()}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:this.cache[this._makeAbs(e)]=!1,this.strict&&(this.emit("error",t),this.abort()),this.silent||console.error("glob error",t)}return r()}},y.prototype._processGlobStar=function(e,t,r,n,i,o,s){var A=this;this._readdir(r,o,(function(a,c){A._processGlobStar2(e,t,r,n,i,o,c,s)}))},y.prototype._processGlobStar2=function(e,t,r,n,i,o,s,A){if(!s)return A();var a=n.slice(1),c=e?[e]:[],u=c.concat(a);this._process(u,i,!1,A);var l=this.symlinks[r],h=s.length;if(l&&o)return A();for(var g=0;g<h;g++){if("."!==s[g].charAt(0)||this.dot){var f=c.concat(s[g],a);this._process(f,i,!0,A);var p=c.concat(s[g],n);this._process(p,i,!0,A)}}A()},y.prototype._processSimple=function(e,t,r){var n=this;this._stat(e,(function(i,o){n._processSimple2(e,t,i,o,r)}))},y.prototype._processSimple2=function(e,t,r,n,i){if(this.matches[t]||(this.matches[t]=Object.create(null)),!n)return i();if(e&&u(e)&&!this.nomount){var o=/[\/\\]$/.test(e);"/"===e.charAt(0)?e=a.join(this.root,e):(e=a.resolve(this.root,e),o&&(e+="/"))}"win32"===process.platform&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e),i()},y.prototype._stat=function(e,t){var r=this._makeAbs(e),i="/"===e.slice(-1);if(e.length>this.maxLength)return t();if(!this.stat&&f(this.cache,r)){var o=this.cache[r];if(Array.isArray(o)&&(o="DIR"),!i||"DIR"===o)return t(null,o);if(i&&"FILE"===o)return t()}var s=this.statCache[r];if(void 0!==s){if(!1===s)return t(null,s);var A=s.isDirectory()?"DIR":"FILE";return i&&"FILE"===A?t():t(null,A,s)}var a=this,c=p("stat\0"+r,(function(i,o){if(o&&o.isSymbolicLink())return n.stat(r,(function(n,i){n?a._stat2(e,r,null,o,t):a._stat2(e,r,n,i,t)}));a._stat2(e,r,i,o,t)}));c&&n.lstat(r,c)},y.prototype._stat2=function(e,t,r,n,i){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,i();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return i(null,!1,n);var s=!0;return n&&(s=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,o&&"FILE"===s?i():i(null,s,n)}},131:(e,t,r)=>{e.exports=f,f.GlobSync=p;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(8401).Glob,r(31669),r(85622)),A=r(42357),a=r(71471),c=r(72171),u=(c.alphasort,c.alphasorti,c.setopts),l=c.ownProp,h=c.childrenIgnored,g=c.isIgnored;function f(e,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new p(e,t).found}function p(e,t){if(!e)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof p))return new p(e,t);if(u(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var n=0;n<r;n++)this._process(this.minimatch.set[n],n,!1);this._finish()}p.prototype._finish=function(){if(A(this instanceof p),this.realpath){var e=this;this.matches.forEach((function(t,r){var n=e.matches[r]=Object.create(null);for(var o in t)try{o=e._makeAbs(o),n[i.realpathSync(o,e.realpathCache)]=!0}catch(t){if("stat"!==t.syscall)throw t;n[e._makeAbs(o)]=!0}}))}c.finish(this)},p.prototype._process=function(e,t,r){A(this instanceof p);for(var n,i=0;"string"==typeof e[i];)i++;switch(i){case e.length:return void this._processSimple(e.join("/"),t);case 0:n=null;break;default:n=e.slice(0,i).join("/")}var s,c=e.slice(i);null===n?s=".":a(n)||a(e.join("/"))?(n&&a(n)||(n="/"+n),s=n):s=n;var u=this._makeAbs(s);h(this,s)||(c[0]===o.GLOBSTAR?this._processGlobStar(n,s,u,c,t,r):this._processReaddir(n,s,u,c,t,r))},p.prototype._processReaddir=function(e,t,r,n,i,o){var A=this._readdir(r,o);if(A){for(var a=n[0],c=!!this.minimatch.negate,u=a._glob,l=this.dot||"."===u.charAt(0),h=[],g=0;g<A.length;g++){if("."!==(d=A[g]).charAt(0)||l)(c&&!e?!d.match(a):d.match(a))&&h.push(d)}var f=h.length;if(0!==f)if(1!==n.length||this.mark||this.stat){n.shift();for(g=0;g<f;g++){var p;d=h[g];p=e?[e,d]:[d],this._process(p.concat(n),i,o)}}else{this.matches[i]||(this.matches[i]=Object.create(null));for(var g=0;g<f;g++){var d=h[g];e&&(d="/"!==e.slice(-1)?e+"/"+d:e+d),"/"!==d.charAt(0)||this.nomount||(d=s.join(this.root,d)),this._emitMatch(i,d)}}}},p.prototype._emitMatch=function(e,t){if(!g(this,t)){var r=this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if("DIR"===n||Array.isArray(n))return}this.matches[e][t]=!0,this.stat&&this._stat(t)}}},p.prototype._readdirInGlobStar=function(e){if(this.follow)return this._readdir(e,!1);var t,r;try{r=n.lstatSync(e)}catch(e){if("ENOENT"===e.code)return null}var i=r&&r.isSymbolicLink();return this.symlinks[e]=i,i||!r||r.isDirectory()?t=this._readdir(e,!1):this.cache[e]="FILE",t},p.prototype._readdir=function(e,t){if(t&&!l(this.symlinks,e))return this._readdirInGlobStar(e);if(l(this.cache,e)){var r=this.cache[e];if(!r||"FILE"===r)return null;if(Array.isArray(r))return r}try{return this._readdirEntries(e,n.readdirSync(e))}catch(t){return this._readdirError(e,t),null}},p.prototype._readdirEntries=function(e,t){if(!this.mark&&!this.stat)for(var r=0;r<t.length;r++){var n=t[r];n="/"===e?e+n:e+"/"+n,this.cache[n]=!0}return this.cache[e]=t,t},p.prototype._readdirError=function(e,t){switch(t.code){case"ENOTSUP":case"ENOTDIR":var r=this._makeAbs(e);if(this.cache[r]="FILE",r===this.cwdAbs){var n=new Error(t.code+" invalid cwd "+this.cwd);throw n.path=this.cwd,n.code=t.code,n}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:if(this.cache[this._makeAbs(e)]=!1,this.strict)throw t;this.silent||console.error("glob error",t)}},p.prototype._processGlobStar=function(e,t,r,n,i,o){var s=this._readdir(r,o);if(s){var A=n.slice(1),a=e?[e]:[],c=a.concat(A);this._process(c,i,!1);var u=s.length;if(!this.symlinks[r]||!o)for(var l=0;l<u;l++){if("."!==s[l].charAt(0)||this.dot){var h=a.concat(s[l],A);this._process(h,i,!0);var g=a.concat(s[l],n);this._process(g,i,!0)}}}},p.prototype._processSimple=function(e,t){var r=this._stat(e);if(this.matches[t]||(this.matches[t]=Object.create(null)),r){if(e&&a(e)&&!this.nomount){var n=/[\/\\]$/.test(e);"/"===e.charAt(0)?e=s.join(this.root,e):(e=s.resolve(this.root,e),n&&(e+="/"))}"win32"===process.platform&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e)}},p.prototype._stat=function(e){var t=this._makeAbs(e),r="/"===e.slice(-1);if(e.length>this.maxLength)return!1;if(!this.stat&&l(this.cache,t)){var i=this.cache[t];if(Array.isArray(i)&&(i="DIR"),!r||"DIR"===i)return i;if(r&&"FILE"===i)return!1}var o=this.statCache[t];if(!o){var s;try{s=n.lstatSync(t)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return this.statCache[t]=!1,!1}if(s&&s.isSymbolicLink())try{o=n.statSync(t)}catch(e){o=s}else o=s}this.statCache[t]=o;i=!0;return o&&(i=o.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||i,(!r||"FILE"!==i)&&i},p.prototype._mark=function(e){return c.mark(this,e)},p.prototype._makeAbs=function(e){return c.makeAbs(this,e)}},97098:(e,t,r)=>{"use strict";var n=r(18193),i=r(85622).posix.dirname,o="win32"===r(12087).platform(),s=/\\/g,A=/[\{\[].*[\/]*.*[\}\]]$/,a=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\*\?\|\[\]\(\)\{\}])/g;e.exports=function(e,t){Object.assign({flipBackslashes:!0},t).flipBackslashes&&o&&e.indexOf("/")<0&&(e=e.replace(s,"/")),A.test(e)&&(e+="/"),e+="a";do{e=i(e)}while(n(e)||a.test(e));return e.replace(c,"$1")}},22787:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747),o=r(85622),s=r(19347),A=r(46458),a=r(17234),c=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],u=n(i.readFile),l=(e,t)=>{const r=a(o.relative(t.cwd,o.dirname(t.fileName)));return e.split(/\r?\n/).filter(Boolean).filter(e=>!e.startsWith("#")).map((e=>t=>t.startsWith("!")?"!"+o.posix.join(e,t.slice(1)):o.posix.join(e,t))(r))},h=e=>e.reduce((e,t)=>(e.add(l(t.content,{cwd:t.cwd,fileName:t.filePath})),e),A()),g=(e,t)=>r=>e.ignores(a(o.relative(t,((e,t)=>{if(o.isAbsolute(t)){if(t.startsWith(e))return t;throw new Error(`Path ${t} is not in cwd ${e}`)}return o.join(e,t)})(t,r)))),f=({ignore:e=[],cwd:t=process.cwd()}={})=>({ignore:e,cwd:t});e.exports=async e=>{e=f(e);const t=await s("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}),r=await Promise.all(t.map(t=>(async(e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:await u(r,"utf8")}})(t,e.cwd))),n=h(r);return g(n,e.cwd)},e.exports.sync=e=>{e=f(e);const t=s.sync("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}).map(t=>((e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:i.readFileSync(r,"utf8")}})(t,e.cwd)),r=h(t);return g(r,e.cwd)}},18710:(e,t,r)=>{"use strict";const n=r(35747),i=r(39920),o=r(55598),s=r(8401),A=r(19347),a=r(66241),c=r(22787),{FilterStream:u,UniqueStream:l}=r(90330),h=()=>!1,g=e=>"!"===e[0],f=(e,t)=>{(e=>{if(!e.every(e=>"string"==typeof e))throw new TypeError("Patterns must be a string or an array of strings")})(e=i([].concat(e))),((e={})=>{if(!e.cwd)return;let t;try{t=n.statSync(e.cwd)}catch(e){return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")})(t);const r=[];t={ignore:[],expandDirectories:!0,...t};for(const[n,i]of e.entries()){if(g(i))continue;const o=e.slice(n).filter(g).map(e=>e.slice(1)),s={...t,ignore:t.ignore.concat(o)};r.push({pattern:i,options:s})}return r},p=(e,t)=>e.options.expandDirectories?((e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:"object"==typeof e.options.expandDirectories&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)})(e,t):[e.pattern],d=e=>e&&e.gitignore?c.sync({cwd:e.cwd,ignore:e.ignore}):h,C=e=>t=>{const{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=a.sync(r.ignore)),{pattern:t,options:r}};e.exports=async(e,t)=>{const r=f(e,t),[o,s]=await Promise.all([(async()=>t&&t.gitignore?c({cwd:t.cwd,ignore:t.ignore}):h)(),(async()=>{const e=await Promise.all(r.map(async e=>{const t=await p(e,a);return Promise.all(t.map(C(e)))}));return i(...e)})()]),u=await Promise.all(s.map(e=>A(e.pattern,e.options)));return i(...u).filter(e=>{return!o((t=e,t.stats instanceof n.Stats?t.path:t));var t})},e.exports.sync=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t);return r.reduce((e,t)=>i(e,A.sync(t.pattern,t.options)),[]).filter(e=>!n(e))},e.exports.stream=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t),i=new u(e=>!n(e)),s=new l;return o(r.map(e=>A.stream(e.pattern,e.options))).pipe(i).pipe(s)},e.exports.generateGlobTasks=f,e.exports.hasMagic=(e,t)=>[].concat(e).some(e=>s.hasMagic(e,t)),e.exports.gitignore=c},90330:(e,t,r)=>{"use strict";const{Transform:n}=r(92413);class i extends n{constructor(){super({objectMode:!0})}}e.exports={FilterStream:class extends i{constructor(e){super(),this._filter=e}_transform(e,t,r){this._filter(e)&&this.push(e),r()}},UniqueStream:class extends i{constructor(){super(),this._pushed=new Set}_transform(e,t,r){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),r()}}}},67078:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143),i=new Set([413,429,503]),o=e=>e instanceof n.HTTPError||e instanceof n.ParseError||e instanceof n.MaxRedirectsError;t.default=({attemptCount:e,retryOptions:t,error:r})=>{if(e>t.limit)return 0;const n=t.methods.includes(r.options.method),s=t.errorCodes.includes(r.code),A=o(r)&&t.statusCodes.includes(r.response.statusCode);if(!n||!s&&!A)return 0;if(o(r)){const{response:e}=r;if(e&&"retry-after"in e.headers&&i.has(e.statusCode)){let r=Number(e.headers["retry-after"]);return Number.isNaN(r)?r=Date.parse(e.headers["retry-after"])-Date.now():r*=1e3,void 0===t.maxRetryAfter||r>t.maxRetryAfter?0:r}if(413===e.statusCode)return 0}return 2**(e-1)*1e3+100*Math.random()}},39560:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189),i=r(27143),o=r(8859);o.knownHookEvents.includes("beforeRetry")||o.knownHookEvents.push("beforeRetry","afterResponse"),t.knownBodyTypes=["json","buffer","text"],t.parseBody=(e,t,r)=>{const{rawBody:n}=e;try{if("text"===t)return n.toString(r);if("json"===t)return 0===n.length?"":JSON.parse(n.toString());if("buffer"===t)return Buffer.from(n);throw new i.ParseError({message:`Unknown body type '${t}'`,name:"Error"},e)}catch(t){throw new i.ParseError(t,e)}};class s extends o.default{static normalizeArguments(e,t,r){const i=super.normalizeArguments(e,t,r);if(n.default.null_(i.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");n.assert.any([n.default.string,n.default.undefined],i.encoding),n.assert.any([n.default.boolean,n.default.undefined],i.resolveBodyOnly),n.assert.any([n.default.boolean,n.default.undefined],i.methodRewriting),n.assert.any([n.default.boolean,n.default.undefined],i.isStream);const{retry:o}=i;if(i.retry=r?{...r.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},n.default.object(o)?(i.retry={...i.retry,...o},i.retry.methods=[...new Set(i.retry.methods.map(e=>e.toUpperCase()))],i.retry.statusCodes=[...new Set(i.retry.statusCodes)],i.retry.errorCodes=[...new Set(i.retry.errorCodes)]):n.default.number(o)&&(i.retry.limit=o),n.default.undefined(i.retry.maxRetryAfter)&&(i.retry.maxRetryAfter=Math.min(...[i.timeout.request,i.timeout.connect].filter(n.default.number))),n.default.object(i.pagination)){r&&(i.pagination={...r.pagination,...i.pagination});const{pagination:e}=i;if(!n.default.function_(e.transform))throw new Error("`options.pagination.transform` must be implemented");if(!n.default.function_(e.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!n.default.function_(e.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!n.default.function_(e.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return"json"===i.responseType&&void 0===i.headers.accept&&(i.headers.accept="application/json"),i}static mergeOptions(...e){let t;for(const r of e)t=s.normalizeArguments(void 0,r,t);return t}async _beforeError(e){e instanceof o.RequestError||(e=new o.RequestError(e.message,e,this)),this.emit("error",e)}}t.default=s},57019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143);t.default=function(e,...t){const r=(async()=>{if(e instanceof n.RequestError)try{for(const r of t)if(r)for(const t of r)e=await t(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}},74850:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(58764),o=r(59351),s=r(67078),A=r(27143),a=r(39560);t.PromisableRequest=a.default;const c=r(63227),u=["request","response","redirect","uploadProgress","downloadProgress"];t.default=function e(t){let r,l,h=0;const g=new n.EventEmitter,f=new o((n,o,p)=>{const d=()=>{const{throwHttpErrors:C}=t;C||(t.throwHttpErrors=!0);const E=new a.default(t.url,t);E._noPipe=!0,p(()=>E.destroy());const I=async e=>{try{for(const r of t.hooks.beforeError)e=await r(e)}catch(e){return void o(new A.RequestError(e.message,e,E))}o(e)};r=E,E.once("response",async r=>{if(r.retryCount=h,r.request.aborted)return;const o=()=>{const{statusCode:e}=r,n=t.followRedirect?299:399;return e>=200&&e<=n||304===e};let s;try{s=await i.buffer(E),r.rawBody=s}catch(e){return}try{r.body=a.parseBody(r,t.responseType,t.encoding)}catch(e){if(r.body=s.toString(),o())return void I(e)}try{for(const[n,i]of t.hooks.afterResponse.entries())r=await i(r,async r=>{const i=a.default.normalizeArguments(void 0,{...r,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},t);i.hooks.afterResponse=i.hooks.afterResponse.slice(0,n);for(const e of i.hooks.beforeRetry)await e(i);const o=e(i);return p(()=>{o.catch(()=>{}),o.cancel()}),o})}catch(e){return void I(new A.RequestError(e.message,e,E))}!C||o()?(l=r,n(t.resolveBodyOnly?r.body:r)):I(new A.HTTPError(r))}),E.once("error",e=>{if(f.isCanceled)return;if(!E.options)return void I(e);let r;h++;try{r=t.retry.calculateDelay({attemptCount:h,retryOptions:t.retry,error:e,computedValue:s.default({attemptCount:h,retryOptions:t.retry,error:e,computedValue:0})})}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}if(r){E.destroy();setTimeout(async()=>{t.throwHttpErrors=C;try{for(const r of t.hooks.beforeRetry)await r(t,e,h)}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}d()},r)}else h--,e instanceof A.HTTPError||(E.destroy(),I(e))}),c.default(E,g,u)};d()});f.on=(e,t)=>(g.on(e,t),f);const p=e=>{const r=(async()=>(await f,a.parseBody(l,e,t.encoding)))();return Object.defineProperties(r,Object.getOwnPropertyDescriptors(f)),r};return f.json=()=>(r.writableFinished||void 0!==t.headers.accept||(t.headers.accept="application/json"),p("json")),f.buffer=()=>p("buffer"),f.text=()=>p("text"),f},function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(27143))},27143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351);t.CancelError=n.CancelError;const i=r(8859);t.RequestError=i.RequestError,t.MaxRedirectsError=i.MaxRedirectsError,t.CacheError=i.CacheError,t.UploadError=i.UploadError,t.TimeoutError=i.TimeoutError,t.HTTPError=i.HTTPError,t.ReadError=i.ReadError,t.UnsupportedProtocolError=i.UnsupportedProtocolError;class o extends i.RequestError{constructor(e,t){const{options:r}=t.request;super(`${e.message} in "${r.url.toString()}"`,e,t.request),this.name="ParseError",Object.defineProperty(this,"response",{enumerable:!1,value:t})}}t.ParseError=o},8859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31669),i=r(92413),o=r(35747),s=r(78835),A=r(98605),a=r(98605),c=r(57211),u=r(98298),l=r(53832),h=r(43261),g=r(11200),f=r(9453),p=r(55737),d=r(58764),C=r(8189),E=r(96596),I=r(35637),m=r(63227),y=r(32449),w=r(13656),B=r(80972),Q=r(30291),v=Symbol("request"),D=Symbol("response"),b=Symbol("responseSize"),S=Symbol("downloadedSize"),k=Symbol("bodySize"),x=Symbol("uploadedSize"),F=Symbol("serverResponsesPiped"),M=Symbol("unproxyEvents"),N=Symbol("isFromCache"),R=Symbol("cancelTimeouts"),K=Symbol("startedReading"),L=Symbol("stopReading"),T=Symbol("triggerRead"),P=Symbol("body"),U=Symbol("jobs"),_=Symbol("originalResponse");t.kIsNormalizedAlready=Symbol("isNormalizedAlready");const O=C.default.string(process.versions.brotli);t.withoutBody=new Set(["GET","HEAD"]),t.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError"];const j=new Q.default,Y=new Set([300,301,302,303,304,307,308]),G=["context","body","json","form"];class J extends Error{constructor(e,t,r){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,r instanceof ee?(Object.defineProperty(this,"request",{enumerable:!1,value:r}),Object.defineProperty(this,"response",{enumerable:!1,value:r[D]}),Object.defineProperty(this,"options",{enumerable:!1,value:r.options})):Object.defineProperty(this,"options",{enumerable:!1,value:r}),this.timings=null===(n=this.request)||void 0===n?void 0:n.timings,!C.default.undefined(t.stack)){const e=this.stack.indexOf(this.message)+this.message.length,r=this.stack.slice(e).split("\n").reverse(),n=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split("\n").reverse();for(;0!==n.length&&n[0]===r[0];)r.shift();this.stack=`${this.stack.slice(0,e)}${r.reverse().join("\n")}${n.reverse().join("\n")}`}}}t.RequestError=J;class H extends J{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}}t.MaxRedirectsError=H;class q extends J{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}}t.HTTPError=q;class z extends J{constructor(e,t){super(e.message,e,t),this.name="CacheError"}}t.CacheError=z;class W extends J{constructor(e,t){super(e.message,e,t),this.name="UploadError"}}t.UploadError=W;class V extends J{constructor(e,t,r){super(e.message,e,r),this.name="TimeoutError",this.event=e.event,this.timings=t}}t.TimeoutError=V;class X extends J{constructor(e,t){super(e.message,e,t),this.name="ReadError"}}t.ReadError=X;class Z extends J{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}}t.UnsupportedProtocolError=Z;const $=["socket","connect","continue","information","upgrade","timeout"];class ee extends i.Duplex{constructor(e,r={},n){super({highWaterMark:0}),this[S]=0,this[x]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[L]=!1,this[T]=!1,this[U]=[],this._progressCallbacks=[];const i=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",e=>{e.prependListener("data",i),e.on("data",s),e.prependListener("end",i),e.on("end",s)}),this.on("unpipe",e=>{e.off("data",i),e.off("data",s),e.off("end",i),e.off("end",s)}),this.on("pipe",e=>{e instanceof a.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});const{json:A,body:c,form:u}=r;(A||c||u)&&this._lockWrite(),(async r=>{var i;try{r.body instanceof o.ReadStream&&await(async e=>new Promise((t,r)=>{const n=e=>{r(e)};e.once("error",n),e.once("open",()=>{e.off("error",n),t()})}))(r.body),t.kIsNormalizedAlready in r?this.options=r:this.options=this.constructor.normalizeArguments(e,r,n);const{url:s}=this.options;if(!s)throw new TypeError("Missing `url` property");if(this.requestUrl=s.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed)return void(null===(i=this[v])||void 0===i||i.destroy());for(const e of this[U])e();this.requestInitialized=!0}catch(e){if(e instanceof J)return void this._beforeError(e);this.destroyed||this.destroy(e)}})(r)}static normalizeArguments(e,r,i){var o,A,a,c;const u=r;if(C.default.object(e)&&!C.default.urlInstance(e))r={...i,...e,...r};else{if(e&&r&&r.url)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...i,...r},e&&(r.url=e),C.default.urlInstance(r.url)&&(r.url=new s.URL(r.url.toString()))}if(!1===r.cache&&(r.cache=void 0),!1===r.dnsCache&&(r.dnsCache=void 0),C.assert.any([C.default.string,C.default.undefined],r.method),C.assert.any([C.default.object,C.default.undefined],r.headers),C.assert.any([C.default.string,C.default.urlInstance,C.default.undefined],r.prefixUrl),C.assert.any([C.default.object,C.default.undefined],r.cookieJar),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.searchParams),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.cache),C.assert.any([C.default.object,C.default.number,C.default.undefined],r.timeout),C.assert.any([C.default.object,C.default.undefined],r.context),C.assert.any([C.default.object,C.default.undefined],r.hooks),C.assert.any([C.default.boolean,C.default.undefined],r.decompress),C.assert.any([C.default.boolean,C.default.undefined],r.ignoreInvalidCookies),C.assert.any([C.default.boolean,C.default.undefined],r.followRedirect),C.assert.any([C.default.number,C.default.undefined],r.maxRedirects),C.assert.any([C.default.boolean,C.default.undefined],r.throwHttpErrors),C.assert.any([C.default.boolean,C.default.undefined],r.http2),C.assert.any([C.default.boolean,C.default.undefined],r.allowGetBody),C.assert.any([C.default.boolean,C.default.undefined],r.rejectUnauthorized),C.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(null==i?void 0:i.headers)?r.headers={...r.headers}:r.headers=p({...null==i?void 0:i.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(null==i?void 0:i.searchParams)){C.default.string(r.searchParams)||r.searchParams instanceof s.URLSearchParams||function(e){for(const t in e){const r=e[t];if(!(C.default.string(r)||C.default.number(r)||C.default.boolean(r)||C.default.null_(r)))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}(r.searchParams);const e=new s.URLSearchParams(r.searchParams);null===(o=null==i?void 0:i.searchParams)||void 0===o||o.forEach((t,r)=>{e.has(r)||e.append(r,t)}),r.searchParams=e}if(r.username=null!==(A=r.username)&&void 0!==A?A:"",r.password=null!==(a=r.password)&&void 0!==a?a:"",r.prefixUrl?(r.prefixUrl=r.prefixUrl.toString(),""===r.prefixUrl||r.prefixUrl.endsWith("/")||(r.prefixUrl+="/")):r.prefixUrl="",C.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=B.default(r.prefixUrl+r.url,r)}else(C.default.undefined(r.url)&&""!==r.prefixUrl||r.protocol)&&(r.url=B.default(r.prefixUrl,r));if(r.url){let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{const n=r.url;if(!n.href.startsWith(t))throw new Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new s.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if("unix:"===t&&(t="http:",r.url=new s.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),r.url.search){const e="_GOT_INTERNAL_TRIGGER_NORMALIZATION";r.url.searchParams.append(e,""),r.url.searchParams.delete(e)}if("http:"!==t&&"https:"!==t)throw new Z(r);""===r.username?r.username=r.url.username:r.url.username=r.username,""===r.password?r.password=r.url.password:r.url.password=r.password}const{cookieJar:l}=r;if(l){let{setCookie:e,getCookieString:t}=l;C.assert.function_(e),C.assert.function_(t),4===e.length&&0===t.length&&(e=n.promisify(e.bind(r.cookieJar)),t=n.promisify(t.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:t})}const{cache:f}=r;if(f&&(j.has(f)||j.set(f,new g((e,t)=>e[v](e,t),f))),!0===r.dnsCache)r.dnsCache=new h.default;else if(!(C.default.undefined(r.dnsCache)||r.dnsCache instanceof h.default))throw new TypeError("Parameter `dnsCache` must be a CacheableLookup instance or a boolean, got "+C.default(r.dnsCache));C.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout={...i.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});const d=r.hooks===(null==i?void 0:i.hooks);r.hooks={...r.hooks};for(const e of t.knownHookEvents)if(e in r.hooks){if(!C.default.array(r.hooks[e]))throw new TypeError(`Parameter \`${e}\` must be an Array, got ${C.default(r.hooks[e])}`);r.hooks[e]=[...r.hooks[e]]}else r.hooks[e]=[];if(i&&!d)for(const e of t.knownHookEvents){0!==i.hooks[e].length&&(r.hooks[e]=[...i.hooks[e],...r.hooks[e]])}if("followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent)for(const e in r.agent)if("http"!==e&&"https"!==e&&"http2"!==e)throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``);return r.maxRedirects=null!==(c=r.maxRedirects)&&void 0!==c?c:0,((e,t)=>{const r={};for(const t of e)if(t)for(const e of G)e in t&&(r[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,r)})([i,u],r),r}_lockWrite(){const e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){const{options:e}=this,{headers:r}=e,n=!C.default.undefined(e.form),o=!C.default.undefined(e.json),A=!C.default.undefined(e.body),a=n||o||A,c=t.withoutBody.has(e.method)&&!("GET"===e.method&&e.allowGetBody);if(this._cannotHaveBody=c,a){if(c)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([A,n,o].filter(e=>e).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(A&&!(e.body instanceof i.Readable)&&!C.default.string(e.body)&&!C.default.buffer(e.body)&&!I.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!C.default.object(e.form))throw new TypeError("The `form` option must be an Object");{const t=!C.default.string(r["content-type"]);A?(I.default(e.body)&&t&&(r["content-type"]="multipart/form-data; boundary="+e.body.getBoundary()),this[P]=e.body):n?(t&&(r["content-type"]="application/x-www-form-urlencoded"),this[P]=new s.URLSearchParams(e.form).toString()):(t&&(r["content-type"]="application/json"),this[P]=JSON.stringify(e.json));const i=await E.default(this[P],e.headers);C.default.undefined(r["content-length"])&&C.default.undefined(r["transfer-encoding"])&&(c||C.default.undefined(i)||(r["content-length"]=String(i)))}}else c?this._lockWrite():this._unlockWrite();this[k]=Number(r["content-length"])||void 0}async _onResponse(e){const{options:t}=this,{url:r}=t;this[_]=e,t.decompress&&(e=l(e));const n=e.statusCode,i=e;i.statusMessage=i.statusMessage?i.statusMessage:A.STATUS_CODES[n],i.url=t.url.toString(),i.requestUrl=this.requestUrl,i.redirectUrls=this.redirects,i.request=this,i.isFromCache=e.fromCache||!1,i.ip=this.ip,this[N]=i.isFromCache,this[b]=Number(e.headers["content-length"])||void 0,this[D]=e,e.once("end",()=>{this[b]=this[S],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",t=>{e.destroy(),this._beforeError(new X(t,this))}),e.once("aborted",()=>{this.aborted||this._beforeError(new X({name:"Error",message:"The server aborted the pending request"},this))}),this.emit("downloadProgress",this.downloadProgress);const o=e.headers["set-cookie"];if(C.default.object(t.cookieJar)&&o){let e=o.map(async e=>t.cookieJar.setCookie(e,r.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){return void this._beforeError(e)}}if(t.followRedirect&&e.headers.location&&Y.has(n)){e.resume(),this[v]&&(this[R](),delete this[v],this[M]());if(!(303===n&&"GET"!==t.method&&"HEAD"!==t.method)&&t.methodRewriting||(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form),this.redirects.length>=t.maxRedirects)return void this._beforeError(new H(this));try{const n=Buffer.from(e.headers.location,"binary").toString(),o=new s.URL(n,r),A=o.toString();decodeURI(A),o.hostname!==r.hostname&&("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(delete t.username,delete t.password)),this.redirects.push(A),t.url=o;for(const e of t.hooks.beforeRedirect)await e(t,i);this.emit("redirect",i,t),await this._makeRequest()}catch(e){return void this._beforeError(e)}return}const a=t.followRedirect?299:399,c=n>=200&&n<=a||304===n;if(!t.throwHttpErrors||c||(await this._beforeError(new q(i)),!this.destroyed)){e.on("readable",()=>{this[T]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(const r of this[F])if(!r.headersSent){for(const n in e.headers){const i=!t.decompress||"content-encoding"!==n,o=e.headers[n];i&&r.setHeader(n,o)}r.statusCode=n}}}_onRequest(e){const{options:t}=this,{timeout:r,url:n}=t;u.default(e),this[R]=y.default(e,r,n);const i=t.cache?"cacheableResponse":"response";e.once(i,e=>{this._onResponse(e)}),e.once("error",t=>{e.destroy(),t=t instanceof y.TimeoutError?new V(t,this.timings,this):new J(t.message,t,this),this._beforeError(t)}),this[M]=m.default(e,this,$),this[v]=e,this.emit("uploadProgress",this.uploadProgress);const o=this[P],s=0===this.redirects.length?this:e;C.default.nodeStream(o)?(o.pipe(s),o.once("error",e=>{this._beforeError(new W(e,this))}),o.once("end",()=>{delete t.body})):(this._unlockWrite(),C.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(s.end(),this._lockWrite()):(this._writeRequest(o,null,()=>{}),s.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((r,n)=>{Object.assign(t,w.default(e)),delete t.url;const i=j.get(t.cache)(t,e=>{const t=e,{req:n}=t;n&&n.emit("cacheableResponse",t),r(t)});t.url=e,i.once("error",n),i.once("request",r)})}async _makeRequest(){var e;const{options:t}=this,{url:r,headers:n,request:i,agent:o,timeout:s}=t;for(const e in n)if(C.default.undefined(n[e]))delete n[e];else if(C.default.null_(n[e]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(t.decompress&&C.default.undefined(n["accept-encoding"])&&(n["accept-encoding"]=O?"gzip, deflate, br":"gzip, deflate"),t.cookieJar){const e=await t.cookieJar.getCookieString(t.url.toString());C.default.nonEmptyString(e)&&(t.headers.cookie=e)}for(const e of t.hooks.beforeRequest){const r=await e(t);if(!C.default.undefined(r)){t.request=()=>r;break}}if(t.dnsCache&&!("lookup"in t)&&(t.lookup=t.dnsCache.lookup),"unix"===r.hostname){const e=/(?<socketPath>.+?):(?<path>.+)/.exec(`${r.pathname}${r.search}`);if(null==e?void 0:e.groups){const{socketPath:r,path:n}=e.groups;Object.assign(t,{socketPath:r,path:n,host:""})}}const a="https:"===r.protocol;let u;u=t.http2?f.auto:a?c.request:A.request;const l=null!==(e=t.request)&&void 0!==e?e:u,h=t.cache?this._createCacheableRequest:l;o&&!t.http2&&(t.agent=o[a?"https":"http"]),t[v]=l,delete t.request,delete t.timeout;try{let e=await h(r,t);C.default.undefined(e)&&(e=u(r,t)),t.request=i,t.timeout=s,t.agent=o,p=e,C.default.object(p)&&!("statusCode"in p)?this._onRequest(e):this.writable?(this.once("finish",()=>{this._onResponse(e)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(e)}catch(e){if(e instanceof g.CacheError)throw new z(e,this);throw new J(e.message,e,this)}var p}async _beforeError(e){this[L]=!0,e instanceof J||(e=new J(e.message,e,this));try{const{response:t}=e;t&&(t.setEncoding(this._readableState.encoding),t.rawBody=await d.buffer(t),t.body=t.rawBody.toString())}catch(e){}try{for(const t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new J(t.message,t,this)}this.destroyed||this.destroy(e)}_read(){this[T]=!0;const e=this[D];if(e&&!this[L]){let t;for(e.readableLength&&(this[T]=!1);null!==(t=e.read());){this[S]+=t.length,this[K]=!0;const e=this.downloadProgress;e.percent<1&&this.emit("downloadProgress",e),this.push(t)}}}_write(e,t,r){const n=()=>{this._writeRequest(e,t,r)};this.requestInitialized?n():this[U].push(n)}_writeRequest(e,t,r){this._progressCallbacks.push(()=>{this[x]+=Buffer.byteLength(e,t);const r=this.uploadProgress;r.percent<1&&this.emit("uploadProgress",r)}),this[v].write(e,t,e=>{e||0===this._progressCallbacks.length||this._progressCallbacks.shift()(),r(e)})}_final(e){const t=()=>{for(;0!==this._progressCallbacks.length;)this._progressCallbacks.shift()();v in this?this[v].end(t=>{t||(this[k]=this[x],this.emit("uploadProgress",this.uploadProgress),this[v].emit("upload-complete")),e(t)}):e()};this.requestInitialized?t():this[U].push(t)}_destroy(e,t){var r;v in this&&(this[R](),(null===(r=this[D])||void 0===r?void 0:r.complete)||this[v].destroy()),null===e||C.default.undefined(e)||e instanceof J||(e=new J(e.message,e,this)),t(e)}get ip(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket.remoteAddress}get aborted(){var e,t,r;return(null!==(t=null===(e=this[v])||void 0===e?void 0:e.destroyed)&&void 0!==t?t:this.destroyed)&&!(null===(r=this[_])||void 0===r?void 0:r.complete)}get socket(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket}get downloadProgress(){let e;return e=this[b]?this[S]/this[b]:this[b]===this[S]?1:0,{percent:e,transferred:this[S],total:this[b]}}get uploadProgress(){let e;return e=this[k]?this[x]/this[k]:this[k]===this[x]?1:0,{percent:e,transferred:this[x],total:this[k]}}get timings(){var e;return null===(e=this[v])||void 0===e?void 0:e.timings}get isFromCache(){return this[N]}pipe(e,t){if(this[K])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof a.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof a.ServerResponse&&this[F].delete(e),super.unpipe(e),this}}t.default=ee},96596:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(31669),o=r(8189),s=r(35637),A=i.promisify(n.stat);t.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(o.default.string(e))return Buffer.byteLength(e);if(o.default.buffer(e))return e.length;if(s.default(e))return i.promisify(e.getLength.bind(e))();if(e instanceof n.ReadStream){const{size:t}=await A(e.path);return t}}},35637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>n.default.nodeStream(e)&&n.default.function_(e.getBoundary)},80972:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(78835),i=["protocol","host","hostname","port","pathname","search"];t.default=(e,t)=>{var r,o;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${null!==(o=null!==(r=t.hostname)&&void 0!==r?r:t.host)&&void 0!==o?o:""}`}const s=new n.URL(e);if(t.path){const e=t.path.indexOf("?");-1===e?t.pathname=t.path:(t.pathname=t.path.slice(0,e),t.search=t.path.slice(e+1)),delete t.path}for(const e of i)t[e]&&(s[e]=t[e].toString());return s}},63227:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){const n={};for(const i of r)n[i]=(...e)=>{t.emit(i,...e)},e.on(i,n[i]);return()=>{for(const t of r)e.off(t,n[t])}}},32449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(11631),i=r(46248),o=Symbol("reentry"),s=()=>{};class A extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}}t.TimeoutError=A,t.default=(e,t,r)=>{if(o in e)return s;e[o]=!0;const a=[],{once:c,unhandleAll:u}=i.default(),l=(e,t,r)=>{var n;const i=setTimeout(t,e,e,r);null===(n=i.unref)||void 0===n||n.call(i);const o=()=>{clearTimeout(i)};return a.push(o),o},{host:h,hostname:g}=r,f=(t,r)=>{e.destroy(new A(t,r))},p=()=>{for(const e of a)e();u()};if(e.once("error",t=>{if(p(),0===e.listenerCount("error"))throw t}),e.once("close",p),c(e,"response",e=>{c(e,"end",p)}),void 0!==t.request&&l(t.request,f,"request"),void 0!==t.socket){const r=()=>{f(t.socket,"socket")};e.setTimeout(t.socket,r),a.push(()=>{e.removeListener("timeout",r)})}return c(e,"socket",i=>{var o;const{socketPath:s}=e;if(i.connecting){const e=Boolean(null!=s?s:0!==n.isIP(null!==(o=null!=g?g:h)&&void 0!==o?o:""));if(void 0!==t.lookup&&!e&&void 0===i.address().address){const e=l(t.lookup,f,"lookup");c(i,"lookup",e)}if(void 0!==t.connect){const r=()=>l(t.connect,f,"connect");e?c(i,"connect",r()):c(i,"lookup",e=>{null===e&&c(i,"connect",r())})}void 0!==t.secureConnect&&"https:"===r.protocol&&c(i,"connect",()=>{const e=l(t.secureConnect,f,"secureConnect");c(i,"secureConnect",e)})}if(void 0!==t.send){const r=()=>l(t.send,f,"send");i.connecting?c(i,"connect",()=>{c(e,"upload-complete",r())}):c(e,"upload-complete",r())}}),void 0!==t.response&&c(e,"upload-complete",()=>{const r=l(t.response,f,"response");c(e,"response",r)}),p}},46248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=()=>{const e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(const t of e){const{origin:e,event:r,fn:n}=t;e.removeListener(r,n)}e.length=0}}}},13656:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>{const t={protocol:(e=e).protocol,hostname:n.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return n.default.string(e.port)&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},30291:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){"object"==typeof e?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return"object"==typeof e?this.weakMap.get(e):this.map.get(e)}has(e){return"object"==typeof e?this.weakMap.has(e):this.map.has(e)}}},88190:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351),i=r(8189),o=r(74850),s=r(57019),A=r(8859),a=r(5571),c={RequestError:o.RequestError,CacheError:o.CacheError,ReadError:o.ReadError,HTTPError:o.HTTPError,MaxRedirectsError:o.MaxRedirectsError,TimeoutError:o.TimeoutError,ParseError:o.ParseError,CancelError:n.CancelError,UnsupportedProtocolError:o.UnsupportedProtocolError,UploadError:o.UploadError},{normalizeArguments:u,mergeOptions:l}=o.PromisableRequest,h=e=>e.isStream?new A.default(e.url,e):o.default(e),g=e=>"defaults"in e&&"options"in e.defaults,f=["get","post","put","patch","head","delete"];t.defaultHandler=(e,t)=>t(e);const p=(e,t)=>{if(e)for(const r of e)r(t)},d=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(e=>(t,r)=>{let n;const i=e(t,e=>(n=r(e),n));if(i!==n&&!t.isStream&&n){const e=i,{then:t,catch:r,finally:o}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)),e.then=t,e.catch=r,e.finally=o}return i});const r=(t,r)=>{var n,a;let c=0;const l=t=>e.handlers[c++](t,c===e.handlers.length?h:l);i.default.plainObject(t)&&(r={...t,...r},t=void 0);try{let i;try{p(e.options.hooks.init,r),p(null===(n=null==r?void 0:r.hooks)||void 0===n?void 0:n.init,r)}catch(e){i=e}const s=u(t,r,e.options);if(s[A.kIsNormalizedAlready]=!0,i)throw new o.RequestError(i.message,i,s);return l(s)}catch(t){if(null==r?void 0:r.isStream)throw t;return s.default(t,e.options.hooks.beforeError,null===(a=null==r?void 0:r.hooks)||void 0===a?void 0:a.beforeError)}};r.extend=(...r)=>{const n=[e.options];let i,o=[...e._rawHandlers];for(const e of r)g(e)?(n.push(e.defaults.options),o.push(...e.defaults._rawHandlers),i=e.defaults.mutableDefaults):(n.push(e),"handlers"in e&&o.push(...e.handlers),i=e.mutableDefaults);return o=o.filter(e=>e!==t.defaultHandler),0===o.length&&o.push(t.defaultHandler),d({options:l(...n),handlers:o,mutableDefaults:Boolean(i)})},(r.paginate=async function*(t,n){let o=u(t,n,e.options);o.resolveBodyOnly=!1;const s=o.pagination;if(!i.default.object(s))throw new TypeError("`options.pagination` must be implemented");const A=[];let{countLimit:a}=s,c=0;for(;c<s.requestLimit;){const e=await r("",o),t=await s.transform(e),n=[];for(const e of t)if(s.filter(e,A,n)){if(!s.shouldContinue(e,A,n))return;if(yield e,s.stackAllItems&&A.push(e),n.push(e),--a<=0)return}const i=s.paginate(e,A,n);if(!1===i)return;i===e.request.options?o=e.request.options:void 0!==i&&(o=u(void 0,i,o)),c++}}).all=async(e,t)=>{const n=[];for await(const i of r.paginate(e,t))n.push(i);return n},r.stream=(e,t)=>r(e,{...t,isStream:!0});for(const e of f)r[e]=(t,n)=>r(t,{...n,method:e}),r.stream[e]=(t,n)=>r(t,{...n,method:e,isStream:!0});return Object.assign(r,{...c,mergeOptions:l}),Object.defineProperty(r,"defaults",{value:e.mutableDefaults?e:a.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),r};t.default=d},22395:(e,t,r)=>{"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(78835),o=r(88190),s={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,rejectUnauthorized:!0,pagination:{transform:e=>"json"===e.request.options.responseType?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;const t=e.headers.link.split(",");let r;for(const e of t){const t=e.split(";");if(t[1].includes("next")){r=t[0].trimStart().trim(),r=r.slice(1,-1);break}}if(r){return{url:new i.URL(r)}}return!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,requestLimit:1e4,stackAllItems:!0}},handlers:[o.defaultHandler],mutableDefaults:!1},A=o.default(s);t.default=A,e.exports=A,e.exports.default=A,n(r(88190)),n(r(74850))},5571:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=function e(t){for(const r of Object.values(t))(n.default.plainObject(r)||n.default.array(r))&&e(r);return Object.freeze(t)}},74988:e=>{e.exports&&(e.exports=function(){var e=3,t=4,r=12,n=13,i=16,o=17;function s(e,t){void 0===t&&(t=0);var r=e.charCodeAt(t);if(55296<=r&&r<=56319&&t<e.length-1){var n=r;return 56320<=(i=e.charCodeAt(t+1))&&i<=57343?1024*(n-55296)+(i-56320)+65536:n}if(56320<=r&&r<=57343&&t>=1){var i=r;return 55296<=(n=e.charCodeAt(t-1))&&n<=56319?1024*(n-55296)+(i-56320)+65536:i}return r}function A(s,A,a){var c=[s].concat(A).concat([a]),u=c[c.length-2],l=a,h=c.lastIndexOf(14);if(h>1&&c.slice(1,h).every((function(t){return t==e}))&&-1==[e,n,o].indexOf(s))return 2;var g=c.lastIndexOf(t);if(g>0&&c.slice(1,g).every((function(e){return e==t}))&&-1==[r,t].indexOf(u))return c.filter((function(e){return e==t})).length%2==1?3:4;if(0==u&&1==l)return 0;if(2==u||0==u||1==u)return 14==l&&A.every((function(t){return t==e}))?2:1;if(2==l||0==l||1==l)return 1;if(6==u&&(6==l||7==l||9==l||10==l))return 0;if(!(9!=u&&7!=u||7!=l&&8!=l))return 0;if((10==u||8==u)&&8==l)return 0;if(l==e||15==l)return 0;if(5==l)return 0;if(u==r)return 0;var f=-1!=c.indexOf(e)?c.lastIndexOf(e)-1:c.length-2;return-1!=[n,o].indexOf(c[f])&&c.slice(f+1,-1).every((function(t){return t==e}))&&14==l||15==u&&-1!=[i,o].indexOf(l)?0:-1!=A.indexOf(t)?2:u==t&&l==t?0:1}function a(s){return 1536<=s&&s<=1541||1757==s||1807==s||2274==s||3406==s||69821==s||70082<=s&&s<=70083||72250==s||72326<=s&&s<=72329||73030==s?r:13==s?0:10==s?1:0<=s&&s<=9||11<=s&&s<=12||14<=s&&s<=31||127<=s&&s<=159||173==s||1564==s||6158==s||8203==s||8206<=s&&s<=8207||8232==s||8233==s||8234<=s&&s<=8238||8288<=s&&s<=8292||8293==s||8294<=s&&s<=8303||55296<=s&&s<=57343||65279==s||65520<=s&&s<=65528||65529<=s&&s<=65531||113824<=s&&s<=113827||119155<=s&&s<=119162||917504==s||917505==s||917506<=s&&s<=917535||917632<=s&&s<=917759||918e3<=s&&s<=921599?2:768<=s&&s<=879||1155<=s&&s<=1159||1160<=s&&s<=1161||1425<=s&&s<=1469||1471==s||1473<=s&&s<=1474||1476<=s&&s<=1477||1479==s||1552<=s&&s<=1562||1611<=s&&s<=1631||1648==s||1750<=s&&s<=1756||1759<=s&&s<=1764||1767<=s&&s<=1768||1770<=s&&s<=1773||1809==s||1840<=s&&s<=1866||1958<=s&&s<=1968||2027<=s&&s<=2035||2070<=s&&s<=2073||2075<=s&&s<=2083||2085<=s&&s<=2087||2089<=s&&s<=2093||2137<=s&&s<=2139||2260<=s&&s<=2273||2275<=s&&s<=2306||2362==s||2364==s||2369<=s&&s<=2376||2381==s||2385<=s&&s<=2391||2402<=s&&s<=2403||2433==s||2492==s||2494==s||2497<=s&&s<=2500||2509==s||2519==s||2530<=s&&s<=2531||2561<=s&&s<=2562||2620==s||2625<=s&&s<=2626||2631<=s&&s<=2632||2635<=s&&s<=2637||2641==s||2672<=s&&s<=2673||2677==s||2689<=s&&s<=2690||2748==s||2753<=s&&s<=2757||2759<=s&&s<=2760||2765==s||2786<=s&&s<=2787||2810<=s&&s<=2815||2817==s||2876==s||2878==s||2879==s||2881<=s&&s<=2884||2893==s||2902==s||2903==s||2914<=s&&s<=2915||2946==s||3006==s||3008==s||3021==s||3031==s||3072==s||3134<=s&&s<=3136||3142<=s&&s<=3144||3146<=s&&s<=3149||3157<=s&&s<=3158||3170<=s&&s<=3171||3201==s||3260==s||3263==s||3266==s||3270==s||3276<=s&&s<=3277||3285<=s&&s<=3286||3298<=s&&s<=3299||3328<=s&&s<=3329||3387<=s&&s<=3388||3390==s||3393<=s&&s<=3396||3405==s||3415==s||3426<=s&&s<=3427||3530==s||3535==s||3538<=s&&s<=3540||3542==s||3551==s||3633==s||3636<=s&&s<=3642||3655<=s&&s<=3662||3761==s||3764<=s&&s<=3769||3771<=s&&s<=3772||3784<=s&&s<=3789||3864<=s&&s<=3865||3893==s||3895==s||3897==s||3953<=s&&s<=3966||3968<=s&&s<=3972||3974<=s&&s<=3975||3981<=s&&s<=3991||3993<=s&&s<=4028||4038==s||4141<=s&&s<=4144||4146<=s&&s<=4151||4153<=s&&s<=4154||4157<=s&&s<=4158||4184<=s&&s<=4185||4190<=s&&s<=4192||4209<=s&&s<=4212||4226==s||4229<=s&&s<=4230||4237==s||4253==s||4957<=s&&s<=4959||5906<=s&&s<=5908||5938<=s&&s<=5940||5970<=s&&s<=5971||6002<=s&&s<=6003||6068<=s&&s<=6069||6071<=s&&s<=6077||6086==s||6089<=s&&s<=6099||6109==s||6155<=s&&s<=6157||6277<=s&&s<=6278||6313==s||6432<=s&&s<=6434||6439<=s&&s<=6440||6450==s||6457<=s&&s<=6459||6679<=s&&s<=6680||6683==s||6742==s||6744<=s&&s<=6750||6752==s||6754==s||6757<=s&&s<=6764||6771<=s&&s<=6780||6783==s||6832<=s&&s<=6845||6846==s||6912<=s&&s<=6915||6964==s||6966<=s&&s<=6970||6972==s||6978==s||7019<=s&&s<=7027||7040<=s&&s<=7041||7074<=s&&s<=7077||7080<=s&&s<=7081||7083<=s&&s<=7085||7142==s||7144<=s&&s<=7145||7149==s||7151<=s&&s<=7153||7212<=s&&s<=7219||7222<=s&&s<=7223||7376<=s&&s<=7378||7380<=s&&s<=7392||7394<=s&&s<=7400||7405==s||7412==s||7416<=s&&s<=7417||7616<=s&&s<=7673||7675<=s&&s<=7679||8204==s||8400<=s&&s<=8412||8413<=s&&s<=8416||8417==s||8418<=s&&s<=8420||8421<=s&&s<=8432||11503<=s&&s<=11505||11647==s||11744<=s&&s<=11775||12330<=s&&s<=12333||12334<=s&&s<=12335||12441<=s&&s<=12442||42607==s||42608<=s&&s<=42610||42612<=s&&s<=42621||42654<=s&&s<=42655||42736<=s&&s<=42737||43010==s||43014==s||43019==s||43045<=s&&s<=43046||43204<=s&&s<=43205||43232<=s&&s<=43249||43302<=s&&s<=43309||43335<=s&&s<=43345||43392<=s&&s<=43394||43443==s||43446<=s&&s<=43449||43452==s||43493==s||43561<=s&&s<=43566||43569<=s&&s<=43570||43573<=s&&s<=43574||43587==s||43596==s||43644==s||43696==s||43698<=s&&s<=43700||43703<=s&&s<=43704||43710<=s&&s<=43711||43713==s||43756<=s&&s<=43757||43766==s||44005==s||44008==s||44013==s||64286==s||65024<=s&&s<=65039||65056<=s&&s<=65071||65438<=s&&s<=65439||66045==s||66272==s||66422<=s&&s<=66426||68097<=s&&s<=68099||68101<=s&&s<=68102||68108<=s&&s<=68111||68152<=s&&s<=68154||68159==s||68325<=s&&s<=68326||69633==s||69688<=s&&s<=69702||69759<=s&&s<=69761||69811<=s&&s<=69814||69817<=s&&s<=69818||69888<=s&&s<=69890||69927<=s&&s<=69931||69933<=s&&s<=69940||70003==s||70016<=s&&s<=70017||70070<=s&&s<=70078||70090<=s&&s<=70092||70191<=s&&s<=70193||70196==s||70198<=s&&s<=70199||70206==s||70367==s||70371<=s&&s<=70378||70400<=s&&s<=70401||70460==s||70462==s||70464==s||70487==s||70502<=s&&s<=70508||70512<=s&&s<=70516||70712<=s&&s<=70719||70722<=s&&s<=70724||70726==s||70832==s||70835<=s&&s<=70840||70842==s||70845==s||70847<=s&&s<=70848||70850<=s&&s<=70851||71087==s||71090<=s&&s<=71093||71100<=s&&s<=71101||71103<=s&&s<=71104||71132<=s&&s<=71133||71219<=s&&s<=71226||71229==s||71231<=s&&s<=71232||71339==s||71341==s||71344<=s&&s<=71349||71351==s||71453<=s&&s<=71455||71458<=s&&s<=71461||71463<=s&&s<=71467||72193<=s&&s<=72198||72201<=s&&s<=72202||72243<=s&&s<=72248||72251<=s&&s<=72254||72263==s||72273<=s&&s<=72278||72281<=s&&s<=72283||72330<=s&&s<=72342||72344<=s&&s<=72345||72752<=s&&s<=72758||72760<=s&&s<=72765||72767==s||72850<=s&&s<=72871||72874<=s&&s<=72880||72882<=s&&s<=72883||72885<=s&&s<=72886||73009<=s&&s<=73014||73018==s||73020<=s&&s<=73021||73023<=s&&s<=73029||73031==s||92912<=s&&s<=92916||92976<=s&&s<=92982||94095<=s&&s<=94098||113821<=s&&s<=113822||119141==s||119143<=s&&s<=119145||119150<=s&&s<=119154||119163<=s&&s<=119170||119173<=s&&s<=119179||119210<=s&&s<=119213||119362<=s&&s<=119364||121344<=s&&s<=121398||121403<=s&&s<=121452||121461==s||121476==s||121499<=s&&s<=121503||121505<=s&&s<=121519||122880<=s&&s<=122886||122888<=s&&s<=122904||122907<=s&&s<=122913||122915<=s&&s<=122916||122918<=s&&s<=122922||125136<=s&&s<=125142||125252<=s&&s<=125258||917536<=s&&s<=917631||917760<=s&&s<=917999?e:127462<=s&&s<=127487?t:2307==s||2363==s||2366<=s&&s<=2368||2377<=s&&s<=2380||2382<=s&&s<=2383||2434<=s&&s<=2435||2495<=s&&s<=2496||2503<=s&&s<=2504||2507<=s&&s<=2508||2563==s||2622<=s&&s<=2624||2691==s||2750<=s&&s<=2752||2761==s||2763<=s&&s<=2764||2818<=s&&s<=2819||2880==s||2887<=s&&s<=2888||2891<=s&&s<=2892||3007==s||3009<=s&&s<=3010||3014<=s&&s<=3016||3018<=s&&s<=3020||3073<=s&&s<=3075||3137<=s&&s<=3140||3202<=s&&s<=3203||3262==s||3264<=s&&s<=3265||3267<=s&&s<=3268||3271<=s&&s<=3272||3274<=s&&s<=3275||3330<=s&&s<=3331||3391<=s&&s<=3392||3398<=s&&s<=3400||3402<=s&&s<=3404||3458<=s&&s<=3459||3536<=s&&s<=3537||3544<=s&&s<=3550||3570<=s&&s<=3571||3635==s||3763==s||3902<=s&&s<=3903||3967==s||4145==s||4155<=s&&s<=4156||4182<=s&&s<=4183||4228==s||6070==s||6078<=s&&s<=6085||6087<=s&&s<=6088||6435<=s&&s<=6438||6441<=s&&s<=6443||6448<=s&&s<=6449||6451<=s&&s<=6456||6681<=s&&s<=6682||6741==s||6743==s||6765<=s&&s<=6770||6916==s||6965==s||6971==s||6973<=s&&s<=6977||6979<=s&&s<=6980||7042==s||7073==s||7078<=s&&s<=7079||7082==s||7143==s||7146<=s&&s<=7148||7150==s||7154<=s&&s<=7155||7204<=s&&s<=7211||7220<=s&&s<=7221||7393==s||7410<=s&&s<=7411||7415==s||43043<=s&&s<=43044||43047==s||43136<=s&&s<=43137||43188<=s&&s<=43203||43346<=s&&s<=43347||43395==s||43444<=s&&s<=43445||43450<=s&&s<=43451||43453<=s&&s<=43456||43567<=s&&s<=43568||43571<=s&&s<=43572||43597==s||43755==s||43758<=s&&s<=43759||43765==s||44003<=s&&s<=44004||44006<=s&&s<=44007||44009<=s&&s<=44010||44012==s||69632==s||69634==s||69762==s||69808<=s&&s<=69810||69815<=s&&s<=69816||69932==s||70018==s||70067<=s&&s<=70069||70079<=s&&s<=70080||70188<=s&&s<=70190||70194<=s&&s<=70195||70197==s||70368<=s&&s<=70370||70402<=s&&s<=70403||70463==s||70465<=s&&s<=70468||70471<=s&&s<=70472||70475<=s&&s<=70477||70498<=s&&s<=70499||70709<=s&&s<=70711||70720<=s&&s<=70721||70725==s||70833<=s&&s<=70834||70841==s||70843<=s&&s<=70844||70846==s||70849==s||71088<=s&&s<=71089||71096<=s&&s<=71099||71102==s||71216<=s&&s<=71218||71227<=s&&s<=71228||71230==s||71340==s||71342<=s&&s<=71343||71350==s||71456<=s&&s<=71457||71462==s||72199<=s&&s<=72200||72249==s||72279<=s&&s<=72280||72343==s||72751==s||72766==s||72873==s||72881==s||72884==s||94033<=s&&s<=94078||119142==s||119149==s?5:4352<=s&&s<=4447||43360<=s&&s<=43388?6:4448<=s&&s<=4519||55216<=s&&s<=55238?7:4520<=s&&s<=4607||55243<=s&&s<=55291?8:44032==s||44060==s||44088==s||44116==s||44144==s||44172==s||44200==s||44228==s||44256==s||44284==s||44312==s||44340==s||44368==s||44396==s||44424==s||44452==s||44480==s||44508==s||44536==s||44564==s||44592==s||44620==s||44648==s||44676==s||44704==s||44732==s||44760==s||44788==s||44816==s||44844==s||44872==s||44900==s||44928==s||44956==s||44984==s||45012==s||45040==s||45068==s||45096==s||45124==s||45152==s||45180==s||45208==s||45236==s||45264==s||45292==s||45320==s||45348==s||45376==s||45404==s||45432==s||45460==s||45488==s||45516==s||45544==s||45572==s||45600==s||45628==s||45656==s||45684==s||45712==s||45740==s||45768==s||45796==s||45824==s||45852==s||45880==s||45908==s||45936==s||45964==s||45992==s||46020==s||46048==s||46076==s||46104==s||46132==s||46160==s||46188==s||46216==s||46244==s||46272==s||46300==s||46328==s||46356==s||46384==s||46412==s||46440==s||46468==s||46496==s||46524==s||46552==s||46580==s||46608==s||46636==s||46664==s||46692==s||46720==s||46748==s||46776==s||46804==s||46832==s||46860==s||46888==s||46916==s||46944==s||46972==s||47e3==s||47028==s||47056==s||47084==s||47112==s||47140==s||47168==s||47196==s||47224==s||47252==s||47280==s||47308==s||47336==s||47364==s||47392==s||47420==s||47448==s||47476==s||47504==s||47532==s||47560==s||47588==s||47616==s||47644==s||47672==s||47700==s||47728==s||47756==s||47784==s||47812==s||47840==s||47868==s||47896==s||47924==s||47952==s||47980==s||48008==s||48036==s||48064==s||48092==s||48120==s||48148==s||48176==s||48204==s||48232==s||48260==s||48288==s||48316==s||48344==s||48372==s||48400==s||48428==s||48456==s||48484==s||48512==s||48540==s||48568==s||48596==s||48624==s||48652==s||48680==s||48708==s||48736==s||48764==s||48792==s||48820==s||48848==s||48876==s||48904==s||48932==s||48960==s||48988==s||49016==s||49044==s||49072==s||49100==s||49128==s||49156==s||49184==s||49212==s||49240==s||49268==s||49296==s||49324==s||49352==s||49380==s||49408==s||49436==s||49464==s||49492==s||49520==s||49548==s||49576==s||49604==s||49632==s||49660==s||49688==s||49716==s||49744==s||49772==s||49800==s||49828==s||49856==s||49884==s||49912==s||49940==s||49968==s||49996==s||50024==s||50052==s||50080==s||50108==s||50136==s||50164==s||50192==s||50220==s||50248==s||50276==s||50304==s||50332==s||50360==s||50388==s||50416==s||50444==s||50472==s||50500==s||50528==s||50556==s||50584==s||50612==s||50640==s||50668==s||50696==s||50724==s||50752==s||50780==s||50808==s||50836==s||50864==s||50892==s||50920==s||50948==s||50976==s||51004==s||51032==s||51060==s||51088==s||51116==s||51144==s||51172==s||51200==s||51228==s||51256==s||51284==s||51312==s||51340==s||51368==s||51396==s||51424==s||51452==s||51480==s||51508==s||51536==s||51564==s||51592==s||51620==s||51648==s||51676==s||51704==s||51732==s||51760==s||51788==s||51816==s||51844==s||51872==s||51900==s||51928==s||51956==s||51984==s||52012==s||52040==s||52068==s||52096==s||52124==s||52152==s||52180==s||52208==s||52236==s||52264==s||52292==s||52320==s||52348==s||52376==s||52404==s||52432==s||52460==s||52488==s||52516==s||52544==s||52572==s||52600==s||52628==s||52656==s||52684==s||52712==s||52740==s||52768==s||52796==s||52824==s||52852==s||52880==s||52908==s||52936==s||52964==s||52992==s||53020==s||53048==s||53076==s||53104==s||53132==s||53160==s||53188==s||53216==s||53244==s||53272==s||53300==s||53328==s||53356==s||53384==s||53412==s||53440==s||53468==s||53496==s||53524==s||53552==s||53580==s||53608==s||53636==s||53664==s||53692==s||53720==s||53748==s||53776==s||53804==s||53832==s||53860==s||53888==s||53916==s||53944==s||53972==s||54e3==s||54028==s||54056==s||54084==s||54112==s||54140==s||54168==s||54196==s||54224==s||54252==s||54280==s||54308==s||54336==s||54364==s||54392==s||54420==s||54448==s||54476==s||54504==s||54532==s||54560==s||54588==s||54616==s||54644==s||54672==s||54700==s||54728==s||54756==s||54784==s||54812==s||54840==s||54868==s||54896==s||54924==s||54952==s||54980==s||55008==s||55036==s||55064==s||55092==s||55120==s||55148==s||55176==s?9:44033<=s&&s<=44059||44061<=s&&s<=44087||44089<=s&&s<=44115||44117<=s&&s<=44143||44145<=s&&s<=44171||44173<=s&&s<=44199||44201<=s&&s<=44227||44229<=s&&s<=44255||44257<=s&&s<=44283||44285<=s&&s<=44311||44313<=s&&s<=44339||44341<=s&&s<=44367||44369<=s&&s<=44395||44397<=s&&s<=44423||44425<=s&&s<=44451||44453<=s&&s<=44479||44481<=s&&s<=44507||44509<=s&&s<=44535||44537<=s&&s<=44563||44565<=s&&s<=44591||44593<=s&&s<=44619||44621<=s&&s<=44647||44649<=s&&s<=44675||44677<=s&&s<=44703||44705<=s&&s<=44731||44733<=s&&s<=44759||44761<=s&&s<=44787||44789<=s&&s<=44815||44817<=s&&s<=44843||44845<=s&&s<=44871||44873<=s&&s<=44899||44901<=s&&s<=44927||44929<=s&&s<=44955||44957<=s&&s<=44983||44985<=s&&s<=45011||45013<=s&&s<=45039||45041<=s&&s<=45067||45069<=s&&s<=45095||45097<=s&&s<=45123||45125<=s&&s<=45151||45153<=s&&s<=45179||45181<=s&&s<=45207||45209<=s&&s<=45235||45237<=s&&s<=45263||45265<=s&&s<=45291||45293<=s&&s<=45319||45321<=s&&s<=45347||45349<=s&&s<=45375||45377<=s&&s<=45403||45405<=s&&s<=45431||45433<=s&&s<=45459||45461<=s&&s<=45487||45489<=s&&s<=45515||45517<=s&&s<=45543||45545<=s&&s<=45571||45573<=s&&s<=45599||45601<=s&&s<=45627||45629<=s&&s<=45655||45657<=s&&s<=45683||45685<=s&&s<=45711||45713<=s&&s<=45739||45741<=s&&s<=45767||45769<=s&&s<=45795||45797<=s&&s<=45823||45825<=s&&s<=45851||45853<=s&&s<=45879||45881<=s&&s<=45907||45909<=s&&s<=45935||45937<=s&&s<=45963||45965<=s&&s<=45991||45993<=s&&s<=46019||46021<=s&&s<=46047||46049<=s&&s<=46075||46077<=s&&s<=46103||46105<=s&&s<=46131||46133<=s&&s<=46159||46161<=s&&s<=46187||46189<=s&&s<=46215||46217<=s&&s<=46243||46245<=s&&s<=46271||46273<=s&&s<=46299||46301<=s&&s<=46327||46329<=s&&s<=46355||46357<=s&&s<=46383||46385<=s&&s<=46411||46413<=s&&s<=46439||46441<=s&&s<=46467||46469<=s&&s<=46495||46497<=s&&s<=46523||46525<=s&&s<=46551||46553<=s&&s<=46579||46581<=s&&s<=46607||46609<=s&&s<=46635||46637<=s&&s<=46663||46665<=s&&s<=46691||46693<=s&&s<=46719||46721<=s&&s<=46747||46749<=s&&s<=46775||46777<=s&&s<=46803||46805<=s&&s<=46831||46833<=s&&s<=46859||46861<=s&&s<=46887||46889<=s&&s<=46915||46917<=s&&s<=46943||46945<=s&&s<=46971||46973<=s&&s<=46999||47001<=s&&s<=47027||47029<=s&&s<=47055||47057<=s&&s<=47083||47085<=s&&s<=47111||47113<=s&&s<=47139||47141<=s&&s<=47167||47169<=s&&s<=47195||47197<=s&&s<=47223||47225<=s&&s<=47251||47253<=s&&s<=47279||47281<=s&&s<=47307||47309<=s&&s<=47335||47337<=s&&s<=47363||47365<=s&&s<=47391||47393<=s&&s<=47419||47421<=s&&s<=47447||47449<=s&&s<=47475||47477<=s&&s<=47503||47505<=s&&s<=47531||47533<=s&&s<=47559||47561<=s&&s<=47587||47589<=s&&s<=47615||47617<=s&&s<=47643||47645<=s&&s<=47671||47673<=s&&s<=47699||47701<=s&&s<=47727||47729<=s&&s<=47755||47757<=s&&s<=47783||47785<=s&&s<=47811||47813<=s&&s<=47839||47841<=s&&s<=47867||47869<=s&&s<=47895||47897<=s&&s<=47923||47925<=s&&s<=47951||47953<=s&&s<=47979||47981<=s&&s<=48007||48009<=s&&s<=48035||48037<=s&&s<=48063||48065<=s&&s<=48091||48093<=s&&s<=48119||48121<=s&&s<=48147||48149<=s&&s<=48175||48177<=s&&s<=48203||48205<=s&&s<=48231||48233<=s&&s<=48259||48261<=s&&s<=48287||48289<=s&&s<=48315||48317<=s&&s<=48343||48345<=s&&s<=48371||48373<=s&&s<=48399||48401<=s&&s<=48427||48429<=s&&s<=48455||48457<=s&&s<=48483||48485<=s&&s<=48511||48513<=s&&s<=48539||48541<=s&&s<=48567||48569<=s&&s<=48595||48597<=s&&s<=48623||48625<=s&&s<=48651||48653<=s&&s<=48679||48681<=s&&s<=48707||48709<=s&&s<=48735||48737<=s&&s<=48763||48765<=s&&s<=48791||48793<=s&&s<=48819||48821<=s&&s<=48847||48849<=s&&s<=48875||48877<=s&&s<=48903||48905<=s&&s<=48931||48933<=s&&s<=48959||48961<=s&&s<=48987||48989<=s&&s<=49015||49017<=s&&s<=49043||49045<=s&&s<=49071||49073<=s&&s<=49099||49101<=s&&s<=49127||49129<=s&&s<=49155||49157<=s&&s<=49183||49185<=s&&s<=49211||49213<=s&&s<=49239||49241<=s&&s<=49267||49269<=s&&s<=49295||49297<=s&&s<=49323||49325<=s&&s<=49351||49353<=s&&s<=49379||49381<=s&&s<=49407||49409<=s&&s<=49435||49437<=s&&s<=49463||49465<=s&&s<=49491||49493<=s&&s<=49519||49521<=s&&s<=49547||49549<=s&&s<=49575||49577<=s&&s<=49603||49605<=s&&s<=49631||49633<=s&&s<=49659||49661<=s&&s<=49687||49689<=s&&s<=49715||49717<=s&&s<=49743||49745<=s&&s<=49771||49773<=s&&s<=49799||49801<=s&&s<=49827||49829<=s&&s<=49855||49857<=s&&s<=49883||49885<=s&&s<=49911||49913<=s&&s<=49939||49941<=s&&s<=49967||49969<=s&&s<=49995||49997<=s&&s<=50023||50025<=s&&s<=50051||50053<=s&&s<=50079||50081<=s&&s<=50107||50109<=s&&s<=50135||50137<=s&&s<=50163||50165<=s&&s<=50191||50193<=s&&s<=50219||50221<=s&&s<=50247||50249<=s&&s<=50275||50277<=s&&s<=50303||50305<=s&&s<=50331||50333<=s&&s<=50359||50361<=s&&s<=50387||50389<=s&&s<=50415||50417<=s&&s<=50443||50445<=s&&s<=50471||50473<=s&&s<=50499||50501<=s&&s<=50527||50529<=s&&s<=50555||50557<=s&&s<=50583||50585<=s&&s<=50611||50613<=s&&s<=50639||50641<=s&&s<=50667||50669<=s&&s<=50695||50697<=s&&s<=50723||50725<=s&&s<=50751||50753<=s&&s<=50779||50781<=s&&s<=50807||50809<=s&&s<=50835||50837<=s&&s<=50863||50865<=s&&s<=50891||50893<=s&&s<=50919||50921<=s&&s<=50947||50949<=s&&s<=50975||50977<=s&&s<=51003||51005<=s&&s<=51031||51033<=s&&s<=51059||51061<=s&&s<=51087||51089<=s&&s<=51115||51117<=s&&s<=51143||51145<=s&&s<=51171||51173<=s&&s<=51199||51201<=s&&s<=51227||51229<=s&&s<=51255||51257<=s&&s<=51283||51285<=s&&s<=51311||51313<=s&&s<=51339||51341<=s&&s<=51367||51369<=s&&s<=51395||51397<=s&&s<=51423||51425<=s&&s<=51451||51453<=s&&s<=51479||51481<=s&&s<=51507||51509<=s&&s<=51535||51537<=s&&s<=51563||51565<=s&&s<=51591||51593<=s&&s<=51619||51621<=s&&s<=51647||51649<=s&&s<=51675||51677<=s&&s<=51703||51705<=s&&s<=51731||51733<=s&&s<=51759||51761<=s&&s<=51787||51789<=s&&s<=51815||51817<=s&&s<=51843||51845<=s&&s<=51871||51873<=s&&s<=51899||51901<=s&&s<=51927||51929<=s&&s<=51955||51957<=s&&s<=51983||51985<=s&&s<=52011||52013<=s&&s<=52039||52041<=s&&s<=52067||52069<=s&&s<=52095||52097<=s&&s<=52123||52125<=s&&s<=52151||52153<=s&&s<=52179||52181<=s&&s<=52207||52209<=s&&s<=52235||52237<=s&&s<=52263||52265<=s&&s<=52291||52293<=s&&s<=52319||52321<=s&&s<=52347||52349<=s&&s<=52375||52377<=s&&s<=52403||52405<=s&&s<=52431||52433<=s&&s<=52459||52461<=s&&s<=52487||52489<=s&&s<=52515||52517<=s&&s<=52543||52545<=s&&s<=52571||52573<=s&&s<=52599||52601<=s&&s<=52627||52629<=s&&s<=52655||52657<=s&&s<=52683||52685<=s&&s<=52711||52713<=s&&s<=52739||52741<=s&&s<=52767||52769<=s&&s<=52795||52797<=s&&s<=52823||52825<=s&&s<=52851||52853<=s&&s<=52879||52881<=s&&s<=52907||52909<=s&&s<=52935||52937<=s&&s<=52963||52965<=s&&s<=52991||52993<=s&&s<=53019||53021<=s&&s<=53047||53049<=s&&s<=53075||53077<=s&&s<=53103||53105<=s&&s<=53131||53133<=s&&s<=53159||53161<=s&&s<=53187||53189<=s&&s<=53215||53217<=s&&s<=53243||53245<=s&&s<=53271||53273<=s&&s<=53299||53301<=s&&s<=53327||53329<=s&&s<=53355||53357<=s&&s<=53383||53385<=s&&s<=53411||53413<=s&&s<=53439||53441<=s&&s<=53467||53469<=s&&s<=53495||53497<=s&&s<=53523||53525<=s&&s<=53551||53553<=s&&s<=53579||53581<=s&&s<=53607||53609<=s&&s<=53635||53637<=s&&s<=53663||53665<=s&&s<=53691||53693<=s&&s<=53719||53721<=s&&s<=53747||53749<=s&&s<=53775||53777<=s&&s<=53803||53805<=s&&s<=53831||53833<=s&&s<=53859||53861<=s&&s<=53887||53889<=s&&s<=53915||53917<=s&&s<=53943||53945<=s&&s<=53971||53973<=s&&s<=53999||54001<=s&&s<=54027||54029<=s&&s<=54055||54057<=s&&s<=54083||54085<=s&&s<=54111||54113<=s&&s<=54139||54141<=s&&s<=54167||54169<=s&&s<=54195||54197<=s&&s<=54223||54225<=s&&s<=54251||54253<=s&&s<=54279||54281<=s&&s<=54307||54309<=s&&s<=54335||54337<=s&&s<=54363||54365<=s&&s<=54391||54393<=s&&s<=54419||54421<=s&&s<=54447||54449<=s&&s<=54475||54477<=s&&s<=54503||54505<=s&&s<=54531||54533<=s&&s<=54559||54561<=s&&s<=54587||54589<=s&&s<=54615||54617<=s&&s<=54643||54645<=s&&s<=54671||54673<=s&&s<=54699||54701<=s&&s<=54727||54729<=s&&s<=54755||54757<=s&&s<=54783||54785<=s&&s<=54811||54813<=s&&s<=54839||54841<=s&&s<=54867||54869<=s&&s<=54895||54897<=s&&s<=54923||54925<=s&&s<=54951||54953<=s&&s<=54979||54981<=s&&s<=55007||55009<=s&&s<=55035||55037<=s&&s<=55063||55065<=s&&s<=55091||55093<=s&&s<=55119||55121<=s&&s<=55147||55149<=s&&s<=55175||55177<=s&&s<=55203?10:9757==s||9977==s||9994<=s&&s<=9997||127877==s||127938<=s&&s<=127940||127943==s||127946<=s&&s<=127948||128066<=s&&s<=128067||128070<=s&&s<=128080||128110==s||128112<=s&&s<=128120||128124==s||128129<=s&&s<=128131||128133<=s&&s<=128135||128170==s||128372<=s&&s<=128373||128378==s||128400==s||128405<=s&&s<=128406||128581<=s&&s<=128583||128587<=s&&s<=128591||128675==s||128692<=s&&s<=128694||128704==s||128716==s||129304<=s&&s<=129308||129310<=s&&s<=129311||129318==s||129328<=s&&s<=129337||129341<=s&&s<=129342||129489<=s&&s<=129501?n:127995<=s&&s<=127999?14:8205==s?15:9792==s||9794==s||9877<=s&&s<=9878||9992==s||10084==s||127752==s||127806==s||127859==s||127891==s||127908==s||127912==s||127979==s||127981==s||128139==s||128187<=s&&s<=128188||128295==s||128300==s||128488==s||128640==s||128658==s?i:128102<=s&&s<=128105?o:11}return this.nextBreak=function(e,t){if(void 0===t&&(t=0),t<0)return 0;if(t>=e.length-1)return e.length;for(var r,n,i=a(s(e,t)),o=[],c=t+1;c<e.length;c++)if(n=c-1,!(55296<=(r=e).charCodeAt(n)&&r.charCodeAt(n)<=56319&&56320<=r.charCodeAt(n+1)&&r.charCodeAt(n+1)<=57343)){var u=a(s(e,c));if(A(i,o,u))return c;o.push(u)}return e.length},this.splitGraphemes=function(e){for(var t,r=[],n=0;(t=this.nextBreak(e,n))<e.length;)r.push(e.slice(n,t)),n=t;return n<e.length&&r.push(e.slice(n)),r},this.iterateGraphemes=function(e){var t=0,r={next:function(){var r,n;return(n=this.nextBreak(e,t))<e.length?(r=e.slice(t,n),t=n,{value:r,done:!1}):t<e.length?(r=e.slice(t),t=e.length,{value:r,done:!1}):{value:void 0,done:!0}}.bind(this)};return"undefined"!=typeof Symbol&&Symbol.iterator&&(r[Symbol.iterator]=function(){return r}),r},this.countGraphemes=function(e){for(var t,r=0,n=0;(t=this.nextBreak(e,n))<e.length;)n=t,r++;return n<e.length&&r++,r},this})},72918:e=>{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n<i)}},86834:e=>{"use strict";const t=[200,203,204,206,300,301,404,405,410,414,501],r=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],n={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},i={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function o(e){const t={};if(!e)return t;const r=e.trim().split(/\s*,\s*/);for(const e of r){const[r,n]=e.split(/\s*=\s*/,2);t[r]=void 0===n||n.replace(/^"|"$/g,"")}return t}function s(e){let t=[];for(const r in e){const n=e[r];t.push(!0===n?r:r+"="+n)}if(t.length)return t.join(", ")}e.exports=class{constructor(e,t,{shared:r,cacheHeuristic:n,immutableMinTimeToLive:i,ignoreCargoCult:A,trustServerDate:a,_fromObject:c}={}){if(c)this._fromObject(c);else{if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=!1!==r,this._trustServerDate=void 0===a||a,this._cacheHeuristic=void 0!==n?n:.1,this._immutableMinTtl=void 0!==i?i:864e5,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=o(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=o(e.headers["cache-control"]),A&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":s(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}}now(){return Date.now()}storable(){return!(this._reqcc["no-store"]||!("GET"===this._method||"HEAD"===this._method||"POST"===this._method&&this._hasExplicitExpiration())||-1===r.indexOf(this._status)||this._rescc["no-store"]||this._isShared&&this._rescc.private||this._isShared&&!this._noAuthorization&&!this._allowsStoringAuthenticated()||!(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||-1!==t.indexOf(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);const t=o(e.headers["cache-control"]);if(t["no-cache"]||/no-cache/.test(e.headers.pragma))return!1;if(t["max-age"]&&this.age()>t["max-age"])return!1;if(t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"])return!1;if(this.stale()){if(!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(!0===t["max-stale"]||t["max-stale"]>this.age()-this.maxAge())))return!1}return this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&"HEAD"===e.method)&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if("*"===this._resHeaders.vary)return!1;const t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(const r of t)if(e.headers[r]!==this._reqHeaders[r])return!1;return!0}_copyWithoutHopByHopHeaders(e){const t={};for(const r in e)n[r]||(t[r]=e[r]);if(e.connection){const r=e.connection.trim().split(/\s*,\s*/);for(const e of r)delete t[e]}if(t.warning){const e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(",").trim():delete t.warning}return t}responseHeaders(){const e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?e.warning+", ":"")+'113 - "rfc7234 5.5.4"'),e.age=""+Math.round(t),e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){const e=Date.parse(this._resHeaders.date);if(isFinite(e)){const t=288e5;if(Math.abs(this._responseTime-e)<t)return e}return this._responseTime}age(){let e=Math.max(0,(this._responseTime-this.date())/1e3);if(this._resHeaders.age){let t=this._ageValue();t>e&&(e=t)}return e+(this.now()-this._responseTime)/1e3}_ageValue(){const e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"])return 0;if(this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable)return 0;if("*"===this._resHeaders.vary)return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);const e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){const r=Date.parse(this._resHeaders.expires);return Number.isNaN(r)||r<t?0:Math.max(e,(r-t)/1e3)}if(this._resHeaders["last-modified"]){const r=Date.parse(this._resHeaders["last-modified"]);if(isFinite(r)&&t>r)return Math.max(e,(t-r)/1e3*this._cacheHeuristic)}return e}timeToLive(){return 1e3*Math.max(0,this.maxAge()-this.age())}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||1!==e.v)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=void 0!==e.imm?e.imm:864e5,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);const t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag);if(t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&"GET"!=this._method){if(delete t["if-modified-since"],t["if-none-match"]){const e=t["if-none-match"].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t["if-none-match"]=e.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let r=!1;if(void 0!==t.status&&304!=t.status?r=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?r=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?r=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?r=this._resHeaders["last-modified"]===t.headers["last-modified"]:this._resHeaders.etag||this._resHeaders["last-modified"]||t.headers.etag||t.headers["last-modified"]||(r=!0),!r)return{policy:new this.constructor(e,t),modified:304!=t.status,matches:!1};const n={};for(const e in this._resHeaders)n[e]=e in t.headers&&!i[e]?t.headers[e]:this._resHeaders[e];const o=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}},92967:(e,t,r)=>{"use strict";const n=r(28614),i=r(4016),o=r(97565),s=r(82905),A=Symbol("currentStreamsCount"),a=Symbol("request"),c=Symbol("cachedOriginSet"),u=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],l=(e,t,r)=>{if(t in e){const n=e[t].indexOf(r);if(-1!==n)return e[t].splice(n,1),0===e[t].length&&delete e[t],!0}return!1},h=(e,t,r)=>{t in e?e[t].push(r):e[t]=[r]},g=(e,t,r)=>t in e?e[t].filter(e=>!e.closed&&!e.destroyed&&e[c].includes(r)):[],f=(e,t,r)=>{if(t in e)for(const n of e[t])n[c].length<r[c].length&&n[c].every(e=>r[c].includes(e))&&n[A]+r[A]<=r.remoteSettings.maxConcurrentStreams&&n.close()};class p extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:r=1,maxCachedTlsSessions:n=100}={}){super(),this.busySessions={},this.freeSessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=r,this.settings={enablePush:!1},this.tlsSessionCache=new s({maxSize:n})}static normalizeOrigin(e,t){return"string"==typeof e&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(const r of u)e[r]&&(t+=":"+e[r]);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;const r=g(this.busySessions,e,t).length,n=this.queue[e][t];r<this.maxSessions&&!n.completed&&(n.completed=!0,n())}_closeCoveredSessions(e,t){f(this.freeSessions,e,t),f(this.busySessions,e,t)}getSession(e,t,r){return new Promise((n,i)=>{Array.isArray(r)?(r=[...r],n()):r=[{resolve:n,reject:i}];const s=this.normalizeOptions(t),u=p.normalizeOrigin(e,t&&t.servername);if(void 0===u){for(const{reject:e}of r)e(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(s in this.freeSessions){const e=g(this.freeSessions,s,u);if(0!==e.length){const t=e.reduce((e,t)=>t.remoteSettings.maxConcurrentStreams>=e.remoteSettings.maxConcurrentStreams&&t[A]>e[A]?t:e);for(const{resolve:e}of r)e(t);return}}if(s in this.queue){if(u in this.queue[s])return void this.queue[s][u].listeners.push(...r)}else this.queue[s]={};const f=()=>{s in this.queue&&this.queue[s][u]===d&&(delete this.queue[s][u],0===Object.keys(this.queue[s]).length&&delete this.queue[s])},d=()=>{const n=`${u}:${s}`;let i,p=!1;try{const C=this.tlsSessionCache.get(n),E=o.connect(e,{createConnection:this.createConnection,settings:this.settings,session:C?C.session:void 0,...t});E[A]=0;const I=()=>E[c].reduce((e,t)=>Math.min(e,g(this.freeSessions,s,t).length),1/0)<this.maxFreeSessions&&(h(this.freeSessions,s,E),!0),m=()=>E[A]<E.remoteSettings.maxConcurrentStreams;E.socket.once("session",e=>{setImmediate(()=>{this.tlsSessionCache.set(n,{session:e,servername:i})})}),E.socket.once("secureConnect",()=>{i=E.socket.servername,!1===i&&void 0!==C&&void 0!==C.servername&&(E.socket.servername=C.servername)}),E.once("error",e=>{if(!p)for(const{reject:t}of r)t(e);this.tlsSessionCache.delete(n)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(!p){const e=new Error("Session closed without receiving a SETTINGS frame");for(const{reject:t}of r)t(e)}f(),l(this.freeSessions,s,E),this._tryToCreateNewSession(s,u)});const y=()=>{if(s in this.queue)for(const e of E[c])if(e in this.queue[s]){const{listeners:t}=this.queue[s][e];for(;0!==t.length&&m();)t.shift().resolve(E);if(0===this.queue[s][e].listeners.length&&(delete this.queue[s][e],0===Object.keys(this.queue[s]).length)){delete this.queue[s];break}if(!m())break}};E.once("origin",()=>{E[c]=E.originSet,m()&&(this._closeCoveredSessions(s,E),y(),E.on("remoteSettings",()=>{this._closeCoveredSessions(s,E)}))}),E.once("remoteSettings",()=>{if(d.destroyed){const e=new Error("Agent has been destroyed");for(const t of r)t.reject(e);E.destroy()}else E[c]=E.originSet,this.emit("session",E),I()?y():0===this.maxFreeSessions?(y(),setImmediate(()=>{E.close()})):E.close(),f(),0!==r.length&&(this.getSession(u,t,r),r.length=0),p=!0,E.on("remoteSettings",()=>{m()&&l(this.busySessions,s,E)&&(I()?y():h(this.busySessions,s,E))})}),E[a]=E.request,E.request=e=>{const t=E[a](e,{endStream:!1});return E.ref(),++E[A],!m()&&l(this.freeSessions,s,E)&&h(this.busySessions,s,E),t.once("close",()=>{--E[A],m()&&(0===E[A]&&E.unref(),!l(this.busySessions,s,E)||E.destroyed||E.closed||(I()?(this._closeCoveredSessions(s,E),y()):E.close())),E.destroyed||E.closed||((e,t,r)=>{if(t in e)for(const n of e[t])r[c].length<n[c].length&&r[c].every(e=>n[c].includes(e))&&r[A]+n[A]<=n.remoteSettings.maxConcurrentStreams&&r.close()})(this.freeSessions,s,E)}),t}}catch(e){for(const t of r)t.reject(e);f()}};d.listeners=r,d.completed=!1,d.destroyed=!1,this.queue[s][u]=d,this._tryToCreateNewSession(s,u)})}request(e,t,r){return new Promise((n,i)=>{this.getSession(e,t,[{reject:i,resolve:e=>{n(e.request(r))}}])})}createConnection(e,t){return p.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];const r=e.port||443,n=e.hostname||e.host;return void 0===t.servername&&(t.servername=n),i.connect(r,n,t)}closeFreeSessions(){for(const e of Object.values(this.freeSessions))for(const t of e)0===t[A]&&t.close()}destroy(e){for(const t of Object.values(this.busySessions))for(const r of t)r.destroy(e);for(const t of Object.values(this.freeSessions))for(const r of t)r.destroy(e);for(const e of Object.values(this.queue))for(const t of Object.values(e))t.destroyed=!0;this.queue={}}}e.exports={Agent:p,globalAgent:new p}},89018:(e,t,r)=>{"use strict";const n=r(98605),i=r(57211),o=r(19476),s=r(82905),A=r(46889),a=r(44294),c=r(95581),u=new s({maxSize:100}),l=new Map,h=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};const n=()=>{e.emit("free",t,r)};t.on("free",n);const i=()=>{e.removeSocket(t,r)};t.on("close",i);const o=()=>{e.removeSocket(t,r),t.off("close",i),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)};e.exports=async(e,t,r)=>{("string"==typeof e||e instanceof URL)&&(e=c(new URL(e))),"function"==typeof t&&(r=t,t=void 0);const s="https:"===(t={ALPNProtocols:["h2","http/1.1"],protocol:"https:",...e,...t,resolveSocket:!0}).protocol,g=t.agent;if(t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||a(t),t.port=t.port||(s?443:80),t._defaultAgent=s?i.globalAgent:n.globalAgent,g){if(g.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=g[s?"https":"http"]}if(s){if("h2"===await(async e=>{const t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!u.has(t)){if(l.has(t)){return(await l.get(t)).alpnProtocol}const{path:r,agent:n}=e;e.path=e.socketPath;const s=o(e);l.set(t,s);try{const{socket:o,alpnProtocol:A}=await s;if(u.set(t,A),e.path=r,"h2"===A)o.destroy();else{const{globalAgent:t}=i,r=i.Agent.prototype.createConnection;n?n.createConnection===r?h(n,o,e):o.destroy():t.createConnection===r?h(t,o,e):o.destroy()}return l.delete(t),A}catch(e){throw l.delete(t),e}}return u.get(t)})(t))return g&&(t.agent=g.http2),new A(t,r)}return n.request(t,r)},e.exports.protocolCache=u},46889:(e,t,r)=>{"use strict";const n=r(97565),{Writable:i}=r(92413),{Agent:o,globalAgent:s}=r(92967),A=r(75744),a=r(95581),c=r(17395),u=r(13110),{ERR_INVALID_ARG_TYPE:l,ERR_INVALID_PROTOCOL:h,ERR_HTTP_HEADERS_SENT:g,ERR_INVALID_HTTP_TOKEN:f,ERR_HTTP_INVALID_HEADER_VALUE:p,ERR_INVALID_CHAR:d}=r(91078),{HTTP2_HEADER_STATUS:C,HTTP2_HEADER_METHOD:E,HTTP2_HEADER_PATH:I,HTTP2_METHOD_CONNECT:m}=n.constants,y=Symbol("headers"),w=Symbol("origin"),B=Symbol("session"),Q=Symbol("options"),v=Symbol("flushedHeaders"),D=Symbol("jobs"),b=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,S=/[^\t\u0020-\u007E\u0080-\u00FF]/;e.exports=class extends i{constructor(e,t,r){super({autoDestroy:!1});const n="string"==typeof e||e instanceof URL;if(n&&(e=a(e instanceof URL?e:new URL(e))),"function"==typeof t||void 0===t?(r=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[B]=t.h2session;else if(!1===t.agent)this.agent=new o({maxFreeSessions:0});else if(void 0===t.agent||null===t.agent)"function"==typeof t.createConnection?(this.agent=new o({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=s;else{if("function"!=typeof t.agent.request)throw new l("options.agent",["Agent-like Object","undefined","false"],t.agent);this.agent=t.agent}if(t.port||(t.port=t.defaultPort||this.agent&&this.agent.defaultPort||443),t.host=t.hostname||t.host||"localhost",t.protocol&&"https:"!==t.protocol)throw new h(t.protocol,"https:");const{timeout:i}=t;if(t.timeout=void 0,this[y]=Object.create(null),this[D]=[],this.socket=null,this.connection=null,this.method=t.method,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(const[e,r]of Object.entries(t.headers))this.setHeader(e,r);t.auth&&!("authorization"in this[y])&&(this[y].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[Q]=t,443===t.port?(t.origin="https://"+t.host,":authority"in this[y]||(this[y][":authority"]=t.host)):(t.origin=`https://${t.host}:${t.port}`,":authority"in this[y]||(this[y][":authority"]=`${t.host}:${t.port}`)),this[w]=t,i&&this.setTimeout(i),r&&this.once("response",r),this[v]=!1}get method(){return this[y][E]}set method(e){e&&(this[y][E]=e.toUpperCase())}get path(){return this[y][I]}set path(e){e&&(this[y][I]=e)}_write(e,t,r){this.flushHeaders();const n=()=>this._request.write(e,t,r);this._request?n():this[D].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();const t=()=>this._request.end(e);this._request?t():this[D].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[v]||this.destroyed)return;this[v]=!0;const e=this.method===m,t=t=>{if(this._request=t,this.destroyed)return void t.destroy();e||c(t,this,["timeout","continue","close","error"]),t.once("response",(r,n,i)=>{const o=new A(this.socket,t.readableHighWaterMark);this.res=o,o.req=this,o.statusCode=r[C],o.headers=r,o.rawHeaders=i,o.once("end",()=>{this.aborted?(o.aborted=!0,o.emit("aborted")):(o.complete=!0,o.socket=null,o.connection=null)}),e?(o.upgrade=!0,this.emit("connect",o,t,Buffer.alloc(0))?this.emit("close"):t.destroy()):(t.on("data",e=>{o._dumped||o.push(e)||t.pause()}),t.once("end",()=>{o.push(null)}),this.emit("response",o)||o._dump())}),t.once("headers",e=>this.emit("information",{statusCode:e[C]})),t.once("trailers",(e,t,r)=>{const{res:n}=this;n.trailers=e,n.rawTrailers=r});const{socket:r}=t.session;this.socket=r,this.connection=r;for(const e of this[D])e();this.emit("socket",this.socket)};if(this[B])try{t(this[B].request(this[y],{endStream:!1}))}catch(e){this.emit("error",e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[w],this[Q],this[y]))}catch(e){this.emit("error",e)}}}getHeader(e){if("string"!=typeof e)throw new l("name","string",e);return this[y][e.toLowerCase()]}get headersSent(){return this[v]}removeHeader(e){if("string"!=typeof e)throw new l("name","string",e);if(this.headersSent)throw new g("remove");delete this[y][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new g("set");if("string"!=typeof e||!b.test(e)&&!u(e))throw new f("Header name",e);if(void 0===t)throw new p(t,e);if(S.test(t))throw new d("header content",e);this[y][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){const r=()=>this._request.setTimeout(e,t);return this._request?r():this[D].push(r),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}},75744:(e,t,r)=>{"use strict";const{Readable:n}=r(92413);e.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}}},9453:(e,t,r)=>{"use strict";const n=r(97565),i=r(92967),o=r(46889),s=r(75744),A=r(89018);e.exports={...n,ClientRequest:o,IncomingMessage:s,...i,request:(e,t,r)=>new o(e,t,r),get:(e,t,r)=>{const n=new o(e,t,r);return n.end(),n},auto:A}},44294:(e,t,r)=>{"use strict";const n=r(11631);e.exports=e=>{let t=e.host;const r=e.headers&&e.headers.host;if(r)if(r.startsWith("[")){t=-1===r.indexOf("]")?r:r.slice(1,-1)}else t=r.split(":",1)[0];return n.isIP(t)?"":t}},91078:e=>{"use strict";const t=(t,r,n)=>{e.exports[r]=class extends t{constructor(...e){super("string"==typeof n?n:n(e)),this.name=`${super.name} [${r}]`,this.code=r}}};t(TypeError,"ERR_INVALID_ARG_TYPE",e=>{const t=e[0].includes(".")?"property":"argument";let r=e[1];const n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`}),t(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),t(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`),t(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),t(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`),t(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)},13110:e=>{"use strict";e.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}},17395:e=>{"use strict";e.exports=(e,t,r)=>{for(const n of r)e.on(n,(...e)=>t.emit(n,...e))}},95581:e=>{"use strict";e.exports=e=>{const t={protocol:e.protocol,hostname:"string"==typeof e.hostname&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return"string"==typeof e.port&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},3870:(e,t,r)=>{"use strict";var n=r(44765).Buffer;t._dbcs=s;for(var i=new Array(256),o=0;o<256;o++)i[o]=-1;function s(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=i.slice(0),this.decodeTableSeq=[];for(var n=0;n<r.length;n++)this._addDecodeChunk(r[n]);this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var o={};if(e.encodeSkipVals)for(n=0;n<e.encodeSkipVals.length;n++){var s=e.encodeSkipVals[n];if("number"==typeof s)o[s]=!0;else for(var A=s.from;A<=s.to;A++)o[A]=!0}if(this._fillEncodeTable(0,0,o),e.encodeAdd)for(var a in e.encodeAdd)Object.prototype.hasOwnProperty.call(e.encodeAdd,a)&&this._setEncodeChar(a.charCodeAt(0),e.encodeAdd[a]);if(this.defCharSB=this.encodeTable[0][t.defaultCharSingleByte.charCodeAt(0)],-1===this.defCharSB&&(this.defCharSB=this.encodeTable[0]["?"]),-1===this.defCharSB&&(this.defCharSB="?".charCodeAt(0)),"function"==typeof e.gb18030){this.gb18030=e.gb18030();var c=this.decodeTables.length,u=this.decodeTables[c]=i.slice(0),l=this.decodeTables.length,h=this.decodeTables[l]=i.slice(0);for(n=129;n<=254;n++){var g=-1e3-this.decodeTables[0][n],f=this.decodeTables[g];for(A=48;A<=57;A++)f[A]=-1e3-c}for(n=129;n<=254;n++)u[n]=-1e3-l;for(n=48;n<=57;n++)h[n]=-2}}function A(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}function a(e,t){this.nodeIdx=0,this.prevBuf=n.alloc(0),this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}function c(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r<n-1;){var i=r+Math.floor((n-r+1)/2);e[i]<=t?r=i:n=i}return r}s.prototype.encoder=A,s.prototype.decoder=a,s.prototype._getDecodeTrieNode=function(e){for(var t=[];e>0;e>>=8)t.push(255&e);0==t.length&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var o=r[t[n]];if(-1==o)r[t[n]]=-1e3-this.decodeTables.length,this.decodeTables.push(r=i.slice(0));else{if(!(o<=-1e3))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16));r=this.decodeTables[-1e3-o]}}return r},s.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t&=255;for(var n=1;n<e.length;n++){var i=e[n];if("string"==typeof i)for(var o=0;o<i.length;){var s=i.charCodeAt(o++);if(55296<=s&&s<56320){var A=i.charCodeAt(o++);if(!(56320<=A&&A<57344))throw new Error("Incorrect surrogate pair in "+this.encodingName+" at chunk "+e[0]);r[t++]=65536+1024*(s-55296)+(A-56320)}else if(4080<s&&s<=4095){for(var a=4095-s+2,c=[],u=0;u<a;u++)c.push(i.charCodeAt(o++));r[t++]=-10-this.decodeTableSeq.length,this.decodeTableSeq.push(c)}else r[t++]=s}else{if("number"!=typeof i)throw new Error("Incorrect type '"+typeof i+"' given in "+this.encodingName+" at chunk "+e[0]);var l=r[t-1]+1;for(o=0;o<i;o++)r[t++]=l++}}if(t>255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)},s.prototype._getEncodeBucket=function(e){var t=e>>8;return void 0===this.encodeTable[t]&&(this.encodeTable[t]=i.slice(0)),this.encodeTable[t]},s.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=255&e;r[n]<=-10?this.encodeTableSeq[-10-r[n]][-1]=t:-1==r[n]&&(r[n]=t)},s.prototype._setEncodeSequence=function(e,t){var r,n=e[0],i=this._getEncodeBucket(n),o=255&n;i[o]<=-10?r=this.encodeTableSeq[-10-i[o]]:(r={},-1!==i[o]&&(r[-1]=i[o]),i[o]=-10-this.encodeTableSeq.length,this.encodeTableSeq.push(r));for(var s=1;s<e.length-1;s++){var A=r[n];"object"==typeof A?r=A:(r=r[n]={},void 0!==A&&(r[-1]=A))}r[n=e[e.length-1]]=t},s.prototype._fillEncodeTable=function(e,t,r){for(var n=this.decodeTables[e],i=0;i<256;i++){var o=n[i],s=t+i;r[s]||(o>=0?this._setEncodeChar(o,s):o<=-1e3?this._fillEncodeTable(-1e3-o,s<<8,r):o<=-10&&this._setEncodeSequence(this.decodeTableSeq[-10-o],s))}},A.prototype.write=function(e){for(var t=n.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,i=this.seqObj,o=-1,s=0,A=0;;){if(-1===o){if(s==e.length)break;var a=e.charCodeAt(s++)}else{a=o;o=-1}if(55296<=a&&a<57344)if(a<56320){if(-1===r){r=a;continue}r=a,a=-1}else-1!==r?(a=65536+1024*(r-55296)+(a-56320),r=-1):a=-1;else-1!==r&&(o=a,a=-1,r=-1);var u=-1;if(void 0!==i&&-1!=a){var l=i[a];if("object"==typeof l){i=l;continue}"number"==typeof l?u=l:null==l&&void 0!==(l=i[-1])&&(u=l,o=a),i=void 0}else if(a>=0){var h=this.encodeTable[a>>8];if(void 0!==h&&(u=h[255&a]),u<=-10){i=this.encodeTableSeq[-10-u];continue}if(-1==u&&this.gb18030){var g=c(this.gb18030.uChars,a);if(-1!=g){u=this.gb18030.gbChars[g]+(a-this.gb18030.uChars[g]);t[A++]=129+Math.floor(u/12600),u%=12600,t[A++]=48+Math.floor(u/1260),u%=1260,t[A++]=129+Math.floor(u/10),u%=10,t[A++]=48+u;continue}}}-1===u&&(u=this.defaultCharSingleByte),u<256?t[A++]=u:u<65536?(t[A++]=u>>8,t[A++]=255&u):(t[A++]=u>>16,t[A++]=u>>8&255,t[A++]=255&u)}return this.seqObj=i,this.leadSurrogate=r,t.slice(0,A)},A.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var e=n.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[-1];void 0!==r&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=255&r)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}},A.prototype.findIdx=c,a.prototype.write=function(e){var t=n.alloc(2*e.length),r=this.nodeIdx,i=this.prevBuf,o=this.prevBuf.length,s=-this.prevBuf.length;o>0&&(i=n.concat([i,e.slice(0,10)]));for(var A=0,a=0;A<e.length;A++){var u,l=A>=0?e[A]:i[A+o];if((u=this.decodeTables[r][l])>=0);else if(-1===u)A=s,u=this.defaultCharUnicode.charCodeAt(0);else if(-2===u){var h=s>=0?e.slice(s,A+1):i.slice(s+o,A+1+o),g=12600*(h[0]-129)+1260*(h[1]-48)+10*(h[2]-129)+(h[3]-48),f=c(this.gb18030.gbChars,g);u=this.gb18030.uChars[f]+g-this.gb18030.gbChars[f]}else{if(u<=-1e3){r=-1e3-u;continue}if(!(u<=-10))throw new Error("iconv-lite internal error: invalid decoding table value "+u+" at "+r+"/"+l);for(var p=this.decodeTableSeq[-10-u],d=0;d<p.length-1;d++)u=p[d],t[a++]=255&u,t[a++]=u>>8;u=p[p.length-1]}if(u>65535){u-=65536;var C=55296+Math.floor(u/1024);t[a++]=255&C,t[a++]=C>>8,u=56320+u%1024}t[a++]=255&u,t[a++]=u>>8,r=0,s=A+1}return this.nodeIdx=r,this.prevBuf=s>=0?e.slice(s):i.slice(s+o),t.slice(0,a).toString("ucs2")},a.prototype.end=function(){for(var e="";this.prevBuf.length>0;){e+=this.defaultCharUnicode;var t=this.prevBuf.slice(1);this.prevBuf=n.alloc(0),this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.nodeIdx=0,e}},18476:(e,t,r)=>{"use strict";e.exports={shiftjis:{type:"_dbcs",table:function(){return r(49688)},encodeAdd:{"¥":92,"‾":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return r(20345)},encodeAdd:{"¥":92,"‾":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return r(2685)}},gbk:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))},gb18030:function(){return r(39909)},encodeSkipVals:[128],encodeAdd:{"€":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return r(39192)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return r(73691)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return r(73691).concat(r(93701))},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},15709:(e,t,r)=>{"use strict";for(var n=[r(70497),r(2682),r(46339),r(31658),r(1999),r(53522),r(3870),r(18476)],i=0;i<n.length;i++){var o=n[i];for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s])}},70497:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,"base64"===this.enc?this.encoder=a:"cesu8"===this.enc&&(this.enc="utf8",this.encoder=c,"💩"!==n.from("eda0bdedb2a9","hex").toString()&&(this.decoder=u,this.defaultCharUnicode=t.defaultCharUnicode))}e.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:i},i.prototype.encoder=A,i.prototype.decoder=s;var o=r(24304).StringDecoder;function s(e,t){o.call(this,t.enc)}function A(e,t){this.enc=t.enc}function a(e,t){this.prevStr=""}function c(e,t){}function u(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}o.prototype.end||(o.prototype.end=function(){}),s.prototype=o.prototype,A.prototype.write=function(e){return n.from(e,this.enc)},A.prototype.end=function(){},a.prototype.write=function(e){var t=(e=this.prevStr+e).length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),n.from(e,"base64")},a.prototype.end=function(){return n.from(this.prevStr,"base64")},c.prototype.write=function(e){for(var t=n.alloc(3*e.length),r=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?t[r++]=o:o<2048?(t[r++]=192+(o>>>6),t[r++]=128+(63&o)):(t[r++]=224+(o>>>12),t[r++]=128+(o>>>6&63),t[r++]=128+(63&o))}return t.slice(0,r)},c.prototype.end=function(){},u.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,i="",o=0;o<e.length;o++){var s=e[o];128!=(192&s)?(r>0&&(i+=this.defaultCharUnicode,r=0),s<128?i+=String.fromCharCode(s):s<224?(t=31&s,r=1,n=1):s<240?(t=15&s,r=2,n=1):i+=this.defaultCharUnicode):r>0?(t=t<<6|63&s,n++,0===--r&&(i+=2===n&&t<128&&t>0||3===n&&t<2048?this.defaultCharUnicode:String.fromCharCode(t))):i+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,i},u.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}},31658:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||128!==e.chars.length&&256!==e.chars.length)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(128===e.chars.length){for(var r="",i=0;i<128;i++)r+=String.fromCharCode(i);e.chars=r+e.chars}this.decodeBuf=n.from(e.chars,"ucs2");var o=n.alloc(65536,t.defaultCharSingleByte.charCodeAt(0));for(i=0;i<e.chars.length;i++)o[e.chars.charCodeAt(i)]=i;this.encodeBuf=o}function o(e,t){this.encodeBuf=t.encodeBuf}function s(e,t){this.decodeBuf=t.decodeBuf}t._sbcs=i,i.prototype.encoder=o,i.prototype.decoder=s,o.prototype.write=function(e){for(var t=n.alloc(e.length),r=0;r<e.length;r++)t[r]=this.encodeBuf[e.charCodeAt(r)];return t},o.prototype.end=function(){},s.prototype.write=function(e){for(var t=this.decodeBuf,r=n.alloc(2*e.length),i=0,o=0,s=0;s<e.length;s++)i=2*e[s],r[o=2*s]=t[i],r[o+1]=t[i+1];return r.toString("ucs2")},s.prototype.end=function(){}},53522:e=>{"use strict";e.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:" Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:" Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:" ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:" ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:" ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:" ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:" �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:" ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:" กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:" ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:" Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:" ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:" ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñÑªº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:" ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:" ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:" ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:" ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"},maccyrillic:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},macgreek:{type:"_sbcs",chars:"Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"},maciceland:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macroman:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macromania:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macthai:{type:"_sbcs",chars:"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู\ufeff​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"},macturkish:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"},macukraine:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},koi8r:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8u:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8ru:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8t:{type:"_sbcs",chars:"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},armscii8:{type:"_sbcs",chars:" �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"},rk1048:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},tcvn:{type:"_sbcs",chars:"\0ÚỤỪỬỮ\b\t\n\v\f\rỨỰỲỶỸÝỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"},georgianacademy:{type:"_sbcs",chars:"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},georgianps:{type:"_sbcs",chars:"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},pt154:{type:"_sbcs",chars:"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},viscii:{type:"_sbcs",chars:"\0ẲẴẪ\b\t\n\v\f\rỶỸỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"},iso646cn:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},iso646jp:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},hproman8:{type:"_sbcs",chars:" ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"},macintosh:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},ascii:{type:"_sbcs",chars:"��������������������������������������������������������������������������������������������������������������������������������"},tis620:{type:"_sbcs",chars:"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"}}},1999:e=>{"use strict";e.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "},mik:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},93701:e=>{"use strict";e.exports=JSON.parse('[["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー［］✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","￢￤＇＂㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","￭"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]')},2685:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1","　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","！＂＃￥％",88,"￣"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]')},39192:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛！",58,"￦］",32,"￣"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆÐªĦ"],["a8a6","Ĳ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]')},73691:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["a140","　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢",4,"～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／"],["a240","＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳０",9,"Ⅰ",9,"〡",8,"十卄卅Ａ",25,"ａ",21],["a340","ｗｘｙｚΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]')},20345:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8ea1","｡",62],["a1a1","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨￢⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","Å‰♯♭♪†‡¶"],["a2fe","◯"],["a3b0","０",9],["a3c1","Ａ",25],["a3e1","ａ",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"￢￤＇＂"],["8fa2af","˘ˇ¸˙˝¯˛˚～΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","Ĳ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıĳĸłŀŉŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]')},39909:e=>{"use strict";e.exports=JSON.parse('{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}')},4764:e=>{"use strict";e.exports=JSON.parse('[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31,"　"],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]')},49688:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",128],["a1","｡",62],["8140","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×"],["8180","÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨￢⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","Å‰♯♭♪†‡¶"],["81fc","◯"],["824f","０",9],["8260","Ａ",25],["8281","ａ",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"￢￤＇＂"],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]')},2682:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(){}function o(){}function s(){this.overflowByte=-1}function A(e,t){this.iconv=t}function a(e,t){void 0===(e=e||{}).addBOM&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder("utf-16le",e)}function c(e,t){this.decoder=null,this.initialBytes=[],this.initialBytesLen=0,this.options=e||{},this.iconv=t.iconv}function u(e,t){var r=t||"utf-16le";if(e.length>=2)if(254==e[0]&&255==e[1])r="utf-16be";else if(255==e[0]&&254==e[1])r="utf-16le";else{for(var n=0,i=0,o=Math.min(e.length-e.length%2,64),s=0;s<o;s+=2)0===e[s]&&0!==e[s+1]&&i++,0!==e[s]&&0===e[s+1]&&n++;i>n?r="utf-16be":i<n&&(r="utf-16le")}return r}t.utf16be=i,i.prototype.encoder=o,i.prototype.decoder=s,i.prototype.bomAware=!0,o.prototype.write=function(e){for(var t=n.from(e,"ucs2"),r=0;r<t.length;r+=2){var i=t[r];t[r]=t[r+1],t[r+1]=i}return t},o.prototype.end=function(){},s.prototype.write=function(e){if(0==e.length)return"";var t=n.alloc(e.length+1),r=0,i=0;for(-1!==this.overflowByte&&(t[0]=e[0],t[1]=this.overflowByte,r=1,i=2);r<e.length-1;r+=2,i+=2)t[i]=e[r+1],t[i+1]=e[r];return this.overflowByte=r==e.length-1?e[e.length-1]:-1,t.slice(0,i).toString("ucs2")},s.prototype.end=function(){},t.utf16=A,A.prototype.encoder=a,A.prototype.decoder=c,a.prototype.write=function(e){return this.encoder.write(e)},a.prototype.end=function(){return this.encoder.end()},c.prototype.write=function(e){if(!this.decoder){if(this.initialBytes.push(e),this.initialBytesLen+=e.length,this.initialBytesLen<16)return"";var t=u(e=n.concat(this.initialBytes),this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options),this.initialBytes.length=this.initialBytesLen=0}return this.decoder.write(e)},c.prototype.end=function(){if(!this.decoder){var e=n.concat(this.initialBytes),t=u(e,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);var r=this.decoder.write(e),i=this.decoder.end();return i?r+i:r}return this.decoder.end()}},46339:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){this.iconv=t}t.utf7=i,t.unicode11utf7="utf7",i.prototype.encoder=s,i.prototype.decoder=A,i.prototype.bomAware=!0;var o=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function s(e,t){this.iconv=t.iconv}function A(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}s.prototype.write=function(e){return n.from(e.replace(o,function(e){return"+"+("+"===e?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))},s.prototype.end=function(){};for(var a=/[A-Za-z0-9\/+]/,c=[],u=0;u<256;u++)c[u]=a.test(String.fromCharCode(u));var l="+".charCodeAt(0),h="-".charCodeAt(0),g="&".charCodeAt(0);function f(e,t){this.iconv=t}function p(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=n.alloc(6),this.base64AccumIdx=0}function d(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}A.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s<e.length;s++)if(i){if(!c[e[s]]){if(s==r&&e[s]==h)t+="+";else{var A=o+e.slice(r,s).toString();t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}e[s]!=h&&s--,r=s+1,i=!1,o=""}}else e[s]==l&&(t+=this.iconv.decode(e.slice(r,s),"ascii"),r=s+1,i=!0);if(i){var a=(A=o+e.slice(r).toString()).length-A.length%8;o=A.slice(a),A=A.slice(0,a),t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}else t+=this.iconv.decode(e.slice(r),"ascii");return this.inBase64=i,this.base64Accum=o,t},A.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e},t.utf7imap=f,f.prototype.encoder=p,f.prototype.decoder=d,f.prototype.bomAware=!0,p.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,i=this.base64AccumIdx,o=n.alloc(5*e.length+10),s=0,A=0;A<e.length;A++){var a=e.charCodeAt(A);32<=a&&a<=126?(t&&(i>0&&(s+=o.write(r.slice(0,i).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),i=0),o[s++]=h,t=!1),t||(o[s++]=a,a===g&&(o[s++]=h))):(t||(o[s++]=g,t=!0),t&&(r[i++]=a>>8,r[i++]=255&a,i==r.length&&(s+=o.write(r.toString("base64").replace(/\//g,","),s),i=0)))}return this.inBase64=t,this.base64AccumIdx=i,o.slice(0,s)},p.prototype.end=function(){var e=n.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=h,this.inBase64=!1),e.slice(0,t)};var C=c.slice();C[",".charCodeAt(0)]=!0,d.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s<e.length;s++)if(i){if(!C[e[s]]){if(s==r&&e[s]==h)t+="&";else{var A=o+e.slice(r,s).toString().replace(/,/g,"/");t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}e[s]!=h&&s--,r=s+1,i=!1,o=""}}else e[s]==g&&(t+=this.iconv.decode(e.slice(r,s),"ascii"),r=s+1,i=!0);if(i){var a=(A=o+e.slice(r).toString().replace(/,/g,"/")).length-A.length%8;o=A.slice(a),A=A.slice(0,a),t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}else t+=this.iconv.decode(e.slice(r),"ascii");return this.inBase64=i,this.base64Accum=o,t},d.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}},47773:(e,t)=>{"use strict";function r(e,t){this.encoder=e,this.addBOM=!0}function n(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}t.PrependBOM=r,r.prototype.write=function(e){return this.addBOM&&(e="\ufeff"+e,this.addBOM=!1),this.encoder.write(e)},r.prototype.end=function(){return this.encoder.end()},t.StripBOM=n,n.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||("\ufeff"===t[0]&&(t=t.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),t},n.prototype.end=function(){return this.decoder.end()}},819:(e,t,r)=>{"use strict";var n=r(64293).Buffer;e.exports=function(e){var t=void 0;e.supportsNodeEncodingsExtension=!(n.from||new n(0)instanceof Uint8Array),e.extendNodeEncodings=function(){if(!t){if(t={},!e.supportsNodeEncodingsExtension)return console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),void console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");var i={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};n.isNativeEncoding=function(e){return e&&i[e.toLowerCase()]};var o=r(64293).SlowBuffer;if(t.SlowBufferToString=o.prototype.toString,o.prototype.toString=function(r,i,o){return r=String(r||"utf8").toLowerCase(),n.isNativeEncoding(r)?t.SlowBufferToString.call(this,r,i,o):(void 0===i&&(i=0),void 0===o&&(o=this.length),e.decode(this.slice(i,o),r))},t.SlowBufferWrite=o.prototype.write,o.prototype.write=function(r,i,o,s){if(isFinite(i))isFinite(o)||(s=o,o=void 0);else{var A=s;s=i,i=o,o=A}i=+i||0;var a=this.length-i;if(o?(o=+o)>a&&(o=a):o=a,s=String(s||"utf8").toLowerCase(),n.isNativeEncoding(s))return t.SlowBufferWrite.call(this,r,i,o,s);if(r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var c=e.encode(r,s);return c.length<o&&(o=c.length),c.copy(this,i,0,o),o},t.BufferIsEncoding=n.isEncoding,n.isEncoding=function(t){return n.isNativeEncoding(t)||e.encodingExists(t)},t.BufferByteLength=n.byteLength,n.byteLength=o.byteLength=function(r,i){return i=String(i||"utf8").toLowerCase(),n.isNativeEncoding(i)?t.BufferByteLength.call(this,r,i):e.encode(r,i).length},t.BufferToString=n.prototype.toString,n.prototype.toString=function(r,i,o){return r=String(r||"utf8").toLowerCase(),n.isNativeEncoding(r)?t.BufferToString.call(this,r,i,o):(void 0===i&&(i=0),void 0===o&&(o=this.length),e.decode(this.slice(i,o),r))},t.BufferWrite=n.prototype.write,n.prototype.write=function(r,i,o,s){var A=i,a=o,c=s;if(isFinite(i))isFinite(o)||(s=o,o=void 0);else{var u=s;s=i,i=o,o=u}if(s=String(s||"utf8").toLowerCase(),n.isNativeEncoding(s))return t.BufferWrite.call(this,r,A,a,c);i=+i||0;var l=this.length-i;if(o?(o=+o)>l&&(o=l):o=l,r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var h=e.encode(r,s);return h.length<o&&(o=h.length),h.copy(this,i,0,o),o},e.supportsStreams){var s=r(92413).Readable;t.ReadableSetEncoding=s.prototype.setEncoding,s.prototype.setEncoding=function(t,r){this._readableState.decoder=e.getDecoder(t,r),this._readableState.encoding=t},s.prototype.collect=e._collect}}},e.undoExtendNodeEncodings=function(){if(e.supportsNodeEncodingsExtension){if(!t)throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.");delete n.isNativeEncoding;var i=r(64293).SlowBuffer;if(i.prototype.toString=t.SlowBufferToString,i.prototype.write=t.SlowBufferWrite,n.isEncoding=t.BufferIsEncoding,n.byteLength=t.BufferByteLength,n.prototype.toString=t.BufferToString,n.prototype.write=t.BufferWrite,e.supportsStreams){var o=r(92413).Readable;o.prototype.setEncoding=t.ReadableSetEncoding,delete o.prototype.collect}t=void 0}}}},14503:(e,t,r)=>{"use strict";var n=r(44765).Buffer,i=r(47773),o=e.exports;o.encodings=null,o.defaultCharUnicode="�",o.defaultCharSingleByte="?",o.encode=function(e,t,r){e=""+(e||"");var i=o.getEncoder(t,r),s=i.write(e),A=i.end();return A&&A.length>0?n.concat([s,A]):s},o.decode=function(e,t,r){"string"==typeof e&&(o.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),o.skipDecodeWarning=!0),e=n.from(""+(e||""),"binary"));var i=o.getDecoder(t,r),s=i.write(e),A=i.end();return A?s+A:s},o.encodingExists=function(e){try{return o.getCodec(e),!0}catch(e){return!1}},o.toEncoding=o.encode,o.fromEncoding=o.decode,o._codecDataCache={},o.getCodec=function(e){o.encodings||(o.encodings=r(15709));for(var t=o._canonicalizeEncoding(e),n={};;){var i=o._codecDataCache[t];if(i)return i;var s=o.encodings[t];switch(typeof s){case"string":t=s;break;case"object":for(var A in s)n[A]=s[A];n.encodingName||(n.encodingName=t),t=s.type;break;case"function":return n.encodingName||(n.encodingName=t),i=new s(n,o),o._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}},o._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},o.getEncoder=function(e,t){var r=o.getCodec(e),n=new r.encoder(t,r);return r.bomAware&&t&&t.addBOM&&(n=new i.PrependBOM(n,t)),n},o.getDecoder=function(e,t){var r=o.getCodec(e),n=new r.decoder(t,r);return!r.bomAware||t&&!1===t.stripBOM||(n=new i.StripBOM(n,t)),n};var s="undefined"!=typeof process&&process.versions&&process.versions.node;if(s){var A=s.split(".").map(Number);(A[0]>0||A[1]>=10)&&r(16034)(o),r(819)(o)}},16034:(e,t,r)=>{"use strict";var n=r(64293).Buffer,i=r(92413).Transform;function o(e,t){this.conv=e,(t=t||{}).decodeStrings=!1,i.call(this,t)}function s(e,t){this.conv=e,(t=t||{}).encoding=this.encoding="utf8",i.call(this,t)}e.exports=function(e){e.encodeStream=function(t,r){return new o(e.getEncoder(t,r),r)},e.decodeStream=function(t,r){return new s(e.getDecoder(t,r),r)},e.supportsStreams=!0,e.IconvLiteEncoderStream=o,e.IconvLiteDecoderStream=s,e._collect=s.prototype.collect},o.prototype=Object.create(i.prototype,{constructor:{value:o}}),o.prototype._transform=function(e,t,r){if("string"!=typeof e)return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(e);n&&n.length&&this.push(n),r()}catch(e){r(e)}},o.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t),e()}catch(t){e(t)}},o.prototype.collect=function(e){var t=[];return this.on("error",e),this.on("data",(function(e){t.push(e)})),this.on("end",(function(){e(null,n.concat(t))})),this},s.prototype=Object.create(i.prototype,{constructor:{value:s}}),s.prototype._transform=function(e,t,r){if(!n.isBuffer(e))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var i=this.conv.write(e);i&&i.length&&this.push(i,this.encoding),r()}catch(e){r(e)}},s.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t,this.encoding),e()}catch(t){e(t)}},s.prototype.collect=function(e){var t="";return this.on("error",e),this.on("data",(function(e){t+=e})),this.on("end",(function(){e(null,t)})),this}},46458:e=>{function t(e){return Array.isArray(e)?e:[e]}const r=/^\s+$/,n=/^\\!/,i=/^\\#/,o=/\r?\n/g,s=/^\.*\/|^\.+$/,A="undefined"!=typeof Symbol?Symbol.for("node-ignore"):"node-ignore",a=/([0-z])-([0-z])/g,c=[[/\\?\s+$/,e=>0===e.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,e=>"\\"+e],[/\[([^\]/]*)($|\])/g,(e,t,r)=>{return"]"===r?`[${n=t,n.replace(a,(e,t,r)=>t.charCodeAt(0)<=r.charCodeAt(0)?e:"")}]`:"\\"+e;var n}],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,e=>/\/$/.test(e)?e+"$":e+"(?=$|\\/$)"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(e,t)=>t+"[^\\/]*"],[/(\^|\\\/)?\\\*$/,(e,t)=>(t?t+"[^/]+":"[^/]*")+"(?=$|\\/$)"],[/\\\\\\/g,()=>"\\"]],u=Object.create(null),l=e=>"string"==typeof e;class h{constructor(e,t,r,n){this.origin=e,this.pattern=t,this.negative=r,this.regex=n}}const g=(e,t)=>{const r=e;let o=!1;0===e.indexOf("!")&&(o=!0,e=e.substr(1));const s=((e,t,r)=>{const n=u[e];if(n)return n;const i=c.reduce((t,r)=>t.replace(r[0],r[1].bind(e)),e);return u[e]=r?new RegExp(i,"i"):new RegExp(i)})(e=e.replace(n,"!").replace(i,"#"),0,t);return new h(r,e,o,s)},f=(e,t)=>{throw new t(e)},p=(e,t,r)=>{if(!l(e))return r(`path must be a string, but got \`${t}\``,TypeError);if(!e)return r("path must not be empty",TypeError);if(p.isNotRelative(e)){return r(`path should be a ${"`path.relative()`d"} string, but got "${t}"`,RangeError)}return!0},d=e=>s.test(e);p.isNotRelative=d,p.convert=e=>e;class C{constructor({ignorecase:e=!0}={}){var t,r,n;this._rules=[],this._ignorecase=e,t=this,r=A,n=!0,Object.defineProperty(t,r,{value:n}),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[A])return this._rules=this._rules.concat(e._rules),void(this._added=!0);if((e=>e&&l(e)&&!r.test(e)&&0!==e.indexOf("#"))(e)){const t=g(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,t(l(e)?(e=>e.split(o))(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let r=!1,n=!1;return this._rules.forEach(i=>{const{negative:o}=i;if(n===o&&r!==n||o&&!r&&!n&&!t)return;i.regex.test(e)&&(r=!o,n=o)}),{ignored:r,unignored:n}}_test(e,t,r,n){const i=e&&p.convert(e);return p(i,e,f),this._t(i,t,r,n)}_t(e,t,r,n){if(e in t)return t[e];if(n||(n=e.split("/")),n.pop(),!n.length)return t[e]=this._testOne(e,r);const i=this._t(n.join("/")+"/",t,r,n);return t[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return t(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const E=e=>new C(e),I=()=>!1;if(E.isPathValid=e=>p(e&&p.convert(e),e,I),E.default=E,e.exports=E,"undefined"!=typeof process&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){const e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");p.convert=e;const t=/^[a-z]:\//i;p.isNotRelative=e=>t.test(e)||d(e)}},24679:(e,t,r)=>{var n=r(98984),i=Object.create(null),o=r(91162);function s(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n]=e[n];return r}e.exports=n((function(e,t){return i[e]?(i[e].push(t),null):(i[e]=[t],function(e){return o((function t(){var r=i[e],n=r.length,o=s(arguments);try{for(var A=0;A<n;A++)r[A].apply(null,o)}finally{r.length>n?(r.splice(0,n),process.nextTick((function(){t.apply(null,o)}))):delete i[e]}}))}(e))}))},85870:(e,t,r)=>{try{var n=r(31669);if("function"!=typeof n.inherits)throw"";e.exports=n.inherits}catch(t){e.exports=r(48145)}},48145:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},9494:(e,t,r)=>{"use strict";var n=e.exports;n.prompts={},n.Separator=r(88249),n.ui={BottomBar:r(36896),Prompt:r(87380)},n.createPromptModule=function(e){var t=function(r,i){var o;try{o=new n.ui.Prompt(t.prompts,e)}catch(e){return Promise.reject(e)}var s=o.run(r,i);return s.ui=o,s};return t.prompts={},t.registerPrompt=function(e,r){return t.prompts[e]=r,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",r(89336)),this.registerPrompt("input",r(90013)),this.registerPrompt("number",r(90307)),this.registerPrompt("confirm",r(32107)),this.registerPrompt("rawlist",r(942)),this.registerPrompt("expand",r(73870)),this.registerPrompt("checkbox",r(33375)),this.registerPrompt("password",r(30428)),this.registerPrompt("editor",r(48748))},t.restoreDefaultPrompts(),t},n.prompt=n.createPromptModule(),n.registerPrompt=function(e,t){n.prompt.registerPrompt(e,t)},n.restoreDefaultPrompts=function(){n.prompt.restoreDefaultPrompts()}},1996:(e,t,r)=>{"use strict";var n={isString:r(221),isNumber:r(71044),extend:r(94501),isFunction:r(92533)};e.exports=class e{constructor(t,r){if(t instanceof e||"separator"===t.type)return t;n.isString(t)||n.isNumber(t)?(this.name=String(t),this.value=t,this.short=String(t)):n.extend(this,t,{name:t.name||t.value,value:"value"in t?t.value:t.name,short:t.short||t.name||t.value}),n.isFunction(t.disabled)?this.disabled=t.disabled(r):this.disabled=t.disabled}}},21027:(e,t,r)=>{"use strict";var n=r(42357),i={isNumber:r(71044),filter:r(59181),map:r(27869),find:r(98347)},o=r(88249),s=r(1996);e.exports=class{constructor(e,t){this.choices=e.map(e=>"separator"===e.type?(e instanceof o||(e=new o(e.line)),e):new s(e,t)),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),Object.defineProperty(this,"length",{get(){return this.choices.length},set(e){this.choices.length=e}}),Object.defineProperty(this,"realLength",{get(){return this.realChoices.length},set(){throw new Error("Cannot set `realLength` of a Choices collection")}})}getChoice(e){return n(i.isNumber(e)),this.realChoices[e]}get(e){return n(i.isNumber(e)),this.choices[e]}where(e){return i.filter(this.realChoices,e)}pluck(e){return i.map(this.realChoices,e)}indexOf(){return this.choices.indexOf.apply(this.choices,arguments)}forEach(){return this.choices.forEach.apply(this.choices,arguments)}filter(){return this.choices.filter.apply(this.choices,arguments)}find(e){return i.find(this.choices,e)}push(){var e=i.map(arguments,e=>new s(e));return this.choices.push.apply(this.choices,e),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),this.choices}}},88249:(e,t,r)=>{"use strict";var n=r(95882),i=r(51938);class o{constructor(e){this.type="separator",this.line=n.dim(e||new Array(15).join(i.line))}toString(){return this.line}}o.exclude=function(e){return"separator"!==e.type},e.exports=o},10485:(e,t,r)=>{"use strict";var n={assign:r(9682),defaults:r(99906),clone:r(22254)},i=r(95882),o=r(28855),{filter:s,flatMap:A,share:a,take:c,takeUntil:u}=r(20683),l=r(21027),h=r(32542);e.exports=class{constructor(e,t,r){n.assign(this,{answers:r,status:"pending"}),this.opt=n.defaults(n.clone(e),{validate:()=>!0,filter:e=>e,when:()=>!0,suffix:"",prefix:i.green("?")}),this.opt.name||this.throwParamError("name"),this.opt.message||(this.opt.message=this.opt.name+":"),Array.isArray(this.opt.choices)&&(this.opt.choices=new l(this.opt.choices,r)),this.rl=t,this.screen=new h(this.rl)}run(){return new Promise(e=>{this._run(t=>e(t))})}_run(e){e()}throwParamError(e){throw new Error("You must provide a `"+e+"` parameter")}close(){this.screen.releaseCursor()}handleSubmitEvents(e){var t=this,r=o(this.opt.validate),n=o(this.opt.filter),i=e.pipe(A(e=>n(e,t.answers).then(e=>r(e,t.answers).then(t=>({isValid:t,value:e}),t=>({isValid:t,value:e})),e=>({isValid:e}))),a()),l=i.pipe(s(e=>!0===e.isValid),c(1));return{success:l,error:i.pipe(s(e=>!0!==e.isValid),u(l))}}getQuestion(){var e=this.opt.prefix+" "+i.bold(this.opt.message)+this.opt.suffix+i.reset(" ");return null!=this.opt.default&&"answered"!==this.status&&("password"===this.opt.type?e+=i.italic.dim("[hidden] "):e+=i.dim("("+this.opt.default+") ")),e}}},33375:(e,t,r)=>{"use strict";var n={isArray:r(82664),map:r(27869),isString:r(221)},i=r(95882),o=r(61696),s=r(51938),{map:A,takeUntil:a}=r(20683),c=r(10485),u=r(92330),l=r(78635);e.exports=class extends c{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),n.isArray(this.opt.default)&&this.opt.choices.forEach((function(e){this.opt.default.indexOf(e.value)>=0&&(e.checked=!0)}),this),this.pointer=0,this.opt.default=null,this.paginator=new l(this.screen)}_run(e){this.done=e;var t=u(this.rl),r=this.handleSubmitEvents(t.line.pipe(A(this.getCurrentValue.bind(this))));return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(a(r.success)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(a(r.success)).forEach(this.onDownKey.bind(this)),t.numberKey.pipe(a(r.success)).forEach(this.onNumberKey.bind(this)),t.spaceKey.pipe(a(r.success)).forEach(this.onSpaceKey.bind(this)),t.aKey.pipe(a(r.success)).forEach(this.onAllKey.bind(this)),t.iKey.pipe(a(r.success)).forEach(this.onInverseKey.bind(this)),o.hide(),this.render(),this.firstRender=!1,this}render(e){var t,r,o,A,a=this.getQuestion(),c="";if(this.spaceKeyPressed||(a+="(Press "+i.cyan.bold("<space>")+" to select, "+i.cyan.bold("<a>")+" to toggle all, "+i.cyan.bold("<i>")+" to invert selection)"),"answered"===this.status)a+=i.cyan(this.selection.join(", "));else{var u=(t=this.opt.choices,r=this.pointer,o="",A=0,t.forEach((function(e,t){if("separator"===e.type)return A++,void(o+=" "+e+"\n");if(e.disabled)A++,o+=" - "+e.name,o+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")";else{var a=(e.checked?i.green(s.radioOn):s.radioOff)+" "+e.name;o+=t-A===r?i.cyan(s.pointer+a):" "+a}o+="\n"})),o.replace(/\n$/,"")),l=this.opt.choices.indexOf(this.opt.choices.getChoice(this.pointer));a+="\n"+this.paginator.paginate(u,l,this.opt.pageSize)}e&&(c=i.red(">> ")+e),this.screen.render(a,c)}onEnd(e){this.status="answered",this.spaceKeyPressed=!0,this.render(),this.screen.done(),o.show(),this.done(e.value)}onError(e){this.render(e.isValid)}getCurrentValue(){var e=this.opt.choices.filter((function(e){return Boolean(e.checked)&&!e.disabled}));return this.selection=n.map(e,"short"),n.map(e,"value")}onUpKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer>0?this.pointer-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer<e-1?this.pointer+1:0,this.render()}onNumberKey(e){e<=this.opt.choices.realLength&&(this.pointer=e-1,this.toggleChoice(this.pointer)),this.render()}onSpaceKey(){this.spaceKeyPressed=!0,this.toggleChoice(this.pointer),this.render()}onAllKey(){var e=Boolean(this.opt.choices.find((function(e){return"separator"!==e.type&&!e.checked})));this.opt.choices.forEach((function(t){"separator"!==t.type&&(t.checked=e)})),this.render()}onInverseKey(){this.opt.choices.forEach((function(e){"separator"!==e.type&&(e.checked=!e.checked)})),this.render()}toggleChoice(e){var t=this.opt.choices.getChoice(e);void 0!==t&&(this.opt.choices.getChoice(e).checked=!t.checked)}}},32107:(e,t,r)=>{"use strict";var n={extend:r(94501),isBoolean:r(66807)},i=r(95882),{take:o,takeUntil:s}=r(20683),A=r(10485),a=r(92330);e.exports=class extends A{constructor(e,t,r){super(e,t,r);var i=!0;n.extend(this.opt,{filter:function(e){var t=i;return null!=e&&""!==e&&(t=/^y(es)?/i.test(e)),t}}),n.isBoolean(this.opt.default)&&(i=this.opt.default),this.opt.default=i?"Y/n":"y/N"}_run(e){this.done=e;var t=a(this.rl);return t.keypress.pipe(s(t.line)).forEach(this.onKeypress.bind(this)),t.line.pipe(o(1)).forEach(this.onEnd.bind(this)),this.render(),this}render(e){var t=this.getQuestion();return t+="boolean"==typeof e?i.cyan(e?"Yes":"No"):this.rl.line,this.screen.render(t),this}onEnd(e){this.status="answered";var t=this.opt.filter(e);this.render(t),this.screen.done(),this.done(t)}onKeypress(){this.render()}}},48748:(e,t,r)=>{"use strict";var n=r(95882),i=r(48011).Wl,o=r(10485),s=r(92330),{Subject:A}=r(86596);e.exports=class extends o{_run(e){this.done=e,this.editorResult=new A;var t=s(this.rl);this.lineSubscription=t.line.subscribe(this.startExternalEditor.bind(this));var r=this.handleSubmitEvents(this.editorResult);return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,this.render(),this}render(e){var t="",r=this.getQuestion();"answered"===this.status?r+=n.dim("Received"):r+=n.dim("Press <enter> to launch your preferred editor."),e&&(t=n.red(">> ")+e),this.screen.render(r,t)}startExternalEditor(){this.rl.pause(),i(this.currentText,this.endExternalEditor.bind(this))}endExternalEditor(e,t){this.rl.resume(),e?this.editorResult.error(e):this.editorResult.next(t)}onEnd(e){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(e){this.render(e.isValid)}}},73870:(e,t,r)=>{"use strict";var n={uniq:r(44852),isString:r(221),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.validateChoices(this.opt.choices),this.opt.choices.push({key:"h",name:"Help, list all options",value:"help"}),this.opt.validate=e=>null==e?"Please enter a valid command":"help"!==e,this.opt.default=this.generateChoicesString(this.opt.choices,this.opt.default),this.paginator=new u(this.screen)}_run(e){this.done=e;var t=c(this.rl),r=this.handleSubmitEvents(t.line.pipe(o(this.getCurrentValue.bind(this))));return r.success.forEach(this.onSubmit.bind(this)),r.error.forEach(this.onError.bind(this)),this.keypressObs=t.keypress.pipe(s(r.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e,t){var r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else if("expanded"===this.status){var a=(r=this.opt.choices,n=this.selectedKey,o="",r.forEach(e=>{if(o+="\n  ","separator"!==e.type){var t=e.key+") "+e.name;n===e.key&&(t=i.cyan(t)),o+=t}else o+=" "+e}),o);s+=this.paginator.paginate(a,this.selectedKey,this.opt.pageSize),s+="\n  Answer: "}s+=this.rl.line,e&&(A=i.red(">> ")+e),t&&(A=i.cyan(">> ")+t),this.screen.render(s,A)}getCurrentValue(e){e||(e=this.rawDefault);var t=this.opt.choices.where({key:e.toLowerCase().trim()})[0];return t?t.value:null}getChoices(){var e="";return this.opt.choices.forEach(t=>{if(e+="\n  ","separator"!==t.type){var r=t.key+") "+t.name;this.selectedKey===t.key&&(r=i.cyan(r)),e+=r}else e+=" "+t}),e}onError(e){if("help"===e.value)return this.selectedKey="",this.status="expanded",void this.render();this.render(e.isValid)}onSubmit(e){this.status="answered";var t=this.opt.choices.where({value:e.value})[0];this.answer=t.short||t.name,this.render(),this.screen.done(),this.done(e.value)}onKeypress(){this.selectedKey=this.rl.line.toLowerCase();var e=this.opt.choices.where({key:this.selectedKey})[0];"expanded"===this.status?this.render():this.render(null,e?e.name:null)}validateChoices(e){var t,r=[],i={};if(e.filter(a.exclude).forEach(e=>{e.key&&1===e.key.length||(t=!0),i[e.key]&&r.push(e.key),i[e.key]=!0,e.key=String(e.key).toLowerCase()}),t)throw new Error("Format error: `key` param must be a single letter and is required.");if(i.h)throw new Error("Reserved key error: `key` param cannot be `h` - this value is reserved.");if(r.length)throw new Error("Duplicate key error: `key` param must be unique. Duplicates: "+n.uniq(r).join(", "))}generateChoicesString(e,t){var r=e.realLength-1;if(n.isNumber(t)&&this.opt.choices.getChoice(t))r=t;else if(n.isString(t)){let i=n.findIndex(e.realChoices,({value:e})=>e===t);r=-1===i?r:i}var i=this.opt.choices.pluck("key");return this.rawDefault=i[r],i[r]=String(i[r]).toUpperCase(),i.join("")}}},90013:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t="",r="",i=this.getQuestion(),o=this.opt.transformer,s="answered"===this.status;r=s?this.answer:this.rl.line,i+=o?o(r,this.answers,{isFinal:s}):s?n.cyan(r):r,e&&(t=n.red(">> ")+e),this.screen.render(i,t)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(e.value)}onError({value:e="",isValid:t}){this.rl.line+=e,this.rl.cursor+=e.length,this.render(t)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},89336:(e,t,r)=>{"use strict";var n={isNumber:r(71044),findIndex:r(17506),isString:r(221)},i=r(95882),o=r(51938),s=r(61696),A=r(28855),{flatMap:a,map:c,take:u,takeUntil:l}=r(20683),h=r(10485),g=r(92330),f=r(78635);e.exports=class extends h{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.firstRender=!0,this.selected=0;var i=this.opt.default;if(n.isNumber(i)&&i>=0&&i<this.opt.choices.realLength)this.selected=i;else if(!n.isNumber(i)&&null!=i){let e=n.findIndex(this.opt.choices.realChoices,({value:e})=>e===i);this.selected=Math.max(e,0)}this.opt.default=null,this.paginator=new f(this.screen)}_run(e){this.done=e;var t=this,r=g(this.rl);return r.normalizedUpKey.pipe(l(r.line)).forEach(this.onUpKey.bind(this)),r.normalizedDownKey.pipe(l(r.line)).forEach(this.onDownKey.bind(this)),r.numberKey.pipe(l(r.line)).forEach(this.onNumberKey.bind(this)),r.line.pipe(u(1),c(this.getCurrentValue.bind(this)),a(e=>A(t.opt.filter)(e).catch(e=>e))).forEach(this.onSubmit.bind(this)),s.hide(),this.render(),this}render(){var e,t,r,s,A=this.getQuestion();if(this.firstRender&&(A+=i.dim("(Use arrow keys)")),"answered"===this.status)A+=i.cyan(this.opt.choices.getChoice(this.selected).short);else{var a=(e=this.opt.choices,t=this.selected,r="",s=0,e.forEach((e,A)=>{if("separator"===e.type)return s++,void(r+="  "+e+"\n");if(e.disabled)return s++,r+="  - "+e.name,r+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")",void(r+="\n");var a=A-s===t,c=(a?o.pointer+" ":"  ")+e.name;a&&(c=i.cyan(c)),r+=c+" \n"}),r.replace(/\n$/,"")),c=this.opt.choices.indexOf(this.opt.choices.getChoice(this.selected));A+="\n"+this.paginator.paginate(a,c,this.opt.pageSize)}this.firstRender=!1,this.screen.render(A)}onSubmit(e){this.status="answered",this.render(),this.screen.done(),s.show(),this.done(e)}getCurrentValue(){return this.opt.choices.getChoice(this.selected).value}onUpKey(){var e=this.opt.choices.realLength;this.selected=this.selected>0?this.selected-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.selected=this.selected<e-1?this.selected+1:0,this.render()}onNumberKey(e){e<=this.opt.choices.realLength&&(this.selected=e-1),this.render()}}},90307:(e,t,r)=>{"use strict";var n=r(90013);e.exports=class extends n{filterInput(e){if(e&&"string"==typeof e){let t=(e=e.trim()).match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);if(t)return Number(t[0])}return null==this.opt.default?NaN:this.opt.default}}},30428:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);function a(e,t){return t="string"==typeof t?t:"*",0===(e=String(e)).length?"":new Array(e.length+1).join(t)}e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t=this.getQuestion(),r="";"answered"===this.status?t+=this.opt.mask?n.cyan(a(this.answer,this.opt.mask)):n.italic.dim("[hidden]"):this.opt.mask?t+=a(this.rl.line||"",this.opt.mask):t+=n.italic.dim("[input is hidden] "),e&&(r="\n"+n.red(">> ")+e),this.screen.render(t,r)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(e){this.render(e.isValid)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},942:(e,t,r)=>{"use strict";var n={extend:r(94501),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.opt.validChoices=this.opt.choices.filter(a.exclude),this.selected=0,this.rawDefault=0,n.extend(this.opt,{validate:function(e){return null!=e}});var i=this.opt.default;if(n.isNumber(i)&&i>=0&&i<this.opt.choices.realLength)this.selected=i,this.rawDefault=i;else if(!n.isNumber(i)&&null!=i){let e=n.findIndex(this.opt.choices.realChoices,({value:e})=>e===i),t=Math.max(e,0);this.selected=t,this.rawDefault=t}this.opt.default=null,this.paginator=new u}_run(e){this.done=e;var t=c(this.rl),r=t.line.pipe(o(this.getCurrentValue.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(s(t.line)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(s(t.line)).forEach(this.onDownKey.bind(this)),t.keypress.pipe(s(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t,r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else{var a=(t=this.opt.choices,r=this.selected,n="",o=0,t.forEach((function(e,t){if(n+="\n  ","separator"===e.type)return o++,void(n+=" "+e);var s=t-o,A=s+1+") "+e.name;s===r&&(A=i.cyan(A)),n+=A})),n);s+="\n"+this.paginator.paginate(a,this.selected,this.opt.pageSize),s+="\n  Answer: "}s+=this.rl.line,e&&(A="\n"+i.red(">> ")+e),this.screen.render(s,A)}getCurrentValue(e){null==e?e=this.rawDefault:""===e?e=this.selected:e-=1;var t=this.opt.choices.getChoice(e);return t?t.value:null}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(){this.render("Please enter a valid index")}onKeypress(){var e=this.rl.line.length?Number(this.rl.line)-1:0;this.opt.choices.getChoice(e)?this.selected=e:this.selected=void 0,this.render()}onUpKey(){this.onArrowKey("up")}onDownKey(){this.onArrowKey("down")}onArrowKey(e){var t=this.opt.choices.realLength;this.selected="up"===e?this.selected>0?this.selected-1:t-1:this.selected<t-1?this.selected+1:0,this.rl.line=String(this.selected+1)}}},89127:(e,t,r)=>{"use strict";var n={extend:r(94501),omit:r(82740)},i=r(75319),o=r(51058);e.exports=class{constructor(e){this.rl||(this.rl=o.createInterface(function(e){(e=e||{}).skipTTYChecks=void 0===e.skipTTYChecks||e.skipTTYChecks;var t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){const e=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw e.isTtyError=!0,e}var r=new i;r.pipe(e.output||process.stdout);var o=r;return n.extend({terminal:!0,input:t,output:o},n.omit(e,["input","output"]))}(e))),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&"function"==typeof this.activePrompt.close&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}}},36896:(e,t,r)=>{"use strict";var n=r(94864),i=r(89127),o=r(4446),s={last:r(49845)};e.exports=class extends i{constructor(e){super(e=e||{}),this.log=n(this.writeLog.bind(this)),this.bottomBar=e.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return o.clearLine(this.rl,this.bottomBar.split("\n").length),this}updateBottomBar(e){return o.clearLine(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=e,this.render(),this.rl.output.mute(),this}writeLog(e){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(e.toString())),this.render(),this.rl.output.mute(),this}enforceLF(e){return e.match(/[\r\n]$/)?e:e+"\n"}write(e){var t=e.split(/\n/);this.height=t.length,this.rl.setPrompt(s.last(t)),0===this.rl.output.rows&&0===this.rl.output.columns&&o.left(this.rl,e.length+this.rl.line.length),this.rl.output.write(e)}}},87380:(e,t,r)=>{"use strict";var n={isPlainObject:r(11672),clone:r(22254),isArray:r(82664),set:r(81534),isFunction:r(92533)},{defer:i,empty:o,from:s,of:A}=r(86596),{concatMap:a,filter:c,publish:u,reduce:l}=r(20683),h=r(28855),g=r(74941),f=r(89127);e.exports=class extends f{constructor(e,t){super(t),this.prompts=e}run(e,t){n.isPlainObject(t)?this.answers=n.clone(t):this.answers={},n.isPlainObject(e)&&(e=[e]);var r=n.isArray(e)?s(e):e;return this.process=r.pipe(a(this.processQuestion.bind(this)),u()),this.process.connect(),this.process.pipe(l((e,t)=>(n.set(e,t.name,t.answer),e),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this))}onCompletion(){return this.close(),this.answers}processQuestion(e){return e=n.clone(e),i(()=>A(e).pipe(a(this.setDefaultType.bind(this)),a(this.filterIfRunnable.bind(this)),a(()=>g.fetchAsyncQuestionProperty(e,"message",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"default",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"choices",this.answers)),a(this.fetchAnswer.bind(this))))}fetchAnswer(e){var t=this.prompts[e.type];return this.activePrompt=new t(e,this.rl,this.answers),i(()=>s(this.activePrompt.run().then(t=>({name:e.name,answer:t}))))}setDefaultType(e){return this.prompts[e.type]||(e.type="input"),i(()=>A(e))}filterIfRunnable(e){if(!0!==e.askAnswered&&void 0!==this.answers[e.name])return o();if(!1===e.when)return o();if(!n.isFunction(e.when))return A(e);var t=this.answers;return i(()=>s(h(e.when)(t).then(t=>{if(t)return e})).pipe(c(e=>null!=e)))}}},92330:(e,t,r)=>{"use strict";var{fromEvent:n}=r(86596),{filter:i,map:o,share:s,takeUntil:A}=r(20683);function a(e,t){return{value:e,key:t||{}}}e.exports=function(e){var t=n(e.input,"keypress",a).pipe(A(n(e,"close"))).pipe(i(({key:e})=>"enter"!==e.name&&"return"!==e.name));return{line:n(e,"line"),keypress:t,normalizedUpKey:t.pipe(i(({key:e})=>"up"===e.name||"k"===e.name||"p"===e.name&&e.ctrl),s()),normalizedDownKey:t.pipe(i(({key:e})=>"down"===e.name||"j"===e.name||"n"===e.name&&e.ctrl),s()),numberKey:t.pipe(i(e=>e.value&&"123456789".indexOf(e.value)>=0),o(e=>Number(e.value)),s()),spaceKey:t.pipe(i(({key:e})=>e&&"space"===e.name),s()),aKey:t.pipe(i(({key:e})=>e&&"a"===e.name),s()),iKey:t.pipe(i(({key:e})=>e&&"i"===e.name),s())}}},78635:(e,t,r)=>{"use strict";var n={sum:r(2614),flatten:r(54690)},i=r(95882);e.exports=class{constructor(e){this.pointer=0,this.lastIndex=0,this.screen=e}paginate(e,t,r){r=r||7;var o=Math.floor(r/2),s=e.split("\n");if(this.screen&&(s=this.screen.breakLines(s),t=n.sum(s.map(e=>e.length).splice(0,t)),s=n.flatten(s)),s.length<=r)return e;this.pointer<o&&this.lastIndex<t&&t-this.lastIndex<r&&(this.pointer=Math.min(o,this.pointer+t-this.lastIndex)),this.lastIndex=t;var A=n.flatten([s,s,s]),a=Math.max(0,t+s.length-this.pointer);return A.splice(a,r).join("\n")+"\n"+i.dim("(Move up and down to reveal more choices)")}}},4446:(e,t,r)=>{"use strict";var n=r(27589);t.left=function(e,t){e.output.write(n.cursorBackward(t))},t.right=function(e,t){e.output.write(n.cursorForward(t))},t.up=function(e,t){e.output.write(n.cursorUp(t))},t.down=function(e,t){e.output.write(n.cursorDown(t))},t.clearLine=function(e,t){e.output.write(n.eraseLines(t))}},32542:(e,t,r)=>{"use strict";var n={last:r(49845),flatten:r(54690)},i=r(4446),o=r(17945),s=r(7915),A=r(55043);function a(e){return e.split("\n").length}function c(e){return n.last(e.split("\n"))}e.exports=class{constructor(e){this.height=0,this.extraLinesUnderPrompt=0,this.rl=e}render(e,t){this.rl.output.unmute(),this.clean(this.extraLinesUnderPrompt);var r=c(e),n=s(r),o=n;this.rl.line.length&&(o=o.slice(0,-this.rl.line.length)),this.rl.setPrompt(o);var u=this.rl._getCursorPos(),l=this.normalizedCliWidth();e=this.forceLineReturn(e,l),t&&(t=this.forceLineReturn(t,l)),n.length%l==0&&(e+="\n");var h=e+(t?"\n"+t:"");this.rl.output.write(h);var g=Math.floor(n.length/l)-u.rows+(t?a(t):0);g>0&&i.up(this.rl,g),i.left(this.rl,A(c(h))),u.cols>0&&i.right(this.rl,u.cols),this.extraLinesUnderPrompt=g,this.height=a(h),this.rl.output.mute()}clean(e){e>0&&i.down(this.rl,e),i.clearLine(this.rl,this.height)}done(){this.rl.setPrompt(""),this.rl.output.unmute(),this.rl.output.write("\n")}releaseCursor(){this.extraLinesUnderPrompt>0&&i.down(this.rl,this.extraLinesUnderPrompt)}normalizedCliWidth(){return o({defaultWidth:80,output:this.rl.output})}breakLines(e,t){t=t||this.normalizedCliWidth();var r=new RegExp("(?:(?:\\033[[0-9;]*m)*.?){1,"+t+"}","g");return e.map(e=>{var t=e.match(r);return t.pop(),t||""})}forceLineReturn(e,t){return t=t||this.normalizedCliWidth(),n.flatten(this.breakLines(e.split("\n"),t)).join("\n")}}},74941:(e,t,r)=>{"use strict";var n={isFunction:r(92533)},{from:i,of:o}=r(86596),s=r(28855);t.fetchAsyncQuestionProperty=function(e,t,r){return n.isFunction(e[t])?i(s(e[t])(r).then(r=>(e[t]=r,e))):o(e)}},44486:e=>{
+/*!
+ * is-extglob <https://github.com/jonschlinkert/is-extglob>
+ *
+ * Copyright (c) 2014-2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+e.exports=function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}},7347:e=>{"use strict";const t=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));e.exports=t,e.exports.default=t},18193:(e,t,r)=>{
+/*!
+ * is-glob <https://github.com/jonschlinkert/is-glob>
+ *
+ * Copyright (c) 2014-2017, Jon Schlinkert.
+ * Released under the MIT License.
+ */
+var n=r(44486),i={"{":"}","(":")","[":"]"},o=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,s=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;e.exports=function(e,t){if("string"!=typeof e||""===e)return!1;if(n(e))return!0;var r,A=o;for(t&&!1===t.strict&&(A=s);r=A.exec(e);){if(r[2])return!0;var a=r.index+r[0].length,c=r[1],u=c?i[c]:null;if(c&&u){var l=e.indexOf(u,a);-1!==l&&(a=l+1)}e=e.slice(a)}return!1}},59235:e=>{"use strict";
+/*!
+ * is-number <https://github.com/jonschlinkert/is-number>
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},61047:e=>{e.exports=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}},97369:(e,t)=>{var r,n,i,o;
+/*!
+ * is-windows <https://github.com/jonschlinkert/is-windows>
+ *
+ * Copyright © 2015-2018, Jon Schlinkert.
+ * Released under the MIT License.
+ */o=function(){"use strict";return function(){return process&&("win32"===process.platform||/^(msys|cygwin)$/.test(process.env.OSTYPE))}},t&&"object"==typeof t?e.exports=o():(n=[],void 0===(i="function"==typeof(r=o)?r.apply(t,n):r)||(e.exports=i))},64151:(e,t,r)=>{var n;r(35747);function i(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,n){i(e,t||{},(function(e,t){e?n(e):r(t)}))}))}n(e,t||{},(function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n)}))}n="win32"===process.platform||global.TESTING_WINDOWS?r(3202):r(2151),e.exports=i,i.sync=function(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},2151:(e,t,r)=>{e.exports=i,i.sync=function(e,t){return o(n.statSync(e),t)};var n=r(35747);function i(e,t,r){n.stat(e,(function(e,n){r(e,!e&&o(n,t))}))}function o(e,t){return e.isFile()&&function(e,t){var r=e.mode,n=e.uid,i=e.gid,o=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),s=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),a=parseInt("010",8),c=parseInt("001",8),u=A|a;return r&c||r&a&&i===s||r&A&&n===o||r&u&&0===o}(e,t)}},3202:(e,t,r)=>{e.exports=o,o.sync=function(e,t){return i(n.statSync(e),e,t)};var n=r(35747);function i(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n<r.length;n++){var i=r[n].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}(t,r)}function o(e,t,r){n.stat(e,(function(n,o){r(n,!n&&i(o,e,t))}))}},21194:(e,t,r)=>{"use strict";var n=r(40744);e.exports=n},40744:(e,t,r)=>{"use strict";var n=r(55384),i=r(24129);function o(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=r(81704),e.exports.Schema=r(8212),e.exports.FAILSAFE_SCHEMA=r(44413),e.exports.JSON_SCHEMA=r(45247),e.exports.CORE_SCHEMA=r(8769),e.exports.DEFAULT_SAFE_SCHEMA=r(65483),e.exports.DEFAULT_FULL_SCHEMA=r(5235),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(17345),e.exports.MINIMAL_SCHEMA=r(44413),e.exports.SAFE_SCHEMA=r(65483),e.exports.DEFAULT_SCHEMA=r(5235),e.exports.scan=o("scan"),e.exports.parse=o("parse"),e.exports.compose=o("compose"),e.exports.addConstructor=o("addConstructor")},28149:e=>{"use strict";function t(e){return null==e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n="";for(r=0;r<t;r+=1)n+=e;return n},e.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},e.exports.extend=function(e,t){var r,n,i,o;if(t)for(r=0,n=(o=Object.keys(t)).length;r<n;r+=1)e[i=o[r]]=t[i];return e}},24129:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(5235),s=r(65483),A=Object.prototype.toString,a=Object.prototype.hasOwnProperty,c={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},u=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function l(e){var t,r,o;if(t=e.toString(16).toUpperCase(),e<=255)r="x",o=2;else if(e<=65535)r="u",o=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");r="U",o=8}return"\\"+r+n.repeat("0",o-t.length)+t}function h(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,i,o,s,A,c;if(null===t)return{};for(r={},i=0,o=(n=Object.keys(t)).length;i<o;i+=1)s=n[i],A=String(t[s]),"!!"===s.slice(0,2)&&(s="tag:yaml.org,2002:"+s.slice(2)),(c=e.compiledTypeMap.fallback[s])&&a.call(c.styleAliases,A)&&(A=c.styleAliases[A]),r[s]=A;return r}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function g(e,t){for(var r,i=n.repeat(" ",t),o=0,s=-1,A="",a=e.length;o<a;)-1===(s=e.indexOf("\n",o))?(r=e.slice(o),o=a):(r=e.slice(o,s+1),o=s+1),r.length&&"\n"!==r&&(A+=i),A+=r;return A}function f(e,t){return"\n"+n.repeat(" ",e.indent*t)}function p(e){return 32===e||9===e}function d(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function C(e){return d(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&35!==e}function E(e){return/^\n* /.test(e)}function I(e,t,r,n,i){var o,s,A,a=!1,c=!1,u=-1!==n,l=-1,h=d(A=e.charCodeAt(0))&&65279!==A&&!p(A)&&45!==A&&63!==A&&58!==A&&44!==A&&91!==A&&93!==A&&123!==A&&125!==A&&35!==A&&38!==A&&42!==A&&33!==A&&124!==A&&62!==A&&39!==A&&34!==A&&37!==A&&64!==A&&96!==A&&!p(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!d(s=e.charCodeAt(o)))return 5;h=h&&C(s)}else{for(o=0;o<e.length;o++){if(10===(s=e.charCodeAt(o)))a=!0,u&&(c=c||o-l-1>n&&" "!==e[l+1],l=o);else if(!d(s))return 5;h=h&&C(s)}c=c||u&&o-l-1>n&&" "!==e[l+1]}return a||c?r>9&&E(e)?5:c?4:3:h&&!i(e)?1:2}function m(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==u.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),A=n||e.flowLevel>-1&&r>=e.flowLevel;switch(I(t,A,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(e.implicitTypes[r].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+y(t,e.indent)+w(g(t,o));case 4:return">"+y(t,e.indent)+w(g(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(A=e.indexOf("\n"),A=-1!==A?A:e.length,i.lastIndex=A,B(e.slice(0,A),t)),s="\n"===e[0]||" "===e[0];var A;for(;n=i.exec(e);){var a=n[1],c=n[2];r=" "===c[0],o+=a+(s||r||""===c?"":"\n")+B(c,t),s=r}return o}(t,s),o));case 5:return'"'+function(e){for(var t,r,n,i="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=l(1024*(t-55296)+r-56320+65536),o++):(n=c[t],i+=!n&&d(t)?e[o]:n||l(t));return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function y(e,t){var r=E(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function w(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function B(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,s=0,A=0,a="";r=i.exec(e);)(A=r.index)-o>t&&(n=s>o?s:A,a+="\n"+e.slice(o,n),o=n+1),s=A;return a+="\n",e.length-o>t&&s>o?a+=e.slice(o,s)+"\n"+e.slice(s+1):a+=e.slice(o),a.slice(1)}function Q(e,t,r){var n,o,s,c,u,l;for(s=0,c=(o=r?e.explicitTypes:e.implicitTypes).length;s<c;s+=1)if(((u=o[s]).instanceOf||u.predicate)&&(!u.instanceOf||"object"==typeof t&&t instanceof u.instanceOf)&&(!u.predicate||u.predicate(t))){if(e.tag=r?u.tag:"?",u.represent){if(l=e.styleMap[u.tag]||u.defaultStyle,"[object Function]"===A.call(u.represent))n=u.represent(t,l);else{if(!a.call(u.represent,l))throw new i("!<"+u.tag+'> tag resolver accepts not "'+l+'" style');n=u.represent[l](t,l)}e.dump=n}return!0}return!1}function v(e,t,r,n,o,s){e.tag=null,e.dump=r,Q(e,r,!1)||Q(e,r,!0);var a=A.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var c,u,l="[object Object]"===a||"[object Array]"===a;if(l&&(u=-1!==(c=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(o=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(l&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var o,s,A,a,c,u,l="",h=e.tag,g=Object.keys(r);if(!0===e.sortKeys)g.sort();else if("function"==typeof e.sortKeys)g.sort(e.sortKeys);else if(e.sortKeys)throw new i("sortKeys must be a boolean or a function");for(o=0,s=g.length;o<s;o+=1)u="",n&&0===o||(u+=f(e,t)),a=r[A=g[o]],v(e,t+1,A,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,c&&(u+=f(e,t)),v(e,t+1,a,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",l+=u+=e.dump));e.tag=h,e.dump=l||"{}"}(e,t,e.dump,o),u&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o,s,A,a="",c=e.tag,u=Object.keys(r);for(n=0,i=u.length;n<i;n+=1)A=e.condenseFlow?'"':"",0!==n&&(A+=", "),s=r[o=u[n]],v(e,t,o,!1,!1)&&(e.dump.length>1024&&(A+="? "),A+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),v(e,t,s,!1,!1)&&(a+=A+=e.dump));e.tag=c,e.dump="{"+a+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===a){var h=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,s="",A=e.tag;for(i=0,o=r.length;i<o;i+=1)v(e,t+1,r[i],!0,!0)&&(n&&0===i||(s+=f(e,t)),e.dump&&10===e.dump.charCodeAt(0)?s+="-":s+="- ",s+=e.dump);e.tag=A,e.dump=s||"[]"}(e,h,e.dump,o),u&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o="",s=e.tag;for(n=0,i=r.length;n<i;n+=1)v(e,t,r[n],!1,!1)&&(0!==n&&(o+=","+(e.condenseFlow?"":" ")),o+=e.dump);e.tag=s,e.dump="["+o+"]"}(e,h,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new i("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&m(e,e.dump,t,s)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function D(e,t){var r,n,i=[],o=[];for(function e(t,r,n){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=r.indexOf(t)))-1===n.indexOf(o)&&n.push(o);else if(r.push(t),Array.isArray(t))for(o=0,s=t.length;o<s;o+=1)e(t[o],r,n);else for(i=Object.keys(t),o=0,s=i.length;o<s;o+=1)e(t[i[o]],r,n)}(e,i,o),r=0,n=o.length;r<n;r+=1)t.duplicates.push(i[o[r]]);t.usedDuplicates=new Array(n)}function b(e,t){var r=new h(t=t||{});return r.noRefs||D(e,r),v(r,0,e,!0,!0)?r.dump+"\n":""}e.exports.dump=b,e.exports.safeDump=function(e,t){return b(e,n.extend({schema:s},t))}},17345:e=>{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},55384:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(30399),s=r(65483),A=r(5235),a=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,h=/^(?:!|!!|![a-z\-]+!)$/i,g=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function f(e){return 10===e||13===e}function p(e){return 9===e||32===e}function d(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function E(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function I(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function m(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var y=new Array(256),w=new Array(256),B=0;B<256;B++)y[B]=I(B)?1:0,w[B]=I(B);function Q(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||A,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function v(e,t){return new i(t,new o(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function D(e,t){throw v(e,t)}function b(e,t){e.onWarning&&e.onWarning.call(null,v(e,t))}var S={YAML:function(e,t,r){var n,i,o;null!==e.version&&D(e,"duplication of %YAML directive"),1!==r.length&&D(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&D(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&D(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&b(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&D(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],h.test(n)||D(e,"ill-formed tag handle (first argument) of the TAG directive"),a.call(e.tagMap,n)&&D(e,'there is a previously declared suffix for "'+n+'" tag handle'),g.test(i)||D(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function k(e,t,r,n){var i,o,s,A;if(t<r){if(A=e.input.slice(t,r),n)for(i=0,o=A.length;i<o;i+=1)9===(s=A.charCodeAt(i))||32<=s&&s<=1114111||D(e,"expected valid JSON character");else c.test(A)&&D(e,"the stream contains non-printable characters");e.result+=A}}function x(e,t,r,i){var o,s,A,c;for(n.isObject(r)||D(e,"cannot merge mappings; the provided source object is unacceptable"),A=0,c=(o=Object.keys(r)).length;A<c;A+=1)s=o[A],a.call(t,s)||(t[s]=r[s],i[s]=!0)}function F(e,t,r,n,i,o,s,A){var c,u;if(i=String(i),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(o))for(c=0,u=o.length;c<u;c+=1)x(e,t,o[c],r);else x(e,t,o,r);else e.json||a.call(r,i)||!a.call(t,i)||(e.line=s||e.line,e.position=A||e.position,D(e,"duplicated mapping key")),t[i]=o,delete r[i];return t}function M(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):D(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function N(e,t,r){for(var n=0,i=e.input.charCodeAt(e.position);0!==i;){for(;p(i);)i=e.input.charCodeAt(++e.position);if(t&&35===i)do{i=e.input.charCodeAt(++e.position)}while(10!==i&&13!==i&&0!==i);if(!f(i))break;for(M(e),i=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===i;)e.lineIndent++,i=e.input.charCodeAt(++e.position)}return-1!==r&&0!==n&&e.lineIndent<r&&b(e,"deficient indentation"),n}function R(e){var t,r=e.position;return!(45!==(t=e.input.charCodeAt(r))&&46!==t||t!==e.input.charCodeAt(r+1)||t!==e.input.charCodeAt(r+2)||(r+=3,0!==(t=e.input.charCodeAt(r))&&!d(t)))}function K(e,t){1===t?e.result+=" ":t>1&&(e.result+=n.repeat("\n",t-1))}function L(e,t){var r,n,i=e.tag,o=e.anchor,s=[],A=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=s),n=e.input.charCodeAt(e.position);0!==n&&45===n&&d(e.input.charCodeAt(e.position+1));)if(A=!0,e.position++,N(e,!0,-1)&&e.lineIndent<=t)s.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,U(e,t,3,!1,!0),s.push(e.result),N(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)D(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!A&&(e.tag=i,e.anchor=o,e.kind="sequence",e.result=s,!0)}function T(e){var t,r,n,i,o=!1,s=!1;if(33!==(i=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&D(e,"duplication of a tag property"),60===(i=e.input.charCodeAt(++e.position))?(o=!0,i=e.input.charCodeAt(++e.position)):33===i?(s=!0,r="!!",i=e.input.charCodeAt(++e.position)):r="!",t=e.position,o){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&62!==i);e.position<e.length?(n=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):D(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==i&&!d(i);)33===i&&(s?D(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(t-1,e.position+1),h.test(r)||D(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),l.test(n)&&D(e,"tag suffix cannot contain flow indicator characters")}return n&&!g.test(n)&&D(e,"tag name cannot contain such characters: "+n),o?e.tag=n:a.call(e.tagMap,r)?e.tag=e.tagMap[r]+n:"!"===r?e.tag="!"+n:"!!"===r?e.tag="tag:yaml.org,2002:"+n:D(e,'undeclared tag handle "'+r+'"'),!0}function P(e){var t,r;if(38!==(r=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&D(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!d(r)&&!C(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&D(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function U(e,t,r,i,o){var s,A,c,u,l,h,g,I,B=1,Q=!1,v=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,s=A=c=4===r||3===r,i&&N(e,!0,-1)&&(Q=!0,e.lineIndent>t?B=1:e.lineIndent===t?B=0:e.lineIndent<t&&(B=-1)),1===B)for(;T(e)||P(e);)N(e,!0,-1)?(Q=!0,c=s,e.lineIndent>t?B=1:e.lineIndent===t?B=0:e.lineIndent<t&&(B=-1)):c=!1;if(c&&(c=Q||o),1!==B&&4!==r||(g=1===r||2===r?t:t+1,I=e.position-e.lineStart,1===B?c&&(L(e,I)||function(e,t,r){var n,i,o,s,A,a=e.tag,c=e.anchor,u={},l={},h=null,g=null,f=null,C=!1,E=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),A=e.input.charCodeAt(e.position);0!==A;){if(n=e.input.charCodeAt(e.position+1),o=e.line,s=e.position,63!==A&&58!==A||!d(n)){if(!U(e,r,2,!1,!0))break;if(e.line===o){for(A=e.input.charCodeAt(e.position);p(A);)A=e.input.charCodeAt(++e.position);if(58===A)d(A=e.input.charCodeAt(++e.position))||D(e,"a whitespace character is expected after the key-value separator within a block mapping"),C&&(F(e,u,l,h,g,null),h=g=f=null),E=!0,C=!1,i=!1,h=e.tag,g=e.result;else{if(!E)return e.tag=a,e.anchor=c,!0;D(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!E)return e.tag=a,e.anchor=c,!0;D(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===A?(C&&(F(e,u,l,h,g,null),h=g=f=null),E=!0,C=!0,i=!0):C?(C=!1,i=!0):D(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,A=n;if((e.line===o||e.lineIndent>t)&&(U(e,t,4,!0,i)&&(C?g=e.result:f=e.result),C||(F(e,u,l,h,g,f,o,s),h=g=f=null),N(e,!0,-1),A=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==A)D(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return C&&F(e,u,l,h,g,null),E&&(e.tag=a,e.anchor=c,e.kind="mapping",e.result=u),E}(e,I,g))||function(e,t){var r,n,i,o,s,A,a,c,u,l,h=!0,g=e.tag,f=e.anchor,p={};if(91===(l=e.input.charCodeAt(e.position)))i=93,A=!1,n=[];else{if(123!==l)return!1;i=125,A=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),l=e.input.charCodeAt(++e.position);0!==l;){if(N(e,!0,t),(l=e.input.charCodeAt(e.position))===i)return e.position++,e.tag=g,e.anchor=f,e.kind=A?"mapping":"sequence",e.result=n,!0;h||D(e,"missed comma between flow collection entries"),u=null,o=s=!1,63===l&&d(e.input.charCodeAt(e.position+1))&&(o=s=!0,e.position++,N(e,!0,t)),r=e.line,U(e,t,1,!1,!0),c=e.tag,a=e.result,N(e,!0,t),l=e.input.charCodeAt(e.position),!s&&e.line!==r||58!==l||(o=!0,l=e.input.charCodeAt(++e.position),N(e,!0,t),U(e,t,1,!1,!0),u=e.result),A?F(e,n,p,c,a,u):o?n.push(F(e,null,p,c,a,u)):n.push(a),N(e,!0,t),44===(l=e.input.charCodeAt(e.position))?(h=!0,l=e.input.charCodeAt(++e.position)):h=!1}D(e,"unexpected end of the stream within a flow collection")}(e,g)?v=!0:(A&&function(e,t){var r,i,o,s,A,a=1,c=!1,u=!1,l=t,h=0,g=!1;if(124===(s=e.input.charCodeAt(e.position)))i=!1;else{if(62!==s)return!1;i=!0}for(e.kind="scalar",e.result="";0!==s;)if(43===(s=e.input.charCodeAt(++e.position))||45===s)1===a?a=43===s?3:2:D(e,"repeat of a chomping mode identifier");else{if(!((o=48<=(A=s)&&A<=57?A-48:-1)>=0))break;0===o?D(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?D(e,"repeat of an indentation width identifier"):(l=t+o-1,u=!0)}if(p(s)){do{s=e.input.charCodeAt(++e.position)}while(p(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!f(s)&&0!==s)}for(;0!==s;){for(M(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!u||e.lineIndent<l)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>l&&(l=e.lineIndent),f(s))h++;else{if(e.lineIndent<l){3===a?e.result+=n.repeat("\n",c?1+h:h):1===a&&c&&(e.result+="\n");break}for(i?p(s)?(g=!0,e.result+=n.repeat("\n",c?1+h:h)):g?(g=!1,e.result+=n.repeat("\n",h+1)):0===h?c&&(e.result+=" "):e.result+=n.repeat("\n",h):e.result+=n.repeat("\n",c?1+h:h),c=!0,u=!0,h=0,r=e.position;!f(s)&&0!==s;)s=e.input.charCodeAt(++e.position);k(e,r,e.position,!1)}}return!0}(e,g)||function(e,t){var r,n,i;if(39!==(r=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(k(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,i=e.position}else f(r)?(k(e,n,i,!0),K(e,N(e,!1,t)),n=i=e.position):e.position===e.lineStart&&R(e)?D(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);D(e,"unexpected end of the stream within a single quoted scalar")}(e,g)||function(e,t){var r,n,i,o,s,A,a;if(34!==(A=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(A=e.input.charCodeAt(e.position));){if(34===A)return k(e,r,e.position,!0),e.position++,!0;if(92===A){if(k(e,r,e.position,!0),f(A=e.input.charCodeAt(++e.position)))N(e,!1,t);else if(A<256&&y[A])e.result+=w[A],e.position++;else if((s=120===(a=A)?2:117===a?4:85===a?8:0)>0){for(i=s,o=0;i>0;i--)(s=E(A=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+s:D(e,"expected hexadecimal character");e.result+=m(o),e.position++}else D(e,"unknown escape sequence");r=n=e.position}else f(A)?(k(e,r,n,!0),K(e,N(e,!1,t)),r=n=e.position):e.position===e.lineStart&&R(e)?D(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}D(e,"unexpected end of the stream within a double quoted scalar")}(e,g)?v=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!d(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&D(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||D(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],N(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,s,A,a,c,u,l=e.kind,h=e.result;if(d(u=e.input.charCodeAt(e.position))||C(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(d(n=e.input.charCodeAt(e.position+1))||r&&C(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,s=!1;0!==u;){if(58===u){if(d(n=e.input.charCodeAt(e.position+1))||r&&C(n))break}else if(35===u){if(d(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&R(e)||r&&C(u))break;if(f(u)){if(A=e.line,a=e.lineStart,c=e.lineIndent,N(e,!1,-1),e.lineIndent>=t){s=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=A,e.lineStart=a,e.lineIndent=c;break}}s&&(k(e,i,o,!1),K(e,e.line-A),i=o=e.position,s=!1),p(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return k(e,i,o,!1),!!e.result||(e.kind=l,e.result=h,!1)}(e,g,1===r)&&(v=!0,null===e.tag&&(e.tag="?")):(v=!0,null===e.tag&&null===e.anchor||D(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===B&&(v=c&&L(e,I))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,l=e.implicitTypes.length;u<l;u+=1)if((h=e.implicitTypes[u]).resolve(e.result)){e.result=h.construct(e.result),e.tag=h.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else a.call(e.typeMap[e.kind||"fallback"],e.tag)?(h=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&h.kind!==e.kind&&D(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result)?(e.result=h.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):D(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):D(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function _(e){var t,r,n,i,o=e.position,s=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(N(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(s=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&D(e,"directive name must not be less than one character in length");0!==i;){for(;p(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!f(i));break}if(f(i))break;for(t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&M(e),a.call(S,r)?S[r](e,r,n):b(e,'unknown document directive "'+r+'"')}N(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,N(e,!0,-1)):s&&D(e,"directives end mark is expected"),U(e,e.lineIndent-1,4,!1,!0),N(e,!0,-1),e.checkLineBreaks&&u.test(e.input.slice(o,e.position))&&b(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&R(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,N(e,!0,-1)):e.position<e.length-1&&D(e,"end of the stream or a document separator is expected")}function O(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var r=new Q(e,t);for(r.input+="\0";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)_(r);return r.documents}function j(e,t,r){var n,i,o=O(e,r);if("function"!=typeof t)return o;for(n=0,i=o.length;n<i;n+=1)t(o[n])}function Y(e,t){var r=O(e,t);if(0!==r.length){if(1===r.length)return r[0];throw new i("expected a single document in the stream, but found more")}}e.exports.loadAll=j,e.exports.load=Y,e.exports.safeLoadAll=function(e,t,r){if("function"!=typeof t)return j(e,n.extend({schema:s},r));j(e,t,n.extend({schema:s},r))},e.exports.safeLoad=function(e,t){return Y(e,n.extend({schema:s},t))}},30399:(e,t,r)=>{"use strict";var n=r(28149);function i(e,t,r,n,i){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=i}i.prototype.getSnippet=function(e,t){var r,i,o,s,A;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",i=this.position;i>0&&-1==="\0\r\n\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(o="",s=this.position;s<this.buffer.length&&-1==="\0\r\n\u2028\u2029".indexOf(this.buffer.charAt(s));)if((s+=1)-this.position>t/2-1){o=" ... ",s-=5;break}return A=this.buffer.slice(i,s),n.repeat(" ",e)+r+A+o+"\n"+n.repeat(" ",e+this.position-i+r.length)+"^"},i.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},e.exports=i},8212:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(81704);function s(e,t,r){var n=[];return e.include.forEach((function(e){r=s(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function A(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new i("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=s(this,"implicit",[]),this.compiledExplicit=s(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(n);return r}(this.compiledImplicit,this.compiledExplicit)}A.DEFAULT=null,A.create=function(){var e,t;switch(arguments.length){case 1:e=A.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new i("Wrong number of arguments for Schema.create function")}if(e=n.toArray(e),t=n.toArray(t),!e.every((function(e){return e instanceof A})))throw new i("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof o})))throw new i("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new A({include:e,explicit:t})},e.exports=A},8769:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(45247)]})},5235:(e,t,r)=>{"use strict";var n=r(8212);e.exports=n.DEFAULT=new n({include:[r(65483)],explicit:[r(61425),r(61872),r(79982)]})},65483:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(8769)],implicit:[r(83516),r(95441)],explicit:[r(34836),r(6847),r(65173),r(92025)]})},44413:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({explicit:[r(19952),r(46557),r(90173)]})},45247:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(44413)],implicit:[r(40188),r(58357),r(82106),r(71945)]})},81704:(e,t,r)=>{"use strict";var n=r(17345),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];e.exports=function(e,t){var r,s;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,s={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){s[String(t)]=e}))})),s),-1===o.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},34836:(e,t,r)=>{"use strict";var n;try{n=r(64293).Buffer}catch(e){}var i=r(81704),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,s=o;for(r=0;r<i;r++)if(!((t=s.indexOf(e.charAt(r)))>64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),s=i.length,A=o,a=0,c=[];for(t=0;t<s;t++)t%4==0&&t&&(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|A.indexOf(i.charAt(t));return 0===(r=s%4*6)?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===r?(c.push(a>>10&255),c.push(a>>2&255)):12===r&&c.push(a>>4&255),n?n.from?n.from(c):new n(c):c},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",i=0,s=e.length,A=o;for(t=0;t<s;t++)t%3==0&&t&&(n+=A[i>>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]),i=(i<<8)+e[t];return 0===(r=s%3)?(n+=A[i>>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]):2===r?(n+=A[i>>10&63],n+=A[i>>4&63],n+=A[i<<2&63],n+=A[64]):1===r&&(n+=A[i>>2&63],n+=A[i<<4&63],n+=A[64],n+=A[64]),n}})},58357:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},71945:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var s=/^[-+]?[0-9]+e/;e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),s.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},82106:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704);function o(e){return 48<=e&&e<=55}function s(e){return 48<=e&&e<=57}e.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,A=!1;if(!n)return!1;if("-"!==(t=e[i])&&"+"!==t||(t=e[++i]),"0"===t){if(i+1===n)return!0;if("b"===(t=e[++i])){for(i++;i<n;i++)if("_"!==(t=e[i])){if("0"!==t&&"1"!==t)return!1;A=!0}return A&&"_"!==t}if("x"===t){for(i++;i<n;i++)if("_"!==(t=e[i])){if(!(48<=(r=e.charCodeAt(i))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;A=!0}return A&&"_"!==t}for(;i<n;i++)if("_"!==(t=e[i])){if(!o(e.charCodeAt(i)))return!1;A=!0}return A&&"_"!==t}if("_"===t)return!1;for(;i<n;i++)if("_"!==(t=e[i])){if(":"===t)break;if(!s(e.charCodeAt(i)))return!1;A=!0}return!(!A||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(i)))},construct:function(e){var t,r,n=e,i=1,o=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(i=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?i*parseInt(n.slice(2),2):"x"===n[1]?i*parseInt(n,16):i*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){o.unshift(parseInt(e,10))})),n=0,r=1,o.forEach((function(e){n+=e*r,r*=60})),i*n):i*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!n.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},79982:(e,t,r)=>{"use strict";var n;try{n=r(41313)}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var i=r(81704);e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",i=n.parse(r,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},61872:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},61425:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},90173:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},95441:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},40188:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},6847:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,s,A,a=[],c=e;for(t=0,r=c.length;t<r;t+=1){if(n=c[t],A=!1,"[object Object]"!==o.call(n))return!1;for(s in n)if(i.call(n,s)){if(A)return!1;A=!0}if(!A)return!1;if(-1!==a.indexOf(s))return!1;a.push(s)}return!0},construct:function(e){return null!==e?e:[]}})},65173:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,A=e;for(s=new Array(A.length),t=0,r=A.length;t<r;t+=1){if(n=A[t],"[object Object]"!==i.call(n))return!1;if(1!==(o=Object.keys(n)).length)return!1;s[t]=[o[0],n[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,r,n,i,o,s=e;for(o=new Array(s.length),t=0,r=s.length;t<r;t+=1)n=s[t],i=Object.keys(n),o[t]=[i[0],n[i[0]]];return o}})},46557:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},92025:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(i.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},19952:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},83516:(e,t,r)=>{"use strict";var n=r(81704),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==o.exec(e))},construct:function(e){var t,r,n,s,A,a,c,u,l=0,h=null;if(null===(t=i.exec(e))&&(t=o.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,s=+t[3],!t[4])return new Date(Date.UTC(r,n,s));if(A=+t[4],a=+t[5],c=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(h=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(h=-h)),u=new Date(Date.UTC(r,n,s,A,a,c,l)),h&&u.setTime(u.getTime()-h),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},7427:(e,t)=>{t.stringify=function e(t){if(void 0===t)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&"object"==typeof t){var r="",n=Array.isArray(t);r=n?"[":"{";var i=!0;for(var o in t){var s="function"==typeof t[o]||!n&&void 0===t[o];Object.hasOwnProperty.call(t,o)&&!s&&(i||(r+=","),i=!1,n?null==t[o]?r+="null":r+=e(t[o]):void 0!==t[o]&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}"}return"string"==typeof t?JSON.stringify(/^:/.test(t)?":"+t:t):void 0===t?"null":JSON.stringify(t)},t.parse=function(e){return JSON.parse(e,(function(e,t){return"string"==typeof t?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t}))}},72515:(e,t,r)=>{"use strict";const n=r(28614),i=r(7427);e.exports=class extends n{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:i.stringify,deserialize:i.parse},"string"==typeof e?{uri:e}:e,t),!this.opts.store){const e=Object.assign({},this.opts);this.opts.store=(e=>{const t={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(e.adapter||e.uri){const n=e.adapter||/^[^:]*/.exec(e.uri)[0];return new(r(89112)(t[n]))(e)}return new Map})(e)}"function"==typeof this.opts.store.on&&this.opts.store.on("error",e=>this.emit("error",e)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);const{store:r}=this.opts;return Promise.resolve().then(()=>r.get(e)).then(e=>"string"==typeof e?this.opts.deserialize(e):e).then(r=>{if(void 0!==r){if(!("number"==typeof r.expires&&Date.now()>r.expires))return t&&t.raw?r:r.value;this.delete(e)}})}set(e,t,r){e=this._getKeyPrefix(e),void 0===r&&(r=this.opts.ttl),0===r&&(r=void 0);const{store:n}=this.opts;return Promise.resolve().then(()=>{const e="number"==typeof r?Date.now()+r:null;return t={value:t,expires:e},this.opts.serialize(t)}).then(t=>n.set(e,t,r)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);const{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){const{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}}},89112:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=89112,e.exports=t},78962:(e,t,r)=>{var n=r(99513)(r(76169),"DataView");e.exports=n},72574:(e,t,r)=>{var n=r(31713),i=r(86688),o=r(45937),s=r(5017),A=r(79457);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},29197:(e,t,r)=>{var n=r(14620),i=r(73682),o=r(43112),s=r(90640),A=r(9380);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},63603:(e,t,r)=>{var n=r(99513)(r(76169),"Map");e.exports=n},75009:(e,t,r)=>{var n=r(18209),i=r(89706),o=r(43786),s=r(17926),A=r(87345);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},5825:(e,t,r)=>{var n=r(99513)(r(76169),"Promise");e.exports=n},43231:(e,t,r)=>{var n=r(99513)(r(76169),"Set");e.exports=n},46235:(e,t,r)=>{var n=r(75009),i=r(74785),o=r(87760);function s(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}s.prototype.add=s.prototype.push=i,s.prototype.has=o,e.exports=s},22851:(e,t,r)=>{var n=r(29197),i=r(35678),o=r(33336),s=r(97163),A=r(43737),a=r(48548);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=A,c.prototype.set=a,e.exports=c},69976:(e,t,r)=>{var n=r(76169).Symbol;e.exports=n},2740:(e,t,r)=>{var n=r(76169).Uint8Array;e.exports=n},47063:(e,t,r)=>{var n=r(99513)(r(76169),"WeakMap");e.exports=n},66636:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},33326:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}},9073:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[i++]=s)}return o}},24066:(e,t,r)=>{var n=r(37872);e.exports=function(e,t){return!!(null==e?0:e.length)&&n(e,t,0)>-1}},36669:e=>{e.exports=function(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}},11886:(e,t,r)=>{var n=r(7089),i=r(61771),o=r(82664),s=r(10667),A=r(98041),a=r(32565),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=o(e),u=!r&&i(e),l=!r&&!u&&s(e),h=!r&&!u&&!l&&a(e),g=r||u||l||h,f=g?n(e.length,String):[],p=f.length;for(var d in e)!t&&!c.call(e,d)||g&&("length"==d||l&&("offset"==d||"parent"==d)||h&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||A(d,p))||f.push(d);return f}},60783:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},40945:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}},66054:e=>{e.exports=function(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}},17765:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},1051:e=>{e.exports=function(e){return e.split("")}},11852:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},65759:(e,t,r)=>{var n=r(91198),i=r(71074),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var s=e[t];o.call(e,t)&&i(s,r)&&(void 0!==r||t in e)||n(e,t,r)}},39836:(e,t,r)=>{var n=r(71074);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},28628:(e,t,r)=>{var n=r(75182),i=r(42185);e.exports=function(e,t){return e&&n(t,i(t),e)}},78707:(e,t,r)=>{var n=r(75182),i=r(24887);e.exports=function(e,t){return e&&n(t,i(t),e)}},91198:(e,t,r)=>{var n=r(65);e.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},41076:(e,t,r)=>{var n=r(22851),i=r(33326),o=r(65759),s=r(28628),A=r(78707),a=r(64266),c=r(87229),u=r(23105),l=r(60741),h=r(60753),g=r(64420),f=r(79435),p=r(27908),d=r(37836),C=r(88438),E=r(82664),I=r(10667),m=r(13349),y=r(46778),w=r(33931),B=r(42185),Q={};Q["[object Arguments]"]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q["[object Object]"]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q["[object Function]"]=Q["[object WeakMap]"]=!1,e.exports=function e(t,r,v,D,b,S){var k,x=1&r,F=2&r,M=4&r;if(v&&(k=b?v(t,D,b,S):v(t)),void 0!==k)return k;if(!y(t))return t;var N=E(t);if(N){if(k=p(t),!x)return c(t,k)}else{var R=f(t),K="[object Function]"==R||"[object GeneratorFunction]"==R;if(I(t))return a(t,x);if("[object Object]"==R||"[object Arguments]"==R||K&&!b){if(k=F||K?{}:C(t),!x)return F?l(t,A(k,t)):u(t,s(k,t))}else{if(!Q[R])return b?t:{};k=d(t,R,x)}}S||(S=new n);var L=S.get(t);if(L)return L;S.set(t,k),w(t)?t.forEach((function(n){k.add(e(n,r,v,n,t,S))})):m(t)&&t.forEach((function(n,i){k.set(i,e(n,r,v,i,t,S))}));var T=M?F?g:h:F?keysIn:B,P=N?void 0:T(t);return i(P||t,(function(n,i){P&&(n=t[i=n]),o(k,i,e(n,r,v,i,t,S))})),k}},15178:(e,t,r)=>{var n=r(46778),i=Object.create,o=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=o},50773:(e,t,r)=>{var n=r(62164),i=r(85115)(n);e.exports=i},3691:(e,t,r)=>{var n=r(50773);e.exports=function(e,t){var r=[];return n(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}},72151:e=>{e.exports=function(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}},93274:(e,t,r)=>{var n=r(40945),i=r(958);e.exports=function e(t,r,o,s,A){var a=-1,c=t.length;for(o||(o=i),A||(A=[]);++a<c;){var u=t[a];r>0&&o(u)?r>1?e(u,r-1,o,s,A):n(A,u):s||(A[A.length]=u)}return A}},31689:(e,t,r)=>{var n=r(59907)();e.exports=n},62164:(e,t,r)=>{var n=r(31689),i=r(42185);e.exports=function(e,t){return e&&n(e,t,i)}},84173:(e,t,r)=>{var n=r(56725),i=r(49874);e.exports=function(e,t){for(var r=0,o=(t=n(t,e)).length;null!=e&&r<o;)e=e[i(t[r++])];return r&&r==o?e:void 0}},40104:(e,t,r)=>{var n=r(40945),i=r(82664);e.exports=function(e,t,r){var o=t(e);return i(e)?o:n(o,r(e))}},52502:(e,t,r)=>{var n=r(69976),i=r(2854),o=r(87427),s=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?i(e):o(e)}},95325:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,r){return null!=e&&t.call(e,r)}},3881:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},37872:(e,t,r)=>{var n=r(72151),i=r(14564),o=r(95145);e.exports=function(e,t,r){return t==t?o(e,t,r):n(e,i,r)}},76357:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return i(e)&&"[object Arguments]"==n(e)}},74195:(e,t,r)=>{var n=r(48957),i=r(38496);e.exports=function e(t,r,o,s,A){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,o,s,e,A))}},48957:(e,t,r)=>{var n=r(22851),i=r(75500),o=r(28475),s=r(50245),A=r(79435),a=r(82664),c=r(10667),u=r(32565),l="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,g,f,p){var d=a(e),C=a(t),E=d?"[object Array]":A(e),I=C?"[object Array]":A(t),m=(E="[object Arguments]"==E?l:E)==l,y=(I="[object Arguments]"==I?l:I)==l,w=E==I;if(w&&c(e)){if(!c(t))return!1;d=!0,m=!1}if(w&&!m)return p||(p=new n),d||u(e)?i(e,t,r,g,f,p):o(e,t,E,r,g,f,p);if(!(1&r)){var B=m&&h.call(e,"__wrapped__"),Q=y&&h.call(t,"__wrapped__");if(B||Q){var v=B?e.value():e,D=Q?t.value():t;return p||(p=new n),f(v,D,r,g,p)}}return!!w&&(p||(p=new n),s(e,t,r,g,f,p))}},55994:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Map]"==n(e)}},66470:(e,t,r)=>{var n=r(22851),i=r(74195);e.exports=function(e,t,r,o){var s=r.length,A=s,a=!o;if(null==e)return!A;for(e=Object(e);s--;){var c=r[s];if(a&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++s<A;){var u=(c=r[s])[0],l=e[u],h=c[1];if(a&&c[2]){if(void 0===l&&!(u in e))return!1}else{var g=new n;if(o)var f=o(l,h,u,e,t,g);if(!(void 0===f?i(h,l,3,o,g):f))return!1}}return!0}},14564:e=>{e.exports=function(e){return e!=e}},91686:(e,t,r)=>{var n=r(92533),i=r(15061),o=r(46778),s=r(76384),A=/^\[object .+?Constructor\]$/,a=Function.prototype,c=Object.prototype,u=a.toString,l=c.hasOwnProperty,h=RegExp("^"+u.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(n(e)?h:A).test(s(e))}},28612:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Set]"==n(e)}},98998:(e,t,r)=>{var n=r(52502),i=r(46369),o=r(38496),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!s[n(e)]}},42208:(e,t,r)=>{var n=r(96962),i=r(90348),o=r(61977),s=r(82664),A=r(7430);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?s(e)?i(e[0],e[1]):n(e):A(e)}},50994:(e,t,r)=>{var n=r(89513),i=r(60657),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}},8372:(e,t,r)=>{var n=r(46778),i=r(89513),o=r(95632),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=i(e),r=[];for(var A in e)("constructor"!=A||!t&&s.call(e,A))&&r.push(A);return r}},26309:(e,t,r)=>{var n=r(50773),i=r(41929);e.exports=function(e,t){var r=-1,o=i(e)?Array(e.length):[];return n(e,(function(e,n,i){o[++r]=t(e,n,i)})),o}},96962:(e,t,r)=>{var n=r(66470),i=r(98705),o=r(12757);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},90348:(e,t,r)=>{var n=r(74195),i=r(44674),o=r(34878),s=r(70474),A=r(20925),a=r(12757),c=r(49874);e.exports=function(e,t){return s(e)&&A(t)?a(c(e),t):function(r){var s=i(r,e);return void 0===s&&s===t?o(r,e):n(t,s,3)}}},35400:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},43018:(e,t,r)=>{var n=r(84173);e.exports=function(e){return function(t){return n(t,e)}}},51587:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},30383:(e,t,r)=>{var n=r(61977),i=r(44322),o=r(3111);e.exports=function(e,t){return o(i(e,t,n),e+"")}},10624:(e,t,r)=>{var n=r(65759),i=r(56725),o=r(98041),s=r(46778),A=r(49874);e.exports=function(e,t,r,a){if(!s(e))return e;for(var c=-1,u=(t=i(t,e)).length,l=u-1,h=e;null!=h&&++c<u;){var g=A(t[c]),f=r;if(c!=l){var p=h[g];void 0===(f=a?a(p,g,h):void 0)&&(f=s(p)?p:o(t[c+1])?[]:{})}n(h,g,f),h=h[g]}return e}},4899:(e,t,r)=>{var n=r(4967),i=r(65),o=r(61977),s=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:o;e.exports=s},27708:e=>{e.exports=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++n<i;)o[n]=e[n+t];return o}},96815:e=>{e.exports=function(e,t){for(var r,n=-1,i=e.length;++n<i;){var o=t(e[n]);void 0!==o&&(r=void 0===r?o:r+o)}return r}},7089:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},35:(e,t,r)=>{var n=r(69976),i=r(60783),o=r(82664),s=r(65558),A=n?n.prototype:void 0,a=A?A.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(s(t))return a?a.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},73635:e=>{e.exports=function(e){return function(t){return e(t)}}},42150:(e,t,r)=>{var n=r(46235),i=r(24066),o=r(36669),s=r(93022),A=r(17879),a=r(7442);e.exports=function(e,t,r){var c=-1,u=i,l=e.length,h=!0,g=[],f=g;if(r)h=!1,u=o;else if(l>=200){var p=t?null:A(e);if(p)return a(p);h=!1,u=s,f=new n}else f=t?[]:g;e:for(;++c<l;){var d=e[c],C=t?t(d):d;if(d=r||0!==d?d:0,h&&C==C){for(var E=f.length;E--;)if(f[E]===C)continue e;t&&f.push(C),g.push(d)}else u(f,C,r)||(f!==g&&f.push(C),g.push(d))}return g}},81622:(e,t,r)=>{var n=r(56725),i=r(49845),o=r(37574),s=r(49874);e.exports=function(e,t){return t=n(t,e),null==(e=o(e,t))||delete e[s(i(t))]}},18290:(e,t,r)=>{var n=r(60783);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},93022:e=>{e.exports=function(e,t){return e.has(t)}},56725:(e,t,r)=>{var n=r(82664),i=r(70474),o=r(8689),s=r(33580);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:o(s(e))}},92568:(e,t,r)=>{var n=r(27708);e.exports=function(e,t,r){var i=e.length;return r=void 0===r?i:r,!t&&r>=i?e:n(e,t,r)}},76255:(e,t,r)=>{var n=r(2740);e.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},64266:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i?n.Buffer:void 0,A=s?s.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=A?A(r):new e.constructor(r);return e.copy(n),n}},63749:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}},41705:e=>{var t=/\w*$/;e.exports=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}},25791:(e,t,r)=>{var n=r(69976),i=n?n.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},58042:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}},87229:e=>{e.exports=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}},75182:(e,t,r)=>{var n=r(65759),i=r(91198);e.exports=function(e,t,r,o){var s=!r;r||(r={});for(var A=-1,a=t.length;++A<a;){var c=t[A],u=o?o(r[c],e[c],c,r,e):void 0;void 0===u&&(u=e[c]),s?i(r,c,u):n(r,c,u)}return r}},23105:(e,t,r)=>{var n=r(75182),i=r(68727);e.exports=function(e,t){return n(e,i(e),t)}},60741:(e,t,r)=>{var n=r(75182),i=r(35368);e.exports=function(e,t){return n(e,i(e),t)}},14429:(e,t,r)=>{var n=r(76169)["__core-js_shared__"];e.exports=n},27913:(e,t,r)=>{var n=r(30383),i=r(33193);e.exports=function(e){return n((function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,A=o>2?r[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,A&&i(r[0],r[1],A)&&(s=o<3?void 0:s,o=1),t=Object(t);++n<o;){var a=r[n];a&&e(t,a,n,s)}return t}))}},85115:(e,t,r)=>{var n=r(41929);e.exports=function(e,t){return function(r,i){if(null==r)return r;if(!n(r))return e(r,i);for(var o=r.length,s=t?o:-1,A=Object(r);(t?s--:++s<o)&&!1!==i(A[s],s,A););return r}}},59907:e=>{e.exports=function(e){return function(t,r,n){for(var i=-1,o=Object(t),s=n(t),A=s.length;A--;){var a=s[e?A:++i];if(!1===r(o[a],a,o))break}return t}}},56989:(e,t,r)=>{var n=r(92568),i=r(93024),o=r(30475),s=r(33580);e.exports=function(e){return function(t){t=s(t);var r=i(t)?o(t):void 0,A=r?r[0]:t.charAt(0),a=r?n(r,1).join(""):t.slice(1);return A[e]()+a}}},30369:(e,t,r)=>{var n=r(66054),i=r(68968),o=r(97684),s=RegExp("['’]","g");e.exports=function(e){return function(t){return n(o(i(t).replace(s,"")),e,"")}}},80937:(e,t,r)=>{var n=r(42208),i=r(41929),o=r(42185);e.exports=function(e){return function(t,r,s){var A=Object(t);if(!i(t)){var a=n(r,3);t=o(t),r=function(e){return a(A[e],e,A)}}var c=e(t,r,s);return c>-1?A[a?t[c]:c]:void 0}}},17879:(e,t,r)=>{var n=r(43231),i=r(34791),o=r(7442),s=n&&1/o(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=s},37306:(e,t,r)=>{var n=r(11672);e.exports=function(e){return n(e)?void 0:e}},69922:(e,t,r)=>{var n=r(51587)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"});e.exports=n},65:(e,t,r)=>{var n=r(99513),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},75500:(e,t,r)=>{var n=r(46235),i=r(17765),o=r(93022);e.exports=function(e,t,r,s,A,a){var c=1&r,u=e.length,l=t.length;if(u!=l&&!(c&&l>u))return!1;var h=a.get(e);if(h&&a.get(t))return h==t;var g=-1,f=!0,p=2&r?new n:void 0;for(a.set(e,t),a.set(t,e);++g<u;){var d=e[g],C=t[g];if(s)var E=c?s(C,d,g,t,e,a):s(d,C,g,e,t,a);if(void 0!==E){if(E)continue;f=!1;break}if(p){if(!i(t,(function(e,t){if(!o(p,t)&&(d===e||A(d,e,r,s,a)))return p.push(t)}))){f=!1;break}}else if(d!==C&&!A(d,C,r,s,a)){f=!1;break}}return a.delete(e),a.delete(t),f}},28475:(e,t,r)=>{var n=r(69976),i=r(2740),o=r(71074),s=r(75500),A=r(7877),a=r(7442),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,l,h){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!l(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var g=A;case"[object Set]":var f=1&n;if(g||(g=a),e.size!=t.size&&!f)return!1;var p=h.get(e);if(p)return p==t;n|=2,h.set(e,t);var d=s(g(e),g(t),n,c,l,h);return h.delete(e),d;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},50245:(e,t,r)=>{var n=r(60753),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,s,A){var a=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!a)return!1;for(var l=u;l--;){var h=c[l];if(!(a?h in t:i.call(t,h)))return!1}var g=A.get(e);if(g&&A.get(t))return g==t;var f=!0;A.set(e,t),A.set(t,e);for(var p=a;++l<u;){var d=e[h=c[l]],C=t[h];if(o)var E=a?o(C,d,h,t,e,A):o(d,C,h,e,t,A);if(!(void 0===E?d===C||s(d,C,r,o,A):E)){f=!1;break}p||(p="constructor"==h)}if(f&&!p){var I=e.constructor,m=t.constructor;I==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof I&&I instanceof I&&"function"==typeof m&&m instanceof m||(f=!1)}return A.delete(e),A.delete(t),f}},87298:(e,t,r)=>{var n=r(54690),i=r(44322),o=r(3111);e.exports=function(e){return o(i(e,void 0,n),e+"")}},68399:e=>{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},60753:(e,t,r)=>{var n=r(40104),i=r(68727),o=r(42185);e.exports=function(e){return n(e,o,i)}},64420:(e,t,r)=>{var n=r(40104),i=r(35368),o=r(24887);e.exports=function(e){return n(e,o,i)}},59253:(e,t,r)=>{var n=r(69448);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},98705:(e,t,r)=>{var n=r(20925),i=r(42185);e.exports=function(e){for(var t=i(e),r=t.length;r--;){var o=t[r],s=e[o];t[r]=[o,s,n(s)]}return t}},99513:(e,t,r)=>{var n=r(91686),i=r(98054);e.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},41181:(e,t,r)=>{var n=r(64309)(Object.getPrototypeOf,Object);e.exports=n},2854:(e,t,r)=>{var n=r(69976),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,A=n?n.toStringTag:void 0;e.exports=function(e){var t=o.call(e,A),r=e[A];try{e[A]=void 0;var n=!0}catch(e){}var i=s.call(e);return n&&(t?e[A]=r:delete e[A]),i}},68727:(e,t,r)=>{var n=r(9073),i=r(62162),o=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,A=s?function(e){return null==e?[]:(e=Object(e),n(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=A},35368:(e,t,r)=>{var n=r(40945),i=r(41181),o=r(68727),s=r(62162),A=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,o(e)),e=i(e);return t}:s;e.exports=A},79435:(e,t,r)=>{var n=r(78962),i=r(63603),o=r(5825),s=r(43231),A=r(47063),a=r(52502),c=r(76384),u=c(n),l=c(i),h=c(o),g=c(s),f=c(A),p=a;(n&&"[object DataView]"!=p(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=p(new i)||o&&"[object Promise]"!=p(o.resolve())||s&&"[object Set]"!=p(new s)||A&&"[object WeakMap]"!=p(new A))&&(p=function(e){var t=a(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case u:return"[object DataView]";case l:return"[object Map]";case h:return"[object Promise]";case g:return"[object Set]";case f:return"[object WeakMap]"}return t}),e.exports=p},98054:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},71507:(e,t,r)=>{var n=r(56725),i=r(61771),o=r(82664),s=r(98041),A=r(46369),a=r(49874);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,l=!1;++c<u;){var h=a(t[c]);if(!(l=null!=e&&r(e,h)))break;e=e[h]}return l||++c!=u?l:!!(u=null==e?0:e.length)&&A(u)&&s(h,u)&&(o(e)||i(e))}},93024:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},60466:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},31713:(e,t,r)=>{var n=r(52437);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},86688:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},45937:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return i.call(t,e)?t[e]:void 0}},5017:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},79457:(e,t,r)=>{var n=r(52437);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},27908:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}},37836:(e,t,r)=>{var n=r(76255),i=r(63749),o=r(41705),s=r(25791),A=r(58042);e.exports=function(e,t,r){var a=e.constructor;switch(t){case"[object ArrayBuffer]":return n(e);case"[object Boolean]":case"[object Date]":return new a(+e);case"[object DataView]":return i(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return A(e,r);case"[object Map]":return new a;case"[object Number]":case"[object String]":return new a(e);case"[object RegExp]":return o(e);case"[object Set]":return new a;case"[object Symbol]":return s(e)}}},88438:(e,t,r)=>{var n=r(15178),i=r(41181),o=r(89513);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:n(i(e))}},958:(e,t,r)=>{var n=r(69976),i=r(61771),o=r(82664),s=n?n.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(s&&e&&e[s])}},98041:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},33193:(e,t,r)=>{var n=r(71074),i=r(41929),o=r(98041),s=r(46778);e.exports=function(e,t,r){if(!s(r))return!1;var A=typeof t;return!!("number"==A?i(r)&&o(t,r.length):"string"==A&&t in r)&&n(r[t],e)}},70474:(e,t,r)=>{var n=r(82664),i=r(65558),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||(s.test(e)||!o.test(e)||null!=t&&e in Object(t))}},69448:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15061:(e,t,r)=>{var n,i=r(14429),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!o&&o in e}},89513:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},20925:(e,t,r)=>{var n=r(46778);e.exports=function(e){return e==e&&!n(e)}},82262:e=>{e.exports=function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}},14620:e=>{e.exports=function(){this.__data__=[],this.size=0}},73682:(e,t,r)=>{var n=r(39836),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():i.call(t,r,1),--this.size,!0)}},43112:(e,t,r)=>{var n=r(39836);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},90640:(e,t,r)=>{var n=r(39836);e.exports=function(e){return n(this.__data__,e)>-1}},9380:(e,t,r)=>{var n=r(39836);e.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},18209:(e,t,r)=>{var n=r(72574),i=r(29197),o=r(63603);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},89706:(e,t,r)=>{var n=r(59253);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},43786:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).get(e)}},17926:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).has(e)}},87345:(e,t,r)=>{var n=r(59253);e.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},7877:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},12757:e=>{e.exports=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}},31948:(e,t,r)=>{var n=r(74499);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},52437:(e,t,r)=>{var n=r(99513)(Object,"create");e.exports=n},60657:(e,t,r)=>{var n=r(64309)(Object.keys,Object);e.exports=n},95632:e=>{e.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},26391:(e,t,r)=>{e=r.nmd(e);var n=r(68399),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i&&n.process,A=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=A},87427:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},64309:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},44322:(e,t,r)=>{var n=r(66636),i=Math.max;e.exports=function(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,s=-1,A=i(o.length-t,0),a=Array(A);++s<A;)a[s]=o[t+s];s=-1;for(var c=Array(t+1);++s<t;)c[s]=o[s];return c[t]=r(a),n(e,this,c)}}},37574:(e,t,r)=>{var n=r(84173),i=r(27708);e.exports=function(e,t){return t.length<2?e:n(e,i(t,0,-1))}},76169:(e,t,r)=>{var n=r(68399),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},74785:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},87760:e=>{e.exports=function(e){return this.__data__.has(e)}},7442:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},3111:(e,t,r)=>{var n=r(4899),i=r(19908)(n);e.exports=i},19908:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var i=t(),o=16-(i-n);if(n=i,o>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},35678:(e,t,r)=>{var n=r(29197);e.exports=function(){this.__data__=new n,this.size=0}},33336:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},97163:e=>{e.exports=function(e){return this.__data__.get(e)}},43737:e=>{e.exports=function(e){return this.__data__.has(e)}},48548:(e,t,r)=>{var n=r(29197),i=r(63603),o=r(75009);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var s=r.__data__;if(!i||s.length<199)return s.push([e,t]),this.size=++r.size,this;r=this.__data__=new o(s)}return r.set(e,t),this.size=r.size,this}},95145:e=>{e.exports=function(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}},30475:(e,t,r)=>{var n=r(1051),i=r(93024),o=r(297);e.exports=function(e){return i(e)?o(e):n(e)}},8689:(e,t,r)=>{var n=r(31948),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,s=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,r,n,i){t.push(n?i.replace(o,"$1"):r||e)})),t}));e.exports=s},49874:(e,t,r)=>{var n=r(65558);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},76384:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},297:e=>{var t="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",o="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",A="(?:"+r+"|"+n+")"+"?",a="[\\ufe0e\\ufe0f]?"+A+("(?:\\u200d(?:"+[i,o,s].join("|")+")[\\ufe0e\\ufe0f]?"+A+")*"),c="(?:"+[i+r+"?",r,o,s,t].join("|")+")",u=RegExp(n+"(?="+n+")|"+c+a,"g");e.exports=function(e){return e.match(u)||[]}},89887:e=>{var t="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+t+"]",n="\\d+",i="[\\u2700-\\u27bf]",o="[a-z\\xdf-\\xf6\\xf8-\\xff]",s="[^\\ud800-\\udfff"+t+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",c="[A-Z\\xc0-\\xd6\\xd8-\\xde]",u="(?:"+o+"|"+s+")",l="(?:"+c+"|"+s+")",h="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",g="[\\ufe0e\\ufe0f]?"+h+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",A,a].join("|")+")[\\ufe0e\\ufe0f]?"+h+")*"),f="(?:"+[i,A,a].join("|")+")"+g,p=RegExp([c+"?"+o+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,c,"$"].join("|")+")",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,c+u,"$"].join("|")+")",c+"?"+u+"+(?:['’](?:d|ll|m|re|s|t|ve))?",c+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(p)||[]}},9682:(e,t,r)=>{var n=r(65759),i=r(75182),o=r(27913),s=r(41929),A=r(89513),a=r(42185),c=Object.prototype.hasOwnProperty,u=o((function(e,t){if(A(t)||s(t))i(t,a(t),e);else for(var r in t)c.call(t,r)&&n(e,r,t[r])}));e.exports=u},88863:(e,t,r)=>{var n=r(75182),i=r(27913),o=r(24887),s=i((function(e,t){n(t,o(t),e)}));e.exports=s},89170:(e,t,r)=>{var n=r(61814),i=r(30369)((function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)}));e.exports=i},61814:(e,t,r)=>{var n=r(33580),i=r(72609);e.exports=function(e){return i(n(e).toLowerCase())}},22254:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,4)}},82558:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,5)}},26052:(e,t,r)=>{var n=r(41076);e.exports=function(e,t){return n(e,5,t="function"==typeof t?t:void 0)}},4967:e=>{e.exports=function(e){return function(){return e}}},68968:(e,t,r)=>{var n=r(69922),i=r(33580),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,s=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=i(e))&&e.replace(o,n).replace(s,"")}},99906:(e,t,r)=>{var n=r(30383),i=r(71074),o=r(33193),s=r(24887),A=Object.prototype,a=A.hasOwnProperty,c=n((function(e,t){e=Object(e);var r=-1,n=t.length,c=n>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(n=1);++r<n;)for(var u=t[r],l=s(u),h=-1,g=l.length;++h<g;){var f=l[h],p=e[f];(void 0===p||i(p,A[f])&&!a.call(e,f))&&(e[f]=u[f])}return e}));e.exports=c},71074:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},94501:(e,t,r)=>{e.exports=r(88863)},59181:(e,t,r)=>{var n=r(9073),i=r(3691),o=r(42208),s=r(82664);e.exports=function(e,t){return(s(e)?n:i)(e,o(t,3))}},98347:(e,t,r)=>{var n=r(80937)(r(17506));e.exports=n},17506:(e,t,r)=>{var n=r(72151),i=r(42208),o=r(864),s=Math.max;e.exports=function(e,t,r){var A=null==e?0:e.length;if(!A)return-1;var a=null==r?0:o(r);return a<0&&(a=s(A+a,0)),n(e,i(t,3),a)}},54690:(e,t,r)=>{var n=r(93274);e.exports=function(e){return(null==e?0:e.length)?n(e,1):[]}},44674:(e,t,r)=>{var n=r(84173);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},15215:(e,t,r)=>{var n=r(95325),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},34878:(e,t,r)=>{var n=r(3881),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},61977:e=>{e.exports=function(e){return e}},61771:(e,t,r)=>{var n=r(76357),i=r(38496),o=Object.prototype,s=o.hasOwnProperty,A=o.propertyIsEnumerable,a=n(function(){return arguments}())?n:function(e){return i(e)&&s.call(e,"callee")&&!A.call(e,"callee")};e.exports=a},82664:e=>{var t=Array.isArray;e.exports=t},41929:(e,t,r)=>{var n=r(92533),i=r(46369);e.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},66807:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return!0===e||!1===e||i(e)&&"[object Boolean]"==n(e)}},10667:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=r(88988),o=t&&!t.nodeType&&t,s=o&&e&&!e.nodeType&&e,A=s&&s.exports===o?n.Buffer:void 0,a=(A?A.isBuffer:void 0)||i;e.exports=a},92533:(e,t,r)=>{var n=r(52502),i=r(46778);e.exports=function(e){if(!i(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},46369:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},13349:(e,t,r)=>{var n=r(55994),i=r(73635),o=r(26391),s=o&&o.isMap,A=s?i(s):n;e.exports=A},71044:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"number"==typeof e||i(e)&&"[object Number]"==n(e)}},46778:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},38496:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},11672:(e,t,r)=>{var n=r(52502),i=r(41181),o=r(38496),s=Function.prototype,A=Object.prototype,a=s.toString,c=A.hasOwnProperty,u=a.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=n(e))return!1;var t=i(e);if(null===t)return!0;var r=c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&a.call(r)==u}},33931:(e,t,r)=>{var n=r(28612),i=r(73635),o=r(26391),s=o&&o.isSet,A=s?i(s):n;e.exports=A},221:(e,t,r)=>{var n=r(52502),i=r(82664),o=r(38496);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==n(e)}},65558:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==n(e)}},32565:(e,t,r)=>{var n=r(98998),i=r(73635),o=r(26391),s=o&&o.isTypedArray,A=s?i(s):n;e.exports=A},42185:(e,t,r)=>{var n=r(11886),i=r(50994),o=r(41929);e.exports=function(e){return o(e)?n(e):i(e)}},24887:(e,t,r)=>{var n=r(11886),i=r(8372),o=r(41929);e.exports=function(e){return o(e)?n(e,!0):i(e)}},49845:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},7564:function(e,t,r){var n;
+/**
+ * @license
+ * Lodash <https://lodash.com/>
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */e=r.nmd(e),function(){var i="Expected a function",o="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],A="[object Arguments]",a="[object Array]",c="[object Boolean]",u="[object Date]",l="[object Error]",h="[object Function]",g="[object GeneratorFunction]",f="[object Map]",p="[object Number]",d="[object Object]",C="[object RegExp]",E="[object Set]",I="[object String]",m="[object Symbol]",y="[object WeakMap]",w="[object ArrayBuffer]",B="[object DataView]",Q="[object Float32Array]",v="[object Float64Array]",D="[object Int8Array]",b="[object Int16Array]",S="[object Int32Array]",k="[object Uint8Array]",x="[object Uint16Array]",F="[object Uint32Array]",M=/\b__p \+= '';/g,N=/\b(__p \+=) '' \+/g,R=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,T=RegExp(K.source),P=RegExp(L.source),U=/<%-([\s\S]+?)%>/g,_=/<%([\s\S]+?)%>/g,O=/<%=([\s\S]+?)%>/g,j=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Y=/^\w*$/,G=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,H=RegExp(J.source),q=/^\s+|\s+$/g,z=/^\s+/,W=/\s+$/,V=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,X=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,$=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/\\(\\)?/g,te=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ne=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,oe=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,Ae=/^(?:0|[1-9]\d*)$/,ae=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ce=/($^)/,ue=/['\n\r\u2028\u2029\\]/g,le="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",he="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ge="[\\ud800-\\udfff]",fe="["+he+"]",pe="["+le+"]",de="\\d+",Ce="[\\u2700-\\u27bf]",Ee="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ie="[^\\ud800-\\udfff"+he+de+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",me="\\ud83c[\\udffb-\\udfff]",ye="[^\\ud800-\\udfff]",we="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",Qe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ve="(?:"+Ee+"|"+Ie+")",De="(?:"+Qe+"|"+Ie+")",be="(?:"+pe+"|"+me+")"+"?",Se="[\\ufe0e\\ufe0f]?"+be+("(?:\\u200d(?:"+[ye,we,Be].join("|")+")[\\ufe0e\\ufe0f]?"+be+")*"),ke="(?:"+[Ce,we,Be].join("|")+")"+Se,xe="(?:"+[ye+pe+"?",pe,we,Be,ge].join("|")+")",Fe=RegExp("['’]","g"),Me=RegExp(pe,"g"),Ne=RegExp(me+"(?="+me+")|"+xe+Se,"g"),Re=RegExp([Qe+"?"+Ee+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[fe,Qe,"$"].join("|")+")",De+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[fe,Qe+ve,"$"].join("|")+")",Qe+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Qe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",de,ke].join("|"),"g"),Ke=RegExp("[\\u200d\\ud800-\\udfff"+le+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Te=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pe=-1,Ue={};Ue[Q]=Ue[v]=Ue[D]=Ue[b]=Ue[S]=Ue[k]=Ue["[object Uint8ClampedArray]"]=Ue[x]=Ue[F]=!0,Ue[A]=Ue[a]=Ue[w]=Ue[c]=Ue[B]=Ue[u]=Ue[l]=Ue[h]=Ue[f]=Ue[p]=Ue[d]=Ue[C]=Ue[E]=Ue[I]=Ue[y]=!1;var _e={};_e[A]=_e[a]=_e[w]=_e[B]=_e[c]=_e[u]=_e[Q]=_e[v]=_e[D]=_e[b]=_e[S]=_e[f]=_e[p]=_e[d]=_e[C]=_e[E]=_e[I]=_e[m]=_e[k]=_e["[object Uint8ClampedArray]"]=_e[x]=_e[F]=!0,_e[l]=_e[h]=_e[y]=!1;var Oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},je=parseFloat,Ye=parseInt,Ge="object"==typeof global&&global&&global.Object===Object&&global,Je="object"==typeof self&&self&&self.Object===Object&&self,He=Ge||Je||Function("return this")(),qe=t&&!t.nodeType&&t,ze=qe&&e&&!e.nodeType&&e,We=ze&&ze.exports===qe,Ve=We&&Ge.process,Xe=function(){try{var e=ze&&ze.require&&ze.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch(e){}}(),Ze=Xe&&Xe.isArrayBuffer,$e=Xe&&Xe.isDate,et=Xe&&Xe.isMap,tt=Xe&&Xe.isRegExp,rt=Xe&&Xe.isSet,nt=Xe&&Xe.isTypedArray;function it(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function ot(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i<o;){var s=e[i];t(n,s,r(s),e)}return n}function st(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function At(e,t){for(var r=null==e?0:e.length;r--&&!1!==t(e[r],r,e););return e}function at(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}function ct(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[i++]=s)}return o}function ut(e,t){return!!(null==e?0:e.length)&&mt(e,t,0)>-1}function lt(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function ht(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}function gt(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}function ft(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}function pt(e,t,r,n){var i=null==e?0:e.length;for(n&&i&&(r=e[--i]);i--;)r=t(r,e[i],i,e);return r}function dt(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var Ct=Qt("length");function Et(e,t,r){var n;return r(e,(function(e,r,i){if(t(e,r,i))return n=r,!1})),n}function It(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function mt(e,t,r){return t==t?function(e,t,r){var n=r-1,i=e.length;for(;++n<i;)if(e[n]===t)return n;return-1}(e,t,r):It(e,wt,r)}function yt(e,t,r,n){for(var i=r-1,o=e.length;++i<o;)if(n(e[i],t))return i;return-1}function wt(e){return e!=e}function Bt(e,t){var r=null==e?0:e.length;return r?bt(e,t)/r:NaN}function Qt(e){return function(t){return null==t?void 0:t[e]}}function vt(e){return function(t){return null==e?void 0:e[t]}}function Dt(e,t,r,n,i){return i(e,(function(e,i,o){r=n?(n=!1,e):t(r,e,i,o)})),r}function bt(e,t){for(var r,n=-1,i=e.length;++n<i;){var o=t(e[n]);void 0!==o&&(r=void 0===r?o:r+o)}return r}function St(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function kt(e){return function(t){return e(t)}}function xt(e,t){return ht(t,(function(t){return e[t]}))}function Ft(e,t){return e.has(t)}function Mt(e,t){for(var r=-1,n=e.length;++r<n&&mt(t,e[r],0)>-1;);return r}function Nt(e,t){for(var r=e.length;r--&&mt(t,e[r],0)>-1;);return r}function Rt(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}var Kt=vt({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"}),Lt=vt({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Tt(e){return"\\"+Oe[e]}function Pt(e){return Ke.test(e)}function Ut(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function _t(e,t){return function(r){return e(t(r))}}function Ot(e,t){for(var r=-1,n=e.length,i=0,s=[];++r<n;){var A=e[r];A!==t&&A!==o||(e[r]=o,s[i++]=r)}return s}function jt(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}function Yt(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=[e,e]})),r}function Gt(e){return Pt(e)?function(e){var t=Ne.lastIndex=0;for(;Ne.test(e);)++t;return t}(e):Ct(e)}function Jt(e){return Pt(e)?function(e){return e.match(Ne)||[]}(e):function(e){return e.split("")}(e)}var Ht=vt({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var qt=function e(t){var r,n=(t=null==t?He:qt.defaults(He.Object(),t,qt.pick(He,Te))).Array,le=t.Date,he=t.Error,ge=t.Function,fe=t.Math,pe=t.Object,de=t.RegExp,Ce=t.String,Ee=t.TypeError,Ie=n.prototype,me=ge.prototype,ye=pe.prototype,we=t["__core-js_shared__"],Be=me.toString,Qe=ye.hasOwnProperty,ve=0,De=(r=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",be=ye.toString,Se=Be.call(pe),ke=He._,xe=de("^"+Be.call(Qe).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ne=We?t.Buffer:void 0,Ke=t.Symbol,Oe=t.Uint8Array,Ge=Ne?Ne.allocUnsafe:void 0,Je=_t(pe.getPrototypeOf,pe),qe=pe.create,ze=ye.propertyIsEnumerable,Ve=Ie.splice,Xe=Ke?Ke.isConcatSpreadable:void 0,Ct=Ke?Ke.iterator:void 0,vt=Ke?Ke.toStringTag:void 0,zt=function(){try{var e=$i(pe,"defineProperty");return e({},"",{}),e}catch(e){}}(),Wt=t.clearTimeout!==He.clearTimeout&&t.clearTimeout,Vt=le&&le.now!==He.Date.now&&le.now,Xt=t.setTimeout!==He.setTimeout&&t.setTimeout,Zt=fe.ceil,$t=fe.floor,er=pe.getOwnPropertySymbols,tr=Ne?Ne.isBuffer:void 0,rr=t.isFinite,nr=Ie.join,ir=_t(pe.keys,pe),or=fe.max,sr=fe.min,Ar=le.now,ar=t.parseInt,cr=fe.random,ur=Ie.reverse,lr=$i(t,"DataView"),hr=$i(t,"Map"),gr=$i(t,"Promise"),fr=$i(t,"Set"),pr=$i(t,"WeakMap"),dr=$i(pe,"create"),Cr=pr&&new pr,Er={},Ir=bo(lr),mr=bo(hr),yr=bo(gr),wr=bo(fr),Br=bo(pr),Qr=Ke?Ke.prototype:void 0,vr=Qr?Qr.valueOf:void 0,Dr=Qr?Qr.toString:void 0;function br(e){if(Gs(e)&&!Ns(e)&&!(e instanceof Fr)){if(e instanceof xr)return e;if(Qe.call(e,"__wrapped__"))return So(e)}return new xr(e)}var Sr=function(){function e(){}return function(t){if(!Ys(t))return{};if(qe)return qe(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function kr(){}function xr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Fr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Nr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Rr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Kr(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new Rr;++t<r;)this.add(e[t])}function Lr(e){var t=this.__data__=new Nr(e);this.size=t.size}function Tr(e,t){var r=Ns(e),n=!r&&Ms(e),i=!r&&!n&&Ts(e),o=!r&&!n&&!i&&Zs(e),s=r||n||i||o,A=s?St(e.length,Ce):[],a=A.length;for(var c in e)!t&&!Qe.call(e,c)||s&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||so(c,a))||A.push(c);return A}function Pr(e){var t=e.length;return t?e[Ln(0,t-1)]:void 0}function Ur(e,t){return Qo(Ci(e),zr(t,0,e.length))}function _r(e){return Qo(Ci(e))}function Or(e,t,r){(void 0!==r&&!ks(e[t],r)||void 0===r&&!(t in e))&&Hr(e,t,r)}function jr(e,t,r){var n=e[t];Qe.call(e,t)&&ks(n,r)&&(void 0!==r||t in e)||Hr(e,t,r)}function Yr(e,t){for(var r=e.length;r--;)if(ks(e[r][0],t))return r;return-1}function Gr(e,t,r,n){return $r(e,(function(e,i,o){t(n,e,r(e),o)})),n}function Jr(e,t){return e&&Ei(t,mA(t),e)}function Hr(e,t,r){"__proto__"==t&&zt?zt(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function qr(e,t){for(var r=-1,i=t.length,o=n(i),s=null==e;++r<i;)o[r]=s?void 0:pA(e,t[r]);return o}function zr(e,t,r){return e==e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}function Wr(e,t,r,n,i,o){var s,a=1&t,l=2&t,y=4&t;if(r&&(s=i?r(e,n,i,o):r(e)),void 0!==s)return s;if(!Ys(e))return e;var M=Ns(e);if(M){if(s=function(e){var t=e.length,r=new e.constructor(t);t&&"string"==typeof e[0]&&Qe.call(e,"index")&&(r.index=e.index,r.input=e.input);return r}(e),!a)return Ci(e,s)}else{var N=ro(e),R=N==h||N==g;if(Ts(e))return li(e,a);if(N==d||N==A||R&&!i){if(s=l||R?{}:io(e),!a)return l?function(e,t){return Ei(e,to(e),t)}(e,function(e,t){return e&&Ei(t,yA(t),e)}(s,e)):function(e,t){return Ei(e,eo(e),t)}(e,Jr(s,e))}else{if(!_e[N])return i?e:{};s=function(e,t,r){var n=e.constructor;switch(t){case w:return hi(e);case c:case u:return new n(+e);case B:return function(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case Q:case v:case D:case b:case S:case k:case"[object Uint8ClampedArray]":case x:case F:return gi(e,r);case f:return new n;case p:case I:return new n(e);case C:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case E:return new n;case m:return i=e,vr?pe(vr.call(i)):{}}var i}(e,N,a)}}o||(o=new Lr);var K=o.get(e);if(K)return K;o.set(e,s),Ws(e)?e.forEach((function(n){s.add(Wr(n,t,r,n,e,o))})):Js(e)&&e.forEach((function(n,i){s.set(i,Wr(n,t,r,i,e,o))}));var L=M?void 0:(y?l?Hi:Ji:l?yA:mA)(e);return st(L||e,(function(n,i){L&&(n=e[i=n]),jr(s,i,Wr(n,t,r,i,e,o))})),s}function Vr(e,t,r){var n=r.length;if(null==e)return!n;for(e=pe(e);n--;){var i=r[n],o=t[i],s=e[i];if(void 0===s&&!(i in e)||!o(s))return!1}return!0}function Xr(e,t,r){if("function"!=typeof e)throw new Ee(i);return mo((function(){e.apply(void 0,r)}),t)}function Zr(e,t,r,n){var i=-1,o=ut,s=!0,A=e.length,a=[],c=t.length;if(!A)return a;r&&(t=ht(t,kt(r))),n?(o=lt,s=!1):t.length>=200&&(o=Ft,s=!1,t=new Kr(t));e:for(;++i<A;){var u=e[i],l=null==r?u:r(u);if(u=n||0!==u?u:0,s&&l==l){for(var h=c;h--;)if(t[h]===l)continue e;a.push(u)}else o(t,l,n)||a.push(u)}return a}br.templateSettings={escape:U,evaluate:_,interpolate:O,variable:"",imports:{_:br}},br.prototype=kr.prototype,br.prototype.constructor=br,xr.prototype=Sr(kr.prototype),xr.prototype.constructor=xr,Fr.prototype=Sr(kr.prototype),Fr.prototype.constructor=Fr,Mr.prototype.clear=function(){this.__data__=dr?dr(null):{},this.size=0},Mr.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Mr.prototype.get=function(e){var t=this.__data__;if(dr){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return Qe.call(t,e)?t[e]:void 0},Mr.prototype.has=function(e){var t=this.__data__;return dr?void 0!==t[e]:Qe.call(t,e)},Mr.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=dr&&void 0===t?"__lodash_hash_undefined__":t,this},Nr.prototype.clear=function(){this.__data__=[],this.size=0},Nr.prototype.delete=function(e){var t=this.__data__,r=Yr(t,e);return!(r<0)&&(r==t.length-1?t.pop():Ve.call(t,r,1),--this.size,!0)},Nr.prototype.get=function(e){var t=this.__data__,r=Yr(t,e);return r<0?void 0:t[r][1]},Nr.prototype.has=function(e){return Yr(this.__data__,e)>-1},Nr.prototype.set=function(e,t){var r=this.__data__,n=Yr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},Rr.prototype.clear=function(){this.size=0,this.__data__={hash:new Mr,map:new(hr||Nr),string:new Mr}},Rr.prototype.delete=function(e){var t=Xi(this,e).delete(e);return this.size-=t?1:0,t},Rr.prototype.get=function(e){return Xi(this,e).get(e)},Rr.prototype.has=function(e){return Xi(this,e).has(e)},Rr.prototype.set=function(e,t){var r=Xi(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},Kr.prototype.add=Kr.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Kr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.clear=function(){this.__data__=new Nr,this.size=0},Lr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Lr.prototype.get=function(e){return this.__data__.get(e)},Lr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Nr){var n=r.__data__;if(!hr||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Rr(n)}return r.set(e,t),this.size=r.size,this};var $r=yi(an),en=yi(cn,!0);function tn(e,t){var r=!0;return $r(e,(function(e,n,i){return r=!!t(e,n,i)})),r}function rn(e,t,r){for(var n=-1,i=e.length;++n<i;){var o=e[n],s=t(o);if(null!=s&&(void 0===A?s==s&&!Xs(s):r(s,A)))var A=s,a=o}return a}function nn(e,t){var r=[];return $r(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function on(e,t,r,n,i){var o=-1,s=e.length;for(r||(r=oo),i||(i=[]);++o<s;){var A=e[o];t>0&&r(A)?t>1?on(A,t-1,r,n,i):gt(i,A):n||(i[i.length]=A)}return i}var sn=wi(),An=wi(!0);function an(e,t){return e&&sn(e,t,mA)}function cn(e,t){return e&&An(e,t,mA)}function un(e,t){return ct(t,(function(t){return _s(e[t])}))}function ln(e,t){for(var r=0,n=(t=Ai(t,e)).length;null!=e&&r<n;)e=e[Do(t[r++])];return r&&r==n?e:void 0}function hn(e,t,r){var n=t(e);return Ns(e)?n:gt(n,r(e))}function gn(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":vt&&vt in pe(e)?function(e){var t=Qe.call(e,vt),r=e[vt];try{e[vt]=void 0;var n=!0}catch(e){}var i=be.call(e);n&&(t?e[vt]=r:delete e[vt]);return i}(e):function(e){return be.call(e)}(e)}function fn(e,t){return e>t}function pn(e,t){return null!=e&&Qe.call(e,t)}function dn(e,t){return null!=e&&t in pe(e)}function Cn(e,t,r){for(var i=r?lt:ut,o=e[0].length,s=e.length,A=s,a=n(s),c=1/0,u=[];A--;){var l=e[A];A&&t&&(l=ht(l,kt(t))),c=sr(l.length,c),a[A]=!r&&(t||o>=120&&l.length>=120)?new Kr(A&&l):void 0}l=e[0];var h=-1,g=a[0];e:for(;++h<o&&u.length<c;){var f=l[h],p=t?t(f):f;if(f=r||0!==f?f:0,!(g?Ft(g,p):i(u,p,r))){for(A=s;--A;){var d=a[A];if(!(d?Ft(d,p):i(e[A],p,r)))continue e}g&&g.push(p),u.push(f)}}return u}function En(e,t,r){var n=null==(e=po(e,t=Ai(t,e)))?e:e[Do(Uo(t))];return null==n?void 0:it(n,e,r)}function In(e){return Gs(e)&&gn(e)==A}function mn(e,t,r,n,i){return e===t||(null==e||null==t||!Gs(e)&&!Gs(t)?e!=e&&t!=t:function(e,t,r,n,i,o){var s=Ns(e),h=Ns(t),g=s?a:ro(e),y=h?a:ro(t),Q=(g=g==A?d:g)==d,v=(y=y==A?d:y)==d,D=g==y;if(D&&Ts(e)){if(!Ts(t))return!1;s=!0,Q=!1}if(D&&!Q)return o||(o=new Lr),s||Zs(e)?Yi(e,t,r,n,i,o):function(e,t,r,n,i,o,s){switch(r){case B:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!o(new Oe(e),new Oe(t)));case c:case u:case p:return ks(+e,+t);case l:return e.name==t.name&&e.message==t.message;case C:case I:return e==t+"";case f:var A=Ut;case E:var a=1&n;if(A||(A=jt),e.size!=t.size&&!a)return!1;var h=s.get(e);if(h)return h==t;n|=2,s.set(e,t);var g=Yi(A(e),A(t),n,i,o,s);return s.delete(e),g;case m:if(vr)return vr.call(e)==vr.call(t)}return!1}(e,t,g,r,n,i,o);if(!(1&r)){var b=Q&&Qe.call(e,"__wrapped__"),S=v&&Qe.call(t,"__wrapped__");if(b||S){var k=b?e.value():e,x=S?t.value():t;return o||(o=new Lr),i(k,x,r,n,o)}}if(!D)return!1;return o||(o=new Lr),function(e,t,r,n,i,o){var s=1&r,A=Ji(e),a=A.length,c=Ji(t).length;if(a!=c&&!s)return!1;var u=a;for(;u--;){var l=A[u];if(!(s?l in t:Qe.call(t,l)))return!1}var h=o.get(e);if(h&&o.get(t))return h==t;var g=!0;o.set(e,t),o.set(t,e);var f=s;for(;++u<a;){l=A[u];var p=e[l],d=t[l];if(n)var C=s?n(d,p,l,t,e,o):n(p,d,l,e,t,o);if(!(void 0===C?p===d||i(p,d,r,n,o):C)){g=!1;break}f||(f="constructor"==l)}if(g&&!f){var E=e.constructor,I=t.constructor;E==I||!("constructor"in e)||!("constructor"in t)||"function"==typeof E&&E instanceof E&&"function"==typeof I&&I instanceof I||(g=!1)}return o.delete(e),o.delete(t),g}(e,t,r,n,i,o)}(e,t,r,n,mn,i))}function yn(e,t,r,n){var i=r.length,o=i,s=!n;if(null==e)return!o;for(e=pe(e);i--;){var A=r[i];if(s&&A[2]?A[1]!==e[A[0]]:!(A[0]in e))return!1}for(;++i<o;){var a=(A=r[i])[0],c=e[a],u=A[1];if(s&&A[2]){if(void 0===c&&!(a in e))return!1}else{var l=new Lr;if(n)var h=n(c,u,a,e,t,l);if(!(void 0===h?mn(u,c,3,n,l):h))return!1}}return!0}function wn(e){return!(!Ys(e)||(t=e,De&&De in t))&&(_s(e)?xe:oe).test(bo(e));var t}function Bn(e){return"function"==typeof e?e:null==e?HA:"object"==typeof e?Ns(e)?kn(e[0],e[1]):Sn(e):ta(e)}function Qn(e){if(!lo(e))return ir(e);var t=[];for(var r in pe(e))Qe.call(e,r)&&"constructor"!=r&&t.push(r);return t}function vn(e){if(!Ys(e))return function(e){var t=[];if(null!=e)for(var r in pe(e))t.push(r);return t}(e);var t=lo(e),r=[];for(var n in e)("constructor"!=n||!t&&Qe.call(e,n))&&r.push(n);return r}function Dn(e,t){return e<t}function bn(e,t){var r=-1,i=Ks(e)?n(e.length):[];return $r(e,(function(e,n,o){i[++r]=t(e,n,o)})),i}function Sn(e){var t=Zi(e);return 1==t.length&&t[0][2]?go(t[0][0],t[0][1]):function(r){return r===e||yn(r,e,t)}}function kn(e,t){return ao(e)&&ho(t)?go(Do(e),t):function(r){var n=pA(r,e);return void 0===n&&n===t?dA(r,e):mn(t,n,3)}}function xn(e,t,r,n,i){e!==t&&sn(t,(function(o,s){if(i||(i=new Lr),Ys(o))!function(e,t,r,n,i,o,s){var A=Eo(e,r),a=Eo(t,r),c=s.get(a);if(c)return void Or(e,r,c);var u=o?o(A,a,r+"",e,t,s):void 0,l=void 0===u;if(l){var h=Ns(a),g=!h&&Ts(a),f=!h&&!g&&Zs(a);u=a,h||g||f?Ns(A)?u=A:Ls(A)?u=Ci(A):g?(l=!1,u=li(a,!0)):f?(l=!1,u=gi(a,!0)):u=[]:qs(a)||Ms(a)?(u=A,Ms(A)?u=sA(A):Ys(A)&&!_s(A)||(u=io(a))):l=!1}l&&(s.set(a,u),i(u,a,n,o,s),s.delete(a));Or(e,r,u)}(e,t,s,r,xn,n,i);else{var A=n?n(Eo(e,s),o,s+"",e,t,i):void 0;void 0===A&&(A=o),Or(e,s,A)}}),yA)}function Fn(e,t){var r=e.length;if(r)return so(t+=t<0?r:0,r)?e[t]:void 0}function Mn(e,t,r){var n=-1;return t=ht(t.length?t:[HA],kt(Vi())),function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}(bn(e,(function(e,r,i){return{criteria:ht(t,(function(t){return t(e)})),index:++n,value:e}})),(function(e,t){return function(e,t,r){var n=-1,i=e.criteria,o=t.criteria,s=i.length,A=r.length;for(;++n<s;){var a=fi(i[n],o[n]);if(a){if(n>=A)return a;var c=r[n];return a*("desc"==c?-1:1)}}return e.index-t.index}(e,t,r)}))}function Nn(e,t,r){for(var n=-1,i=t.length,o={};++n<i;){var s=t[n],A=ln(e,s);r(A,s)&&On(o,Ai(s,e),A)}return o}function Rn(e,t,r,n){var i=n?yt:mt,o=-1,s=t.length,A=e;for(e===t&&(t=Ci(t)),r&&(A=ht(e,kt(r)));++o<s;)for(var a=0,c=t[o],u=r?r(c):c;(a=i(A,u,a,n))>-1;)A!==e&&Ve.call(A,a,1),Ve.call(e,a,1);return e}function Kn(e,t){for(var r=e?t.length:0,n=r-1;r--;){var i=t[r];if(r==n||i!==o){var o=i;so(i)?Ve.call(e,i,1):$n(e,i)}}return e}function Ln(e,t){return e+$t(cr()*(t-e+1))}function Tn(e,t){var r="";if(!e||t<1||t>9007199254740991)return r;do{t%2&&(r+=e),(t=$t(t/2))&&(e+=e)}while(t);return r}function Pn(e,t){return yo(fo(e,t,HA),e+"")}function Un(e){return Pr(kA(e))}function _n(e,t){var r=kA(e);return Qo(r,zr(t,0,r.length))}function On(e,t,r,n){if(!Ys(e))return e;for(var i=-1,o=(t=Ai(t,e)).length,s=o-1,A=e;null!=A&&++i<o;){var a=Do(t[i]),c=r;if(i!=s){var u=A[a];void 0===(c=n?n(u,a,A):void 0)&&(c=Ys(u)?u:so(t[i+1])?[]:{})}jr(A,a,c),A=A[a]}return e}var jn=Cr?function(e,t){return Cr.set(e,t),e}:HA,Yn=zt?function(e,t){return zt(e,"toString",{configurable:!0,enumerable:!1,value:YA(t),writable:!0})}:HA;function Gn(e){return Qo(kA(e))}function Jn(e,t,r){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=n(o);++i<o;)s[i]=e[i+t];return s}function Hn(e,t){var r;return $r(e,(function(e,n,i){return!(r=t(e,n,i))})),!!r}function qn(e,t,r){var n=0,i=null==e?n:e.length;if("number"==typeof t&&t==t&&i<=2147483647){for(;n<i;){var o=n+i>>>1,s=e[o];null!==s&&!Xs(s)&&(r?s<=t:s<t)?n=o+1:i=o}return i}return zn(e,t,HA,r)}function zn(e,t,r,n){t=r(t);for(var i=0,o=null==e?0:e.length,s=t!=t,A=null===t,a=Xs(t),c=void 0===t;i<o;){var u=$t((i+o)/2),l=r(e[u]),h=void 0!==l,g=null===l,f=l==l,p=Xs(l);if(s)var d=n||f;else d=c?f&&(n||h):A?f&&h&&(n||!g):a?f&&h&&!g&&(n||!p):!g&&!p&&(n?l<=t:l<t);d?i=u+1:o=u}return sr(o,4294967294)}function Wn(e,t){for(var r=-1,n=e.length,i=0,o=[];++r<n;){var s=e[r],A=t?t(s):s;if(!r||!ks(A,a)){var a=A;o[i++]=0===s?0:s}}return o}function Vn(e){return"number"==typeof e?e:Xs(e)?NaN:+e}function Xn(e){if("string"==typeof e)return e;if(Ns(e))return ht(e,Xn)+"";if(Xs(e))return Dr?Dr.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Zn(e,t,r){var n=-1,i=ut,o=e.length,s=!0,A=[],a=A;if(r)s=!1,i=lt;else if(o>=200){var c=t?null:Ti(e);if(c)return jt(c);s=!1,i=Ft,a=new Kr}else a=t?[]:A;e:for(;++n<o;){var u=e[n],l=t?t(u):u;if(u=r||0!==u?u:0,s&&l==l){for(var h=a.length;h--;)if(a[h]===l)continue e;t&&a.push(l),A.push(u)}else i(a,l,r)||(a!==A&&a.push(l),A.push(u))}return A}function $n(e,t){return null==(e=po(e,t=Ai(t,e)))||delete e[Do(Uo(t))]}function ei(e,t,r,n){return On(e,t,r(ln(e,t)),n)}function ti(e,t,r,n){for(var i=e.length,o=n?i:-1;(n?o--:++o<i)&&t(e[o],o,e););return r?Jn(e,n?0:o,n?o+1:i):Jn(e,n?o+1:0,n?i:o)}function ri(e,t){var r=e;return r instanceof Fr&&(r=r.value()),ft(t,(function(e,t){return t.func.apply(t.thisArg,gt([e],t.args))}),r)}function ni(e,t,r){var i=e.length;if(i<2)return i?Zn(e[0]):[];for(var o=-1,s=n(i);++o<i;)for(var A=e[o],a=-1;++a<i;)a!=o&&(s[o]=Zr(s[o]||A,e[a],t,r));return Zn(on(s,1),t,r)}function ii(e,t,r){for(var n=-1,i=e.length,o=t.length,s={};++n<i;){var A=n<o?t[n]:void 0;r(s,e[n],A)}return s}function oi(e){return Ls(e)?e:[]}function si(e){return"function"==typeof e?e:HA}function Ai(e,t){return Ns(e)?e:ao(e,t)?[e]:vo(AA(e))}var ai=Pn;function ci(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:Jn(e,t,r)}var ui=Wt||function(e){return He.clearTimeout(e)};function li(e,t){if(t)return e.slice();var r=e.length,n=Ge?Ge(r):new e.constructor(r);return e.copy(n),n}function hi(e){var t=new e.constructor(e.byteLength);return new Oe(t).set(new Oe(e)),t}function gi(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function fi(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=e==e,o=Xs(e),s=void 0!==t,A=null===t,a=t==t,c=Xs(t);if(!A&&!c&&!o&&e>t||o&&s&&a&&!A&&!c||n&&s&&a||!r&&a||!i)return 1;if(!n&&!o&&!c&&e<t||c&&r&&i&&!n&&!o||A&&r&&i||!s&&i||!a)return-1}return 0}function pi(e,t,r,i){for(var o=-1,s=e.length,A=r.length,a=-1,c=t.length,u=or(s-A,0),l=n(c+u),h=!i;++a<c;)l[a]=t[a];for(;++o<A;)(h||o<s)&&(l[r[o]]=e[o]);for(;u--;)l[a++]=e[o++];return l}function di(e,t,r,i){for(var o=-1,s=e.length,A=-1,a=r.length,c=-1,u=t.length,l=or(s-a,0),h=n(l+u),g=!i;++o<l;)h[o]=e[o];for(var f=o;++c<u;)h[f+c]=t[c];for(;++A<a;)(g||o<s)&&(h[f+r[A]]=e[o++]);return h}function Ci(e,t){var r=-1,i=e.length;for(t||(t=n(i));++r<i;)t[r]=e[r];return t}function Ei(e,t,r,n){var i=!r;r||(r={});for(var o=-1,s=t.length;++o<s;){var A=t[o],a=n?n(r[A],e[A],A,r,e):void 0;void 0===a&&(a=e[A]),i?Hr(r,A,a):jr(r,A,a)}return r}function Ii(e,t){return function(r,n){var i=Ns(r)?ot:Gr,o=t?t():{};return i(r,e,Vi(n,2),o)}}function mi(e){return Pn((function(t,r){var n=-1,i=r.length,o=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,s&&Ao(r[0],r[1],s)&&(o=i<3?void 0:o,i=1),t=pe(t);++n<i;){var A=r[n];A&&e(t,A,n,o)}return t}))}function yi(e,t){return function(r,n){if(null==r)return r;if(!Ks(r))return e(r,n);for(var i=r.length,o=t?i:-1,s=pe(r);(t?o--:++o<i)&&!1!==n(s[o],o,s););return r}}function wi(e){return function(t,r,n){for(var i=-1,o=pe(t),s=n(t),A=s.length;A--;){var a=s[e?A:++i];if(!1===r(o[a],a,o))break}return t}}function Bi(e){return function(t){var r=Pt(t=AA(t))?Jt(t):void 0,n=r?r[0]:t.charAt(0),i=r?ci(r,1).join(""):t.slice(1);return n[e]()+i}}function Qi(e){return function(t){return ft(_A(MA(t).replace(Fe,"")),e,"")}}function vi(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=Sr(e.prototype),n=e.apply(r,t);return Ys(n)?n:r}}function Di(e){return function(t,r,n){var i=pe(t);if(!Ks(t)){var o=Vi(r,3);t=mA(t),r=function(e){return o(i[e],e,i)}}var s=e(t,r,n);return s>-1?i[o?t[s]:s]:void 0}}function bi(e){return Gi((function(t){var r=t.length,n=r,o=xr.prototype.thru;for(e&&t.reverse();n--;){var s=t[n];if("function"!=typeof s)throw new Ee(i);if(o&&!A&&"wrapper"==zi(s))var A=new xr([],!0)}for(n=A?n:r;++n<r;){var a=zi(s=t[n]),c="wrapper"==a?qi(s):void 0;A=c&&co(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?A[zi(c[0])].apply(A,c[3]):1==s.length&&co(s)?A[a]():A.thru(s)}return function(){var e=arguments,n=e[0];if(A&&1==e.length&&Ns(n))return A.plant(n).value();for(var i=0,o=r?t[i].apply(this,e):n;++i<r;)o=t[i].call(this,o);return o}}))}function Si(e,t,r,i,o,s,A,a,c,u){var l=128&t,h=1&t,g=2&t,f=24&t,p=512&t,d=g?void 0:vi(e);return function C(){for(var E=arguments.length,I=n(E),m=E;m--;)I[m]=arguments[m];if(f)var y=Wi(C),w=Rt(I,y);if(i&&(I=pi(I,i,o,f)),s&&(I=di(I,s,A,f)),E-=w,f&&E<u){var B=Ot(I,y);return Ki(e,t,Si,C.placeholder,r,I,B,a,c,u-E)}var Q=h?r:this,v=g?Q[e]:e;return E=I.length,a?I=Co(I,a):p&&E>1&&I.reverse(),l&&c<E&&(I.length=c),this&&this!==He&&this instanceof C&&(v=d||vi(v)),v.apply(Q,I)}}function ki(e,t){return function(r,n){return function(e,t,r,n){return an(e,(function(e,i,o){t(n,r(e),i,o)})),n}(r,e,t(n),{})}}function xi(e,t){return function(r,n){var i;if(void 0===r&&void 0===n)return t;if(void 0!==r&&(i=r),void 0!==n){if(void 0===i)return n;"string"==typeof r||"string"==typeof n?(r=Xn(r),n=Xn(n)):(r=Vn(r),n=Vn(n)),i=e(r,n)}return i}}function Fi(e){return Gi((function(t){return t=ht(t,kt(Vi())),Pn((function(r){var n=this;return e(t,(function(e){return it(e,n,r)}))}))}))}function Mi(e,t){var r=(t=void 0===t?" ":Xn(t)).length;if(r<2)return r?Tn(t,e):t;var n=Tn(t,Zt(e/Gt(t)));return Pt(t)?ci(Jt(n),0,e).join(""):n.slice(0,e)}function Ni(e){return function(t,r,i){return i&&"number"!=typeof i&&Ao(t,r,i)&&(r=i=void 0),t=rA(t),void 0===r?(r=t,t=0):r=rA(r),function(e,t,r,i){for(var o=-1,s=or(Zt((t-e)/(r||1)),0),A=n(s);s--;)A[i?s:++o]=e,e+=r;return A}(t,r,i=void 0===i?t<r?1:-1:rA(i),e)}}function Ri(e){return function(t,r){return"string"==typeof t&&"string"==typeof r||(t=oA(t),r=oA(r)),e(t,r)}}function Ki(e,t,r,n,i,o,s,A,a,c){var u=8&t;t|=u?32:64,4&(t&=~(u?64:32))||(t&=-4);var l=[e,t,i,u?o:void 0,u?s:void 0,u?void 0:o,u?void 0:s,A,a,c],h=r.apply(void 0,l);return co(e)&&Io(h,l),h.placeholder=n,wo(h,e,t)}function Li(e){var t=fe[e];return function(e,r){if(e=oA(e),(r=null==r?0:sr(nA(r),292))&&rr(e)){var n=(AA(e)+"e").split("e");return+((n=(AA(t(n[0]+"e"+(+n[1]+r)))+"e").split("e"))[0]+"e"+(+n[1]-r))}return t(e)}}var Ti=fr&&1/jt(new fr([,-0]))[1]==1/0?function(e){return new fr(e)}:XA;function Pi(e){return function(t){var r=ro(t);return r==f?Ut(t):r==E?Yt(t):function(e,t){return ht(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Ui(e,t,r,s,A,a,c,u){var l=2&t;if(!l&&"function"!=typeof e)throw new Ee(i);var h=s?s.length:0;if(h||(t&=-97,s=A=void 0),c=void 0===c?c:or(nA(c),0),u=void 0===u?u:nA(u),h-=A?A.length:0,64&t){var g=s,f=A;s=A=void 0}var p=l?void 0:qi(e),d=[e,t,r,s,A,g,f,a,c,u];if(p&&function(e,t){var r=e[1],n=t[1],i=r|n,s=i<131,A=128==n&&8==r||128==n&&256==r&&e[7].length<=t[8]||384==n&&t[7].length<=t[8]&&8==r;if(!s&&!A)return e;1&n&&(e[2]=t[2],i|=1&r?0:4);var a=t[3];if(a){var c=e[3];e[3]=c?pi(c,a,t[4]):a,e[4]=c?Ot(e[3],o):t[4]}(a=t[5])&&(c=e[5],e[5]=c?di(c,a,t[6]):a,e[6]=c?Ot(e[5],o):t[6]);(a=t[7])&&(e[7]=a);128&n&&(e[8]=null==e[8]?t[8]:sr(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=i}(d,p),e=d[0],t=d[1],r=d[2],s=d[3],A=d[4],!(u=d[9]=void 0===d[9]?l?0:e.length:or(d[9]-h,0))&&24&t&&(t&=-25),t&&1!=t)C=8==t||16==t?function(e,t,r){var i=vi(e);return function o(){for(var s=arguments.length,A=n(s),a=s,c=Wi(o);a--;)A[a]=arguments[a];var u=s<3&&A[0]!==c&&A[s-1]!==c?[]:Ot(A,c);if((s-=u.length)<r)return Ki(e,t,Si,o.placeholder,void 0,A,u,void 0,void 0,r-s);var l=this&&this!==He&&this instanceof o?i:e;return it(l,this,A)}}(e,t,u):32!=t&&33!=t||A.length?Si.apply(void 0,d):function(e,t,r,i){var o=1&t,s=vi(e);return function t(){for(var A=-1,a=arguments.length,c=-1,u=i.length,l=n(u+a),h=this&&this!==He&&this instanceof t?s:e;++c<u;)l[c]=i[c];for(;a--;)l[c++]=arguments[++A];return it(h,o?r:this,l)}}(e,t,r,s);else var C=function(e,t,r){var n=1&t,i=vi(e);return function t(){var o=this&&this!==He&&this instanceof t?i:e;return o.apply(n?r:this,arguments)}}(e,t,r);return wo((p?jn:Io)(C,d),e,t)}function _i(e,t,r,n){return void 0===e||ks(e,ye[r])&&!Qe.call(n,r)?t:e}function Oi(e,t,r,n,i,o){return Ys(e)&&Ys(t)&&(o.set(t,e),xn(e,t,void 0,Oi,o),o.delete(t)),e}function ji(e){return qs(e)?void 0:e}function Yi(e,t,r,n,i,o){var s=1&r,A=e.length,a=t.length;if(A!=a&&!(s&&a>A))return!1;var c=o.get(e);if(c&&o.get(t))return c==t;var u=-1,l=!0,h=2&r?new Kr:void 0;for(o.set(e,t),o.set(t,e);++u<A;){var g=e[u],f=t[u];if(n)var p=s?n(f,g,u,t,e,o):n(g,f,u,e,t,o);if(void 0!==p){if(p)continue;l=!1;break}if(h){if(!dt(t,(function(e,t){if(!Ft(h,t)&&(g===e||i(g,e,r,n,o)))return h.push(t)}))){l=!1;break}}else if(g!==f&&!i(g,f,r,n,o)){l=!1;break}}return o.delete(e),o.delete(t),l}function Gi(e){return yo(fo(e,void 0,Ro),e+"")}function Ji(e){return hn(e,mA,eo)}function Hi(e){return hn(e,yA,to)}var qi=Cr?function(e){return Cr.get(e)}:XA;function zi(e){for(var t=e.name+"",r=Er[t],n=Qe.call(Er,t)?r.length:0;n--;){var i=r[n],o=i.func;if(null==o||o==e)return i.name}return t}function Wi(e){return(Qe.call(br,"placeholder")?br:e).placeholder}function Vi(){var e=br.iteratee||qA;return e=e===qA?Bn:e,arguments.length?e(arguments[0],arguments[1]):e}function Xi(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function Zi(e){for(var t=mA(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,ho(i)]}return t}function $i(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return wn(r)?r:void 0}var eo=er?function(e){return null==e?[]:(e=pe(e),ct(er(e),(function(t){return ze.call(e,t)})))}:ia,to=er?function(e){for(var t=[];e;)gt(t,eo(e)),e=Je(e);return t}:ia,ro=gn;function no(e,t,r){for(var n=-1,i=(t=Ai(t,e)).length,o=!1;++n<i;){var s=Do(t[n]);if(!(o=null!=e&&r(e,s)))break;e=e[s]}return o||++n!=i?o:!!(i=null==e?0:e.length)&&js(i)&&so(s,i)&&(Ns(e)||Ms(e))}function io(e){return"function"!=typeof e.constructor||lo(e)?{}:Sr(Je(e))}function oo(e){return Ns(e)||Ms(e)||!!(Xe&&e&&e[Xe])}function so(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&Ae.test(e))&&e>-1&&e%1==0&&e<t}function Ao(e,t,r){if(!Ys(r))return!1;var n=typeof t;return!!("number"==n?Ks(r)&&so(t,r.length):"string"==n&&t in r)&&ks(r[t],e)}function ao(e,t){if(Ns(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!Xs(e))||(Y.test(e)||!j.test(e)||null!=t&&e in pe(t))}function co(e){var t=zi(e),r=br[t];if("function"!=typeof r||!(t in Fr.prototype))return!1;if(e===r)return!0;var n=qi(r);return!!n&&e===n[0]}(lr&&ro(new lr(new ArrayBuffer(1)))!=B||hr&&ro(new hr)!=f||gr&&"[object Promise]"!=ro(gr.resolve())||fr&&ro(new fr)!=E||pr&&ro(new pr)!=y)&&(ro=function(e){var t=gn(e),r=t==d?e.constructor:void 0,n=r?bo(r):"";if(n)switch(n){case Ir:return B;case mr:return f;case yr:return"[object Promise]";case wr:return E;case Br:return y}return t});var uo=we?_s:oa;function lo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ho(e){return e==e&&!Ys(e)}function go(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in pe(r)))}}function fo(e,t,r){return t=or(void 0===t?e.length-1:t,0),function(){for(var i=arguments,o=-1,s=or(i.length-t,0),A=n(s);++o<s;)A[o]=i[t+o];o=-1;for(var a=n(t+1);++o<t;)a[o]=i[o];return a[t]=r(A),it(e,this,a)}}function po(e,t){return t.length<2?e:ln(e,Jn(t,0,-1))}function Co(e,t){for(var r=e.length,n=sr(t.length,r),i=Ci(e);n--;){var o=t[n];e[n]=so(o,r)?i[o]:void 0}return e}function Eo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Io=Bo(jn),mo=Xt||function(e,t){return He.setTimeout(e,t)},yo=Bo(Yn);function wo(e,t,r){var n=t+"";return yo(e,function(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(V,"{\n/* [wrapped with "+t+"] */\n")}(n,function(e,t){return st(s,(function(r){var n="_."+r[0];t&r[1]&&!ut(e,n)&&e.push(n)})),e.sort()}(function(e){var t=e.match(X);return t?t[1].split(Z):[]}(n),r)))}function Bo(e){var t=0,r=0;return function(){var n=Ar(),i=16-(n-r);if(r=n,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Qo(e,t){var r=-1,n=e.length,i=n-1;for(t=void 0===t?n:t;++r<t;){var o=Ln(r,i),s=e[o];e[o]=e[r],e[r]=s}return e.length=t,e}var vo=function(e){var t=Bs(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(G,(function(e,r,n,i){t.push(n?i.replace(ee,"$1"):r||e)})),t}));function Do(e){if("string"==typeof e||Xs(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function bo(e){if(null!=e){try{return Be.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function So(e){if(e instanceof Fr)return e.clone();var t=new xr(e.__wrapped__,e.__chain__);return t.__actions__=Ci(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var ko=Pn((function(e,t){return Ls(e)?Zr(e,on(t,1,Ls,!0)):[]})),xo=Pn((function(e,t){var r=Uo(t);return Ls(r)&&(r=void 0),Ls(e)?Zr(e,on(t,1,Ls,!0),Vi(r,2)):[]})),Fo=Pn((function(e,t){var r=Uo(t);return Ls(r)&&(r=void 0),Ls(e)?Zr(e,on(t,1,Ls,!0),void 0,r):[]}));function Mo(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:nA(r);return i<0&&(i=or(n+i,0)),It(e,Vi(t,3),i)}function No(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=n-1;return void 0!==r&&(i=nA(r),i=r<0?or(n+i,0):sr(i,n-1)),It(e,Vi(t,3),i,!0)}function Ro(e){return(null==e?0:e.length)?on(e,1):[]}function Ko(e){return e&&e.length?e[0]:void 0}var Lo=Pn((function(e){var t=ht(e,oi);return t.length&&t[0]===e[0]?Cn(t):[]})),To=Pn((function(e){var t=Uo(e),r=ht(e,oi);return t===Uo(r)?t=void 0:r.pop(),r.length&&r[0]===e[0]?Cn(r,Vi(t,2)):[]})),Po=Pn((function(e){var t=Uo(e),r=ht(e,oi);return(t="function"==typeof t?t:void 0)&&r.pop(),r.length&&r[0]===e[0]?Cn(r,void 0,t):[]}));function Uo(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var _o=Pn(Oo);function Oo(e,t){return e&&e.length&&t&&t.length?Rn(e,t):e}var jo=Gi((function(e,t){var r=null==e?0:e.length,n=qr(e,t);return Kn(e,ht(t,(function(e){return so(e,r)?+e:e})).sort(fi)),n}));function Yo(e){return null==e?e:ur.call(e)}var Go=Pn((function(e){return Zn(on(e,1,Ls,!0))})),Jo=Pn((function(e){var t=Uo(e);return Ls(t)&&(t=void 0),Zn(on(e,1,Ls,!0),Vi(t,2))})),Ho=Pn((function(e){var t=Uo(e);return t="function"==typeof t?t:void 0,Zn(on(e,1,Ls,!0),void 0,t)}));function qo(e){if(!e||!e.length)return[];var t=0;return e=ct(e,(function(e){if(Ls(e))return t=or(e.length,t),!0})),St(t,(function(t){return ht(e,Qt(t))}))}function zo(e,t){if(!e||!e.length)return[];var r=qo(e);return null==t?r:ht(r,(function(e){return it(t,void 0,e)}))}var Wo=Pn((function(e,t){return Ls(e)?Zr(e,t):[]})),Vo=Pn((function(e){return ni(ct(e,Ls))})),Xo=Pn((function(e){var t=Uo(e);return Ls(t)&&(t=void 0),ni(ct(e,Ls),Vi(t,2))})),Zo=Pn((function(e){var t=Uo(e);return t="function"==typeof t?t:void 0,ni(ct(e,Ls),void 0,t)})),$o=Pn(qo);var es=Pn((function(e){var t=e.length,r=t>1?e[t-1]:void 0;return r="function"==typeof r?(e.pop(),r):void 0,zo(e,r)}));function ts(e){var t=br(e);return t.__chain__=!0,t}function rs(e,t){return t(e)}var ns=Gi((function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,i=function(t){return qr(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Fr&&so(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:rs,args:[i],thisArg:void 0}),new xr(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var is=Ii((function(e,t,r){Qe.call(e,r)?++e[r]:Hr(e,r,1)}));var os=Di(Mo),ss=Di(No);function As(e,t){return(Ns(e)?st:$r)(e,Vi(t,3))}function as(e,t){return(Ns(e)?At:en)(e,Vi(t,3))}var cs=Ii((function(e,t,r){Qe.call(e,r)?e[r].push(t):Hr(e,r,[t])}));var us=Pn((function(e,t,r){var i=-1,o="function"==typeof t,s=Ks(e)?n(e.length):[];return $r(e,(function(e){s[++i]=o?it(t,e,r):En(e,t,r)})),s})),ls=Ii((function(e,t,r){Hr(e,r,t)}));function hs(e,t){return(Ns(e)?ht:bn)(e,Vi(t,3))}var gs=Ii((function(e,t,r){e[r?0:1].push(t)}),(function(){return[[],[]]}));var fs=Pn((function(e,t){if(null==e)return[];var r=t.length;return r>1&&Ao(e,t[0],t[1])?t=[]:r>2&&Ao(t[0],t[1],t[2])&&(t=[t[0]]),Mn(e,on(t,1),[])})),ps=Vt||function(){return He.Date.now()};function ds(e,t,r){return t=r?void 0:t,Ui(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function Cs(e,t){var r;if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=void 0),r}}var Es=Pn((function(e,t,r){var n=1;if(r.length){var i=Ot(r,Wi(Es));n|=32}return Ui(e,n,t,r,i)})),Is=Pn((function(e,t,r){var n=3;if(r.length){var i=Ot(r,Wi(Is));n|=32}return Ui(t,n,e,r,i)}));function ms(e,t,r){var n,o,s,A,a,c,u=0,l=!1,h=!1,g=!0;if("function"!=typeof e)throw new Ee(i);function f(t){var r=n,i=o;return n=o=void 0,u=t,A=e.apply(i,r)}function p(e){return u=e,a=mo(C,t),l?f(e):A}function d(e){var r=e-c;return void 0===c||r>=t||r<0||h&&e-u>=s}function C(){var e=ps();if(d(e))return E(e);a=mo(C,function(e){var r=t-(e-c);return h?sr(r,s-(e-u)):r}(e))}function E(e){return a=void 0,g&&n?f(e):(n=o=void 0,A)}function I(){var e=ps(),r=d(e);if(n=arguments,o=this,c=e,r){if(void 0===a)return p(c);if(h)return ui(a),a=mo(C,t),f(c)}return void 0===a&&(a=mo(C,t)),A}return t=oA(t)||0,Ys(r)&&(l=!!r.leading,s=(h="maxWait"in r)?or(oA(r.maxWait)||0,t):s,g="trailing"in r?!!r.trailing:g),I.cancel=function(){void 0!==a&&ui(a),u=0,n=c=o=a=void 0},I.flush=function(){return void 0===a?A:E(ps())},I}var ys=Pn((function(e,t){return Xr(e,1,t)})),ws=Pn((function(e,t,r){return Xr(e,oA(t)||0,r)}));function Bs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ee(i);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(Bs.Cache||Rr),r}function Qs(e){if("function"!=typeof e)throw new Ee(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Bs.Cache=Rr;var vs=ai((function(e,t){var r=(t=1==t.length&&Ns(t[0])?ht(t[0],kt(Vi())):ht(on(t,1),kt(Vi()))).length;return Pn((function(n){for(var i=-1,o=sr(n.length,r);++i<o;)n[i]=t[i].call(this,n[i]);return it(e,this,n)}))})),Ds=Pn((function(e,t){return Ui(e,32,void 0,t,Ot(t,Wi(Ds)))})),bs=Pn((function(e,t){return Ui(e,64,void 0,t,Ot(t,Wi(bs)))})),Ss=Gi((function(e,t){return Ui(e,256,void 0,void 0,void 0,t)}));function ks(e,t){return e===t||e!=e&&t!=t}var xs=Ri(fn),Fs=Ri((function(e,t){return e>=t})),Ms=In(function(){return arguments}())?In:function(e){return Gs(e)&&Qe.call(e,"callee")&&!ze.call(e,"callee")},Ns=n.isArray,Rs=Ze?kt(Ze):function(e){return Gs(e)&&gn(e)==w};function Ks(e){return null!=e&&js(e.length)&&!_s(e)}function Ls(e){return Gs(e)&&Ks(e)}var Ts=tr||oa,Ps=$e?kt($e):function(e){return Gs(e)&&gn(e)==u};function Us(e){if(!Gs(e))return!1;var t=gn(e);return t==l||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qs(e)}function _s(e){if(!Ys(e))return!1;var t=gn(e);return t==h||t==g||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Os(e){return"number"==typeof e&&e==nA(e)}function js(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ys(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gs(e){return null!=e&&"object"==typeof e}var Js=et?kt(et):function(e){return Gs(e)&&ro(e)==f};function Hs(e){return"number"==typeof e||Gs(e)&&gn(e)==p}function qs(e){if(!Gs(e)||gn(e)!=d)return!1;var t=Je(e);if(null===t)return!0;var r=Qe.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&Be.call(r)==Se}var zs=tt?kt(tt):function(e){return Gs(e)&&gn(e)==C};var Ws=rt?kt(rt):function(e){return Gs(e)&&ro(e)==E};function Vs(e){return"string"==typeof e||!Ns(e)&&Gs(e)&&gn(e)==I}function Xs(e){return"symbol"==typeof e||Gs(e)&&gn(e)==m}var Zs=nt?kt(nt):function(e){return Gs(e)&&js(e.length)&&!!Ue[gn(e)]};var $s=Ri(Dn),eA=Ri((function(e,t){return e<=t}));function tA(e){if(!e)return[];if(Ks(e))return Vs(e)?Jt(e):Ci(e);if(Ct&&e[Ct])return function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[Ct]());var t=ro(e);return(t==f?Ut:t==E?jt:kA)(e)}function rA(e){return e?(e=oA(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function nA(e){var t=rA(e),r=t%1;return t==t?r?t-r:t:0}function iA(e){return e?zr(nA(e),0,4294967295):0}function oA(e){if("number"==typeof e)return e;if(Xs(e))return NaN;if(Ys(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ys(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(q,"");var r=ie.test(e);return r||se.test(e)?Ye(e.slice(2),r?2:8):ne.test(e)?NaN:+e}function sA(e){return Ei(e,yA(e))}function AA(e){return null==e?"":Xn(e)}var aA=mi((function(e,t){if(lo(t)||Ks(t))Ei(t,mA(t),e);else for(var r in t)Qe.call(t,r)&&jr(e,r,t[r])})),cA=mi((function(e,t){Ei(t,yA(t),e)})),uA=mi((function(e,t,r,n){Ei(t,yA(t),e,n)})),lA=mi((function(e,t,r,n){Ei(t,mA(t),e,n)})),hA=Gi(qr);var gA=Pn((function(e,t){e=pe(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&Ao(t[0],t[1],i)&&(n=1);++r<n;)for(var o=t[r],s=yA(o),A=-1,a=s.length;++A<a;){var c=s[A],u=e[c];(void 0===u||ks(u,ye[c])&&!Qe.call(e,c))&&(e[c]=o[c])}return e})),fA=Pn((function(e){return e.push(void 0,Oi),it(BA,void 0,e)}));function pA(e,t,r){var n=null==e?void 0:ln(e,t);return void 0===n?r:n}function dA(e,t){return null!=e&&no(e,t,dn)}var CA=ki((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=be.call(t)),e[t]=r}),YA(HA)),EA=ki((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=be.call(t)),Qe.call(e,t)?e[t].push(r):e[t]=[r]}),Vi),IA=Pn(En);function mA(e){return Ks(e)?Tr(e):Qn(e)}function yA(e){return Ks(e)?Tr(e,!0):vn(e)}var wA=mi((function(e,t,r){xn(e,t,r)})),BA=mi((function(e,t,r,n){xn(e,t,r,n)})),QA=Gi((function(e,t){var r={};if(null==e)return r;var n=!1;t=ht(t,(function(t){return t=Ai(t,e),n||(n=t.length>1),t})),Ei(e,Hi(e),r),n&&(r=Wr(r,7,ji));for(var i=t.length;i--;)$n(r,t[i]);return r}));var vA=Gi((function(e,t){return null==e?{}:function(e,t){return Nn(e,t,(function(t,r){return dA(e,r)}))}(e,t)}));function DA(e,t){if(null==e)return{};var r=ht(Hi(e),(function(e){return[e]}));return t=Vi(t),Nn(e,r,(function(e,r){return t(e,r[0])}))}var bA=Pi(mA),SA=Pi(yA);function kA(e){return null==e?[]:xt(e,mA(e))}var xA=Qi((function(e,t,r){return t=t.toLowerCase(),e+(r?FA(t):t)}));function FA(e){return UA(AA(e).toLowerCase())}function MA(e){return(e=AA(e))&&e.replace(ae,Kt).replace(Me,"")}var NA=Qi((function(e,t,r){return e+(r?"-":"")+t.toLowerCase()})),RA=Qi((function(e,t,r){return e+(r?" ":"")+t.toLowerCase()})),KA=Bi("toLowerCase");var LA=Qi((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));var TA=Qi((function(e,t,r){return e+(r?" ":"")+UA(t)}));var PA=Qi((function(e,t,r){return e+(r?" ":"")+t.toUpperCase()})),UA=Bi("toUpperCase");function _A(e,t,r){return e=AA(e),void 0===(t=r?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Re)||[]}(e):function(e){return e.match($)||[]}(e):e.match(t)||[]}var OA=Pn((function(e,t){try{return it(e,void 0,t)}catch(e){return Us(e)?e:new he(e)}})),jA=Gi((function(e,t){return st(t,(function(t){t=Do(t),Hr(e,t,Es(e[t],e))})),e}));function YA(e){return function(){return e}}var GA=bi(),JA=bi(!0);function HA(e){return e}function qA(e){return Bn("function"==typeof e?e:Wr(e,1))}var zA=Pn((function(e,t){return function(r){return En(r,e,t)}})),WA=Pn((function(e,t){return function(r){return En(e,r,t)}}));function VA(e,t,r){var n=mA(t),i=un(t,n);null!=r||Ys(t)&&(i.length||!n.length)||(r=t,t=e,e=this,i=un(t,mA(t)));var o=!(Ys(r)&&"chain"in r&&!r.chain),s=_s(e);return st(i,(function(r){var n=t[r];e[r]=n,s&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__),i=r.__actions__=Ci(this.__actions__);return i.push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,gt([this.value()],arguments))})})),e}function XA(){}var ZA=Fi(ht),$A=Fi(at),ea=Fi(dt);function ta(e){return ao(e)?Qt(Do(e)):function(e){return function(t){return ln(t,e)}}(e)}var ra=Ni(),na=Ni(!0);function ia(){return[]}function oa(){return!1}var sa=xi((function(e,t){return e+t}),0),Aa=Li("ceil"),aa=xi((function(e,t){return e/t}),1),ca=Li("floor");var ua,la=xi((function(e,t){return e*t}),1),ha=Li("round"),ga=xi((function(e,t){return e-t}),0);return br.after=function(e,t){if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){if(--e<1)return t.apply(this,arguments)}},br.ary=ds,br.assign=aA,br.assignIn=cA,br.assignInWith=uA,br.assignWith=lA,br.at=hA,br.before=Cs,br.bind=Es,br.bindAll=jA,br.bindKey=Is,br.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ns(e)?e:[e]},br.chain=ts,br.chunk=function(e,t,r){t=(r?Ao(e,t,r):void 0===t)?1:or(nA(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,s=0,A=n(Zt(i/t));o<i;)A[s++]=Jn(e,o,o+=t);return A},br.compact=function(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var o=e[t];o&&(i[n++]=o)}return i},br.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),r=arguments[0],i=e;i--;)t[i-1]=arguments[i];return gt(Ns(r)?Ci(r):[r],on(t,1))},br.cond=function(e){var t=null==e?0:e.length,r=Vi();return e=t?ht(e,(function(e){if("function"!=typeof e[1])throw new Ee(i);return[r(e[0]),e[1]]})):[],Pn((function(r){for(var n=-1;++n<t;){var i=e[n];if(it(i[0],this,r))return it(i[1],this,r)}}))},br.conforms=function(e){return function(e){var t=mA(e);return function(r){return Vr(r,e,t)}}(Wr(e,1))},br.constant=YA,br.countBy=is,br.create=function(e,t){var r=Sr(e);return null==t?r:Jr(r,t)},br.curry=function e(t,r,n){var i=Ui(t,8,void 0,void 0,void 0,void 0,void 0,r=n?void 0:r);return i.placeholder=e.placeholder,i},br.curryRight=function e(t,r,n){var i=Ui(t,16,void 0,void 0,void 0,void 0,void 0,r=n?void 0:r);return i.placeholder=e.placeholder,i},br.debounce=ms,br.defaults=gA,br.defaultsDeep=fA,br.defer=ys,br.delay=ws,br.difference=ko,br.differenceBy=xo,br.differenceWith=Fo,br.drop=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,(t=r||void 0===t?1:nA(t))<0?0:t,n):[]},br.dropRight=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,0,(t=n-(t=r||void 0===t?1:nA(t)))<0?0:t):[]},br.dropRightWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!0,!0):[]},br.dropWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!0):[]},br.fill=function(e,t,r,n){var i=null==e?0:e.length;return i?(r&&"number"!=typeof r&&Ao(e,t,r)&&(r=0,n=i),function(e,t,r,n){var i=e.length;for((r=nA(r))<0&&(r=-r>i?0:i+r),(n=void 0===n||n>i?i:nA(n))<0&&(n+=i),n=r>n?0:iA(n);r<n;)e[r++]=t;return e}(e,t,r,n)):[]},br.filter=function(e,t){return(Ns(e)?ct:nn)(e,Vi(t,3))},br.flatMap=function(e,t){return on(hs(e,t),1)},br.flatMapDeep=function(e,t){return on(hs(e,t),1/0)},br.flatMapDepth=function(e,t,r){return r=void 0===r?1:nA(r),on(hs(e,t),r)},br.flatten=Ro,br.flattenDeep=function(e){return(null==e?0:e.length)?on(e,1/0):[]},br.flattenDepth=function(e,t){return(null==e?0:e.length)?on(e,t=void 0===t?1:nA(t)):[]},br.flip=function(e){return Ui(e,512)},br.flow=GA,br.flowRight=JA,br.fromPairs=function(e){for(var t=-1,r=null==e?0:e.length,n={};++t<r;){var i=e[t];n[i[0]]=i[1]}return n},br.functions=function(e){return null==e?[]:un(e,mA(e))},br.functionsIn=function(e){return null==e?[]:un(e,yA(e))},br.groupBy=cs,br.initial=function(e){return(null==e?0:e.length)?Jn(e,0,-1):[]},br.intersection=Lo,br.intersectionBy=To,br.intersectionWith=Po,br.invert=CA,br.invertBy=EA,br.invokeMap=us,br.iteratee=qA,br.keyBy=ls,br.keys=mA,br.keysIn=yA,br.map=hs,br.mapKeys=function(e,t){var r={};return t=Vi(t,3),an(e,(function(e,n,i){Hr(r,t(e,n,i),e)})),r},br.mapValues=function(e,t){var r={};return t=Vi(t,3),an(e,(function(e,n,i){Hr(r,n,t(e,n,i))})),r},br.matches=function(e){return Sn(Wr(e,1))},br.matchesProperty=function(e,t){return kn(e,Wr(t,1))},br.memoize=Bs,br.merge=wA,br.mergeWith=BA,br.method=zA,br.methodOf=WA,br.mixin=VA,br.negate=Qs,br.nthArg=function(e){return e=nA(e),Pn((function(t){return Fn(t,e)}))},br.omit=QA,br.omitBy=function(e,t){return DA(e,Qs(Vi(t)))},br.once=function(e){return Cs(2,e)},br.orderBy=function(e,t,r,n){return null==e?[]:(Ns(t)||(t=null==t?[]:[t]),Ns(r=n?void 0:r)||(r=null==r?[]:[r]),Mn(e,t,r))},br.over=ZA,br.overArgs=vs,br.overEvery=$A,br.overSome=ea,br.partial=Ds,br.partialRight=bs,br.partition=gs,br.pick=vA,br.pickBy=DA,br.property=ta,br.propertyOf=function(e){return function(t){return null==e?void 0:ln(e,t)}},br.pull=_o,br.pullAll=Oo,br.pullAllBy=function(e,t,r){return e&&e.length&&t&&t.length?Rn(e,t,Vi(r,2)):e},br.pullAllWith=function(e,t,r){return e&&e.length&&t&&t.length?Rn(e,t,void 0,r):e},br.pullAt=jo,br.range=ra,br.rangeRight=na,br.rearg=Ss,br.reject=function(e,t){return(Ns(e)?ct:nn)(e,Qs(Vi(t,3)))},br.remove=function(e,t){var r=[];if(!e||!e.length)return r;var n=-1,i=[],o=e.length;for(t=Vi(t,3);++n<o;){var s=e[n];t(s,n,e)&&(r.push(s),i.push(n))}return Kn(e,i),r},br.rest=function(e,t){if("function"!=typeof e)throw new Ee(i);return Pn(e,t=void 0===t?t:nA(t))},br.reverse=Yo,br.sampleSize=function(e,t,r){return t=(r?Ao(e,t,r):void 0===t)?1:nA(t),(Ns(e)?Ur:_n)(e,t)},br.set=function(e,t,r){return null==e?e:On(e,t,r)},br.setWith=function(e,t,r,n){return n="function"==typeof n?n:void 0,null==e?e:On(e,t,r,n)},br.shuffle=function(e){return(Ns(e)?_r:Gn)(e)},br.slice=function(e,t,r){var n=null==e?0:e.length;return n?(r&&"number"!=typeof r&&Ao(e,t,r)?(t=0,r=n):(t=null==t?0:nA(t),r=void 0===r?n:nA(r)),Jn(e,t,r)):[]},br.sortBy=fs,br.sortedUniq=function(e){return e&&e.length?Wn(e):[]},br.sortedUniqBy=function(e,t){return e&&e.length?Wn(e,Vi(t,2)):[]},br.split=function(e,t,r){return r&&"number"!=typeof r&&Ao(e,t,r)&&(t=r=void 0),(r=void 0===r?4294967295:r>>>0)?(e=AA(e))&&("string"==typeof t||null!=t&&!zs(t))&&!(t=Xn(t))&&Pt(e)?ci(Jt(e),0,r):e.split(t,r):[]},br.spread=function(e,t){if("function"!=typeof e)throw new Ee(i);return t=null==t?0:or(nA(t),0),Pn((function(r){var n=r[t],i=ci(r,0,t);return n&&gt(i,n),it(e,this,i)}))},br.tail=function(e){var t=null==e?0:e.length;return t?Jn(e,1,t):[]},br.take=function(e,t,r){return e&&e.length?Jn(e,0,(t=r||void 0===t?1:nA(t))<0?0:t):[]},br.takeRight=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,(t=n-(t=r||void 0===t?1:nA(t)))<0?0:t,n):[]},br.takeRightWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!1,!0):[]},br.takeWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3)):[]},br.tap=function(e,t){return t(e),e},br.throttle=function(e,t,r){var n=!0,o=!0;if("function"!=typeof e)throw new Ee(i);return Ys(r)&&(n="leading"in r?!!r.leading:n,o="trailing"in r?!!r.trailing:o),ms(e,t,{leading:n,maxWait:t,trailing:o})},br.thru=rs,br.toArray=tA,br.toPairs=bA,br.toPairsIn=SA,br.toPath=function(e){return Ns(e)?ht(e,Do):Xs(e)?[e]:Ci(vo(AA(e)))},br.toPlainObject=sA,br.transform=function(e,t,r){var n=Ns(e),i=n||Ts(e)||Zs(e);if(t=Vi(t,4),null==r){var o=e&&e.constructor;r=i?n?new o:[]:Ys(e)&&_s(o)?Sr(Je(e)):{}}return(i?st:an)(e,(function(e,n,i){return t(r,e,n,i)})),r},br.unary=function(e){return ds(e,1)},br.union=Go,br.unionBy=Jo,br.unionWith=Ho,br.uniq=function(e){return e&&e.length?Zn(e):[]},br.uniqBy=function(e,t){return e&&e.length?Zn(e,Vi(t,2)):[]},br.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zn(e,void 0,t):[]},br.unset=function(e,t){return null==e||$n(e,t)},br.unzip=qo,br.unzipWith=zo,br.update=function(e,t,r){return null==e?e:ei(e,t,si(r))},br.updateWith=function(e,t,r,n){return n="function"==typeof n?n:void 0,null==e?e:ei(e,t,si(r),n)},br.values=kA,br.valuesIn=function(e){return null==e?[]:xt(e,yA(e))},br.without=Wo,br.words=_A,br.wrap=function(e,t){return Ds(si(t),e)},br.xor=Vo,br.xorBy=Xo,br.xorWith=Zo,br.zip=$o,br.zipObject=function(e,t){return ii(e||[],t||[],jr)},br.zipObjectDeep=function(e,t){return ii(e||[],t||[],On)},br.zipWith=es,br.entries=bA,br.entriesIn=SA,br.extend=cA,br.extendWith=uA,VA(br,br),br.add=sa,br.attempt=OA,br.camelCase=xA,br.capitalize=FA,br.ceil=Aa,br.clamp=function(e,t,r){return void 0===r&&(r=t,t=void 0),void 0!==r&&(r=(r=oA(r))==r?r:0),void 0!==t&&(t=(t=oA(t))==t?t:0),zr(oA(e),t,r)},br.clone=function(e){return Wr(e,4)},br.cloneDeep=function(e){return Wr(e,5)},br.cloneDeepWith=function(e,t){return Wr(e,5,t="function"==typeof t?t:void 0)},br.cloneWith=function(e,t){return Wr(e,4,t="function"==typeof t?t:void 0)},br.conformsTo=function(e,t){return null==t||Vr(e,t,mA(t))},br.deburr=MA,br.defaultTo=function(e,t){return null==e||e!=e?t:e},br.divide=aa,br.endsWith=function(e,t,r){e=AA(e),t=Xn(t);var n=e.length,i=r=void 0===r?n:zr(nA(r),0,n);return(r-=t.length)>=0&&e.slice(r,i)==t},br.eq=ks,br.escape=function(e){return(e=AA(e))&&P.test(e)?e.replace(L,Lt):e},br.escapeRegExp=function(e){return(e=AA(e))&&H.test(e)?e.replace(J,"\\$&"):e},br.every=function(e,t,r){var n=Ns(e)?at:tn;return r&&Ao(e,t,r)&&(t=void 0),n(e,Vi(t,3))},br.find=os,br.findIndex=Mo,br.findKey=function(e,t){return Et(e,Vi(t,3),an)},br.findLast=ss,br.findLastIndex=No,br.findLastKey=function(e,t){return Et(e,Vi(t,3),cn)},br.floor=ca,br.forEach=As,br.forEachRight=as,br.forIn=function(e,t){return null==e?e:sn(e,Vi(t,3),yA)},br.forInRight=function(e,t){return null==e?e:An(e,Vi(t,3),yA)},br.forOwn=function(e,t){return e&&an(e,Vi(t,3))},br.forOwnRight=function(e,t){return e&&cn(e,Vi(t,3))},br.get=pA,br.gt=xs,br.gte=Fs,br.has=function(e,t){return null!=e&&no(e,t,pn)},br.hasIn=dA,br.head=Ko,br.identity=HA,br.includes=function(e,t,r,n){e=Ks(e)?e:kA(e),r=r&&!n?nA(r):0;var i=e.length;return r<0&&(r=or(i+r,0)),Vs(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&mt(e,t,r)>-1},br.indexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:nA(r);return i<0&&(i=or(n+i,0)),mt(e,t,i)},br.inRange=function(e,t,r){return t=rA(t),void 0===r?(r=t,t=0):r=rA(r),function(e,t,r){return e>=sr(t,r)&&e<or(t,r)}(e=oA(e),t,r)},br.invoke=IA,br.isArguments=Ms,br.isArray=Ns,br.isArrayBuffer=Rs,br.isArrayLike=Ks,br.isArrayLikeObject=Ls,br.isBoolean=function(e){return!0===e||!1===e||Gs(e)&&gn(e)==c},br.isBuffer=Ts,br.isDate=Ps,br.isElement=function(e){return Gs(e)&&1===e.nodeType&&!qs(e)},br.isEmpty=function(e){if(null==e)return!0;if(Ks(e)&&(Ns(e)||"string"==typeof e||"function"==typeof e.splice||Ts(e)||Zs(e)||Ms(e)))return!e.length;var t=ro(e);if(t==f||t==E)return!e.size;if(lo(e))return!Qn(e).length;for(var r in e)if(Qe.call(e,r))return!1;return!0},br.isEqual=function(e,t){return mn(e,t)},br.isEqualWith=function(e,t,r){var n=(r="function"==typeof r?r:void 0)?r(e,t):void 0;return void 0===n?mn(e,t,void 0,r):!!n},br.isError=Us,br.isFinite=function(e){return"number"==typeof e&&rr(e)},br.isFunction=_s,br.isInteger=Os,br.isLength=js,br.isMap=Js,br.isMatch=function(e,t){return e===t||yn(e,t,Zi(t))},br.isMatchWith=function(e,t,r){return r="function"==typeof r?r:void 0,yn(e,t,Zi(t),r)},br.isNaN=function(e){return Hs(e)&&e!=+e},br.isNative=function(e){if(uo(e))throw new he("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return wn(e)},br.isNil=function(e){return null==e},br.isNull=function(e){return null===e},br.isNumber=Hs,br.isObject=Ys,br.isObjectLike=Gs,br.isPlainObject=qs,br.isRegExp=zs,br.isSafeInteger=function(e){return Os(e)&&e>=-9007199254740991&&e<=9007199254740991},br.isSet=Ws,br.isString=Vs,br.isSymbol=Xs,br.isTypedArray=Zs,br.isUndefined=function(e){return void 0===e},br.isWeakMap=function(e){return Gs(e)&&ro(e)==y},br.isWeakSet=function(e){return Gs(e)&&"[object WeakSet]"==gn(e)},br.join=function(e,t){return null==e?"":nr.call(e,t)},br.kebabCase=NA,br.last=Uo,br.lastIndexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=n;return void 0!==r&&(i=(i=nA(r))<0?or(n+i,0):sr(i,n-1)),t==t?function(e,t,r){for(var n=r+1;n--;)if(e[n]===t)return n;return n}(e,t,i):It(e,wt,i,!0)},br.lowerCase=RA,br.lowerFirst=KA,br.lt=$s,br.lte=eA,br.max=function(e){return e&&e.length?rn(e,HA,fn):void 0},br.maxBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),fn):void 0},br.mean=function(e){return Bt(e,HA)},br.meanBy=function(e,t){return Bt(e,Vi(t,2))},br.min=function(e){return e&&e.length?rn(e,HA,Dn):void 0},br.minBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),Dn):void 0},br.stubArray=ia,br.stubFalse=oa,br.stubObject=function(){return{}},br.stubString=function(){return""},br.stubTrue=function(){return!0},br.multiply=la,br.nth=function(e,t){return e&&e.length?Fn(e,nA(t)):void 0},br.noConflict=function(){return He._===this&&(He._=ke),this},br.noop=XA,br.now=ps,br.pad=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;if(!t||n>=t)return e;var i=(t-n)/2;return Mi($t(i),r)+e+Mi(Zt(i),r)},br.padEnd=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;return t&&n<t?e+Mi(t-n,r):e},br.padStart=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;return t&&n<t?Mi(t-n,r)+e:e},br.parseInt=function(e,t,r){return r||null==t?t=0:t&&(t=+t),ar(AA(e).replace(z,""),t||0)},br.random=function(e,t,r){if(r&&"boolean"!=typeof r&&Ao(e,t,r)&&(t=r=void 0),void 0===r&&("boolean"==typeof t?(r=t,t=void 0):"boolean"==typeof e&&(r=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=rA(e),void 0===t?(t=e,e=0):t=rA(t)),e>t){var n=e;e=t,t=n}if(r||e%1||t%1){var i=cr();return sr(e+i*(t-e+je("1e-"+((i+"").length-1))),t)}return Ln(e,t)},br.reduce=function(e,t,r){var n=Ns(e)?ft:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,$r)},br.reduceRight=function(e,t,r){var n=Ns(e)?pt:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,en)},br.repeat=function(e,t,r){return t=(r?Ao(e,t,r):void 0===t)?1:nA(t),Tn(AA(e),t)},br.replace=function(){var e=arguments,t=AA(e[0]);return e.length<3?t:t.replace(e[1],e[2])},br.result=function(e,t,r){var n=-1,i=(t=Ai(t,e)).length;for(i||(i=1,e=void 0);++n<i;){var o=null==e?void 0:e[Do(t[n])];void 0===o&&(n=i,o=r),e=_s(o)?o.call(e):o}return e},br.round=ha,br.runInContext=e,br.sample=function(e){return(Ns(e)?Pr:Un)(e)},br.size=function(e){if(null==e)return 0;if(Ks(e))return Vs(e)?Gt(e):e.length;var t=ro(e);return t==f||t==E?e.size:Qn(e).length},br.snakeCase=LA,br.some=function(e,t,r){var n=Ns(e)?dt:Hn;return r&&Ao(e,t,r)&&(t=void 0),n(e,Vi(t,3))},br.sortedIndex=function(e,t){return qn(e,t)},br.sortedIndexBy=function(e,t,r){return zn(e,t,Vi(r,2))},br.sortedIndexOf=function(e,t){var r=null==e?0:e.length;if(r){var n=qn(e,t);if(n<r&&ks(e[n],t))return n}return-1},br.sortedLastIndex=function(e,t){return qn(e,t,!0)},br.sortedLastIndexBy=function(e,t,r){return zn(e,t,Vi(r,2),!0)},br.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var r=qn(e,t,!0)-1;if(ks(e[r],t))return r}return-1},br.startCase=TA,br.startsWith=function(e,t,r){return e=AA(e),r=null==r?0:zr(nA(r),0,e.length),t=Xn(t),e.slice(r,r+t.length)==t},br.subtract=ga,br.sum=function(e){return e&&e.length?bt(e,HA):0},br.sumBy=function(e,t){return e&&e.length?bt(e,Vi(t,2)):0},br.template=function(e,t,r){var n=br.templateSettings;r&&Ao(e,t,r)&&(t=void 0),e=AA(e),t=uA({},t,n,_i);var i,o,s=uA({},t.imports,n.imports,_i),A=mA(s),a=xt(s,A),c=0,u=t.interpolate||ce,l="__p += '",h=de((t.escape||ce).source+"|"+u.source+"|"+(u===O?te:ce).source+"|"+(t.evaluate||ce).source+"|$","g"),g="//# sourceURL="+(Qe.call(t,"sourceURL")?(t.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++Pe+"]")+"\n";e.replace(h,(function(t,r,n,s,A,a){return n||(n=s),l+=e.slice(c,a).replace(ue,Tt),r&&(i=!0,l+="' +\n__e("+r+") +\n'"),A&&(o=!0,l+="';\n"+A+";\n__p += '"),n&&(l+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),c=a+t.length,t})),l+="';\n";var f=Qe.call(t,"variable")&&t.variable;f||(l="with (obj) {\n"+l+"\n}\n"),l=(o?l.replace(M,""):l).replace(N,"$1").replace(R,"$1;"),l="function("+(f||"obj")+") {\n"+(f?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var p=OA((function(){return ge(A,g+"return "+l).apply(void 0,a)}));if(p.source=l,Us(p))throw p;return p},br.times=function(e,t){if((e=nA(e))<1||e>9007199254740991)return[];var r=4294967295,n=sr(e,4294967295);e-=4294967295;for(var i=St(n,t=Vi(t));++r<e;)t(r);return i},br.toFinite=rA,br.toInteger=nA,br.toLength=iA,br.toLower=function(e){return AA(e).toLowerCase()},br.toNumber=oA,br.toSafeInteger=function(e){return e?zr(nA(e),-9007199254740991,9007199254740991):0===e?e:0},br.toString=AA,br.toUpper=function(e){return AA(e).toUpperCase()},br.trim=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(q,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e),i=Jt(t);return ci(n,Mt(n,i),Nt(n,i)+1).join("")},br.trimEnd=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(W,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e);return ci(n,0,Nt(n,Jt(t))+1).join("")},br.trimStart=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(z,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e);return ci(n,Mt(n,Jt(t))).join("")},br.truncate=function(e,t){var r=30,n="...";if(Ys(t)){var i="separator"in t?t.separator:i;r="length"in t?nA(t.length):r,n="omission"in t?Xn(t.omission):n}var o=(e=AA(e)).length;if(Pt(e)){var s=Jt(e);o=s.length}if(r>=o)return e;var A=r-Gt(n);if(A<1)return n;var a=s?ci(s,0,A).join(""):e.slice(0,A);if(void 0===i)return a+n;if(s&&(A+=a.length-A),zs(i)){if(e.slice(A).search(i)){var c,u=a;for(i.global||(i=de(i.source,AA(re.exec(i))+"g")),i.lastIndex=0;c=i.exec(u);)var l=c.index;a=a.slice(0,void 0===l?A:l)}}else if(e.indexOf(Xn(i),A)!=A){var h=a.lastIndexOf(i);h>-1&&(a=a.slice(0,h))}return a+n},br.unescape=function(e){return(e=AA(e))&&T.test(e)?e.replace(K,Ht):e},br.uniqueId=function(e){var t=++ve;return AA(e)+t},br.upperCase=PA,br.upperFirst=UA,br.each=As,br.eachRight=as,br.first=Ko,VA(br,(ua={},an(br,(function(e,t){Qe.call(br.prototype,t)||(ua[t]=e)})),ua),{chain:!1}),br.VERSION="4.17.15",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){br[e].placeholder=br})),st(["drop","take"],(function(e,t){Fr.prototype[e]=function(r){r=void 0===r?1:or(nA(r),0);var n=this.__filtered__&&!t?new Fr(this):this.clone();return n.__filtered__?n.__takeCount__=sr(r,n.__takeCount__):n.__views__.push({size:sr(r,4294967295),type:e+(n.__dir__<0?"Right":"")}),n},Fr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var r=t+1,n=1==r||3==r;Fr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Vi(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}})),st(["head","last"],(function(e,t){var r="take"+(t?"Right":"");Fr.prototype[e]=function(){return this[r](1).value()[0]}})),st(["initial","tail"],(function(e,t){var r="drop"+(t?"":"Right");Fr.prototype[e]=function(){return this.__filtered__?new Fr(this):this[r](1)}})),Fr.prototype.compact=function(){return this.filter(HA)},Fr.prototype.find=function(e){return this.filter(e).head()},Fr.prototype.findLast=function(e){return this.reverse().find(e)},Fr.prototype.invokeMap=Pn((function(e,t){return"function"==typeof e?new Fr(this):this.map((function(r){return En(r,e,t)}))})),Fr.prototype.reject=function(e){return this.filter(Qs(Vi(e)))},Fr.prototype.slice=function(e,t){e=nA(e);var r=this;return r.__filtered__&&(e>0||t<0)?new Fr(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),void 0!==t&&(r=(t=nA(t))<0?r.dropRight(-t):r.take(t-e)),r)},Fr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Fr.prototype.toArray=function(){return this.take(4294967295)},an(Fr.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),i=br[n?"take"+("last"==t?"Right":""):t],o=n||/^find/.test(t);i&&(br.prototype[t]=function(){var t=this.__wrapped__,s=n?[1]:arguments,A=t instanceof Fr,a=s[0],c=A||Ns(t),u=function(e){var t=i.apply(br,gt([e],s));return n&&l?t[0]:t};c&&r&&"function"==typeof a&&1!=a.length&&(A=c=!1);var l=this.__chain__,h=!!this.__actions__.length,g=o&&!l,f=A&&!h;if(!o&&c){t=f?t:new Fr(this);var p=e.apply(t,s);return p.__actions__.push({func:rs,args:[u],thisArg:void 0}),new xr(p,l)}return g&&f?e.apply(this,s):(p=this.thru(u),g?n?p.value()[0]:p.value():p)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ie[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);br.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return t.apply(Ns(i)?i:[],e)}return this[r]((function(r){return t.apply(Ns(r)?r:[],e)}))}})),an(Fr.prototype,(function(e,t){var r=br[t];if(r){var n=r.name+"";Qe.call(Er,n)||(Er[n]=[]),Er[n].push({name:t,func:r})}})),Er[Si(void 0,2).name]=[{name:"wrapper",func:void 0}],Fr.prototype.clone=function(){var e=new Fr(this.__wrapped__);return e.__actions__=Ci(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ci(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ci(this.__views__),e},Fr.prototype.reverse=function(){if(this.__filtered__){var e=new Fr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Fr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,r=Ns(e),n=t<0,i=r?e.length:0,o=function(e,t,r){var n=-1,i=r.length;for(;++n<i;){var o=r[n],s=o.size;switch(o.type){case"drop":e+=s;break;case"dropRight":t-=s;break;case"take":t=sr(t,e+s);break;case"takeRight":e=or(e,t-s)}}return{start:e,end:t}}(0,i,this.__views__),s=o.start,A=o.end,a=A-s,c=n?A:s-1,u=this.__iteratees__,l=u.length,h=0,g=sr(a,this.__takeCount__);if(!r||!n&&i==a&&g==a)return ri(e,this.__actions__);var f=[];e:for(;a--&&h<g;){for(var p=-1,d=e[c+=t];++p<l;){var C=u[p],E=C.iteratee,I=C.type,m=E(d);if(2==I)d=m;else if(!m){if(1==I)continue e;break e}}f[h++]=d}return f},br.prototype.at=ns,br.prototype.chain=function(){return ts(this)},br.prototype.commit=function(){return new xr(this.value(),this.__chain__)},br.prototype.next=function(){void 0===this.__values__&&(this.__values__=tA(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},br.prototype.plant=function(e){for(var t,r=this;r instanceof kr;){var n=So(r);n.__index__=0,n.__values__=void 0,t?i.__wrapped__=n:t=n;var i=n;r=r.__wrapped__}return i.__wrapped__=e,t},br.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Fr){var t=e;return this.__actions__.length&&(t=new Fr(this)),(t=t.reverse()).__actions__.push({func:rs,args:[Yo],thisArg:void 0}),new xr(t,this.__chain__)}return this.thru(Yo)},br.prototype.toJSON=br.prototype.valueOf=br.prototype.value=function(){return ri(this.__wrapped__,this.__actions__)},br.prototype.first=br.prototype.head,Ct&&(br.prototype[Ct]=function(){return this}),br}();He._=qt,void 0===(n=function(){return qt}.call(t,r,t,e))||(e.exports=n)}.call(this)},27869:(e,t,r)=>{var n=r(60783),i=r(42208),o=r(26309),s=r(82664);e.exports=function(e,t){return(s(e)?n:o)(e,i(t,3))}},5253:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,t(e,i,o),e)})),r}},89612:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,i,t(e,i,o))})),r}},74499:(e,t,r)=>{var n=r(75009);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(i.Cache||n),r}i.Cache=n,e.exports=i},34791:e=>{e.exports=function(){}},82740:(e,t,r)=>{var n=r(60783),i=r(41076),o=r(81622),s=r(56725),A=r(75182),a=r(37306),c=r(87298),u=r(64420),l=c((function(e,t){var r={};if(null==e)return r;var c=!1;t=n(t,(function(t){return t=s(t,e),c||(c=t.length>1),t})),A(e,u(e),r),c&&(r=i(r,7,a));for(var l=t.length;l--;)o(r,t[l]);return r}));e.exports=l},7430:(e,t,r)=>{var n=r(35400),i=r(43018),o=r(70474),s=r(49874);e.exports=function(e){return o(e)?n(s(e)):i(e)}},81534:(e,t,r)=>{var n=r(10624);e.exports=function(e,t,r){return null==e?e:n(e,t,r)}},36494:(e,t,r)=>{var n=r(30369)((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));e.exports=n},62162:e=>{e.exports=function(){return[]}},88988:e=>{e.exports=function(){return!1}},2614:(e,t,r)=>{var n=r(96815),i=r(61977);e.exports=function(e){return e&&e.length?n(e,i):0}},78700:(e,t,r)=>{var n=r(69976),i=r(87229),o=r(79435),s=r(41929),A=r(221),a=r(82262),c=r(7877),u=r(7442),l=r(30475),h=r(24448),g=n?n.iterator:void 0;e.exports=function(e){if(!e)return[];if(s(e))return A(e)?l(e):i(e);if(g&&e[g])return a(e[g]());var t=o(e);return("[object Map]"==t?c:"[object Set]"==t?u:h)(e)}},67770:(e,t,r)=>{var n=r(90257);e.exports=function(e){return e?(e=n(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},864:(e,t,r)=>{var n=r(67770);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},90257:(e,t,r)=>{var n=r(46778),i=r(65558),o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,A=/^0b[01]+$/i,a=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=A.test(e);return r||a.test(e)?c(e.slice(2),r?2:8):s.test(e)?NaN:+e}},33580:(e,t,r)=>{var n=r(35);e.exports=function(e){return null==e?"":n(e)}},44852:(e,t,r)=>{var n=r(42150);e.exports=function(e){return e&&e.length?n(e):[]}},72609:(e,t,r)=>{var n=r(56989)("toUpperCase");e.exports=n},24448:(e,t,r)=>{var n=r(18290),i=r(42185);e.exports=function(e){return null==e?[]:n(e,i(e))}},97684:(e,t,r)=>{var n=r(11852),i=r(60466),o=r(33580),s=r(89887);e.exports=function(e,t,r){return e=o(e),void 0===(t=r?void 0:t)?i(e)?s(e):n(e):e.match(t)||[]}},58708:(e,t,r)=>{var n,i=r(73789),o=r(5817),s=function(e,t){return t.description=e,t},A=function(e,t,r){return s(e,(function(e){return e instanceof t[r]}))};(n={}).isNumTerm=s("a NumTerm (non-zero integer)",(function(e){return e===(0|e)&&0!==e})),n.isNameTerm=s("a NameTerm (string)",(function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)})),n.isTerm=s("a Term (appropriate string or number)",(function(e){return n.isNumTerm(e)||n.isNameTerm(e)})),n.isWholeNumber=s("a whole number (integer >= 0)",(function(e){return e===(0|e)&&e>=0})),n.isFormula=A("a Formula",n,"Formula"),n.isClause=A("a Clause",n,"Clause"),n.isBits=A("a Bits",n,"Bits"),n._isInteger=s("an integer",(function(e){return e===(0|e)})),n._isFunction=s("a Function",(function(e){return"function"==typeof e})),n._isString=s("a String",(function(e){return"string"==typeof e})),n._isArrayWhere=function(e){var t="an array";return e.description&&(t+=" of "+e.description),s(t,(function(t){if(o.isArray(t)){for(var r=0;r<t.length;r++)if(!e(t[r]))return!1;return!0}return!1}))},n._isFormulaOrTerm=s("a Formula or Term",(function(e){return n.isFormula(e)||n.isTerm(e)})),n._isFormulaOrTermOrBits=s("a Formula, Term, or Bits",(function(e){return n.isFormula(e)||n.isBits(e)||n.isTerm(e)})),n._MiniSat=i;var a=n._isInteger,c=n._isFunction,u=n._isString,l=n._isArrayWhere,h=n._isFormulaOrTerm,g=n._isFormulaOrTermOrBits;n._assert=function(e,t,r){if(!t(e)){var n="string"==typeof e?JSON.stringify(e):e;throw new Error(n+" is not "+(t.description||r))}};var f=function(e,t,r){if(e!==t)throw new Error("Expected "+t+" args in "+r+", got "+e)},p=n._assert;n._assertIfEnabled=function(e,t,r){p&&p(e,t,r)},n.disablingAssertions=function(e){var t=p;try{return p=null,e()}finally{p=t}},n._disablingTypeChecks=n.disablingAssertions,n.not=function(e){return p&&p(e,h),e instanceof n.Formula?new n.NotFormula(e):"number"==typeof e?-e:"-"===e.charAt(0)?e.slice(1):"-"+e},n.NAME_FALSE="$F",n.NAME_TRUE="$T",n.NUM_FALSE=1,n.NUM_TRUE=2,n.TRUE=n.NAME_TRUE,n.FALSE=n.NAME_FALSE,n.Formula=function(){},n._defineFormula=function(e,t,r){p&&p(e,c),p&&p(t,u),e.prototype=new n.Formula,e.prototype.type=t,r&&o.extend(e.prototype,r)},n.Formula.prototype.generateClauses=function(e,t){throw new Error("Cannot generate this Formula; it must be expanded")},n.Formula._nextGuid=1,n.Formula.prototype._guid=null,n.Formula.prototype.guid=function(){return null===this._guid&&(this._guid=n.Formula._nextGuid++),this._guid},n.Clause=function(){var e=o.flatten(arguments);p&&p(e,l(n.isNumTerm)),this.terms=e},n.Clause.prototype.append=function(){return new n.Clause(this.terms.concat(o.flatten(arguments)))};var d=function(){this.varName=null,this.varNum=null,this.occursPositively=!1,this.occursNegatively=!1,this.isRequired=!1,this.isForbidden=!1};n.Termifier=function(e){this.solver=e},n.Termifier.prototype.clause=function(){var e=this,t=o.flatten(arguments);return p&&p(t,l(h)),new n.Clause(o.map(t,(function(t){return e.term(t)})))},n.Termifier.prototype.term=function(e){return this.solver._formulaToTerm(e)},n.Termifier.prototype.generate=function(e,t){return this.solver._generateFormula(e,t,this)},n.Solver=function(){this.clauses=[],this._num2name=[null],this._name2num={};var e=this.getVarNum(n.NAME_FALSE,!1,!0),t=this.getVarNum(n.NAME_TRUE,!1,!0);if(e!==n.NUM_FALSE||t!==n.NUM_TRUE)throw new Error("Assertion failure: $T and $F have wrong numeric value");this._F_used=!1,this._T_used=!1,this.clauses.push(new n.Clause(-n.NUM_FALSE)),this.clauses.push(new n.Clause(n.NUM_TRUE)),this._formulaInfo={},this._nextFormulaNumByType={},this._ungeneratedFormulas={},this._numClausesAddedToMiniSat=0,this._unsat=!1,this._minisat=new i,this._termifier=new n.Termifier(this)},n.Solver.prototype.getVarNum=function(e,t,r){var n=" "+e;if(o.has(this._name2num,n))return this._name2num[n];if(t)return 0;if("$"===e.charAt(0)&&!r)throw new Error("Only generated variable names can start with $");var i=this._num2name.length;return this._name2num[n]=i,this._num2name.push(e),i},n.Solver.prototype.getVarName=function(e){p&&p(e,a);var t=this._num2name;if(e<1||e>=t.length)throw new Error("Bad variable num: "+e);return t[e]},n.Solver.prototype.toNumTerm=function(e,t){if(p&&p(e,n.isTerm),"number"==typeof e)return e;for(var r=!1;"-"===e.charAt(0);)e=e.slice(1),r=!r;var i=this.getVarNum(e,t);return i?r?-i:i:0},n.Solver.prototype.toNameTerm=function(e){if(p&&p(e,n.isTerm),"string"==typeof e){for(;"--"===e.slice(0,2);)e=e.slice(2);return e}var t=!1;return e<0&&(t=!0,e=-e),e=this.getVarName(e),t&&(e="-"+e),e},n.Solver.prototype._addClause=function(e,t,r){p&&p(e,n.isClause);var i=null;t&&(i=t,p&&p(i,l(n.isNumTerm)));var o=!1,s=!1,A=e.terms.length;i&&(e=e.append(i));for(var a=0;a<e.terms.length;a++){var c=e.terms[a],u=c<0?-c:c;if(u===n.NUM_FALSE)o=!0;else if(u===n.NUM_TRUE)s=!0;else{if(u<1||u>=this._num2name.length)throw new Error("Bad variable number: "+u);a<A&&(r?r(c):this._useFormulaTerm(c))}}this._F_used=this._F_used||o,this._T_used=this._T_used||s,this.clauses.push(e)},n.Solver.prototype._useFormulaTerm=function(e,t){var r=this;p&&p(e,n.isNumTerm);var i=e<0?-e:e;if(o.has(r._ungeneratedFormulas,i)){var s,A=r._ungeneratedFormulas[i],a=r._getFormulaInfo(A),c=e>0,u=null;if(t?s=t:(u=[],s=function(e,t){u.push({clauses:e,extraTerms:t})}),c&&!a.occursPositively){a.occursPositively=!0;var l=r._generateFormula(!0,A);s(l,[-i])}else if(!c&&!a.occursNegatively){a.occursNegatively=!0;l=r._generateFormula(!1,A);s(l,[i])}if(a.occursPositively&&a.occursNegatively&&delete r._ungeneratedFormulas[i],u&&u.length)for(var h=function(e){r._useFormulaTerm(e,s)};u.length;){var g=u.pop();r._addClauses(g.clauses,g.extraTerms,h)}}},n.Solver.prototype._addClauses=function(e,t,r){p&&p(e,l(n.isClause));var i=this;o.each(e,(function(e){i._addClause(e,t,r)}))},n.Solver.prototype.require=function(){this._requireForbidImpl(!0,o.flatten(arguments))},n.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,o.flatten(arguments))},n.Solver.prototype._requireForbidImpl=function(e,t){var r=this;p&&p(t,l(h)),o.each(t,(function(t){if(t instanceof n.NotFormula)r._requireForbidImpl(!e,[t.operand]);else if(t instanceof n.Formula){var i=r._getFormulaInfo(t);if(null!==i.varNum){var o=e?1:-1;r._addClause(new n.Clause(o*i.varNum))}else r._addClauses(r._generateFormula(e,t));e?i.isRequired=!0:i.isForbidden=!0}else r._addClauses(r._generateFormula(e,t))}))},n.Solver.prototype._generateFormula=function(e,t,r){if(p&&p(t,h),t instanceof n.NotFormula)return this._generateFormula(!e,t.operand);if(t instanceof n.Formula){var i=this._getFormulaInfo(t);if(e&&i.isRequired||!e&&i.isForbidden)return[];if(e&&i.isForbidden||!e&&i.isRequired)return[new n.Clause];var s=t.generateClauses(e,r||this._termifier);return o.isArray(s)?s:[s]}var A=this.toNumTerm(t),a=e?1:-1;return A===a*n.NUM_TRUE||A===-a*n.NUM_FALSE?[]:A===a*n.NUM_FALSE||A===-a*n.NUM_TRUE?[new n.Clause]:[new n.Clause(a*A)]},n.Solver.prototype._clauseData=function(){var e=o.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},n.Solver.prototype._clauseStrings=function(){var e=this,t=e._clauseData();return o.map(t,(function(t){return o.map(t,(function(t){var r=e.toNameTerm(t);if(/\s/.test(r)){var n="";"-"===r.charAt(0)&&(n="-",r=r.slice(1)),r=n+'"'+r+'"'}return r})).join(" v ")}))},n.Solver.prototype._getFormulaInfo=function(e,t){var r=e.guid();if(!this._formulaInfo[r]){if(t)return null;this._formulaInfo[r]=new d}return this._formulaInfo[r]},n.Solver.prototype._formulaToTerm=function(e){if(o.isArray(e))return p&&p(e,l(h)),o.map(e,o.bind(this._formulaToTerm,this));if(p&&p(e,h),e instanceof n.NotFormula)return n.not(this._formulaToTerm(e.operand));if(e instanceof n.Formula){var t=this._getFormulaInfo(e);if(t.isRequired)return n.NUM_TRUE;if(t.isForbidden)return n.NUM_FALSE;if(null===t.varNum){var r=e.type;this._nextFormulaNumByType[r]||(this._nextFormulaNumByType[r]=1);var i=this._nextFormulaNumByType[r]++;t.varName="$"+e.type+i,t.varNum=this.getVarNum(t.varName,!1,!0),this._ungeneratedFormulas[t.varNum]=e}return t.varNum}return this.toNumTerm(e)},n.or=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.OrFormula(e)},n.OrFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.OrFormula,"or",{generateClauses:function(e,t){if(e)return t.clause(this.operands);var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!1,e))})),r}}),n.NotFormula=function(e){p&&p(e,h),this.operand=e},n._defineFormula(n.NotFormula,"not"),n.and=function(){var e=o.flatten(arguments);return 0===e.length?n.TRUE:1===e.length?(p&&p(e[0],h),e[0]):new n.AndFormula(e)},n.AndFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AndFormula,"and",{generateClauses:function(e,t){if(e){var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!0,e))})),r}return t.clause(o.map(this.operands,n.not))}});var C=function(e,t){for(var r=[],n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r};n.xor=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.XorFormula(e)},n.XorFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.XorFormula,"xor",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length>3)return t.generate(e,n.xor(o.map(C(this.operands,3),(function(e){return n.xor(e)}))));if(e){if(0===r.length)return t.clause();if(1===r.length)return t.clause(r[0]);if(2===r.length){var s=r[0],A=r[1];return[t.clause(s,A),t.clause(i(s),i(A))]}if(3===r.length){s=r[0],A=r[1];var a=r[2];return[t.clause(s,A,a),t.clause(s,i(A),i(a)),t.clause(i(s),A,i(a)),t.clause(i(s),i(A),a)]}}else{if(0===r.length)return[];if(1===r.length)return t.clause(i(r[0]));if(2===r.length){s=r[0],A=r[1];return[t.clause(s,i(A)),t.clause(i(s),A)]}if(3===r.length){s=r[0],A=r[1],a=r[2];return[t.clause(i(s),i(A),i(a)),t.clause(i(s),A,a),t.clause(s,i(A),a),t.clause(s,A,i(a))]}}}}),n.atMostOne=function(){var e=o.flatten(arguments);return e.length<=1?n.TRUE:new n.AtMostOneFormula(e)},n.AtMostOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AtMostOneFormula,"atMostOne",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length<=1)return[];if(2===r.length)return t.generate(e,n.not(n.and(r)));if(e&&3===r.length){for(var s=[],A=0;A<r.length;A++)for(var a=A+1;a<r.length;a++)s.push(t.clause(i(r[A]),i(r[a])));return s}if(e||3!==r.length){var c=C(r,3),u=o.map(c,(function(e){return n.or(e)}));c[c.length-1].length<2&&c.pop();var l=o.map(c,(function(e){return n.atMostOne(e)}));return t.generate(e,n.and(n.atMostOne(u),l))}var h=r[0],g=r[1],f=r[2];return[t.clause(h,g),t.clause(h,f),t.clause(g,f)]}}),n.implies=function(e,t){return p&&f(arguments.length,2,"Logic.implies"),new n.ImpliesFormula(e,t)},n.ImpliesFormula=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.implies"),this.A=e,this.B=t},n._defineFormula(n.ImpliesFormula,"implies",{generateClauses:function(e,t){return t.generate(e,n.or(n.not(this.A),this.B))}}),n.equiv=function(e,t){return p&&f(arguments.length,2,"Logic.equiv"),new n.EquivFormula(e,t)},n.EquivFormula=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.equiv"),this.A=e,this.B=t},n._defineFormula(n.EquivFormula,"equiv",{generateClauses:function(e,t){return t.generate(!e,n.xor(this.A,this.B))}}),n.exactlyOne=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.ExactlyOneFormula(e)},n.ExactlyOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.ExactlyOneFormula,"exactlyOne",{generateClauses:function(e,t){var r=this.operands;return r.length<3?t.generate(e,n.xor(r)):t.generate(e,n.and(n.atMostOne(r),n.or(r)))}}),n.Bits=function(e){p&&p(e,l(h)),this.bits=e},n.constantBits=function(e){p&&p(e,n.isWholeNumber);for(var t=[];e;)t.push(1&e?n.TRUE:n.FALSE),e>>>=1;return new n.Bits(t)},n.variableBits=function(e,t){p&&p(t,n.isWholeNumber);for(var r=[],i=0;i<t;i++)r.push(e+"$"+i);return new n.Bits(r)},n.lessThanOrEqual=function(e,t){return new n.LessThanOrEqualFormula(e,t)},n.LessThanOrEqualFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t};var E=function(e,t,r,i){var s=[],A=e.bits.slice(),a=t.bits.slice();if(i&&!t.bits.length)return r.clause();for(;A.length>a.length;){var c=A.pop();s.push(r.clause(n.not(c)))}for(var u=o.map(a,(function(e,t){return t<A.length?n.xor(A[t],e):e})),l=A.length-1;l>=0;l--)s.push(r.clause(u.slice(l+1),n.not(A[l]),a[l]));return i&&s.push.apply(s,r.generate(!0,n.or(u))),s};n._defineFormula(n.LessThanOrEqualFormula,"lte",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!1):E(this.bits2,this.bits1,t,!0)}}),n.lessThan=function(e,t){return new n.LessThanFormula(e,t)},n.LessThanFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t},n._defineFormula(n.LessThanFormula,"lt",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!0):E(this.bits2,this.bits1,t,!1)}}),n.greaterThan=function(e,t){return n.lessThan(t,e)},n.greaterThanOrEqual=function(e,t){return n.lessThanOrEqual(t,e)},n.equalBits=function(e,t){return new n.EqualBitsFormula(e,t)},n.EqualBitsFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Logic.equalBits"),this.bits1=e,this.bits2=t},n._defineFormula(n.EqualBitsFormula,"equalBits",{generateClauses:function(e,t){for(var r=this.bits1.bits,i=this.bits2.bits,o=Math.max(r.length,i.length),s=[],A=0;A<o;A++)A>=r.length?s.push(n.not(i[A])):A>=i.length?s.push(n.not(r[A])):s.push(n.equiv(r[A],i[A]));return t.generate(e,n.and(s))}}),n.HalfAdderSum=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderSum,"hsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b))}}),n.HalfAdderCarry=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderCarry,"hcarry",{generateClauses:function(e,t){return t.generate(e,n.and(this.a,this.b))}}),n.FullAdderSum=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderSum,"fsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b,this.c))}}),n.FullAdderCarry=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderCarry,"fcarry",{generateClauses:function(e,t){return t.generate(!e,n.atMostOne(this.a,this.b,this.c))}});var I=function(e){p&&p(e,l(l(h)));for(var t=o.map(e,o.clone),r=0,i=[];r<t.length;){var s=t[r];if(s.length)if(1===s.length)i.push(s[0]),r++;else if(2===s.length){var A=new n.HalfAdderSum(s[0],s[1]),a=new n.HalfAdderCarry(s[0],s[1]);s.length=0,s.push(A),m(t,r+1,a)}else{var c=s.pop(),u=s.pop(),g=s.pop();A=new n.FullAdderSum(g,u,c),a=new n.FullAdderCarry(g,u,c);s.push(A),m(t,r+1,a)}else i.push(n.FALSE),r++}return i},m=function(e,t,r){for(;t>=e.length;)e.push([]);e[t].push(r)},y=function(e,t){if(p&&p(e,l(h)),"number"==typeof t)p&&p(t,n.isWholeNumber);else if(p&&p(t,l(n.isWholeNumber)),e.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+e.length+" and "+t.length)};n.weightedSum=function(e,t){if(y(e,t),0===e.length)return new n.Bits([]);"number"==typeof t&&(t=o.map(e,(function(){return t})));var r=[];return o.each(e,(function(e,n){for(var i=t[n],o=0;i;)1&i&&m(r,o,e),i>>>=1,o++})),new n.Bits(I(r))},n.sum=function(){var e=o.flatten(arguments);p&&p(e,l(g));var t=[];return o.each(e,(function(e){e instanceof n.Bits?o.each(e.bits,(function(e,r){m(t,r,e)})):m(t,0,e)})),new n.Bits(I(t))},n.Solver.prototype.solve=function(e){if(void 0!==e&&!(e>=1))throw new Error("_assumpVar must be a variable number");if(this._unsat)return null;for(;this._numClausesAddedToMiniSat<this.clauses.length;){var t=this._numClausesAddedToMiniSat,r=this.clauses[t].terms;p&&p(r,l(n.isNumTerm));var i=this._minisat.addClause(r);if(this._numClausesAddedToMiniSat++,!i)return this._unsat=!0,null}return p&&p(this._num2name.length-1,n.isWholeNumber),this._minisat.ensureVar(this._num2name.length-1),(i=e?this._minisat.solveAssuming(e):this._minisat.solve())?new n.Solution(this,this._minisat.getSolution()):(e||(this._unsat=!0),null)},n.Solver.prototype.solveAssuming=function(e){p&&p(e,h);var t=new n.Assumption(e),r=this._formulaToTerm(t);if(!("number"==typeof r&&r>0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(r);var i=this.solve(r);return this._minisat.retireVar(r),i},n.Assumption=function(e){p&&p(e,h),this.formula=e},n._defineFormula(n.Assumption,"assump",{generateClauses:function(e,t){return e?t.clause(this.formula):t.clause(n.not(this.formula))}}),n.Solution=function(e,t){var r=this;r._solver=e,r._assignment=t,r._ungeneratedFormulas=o.clone(e._ungeneratedFormulas),r._formulaValueCache={},r._termifier=new n.Termifier(r._solver),r._termifier.term=function(e){return r.evaluate(e)?n.NUM_TRUE:n.NUM_FALSE},r._ignoreUnknownVariables=!1},n.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},n.Solution.prototype.getMap=function(){for(var e=this._solver,t=this._assignment,r={},n=1;n<t.length;n++){var i=e.getVarName(n);i&&"$"!==i.charAt(0)&&(r[i]=t[n])}return r},n.Solution.prototype.getTrueVars=function(){for(var e=this._solver,t=this._assignment,r=[],n=1;n<t.length;n++)if(t[n]){var i=e.getVarName(n);i&&"$"!==i.charAt(0)&&r.push(i)}return r.sort(),r},n.Solution.prototype.getFormula=function(){for(var e=this._solver,t=this._assignment,r=[],i=1;i<t.length;i++){var o=e.getVarName(i);o&&"$"!==o.charAt(0)&&r.push(t[i]?i:-i)}return n.and(r)},n.Solution.prototype.evaluate=function(e){var t=this;if(p&&p(e,g),e instanceof n.Bits){var r=0;return o.each(e.bits,(function(e,n){t.evaluate(e)&&(r+=1<<n)})),r}var i=t._solver,s=t._ignoreUnknownVariables,A=t._assignment,a=e;if(a instanceof n.NotFormula)return!t.evaluate(a.operand);if(a instanceof n.Formula){var c=t._formulaValueCache[a.guid()];if("boolean"==typeof c)return c;var u=i._getFormulaInfo(a,!0);if(u&&u.varNum&&u.varNum<A.length&&!o.has(t._ungeneratedFormulas,u.varNum))h=A[u.varNum];else var l=i._generateFormula(!0,a,t._termifier),h=o.all(l,(function(e){return o.any(e.terms,(function(e){return t.evaluate(e)}))}));return t._formulaValueCache[a.guid()]=h,h}var f=i.toNumTerm(a,!0);if(!f){if(s)return!1;var d=String(a).replace(/^-*/,"");throw new Error("No such variable: "+d)}var C=f,E=!1;if(f<0&&(C=-C,E=!0),C<1||C>=A.length){d=C;if(C>=1&&C<i._num2name.length&&(d=i._num2name[C]),s)return!1;throw new Error("Variable not part of solution: "+d)}r=A[C];return E&&(r=!r),r},n.Solution.prototype.getWeightedSum=function(e,t){y(e,t);var r=0;if("number"==typeof t)for(var n=0;n<e.length;n++)r+=t*(this.evaluate(e[n])?1:0);else for(n=0;n<e.length;n++)r+=t[n]*(this.evaluate(e[n])?1:0);return r};var w=function(e,t){if("number"==typeof t)return t?e:[];for(var r=[],n=0;n<e.length;n++)t[n]&&r.push(e[n]);return r},B=function(e,t,r,i,o,s){var A=t,a=A.getWeightedSum(r,i),c=o&&o.formula||n.weightedSum(r,i),u=o&&o.progress,l=o&&o.strategy,h=null;if(s&&a>0){u&&u("trying",0);var g=null;h=w(r,i),(g=e.solveAssuming(n.not(n.or(h))))&&(A=g,a=0)}if(s&&"bottom-up"===l)for(var f=1;f<a;f++){u&&u("trying",f);var p=n.equalBits(c,n.constantBits(f));if(d=e.solveAssuming(p)){A=d,a=f;break}}else{if(l&&"default"!==l)throw new Error("Bad strategy: "+l);l="default"}if("default"===l)for(;!s||a>0;){u&&u("improving",a);var d,C=(s?n.lessThan:n.greaterThan)(c,n.constantBits(a));if(!(d=e.solveAssuming(C)))break;e.require(C),a=(A=d).getWeightedSum(r,i)}return s&&0===a?(h||(h=w(r,i)),e.forbid(h)):e.require(n.equalBits(c,n.constantBits(a))),u&&u("finished",a),A};n.Solver.prototype.minimizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!0)},n.Solver.prototype.maximizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!1)},e.exports=n},98312:module=>{var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},window=0,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,t){e=nodePath.normalize(e);var r=nodeFS.readFileSync(e);return r||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),r=nodeFS.readFileSync(e)),r&&!t&&(r=r.toString()),r},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e}))}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WEB?window.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,t,r){return r||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,r){return r&&r.length?(r.splice||(r=Array.prototype.slice.call(r)),r.splice(0,0,t),Module["dynCall_"+e].apply(null,r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;i<numArgs;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,void 0!==FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var r=Runtime.funcWrappers[t];return r[e]||(r[e]=function(){return Runtime.dynCall(t,e,arguments)}),r[e]},UTF8Processor:function(){var e=[],t=0;this.processCChar=function(r){if(r&=255,0==e.length)return 0==(128&r)?String.fromCharCode(r):(e.push(r),t=192==(224&r)?1:224==(240&r)?2:3,"");if(t&&(e.push(r),--t>0))return"";var n,i=e[0],o=e[1],s=e[2],A=e[3];if(2==e.length)n=String.fromCharCode((31&i)<<6|63&o);else if(3==e.length)n=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s);else{var a=(7&i)<<18|(63&o)<<12|(63&s)<<6|63&A;n=String.fromCharCode(55296+((a-65536)/1024|0),(a-65536)%1024+56320)}return e.length=0,n},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r<e.length;r++)t.push(e.charCodeAt(r));return t}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=(STACKTOP=STACKTOP+e|0)+15&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=(STATICTOP=STATICTOP+e|0)+15&-16,t},dynamicAlloc:function(e){var t=DYNAMICTOP;return(DYNAMICTOP=(DYNAMICTOP=DYNAMICTOP+e|0)+15&-16)>=TOTAL_MEMORY&&enlargeMemory(),t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,r){return r?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,t){e||abort("Assertion failed: "+t)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}function getValue(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!=e&&0!==e&&writeStringToMemory(e,t=Runtime.stackAlloc(1+(e.length<<2))),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,r,n){var i=getCFunc(e),o=[],s=0;if(n)for(var A=0;A<n.length;A++){var a=toC[r[A]];a?(0===s&&(s=Runtime.stackSave()),o[A]=a(n[A])):o[A]=n[A]}var c=i.apply(null,o);return"string"===t&&(c=Pointer_stringify(c)),0!==s&&Runtime.stackRestore(s),c};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var JSsource={};for(var fun in JSfuncs)JSfuncs.hasOwnProperty(fun)&&(JSsource[fun]=parseJSFunc(JSfuncs[fun]));cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every((function(e){return"number"===e})),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map((function(e,t){return"$"+t})),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"="+convertCode.returnValue+";"}}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,t,r,n){var i,o;"number"==typeof e?(i=!0,o=e):(i=!1,o=e.length);var s,A="string"==typeof t?t:null;if(s=r==ALLOC_NONE?n:[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===r?ALLOC_STATIC:r](Math.max(o,A?1:t.length)),i){var a;n=s;for(assert(0==(3&s)),a=s+(-4&o);n<a;n+=4)HEAP32[n>>2]=0;for(a=s+o;n<a;)HEAP8[n++>>0]=0;return s}if("i8"===A)return e.subarray||e.slice?HEAPU8.set(e,s):HEAPU8.set(new Uint8Array(e),s),s;for(var c,u,l,h=0;h<o;){var g=e[h];"function"==typeof g&&(g=Runtime.getFunctionIndex(g)),0!==(c=A||t[h])?("i64"==c&&(c="i32"),setValue(s+h,g,c),l!==c&&(u=Runtime.getNativeTypeSize(c),l=c),h+=u):h++}return s}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var r,n=!1,i=0;;){if((r=HEAPU8[e+i>>0])>=128)n=!0;else if(0==r&&!t)break;if(i++,t&&i==t)break}t||(t=i);var o="";if(!n){for(var s;t>0;)s=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+s:s,e+=1024,t-=1024;return o}var A=new Runtime.UTF8Processor;for(i=0;i<t;i++)r=HEAPU8[e+i>>0],o+=A.processCChar(r);return o}function UTF16ToString(e){for(var t=0,r="";;){var n=HEAP16[e+2*t>>1];if(0==n)return r;++t,r+=String.fromCharCode(n)}}function stringToUTF16(e,t){for(var r=0;r<e.length;++r){var n=e.charCodeAt(r);HEAP16[t+2*r>>1]=n}HEAP16[t+2*e.length>>1]=0}function UTF32ToString(e){for(var t=0,r="";;){var n=HEAP32[e+4*t>>2];if(0==n)return r;if(++t,n>=65536){var i=n-65536;r+=String.fromCharCode(55296|i>>10,56320|1023&i)}else r+=String.fromCharCode(n)}}function stringToUTF32(e,t){for(var r=0,n=0;n<e.length;++n){var i=e.charCodeAt(n);if(i>=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n);HEAP32[t+4*r>>2]=i,++r}HEAP32[t+4*r>>2]=0}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var r=_malloc(e.length);writeStringToMemory(e.substr(1),r);var n=_malloc(4),i=Module.___cxa_demangle(r,0,0,n);if(0===getValue(n,"i32")&&i)return Pointer_stringify(i)}catch(e){}finally{r&&_free(r),n&&_free(n),i&&_free(i)}var o=3,s={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},A=[],a=!0;var c=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}c=function t(r,n,i){n=n||1/0;var c,u="",l=[];if("N"===e[o]){if(c=function(){o++,"K"===e[o]&&o++;for(var t=[];"E"!==e[o];)if("S"!==e[o])if("C"!==e[o]){var r=parseInt(e.substr(o)),n=r.toString().length;if(!r||!n){o--;break}var i=e.substr(o+n,r);t.push(i),A.push(i),o+=n+r}else t.push(t[t.length-1]),o+=2;else{o++;var s=e.indexOf("_",o),a=e.substring(o,s)||0;t.push(A[a]||"?"),o=s+1}return o++,t}().join("::"),0===--n)return r?[c]:c}else if(("K"===e[o]||a&&"L"===e[o])&&o++,p=parseInt(e.substr(o))){var h=p.toString().length;c=e.substr(o+h,p),o+=h+p}if(a=!1,"I"===e[o]){o++;var g=t(!0);u+=t(!0,1,!0)[0]+" "+c+"<"+g.join(", ")+">"}else u=c;e:for(;o<e.length&&n-- >0;){var f=e[o++];if(f in s)l.push(s[f]);else switch(f){case"P":l.push(t(!0,1,!0)[0]+"*");break;case"R":l.push(t(!0,1,!0)[0]+"&");break;case"L":o++;var p=e.indexOf("E",o)-o;l.push(e.substr(o,p)),o+=p+2;break;case"A":p=parseInt(e.substr(o));if(o+=p.toString().length,"_"!==e[o])throw"?";o++,l.push(t(!0,1,!0)[0]+" ["+p+"]");break;case"E":break e;default:u+="?"+f;break e}}return i||1!==l.length||"void"!==l[0]||(l=[]),r?(u&&l.push(u+"?"),l):u+"("+l.join(", ")+")"}()}catch(e){c+="?"}return c.indexOf("?")>=0&&!t&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),c}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,FAST_MEMORY=Module.FAST_MEMORY||2097152,totalMemory=65536;totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK;)totalMemory<16777216?totalMemory*=2:totalMemory+=16777216;totalMemory!==TOTAL_MEMORY&&(Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec"),TOTAL_MEMORY=totalMemory),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Runtime.dynCall("v",r):Runtime.dynCall("vi",r,[t.arg]):r(void 0===t.arg?null:t.arg)}else t()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,r){var n=(new Runtime.UTF8Processor).processJSString(e);return r&&(n.length=r),t||n.push(0),n}function intArrayToString(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];n>255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}function writeStringToMemory(e,t,r){for(var n=intArrayFromString(e,r),i=0;i<n.length;){var o=n[i];HEAP8[t+i>>0]=o,i+=1}}function writeArrayToMemory(e,t){for(var r=0;r<e.length;r++)HEAP8[t+r>>0]=e[r]}function writeAsciiToMemory(e,t,r){for(var n=0;n<e.length;n++)HEAP8[t+n>>0]=e.charCodeAt(n);r||(HEAP8[t+e.length>>0]=0)}function unSign(e,t,r){return e>=0?e:t<=32?2*Math.abs(1<<t-1)+e:Math.pow(2,t)+e}function reSign(e,t,r){if(e<=0)return e;var n=t<=32?Math.abs(1<<t-1):Math.pow(2,t-1);return e>=n&&(t<=32||e>n)&&(e=-2*n+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var r=65535&e,n=65535&t;return r*n+((e>>>16)*n+r*(t>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+5664,__ATINIT__.push({func:function(){__GLOBAL__I_a()}},{func:function(){__GLOBAL__I_a127()}}),allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,1,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,1,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,12,0,0,0,13,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,14,0,0,0,18,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,18,0,0,160,18,0,0,208,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var ___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var t in EXCEPTIONS.infos){if(EXCEPTIONS.infos[t].adjusted===e)return t}return e},addRef:function(e){e&&EXCEPTIONS.infos[e].refcount++},decRef:function(e){if(e){var t=EXCEPTIONS.infos[e];assert(t.refcount>0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){e&&(EXCEPTIONS.infos[e].refcount=0)}};function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(e)),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(asm.setTempRet0(0),0);var t=EXCEPTIONS.infos[e],r=t.type;if(!r)return 0|(asm.setTempRet0(0),e);var n=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(r);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var i=0;i<n.length;i++)if(n[i]&&Module.___cxa_can_catch(n[i],r,e))return e=HEAP32[e>>2],t.adjusted=e,0|(asm.setTempRet0(n[i]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(r),e)}function ___cxa_throw(e,t,r){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:r,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _abort(){Module.abort()}Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl;var FS=void 0,SOCKFS=void 0;function _send(e,t,r,n){return SOCKFS.getSocket(e)?_write(e,t,r):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,t,r,n){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var o=HEAP8;return FS.write(i,o,t,r,n)}catch(e){return FS.handleFSError(e),-1}}function _write(e,t,r){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,t,r)}catch(e){return FS.handleFSError(e),-1}}function _fileno(e){return(e=FS.getStreamFromPtr(e))?e.fd:-1}function _fwrite(e,t,r,n){var i=r*t;if(0==i)return 0;var o=_write(_fileno(n),e,i);if(-1==o){var s=FS.getStreamFromPtr(n);return s&&(s.error=!0),0}return o/t|0}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,t){var r=e,n=0;function i(e){var r;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[t+n>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[t+(n+4)>>2],r=+HEAPF64[tempDoublePtr>>3]):"i64"==e?r=[HEAP32[t+n>>2],HEAP32[t+(n+4)>>2]]:(e="i32",r=HEAP32[t+n>>2]),n+=Runtime.getNativeFieldSize(e),r}for(var o,s,A=[];;){var a=r;if(0===(o=HEAP8[r>>0]))break;if(s=HEAP8[r+1>>0],37==o){var c=!1,u=!1,l=!1,h=!1,g=!1;e:for(;;){switch(s){case 43:c=!0;break;case 45:u=!0;break;case 35:l=!0;break;case 48:if(h)break e;h=!0;break;case 32:g=!0;break;default:break e}r++,s=HEAP8[r+1>>0]}var f=0;if(42==s)f=i("i32"),r++,s=HEAP8[r+1>>0];else for(;s>=48&&s<=57;)f=10*f+(s-48),r++,s=HEAP8[r+1>>0];var p,d=!1,C=-1;if(46==s){if(C=0,d=!0,r++,42==(s=HEAP8[r+1>>0]))C=i("i32"),r++;else for(;;){var E=HEAP8[r+1>>0];if(E<48||E>57)break;C=10*C+(E-48),r++}s=HEAP8[r+1>>0]}switch(C<0&&(C=6,d=!1),String.fromCharCode(s)){case"h":104==HEAP8[r+2>>0]?(r++,p=1):p=2;break;case"l":108==HEAP8[r+2>>0]?(r++,p=8):p=4;break;case"L":case"q":case"j":p=8;break;case"z":case"t":case"I":p=4;break;default:p=null}switch(p&&r++,s=HEAP8[r+1>>0],String.fromCharCode(s)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var I=100==s||105==s,m=b=i("i"+8*(p=p||4));if(8==p&&(b=Runtime.makeBigInt(b[0],b[1],117==s)),p<=4)b=(I?reSign:unSign)(b&Math.pow(256,p)-1,8*p);var y=Math.abs(b),w="";if(100==s||105==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],null):reSign(b,8*p,1).toString(10);else if(117==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],!0):unSign(b,8*p,1).toString(10),b=Math.abs(b);else if(111==s)D=(l?"0":"")+y.toString(8);else if(120==s||88==s){if(w=l&&0!=b?"0x":"",8==p&&i64Math)if(m[1]){D=(m[1]>>>0).toString(16);for(var B=(m[0]>>>0).toString(16);B.length<8;)B="0"+B;D+=B}else D=(m[0]>>>0).toString(16);else if(b<0){b=-b,D=(y-1).toString(16);for(var Q=[],v=0;v<D.length;v++)Q.push((15-parseInt(D[v],16)).toString(16));for(D=Q.join("");D.length<2*p;)D="f"+D}else D=y.toString(16);88==s&&(w=w.toUpperCase(),D=D.toUpperCase())}else 112==s&&(0===y?D="(nil)":(w="0x",D=y.toString(16)));if(d)for(;D.length<C;)D="0"+D;for(b>=0&&(c?w="+"+w:g&&(w=" "+w)),"-"==D.charAt(0)&&(w="-"+w,D=D.substr(1));w.length+D.length<f;)u?D+=" ":h?D="0"+D:w=" "+w;(D=w+D).split("").forEach((function(e){A.push(e.charCodeAt(0))}));break;case"f":case"F":case"e":case"E":case"g":case"G":var D,b=i("double");if(isNaN(b))D="nan",h=!1;else if(isFinite(b)){var S=!1,k=Math.min(C,20);if(103==s||71==s){S=!0,C=C||1;var x=parseInt(b.toExponential(k).split("e")[1],10);C>x&&x>=-4?(s=(103==s?"f":"F").charCodeAt(0),C-=x+1):(s=(103==s?"e":"E").charCodeAt(0),C--),k=Math.min(C,20)}101==s||69==s?(D=b.toExponential(k),/[eE][-+]\d$/.test(D)&&(D=D.slice(0,-1)+"0"+D.slice(-1))):102!=s&&70!=s||(D=b.toFixed(k),0===b&&__reallyNegative(b)&&(D="-"+D));var F=D.split("e");if(S&&!l)for(;F[0].length>1&&-1!=F[0].indexOf(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(l&&-1==D.indexOf(".")&&(F[0]+=".");C>k++;)F[0]+="0";D=F[0]+(F.length>1?"e"+F[1]:""),69==s&&(D=D.toUpperCase()),b>=0&&(c?D="+"+D:g&&(D=" "+D))}else D=(b<0?"-":"")+"inf",h=!1;for(;D.length<f;)u?D+=" ":D=!h||"-"!=D[0]&&"+"!=D[0]?(h?"0":" ")+D:D[0]+"0"+D.slice(1);s<97&&(D=D.toUpperCase()),D.split("").forEach((function(e){A.push(e.charCodeAt(0))}));break;case"s":var M=i("i8*"),N=M?_strlen(M):"(null)".length;if(d&&(N=Math.min(N,C)),!u)for(;N<f--;)A.push(32);if(M)for(v=0;v<N;v++)A.push(HEAPU8[M++>>0]);else A=A.concat(intArrayFromString("(null)".substr(0,N),!0));if(u)for(;N<f--;)A.push(32);break;case"c":for(u&&A.push(i("i8"));--f>0;)A.push(32);u||A.push(i("i8"));break;case"n":var R=i("i32*");HEAP32[R>>2]=A.length;break;case"%":A.push(o);break;default:for(v=a;v<r+2;v++)A.push(HEAP8[v>>0])}r+=2}else A.push(o),r+=1}return A}function _fprintf(e,t,r){var n=__formatString(t,r),i=Runtime.stackSave(),o=_fwrite(allocate(n,"i8",ALLOC_STACK),1,n.length,e);return Runtime.stackRestore(i),o}function _printf(e,t){var r=__formatString(e,t),n=intArrayToString(r);return"\n"===n[n.length-1]&&(n=n.substr(0,n.length-1)),Module.print(n),r.length}function _pthread_once(e,t){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Runtime.dynCall("v",t),_pthread_once.seen[e]=1)}function _fputc(e,t){var r=unSign(255&e);if(HEAP8[_fputc.ret>>0]=r,-1==_write(_fileno(t),_fputc.ret,1)){var n=FS.getStreamFromPtr(t);return n&&(n.error=!0),-1}return r}Module._strlen=_strlen;var PTHREAD_SPECIFIC={};function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function _fputs(e,t){return _write(_fileno(t),e,_strlen(e))}Module._i64Add=_i64Add;var _stdout=allocate(1,"i32*",ALLOC_STATIC);function _puts(e){var t=Pointer_stringify(e),r=t.substr(0);return"\n"===r[r.length-1]&&(r=r.substr(0,r.length-1)),Module.print(r),t.length}function _pthread_setspecific(e,t){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=t,0):ERRNO_CODES.EINVAL}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}var _UItoD=!0;function _malloc(e){return Runtime.dynamicAlloc(e+8)+8&4294967288}function ___cxa_allocate_exception(e){return _malloc(e)}function _fmod(e,t){return e%t}function _fmodl(){return _fmod.apply(null,arguments)}function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}function _time(e){var t=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=t),t}Module._malloc=_malloc,Module._bitshift64Lshr=_bitshift64Lshr;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(e,t){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___cxa_guard_acquire(e){return HEAP8[e>>0]?0:(HEAP8[e>>0]=1,1)}function ___cxa_guard_release(){}function _vfprintf(e,t,r){return _fprintf(e,t,HEAP32[r>>2])}function ___cxa_begin_catch(e){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _emscripten_memcpy_big(e,t,r){return HEAPU8.set(HEAPU8.subarray(t,t+r),e),e}Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var r=DYNAMICTOP;return 0!=e&&t.alloc(e),r}var _fabs=Math_abs;function ___errno_location(){return ___errno_state}var _BItoD=!0;function _copysign(e,t){return __reallyNegative(e)===__reallyNegative(t)?e:-e}function _copysignl(){return _copysign.apply(null,arguments)}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,_fputc.ret=allocate([0],"i8",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var ctlz_i8=allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_DYNAMIC),cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_iiii(e,t,r,n){try{return Module.dynCall_iiii(e,t,r,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiii(e,t,r,n,i,o){try{Module.dynCall_viiiii(e,t,r,n,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vii(e,t,r){try{Module.dynCall_vii(e,t,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiiii(e,t,r,n,i,o,s){try{Module.dynCall_viiiiii(e,t,r,n,i,o,s)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iii(e,t,r){try{return Module.dynCall_iii(e,t,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiii(e,t,r,n,i){try{Module.dynCall_viiii(e,t,r,n,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array},Module.asmLibraryArg={abort,assert,min:Math_min,invoke_iiii,invoke_viiiii,invoke_vi,invoke_vii,invoke_ii,invoke_v,invoke_viiiiii,invoke_iii,invoke_viiii,_fabs,_llvm_pow_f64,_send,_fmod,___cxa_guard_acquire,___setErrNo,_vfprintf,___cxa_allocate_exception,___cxa_find_matching_catch,___cxa_guard_release,_pwrite,__reallyNegative,_sbrk,___cxa_begin_catch,_emscripten_memcpy_big,_fileno,___resumeException,__ZSt18uncaught_exceptionv,_sysconf,_pthread_getspecific,_atexit,_pthread_once,_puts,_printf,_pthread_key_create,_write,___errno_location,_pthread_setspecific,___cxa_atexit,_copysign,_fputc,___cxa_throw,__exit,_copysignl,_abort,_fwrite,_time,_fprintf,__formatString,_fputs,_exit,___cxa_pure_virtual,_fmodl,STACKTOP,STACK_MAX,tempDoublePtr,ABORT,cttz_i8,ctlz_i8,NaN:NaN,Infinity:1/0,___dso_handle,_stderr};var asm=function(e,t,r){"use asm";var n=new e.Int8Array(r);var i=new e.Int16Array(r);var o=new e.Int32Array(r);var s=new e.Uint8Array(r);var A=new e.Uint16Array(r);var a=new e.Uint32Array(r);var c=new e.Float32Array(r);var u=new e.Float64Array(r);var l=t.STACKTOP|0;var h=t.STACK_MAX|0;var g=t.tempDoublePtr|0;var f=t.ABORT|0;var p=t.cttz_i8|0;var d=t.ctlz_i8|0;var C=t.___dso_handle|0;var E=t._stderr|0;var I=0;var m=0;var y=0;var w=0;var B=+t.NaN,Q=+t.Infinity;var v=0,D=0,b=0,S=0,k=0.0,x=0,F=0,M=0,N=0.0;var R=0;var K=0;var L=0;var T=0;var P=0;var U=0;var _=0;var O=0;var j=0;var Y=0;var G=e.Math.floor;var J=e.Math.abs;var H=e.Math.sqrt;var q=e.Math.pow;var z=e.Math.cos;var W=e.Math.sin;var V=e.Math.tan;var X=e.Math.acos;var Z=e.Math.asin;var $=e.Math.atan;var ee=e.Math.atan2;var te=e.Math.exp;var re=e.Math.log;var ne=e.Math.ceil;var ie=e.Math.imul;var oe=t.abort;var se=t.assert;var Ae=t.min;var ae=t.invoke_iiii;var ce=t.invoke_viiiii;var ue=t.invoke_vi;var le=t.invoke_vii;var he=t.invoke_ii;var ge=t.invoke_v;var fe=t.invoke_viiiiii;var pe=t.invoke_iii;var de=t.invoke_viiii;var Ce=t._fabs;var Ee=t._llvm_pow_f64;var Ie=t._send;var me=t._fmod;var ye=t.___cxa_guard_acquire;var we=t.___setErrNo;var Be=t._vfprintf;var Qe=t.___cxa_allocate_exception;var ve=t.___cxa_find_matching_catch;var De=t.___cxa_guard_release;var be=t._pwrite;var Se=t.__reallyNegative;var ke=t._sbrk;var xe=t.___cxa_begin_catch;var Fe=t._emscripten_memcpy_big;var Me=t._fileno;var Ne=t.___resumeException;var Re=t.__ZSt18uncaught_exceptionv;var Ke=t._sysconf;var Le=t._pthread_getspecific;var Te=t._atexit;var Pe=t._pthread_once;var Ue=t._puts;var _e=t._printf;var Oe=t._pthread_key_create;var je=t._write;var Ye=t.___errno_location;var Ge=t._pthread_setspecific;var Je=t.___cxa_atexit;var He=t._copysign;var qe=t._fputc;var ze=t.___cxa_throw;var We=t.__exit;var Ve=t._copysignl;var Xe=t._abort;var Ze=t._fwrite;var $e=t._time;var et=t._fprintf;var tt=t.__formatString;var rt=t._fputs;var nt=t._exit;var it=t.___cxa_pure_virtual;var ot=t._fmodl;var st=0.0;function At(e){e=e|0;var t=0;t=l;l=l+e|0;l=l+15&-16;return t|0}function at(){return l|0}function ct(e){e=e|0;l=e}function ut(e,t){e=e|0;t=t|0;if(!I){I=e;m=t}}function lt(e){e=e|0;n[g>>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0]}function ht(e){e=e|0;n[g>>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0];n[g+4>>0]=n[e+4>>0];n[g+5>>0]=n[e+5>>0];n[g+6>>0]=n[e+6>>0];n[g+7>>0]=n[e+7>>0]}function gt(e){e=e|0;R=e}function ft(){return R|0}function pt(e){e=e|0;xe(e|0)|0;pn()}function dt(e){e=e|0;return}function Ct(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;A=l;o[e>>2]=112;o[e+4>>2]=t;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=s;if((n[144]|0)==0?(ye(144)|0)!=0:0){o[32]=0;o[33]=0;o[34]=0;Je(19,128,C|0)|0;De(144)}s=o[33]|0;if((s|0)==(o[34]|0)){i=(s>>1)+2&-2;i=(i|0)<2?2:i;if((i|0)>(2147483647-s|0)){t=Qe(1)|0;ze(t|0,48,0)}r=o[32]|0;t=i+s|0;o[34]=t;t=On(r,t<<2)|0;o[32]=t;if((t|0)==0?(o[(Ye()|0)>>2]|0)==12:0){t=Qe(1)|0;ze(t|0,48,0)}s=o[33]|0}o[33]=s+1;s=(o[32]|0)+(s<<2)|0;if(!s){l=A;return}o[s>>2]=e;l=A;return}function Et(e){e=e|0;var t=0;t=l;un(e);l=t;return}function It(e){e=e|0;var t=0,r=0;t=l;r=o[e>>2]|0;if(!r){l=t;return}o[e+4>>2]=0;_n(r);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function mt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function yt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;r=l;if((n[t>>0]|0)!=45){c=0;l=r;return c|0}i=t+1|0;s=110;a=i;c=0;while(1){A=c+1|0;if((n[a>>0]|0)!=s<<24>>24){s=1;break}a=t+(c+2)|0;if((A|0)==3){s=0;i=a;break}else{s=n[264+A>>0]|0;c=A}}if($n(i,o[e+4>>2]|0)|0){c=0;l=r;return c|0}n[e+20>>0]=s;c=1;l=r;return c|0}function wt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;A=l;l=l+16|0;r=A;i=o[E>>2]|0;s=e+4|0;a=o[s>>2]|0;o[r>>2]=a;o[r+4>>2]=a;et(i|0,216,r|0)|0;a=0;while(1){c=a>>>0<(32-((Ai(o[s>>2]|0)|0)<<1)|0)>>>0;qe(32,i|0)|0;if(c)a=a+1|0;else break}o[r>>2]=(n[e+20>>0]|0)!=0?248:256;et(i|0,232,r|0)|0;if(!t){l=A;return}o[r>>2]=o[e+8>>2];et(i|0,88,r|0)|0;qe(10,i|0)|0;l=A;return}function Bt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){g=0;l=r;return g|0}u=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){h=0;while(1){g=h;h=h+1|0;if((n[u>>0]|0)!=c<<24>>24){e=0;break}c=n[a+h>>0]|0;u=t+(g+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[u>>0]|0)!=61){g=0;l=r;return g|0}t=u+1|0;a=Zn(t,s,10)|0;if(!(o[s>>2]|0)){g=0;l=r;return g|0}if((a|0)>(o[e+24>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,416,A|0)|0;nt(1)}if((a|0)<(o[e+20>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,472,A|0)|0;nt(1)}o[e+28>>2]=a;g=1;l=r;return g|0}function vt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;l=l+16|0;n=r;i=o[E>>2]|0;s=o[e+16>>2]|0;o[n>>2]=o[e+4>>2];o[n+4>>2]=s;et(i|0,336,n|0)|0;s=o[e+20>>2]|0;if((s|0)==-2147483648)Ze(360,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}Ze(376,4,1,i|0)|0;s=o[e+24>>2]|0;if((s|0)==2147483647)Ze(384,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}o[n>>2]=o[e+28>>2];et(i|0,392,n|0)|0;if(!t){l=r;return}o[n>>2]=o[e+8>>2];et(i|0,88,n|0)|0;qe(10,i|0)|0;l=r;return}function Dt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0;s=l;o[e>>2]=1816;i=e+4|0;r=e+32|0;A=e+48|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;u[A>>3]=+u[75];u[e+56>>3]=+u[89];u[e+64>>3]=+u[103];u[e+72>>3]=+u[123];n[e+80>>0]=n[1364]|0;o[e+84>>2]=o[269];o[e+88>>2]=o[297];n[e+92>>0]=0;n[e+93>>0]=n[1292]|0;u[e+96>>3]=+u[204];o[e+104>>2]=o[439];o[e+108>>2]=o[359];u[e+112>>3]=+u[191];u[e+120>>3]=.3333333333333333;u[e+128>>3]=1.1;o[e+136>>2]=100;u[e+144>>3]=1.5;A=e+316|0;o[e+332>>2]=0;o[e+336>>2]=0;o[e+340>>2]=0;o[e+348>>2]=0;o[e+352>>2]=0;o[e+356>>2]=0;o[e+364>>2]=0;o[e+368>>2]=0;o[e+372>>2]=0;o[e+380>>2]=0;o[e+384>>2]=0;o[e+388>>2]=0;o[e+396>>2]=0;o[e+400>>2]=0;o[e+404>>2]=0;r=e+544|0;o[e+412>>2]=0;o[e+416>>2]=0;o[e+420>>2]=0;o[e+428>>2]=0;o[e+432>>2]=0;o[e+436>>2]=0;o[e+444>>2]=0;o[e+448>>2]=0;o[e+452>>2]=0;oi(e+152|0,0,176)|0;o[e+456>>2]=r;i=e+460|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[e+488>>2]=A;n[e+492>>0]=1;u[e+496>>3]=1.0;u[e+504>>3]=1.0;o[e+512>>2]=0;o[e+516>>2]=-1;A=e+520|0;i=e+536|0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;n[i>>0]=1;i=e+540|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;er(r,1048576);n[e+560>>0]=0;r=e+604|0;i=e+664|0;A=e+564|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=r+0|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=e+680|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;n[A>>0]=0;l=s;return}function bt(e){e=e|0;var t=0;t=l;St(e);un(e);l=t;return}function St(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=1816;r=e+628|0;n=o[r>>2]|0;if(n){o[e+632>>2]=0;_n(n);o[r>>2]=0;o[e+636>>2]=0}r=e+616|0;n=o[r>>2]|0;if(n){o[e+620>>2]=0;_n(n);o[r>>2]=0;o[e+624>>2]=0}r=e+604|0;n=o[r>>2]|0;if(n){o[e+608>>2]=0;_n(n);o[r>>2]=0;o[e+612>>2]=0}r=e+588|0;n=o[r>>2]|0;if(n){o[e+592>>2]=0;_n(n);o[r>>2]=0;o[e+596>>2]=0}r=e+576|0;n=o[r>>2]|0;if(n){o[e+580>>2]=0;_n(n);o[r>>2]=0;o[e+584>>2]=0}r=e+564|0;n=o[r>>2]|0;if(n){o[e+568>>2]=0;_n(n);o[r>>2]=0;o[e+572>>2]=0}r=o[e+544>>2]|0;if(r)_n(r);r=e+472|0;n=o[r>>2]|0;if(n){o[e+476>>2]=0;_n(n);o[r>>2]=0;o[e+480>>2]=0}r=e+460|0;n=o[r>>2]|0;if(n){o[e+464>>2]=0;_n(n);o[r>>2]=0;o[e+468>>2]=0}tr(e+412|0);r=e+396|0;n=o[r>>2]|0;if(n){o[e+400>>2]=0;_n(n);o[r>>2]=0;o[e+404>>2]=0}r=e+380|0;n=o[r>>2]|0;if(n){o[e+384>>2]=0;_n(n);o[r>>2]=0;o[e+388>>2]=0}n=e+364|0;r=o[n>>2]|0;if(r){o[e+368>>2]=0;_n(r);o[n>>2]=0;o[e+372>>2]=0}r=e+348|0;n=o[r>>2]|0;if(n){o[e+352>>2]=0;_n(n);o[r>>2]=0;o[e+356>>2]=0}r=e+332|0;n=o[r>>2]|0;if(n){o[e+336>>2]=0;_n(n);o[r>>2]=0;o[e+340>>2]=0}r=e+316|0;n=o[r>>2]|0;if(n){o[e+320>>2]=0;_n(n);o[r>>2]=0;o[e+324>>2]=0}r=e+304|0;n=o[r>>2]|0;if(n){o[e+308>>2]=0;_n(n);o[r>>2]=0;o[e+312>>2]=0}r=e+292|0;n=o[r>>2]|0;if(n){o[e+296>>2]=0;_n(n);o[r>>2]=0;o[e+300>>2]=0}r=e+280|0;n=o[r>>2]|0;if(n){o[e+284>>2]=0;_n(n);o[r>>2]=0;o[e+288>>2]=0}r=e+268|0;n=o[r>>2]|0;if(n){o[e+272>>2]=0;_n(n);o[r>>2]=0;o[e+276>>2]=0}r=e+256|0;n=o[r>>2]|0;if(n){o[e+260>>2]=0;_n(n);o[r>>2]=0;o[e+264>>2]=0}r=e+32|0;n=o[r>>2]|0;if(n){o[e+36>>2]=0;_n(n);o[r>>2]=0;o[e+40>>2]=0}r=e+16|0;n=o[r>>2]|0;if(n){o[e+20>>2]=0;_n(n);o[r>>2]=0;o[e+24>>2]=0}n=e+4|0;r=o[n>>2]|0;if(!r){l=t;return}o[e+8>>2]=0;_n(r);o[n>>2]=0;o[e+12>>2]=0;l=t;return}function kt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0.0,h=0,g=0,f=0,p=0,d=0,C=0;i=l;l=l+16|0;a=i+4|0;A=i;s=e+580|0;h=o[s>>2]|0;if((h|0)>0){f=h+-1|0;p=o[(o[e+576>>2]|0)+(f<<2)>>2]|0;o[s>>2]=f;s=p}else{p=e+540|0;s=o[p>>2]|0;o[p>>2]=s+1}h=e+412|0;p=s<<1;o[a>>2]=p;rr(h,a);o[A>>2]=p|1;rr(h,A);a=e+332|0;h=n[544]|0;A=s+1|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=h;a=e+396|0;h=e+400|0;if((o[h>>2]|0)<(A|0)){f=e+404|0;p=o[f>>2]|0;if((p|0)<(A|0)){d=s+2-p&-2;g=(p>>1)+2&-2;g=(d|0)>(g|0)?d:g;if((g|0)>(2147483647-p|0)){d=Qe(1)|0;ze(d|0,48,0)}C=o[a>>2]|0;d=g+p|0;o[f>>2]=d;d=On(C,d<<3)|0;o[a>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}f=o[h>>2]|0;if((f|0)<(A|0))do{g=(o[a>>2]|0)+(f<<3)|0;if(g){C=g;o[C>>2]=0;o[C+4>>2]=0}f=f+1|0}while((f|0)!=(A|0));o[h>>2]=A}h=(o[a>>2]|0)+(s<<3)|0;o[h>>2]=-1;o[h+4>>2]=0;h=e+316|0;if(!(n[e+93>>0]|0))c=0.0;else{C=e+72|0;c=+u[C>>3]*1389796.0;c=c-+(~~(c/2147483647.0)|0)*2147483647.0;u[C>>3]=c;c=c/2147483647.0*1.0e-5}a=e+320|0;if((o[a>>2]|0)<(A|0)){g=e+324|0;f=o[g>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;p=(f>>1)+2&-2;p=(C|0)>(p|0)?C:p;if((p|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[h>>2]|0;C=p+f|0;o[g>>2]=C;C=On(d,C<<3)|0;o[h>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}p=o[a>>2]|0;if((p|0)<(A|0)){g=o[h>>2]|0;do{f=g+(p<<3)|0;if(f)u[f>>3]=0.0;p=p+1|0}while((p|0)!=(A|0))}o[a>>2]=A}u[(o[h>>2]|0)+(s<<3)>>3]=c;ir(e+588|0,s,0);ir(e+348|0,s,1);a=e+364|0;t=n[t>>0]|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=t;a=e+380|0;t=e+384|0;if((o[t>>2]|0)<(A|0)){h=e+388|0;f=o[h>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;g=(f>>1)+2&-2;g=(C|0)>(g|0)?C:g;if((g|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[a>>2]|0;C=g+f|0;o[h>>2]=C;C=On(d,C)|0;o[a>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}h=o[t>>2]|0;if((h|0)<(A|0))do{g=(o[a>>2]|0)+h|0;if(g)n[g>>0]=0;h=h+1|0}while((h|0)!=(A|0));o[t>>2]=A}t=e+288|0;a=o[t>>2]|0;if((a|0)<(A|0)){C=s+2-a&-2;A=(a>>1)+2&-2;A=(C|0)>(A|0)?C:A;if((A|0)>(2147483647-a|0)){C=Qe(1)|0;ze(C|0,48,0)}d=e+280|0;p=o[d>>2]|0;C=A+a|0;o[t>>2]=C;C=On(p,C<<2)|0;o[d>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}A=e+380|0;t=(o[A>>2]|0)+s|0;a=(n[t>>0]|0)==0;if(r){if(a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,1,0)|0;o[C>>2]=d;o[C+4>>2]=R}}else if(!a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,-1,-1)|0;o[C>>2]=d;o[C+4>>2]=R}n[t>>0]=r&1;r=e+460|0;if((o[e+476>>2]|0)>(s|0)?(o[(o[e+472>>2]|0)+(s<<2)>>2]|0)>-1:0){l=i;return s|0}if(!(n[(o[A>>2]|0)+s>>0]|0)){l=i;return s|0}or(r,s);l=i;return s|0}function xt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;l=l+16|0;c=r+1|0;a=r;i=e+492|0;if(!(n[i>>0]|0)){E=0;l=r;return E|0}E=o[t>>2]|0;A=t+4|0;u=o[A>>2]|0;n[c+0>>0]=n[a+0>>0]|0;ar(E,u,c);u=o[A>>2]|0;e:do{if((u|0)>0){c=e+332|0;a=n[528]|0;h=0;g=0;p=-2;while(1){E=o[t>>2]|0;f=o[E+(h<<2)>>2]|0;C=s[(o[c>>2]|0)+(f>>1)>>0]|0;I=C^f&1;d=I&255;m=a&255;if((f|0)==(p^1|0)?1:(d<<24>>24==a<<24>>24&(m>>>1^1)|m&2&I|0)!=0){e=1;break}I=n[536]|0;m=I&255;if((f|0)!=(p|0)?((m>>>1^1)&d<<24>>24==I<<24>>24|C&2&m|0)==0:0){o[E+(g<<2)>>2]=f;u=o[A>>2]|0;g=g+1|0}else f=p;h=h+1|0;if((h|0)<(u|0))p=f;else break e}l=r;return e|0}else{h=0;g=0}}while(0);a=h-g|0;if((a|0)>0){u=u-a|0;o[A>>2]=u}if(!u){n[i>>0]=0;m=0;l=r;return m|0}else if((u|0)==1){I=o[o[t>>2]>>2]|0;E=I>>1;n[(o[e+332>>2]|0)+E>>0]=(I&1^1)&255^1;m=o[e+296>>2]|0;E=(o[e+396>>2]|0)+(E<<3)|0;o[E>>2]=-1;o[E+4>>2]=m;E=e+284|0;m=o[E>>2]|0;o[E>>2]=m+1;o[(o[e+280>>2]|0)+(m<<2)>>2]=I;m=(Mt(e)|0)==-1;n[i>>0]=m&1;l=r;return m|0}else{t=cr(e+544|0,t,0)|0;A=e+256|0;i=e+260|0;c=o[i>>2]|0;a=e+264|0;if((c|0)==(o[a>>2]|0)){u=(c>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-c|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=u+c|0;o[a>>2]=m;m=On(I,m<<2)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}c=o[i>>2]|0}o[i>>2]=c+1;i=(o[A>>2]|0)+(c<<2)|0;if(i)o[i>>2]=t;Nt(e,t);m=1;l=r;return m|0}return 0}function Ft(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0;i=o[t>>2]|0;t=i>>1;n[(o[e+332>>2]|0)+t>>0]=(i&1^1)&255^1;s=o[e+296>>2]|0;t=(o[e+396>>2]|0)+(t<<3)|0;o[t>>2]=r;o[t+4>>2]=s;r=e+284|0;t=o[r>>2]|0;o[r>>2]=t+1;o[(o[e+280>>2]|0)+(t<<2)>>2]=i;return}function Mt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;c=l;l=l+16|0;C=c;A=e+512|0;I=o[A>>2]|0;d=e+284|0;if((I|0)>=(o[d>>2]|0)){P=0;L=0;_=-1;U=e+184|0;N=U;T=N;T=o[T>>2]|0;N=N+4|0;N=o[N>>2]|0;N=ai(T|0,N|0,P|0,L|0)|0;T=R;K=U;o[K>>2]=N;U=U+4|0;o[U>>2]=T;U=e+520|0;T=U;K=T;K=o[K>>2]|0;T=T+4|0;T=o[T>>2]|0;L=ii(K|0,T|0,P|0,L|0)|0;P=R;T=U;o[T>>2]=L;U=U+4|0;o[U>>2]=P;l=c;return _|0}f=e+280|0;a=e+428|0;i=e+412|0;u=e+332|0;h=e+544|0;g=C+4|0;t=e+396|0;p=e+296|0;r=e+456|0;v=-1;E=0;do{o[A>>2]=I+1;w=o[(o[f>>2]|0)+(I<<2)>>2]|0;if(n[(o[a>>2]|0)+w>>0]|0){m=o[i>>2]|0;I=m+(w*12|0)+4|0;Q=o[I>>2]|0;if((Q|0)>0){m=m+(w*12|0)|0;y=0;B=0;do{b=o[m>>2]|0;D=b+(y<<3)|0;if((o[(o[o[r>>2]>>2]|0)+(o[D>>2]<<2)>>2]&3|0)!=1){U=D;_=o[U+4>>2]|0;Q=b+(B<<3)|0;o[Q>>2]=o[U>>2];o[Q+4>>2]=_;Q=o[I>>2]|0;B=B+1|0}y=y+1|0}while((y|0)<(Q|0))}else{y=0;B=0}m=y-B|0;if((m|0)>0)o[I>>2]=Q-m;n[(o[a>>2]|0)+w>>0]=0}I=o[i>>2]|0;E=E+1|0;m=o[I+(w*12|0)>>2]|0;I=I+(w*12|0)+4|0;B=o[I>>2]|0;y=m+(B<<3)|0;e:do{if(!B){y=m;Q=m}else{w=w^1;B=(B<<3)+-1|0;b=m;Q=m;while(1){while(1){t:while(1){M=o[b+4>>2]|0;_=s[(o[u>>2]|0)+(M>>1)>>0]^M&1;K=n[528]|0;N=K&255;L=N&2;N=N>>>1^1;if((_&255)<<24>>24==K<<24>>24&N|L&_){x=19;break}D=o[b>>2]|0;x=o[h>>2]|0;F=x+(D<<2)|0;S=x+(D+1<<2)|0;k=o[S>>2]|0;if((k|0)==(w|0)){_=x+(D+2<<2)|0;k=o[_>>2]|0;o[S>>2]=k;o[_>>2]=w}S=b+8|0;o[C>>2]=D;o[g>>2]=k;if((k|0)!=(M|0)?(_=s[(o[u>>2]|0)+(k>>1)>>0]^k&1,((_&255)<<24>>24==K<<24>>24&N|L&_|0)!=0):0){x=27;break}L=o[F>>2]|0;if(L>>>0<=95){x=31;break}N=o[u>>2]|0;K=n[536]|0;M=K&255;_=M&2;M=M>>>1^1;U=2;while(1){T=F+(U<<2)+4|0;P=o[T>>2]|0;O=s[N+(P>>1)>>0]^P&1;U=U+1|0;if(!((O&255)<<24>>24==K<<24>>24&M|_&O))break;if((U|0)>=(L>>>5|0)){x=32;break t}}O=x+(D+2<<2)|0;o[O>>2]=P;o[T>>2]=w;ur((o[i>>2]|0)+((o[O>>2]^1)*12|0)|0,C);if((S|0)==(y|0))break e;else b=S}if((x|0)==19){x=0;U=b;_=o[U+4>>2]|0;O=Q;o[O>>2]=o[U>>2];o[O+4>>2]=_;b=b+8|0;Q=Q+8|0}else if((x|0)==27){x=0;_=C;O=o[_+4>>2]|0;b=Q;o[b>>2]=o[_>>2];o[b+4>>2]=O;b=S;Q=Q+8|0}else if((x|0)==31){K=n[536]|0;x=32}if((x|0)==32){x=Q+8|0;F=C;N=o[F+4>>2]|0;M=Q;o[M>>2]=o[F>>2];o[M+4>>2]=N;M=k>>1;N=k&1;F=(o[u>>2]|0)+M|0;O=s[F>>0]^N;_=K&255;if((O&255)<<24>>24==K<<24>>24&(_>>>1^1)|_&2&O)break;n[F>>0]=(N^1)&255^1;Q=o[p>>2]|0;b=(o[t>>2]|0)+(M<<3)|0;o[b>>2]=D;o[b+4>>2]=Q;b=o[d>>2]|0;o[d>>2]=b+1;o[(o[f>>2]|0)+(b<<2)>>2]=k;b=S;Q=x}if((b|0)==(y|0))break e}o[A>>2]=o[d>>2];if(S>>>0<y>>>0){v=(m+(B-S)|0)>>>3;while(1){U=S;S=S+8|0;_=o[U+4>>2]|0;O=x;o[O>>2]=o[U>>2];o[O+4>>2]=_;if(S>>>0>=y>>>0)break;else x=x+8|0}b=b+(v+2<<3)|0;Q=Q+(v+2<<3)|0}else{b=S;Q=x}if((b|0)==(y|0)){v=D;break}else v=D}}}while(0);m=y-Q|0;if((m|0)>0)o[I>>2]=(o[I>>2]|0)-(m>>3);I=o[A>>2]|0}while((I|0)<(o[d>>2]|0));U=E;T=((E|0)<0)<<31>>31;O=v;_=e+184|0;K=_;P=K;P=o[P>>2]|0;K=K+4|0;K=o[K>>2]|0;K=ai(P|0,K|0,U|0,T|0)|0;P=R;L=_;o[L>>2]=K;_=_+4|0;o[_>>2]=P;_=e+520|0;P=_;L=P;L=o[L>>2]|0;P=P+4|0;P=o[P>>2]|0;T=ii(L|0,P|0,U|0,T|0)|0;U=R;P=_;o[P>>2]=T;_=_+4|0;o[_>>2]=U;l=c;return O|0}function Nt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;l=l+16|0;c=r+8|0;i=r;s=o[e+544>>2]|0;n=s+(t<<2)|0;A=s+(t+1<<2)|0;a=e+412|0;u=(o[a>>2]|0)+((o[A>>2]^1)*12|0)|0;s=s+(t+2<<2)|0;h=o[s>>2]|0;o[c>>2]=t;o[c+4>>2]=h;ur(u,c);s=(o[a>>2]|0)+((o[s>>2]^1)*12|0)|0;A=o[A>>2]|0;o[i>>2]=t;o[i+4>>2]=A;ur(s,i);if(!(o[n>>2]&4)){h=e+208|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+224|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}else{h=e+216|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+232|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}}function Rt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;s=l;l=l+16|0;u=s+4|0;a=s;A=o[e+544>>2]|0;i=A+(t<<2)|0;c=o[A+(t+1<<2)>>2]^1;if(!r){o[u>>2]=c;r=e+428|0;h=o[r>>2]|0;c=h+c|0;if(!(n[c>>0]|0)){n[c>>0]=1;sr(e+444|0,u);h=o[r>>2]|0}t=o[A+(t+2<<2)>>2]^1;o[a>>2]=t;t=h+t|0;if(!(n[t>>0]|0)){n[t>>0]=1;sr(e+444|0,a)}}else{a=e+412|0;r=o[a>>2]|0;u=r+(c*12|0)|0;A=A+(t+2<<2)|0;c=r+(c*12|0)+4|0;h=o[c>>2]|0;e:do{if((h|0)>0){p=o[u>>2]|0;f=0;while(1){g=f+1|0;if((o[p+(f<<3)>>2]|0)==(t|0)){g=f;break e}if((g|0)<(h|0))f=g;else break}}else g=0}while(0);h=h+-1|0;if((g|0)<(h|0)){do{r=o[u>>2]|0;h=g;g=g+1|0;f=r+(g<<3)|0;p=o[f+4>>2]|0;h=r+(h<<3)|0;o[h>>2]=o[f>>2];o[h+4>>2]=p;h=(o[c>>2]|0)+-1|0}while((g|0)<(h|0));r=o[a>>2]|0}o[c>>2]=h;a=o[A>>2]^1;A=r+(a*12|0)|0;a=r+(a*12|0)+4|0;c=o[a>>2]|0;e:do{if((c|0)>0){r=o[A>>2]|0;h=0;while(1){u=h+1|0;if((o[r+(h<<3)>>2]|0)==(t|0)){u=h;break e}if((u|0)<(c|0))h=u;else break}}else u=0}while(0);t=c+-1|0;if((u|0)<(t|0))do{g=o[A>>2]|0;t=u;u=u+1|0;f=g+(u<<3)|0;p=o[f+4>>2]|0;t=g+(t<<3)|0;o[t>>2]=o[f>>2];o[t+4>>2]=p;t=(o[a>>2]|0)+-1|0}while((u|0)<(t|0));o[a>>2]=t}if(!(o[i>>2]&4)){p=e+208|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+224|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}else{p=e+216|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+232|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}}function Kt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;A=l;i=e+544|0;h=o[i>>2]|0;r=h+(t<<2)|0;Rt(e,t,0);h=o[h+(t+1<<2)>>2]|0;a=h>>1;h=(s[(o[e+332>>2]|0)+a>>0]|0)^h&1;f=n[528]|0;g=f&255;if((((h&255)<<24>>24==f<<24>>24&(g>>>1^1)|g&2&h|0)!=0?(c=(o[e+396>>2]|0)+(a<<3)|0,u=o[c>>2]|0,(u|0)!=-1):0)?((o[i>>2]|0)+(u<<2)|0)==(r|0):0)o[c>>2]=-1;o[r>>2]=o[r>>2]&-4|1;g=o[(o[i>>2]|0)+(t<<2)>>2]|0;f=e+556|0;o[f>>2]=((((g>>>3&1)+(g>>>5)<<2)+4|0)>>>2)+(o[f>>2]|0);l=A;return}function Lt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0;r=l;i=o[t>>2]|0;if(i>>>0<=31){u=0;l=r;return u|0}A=o[e+332>>2]|0;a=n[528]|0;c=a&255;u=c&2;c=c>>>1^1;e=0;while(1){h=o[t+(e<<2)+4>>2]|0;h=(s[A+(h>>1)>>0]|0)^h&1;e=e+1|0;if((h&255)<<24>>24==a<<24>>24&c|u&h){i=1;t=5;break}if((e|0)>=(i>>>5|0)){i=0;t=5;break}}if((t|0)==5){l=r;return i|0}return 0}function Tt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;s=l;r=e+296|0;if((o[r>>2]|0)<=(t|0)){l=s;return}i=e+284|0;E=o[i>>2]|0;a=e+292|0;I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0;if((E|0)>(m|0)){C=e+280|0;h=e+332|0;u=e+88|0;c=e+348|0;g=e+460|0;p=e+476|0;d=e+472|0;f=e+380|0;do{E=E+-1|0;m=o[(o[C>>2]|0)+(E<<2)>>2]>>1;n[(o[h>>2]|0)+m>>0]=n[544]|0;I=o[u>>2]|0;if((I|0)<=1){if((I|0)==1?(E|0)>(o[(o[a>>2]|0)+((o[r>>2]|0)+-1<<2)>>2]|0):0)A=7}else A=7;if((A|0)==7){A=0;n[(o[c>>2]|0)+m>>0]=o[(o[C>>2]|0)+(E<<2)>>2]&1}if(!((o[p>>2]|0)>(m|0)?(o[(o[d>>2]|0)+(m<<2)>>2]|0)>-1:0))A=11;if((A|0)==11?(A=0,(n[(o[f>>2]|0)+m>>0]|0)!=0):0)or(g,m);I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0}while((E|0)>(m|0));E=o[i>>2]|0}o[e+512>>2]=m;e=o[I+(t<<2)>>2]|0;if((E-e|0)>0)o[i>>2]=e;if(((o[r>>2]|0)-t|0)<=0){l=s;return}o[r>>2]=t;l=s;return}function Pt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0;t=l;i=e+72|0;d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;c=e+464|0;if(d/2147483647.0<+u[e+64>>3]?(h=o[c>>2]|0,(h|0)!=0):0){d=d*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;h=o[(o[e+460>>2]|0)+(~~(+(h|0)*(d/2147483647.0))<<2)>>2]|0;f=n[(o[e+332>>2]|0)+h>>0]|0;g=n[544]|0;p=g&255;if(((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p|0)!=0?(n[(o[e+380>>2]|0)+h>>0]|0)!=0:0){p=e+176|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,1,0)|0;o[p>>2]=f;o[p+4>>2]=R}}else h=-1;g=e+460|0;p=e+332|0;f=e+380|0;while(1){if(((h|0)!=-1?(C=n[(o[p>>2]|0)+h>>0]|0,A=n[544]|0,r=A&255,s=r>>>1^1,(s&C<<24>>24==A<<24>>24|C&2&r|0)!=0):0)?(n[(o[f>>2]|0)+h>>0]|0)!=0:0)break;if(!(o[c>>2]|0)){r=-2;a=17;break}h=lr(g)|0}if((a|0)==17){l=t;return r|0}c=n[(o[e+364>>2]|0)+h>>0]|0;a=c&255;if(!(s&c<<24>>24==A<<24>>24|r&2&a)){p=n[528]|0;C=p&255;C=((C>>>1^1)&c<<24>>24==p<<24>>24|a&2&C|0)!=0|h<<1;l=t;return C|0}if(!(n[e+92>>0]|0)){C=(n[(o[e+348>>2]|0)+h>>0]|0)!=0|h<<1;l=t;return C|0}else{d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;C=d/2147483647.0<.5|h<<1;l=t;return C|0}return 0}function Ut(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0,a=0,h=0,g=0,f=0,p=0,d=0,C=0.0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0.0,H=0;s=l;l=l+16|0;p=s+8|0;I=s+4|0;g=s;h=r+4|0;A=o[h>>2]|0;a=r+8|0;if((A|0)==(o[a>>2]|0)){d=(A>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-A|0)){G=Qe(1)|0;ze(G|0,48,0)}Y=o[r>>2]|0;G=d+A|0;o[a>>2]=G;G=On(Y,G<<2)|0;o[r>>2]=G;if((G|0)==0?(o[(Ye()|0)>>2]|0)==12:0){G=Qe(1)|0;ze(G|0,48,0)}A=o[h>>2]|0}a=(o[r>>2]|0)+(A<<2)|0;if(a){o[a>>2]=0;A=o[h>>2]|0}o[h>>2]=A+1;d=e+544|0;M=e+280|0;A=e+588|0;a=e+396|0;S=e+504|0;x=e+316|0;k=e+540|0;b=e+476|0;D=e+472|0;v=e+460|0;Q=e+488|0;B=e+296|0;y=e+496|0;w=e+272|0;F=e+268|0;K=-2;N=(o[e+284>>2]|0)+-1|0;L=0;do{T=o[d>>2]|0;t=T+(t<<2)|0;P=o[t>>2]|0;if((P&4|0)!=0?(C=+u[y>>3],G=t+(P>>>5<<2)+4|0,J=C+ +c[G>>2],c[G>>2]=J,J>1.0e20):0){_=o[w>>2]|0;if((_|0)>0){U=o[F>>2]|0;P=0;do{G=T+(o[U+(P<<2)>>2]<<2)|0;G=G+((o[G>>2]|0)>>>5<<2)+4|0;c[G>>2]=+c[G>>2]*1.0e-20;P=P+1|0}while((P|0)!=(_|0))}u[y>>3]=C*1.0e-20}K=(K|0)!=-2&1;if(K>>>0<(o[t>>2]|0)>>>5>>>0)do{P=o[t+(K<<2)+4>>2]|0;o[I>>2]=P;P=P>>1;T=(o[A>>2]|0)+P|0;do{if((n[T>>0]|0)==0?(o[(o[a>>2]|0)+(P<<3)+4>>2]|0)>0:0){_=o[x>>2]|0;G=_+(P<<3)|0;J=+u[S>>3]+ +u[G>>3];u[G>>3]=J;if(J>1.0e+100){O=o[k>>2]|0;if((O|0)>0){U=0;do{G=_+(U<<3)|0;u[G>>3]=+u[G>>3]*1.0e-100;U=U+1|0}while((U|0)!=(O|0))}u[S>>3]=+u[S>>3]*1.0e-100}if((o[b>>2]|0)>(P|0)?(m=o[D>>2]|0,E=o[m+(P<<2)>>2]|0,(E|0)>-1):0){U=o[v>>2]|0;_=o[U+(E<<2)>>2]|0;e:do{if(!E)Y=0;else{G=E;while(1){Y=G;G=G+-1>>1;j=U+(G<<2)|0;O=o[j>>2]|0;H=o[o[Q>>2]>>2]|0;if(!(+u[H+(_<<3)>>3]>+u[H+(O<<3)>>3]))break e;o[U+(Y<<2)>>2]=O;o[m+(o[j>>2]<<2)>>2]=Y;if(!G){Y=0;break}}}}while(0);o[U+(Y<<2)>>2]=_;o[m+(_<<2)>>2]=Y}n[T>>0]=1;if((o[(o[a>>2]|0)+(P<<3)+4>>2]|0)<(o[B>>2]|0)){sr(r,I);break}else{L=L+1|0;break}}}while(0);K=K+1|0}while((K|0)<((o[t>>2]|0)>>>5|0));t=o[M>>2]|0;T=o[A>>2]|0;do{K=N;N=N+-1|0;K=o[t+(K<<2)>>2]|0;U=K>>1;P=T+U|0}while((n[P>>0]|0)==0);t=o[(o[a>>2]|0)+(U<<3)>>2]|0;n[P>>0]=0;L=L+-1|0}while((L|0)>0);o[o[r>>2]>>2]=K^1;I=e+616|0;y=o[I>>2]|0;E=e+620|0;if(!y)w=o[E>>2]|0;else{o[E>>2]=0;w=0}m=o[h>>2]|0;if((w|0)<(m|0)){Q=e+624|0;B=o[Q>>2]|0;if((B|0)<(m|0)){H=m+1-B&-2;w=(B>>1)+2&-2;w=(H|0)>(w|0)?H:w;if((w|0)>(2147483647-B|0)){H=Qe(1)|0;ze(H|0,48,0)}H=w+B|0;o[Q>>2]=H;y=On(y,H<<2)|0;o[I>>2]=y;if((y|0)==0?(o[(Ye()|0)>>2]|0)==12:0){H=Qe(1)|0;ze(H|0,48,0)}}w=o[E>>2]|0;e:do{if((w|0)<(m|0))while(1){y=y+(w<<2)|0;if(y)o[y>>2]=0;w=w+1|0;if((w|0)==(m|0))break e;y=o[I>>2]|0}}while(0);o[E>>2]=m;m=o[h>>2]|0}if((m|0)>0){w=o[I>>2]|0;y=o[r>>2]|0;B=0;do{o[w+(B<<2)>>2]=o[y+(B<<2)>>2];B=B+1|0;m=o[h>>2]|0}while((B|0)<(m|0))}y=o[e+84>>2]|0;if((y|0)==1)if((m|0)>1){g=o[r>>2]|0;f=1;y=1;while(1){m=o[g+(f<<2)>>2]|0;p=o[a>>2]|0;w=o[p+(m>>1<<3)>>2]|0;e:do{if((w|0)!=-1){B=(o[d>>2]|0)+(w<<2)|0;Q=o[B>>2]|0;if(Q>>>0>63){w=o[A>>2]|0;v=1;while(1){H=o[B+(v<<2)+4>>2]>>1;if((n[w+H>>0]|0)==0?(o[p+(H<<3)+4>>2]|0)>0:0)break;v=v+1|0;if((v|0)>=(Q>>>5|0))break e}o[g+(y<<2)>>2]=m;y=y+1|0}}else{o[g+(y<<2)>>2]=m;y=y+1|0}}while(0);f=f+1|0;p=o[h>>2]|0;if((f|0)>=(p|0)){g=p;break}}}else{g=m;f=1;y=1}else if((y|0)==2)if((m|0)>1){d=1;y=1;do{w=o[r>>2]|0;m=o[w+(d<<2)>>2]|0;if((o[(o[a>>2]|0)+(m>>1<<3)>>2]|0)!=-1){o[g>>2]=m;o[p+0>>2]=o[g+0>>2];if(!(_t(e,p)|0)){m=o[r>>2]|0;w=m;m=o[m+(d<<2)>>2]|0;f=62}}else f=62;if((f|0)==62){f=0;o[w+(y<<2)>>2]=m;y=y+1|0}d=d+1|0;m=o[h>>2]|0}while((d|0)<(m|0));g=m;f=d}else{g=m;f=1;y=1}else{g=m;f=m;y=m}H=e+240|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;f=f-y|0;if((f|0)>0){g=g-f|0;o[h>>2]=g}H=e+248|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;if((g|0)==1)r=0;else{r=o[r>>2]|0;if((g|0)>2){e=o[a>>2]|0;h=2;f=1;do{f=(o[e+(o[r+(h<<2)>>2]>>1<<3)+4>>2]|0)>(o[e+(o[r+(f<<2)>>2]>>1<<3)+4>>2]|0)?h:f;h=h+1|0}while((h|0)<(g|0))}else f=1;G=r+(f<<2)|0;H=o[G>>2]|0;r=r+4|0;o[G>>2]=o[r>>2];o[r>>2]=H;r=o[(o[a>>2]|0)+(H>>1<<3)+4>>2]|0}o[i>>2]=r;if((o[E>>2]|0)>0)i=0;else{l=s;return}do{n[(o[A>>2]|0)+(o[(o[I>>2]|0)+(i<<2)>>2]>>1)>>0]=0;i=i+1|0}while((i|0)<(o[E>>2]|0));l=s;return}function _t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;g=o[t>>2]|0;u=e+396|0;d=o[u>>2]|0;c=e+544|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;A=e+604|0;i=e+608|0;if(o[A>>2]|0)o[i>>2]=0;s=e+588|0;a=e+612|0;e=e+616|0;f=1;while(1){if(f>>>0<(o[E>>2]|0)>>>5>>>0){C=o[E+(f<<2)+4>>2]|0;p=C>>1;if((o[d+(p<<3)+4>>2]|0)!=0?(h=n[(o[s>>2]|0)+p>>0]|0,(h+-1<<24>>24&255)>=2):0){E=o[i>>2]|0;I=(E|0)==(o[a>>2]|0);if(h<<24>>24==3?1:(o[d+(p<<3)>>2]|0)==-1){c=8;break}if(I){d=(E>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-E|0)){c=24;break}m=o[A>>2]|0;I=d+E|0;o[a>>2]=I;I=On(m,I<<3)|0;o[A>>2]=I;if((I|0)==0?(o[(Ye()|0)>>2]|0)==12:0){c=24;break}E=o[i>>2]|0}o[i>>2]=E+1;d=(o[A>>2]|0)+(E<<3)|0;if(d){m=d;o[m>>2]=f;o[m+4>>2]=g}o[t>>2]=C;E=o[u>>2]|0;g=C;d=E;E=(o[c>>2]|0)+(o[E+(p<<3)>>2]<<2)|0;f=0}}else{g=(o[s>>2]|0)+(g>>1)|0;if(!(n[g>>0]|0)){n[g>>0]=2;sr(e,t)}g=o[i>>2]|0;if(!g){i=1;c=34;break}m=g+-1|0;g=o[A>>2]|0;f=o[g+(m<<3)>>2]|0;g=o[g+(m<<3)+4>>2]|0;o[t>>2]=g;d=o[u>>2]|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;o[i>>2]=m}f=f+1|0}if((c|0)==8){if(I){c=(E>>1)+2&-2;c=(c|0)<2?2:c;if((c|0)>(2147483647-E|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=c+E|0;o[a>>2]=m;m=On(I,m<<3)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}E=o[i>>2]|0}a=E+1|0;o[i>>2]=a;c=(o[A>>2]|0)+(E<<3)|0;if(c){a=c;o[a>>2]=0;o[a+4>>2]=g;a=o[i>>2]|0}if((a|0)>0)c=0;else{m=0;l=r;return m|0}do{u=(o[s>>2]|0)+(o[(o[A>>2]|0)+(c<<3)+4>>2]>>1)|0;if(!(n[u>>0]|0)){n[u>>0]=3;sr(e,(o[A>>2]|0)+(c<<3)+4|0);a=o[i>>2]|0}c=c+1|0}while((c|0)<(a|0));i=0;l=r;return i|0}else if((c|0)==24)ze(Qe(1)|0,48,0);else if((c|0)==34){l=r;return i|0}return 0}function Ot(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;a=l;l=l+32|0;A=a+16|0;s=a+12|0;c=a+8|0;i=a;g=r+20|0;u=r+16|0;if((o[g>>2]|0)>0){h=0;do{n[(o[r>>2]|0)+(o[(o[u>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[g>>2]|0))}if(o[u>>2]|0)o[g>>2]=0;h=o[t>>2]|0;o[c>>2]=h;o[s>>2]=h;o[A+0>>2]=o[s+0>>2];hr(r,A,0);u=(o[r>>2]|0)+h|0;if(!(n[u>>0]|0)){n[u>>0]=1;sr(r+16|0,c)}if(!(o[e+296>>2]|0)){l=a;return}t=h>>1;f=e+588|0;n[(o[f>>2]|0)+t>>0]=1;p=o[e+284>>2]|0;g=e+292|0;E=o[o[g>>2]>>2]|0;if((p|0)>(E|0)){c=e+280|0;u=e+396|0;h=r+16|0;e=e+544|0;do{p=p+-1|0;C=o[(o[c>>2]|0)+(p<<2)>>2]|0;d=C>>1;if(n[(o[f>>2]|0)+d>>0]|0){E=o[u>>2]|0;I=o[E+(d<<3)>>2]|0;e:do{if((I|0)==-1){C=C^1;o[i>>2]=C;o[s>>2]=C;o[A+0>>2]=o[s+0>>2];hr(r,A,0);C=(o[r>>2]|0)+C|0;if(!(n[C>>0]|0)){n[C>>0]=1;sr(h,i)}}else{C=(o[e>>2]|0)+(I<<2)|0;I=o[C>>2]|0;if(I>>>0>63){m=1;while(1){y=o[C+(m<<2)+4>>2]>>1;if((o[E+(y<<3)+4>>2]|0)>0){n[(o[f>>2]|0)+y>>0]=1;I=o[C>>2]|0}m=m+1|0;if((m|0)>=(I>>>5|0))break e;E=o[u>>2]|0}}}}while(0);n[(o[f>>2]|0)+d>>0]=0;E=o[o[g>>2]>>2]|0}}while((p|0)>(E|0))}n[(o[f>>2]|0)+t>>0]=0;l=a;return}function jt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,h=0,g=0.0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0;r=l;l=l+16|0;p=r+4|0;m=r;t=e+272|0;w=o[t>>2]|0;g=+u[e+496>>3]/+(w|0);A=e+544|0;a=e+268|0;y=o[a>>2]|0;o[m>>2]=A;o[p+0>>2]=o[m+0>>2];gr(y,w,p);p=o[t>>2]|0;if((p|0)>0){h=e+332|0;f=e+396|0;d=0;y=0;do{I=o[a>>2]|0;m=o[I+(d<<2)>>2]|0;w=o[A>>2]|0;C=w+(m<<2)|0;E=o[C>>2]|0;do{if(E>>>0>95){B=o[w+(m+1<<2)>>2]|0;w=B>>1;B=(s[(o[h>>2]|0)+w>>0]|0)^B&1;v=n[528]|0;Q=v&255;if(((B&255)<<24>>24==v<<24>>24&(Q>>>1^1)|Q&2&B|0)!=0?(v=o[(o[f>>2]|0)+(w<<3)>>2]|0,(v|0)!=-1&(v|0)==(m|0)):0){i=9;break}if((d|0)>=((p|0)/2|0|0)?!(+c[C+(E>>>5<<2)+4>>2]<g):0){i=9;break}Kt(e,m)}else i=9}while(0);if((i|0)==9){i=0;o[I+(y<<2)>>2]=m;y=y+1|0}d=d+1|0;p=o[t>>2]|0}while((d|0)<(p|0))}else{d=0;y=0}i=d-y|0;if((i|0)>0)o[t>>2]=p-i;if(!(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))){l=r;return}ji[o[(o[e>>2]|0)+8>>2]&31](e);l=r;return}function Yt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;r=l;i=t+4|0;h=o[i>>2]|0;if((h|0)>0){a=e+544|0;A=e+332|0;c=0;u=0;do{m=o[t>>2]|0;p=o[m+(c<<2)>>2]|0;h=(o[a>>2]|0)+(p<<2)|0;f=o[h>>2]|0;do{if(f>>>0>31){y=o[A>>2]|0;C=n[528]|0;d=C&255;w=d&2;d=d>>>1^1;E=f>>>5;I=0;do{B=o[h+(I<<2)+4>>2]|0;B=(s[y+(B>>1)>>0]|0)^B&1;I=I+1|0;if((B&255)<<24>>24==C<<24>>24&d|w&B){g=7;break}}while((I|0)<(E|0));if((g|0)==7){g=0;Kt(e,p);break}if(f>>>0>95){g=n[536]|0;d=f>>>5;p=2;do{C=h+(p<<2)+4|0;B=o[C>>2]|0;B=(s[(o[A>>2]|0)+(B>>1)>>0]|0)^B&1;w=g&255;if((B&255)<<24>>24==g<<24>>24&(w>>>1^1)|w&2&B){o[C>>2]=o[h+(d+-1<<2)+4>>2];f=o[h>>2]|0;if(f&8){f=f>>>5;o[h+(f+-1<<2)+4>>2]=o[h+(f<<2)+4>>2];f=o[h>>2]|0}f=f+-32|0;o[h>>2]=f;p=p+-1|0}p=p+1|0;d=f>>>5}while((p|0)<(d|0));p=o[t>>2]|0;m=p;p=o[p+(c<<2)>>2]|0;g=16}else g=16}else g=16}while(0);if((g|0)==16){g=0;o[m+(u<<2)>>2]=p;u=u+1|0}c=c+1|0;h=o[i>>2]|0}while((c|0)<(h|0))}else{c=0;u=0}t=c-u|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Gt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;s=l;l=l+16|0;r=s+4|0;A=s;o[r>>2]=0;t=r+4|0;o[t>>2]=0;i=r+8|0;o[i>>2]=0;o[A>>2]=0;a=e+540|0;g=o[a>>2]|0;if((g|0)>0){u=e+380|0;c=e+332|0;h=0;do{if((n[(o[u>>2]|0)+h>>0]|0)!=0?(p=n[(o[c>>2]|0)+h>>0]|0,d=n[544]|0,f=d&255,((f>>>1^1)&p<<24>>24==d<<24>>24|p&2&f|0)!=0):0){Ar(r,A);g=o[a>>2]|0}h=h+1|0;o[A>>2]=h}while((h|0)<(g|0))}fr(e+460|0,r);e=o[r>>2]|0;if(!e){l=s;return}o[t>>2]=0;_n(e);o[r>>2]=0;o[i>>2]=0;l=s;return}function Jt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;t=l;i=e+492|0;if((n[i>>0]|0)!=0?(Mt(e)|0)==-1:0){i=e+284|0;s=e+516|0;if((o[i>>2]|0)==(o[s>>2]|0)){E=1;l=t;return E|0}A=e+520|0;E=A;C=o[E+4>>2]|0;if((C|0)>0|(C|0)==0&(o[E>>2]|0)>>>0>0){E=1;l=t;return E|0}Yt(e,e+268|0);if(n[e+536>>0]|0){Yt(e,e+256|0);c=e+564|0;a=e+568|0;if((o[a>>2]|0)>0){g=e+588|0;h=0;do{n[(o[g>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=1;h=h+1|0}while((h|0)<(o[a>>2]|0))}p=o[i>>2]|0;if((p|0)>0){h=o[e+280>>2]|0;g=o[e+588>>2]|0;d=0;f=0;do{C=o[h+(d<<2)>>2]|0;if(!(n[g+(C>>1)>>0]|0)){o[h+(f<<2)>>2]=C;p=o[i>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}h=d-f|0;if((h|0)>0){p=p-h|0;o[i>>2]=p}o[e+512>>2]=p;e:do{if((o[a>>2]|0)>0){f=e+588|0;h=0;do{n[(o[f>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0;g=o[a>>2]|0}while((h|0)<(g|0));if((g|0)>0){g=e+580|0;f=e+584|0;h=e+576|0;p=0;while(1){C=o[g>>2]|0;if((C|0)==(o[f>>2]|0)){d=(C>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-C|0)){r=28;break}E=o[h>>2]|0;d=d+C|0;o[f>>2]=d;d=On(E,d<<2)|0;o[h>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){r=28;break}C=o[g>>2]|0}else d=o[h>>2]|0;E=d+(C<<2)|0;if(E){o[E>>2]=0;C=o[g>>2]|0}o[g>>2]=C+1;E=o[c>>2]|0;o[d+(C<<2)>>2]=o[E+(p<<2)>>2];p=p+1|0;if((p|0)>=(o[a>>2]|0))break e}if((r|0)==28)ze(Qe(1)|0,48,0)}else r=21}else r=21}while(0);if((r|0)==21)E=o[c>>2]|0;if(E)o[a>>2]=0}if(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e);Gt(e);o[s>>2]=o[i>>2];C=e+224|0;E=e+232|0;C=ai(o[E>>2]|0,o[E+4>>2]|0,o[C>>2]|0,o[C+4>>2]|0)|0;E=A;o[E>>2]=C;o[E+4>>2]=R;E=1;l=t;return E|0}n[i>>0]=0;E=0;l=t;return E|0}function Ht(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,z=0,W=0,V=0,X=0,Z=0,$=0,ee=0,te=0,re=0,ne=0,ie=0,oe=0.0,se=0,Ae=0,ae=0,ce=0.0,ue=0,le=0,he=0,ge=0,fe=0,pe=0,de=0.0,Ce=0,Ee=0,Ie=0.0;h=l;l=l+64|0;Z=h;F=h+60|0;b=h+56|0;i=h+44|0;$=h+40|0;o[i>>2]=0;a=i+4|0;o[a>>2]=0;A=i+8|0;o[A>>2]=0;U=t+160|0;P=U;P=ai(o[P>>2]|0,o[P+4>>2]|0,1,0)|0;o[U>>2]=P;o[U+4>>2]=R;U=(r|0)<0;P=t+680|0;T=t+664|0;L=t+672|0;d=t+296|0;w=t+272|0;f=t+284|0;N=t+640|0;x=t+308|0;k=t+304|0;C=t+332|0;M=t+292|0;te=t+168|0;I=t+396|0;y=t+280|0;K=t+184|0;S=t+192|0;m=t+48|0;J=t+504|0;V=t+56|0;ee=t+496|0;re=t+656|0;_=t+144|0;O=t+648|0;j=t+128|0;Y=t+44|0;G=t+200|0;H=t+208|0;z=t+224|0;W=t+216|0;E=t+232|0;X=t+540|0;p=t+292|0;B=t+544|0;v=t+276|0;Q=t+268|0;D=t+268|0;ne=0;e:while(1){ie=U|(ne|0)<(r|0);while(1){se=Mt(t)|0;if((se|0)!=-1)break;if(!ie){se=41;break e}if(n[P>>0]|0){se=41;break e}se=T;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=S,Ce=o[Ee+4>>2]|0,!(Ce>>>0<Ae>>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}se=L;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=K,Ce=o[Ee+4>>2]|0,!(Ce>>>0<Ae>>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}if((o[d>>2]|0)==0?!(Jt(t)|0):0){se=50;break e}if(+((o[w>>2]|0)-(o[f>>2]|0)|0)>=+u[N>>3])jt(t);while(1){se=o[d>>2]|0;if((se|0)>=(o[x>>2]|0)){se=59;break}ue=o[(o[k>>2]|0)+(se<<2)>>2]|0;Ae=s[(o[C>>2]|0)+(ue>>1)>>0]|0;Ee=Ae^ue&1;ae=Ee&255;pe=n[528]|0;Ce=pe&255;if(!(ae<<24>>24==pe<<24>>24&(Ce>>>1^1)|Ce&2&Ee)){se=56;break}o[F>>2]=o[f>>2];Ar(M,F)}if((se|0)==56){se=0;Ce=n[536]|0;Ee=Ce&255;if((Ee>>>1^1)&ae<<24>>24==Ce<<24>>24|Ae&2&Ee){se=57;break e}if((ue|0)==-2)se=59}if((se|0)==59){Ee=te;Ee=ai(o[Ee>>2]|0,o[Ee+4>>2]|0,1,0)|0;ue=te;o[ue>>2]=Ee;o[ue+4>>2]=R;ue=Pt(t)|0;if((ue|0)==-2){se=60;break e}}o[Z>>2]=o[f>>2];Ar(M,Z);Ee=ue>>1;n[(o[C>>2]|0)+Ee>>0]=(ue&1^1)&255^1;Ce=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=Ce;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=ue}Ce=S;Ce=ai(o[Ce>>2]|0,o[Ce+4>>2]|0,1,0)|0;Ee=S;o[Ee>>2]=Ce;o[Ee+4>>2]=R;ne=ne+1|0;if(!(o[d>>2]|0)){se=5;break}if(o[i>>2]|0)o[a>>2]=0;Ut(t,se,i,b);Tt(t,o[b>>2]|0);if((o[a>>2]|0)==1){Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}else{ie=cr(B,i,1)|0;se=o[w>>2]|0;if((se|0)==(o[v>>2]|0)){Ae=(se>>1)+2&-2;Ae=(Ae|0)<2?2:Ae;if((Ae|0)>(2147483647-se|0)){se=14;break}Ce=o[Q>>2]|0;Ee=Ae+se|0;o[v>>2]=Ee;Ee=On(Ce,Ee<<2)|0;o[Q>>2]=Ee;if((Ee|0)==0?(o[(Ye()|0)>>2]|0)==12:0){se=14;break}se=o[w>>2]|0}o[w>>2]=se+1;se=(o[Q>>2]|0)+(se<<2)|0;if(se)o[se>>2]=ie;Nt(t,ie);ae=o[B>>2]|0;Ee=ae+(ie<<2)|0;oe=+u[ee>>3];Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;Ie=oe+ +c[Ee>>2];c[Ee>>2]=Ie;if(Ie>1.0e20){Ae=o[w>>2]|0;if((Ae|0)>0){se=o[D>>2]|0;ue=0;do{Ee=ae+(o[se+(ue<<2)>>2]<<2)|0;Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;c[Ee>>2]=+c[Ee>>2]*1.0e-20;ue=ue+1|0}while((ue|0)!=(Ae|0))}u[ee>>3]=oe*1.0e-20}Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=ie;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}u[J>>3]=1.0/+u[m>>3]*+u[J>>3];u[ee>>3]=1.0/+u[V>>3]*+u[ee>>3];Ee=(o[re>>2]|0)+-1|0;o[re>>2]=Ee;if(Ee)continue;oe=+u[_>>3]*+u[O>>3];u[O>>3]=oe;o[re>>2]=~~oe;oe=+u[j>>3]*+u[N>>3];u[N>>3]=oe;if((o[Y>>2]|0)<=0)continue;se=o[S>>2]|0;ie=o[G>>2]|0;fe=o[d>>2]|0;if(!fe)Ae=f;else Ae=o[p>>2]|0;Ae=o[Ae>>2]|0;ge=o[H>>2]|0;he=o[z>>2]|0;le=o[W>>2]|0;ue=E;ae=o[ue>>2]|0;ue=o[ue+4>>2]|0;ce=+(o[X>>2]|0);de=1.0/ce;if((fe|0)<0)Ie=0.0;else{pe=0;Ie=0.0;while(1){if(!pe)Ce=0;else Ce=o[(o[p>>2]|0)+(pe+-1<<2)>>2]|0;if((pe|0)==(fe|0))Ee=f;else Ee=(o[p>>2]|0)+(pe<<2)|0;Ie=Ie+ +q(+de,+ +(pe|0))*+((o[Ee>>2]|0)-Ce|0);if((pe|0)==(fe|0))break;else pe=pe+1|0}}o[Z>>2]=se;o[Z+4>>2]=ie-Ae;o[Z+8>>2]=ge;o[Z+12>>2]=he;o[Z+16>>2]=~~oe;o[Z+20>>2]=le;Ee=Z+24|0;u[g>>3]=(+(ae>>>0)+4294967296.0*+(ue>>>0))/+(le|0);o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];Ee=Z+32|0;u[g>>3]=Ie/ce*100.0;o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];_e(1832,Z|0)|0}if((se|0)==5)n[e>>0]=n[536]|0;else if((se|0)==14)ze(Qe(1)|0,48,0);else if((se|0)==41){oe=+(o[X>>2]|0);ce=1.0/oe;C=o[d>>2]|0;if((C|0)<0)de=0.0;else{d=0;de=0.0;while(1){if(!d)E=0;else E=o[(o[p>>2]|0)+(d+-1<<2)>>2]|0;if((d|0)==(C|0))I=f;else I=(o[p>>2]|0)+(d<<2)|0;de=de+ +q(+ce,+ +(d|0))*+((o[I>>2]|0)-E|0);if((d|0)==(C|0))break;else d=d+1|0}}u[t+528>>3]=de/oe;Tt(t,0);n[e>>0]=n[544]|0}else if((se|0)==50)n[e>>0]=n[536]|0;else if((se|0)==57){o[$>>2]=ue^1;Ee=t+16|0;o[Z+0>>2]=o[$+0>>2];Ot(t,Z,Ee);n[e>>0]=n[536]|0}else if((se|0)==60)n[e>>0]=n[528]|0;e=o[i>>2]|0;if(!e){l=h;return}o[a>>2]=0;_n(e);o[i>>2]=0;o[A>>2]=0;l=h;return}function qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0.0,w=0,B=0,Q=0,v=0.0,D=0,b=0;i=l;l=l+16|0;A=i;r=t+4|0;if(o[r>>2]|0)o[t+8>>2]=0;s=t+36|0;a=t+32|0;if((o[s>>2]|0)>0){c=t+16|0;h=0;do{n[(o[c>>2]|0)+(o[(o[a>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[s>>2]|0))}if(o[a>>2]|0)o[s>>2]=0;a=t+492|0;if(!(n[a>>0]|0)){n[e>>0]=n[536]|0;l=i;return}c=t+152|0;Q=c;Q=ai(o[Q>>2]|0,o[Q+4>>2]|0,1,0)|0;o[c>>2]=Q;o[c+4>>2]=R;v=+u[t+120>>3]*+(o[t+208>>2]|0);c=t+640|0;u[c>>3]=v;y=+(o[t+104>>2]|0);if(v<y)u[c>>3]=y;w=o[t+136>>2]|0;u[t+648>>3]=+(w|0);o[t+656>>2]=w;w=n[544]|0;c=t+44|0;if((o[c>>2]|0)>0){Ue(2288)|0;Ue(2368)|0;Ue(2448)|0;Ue(2528)|0;f=n[544]|0}else f=w;g=t+192|0;h=t+184|0;Q=f&255;e:do{if((Q>>>1^1)&w<<24>>24==f<<24>>24|w&2&Q){d=t+80|0;I=t+112|0;p=t+108|0;f=t+680|0;C=t+664|0;E=t+672|0;m=0;while(1){y=+u[I>>3];if(!(n[d>>0]|0))y=+q(+y,+ +(m|0));else{Q=m+1|0;if((m|0)>0){B=0;w=1;do{B=B+1|0;w=w<<1|1}while((w|0)<(Q|0));Q=w+-1|0}else{B=0;Q=0}if((Q|0)!=(m|0)){w=m;do{D=Q>>1;B=B+-1|0;w=(w|0)%(D|0)|0;Q=D+-1|0}while((Q|0)!=(w|0))}y=+q(+y,+ +(B|0))}Ht(A,t,~~(y*+(o[p>>2]|0)));w=n[A>>0]|0;if(n[f>>0]|0)break e;Q=C;B=o[Q+4>>2]|0;if((B|0)>=0?(D=g,b=o[D+4>>2]|0,!(b>>>0<B>>>0|((b|0)==(B|0)?(o[D>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;Q=E;B=o[Q+4>>2]|0;if((B|0)>=0?(b=h,D=o[b+4>>2]|0,!(D>>>0<B>>>0|((D|0)==(B|0)?(o[b>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;D=n[544]|0;b=D&255;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|w&2&b))break;else m=m+1|0}}}while(0);if((o[c>>2]|0)>0)Ue(2528)|0;D=n[528]|0;b=D&255;A=w&2;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|A&b)){D=n[536]|0;b=D&255;if(((b>>>1^1)&w<<24>>24==D<<24>>24|A&b|0)!=0?(o[s>>2]|0)==0:0)n[a>>0]=0}else{s=t+540|0;nr(r,o[s>>2]|0);if((o[s>>2]|0)>0){A=t+332|0;a=0;do{n[(o[r>>2]|0)+a>>0]=n[(o[A>>2]|0)+a>>0]|0;a=a+1|0}while((a|0)<(o[s>>2]|0))}}Tt(t,0);n[e>>0]=w;l=i;return}function zt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;r=l;A=e+412|0;pr(A);c=e+540|0;if((o[c>>2]|0)>0){a=e+544|0;i=0;do{u=i<<1;g=o[A>>2]|0;h=g+(u*12|0)+4|0;if((o[h>>2]|0)>0){p=g+(u*12|0)|0;f=0;do{E=(o[p>>2]|0)+(f<<3)|0;g=o[E>>2]|0;d=o[a>>2]|0;C=d+(g<<2)|0;if(!(o[C>>2]&16)){I=dr(t,C)|0;o[E>>2]=I;o[C>>2]=o[C>>2]|16;o[d+(g+1<<2)>>2]=I}else o[E>>2]=o[d+(g+1<<2)>>2];f=f+1|0}while((f|0)<(o[h>>2]|0));h=o[A>>2]|0}else h=g;g=u|1;u=h+(g*12|0)+4|0;if((o[u>>2]|0)>0){C=h+(g*12|0)|0;d=0;do{h=(o[C>>2]|0)+(d<<3)|0;p=o[h>>2]|0;f=o[a>>2]|0;g=f+(p<<2)|0;if(!(o[g>>2]&16)){I=dr(t,g)|0;o[h>>2]=I;o[g>>2]=o[g>>2]|16;o[f+(p+1<<2)>>2]=I}else o[h>>2]=o[f+(p+1<<2)>>2];d=d+1|0}while((d|0)<(o[u>>2]|0))}i=i+1|0}while((i|0)<(o[c>>2]|0))}i=e+284|0;if((o[i>>2]|0)>0){u=e+280|0;c=e+396|0;a=e+544|0;A=e+332|0;h=0;do{C=o[c>>2]|0;p=C+(o[(o[u>>2]|0)+(h<<2)>>2]>>1<<3)|0;d=o[p>>2]|0;do{if((d|0)!=-1){I=o[a>>2]|0;E=I+(d<<2)|0;f=(o[E>>2]&16|0)==0;if(f){m=o[I+(d+1<<2)>>2]|0;g=m>>1;m=(s[(o[A>>2]|0)+g>>0]|0)^m&1;w=n[528]|0;y=w&255;if(!((m&255)<<24>>24==w<<24>>24&(y>>>1^1)|y&2&m))break;w=o[C+(g<<3)>>2]|0;if(!((w|0)!=-1&(w|0)==(d|0)))break;if(f){w=dr(t,E)|0;o[p>>2]=w;o[E>>2]=o[E>>2]|16;o[I+(d+1<<2)>>2]=w;break}}o[p>>2]=o[I+(d+1<<2)>>2]}}while(0);h=h+1|0}while((h|0)<(o[i>>2]|0))}i=e+272|0;g=o[i>>2]|0;if((g|0)>0){a=e+268|0;A=e+544|0;h=o[a>>2]|0;c=0;u=0;do{p=h+(c<<2)|0;f=o[p>>2]|0;C=o[A>>2]|0;d=C+(f<<2)|0;E=o[d>>2]|0;if((E&3|0)!=1){if(!(E&16)){g=dr(t,d)|0;o[p>>2]=g;o[d>>2]=o[d>>2]|16;o[C+(f+1<<2)>>2]=g;g=o[a>>2]|0;h=g;g=o[g+(c<<2)>>2]|0}else{g=o[C+(f+1<<2)>>2]|0;o[p>>2]=g}o[h+(u<<2)>>2]=g;g=o[i>>2]|0;u=u+1|0}c=c+1|0}while((c|0)<(g|0))}else{c=0;u=0}A=c-u|0;if((A|0)>0)o[i>>2]=g-A;i=e+260|0;h=o[i>>2]|0;if((h|0)>0){A=e+256|0;e=e+544|0;u=o[A>>2]|0;a=0;c=0;do{g=u+(a<<2)|0;p=o[g>>2]|0;f=o[e>>2]|0;C=f+(p<<2)|0;d=o[C>>2]|0;if((d&3|0)!=1){if(!(d&16)){h=dr(t,C)|0;o[g>>2]=h;o[C>>2]=o[C>>2]|16;o[f+(p+1<<2)>>2]=h;h=o[A>>2]|0;u=h;h=o[h+(a<<2)>>2]|0}else{h=o[f+(p+1<<2)>>2]|0;o[g>>2]=h}o[u+(c<<2)>>2]=h;h=o[i>>2]|0;c=c+1|0}a=a+1|0}while((a|0)<(h|0))}else{a=0;c=0}t=a-c|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Wt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0;s=l;l=l+32|0;a=s;t=s+8|0;r=e+548|0;i=e+556|0;A=(o[r>>2]|0)-(o[i>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,A);A=t+16|0;n[A>>0]=0;zt(e,t);if((o[e+44>>2]|0)>1){c=o[t+4>>2]<<2;o[a>>2]=o[r>>2]<<2;o[a+4>>2]=c;_e(1888,a|0)|0}n[e+560>>0]=n[A>>0]|0;A=e+544|0;a=o[A>>2]|0;if(a)_n(a);o[A>>2]=o[t>>2];o[r>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[i>>2]=o[t+12>>2];l=s;return}function Vt(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[528]=0;n[536]=1;n[544]=2;Ct(552,608,624,2136,2144);o[138]=2168;u[72]=0.0;u[73]=1.0;n[592]=0;n[593]=0;i[297]=i[t+0>>1]|0;i[298]=i[t+2>>1]|0;i[299]=i[t+4>>1]|0;u[75]=.95;Ct(664,720,736,2136,2144);o[166]=2168;u[86]=0.0;u[87]=1.0;n[704]=0;n[705]=0;i[353]=i[t+0>>1]|0;i[354]=i[t+2>>1]|0;i[355]=i[t+4>>1]|0;u[89]=.999;Ct(776,832,848,2136,2144);o[194]=2168;u[100]=0.0;u[101]=1.0;n[816]=1;n[817]=1;i[409]=i[t+0>>1]|0;i[410]=i[t+2>>1]|0;i[411]=i[t+4>>1]|0;u[103]=0.0;Ct(936,992,1008,2136,2144);o[234]=2168;u[120]=0.0;u[121]=Q;n[976]=0;n[977]=0;i[489]=i[t+0>>1]|0;i[490]=i[t+2>>1]|0;i[491]=i[t+4>>1]|0;u[123]=91648253.0;Ct(1048,1080,1096,2136,2016);o[262]=280;r=1068|0;o[r>>2]=0;o[r+4>>2]=2;o[269]=2;Ct(1160,1192,1208,2136,2016);o[290]=280;r=1180|0;o[r>>2]=0;o[r+4>>2]=2;o[297]=2;Ct(1272,1296,1312,2136,1992);o[318]=160;n[1292]=0;Ct(1344,1368,1376,2136,1992);o[336]=160;n[1364]=1;Ct(1408,1440,1448,2136,2016);o[352]=280;r=1428|0;o[r>>2]=1;o[r+4>>2]=2147483647;o[359]=100;Ct(1480,1536,1544,2136,2144);o[370]=2168;u[188]=1.0;u[189]=Q;n[1520]=0;n[1521]=0;i[761]=i[t+0>>1]|0;i[762]=i[t+2>>1]|0;i[763]=i[t+4>>1]|0;u[191]=2.0;Ct(1584,1640,1648,2136,2144);o[396]=2168;u[201]=0.0;u[202]=Q;n[1624]=0;n[1625]=0;i[813]=i[t+0>>1]|0;i[814]=i[t+2>>1]|0;i[815]=i[t+4>>1]|0;u[204]=.2;Ct(1728,1760,1776,2136,2016);o[432]=280;t=1748|0;o[t>>2]=0;o[t+4>>2]=2147483647;o[439]=0;l=e;return}function Xt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Zt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0.0,d=0.0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){f=0;l=r;return f|0}h=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){g=0;while(1){f=g;g=g+1|0;if((n[h>>0]|0)!=c<<24>>24){e=0;break}c=n[a+g>>0]|0;h=t+(f+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[h>>0]|0)!=61){f=0;l=r;return f|0}a=h+1|0;p=+Xn(a,s);if(!(o[s>>2]|0)){f=0;l=r;return f|0}d=+u[e+32>>3];if(p>=d?(n[e+41>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2024,A|0)|0;nt(1)}d=+u[e+24>>3];if(p<=d?(n[e+40>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2080,A|0)|0;nt(1)}u[e+48>>3]=p;f=1;l=r;return f|0}function $t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0.0,c=0,h=0.0,f=0.0,p=0;r=l;l=l+48|0;i=r;s=o[E>>2]|0;p=o[e+16>>2]|0;c=(n[e+40>>0]|0)!=0?91:40;f=+u[e+24>>3];h=+u[e+32>>3];A=(n[e+41>>0]|0)!=0?93:41;a=+u[e+48>>3];o[i>>2]=o[e+4>>2];o[i+4>>2]=p;o[i+8>>2]=c;c=i+12|0;u[g>>3]=f;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];c=i+20|0;u[g>>3]=h;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];o[i+28>>2]=A;A=i+32|0;u[g>>3]=a;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];et(s|0,2232,i|0)|0;if(!t){l=r;return}o[i>>2]=o[e+8>>2];et(s|0,2e3,i|0)|0;qe(10,s|0)|0;l=r;return}function er(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0;r=l;n=e+8|0;i=o[n>>2]|0;if(i>>>0<t>>>0)A=i;else{l=r;return}while(1){if(A>>>0>=t>>>0)break;A=((A>>>3)+2+(A>>>1)&-2)+A|0;o[n>>2]=A;if(A>>>0<=i>>>0){s=4;break}}if((s|0)==4)ze(Qe(1)|0,48,0);n=On(o[e>>2]|0,A<<2)|0;if((n|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[e>>2]=n;l=r;return}function tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function rr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;i=l;l=l+16|0;n=i+4|0;r=i;u=o[t>>2]|0;A=u+1|0;s=e+4|0;if((o[s>>2]|0)<(A|0)){c=e+8|0;a=o[c>>2]|0;if((a|0)<(A|0)){h=u+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h*12|0)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}c=o[s>>2]|0;if((c|0)<(A|0)){a=o[e>>2]|0;do{u=a+(c*12|0)|0;if(u){o[u>>2]=0;o[a+(c*12|0)+4>>2]=0;o[a+(c*12|0)+8>>2]=0}c=c+1|0}while((c|0)!=(A|0))}o[s>>2]=A;u=o[t>>2]|0}s=o[e>>2]|0;if(!(o[s+(u*12|0)>>2]|0)){h=u;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}o[s+(u*12|0)+4>>2]=0;h=o[t>>2]|0;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}function nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0;i=l;r=e+4|0;if((o[r>>2]|0)>=(t|0)){l=i;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<(t|0)){c=t+1-s&-2;a=(s>>1)+2&-2;a=(c|0)>(a|0)?c:a;if((a|0)>(2147483647-s|0)){c=Qe(1)|0;ze(c|0,48,0)}u=o[e>>2]|0;c=a+s|0;o[A>>2]=c;c=On(u,c)|0;o[e>>2]=c;if((c|0)==0?(o[(Ye()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}s=o[r>>2]|0;if((s|0)<(t|0)){e=o[e>>2]|0;do{A=e+s|0;if(A)n[A>>0]=0;s=s+1|0}while((s|0)!=(t|0))}o[r>>2]=t;l=i;return}function ir(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;A=l;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){u=o[e>>2]|0;u=u+t|0;n[u>>0]=r;l=A;return}c=e+8|0;a=o[c>>2]|0;if((a|0)<(s|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0))do{c=(o[e>>2]|0)+a|0;if(c)n[c>>0]=0;a=a+1|0}while((a|0)!=(s|0));o[i>>2]=s;g=o[e>>2]|0;g=g+t|0;n[g>>0]=r;l=A;return}function or(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0;r=l;l=l+16|0;s=r;o[s>>2]=t;A=e+12|0;i=t+1|0;n=e+16|0;if((o[n>>2]|0)<(i|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(i|0)){g=t+2-a&-2;h=(a>>1)+2&-2;h=(g|0)>(h|0)?g:h;if((h|0)>(2147483647-a|0)){g=Qe(1)|0;ze(g|0,48,0)}f=o[A>>2]|0;g=h+a|0;o[c>>2]=g;g=On(f,g<<2)|0;o[A>>2]=g;if((g|0)==0?(o[(Ye()|0)>>2]|0)==12:0){f=Qe(1)|0;ze(f|0,48,0)}}a=o[n>>2]|0;if((i|0)>(a|0))oi((o[A>>2]|0)+(a<<2)|0,-1,i-a<<2|0)|0;o[n>>2]=i}o[(o[A>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[A>>2]|0;s=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(s<<2)>>2]|0;if(!s){g=0;f=t+(g<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=g;l=r;return}e=e+28|0;while(1){A=s;s=s+-1>>1;a=t+(s<<2)|0;c=o[a>>2]|0;f=o[o[e>>2]>>2]|0;if(!(+u[f+(i<<3)>>3]>+u[f+(c<<3)>>3])){e=14;break}o[t+(A<<2)>>2]=c;o[n+(o[a>>2]<<2)>>2]=A;if(!s){A=0;e=14;break}}if((e|0)==14){f=t+(A<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=A;l=r;return}}function sr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function Ar(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function ar(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;r=l;l=l+16|0;i=r+2|0;A=r+1|0;s=r;if((t|0)<16){s=t+-1|0;if((s|0)>0)A=0;else{l=r;return}do{i=A;A=A+1|0;if((A|0)<(t|0)){c=i;a=A;do{c=(o[e+(a<<2)>>2]|0)<(o[e+(c<<2)>>2]|0)?a:c;a=a+1|0}while((a|0)!=(t|0))}else c=i;g=e+(i<<2)|0;f=o[g>>2]|0;p=e+(c<<2)|0;o[g>>2]=o[p>>2];o[p>>2]=f}while((A|0)!=(s|0));l=r;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;h=-1;g=t;while(1){do{h=h+1|0;u=e+(h<<2)|0;c=o[u>>2]|0}while((c|0)<(a|0));do{g=g+-1|0;f=e+(g<<2)|0;p=o[f>>2]|0}while((a|0)<(p|0));if((h|0)>=(g|0))break;o[u>>2]=p;o[f>>2]=c}n[i+0>>0]=n[A+0>>0]|0;ar(e,h,i);p=t-h|0;n[i+0>>0]=n[s+0>>0]|0;ar(u,p,i);l=r;return}function cr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,A=0,a=0,u=0,h=0;n=l;a=r&1;A=s[e+16>>0]|0|a;i=t+4|0;u=((A+(o[i>>2]|0)<<2)+4|0)>>>2;h=e+4|0;er(e,u+(o[h>>2]|0)|0);r=o[h>>2]|0;u=u+r|0;o[h>>2]=u;if(u>>>0<r>>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}A=A<<3|a<<2;o[e>>2]=o[e>>2]&-32|A;A=o[i>>2]<<5|A;o[e>>2]=A;if((o[i>>2]|0)>0){A=o[t>>2]|0;t=0;do{o[e+(t<<2)+4>>2]=o[A+(t<<2)>>2];t=t+1|0}while((t|0)<(o[i>>2]|0));A=o[e>>2]|0}if(!(A&8)){l=n;return r|0}i=A>>>5;if(A&4){c[e+(i<<2)+4>>2]=0.0;l=n;return r|0}if(!i){i=0;A=0}else{A=0;t=0;do{A=1<<((o[e+(t<<2)+4>>2]|0)>>>1&31)|A;t=t+1|0}while((t|0)<(i|0))}o[e+(i<<2)+4>>2]=A;l=n;return r|0}function ur(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<3)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<3)|0;if(!n){l=r;return}s=t;A=o[s+4>>2]|0;a=n;o[a>>2]=o[s>>2];o[a+4>>2]=A;l=r;return}function lr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;t=l;r=o[e>>2]|0;i=o[r>>2]|0;a=e+4|0;f=o[r+((o[a>>2]|0)+-1<<2)>>2]|0;o[r>>2]=f;n=o[e+12>>2]|0;o[n+(f<<2)>>2]=0;o[n+(i<<2)>>2]=-1;f=(o[a>>2]|0)+-1|0;o[a>>2]=f;if((f|0)<=1){l=t;return i|0}s=o[r>>2]|0;c=e+28|0;e=0;h=1;while(1){g=(e<<1)+2|0;if((g|0)<(f|0)){p=o[r+(g<<2)>>2]|0;E=o[r+(h<<2)>>2]|0;f=o[o[c>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;A=6}}else{f=o[o[c>>2]>>2]|0;A=o[r+(h<<2)>>2]|0;p=A;d=+u[f+(A<<3)>>3];A=6}if((A|0)==6){A=0;g=h}if(!(d>+u[f+(s<<3)>>3]))break;o[r+(e<<2)>>2]=p;o[n+(p<<2)>>2]=e;h=g<<1|1;f=o[a>>2]|0;if((h|0)>=(f|0)){e=g;break}else e=g}o[r+(e<<2)>>2]=s;o[n+(s<<2)>>2]=e;l=t;return i|0}function hr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0;i=l;c=o[t>>2]|0;t=c+1|0;s=e+4|0;if((o[s>>2]|0)>=(t|0)){l=i;return}a=e+8|0;A=o[a>>2]|0;if((A|0)<(t|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}A=o[s>>2]|0;if((A|0)<(t|0))do{n[(o[e>>2]|0)+A>>0]=r;A=A+1|0}while((A|0)!=(t|0));o[s>>2]=t;l=i;return}function gr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;n=l;l=l+16|0;s=n+8|0;i=n+4|0;A=n;if((t|0)<16){i=t+-1|0;if((i|0)<=0){l=n;return}s=o[r>>2]|0;r=0;do{A=r;r=r+1|0;if((r|0)<(t|0)){a=o[s>>2]|0;h=A;u=r;do{g=a+(o[e+(u<<2)>>2]<<2)|0;m=o[g>>2]|0;d=m>>>5;if(m>>>0>95){f=a+(o[e+(h<<2)>>2]<<2)|0;p=(o[f>>2]|0)>>>5;if((p|0)==2)h=u;else h=+c[g+(d<<2)+4>>2]<+c[f+(p<<2)+4>>2]?u:h}u=u+1|0}while((u|0)!=(t|0))}else h=A;E=e+(A<<2)|0;I=o[E>>2]|0;m=e+(h<<2)|0;o[E>>2]=o[m>>2];o[m>>2]=I}while((r|0)!=(i|0));l=n;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;d=-1;f=t;while(1){I=d+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;u=o[r>>2]|0;h=o[u>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;d=h+(a<<2)|0;g=o[d>>2]|0;e:do{if(C>>>0>95)while(1){y=g>>>5;if((y|0)!=2?!(+c[E+(C>>>5<<2)+4>>2]<+c[d+(y<<2)+4>>2]):0){d=I;break e}I=I+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;if(C>>>0<=95){d=I;break}}else d=I}while(0);f=f+-1|0;E=e+(f<<2)|0;C=h+(a<<2)|0;e:do{if(g>>>0>95)while(1){I=h+(o[E>>2]<<2)|0;y=(o[I>>2]|0)>>>5;if((y|0)!=2?!(+c[C+(g>>>5<<2)+4>>2]<+c[I+(y<<2)+4>>2]):0)break e;y=f+-1|0;E=e+(y<<2)|0;f=y}}while(0);if((d|0)>=(f|0))break;o[p>>2]=o[E>>2];o[E>>2]=m}o[i>>2]=u;o[s+0>>2]=o[i+0>>2];gr(e,d,s);y=t-d|0;o[A>>2]=u;o[s+0>>2]=o[A+0>>2];gr(p,y,s);l=n;return}function fr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;n=l;i=e+4|0;A=o[i>>2]|0;s=o[e>>2]|0;if((A|0)>0){c=o[e+12>>2]|0;a=0;do{o[c+(o[s+(a<<2)>>2]<<2)>>2]=-1;a=a+1|0;A=o[i>>2]|0}while((a|0)<(A|0))}if(s){o[i>>2]=0;A=0}s=t+4|0;if((o[s>>2]|0)>0){a=e+12|0;A=0;do{E=(o[t>>2]|0)+(A<<2)|0;o[(o[a>>2]|0)+(o[E>>2]<<2)>>2]=A;Ar(e,E);A=A+1|0}while((A|0)<(o[s>>2]|0));A=o[i>>2]|0}if((A|0)<=1){l=n;return}s=o[e>>2]|0;t=e+28|0;e=e+12|0;f=A;a=(A|0)/2|0;while(1){a=a+-1|0;A=o[s+(a<<2)>>2]|0;h=a<<1|1;e:do{if((h|0)<(f|0)){c=a;while(1){g=(c<<1)+2|0;if((g|0)<(f|0)){p=o[s+(g<<2)>>2]|0;E=o[s+(h<<2)>>2]|0;f=o[o[t>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;r=16}}else{f=o[o[t>>2]>>2]|0;r=o[s+(h<<2)>>2]|0;p=r;d=+u[f+(r<<3)>>3];r=16}if((r|0)==16){r=0;g=h}if(!(d>+u[f+(A<<3)>>3]))break e;o[s+(c<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=c;h=g<<1|1;f=o[i>>2]|0;if((h|0)>=(f|0)){c=g;break}else c=g}}else c=a}while(0);o[s+(c<<2)>>2]=A;o[(o[e>>2]|0)+(A<<2)>>2]=c;if((a|0)<=0)break;f=o[i>>2]|0}l=n;return}function pr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;r=l;t=e+36|0;u=o[t>>2]|0;i=e+32|0;g=o[i>>2]|0;if((u|0)>0){A=e+16|0;s=e+44|0;a=0;do{c=g+(a<<2)|0;h=o[c>>2]|0;if(n[(o[A>>2]|0)+h>>0]|0){g=o[e>>2]|0;u=g+(h*12|0)+4|0;p=o[u>>2]|0;if((p|0)>0){h=g+(h*12|0)|0;g=0;f=0;do{d=o[h>>2]|0;C=d+(g<<3)|0;if((o[(o[o[s>>2]>>2]|0)+(o[C>>2]<<2)>>2]&3|0)!=1){E=C;C=o[E+4>>2]|0;p=d+(f<<3)|0;o[p>>2]=o[E>>2];o[p+4>>2]=C;p=o[u>>2]|0;f=f+1|0}g=g+1|0}while((g|0)<(p|0))}else{g=0;f=0}h=g-f|0;if((h|0)>0)o[u>>2]=p-h;n[(o[A>>2]|0)+(o[c>>2]|0)>>0]=0;u=o[t>>2]|0;g=o[i>>2]|0}a=a+1|0}while((a|0)<(u|0))}if(!g){l=r;return}o[t>>2]=0;l=r;return}function dr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0;n=l;A=o[t>>2]|0;i=A>>>2&1|(s[e+16>>0]|0);A=((i+(A>>>5)<<2)+4|0)>>>2;a=e+4|0;er(e,A+(o[a>>2]|0)|0);r=o[a>>2]|0;A=A+r|0;o[a>>2]=A;if(A>>>0<r>>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}i=o[t>>2]&-9|i<<3;o[e>>2]=i;if((o[t>>2]|0)>>>0>31){i=0;do{o[e+(i<<2)+4>>2]=o[t+(i<<2)+4>>2];i=i+1|0}while((i|0)<((o[t>>2]|0)>>>5|0));i=o[e>>2]|0}if(!(i&8)){l=n;return r|0}A=i>>>5;t=t+(A<<2)+4|0;if(!(i&4)){o[e+(A<<2)+4>>2]=o[t>>2];l=n;return r|0}else{c[e+(A<<2)+4>>2]=+c[t>>2];l=n;return r|0}return 0}function Cr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+16|0;s=t;Dt(e);o[e>>2]=3424;o[e+684>>2]=o[719];o[e+688>>2]=o[747];o[e+692>>2]=o[785];u[e+696>>3]=+u[411];n[e+704>>0]=n[2652]|0;n[e+705>>0]=n[2724]|0;n[e+706>>0]=n[2804]|0;n[e+707>>0]=1;o[e+708>>2]=0;o[e+712>>2]=0;o[e+716>>2]=0;o[e+720>>2]=1;n[e+724>>0]=1;r=e+732|0;a=e+544|0;o[e+760>>2]=0;o[e+764>>2]=0;o[e+768>>2]=0;o[e+776>>2]=0;o[e+780>>2]=0;o[e+784>>2]=0;o[e+792>>2]=0;o[e+796>>2]=0;o[e+800>>2]=0;A=e+804|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[A>>2]=a;A=e+808|0;o[A>>2]=0;o[e+812>>2]=0;o[e+816>>2]=0;r=e+824|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[e+852>>2]=A;Lr(e+856|0,1);A=e+868|0;r=e+892|0;o[e+920>>2]=0;o[e+924>>2]=0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;o[A+16>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;r=s+4|0;o[r>>2]=0;A=s+8|0;o[A>>2]=2;i=On(0,8)|0;o[s>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[i>>2]=-2;o[r>>2]=1;n[e+560>>0]=1;o[e+928>>2]=cr(a,s,0)|0;n[e+536>>0]=0;if(!i){l=t;return}o[r>>2]=0;_n(i);o[s>>2]=0;o[A>>2]=0;l=t;return}function Er(e){e=e|0;var t=0;t=l;Ir(e);un(e);l=t;return}function Ir(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=3424;r=e+904|0;n=o[r>>2]|0;if(n){o[e+908>>2]=0;_n(n);o[r>>2]=0;o[e+912>>2]=0}r=e+892|0;n=o[r>>2]|0;if(n){o[e+896>>2]=0;_n(n);o[r>>2]=0;o[e+900>>2]=0}r=e+876|0;n=o[r>>2]|0;if(n){o[e+880>>2]=0;_n(n);o[r>>2]=0;o[e+884>>2]=0}r=e+856|0;n=o[r>>2]|0;if(n){o[e+860>>2]=0;_n(n);o[r>>2]=0;o[e+864>>2]=0}n=e+836|0;r=o[n>>2]|0;if(r){o[e+840>>2]=0;_n(r);o[n>>2]=0;o[e+844>>2]=0}r=e+824|0;n=o[r>>2]|0;if(n){o[e+828>>2]=0;_n(n);o[r>>2]=0;o[e+832>>2]=0}r=e+808|0;n=o[r>>2]|0;if(n){o[e+812>>2]=0;_n(n);o[r>>2]=0;o[e+816>>2]=0}Tr(e+760|0);r=e+744|0;n=o[r>>2]|0;if(n){o[e+748>>2]=0;_n(n);o[r>>2]=0;o[e+752>>2]=0}r=e+732|0;n=o[r>>2]|0;if(!n){St(e);l=t;return}o[e+736>>2]=0;_n(n);o[r>>2]=0;o[e+740>>2]=0;St(e);l=t;return}function mr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+32|0;A=i+12|0;c=i+8|0;u=i+16|0;s=i+4|0;a=i;n[u>>0]=n[t>>0]|0;n[A+0>>0]=n[u+0>>0]|0;r=kt(e,A,r)|0;o[c>>2]=r;ir(e+876|0,r,0);ir(e+904|0,r,0);if(!(n[e+724>>0]|0)){l=i;return r|0}u=e+808|0;t=r<<1;o[s>>2]=t;o[A+0>>2]=o[s+0>>2];Pr(u,A,0);o[a>>2]=t|1;o[A+0>>2]=o[a+0>>2];Pr(u,A,0);Ur(e+760|0,c);ir(e+744|0,r,0);_r(e+824|0,r);l=i;return r|0}function yr(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;c=l;l=l+32|0;A=c+4|0;C=c;p=c+16|0;o[A>>2]=0;a=A+4|0;o[a>>2]=0;u=A+8|0;o[u>>2]=0;E=n[2608]|0;n[e>>0]=E;h=t+724|0;r=(s[h>>0]&(r&1)|0)!=0;if(r){m=t+308|0;B=o[m>>2]|0;if((B|0)>0){I=t+304|0;E=t+876|0;y=0;do{w=o[(o[I>>2]|0)+(y<<2)>>2]>>1;o[C>>2]=w;w=(o[E>>2]|0)+w|0;if(!(n[w>>0]|0)){n[w>>0]=1;Ar(A,C);B=o[m>>2]|0}y=y+1|0}while((y|0)<(B|0))}C=(wr(t,i)|0)&1^1;n[e>>0]=C;i=n[2608]|0}else{i=E;C=E}B=i&255;if(!((B>>>1^1)&C<<24>>24==i<<24>>24|B&2&(C&255))){if((o[t+44>>2]|0)>0)Ue(3760)|0}else{qt(p,t);C=n[p>>0]|0;n[e>>0]=C}w=n[2608]|0;B=w&255;if((((B>>>1^1)&C<<24>>24==w<<24>>24|B&2&(C&255)|0)!=0?(n[t+707>>0]|0)!=0:0)?(d=(o[t+736>>2]|0)+-1|0,(d|0)>0):0){e=t+732|0;p=t+4|0;do{i=o[e>>2]|0;m=o[i+(d<<2)>>2]|0;y=d+-1|0;w=o[i+(y<<2)>>2]|0;d=o[p>>2]|0;e:do{if((m|0)>1){E=n[2616]|0;C=E&255;I=C&2;C=C>>>1^1;B=y;while(1){w=s[d+(w>>1)>>0]^w&1;y=m+-1|0;if(!((w&255)<<24>>24==E<<24>>24&C|I&w))break e;m=B+-1|0;w=o[i+(m<<2)>>2]|0;if((y|0)>1){B=m;m=y}else{B=m;m=y;f=20;break}}}else{B=y;f=20}}while(0);if((f|0)==20){f=0;n[d+(w>>1)>>0]=(w&1^1)&255^1}d=B-m|0}while((d|0)>0)}if(r?(g=o[a>>2]|0,(g|0)>0):0){f=o[A>>2]|0;r=t+876|0;p=0;do{e=o[f+(p<<2)>>2]|0;n[(o[r>>2]|0)+e>>0]=0;if(n[h>>0]|0)Or(t,e);p=p+1|0}while((p|0)<(g|0))}t=o[A>>2]|0;if(!t){l=c;return}o[a>>2]=0;_n(t);o[A>>2]=0;o[u>>2]=0;l=c;return}function wr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0;c=l;l=l+16|0;A=c;if(!(Jt(e)|0)){N=0;l=c;return N|0}a=e+724|0;if(!(n[a>>0]|0)){N=1;l=c;return N|0}B=e+924|0;y=e+872|0;w=e+868|0;m=e+860|0;C=e+680|0;Q=e+824|0;s=e+828|0;f=e+836|0;v=e+904|0;D=e+332|0;r=e+44|0;b=e+704|0;k=e+706|0;x=e+696|0;p=e+556|0;d=e+548|0;S=e+876|0;E=e+920|0;I=e+284|0;e:while(1){if(((o[B>>2]|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0)?(o[s>>2]|0)<=0:0)break;Sr(e);M=o[y>>2]|0;N=o[w>>2]|0;F=M-N|0;if((M|0)<(N|0))F=(o[m>>2]|0)+F|0;if(!((F|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0))h=11;if((h|0)==11?(h=0,!(kr(e,1)|0)):0){h=12;break}N=o[s>>2]|0;if(n[C>>0]|0){h=15;break}if(!N)continue;else F=0;while(1){K=o[Q>>2]|0;M=o[K>>2]|0;R=o[K+(N+-1<<2)>>2]|0;o[K>>2]=R;N=o[f>>2]|0;o[N+(R<<2)>>2]=0;o[N+(M<<2)>>2]=-1;N=(o[s>>2]|0)+-1|0;o[s>>2]=N;if((N|0)>1)jr(Q,0);if(n[C>>0]|0)continue e;if((n[(o[v>>2]|0)+M>>0]|0)==0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0){if((o[r>>2]|0)>1&((F|0)%100|0|0)==0){o[A>>2]=o[s>>2];_e(3504,A|0)|0}if(n[b>>0]|0){K=(o[S>>2]|0)+M|0;N=n[K>>0]|0;n[K>>0]=1;if(!(Fr(e,M)|0)){h=29;break e}n[(o[S>>2]|0)+M>>0]=N<<24>>24!=0&1}if((((n[k>>0]|0)!=0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0)?(n[(o[S>>2]|0)+M>>0]|0)==0:0)?!(Mr(e,M)|0):0){h=35;break e}if(+((o[p>>2]|0)>>>0)>+u[x>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}N=o[s>>2]|0;if(!N)continue e;else F=F+1|0}}do{if((h|0)==12)n[e+492>>0]=0;else if((h|0)==15){C=o[e+824>>2]|0;if((N|0)<=0){if(!C)break}else{I=o[f>>2]|0;E=0;do{o[I+(o[C+(E<<2)>>2]<<2)>>2]=-1;E=E+1|0}while((E|0)<(o[s>>2]|0))}o[s>>2]=0}else if((h|0)==29)n[e+492>>0]=0;else if((h|0)==35)n[e+492>>0]=0}while(0);if(!t){if(+((o[p>>2]|0)>>>0)>+u[e+96>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}else{t=e+744|0;p=o[t>>2]|0;if(p){o[e+748>>2]=0;_n(p);o[t>>2]=0;o[e+752>>2]=0}Yr(e+760|0,1);t=e+808|0;p=o[t>>2]|0;if(p){o[e+812>>2]=0;_n(p);o[t>>2]=0;o[e+816>>2]=0}p=e+824|0;t=o[p>>2]|0;if((o[s>>2]|0)<=0){if(t)h=48}else{h=o[f>>2]|0;f=0;do{o[h+(o[t+(f<<2)>>2]<<2)>>2]=-1;f=f+1|0}while((f|0)<(o[s>>2]|0));h=48}if((h|0)==48){o[s>>2]=0;_n(t);o[p>>2]=0;o[e+832>>2]=0}Gr(e+856|0,1);n[a>>0]=0;n[e+536>>0]=1;n[e+560>>0]=0;o[e+728>>2]=o[e+540>>2];Gt(e);ji[o[(o[e>>2]|0)+8>>2]&31](e)}if((o[r>>2]|0)>0?(i=o[e+736>>2]|0,(i|0)>0):0){u[g>>3]=+(i<<2>>>0)*9.5367431640625e-7;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];_e(3528,A|0)|0}K=(n[e+492>>0]|0)!=0;l=c;return K|0}function Br(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;r=l;l=l+16|0;s=r;a=e+256|0;c=e+260|0;A=o[c>>2]|0;if((n[e+705>>0]|0)!=0?Qr(e,t)|0:0){p=1;l=r;return p|0}if(!(xt(e,t)|0)){p=0;l=r;return p|0}if(!(n[e+724>>0]|0)){p=1;l=r;return p|0}t=o[c>>2]|0;if((t|0)!=(A+1|0)){p=1;l=r;return p|0}p=o[(o[a>>2]|0)+(t+-1<<2)>>2]|0;o[s>>2]=p;h=(o[e+544>>2]|0)+(p<<2)|0;Jr(e+856|0,p);if((o[h>>2]|0)>>>0<=31){p=1;l=r;return p|0}u=e+760|0;c=e+808|0;a=e+744|0;A=e+924|0;t=e+824|0;g=e+840|0;e=e+836|0;f=0;do{p=h+(f<<2)+4|0;Hr((o[u>>2]|0)+((o[p>>2]>>1)*12|0)|0,s);d=(o[c>>2]|0)+(o[p>>2]<<2)|0;o[d>>2]=(o[d>>2]|0)+1;n[(o[a>>2]|0)+(o[p>>2]>>1)>>0]=1;o[A>>2]=(o[A>>2]|0)+1;p=o[p>>2]>>1;if((o[g>>2]|0)>(p|0)?(i=o[(o[e>>2]|0)+(p<<2)>>2]|0,(i|0)>-1):0)jr(t,i);f=f+1|0}while((f|0)<((o[h>>2]|0)>>>5|0));i=1;l=r;return i|0}function Qr(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;c=l;l=l+16|0;A=c+8|0;a=c+4|0;i=c;o[a>>2]=o[e+284>>2];Ar(e+292|0,a);a=t+4|0;h=o[a>>2]|0;e:do{if((h|0)>0){r=e+332|0;u=0;while(1){g=o[(o[t>>2]|0)+(u<<2)>>2]|0;p=s[(o[r>>2]|0)+(g>>1)>>0]|0;d=p^g&1;f=d&255;E=n[2608]|0;C=E&255;if(f<<24>>24==E<<24>>24&(C>>>1^1)|C&2&d)break;C=n[2616]|0;E=C&255;if(!((E>>>1^1)&f<<24>>24==C<<24>>24|p&2&E)){o[i>>2]=g^1;o[A+0>>2]=o[i+0>>2];Ft(e,A,-1);h=o[a>>2]|0}u=u+1|0;if((u|0)>=(h|0))break e}Tt(e,0);E=1;l=c;return E|0}}while(0);E=(Mt(e)|0)!=-1;Tt(e,0);l=c;return E|0}function vr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;s=r;i=(o[e+544>>2]|0)+(t<<2)|0;if(!(n[e+724>>0]|0)){Kt(e,t);l=r;return}if((o[i>>2]|0)>>>0<=31){Kt(e,t);l=r;return}a=e+808|0;c=e+776|0;A=e+792|0;u=0;do{h=i+(u<<2)+4|0;g=(o[a>>2]|0)+(o[h>>2]<<2)|0;o[g>>2]=(o[g>>2]|0)+-1;Or(e,o[h>>2]>>1);h=o[h>>2]>>1;o[s>>2]=h;h=(o[c>>2]|0)+h|0;if(!(n[h>>0]|0)){n[h>>0]=1;Ar(A,s)}u=u+1|0}while((u|0)<((o[i>>2]|0)>>>5|0));Kt(e,t);l=r;return}function Dr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;i=l;l=l+16|0;a=i+4|0;A=i;u=o[e+544>>2]|0;c=u+(t<<2)|0;Jr(e+856|0,t);if((o[c>>2]&-32|0)==64){vr(e,t);p=o[r>>2]|0;r=o[c>>2]|0;e:do{if(r>>>0>31){h=r>>>5;g=0;while(1){f=g+1|0;if((o[c+(g<<2)+4>>2]|0)==(p|0)){f=g;break e}if((f|0)<(h|0))g=f;else break}}else{h=0;f=0}}while(0);g=h+-1|0;if((f|0)<(g|0))do{r=f;f=f+1|0;o[c+(r<<2)+4>>2]=o[c+(f<<2)+4>>2];r=o[c>>2]|0;h=r>>>5;g=h+-1|0}while((f|0)<(g|0));if(r&8){o[c+(g<<2)+4>>2]=o[c+(h<<2)+4>>2];r=o[c>>2]|0}h=r+-32|0;o[c>>2]=h;h=h>>>5;if(!h){h=0;r=0}else{r=0;g=0;do{r=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|r;g=g+1|0}while((g|0)<(h|0))}o[c+(h<<2)+4>>2]=r}else{Rt(e,t,1);r=o[r>>2]|0;g=o[c>>2]|0;e:do{if(g>>>0>31){h=g>>>5;f=0;while(1){p=f+1|0;if((o[c+(f<<2)+4>>2]|0)==(r|0)){p=f;break e}if((p|0)<(h|0))f=p;else break}}else{h=0;p=0}}while(0);f=h+-1|0;if((p|0)<(f|0))do{g=p;p=p+1|0;o[c+(g<<2)+4>>2]=o[c+(p<<2)+4>>2];g=o[c>>2]|0;h=g>>>5;f=h+-1|0}while((p|0)<(f|0));if(g&8){o[c+(f<<2)+4>>2]=o[c+(h<<2)+4>>2];g=o[c>>2]|0}f=g+-32|0;o[c>>2]=f;f=f>>>5;if(!f){f=0;h=0}else{h=0;g=0;do{h=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|h;g=g+1|0}while((g|0)<(f|0))}o[c+(f<<2)+4>>2]=h;Nt(e,t);h=r>>1;g=o[e+760>>2]|0;f=g+(h*12|0)|0;g=g+(h*12|0)+4|0;p=o[g>>2]|0;e:do{if((p|0)>0){E=o[f>>2]|0;d=0;while(1){C=d+1|0;if((o[E+(d<<2)>>2]|0)==(t|0))break e;if((C|0)<(p|0))d=C;else{d=C;break}}}else d=0}while(0);p=p+-1|0;if((d|0)<(p|0)){f=o[f>>2]|0;do{p=d;d=d+1|0;o[f+(p<<2)>>2]=o[f+(d<<2)>>2];p=(o[g>>2]|0)+-1|0}while((d|0)<(p|0))}o[g>>2]=p;E=(o[e+808>>2]|0)+(r<<2)|0;o[E>>2]=(o[E>>2]|0)+-1;Or(e,h)}if((o[c>>2]&-32|0)!=32){E=1;l=i;return E|0}u=o[u+(t+1<<2)>>2]|0;c=s[(o[e+332>>2]|0)+(u>>1)>>0]|0;E=c^u&1;t=E&255;d=n[2624]|0;C=d&255;if(!(t<<24>>24==d<<24>>24&(C>>>1^1)|C&2&E)){C=n[2616]|0;E=C&255;if((E>>>1^1)&t<<24>>24==C<<24>>24|c&2&E){E=0;l=i;return E|0}}else{o[A>>2]=u;o[a+0>>2]=o[A+0>>2];Ft(e,a,-1)}E=(Mt(e)|0)==-1;l=i;return E|0}function br(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;s=l;l=l+16|0;a=s+4|0;A=s;f=e+708|0;o[f>>2]=(o[f>>2]|0)+1;if(o[i>>2]|0)o[i+4>>2]=0;c=(o[t>>2]|0)>>>5>>>0<(o[r>>2]|0)>>>5>>>0;e=c?r:t;t=c?t:r;c=o[t>>2]|0;e:do{if(c>>>0>31){r=0;t:while(1){u=o[t+(r<<2)+4>>2]|0;r:do{if((u>>1|0)!=(n|0)){h=o[e>>2]|0;n:do{if(h>>>0>31){g=0;while(1){f=o[e+(g<<2)+4>>2]|0;g=g+1|0;if((u^f)>>>0<2)break;if((g|0)>=(h>>>5|0))break n}if((f|0)==(u^1|0)){i=0;break t}else break r}}while(0);o[a>>2]=u;sr(i,a);c=o[t>>2]|0}}while(0);r=r+1|0;if((r|0)>=(c>>>5|0))break e}l=s;return i|0}}while(0);r=o[e>>2]|0;if(r>>>0<=31){f=1;l=s;return f|0}a=0;do{t=o[e+(a<<2)+4>>2]|0;if((t>>1|0)!=(n|0)){o[A>>2]=t;sr(i,A);r=o[e>>2]|0}a=a+1|0}while((a|0)<(r>>>5|0));i=1;l=s;return i|0}function Sr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;c=e+924|0;if(!(o[c>>2]|0)){l=t;return}A=e+856|0;r=e+872|0;i=e+868|0;a=e+860|0;s=e+544|0;u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;g=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;h=o[g>>2]|0;if(!(h&3))o[g>>2]=h&-4|2;u=u+1|0}u=e+540|0;d=o[u>>2]|0;if((d|0)>0){g=e+744|0;f=e+776|0;h=e+760|0;e=e+804|0;p=0;do{if(n[(o[g>>2]|0)+p>>0]|0){C=(o[f>>2]|0)+p|0;if(n[C>>0]|0){E=o[h>>2]|0;d=E+(p*12|0)+4|0;m=o[d>>2]|0;if((m|0)>0){E=o[E+(p*12|0)>>2]|0;y=0;I=0;do{w=o[E+(y<<2)>>2]|0;if((o[(o[o[e>>2]>>2]|0)+(w<<2)>>2]&3|0)!=1){o[E+(I<<2)>>2]=w;m=o[d>>2]|0;I=I+1|0}y=y+1|0}while((y|0)<(m|0))}else{y=0;I=0}E=y-I|0;if((E|0)>0)o[d>>2]=m-E;n[C>>0]=0}C=o[h>>2]|0;d=C+(p*12|0)+4|0;I=o[d>>2]|0;if((I|0)>0){C=C+(p*12|0)|0;E=0;do{m=o[(o[C>>2]|0)+(E<<2)>>2]|0;if(!(o[(o[s>>2]|0)+(m<<2)>>2]&3)){Jr(A,m);I=(o[s>>2]|0)+(o[(o[C>>2]|0)+(E<<2)>>2]<<2)|0;o[I>>2]=o[I>>2]&-4|2;I=o[d>>2]|0}E=E+1|0}while((E|0)<(I|0))}n[(o[g>>2]|0)+p>>0]=0;d=o[u>>2]|0}p=p+1|0}while((p|0)<(d|0));u=0}else u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;h=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;g=o[h>>2]|0;if((g&3|0)==2)o[h>>2]=g&-4;u=u+1|0}o[c>>2]=0;l=t;return}function kr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;r=l;l=l+16|0;h=r;B=r+12|0;s=e+856|0;u=e+872|0;d=e+868|0;a=e+860|0;m=e+680|0;i=e+920|0;A=e+284|0;I=e+280|0;C=e+544|0;E=e+928|0;f=e+44|0;g=e+776|0;y=e+692|0;p=e+804|0;c=e+760|0;S=0;F=0;k=0;e:while(1){x=o[d>>2]|0;do{D=o[u>>2]|0;b=(D|0)<(x|0);D=D-x|0;if(b)M=(o[a>>2]|0)+D|0;else M=D;if((M|0)<=0?(o[i>>2]|0)>=(o[A>>2]|0):0){i=1;a=53;break e}if(n[m>>0]|0){a=8;break e}if(b)D=(o[a>>2]|0)+D|0;if((D|0)==0?(v=o[i>>2]|0,(v|0)<(o[A>>2]|0)):0){o[i>>2]=v+1;o[(o[C>>2]|0)+((o[E>>2]|0)+1<<2)>>2]=o[(o[I>>2]|0)+(v<<2)>>2];D=(o[C>>2]|0)+(o[E>>2]<<2)|0;b=(o[D>>2]|0)>>>5;if(!b){b=0;M=0}else{M=0;x=0;do{M=1<<((o[D+(x<<2)+4>>2]|0)>>>1&31)|M;x=x+1|0}while((x|0)<(b|0))}o[D+(b<<2)+4>>2]=M;Jr(s,o[E>>2]|0);x=o[d>>2]|0}D=o[(o[s>>2]|0)+(x<<2)>>2]|0;x=x+1|0;K=o[a>>2]|0;x=(x|0)==(K|0)?0:x;o[d>>2]=x;M=o[C>>2]|0;b=M+(D<<2)|0;R=o[b>>2]|0}while((R&3|0)!=0);if(t?(o[f>>2]|0)>1:0){N=S+1|0;if(!((S|0)%1e3|0)){R=o[u>>2]|0;o[h>>2]=R-x+((R|0)<(x|0)?K:0);o[h+4>>2]=k;o[h+8>>2]=F;_e(3440,h|0)|0;R=o[b>>2]|0;S=N}else S=N}x=M+(D+1<<2)|0;M=o[x>>2]>>1;if(R>>>0>63){N=o[c>>2]|0;R=R>>>5;K=1;do{O=o[b+(K<<2)+4>>2]>>1;M=(o[N+(O*12|0)+4>>2]|0)<(o[N+(M*12|0)+4>>2]|0)?O:M;K=K+1|0}while((K|0)<(R|0))}R=(o[g>>2]|0)+M|0;if(n[R>>0]|0){K=o[c>>2]|0;N=K+(M*12|0)+4|0;P=o[N>>2]|0;if((P|0)>0){K=o[K+(M*12|0)>>2]|0;T=0;L=0;do{U=o[K+(T<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(U<<2)>>2]&3|0)!=1){o[K+(L<<2)>>2]=U;P=o[N>>2]|0;L=L+1|0}T=T+1|0}while((T|0)<(P|0))}else{T=0;L=0}K=T-L|0;if((K|0)>0)o[N>>2]=P-K;n[R>>0]=0}R=o[c>>2]|0;N=o[R+(M*12|0)>>2]|0;R=R+(M*12|0)+4|0;if((o[R>>2]|0)>0)K=0;else continue;while(1){U=o[b>>2]|0;if(U&3)continue e;L=o[N+(K<<2)>>2]|0;T=o[C>>2]|0;_=T+(L<<2)|0;P=o[_>>2]|0;t:do{if(((!((P&3|0)!=0|(L|0)==(D|0))?(O=o[y>>2]|0,Q=P>>>5,(O|0)==-1|(Q|0)<(O|0)):0)?(w=U>>>5,Q>>>0>=w>>>0):0)?(o[b+(w<<2)+4>>2]&~o[_+(Q<<2)+4>>2]|0)==0:0){T=T+(L+1<<2)|0;do{if(U>>>0>31){if(P>>>0>31){_=-2;P=0}else break t;while(1){U=o[x+(P<<2)>>2]|0;r:do{if((_|0)==-2){O=0;while(1){_=o[T+(O<<2)>>2]|0;if((U|0)==(_|0)){U=-2;break r}O=O+1|0;if((U|0)==(_^1|0))break r;if(O>>>0>=Q>>>0)break t}}else{O=0;while(1){if((U|0)==(o[T+(O<<2)>>2]|0)){U=_;break r}O=O+1|0;if(O>>>0>=Q>>>0)break t}}}while(0);P=P+1|0;if(P>>>0>=w>>>0)break;else _=U}if((U|0)==-2)break;else if((U|0)==-1)break t;o[B>>2]=U^1;o[h+0>>2]=o[B+0>>2];if(!(Dr(e,L,h)|0)){i=0;a=53;break e}F=F+1|0;K=(((U>>1|0)==(M|0))<<31>>31)+K|0;break t}}while(0);vr(e,L);k=k+1|0}}while(0);K=K+1|0;if((K|0)>=(o[R>>2]|0))continue e}}if((a|0)==8){Gr(s,0);o[i>>2]=o[A>>2];O=1;l=r;return O|0}else if((a|0)==53){l=r;return i|0}return 0}function xr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;A=l;l=l+16|0;i=A+12|0;h=A+8|0;c=A+4|0;a=A;u=(o[e+544>>2]|0)+(r<<2)|0;if(o[u>>2]&3){C=1;l=A;return C|0}if(Lt(e,u)|0){C=1;l=A;return C|0}o[h>>2]=o[e+284>>2];Ar(e+292|0,h);p=o[u>>2]|0;if(p>>>0>31){h=e+332|0;g=0;f=-2;do{d=o[u+(g<<2)+4>>2]|0;C=d>>1;if((C|0)!=(t|0)?(C=(s[(o[h>>2]|0)+C>>0]|0)^d&1,I=n[2616]|0,E=I&255,((C&255)<<24>>24==I<<24>>24&(E>>>1^1)|E&2&C|0)==0):0){o[c>>2]=d^1;o[i+0>>2]=o[c+0>>2];Ft(e,i,-1);p=o[u>>2]|0}else f=d;g=g+1|0}while((g|0)<(p>>>5|0))}else f=-2;I=(Mt(e)|0)==-1;Tt(e,0);if(!I){I=e+712|0;o[I>>2]=(o[I>>2]|0)+1;o[a>>2]=f;o[i+0>>2]=o[a+0>>2];if(!(Dr(e,r,i)|0)){I=0;l=A;return I|0}}I=1;l=A;return I|0}function Fr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;r=l;A=(o[e+776>>2]|0)+t|0;i=e+760|0;if(n[A>>0]|0){c=o[i>>2]|0;s=c+(t*12|0)+4|0;g=o[s>>2]|0;if((g|0)>0){a=e+804|0;c=o[c+(t*12|0)>>2]|0;h=0;u=0;do{f=o[c+(h<<2)>>2]|0;if((o[(o[o[a>>2]>>2]|0)+(f<<2)>>2]&3|0)!=1){o[c+(u<<2)>>2]=f;g=o[s>>2]|0;u=u+1|0}h=h+1|0}while((h|0)<(g|0))}else{h=0;u=0}a=h-u|0;if((a|0)>0)o[s>>2]=g-a;n[A>>0]=0}s=o[i>>2]|0;g=n[(o[e+332>>2]|0)+t>>0]|0;h=n[2624]|0;f=h&255;if(!((f>>>1^1)&g<<24>>24==h<<24>>24|g&2&f)){f=1;l=r;return f|0}i=s+(t*12|0)+4|0;A=o[i>>2]|0;if(!A){f=1;l=r;return f|0}e:do{if((A|0)>0){s=s+(t*12|0)|0;A=0;while(1){if(!(xr(e,t,o[(o[s>>2]|0)+(A<<2)>>2]|0)|0)){e=0;break}A=A+1|0;if((A|0)>=(o[i>>2]|0))break e}l=r;return e|0}}while(0);f=kr(e,0)|0;l=r;return f|0}function Mr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,q=0,z=0,W=0,V=0,X=0;r=l;l=l+48|0;E=r+36|0;C=r+32|0;I=r+28|0;m=r+24|0;i=r+12|0;s=r;g=(o[e+776>>2]|0)+t|0;h=e+760|0;if(n[g>>0]|0){d=o[h>>2]|0;f=d+(t*12|0)+4|0;Q=o[f>>2]|0;if((Q|0)>0){p=e+804|0;d=o[d+(t*12|0)>>2]|0;w=0;y=0;do{v=o[d+(w<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(v<<2)>>2]&3|0)!=1){o[d+(y<<2)>>2]=v;Q=o[f>>2]|0;y=y+1|0}w=w+1|0}while((w|0)<(Q|0))}else{w=0;y=0}p=w-y|0;if((p|0)>0)o[f>>2]=Q-p;n[g>>0]=0}y=o[h>>2]|0;w=y+(t*12|0)|0;o[i>>2]=0;g=i+4|0;o[g>>2]=0;f=i+8|0;o[f>>2]=0;o[s>>2]=0;d=s+4|0;o[d>>2]=0;p=s+8|0;o[p>>2]=0;y=y+(t*12|0)+4|0;e:do{if((o[y>>2]|0)>0){Q=e+544|0;b=t<<1;D=0;do{S=(o[w>>2]|0)+(D<<2)|0;x=(o[Q>>2]|0)+(o[S>>2]<<2)|0;X=o[x>>2]|0;v=X>>>5;t:do{if(X>>>0>31){F=0;while(1){k=F+1|0;if((o[x+(F<<2)+4>>2]|0)==(b|0)){k=F;break t}if((k|0)<(v|0))F=k;else break}}else k=0}while(0);Hr((k|0)<(v|0)?i:s,S);D=D+1|0;v=o[y>>2]|0}while((D|0)<(v|0));Q=o[g>>2]|0;b=(Q|0)>0;if(b){S=o[d>>2]|0;L=(S|0)>0;K=e+544|0;k=o[i>>2]|0;D=o[s>>2]|0;x=e+708|0;N=e+684|0;M=e+688|0;O=0;F=0;while(1){if(L){P=k+(F<<2)|0;T=o[K>>2]|0;U=o[x>>2]|0;_=0;do{G=T+(o[P>>2]<<2)|0;H=T+(o[D+(_<<2)>>2]<<2)|0;U=U+1|0;o[x>>2]=U;j=(o[G>>2]|0)>>>5>>>0<(o[H>>2]|0)>>>5>>>0;Y=j?H:G;H=j?G:H;G=Y+4|0;j=H+4|0;Y=o[Y>>2]|0;J=Y>>>5;z=J+-1|0;H=o[H>>2]|0;t:do{if(H>>>0>31){q=0;while(1){X=o[j+(q<<2)>>2]|0;r:do{if((X>>1|0)!=(t|0)){n:do{if(Y>>>0>31){V=0;while(1){W=o[G+(V<<2)>>2]|0;V=V+1|0;if((W^X)>>>0<2)break;if((V|0)>=(J|0))break n}if((W|0)==(X^1|0))break t;else break r}}while(0);z=z+1|0}}while(0);q=q+1|0;if((q|0)>=(H>>>5|0)){B=28;break}}}else B=28}while(0);if((B|0)==28){B=0;if((O|0)>=((o[N>>2]|0)+v|0)){e=1;break e}X=o[M>>2]|0;if((X|0)!=-1&(z|0)>(X|0)){e=1;break e}else O=O+1|0}_=_+1|0}while((_|0)<(S|0))}F=F+1|0;if((F|0)>=(Q|0)){B=32;break}}}else{b=0;B=32}}else{Q=0;b=0;B=32}}while(0);e:do{if((B|0)==32){n[(o[e+904>>2]|0)+t>>0]=1;v=e+380|0;D=(o[v>>2]|0)+t|0;if(n[D>>0]|0){X=e+200|0;V=X;V=ai(o[V>>2]|0,o[V+4>>2]|0,-1,-1)|0;o[X>>2]=V;o[X+4>>2]=R}n[D>>0]=0;D=e+460|0;if(!((o[e+476>>2]|0)>(t|0)?(o[(o[e+472>>2]|0)+(t<<2)>>2]|0)>-1:0))B=36;if((B|0)==36?(n[(o[v>>2]|0)+t>>0]|0)!=0:0)or(D,t);B=e+716|0;o[B>>2]=(o[B>>2]|0)+1;B=o[d>>2]|0;if((Q|0)>(B|0)){D=e+732|0;if((B|0)>0){m=e+544|0;I=o[s>>2]|0;x=e+736|0;k=0;do{S=(o[m>>2]|0)+(o[I+(k<<2)>>2]<<2)|0;v=o[x>>2]|0;if((o[S>>2]|0)>>>0>31){F=0;M=-1;do{X=S+(F<<2)+4|0;o[E>>2]=o[X>>2];Hr(D,E);M=(o[X>>2]>>1|0)==(t|0)?F+v|0:M;F=F+1|0}while((F|0)<((o[S>>2]|0)>>>5|0))}else M=-1;X=o[D>>2]|0;W=X+(M<<2)|0;V=o[W>>2]|0;X=X+(v<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(D,C);k=k+1|0}while((k|0)<(B|0))}o[E>>2]=t<<1;Hr(D,E);o[C>>2]=1;Hr(D,C)}else{k=e+732|0;if(b){F=e+544|0;x=o[i>>2]|0;v=e+736|0;M=0;do{S=(o[F>>2]|0)+(o[x+(M<<2)>>2]<<2)|0;D=o[v>>2]|0;if((o[S>>2]|0)>>>0>31){N=0;K=-1;do{X=S+(N<<2)+4|0;o[E>>2]=o[X>>2];Hr(k,E);K=(o[X>>2]>>1|0)==(t|0)?N+D|0:K;N=N+1|0}while((N|0)<((o[S>>2]|0)>>>5|0))}else K=-1;X=o[k>>2]|0;W=X+(K<<2)|0;V=o[W>>2]|0;X=X+(D<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(k,C);M=M+1|0}while((M|0)<(Q|0))}o[I>>2]=t<<1|1;Hr(k,I);o[m>>2]=1;Hr(k,m)}if((o[y>>2]|0)>0){C=0;do{vr(e,o[(o[w>>2]|0)+(C<<2)>>2]|0);C=C+1|0}while((C|0)<(o[y>>2]|0))}C=e+628|0;t:do{if(b){E=e+544|0;w=o[i>>2]|0;D=o[s>>2]|0;if((B|0)>0)y=0;else{C=0;while(1){C=C+1|0;if((C|0)>=(Q|0))break t}}do{m=w+(y<<2)|0;I=0;do{X=o[E>>2]|0;if(br(e,X+(o[m>>2]<<2)|0,X+(o[D+(I<<2)>>2]<<2)|0,t,C)|0?!(Br(e,C)|0):0){e=0;break e}I=I+1|0}while((I|0)<(B|0));y=y+1|0}while((y|0)<(Q|0))}}while(0);C=o[h>>2]|0;h=C+(t*12|0)|0;E=o[h>>2]|0;if(E){o[C+(t*12|0)+4>>2]=0;_n(E);o[h>>2]=0;o[C+(t*12|0)+8>>2]=0}h=e+412|0;t=t<<1;E=o[h>>2]|0;C=E+(t*12|0)+4|0;if((o[C>>2]|0)==0?(u=E+(t*12|0)|0,c=o[u>>2]|0,(c|0)!=0):0){o[C>>2]=0;_n(c);o[u>>2]=0;o[E+(t*12|0)+8>>2]=0;E=o[h>>2]|0}c=t|1;u=E+(c*12|0)+4|0;if((o[u>>2]|0)==0?(a=E+(c*12|0)|0,A=o[a>>2]|0,(A|0)!=0):0){o[u>>2]=0;_n(A);o[a>>2]=0;o[E+(c*12|0)+8>>2]=0}e=kr(e,0)|0;D=o[s>>2]|0}}while(0);if(D){o[d>>2]=0;_n(D);o[s>>2]=0;o[p>>2]=0}s=o[i>>2]|0;if(!s){l=r;return e|0}o[g>>2]=0;_n(s);o[i>>2]=0;o[f>>2]=0;l=r;return e|0}function Nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;r=l;if(!(n[e+724>>0]|0)){l=r;return}u=e+540|0;if((o[u>>2]|0)>0){a=e+760|0;i=e+804|0;s=e+776|0;c=e+544|0;A=0;do{g=o[a>>2]|0;h=g+(A*12|0)+4|0;p=o[h>>2]|0;if((p|0)>0){g=o[g+(A*12|0)>>2]|0;d=0;f=0;do{C=o[g+(d<<2)>>2]|0;if((o[(o[o[i>>2]>>2]|0)+(C<<2)>>2]&3|0)!=1){o[g+(f<<2)>>2]=C;p=o[h>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}g=d-f|0;if((g|0)>0)o[h>>2]=p-g;n[(o[s>>2]|0)+A>>0]=0;g=o[a>>2]|0;h=g+(A*12|0)+4|0;if((o[h>>2]|0)>0){C=g+(A*12|0)|0;p=0;do{g=(o[C>>2]|0)+(p<<2)|0;f=o[g>>2]|0;d=o[c>>2]|0;E=d+(f<<2)|0;if(!(o[E>>2]&16)){I=dr(t,E)|0;o[g>>2]=I;o[E>>2]=o[E>>2]|16;o[d+(f+1<<2)>>2]=I}else o[g>>2]=o[d+(f+1<<2)>>2];p=p+1|0}while((p|0)<(o[h>>2]|0))}A=A+1|0}while((A|0)<(o[u>>2]|0))}i=e+856|0;I=o[e+872>>2]|0;s=e+868|0;h=o[s>>2]|0;c=I-h|0;if((I|0)<(h|0))c=(o[e+860>>2]|0)+c|0;e:do{if((c|0)>0){A=e+860|0;a=e+544|0;while(1){u=o[(o[i>>2]|0)+(h<<2)>>2]|0;g=h+1|0;o[s>>2]=(g|0)==(o[A>>2]|0)?0:g;g=o[a>>2]|0;f=g+(u<<2)|0;h=o[f>>2]|0;if(!(h&3)){if(!(h&16)){I=dr(t,f)|0;o[f>>2]=o[f>>2]|16;o[g+(u+1<<2)>>2]=I;u=I}else u=o[g+(u+1<<2)>>2]|0;Jr(i,u)}c=c+-1|0;if((c|0)<=0)break e;h=o[s>>2]|0}}else a=e+544|0}while(0);e=e+928|0;i=o[e>>2]|0;A=o[a>>2]|0;s=A+(i<<2)|0;if(!(o[s>>2]&16)){I=dr(t,s)|0;o[e>>2]=I;o[s>>2]=o[s>>2]|16;o[A+(i+1<<2)>>2]=I;l=r;return}else{o[e>>2]=o[A+(i+1<<2)>>2];l=r;return}}function Rr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;A=l;l=l+32|0;u=A;t=A+8|0;r=e+544|0;i=e+548|0;s=e+556|0;a=(o[i>>2]|0)-(o[s>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,a);a=t+16|0;c=e+560|0;n[a>>0]=n[c>>0]|0;Nr(e,t);zt(e,t);if((o[e+44>>2]|0)>1){h=o[t+4>>2]<<2;o[u>>2]=o[i>>2]<<2;o[u+4>>2]=h;_e(3608,u|0)|0}n[c>>0]=n[a>>0]|0;a=o[r>>2]|0;if(a)_n(a);o[r>>2]=o[t>>2];o[i>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[s>>2]=o[t+12>>2];l=A;return}function Kr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[2608]=0;n[2616]=1;n[2624]=2;Ct(2632,2656,2664,3744,3752);o[658]=160;n[2652]=0;Ct(2704,2728,2736,3744,3752);o[676]=160;n[2724]=0;Ct(2784,2808,2816,3744,3752);o[696]=160;n[2804]=1;Ct(2848,2880,2888,3744,3736);o[712]=280;r=2868|0;o[r>>2]=-2147483648;o[r+4>>2]=2147483647;o[719]=0;Ct(2960,2992,3e3,3744,3736);o[740]=280;r=2980|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[747]=20;Ct(3112,3144,3152,3744,3736);o[778]=280;r=3132|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[785]=1e3;Ct(3240,3296,3312,3744,3720);o[810]=2168;u[408]=0.0;u[409]=Q;n[3280]=0;n[3281]=0;i[1641]=i[t+0>>1]|0;i[1642]=i[t+2>>1]|0;i[1643]=i[t+4>>1]|0;u[411]=.5;l=e;return}function Lr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e>>2]=0;n=e+4|0;o[n>>2]=0;i=e+8|0;o[i>>2]=0;if((t|0)<=0){l=r;return}s=t+1&-2;s=(s|0)>2?s:2;o[i>>2]=s;i=On(0,s<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);e=o[n>>2]|0;if((e|0)<(t|0))do{s=i+(e<<2)|0;if(s)o[s>>2]=0;e=e+1|0}while((e|0)!=(t|0));o[n>>2]=t;l=r;return}function Tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function Pr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;t=o[t>>2]|0;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){c=o[e>>2]|0;c=c+(t<<2)|0;o[c>>2]=r;l=n;return}A=e+8|0;c=o[A>>2]|0;if((c|0)<(s|0)){u=t+2-c&-2;a=(c>>1)+2&-2;a=(u|0)>(a|0)?u:a;if((a|0)>(2147483647-c|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=a+c|0;o[A>>2]=u;u=On(h,u<<2)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}c=o[i>>2]|0;if((c|0)<(s|0)){A=o[e>>2]|0;do{a=A+(c<<2)|0;if(a)o[a>>2]=0;c=c+1|0}while((c|0)!=(s|0))}o[i>>2]=s;h=o[e>>2]|0;h=h+(t<<2)|0;o[h>>2]=r;l=n;return}function Ur(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;c=o[t>>2]|0;s=c+1|0;i=e+4|0;if((o[i>>2]|0)<(s|0)){a=e+8|0;A=o[a>>2]|0;if((A|0)<(s|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u*12|0)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0)){A=o[e>>2]|0;do{c=A+(a*12|0)|0;if(c){o[c>>2]=0;o[A+(a*12|0)+4>>2]=0;o[A+(a*12|0)+8>>2]=0}a=a+1|0}while((a|0)!=(s|0))}o[i>>2]=s;A=o[t>>2]|0}else A=c;i=o[e>>2]|0;if(o[i+(A*12|0)>>2]|0){o[i+(A*12|0)+4>>2]=0;A=o[t>>2]|0}t=e+16|0;i=A+1|0;s=e+20|0;if((o[s>>2]|0)>=(i|0)){l=r;return}a=e+24|0;e=o[a>>2]|0;if((e|0)<(i|0)){h=A+2-e&-2;A=(e>>1)+2&-2;A=(h|0)>(A|0)?h:A;if((A|0)>(2147483647-e|0)){h=Qe(1)|0;ze(h|0,48,0)}u=o[t>>2]|0;h=A+e|0;o[a>>2]=h;h=On(u,h)|0;o[t>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}e=o[s>>2]|0;if((e|0)<(i|0))do{n[(o[t>>2]|0)+e>>0]=0;e=e+1|0}while((e|0)!=(i|0));o[s>>2]=i;l=r;return}function _r(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;l=l+16|0;s=r;o[s>>2]=t;i=e+12|0;n=t+1|0;A=e+16|0;if((o[A>>2]|0)<(n|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(n|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[i>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h<<2)|0;o[i>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[A>>2]|0;if((n|0)>(a|0))oi((o[i>>2]|0)+(a<<2)|0,-1,n-a<<2|0)|0;o[A>>2]=n}o[(o[i>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[i>>2]|0;a=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(a<<2)>>2]|0;if(!a){h=0;g=t+(h<<2)|0;o[g>>2]=i;g=n+(i<<2)|0;o[g>>2]=h;l=r;return}e=e+28|0;s=i<<1;A=s|1;while(1){h=a;a=a+-1>>1;u=t+(a<<2)|0;c=o[u>>2]|0;C=o[o[e>>2]>>2]|0;f=o[C+(s<<2)>>2]|0;d=o[C+(A<<2)>>2]|0;f=Ci(d|0,((d|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0;d=R;p=c<<1;g=o[C+(p<<2)>>2]|0;p=o[C+((p|1)<<2)>>2]|0;g=Ci(p|0,((p|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;p=R;if(!(d>>>0<p>>>0|(d|0)==(p|0)&f>>>0<g>>>0)){e=14;break}o[t+(h<<2)>>2]=c;o[n+(o[u>>2]<<2)>>2]=h;if(!a){h=0;e=14;break}}if((e|0)==14){C=t+(h<<2)|0;o[C>>2]=i;C=n+(i<<2)|0;o[C>>2]=h;l=r;return}}function Or(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;A=e+824|0;u=(o[e+840>>2]|0)>(t|0);if(u?(o[(o[e+836>>2]|0)+(t<<2)>>2]|0)>-1:0)a=7;else a=3;do{if((a|0)==3){if(n[(o[e+876>>2]|0)+t>>0]|0){l=r;return}if(n[(o[e+904>>2]|0)+t>>0]|0){l=r;return}f=n[(o[e+332>>2]|0)+t>>0]|0;g=n[2624]|0;p=g&255;if((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p)if(u){a=7;break}else break;else{l=r;return}}}while(0);if((a|0)==7?(i=o[e+836>>2]|0,s=i+(t<<2)|0,c=o[s>>2]|0,(c|0)>-1):0){t=o[A>>2]|0;a=o[t+(c<<2)>>2]|0;e:do{if(!c)f=0;else{u=e+852|0;h=a<<1;e=h|1;while(1){f=c;c=c+-1>>1;p=t+(c<<2)|0;g=o[p>>2]|0;m=o[o[u>>2]>>2]|0;C=o[m+(h<<2)>>2]|0;I=o[m+(e<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;E=g<<1;d=o[m+(E<<2)>>2]|0;E=o[m+((E|1)<<2)>>2]|0;d=Ci(E|0,((E|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;E=R;if(!(I>>>0<E>>>0|(I|0)==(E|0)&C>>>0<d>>>0))break e;o[t+(f<<2)>>2]=g;o[i+(o[p>>2]<<2)>>2]=f;if(!c){f=0;break}}}}while(0);o[t+(f<<2)>>2]=a;o[i+(a<<2)>>2]=f;jr(A,o[s>>2]|0);l=r;return}_r(A,t);l=r;return}function jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;n=o[e>>2]|0;i=o[n+(t<<2)>>2]|0;h=t<<1|1;u=e+4|0;f=o[u>>2]|0;if((h|0)>=(f|0)){p=t;d=e+12|0;f=n+(p<<2)|0;o[f>>2]=i;d=o[d>>2]|0;d=d+(i<<2)|0;o[d>>2]=p;l=r;return}A=e+28|0;c=i<<1;a=c|1;e=e+12|0;while(1){g=(t<<1)+2|0;if((g|0)<(f|0)){p=o[n+(g<<2)>>2]|0;d=o[n+(h<<2)>>2]|0;m=p<<1;f=o[o[A>>2]>>2]|0;E=o[f+(m<<2)>>2]|0;m=o[f+((m|1)<<2)>>2]|0;E=Ci(m|0,((m|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;m=R;I=d<<1;C=o[f+(I<<2)>>2]|0;I=o[f+((I|1)<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;if(!(m>>>0<I>>>0|(m|0)==(I|0)&E>>>0<C>>>0)){p=d;s=7}}else{p=o[n+(h<<2)>>2]|0;f=o[o[A>>2]>>2]|0;s=7}if((s|0)==7){s=0;g=h}C=p<<1;I=o[f+(C<<2)>>2]|0;C=o[f+((C|1)<<2)>>2]|0;I=Ci(C|0,((C|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;C=R;m=o[f+(c<<2)>>2]|0;E=o[f+(a<<2)>>2]|0;m=Ci(E|0,((E|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;E=R;if(!(C>>>0<E>>>0|(C|0)==(E|0)&I>>>0<m>>>0)){s=10;break}o[n+(t<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=t;h=g<<1|1;f=o[u>>2]|0;if((h|0)>=(f|0)){t=g;s=10;break}else t=g}if((s|0)==10){m=n+(t<<2)|0;o[m>>2]=i;m=o[e>>2]|0;m=m+(i<<2)|0;o[m>>2]=t;l=r;return}}function Yr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0;r=l;A=o[e>>2]|0;if(A){n=e+4|0;i=o[n>>2]|0;e:do{if((i|0)>0){s=0;while(1){a=A+(s*12|0)|0;c=o[a>>2]|0;if(c){o[A+(s*12|0)+4>>2]=0;_n(c);o[a>>2]=0;o[A+(s*12|0)+8>>2]=0;i=o[n>>2]|0}s=s+1|0;if((s|0)>=(i|0))break e;A=o[e>>2]|0}}}while(0);o[n>>2]=0;if(t){_n(o[e>>2]|0);o[e>>2]=0;o[e+8>>2]=0}}n=e+16|0;i=o[n>>2]|0;if((i|0)!=0?(o[e+20>>2]=0,t):0){_n(i);o[n>>2]=0;o[e+24>>2]=0}i=e+32|0;n=o[i>>2]|0;if(!n){l=r;return}o[e+36>>2]=0;if(!t){l=r;return}_n(n);o[i>>2]=0;o[e+40>>2]=0;l=r;return}function Gr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;n=l;i=o[e>>2]|0;r=e+4|0;if(i){o[r>>2]=0;if(t){_n(i);o[e>>2]=0;o[e+8>>2]=0;i=0}}else i=0;if((o[r>>2]|0)>=1){A=e+16|0;o[A>>2]=0;A=e+12|0;o[A>>2]=0;l=n;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<1){a=2-s&-2;t=(s>>1)+2&-2;t=(a|0)>(t|0)?a:t;if((t|0)>(2147483647-s|0)){a=Qe(1)|0;ze(a|0,48,0)}a=t+s|0;o[A>>2]=a;i=On(i,a<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}t=o[r>>2]|0;if((t|0)<1)while(1){s=i+(t<<2)|0;if(s)o[s>>2]=0;if(!t)break;else t=t+1|0}o[r>>2]=1;a=e+16|0;o[a>>2]=0;a=e+12|0;o[a>>2]=0;l=n;return}function Jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;l=l+16|0;r=n;i=e+16|0;a=o[i>>2]|0;o[i>>2]=a+1;o[(o[e>>2]|0)+(a<<2)>>2]=t;a=o[i>>2]|0;t=e+4|0;A=o[t>>2]|0;if((a|0)==(A|0)){o[i>>2]=0;a=0}s=e+12|0;if((o[s>>2]|0)!=(a|0)){l=n;return}Lr(r,(A*3|0)+1>>1);u=o[s>>2]|0;h=o[t>>2]|0;if((u|0)<(h|0)){a=o[e>>2]|0;c=o[r>>2]|0;h=0;while(1){A=h+1|0;o[c+(h<<2)>>2]=o[a+(u<<2)>>2];u=u+1|0;h=o[t>>2]|0;if((u|0)>=(h|0)){c=A;break}else h=A}}else c=0;A=o[e>>2]|0;if((o[i>>2]|0)>0){a=o[r>>2]|0;u=0;while(1){o[a+(c<<2)>>2]=o[A+(u<<2)>>2];u=u+1|0;if((u|0)>=(o[i>>2]|0))break;else c=c+1|0}h=o[t>>2]|0}o[s>>2]=0;o[i>>2]=h;if(!A)i=e+8|0;else{o[t>>2]=0;_n(A);o[e>>2]=0;i=e+8|0;o[i>>2]=0}o[e>>2]=o[r>>2];u=r+4|0;o[t>>2]=o[u>>2];h=r+8|0;o[i>>2]=o[h>>2];o[r>>2]=0;o[u>>2]=0;o[h>>2]=0;l=n;return}function Hr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function qr(){var e=0,t=0;t=l;Ue(3864)|0;e=cn(936)|0;Cr(e);l=t;return e|0}function zr(e){e=e|0;var t=0;t=l;if(!e){l=t;return}ji[o[(o[e>>2]|0)+4>>2]&31](e);l=t;return}function Wr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;r=cn(936)|0;Cr(r);o[964]=r;wr(r,1)|0;r=o[964]|0;n[t+0>>0]=n[3840]|0;mr(r,t,1)|0;l=e;return}function Vr(e){e=e|0;var t=0,r=0,i=0;t=l;l=l+16|0;r=t;if((o[962]|0)>=(e|0)){l=t;return}do{i=o[964]|0;n[r+0>>0]=n[3840]|0;mr(i,r,1)|0;i=(o[962]|0)+1|0;o[962]=i}while((i|0)<(e|0));l=t;return}function Xr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;s=l;l=l+32|0;A=s+16|0;r=s+4|0;a=s;o[r>>2]=0;i=r+4|0;o[i>>2]=0;t=r+8|0;o[t>>2]=0;c=o[e>>2]|0;if(c)do{u=(c|0)<0?0-c|0:c;if((o[962]|0)<(u|0))do{h=o[964]|0;n[A+0>>0]=n[3840]|0;mr(h,A,1)|0;h=(o[962]|0)+1|0;o[962]=h}while((h|0)<(u|0));o[a>>2]=u<<1|c>>>31;sr(r,a);e=e+4|0;c=o[e>>2]|0}while((c|0)!=0);a=o[964]|0;A=a+628|0;sn(r,A);A=Br(a,A)|0;a=o[r>>2]|0;if(!a){l=s;return A|0}o[i>>2]=0;_n(a);o[r>>2]=0;o[t>>2]=0;l=s;return A|0}function Zr(){var e=0,t=0,r=0,i=0;t=l;l=l+16|0;e=t;r=o[964]|0;i=r+664|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;if(o[r+304>>2]|0)o[r+308>>2]=0;yr(e,r,1,0);l=t;return(n[e>>0]|0)==0|0}function $r(){return(o[(o[964]|0)+4>>2]|0)+1|0}function en(){return o[962]|0}function tn(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+32|0;A=t+16|0;i=t+4|0;a=t;o[i>>2]=0;r=i+4|0;o[r>>2]=0;s=i+8|0;o[s>>2]=0;o[a>>2]=e<<1;sr(i,a);e=o[964]|0;a=e+664|0;o[a+0>>2]=-1;o[a+4>>2]=-1;o[a+8>>2]=-1;o[a+12>>2]=-1;sn(i,e+304|0);yr(A,e,1,0);e=(n[A>>0]|0)==0;A=o[i>>2]|0;if(!A){l=t;return e|0}o[r>>2]=0;_n(A);o[i>>2]=0;o[s>>2]=0;l=t;return e|0}function rn(e){e=e|0;var t=0,r=0,n=0;t=l;l=l+16|0;n=t;r=o[964]|0;o[n>>2]=e<<1|1;e=r+628|0;if(o[e>>2]|0)o[r+632>>2]=0;sr(e,n);Br(r,e)|0;l=t;return}function nn(){return o[(o[964]|0)+36>>2]|0}function on(){return o[(o[964]|0)+32>>2]|0}function sn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;A=o[t>>2]|0;n=t+4|0;if(!A)a=o[n>>2]|0;else{o[n>>2]=0;a=0}n=e+4|0;i=o[n>>2]|0;s=t+4|0;if((a|0)<(i|0)){c=t+8|0;a=o[c>>2]|0;if((a|0)<(i|0)){h=i+1-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}h=u+a|0;o[c>>2]=h;A=On(A,h<<2)|0;o[t>>2]=A;if((A|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[s>>2]|0;e:do{if((a|0)<(i|0))while(1){A=A+(a<<2)|0;if(A)o[A>>2]=0;a=a+1|0;if((a|0)==(i|0))break e;A=o[t>>2]|0}}while(0);o[s>>2]=i;i=o[n>>2]|0}if((i|0)<=0){l=r;return}t=o[t>>2]|0;e=o[e>>2]|0;i=0;do{o[t+(i<<2)>>2]=o[e+(i<<2)>>2];i=i+1|0}while((i|0)<(o[n>>2]|0));l=r;return}function An(e,t){e=e|0;t=t|0;var r=0;r=l;l=l+16|0;o[r>>2]=t;t=o[E>>2]|0;Be(t|0,e|0,r|0)|0;qe(10,t|0)|0;Xe()}function an(){var e=0,t=0;e=l;l=l+16|0;if(!(Pe(4064,3)|0)){t=Le(o[1014]|0)|0;l=e;return t|0}else An(4072,e);return 0}function cn(e){e=e|0;var t=0,r=0;t=l;e=(e|0)==0?1:e;r=Un(e)|0;if(r){l=t;return r|0}while(1){r=dn()|0;if(!r){e=4;break}Ji[r&3]();r=Un(e)|0;if(r){e=5;break}}if((e|0)==4){r=Qe(4)|0;o[r>>2]=4248;ze(r|0,4296,12)}else if((e|0)==5){l=t;return r|0}return 0}function un(e){e=e|0;var t=0;t=l;_n(e);l=t;return}function ln(e){e=e|0;var t=0;t=l;un(e);l=t;return}function hn(e){e=e|0;return}function gn(e){e=e|0;return 4264}function fn(e){e=e|0;var t=0;t=l;l=l+16|0;Ji[e&3]();An(4312,t)}function pn(){var e=0,t=0;t=an()|0;if(((t|0)!=0?(e=o[t>>2]|0,(e|0)!=0):0)?(t=e+48|0,(o[t>>2]&-256|0)==1126902528?(o[t+4>>2]|0)==1129074247:0):0)fn(o[e+12>>2]|0);t=o[968]|0;o[968]=t+0;fn(t)}function dn(){var e=0;e=o[1102]|0;o[1102]=e+0;return e|0}function Cn(e){e=e|0;return}function En(e){e=e|0;return}function In(e){e=e|0;return}function mn(e){e=e|0;return}function yn(e){e=e|0;return}function wn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Bn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0;n=l;l=l+64|0;i=n;if((e|0)==(t|0)){A=1;l=n;return A|0}if(!t){A=0;l=n;return A|0}t=Sn(t,4504,4560,0)|0;if(!t){A=0;l=n;return A|0}A=i+0|0;s=A+56|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));o[i>>2]=t;o[i+8>>2]=e;o[i+12>>2]=-1;o[i+48>>2]=1;zi[o[(o[t>>2]|0)+28>>2]&3](t,i,o[r>>2]|0,1);if((o[i+24>>2]|0)!=1){A=0;l=n;return A|0}o[r>>2]=o[i+16>>2];A=1;l=n;return A|0}function vn(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0;e=l;s=t+16|0;A=o[s>>2]|0;if(!A){o[s>>2]=r;o[t+24>>2]=i;o[t+36>>2]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;o[t+24>>2]=2;n[t+54>>0]=1;l=e;return}r=t+24|0;if((o[r>>2]|0)!=2){l=e;return}o[r>>2]=i;l=e;return}function Dn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((o[t+8>>2]|0)!=(e|0)){l=i;return}vn(0,t,r,n);l=i;return}function bn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((e|0)==(o[t+8>>2]|0)){vn(0,t,r,n);l=i;return}else{e=o[e+8>>2]|0;zi[o[(o[e>>2]|0)+28>>2]&3](e,t,r,n);l=i;return}}function Sn(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;A=l;l=l+64|0;a=A;c=o[e>>2]|0;u=e+(o[c+-8>>2]|0)|0;c=o[c+-4>>2]|0;o[a>>2]=r;o[a+4>>2]=e;o[a+8>>2]=t;o[a+12>>2]=s;g=a+16|0;f=a+20|0;t=a+24|0;h=a+28|0;s=a+32|0;e=a+40|0;p=(c|0)==(r|0);d=g+0|0;r=d+36|0;do{o[d>>2]=0;d=d+4|0}while((d|0)<(r|0));i[g+36>>1]=0;n[g+38>>0]=0;if(p){o[a+48>>2]=1;Hi[o[(o[c>>2]|0)+20>>2]&3](c,a,u,u,1,0);d=(o[t>>2]|0)==1?u:0;l=A;return d|0}Oi[o[(o[c>>2]|0)+24>>2]&3](c,a,u,1,0);a=o[a+36>>2]|0;if(!a){d=(o[e>>2]|0)==1&(o[h>>2]|0)==1&(o[s>>2]|0)==1?o[f>>2]|0:0;l=A;return d|0}else if((a|0)==1){if((o[t>>2]|0)!=1?!((o[e>>2]|0)==0&(o[h>>2]|0)==1&(o[s>>2]|0)==1):0){d=0;l=A;return d|0}d=o[g>>2]|0;l=A;return d|0}else{d=0;l=A;return d|0}return 0}function kn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;e=l;n[t+53>>0]=1;if((o[t+4>>2]|0)!=(i|0)){l=e;return}n[t+52>>0]=1;i=t+16|0;A=o[i>>2]|0;if(!A){o[i>>2]=r;o[t+24>>2]=s;o[t+36>>2]=1;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;n[t+54>>0]=1;l=e;return}r=t+24|0;i=o[r>>2]|0;if((i|0)==2)o[r>>2]=s;else s=i;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}function xn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0,a=0,c=0,u=0,h=0;A=l;if((e|0)==(o[t+8>>2]|0)){if((o[t+4>>2]|0)!=(r|0)){l=A;return}a=t+28|0;if((o[a>>2]|0)==1){l=A;return}o[a>>2]=i;l=A;return}if((e|0)!=(o[t>>2]|0)){u=o[e+8>>2]|0;Oi[o[(o[u>>2]|0)+24>>2]&3](u,t,r,i,s);l=A;return}if((o[t+16>>2]|0)!=(r|0)?(c=t+20|0,(o[c>>2]|0)!=(r|0)):0){o[t+32>>2]=i;i=t+44|0;if((o[i>>2]|0)==4){l=A;return}u=t+52|0;n[u>>0]=0;h=t+53|0;n[h>>0]=0;e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,r,1,s);if(n[h>>0]|0){if(!(n[u>>0]|0)){e=1;a=13}}else{e=0;a=13}do{if((a|0)==13){o[c>>2]=r;h=t+40|0;o[h>>2]=(o[h>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0){n[t+54>>0]=1;if(e)break}else a=16;if((a|0)==16?e:0)break;o[i>>2]=4;l=A;return}}while(0);o[i>>2]=3;l=A;return}if((i|0)!=1){l=A;return}o[t+32>>2]=1;l=A;return}function Fn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;s=l;if((o[t+8>>2]|0)==(e|0)){if((o[t+4>>2]|0)!=(r|0)){l=s;return}t=t+28|0;if((o[t>>2]|0)==1){l=s;return}o[t>>2]=i;l=s;return}if((o[t>>2]|0)!=(e|0)){l=s;return}if((o[t+16>>2]|0)!=(r|0)?(A=t+20|0,(o[A>>2]|0)!=(r|0)):0){o[t+32>>2]=i;o[A>>2]=r;e=t+40|0;o[e>>2]=(o[e>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0)n[t+54>>0]=1;o[t+44>>2]=4;l=s;return}if((i|0)!=1){l=s;return}o[t+32>>2]=1;l=s;return}function Mn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;var A=0;A=l;if((e|0)==(o[t+8>>2]|0)){kn(0,t,r,n,i);l=A;return}else{e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,n,i,s);l=A;return}}function Nn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;s=l;if((o[t+8>>2]|0)!=(e|0)){l=s;return}kn(0,t,r,n,i);l=s;return}function Rn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;n=l;l=l+16|0;i=n;o[i>>2]=o[r>>2];e=_i[o[(o[e>>2]|0)+16>>2]&1](e,t,i)|0;t=e&1;if(!e){l=n;return t|0}o[r>>2]=o[i>>2];l=n;return t|0}function Kn(e){e=e|0;var t=0;t=l;if(!e)e=0;else e=(Sn(e,4504,4672,0)|0)!=0;l=t;return e&1|0}function Ln(){var e=0,t=0,r=0,n=0,i=0;e=l;l=l+16|0;t=e;e=e+12|0;r=an()|0;if(!r)An(4040,t);r=o[r>>2]|0;if(!r)An(4040,t);i=r+48|0;n=o[i>>2]|0;i=o[i+4>>2]|0;if(!((n&-256|0)==1126902528&(i|0)==1129074247)){o[t>>2]=o[970];An(4e3,t)}if((n|0)==1126902529&(i|0)==1129074247)n=o[r+44>>2]|0;else n=r+80|0;o[e>>2]=n;i=o[r>>2]|0;r=o[i+4>>2]|0;if(_i[o[(o[4432>>2]|0)+16>>2]&1](4432,i,e)|0){i=o[e>>2]|0;n=o[970]|0;i=Gi[o[(o[i>>2]|0)+8>>2]&1](i)|0;o[t>>2]=n;o[t+4>>2]=r;o[t+8>>2]=i;An(3904,t)}else{o[t>>2]=o[970];o[t+4>>2]=r;An(3952,t)}}function Tn(){var e=0;e=l;l=l+16|0;if(!(Oe(4056,20)|0)){l=e;return}else An(4128,e)}function Pn(e){e=e|0;var t=0;t=l;l=l+16|0;_n(e);if(!(Ge(o[1014]|0,0)|0)){l=t;return}else An(4184,t)}function Un(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0;t=l;do{if(e>>>0<245){if(e>>>0<11)e=16;else e=e+11&-8;B=e>>>3;p=o[1206]|0;w=p>>>B;if(w&3){s=(w&1^1)+B|0;i=s<<1;r=4864+(i<<2)|0;i=4864+(i+2<<2)|0;A=o[i>>2]|0;a=A+8|0;n=o[a>>2]|0;do{if((r|0)!=(n|0)){if(n>>>0<(o[1210]|0)>>>0)Xe();c=n+12|0;if((o[c>>2]|0)==(A|0)){o[c>>2]=r;o[i>>2]=n;break}else Xe()}else o[1206]=p&~(1<<s)}while(0);N=s<<3;o[A+4>>2]=N|3;N=A+(N|4)|0;o[N>>2]=o[N>>2]|1;N=a;l=t;return N|0}y=o[1208]|0;if(e>>>0>y>>>0){if(w){A=2<<B;A=w<<B&(A|0-A);A=(A&0-A)+-1|0;r=A>>>12&16;A=A>>>r;a=A>>>5&8;A=A>>>a;i=A>>>2&4;A=A>>>i;s=A>>>1&2;A=A>>>s;n=A>>>1&1;n=(a|r|i|s|n)+(A>>>n)|0;A=n<<1;s=4864+(A<<2)|0;A=4864+(A+2<<2)|0;i=o[A>>2]|0;r=i+8|0;a=o[r>>2]|0;do{if((s|0)!=(a|0)){if(a>>>0<(o[1210]|0)>>>0)Xe();c=a+12|0;if((o[c>>2]|0)==(i|0)){o[c>>2]=s;o[A>>2]=a;x=o[1208]|0;break}else Xe()}else{o[1206]=p&~(1<<n);x=y}}while(0);N=n<<3;n=N-e|0;o[i+4>>2]=e|3;s=i+e|0;o[i+(e|4)>>2]=n|1;o[i+N>>2]=n;if(x){i=o[1211]|0;u=x>>>3;a=u<<1;A=4864+(a<<2)|0;c=o[1206]|0;u=1<<u;if(c&u){a=4864+(a+2<<2)|0;c=o[a>>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{k=a;S=c}}else{o[1206]=c|u;k=4864+(a+2<<2)|0;S=A}o[k>>2]=i;o[S+12>>2]=i;o[i+8>>2]=S;o[i+12>>2]=A}o[1208]=n;o[1211]=s;N=r;l=t;return N|0}p=o[1207]|0;if(p){r=(p&0-p)+-1|0;M=r>>>12&16;r=r>>>M;F=r>>>5&8;r=r>>>F;N=r>>>2&4;r=r>>>N;i=r>>>1&2;r=r>>>i;n=r>>>1&1;n=o[5128+((F|M|N|i|n)+(r>>>n)<<2)>>2]|0;r=(o[n+4>>2]&-8)-e|0;i=n;while(1){s=o[i+16>>2]|0;if(!s){s=o[i+20>>2]|0;if(!s)break}i=(o[s+4>>2]&-8)-e|0;N=i>>>0<r>>>0;r=N?i:r;i=s;n=N?s:n}A=o[1210]|0;if(n>>>0<A>>>0)Xe();i=n+e|0;if(n>>>0>=i>>>0)Xe();s=o[n+24>>2]|0;c=o[n+12>>2]|0;do{if((c|0)==(n|0)){c=n+20|0;a=o[c>>2]|0;if(!a){c=n+16|0;a=o[c>>2]|0;if(!a){b=0;break}}while(1){u=a+20|0;h=o[u>>2]|0;if(h){a=h;c=u;continue}u=a+16|0;h=o[u>>2]|0;if(!h)break;else{a=h;c=u}}if(c>>>0<A>>>0)Xe();else{o[c>>2]=0;b=a;break}}else{a=o[n+8>>2]|0;if(a>>>0<A>>>0)Xe();A=a+12|0;if((o[A>>2]|0)!=(n|0))Xe();u=c+8|0;if((o[u>>2]|0)==(n|0)){o[A>>2]=c;o[u>>2]=a;b=c;break}else Xe()}}while(0);do{if(s){a=o[n+28>>2]|0;A=5128+(a<<2)|0;if((n|0)==(o[A>>2]|0)){o[A>>2]=b;if(!b){o[1207]=o[1207]&~(1<<a);break}}else{if(s>>>0<(o[1210]|0)>>>0)Xe();A=s+16|0;if((o[A>>2]|0)==(n|0))o[A>>2]=b;else o[s+20>>2]=b;if(!b)break}A=o[1210]|0;if(b>>>0<A>>>0)Xe();o[b+24>>2]=s;s=o[n+16>>2]|0;do{if(s)if(s>>>0<A>>>0)Xe();else{o[b+16>>2]=s;o[s+24>>2]=b;break}}while(0);s=o[n+20>>2]|0;if(s)if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[b+20>>2]=s;o[s+24>>2]=b;break}}}while(0);if(r>>>0<16){N=r+e|0;o[n+4>>2]=N|3;N=n+(N+4)|0;o[N>>2]=o[N>>2]|1}else{o[n+4>>2]=e|3;o[n+(e|4)>>2]=r|1;o[n+(r+e)>>2]=r;A=o[1208]|0;if(A){s=o[1211]|0;c=A>>>3;u=c<<1;A=4864+(u<<2)|0;a=o[1206]|0;c=1<<c;if(a&c){a=4864+(u+2<<2)|0;c=o[a>>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{D=a;v=c}}else{o[1206]=a|c;D=4864+(u+2<<2)|0;v=A}o[D>>2]=s;o[v+12>>2]=s;o[s+8>>2]=v;o[s+12>>2]=A}o[1208]=r;o[1211]=i}N=n+8|0;l=t;return N|0}}}else if(e>>>0<=4294967231){v=e+11|0;e=v&-8;b=o[1207]|0;if(b){D=0-e|0;v=v>>>8;if(v)if(e>>>0>16777215)S=31;else{M=(v+1048320|0)>>>16&8;N=v<<M;F=(N+520192|0)>>>16&4;N=N<<F;S=(N+245760|0)>>>16&2;S=14-(F|M|S)+(N<<S>>>15)|0;S=e>>>(S+7|0)&1|S<<1}else S=0;k=o[5128+(S<<2)>>2]|0;e:do{if(!k){F=0;v=0}else{if((S|0)==31)v=0;else v=25-(S>>>1)|0;F=0;x=e<<v;v=0;while(1){M=o[k+4>>2]&-8;N=M-e|0;if(N>>>0<D>>>0)if((M|0)==(e|0)){D=N;F=k;v=k;break e}else{D=N;v=k}N=o[k+20>>2]|0;k=o[k+(x>>>31<<2)+16>>2]|0;F=(N|0)==0|(N|0)==(k|0)?F:N;if(!k)break;else x=x<<1}}}while(0);if((F|0)==0&(v|0)==0){N=2<<S;b=b&(N|0-N);if(!b)break;N=(b&0-b)+-1|0;k=N>>>12&16;N=N>>>k;S=N>>>5&8;N=N>>>S;x=N>>>2&4;N=N>>>x;M=N>>>1&2;N=N>>>M;F=N>>>1&1;F=o[5128+((S|k|x|M|F)+(N>>>F)<<2)>>2]|0}if(F)while(1){N=(o[F+4>>2]&-8)-e|0;b=N>>>0<D>>>0;D=b?N:D;v=b?F:v;b=o[F+16>>2]|0;if(b){F=b;continue}F=o[F+20>>2]|0;if(!F)break}if((v|0)!=0?D>>>0<((o[1208]|0)-e|0)>>>0:0){i=o[1210]|0;if(v>>>0<i>>>0)Xe();r=v+e|0;if(v>>>0>=r>>>0)Xe();n=o[v+24>>2]|0;s=o[v+12>>2]|0;do{if((s|0)==(v|0)){A=v+20|0;s=o[A>>2]|0;if(!s){A=v+16|0;s=o[A>>2]|0;if(!s){B=0;break}}while(1){a=s+20|0;c=o[a>>2]|0;if(c){s=c;A=a;continue}a=s+16|0;c=o[a>>2]|0;if(!c)break;else{s=c;A=a}}if(A>>>0<i>>>0)Xe();else{o[A>>2]=0;B=s;break}}else{A=o[v+8>>2]|0;if(A>>>0<i>>>0)Xe();a=A+12|0;if((o[a>>2]|0)!=(v|0))Xe();i=s+8|0;if((o[i>>2]|0)==(v|0)){o[a>>2]=s;o[i>>2]=A;B=s;break}else Xe()}}while(0);do{if(n){i=o[v+28>>2]|0;s=5128+(i<<2)|0;if((v|0)==(o[s>>2]|0)){o[s>>2]=B;if(!B){o[1207]=o[1207]&~(1<<i);break}}else{if(n>>>0<(o[1210]|0)>>>0)Xe();i=n+16|0;if((o[i>>2]|0)==(v|0))o[i>>2]=B;else o[n+20>>2]=B;if(!B)break}i=o[1210]|0;if(B>>>0<i>>>0)Xe();o[B+24>>2]=n;n=o[v+16>>2]|0;do{if(n)if(n>>>0<i>>>0)Xe();else{o[B+16>>2]=n;o[n+24>>2]=B;break}}while(0);n=o[v+20>>2]|0;if(n)if(n>>>0<(o[1210]|0)>>>0)Xe();else{o[B+20>>2]=n;o[n+24>>2]=B;break}}}while(0);e:do{if(D>>>0>=16){o[v+4>>2]=e|3;o[v+(e|4)>>2]=D|1;o[v+(D+e)>>2]=D;i=D>>>3;if(D>>>0<256){A=i<<1;n=4864+(A<<2)|0;s=o[1206]|0;i=1<<i;do{if(!(s&i)){o[1206]=s|i;w=4864+(A+2<<2)|0;y=n}else{i=4864+(A+2<<2)|0;s=o[i>>2]|0;if(s>>>0>=(o[1210]|0)>>>0){w=i;y=s;break}Xe()}}while(0);o[w>>2]=r;o[y+12>>2]=r;o[v+(e+8)>>2]=y;o[v+(e+12)>>2]=n;break}n=D>>>8;if(n)if(D>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=D>>>(n+7|0)&1|n<<1}else n=0;i=5128+(n<<2)|0;o[v+(e+28)>>2]=n;o[v+(e+20)>>2]=0;o[v+(e+16)>>2]=0;s=o[1207]|0;A=1<<n;if(!(s&A)){o[1207]=s|A;o[i>>2]=r;o[v+(e+24)>>2]=i;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break}A=o[i>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[A+4>>2]&-8|0)!=(D|0)){n=D<<n;while(1){s=A+(n>>>31<<2)+16|0;i=o[s>>2]|0;if(!i)break;if((o[i+4>>2]&-8|0)==(D|0)){p=i;break t}else{n=n<<1;A=i}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=r;o[v+(e+24)>>2]=A;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break e}}else p=A}while(0);i=p+8|0;n=o[i>>2]|0;N=o[1210]|0;if(p>>>0>=N>>>0&n>>>0>=N>>>0){o[n+12>>2]=r;o[i>>2]=r;o[v+(e+8)>>2]=n;o[v+(e+12)>>2]=p;o[v+(e+24)>>2]=0;break}else Xe()}else{N=D+e|0;o[v+4>>2]=N|3;N=v+(N+4)|0;o[N>>2]=o[N>>2]|1}}while(0);N=v+8|0;l=t;return N|0}}}else e=-1}while(0);p=o[1208]|0;if(p>>>0>=e>>>0){n=p-e|0;r=o[1211]|0;if(n>>>0>15){o[1211]=r+e;o[1208]=n;o[r+(e+4)>>2]=n|1;o[r+p>>2]=n;o[r+4>>2]=e|3}else{o[1208]=0;o[1211]=0;o[r+4>>2]=p|3;N=r+(p+4)|0;o[N>>2]=o[N>>2]|1}N=r+8|0;l=t;return N|0}p=o[1209]|0;if(p>>>0>e>>>0){M=p-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}do{if(!(o[1324]|0)){p=Ke(30)|0;if(!(p+-1&p)){o[1326]=p;o[1325]=p;o[1327]=-1;o[1328]=-1;o[1329]=0;o[1317]=0;o[1324]=($e(0)|0)&-16^1431655768;break}else Xe()}}while(0);B=e+48|0;p=o[1326]|0;w=e+47|0;D=p+w|0;p=0-p|0;y=D&p;if(y>>>0<=e>>>0){N=0;l=t;return N|0}v=o[1316]|0;if((v|0)!=0?(M=o[1314]|0,N=M+y|0,N>>>0<=M>>>0|N>>>0>v>>>0):0){N=0;l=t;return N|0}e:do{if(!(o[1317]&4)){b=o[1212]|0;t:do{if(b){v=5272|0;while(1){S=o[v>>2]|0;if(S>>>0<=b>>>0?(Q=v+4|0,(S+(o[Q>>2]|0)|0)>>>0>b>>>0):0)break;v=o[v+8>>2]|0;if(!v){f=181;break t}}if(v){D=D-(o[1209]|0)&p;if(D>>>0<2147483647){p=ke(D|0)|0;if((p|0)==((o[v>>2]|0)+(o[Q>>2]|0)|0)){v=D;f=190}else{v=D;f=191}}else v=0}else f=181}else f=181}while(0);do{if((f|0)==181){Q=ke(0)|0;if((Q|0)!=(-1|0)){D=Q;v=o[1325]|0;p=v+-1|0;if(!(p&D))v=y;else v=y-D+(p+D&0-v)|0;p=o[1314]|0;D=p+v|0;if(v>>>0>e>>>0&v>>>0<2147483647){N=o[1316]|0;if((N|0)!=0?D>>>0<=p>>>0|D>>>0>N>>>0:0){v=0;break}p=ke(v|0)|0;if((p|0)==(Q|0)){p=Q;f=190}else f=191}else v=0}else v=0}}while(0);t:do{if((f|0)==190){if((p|0)!=(-1|0)){d=v;f=201;break e}}else if((f|0)==191){f=0-v|0;do{if((p|0)!=(-1|0)&v>>>0<2147483647&B>>>0>v>>>0?(m=o[1326]|0,m=w-v+m&0-m,m>>>0<2147483647):0)if((ke(m|0)|0)==(-1|0)){ke(f|0)|0;v=0;break t}else{v=m+v|0;break}}while(0);if((p|0)==(-1|0))v=0;else{d=v;f=201;break e}}}while(0);o[1317]=o[1317]|4;f=198}else{v=0;f=198}}while(0);if((((f|0)==198?y>>>0<2147483647:0)?(I=ke(y|0)|0,E=ke(0)|0,(I|0)!=(-1|0)&(E|0)!=(-1|0)&I>>>0<E>>>0):0)?(C=E-I|0,d=C>>>0>(e+40|0)>>>0,d):0){p=I;d=d?C:v;f=201}if((f|0)==201){C=(o[1314]|0)+d|0;o[1314]=C;if(C>>>0>(o[1315]|0)>>>0)o[1315]=C;C=o[1212]|0;e:do{if(C){I=5272|0;while(1){E=o[I>>2]|0;y=I+4|0;w=o[y>>2]|0;if((p|0)==(E+w|0)){f=213;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if(((f|0)==213?(o[I+12>>2]&8|0)==0:0)?C>>>0>=E>>>0&C>>>0<p>>>0:0){o[y>>2]=w+d;r=(o[1209]|0)+d|0;n=C+8|0;if(!(n&7))n=0;else n=0-n&7;N=r-n|0;o[1212]=C+n;o[1209]=N;o[C+(n+4)>>2]=N|1;o[C+(r+4)>>2]=40;o[1213]=o[1328];break}E=o[1210]|0;if(p>>>0<E>>>0){o[1210]=p;E=p}y=p+d|0;I=5272|0;while(1){if((o[I>>2]|0)==(y|0)){f=223;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if((f|0)==223?(o[I+12>>2]&8|0)==0:0){o[I>>2]=p;A=I+4|0;o[A>>2]=(o[A>>2]|0)+d;A=p+8|0;if(!(A&7))A=0;else A=0-A&7;a=p+(d+8)|0;if(!(a&7))g=0;else g=0-a&7;f=p+(g+d)|0;c=A+e|0;a=p+c|0;h=f-(p+A)-e|0;o[p+(A+4)>>2]=e|3;t:do{if((f|0)!=(C|0)){if((f|0)==(o[1211]|0)){N=(o[1208]|0)+h|0;o[1208]=N;o[1211]=a;o[p+(c+4)>>2]=N|1;o[p+(N+c)>>2]=N;break}C=d+4|0;m=o[p+(C+g)>>2]|0;if((m&3|0)==1){e=m&-8;I=m>>>3;r:do{if(m>>>0>=256){u=o[p+((g|24)+d)>>2]|0;I=o[p+(d+12+g)>>2]|0;do{if((I|0)==(f|0)){y=g|16;m=p+(C+y)|0;I=o[m>>2]|0;if(!I){m=p+(y+d)|0;I=o[m>>2]|0;if(!I){s=0;break}}while(1){w=I+20|0;y=o[w>>2]|0;if(y){I=y;m=w;continue}w=I+16|0;y=o[w>>2]|0;if(!y)break;else{I=y;m=w}}if(m>>>0<E>>>0)Xe();else{o[m>>2]=0;s=I;break}}else{m=o[p+((g|8)+d)>>2]|0;if(m>>>0<E>>>0)Xe();y=m+12|0;if((o[y>>2]|0)!=(f|0))Xe();E=I+8|0;if((o[E>>2]|0)==(f|0)){o[y>>2]=I;o[E>>2]=m;s=I;break}else Xe()}}while(0);if(!u)break;E=o[p+(d+28+g)>>2]|0;I=5128+(E<<2)|0;do{if((f|0)!=(o[I>>2]|0)){if(u>>>0<(o[1210]|0)>>>0)Xe();E=u+16|0;if((o[E>>2]|0)==(f|0))o[E>>2]=s;else o[u+20>>2]=s;if(!s)break r}else{o[I>>2]=s;if(s)break;o[1207]=o[1207]&~(1<<E);break r}}while(0);f=o[1210]|0;if(s>>>0<f>>>0)Xe();o[s+24>>2]=u;E=g|16;u=o[p+(E+d)>>2]|0;do{if(u)if(u>>>0<f>>>0)Xe();else{o[s+16>>2]=u;o[u+24>>2]=s;break}}while(0);u=o[p+(C+E)>>2]|0;if(!u)break;if(u>>>0<(o[1210]|0)>>>0)Xe();else{o[s+20>>2]=u;o[u+24>>2]=s;break}}else{s=o[p+((g|8)+d)>>2]|0;C=o[p+(d+12+g)>>2]|0;m=4864+(I<<1<<2)|0;do{if((s|0)!=(m|0)){if(s>>>0<E>>>0)Xe();if((o[s+12>>2]|0)==(f|0))break;Xe()}}while(0);if((C|0)==(s|0)){o[1206]=o[1206]&~(1<<I);break}do{if((C|0)==(m|0))u=C+8|0;else{if(C>>>0<E>>>0)Xe();E=C+8|0;if((o[E>>2]|0)==(f|0)){u=E;break}Xe()}}while(0);o[s+12>>2]=C;o[u>>2]=s}}while(0);f=p+((e|g)+d)|0;h=e+h|0}s=f+4|0;o[s>>2]=o[s>>2]&-2;o[p+(c+4)>>2]=h|1;o[p+(h+c)>>2]=h;s=h>>>3;if(h>>>0<256){u=s<<1;r=4864+(u<<2)|0;h=o[1206]|0;s=1<<s;do{if(!(h&s)){o[1206]=h|s;i=4864+(u+2<<2)|0;n=r}else{u=4864+(u+2<<2)|0;s=o[u>>2]|0;if(s>>>0>=(o[1210]|0)>>>0){i=u;n=s;break}Xe()}}while(0);o[i>>2]=a;o[n+12>>2]=a;o[p+(c+8)>>2]=n;o[p+(c+12)>>2]=r;break}n=h>>>8;do{if(!n)n=0;else{if(h>>>0>16777215){n=31;break}M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=h>>>(n+7|0)&1|n<<1}}while(0);u=5128+(n<<2)|0;o[p+(c+28)>>2]=n;o[p+(c+20)>>2]=0;o[p+(c+16)>>2]=0;s=o[1207]|0;i=1<<n;if(!(s&i)){o[1207]=s|i;o[u>>2]=a;o[p+(c+24)>>2]=u;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break}i=o[u>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;r:do{if((o[i+4>>2]&-8|0)!=(h|0)){n=h<<n;while(1){s=i+(n>>>31<<2)+16|0;u=o[s>>2]|0;if(!u)break;if((o[u+4>>2]&-8|0)==(h|0)){r=u;break r}else{n=n<<1;i=u}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=a;o[p+(c+24)>>2]=i;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break t}}else r=i}while(0);n=r+8|0;i=o[n>>2]|0;N=o[1210]|0;if(r>>>0>=N>>>0&i>>>0>=N>>>0){o[i+12>>2]=a;o[n>>2]=a;o[p+(c+8)>>2]=i;o[p+(c+12)>>2]=r;o[p+(c+24)>>2]=0;break}else Xe()}else{N=(o[1209]|0)+h|0;o[1209]=N;o[1212]=a;o[p+(c+4)>>2]=N|1}}while(0);N=p+(A|8)|0;l=t;return N|0}n=5272|0;while(1){r=o[n>>2]|0;if(r>>>0<=C>>>0?(g=o[n+4>>2]|0,h=r+g|0,h>>>0>C>>>0):0)break;n=o[n+8>>2]|0}n=r+(g+-39)|0;if(!(n&7))n=0;else n=0-n&7;r=r+(g+-47+n)|0;r=r>>>0<(C+16|0)>>>0?C:r;n=r+8|0;i=p+8|0;if(!(i&7))i=0;else i=0-i&7;N=d+-40-i|0;o[1212]=p+i;o[1209]=N;o[p+(i+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328];o[r+4>>2]=27;o[n+0>>2]=o[1318];o[n+4>>2]=o[1319];o[n+8>>2]=o[1320];o[n+12>>2]=o[1321];o[1318]=p;o[1319]=d;o[1321]=0;o[1320]=n;n=r+28|0;o[n>>2]=7;if((r+32|0)>>>0<h>>>0)do{N=n;n=n+4|0;o[n>>2]=7}while((N+8|0)>>>0<h>>>0);if((r|0)!=(C|0)){r=r-C|0;n=C+(r+4)|0;o[n>>2]=o[n>>2]&-2;o[C+4>>2]=r|1;o[C+r>>2]=r;n=r>>>3;if(r>>>0<256){i=n<<1;r=4864+(i<<2)|0;s=o[1206]|0;n=1<<n;do{if(!(s&n)){o[1206]=s|n;c=4864+(i+2<<2)|0;a=r}else{i=4864+(i+2<<2)|0;n=o[i>>2]|0;if(n>>>0>=(o[1210]|0)>>>0){c=i;a=n;break}Xe()}}while(0);o[c>>2]=C;o[a+12>>2]=C;o[C+8>>2]=a;o[C+12>>2]=r;break}n=r>>>8;if(n)if(r>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=r>>>(n+7|0)&1|n<<1}else n=0;a=5128+(n<<2)|0;o[C+28>>2]=n;o[C+20>>2]=0;o[C+16>>2]=0;i=o[1207]|0;s=1<<n;if(!(i&s)){o[1207]=i|s;o[a>>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break}i=o[a>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[i+4>>2]&-8|0)!=(r|0)){n=r<<n;a=i;while(1){i=a+(n>>>31<<2)+16|0;s=o[i>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(r|0)){A=s;break t}else{n=n<<1;a=s}}if(i>>>0<(o[1210]|0)>>>0)Xe();else{o[i>>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break e}}else A=i}while(0);n=A+8|0;r=o[n>>2]|0;N=o[1210]|0;if(A>>>0>=N>>>0&r>>>0>=N>>>0){o[r+12>>2]=C;o[n>>2]=C;o[C+8>>2]=r;o[C+12>>2]=A;o[C+24>>2]=0;break}else Xe()}}else{N=o[1210]|0;if((N|0)==0|p>>>0<N>>>0)o[1210]=p;o[1318]=p;o[1319]=d;o[1321]=0;o[1215]=o[1324];o[1214]=-1;r=0;do{N=r<<1;M=4864+(N<<2)|0;o[4864+(N+3<<2)>>2]=M;o[4864+(N+2<<2)>>2]=M;r=r+1|0}while((r|0)!=32);r=p+8|0;if(!(r&7))r=0;else r=0-r&7;N=d+-40-r|0;o[1212]=p+r;o[1209]=N;o[p+(r+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328]}}while(0);r=o[1209]|0;if(r>>>0>e>>>0){M=r-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}}o[(Ye()|0)>>2]=12;N=0;l=t;return N|0}function _n(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;if(!e){l=t;return}d=e+-8|0;C=o[1210]|0;if(d>>>0<C>>>0)Xe();g=o[e+-4>>2]|0;h=g&3;if((h|0)==1)Xe();a=g&-8;A=e+(a+-8)|0;do{if(!(g&1)){m=o[d>>2]|0;if(!h){l=t;return}d=-8-m|0;g=e+d|0;h=m+a|0;if(g>>>0<C>>>0)Xe();if((g|0)==(o[1211]|0)){n=e+(a+-4)|0;f=o[n>>2]|0;if((f&3|0)!=3){n=g;f=h;break}o[1208]=h;o[n>>2]=f&-2;o[e+(d+4)>>2]=h|1;o[A>>2]=h;l=t;return}I=m>>>3;if(m>>>0<256){n=o[e+(d+8)>>2]|0;f=o[e+(d+12)>>2]|0;p=4864+(I<<1<<2)|0;if((n|0)!=(p|0)){if(n>>>0<C>>>0)Xe();if((o[n+12>>2]|0)!=(g|0))Xe()}if((f|0)==(n|0)){o[1206]=o[1206]&~(1<<I);n=g;f=h;break}if((f|0)!=(p|0)){if(f>>>0<C>>>0)Xe();p=f+8|0;if((o[p>>2]|0)==(g|0))E=p;else Xe()}else E=f+8|0;o[n+12>>2]=f;o[E>>2]=n;n=g;f=h;break}E=o[e+(d+24)>>2]|0;I=o[e+(d+12)>>2]|0;do{if((I|0)==(g|0)){m=e+(d+20)|0;I=o[m>>2]|0;if(!I){m=e+(d+16)|0;I=o[m>>2]|0;if(!I){p=0;break}}while(1){y=I+20|0;w=o[y>>2]|0;if(w){I=w;m=y;continue}y=I+16|0;w=o[y>>2]|0;if(!w)break;else{I=w;m=y}}if(m>>>0<C>>>0)Xe();else{o[m>>2]=0;p=I;break}}else{m=o[e+(d+8)>>2]|0;if(m>>>0<C>>>0)Xe();C=m+12|0;if((o[C>>2]|0)!=(g|0))Xe();y=I+8|0;if((o[y>>2]|0)==(g|0)){o[C>>2]=I;o[y>>2]=m;p=I;break}else Xe()}}while(0);if(E){C=o[e+(d+28)>>2]|0;I=5128+(C<<2)|0;if((g|0)==(o[I>>2]|0)){o[I>>2]=p;if(!p){o[1207]=o[1207]&~(1<<C);n=g;f=h;break}}else{if(E>>>0<(o[1210]|0)>>>0)Xe();C=E+16|0;if((o[C>>2]|0)==(g|0))o[C>>2]=p;else o[E+20>>2]=p;if(!p){n=g;f=h;break}}C=o[1210]|0;if(p>>>0<C>>>0)Xe();o[p+24>>2]=E;E=o[e+(d+16)>>2]|0;do{if(E)if(E>>>0<C>>>0)Xe();else{o[p+16>>2]=E;o[E+24>>2]=p;break}}while(0);d=o[e+(d+20)>>2]|0;if(d)if(d>>>0<(o[1210]|0)>>>0)Xe();else{o[p+20>>2]=d;o[d+24>>2]=p;n=g;f=h;break}else{n=g;f=h}}else{n=g;f=h}}else{n=d;f=a}}while(0);if(n>>>0>=A>>>0)Xe();h=e+(a+-4)|0;g=o[h>>2]|0;if(!(g&1))Xe();if(!(g&2)){if((A|0)==(o[1212]|0)){w=(o[1209]|0)+f|0;o[1209]=w;o[1212]=n;o[n+4>>2]=w|1;if((n|0)!=(o[1211]|0)){l=t;return}o[1211]=0;o[1208]=0;l=t;return}if((A|0)==(o[1211]|0)){w=(o[1208]|0)+f|0;o[1208]=w;o[1211]=n;o[n+4>>2]=w|1;o[n+w>>2]=w;l=t;return}f=(g&-8)+f|0;h=g>>>3;do{if(g>>>0>=256){u=o[e+(a+16)>>2]|0;h=o[e+(a|4)>>2]|0;do{if((h|0)==(A|0)){g=e+(a+12)|0;h=o[g>>2]|0;if(!h){g=e+(a+8)|0;h=o[g>>2]|0;if(!h){c=0;break}}while(1){d=h+20|0;p=o[d>>2]|0;if(p){h=p;g=d;continue}p=h+16|0;d=o[p>>2]|0;if(!d)break;else{h=d;g=p}}if(g>>>0<(o[1210]|0)>>>0)Xe();else{o[g>>2]=0;c=h;break}}else{g=o[e+a>>2]|0;if(g>>>0<(o[1210]|0)>>>0)Xe();p=g+12|0;if((o[p>>2]|0)!=(A|0))Xe();d=h+8|0;if((o[d>>2]|0)==(A|0)){o[p>>2]=h;o[d>>2]=g;c=h;break}else Xe()}}while(0);if(u){h=o[e+(a+20)>>2]|0;g=5128+(h<<2)|0;if((A|0)==(o[g>>2]|0)){o[g>>2]=c;if(!c){o[1207]=o[1207]&~(1<<h);break}}else{if(u>>>0<(o[1210]|0)>>>0)Xe();h=u+16|0;if((o[h>>2]|0)==(A|0))o[h>>2]=c;else o[u+20>>2]=c;if(!c)break}A=o[1210]|0;if(c>>>0<A>>>0)Xe();o[c+24>>2]=u;u=o[e+(a+8)>>2]|0;do{if(u)if(u>>>0<A>>>0)Xe();else{o[c+16>>2]=u;o[u+24>>2]=c;break}}while(0);A=o[e+(a+12)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=A;o[A+24>>2]=c;break}}}else{c=o[e+a>>2]|0;a=o[e+(a|4)>>2]|0;e=4864+(h<<1<<2)|0;if((c|0)!=(e|0)){if(c>>>0<(o[1210]|0)>>>0)Xe();if((o[c+12>>2]|0)!=(A|0))Xe()}if((a|0)==(c|0)){o[1206]=o[1206]&~(1<<h);break}if((a|0)!=(e|0)){if(a>>>0<(o[1210]|0)>>>0)Xe();e=a+8|0;if((o[e>>2]|0)==(A|0))u=e;else Xe()}else u=a+8|0;o[c+12>>2]=a;o[u>>2]=c}}while(0);o[n+4>>2]=f|1;o[n+f>>2]=f;if((n|0)==(o[1211]|0)){o[1208]=f;l=t;return}}else{o[h>>2]=g&-2;o[n+4>>2]=f|1;o[n+f>>2]=f}A=f>>>3;if(f>>>0<256){a=A<<1;r=4864+(a<<2)|0;c=o[1206]|0;A=1<<A;if(c&A){a=4864+(a+2<<2)|0;A=o[a>>2]|0;if(A>>>0<(o[1210]|0)>>>0)Xe();else{i=a;s=A}}else{o[1206]=c|A;i=4864+(a+2<<2)|0;s=r}o[i>>2]=n;o[s+12>>2]=n;o[n+8>>2]=s;o[n+12>>2]=r;l=t;return}i=f>>>8;if(i)if(f>>>0>16777215)i=31;else{y=(i+1048320|0)>>>16&8;w=i<<y;m=(w+520192|0)>>>16&4;w=w<<m;i=(w+245760|0)>>>16&2;i=14-(m|y|i)+(w<<i>>>15)|0;i=f>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;a=o[1207]|0;A=1<<i;e:do{if(a&A){s=o[s>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;t:do{if((o[s+4>>2]&-8|0)!=(f|0)){i=f<<i;while(1){a=s+(i>>>31<<2)+16|0;A=o[a>>2]|0;if(!A)break;if((o[A+4>>2]&-8|0)==(f|0)){r=A;break t}else{i=i<<1;s=A}}if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[a>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;break e}}else r=s}while(0);s=r+8|0;i=o[s>>2]|0;w=o[1210]|0;if(r>>>0>=w>>>0&i>>>0>=w>>>0){o[i+12>>2]=n;o[s>>2]=n;o[n+8>>2]=i;o[n+12>>2]=r;o[n+24>>2]=0;break}else Xe()}else{o[1207]=a|A;o[s>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n}}while(0);w=(o[1214]|0)+-1|0;o[1214]=w;if(!w)r=5280|0;else{l=t;return}while(1){r=o[r>>2]|0;if(!r)break;else r=r+8|0}o[1214]=-1;l=t;return}function On(e,t){e=e|0;t=t|0;var r=0,n=0,i=0;r=l;do{if(e){if(t>>>0>4294967231){o[(Ye()|0)>>2]=12;n=0;break}if(t>>>0<11)n=16;else n=t+11&-8;n=ei(e+-8|0,n)|0;if(n){n=n+8|0;break}n=Un(t)|0;if(!n)n=0;else{i=o[e+-4>>2]|0;i=(i&-8)-((i&3|0)==0?8:4)|0;ui(n|0,e|0,(i>>>0<t>>>0?i:t)|0)|0;_n(e)}}else n=Un(t)|0}while(0);l=r;return n|0}function jn(e){e=e|0;if((e|0)==32)e=1;else e=(e+-9|0)>>>0<5;return e&1|0}function Yn(e,t,r,i,A){e=e|0;t=t|0;r=r|0;i=i|0;A=A|0;var a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;a=l;if(t>>>0>36){o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}c=e+4|0;u=e+100|0;do{h=o[c>>2]|0;if(h>>>0<(o[u>>2]|0)>>>0){o[c>>2]=h+1;f=s[h>>0]|0}else f=Hn(e)|0}while((jn(f)|0)!=0);do{if((f|0)==43|(f|0)==45){h=((f|0)==45)<<31>>31;g=o[c>>2]|0;if(g>>>0<(o[u>>2]|0)>>>0){o[c>>2]=g+1;f=s[g>>0]|0;break}else{f=Hn(e)|0;break}}else h=0}while(0);g=(t|0)==0;do{if((t&-17|0)==0&(f|0)==48){f=o[c>>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;f=s[f>>0]|0}else f=Hn(e)|0;if((f|32|0)!=120)if(g){t=8;r=46;break}else{r=32;break}t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;if((s[f+5321>>0]|0)>15){i=(o[u>>2]|0)==0;if(!i)o[c>>2]=(o[c>>2]|0)+-1;if(!r){Jn(e,0);E=0;I=0;R=E;l=a;return I|0}if(i){E=0;I=0;R=E;l=a;return I|0}o[c>>2]=(o[c>>2]|0)+-1;E=0;I=0;R=E;l=a;return I|0}else{t=16;r=46}}else{t=g?10:t;if((s[f+5321>>0]|0)>>>0<t>>>0)r=32;else{if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;Jn(e,0);o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}}}while(0);if((r|0)==32)if((t|0)==10){t=f+-48|0;if(t>>>0<10){g=0;do{g=(g*10|0)+t|0;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&g>>>0<429496729);p=0}else{g=0;p=0}t=f+-48|0;if(t>>>0<10){do{d=Ci(g|0,p|0,10,0)|0;C=R;E=((t|0)<0)<<31>>31;I=~E;if(C>>>0>I>>>0|(C|0)==(I|0)&d>>>0>~t>>>0)break;g=ai(d|0,C|0,t|0,E|0)|0;p=R;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&(p>>>0<429496729|(p|0)==429496729&g>>>0<2576980378));if(t>>>0<=9){t=10;r=72}}}else r=46;e:do{if((r|0)==46){if(!(t+-1&t)){r=n[5584+((t*23|0)>>>5&7)>>0]|0;C=n[f+5321>>0]|0;g=C&255;if(g>>>0<t>>>0){f=g;g=0;do{g=f|g<<r;f=o[c>>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;E=s[f>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;f=C&255}while(f>>>0<t>>>0&g>>>0<134217728);p=0}else{p=0;g=0;E=f}f=ci(-1,-1,r|0)|0;d=R;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break}while(1){g=si(g|0,p|0,r|0)|0;p=R;g=C&255|g;C=o[c>>2]|0;if(C>>>0<(o[u>>2]|0)>>>0){o[c>>2]=C+1;E=s[C>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break e}}}C=n[f+5321>>0]|0;r=C&255;if(r>>>0<t>>>0){g=0;do{g=r+(ie(g,t)|0)|0;r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;d=s[r>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;r=C&255}while(r>>>0<t>>>0&g>>>0<119304647);p=0}else{g=0;p=0;d=f}if((C&255)>>>0<t>>>0){r=Ei(-1,-1,t|0,0)|0;f=R;while(1){if(p>>>0>f>>>0|(p|0)==(f|0)&g>>>0>r>>>0){f=d;r=72;break e}E=Ci(g|0,p|0,t|0,0)|0;I=R;C=C&255;if(I>>>0>4294967295|(I|0)==-1&E>>>0>~C>>>0){f=d;r=72;break e}g=ai(C|0,0,E|0,I|0)|0;p=R;d=o[c>>2]|0;if(d>>>0<(o[u>>2]|0)>>>0){o[c>>2]=d+1;d=s[d>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;if((C&255)>>>0>=t>>>0){f=d;r=72;break}}}else{f=d;r=72}}}while(0);if((r|0)==72)if((s[f+5321>>0]|0)>>>0<t>>>0){do{r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;r=s[r>>0]|0}else r=Hn(e)|0}while((s[r+5321>>0]|0)>>>0<t>>>0);o[(Ye()|0)>>2]=34;p=A;g=i}if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;if(!(p>>>0<A>>>0|(p|0)==(A|0)&g>>>0<i>>>0)){if(!((i&1|0)!=0|0!=0|(h|0)!=0)){o[(Ye()|0)>>2]=34;I=ai(i|0,A|0,-1,-1)|0;E=R;R=E;l=a;return I|0}if(p>>>0>A>>>0|(p|0)==(A|0)&g>>>0>i>>>0){o[(Ye()|0)>>2]=34;E=A;I=i;R=E;l=a;return I|0}}I=((h|0)<0)<<31>>31;I=ii(g^h|0,p^I|0,h|0,I|0)|0;E=R;R=E;l=a;return I|0}function Gn(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0.0,C=0,E=0,I=0,m=0,y=0,w=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0.0,M=0,N=0.0,K=0.0,L=0.0,T=0.0;i=l;l=l+512|0;c=i;if(!t){t=24;a=-149}else if((t|0)==2){t=53;a=-1074}else if((t|0)==1){t=53;a=-1074}else{K=0.0;l=i;return+K}g=e+4|0;f=e+100|0;do{A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;m=s[A>>0]|0}else m=Hn(e)|0}while((jn(m)|0)!=0);do{if((m|0)==43|(m|0)==45){A=1-(((m|0)==45&1)<<1)|0;h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}else A=1}while(0);C=0;do{if((m|32|0)!=(n[5600+C>>0]|0))break;do{if(C>>>0<7){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<8);do{if((C|0)==3)p=23;else if((C|0)!=8){h=(r|0)!=0;if(C>>>0>3&h)if((C|0)==8)break;else{p=23;break}e:do{if(!C){C=0;do{if((m|32|0)!=(n[5616+C>>0]|0))break e;do{if(C>>>0<2){E=o[g>>2]|0;if(E>>>0<(o[f>>2]|0)>>>0){o[g>>2]=E+1;m=s[E>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<3)}}while(0);if(!C){do{if((m|0)==48){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;h=s[h>>0]|0}else h=Hn(e)|0;if((h|32|0)!=120){if(!(o[f>>2]|0)){m=48;break}o[g>>2]=(o[g>>2]|0)+-1;m=48;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=0}else{v=Hn(e)|0;y=0}while(1){if((v|0)==46){p=70;break}else if((v|0)!=48){c=0;h=0;E=0;C=0;m=0;w=0;F=1.0;I=0;d=0.0;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=1;continue}else{v=Hn(e)|0;y=1;continue}}if((p|0)==70){c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;if((v|0)==48){E=0;C=0;do{c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;E=ai(E|0,C|0,-1,-1)|0;C=R}while((v|0)==48);c=0;h=0;y=1;m=1;w=0;F=1.0;I=0;d=0.0}else{c=0;h=0;E=0;C=0;m=1;w=0;F=1.0;I=0;d=0.0}}e:while(1){b=v+-48|0;do{if(b>>>0>=10){D=v|32;S=(v|0)==46;if(!((D+-97|0)>>>0<6|S))break e;if(S)if(!m){E=h;C=c;m=1;break}else{v=46;break e}else{b=(v|0)>57?D+-87|0:b;p=83;break}}else p=83}while(0);if((p|0)==83){p=0;do{if(!((c|0)<0|(c|0)==0&h>>>0<8)){if((c|0)<0|(c|0)==0&h>>>0<14){K=F*.0625;N=K;d=d+K*+(b|0);break}if((b|0)==0|(w|0)!=0)N=F;else{w=1;N=F;d=d+F*.5}}else{N=F;I=b+(I<<4)|0}}while(0);h=ai(h|0,c|0,1,0)|0;c=R;y=1;F=N}v=o[g>>2]|0;if(v>>>0<(o[f>>2]|0)>>>0){o[g>>2]=v+1;v=s[v>>0]|0;continue}else{v=Hn(e)|0;continue}}if(!y){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(r){if(!t?(u=o[g>>2]|0,o[g>>2]=u+-1,(m|0)!=0):0)o[g>>2]=u+-2}else Jn(e,0);K=+(A|0)*0.0;l=i;return+K}p=(m|0)==0;u=p?h:E;p=p?c:C;if((c|0)<0|(c|0)==0&h>>>0<8)do{I=I<<4;h=ai(h|0,c|0,1,0)|0;c=R}while((c|0)<0|(c|0)==0&h>>>0<8);do{if((v|32|0)==112){h=ri(e,r)|0;c=R;if((h|0)==0&(c|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){h=0;c=0;break}o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0;break}}else if(!(o[f>>2]|0)){h=0;c=0}else{o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0}}while(0);u=si(u|0,p|0,2)|0;u=ai(u|0,R|0,-32,-1)|0;c=ai(u|0,R|0,h|0,c|0)|0;u=R;if(!I){K=+(A|0)*0.0;l=i;return+K}if((u|0)>0|(u|0)==0&c>>>0>(0-a|0)>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((u|0)<(x|0)|(u|0)==(x|0)&c>>>0<M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if((I|0)>-1)do{I=I<<1;if(!(d>=.5))F=d;else{F=d+-1.0;I=I|1}d=d+F;c=ai(c|0,u|0,-1,-1)|0;u=R}while((I|0)>-1);a=ii(32,0,a|0,((a|0)<0)<<31>>31|0)|0;a=ai(c|0,u|0,a|0,R|0)|0;M=R;if(0>(M|0)|0==(M|0)&t>>>0>a>>>0)if((a|0)<0){t=0;p=126}else{t=a;p=124}else p=124;if((p|0)==124)if((t|0)<53)p=126;else{a=t;F=+(A|0);N=0.0}if((p|0)==126){N=+(A|0);a=t;F=N;N=+Ve(+ +qn(1.0,84-t|0),+N)}M=(a|0)<32&d!=0.0&(I&1|0)==0;d=F*(M?0.0:d)+(N+F*+(((M&1)+I|0)>>>0))-N;if(!(d!=0.0))o[(Ye()|0)>>2]=34;K=+zn(d,c);l=i;return+K}}while(0);h=a+t|0;u=0-h|0;b=0;while(1){if((m|0)==46){p=137;break}else if((m|0)!=48){k=0;S=0;D=0;break}C=o[g>>2]|0;if(C>>>0<(o[f>>2]|0)>>>0){o[g>>2]=C+1;m=s[C>>0]|0;b=1;continue}else{m=Hn(e)|0;b=1;continue}}if((p|0)==137){p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0;if((m|0)==48){k=0;S=0;do{k=ai(k|0,S|0,-1,-1)|0;S=R;p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0}while((m|0)==48);b=1;D=1}else{k=0;S=0;D=1}}o[c>>2]=0;v=m+-48|0;x=(m|0)==46;e:do{if(v>>>0<10|x){p=c+496|0;w=0;y=0;I=0;E=0;C=0;t:while(1){do{if(x)if(!D){k=w;S=y;D=1}else break t;else{x=ai(w|0,y|0,1,0)|0;y=R;M=(m|0)!=48;if((E|0)>=125){if(!M){w=x;break}o[p>>2]=o[p>>2]|1;w=x;break}w=c+(E<<2)|0;if(I)v=m+-48+((o[w>>2]|0)*10|0)|0;o[w>>2]=v;I=I+1|0;v=(I|0)==9;w=x;b=1;I=v?0:I;E=(v&1)+E|0;C=M?x:C}}while(0);m=o[g>>2]|0;if(m>>>0<(o[f>>2]|0)>>>0){o[g>>2]=m+1;m=s[m>>0]|0}else m=Hn(e)|0;v=m+-48|0;x=(m|0)==46;if(!(v>>>0<10|x)){p=160;break e}}v=(b|0)!=0;p=168}else{w=0;y=0;I=0;E=0;C=0;p=160}}while(0);do{if((p|0)==160){v=(D|0)==0;k=v?w:k;S=v?y:S;v=(b|0)!=0;if(!(v&(m|32|0)==101))if((m|0)>-1){p=168;break}else{p=170;break}v=ri(e,r)|0;m=R;do{if((v|0)==0&(m|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){v=0;m=0;break}o[g>>2]=(o[g>>2]|0)+-1;v=0;m=0;break}}while(0);e=ai(v|0,m|0,k|0,S|0)|0;S=R}}while(0);if((p|0)==168)if(o[f>>2]|0){o[g>>2]=(o[g>>2]|0)+-1;if(v)e=k;else p=171}else p=170;if((p|0)==170)if(v)e=k;else p=171;if((p|0)==171){o[(Ye()|0)>>2]=22;Jn(e,0);K=0.0;l=i;return+K}g=o[c>>2]|0;if(!g){K=+(A|0)*0.0;l=i;return+K}if((e|0)==(w|0)&(S|0)==(y|0)&((y|0)<0|(y|0)==0&w>>>0<10)?t>>>0>30|(g>>>t|0)==0:0){K=+(A|0)*+(g>>>0);l=i;return+K}M=(a|0)/-2|0;x=((M|0)<0)<<31>>31;if((S|0)>(x|0)|(S|0)==(x|0)&e>>>0>M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((S|0)<(x|0)|(S|0)==(x|0)&e>>>0<M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if(I){if((I|0)<9){g=c+(E<<2)|0;f=o[g>>2]|0;do{f=f*10|0;I=I+1|0}while((I|0)!=9);o[g>>2]=f}E=E+1|0}if((C|0)<9?(C|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){K=+(A|0)*+((o[c>>2]|0)>>>0);l=i;return+K}if((e|0)<9){K=+(A|0)*+((o[c>>2]|0)>>>0)/+(o[5632+(8-e<<2)>>2]|0);l=i;return+K}M=t+27+(ie(e,-3)|0)|0;g=o[c>>2]|0;if((M|0)>30|(g>>>M|0)==0){K=+(A|0)*+(g>>>0)*+(o[5632+(e+-10<<2)>>2]|0);l=i;return+K}}g=(e|0)%9|0;if(!g){g=0;f=0}else{r=(e|0)>-1?g:g+9|0;p=o[5632+(8-r<<2)>>2]|0;if(E){C=1e9/(p|0)|0;g=0;f=0;I=0;do{k=c+(I<<2)|0;x=o[k>>2]|0;M=((x>>>0)/(p>>>0)|0)+f|0;o[k>>2]=M;f=ie((x>>>0)%(p>>>0)|0,C)|0;x=I;I=I+1|0;if((x|0)==(g|0)&(M|0)==0){g=I&127;e=e+-9|0}}while((I|0)!=(E|0));if(f){o[c+(E<<2)>>2]=f;E=E+1|0}}else{g=0;E=0}f=0;e=9-r+e|0}e:while(1){r=c+(g<<2)|0;if((e|0)<18){do{C=0;r=E+127|0;while(1){r=r&127;p=c+(r<<2)|0;I=si(o[p>>2]|0,0,29)|0;I=ai(I|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&I>>>0>1e9){M=Ei(I|0,C|0,1e9,0)|0;I=Ii(I|0,C|0,1e9,0)|0;C=M}else C=0;o[p>>2]=I;p=(r|0)==(g|0);if(!((r|0)!=(E+127&127|0)|p))E=(I|0)==0?r:E;if(p)break;else r=r+-1|0}f=f+-29|0}while((C|0)==0)}else{if((e|0)!=18)break;do{if((o[r>>2]|0)>>>0>=9007199){e=18;break e}C=0;p=E+127|0;while(1){p=p&127;I=c+(p<<2)|0;m=si(o[I>>2]|0,0,29)|0;m=ai(m|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&m>>>0>1e9){M=Ei(m|0,C|0,1e9,0)|0;m=Ii(m|0,C|0,1e9,0)|0;C=M}else C=0;o[I>>2]=m;I=(p|0)==(g|0);if(!((p|0)!=(E+127&127|0)|I))E=(m|0)==0?p:E;if(I)break;else p=p+-1|0}f=f+-29|0}while((C|0)==0)}g=g+127&127;if((g|0)==(E|0)){M=E+127&127;E=c+((E+126&127)<<2)|0;o[E>>2]=o[E>>2]|o[c+(M<<2)>>2];E=M}o[c+(g<<2)>>2]=C;e=e+9|0}e:while(1){r=E+1&127;p=c+((E+127&127)<<2)|0;while(1){I=(e|0)==18;C=(e|0)>27?9:1;while(1){m=0;while(1){y=m+g&127;if((y|0)==(E|0)){m=2;break}w=o[c+(y<<2)>>2]|0;v=o[5624+(m<<2)>>2]|0;if(w>>>0<v>>>0){m=2;break}y=m+1|0;if(w>>>0>v>>>0)break;if((y|0)<2)m=y;else{m=y;break}}if((m|0)==2&I)break e;f=C+f|0;if((g|0)==(E|0))g=E;else break}I=(1<<C)+-1|0;m=1e9>>>C;y=g;w=0;do{k=c+(g<<2)|0;x=o[k>>2]|0;M=(x>>>C)+w|0;o[k>>2]=M;w=ie(x&I,m)|0;M=(g|0)==(y|0)&(M|0)==0;g=g+1&127;e=M?e+-9|0:e;y=M?g:y}while((g|0)!=(E|0));if(!w){g=y;continue}if((r|0)!=(y|0))break;o[p>>2]=o[p>>2]|1;g=y}o[c+(E<<2)>>2]=w;g=y;E=r}e=g&127;if((e|0)==(E|0)){o[c+(r+-1<<2)>>2]=0;E=r}F=+((o[c+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(E|0)){E=E+1&127;o[c+(E+-1<<2)>>2]=0}d=+(A|0);N=d*(F*1.0e9+ +((o[c+(e<<2)>>2]|0)>>>0));A=f+53|0;a=A-a|0;if((a|0)<(t|0))if((a|0)<0){t=0;e=1;p=244}else{t=a;e=1;p=243}else{e=0;p=243}if((p|0)==243)if((t|0)<53)p=244;else{F=0.0;K=0.0}if((p|0)==244){T=+Ve(+ +qn(1.0,105-t|0),+N);L=+ot(+N,+ +qn(1.0,53-t|0));F=T;K=L;N=T+(N-L)}r=g+2&127;do{if((r|0)!=(E|0)){c=o[c+(r<<2)>>2]|0;do{if(c>>>0>=5e8){if(c>>>0>5e8){K=d*.75+K;break}if((g+3&127|0)==(E|0)){K=d*.5+K;break}else{K=d*.75+K;break}}else{if((c|0)==0?(g+3&127|0)==(E|0):0)break;K=d*.25+K}}while(0);if((53-t|0)<=1)break;if(+ot(+K,1.0)!=0.0)break;K=K+1.0}}while(0);d=N+K-F;do{if((A&2147483647|0)>(-2-h|0)){if(+J(+d)>=9007199254740992.0){e=(e|0)!=0&(t|0)==(a|0)?0:e;f=f+1|0;d=d*.5}if((f+50|0)<=(u|0)?!((e|0)!=0&K!=0.0):0)break;o[(Ye()|0)>>2]=34}}while(0);T=+zn(d,f);l=i;return+T}else if((C|0)==3){t=o[g>>2]|0;if(t>>>0<(o[f>>2]|0)>>>0){o[g>>2]=t+1;t=s[t>>0]|0}else t=Hn(e)|0;if((t|0)==40)t=1;else{if(!(o[f>>2]|0)){T=B;l=i;return+T}o[g>>2]=(o[g>>2]|0)+-1;T=B;l=i;return+T}while(1){A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;A=s[A>>0]|0}else A=Hn(e)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A+-97|0)>>>0<26|(A|0)==95):0)break;t=t+1|0}if((A|0)==41){T=B;l=i;return+T}A=(o[f>>2]|0)==0;if(!A)o[g>>2]=(o[g>>2]|0)+-1;if(!h){o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}if((t|0)==0|A){T=B;l=i;return+T}do{t=t+-1|0;o[g>>2]=(o[g>>2]|0)+-1}while((t|0)!=0);d=B;l=i;return+d}else{if(o[f>>2]|0)o[g>>2]=(o[g>>2]|0)+-1;o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}}}while(0);if((p|0)==23){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(!(C>>>0<4|(r|0)==0|t))do{o[g>>2]=(o[g>>2]|0)+-1;C=C+-1|0}while(C>>>0>3)}T=+(A|0)*Q;l=i;return+T}function Jn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e+104>>2]=t;i=o[e+8>>2]|0;n=o[e+4>>2]|0;s=i-n|0;o[e+108>>2]=s;if((t|0)!=0&(s|0)>(t|0)){o[e+100>>2]=n+t;l=r;return}else{o[e+100>>2]=i;l=r;return}}function Hn(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0;r=l;a=e+104|0;u=o[a>>2]|0;if(!((u|0)!=0?(o[e+108>>2]|0)>=(u|0):0))c=3;if((c|0)==3?(t=Vn(e)|0,(t|0)>=0):0){c=o[a>>2]|0;a=o[e+8>>2]|0;if((c|0)!=0?(i=o[e+4>>2]|0,A=c-(o[e+108>>2]|0)+-1|0,(a-i|0)>(A|0)):0)o[e+100>>2]=i+A;else o[e+100>>2]=a;i=o[e+4>>2]|0;if(a){u=e+108|0;o[u>>2]=a+1-i+(o[u>>2]|0)}e=i+-1|0;if((s[e>>0]|0|0)==(t|0)){u=t;l=r;return u|0}n[e>>0]=t;u=t;l=r;return u|0}o[e+100>>2]=0;u=-1;l=r;return u|0}function qn(e,t){e=+e;t=t|0;var r=0,n=0;r=l;if((t|0)>1023){e=e*8.98846567431158e+307;n=t+-1023|0;if((n|0)>1023){t=t+-2046|0;t=(t|0)>1023?1023:t;e=e*8.98846567431158e+307}else t=n}else if((t|0)<-1022){e=e*2.2250738585072014e-308;n=t+1022|0;if((n|0)<-1022){t=t+2044|0;t=(t|0)<-1022?-1022:t;e=e*2.2250738585072014e-308}else t=n}t=si(t+1023|0,0,52)|0;n=R;o[g>>2]=t;o[g+4>>2]=n;e=e*+u[g>>3];l=r;return+e}function zn(e,t){e=+e;t=t|0;var r=0;r=l;e=+qn(e,t);l=r;return+e}function Wn(e){e=e|0;var t=0,r=0,i=0;r=l;i=e+74|0;t=n[i>>0]|0;n[i>>0]=t+255|t;i=e+20|0;t=e+44|0;if((o[i>>2]|0)>>>0>(o[t>>2]|0)>>>0)_i[o[e+36>>2]&1](e,0,0)|0;o[e+16>>2]=0;o[e+28>>2]=0;o[i>>2]=0;i=o[e>>2]|0;if(!(i&20)){i=o[t>>2]|0;o[e+8>>2]=i;o[e+4>>2]=i;i=0;l=r;return i|0}if(!(i&4)){i=-1;l=r;return i|0}o[e>>2]=i|32;i=-1;l=r;return i|0}function Vn(e){e=e|0;var t=0,r=0;t=l;l=l+16|0;r=t;if((o[e+8>>2]|0)==0?(Wn(e)|0)!=0:0)e=-1;else if((_i[o[e+32>>2]&1](e,r,1)|0)==1)e=s[r>>0]|0;else e=-1;l=t;return e|0}function Xn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0.0,s=0,A=0;r=l;l=l+112|0;n=r;A=n+0|0;s=A+112|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));s=n+4|0;o[s>>2]=e;A=n+8|0;o[A>>2]=-1;o[n+44>>2]=e;o[n+76>>2]=-1;Jn(n,0);i=+Gn(n,1,1);n=(o[s>>2]|0)-(o[A>>2]|0)+(o[n+108>>2]|0)|0;if(!t){l=r;return+i}if(n)e=e+n|0;o[t>>2]=e;l=r;return+i}function Zn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0;n=l;l=l+112|0;s=n;o[s>>2]=0;i=s+4|0;o[i>>2]=e;o[s+44>>2]=e;if((e|0)<0)o[s+8>>2]=-1;else o[s+8>>2]=e+2147483647;o[s+76>>2]=-1;Jn(s,0);r=Yn(s,r,1,-2147483648,0)|0;if(!t){l=n;return r|0}o[t>>2]=e+((o[i>>2]|0)+(o[s+108>>2]|0)-(o[s+8>>2]|0));l=n;return r|0}function $n(e,t){e=e|0;t=t|0;var r=0,i=0,o=0;r=l;o=n[e>>0]|0;i=n[t>>0]|0;if(o<<24>>24==0?1:o<<24>>24!=i<<24>>24)t=o;else{do{e=e+1|0;t=t+1|0;o=n[e>>0]|0;i=n[t>>0]|0}while(!(o<<24>>24==0?1:o<<24>>24!=i<<24>>24));t=o}l=r;return(t&255)-(i&255)|0}function ei(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;i=e+4|0;n=o[i>>2]|0;u=n&-8;a=e+u|0;h=o[1210]|0;A=n&3;if(!((A|0)!=1&e>>>0>=h>>>0&e>>>0<a>>>0))Xe();s=e+(u|4)|0;p=o[s>>2]|0;if(!(p&1))Xe();if(!A){if(t>>>0<256){C=0;l=r;return C|0}if(u>>>0>=(t+4|0)>>>0?(u-t|0)>>>0<=o[1326]<<1>>>0:0){C=e;l=r;return C|0}C=0;l=r;return C|0}if(u>>>0>=t>>>0){A=u-t|0;if(A>>>0<=15){C=e;l=r;return C|0}o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;o[s>>2]=o[s>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}if((a|0)==(o[1212]|0)){s=(o[1209]|0)+u|0;if(s>>>0<=t>>>0){C=0;l=r;return C|0}C=s-t|0;o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=C|1;o[1212]=e+t;o[1209]=C;C=e;l=r;return C|0}if((a|0)==(o[1211]|0)){A=(o[1208]|0)+u|0;if(A>>>0<t>>>0){C=0;l=r;return C|0}s=A-t|0;if(s>>>0>15){o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=s|1;o[e+A>>2]=s;n=e+(A+4)|0;o[n>>2]=o[n>>2]&-2;n=e+t|0}else{o[i>>2]=n&1|A|2;n=e+(A+4)|0;o[n>>2]=o[n>>2]|1;n=0;s=0}o[1208]=s;o[1211]=n;C=e;l=r;return C|0}if(p&2){C=0;l=r;return C|0}s=(p&-8)+u|0;if(s>>>0<t>>>0){C=0;l=r;return C|0}A=s-t|0;f=p>>>3;do{if(p>>>0>=256){g=o[e+(u+24)>>2]|0;f=o[e+(u+12)>>2]|0;do{if((f|0)==(a|0)){p=e+(u+20)|0;f=o[p>>2]|0;if(!f){p=e+(u+16)|0;f=o[p>>2]|0;if(!f){c=0;break}}while(1){C=f+20|0;d=o[C>>2]|0;if(d){f=d;p=C;continue}d=f+16|0;C=o[d>>2]|0;if(!C)break;else{f=C;p=d}}if(p>>>0<h>>>0)Xe();else{o[p>>2]=0;c=f;break}}else{p=o[e+(u+8)>>2]|0;if(p>>>0<h>>>0)Xe();h=p+12|0;if((o[h>>2]|0)!=(a|0))Xe();d=f+8|0;if((o[d>>2]|0)==(a|0)){o[h>>2]=f;o[d>>2]=p;c=f;break}else Xe()}}while(0);if(g){h=o[e+(u+28)>>2]|0;f=5128+(h<<2)|0;if((a|0)==(o[f>>2]|0)){o[f>>2]=c;if(!c){o[1207]=o[1207]&~(1<<h);break}}else{if(g>>>0<(o[1210]|0)>>>0)Xe();h=g+16|0;if((o[h>>2]|0)==(a|0))o[h>>2]=c;else o[g+20>>2]=c;if(!c)break}a=o[1210]|0;if(c>>>0<a>>>0)Xe();o[c+24>>2]=g;h=o[e+(u+16)>>2]|0;do{if(h)if(h>>>0<a>>>0)Xe();else{o[c+16>>2]=h;o[h+24>>2]=c;break}}while(0);a=o[e+(u+20)>>2]|0;if(a)if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=a;o[a+24>>2]=c;break}}}else{c=o[e+(u+8)>>2]|0;u=o[e+(u+12)>>2]|0;p=4864+(f<<1<<2)|0;if((c|0)!=(p|0)){if(c>>>0<h>>>0)Xe();if((o[c+12>>2]|0)!=(a|0))Xe()}if((u|0)==(c|0)){o[1206]=o[1206]&~(1<<f);break}if((u|0)!=(p|0)){if(u>>>0<h>>>0)Xe();h=u+8|0;if((o[h>>2]|0)==(a|0))g=h;else Xe()}else g=u+8|0;o[c+12>>2]=u;o[g>>2]=c}}while(0);if(A>>>0<16){o[i>>2]=s|n&1|2;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;C=e;l=r;return C|0}else{o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}return 0}function ti(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;r=l;A=e+t|0;u=o[e+4>>2]|0;do{if(!(u&1)){p=o[e>>2]|0;if(!(u&3)){l=r;return}u=e+(0-p)|0;h=p+t|0;C=o[1210]|0;if(u>>>0<C>>>0)Xe();if((u|0)==(o[1211]|0)){n=e+(t+4)|0;g=o[n>>2]|0;if((g&3|0)!=3){n=u;g=h;break}o[1208]=h;o[n>>2]=g&-2;o[e+(4-p)>>2]=h|1;o[A>>2]=h;l=r;return}E=p>>>3;if(p>>>0<256){n=o[e+(8-p)>>2]|0;g=o[e+(12-p)>>2]|0;f=4864+(E<<1<<2)|0;if((n|0)!=(f|0)){if(n>>>0<C>>>0)Xe();if((o[n+12>>2]|0)!=(u|0))Xe()}if((g|0)==(n|0)){o[1206]=o[1206]&~(1<<E);n=u;g=h;break}if((g|0)!=(f|0)){if(g>>>0<C>>>0)Xe();f=g+8|0;if((o[f>>2]|0)==(u|0))d=f;else Xe()}else d=g+8|0;o[n+12>>2]=g;o[d>>2]=n;n=u;g=h;break}d=o[e+(24-p)>>2]|0;E=o[e+(12-p)>>2]|0;do{if((E|0)==(u|0)){m=16-p|0;I=e+(m+4)|0;E=o[I>>2]|0;if(!E){I=e+m|0;E=o[I>>2]|0;if(!E){f=0;break}}while(1){y=E+20|0;m=o[y>>2]|0;if(m){E=m;I=y;continue}m=E+16|0;y=o[m>>2]|0;if(!y)break;else{E=y;I=m}}if(I>>>0<C>>>0)Xe();else{o[I>>2]=0;f=E;break}}else{I=o[e+(8-p)>>2]|0;if(I>>>0<C>>>0)Xe();C=I+12|0;if((o[C>>2]|0)!=(u|0))Xe();m=E+8|0;if((o[m>>2]|0)==(u|0)){o[C>>2]=E;o[m>>2]=I;f=E;break}else Xe()}}while(0);if(d){E=o[e+(28-p)>>2]|0;C=5128+(E<<2)|0;if((u|0)==(o[C>>2]|0)){o[C>>2]=f;if(!f){o[1207]=o[1207]&~(1<<E);n=u;g=h;break}}else{if(d>>>0<(o[1210]|0)>>>0)Xe();C=d+16|0;if((o[C>>2]|0)==(u|0))o[C>>2]=f;else o[d+20>>2]=f;if(!f){n=u;g=h;break}}C=o[1210]|0;if(f>>>0<C>>>0)Xe();o[f+24>>2]=d;p=16-p|0;d=o[e+p>>2]|0;do{if(d)if(d>>>0<C>>>0)Xe();else{o[f+16>>2]=d;o[d+24>>2]=f;break}}while(0);p=o[e+(p+4)>>2]|0;if(p)if(p>>>0<(o[1210]|0)>>>0)Xe();else{o[f+20>>2]=p;o[p+24>>2]=f;n=u;g=h;break}else{n=u;g=h}}else{n=u;g=h}}else{n=e;g=t}}while(0);u=o[1210]|0;if(A>>>0<u>>>0)Xe();h=e+(t+4)|0;f=o[h>>2]|0;if(!(f&2)){if((A|0)==(o[1212]|0)){y=(o[1209]|0)+g|0;o[1209]=y;o[1212]=n;o[n+4>>2]=y|1;if((n|0)!=(o[1211]|0)){l=r;return}o[1211]=0;o[1208]=0;l=r;return}if((A|0)==(o[1211]|0)){y=(o[1208]|0)+g|0;o[1208]=y;o[1211]=n;o[n+4>>2]=y|1;o[n+y>>2]=y;l=r;return}g=(f&-8)+g|0;h=f>>>3;do{if(f>>>0>=256){c=o[e+(t+24)>>2]|0;f=o[e+(t+12)>>2]|0;do{if((f|0)==(A|0)){f=e+(t+20)|0;h=o[f>>2]|0;if(!h){f=e+(t+16)|0;h=o[f>>2]|0;if(!h){a=0;break}}while(1){p=h+20|0;d=o[p>>2]|0;if(d){h=d;f=p;continue}d=h+16|0;p=o[d>>2]|0;if(!p)break;else{h=p;f=d}}if(f>>>0<u>>>0)Xe();else{o[f>>2]=0;a=h;break}}else{h=o[e+(t+8)>>2]|0;if(h>>>0<u>>>0)Xe();p=h+12|0;if((o[p>>2]|0)!=(A|0))Xe();u=f+8|0;if((o[u>>2]|0)==(A|0)){o[p>>2]=f;o[u>>2]=h;a=f;break}else Xe()}}while(0);if(c){h=o[e+(t+28)>>2]|0;u=5128+(h<<2)|0;if((A|0)==(o[u>>2]|0)){o[u>>2]=a;if(!a){o[1207]=o[1207]&~(1<<h);break}}else{if(c>>>0<(o[1210]|0)>>>0)Xe();u=c+16|0;if((o[u>>2]|0)==(A|0))o[u>>2]=a;else o[c+20>>2]=a;if(!a)break}A=o[1210]|0;if(a>>>0<A>>>0)Xe();o[a+24>>2]=c;c=o[e+(t+16)>>2]|0;do{if(c)if(c>>>0<A>>>0)Xe();else{o[a+16>>2]=c;o[c+24>>2]=a;break}}while(0);A=o[e+(t+20)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[a+20>>2]=A;o[A+24>>2]=a;break}}}else{a=o[e+(t+8)>>2]|0;e=o[e+(t+12)>>2]|0;t=4864+(h<<1<<2)|0;if((a|0)!=(t|0)){if(a>>>0<u>>>0)Xe();if((o[a+12>>2]|0)!=(A|0))Xe()}if((e|0)==(a|0)){o[1206]=o[1206]&~(1<<h);break}if((e|0)!=(t|0)){if(e>>>0<u>>>0)Xe();t=e+8|0;if((o[t>>2]|0)==(A|0))c=t;else Xe()}else c=e+8|0;o[a+12>>2]=e;o[c>>2]=a}}while(0);o[n+4>>2]=g|1;o[n+g>>2]=g;if((n|0)==(o[1211]|0)){o[1208]=g;l=r;return}}else{o[h>>2]=f&-2;o[n+4>>2]=g|1;o[n+g>>2]=g}t=g>>>3;if(g>>>0<256){e=t<<1;A=4864+(e<<2)|0;a=o[1206]|0;t=1<<t;if(a&t){e=4864+(e+2<<2)|0;a=o[e>>2]|0;if(a>>>0<(o[1210]|0)>>>0)Xe();else{s=e;i=a}}else{o[1206]=a|t;s=4864+(e+2<<2)|0;i=A}o[s>>2]=n;o[i+12>>2]=n;o[n+8>>2]=i;o[n+12>>2]=A;l=r;return}i=g>>>8;if(i)if(g>>>0>16777215)i=31;else{m=(i+1048320|0)>>>16&8;y=i<<m;I=(y+520192|0)>>>16&4;y=y<<I;i=(y+245760|0)>>>16&2;i=14-(I|m|i)+(y<<i>>>15)|0;i=g>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;e=o[1207]|0;A=1<<i;if(!(e&A)){o[1207]=e|A;o[s>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}s=o[s>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;e:do{if((o[s+4>>2]&-8|0)!=(g|0)){i=g<<i;e=s;while(1){A=e+(i>>>31<<2)+16|0;s=o[A>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(g|0))break e;else{i=i<<1;e=s}}if(A>>>0<(o[1210]|0)>>>0)Xe();o[A>>2]=n;o[n+24>>2]=e;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}}while(0);i=s+8|0;A=o[i>>2]|0;y=o[1210]|0;if(!(s>>>0>=y>>>0&A>>>0>=y>>>0))Xe();o[A+12>>2]=n;o[i>>2]=n;o[n+8>>2]=A;o[n+12>>2]=s;o[n+24>>2]=0;l=r;return}function ri(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0,c=0;r=l;i=e+4|0;A=o[i>>2]|0;n=e+100|0;if(A>>>0<(o[n>>2]|0)>>>0){o[i>>2]=A+1;a=s[A>>0]|0}else a=Hn(e)|0;if((a|0)==43|(a|0)==45){c=o[i>>2]|0;A=(a|0)==45&1;if(c>>>0<(o[n>>2]|0)>>>0){o[i>>2]=c+1;a=s[c>>0]|0}else a=Hn(e)|0;if((a+-48|0)>>>0>9&(t|0)!=0?(o[n>>2]|0)!=0:0)o[i>>2]=(o[i>>2]|0)+-1}else A=0;if((a+-48|0)>>>0>9){if(!(o[n>>2]|0)){a=-2147483648;c=0;R=a;l=r;return c|0}o[i>>2]=(o[i>>2]|0)+-1;a=-2147483648;c=0;R=a;l=r;return c|0}else t=0;do{t=a+-48+(t*10|0)|0;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&(t|0)<214748364);c=((t|0)<0)<<31>>31;if((a+-48|0)>>>0<10)do{c=Ci(t|0,c|0,10,0)|0;t=R;a=ai(a|0,((a|0)<0)<<31>>31|0,-48,-1)|0;t=ai(a|0,R|0,c|0,t|0)|0;c=R;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&((c|0)<21474836|(c|0)==21474836&t>>>0<2061584302));if((a+-48|0)>>>0<10)do{a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10);if(o[n>>2]|0)o[i>>2]=(o[i>>2]|0)+-1;i=(A|0)!=0;A=ii(0,0,t|0,c|0)|0;a=i?R:c;c=i?A:t;R=a;l=r;return c|0}function ni(){}function ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;t=t-n-(r>>>0>e>>>0|0)>>>0;return(R=t,e-r>>>0|0)|0}function oi(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0;i=e+r|0;if((r|0)>=20){t=t&255;a=e&3;A=t|t<<8|t<<16|t<<24;s=i&~3;if(a){a=e+4-a|0;while((e|0)<(a|0)){n[e>>0]=t;e=e+1|0}}while((e|0)<(s|0)){o[e>>2]=A;e=e+4|0}}while((e|0)<(i|0)){n[e>>0]=t;e=e+1|0}return e-r|0}function si(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t<<r|(e&(1<<r)-1<<32-r)>>>32-r;return e<<r}R=e<<r-32;return 0}function Ai(e){e=e|0;var t=0;t=e;while(n[t>>0]|0)t=t+1|0;return t-e|0}function ai(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;r=e+r>>>0;return(R=t+n+(r>>>0<e>>>0|0)>>>0,r|0)|0}function ci(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>>r;return e>>>r|(t&(1<<r)-1)<<32-r}R=0;return t>>>r-32|0}function ui(e,t,r){e=e|0;t=t|0;r=r|0;var i=0;if((r|0)>=4096)return Fe(e|0,t|0,r|0)|0;i=e|0;if((e&3)==(t&3)){while(e&3){if(!r)return i|0;n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}while((r|0)>=4){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0;r=r-4|0}}while((r|0)>0){n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}return i|0}function li(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>r;return e>>>r|(t&(1<<r)-1)<<32-r}R=(t|0)<0?-1:0;return t>>r-32|0}function hi(e){e=e|0;var t=0;t=n[d+(e>>>24)>>0]|0;if((t|0)<8)return t|0;t=n[d+(e>>16&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[d+(e>>8&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[d+(e&255)>>0]|0)+24|0}function gi(e){e=e|0;var t=0;t=n[p+(e&255)>>0]|0;if((t|0)<8)return t|0;t=n[p+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[p+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[p+(e>>>24)>>0]|0)+24|0}function fi(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;o=e&65535;n=t&65535;r=ie(n,o)|0;i=e>>>16;n=(r>>>16)+(ie(n,i)|0)|0;t=t>>>16;e=ie(t,o)|0;return(R=(n>>>16)+(ie(t,i)|0)+(((n&65535)+e|0)>>>16)|0,n+e<<16|r&65535|0)|0}function pi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0,s=0,A=0,a=0,c=0;c=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;o=n>>31|((n|0)<0?-1:0)<<1;i=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;A=ii(c^e,a^t,c,a)|0;s=R;t=o^c;e=i^a;e=ii((mi(A,s,ii(o^r,i^n,o,i)|0,R,0)|0)^t,R^e,t,e)|0;return e|0}function di(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+8|0;a=i|0;A=t>>31|((t|0)<0?-1:0)<<1;s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;u=n>>31|((n|0)<0?-1:0)<<1;c=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;t=ii(A^e,s^t,A,s)|0;e=R;mi(t,e,ii(u^r,c^n,u,c)|0,R,a)|0;e=ii(o[a>>2]^A,o[a+4>>2]^s,A,s)|0;t=R;l=i;return(R=t,e)|0}function Ci(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0;i=e;o=r;e=fi(i,o)|0;r=R;return(R=(ie(t,o)|0)+(ie(n,i)|0)+r|r&0,e|0|0)|0}function Ei(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;e=mi(e,t,r,n,0)|0;return e|0}function Ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0;s=l;l=l+8|0;i=s|0;mi(e,t,r,n,i)|0;l=s;return(R=o[i+4>>2]|0,o[i>>2]|0)|0}function mi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,l=0,h=0,g=0,f=0,p=0;A=e;c=t;a=c;l=r;s=n;u=s;if(!a){s=(i|0)!=0;if(!u){if(s){o[i>>2]=(A>>>0)%(l>>>0);o[i+4>>2]=0}u=0;h=(A>>>0)/(l>>>0)>>>0;return(R=u,h)|0}else{if(!s){l=0;h=0;return(R=l,h)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;l=0;h=0;return(R=l,h)|0}}h=(u|0)==0;do{if(l){if(!h){u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=31){h=u+1|0;l=31-u|0;e=u-31>>31;c=h;t=A>>>(h>>>0)&e|a<<l;e=a>>>(h>>>0)&e;u=0;l=A<<l;break}if(!i){l=0;h=0;return(R=l,h)|0}o[i>>2]=e|0;o[i+4>>2]=c|t&0;l=0;h=0;return(R=l,h)|0}u=l-1|0;if(u&l){l=(hi(l|0)|0)+33-(hi(a|0)|0)|0;p=64-l|0;h=32-l|0;g=h>>31;f=l-32|0;e=f>>31;c=l;t=h-1>>31&a>>>(f>>>0)|(a<<h|A>>>(l>>>0))&e;e=e&a>>>(l>>>0);u=A<<p&g;l=(a<<p|A>>>(f>>>0))&g|A<<h&l-33>>31;break}if(i){o[i>>2]=u&A;o[i+4>>2]=0}if((l|0)==1){f=c|t&0;p=e|0|0;return(R=f,p)|0}else{p=gi(l|0)|0;f=a>>>(p>>>0)|0;p=a<<32-p|A>>>(p>>>0)|0;return(R=f,p)|0}}else{if(h){if(i){o[i>>2]=(a>>>0)%(l>>>0);o[i+4>>2]=0}f=0;p=(a>>>0)/(l>>>0)>>>0;return(R=f,p)|0}if(!A){if(i){o[i>>2]=0;o[i+4>>2]=(a>>>0)%(u>>>0)}f=0;p=(a>>>0)/(u>>>0)>>>0;return(R=f,p)|0}l=u-1|0;if(!(l&u)){if(i){o[i>>2]=e|0;o[i+4>>2]=l&a|t&0}f=0;p=a>>>((gi(u|0)|0)>>>0);return(R=f,p)|0}u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=30){e=u+1|0;l=31-u|0;c=e;t=a<<l|A>>>(e>>>0);e=a>>>(e>>>0);u=0;l=A<<l;break}if(!i){f=0;p=0;return(R=f,p)|0}o[i>>2]=e|0;o[i+4>>2]=c|t&0;f=0;p=0;return(R=f,p)|0}}while(0);if(!c){s=l;n=0;a=0}else{A=r|0|0;s=s|n&0;n=ai(A,s,-1,-1)|0;r=R;a=0;do{h=l;l=u>>>31|l<<1;u=a|u<<1;h=t<<1|h>>>31|0;g=t>>>31|e<<1|0;ii(n,r,h,g)|0;p=R;f=p>>31|((p|0)<0?-1:0)<<1;a=f&1;t=ii(h,g,f&A,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&s)|0;e=R;c=c-1|0}while((c|0)!=0);s=l;n=0}A=0;if(i){o[i>>2]=t;o[i+4>>2]=e}f=(u|0)>>>31|(s|A)<<1|(A<<1|u>>>31)&0|n;p=(u<<1|0>>>31)&-2|a;return(R=f,p)|0}function yi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;return _i[e&1](t|0,r|0,n|0)|0}function wi(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;Oi[e&3](t|0,r|0,n|0,i|0,o|0)}function Bi(e,t){e=e|0;t=t|0;ji[e&31](t|0)}function Qi(e,t,r){e=e|0;t=t|0;r=r|0;Yi[e&3](t|0,r|0)}function vi(e,t){e=e|0;t=t|0;return Gi[e&1](t|0)|0}function Di(e){e=e|0;Ji[e&3]()}function bi(e,t,r,n,i,o,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;s=s|0;Hi[e&3](t|0,r|0,n|0,i|0,o|0,s|0)}function Si(e,t,r){e=e|0;t=t|0;r=r|0;return qi[e&3](t|0,r|0)|0}function ki(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;zi[e&3](t|0,r|0,n|0,i|0)}function xi(e,t,r){e=e|0;t=t|0;r=r|0;oe(0);return 0}function Fi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;oe(1)}function Mi(e){e=e|0;oe(2)}function Ni(e,t){e=e|0;t=t|0;oe(3)}function Ri(e){e=e|0;oe(4);return 0}function Ki(){oe(5)}function Li(){it()}function Ti(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;oe(6)}function Pi(e,t){e=e|0;t=t|0;oe(7);return 0}function Ui(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;oe(8)}var _i=[xi,Qn];var Oi=[Fi,Fn,xn,Fi];var ji=[Mi,dt,Et,mt,Bt,St,bt,Wt,Xt,Ir,Er,Rr,hn,ln,In,wn,mn,yn,Bn,It,Pn,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi];var Yi=[Ni,wt,vt,$t];var Gi=[Ri,gn];var Ji=[Ki,Li,Ln,Tn];var Hi=[Ti,Nn,Mn,Ti];var qi=[Pi,yt,Qt,Zt];var zi=[Ui,Dn,bn,Ui];return{_yo:qr,_strlen:Ai,_retireVar:rn,_bitshift64Lshr:ci,_unyo:zr,_solve:Zr,_bitshift64Shl:si,_getSolution:$r,___cxa_is_pointer_type:Kn,_memset:oi,_getNumVars:en,_memcpy:ui,_getConflictClauseSize:nn,_addClause:Xr,_i64Subtract:ii,_createTheSolver:Wr,_realloc:On,_i64Add:ai,_solveAssuming:tn,___cxa_can_catch:Rn,_ensureVar:Vr,_getConflictClause:on,_free:_n,_malloc:Un,__GLOBAL__I_a:Vt,__GLOBAL__I_a127:Kr,runPostSets:ni,stackAlloc:At,stackSave:at,stackRestore:ct,setThrew:ut,setTempRet0:gt,getTempRet0:ft,dynCall_iiii:yi,dynCall_viiiii:wi,dynCall_vi:Bi,dynCall_vii:Qi,dynCall_ii:vi,dynCall_v:Di,dynCall_viiiiii:bi,dynCall_iii:Si,dynCall_viiii:ki}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_yo=Module._yo=asm._yo,_strlen=Module._strlen=asm._strlen,_retireVar=Module._retireVar=asm._retireVar,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_unyo=Module._unyo=asm._unyo,_solve=Module._solve=asm._solve,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_getSolution=Module._getSolution=asm._getSolution,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_memset=Module._memset=asm._memset,_getNumVars=Module._getNumVars=asm._getNumVars,_memcpy=Module._memcpy=asm._memcpy,_getConflictClauseSize=Module._getConflictClauseSize=asm._getConflictClauseSize,_addClause=Module._addClause=asm._addClause,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_createTheSolver=Module._createTheSolver=asm._createTheSolver,_realloc=Module._realloc=asm._realloc,_i64Add=Module._i64Add=asm._i64Add,_solveAssuming=Module._solveAssuming=asm._solveAssuming,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_ensureVar=Module._ensureVar=asm._ensureVar,_getConflictClause=Module._getConflictClause=asm._getConflictClause,_free=Module._free=asm._free,_malloc=Module._malloc=asm._malloc,__GLOBAL__I_a=Module.__GLOBAL__I_a=asm.__GLOBAL__I_a,__GLOBAL__I_a127=Module.__GLOBAL__I_a127=asm.__GLOBAL__I_a127,runPostSets=Module.runPostSets=asm.runPostSets,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};e.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},e.math.Long.IntCache_={},e.math.Long.fromInt=function(t){if(-128<=t&&t<128){var r=e.math.Long.IntCache_[t];if(r)return r}var n=new e.math.Long(0|t,t<0?-1:0);return-128<=t&&t<128&&(e.math.Long.IntCache_[t]=n),n},e.math.Long.fromNumber=function(t){return isNaN(t)||!isFinite(t)?e.math.Long.ZERO:t<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:t+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:t<0?e.math.Long.fromNumber(-t).negate():new e.math.Long(t%e.math.Long.TWO_PWR_32_DBL_|0,t/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(t,r){return new e.math.Long(t,r)},e.math.Long.fromString=function(t,r){if(0==t.length)throw Error("number format error: empty string");var n=r||10;if(n<2||36<n)throw Error("radix out of range: "+n);if("-"==t.charAt(0))return e.math.Long.fromString(t.substring(1),n).negate();if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+t);for(var i=e.math.Long.fromNumber(Math.pow(n,8)),o=e.math.Long.ZERO,s=0;s<t.length;s+=8){var A=Math.min(8,t.length-s),a=parseInt(t.substring(s,s+A),n);if(A<8){var c=e.math.Long.fromNumber(Math.pow(n,A));o=o.multiply(c).add(e.math.Long.fromNumber(a))}else o=(o=o.multiply(i)).add(e.math.Long.fromNumber(a))}return o},e.math.Long.TWO_PWR_16_DBL_=65536,e.math.Long.TWO_PWR_24_DBL_=1<<24,e.math.Long.TWO_PWR_32_DBL_=e.math.Long.TWO_PWR_16_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_31_DBL_=e.math.Long.TWO_PWR_32_DBL_/2,e.math.Long.TWO_PWR_48_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_64_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_32_DBL_,e.math.Long.TWO_PWR_63_DBL_=e.math.Long.TWO_PWR_64_DBL_/2,e.math.Long.ZERO=e.math.Long.fromInt(0),e.math.Long.ONE=e.math.Long.fromInt(1),e.math.Long.NEG_ONE=e.math.Long.fromInt(-1),e.math.Long.MAX_VALUE=e.math.Long.fromBits(-1,2147483647),e.math.Long.MIN_VALUE=e.math.Long.fromBits(0,-2147483648),e.math.Long.TWO_PWR_24_=e.math.Long.fromInt(1<<24),e.math.Long.prototype.toInt=function(){return this.low_},e.math.Long.prototype.toNumber=function(){return this.high_*e.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},e.math.Long.prototype.toString=function(t){var r=t||10;if(r<2||36<r)throw Error("radix out of range: "+r);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(e.math.Long.MIN_VALUE)){var n=e.math.Long.fromNumber(r),i=this.div(n),o=i.multiply(n).subtract(this);return i.toString(r)+o.toInt().toString(r)}return"-"+this.negate().toString(r)}for(var s=e.math.Long.fromNumber(Math.pow(r,6)),A=(o=this,"");;){var a=o.div(s),c=o.subtract(a.multiply(s)).toInt().toString(r);if((o=a).isZero())return c+A;for(;c.length<6;)c="0"+c;A=""+c+A}},e.math.Long.prototype.getHighBits=function(){return this.high_},e.math.Long.prototype.getLowBits=function(){return this.low_},e.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var t=0!=this.high_?this.high_:this.low_,r=31;r>0&&0==(t&1<<r);r--);return 0!=this.high_?r+33:r+1},e.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},e.math.Long.prototype.isNegative=function(){return this.high_<0},e.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},e.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},e.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},e.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},e.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},e.math.Long.prototype.greaterThan=function(e){return this.compare(e)>0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(t){var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=0,u=0,l=0,h=0;return l+=(h+=o+(65535&t.low_))>>>16,h&=65535,u+=(l+=i+a)>>>16,l&=65535,c+=(u+=n+A)>>>16,u&=65535,c+=r+s,c&=65535,e.math.Long.fromBits(l<<16|h,c<<16|u)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(t){if(this.isZero())return e.math.Long.ZERO;if(t.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return t.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(t.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().multiply(t.negate()):this.negate().multiply(t).negate();if(t.isNegative())return this.multiply(t.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&t.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*t.toNumber());var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=65535&t.low_,u=0,l=0,h=0,g=0;return h+=(g+=o*c)>>>16,g&=65535,l+=(h+=i*c)>>>16,h&=65535,l+=(h+=o*a)>>>16,h&=65535,u+=(l+=n*c)>>>16,l&=65535,u+=(l+=i*a)>>>16,l&=65535,u+=(l+=o*A)>>>16,l&=65535,u+=r*c+n*a+i*A+o*s,u&=65535,e.math.Long.fromBits(h<<16|g,u<<16|l)},e.math.Long.prototype.div=function(t){if(t.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(t.equals(e.math.Long.ONE)||t.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((i=this.shiftRight(1).div(t).shiftLeft(1)).equals(e.math.Long.ZERO))return t.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var r=this.subtract(t.multiply(i));return i.add(r.div(t))}if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().div(t.negate()):this.negate().div(t).negate();if(t.isNegative())return this.div(t.negate()).negate();var n=e.math.Long.ZERO;for(r=this;r.greaterThanOrEqual(t);){for(var i=Math.max(1,Math.floor(r.toNumber()/t.toNumber())),o=Math.ceil(Math.log(i)/Math.LN2),s=o<=48?1:Math.pow(2,o-48),A=e.math.Long.fromNumber(i),a=A.multiply(t);a.isNegative()||a.greaterThan(r);)i-=s,a=(A=e.math.Long.fromNumber(i)).multiply(t);A.isZero()&&(A=e.math.Long.ONE),n=n.add(A),r=r.subtract(a)}return n},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(t){return e.math.Long.fromBits(this.low_&t.low_,this.high_&t.high_)},e.math.Long.prototype.or=function(t){return e.math.Long.fromBits(this.low_|t.low_,this.high_|t.high_)},e.math.Long.prototype.xor=function(t){return e.math.Long.fromBits(this.low_^t.low_,this.high_^t.high_)},e.math.Long.prototype.shiftLeft=function(t){if(0==(t&=63))return this;var r=this.low_;if(t<32){var n=this.high_;return e.math.Long.fromBits(r<<t,n<<t|r>>>32-t)}return e.math.Long.fromBits(0,r<<t-32)},e.math.Long.prototype.shiftRight=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>t)}return e.math.Long.fromBits(r>>t-32,r>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>>t)}return 32==t?e.math.Long.fromBits(r,0):e.math.Long.fromBits(r>>>t-32,0)};var t,r="Modern Browser";function n(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function i(){return new n(null)}"Microsoft Internet Explorer"==r?(n.prototype.am=function(e,t,r,n,i,o){for(var s=32767&t,A=t>>15;--o>=0;){var a=32767&this[e],c=this[e++]>>15,u=A*a+c*s;i=((a=s*a+((32767&u)<<15)+r[n]+(1073741823&i))>>>30)+(u>>>15)+A*c+(i>>>30),r[n++]=1073741823&a}return i},t=30):"Netscape"!=r?(n.prototype.am=function(e,t,r,n,i,o){for(;--o>=0;){var s=t*this[e++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},t=26):(n.prototype.am=function(e,t,r,n,i,o){for(var s=16383&t,A=t>>14;--o>=0;){var a=16383&this[e],c=this[e++]>>14,u=A*a+c*s;i=((a=s*a+((16383&u)<<14)+r[n]+i)>>28)+(u>>14)+A*c,r[n++]=268435455&a}return i},t=28),n.prototype.DB=t,n.prototype.DM=(1<<t)-1,n.prototype.DV=1<<t;n.prototype.FV=Math.pow(2,52),n.prototype.F1=52-t,n.prototype.F2=2*t-52;var o,s,A=new Array;for(o="0".charCodeAt(0),s=0;s<=9;++s)A[o++]=s;for(o="a".charCodeAt(0),s=10;s<36;++s)A[o++]=s;for(o="A".charCodeAt(0),s=10;s<36;++s)A[o++]=s;function a(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function c(e,t){var r=A[e.charCodeAt(t)];return null==r?-1:r}function u(e){var t=i();return t.fromInt(e),t}function l(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function h(e){this.m=e}function g(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}h.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},h.prototype.revert=function(e){return e},h.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},h.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},h.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},g.prototype.convert=function(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t},g.prototype.revert=function(e){var t=i();return e.copyTo(t),this.reduce(t),t},g.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e[t],n=r*this.mpl+((r*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},g.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},n.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},n.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},n.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,o=!1,s=0;--i>=0;){var A=8==r?255&e[i]:c(e,i);A<0?"-"==e.charAt(i)&&(o=!0):(o=!1,0==s?this[this.t++]=A:s+r>this.DB?(this[this.t-1]|=(A&(1<<this.DB-s)-1)<<s,this[this.t++]=A>>this.DB-s):this[this.t-1]|=A<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),o&&n.ZERO.subTo(this,this)},n.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},n.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},n.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t[r-e]=this[r];t.t=Math.max(this.t-e,0),t.s=this.s},n.prototype.lShiftTo=function(e,t){var r,n=e%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(e/this.DB),A=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)t[r+s+1]=this[r]>>i|A,A=(this[r]&o)<<n;for(r=s-1;r>=0;--r)t[r]=0;t[s]=A,t.t=this.t+s+1,t.s=this.s,t.clamp()},n.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t[0]=this[r]>>n;for(var s=r+1;s<this.t;++s)t[s-r-1]|=(this[s]&o)<<i,t[s-r]=this[s]>>n;n>0&&(t[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}},n.prototype.subTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this[r]-e[r],t[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this[r],t[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e[r],t[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:n>0&&(t[r++]=n),t.t=r,t.clamp()},n.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),o=r.t;for(t.t=o+i.t;--o>=0;)t[o]=0;for(o=0;o<i.t;++o)t[o+r.t]=r.am(0,i[o],t,o,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&n.ZERO.subTo(t,t)},n.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t[r],e,2*r,0,1);(e[r+t.t]+=t.am(r+1,2*t[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},n.prototype.divRemTo=function(e,t,r){var o=e.abs();if(!(o.t<=0)){var s=this.abs();if(s.t<o.t)return null!=t&&t.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=i());var A=i(),a=this.s,c=e.s,u=this.DB-l(o[o.t-1]);u>0?(o.lShiftTo(u,A),s.lShiftTo(u,r)):(o.copyTo(A),s.copyTo(r));var h=A.t,g=A[h-1];if(0!=g){var f=g*(1<<this.F1)+(h>1?A[h-2]>>this.F2:0),p=this.FV/f,d=(1<<this.F1)/f,C=1<<this.F2,E=r.t,I=E-h,m=null==t?i():t;for(A.dlShiftTo(I,m),r.compareTo(m)>=0&&(r[r.t++]=1,r.subTo(m,r)),n.ONE.dlShiftTo(h,m),m.subTo(A,A);A.t<h;)A[A.t++]=0;for(;--I>=0;){var y=r[--E]==g?this.DM:Math.floor(r[E]*p+(r[E-1]+C)*d);if((r[E]+=A.am(0,y,r,I,0,h))<y)for(A.dlShiftTo(I,m),r.subTo(m,r);r[E]<--y;)r.subTo(m,r)}null!=t&&(r.drShiftTo(h,t),a!=c&&n.ZERO.subTo(t,t)),r.t=h,r.clamp(),u>0&&r.rShiftTo(u,r),a<0&&n.ZERO.subTo(r,r)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(e,t){if(e>4294967295||e<1)return n.ONE;var r=i(),o=i(),s=t.convert(this),A=l(e)-1;for(s.copyTo(r);--A>=0;)if(t.sqrTo(r,o),(e&1<<A)>0)t.mulTo(o,s,r);else{var a=r;r=o,o=a}return t.revert(r)},n.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<<t)-1,i=!1,o="",s=this.t,A=this.DB-s*this.DB%t;if(s-- >0)for(A<this.DB&&(r=this[s]>>A)>0&&(i=!0,o=a(r));s>=0;)A<t?(r=(this[s]&(1<<A)-1)<<t-A,r|=this[--s]>>(A+=this.DB-t)):(r=this[s]>>(A-=t)&n,A<=0&&(A+=this.DB,--s)),r>0&&(i=!0),i&&(o+=a(r));return i?o:"0"},n.prototype.negate=function(){var e=i();return n.ZERO.subTo(this,e),e},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+l(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t},n.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new h(t):new g(t),this.exp(e,r)},n.ZERO=u(0),n.ONE=u(1),n.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),o=!1,s=0,A=0,a=0;a<e.length;++a){var u=c(e,a);u<0?"-"==e.charAt(a)&&0==this.signum()&&(o=!0):(A=t*A+u,++s>=r&&(this.dMultiply(i),this.dAddOffset(A,0),s=0,A=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(A,0)),o&&n.ZERO.subTo(this,this)},n.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},n.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=u(r),o=i(),s=i(),A="";for(this.divRemTo(n,o,s);o.signum()>0;)A=(r+s.intValue()).toString(e).substr(1)+A,o.divRemTo(n,o,s);return s.intValue().toString(e)+A},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},n.prototype.addTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this[r]+e[r],t[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this[r],t[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e[r],t[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[r++]=n:n<-1&&(t[r++]=this.DV+n),t.t=r,t.clamp()};var f={abs:function(t,r){var n,i=new e.math.Long(t,r);n=i.isNegative()?i.negate():i,HEAP32[tempDoublePtr>>2]=n.low_,HEAP32[tempDoublePtr+4>>2]=n.high_},ensureTemps:function(){f.ensuredTemps||(f.ensuredTemps=!0,f.two32=new n,f.two32.fromString("4294967296",10),f.two64=new n,f.two64.fromString("18446744073709551616",10),f.temp1=new n,f.temp2=new n)},lh2bignum:function(e,t){var r=new n;r.fromString(t.toString(),10);var i=new n;r.multiplyTo(f.two32,i);var o=new n;o.fromString(e.toString(),10);var s=new n;return o.addTo(i,s),s},stringify:function(t,r,i){var o=new e.math.Long(t,r).toString();if(i&&"-"==o[0]){f.ensureTemps();var s=new n;s.fromString(o,10),o=new n,f.two64.addTo(s,o),o=o.toString(10)}return o},fromString:function(t,r,i,o,s){f.ensureTemps();var A=new n;A.fromString(t,r);var a=new n;a.fromString(i,10);var c=new n;if(c.fromString(o,10),s&&A.compareTo(n.ZERO)<0){var u=new n;A.addTo(f.two64,u),A=u}var l=!1;A.compareTo(a)<0?(A=a,l=!0):A.compareTo(c)>0&&(A=c,l=!0);var h=e.math.Long.fromString(A.toString());if(HEAP32[tempDoublePtr>>2]=h.low_,HEAP32[tempDoublePtr+4>>2]=h.high_,l)throw"range error"}};return f}(),initialStackTop;if(memoryInitializer)if("function"==typeof Module.locateFile?memoryInitializer=Module.locateFile(memoryInitializer):Module.memoryInitializerPrefixURL&&(memoryInitializer=Module.memoryInitializerPrefixURL+memoryInitializer),ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module.readBinary(memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else addRunDependency("memory initializer"),Browser.asyncLoad(memoryInitializer,(function(e){HEAPU8.set(e,STATIC_BASE),removeRunDependency("memory initializer")}),(function(e){throw"could not load memory initializer "+memoryInitializer}));function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e){if(!Module.noExitRuntime)throw ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",(function(){process.exit(e)})),console.log(" "),setTimeout((function(){process.exit(e)}),500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){e&&(Module.print(e),Module.printErr(e)),ABORT=!0,EXITSTATUS=1;throw"abort() at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var t=e.length+1;function r(){for(var e=0;e<3;e++)n.push(0)}var n=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i<t-1;i+=1)n.push(allocate(intArrayFromString(e[i]),"i8",ALLOC_NORMAL)),r();n.push(0),n=allocate(n,"i32",ALLOC_NORMAL),initialStackTop=STACKTOP;try{exit(Module._main(t,n,0))}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit,Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var origMalloc=Module._malloc,origFree=Module._free,MEMSTATS={totalMemory:Module.HEAPU8.length,heapUsed:0},MEMSTATS_DATA={pointerToSizeMap:{},getSizeOfPointer:function(e){return MEMSTATS_DATA.pointerToSizeMap[e]}};Module.MEMSTATS=MEMSTATS,Module.MEMSTATS_DATA=MEMSTATS_DATA;var hookedMalloc=function(e){var t=origMalloc(e);return t?(MEMSTATS.heapUsed+=e,MEMSTATS_DATA.pointerToSizeMap[t]=e,t):0},hookedFree=function(e){return e&&(MEMSTATS.heapUsed-=MEMSTATS_DATA.getSizeOfPointer(e)||0,delete MEMSTATS_DATA.pointerToSizeMap[e]),origFree(e)},setInnerMalloc,setInnerFree;return Module._malloc=hookedMalloc,Module._free=hookedFree,_malloc=hookedMalloc,_free=hookedFree,setInnerMalloc&&(setInnerMalloc(hookedMalloc),setInnerFree(hookedFree)),module.exports},module.exports=C_MINISAT},73789:(e,t,r)=>{var n,i=r(98312),o=r(5817);(n=function(){var e=this._C=i();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(t){e.Runtime.stackRestore(t)},allocateBytes:function(t){return e.allocate(t,"i8",e.ALLOC_STACK)},pushString:function(t){return this.allocateBytes(e.intArrayFromString(t))},savingStack:function(t){var r=this.getStackPointer();try{return t(this,e)}finally{this.setStackPointer(r)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},n.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack((function(t,r){var n=r.allocate(4*(e.length+1),"i32",r.ALLOC_STACK);return o.each(e,(function(e,t){r.setValue(n+4*t,e,"i32")})),r.setValue(n+4*e.length,0,"i32"),!!r._addClause(n)}))},n.prototype.solve=function(){return!!this._C._solve()},n.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},n.prototype.getSolution=function(){for(var e=[null],t=this._C,r=t._getNumVars(),n=t._getSolution(),i=0;i<r;i++)e[i+1]=0===t.getValue(n+i,"i8");return e},n.prototype.retireVar=function(e){this._C._retireVar(e)},n.prototype.getConflictClause=function(){for(var e=this._C,t=e._getConflictClauseSize(),r=e._getConflictClause(),n=[],i=0;i<t;i++){var o=e.getValue(r+4*i,"i32"),s=o>>>1,A=1&o?-1:1;n[i]=s*A}return n},e.exports=n},55737:e=>{"use strict";e.exports=e=>{const t={};for(const[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}},46227:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),{promisify:o}=r(31669),s=r(95584).satisfies(process.version,">=10.12.0"),A=e=>{if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(i.parse(e).root,""))){const t=new Error("Path contains invalid characters: "+e);throw t.code="EINVAL",t}}},a=e=>({...{mode:511,fs:n},...e}),c=e=>{const t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t};e.exports=async(e,t)=>{A(e),t=a(t);const r=o(t.fs.mkdir),u=o(t.fs.stat);if(s&&t.fs.mkdir===n.mkdir){const n=i.resolve(e);return await r(n,{mode:t.mode,recursive:!0}),n}const l=async e=>{try{return await r(e,t.mode),e}catch(t){if("EPERM"===t.code)throw t;if("ENOENT"===t.code){if(i.dirname(e)===e)throw c(e);if(t.message.includes("null bytes"))throw t;return await l(i.dirname(e)),l(e)}try{if(!(await u(e)).isDirectory())throw new Error("The path is not a directory")}catch(e){throw t}return e}};return l(i.resolve(e))},e.exports.sync=(e,t)=>{if(A(e),t=a(t),s&&t.fs.mkdirSync===n.mkdirSync){const r=i.resolve(e);return n.mkdirSync(r,{mode:t.mode,recursive:!0}),r}const r=e=>{try{t.fs.mkdirSync(e,t.mode)}catch(n){if("EPERM"===n.code)throw n;if("ENOENT"===n.code){if(i.dirname(e)===e)throw c(e);if(n.message.includes("null bytes"))throw n;return r(i.dirname(e)),r(e)}try{if(!t.fs.statSync(e).isDirectory())throw new Error("The path is not a directory")}catch(e){throw n}}return e};return r(i.resolve(e))}},55598:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=Array.prototype.slice;function o(e,t){if(Array.isArray(e))for(let r=0,n=e.length;r<n;r++)e[r]=o(e[r],t);else{if(!e._readableState&&e.pipe&&(e=e.pipe(n(t))),!e._readableState||!e.pause||!e.pipe)throw new Error("Only readable stream can be merged.");e.pause()}return e}e.exports=function(){const e=[];let t=!1;const r=i.call(arguments);let s=r[r.length-1];s&&!Array.isArray(s)&&null==s.pipe?r.pop():s={};const A=!1!==s.end;null==s.objectMode&&(s.objectMode=!0);null==s.highWaterMark&&(s.highWaterMark=65536);const a=n(s);function c(){for(let t=0,r=arguments.length;t<r;t++)e.push(o(arguments[t],s));return u(),this}function u(){if(t)return;t=!0;let r=e.shift();if(!r)return void process.nextTick(l);Array.isArray(r)||(r=[r]);let n=r.length+1;function i(){--n>0||(t=!1,u())}function o(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),i()}if(e._readableState.endEmitted)return i();e.on("merge2UnpipeEnd",t),e.on("end",t),e.pipe(a,{end:!1}),e.resume()}for(let e=0;e<r.length;e++)o(r[e]);i()}function l(){return t=!1,a.emit("queueDrain"),A&&a.end()}a.setMaxListeners(0),a.add=c,a.on("unpipe",(function(e){e.emit("merge2UnpipeEnd")})),r.length&&c.apply(null,r);return a}},2401:(e,t,r)=>{"use strict";const n=r(31669),i=r(12235),o=r(54722),s=r(3598),A=e=>"string"==typeof e&&(""===e||"./"===e),a=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,s=new Set,A=0,a=e=>{s.add(e.output),r&&r.onResult&&r.onResult(e)};for(let s=0;s<t.length;s++){let c=o(String(t[s]),{...r,onResult:a},!0),u=c.state.negated||c.state.negatedExtglob;u&&A++;for(let t of e){let e=c(t,!0);(u?!e.isMatch:e.isMatch)&&(u?n.add(e.output):(n.delete(e.output),i.add(e.output)))}}let c=(A===t.length?[...s]:[...i]).filter(e=>!n.has(e));if(r&&0===c.length){if(!0===r.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===r.nonull||!0===r.nullglob)return r.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};a.match=a,a.matcher=(e,t)=>o(e,t),a.any=a.isMatch=(e,t,r)=>o(t,r)(e),a.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],o=a(e,t,{...r,onResult:e=>{r.onResult&&r.onResult(e),i.push(e.output)}});for(let e of i)o.includes(e)||n.add(e);return[...n]},a.contains=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>a.contains(e,t,r));if("string"==typeof t){if(A(e)||A(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return a.isMatch(e,t,{...r,contains:!0})},a.matchKeys=(e,t,r)=>{if(!s.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=a(Object.keys(e),t,r),i={};for(let t of n)i[t]=e[t];return i},a.some=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(n.some(e=>t(e)))return!0}return!1},a.every=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(!n.every(e=>t(e)))return!1}return!0},a.all=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);return[].concat(t).every(t=>o(t,r)(e))},a.capture=(e,t,r)=>{let n=s.isWindows(r),i=o.makeRe(String(e),{...r,capture:!0}).exec(n?s.toPosixSlashes(t):t);if(i)return i.slice(1).map(e=>void 0===e?"":e)},a.makeRe=(...e)=>o.makeRe(...e),a.scan=(...e)=>o.scan(...e),a.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let e of i(String(n),t))r.push(o.parse(e,t));return r},a.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:i(e,t)},a.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return a.braces(e,{...t,expand:!0})},e.exports=a},81573:e=>{"use strict";const t=(e,t)=>{for(const r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};e.exports=t,e.exports.default=t},65007:e=>{"use strict";const t=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},60102:e=>{"use strict";const t=["aborted","complete","destroy","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},52670:(e,t,r)=>{e.exports=u,u.Minimatch=l;var n={sep:"/"};try{n=r(85622)}catch(e){}var i=u.GLOBSTAR=l.GLOBSTAR={},o=r(1289),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},A="().*{}+?[]^$\\!".split("").reduce((function(e,t){return e[t]=!0,e}),{});var a=/\/+/;function c(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach((function(e){r[e]=t[e]})),Object.keys(e).forEach((function(t){r[t]=e[t]})),r}function u(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new l(t,r).match(e))}function l(e,t){if(!(this instanceof l))return new l(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==n.sep&&(e=e.split(n.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function h(e,t){if(t||(t=this instanceof l?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:o(e)}u.filter=function(e,t){return t=t||{},function(r,n,i){return u(r,e,t)}},u.defaults=function(e){if(!e||!Object.keys(e).length)return u;var t=u,r=function(r,n,i){return t.minimatch(r,n,c(e,i))};return r.Minimatch=function(r,n){return new t.Minimatch(r,c(e,n))},r},l.defaults=function(e){return e&&Object.keys(e).length?u.defaults(e).Minimatch:l},l.prototype.debug=function(){},l.prototype.make=function(){if(this._made)return;var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,r),r=this.globParts=r.map((function(e){return e.split(a)})),this.debug(this.pattern,r),r=r.map((function(e,t,r){return e.map(this.parse,this)}),this),this.debug(this.pattern,r),r=r.filter((function(e){return-1===e.indexOf(!1)})),this.debug(this.pattern,r),this.set=r},l.prototype.parseNegate=function(){var e=this.pattern,t=!1,r=this.options,n=0;if(r.nonegate)return;for(var i=0,o=e.length;i<o&&"!"===e.charAt(i);i++)t=!t,n++;n&&(this.pattern=e.substr(n));this.negate=t},u.braceExpand=function(e,t){return h(e,t)},l.prototype.braceExpand=h,l.prototype.parse=function(e,t){if(e.length>65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,o="",a=!!r.nocase,c=!1,u=[],l=[],h=!1,f=-1,p=-1,d="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",C=this;function E(){if(n){switch(n){case"*":o+="[^/]*?",a=!0;break;case"?":o+="[^/]",a=!0;break;default:o+="\\"+n}C.debug("clearStateChar %j %j",n,o),n=!1}}for(var I,m=0,y=e.length;m<y&&(I=e.charAt(m));m++)if(this.debug("%s\t%s %s %j",e,m,o,I),c&&A[I])o+="\\"+I,c=!1;else switch(I){case"/":return!1;case"\\":E(),c=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,m,o,I),h){this.debug("  in class"),"!"===I&&m===p+1&&(I="^"),o+=I;continue}C.debug("call clearStateChar %j",n),E(),n=I,r.noext&&E();continue;case"(":if(h){o+="(";continue}if(!n){o+="\\(";continue}u.push({type:n,start:m-1,reStart:o.length,open:s[n].open,close:s[n].close}),o+="!"===n?"(?:(?!(?:":"(?:",this.debug("plType %j %j",n,o),n=!1;continue;case")":if(h||!u.length){o+="\\)";continue}E(),a=!0;var w=u.pop();o+=w.close,"!"===w.type&&l.push(w),w.reEnd=o.length;continue;case"|":if(h||!u.length||c){o+="\\|",c=!1;continue}E(),o+="|";continue;case"[":if(E(),h){o+="\\"+I;continue}h=!0,p=m,f=o.length,o+=I;continue;case"]":if(m===p+1||!h){o+="\\"+I,c=!1;continue}if(h){var B=e.substring(p+1,m);try{RegExp("["+B+"]")}catch(e){var Q=this.parse(B,g);o=o.substr(0,f)+"\\["+Q[0]+"\\]",a=a||Q[1],h=!1;continue}}a=!0,h=!1,o+=I;continue;default:E(),c?c=!1:!A[I]||"^"===I&&h||(o+="\\"),o+=I}h&&(B=e.substr(p+1),Q=this.parse(B,g),o=o.substr(0,f)+"\\["+Q[0],a=a||Q[1]);for(w=u.pop();w;w=u.pop()){var v=o.slice(w.reStart+w.open.length);this.debug("setting tail",o,w),v=v.replace(/((?:\\{2}){0,64})(\\?)\|/g,(function(e,t,r){return r||(r="\\"),t+t+r+"|"})),this.debug("tail=%j\n   %s",v,v,w,o);var D="*"===w.type?"[^/]*?":"?"===w.type?"[^/]":"\\"+w.type;a=!0,o=o.slice(0,w.reStart)+D+"\\("+v}E(),c&&(o+="\\\\");var b=!1;switch(o.charAt(0)){case".":case"[":case"(":b=!0}for(var S=l.length-1;S>-1;S--){var k=l[S],x=o.slice(0,k.reStart),F=o.slice(k.reStart,k.reEnd-8),M=o.slice(k.reEnd-8,k.reEnd),N=o.slice(k.reEnd);M+=N;var R=x.split("(").length-1,K=N;for(m=0;m<R;m++)K=K.replace(/\)[+*?]?/,"");var L="";""===(N=K)&&t!==g&&(L="$"),o=x+F+N+L+M}""!==o&&a&&(o="(?=.)"+o);b&&(o=d+o);if(t===g)return[o,a];if(!a)return function(e){return e.replace(/\\(.)/g,"$1")}(e);var T=r.nocase?"i":"";try{var P=new RegExp("^"+o+"$",T)}catch(e){return new RegExp("$.")}return P._glob=e,P._src=o,P};var g={};u.makeRe=function(e,t){return new l(e,t||{}).makeRe()},l.prototype.makeRe=function(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?"[^/]*?":t.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=t.nocase?"i":"",o=e.map((function(e){return e.map((function(e){return e===i?r:"string"==typeof e?function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}(e):e._src})).join("\\/")})).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,n)}catch(e){this.regexp=!1}return this.regexp},u.match=function(e,t,r){var n=new l(t,r=r||{});return e=e.filter((function(e){return n.match(e)})),n.options.nonull&&!e.length&&e.push(t),e},l.prototype.match=function(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==n.sep&&(e=e.split(n.sep).join("/"));e=e.split(a),this.debug(this.pattern,"split",e);var i,o,s=this.set;for(this.debug(this.pattern,"set",s),o=e.length-1;o>=0&&!(i=e[o]);o--);for(o=0;o<s.length;o++){var A=s[o],c=e;if(r.matchBase&&1===A.length&&(c=[i]),this.matchOne(c,A,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate},l.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var o=0,s=0,A=e.length,a=t.length;o<A&&s<a;o++,s++){this.debug("matchOne loop");var c,u=t[s],l=e[o];if(this.debug(t,u,l),!1===u)return!1;if(u===i){this.debug("GLOBSTAR",[t,u,l]);var h=o,g=s+1;if(g===a){for(this.debug("** at the end");o<A;o++)if("."===e[o]||".."===e[o]||!n.dot&&"."===e[o].charAt(0))return!1;return!0}for(;h<A;){var f=e[h];if(this.debug("\nglobstar while",e,h,t,g,f),this.matchOne(e.slice(h),t.slice(g),r))return this.debug("globstar found match!",h,A,f),!0;if("."===f||".."===f||!n.dot&&"."===f.charAt(0)){this.debug("dot detected!",e,h,t,g);break}this.debug("globstar swallow a segment, and continue"),h++}return!(!r||(this.debug("\n>>> no match, partial?",e,h,t,g),h!==A))}if("string"==typeof u?(c=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(o===A&&s===a)return!0;if(o===A)return r;if(s===a)return o===A-1&&""===e[o];throw new Error("wtf?")}},44380:(e,t,r)=>{"use strict";const n=r(28614),i=r(80800),o=r(24304).StringDecoder,s=Symbol("EOF"),A=Symbol("maybeEmitEnd"),a=Symbol("emittedEnd"),c=Symbol("emittingEnd"),u=Symbol("closed"),l=Symbol("read"),h=Symbol("flush"),g=Symbol("flushChunk"),f=Symbol("encoding"),p=Symbol("decoder"),d=Symbol("flowing"),C=Symbol("paused"),E=Symbol("resume"),I=Symbol("bufferLength"),m=Symbol("bufferPush"),y=Symbol("bufferShift"),w=Symbol("objectMode"),B=Symbol("destroyed"),Q="1"!==global._MP_NO_ITERATOR_SYMBOLS_,v=Q&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),D=Q&&Symbol.iterator||Symbol("iterator not implemented"),b=Buffer.alloc?Buffer:r(13499).Buffer,S=e=>"end"===e||"finish"===e||"prefinish"===e;e.exports=class e extends n{constructor(e){super(),this[d]=!1,this[C]=!1,this.pipes=new i,this.buffer=new i,this[w]=e&&e.objectMode||!1,this[w]?this[f]=null:this[f]=e&&e.encoding||null,"buffer"===this[f]&&(this[f]=null),this[p]=this[f]?new o(this[f]):null,this[s]=!1,this[a]=!1,this[c]=!1,this[u]=!1,this.writable=!0,this.readable=!0,this[I]=0,this[B]=!1}get bufferLength(){return this[I]}get encoding(){return this[f]}set encoding(e){if(this[w])throw new Error("cannot set encoding in objectMode");if(this[f]&&e!==this[f]&&(this[p]&&this[p].lastNeed||this[I]))throw new Error("cannot change encoding");this[f]!==e&&(this[p]=e?new o(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[p].write(e)))),this[f]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[w]}set objectMode(e){this[w]=this[w]||!!e}write(e,t,r){if(this[s])throw new Error("write after end");if(this[B])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;var n;if("function"==typeof t&&(r=t,t="utf8"),t||(t="utf8"),this[w]||b.isBuffer(e)||(n=e,!b.isBuffer(n)&&ArrayBuffer.isView(n)?e=b.from(e.buffer,e.byteOffset,e.byteLength):(e=>e instanceof ArrayBuffer||"object"==typeof e&&e.constructor&&"ArrayBuffer"===e.constructor.name&&e.byteLength>=0)(e)?e=b.from(e):"string"!=typeof e&&(this.objectMode=!0)),!this.objectMode&&!e.length){const e=this.flowing;return 0!==this[I]&&this.emit("readable"),r&&r(),e}"string"!=typeof e||this[w]||t===this[f]&&!this[p].lastNeed||(e=b.from(e,t)),b.isBuffer(e)&&this[f]&&(e=this[p].write(e));try{return this.flowing?(this.emit("data",e),this.flowing):(this[m](e),!1)}finally{0!==this[I]&&this.emit("readable"),r&&r()}}read(e){if(this[B])return null;try{return 0===this[I]||0===e||e>this[I]?null:(this[w]&&(e=null),this.buffer.length>1&&!this[w]&&(this.encoding?this.buffer=new i([Array.from(this.buffer).join("")]):this.buffer=new i([b.concat(Array.from(this.buffer),this[I])])),this[l](e||null,this.buffer.head.value))}finally{this[A]()}}[l](e,t){return e===t.length||null===e?this[y]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[I]-=e),this.emit("data",t),this.buffer.length||this[s]||this.emit("drain"),t}end(e,t,r){return"function"==typeof e&&(r=e,e=null),"function"==typeof t&&(r=t,t="utf8"),e&&this.write(e,t),r&&this.once("end",r),this[s]=!0,this.writable=!1,!this.flowing&&this[C]||this[A](),this}[E](){this[B]||(this[C]=!1,this[d]=!0,this.emit("resume"),this.buffer.length?this[h]():this[s]?this[A]():this.emit("drain"))}resume(){return this[E]()}pause(){this[d]=!1,this[C]=!0}get destroyed(){return this[B]}get flowing(){return this[d]}get paused(){return this[C]}[m](e){return this[w]?this[I]+=1:this[I]+=e.length,this.buffer.push(e)}[y](){return this.buffer.length&&(this[w]?this[I]-=1:this[I]-=this.buffer.head.value.length),this.buffer.shift()}[h](){do{}while(this[g](this[y]()));this.buffer.length||this[s]||this.emit("drain")}[g](e){return!!e&&(this.emit("data",e),this.flowing)}pipe(e,t){if(this[B])return;const r=this[a];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=!1!==t.end;const n={dest:e,opts:t,ondrain:e=>this[E]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[E](),r&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{"data"!==e||this.pipes.length||this.flowing?S(e)&&this[a]&&(super.emit(e),this.removeAllListeners(e)):this[E]()}}get emittedEnd(){return this[a]}[A](){this[c]||this[a]||this[B]||0!==this.buffer.length||!this[s]||(this[c]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[u]&&this.emit("close"),this[c]=!1)}emit(e,t){if("error"!==e&&"close"!==e&&e!==B&&this[B])return;if("data"===e){if(!t)return;this.pipes.length&&this.pipes.forEach(e=>!1===e.dest.write(t)&&this.pause())}else if("end"===e){if(!0===this[a])return;this[a]=!0,this.readable=!1,this[p]&&(t=this[p].end())&&(this.pipes.forEach(e=>e.dest.write(t)),super.emit("data",t)),this.pipes.forEach(e=>{e.dest.removeListener("drain",e.ondrain),e.opts.end&&e.dest.end()})}else if("close"===e&&(this[u]=!0,!this[a]&&!this[B]))return;const r=new Array(arguments.length);if(r[0]=e,r[1]=t,arguments.length>2)for(let e=2;e<arguments.length;e++)r[e]=arguments[e];try{return super.emit.apply(this,r)}finally{S(e)?this.removeAllListeners(e):this[A]()}}collect(){const e=[];return e.dataLength=0,this.on("data",t=>{e.push(t),e.dataLength+=t.length}),this.promise().then(()=>e)}concat(){return this[w]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[w]?Promise.reject(new Error("cannot concat in objectMode")):this[f]?e.join(""):b.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(B,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",e=>t(e))})}[v](){return{next:()=>{const e=this.read();if(null!==e)return Promise.resolve({done:!1,value:e});if(this[s])return Promise.resolve({done:!0});let t=null,r=null;const n=e=>{this.removeListener("data",i),this.removeListener("end",o),r(e)},i=e=>{this.removeListener("error",n),this.removeListener("end",o),this.pause(),t({value:e,done:!!this[s]})},o=()=>{this.removeListener("error",n),this.removeListener("data",i),t({done:!0})},A=()=>n(new Error("stream destroyed"));return new Promise((e,s)=>{r=s,t=e,this.once(B,A),this.once("error",n),this.once("end",o),this.once("data",i)})}}}[D](){return{next:()=>{const e=this.read();return{value:e,done:null===e}}}}destroy(e){return this[B]?(e?this.emit("error",e):this.emit(B),this):(this[B]=!0,this.buffer=new i,this[I]=0,"function"!=typeof this.close||this[u]||this.close(),e?this.emit("error",e):this.emit(B),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof n&&("function"==typeof t.pipe||"function"==typeof t.write&&"function"==typeof t.end))}}},90051:e=>{e.exports=Object.freeze({Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,ZLIB_VERNUM:4736,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1})},20671:(e,t,r)=>{"use strict";const n=r(42357),i=r(64293).Buffer,o=r(78761),s=t.constants=r(90051),A=r(44380),a=i.concat;class c extends Error{constructor(e,t){super("zlib: "+e),this.errno=t,this.code=u.get(t)}get name(){return"ZlibError"}}const u=new Map([[s.Z_OK,"Z_OK"],[s.Z_STREAM_END,"Z_STREAM_END"],[s.Z_NEED_DICT,"Z_NEED_DICT"],[s.Z_ERRNO,"Z_ERRNO"],[s.Z_STREAM_ERROR,"Z_STREAM_ERROR"],[s.Z_DATA_ERROR,"Z_DATA_ERROR"],[s.Z_MEM_ERROR,"Z_MEM_ERROR"],[s.Z_BUF_ERROR,"Z_BUF_ERROR"],[s.Z_VERSION_ERROR,"Z_VERSION_ERROR"]]),l=new Set([s.Z_NO_FLUSH,s.Z_PARTIAL_FLUSH,s.Z_SYNC_FLUSH,s.Z_FULL_FLUSH,s.Z_FINISH,s.Z_BLOCK]),h=new Set([s.Z_FILTERED,s.Z_HUFFMAN_ONLY,s.Z_RLE,s.Z_FIXED,s.Z_DEFAULT_STRATEGY]),g=Symbol("opts"),f=Symbol("flushFlag"),p=Symbol("finishFlush"),d=Symbol("handle"),C=Symbol("onError"),E=Symbol("level"),I=Symbol("strategy"),m=Symbol("ended");class y extends A{constructor(e,t){if(super(e),this[m]=!1,this[g]=e=e||{},e.flush&&!l.has(e.flush))throw new TypeError("Invalid flush flag: "+e.flush);if(e.finishFlush&&!l.has(e.finishFlush))throw new TypeError("Invalid flush flag: "+e.finishFlush);if(this[f]=e.flush||s.Z_NO_FLUSH,this[p]=void 0!==e.finishFlush?e.finishFlush:s.Z_FINISH,e.chunkSize&&e.chunkSize<s.Z_MIN_CHUNK)throw new RangeError("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<s.Z_MIN_WINDOWBITS||e.windowBits>s.Z_MAX_WINDOWBITS))throw new RangeError("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<s.Z_MIN_LEVEL||e.level>s.Z_MAX_LEVEL))throw new RangeError("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<s.Z_MIN_MEMLEVEL||e.memLevel>s.Z_MAX_MEMLEVEL))throw new RangeError("Invalid memLevel: "+e.memLevel);if(e.strategy&&!h.has(e.strategy))throw new TypeError("Invalid strategy: "+e.strategy);if(e.dictionary&&!(e.dictionary instanceof i))throw new TypeError("Invalid dictionary: it should be a Buffer instance");this[d]=new o[t](e),this[C]=e=>{this.close();const t=new c(e.message,e.errno);this.emit("error",t)},this[d].on("error",this[C]);const r="number"==typeof e.level?e.level:s.Z_DEFAULT_COMPRESSION;var n="number"==typeof e.strategy?e.strategy:s.Z_DEFAULT_STRATEGY;this[E]=r,this[I]=n,this.once("end",this.close)}close(){this[d]&&(this[d].close(),this[d]=null,this.emit("close"))}params(e,t){if(!this[d])throw new Error("cannot switch params when binding is closed");if(!this[d].params)throw new Error("not supported in this implementation");if(e<s.Z_MIN_LEVEL||e>s.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(!h.has(t))throw new TypeError("Invalid strategy: "+t);if(this[E]!==e||this[I]!==t){this.flush(s.Z_SYNC_FLUSH),n(this[d],"zlib binding closed");const r=this[d].flush;this[d].flush=(e,t)=>{this[d].flush=r,this.flush(e),t()},this[d].params(e,t),this[d]&&(this[E]=e,this[I]=t)}}reset(){return n(this[d],"zlib binding closed"),this[d].reset()}flush(e){if(void 0===e&&(e=s.Z_FULL_FLUSH),this.ended)return;const t=this[f];this[f]=e,this.write(i.alloc(0)),this[f]=t}end(e,t,r){return e&&this.write(e,t),this.flush(this[p]),this[m]=!0,super.end(null,null,r)}get ended(){return this[m]}write(e,t,r){"function"==typeof t&&(r=t,t="utf8"),"string"==typeof e&&(e=i.from(e,t)),n(this[d],"zlib binding closed");const o=this[d]._handle,s=o.close;o.close=()=>{};const A=this[d].close;let c,u;this[d].close=()=>{},i.concat=e=>e;try{c=this[d]._processChunk(e,this[f])}catch(e){this[C](e)}finally{i.concat=a,this[d]&&(this[d]._handle=o,o.close=s,this[d].close=A,this[d].removeAllListeners("error"))}if(c)if(Array.isArray(c)&&c.length>0){u=super.write(i.from(c[0]));for(let e=1;e<c.length;e++)u=super.write(c[e])}else u=super.write(i.from(c));return r&&r(),u}}t.Deflate=class extends y{constructor(e){super(e,"Deflate")}},t.Inflate=class extends y{constructor(e){super(e,"Inflate")}},t.Gzip=class extends y{constructor(e){super(e,"Gzip")}},t.Gunzip=class extends y{constructor(e){super(e,"Gunzip")}},t.DeflateRaw=class extends y{constructor(e){super(e,"DeflateRaw")}},t.InflateRaw=class extends y{constructor(e){super(e,"InflateRaw")}},t.Unzip=class extends y{constructor(e){super(e,"Unzip")}}},11436:(e,t,r)=>{var n=r(85622),i=r(35747),o=parseInt("0777",8);function s(e,t,r,A){"function"==typeof t?(r=t,t={}):t&&"object"==typeof t||(t={mode:t});var a=t.mode,c=t.fs||i;void 0===a&&(a=o&~process.umask()),A||(A=null);var u=r||function(){};e=n.resolve(e),c.mkdir(e,a,(function(r){if(!r)return u(null,A=A||e);switch(r.code){case"ENOENT":s(n.dirname(e),t,(function(r,n){r?u(r,n):s(e,t,u,n)}));break;default:c.stat(e,(function(e,t){e||!t.isDirectory()?u(r,A):u(null,A)}))}}))}e.exports=s.mkdirp=s.mkdirP=s,s.sync=function e(t,r,s){r&&"object"==typeof r||(r={mode:r});var A=r.mode,a=r.fs||i;void 0===A&&(A=o&~process.umask()),s||(s=null),t=n.resolve(t);try{a.mkdirSync(t,A),s=s||t}catch(i){switch(i.code){case"ENOENT":s=e(n.dirname(t),r,s),e(t,r,s);break;default:var c;try{c=a.statSync(t)}catch(e){throw i}if(!c.isDirectory())throw i}}return s}},75319:(e,t,r)=>{var n=r(92413);function i(e){n.apply(this),e=e||{},this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=e.replace,this._prompt=e.prompt||null,this._hadControl=!1}function o(e){return function(){var t=this._dest,r=this._src;t&&t[e]&&t[e].apply(t,arguments),r&&r[e]&&r[e].apply(r,arguments)}}e.exports=i,i.prototype=Object.create(n.prototype),Object.defineProperty(i.prototype,"constructor",{value:i,enumerable:!1}),i.prototype.mute=function(){this.muted=!0},i.prototype.unmute=function(){this.muted=!1},Object.defineProperty(i.prototype,"_onpipe",{value:function(e){this._src=e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(i.prototype,"isTTY",{get:function(){return this._dest?this._dest.isTTY:!!this._src&&this._src.isTTY},set:function(e){Object.defineProperty(this,"isTTY",{value:e,enumerable:!0,writable:!0,configurable:!0})},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"rows",{get:function(){return this._dest?this._dest.rows:this._src?this._src.rows:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"columns",{get:function(){return this._dest?this._dest.columns:this._src?this._src.columns:void 0},enumerable:!0,configurable:!0}),i.prototype.pipe=function(e,t){return this._dest=e,n.prototype.pipe.call(this,e,t)},i.prototype.pause=function(){if(this._src)return this._src.pause()},i.prototype.resume=function(){if(this._src)return this._src.resume()},i.prototype.write=function(e){if(this.muted){if(!this.replace)return!0;if(e.match(/^\u001b/))return 0===e.indexOf(this._prompt)&&(e=(e=e.substr(this._prompt.length)).replace(/./g,this.replace),e=this._prompt+e),this._hadControl=!0,this.emit("data",e);this._prompt&&this._hadControl&&0===e.indexOf(this._prompt)&&(this._hadControl=!1,this.emit("data",this._prompt),e=e.substr(this._prompt.length)),e=e.toString().replace(/./g,this.replace)}this.emit("data",e)},i.prototype.end=function(e){this.muted&&(e=e&&this.replace?e.toString().replace(/./g,this.replace):null),e&&this.emit("data",e),this.emit("end")},i.prototype.destroy=o("destroy"),i.prototype.destroySoon=o("destroySoon"),i.prototype.close=o("close")},19793:(e,t,r)=>{"use strict";const n="undefined"==typeof URL?r(78835).URL:URL,i=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),o=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},Reflect.has(t,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(t,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(t,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(e=e.trim(),/^data:/i.test(e))return((e,{stripHash:t})=>{const r=e.match(/^data:(.*?),(.*?)(?:#(.*))?$/);if(!r)throw new Error("Invalid URL: "+e);const n=r[1].split(";"),i=r[2],o=t?"":r[3];let s=!1;"base64"===n[n.length-1]&&(n.pop(),s=!0);const A=(n.shift()||"").toLowerCase(),a=[...n.map(e=>{let[t,r=""]=e.split("=").map(e=>e.trim());return"charset"===t&&(r=r.toLowerCase(),"us-ascii"===r)?"":`${t}${r?"="+r:""}`}).filter(Boolean)];return s&&a.push("base64"),(0!==a.length||A&&"text/plain"!==A)&&a.unshift(A),`data:${a.join(";")},${s?i.trim():i}${o?"#"+o:""}`})(e,t);const r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));const o=new n(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&"https:"===o.protocol&&(o.protocol="http:"),t.forceHttps&&"http:"===o.protocol&&(o.protocol="https:"),t.stripAuthentication&&(o.username="",o.password=""),t.stripHash&&(o.hash=""),o.pathname&&(o.pathname=o.pathname.replace(/((?!:).|^)\/{2,}/g,(e,t)=>/^(?!\/)/g.test(t)?t+"/":"/")),o.pathname&&(o.pathname=decodeURI(o.pathname)),!0===t.removeDirectoryIndex&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=o.pathname.split("/");const r=e[e.length-1];i(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),o.pathname=e.slice(1).join("/")+"/")}if(o.hostname&&(o.hostname=o.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(o.hostname)&&(o.hostname=o.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(const e of[...o.searchParams.keys()])i(e,t.removeQueryParameters)&&o.searchParams.delete(e);return t.sortQueryParameters&&o.searchParams.sort(),t.removeTrailingSlash&&(o.pathname=o.pathname.replace(/\/$/,"")),e=o.toString(),!t.removeTrailingSlash&&"/"!==o.pathname||""!==o.hash||(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};e.exports=o,e.exports.default=o},91162:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}e.exports=n(i),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0})}))},27180:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function o(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}e.exports=n(i),e.exports.strict=n(o),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})}))},90834:(e,t,r)=>{"use strict";const n=r(81573),i=new WeakMap,o=(e,t={})=>{if("function"!=typeof e)throw new TypeError("Expected a function");let r,o=!1,s=0;const A=e.displayName||e.name||"<anonymous>",a=function(...n){if(i.set(a,++s),o){if(!0===t.throw)throw new Error(`Function \`${A}\` can only be called once`);return r}return o=!0,r=e.apply(this,n),e=null,r};return n(a,e),i.set(a,s),a};e.exports=o,e.exports.default=o,e.exports.callCount=e=>{if(!i.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i.get(e)}},82941:e=>{"use strict";var t="win32"===process.platform,r=t?/[^:]\\$/:/.\/$/;e.exports=function(){var e;return e=t?process.env.TEMP||process.env.TMP||(process.env.SystemRoot||process.env.windir)+"\\temp":process.env.TMPDIR||process.env.TMP||process.env.TEMP||"/tmp",r.test(e)&&(e=e.slice(0,-1)),e}},59351:e=>{"use strict";class t extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}class r{static fn(e){return(...t)=>new r((r,n,i)=>{t.push(i),e(...t).then(r,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,r)=>{this._reject=r;const n=e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(n,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(e=>{this._isPending=!1,t(e)},e=>{this._isPending=!1,r(e)},n)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._cancelHandlers.length>0)try{for(const e of this._cancelHandlers)e()}catch(e){this._reject(e)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new t(e))}}get isCanceled(){return this._isCanceled}}Object.setPrototypeOf(r.prototype,Promise.prototype),e.exports=r,e.exports.CancelError=t},61578:(e,t,r)=>{"use strict";const n=r(60550),i=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let r=0;const i=()=>{r--,t.length>0&&t.shift()()},o=(e,t,...o)=>{r++;const s=n(e,...o);t(s),s.then(i,i)},s=(n,...i)=>new Promise(s=>((n,i,...s)=>{r<e?o(n,i,...s):t.push(o.bind(null,n,i,...s))})(n,s,...i));return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),s};e.exports=i,e.exports.default=i},60550:e=>{"use strict";e.exports=(e,...t)=>new Promise(r=>{r(e(...t))})},71471:e=>{"use strict";function t(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}e.exports="win32"===process.platform?r:t,e.exports.posix=t,e.exports.win32=r},37127:e=>{"use strict";const t=(e={})=>{const t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path"};e.exports=t,e.exports.default=t},5763:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747);async function o(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return(await n(i[e])(r))[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}function s(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return i[e](r)[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}t.isFile=o.bind(null,"stat","isFile"),t.isDirectory=o.bind(null,"stat","isDirectory"),t.isSymlink=o.bind(null,"lstat","isSymbolicLink"),t.isFileSync=s.bind(null,"statSync","isFile"),t.isDirectorySync=s.bind(null,"statSync","isDirectory"),t.isSymlinkSync=s.bind(null,"lstatSync","isSymbolicLink")},54722:(e,t,r)=>{"use strict";e.exports=r(18828)},71086:(e,t,r)=>{"use strict";const n=r(85622),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?o:i}},47974:(e,t,r)=>{"use strict";const n=r(71086),i=r(3598),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:s,REGEX_NON_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:c}=n,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map(e=>i.escapeRegex(e)).join("..")}return r},l=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,h=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;const r={...t},h="number"==typeof r.maxLength?Math.min(o,r.maxLength):o;let g=e.length;if(g>h)throw new SyntaxError(`Input length: ${g}, exceeds maximum allowed length: ${h}`);const f={type:"bos",value:"",output:r.prepend||""},p=[f],d=r.capture?"":"?:",C=i.isWindows(t),E=n.globChars(C),I=n.extglobChars(E),{DOT_LITERAL:m,PLUS_LITERAL:y,SLASH_LITERAL:w,ONE_CHAR:B,DOTS_SLASH:Q,NO_DOT:v,NO_DOT_SLASH:D,NO_DOTS_SLASH:b,QMARK:S,QMARK_NO_DOT:k,STAR:x,START_ANCHOR:F}=E,M=e=>`(${d}(?:(?!${F}${e.dot?Q:m}).)*?)`,N=r.dot?"":v,R=r.dot?S:k;let K=!0===r.bash?M(r):x;r.capture&&(K=`(${K})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const L={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:p};e=i.removePrefix(e,L),g=e.length;const T=[],P=[],U=[];let _,O=f;const j=()=>L.index===g-1,Y=L.peek=(t=1)=>e[L.index+t],G=L.advance=()=>e[++L.index],J=()=>e.slice(L.index+1),H=(e="",t=0)=>{L.consumed+=e,L.index+=t},q=e=>{L.output+=null!=e.output?e.output:e.value,H(e.value)},z=()=>{let e=1;for(;"!"===Y()&&("("!==Y(2)||"?"===Y(3));)G(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},W=e=>{L[e]++,U.push(e)},V=e=>{L[e]--,U.pop()},X=e=>{if("globstar"===O.type){const t=L.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||T.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(L.output=L.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=K,L.output+=O.output)}if(T.length&&"paren"!==e.type&&!I[e.value]&&(T[T.length-1].inner+=e.value),(e.value||e.output)&&q(e),O&&"text"===O.type&&"text"===e.type)return O.value+=e.value,void(O.output=(O.output||"")+e.value);e.prev=O,p.push(e),O=e},Z=(e,t)=>{const n={...I[t],conditions:1,inner:""};n.prev=O,n.parens=L.parens,n.output=L.output;const i=(r.capture?"(":"")+n.open;W("parens"),X({type:e,value:t,output:L.output?"":B}),X({type:"paren",extglob:!0,value:G(),output:i}),T.push(n)},$=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let n=K;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(n=M(r)),(n!==K||j()||/^\)+$/.test(J()))&&(t=e.close=")$))"+n),"bos"===e.prev.type&&j()&&(L.negatedExtglob=!0)}X({type:"paren",extglob:!0,value:_,output:t}),V("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,o=e.replace(a,(e,t,r,i,o,s)=>"\\"===i?(n=!0,e):"?"===i?t?t+i+(o?S.repeat(o.length):""):0===s?R+(o?S.repeat(o.length):""):S.repeat(r.length):"."===i?m.repeat(r.length):"*"===i?t?t+i+(o?K:""):K:t?e:"\\"+e);return!0===n&&(o=!0===r.unescape?o.replace(/\\/g,""):o.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),o===e&&!0===r.contains?(L.output=e,L):(L.output=i.wrapOutput(o,L,t),L)}for(;!j();){if(_=G(),"\0"===_)continue;if("\\"===_){const e=Y();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){_+="\\",X({type:"text",value:_});continue}const t=/^\\+/.exec(J());let n=0;if(t&&t[0].length>2&&(n=t[0].length,L.index+=n,n%2!=0&&(_+="\\")),!0===r.unescape?_=G()||"":_+=G()||"",0===L.brackets){X({type:"text",value:_});continue}}if(L.brackets>0&&("]"!==_||"["===O.value||"[^"===O.value)){if(!1!==r.posix&&":"===_){const e=O.value.slice(1);if(e.includes("[")&&(O.posix=!0,e.includes(":"))){const e=O.value.lastIndexOf("["),t=O.value.slice(0,e),r=O.value.slice(e+2),n=s[r];if(n){O.value=t+n,L.backtrack=!0,G(),f.output||1!==p.indexOf(O)||(f.output=B);continue}}}("["===_&&":"!==Y()||"-"===_&&"]"===Y())&&(_="\\"+_),"]"!==_||"["!==O.value&&"[^"!==O.value||(_="\\"+_),!0===r.posix&&"!"===_&&"["===O.value&&(_="^"),O.value+=_,q({value:_});continue}if(1===L.quotes&&'"'!==_){_=i.escapeRegex(_),O.value+=_,q({value:_});continue}if('"'===_){L.quotes=1===L.quotes?0:1,!0===r.keepQuotes&&X({type:"text",value:_});continue}if("("===_){W("parens"),X({type:"paren",value:_});continue}if(")"===_){if(0===L.parens&&!0===r.strictBrackets)throw new SyntaxError(l("opening","("));const e=T[T.length-1];if(e&&L.parens===e.parens+1){$(T.pop());continue}X({type:"paren",value:_,output:L.parens?")":"\\)"}),V("parens");continue}if("["===_){if(!0!==r.nobracket&&J().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));_="\\"+_}X({type:"bracket",value:_});continue}if("]"===_){if(!0===r.nobracket||O&&"bracket"===O.type&&1===O.value.length){X({type:"text",value:_,output:"\\"+_});continue}if(0===L.brackets){if(!0===r.strictBrackets)throw new SyntaxError(l("opening","["));X({type:"text",value:_,output:"\\"+_});continue}V("brackets");const e=O.value.slice(1);if(!0===O.posix||"^"!==e[0]||e.includes("/")||(_="/"+_),O.value+=_,q({value:_}),!1===r.literalBrackets||i.hasRegexChars(e))continue;const t=i.escapeRegex(O.value);if(L.output=L.output.slice(0,-O.value.length),!0===r.literalBrackets){L.output+=t,O.value=t;continue}O.value=`(${d}${t}|${O.value})`,L.output+=O.value;continue}if("{"===_&&!0!==r.nobrace){W("braces");const e={type:"brace",value:_,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};P.push(e),X(e);continue}if("}"===_){const e=P[P.length-1];if(!0===r.nobrace||!e){X({type:"text",value:_,output:_});continue}let t=")";if(!0===e.dots){const e=p.slice(),n=[];for(let t=e.length-1;t>=0&&(p.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&n.unshift(e[t].value);t=u(n,r),L.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=L.output.slice(0,e.outputIndex),n=L.tokens.slice(e.tokensIndex);e.value=e.output="\\{",_=t="\\}",L.output=r;for(const e of n)L.output+=e.output||e.value}X({type:"brace",value:_,output:t}),V("braces"),P.pop();continue}if("|"===_){T.length>0&&T[T.length-1].conditions++,X({type:"text",value:_});continue}if(","===_){let e=_;const t=P[P.length-1];t&&"braces"===U[U.length-1]&&(t.comma=!0,e="|"),X({type:"comma",value:_,output:e});continue}if("/"===_){if("dot"===O.type&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",p.pop(),O=f;continue}X({type:"slash",value:_,output:w});continue}if("."===_){if(L.braces>0&&"dot"===O.type){"."===O.value&&(O.output=m);const e=P[P.length-1];O.type="dots",O.output+=_,O.value+=_,e.dots=!0;continue}if(L.braces+L.parens===0&&"bos"!==O.type&&"slash"!==O.type){X({type:"text",value:_,output:m});continue}X({type:"dot",value:_,output:m});continue}if("?"===_){if(!(O&&"("===O.value)&&!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("qmark",_);continue}if(O&&"paren"===O.type){const e=Y();let t=_;if("<"===e&&!i.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===O.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(J()))&&(t="\\"+_),X({type:"text",value:_,output:t});continue}if(!0!==r.dot&&("slash"===O.type||"bos"===O.type)){X({type:"qmark",value:_,output:k});continue}X({type:"qmark",value:_,output:S});continue}if("!"===_){if(!0!==r.noextglob&&"("===Y()&&("?"!==Y(2)||!/[!=<:]/.test(Y(3)))){Z("negate",_);continue}if(!0!==r.nonegate&&0===L.index){z();continue}}if("+"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("plus",_);continue}if(O&&"("===O.value||!1===r.regex){X({type:"plus",value:_,output:y});continue}if(O&&("bracket"===O.type||"paren"===O.type||"brace"===O.type)||L.parens>0){X({type:"plus",value:_});continue}X({type:"plus",value:y});continue}if("@"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){X({type:"at",extglob:!0,value:_,output:""});continue}X({type:"text",value:_});continue}if("*"!==_){"$"!==_&&"^"!==_||(_="\\"+_);const e=A.exec(J());e&&(_+=e[0],L.index+=e[0].length),X({type:"text",value:_});continue}if(O&&("globstar"===O.type||!0===O.star)){O.type="star",O.star=!0,O.value+=_,O.output=K,L.backtrack=!0,L.globstar=!0,H(_);continue}let t=J();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Z("star",_);continue}if("star"===O.type){if(!0===r.noglobstar){H(_);continue}const n=O.prev,i=n.prev,o="slash"===n.type||"bos"===n.type,s=i&&("star"===i.type||"globstar"===i.type);if(!0===r.bash&&(!o||t[0]&&"/"!==t[0])){X({type:"star",value:_,output:""});continue}const A=L.braces>0&&("comma"===n.type||"brace"===n.type),a=T.length&&("pipe"===n.type||"paren"===n.type);if(!o&&"paren"!==n.type&&!A&&!a){X({type:"star",value:_,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[L.index+4];if(r&&"/"!==r)break;t=t.slice(3),H("/**",3)}if("bos"===n.type&&j()){O.type="globstar",O.value+=_,O.output=M(r),L.output=O.output,L.globstar=!0,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&!s&&j()){L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=M(r)+(r.strictSlashes?")":"|$)"),O.value+=_,L.globstar=!0,L.output+=n.output+O.output,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=`${M(r)}${w}|${w}${e})`,O.value+=_,L.output+=n.output+O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}if("bos"===n.type&&"/"===t[0]){O.type="globstar",O.value+=_,O.output=`(?:^|${w}|${M(r)}${w})`,L.output=O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-O.output.length),O.type="globstar",O.output=M(r),O.value+=_,L.output+=O.output,L.globstar=!0,H(_);continue}const n={type:"star",value:_,output:K};!0!==r.bash?!O||"bracket"!==O.type&&"paren"!==O.type||!0!==r.regex?(L.index!==L.start&&"slash"!==O.type&&"dot"!==O.type||("dot"===O.type?(L.output+=D,O.output+=D):!0===r.dot?(L.output+=b,O.output+=b):(L.output+=N,O.output+=N),"*"!==Y()&&(L.output+=B,O.output+=B)),X(n)):(n.output=_,X(n)):(n.output=".*?","bos"!==O.type&&"slash"!==O.type||(n.output=N+n.output),X(n))}for(;L.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));L.output=i.escapeLast(L.output,"["),V("brackets")}for(;L.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing",")"));L.output=i.escapeLast(L.output,"("),V("parens")}for(;L.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","}"));L.output=i.escapeLast(L.output,"{"),V("braces")}if(!0===r.strictSlashes||"star"!==O.type&&"bracket"!==O.type||X({type:"maybe_slash",value:"",output:w+"?"}),!0===L.backtrack){L.output="";for(const e of L.tokens)L.output+=null!=e.output?e.output:e.value,e.suffix&&(L.output+=e.suffix)}return L};h.fastpaths=(e,t)=>{const r={...t},s="number"==typeof r.maxLength?Math.min(o,r.maxLength):o,A=e.length;if(A>s)throw new SyntaxError(`Input length: ${A}, exceeds maximum allowed length: ${s}`);e=c[e]||e;const a=i.isWindows(t),{DOT_LITERAL:u,SLASH_LITERAL:l,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:p,NO_DOTS_SLASH:d,STAR:C,START_ANCHOR:E}=n.globChars(a),I=r.dot?p:f,m=r.dot?d:f,y=r.capture?"":"?:";let w=!0===r.bash?".*?":C;r.capture&&(w=`(${w})`);const B=e=>!0===e.noglobstar?w:`(${y}(?:(?!${E}${e.dot?g:u}).)*?)`,Q=e=>{switch(e){case"*":return`${I}${h}${w}`;case".*":return`${u}${h}${w}`;case"*.*":return`${I}${w}${u}${h}${w}`;case"*/*":return`${I}${w}${l}${h}${m}${w}`;case"**":return I+B(r);case"**/*":return`(?:${I}${B(r)}${l})?${m}${h}${w}`;case"**/*.*":return`(?:${I}${B(r)}${l})?${m}${w}${u}${h}${w}`;case"**/.*":return`(?:${I}${B(r)}${l})?${u}${h}${w}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=Q(t[1]);if(!r)return;return r+u+t[2]}}},v=i.removePrefix(e,{negated:!1,prefix:""});let D=Q(v);return D&&!0!==r.strictSlashes&&(D+=l+"?"),D},e.exports=h},18828:(e,t,r)=>{"use strict";const n=r(85622),i=r(95321),o=r(47974),s=r(3598),A=r(71086),a=(e,t,r=!1)=>{if(Array.isArray(e)){const n=e.map(e=>a(e,t,r));return e=>{for(const t of n){const r=t(e);if(r)return r}return!1}}const n=(i=e)&&"object"==typeof i&&!Array.isArray(i)&&e.tokens&&e.input;var i;if(""===e||"string"!=typeof e&&!n)throw new TypeError("Expected pattern to be a non-empty string");const o=t||{},A=s.isWindows(t),c=n?a.compileRe(e,t):a.makeRe(e,t,!1,!0),u=c.state;delete c.state;let l=()=>!1;if(o.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};l=a(o.ignore,e,r)}const h=(r,n=!1)=>{const{isMatch:i,match:s,output:h}=a.test(r,c,t,{glob:e,posix:A}),g={glob:e,state:u,regex:c,posix:A,input:r,output:h,match:s,isMatch:i};return"function"==typeof o.onResult&&o.onResult(g),!1===i?(g.isMatch=!1,!!n&&g):l(r)?("function"==typeof o.onIgnore&&o.onIgnore(g),g.isMatch=!1,!!n&&g):("function"==typeof o.onMatch&&o.onMatch(g),!n||g)};return r&&(h.state=u),h};a.test=(e,t,r,{glob:n,posix:i}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},A=o.format||(i?s.toPosixSlashes:null);let c=e===n,u=c&&A?A(e):e;return!1===c&&(u=A?A(e):e,c=u===n),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,i):t.exec(u)),{isMatch:Boolean(c),match:c,output:u}},a.matchBase=(e,t,r,i=s.isWindows(r))=>(t instanceof RegExp?t:a.makeRe(t,r)).test(n.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map(e=>a.parse(e,t)):o(e,{...t,fastpaths:!1}),a.scan=(e,t)=>i(e,t),a.compileRe=(e,t,r=!1,n=!1)=>{if(!0===r)return e.output;const i=t||{},o=i.contains?"":"^",s=i.contains?"":"$";let A=`${o}(?:${e.output})${s}`;e&&!0===e.negated&&(A=`^(?!${A}).*$`);const c=a.toRegex(A,t);return!0===n&&(c.state=e),c},a.makeRe=(e,t,r=!1,n=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let s,A={negated:!1,fastpaths:!0},c="";return e.startsWith("./")&&(e=e.slice(2),c=A.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(s=o.fastpaths(e,t)),void 0===s?(A=o(e,t),A.prefix=c+(A.prefix||"")):A.output=s,a.compileRe(A,t,r,n)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=A,e.exports=a},95321:(e,t,r)=>{"use strict";const n=r(3598),{CHAR_ASTERISK:i,CHAR_AT:o,CHAR_BACKWARD_SLASH:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:f,CHAR_QUESTION_MARK:p,CHAR_RIGHT_CURLY_BRACE:d,CHAR_RIGHT_PARENTHESES:C,CHAR_RIGHT_SQUARE_BRACKET:E}=r(71086),I=e=>e===u||e===s,m=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},y=e.length-1,w=!0===r.parts||!0===r.scanToEnd,B=[],Q=[],v=[];let D,b,S=e,k=-1,x=0,F=0,M=!1,N=!1,R=!1,K=!1,L=!1,T=!1,P=!1,U=!1,_=!1,O=0,j={value:"",depth:0,isGlob:!1};const Y=()=>k>=y,G=()=>(D=b,S.charCodeAt(++k));for(;k<y;){let e;if(b=G(),b!==s){if(!0===T||b===l){for(O++;!0!==Y()&&(b=G());)if(b!==s)if(b!==l){if(!0!==T&&b===a&&(b=G())===a){if(M=j.isBrace=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}if(!0!==T&&b===A){if(M=j.isBrace=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===d&&(O--,0===O)){T=!1,M=j.isBrace=!0,_=!0;break}}else O++;else P=j.backslashes=!0,G();if(!0===w)continue;break}if(b!==u){if(!0!==r.noext){if(!0===(b===f||b===o||b===i||b===p||b===c)&&S.charCodeAt(k+1)===h){if(R=j.isGlob=!0,K=j.isExtglob=!0,_=!0,!0===w){for(;!0!==Y()&&(b=G());)if(b!==s){if(b===C){R=j.isGlob=!0,_=!0;break}}else P=j.backslashes=!0,b=G();continue}break}}if(b===i){if(D===i&&(L=j.isGlobstar=!0),R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===p){if(R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===g)for(;!0!==Y()&&(e=G());)if(e!==s){if(e===E){if(N=j.isBracket=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}}else P=j.backslashes=!0,G();if(!0===r.nonegate||b!==c||k!==x){if(!0!==r.noparen&&b===h){if(R=j.isGlob=!0,!0===w){for(;!0!==Y()&&(b=G());)if(b!==h){if(b===C){_=!0;break}}else P=j.backslashes=!0,b=G();continue}break}if(!0===R){if(_=!0,!0===w)continue;break}}else U=j.negated=!0,x++}else{if(B.push(k),Q.push(j),j={value:"",depth:0,isGlob:!1},!0===_)continue;if(D===a&&k===x+1){x+=2;continue}F=k+1}}else P=j.backslashes=!0,b=G(),b===l&&(T=!0)}!0===r.noext&&(K=!1,R=!1);let J=S,H="",q="";x>0&&(H=S.slice(0,x),S=S.slice(x),F-=x),J&&!0===R&&F>0?(J=S.slice(0,F),q=S.slice(F)):!0===R?(J="",q=S):J=S,J&&""!==J&&"/"!==J&&J!==S&&I(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(q&&(q=n.removeBackslashes(q)),J&&!0===P&&(J=n.removeBackslashes(J)));const z={prefix:H,input:e,start:x,base:J,glob:q,isBrace:M,isBracket:N,isGlob:R,isExtglob:K,isGlobstar:L,negated:U};if(!0===r.tokens&&(z.maxDepth=0,I(b)||Q.push(j),z.tokens=Q),!0===r.parts||!0===r.tokens){let t;for(let n=0;n<B.length;n++){const i=t?t+1:x,o=B[n],s=e.slice(i,o);r.tokens&&(0===n&&0!==x?(Q[n].isPrefix=!0,Q[n].value=H):Q[n].value=s,m(Q[n]),z.maxDepth+=Q[n].depth),0===n&&""===s||v.push(s),t=o}if(t&&t+1<e.length){const n=e.slice(t+1);v.push(n),r.tokens&&(Q[Q.length-1].value=n,m(Q[Q.length-1]),z.maxDepth+=Q[Q.length-1].depth)}z.slashes=B,z.parts=v}return z}},3598:(e,t,r)=>{"use strict";const n=r(85622),i="win32"===process.platform,{REGEX_BACKSLASH:o,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_GLOBAL:a}=r(71086);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>A.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(a,"\\$1"),t.toPosixSlashes=e=>e.replace(o,"/"),t.removeBackslashes=e=>e.replace(s,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{const i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):`${e.slice(0,i)}\\${e.slice(i)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let n=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(n=`(?:^(?!${n}).*$)`),n}},79588:e=>{"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values={}},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),this._values.hasOwnProperty(e)||this._size++,this._values[e]=t};var r=/[^.^\]^[]+|(?=\[\]|\.\.)/g,n=/^\d+$/,i=/^\d/,o=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,s=/^\s*(['"]?)(.*?)(\1)\s*$/,A=!1,a=new t(512),c=new t(512),u=new t(512);try{new Function("")}catch(e){A=!0}function l(e){return a.get(e)||a.set(e,h(e).map((function(e){return e.replace(s,"$2")})))}function h(e){return e.match(r)}function g(e,t,r){return"string"==typeof t&&(r=t,t=!1),r=r||"data",(e=e||"")&&"["!==e.charAt(0)&&(e="."+e),t?function(e,t){var r,n=t,i=h(e);return f(i,(function(e,t,i,o,s){r=o===s.length-1,n+=(e=t||i?"["+e+"]":"."+e)+(r?")":" || {})")})),new Array(i.length+1).join("(")+n}(e,r):r+e}function f(e,t,r){var n,i,o,s,A=e.length;for(i=0;i<A;i++)(n=e[i])&&(d(n)&&(n='"'+n+'"'),o=!(s=p(n))&&/^\d+$/.test(n),t.call(r,n,s,o,i,e))}function p(e){return"string"==typeof e&&e&&-1!==["'",'"'].indexOf(e.charAt(0))}function d(e){return!p(e)&&(function(e){return e.match(i)&&!e.match(n)}(e)||function(e){return o.test(e)}(e))}e.exports={Cache:t,expr:g,split:h,normalizePath:l,setter:A?function(e){var t=l(e);return function(e,r){return function(e,t,r){var n=0,i=e.length;for(;n<i-1;)t=t[e[n++]];t[e[n]]=r}(t,e,r)}}:function(e){return c.get(e)||c.set(e,new Function("data, value",g(e,"data")+" = value"))},getter:A?function(e,t){var r=l(e);return function(e){return function(e,t,r){var n=0,i=e.length;for(;n<i;){if(null==r&&t)return;r=r[e[n++]]}return r}(r,t,e)}}:function(e,t){var r=e+"_"+t;return u.get(r)||u.set(r,new Function("data","return "+g(e,t,"data")))},join:function(e){return e.reduce((function(e,t){return e+(p(t)||n.test(t)?"["+t+"]":(e?".":"")+t)}),"")},forEach:function(e,t,r){f(h(e),t,r)}}},50372:(e,t,r)=>{var n=r(91162),i=r(97681),o=r(35747),s=function(){},A=/^v?\.0/.test(process.version),a=function(e){return"function"==typeof e},c=function(e,t,r,c){c=n(c);var u=!1;e.on("close",(function(){u=!0})),i(e,{readable:t,writable:r},(function(e){if(e)return c(e);u=!0,c()}));var l=!1;return function(t){if(!u&&!l)return l=!0,function(e){return!!A&&(!!o&&((e instanceof(o.ReadStream||s)||e instanceof(o.WriteStream||s))&&a(e.close)))}(e)?e.close(s):function(e){return e.setHeader&&a(e.abort)}(e)?e.abort():a(e.destroy)?e.destroy():void c(t||new Error("stream was destroyed"))}},u=function(e){e()},l=function(e,t){return e.pipe(t)};e.exports=function(){var e,t=Array.prototype.slice.call(arguments),r=a(t[t.length-1]||s)&&t.pop()||s;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var n=t.map((function(i,o){var s=o<t.length-1;return c(i,s,o>0,(function(t){e||(e=t),t&&n.forEach(u),s||(n.forEach(u),r(e))}))}));return t.reduce(l)}},82905:e=>{"use strict";class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}e.exports=t},20663:e=>{"use strict";const t={};function r(e,r,n){n||(n=Error);class i extends n{constructor(e,t,n){super(function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(e,t,n))}}i.prototype.name=n.name,i.prototype.code=e,t[e]=i}function n(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>String(e)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:2===r?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){let i;var o,s;let A;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))A=`The ${e} ${i} ${n(t,"type")}`;else{A=`The "${e}" ${function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument"} ${i} ${n(t,"type")}`}return A+=". Received type "+typeof r,A}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},39138:e=>{"use strict";var t=new Set;e.exports.emitExperimentalWarning=process.emitWarning?function(e){if(!t.has(e)){var r=e+" is an experimental feature. This feature could change at any time";t.add(e),process.emitWarning(r,"ExperimentalWarning")}}:function(){}},72434:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(58020),o=r(6729);r(85870)(c,i);for(var s=n(o.prototype),A=0;A<s.length;A++){var a=s[A];c.prototype[a]||(c.prototype[a]=o.prototype[a])}function c(e){if(!(this instanceof c))return new c(e);i.call(this,e),o.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||process.nextTick(l,this)}function l(e){e.end()}Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},52444:(e,t,r)=>{"use strict";e.exports=i;var n=r(54801);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(85870)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},58020:(e,t,r)=>{"use strict";var n;e.exports=B,B.ReadableState=w;r(28614).EventEmitter;var i=function(e,t){return e.listeners(t).length},o=r(49298),s=r(64293).Buffer,A=global.Uint8Array||function(){};var a,c=r(31669);a=c&&c.debuglog?c.debuglog("stream"):function(){};var u,l,h=r(43117),g=r(32340),f=r(77433).getHighWaterMark,p=r(20663).q,d=p.ERR_INVALID_ARG_TYPE,C=p.ERR_STREAM_PUSH_AFTER_EOF,E=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,m=r(39138).emitExperimentalWarning;r(85870)(B,o);var y=["error","close","destroy","pause","resume"];function w(e,t,i){n=n||r(72434),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=f(this,e,"readableHighWaterMark",i),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=r(69538).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function B(e){if(n=n||r(72434),!(this instanceof B))return new B(e);var t=this instanceof n;this._readableState=new w(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function Q(e,t,r,n,i){a("readableAddChunk",t);var o,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?b(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,S(e)))}(e,c);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof A||"string"==typeof t||void 0===t||e.objectMode||(r=new d("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(c,t)),o)e.emit("error",o);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)c.endEmitted?e.emit("error",new I):v(e,c,t,!0);else if(c.ended)e.emit("error",new C);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?v(e,c,t,!1):k(e,c)):v(e,c,t,!1)}else n||(c.reading=!1,k(e,c));return!c.ended&&(c.length<c.highWaterMark||0===c.length)}function v(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&b(e)),k(e,t)}Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),B.prototype.destroy=g.destroy,B.prototype._undestroy=g.undestroy,B.prototype._destroy=function(e,t){t(e)},B.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=s.from(e,t),t=""),r=!0),Q(this,e,t,!1,r)},B.prototype.unshift=function(e){return Q(this,e,null,!0,!1)},B.prototype.isPaused=function(){return!1===this._readableState.flowing},B.prototype.setEncoding=function(e){return u||(u=r(69538).s),this._readableState.decoder=new u(e),this._readableState.encoding=this._readableState.decoder.encoding,this};function D(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function b(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(S,e))}function S(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,R(e)}function k(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(x,e,t))}function x(e,t){for(var r=t.length;!t.reading&&!t.ended&&t.length<t.highWaterMark&&(a("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function F(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function M(e){a("readable nexttick read 0"),e.read(0)}function N(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),R(e),t.flowing&&!t.reading&&e.read(0)}function R(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function K(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){a("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function P(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}B.prototype.read=function(e){a("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):b(this),null;if(0===(e=D(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&a("length less than watermark",i=!0),t.ended||t.reading?a("reading or ended",i=!1):i&&(a("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=D(r,t))),null===(n=e>0?K(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},B.prototype._read=function(e){this.emit("error",new E("_read()"))},B.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?A:p;function s(t,i){a("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,a("cleanup"),e.removeListener("close",g),e.removeListener("finish",f),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",A),r.removeListener("end",p),r.removeListener("data",l),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function A(){a("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,R(e))}}(r);e.on("drain",c);var u=!1;function l(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==P(n.pipes,e))&&!u&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(t){a("onerror",t),p(),e.removeListener("error",h),0===i(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",f),p()}function f(){a("onfinish"),e.removeListener("close",g),p()}function p(){a("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",g),e.once("finish",f),e.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),e},B.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o<i;o++)n[o].emit("unpipe",this,{hasUnpiped:!1});return this}var s=P(t.pipes,e);return-1===s||(t.pipes.splice(s,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},B.prototype.on=function(e,t){var r=o.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?b(this):n.reading||process.nextTick(M,this))),r},B.prototype.addListener=B.prototype.on,B.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(F,this),r},B.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(F,this),t},B.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(N,e,t))}(this,e)),e.paused=!1,this},B.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},B.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o<y.length;o++)e.on(y[o],this.emit.bind(this,y[o]));return this._read=function(t){a("wrapped _read",t),n&&(n=!1,e.resume())},this},"function"==typeof Symbol&&(B.prototype[Symbol.asyncIterator]=function(){return m("Readable[Symbol.asyncIterator]"),void 0===l&&(l=r(4245)),l(this)}),Object.defineProperty(B.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(B.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(B.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),B._fromList=K,Object.defineProperty(B.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}})},54801:(e,t,r)=>{"use strict";e.exports=u;var n=r(20663).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,A=n.ERR_TRANSFORM_WITH_LENGTH_0,a=r(72434);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);a.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",l)}function l(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?h(this,null,null):this._flush((function(t,r){h(e,t,r)}))}function h(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new A;if(e._transformState.transforming)throw new s;return e.push(null)}r(85870)(u,a),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,a.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,r){r(new i("_transform()"))},u.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){a.prototype._destroy.call(this,e,(function(e){t(e)}))}},6729:(e,t,r)=>{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var i;e.exports=B,B.WritableState=w;var o={deprecate:r(73212)},s=r(49298),A=r(64293).Buffer,a=global.Uint8Array||function(){};var c,u=r(32340),l=r(77433).getHighWaterMark,h=r(20663).q,g=h.ERR_INVALID_ARG_TYPE,f=h.ERR_METHOD_NOT_IMPLEMENTED,p=h.ERR_MULTIPLE_CALLBACK,d=h.ERR_STREAM_CANNOT_PIPE,C=h.ERR_STREAM_DESTROYED,E=h.ERR_STREAM_NULL_VALUES,I=h.ERR_STREAM_WRITE_AFTER_END,m=h.ERR_UNKNOWN_ENCODING;function y(){}function w(e,t,o){i=i||r(72434),e=e||{},"boolean"!=typeof o&&(o=t instanceof i),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if("function"!=typeof i)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(process.nextTick(i,n),process.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),k(e,t))}(e,r,n,t,i);else{var o=b(r)||e.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||D(e,r),n?process.nextTick(v,e,r,o,i):v(e,r,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function B(e){var t=this instanceof(i=i||r(72434));if(!t&&!c.call(B,this))return new B(e);this._writableState=new w(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function Q(e,t,r,n,i,o,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new C("write")):r?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function v(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),k(e,t)}function D(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,o=new Array(i),s=t.corkedRequestsFree;s.entry=r;for(var A=0,a=!0;r;)o[A]=r,r.isBuf||(a=!1),r=r.next,A+=1;o.allBuffers=a,Q(e,t,!0,t.length,o,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,l=r.callback;if(Q(e,t,!1,t.objectMode?1:c.length,c,u,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var r=b(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}r(85870)(B,s),w.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(w.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(B,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===B&&(e&&e._writableState instanceof w)}})):c=function(e){return e instanceof this},B.prototype.pipe=function(){this.emit("error",new d)},B.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,s=!i.objectMode&&(n=e,A.isBuffer(n)||n instanceof a);return s&&!A.isBuffer(e)&&(e=function(e){return A.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ending?function(e,t){var r=new I;e.emit("error",r),process.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var i;return null===r?i=new E:"string"==typeof r||t.objectMode||(i=new g("chunk",["string","Buffer"],r)),!i||(e.emit("error",i),process.nextTick(n,i),!1)}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,o){if(!r){var s=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=A.from(t,r));return t}(t,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else Q(e,t,!1,a,n,i,o);return c}(this,i,s,e,t,r)),o},B.prototype.cork=function(){this._writableState.corked++},B.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||D(this,e))},B.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new m(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(B.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(B.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),B.prototype._write=function(e,t,r){r(new f("_write()"))},B.prototype._writev=null,B.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(B.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),B.prototype.destroy=u.destroy,B.prototype._undestroy=u.undestroy,B.prototype._destroy=function(e,t){t(e)}},4245:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(91327),s=Symbol("lastResolve"),A=Symbol("lastReject"),a=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),h=Symbol("stream");function g(e,t){return{value:e,done:t}}function f(e){var t=e[s];if(null!==t){var r=e[h].read();null!==r&&(e[u]=null,e[s]=null,e[A]=null,t(g(r,!1)))}}function p(e){process.nextTick(f,e)}var d=Object.getPrototypeOf((function(){})),C=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var e=this,t=this[a];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(g(null,!0));if(this[h].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[a]?r(e[a]):t(g(null,!0))}))}));var r,n=this[u];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l](r,n)}),n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(g(i,!1));r=new Promise(this[l])}return this[u]=r,r}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[h].destroy(null,(function(e){e?r(e):t(g(null,!0))}))}))})),n),d);e.exports=function(e){var t,r=Object.create(C,(i(t={},h,{value:e,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,A,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,u,{value:null,writable:!0}),i(t,l,{value:function(e,t){var n=r[h].read();n?(r[u]=null,r[s]=null,r[A]=null,e(g(n,!1))):(r[s]=e,r[A]=t)},writable:!0}),t));return o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[A];return null!==t&&(r[u]=null,r[s]=null,r[A]=null,t(e)),void(r[a]=e)}var n=r[s];null!==n&&(r[u]=null,r[s]=null,r[A]=null,n(g(null,!0))),r[c]=!0})),e.on("readable",p.bind(null,r)),r}},43117:(e,t,r)=>{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(64293).Buffer,o=r(31669).inspect,s=o&&o.custom||"inspect";e.exports=function(){function e(){this.head=null,this.tail=null,this.length=0}var t=e.prototype;return t.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},t.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},t.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},t.clear=function(){this.head=this.tail=null,this.length=0},t.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},t.concat=function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,o=i.allocUnsafe(e>>>0),s=this.head,A=0;s;)t=s.data,r=o,n=A,i.prototype.copy.call(t,r,n),A+=s.data.length,s=s.next;return o},t.consume=function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r},t.first=function(){return this.head.data},t._getString=function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,o=e>i.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0===(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n},t._getBuffer=function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,s),0===(e-=s)){s===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(s));break}++n}return this.length-=n,t},t[s]=function(e,t){return o(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},i=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),i.forEach((function(t){n(e,t,r[t])}))}return e}({},t,{depth:0,customInspect:!1}))},e}()},32340:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,i){var o=this,s=this._readableState&&this._readableState.destroyed,A=this._writableState&&this._writableState.destroyed;return s||A?(i?i(e):!e||this._writableState&&this._writableState.errorEmitted||process.nextTick(n,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!i&&e?(process.nextTick(t,o,e),o._writableState&&(o._writableState.errorEmitted=!0)):i?(process.nextTick(r,o),i(e)):process.nextTick(r,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},91327:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(r){t||(t=!0,e.call(this,r))}}(o||i);var s=t._writableState,A=t._readableState,a=r.readable||!1!==r.readable&&t.readable,c=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||l()},l=function(){c=!1,a||o.call(t)},h=function(){a=!1,c||o.call(t)},g=function(e){o.call(t,e)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:o.call(t,new n)},p=function(){t.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?c&&!s&&(t.on("end",u),t.on("close",u)):(t.on("complete",l),t.on("abort",f),t.req?p():t.on("request",p)),t.on("end",h),t.on("finish",l),!1!==r.error&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",p),t.req&&t.req.removeListener("finish",l),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",l),t.removeListener("end",h),t.removeListener("error",g),t.removeListener("close",f)}}},4939:(e,t,r)=>{"use strict";var n;var i=r(20663).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function A(e){if(e)throw e}function a(e,t,i,o){o=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(o);var A=!1;e.on("close",(function(){A=!0})),void 0===n&&(n=r(91327)),n(e,{readable:t,writable:i},(function(e){if(e)return o(e);A=!0,o()}));var a=!1;return function(t){if(!A&&!a)return a=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?A:e.pop():A}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new o("streams");var s=t.map((function(e,r){var o=r<t.length-1;return a(e,o,r>0,(function(e){n||(n=e),e&&s.forEach(c),o||(s.forEach(c),i(n))}))}));return t.reduce(u)}},77433:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var o=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},49298:(e,t,r)=>{e.exports=r(92413)},86897:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):((t=e.exports=r(58020)).Stream=n||t,t.Readable=t,t.Writable=r(6729),t.Duplex=r(72434),t.Transform=r(54801),t.PassThrough=r(52444),t.finished=r(91327),t.pipeline=r(4939))},19476:(e,t,r)=>{"use strict";const n=r(4016);e.exports=(e={})=>new Promise((t,r)=>{const i=n.connect(e,()=>{e.resolveSocket?(i.off("error",r),t({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),t({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})},48491:(e,t,r)=>{"use strict";const n=r(92413).Readable,i=r(55737);e.exports=class extends n{constructor(e,t,r,n){if("number"!=typeof e)throw new TypeError("Argument `statusCode` should be a number");if("object"!=typeof t)throw new TypeError("Argument `headers` should be an object");if(!(r instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if("string"!=typeof n)throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=i(t),this.body=r,this.url=n}_read(){this.push(this.body),this.push(null)}}},3390:(e,t,r)=>{"use strict";const n=r(90834),i=r(76458);e.exports=n(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},2383:e=>{"use strict";e.exports=function(e){var t=new e,r=t;return{get:function(){var n=t;return n.next?t=n.next:(t=new e,r=t),n.next=null,n},release:function(e){r.next=e,r=e}}}},28855:(e,t,r)=>{"use strict";var n=r(61047),i=e.exports=function(e,t){return t=t||function(){},function(){var r=arguments,i=new Promise((function(t,i){var o=!1;const s=function(e){o&&console.warn("Run-async promise already resolved."),o=!0,t(e)};var A=!1;const a=function(e){A&&console.warn("Run-async promise already rejected."),A=!0,i(e)};var c=!1,u=!1,l=!1,h=e.apply({async:function(){return l?(console.warn("Run-async async() called outside a valid run-async context, callback will be ignored."),function(){}):(u&&console.warn("Run-async wrapped function (async) returned a promise.\nCalls to async() callback can have unexpected results."),c=!0,function(e,t){e?a(e):s(t)})}},Array.prototype.slice.call(r));c?n(h)&&console.warn("Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve."):n(h)?(u=!0,h.then(s,a)):s(h),l=!0}));return i.then(t.bind(null,null),t),i}};i.cb=function(e,t){return i((function(){var t=Array.prototype.slice.call(arguments);return t.length===e.length-1&&t.push(this.async()),e.apply(this,t)}),t)}},69078:e=>{e.exports=function(e,t){var r,n,i,o=!0;Array.isArray(e)?(r=[],n=e.length):(i=Object.keys(e),r={},n=i.length);function s(e){function n(){t&&t(e,r),t=null}o?process.nextTick(n):n()}function A(e,t,i){r[e]=i,(0==--n||t)&&s(t)}n?i?i.forEach((function(t){e[t]((function(e,r){A(t,e,r)}))})):e.forEach((function(e,t){e((function(e,r){A(t,e,r)}))})):s(null);o=!1}},86596:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Observable:()=>n.y,ConnectableObservable:()=>i.c,GroupedObservable:()=>o.T,observable:()=>s.L,Subject:()=>A.xQ,BehaviorSubject:()=>a.X,ReplaySubject:()=>c.t,AsyncSubject:()=>u.c,asapScheduler:()=>l.e,asyncScheduler:()=>h.P,queueScheduler:()=>g.c,animationFrameScheduler:()=>E,VirtualTimeScheduler:()=>I,VirtualAction:()=>m,Scheduler:()=>y.b,Subscription:()=>w.w,Subscriber:()=>B.L,Notification:()=>Q.P,NotificationKind:()=>Q.W,pipe:()=>v.z,noop:()=>D.Z,identity:()=>b.y,isObservable:()=>S,ArgumentOutOfRangeError:()=>k.W,EmptyError:()=>x.K,ObjectUnsubscribedError:()=>F.N,UnsubscriptionError:()=>M.B,TimeoutError:()=>N.W,bindCallback:()=>P,bindNodeCallback:()=>O,combineLatest:()=>J.aj,concat:()=>H.z,defer:()=>q.P,empty:()=>z.c,forkJoin:()=>X,from:()=>V.D,fromEvent:()=>ee,fromEventPattern:()=>te,generate:()=>re,iif:()=>ie,interval:()=>se,merge:()=>ae.T,never:()=>ue,of:()=>le.of,onErrorResumeNext:()=>he,pairs:()=>ge,partition:()=>Ee,race:()=>Ie.S3,range:()=>me,throwError:()=>we._,timer:()=>Be.H,using:()=>Qe,zip:()=>ve.$R,scheduled:()=>De.x,EMPTY:()=>z.E,NEVER:()=>ce,config:()=>be.v});var n=r(98789),i=r(24311),o=r(92564),s=r(68511),A=r(92915),a=r(14753),c=r(52493),u=r(73582),l=r(94097),h=r(59873),g=r(55031),f=r(36370),p=r(99944),d=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return f.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(cancelAnimationFrame(r),t.scheduled=void 0)},t}(p.o),C=r(43548),E=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n<i&&(e=r.shift()));if(this.active=!1,t){for(;++n<i&&(e=r.shift());)e.unsubscribe();throw t}},t}(C.v))(d),I=function(e){function t(t,r){void 0===t&&(t=m),void 0===r&&(r=Number.POSITIVE_INFINITY);var n=e.call(this,t,(function(){return n.frame}))||this;return n.maxFrames=r,n.frame=0,n.index=-1,n}return f.ZT(t,e),t.prototype.flush=function(){for(var e,t,r=this.actions,n=this.maxFrames;(t=r[0])&&t.delay<=n&&(r.shift(),this.frame=t.delay,!(e=t.execute(t.state,t.delay))););if(e){for(;t=r.shift();)t.unsubscribe();throw e}},t.frameTimeFactor=10,t}(C.v),m=function(e){function t(t,r,n){void 0===n&&(n=t.index+=1);var i=e.call(this,t,r)||this;return i.scheduler=t,i.work=r,i.index=n,i.active=!0,i.index=t.index=n,i}return f.ZT(t,e),t.prototype.schedule=function(r,n){if(void 0===n&&(n=0),!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var i=new t(this.scheduler,this.work);return this.add(i),i.schedule(r,n)},t.prototype.requestAsyncId=function(e,r,n){void 0===n&&(n=0),this.delay=e.frame+n;var i=e.actions;return i.push(this),i.sort(t.sortActions),!0},t.prototype.recycleAsyncId=function(e,t,r){void 0===r&&(r=0)},t.prototype._execute=function(t,r){if(!0===this.active)return e.prototype._execute.call(this,t,r)},t.sortActions=function(e,t){return e.delay===t.delay?e.index===t.index?0:e.index>t.index?1:-1:e.delay>t.delay?1:-1},t}(p.o),y=r(42476),w=r(73504),B=r(28732),Q=r(4094),v=r(97836),D=r(57781),b=r(80433);function S(e){return!!e&&(e instanceof n.y||"function"==typeof e.lift&&"function"==typeof e.subscribe)}var k=r(3551),x=r(30943),F=r(90265),M=r(43347),N=r(87299),R=r(98082),K=r(58880),L=r(47182),T=r(64986);function P(e,t,r){if(t){if(!(0,T.K)(t))return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return P(e,r).apply(void 0,n).pipe((0,R.U)((function(e){return(0,L.k)(e)?t.apply(void 0,e):t(e)})))};r=t}return function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var o,s=this,A={context:s,subject:o,callbackFunc:e,scheduler:r};return new n.y((function(n){if(r){var i={args:t,subscriber:n,params:A};return r.schedule(U,0,i)}if(!o){o=new u.c;try{e.apply(s,t.concat([function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];o.next(e.length<=1?e[0]:e),o.complete()}]))}catch(e){(0,K._)(o)?o.error(e):console.warn(e)}}return o.subscribe(n)}))}}function U(e){var t=this,r=e.args,n=e.subscriber,i=e.params,o=i.callbackFunc,s=i.context,A=i.scheduler,a=i.subject;if(!a){a=i.subject=new u.c;try{o.apply(s,r.concat([function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=e.length<=1?e[0]:e;t.add(A.schedule(_,0,{value:n,subject:a}))}]))}catch(e){a.error(e)}}this.add(a.subscribe(n))}function _(e){var t=e.value,r=e.subject;r.next(t),r.complete()}function O(e,t,r){if(t){if(!(0,T.K)(t))return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return O(e,r).apply(void 0,n).pipe((0,R.U)((function(e){return(0,L.k)(e)?t.apply(void 0,e):t(e)})))};r=t}return function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var o={subject:void 0,args:t,callbackFunc:e,scheduler:r,context:this};return new n.y((function(n){var i=o.context,s=o.subject;if(r)return r.schedule(j,0,{params:o,subscriber:n,context:i});if(!s){s=o.subject=new u.c;try{e.apply(i,t.concat([function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.shift();r?s.error(r):(s.next(e.length<=1?e[0]:e),s.complete())}]))}catch(e){(0,K._)(s)?s.error(e):console.warn(e)}}return s.subscribe(n)}))}}function j(e){var t=this,r=e.params,n=e.subscriber,i=e.context,o=r.callbackFunc,s=r.args,A=r.scheduler,a=r.subject;if(!a){a=r.subject=new u.c;try{o.apply(i,s.concat([function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=e.shift();if(n)t.add(A.schedule(G,0,{err:n,subject:a}));else{var i=e.length<=1?e[0]:e;t.add(A.schedule(Y,0,{value:i,subject:a}))}}]))}catch(e){this.add(A.schedule(G,0,{err:e,subject:a}))}}this.add(a.subscribe(n))}function Y(e){var t=e.value,r=e.subject;r.next(t),r.complete()}function G(e){var t=e.err;e.subject.error(t)}var J=r(20995),H=r(14023),q=r(58721),z=r(61775),W=r(29929),V=r(85861);function X(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(1===e.length){var r=e[0];if((0,L.k)(r))return Z(r,null);if((0,W.K)(r)&&Object.getPrototypeOf(r)===Object.prototype){var n=Object.keys(r);return Z(n.map((function(e){return r[e]})),n)}}if("function"==typeof e[e.length-1]){var i=e.pop();return Z(e=1===e.length&&(0,L.k)(e[0])?e[0]:e,null).pipe((0,R.U)((function(e){return i.apply(void 0,e)})))}return Z(e,null)}function Z(e,t){return new n.y((function(r){var n=e.length;if(0!==n)for(var i=new Array(n),o=0,s=0,A=function(A){var a=(0,V.D)(e[A]),c=!1;r.add(a.subscribe({next:function(e){c||(c=!0,s++),i[A]=e},error:function(e){return r.error(e)},complete:function(){++o!==n&&c||(s===n&&r.next(t?t.reduce((function(e,t,r){return e[t]=i[r],e}),{}):i),r.complete())}}))},a=0;a<n;a++)A(a);else r.complete()}))}var $=r(38394);function ee(e,t,r,i){return(0,$.m)(r)&&(i=r,r=void 0),i?ee(e,t,r).pipe((0,R.U)((function(e){return(0,L.k)(e)?i.apply(void 0,e):i(e)}))):new n.y((function(n){!function e(t,r,n,i,o){var s;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(t)){var A=t;t.addEventListener(r,n,o),s=function(){return A.removeEventListener(r,n,o)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(t)){var a=t;t.on(r,n),s=function(){return a.off(r,n)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(t)){var c=t;t.addListener(r,n),s=function(){return c.removeListener(r,n)}}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(var u=0,l=t.length;u<l;u++)e(t[u],r,n,i,o)}i.add(s)}(e,t,(function(e){arguments.length>1?n.next(Array.prototype.slice.call(arguments)):n.next(e)}),n,r)}))}function te(e,t,r){return r?te(e,t).pipe((0,R.U)((function(e){return(0,L.k)(e)?r.apply(void 0,e):r(e)}))):new n.y((function(r){var n,i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.next(1===e.length?e[0]:e)};try{n=e(i)}catch(e){return void r.error(e)}if((0,$.m)(t))return function(){return t(i,n)}}))}function re(e,t,r,i,o){var s,A;if(1==arguments.length){var a=e;A=a.initialState,t=a.condition,r=a.iterate,s=a.resultSelector||b.y,o=a.scheduler}else void 0===i||(0,T.K)(i)?(A=e,s=b.y,o=i):(A=e,s=i);return new n.y((function(e){var n=A;if(o)return o.schedule(ne,0,{subscriber:e,iterate:r,condition:t,resultSelector:s,state:n});for(;;){if(t){var i=void 0;try{i=t(n)}catch(t){return void e.error(t)}if(!i){e.complete();break}}var a=void 0;try{a=s(n)}catch(t){return void e.error(t)}if(e.next(a),e.closed)break;try{n=r(n)}catch(t){return void e.error(t)}}}))}function ne(e){var t=e.subscriber,r=e.condition;if(!t.closed){if(e.needIterate)try{e.state=e.iterate(e.state)}catch(e){return void t.error(e)}else e.needIterate=!0;if(r){var n=void 0;try{n=r(e.state)}catch(e){return void t.error(e)}if(!n)return void t.complete();if(t.closed)return}var i;try{i=e.resultSelector(e.state)}catch(e){return void t.error(e)}if(!t.closed&&(t.next(i),!t.closed))return this.schedule(e)}}function ie(e,t,r){return void 0===t&&(t=z.E),void 0===r&&(r=z.E),(0,q.P)((function(){return e()?t:r}))}var oe=r(23820);function se(e,t){return void 0===e&&(e=0),void 0===t&&(t=h.P),(!(0,oe.k)(e)||e<0)&&(e=0),t&&"function"==typeof t.schedule||(t=h.P),new n.y((function(r){return r.add(t.schedule(Ae,e,{subscriber:r,counter:0,period:e})),r}))}function Ae(e){var t=e.subscriber,r=e.counter,n=e.period;t.next(r),this.schedule({subscriber:t,counter:r+1,period:n},n)}var ae=r(80810),ce=new n.y(D.Z);function ue(){return ce}var le=r(29686);function he(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)return z.E;var r=e[0],i=e.slice(1);return 1===e.length&&(0,L.k)(r)?he.apply(void 0,r):new n.y((function(e){var t=function(){return e.add(he.apply(void 0,i).subscribe(e))};return(0,V.D)(r).subscribe({next:function(t){e.next(t)},error:t,complete:t})}))}function ge(e,t){return t?new n.y((function(r){var n=Object.keys(e),i=new w.w;return i.add(t.schedule(fe,0,{keys:n,index:0,subscriber:r,subscription:i,obj:e})),i})):new n.y((function(t){for(var r=Object.keys(e),n=0;n<r.length&&!t.closed;n++){var i=r[n];e.hasOwnProperty(i)&&t.next([i,e[i]])}t.complete()}))}function fe(e){var t=e.keys,r=e.index,n=e.subscriber,i=e.subscription,o=e.obj;if(!n.closed)if(r<t.length){var s=t[r];n.next([s,o[s]]),i.add(this.schedule({keys:t,index:r+1,subscriber:n,subscription:i,obj:o}))}else n.complete()}var pe=r(65868),de=r(92402),Ce=r(39063);function Ee(e,t,r){return[(0,Ce.h)(t,r)(new n.y((0,de.s)(e))),(0,Ce.h)((0,pe.f)(t,r))(new n.y((0,de.s)(e)))]}var Ie=r(2332);function me(e,t,r){return void 0===e&&(e=0),new n.y((function(n){void 0===t&&(t=e,e=0);var i=0,o=e;if(r)return r.schedule(ye,0,{index:i,count:t,start:e,subscriber:n});for(;;){if(i++>=t){n.complete();break}if(n.next(o++),n.closed)break}}))}function ye(e){var t=e.start,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t),i.closed||(e.index=r+1,e.start=t+1,this.schedule(e)))}var we=r(9491),Be=r(13028);function Qe(e,t){return new n.y((function(r){var n,i;try{n=e()}catch(e){return void r.error(e)}try{i=t(n)}catch(e){return void r.error(e)}var o=(i?(0,V.D)(i):z.E).subscribe(r);return function(){o.unsubscribe(),n&&n.unsubscribe()}}))}var ve=r(21336),De=r(14109),be=r(21894)},73582:(e,t,r)=>{"use strict";r.d(t,{c:()=>s});var n=r(36370),i=r(92915),o=r(73504),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.value=null,t.hasNext=!1,t.hasCompleted=!1,t}return n.ZT(t,e),t.prototype._subscribe=function(t){return this.hasError?(t.error(this.thrownError),o.w.EMPTY):this.hasCompleted&&this.hasNext?(t.next(this.value),t.complete(),o.w.EMPTY):e.prototype._subscribe.call(this,t)},t.prototype.next=function(e){this.hasCompleted||(this.value=e,this.hasNext=!0)},t.prototype.error=function(t){this.hasCompleted||e.prototype.error.call(this,t)},t.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&e.prototype.next.call(this,this.value),e.prototype.complete.call(this)},t}(i.xQ)},14753:(e,t,r)=>{"use strict";r.d(t,{X:()=>s});var n=r(36370),i=r(92915),o=r(90265),s=function(e){function t(t){var r=e.call(this)||this;return r._value=t,r}return n.ZT(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.N;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.xQ)},28907:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(36370),i=function(e){function t(t,r,n){var i=e.call(this)||this;return i.parent=t,i.outerValue=r,i.outerIndex=n,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(r(28732).L)},4094:(e,t,r)=>{"use strict";r.d(t,{W:()=>n,P:()=>A});var n,i=r(61775),o=r(29686),s=r(9491);n||(n={});var A=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return(0,o.of)(this.value);case"E":return(0,s._)(this.error);case"C":return(0,i.c)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}()},98789:(e,t,r)=>{"use strict";r.d(t,{y:()=>u});var n=r(58880),i=r(28732),o=r(92515),s=r(32103);var A=r(68511),a=r(97836),c=r(21894),u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,A=function(e,t,r){if(e){if(e instanceof i.L)return e;if(e[o.b])return e[o.b]()}return e||t||r?new i.L(e,t,r):new i.L(s.c)}(e,t,r);if(n?A.add(n.call(A,this.source)):A.add(this.source||c.v.useDeprecatedSynchronousErrorHandling&&!A.syncErrorThrowable?this._subscribe(A):this._trySubscribe(A)),c.v.useDeprecatedSynchronousErrorHandling&&A.syncErrorThrowable&&(A.syncErrorThrowable=!1,A.syncErrorThrown))throw A.syncErrorValue;return A},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){c.v.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),(0,n._)(e)?e.error(t):console.warn(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=l(t))((function(t,n){var i;i=r.subscribe((function(t){try{e(t)}catch(e){n(e),i&&i.unsubscribe()}}),n,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[A.L]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:(0,a.U)(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=l(e))((function(e,r){var n;t.subscribe((function(e){return n=e}),(function(e){return r(e)}),(function(){return e(n)}))}))},e.create=function(t){return new e(t)},e}();function l(e){if(e||(e=c.v.Promise||Promise),!e)throw new Error("no Promise impl found");return e}},32103:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(21894),i=r(13109),o={closed:!0,next:function(e){},error:function(e){if(n.v.useDeprecatedSynchronousErrorHandling)throw e;(0,i.z)(e)},complete:function(){}}},20242:(e,t,r)=>{"use strict";r.d(t,{L:()=>i});var n=r(36370),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(r(28732).L)},52493:(e,t,r)=>{"use strict";r.d(t,{t:()=>u});var n=r(36370),i=r(92915),o=r(55031),s=r(73504),A=r(32746),a=r(90265),c=r(73066),u=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=n,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=r<1?1:r,r===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return n.ZT(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var r=this._events;r.push(t),r.length>this._bufferSize&&r.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new l(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._infiniteTimeWindow,n=r?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=n.length;if(this.closed)throw new a.N;if(this.isStopped||this.hasError?t=s.w.EMPTY:(this.observers.push(e),t=new c.W(this,e)),i&&e.add(e=new A.ht(e,i)),r)for(var u=0;u<o&&!e.closed;u++)e.next(n[u]);else for(u=0;u<o&&!e.closed;u++)e.next(n[u].value);return this.hasError?e.error(this.thrownError):this.isStopped&&e.complete(),t},t.prototype._getNow=function(){return(this.scheduler||o.c).now()},t.prototype._trimBufferThenGetEvents=function(){for(var e=this._getNow(),t=this._bufferSize,r=this._windowTime,n=this._events,i=n.length,o=0;o<i&&!(e-n[o].time<r);)o++;return i>t&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.xQ),l=function(){return function(e,t){this.time=e,this.value=t}}()},42476:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=function(){return Date.now()},e}()},92915:(e,t,r)=>{"use strict";r.d(t,{Yc:()=>u,xQ:()=>l});var n=r(36370),i=r(98789),o=r(28732),s=r(73504),A=r(90265),a=r(73066),c=r(92515),u=function(e){function t(t){var r=e.call(this,t)||this;return r.destination=t,r}return n.ZT(t,e),t}(o.L),l=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return n.ZT(t,e),t.prototype[c.b]=function(){return new u(this)},t.prototype.lift=function(e){var t=new h(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new A.N;if(!this.isStopped)for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].next(e)},t.prototype.error=function(e){if(this.closed)throw new A.N;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].error(e);this.observers.length=0},t.prototype.complete=function(){if(this.closed)throw new A.N;this.isStopped=!0;for(var e=this.observers,t=e.length,r=e.slice(),n=0;n<t;n++)r[n].complete();this.observers.length=0},t.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},t.prototype._trySubscribe=function(t){if(this.closed)throw new A.N;return e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){if(this.closed)throw new A.N;return this.hasError?(e.error(this.thrownError),s.w.EMPTY):this.isStopped?(e.complete(),s.w.EMPTY):(this.observers.push(e),new a.W(this,e))},t.prototype.asObservable=function(){var e=new i.y;return e.source=this,e},t.create=function(e,t){return new h(e,t)},t}(i.y),h=function(e){function t(t,r){var n=e.call(this)||this;return n.destination=t,n.source=r,n}return n.ZT(t,e),t.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},t.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},t.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},t.prototype._subscribe=function(e){return this.source?this.source.subscribe(e):s.w.EMPTY},t}(l)},73066:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this)||this;return n.subject=t,n.subscriber=r,n.closed=!1,n}return n.ZT(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(r(73504).w)},28732:(e,t,r)=>{"use strict";r.d(t,{L:()=>u});var n=r(36370),i=r(38394),o=r(32103),s=r(73504),A=r(92515),a=r(21894),c=r(13109),u=function(e){function t(r,n,i){var s=e.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.c;break;case 1:if(!r){s.destination=o.c;break}if("object"==typeof r){r instanceof t?(s.syncErrorThrowable=r.syncErrorThrowable,s.destination=r,r.add(s)):(s.syncErrorThrowable=!0,s.destination=new l(s,r));break}default:s.syncErrorThrowable=!0,s.destination=new l(s,r,n,i)}return s}return n.ZT(t,e),t.prototype[A.b]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(s.w),l=function(e){function t(t,r,n,s){var A,a=e.call(this)||this;a._parentSubscriber=t;var c=a;return(0,i.m)(r)?A=r:r&&(A=r.next,n=r.error,s=r.complete,r!==o.c&&(c=Object.create(r),(0,i.m)(c.unsubscribe)&&a.add(c.unsubscribe.bind(c)),c.unsubscribe=a.unsubscribe.bind(a))),a._context=c,a._next=A,a._error=n,a._complete=s,a}return n.ZT(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,r=a.v.useDeprecatedSynchronousErrorHandling;if(this._error)r&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)r?(t.syncErrorValue=e,t.syncErrorThrown=!0):(0,c.z)(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;(0,c.z)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),a.v.useDeprecatedSynchronousErrorHandling)throw e;(0,c.z)(e)}},t.prototype.__tryOrSetError=function(e,t,r){if(!a.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,r)}catch(t){return a.v.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):((0,c.z)(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},73504:(e,t,r)=>{"use strict";r.d(t,{w:()=>A});var n=r(47182),i=r(29929),o=r(38394),s=r(43347),A=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var r=this._parentOrParents,A=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var u=0;u<r.length;++u){r[u].remove(this)}if((0,o.m)(A))try{A.call(this)}catch(e){t=e instanceof s.B?a(e.errors):[e]}if((0,n.k)(c)){u=-1;for(var l=c.length;++u<l;){var h=c[u];if((0,i.K)(h))try{h.unsubscribe()}catch(e){t=t||[],e instanceof s.B?t=t.concat(a(e.errors)):t.push(e)}}}if(t)throw new s.B(t)}},e.prototype.add=function(t){var r=t;if(!t)return e.EMPTY;switch(typeof t){case"function":r=new e(t);case"object":if(r===this||r.closed||"function"!=typeof r.unsubscribe)return r;if(this.closed)return r.unsubscribe(),r;if(!(r instanceof e)){var n=r;(r=new e)._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var i=r._parentOrParents;if(null===i)r._parentOrParents=this;else if(i instanceof e){if(i===this)return r;r._parentOrParents=[i,this]}else{if(-1!==i.indexOf(this))return r;i.push(this)}var o=this._subscriptions;return null===o?this._subscriptions=[r]:o.push(r),r},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)}},e.EMPTY=((t=new e).closed=!0,t),e}();function a(e){return e.reduce((function(e,t){return e.concat(t instanceof s.B?t.errors:t)}),[])}},21894:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;n=e},get useDeprecatedSynchronousErrorHandling(){return n}}},24311:(e,t,r)=>{"use strict";r.d(t,{c:()=>c,N:()=>u});var n=r(36370),i=r(92915),o=r(98789),s=r(28732),A=r(73504),a=r(97566),c=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subjectFactory=r,n._refCount=0,n._isComplete=!1,n}return n.ZT(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new A.w).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed&&(this._connection=null,e=A.w.EMPTY)),e},t.prototype.refCount=function(){return(0,a.x)()(this)},t}(o.y),u=function(){var e=c.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),l=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.Yc);s.L},20995:(e,t,r)=>{"use strict";r.d(t,{aj:()=>u,Ms:()=>l});var n=r(36370),i=r(64986),o=r(47182),s=r(20242),A=r(93590),a=r(56329),c={};function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=null,n=null;return(0,i.K)(e[e.length-1])&&(n=e.pop()),"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&(0,o.k)(e[0])&&(e=e[0]),(0,a.n)(e,n).lift(new l(r))}var l=function(){function e(e){this.resultSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.resultSelector))},e}(),h=function(e){function t(t,r){var n=e.call(this,t)||this;return n.resultSelector=r,n.active=0,n.values=[],n.observables=[],n}return n.ZT(t,e),t.prototype._next=function(e){this.values.push(c),this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var r=0;r<t;r++){var n=e[r];this.add((0,A.D)(this,n,n,r))}}},t.prototype.notifyComplete=function(e){0==(this.active-=1)&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.values,s=o[r],A=this.toRespond?s===c?--this.toRespond:this.toRespond:0;o[r]=t,0===A&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))},t.prototype._tryResultSelector=function(e){var t;try{t=this.resultSelector.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.L)},14023:(e,t,r)=>{"use strict";r.d(t,{z:()=>o});var n=r(29686),i=r(37339);function o(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return(0,i.u)()(n.of.apply(void 0,e))}},58721:(e,t,r)=>{"use strict";r.d(t,{P:()=>s});var n=r(98789),i=r(85861),o=r(61775);function s(e){return new n.y((function(t){var r;try{r=e()}catch(e){return void t.error(e)}return(r?(0,i.D)(r):(0,o.c)()).subscribe(t)}))}},61775:(e,t,r)=>{"use strict";r.d(t,{E:()=>i,c:()=>o});var n=r(98789),i=new n.y((function(e){return e.complete()}));function o(e){return e?function(e){return new n.y((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},85861:(e,t,r)=>{"use strict";r.d(t,{D:()=>s});var n=r(98789),i=r(92402),o=r(14109);function s(e,t){return t?(0,o.x)(e,t):e instanceof n.y?e:new n.y((0,i.s)(e))}},56329:(e,t,r)=>{"use strict";r.d(t,{n:()=>s});var n=r(98789),i=r(22335),o=r(59430);function s(e,t){return t?(0,o.r)(e,t):new n.y((0,i.V)(e))}},80810:(e,t,r)=>{"use strict";r.d(t,{T:()=>A});var n=r(98789),i=r(64986),o=r(66852),s=r(56329);function A(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=Number.POSITIVE_INFINITY,A=null,a=e[e.length-1];return(0,i.K)(a)?(A=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof a&&(r=e.pop()),null===A&&1===e.length&&e[0]instanceof n.y?e[0]:(0,o.J)(r)((0,s.n)(e,A))}},29686:(e,t,r)=>{"use strict";r.d(t,{of:()=>s});var n=r(64986),i=r(56329),o=r(59430);function s(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return(0,n.K)(r)?(e.pop(),(0,o.r)(e,r)):(0,i.n)(e)}},2332:(e,t,r)=>{"use strict";r.d(t,{S3:()=>a});var n=r(36370),i=r(47182),o=r(56329),s=r(20242),A=r(93590);function a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(1===e.length){if(!(0,i.k)(e[0]))return e[0];e=e[0]}return(0,o.n)(e,void 0).lift(new c)}var c=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new u(e))},e}(),u=function(e){function t(t){var r=e.call(this,t)||this;return r.hasFirst=!1,r.observables=[],r.subscriptions=[],r}return n.ZT(t,e),t.prototype._next=function(e){this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{for(var r=0;r<t&&!this.hasFirst;r++){var n=e[r],i=(0,A.D)(this,n,n,r);this.subscriptions&&this.subscriptions.push(i),this.add(i)}this.observables=null}},t.prototype.notifyNext=function(e,t,r,n,i){if(!this.hasFirst){this.hasFirst=!0;for(var o=0;o<this.subscriptions.length;o++)if(o!==r){var s=this.subscriptions[o];s.unsubscribe(),this.remove(s)}this.subscriptions=null}this.destination.next(t)},t}(s.L)},9491:(e,t,r)=>{"use strict";r.d(t,{_:()=>i});var n=r(98789);function i(e,t){return t?new n.y((function(r){return t.schedule(o,0,{error:e,subscriber:r})})):new n.y((function(t){return t.error(e)}))}function o(e){var t=e.error;e.subscriber.error(t)}},13028:(e,t,r)=>{"use strict";r.d(t,{H:()=>A});var n=r(98789),i=r(59873),o=r(23820),s=r(64986);function A(e,t,r){void 0===e&&(e=0);var A=-1;return(0,o.k)(t)?A=Number(t)<1?1:Number(t):(0,s.K)(t)&&(r=t),(0,s.K)(r)||(r=i.P),new n.y((function(t){var n=(0,o.k)(e)?e:+e-r.now();return r.schedule(a,n,{index:0,period:A,subscriber:t})}))}function a(e){var t=e.index,r=e.period,n=e.subscriber;if(n.next(t),!n.closed){if(-1===r)return n.complete();e.index=t+1,this.schedule(e,r)}}},21336:(e,t,r)=>{"use strict";r.d(t,{$R:()=>u,mx:()=>l});var n=r(36370),i=r(56329),o=r(47182),s=r(28732),A=r(20242),a=r(93590),c=r(8094);function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return"function"==typeof r&&e.pop(),(0,i.n)(e,void 0).lift(new l(r))}var l=function(){function e(e){this.resultSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.resultSelector))},e}(),h=function(e){function t(t,r,n){void 0===n&&(n=Object.create(null));var i=e.call(this,t)||this;return i.iterators=[],i.active=0,i.resultSelector="function"==typeof r?r:null,i.values=n,i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.iterators;(0,o.k)(e)?t.push(new f(e)):"function"==typeof e[c.hZ]?t.push(new g(e[c.hZ]())):t.push(new p(this.destination,this,e))},t.prototype._complete=function(){var e=this.iterators,t=e.length;if(this.unsubscribe(),0!==t){this.active=t;for(var r=0;r<t;r++){var n=e[r];if(n.stillUnsubscribed)this.destination.add(n.subscribe(n,r));else this.active--}}else this.destination.complete()},t.prototype.notifyInactive=function(){this.active--,0===this.active&&this.destination.complete()},t.prototype.checkIterators=function(){for(var e=this.iterators,t=e.length,r=this.destination,n=0;n<t;n++){if("function"==typeof(s=e[n]).hasValue&&!s.hasValue())return}var i=!1,o=[];for(n=0;n<t;n++){var s,A=(s=e[n]).next();if(s.hasCompleted()&&(i=!0),A.done)return void r.complete();o.push(A.value)}this.resultSelector?this._tryresultSelector(o):r.next(o),i&&r.complete()},t.prototype._tryresultSelector=function(e){var t;try{t=this.resultSelector.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.L),g=function(){function e(e){this.iterator=e,this.nextResult=e.next()}return e.prototype.hasValue=function(){return!0},e.prototype.next=function(){var e=this.nextResult;return this.nextResult=this.iterator.next(),e},e.prototype.hasCompleted=function(){var e=this.nextResult;return e&&e.done},e}(),f=function(){function e(e){this.array=e,this.index=0,this.length=0,this.length=e.length}return e.prototype[c.hZ]=function(){return this},e.prototype.next=function(e){var t=this.index++,r=this.array;return t<this.length?{value:r[t],done:!1}:{value:null,done:!0}},e.prototype.hasValue=function(){return this.array.length>this.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),p=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.parent=r,i.observable=n,i.stillUnsubscribed=!0,i.buffer=[],i.isComplete=!1,i}return n.ZT(t,e),t.prototype[c.hZ]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return(0,a.D)(this,this.observable,this,t)},t}(A.L)},37339:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(66852);function i(){return(0,n.J)(1)}},39063:(e,t,r)=>{"use strict";r.d(t,{h:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.predicate,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.thisArg=n,i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.L)},92564:(e,t,r)=>{"use strict";r.d(t,{v:()=>a,T:()=>h});var n=r(36370),i=r(28732),o=r(73504),s=r(98789),A=r(92915);function a(e,t,r,n){return function(i){return i.lift(new c(e,t,r,n))}}var c=function(){function e(e,t,r,n){this.keySelector=e,this.elementSelector=t,this.durationSelector=r,this.subjectSelector=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},e}(),u=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.keySelector=r,s.elementSelector=n,s.durationSelector=i,s.subjectSelector=o,s.groups=null,s.attemptedToUnsubscribe=!1,s.count=0,s}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.keySelector(e)}catch(e){return void this.error(e)}this._group(e,t)},t.prototype._group=function(e,t){var r=this.groups;r||(r=this.groups=new Map);var n,i=r.get(t);if(this.elementSelector)try{n=this.elementSelector(e)}catch(e){this.error(e)}else n=e;if(!i){i=this.subjectSelector?this.subjectSelector():new A.xQ,r.set(t,i);var o=new h(t,i,this);if(this.destination.next(o),this.durationSelector){var s=void 0;try{s=this.durationSelector(new h(t,i))}catch(e){return void this.error(e)}this.add(s.subscribe(new l(t,i,this)))}}i.closed||i.next(n)},t.prototype._error=function(e){var t=this.groups;t&&(t.forEach((function(t,r){t.error(e)})),t.clear()),this.destination.error(e)},t.prototype._complete=function(){var e=this.groups;e&&(e.forEach((function(e,t){e.complete()})),e.clear()),this.destination.complete()},t.prototype.removeGroup=function(e){this.groups.delete(e)},t.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&e.prototype.unsubscribe.call(this))},t}(i.L),l=function(e){function t(t,r,n){var i=e.call(this,r)||this;return i.key=t,i.group=r,i.parent=n,i}return n.ZT(t,e),t.prototype._next=function(e){this.complete()},t.prototype._unsubscribe=function(){var e=this.parent,t=this.key;this.key=this.parent=null,e&&e.removeGroup(t)},t}(i.L),h=function(e){function t(t,r,n){var i=e.call(this)||this;return i.key=t,i.groupSubject=r,i.refCountSubscription=n,i}return n.ZT(t,e),t.prototype._subscribe=function(e){var t=new o.w,r=this.refCountSubscription,n=this.groupSubject;return r&&!r.closed&&t.add(new g(r)),t.add(n.subscribe(e)),t},t}(s.y),g=function(e){function t(t){var r=e.call(this)||this;return r.parent=t,t.count++,r}return n.ZT(t,e),t.prototype.unsubscribe=function(){var t=this.parent;t.closed||this.closed||(e.prototype.unsubscribe.call(this),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())},t}(o.w)},98082:(e,t,r)=>{"use strict";r.d(t,{U:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.project,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.project=r,i.count=0,i.thisArg=n||i,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L)},66852:(e,t,r)=>{"use strict";r.d(t,{J:()=>o});var n=r(20259),i=r(80433);function o(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),(0,n.zg)(i.y,e)}},20259:(e,t,r)=>{"use strict";r.d(t,{zg:()=>c});var n=r(36370),i=r(93590),o=r(20242),s=r(28907),A=r(98082),a=r(85861);function c(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?function(n){return n.pipe(c((function(r,n){return(0,a.D)(e(r,n)).pipe((0,A.U)((function(e,i){return t(r,e,n,i)})))}),r))}:("number"==typeof t&&(r=t),function(t){return t.lift(new u(e,r))})}var u=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))},e}(),l=function(e){function t(t,r,n){void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this,t)||this;return i.project=r,i.concurrent=n,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=new s.d(this,t,r),o=this.destination;o.add(n);var A=(0,i.D)(this,e,void 0,void 0,n);A!==n&&o.add(A)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.L)},32746:(e,t,r)=>{"use strict";r.d(t,{QV:()=>s,ht:()=>a});var n=r(36370),i=r(28732),o=r(4094);function s(e,t){return void 0===t&&(t=0),function(r){return r.lift(new A(e,t))}}var A=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.scheduler,this.delay))},e}(),a=function(e){function t(t,r,n){void 0===n&&(n=0);var i=e.call(this,t)||this;return i.scheduler=r,i.delay=n,i}return n.ZT(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.P.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.P.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(o.P.createComplete()),this.unsubscribe()},t}(i.L),c=function(){return function(e,t){this.notification=e,this.destination=t}}()},97566:(e,t,r)=>{"use strict";r.d(t,{x:()=>o});var n=r(36370),i=r(28732);function o(){return function(e){return e.lift(new s(e))}}var s=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new A(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),A=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.L)},59430:(e,t,r)=>{"use strict";r.d(t,{r:()=>o});var n=r(98789),i=r(73504);function o(e,t){return new n.y((function(r){var n=new i.w,o=0;return n.add(t.schedule((function(){o!==e.length?(r.next(e[o++]),r.closed||n.add(this.schedule())):r.complete()}))),n}))}},14109:(e,t,r)=>{"use strict";r.d(t,{x:()=>u});var n=r(98789),i=r(73504),o=r(68511);var s=r(59430),A=r(8094);var a=r(79886),c=r(61997);function u(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[o.L]}(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){var i=e[o.L]();n.add(i.subscribe({next:function(e){n.add(t.schedule((function(){return r.next(e)})))},error:function(e){n.add(t.schedule((function(){return r.error(e)})))},complete:function(){n.add(t.schedule((function(){return r.complete()})))}}))}))),n}))}(e,t);if((0,a.t)(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){return e.then((function(e){n.add(t.schedule((function(){r.next(e),n.add(t.schedule((function(){return r.complete()})))})))}),(function(e){n.add(t.schedule((function(){return r.error(e)})))}))}))),n}))}(e,t);if((0,c.z)(e))return(0,s.r)(e,t);if(function(e){return e&&"function"==typeof e[A.hZ]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new n.y((function(r){var n,o=new i.w;return o.add((function(){n&&"function"==typeof n.return&&n.return()})),o.add(t.schedule((function(){n=e[A.hZ](),o.add(t.schedule((function(){if(!r.closed){var e,t;try{var i=n.next();e=i.value,t=i.done}catch(e){return void r.error(e)}t?r.complete():(r.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}},99944:(e,t,r)=>{"use strict";r.d(t,{o:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n.pending=!1,n}return n.ZT(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(n,this.id,t),this},t.prototype.requestAsyncId=function(e,t,r){return void 0===r&&(r=0),setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,t,r){if(void 0===r&&(r=0),null!==r&&this.delay===r&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var r=!1,n=void 0;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,r=t.actions,n=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==n&&r.splice(n,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,r){return e.call(this)||this}return n.ZT(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(r(73504).w))},43548:(e,t,r)=>{"use strict";r.d(t,{v:()=>o});var n=r(36370),i=r(42476),o=function(e){function t(r,n){void 0===n&&(n=i.b.now);var o=e.call(this,r,(function(){return t.delegate&&t.delegate!==o?t.delegate.now():n()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return n.ZT(t,e),t.prototype.schedule=function(r,n,i){return void 0===n&&(n=0),t.delegate&&t.delegate!==this?t.delegate.schedule(r,n,i):e.prototype.schedule.call(this,r,n,i)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}},t}(i.b)},94097:(e,t,r)=>{"use strict";r.d(t,{e:()=>l});var n=r(36370),i=1,o=function(){return Promise.resolve()}(),s={};function A(e){return e in s&&(delete s[e],!0)}var a=function(e){var t=i++;return s[t]=!0,o.then((function(){return A(t)&&e()})),t},c=function(e){A(e)},u=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=a(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(c(r),t.scheduled=void 0)},t}(r(99944).o),l=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n<i&&(e=r.shift()));if(this.active=!1,t){for(;++n<i&&(e=r.shift());)e.unsubscribe();throw t}},t}(r(43548).v))(u)},59873:(e,t,r)=>{"use strict";r.d(t,{P:()=>i});var n=r(99944),i=new(r(43548).v)(n.o)},55031:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.schedule=function(t,r){return void 0===r&&(r=0),r>0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(r(99944).o),o=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t}(r(43548).v))(i)},8094:(e,t,r)=>{"use strict";function n(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}r.d(t,{hZ:()=>i});var i=n()},68511:(e,t,r)=>{"use strict";r.d(t,{L:()=>n});var n=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},92515:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},3551:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}()},30943:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});var n=function(){function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e}()},90265:(e,t,r)=>{"use strict";r.d(t,{N:()=>n});var n=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},87299:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}()},43347:(e,t,r)=>{"use strict";r.d(t,{B:()=>n});var n=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n  "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}()},58880:(e,t,r)=>{"use strict";r.d(t,{_:()=>i});var n=r(28732);function i(e){for(;e;){var t=e,r=t.closed,i=t.destination,o=t.isStopped;if(r||o)return!1;e=i&&i instanceof n.L?i:null}return!0}},13109:(e,t,r)=>{"use strict";function n(e){setTimeout((function(){throw e}),0)}r.d(t,{z:()=>n})},80433:(e,t,r)=>{"use strict";function n(e){return e}r.d(t,{y:()=>n})},47182:(e,t,r)=>{"use strict";r.d(t,{k:()=>n});var n=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}()},61997:(e,t,r)=>{"use strict";r.d(t,{z:()=>n});var n=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e}},38394:(e,t,r)=>{"use strict";function n(e){return"function"==typeof e}r.d(t,{m:()=>n})},23820:(e,t,r)=>{"use strict";r.d(t,{k:()=>i});var n=r(47182);function i(e){return!(0,n.k)(e)&&e-parseFloat(e)+1>=0}},29929:(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e}r.d(t,{K:()=>n})},79886:(e,t,r)=>{"use strict";function n(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}r.d(t,{t:()=>n})},64986:(e,t,r)=>{"use strict";function n(e){return e&&"function"==typeof e.schedule}r.d(t,{K:()=>n})},57781:(e,t,r)=>{"use strict";function n(){}r.d(t,{Z:()=>n})},65868:(e,t,r)=>{"use strict";function n(e,t){function r(){return!r.pred.apply(r.thisArg,arguments)}return r.pred=e,r.thisArg=t,r}r.d(t,{f:()=>n})},97836:(e,t,r)=>{"use strict";r.d(t,{z:()=>i,U:()=>o});var n=r(57781);function i(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o(e)}function o(e){return e?1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}:n.Z}},92402:(e,t,r)=>{"use strict";r.d(t,{s:()=>u});var n=r(22335),i=r(13109),o=r(8094),s=r(68511),A=r(61997),a=r(79886),c=r(29929),u=function(e){if(e&&"function"==typeof e[s.L])return u=e,function(e){var t=u[s.L]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if((0,A.z)(e))return(0,n.V)(e);if((0,a.t)(e))return r=e,function(e){return r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.z),e};if(e&&"function"==typeof e[o.hZ])return t=e,function(e){for(var r=t[o.hZ]();;){var n=r.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return"function"==typeof r.return&&e.add((function(){r.return&&r.return()})),e};var t,r,u,l=(0,c.K)(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+l+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},22335:(e,t,r)=>{"use strict";r.d(t,{V:()=>n});var n=function(e){return function(t){for(var r=0,n=e.length;r<n&&!t.closed;r++)t.next(e[r]);t.complete()}}},93590:(e,t,r)=>{"use strict";r.d(t,{D:()=>s});var n=r(28907),i=r(92402),o=r(98789);function s(e,t,r,s,A){if(void 0===A&&(A=new n.d(e,r,s)),!A.closed)return t instanceof o.y?t.subscribe(A):(0,i.s)(t)(A)}},20683:(e,t,r)=>{"use strict";r.r(t),r.d(t,{audit:()=>s,auditTime:()=>l,buffer:()=>h,bufferCount:()=>d,bufferTime:()=>y,bufferToggle:()=>k,bufferWhen:()=>M,catchError:()=>L,combineAll:()=>_,combineLatest:()=>Y,concat:()=>J,concatAll:()=>H.u,concatMap:()=>z,concatMapTo:()=>W,count:()=>V,debounce:()=>$,debounceTime:()=>re,defaultIfEmpty:()=>se,delay:()=>le,delayWhen:()=>de,dematerialize:()=>ye,distinct:()=>Qe,distinctUntilChanged:()=>be,distinctUntilKeyChanged:()=>xe,elementAt:()=>je,endWith:()=>Ge,every:()=>Je,exhaust:()=>ze,exhaustMap:()=>Ze,expand:()=>tt,filter:()=>Me.h,finalize:()=>it,find:()=>At,findIndex:()=>ut,first:()=>ht,groupBy:()=>gt.v,ignoreElements:()=>ft,isEmpty:()=>Ct,last:()=>Bt,map:()=>Xe.U,mapTo:()=>Qt,materialize:()=>bt,max:()=>Kt,merge:()=>Tt,mergeAll:()=>Pt.J,mergeMap:()=>q.zg,flatMap:()=>q.zg,mergeMapTo:()=>Ut,mergeScan:()=>_t,min:()=>Yt,multicast:()=>Jt,observeOn:()=>qt.QV,onErrorResumeNext:()=>zt,pairwise:()=>Xt,partition:()=>tr,pluck:()=>rr,publish:()=>or,publishBehavior:()=>Ar,publishLast:()=>cr,publishReplay:()=>lr,race:()=>gr,reduce:()=>Rt,repeat:()=>fr,repeatWhen:()=>Cr,retry:()=>mr,retryWhen:()=>Br,refCount:()=>Dr.x,sample:()=>br,sampleTime:()=>xr,scan:()=>xt,sequenceEqual:()=>Rr,share:()=>Ur,shareReplay:()=>_r,single:()=>Or,skip:()=>Gr,skipLast:()=>qr,skipUntil:()=>Vr,skipWhile:()=>$r,startWith:()=>rn,subscribeOn:()=>An,switchAll:()=>hn,switchMap:()=>cn,switchMapTo:()=>gn,take:()=>Ue,takeLast:()=>mt,takeUntil:()=>fn,takeWhile:()=>Cn,tap:()=>wn,throttle:()=>Dn,throttleTime:()=>kn,throwIfEmpty:()=>Re,timeInterval:()=>Rn,timeout:()=>On,timeoutWith:()=>Tn,timestamp:()=>jn,toArray:()=>Jn,window:()=>Hn,windowCount:()=>Wn,windowTime:()=>Zn,windowToggle:()=>oi,windowWhen:()=>ai,withLatestFrom:()=>li,zip:()=>pi,zipAll:()=>di});var n=r(36370),i=r(20242),o=r(93590);function s(e){return function(t){return t.lift(new A(e))}}var A=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.durationSelector))},e}(),a=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=void 0;try{t=(0,this.durationSelector)(e)}catch(e){return this.destination.error(e)}var r=(0,o.D)(this,t);!r||r.closed?this.clearThrottle():this.add(this.throttled=r)}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(i.L),c=r(59873),u=r(13028);function l(e,t){return void 0===t&&(t=c.P),s((function(){return(0,u.H)(e,t)}))}function h(e){return function(t){return t.lift(new g(e))}}var g=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new f(e,this.closingNotifier))},e}(),f=function(e){function t(t,r){var n=e.call(this,t)||this;return n.buffer=[],n.add((0,o.D)(n,r)),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.L),p=r(28732);function d(e,t){return void 0===t&&(t=null),function(r){return r.lift(new C(e,t))}}var C=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?I:E}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),E=function(e){function t(t,r){var n=e.call(this,t)||this;return n.bufferSize=r,n.buffer=[],n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(p.L),I=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.bufferSize=r,i.startBufferEvery=n,i.buffers=[],i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var s=n[o];s.push(e),s.length===t&&(n.splice(o,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(p.L),m=r(64986);function y(e){var t=arguments.length,r=c.P;(0,m.K)(arguments[arguments.length-1])&&(r=arguments[arguments.length-1],t--);var n=null;t>=2&&(n=arguments[1]);var i=Number.POSITIVE_INFINITY;return t>=3&&(i=arguments[2]),function(t){return t.lift(new w(e,n,i,r))}}var w=function(){function e(e,t,r,n){this.bufferTimeSpan=e,this.bufferCreationInterval=t,this.maxBufferSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Q(e,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},e}(),B=function(){return function(){this.buffer=[]}}(),Q=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.bufferTimeSpan=r,s.bufferCreationInterval=n,s.maxBufferSize=i,s.scheduler=o,s.contexts=[];var A=s.openContext();if(s.timespanOnly=null==n||n<0,s.timespanOnly){var a={subscriber:s,context:A,bufferTimeSpan:r};s.add(A.closeAction=o.schedule(v,r,a))}else{var c={subscriber:s,context:A},u={bufferTimeSpan:r,bufferCreationInterval:n,subscriber:s,scheduler:o};s.add(A.closeAction=o.schedule(b,r,c)),s.add(o.schedule(D,n,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t,r=this.contexts,n=r.length,i=0;i<n;i++){var o=r[i],s=o.buffer;s.push(e),s.length==this.maxBufferSize&&(t=o)}t&&this.onBufferFull(t)},t.prototype._error=function(t){this.contexts.length=0,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts,r=this.destination;t.length>0;){var n=t.shift();r.next(n.buffer)}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.contexts=null},t.prototype.onBufferFull=function(e){this.closeContext(e);var t=e.closeAction;if(t.unsubscribe(),this.remove(t),!this.closed&&this.timespanOnly){e=this.openContext();var r=this.bufferTimeSpan,n={subscriber:this,context:e,bufferTimeSpan:r};this.add(e.closeAction=this.scheduler.schedule(v,r,n))}},t.prototype.openContext=function(){var e=new B;return this.contexts.push(e),e},t.prototype.closeContext=function(e){this.destination.next(e.buffer);var t=this.contexts;(t?t.indexOf(e):-1)>=0&&t.splice(t.indexOf(e),1)},t}(p.L);function v(e){var t=e.subscriber,r=e.context;r&&t.closeContext(r),t.closed||(e.context=t.openContext(),e.context.closeAction=this.schedule(e,e.bufferTimeSpan))}function D(e){var t=e.bufferCreationInterval,r=e.bufferTimeSpan,n=e.subscriber,i=e.scheduler,o=n.openContext();n.closed||(n.add(o.closeAction=i.schedule(b,r,{subscriber:n,context:o})),this.schedule(e,t))}function b(e){var t=e.subscriber,r=e.context;t.closeContext(r)}var S=r(73504);function k(e,t){return function(r){return r.lift(new x(e,t))}}var x=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new F(e,this.openings,this.closingSelector))},e}(),F=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add((0,o.D)(i,r)),i}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.contexts,r=t.length,n=0;n<r;n++)t[n].buffer.push(e)},t.prototype._error=function(t){for(var r=this.contexts;r.length>0;){var n=r.shift();n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts;t.length>0;){var r=t.shift();this.destination.next(r.buffer),r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){e?this.closeBuffer(e):this.openBuffer(t)},t.prototype.notifyComplete=function(e){this.closeBuffer(e.context)},t.prototype.openBuffer=function(e){try{var t=this.closingSelector.call(this,e);t&&this.trySubscribe(t)}catch(e){this._error(e)}},t.prototype.closeBuffer=function(e){var t=this.contexts;if(t&&e){var r=e.buffer,n=e.subscription;this.destination.next(r),t.splice(t.indexOf(e),1),this.remove(n),n.unsubscribe()}},t.prototype.trySubscribe=function(e){var t=this.contexts,r=new S.w,n={buffer:[],subscription:r};t.push(n);var i=(0,o.D)(this,e,n);!i||i.closed?this.closeBuffer(n):(i.context=n,this.add(i),r.add(i))},t}(i.L);function M(e){return function(t){return t.lift(new N(e))}}var N=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new R(e,this.closingSelector))},e}(),R=function(e){function t(t,r){var n=e.call(this,t)||this;return n.closingSelector=r,n.subscribing=!1,n.openBuffer(),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t,r=this.buffer;this.buffer&&this.destination.next(r),this.buffer=[];try{t=(0,this.closingSelector)()}catch(e){return this.error(e)}e=new S.w,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add((0,o.D)(this,t)),this.subscribing=!1},t}(i.L),K=r(28907);function L(e){return function(t){var r=new T(e),n=t.lift(r);return r.caught=n}}var T=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new P(e,this.selector,this.caught))},e}(),P=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.selector=r,i.caught=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var n=new K.d(this,void 0,void 0);this.add(n);var i=(0,o.D)(this,r,void 0,void 0,n);i!==n&&this.add(i)}},t}(i.L),U=r(20995);function _(e){return function(t){return t.lift(new U.Ms(e))}}var O=r(47182),j=r(85861);function Y(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=null;return"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&(0,O.k)(e[0])&&(e=e[0].slice()),function(t){return t.lift.call((0,j.D)([t].concat(e)),new U.Ms(r))}}var G=r(14023);function J(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(G.z.apply(void 0,[t].concat(e)))}}var H=r(37339),q=r(20259);function z(e,t){return(0,q.zg)(e,t,1)}function W(e,t){return z((function(){return e}),t)}function V(e){return function(t){return t.lift(new X(e,t))}}var X=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Z(e,this.predicate,this.source))},e}(),Z=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.count=0,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.predicate?this._tryPredicate(e):this.count++},t.prototype._tryPredicate=function(e){var t;try{t=this.predicate(e,this.index++,this.source)}catch(e){return void this.destination.error(e)}t&&this.count++},t.prototype._complete=function(){this.destination.next(this.count),this.destination.complete()},t}(p.L);function $(e){return function(t){return t.lift(new ee(e))}}var ee=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new te(e,this.durationSelector))},e}(),te=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n.durationSubscription=null,n}return n.ZT(t,e),t.prototype._next=function(e){try{var t=this.durationSelector.call(this,e);t&&this._tryNext(e,t)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.emitValue(),this.destination.complete()},t.prototype._tryNext=function(e,t){var r=this.durationSubscription;this.value=e,this.hasValue=!0,r&&(r.unsubscribe(),this.remove(r)),(r=(0,o.D)(this,t))&&!r.closed&&this.add(this.durationSubscription=r)},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){if(this.hasValue){var t=this.value,r=this.durationSubscription;r&&(this.durationSubscription=null,r.unsubscribe(),this.remove(r)),this.value=null,this.hasValue=!1,e.prototype._next.call(this,t)}},t}(i.L);function re(e,t){return void 0===t&&(t=c.P),function(r){return r.lift(new ne(e,t))}}var ne=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ie(e,this.dueTime,this.scheduler))},e}(),ie=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.dueTime=r,i.scheduler=n,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return n.ZT(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(oe,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var e=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(p.L);function oe(e){e.debouncedNext()}function se(e){return void 0===e&&(e=null),function(t){return t.lift(new Ae(e))}}var Ae=function(){function e(e){this.defaultValue=e}return e.prototype.call=function(e,t){return t.subscribe(new ae(e,this.defaultValue))},e}(),ae=function(e){function t(t,r){var n=e.call(this,t)||this;return n.defaultValue=r,n.isEmpty=!0,n}return n.ZT(t,e),t.prototype._next=function(e){this.isEmpty=!1,this.destination.next(e)},t.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},t}(p.L);function ce(e){return e instanceof Date&&!isNaN(+e)}var ue=r(4094);function le(e,t){void 0===t&&(t=c.P);var r=ce(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new he(r,t))}}var he=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ge(e,this.delay,this.scheduler))},e}(),ge=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.delay=r,i.scheduler=n,i.queue=[],i.active=!1,i.errored=!1,i}return n.ZT(t,e),t.dispatch=function(e){for(var t=e.source,r=t.queue,n=e.scheduler,i=e.destination;r.length>0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new fe(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(ue.P.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(ue.P.createComplete()),this.unsubscribe()},t}(p.L),fe=function(){return function(e,t){this.time=e,this.notification=t}}(),pe=r(98789);function de(e,t){return t?function(r){return new Ie(r,t).lift(new Ce(e))}:function(t){return t.lift(new Ce(e))}}var Ce=function(){function e(e){this.delayDurationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new Ee(e,this.delayDurationSelector))},e}(),Ee=function(e){function t(t,r){var n=e.call(this,t)||this;return n.delayDurationSelector=r,n.completed=!1,n.delayNotifierSubscriptions=[],n.index=0,n}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(e),this.removeSubscription(i),this.tryComplete()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){var t=this.removeSubscription(e);t&&this.destination.next(t),this.tryComplete()},t.prototype._next=function(e){var t=this.index++;try{var r=this.delayDurationSelector(e,t);r&&this.tryDelay(r,e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},t.prototype.removeSubscription=function(e){e.unsubscribe();var t=this.delayNotifierSubscriptions.indexOf(e);return-1!==t&&this.delayNotifierSubscriptions.splice(t,1),e.outerValue},t.prototype.tryDelay=function(e,t){var r=(0,o.D)(this,e,t);r&&!r.closed&&(this.destination.add(r),this.delayNotifierSubscriptions.push(r))},t.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},t}(i.L),Ie=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subscriptionDelay=r,n}return n.ZT(t,e),t.prototype._subscribe=function(e){this.subscriptionDelay.subscribe(new me(e,this.source))},t}(pe.y),me=function(e){function t(t,r){var n=e.call(this)||this;return n.parent=t,n.source=r,n.sourceSubscribed=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.subscribeToSource()},t.prototype._error=function(e){this.unsubscribe(),this.parent.error(e)},t.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},t.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},t}(p.L);function ye(){return function(e){return e.lift(new we)}}var we=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Be(e))},e}(),Be=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){e.observe(this.destination)},t}(p.L);function Qe(e,t){return function(r){return r.lift(new ve(e,t))}}var ve=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new De(e,this.keySelector,this.flushes))},e}(),De=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=r,i.values=new Set,n&&i.add((0,o.D)(i,n)),i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.L);function be(e,t){return function(r){return r.lift(new Se(e,t))}}var Se=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new ke(e,this.compare,this.keySelector))},e}(),ke=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=n,i.hasKey=!1,"function"==typeof r&&(i.compare=r),i}return n.ZT(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var r=this.keySelector;t=r?r(e):e}catch(e){return this.destination.error(e)}var n=!1;if(this.hasKey)try{n=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;n||(this.key=t,this.destination.next(e))},t}(p.L);function xe(e,t){return be((function(r,n){return t?t(r[e],n[e]):r[e]===n[e]}))}var Fe=r(3551),Me=r(39063),Ne=r(30943);function Re(e){return void 0===e&&(e=Te),function(t){return t.lift(new Ke(e))}}var Ke=function(){function e(e){this.errorFactory=e}return e.prototype.call=function(e,t){return t.subscribe(new Le(e,this.errorFactory))},e}(),Le=function(e){function t(t,r){var n=e.call(this,t)||this;return n.errorFactory=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.hasValue=!0,this.destination.next(e)},t.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var e=void 0;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)},t}(p.L);function Te(){return new Ne.K}var Pe=r(61775);function Ue(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new _e(e))}}var _e=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new Oe(e,this.total))},e}(),Oe=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(p.L);function je(e,t){if(e<0)throw new Fe.W;var r=arguments.length>=2;return function(n){return n.pipe((0,Me.h)((function(t,r){return r===e})),Ue(1),r?se(t):Re((function(){return new Fe.W})))}}var Ye=r(29686);function Ge(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return(0,G.z)(t,Ye.of.apply(void 0,e))}}function Je(e,t){return function(r){return r.lift(new He(e,t,r))}}var He=function(){function e(e,t,r){this.predicate=e,this.thisArg=t,this.source=r}return e.prototype.call=function(e,t){return t.subscribe(new qe(e,this.predicate,this.thisArg,this.source))},e}(),qe=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.predicate=r,o.thisArg=n,o.source=i,o.index=0,o.thisArg=n||o,o}return n.ZT(t,e),t.prototype.notifyComplete=function(e){this.destination.next(e),this.destination.complete()},t.prototype._next=function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(e){return void this.destination.error(e)}t||this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.L);function ze(){return function(e){return e.lift(new We)}}var We=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Ve(e))},e}(),Ve=function(e){function t(t){var r=e.call(this,t)||this;return r.hasCompleted=!1,r.hasSubscription=!1,r}return n.ZT(t,e),t.prototype._next=function(e){this.hasSubscription||(this.hasSubscription=!0,this.add((0,o.D)(this,e)))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},t.prototype.notifyComplete=function(e){this.remove(e),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},t}(i.L),Xe=r(98082);function Ze(e,t){return t?function(r){return r.pipe(Ze((function(r,n){return(0,j.D)(e(r,n)).pipe((0,Xe.U)((function(e,i){return t(r,e,n,i)})))})))}:function(t){return t.lift(new $e(e))}}var $e=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new et(e,this.project))},e}(),et=function(e){function t(t,r){var n=e.call(this,t)||this;return n.project=r,n.hasSubscription=!1,n.hasCompleted=!1,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){this.hasSubscription||this.tryNext(e)},t.prototype.tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.hasSubscription=!0,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=new K.d(this,t,r),i=this.destination;i.add(n);var s=(0,o.D)(this,e,void 0,void 0,n);s!==n&&i.add(s)},t.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.remove(e),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},t}(i.L);function tt(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,function(n){return n.lift(new rt(e,t,r))}}var rt=function(){function e(e,t,r){this.project=e,this.concurrent=t,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new nt(e,this.project,this.concurrent,this.scheduler))},e}(),nt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.project=r,o.concurrent=n,o.scheduler=i,o.index=0,o.active=0,o.hasCompleted=!1,n<Number.POSITIVE_INFINITY&&(o.buffer=[]),o}return n.ZT(t,e),t.dispatch=function(e){var t=e.subscriber,r=e.result,n=e.value,i=e.index;t.subscribeToProjection(r,n,i)},t.prototype._next=function(e){var r=this.destination;if(r.closed)this._complete();else{var n=this.index++;if(this.active<this.concurrent){r.next(e);try{var i=(0,this.project)(e,n);if(this.scheduler){var o={subscriber:this,result:i,value:e,index:n};this.destination.add(this.scheduler.schedule(t.dispatch,0,o))}else this.subscribeToProjection(i,e,n)}catch(e){r.error(e)}}else this.buffer.push(e)}},t.prototype.subscribeToProjection=function(e,t,r){this.active++,this.destination.add((0,o.D)(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this._next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.destination.remove(e),this.active--,t&&t.length>0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(i.L);function it(e){return function(t){return t.lift(new ot(e))}}var ot=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new st(e,this.callback))},e}(),st=function(e){function t(t,r){var n=e.call(this,t)||this;return n.add(new S.w(r)),n}return n.ZT(t,e),t}(p.L);function At(e,t){if("function"!=typeof e)throw new TypeError("predicate is not a function");return function(r){return r.lift(new at(e,r,!1,t))}}var at=function(){function e(e,t,r,n){this.predicate=e,this.source=t,this.yieldIndex=r,this.thisArg=n}return e.prototype.call=function(e,t){return t.subscribe(new ct(e,this.predicate,this.source,this.yieldIndex,this.thisArg))},e}(),ct=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.predicate=r,s.source=n,s.yieldIndex=i,s.thisArg=o,s.index=0,s}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete(),this.unsubscribe()},t.prototype._next=function(e){var t=this.predicate,r=this.thisArg,n=this.index++;try{t.call(r||this,e,n,this.source)&&this.notifyComplete(this.yieldIndex?n:e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},t}(p.L);function ut(e,t){return function(r){return r.lift(new at(e,r,!0,t))}}var lt=r(80433);function ht(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,Ue(1),r?se(t):Re((function(){return new Ne.K})))}}var gt=r(92564);function ft(){return function(e){return e.lift(new pt)}}var pt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new dt(e))},e}(),dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype._next=function(e){},t}(p.L);function Ct(){return function(e){return e.lift(new Et)}}var Et=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new It(e))},e}(),It=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype._next=function(e){this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.L);function mt(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new yt(e))}}var yt=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new wt(e,this.total))},e}(),wt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.ring=new Array,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;t.length<r?t.push(e):t[n%r]=e},t.prototype._complete=function(){var e=this.destination,t=this.count;if(t>0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i<r;i++){var o=t++%r;e.next(n[o])}e.complete()},t}(p.L);function Bt(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,mt(1),r?se(t):Re((function(){return new Ne.K})))}}function Qt(e){return function(t){return t.lift(new vt(e))}}var vt=function(){function e(e){this.value=e}return e.prototype.call=function(e,t){return t.subscribe(new Dt(e,this.value))},e}(),Dt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.value=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(this.value)},t}(p.L);function bt(){return function(e){return e.lift(new St)}}var St=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new kt(e))},e}(),kt=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(ue.P.createNext(e))},t.prototype._error=function(e){var t=this.destination;t.next(ue.P.createError(e)),t.complete()},t.prototype._complete=function(){var e=this.destination;e.next(ue.P.createComplete()),e.complete()},t}(p.L);function xt(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new Ft(e,t,r))}}var Ft=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new Mt(e,this.accumulator,this.seed,this.hasSeed))},e}(),Mt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o._seed=n,o.hasSeed=i,o.index=0,o}return n.ZT(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(p.L),Nt=r(97836);function Rt(e,t){return arguments.length>=2?function(r){return(0,Nt.z)(xt(e,t),mt(1),se(t))(r)}:function(t){return(0,Nt.z)(xt((function(t,r,n){return e(t,r,n+1)})),mt(1))(t)}}function Kt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)>0?t:r}:function(e,t){return e>t?e:t})}var Lt=r(80810);function Tt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(Lt.T.apply(void 0,[t].concat(e)))}}var Pt=r(66852);function Ut(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?(0,q.zg)((function(){return e}),t,r):("number"==typeof t&&(r=t),(0,q.zg)((function(){return e}),r))}function _t(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),function(n){return n.lift(new Ot(e,t,r))}}var Ot=function(){function e(e,t,r){this.accumulator=e,this.seed=t,this.concurrent=r}return e.prototype.call=function(e,t){return t.subscribe(new jt(e,this.accumulator,this.seed,this.concurrent))},e}(),jt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o.acc=n,o.concurrent=i,o.hasValue=!1,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return n.ZT(t,e),t.prototype._next=function(e){if(this.active<this.concurrent){var t=this.index++,r=this.destination,n=void 0;try{n=(0,this.accumulator)(this.acc,e,t)}catch(e){return r.error(e)}this.active++,this._innerSub(n,e,t)}else this.buffer.push(e)},t.prototype._innerSub=function(e,t,r){var n=new K.d(this,t,r),i=this.destination;i.add(n);var s=(0,o.D)(this,e,void 0,void 0,n);s!==n&&i.add(s)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete()),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.destination;this.acc=t,this.hasValue=!0,o.next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.destination.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},t}(i.L);function Yt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)<0?t:r}:function(e,t){return e<t?e:t})}var Gt=r(24311);function Jt(e,t){return function(r){var n;if(n="function"==typeof e?e:function(){return e},"function"==typeof t)return r.lift(new Ht(n,t));var i=Object.create(r,Gt.N);return i.source=r,i.subjectFactory=n,i}}var Ht=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var r=this.selector,n=this.subjectFactory(),i=r(n).subscribe(e);return i.add(t.subscribe(n)),i},e}(),qt=r(32746);function zt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 1===e.length&&(0,O.k)(e[0])&&(e=e[0]),function(t){return t.lift(new Wt(e))}}var Wt=function(){function e(e){this.nextSources=e}return e.prototype.call=function(e,t){return t.subscribe(new Vt(e,this.nextSources))},e}(),Vt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.destination=t,n.nextSources=r,n}return n.ZT(t,e),t.prototype.notifyError=function(e,t){this.subscribeToNextSource()},t.prototype.notifyComplete=function(e){this.subscribeToNextSource()},t.prototype._error=function(e){this.subscribeToNextSource(),this.unsubscribe()},t.prototype._complete=function(){this.subscribeToNextSource(),this.unsubscribe()},t.prototype.subscribeToNextSource=function(){var e=this.nextSources.shift();if(e){var t=new K.d(this,void 0,void 0),r=this.destination;r.add(t);var n=(0,o.D)(this,e,void 0,void 0,t);n!==t&&r.add(n)}else this.destination.complete()},t}(i.L);function Xt(){return function(e){return e.lift(new Zt)}}var Zt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new $t(e))},e}(),$t=function(e){function t(t){var r=e.call(this,t)||this;return r.hasPrev=!1,r}return n.ZT(t,e),t.prototype._next=function(e){var t;this.hasPrev?t=[this.prev,e]:this.hasPrev=!0,this.prev=e,t&&this.destination.next(t)},t}(p.L),er=r(65868);function tr(e,t){return function(r){return[(0,Me.h)(e,t)(r),(0,Me.h)((0,er.f)(e,t))(r)]}}function rr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.length;if(0===r)throw new Error("list of properties cannot be empty.");return function(t){return(0,Xe.U)(nr(e,r))(t)}}function nr(e,t){return function(r){for(var n=r,i=0;i<t;i++){var o=n[e[i]];if(void 0===o)return;n=o}return n}}var ir=r(92915);function or(e){return e?Jt((function(){return new ir.xQ}),e):Jt(new ir.xQ)}var sr=r(14753);function Ar(e){return function(t){return Jt(new sr.X(e))(t)}}var ar=r(73582);function cr(){return function(e){return Jt(new ar.c)(e)}}var ur=r(52493);function lr(e,t,r,n){r&&"function"!=typeof r&&(n=r);var i="function"==typeof r?r:void 0,o=new ur.t(e,t,n);return function(e){return Jt((function(){return o}),i)(e)}}var hr=r(2332);function gr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return 1===e.length&&(0,O.k)(e[0])&&(e=e[0]),t.lift.call(hr.S3.apply(void 0,[t].concat(e)))}}function fr(e){return void 0===e&&(e=-1),function(t){return 0===e?(0,Pe.c)():e<0?t.lift(new pr(-1,t)):t.lift(new pr(e-1,t))}}var pr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new dr(e,this.count,this.source))},e}(),dr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.ZT(t,e),t.prototype.complete=function(){if(!this.isStopped){var t=this.source,r=this.count;if(0===r)return e.prototype.complete.call(this);r>-1&&(this.count=r-1),t.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Cr(e){return function(t){return t.lift(new Er(e))}}var Er=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Ir(e,this.notifier,t))},e}(),Ir=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i.sourceIsBeingSubscribedTo=!0,i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},t.prototype.notifyComplete=function(t){if(!1===this.sourceIsBeingSubscribedTo)return e.prototype.complete.call(this)},t.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return e.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},t.prototype._unsubscribe=function(){var e=this.notifications,t=this.retriesSubscription;e&&(e.unsubscribe(),this.notifications=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype._unsubscribeAndRecycle=function(){var t=this._unsubscribe;return this._unsubscribe=null,e.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=t,this},t.prototype.subscribeToRetries=function(){var t;this.notifications=new ir.xQ;try{t=(0,this.notifier)(this.notifications)}catch(t){return e.prototype.complete.call(this)}this.retries=t,this.retriesSubscription=(0,o.D)(this,t)},t}(i.L);function mr(e){return void 0===e&&(e=-1),function(t){return t.lift(new yr(e,t))}}var yr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new wr(e,this.count,this.source))},e}(),wr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Br(e){return function(t){return t.lift(new Qr(e,t))}}var Qr=function(){function e(e,t){this.notifier=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new vr(e,this.notifier,this.source))},e}(),vr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.errors,n=this.retries,i=this.retriesSubscription;if(n)this.errors=null,this.retriesSubscription=null;else{r=new ir.xQ;try{n=(0,this.notifier)(r)}catch(t){return e.prototype.error.call(this,t)}i=(0,o.D)(this,n)}this._unsubscribeAndRecycle(),this.errors=r,this.retries=n,this.retriesSubscription=i,r.next(t)}},t.prototype._unsubscribe=function(){var e=this.errors,t=this.retriesSubscription;e&&(e.unsubscribe(),this.errors=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype.notifyNext=function(e,t,r,n,i){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},t}(i.L),Dr=r(97566);function br(e){return function(t){return t.lift(new Sr(e))}}var Sr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new kr(e),n=t.subscribe(r);return n.add((0,o.D)(r,this.notifier)),n},e}(),kr=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hasValue=!1,t}return n.ZT(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.L);function xr(e,t){return void 0===t&&(t=c.P),function(r){return r.lift(new Fr(e,t))}}var Fr=function(){function e(e,t){this.period=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Mr(e,this.period,this.scheduler))},e}(),Mr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.period=r,i.scheduler=n,i.hasValue=!1,i.add(n.schedule(Nr,r,{subscriber:i,period:r})),i}return n.ZT(t,e),t.prototype._next=function(e){this.lastValue=e,this.hasValue=!0},t.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},t}(p.L);function Nr(e){var t=e.subscriber,r=e.period;t.notifyNext(),this.schedule(e,r)}function Rr(e,t){return function(r){return r.lift(new Kr(e,t))}}var Kr=function(){function e(e,t){this.compareTo=e,this.comparator=t}return e.prototype.call=function(e,t){return t.subscribe(new Lr(e,this.compareTo,this.comparator))},e}(),Lr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.compareTo=r,i.comparator=n,i._a=[],i._b=[],i._oneComplete=!1,i.destination.add(r.subscribe(new Tr(t,i))),i}return n.ZT(t,e),t.prototype._next=function(e){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(e),this.checkValues())},t.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},t.prototype.checkValues=function(){for(var e=this._a,t=this._b,r=this.comparator;e.length>0&&t.length>0;){var n=e.shift(),i=t.shift(),o=!1;try{o=r?r(n,i):n===i}catch(e){this.destination.error(e)}o||this.emit(!1)}},t.prototype.emit=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype.nextB=function(e){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(e),this.checkValues())},t.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},t}(p.L),Tr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.parent=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.parent.nextB(e)},t.prototype._error=function(e){this.parent.error(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},t}(p.L);function Pr(){return new ir.xQ}function Ur(){return function(e){return(0,Dr.x)()(Jt(Pr)(e))}}function _r(e,t,r){var n;return n=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:r},function(e){return e.lift(function(e){var t,r,n=e.bufferSize,i=void 0===n?Number.POSITIVE_INFINITY:n,o=e.windowTime,s=void 0===o?Number.POSITIVE_INFINITY:o,A=e.refCount,a=e.scheduler,c=0,u=!1,l=!1;return function(e){c++,t&&!u||(u=!1,t=new ur.t(i,s,a),r=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){l=!0,r=void 0,t.complete()}}));var n=t.subscribe(this);this.add((function(){c--,n.unsubscribe(),r&&!l&&A&&0===c&&(r.unsubscribe(),r=void 0,t=void 0)}))}}(n))}}function Or(e){return function(t){return t.lift(new jr(e,t))}}var jr=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Yr(e,this.predicate,this.source))},e}(),Yr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.seenValue=!1,i.index=0,i}return n.ZT(t,e),t.prototype.applySingleValue=function(e){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=e)},t.prototype._next=function(e){var t=this.index++;this.predicate?this.tryNext(e,t):this.applySingleValue(e)},t.prototype.tryNext=function(e,t){try{this.predicate(e,t,this.source)&&this.applySingleValue(e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){var e=this.destination;this.index>0?(e.next(this.seenValue?this.singleValue:void 0),e.complete()):e.error(new Ne.K)},t}(p.L);function Gr(e){return function(t){return t.lift(new Jr(e))}}var Jr=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new Hr(e,this.total))},e}(),Hr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(p.L);function qr(e){return function(t){return t.lift(new zr(e))}}var zr=function(){function e(e){if(this._skipCount=e,this._skipCount<0)throw new Fe.W}return e.prototype.call=function(e,t){return 0===this._skipCount?t.subscribe(new p.L(e)):t.subscribe(new Wr(e,this._skipCount))},e}(),Wr=function(e){function t(t,r){var n=e.call(this,t)||this;return n._skipCount=r,n._count=0,n._ring=new Array(r),n}return n.ZT(t,e),t.prototype._next=function(e){var t=this._skipCount,r=this._count++;if(r<t)this._ring[r]=e;else{var n=r%t,i=this._ring,o=i[n];i[n]=e,this.destination.next(o)}},t}(p.L);function Vr(e){return function(t){return t.lift(new Xr(e))}}var Xr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Zr(e,this.notifier))},e}(),Zr=function(e){function t(t,r){var n=e.call(this,t)||this;n.hasValue=!1;var i=new K.d(n,void 0,void 0);n.add(i),n.innerSubscription=i;var s=(0,o.D)(n,r,void 0,void 0,i);return s!==i&&(n.add(s),n.innerSubscription=s),n}return n.ZT(t,e),t.prototype._next=function(t){this.hasValue&&e.prototype._next.call(this,t)},t.prototype.notifyNext=function(e,t,r,n,i){this.hasValue=!0,this.innerSubscription&&this.innerSubscription.unsubscribe()},t.prototype.notifyComplete=function(){},t}(i.L);function $r(e){return function(t){return t.lift(new en(e))}}var en=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new tn(e,this.predicate))},e}(),tn=function(e){function t(t,r){var n=e.call(this,t)||this;return n.predicate=r,n.skipping=!0,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.destination;this.skipping&&this.tryCallPredicate(e),this.skipping||t.next(e)},t.prototype.tryCallPredicate=function(e){try{var t=this.predicate(e,this.index++);this.skipping=Boolean(t)}catch(e){this.destination.error(e)}},t}(p.L);function rn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return(0,m.K)(r)?(e.pop(),function(t){return(0,G.z)(e,t,r)}):function(t){return(0,G.z)(e,t)}}var nn=r(94097),on=r(23820),sn=function(e){function t(t,r,n){void 0===r&&(r=0),void 0===n&&(n=nn.e);var i=e.call(this)||this;return i.source=t,i.delayTime=r,i.scheduler=n,(!(0,on.k)(r)||r<0)&&(i.delayTime=0),n&&"function"==typeof n.schedule||(i.scheduler=nn.e),i}return n.ZT(t,e),t.create=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=nn.e),new t(e,r,n)},t.dispatch=function(e){var t=e.source,r=e.subscriber;return this.add(t.subscribe(r))},t.prototype._subscribe=function(e){var r=this.delayTime,n=this.source;return this.scheduler.schedule(t.dispatch,r,{source:n,subscriber:e})},t}(pe.y);function An(e,t){return void 0===t&&(t=0),function(r){return r.lift(new an(e,t))}}var an=function(){function e(e,t){this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return new sn(t,this.delay,this.scheduler).subscribe(e)},e}();function cn(e,t){return"function"==typeof t?function(r){return r.pipe(cn((function(r,n){return(0,j.D)(e(r,n)).pipe((0,Xe.U)((function(e,i){return t(r,e,n,i)})))})))}:function(t){return t.lift(new un(e))}}var un=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new ln(e,this.project))},e}(),ln=function(e){function t(t,r){var n=e.call(this,t)||this;return n.project=r,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=this.innerSubscription;n&&n.unsubscribe();var i=new K.d(this,t,r),s=this.destination;s.add(i),this.innerSubscription=(0,o.D)(this,e,void 0,void 0,i),this.innerSubscription!==i&&s.add(this.innerSubscription)},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this),this.unsubscribe()},t.prototype._unsubscribe=function(){this.innerSubscription=null},t.prototype.notifyComplete=function(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t}(i.L);function hn(){return cn(lt.y)}function gn(e,t){return t?cn((function(){return e}),t):cn((function(){return e}))}function fn(e){return function(t){return t.lift(new pn(e))}}var pn=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new dn(e),n=(0,o.D)(r,this.notifier);return n&&!r.seenValue?(r.add(n),t.subscribe(r)):r},e}(),dn=function(e){function t(t){var r=e.call(this,t)||this;return r.seenValue=!1,r}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.seenValue=!0,this.complete()},t.prototype.notifyComplete=function(){},t}(i.L);function Cn(e,t){return void 0===t&&(t=!1),function(r){return r.lift(new En(e,t))}}var En=function(){function e(e,t){this.predicate=e,this.inclusive=t}return e.prototype.call=function(e,t){return t.subscribe(new In(e,this.predicate,this.inclusive))},e}(),In=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.inclusive=n,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t,r=this.destination;try{t=this.predicate(e,this.index++)}catch(e){return void r.error(e)}this.nextOrComplete(e,t)},t.prototype.nextOrComplete=function(e,t){var r=this.destination;Boolean(t)?r.next(e):(this.inclusive&&r.next(e),r.complete())},t}(p.L),mn=r(57781),yn=r(38394);function wn(e,t,r){return function(n){return n.lift(new Bn(e,t,r))}}var Bn=function(){function e(e,t,r){this.nextOrObserver=e,this.error=t,this.complete=r}return e.prototype.call=function(e,t){return t.subscribe(new Qn(e,this.nextOrObserver,this.error,this.complete))},e}(),Qn=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o._tapNext=mn.Z,o._tapError=mn.Z,o._tapComplete=mn.Z,o._tapError=n||mn.Z,o._tapComplete=i||mn.Z,(0,yn.m)(r)?(o._context=o,o._tapNext=r):r&&(o._context=r,o._tapNext=r.next||mn.Z,o._tapError=r.error||mn.Z,o._tapComplete=r.complete||mn.Z),o}return n.ZT(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(p.L),vn={leading:!0,trailing:!1};function Dn(e,t){return void 0===t&&(t=vn),function(r){return r.lift(new bn(e,t.leading,t.trailing))}}var bn=function(){function e(e,t,r){this.durationSelector=e,this.leading=t,this.trailing=r}return e.prototype.call=function(e,t){return t.subscribe(new Sn(e,this.durationSelector,this.leading,this.trailing))},e}(),Sn=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.destination=t,o.durationSelector=r,o._leading=n,o._trailing=i,o._hasValue=!1,o}return n.ZT(t,e),t.prototype._next=function(e){this._hasValue=!0,this._sendValue=e,this._throttled||(this._leading?this.send():this.throttle(e))},t.prototype.send=function(){var e=this._hasValue,t=this._sendValue;e&&(this.destination.next(t),this.throttle(t)),this._hasValue=!1,this._sendValue=null},t.prototype.throttle=function(e){var t=this.tryDurationSelector(e);t&&this.add(this._throttled=(0,o.D)(this,t))},t.prototype.tryDurationSelector=function(e){try{return this.durationSelector(e)}catch(e){return this.destination.error(e),null}},t.prototype.throttlingDone=function(){var e=this._throttled,t=this._trailing;e&&e.unsubscribe(),this._throttled=null,t&&this.send()},t.prototype.notifyNext=function(e,t,r,n,i){this.throttlingDone()},t.prototype.notifyComplete=function(){this.throttlingDone()},t}(i.L);function kn(e,t,r){return void 0===t&&(t=c.P),void 0===r&&(r=vn),function(n){return n.lift(new xn(e,t,r.leading,r.trailing))}}var xn=function(){function e(e,t,r,n){this.duration=e,this.scheduler=t,this.leading=r,this.trailing=n}return e.prototype.call=function(e,t){return t.subscribe(new Fn(e,this.duration,this.scheduler,this.leading,this.trailing))},e}(),Fn=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.duration=r,s.scheduler=n,s.leading=i,s.trailing=o,s._hasTrailingValue=!1,s._trailingValue=null,s}return n.ZT(t,e),t.prototype._next=function(e){this.throttled?this.trailing&&(this._trailingValue=e,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Mn,this.duration,{subscriber:this})),this.leading?this.destination.next(e):this.trailing&&(this._trailingValue=e,this._hasTrailingValue=!0))},t.prototype._complete=function(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()},t.prototype.clearThrottle=function(){var e=this.throttled;e&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),e.unsubscribe(),this.remove(e),this.throttled=null)},t}(p.L);function Mn(e){e.subscriber.clearThrottle()}var Nn=r(58721);function Rn(e){return void 0===e&&(e=c.P),function(t){return(0,Nn.P)((function(){return t.pipe(xt((function(t,r){var n=t.current;return{value:r,current:e.now(),last:n}}),{current:e.now(),value:void 0,last:void 0}),(0,Xe.U)((function(e){var t=e.current,r=e.last,n=e.value;return new Kn(n,t-r)})))}))}}var Kn=function(){return function(e,t){this.value=e,this.interval=t}}(),Ln=r(87299);function Tn(e,t,r){return void 0===r&&(r=c.P),function(n){var i=ce(e),o=i?+e-r.now():Math.abs(e);return n.lift(new Pn(o,i,t,r))}}var Pn=function(){function e(e,t,r,n){this.waitFor=e,this.absoluteTimeout=t,this.withObservable=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Un(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},e}(),Un=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.absoluteTimeout=r,s.waitFor=n,s.withObservable=i,s.scheduler=o,s.action=null,s.scheduleTimeout(),s}return n.ZT(t,e),t.dispatchTimeout=function(e){var t=e.withObservable;e._unsubscribeAndRecycle(),e.add((0,o.D)(e,t))},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=null,this.scheduler=null,this.withObservable=null},t}(i.L),_n=r(9491);function On(e,t){return void 0===t&&(t=c.P),Tn(e,(0,_n._)(new Ln.W),t)}function jn(e){return void 0===e&&(e=c.P),(0,Xe.U)((function(t){return new Yn(t,e.now())}))}var Yn=function(){return function(e,t){this.value=e,this.timestamp=t}}();function Gn(e,t,r){return 0===r?[t]:(e.push(t),e)}function Jn(){return Rt(Gn,[])}function Hn(e){return function(t){return t.lift(new qn(e))}}var qn=function(){function e(e){this.windowBoundaries=e}return e.prototype.call=function(e,t){var r=new zn(e),n=t.subscribe(r);return n.closed||r.add((0,o.D)(r,this.windowBoundaries)),n},e}(),zn=function(e){function t(t){var r=e.call(this,t)||this;return r.window=new ir.xQ,t.next(r.window),r}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.openWindow()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){this._complete()},t.prototype._next=function(e){this.window.next(e)},t.prototype._error=function(e){this.window.error(e),this.destination.error(e)},t.prototype._complete=function(){this.window.complete(),this.destination.complete()},t.prototype._unsubscribe=function(){this.window=null},t.prototype.openWindow=function(){var e=this.window;e&&e.complete();var t=this.destination,r=this.window=new ir.xQ;t.next(r)},t}(i.L);function Wn(e,t){return void 0===t&&(t=0),function(r){return r.lift(new Vn(e,t))}}var Vn=function(){function e(e,t){this.windowSize=e,this.startWindowEvery=t}return e.prototype.call=function(e,t){return t.subscribe(new Xn(e,this.windowSize,this.startWindowEvery))},e}(),Xn=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.destination=t,i.windowSize=r,i.startWindowEvery=n,i.windows=[new ir.xQ],i.count=0,t.next(i.windows[0]),i}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.startWindowEvery>0?this.startWindowEvery:this.windowSize,r=this.destination,n=this.windowSize,i=this.windows,o=i.length,s=0;s<o&&!this.closed;s++)i[s].next(e);var A=this.count-n+1;if(A>=0&&A%t==0&&!this.closed&&i.shift().complete(),++this.count%t==0&&!this.closed){var a=new ir.xQ;i.push(a),r.next(a)}},t.prototype._error=function(e){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().complete();this.destination.complete()},t.prototype._unsubscribe=function(){this.count=0,this.windows=null},t}(p.L);function Zn(e){var t=c.P,r=null,n=Number.POSITIVE_INFINITY;return(0,m.K)(arguments[3])&&(t=arguments[3]),(0,m.K)(arguments[2])?t=arguments[2]:(0,on.k)(arguments[2])&&(n=arguments[2]),(0,m.K)(arguments[1])?t=arguments[1]:(0,on.k)(arguments[1])&&(r=arguments[1]),function(i){return i.lift(new $n(e,r,n,t))}}var $n=function(){function e(e,t,r,n){this.windowTimeSpan=e,this.windowCreationInterval=t,this.maxWindowSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new ti(e,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},e}(),ei=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._numberOfNextedValues=0,t}return n.ZT(t,e),t.prototype.next=function(t){this._numberOfNextedValues++,e.prototype.next.call(this,t)},Object.defineProperty(t.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),t}(ir.xQ),ti=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.destination=t,s.windowTimeSpan=r,s.windowCreationInterval=n,s.maxWindowSize=i,s.scheduler=o,s.windows=[];var A=s.openWindow();if(null!==n&&n>=0){var a={subscriber:s,window:A,context:null},c={windowTimeSpan:r,windowCreationInterval:n,subscriber:s,scheduler:o};s.add(o.schedule(ii,r,a)),s.add(o.schedule(ni,n,c))}else{var u={subscriber:s,window:A,windowTimeSpan:r};s.add(o.schedule(ri,r,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.windows,r=t.length,n=0;n<r;n++){var i=t[n];i.closed||(i.next(e),i.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(i))}},t.prototype._error=function(e){for(var t=this.windows;t.length>0;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){for(var e=this.windows;e.length>0;){var t=e.shift();t.closed||t.complete()}this.destination.complete()},t.prototype.openWindow=function(){var e=new ei;return this.windows.push(e),this.destination.next(e),e},t.prototype.closeWindow=function(e){e.complete();var t=this.windows;t.splice(t.indexOf(e),1)},t}(p.L);function ri(e){var t=e.subscriber,r=e.windowTimeSpan,n=e.window;n&&t.closeWindow(n),e.window=t.openWindow(),this.schedule(e,r)}function ni(e){var t=e.windowTimeSpan,r=e.subscriber,n=e.scheduler,i=e.windowCreationInterval,o=r.openWindow(),s={action:this,subscription:null},A={subscriber:r,window:o,context:s};s.subscription=n.schedule(ii,t,A),this.add(s.subscription),this.schedule(e,i)}function ii(e){var t=e.subscriber,r=e.window,n=e.context;n&&n.action&&n.subscription&&n.action.remove(n.subscription),t.closeWindow(r)}function oi(e,t){return function(r){return r.lift(new si(e,t))}}var si=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new Ai(e,this.openings,this.closingSelector))},e}(),Ai=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add(i.openSubscription=(0,o.D)(i,r,r)),i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.contexts;if(t)for(var r=t.length,n=0;n<r;n++)t[n].window.next(e)},t.prototype._error=function(t){var r=this.contexts;if(this.contexts=null,r)for(var n=r.length,i=-1;++i<n;){var o=r[i];o.window.error(t),o.subscription.unsubscribe()}e.prototype._error.call(this,t)},t.prototype._complete=function(){var t=this.contexts;if(this.contexts=null,t)for(var r=t.length,n=-1;++n<r;){var i=t[n];i.window.complete(),i.subscription.unsubscribe()}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.contexts;if(this.contexts=null,e)for(var t=e.length,r=-1;++r<t;){var n=e[r];n.window.unsubscribe(),n.subscription.unsubscribe()}},t.prototype.notifyNext=function(e,t,r,n,i){if(e===this.openings){var s=void 0;try{s=(0,this.closingSelector)(t)}catch(e){return this.error(e)}var A=new ir.xQ,a=new S.w,c={window:A,subscription:a};this.contexts.push(c);var u=(0,o.D)(this,s,c);u.closed?this.closeWindow(this.contexts.length-1):(u.context=c,a.add(u)),this.destination.next(A)}else this.closeWindow(this.contexts.indexOf(e))},t.prototype.notifyError=function(e){this.error(e)},t.prototype.notifyComplete=function(e){e!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(e.context))},t.prototype.closeWindow=function(e){if(-1!==e){var t=this.contexts,r=t[e],n=r.window,i=r.subscription;t.splice(e,1),n.complete(),i.unsubscribe()}},t}(i.L);function ai(e){return function(t){return t.lift(new ci(e))}}var ci=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new ui(e,this.closingSelector))},e}(),ui=function(e){function t(t,r){var n=e.call(this,t)||this;return n.destination=t,n.closingSelector=r,n.openWindow(),n}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.openWindow(i)},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){this.openWindow(e)},t.prototype._next=function(e){this.window.next(e)},t.prototype._error=function(e){this.window.error(e),this.destination.error(e),this.unsubscribeClosingNotification()},t.prototype._complete=function(){this.window.complete(),this.destination.complete(),this.unsubscribeClosingNotification()},t.prototype.unsubscribeClosingNotification=function(){this.closingNotification&&this.closingNotification.unsubscribe()},t.prototype.openWindow=function(e){void 0===e&&(e=null),e&&(this.remove(e),e.unsubscribe());var t=this.window;t&&t.complete();var r,n=this.window=new ir.xQ;this.destination.next(n);try{r=(0,this.closingSelector)()}catch(e){return this.destination.error(e),void this.window.error(e)}this.add(this.closingNotification=(0,o.D)(this,r))},t}(i.L);function li(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){var r;"function"==typeof e[e.length-1]&&(r=e.pop());var n=e;return t.lift(new hi(n,r))}}var hi=function(){function e(e,t){this.observables=e,this.project=t}return e.prototype.call=function(e,t){return t.subscribe(new gi(e,this.observables,this.project))},e}(),gi=function(e){function t(t,r,n){var i=e.call(this,t)||this;i.observables=r,i.project=n,i.toRespond=[];var s=r.length;i.values=new Array(s);for(var A=0;A<s;A++)i.toRespond.push(A);for(A=0;A<s;A++){var a=r[A];i.add((0,o.D)(i,a,a,A))}return i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values[r]=t;var o=this.toRespond;if(o.length>0){var s=o.indexOf(r);-1!==s&&o.splice(s,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L),fi=r(21336);function pi(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(fi.$R.apply(void 0,[t].concat(e)))}}function di(e){return function(t){return t.lift(new fi.mx(e))}}},13499:(e,t,r)=>{var n=r(64293),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=s),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},44765:(e,t,r)=>{"use strict";var n,i=r(64293),o=i.Buffer,s={};for(n in i)i.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(s[n]=i[n]);var A=s.Buffer={};for(n in o)o.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(A[n]=o[n]);if(s.Buffer.prototype=o.prototype,A.from&&A.from!==Uint8Array.from||(A.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return o(e,t,r)}),A.alloc||(A.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=o(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s},95584:(e,t)=>{var r;t=e.exports=l,r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var n=Number.MAX_SAFE_INTEGER||9007199254740991,i=t.re=[],o=t.src=[],s=t.tokens={},A=0;function a(e){s[e]=A++}a("NUMERICIDENTIFIER"),o[s.NUMERICIDENTIFIER]="0|[1-9]\\d*",a("NUMERICIDENTIFIERLOOSE"),o[s.NUMERICIDENTIFIERLOOSE]="[0-9]+",a("NONNUMERICIDENTIFIER"),o[s.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",a("MAINVERSION"),o[s.MAINVERSION]="("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")",a("MAINVERSIONLOOSE"),o[s.MAINVERSIONLOOSE]="("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")",a("PRERELEASEIDENTIFIER"),o[s.PRERELEASEIDENTIFIER]="(?:"+o[s.NUMERICIDENTIFIER]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASEIDENTIFIERLOOSE"),o[s.PRERELEASEIDENTIFIERLOOSE]="(?:"+o[s.NUMERICIDENTIFIERLOOSE]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASE"),o[s.PRERELEASE]="(?:-("+o[s.PRERELEASEIDENTIFIER]+"(?:\\."+o[s.PRERELEASEIDENTIFIER]+")*))",a("PRERELEASELOOSE"),o[s.PRERELEASELOOSE]="(?:-?("+o[s.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+o[s.PRERELEASEIDENTIFIERLOOSE]+")*))",a("BUILDIDENTIFIER"),o[s.BUILDIDENTIFIER]="[0-9A-Za-z-]+",a("BUILD"),o[s.BUILD]="(?:\\+("+o[s.BUILDIDENTIFIER]+"(?:\\."+o[s.BUILDIDENTIFIER]+")*))",a("FULL"),a("FULLPLAIN"),o[s.FULLPLAIN]="v?"+o[s.MAINVERSION]+o[s.PRERELEASE]+"?"+o[s.BUILD]+"?",o[s.FULL]="^"+o[s.FULLPLAIN]+"$",a("LOOSEPLAIN"),o[s.LOOSEPLAIN]="[v=\\s]*"+o[s.MAINVERSIONLOOSE]+o[s.PRERELEASELOOSE]+"?"+o[s.BUILD]+"?",a("LOOSE"),o[s.LOOSE]="^"+o[s.LOOSEPLAIN]+"$",a("GTLT"),o[s.GTLT]="((?:<|>)?=?)",a("XRANGEIDENTIFIERLOOSE"),o[s.XRANGEIDENTIFIERLOOSE]=o[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",a("XRANGEIDENTIFIER"),o[s.XRANGEIDENTIFIER]=o[s.NUMERICIDENTIFIER]+"|x|X|\\*",a("XRANGEPLAIN"),o[s.XRANGEPLAIN]="[v=\\s]*("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:"+o[s.PRERELEASE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGEPLAINLOOSE"),o[s.XRANGEPLAINLOOSE]="[v=\\s]*("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:"+o[s.PRERELEASELOOSE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGE"),o[s.XRANGE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAIN]+"$",a("XRANGELOOSE"),o[s.XRANGELOOSE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAINLOOSE]+"$",a("COERCE"),o[s.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",a("COERCERTL"),i[s.COERCERTL]=new RegExp(o[s.COERCE],"g"),a("LONETILDE"),o[s.LONETILDE]="(?:~>?)",a("TILDETRIM"),o[s.TILDETRIM]="(\\s*)"+o[s.LONETILDE]+"\\s+",i[s.TILDETRIM]=new RegExp(o[s.TILDETRIM],"g");a("TILDE"),o[s.TILDE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAIN]+"$",a("TILDELOOSE"),o[s.TILDELOOSE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAINLOOSE]+"$",a("LONECARET"),o[s.LONECARET]="(?:\\^)",a("CARETTRIM"),o[s.CARETTRIM]="(\\s*)"+o[s.LONECARET]+"\\s+",i[s.CARETTRIM]=new RegExp(o[s.CARETTRIM],"g");a("CARET"),o[s.CARET]="^"+o[s.LONECARET]+o[s.XRANGEPLAIN]+"$",a("CARETLOOSE"),o[s.CARETLOOSE]="^"+o[s.LONECARET]+o[s.XRANGEPLAINLOOSE]+"$",a("COMPARATORLOOSE"),o[s.COMPARATORLOOSE]="^"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+")$|^$",a("COMPARATOR"),o[s.COMPARATOR]="^"+o[s.GTLT]+"\\s*("+o[s.FULLPLAIN]+")$|^$",a("COMPARATORTRIM"),o[s.COMPARATORTRIM]="(\\s*)"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+"|"+o[s.XRANGEPLAIN]+")",i[s.COMPARATORTRIM]=new RegExp(o[s.COMPARATORTRIM],"g");a("HYPHENRANGE"),o[s.HYPHENRANGE]="^\\s*("+o[s.XRANGEPLAIN]+")\\s+-\\s+("+o[s.XRANGEPLAIN]+")\\s*$",a("HYPHENRANGELOOSE"),o[s.HYPHENRANGELOOSE]="^\\s*("+o[s.XRANGEPLAINLOOSE]+")\\s+-\\s+("+o[s.XRANGEPLAINLOOSE]+")\\s*$",a("STAR"),o[s.STAR]="(<|>)?=?\\s*\\*";for(var c=0;c<A;c++)r(c,o[c]),i[c]||(i[c]=new RegExp(o[c]));function u(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l)return e;if("string"!=typeof e)return null;if(e.length>256)return null;if(!(t.loose?i[s.LOOSE]:i[s.FULL]).test(e))return null;try{return new l(e,t)}catch(e){return null}}function l(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof l))return new l(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var o=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!o)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<n)return t}return e})):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}t.parse=u,t.valid=function(e,t){var r=u(e,t);return r?r.version:null},t.clean=function(e,t){var r=u(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},t.SemVer=l,l.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},l.prototype.toString=function(){return this.version},l.prototype.compare=function(e){return r("SemVer.compare",this.version,this.options,e),e instanceof l||(e=new l(e,this.options)),this.compareMain(e)||this.comparePre(e)},l.prototype.compareMain=function(e){return e instanceof l||(e=new l(e,this.options)),g(this.major,e.major)||g(this.minor,e.minor)||g(this.patch,e.patch)},l.prototype.comparePre=function(e){if(e instanceof l||(e=new l(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var n=this.prerelease[t],i=e.prerelease[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return g(n,i)}while(++t)},l.prototype.compareBuild=function(e){e instanceof l||(e=new l(e,this.options));var t=0;do{var n=this.build[t],i=e.build[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return g(n,i)}while(++t)},l.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new l(e,r).inc(t,n).version}catch(e){return null}},t.diff=function(e,t){if(C(e,t))return null;var r=u(e),n=u(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var o="prerelease"}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return i+s;return o},t.compareIdentifiers=g;var h=/^[0-9]+$/;function g(e,t){var r=h.test(e),n=h.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1}function f(e,t,r){return new l(e,r).compare(new l(t,r))}function p(e,t,r){return f(e,t,r)>0}function d(e,t,r){return f(e,t,r)<0}function C(e,t,r){return 0===f(e,t,r)}function E(e,t,r){return 0!==f(e,t,r)}function I(e,t,r){return f(e,t,r)>=0}function m(e,t,r){return f(e,t,r)<=0}function y(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return C(e,r,n);case"!=":return E(e,r,n);case">":return p(e,r,n);case">=":return I(e,r,n);case"<":return d(e,r,n);case"<=":return m(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}function w(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof w){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof w))return new w(e,t);r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===B?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return g(t,e)},t.major=function(e,t){return new l(e,t).major},t.minor=function(e,t){return new l(e,t).minor},t.patch=function(e,t){return new l(e,t).patch},t.compare=f,t.compareLoose=function(e,t){return f(e,t,!0)},t.compareBuild=function(e,t,r){var n=new l(e,r),i=new l(t,r);return n.compare(i)||n.compareBuild(i)},t.rcompare=function(e,t,r){return f(t,e,r)},t.sort=function(e,r){return e.sort((function(e,n){return t.compareBuild(e,n,r)}))},t.rsort=function(e,r){return e.sort((function(e,n){return t.compareBuild(n,e,r)}))},t.gt=p,t.lt=d,t.eq=C,t.neq=E,t.gte=I,t.lte=m,t.cmp=y,t.Comparator=w;var B={};function Q(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof Q)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Q(e.raw,t);if(e instanceof w)return new Q(e.value,t);if(!(this instanceof Q))return new Q(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((function(e){return this.parseRange(e.trim())}),this).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every((function(e){return i.intersects(e,t)})),i=n.pop();return r}function D(e){return!e||"x"===e.toLowerCase()||"*"===e}function b(e,t,r,n,i,o,s,A,a,c,u,l,h){return((t=D(r)?"":D(n)?">="+r+".0.0":D(i)?">="+r+"."+n+".0":">="+t)+" "+(A=D(a)?"":D(c)?"<"+(+a+1)+".0.0":D(u)?"<"+a+"."+(+c+1)+".0":l?"<="+a+"."+c+"."+u+"-"+l:"<="+A)).trim()}function S(e,t,n){for(var i=0;i<e.length;i++)if(!e[i].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(i=0;i<e.length;i++)if(r(e[i].semver),e[i].semver!==B&&e[i].semver.prerelease.length>0){var o=e[i].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}function k(e,t,r){try{t=new Q(t,r)}catch(e){return!1}return t.test(e)}function x(e,t,r,n){var i,o,s,A,a;switch(e=new l(e,n),t=new Q(t,n),r){case">":i=p,o=m,s=d,A=">",a=">=";break;case"<":i=d,o=I,s=p,A="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(k(e,t,n))return!1;for(var c=0;c<t.set.length;++c){var u=t.set[c],h=null,g=null;if(u.forEach((function(e){e.semver===B&&(e=new w(">=0.0.0")),h=h||e,g=g||e,i(e.semver,h.semver,n)?h=e:s(e.semver,g.semver,n)&&(g=e)})),h.operator===A||h.operator===a)return!1;if((!g.operator||g.operator===A)&&o(e,g.semver))return!1;if(g.operator===a&&s(e,g.semver))return!1}return!0}w.prototype.parse=function(e){var t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new l(r[2],this.options.loose):this.semver=B},w.prototype.toString=function(){return this.value},w.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===B||e===B)return!0;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}return y(e,this.operator,this.semver,this.options)},w.prototype.intersects=function(e,t){if(!(e instanceof w))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new Q(e.value,t),k(this.value,r,t));if(""===e.operator)return""===e.value||(r=new Q(this.value,t),k(e.semver,r,t));var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),i=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),A=y(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),a=y(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&s||A||a},t.Range=Q,Q.prototype.format=function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range},Q.prototype.toString=function(){return this.range},Q.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var n=t?i[s.HYPHENRANGELOOSE]:i[s.HYPHENRANGE];e=e.replace(n,b),r("hyphen replace",e),e=e.replace(i[s.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[s.COMPARATORTRIM]),e=(e=(e=e.replace(i[s.TILDETRIM],"$1~")).replace(i[s.CARETTRIM],"$1^")).split(/\s+/).join(" ");var o=t?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],A=e.split(" ").map((function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){r("caret",e,t);var n=t.loose?i[s.CARETLOOSE]:i[s.CARET];return e.replace(n,(function(t,n,i,o,s){var A;return r("caret",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A="0"===n?">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":">="+n+"."+i+".0 <"+(+n+1)+".0.0":s?(r("replaceCaret pr",s),A="0"===n?"0"===i?">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+"-"+s+" <"+(+n+1)+".0.0"):(r("no pr"),A="0"===n?"0"===i?">="+n+"."+i+"."+o+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+" <"+(+n+1)+".0.0"),r("caret return",A),A}))}(e,t)})).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){var n=t.loose?i[s.TILDELOOSE]:i[s.TILDE];return e.replace(n,(function(t,n,i,o,s){var A;return r("tilde",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":s?(r("replaceTilde pr",s),A=">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0"):A=">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0",r("tilde return",A),A}))}(e,t)})).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return function(e,t){e=e.trim();var n=t.loose?i[s.XRANGELOOSE]:i[s.XRANGE];return e.replace(n,(function(n,i,o,s,A,a){r("xRange",e,n,i,o,s,A,a);var c=D(o),u=c||D(s),l=u||D(A),h=l;return"="===i&&h&&(i=""),a=t.includePrerelease?"-0":"",c?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&h?(u&&(s=0),A=0,">"===i?(i=">=",u?(o=+o+1,s=0,A=0):(s=+s+1,A=0)):"<="===i&&(i="<",u?o=+o+1:s=+s+1),n=i+o+"."+s+"."+A+a):u?n=">="+o+".0.0"+a+" <"+(+o+1)+".0.0"+a:l&&(n=">="+o+"."+s+".0"+a+" <"+o+"."+(+s+1)+".0"+a),r("xRange return",n),n}))}(e,t)})).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[s.STAR],"")}(e,t),r("stars",e),e}(e,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(A=A.filter((function(e){return!!e.match(o)}))),A=A.map((function(e){return new w(e,this.options)}),this)},Q.prototype.intersects=function(e,t){if(!(e instanceof Q))throw new TypeError("a Range is required");return this.set.some((function(r){return v(r,t)&&e.set.some((function(e){return v(e,t)&&r.every((function(r){return e.every((function(e){return r.intersects(e,t)}))}))}))}))},t.toComparators=function(e,t){return new Q(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))},Q.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(var t=0;t<this.set.length;t++)if(S(this.set[t],e,this.options))return!0;return!1},t.satisfies=k,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var o=new Q(t,r)}catch(e){return null}return e.forEach((function(e){o.test(e)&&(n&&-1!==i.compare(e)||(i=new l(n=e,r)))})),n},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var o=new Q(t,r)}catch(e){return null}return e.forEach((function(e){o.test(e)&&(n&&1!==i.compare(e)||(i=new l(n=e,r)))})),n},t.minVersion=function(e,t){e=new Q(e,t);var r=new l("0.0.0");if(e.test(r))return r;if(r=new l("0.0.0-0"),e.test(r))return r;r=null;for(var n=0;n<e.set.length;++n){e.set[n].forEach((function(e){var t=new l(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!p(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}}))}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new Q(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return x(e,t,"<",r)},t.gtr=function(e,t,r){return x(e,t,">",r)},t.outside=x,t.prerelease=function(e,t){var r=u(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new Q(e,r),t=new Q(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof l)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var n;(n=i[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&n.index+n[0].length===r.index+r[0].length||(r=n),i[s.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;i[s.COERCERTL].lastIndex=-1}else r=e.match(i[s.COERCE]);if(null===r)return null;return u(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}},29069:(e,t,r)=>{const n=Symbol("SemVer ANY");class i{static get ANY(){return n}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}a("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===n?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(e){const t=this.options.loose?o[s.COMPARATORLOOSE]:o[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(a("Comparator.test",e,this.options.loose),this.semver===n||e===n)return!0;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}return A(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new u(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new u(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=A(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=A(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||o&&s||a||c}}e.exports=i;const{re:o,t:s}=r(49439),A=r(38754),a=r(6029),c=r(14772),u=r(73004)},73004:(e,t,r)=>{class n{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?A[a.HYPHENRANGELOOSE]:A[a.HYPHENRANGE];e=e.replace(r,B(this.options.includePrerelease)),o("hyphen replace",e),e=e.replace(A[a.COMPARATORTRIM],c),o("comparator trim",e,A[a.COMPARATORTRIM]),e=(e=(e=e.replace(A[a.TILDETRIM],u)).replace(A[a.CARETTRIM],l)).split(/\s+/).join(" ");const n=t?A[a.COMPARATORLOOSE]:A[a.COMPARATOR];return e.split(" ").map(e=>g(e,this.options)).join(" ").split(/\s+/).map(e=>w(e,this.options)).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new i(e,this.options))}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>h(r,t)&&e.set.some(e=>h(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(Q(this.set[t],e,this.options))return!0;return!1}}e.exports=n;const i=r(29069),o=r(6029),s=r(14772),{re:A,t:a,comparatorTrimReplace:c,tildeTrimReplace:u,caretTrimReplace:l}=r(49439),h=(e,t)=>{let r=!0;const n=e.slice();let i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r},g=(e,t)=>(o("comp",e,t),e=C(e,t),o("caret",e),e=p(e,t),o("tildes",e),e=I(e,t),o("xrange",e),e=y(e,t),o("stars",e),e),f=e=>!e||"x"===e.toLowerCase()||"*"===e,p=(e,t)=>e.trim().split(/\s+/).map(e=>d(e,t)).join(" "),d=(e,t)=>{const r=t.loose?A[a.TILDELOOSE]:A[a.TILDE];return e.replace(r,(t,r,n,i,s)=>{let A;return o("tilde",e,t,r,n,i,s),f(r)?A="":f(n)?A=`>=${r}.0.0 <${+r+1}.0.0-0`:f(i)?A=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:s?(o("replaceTilde pr",s),A=`>=${r}.${n}.${i}-${s} <${r}.${+n+1}.0-0`):A=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,o("tilde return",A),A})},C=(e,t)=>e.trim().split(/\s+/).map(e=>E(e,t)).join(" "),E=(e,t)=>{o("caret",e,t);const r=t.loose?A[a.CARETLOOSE]:A[a.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,s,A)=>{let a;return o("caret",e,t,r,i,s,A),f(r)?a="":f(i)?a=`>=${r}.0.0${n} <${+r+1}.0.0-0`:f(s)?a="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:A?(o("replaceCaret pr",A),a="0"===r?"0"===i?`>=${r}.${i}.${s}-${A} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}-${A} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s}-${A} <${+r+1}.0.0-0`):(o("no pr"),a="0"===r?"0"===i?`>=${r}.${i}.${s}${n} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s} <${+r+1}.0.0-0`),o("caret return",a),a})},I=(e,t)=>(o("replaceXRanges",e,t),e.split(/\s+/).map(e=>m(e,t)).join(" ")),m=(e,t)=>{e=e.trim();const r=t.loose?A[a.XRANGELOOSE]:A[a.XRANGE];return e.replace(r,(r,n,i,s,A,a)=>{o("xRange",e,r,n,i,s,A,a);const c=f(i),u=c||f(s),l=u||f(A),h=l;return"="===n&&h&&(n=""),a=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&h?(u&&(s=0),A=0,">"===n?(n=">=",u?(i=+i+1,s=0,A=0):(s=+s+1,A=0)):"<="===n&&(n="<",u?i=+i+1:s=+s+1),"<"===n&&(a="-0"),r=`${n+i}.${s}.${A}${a}`):u?r=`>=${i}.0.0${a} <${+i+1}.0.0-0`:l&&(r=`>=${i}.${s}.0${a} <${i}.${+s+1}.0-0`),o("xRange return",r),r})},y=(e,t)=>(o("replaceStars",e,t),e.trim().replace(A[a.STAR],"")),w=(e,t)=>(o("replaceGTE0",e,t),e.trim().replace(A[t.includePrerelease?a.GTE0PRE:a.GTE0],"")),B=e=>(t,r,n,i,o,s,A,a,c,u,l,h,g)=>`${r=f(n)?"":f(i)?`>=${n}.0.0${e?"-0":""}`:f(o)?`>=${n}.${i}.0${e?"-0":""}`:s?">="+r:`>=${r}${e?"-0":""}`} ${a=f(c)?"":f(u)?`<${+c+1}.0.0-0`:f(l)?`<${c}.${+u+1}.0-0`:h?`<=${c}.${u}.${l}-${h}`:e?`<${c}.${u}.${+l+1}-0`:"<="+a}`.trim(),Q=(e,t,r)=>{for(let r=0;r<e.length;r++)if(!e[r].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let r=0;r<e.length;r++)if(o(e[r].semver),e[r].semver!==i.ANY&&e[r].semver.prerelease.length>0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}},14772:(e,t,r)=>{const n=r(6029),{MAX_LENGTH:i,MAX_SAFE_INTEGER:o}=r(76483),{re:s,t:A}=r(49439),{compareIdentifiers:a}=r(99297);class c{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?s[A.LOOSE]:s[A.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version}toString(){return this.version}compare(e){if(n("SemVer.compare",this.version,this.options,e),!(e instanceof c)){if("string"==typeof e&&e===this.version)return 0;e=new c(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof c||(e=new c(e,this.options)),a(this.major,e.major)||a(this.minor,e.minor)||a(this.patch,e.patch)}comparePre(e){if(e instanceof c||(e=new c(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],i=e.prerelease[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return a(r,i)}while(++t)}compareBuild(e){e instanceof c||(e=new c(e,this.options));let t=0;do{const r=this.build[t],i=e.build[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return a(r,i)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}e.exports=c},31192:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}},38754:(e,t,r)=>{const n=r(78760),i=r(83286),o=r(26544),s=r(44984),A=r(65069),a=r(93845);e.exports=(e,t,r,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return i(e,r,c);case">":return o(e,r,c);case">=":return s(e,r,c);case"<":return A(e,r,c);case"<=":return a(e,r,c);default:throw new TypeError("Invalid operator: "+t)}}},38113:(e,t,r)=>{const n=r(14772),i=r(21883),{re:o,t:s}=r(49439);e.exports=(e,t)=>{if(e instanceof n)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=o[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),o[s.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[s.COERCERTL].lastIndex=-1}else r=e.match(o[s.COERCE]);return null===r?null:i(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)}},63353:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>{const i=new n(e,r),o=new n(t,r);return i.compare(o)||i.compareBuild(o)}},58566:(e,t,r)=>{const n=r(17340);e.exports=(e,t)=>n(e,t,!0)},17340:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},29301:(e,t,r)=>{const n=r(21883),i=r(78760);e.exports=(e,t)=>{if(i(e,t))return null;{const r=n(e),i=n(t),o=r.prerelease.length||i.prerelease.length,s=o?"pre":"",A=o?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==i[e])return s+e;return A}}},78760:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0===n(e,t,r)},26544:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>0},44984:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>=0},24063:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r,i)=>{"string"==typeof r&&(i=r,r=void 0);try{return new n(e,r).inc(t,i).version}catch(e){return null}}},65069:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<0},93845:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<=0},75157:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).major},5195:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).minor},83286:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0!==n(e,t,r)},21883:(e,t,r)=>{const{MAX_LENGTH:n}=r(76483),{re:i,t:o}=r(49439),s=r(14772);e.exports=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof s)return e;if("string"!=typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new s(e,t)}catch(e){return null}}},39592:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).patch},27050:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}},93788:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(t,e,r)},15213:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))},73011:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}},71102:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))},99589:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r?r.version:null}},53887:(e,t,r)=>{const n=r(49439);e.exports={re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r(76483).SEMVER_SPEC_VERSION,SemVer:r(14772),compareIdentifiers:r(99297).compareIdentifiers,rcompareIdentifiers:r(99297).rcompareIdentifiers,parse:r(21883),valid:r(99589),clean:r(31192),inc:r(24063),diff:r(29301),major:r(75157),minor:r(5195),patch:r(39592),prerelease:r(27050),compare:r(17340),rcompare:r(93788),compareLoose:r(58566),compareBuild:r(63353),sort:r(71102),rsort:r(15213),gt:r(26544),lt:r(65069),eq:r(78760),neq:r(83286),gte:r(44984),lte:r(93845),cmp:r(38754),coerce:r(38113),Comparator:r(29069),Range:r(73004),satisfies:r(73011),toComparators:r(47753),maxSatisfying:r(1895),minSatisfying:r(33252),minVersion:r(4224),validRange:r(44315),outside:r(842),gtr:r(69258),ltr:r(36928),intersects:r(87395),simplifyRange:r(3530),subset:r(74264)}},76483:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},6029:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},99297:e=>{const t=/^[0-9]+$/,r=(e,r)=>{const n=t.test(e),i=t.test(r);return n&&i&&(e=+e,r=+r),e===r?0:n&&!i?-1:i&&!n?1:e<r?-1:1};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}},49439:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n}=r(76483),i=r(6029),o=(t=e.exports={}).re=[],s=t.src=[],A=t.t={};let a=0;const c=(e,t,r)=>{const n=a++;i(n,t),A[e]=n,s[n]=t,o[n]=new RegExp(t,r?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${s[A.NUMERICIDENTIFIER]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${s[A.NUMERICIDENTIFIERLOOSE]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${s[A.PRERELEASEIDENTIFIER]}(?:\\.${s[A.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${s[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[A.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${s[A.BUILDIDENTIFIER]}(?:\\.${s[A.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${s[A.MAINVERSION]}${s[A.PRERELEASE]}?${s[A.BUILD]}?`),c("FULL",`^${s[A.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${s[A.MAINVERSIONLOOSE]}${s[A.PRERELEASELOOSE]}?${s[A.BUILD]}?`),c("LOOSE",`^${s[A.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",s[A.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),c("XRANGEIDENTIFIER",s[A.NUMERICIDENTIFIER]+"|x|X|\\*"),c("XRANGEPLAIN",`[v=\\s]*(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:${s[A.PRERELEASE]})?${s[A.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:${s[A.PRERELEASELOOSE]})?${s[A.BUILD]}?)?)?`),c("XRANGE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),c("COERCERTL",s[A.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${s[A.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${s[A.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${s[A.LONECARET]}${s[A.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${s[A.LONECARET]}${s[A.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${s[A.GTLT]}\\s*(${s[A.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]}|${s[A.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${s[A.XRANGEPLAIN]})\\s+-\\s+(${s[A.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${s[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[A.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},89153:e=>{"use strict";e.exports={u2:"semver"}},69258:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,">",r)},87395:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t))},36928:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,"<",r)},1895:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&-1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},33252:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},4224:(e,t,r)=>{const n=r(14772),i=r(73004),o=r(26544);e.exports=(e,t)=>{e=new i(e,t);let r=new n("0.0.0");if(e.test(r))return r;if(r=new n("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t<e.set.length;++t){e.set[t].forEach(e=>{const t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!o(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return r&&e.test(r)?r:null}},842:(e,t,r)=>{const n=r(14772),i=r(29069),{ANY:o}=i,s=r(73004),A=r(73011),a=r(26544),c=r(65069),u=r(93845),l=r(44984);e.exports=(e,t,r,h)=>{let g,f,p,d,C;switch(e=new n(e,h),t=new s(t,h),r){case">":g=a,f=u,p=c,d=">",C=">=";break;case"<":g=c,f=l,p=a,d="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(A(e,t,h))return!1;for(let r=0;r<t.set.length;++r){const n=t.set[r];let s=null,A=null;if(n.forEach(e=>{e.semver===o&&(e=new i(">=0.0.0")),s=s||e,A=A||e,g(e.semver,s.semver,h)?s=e:p(e.semver,A.semver,h)&&(A=e)}),s.operator===d||s.operator===C)return!1;if((!A.operator||A.operator===d)&&f(e,A.semver))return!1;if(A.operator===C&&p(e,A.semver))return!1}return!0}},3530:(e,t,r)=>{const n=r(73011),i=r(17340);e.exports=(e,t,r)=>{const o=[];let s=null,A=null;const a=e.sort((e,t)=>i(e,t,r));for(const e of a){n(e,t,r)?(A=e,s||(s=e)):(A&&o.push([s,A]),A=null,s=null)}s&&o.push([s,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==a[0]?t?e===a[0]?c.push("<="+t):c.push(`${e} - ${t}`):c.push(">="+e):c.push("*");const u=c.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return u.length<l.length?u:t}},74264:(e,t,r)=>{const n=r(73004),{ANY:i}=r(29069),o=r(73011),s=r(17340),A=(e,t,r)=>{if(1===e.length&&e[0].semver===i)return 1===t.length&&t[0].semver===i;const n=new Set;let A,u,l,h,g,f,p;for(const t of e)">"===t.operator||">="===t.operator?A=a(A,t,r):"<"===t.operator||"<="===t.operator?u=c(u,t,r):n.add(t.semver);if(n.size>1)return null;if(A&&u){if(l=s(A.semver,u.semver,r),l>0)return null;if(0===l&&(">="!==A.operator||"<="!==u.operator))return null}for(const e of n){if(A&&!o(e,String(A),r))return null;if(u&&!o(e,String(u),r))return null;for(const n of t)if(!o(e,String(n),r))return!1;return!0}for(const e of t){if(p=p||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,A)if(">"===e.operator||">="===e.operator){if(h=a(A,e,r),h===e)return!1}else if(">="===A.operator&&!o(A.semver,String(e),r))return!1;if(u)if("<"===e.operator||"<="===e.operator){if(g=c(u,e,r),g===e)return!1}else if("<="===u.operator&&!o(u.semver,String(e),r))return!1;if(!e.operator&&(u||A)&&0!==l)return!1}return!(A&&f&&!u&&0!==l)&&!(u&&p&&!A&&0!==l)},a=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},c=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,r)=>{e=new n(e,r),t=new n(t,r);let i=!1;e:for(const n of e.set){for(const e of t.set){const t=A(n,e,r);if(i=i||null!==t,t)continue e}if(i)return!1}return!0}},47753:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},44315:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>{try{return new n(e,t).range||"*"}catch(e){return null}}},91470:(e,t,r)=>{"use strict";const n=r(67719);e.exports=(e="")=>{const t=e.match(n);if(!t)return null;const[r,i]=t[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return"env"===o?i:i?`${o} ${i}`:o}},67719:e=>{"use strict";e.exports=/^#!(.*)/},76458:(e,t,r)=>{var n,i=r(42357),o=r(48082),s=r(28614);function A(){u&&(u=!1,o.forEach((function(e){try{process.removeListener(e,c[e])}catch(e){}})),process.emit=f,process.reallyExit=h,n.count-=1)}function a(e,t,r){n.emitted[e]||(n.emitted[e]=!0,n.emit(e,t,r))}"function"!=typeof s&&(s=s.EventEmitter),process.__signal_exit_emitter__?n=process.__signal_exit_emitter__:((n=process.__signal_exit_emitter__=new s).count=0,n.emitted={}),n.infinite||(n.setMaxListeners(1/0),n.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===u&&l();var r="exit";t&&t.alwaysLast&&(r="afterexit");return n.on(r,e),function(){n.removeListener(r,e),0===n.listeners("exit").length&&0===n.listeners("afterexit").length&&A()}},e.exports.unload=A;var c={};o.forEach((function(e){c[e]=function(){process.listeners(e).length===n.count&&(A(),a("exit",null,e),a("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=l;var u=!1;function l(){u||(u=!0,n.count+=1,o=o.filter((function(e){try{return process.on(e,c[e]),!0}catch(e){return!1}})),process.emit=p,process.reallyExit=g)}var h=process.reallyExit;function g(e){process.exitCode=e||0,a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),h.call(process,process.exitCode)}var f=process.emit;function p(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var r=f.apply(this,arguments);return a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),r}return f.apply(this,arguments)}},48082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},17234:e=>{"use strict";e.exports=e=>{const t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},10129:(e,t,r)=>{"use strict";const n=r(76417),i=r(19184),o=r(92413).Transform,s=["sha256","sha384","sha512"],A=/^[a-z0-9+/]+(?:=?=?)$/i,a=/^([^-]+)-([^?]+)([?\S*]*)$/,c=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,u=/^[\x21-\x7E]+$/,l=i({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>m},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}});class h{get isHash(){return!0}constructor(e,t){const r=!!(t=l(t)).strict;this.source=e.trim();const n=this.source.match(r?c:a);if(!n)return;if(r&&!s.some(e=>e===n[1]))return;this.algorithm=n[1],this.digest=n[2];const i=n[3];this.options=i?i.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if((e=l(e)).strict&&!(s.some(e=>e===this.algorithm)&&this.digest.match(A)&&(this.options||[]).every(e=>e.match(u))))return"";const t=this.options&&this.options.length?"?"+this.options.join("?"):"";return`${this.algorithm}-${this.digest}${t}`}}class g{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){let t=(e=l(e)).sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(r=>this[r].map(t=>h.prototype.toString.call(t,e)).filter(e=>e.length).join(t)).filter(e=>e.length).join(t)}concat(e,t){t=l(t);const r="string"==typeof e?e:d(e,t);return f(`${this.toString(t)} ${r}`,t)}hexDigest(){return f(this,{single:!0}).hexDigest()}match(e,t){const r=f(e,t=l(t)),n=r.pickAlgorithm(t);return this[n]&&r[n]&&this[n].find(e=>r[n].find(t=>e.digest===t.digest))||!1}pickAlgorithm(e){const t=(e=l(e)).pickAlgorithm,r=Object.keys(this);if(!r.length)throw new Error("No algorithms available for "+JSON.stringify(this.toString()));return r.reduce((e,r)=>t(e,r)||e)}}function f(e,t){if(t=l(t),"string"==typeof e)return p(e,t);if(e.algorithm&&e.digest){const r=new g;return r[e.algorithm]=[e],p(d(r,t),t)}return p(d(e,t),t)}function p(e,t){return t.single?new h(e,t):e.trim().split(/\s+/).reduce((e,r)=>{const n=new h(r,t);if(n.algorithm&&n.digest){const t=n.algorithm;e[t]||(e[t]=[]),e[t].push(n)}return e},new g)}function d(e,t){return t=l(t),e.algorithm&&e.digest?h.prototype.toString.call(e,t):"string"==typeof e?d(f(e,t),t):g.prototype.toString.call(e,t)}function C(e){const t=(e=l(e)).integrity&&f(e.integrity,e),r=t&&Object.keys(t).length,i=r&&t.pickAlgorithm(e),s=r&&t[i],A=Array.from(new Set(e.algorithms.concat(i?[i]:[]))),a=A.map(n.createHash);let c=0;const u=new o({transform(e,t,r){c+=e.length,a.forEach(r=>r.update(e,t)),r(null,e,t)}}).on("end",()=>{const n=e.options&&e.options.length?"?"+e.options.join("?"):"",o=f(a.map((e,t)=>`${A[t]}-${e.digest("base64")}${n}`).join(" "),e),l=r&&o.match(t,e);if("number"==typeof e.size&&c!==e.size){const r=new Error(`stream size mismatch when checking ${t}.\n  Wanted: ${e.size}\n  Found: ${c}`);r.code="EBADSIZE",r.found=c,r.expected=e.size,r.sri=t,u.emit("error",r)}else if(e.integrity&&!l){const e=new Error(`${t} integrity checksum failed when using ${i}: wanted ${s} but got ${o}. (${c} bytes)`);e.code="EINTEGRITY",e.found=o,e.expected=s,e.algorithm=i,e.sri=t,u.emit("error",e)}else u.emit("size",c),u.emit("integrity",o),l&&u.emit("verified",l)});return u}e.exports.Sd=function(e,t){const r=(t=l(t)).algorithms,i=t.options&&t.options.length?"?"+t.options.join("?"):"";return r.reduce((r,o)=>{const s=n.createHash(o).update(e).digest("base64"),A=new h(`${o}-${s}${i}`,t);if(A.algorithm&&A.digest){const e=A.algorithm;r[e]||(r[e]=[]),r[e].push(A)}return r},new g)};const E=new Set(n.getHashes()),I=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>E.has(e));function m(e,t){return I.indexOf(e.toLowerCase())>=I.indexOf(t.toLowerCase())?e:t}},55043:(e,t,r)=>{"use strict";const n=r(7915),i=r(7347),o=r(1013),s=e=>{if("string"!=typeof(e=e.replace(o(),"  "))||0===e.length)return 0;e=n(e);let t=0;for(let r=0;r<e.length;r++){const n=e.codePointAt(r);n<=31||n>=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=i(n)?2:1))}return t};e.exports=s,e.exports.default=s},69538:(e,t,r)=>{"use strict";var n=r(13499).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=a,this.end=c,t=4;break;case"utf8":this.fillLast=A,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=h,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function A(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function g(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},o.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var i=s(t[n]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--n<r||-2===i)return 0;if((i=s(t[n]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--n<r||-2===i)return 0;if((i=s(t[n]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},7915:(e,t,r)=>{"use strict";const n=r(81337);e.exports=e=>"string"==typeof e?e.replace(n(),""):e},59428:(e,t,r)=>{"use strict";const n=r(12087),i=r(33867),o=r(72918),{env:s}=process;let A;function a(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function c(e,t){if(0===A)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===A)return 0;const r=A||0;if("dumb"===s.TERM)return r;if("win32"===process.platform){const e=n.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in s)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in s)||"codeship"===s.CI_NAME?1:r;if("TEAMCITY_VERSION"in s)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in s)return 1;if("truecolor"===s.COLORTERM)return 3;if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(s.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)||"COLORTERM"in s?1:r}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?A=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(A=1),"FORCE_COLOR"in s&&(A="true"===s.FORCE_COLOR?1:"false"===s.FORCE_COLOR?0:0===s.FORCE_COLOR.length?1:Math.min(parseInt(s.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return a(c(e,e&&e.isTTY))},stdout:a(c(!0,i.isatty(1))),stderr:a(c(!0,i.isatty(2)))}},93255:e=>{"use strict";function t(e){return Array.prototype.slice.apply(e)}function r(e){this.status="pending",this._continuations=[],this._parent=null,this._paused=!1,e&&e.call(this,this._continueWith.bind(this),this._failWith.bind(this))}function n(e){return e&&"function"==typeof e.then}function i(e){return e}if(r.prototype={then:function(e,t){var i=r.unresolved()._setParent(this);if(this._isRejected()){if(this._paused)return this._continuations.push({promise:i,nextFn:e,catchFn:t}),i;if(t)try{var o=t(this._error);return n(o)?(this._chainPromiseData(o,i),i):r.resolve(o)._setParent(this)}catch(e){return r.reject(e)._setParent(this)}return r.reject(this._error)._setParent(this)}return this._continuations.push({promise:i,nextFn:e,catchFn:t}),this._runResolutions(),i},catch:function(e){if(this._isResolved())return r.resolve(this._data)._setParent(this);var t=r.unresolved()._setParent(this);return this._continuations.push({promise:t,catchFn:e}),this._runRejections(),t},finally:function(e){var t=!1;function r(r,o){if(!t){t=!0,e||(e=i);var s=e(r);return n(s)?s.then((function(){if(o)throw o;return r})):r}}return this.then((function(e){return r(e)})).catch((function(e){return r(null,e)}))},pause:function(){return this._paused=!0,this},resume:function(){var e=this._findFirstPaused();return e&&(e._paused=!1,e._runResolutions(),e._runRejections()),this},_findAncestry:function(){return this._continuations.reduce((function(e,t){if(t.promise){var r={promise:t.promise,children:t.promise._findAncestry()};e.push(r)}return e}),[])},_setParent:function(e){if(this._parent)throw new Error("parent already set");return this._parent=e,this},_continueWith:function(e){var t=this._findFirstPending();t&&(t._data=e,t._setResolved())},_findFirstPending:function(){return this._findFirstAncestor((function(e){return e._isPending&&e._isPending()}))},_findFirstPaused:function(){return this._findFirstAncestor((function(e){return e._paused}))},_findFirstAncestor:function(e){for(var t,r=this;r;)e(r)&&(t=r),r=r._parent;return t},_failWith:function(e){var t=this._findFirstPending();t&&(t._error=e,t._setRejected())},_takeContinuations:function(){return this._continuations.splice(0,this._continuations.length)},_runRejections:function(){if(!this._paused&&this._isRejected()){var e=this._error,t=this._takeContinuations(),r=this;t.forEach((function(t){if(t.catchFn)try{var n=t.catchFn(e);r._handleUserFunctionResult(n,t.promise)}catch(e){t.promise.reject(e)}else t.promise.reject(e)}))}},_runResolutions:function(){if(!this._paused&&this._isResolved()&&!this._isPending()){var e=this._takeContinuations();if(n(this._data))return this._handleWhenResolvedDataIsPromise(this._data);var t=this._data,r=this;e.forEach((function(e){if(e.nextFn)try{var n=e.nextFn(t);r._handleUserFunctionResult(n,e.promise)}catch(t){r._handleResolutionError(t,e)}else e.promise&&e.promise.resolve(t)}))}},_handleResolutionError:function(e,t){if(this._setRejected(),t.catchFn)try{return void t.catchFn(e)}catch(t){e=t}t.promise&&t.promise.reject(e)},_handleWhenResolvedDataIsPromise:function(e){var t=this;return e.then((function(e){t._data=e,t._runResolutions()})).catch((function(e){t._error=e,t._setRejected(),t._runRejections()}))},_handleUserFunctionResult:function(e,t){n(e)?this._chainPromiseData(e,t):t.resolve(e)},_chainPromiseData:function(e,t){e.then((function(e){t.resolve(e)})).catch((function(e){t.reject(e)}))},_setResolved:function(){this.status="resolved",this._paused||this._runResolutions()},_setRejected:function(){this.status="rejected",this._paused||this._runRejections()},_isPending:function(){return"pending"===this.status},_isResolved:function(){return"resolved"===this.status},_isRejected:function(){return"rejected"===this.status}},r.resolve=function(e){return new r((function(t,r){n(e)?e.then((function(e){t(e)})).catch((function(e){r(e)})):t(e)}))},r.reject=function(e){return new r((function(t,r){r(e)}))},r.unresolved=function(){return new r((function(e,t){this.resolve=e,this.reject=t}))},r.all=function(){var e=t(arguments);return Array.isArray(e[0])&&(e=e[0]),e.length?new r((function(t,n){var i=[],o=0,s=!1;e.forEach((function(A,a){r.resolve(A).then((function(r){i[a]=r,(o+=1)===e.length&&t(i)})).catch((function(e){!function(e){s||(s=!0,n(e))}(e)}))}))})):r.resolve([])},Promise===r)throw new Error("Please use SynchronousPromise.installGlobally() to install globally");var o=Promise;r.installGlobally=function(e){if(Promise===r)return e;var n=function(e){if(void 0===e||e.__patched)return e;var r=e;return(e=function(){r.apply(this,t(arguments))}).__patched=!0,e}(e);return Promise=r,n},r.uninstallGlobally=function(){Promise===r&&(Promise=o)},e.exports={SynchronousPromise:r}},27700:(e,t,r)=>{"use strict";r(78886),r(84208),r(54768),r(68965),r(26842),r(29231),r(43915),t.Ze=r(67501),r(88658),r(27052),r(46464),r(76516),r(6464)},15135:(e,t,r)=>{"use strict";let n=Buffer;n.alloc||(n=r(13499).Buffer),e.exports=n},78886:(e,t,r)=>{"use strict";const n=r(59087),i=r(29231),o=(r(35747),r(28123)),s=r(54768),A=r(85622),a=(e.exports=(e,t,r)=>{if("function"==typeof t&&(r=t),Array.isArray(e)&&(t=e,e={}),!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");t=Array.from(t);const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return i.file&&i.sync?a(i,t):i.file?c(i,t,r):i.sync?h(i,t):g(i,t)},(e,t)=>{const r=new i.Sync(e),n=new o.WriteStreamSync(e.file,{mode:e.mode||438});r.pipe(n),u(r,t)}),c=(e,t,r)=>{const n=new i(e),s=new o.WriteStream(e.file,{mode:e.mode||438});n.pipe(s);const A=new Promise((e,t)=>{s.on("error",t),s.on("close",e),n.on("error",t)});return l(n,t),r?A.then(r,r):A},u=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?s({file:A.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},l=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return s({file:A.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>l(e,t));e.add(r)}e.end()},h=(e,t)=>{const r=new i.Sync(e);return u(r,t),r},g=(e,t)=>{const r=new i(e);return l(r,t),r}},26842:(e,t,r)=>{"use strict";const n=r(59087),i=r(43915),o=r(35747),s=r(28123),A=r(85622),a=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&a(i,t),i.file&&i.sync?c(i):i.file?u(i,r):i.sync?l(i):h(i)},(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||A.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(A.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))}),c=e=>{const t=new i.Sync(e),r=e.file;const n=o.statSync(r),A=e.maxReadSize||16777216;new s.ReadStreamSync(r,{readSize:A,size:n.size}).pipe(t)},u=(e,t)=>{const r=new i(e),n=e.maxReadSize||16777216,A=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("close",e),o.stat(A,(e,i)=>{if(e)t(e);else{const e=new s.ReadStream(A,{readSize:n,size:i.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},l=e=>new i.Sync(e),h=e=>new i(e)},46464:(e,t,r)=>{"use strict";const n=r(15135),i=r(6464),o=r(85622).posix,s=r(62488),A=Symbol("slurp"),a=Symbol("type");const c=(e,t)=>{let r,i=e,s="";const A=o.parse(e).root||".";if(n.byteLength(i)<100)r=[i,s,!1];else{s=o.dirname(i),i=o.basename(i);do{n.byteLength(i)<=100&&n.byteLength(s)<=t?r=[i,s,!1]:n.byteLength(i)>100&&n.byteLength(s)<=t?r=[i.substr(0,99),s,!0]:(i=o.join(o.basename(s),i),s=o.dirname(s))}while(s!==A&&!r);r||(r=[e.substr(0,99),"",!0])}return r},u=(e,t,r)=>e.slice(t,t+r).toString("utf8").replace(/\0.*/,""),l=(e,t,r)=>h(g(e,t,r)),h=e=>null===e?null:new Date(1e3*e),g=(e,t,r)=>128&e[t]?s.parse(e.slice(t,t+r)):f(e,t,r),f=(e,t,r)=>{return n=parseInt(e.slice(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8),isNaN(n)?null:n;var n},p={12:8589934591,8:2097151},d=(e,t,r,n)=>null!==n&&(n>p[r]||n<0?(s.encode(n,e.slice(t,t+r)),!0):(C(e,t,r,n),!1)),C=(e,t,r,n)=>e.write(E(n,r),t,r,"ascii"),E=(e,t)=>I(Math.floor(e).toString(8),t),I=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",m=(e,t,r,n)=>null!==n&&d(e,t,r,n.getTime()/1e3),y=new Array(156).join("\0"),w=(e,t,r,i)=>null!==i&&(e.write(i+y,t,r,"utf8"),i.length!==n.byteLength(i)||i.length>r);e.exports=class{constructor(e,t,r,i){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[a]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,n.isBuffer(e)?this.decode(e,t||0,r,i):e&&this.set(e)}decode(e,t,r,n){if(t||(t=0),!(e&&e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=u(e,t,100),this.mode=g(e,t+100,8),this.uid=g(e,t+108,8),this.gid=g(e,t+116,8),this.size=g(e,t+124,12),this.mtime=l(e,t+136,12),this.cksum=g(e,t+148,12),this[A](r),this[A](n,!0),this[a]=u(e,t+156,1),""===this[a]&&(this[a]="0"),"0"===this[a]&&"/"===this.path.substr(-1)&&(this[a]="5"),"5"===this[a]&&(this.size=0),this.linkpath=u(e,t+157,100),"ustar\x0000"===e.slice(t+257,t+265).toString())if(this.uname=u(e,t+265,32),this.gname=u(e,t+297,32),this.devmaj=g(e,t+329,8),this.devmin=g(e,t+337,8),0!==e[t+475]){const r=u(e,t+345,155);this.path=r+"/"+this.path}else{const r=u(e,t+345,130);r&&(this.path=r+"/"+this.path),this.atime=l(e,t+476,12),this.ctime=l(e,t+488,12)}let i=256;for(let r=t;r<t+148;r++)i+=e[r];for(let r=t+156;r<t+512;r++)i+=e[r];this.cksumValid=i===this.cksum,null===this.cksum&&256===i&&(this.nullBlock=!0)}[A](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}encode(e,t){if(e||(e=this.block=n.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");const r=this.ctime||this.atime?130:155,i=c(this.path||"",r),o=i[0],s=i[1];this.needPax=i[2],this.needPax=w(e,t,100,o)||this.needPax,this.needPax=d(e,t+100,8,this.mode)||this.needPax,this.needPax=d(e,t+108,8,this.uid)||this.needPax,this.needPax=d(e,t+116,8,this.gid)||this.needPax,this.needPax=d(e,t+124,12,this.size)||this.needPax,this.needPax=m(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[a].charCodeAt(0),this.needPax=w(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=w(e,t+265,32,this.uname)||this.needPax,this.needPax=w(e,t+297,32,this.gname)||this.needPax,this.needPax=d(e,t+329,8,this.devmaj)||this.needPax,this.needPax=d(e,t+337,8,this.devmin)||this.needPax,this.needPax=w(e,t+345,r,s)||this.needPax,0!==e[t+475]?this.needPax=w(e,t+345,155,s)||this.needPax:(this.needPax=w(e,t+345,130,s)||this.needPax,this.needPax=m(e,t+476,12,this.atime)||this.needPax,this.needPax=m(e,t+488,12,this.ctime)||this.needPax);let A=256;for(let r=t;r<t+148;r++)A+=e[r];for(let r=t+156;r<t+512;r++)A+=e[r];return this.cksum=A,d(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)null!==e[t]&&void 0!==e[t]&&(this[t]=e[t])}get type(){return i.name.get(this[a])||this[a]}get typeKey(){return this[a]}set type(e){i.code.has(e)?this[a]=i.code.get(e):this[a]=e}}},59087:e=>{"use strict";const t=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);e.exports=e=>e?Object.keys(e).map(r=>[t.has(r)?t.get(r):r,e[r]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}},62488:(e,t)=>{"use strict";t.encode=(e,t)=>{if(!Number.isSafeInteger(e))throw TypeError("cannot encode number outside of javascript safe integer range");return e<0?n(e,t):r(e,t),t};const r=(e,t)=>{t[0]=128;for(var r=t.length;r>1;r--)t[r-1]=255&e,e=Math.floor(e/256)},n=(e,t)=>{t[0]=255;var r=!1;e*=-1;for(var n=t.length;n>1;n--){var i=255&e;e=Math.floor(e/256),r?t[n-1]=s(i):0===i?t[n-1]=0:(r=!0,t[n-1]=A(i))}},i=(t.parse=e=>{e[e.length-1];var t,r=e[0];if(128===r)t=o(e.slice(1,e.length));else{if(255!==r)throw TypeError("invalid base256 encoding");t=i(e)}if(!Number.isSafeInteger(t))throw TypeError("parsed number outside of javascript safe integer range");return t},e=>{for(var t=e.length,r=0,n=!1,i=t-1;i>-1;i--){var o,a=e[i];n?o=s(a):0===a?o=a:(n=!0,o=A(a)),0!==o&&(r-=o*Math.pow(256,t-i-1))}return r}),o=e=>{for(var t=e.length,r=0,n=t-1;n>-1;n--){var i=e[n];0!==i&&(r+=i*Math.pow(256,t-n-1))}return r},s=e=>255&(255^e),A=e=>1+(255^e)&255},54768:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(67501),s=r(35747),A=r(28123),a=r(85622),c=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const n=i(e);if(n.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!n.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&u(n,t),n.noResume||c(n),n.file&&n.sync?l(n):n.file?h(n,r):g(n)},e=>{const t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()}),u=(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||a.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(a.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))},l=e=>{const t=g(e),r=e.file;let i,o=!0;try{const A=s.statSync(r),a=e.maxReadSize||16777216;if(A.size<a)t.end(s.readFileSync(r));else{let e=0;const o=n.allocUnsafe(a);for(i=s.openSync(r,"r");e<A.size;){let r=s.readSync(i,o,0,a,e);e+=r,t.write(o.slice(0,r))}t.end()}o=!1}finally{if(o&&i)try{s.closeSync(i)}catch(e){}}},h=(e,t)=>{const r=new o(e),n=e.maxReadSize||16777216,i=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("end",e),s.stat(i,(e,o)=>{if(e)t(e);else{const e=new A.ReadStream(i,{readSize:n,size:o.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},g=e=>new o(e)},65865:(e,t,r)=>{"use strict";const n=r(11436),i=r(35747),o=r(85622),s=r(82758);class A extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}}class a extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}}e.exports=(e,t,r)=>{const A=t.umask,u=448|t.mode,l=0!=(u&A),h=t.uid,g=t.gid,f="number"==typeof h&&"number"==typeof g&&(h!==t.processUid||g!==t.processGid),p=t.preserve,d=t.unlink,C=t.cache,E=t.cwd,I=(t,n)=>{t?r(t):(C.set(e,!0),n&&f?s(n,h,g,e=>I(e)):l?i.chmod(e,u,r):r())};if(C&&!0===C.get(e))return I();if(e===E)return i.stat(e,(t,r)=>{!t&&r.isDirectory()||(t=new a(e,t&&t.code||"ENOTDIR")),I(t)});if(p)return n(e,u,I);const m=o.relative(E,e).split(/\/|\\/);c(E,m,u,C,d,E,null,I)};const c=(e,t,r,n,o,s,A,a)=>{if(!t.length)return a(null,A);const l=e+"/"+t.shift();if(n.get(l))return c(l,t,r,n,o,s,A,a);i.mkdir(l,r,u(l,t,r,n,o,s,A,a))},u=(e,t,r,n,s,l,h,g)=>f=>{if(f){if(f.path&&o.dirname(f.path)===l&&("ENOTDIR"===f.code||"ENOENT"===f.code))return g(new a(l,f.code));i.lstat(e,(o,a)=>{if(o)g(o);else if(a.isDirectory())c(e,t,r,n,s,l,h,g);else if(s)i.unlink(e,o=>{if(o)return g(o);i.mkdir(e,r,u(e,t,r,n,s,l,h,g))});else{if(a.isSymbolicLink())return g(new A(e,e+"/"+t.join("/")));g(f)}})}else c(e,t,r,n,s,l,h=h||e,g)};e.exports.sync=(e,t)=>{const r=t.umask,c=448|t.mode,u=0!=(c&r),l=t.uid,h=t.gid,g="number"==typeof l&&"number"==typeof h&&(l!==t.processUid||h!==t.processGid),f=t.preserve,p=t.unlink,d=t.cache,C=t.cwd,E=t=>{d.set(e,!0),t&&g&&s.sync(t,l,h),u&&i.chmodSync(e,c)};if(d&&!0===d.get(e))return E();if(e===C){let t=!1,r="ENOTDIR";try{t=i.statSync(e).isDirectory()}catch(e){r=e.code}finally{if(!t)throw new a(e,r)}return void E()}if(f)return E(n.sync(e,c));const I=o.relative(C,e).split(/\/|\\/);let m=null;for(let e=I.shift(),t=C;e&&(t+="/"+e);e=I.shift())if(!d.get(t))try{i.mkdirSync(t,c),m=m||t,d.set(t,!0)}catch(e){if(e.path&&o.dirname(e.path)===C&&("ENOTDIR"===e.code||"ENOENT"===e.code))return new a(C,e.code);const r=i.lstatSync(t);if(r.isDirectory()){d.set(t,!0);continue}if(p){i.unlinkSync(t),i.mkdirSync(t,c),m=m||t,d.set(t,!0);continue}if(r.isSymbolicLink())return new A(t,t+"/"+I.join("/"))}return E(m)}},11754:e=>{"use strict";e.exports=(e,t)=>(e&=4095,t&&(256&e&&(e|=64),32&e&&(e|=8),4&e&&(e|=1)),e)},29231:(e,t,r)=>{"use strict";const n=r(15135);class i{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}}const o=r(44380),s=r(20671),A=r(88658),a=r(27052),c=a.Sync,u=a.Tar,l=r(80800),h=n.alloc(1024),g=Symbol("onStat"),f=Symbol("ended"),p=Symbol("queue"),d=Symbol("current"),C=Symbol("process"),E=Symbol("processing"),I=Symbol("processJob"),m=Symbol("jobs"),y=Symbol("jobDone"),w=Symbol("addFSEntry"),B=Symbol("addTarEntry"),Q=Symbol("stat"),v=Symbol("readdir"),D=Symbol("onreaddir"),b=Symbol("pipe"),S=Symbol("entry"),k=Symbol("entryOpt"),x=Symbol("writeEntryClass"),F=Symbol("write"),M=Symbol("ondrain"),N=r(35747),R=r(85622),K=r(7994)(class extends o{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[x]=a,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),this.zip=null,e.gzip?("object"!=typeof e.gzip&&(e.gzip={}),this.zip=new s.Gzip(e.gzip),this.zip.on("data",e=>super.write(e)),this.zip.on("end",e=>super.end()),this.zip.on("drain",e=>this[M]()),this.on("resume",e=>this.zip.resume())):this.on("drain",this[M]),this.portable=!!e.portable,this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter="function"==typeof e.filter?e.filter:e=>!0,this[p]=new l,this[m]=0,this.jobs=+e.jobs||4,this[E]=!1,this[f]=!1}[F](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[C](),this}write(e){if(this[f])throw new Error("write after end");return e instanceof A?this[B](e):this[w](e),this.flowing}[B](e){const t=R.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),this.filter(e.path,e)){const r=new i(e.path,t,!1);r.entry=new u(e,this[k](r)),r.entry.on("end",e=>this[y](r)),this[m]+=1,this[p].push(r)}else e.resume();this[C]()}[w](e){const t=R.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[p].push(new i(e,t)),this[C]()}[Q](e){e.pending=!0,this[m]+=1;const t=this.follow?"stat":"lstat";N[t](e.absolute,(t,r)=>{e.pending=!1,this[m]-=1,t?this.emit("error",t):this[g](e,r)})}[g](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[C]()}[v](e){e.pending=!0,this[m]+=1,N.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[m]-=1,t)return this.emit("error",t);this[D](e,r)})}[D](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[C]()}[C](){if(!this[E]){this[E]=!0;for(let e=this[p].head;null!==e&&this[m]<this.jobs;e=e.next)if(this[I](e.value),e.value.ignore){const t=e.next;this[p].removeNode(e),e.next=t}this[E]=!1,this[f]&&!this[p].length&&0===this[m]&&(this.zip?this.zip.end(h):(super.write(h),super.end()))}}get[d](){return this[p]&&this[p].head&&this[p].head.value}[y](e){this[p].shift(),this[m]-=1,this[C]()}[I](e){e.pending||(e.entry?e!==this[d]||e.piped||this[b](e):(e.stat||(this.statCache.has(e.absolute)?this[g](e,this.statCache.get(e.absolute)):this[Q](e)),e.stat&&(e.ignore||(this.noDirRecurse||!e.stat.isDirectory()||e.readdir||(this.readdirCache.has(e.absolute)?this[D](e,this.readdirCache.get(e.absolute)):this[v](e),e.readdir))&&(e.entry=this[S](e),e.entry?e!==this[d]||e.piped||this[b](e):e.ignore=!0))))}[k](e){return{onwarn:(e,t)=>{this.warn(e,t)},noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[S](e){this[m]+=1;try{return new this[x](e.path,this[k](e)).on("end",()=>this[y](e)).on("error",e=>this.emit("error",e))}catch(e){this.emit("error",e)}}[M](){this[d]&&this[d].entry&&this[d].entry.resume()}[b](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)});const t=e.entry,r=this.zip;r?t.on("data",e=>{r.write(e)||t.pause()}):t.on("data",e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});K.Sync=class extends K{constructor(e){super(e),this[x]=c}pause(){}resume(){}[Q](e){const t=this.follow?"statSync":"lstatSync";this[g](e,N[t](e.absolute))}[v](e,t){this[D](e,N.readdirSync(e.absolute))}[b](e){const t=e.entry,r=this.zip;e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)}),r?t.on("data",e=>{r.write(e)}):t.on("data",e=>{super[F](e)})}},e.exports=K},67501:(e,t,r)=>{"use strict";const n=r(7994),i=(r(85622),r(46464)),o=r(28614),s=r(80800),A=r(88658),a=r(76516),c=r(20671),u=r(15135),l=u.from([31,139]),h=Symbol("state"),g=Symbol("writeEntry"),f=Symbol("readEntry"),p=Symbol("nextEntry"),d=Symbol("processEntry"),C=Symbol("extendedHeader"),E=Symbol("globalExtendedHeader"),I=Symbol("meta"),m=Symbol("emitMeta"),y=Symbol("buffer"),w=Symbol("queue"),B=Symbol("ended"),Q=Symbol("emittedEnd"),v=Symbol("emit"),D=Symbol("unzip"),b=Symbol("consumeChunk"),S=Symbol("consumeChunkSub"),k=Symbol("consumeBody"),x=Symbol("consumeMeta"),F=Symbol("consumeHeader"),M=Symbol("consuming"),N=Symbol("bufferConcat"),R=Symbol("maybeEnd"),K=Symbol("writing"),L=Symbol("aborted"),T=Symbol("onDone"),P=e=>!0;e.exports=n(class extends o{constructor(e){super(e=e||{}),e.ondone?this.on(T,e.ondone):this.on(T,e=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||1048576,this.filter="function"==typeof e.filter?e.filter:P,this.writable=!0,this.readable=!1,this[w]=new s,this[y]=null,this[f]=null,this[g]=null,this[h]="begin",this[I]="",this[C]=null,this[E]=null,this[B]=!1,this[D]=null,this[L]=!1,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),"function"==typeof e.onentry&&this.on("entry",e.onentry)}[F](e,t){let r;try{r=new i(e,t,this[C],this[E])}catch(e){return this.warn("invalid entry",e)}if(r.nullBlock)this[v]("nullBlock");else if(r.cksumValid)if(r.path){const e=r.type;if(/^(Symbolic)?Link$/.test(e)&&!r.linkpath)this.warn("invalid: linkpath required",r);else if(!/^(Symbolic)?Link$/.test(e)&&r.linkpath)this.warn("invalid: linkpath forbidden",r);else{const e=this[g]=new A(r,this[C],this[E]);e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[v]("ignoredEntry",e),this[h]="ignore"):e.size>0&&(this[I]="",e.on("data",e=>this[I]+=e),this[h]="meta"):(this[C]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[v]("ignoredEntry",e),this[h]=e.remain?"ignore":"begin"):(e.remain?this[h]="body":(this[h]="begin",e.end()),this[f]?this[w].push(e):(this[w].push(e),this[p]())))}}else this.warn("invalid: path is required",r);else this.warn("invalid entry",r)}[d](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[f]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",e=>this[p]()),t=!1)):(this[f]=null,t=!1),t}[p](){do{}while(this[d](this[w].shift()));if(!this[w].length){const e=this[f];!e||e.flowing||e.size===e.remain?this[K]||this.emit("drain"):e.once("drain",e=>this.emit("drain"))}}[k](e,t){const r=this[g],n=r.blockRemain,i=n>=e.length&&0===t?e:e.slice(t,t+n);return r.write(i),r.blockRemain||(this[h]="begin",this[g]=null,r.end()),i.length}[x](e,t){const r=this[g],n=this[k](e,t);return this[g]||this[m](r),n}[v](e,t,r){this[w].length||this[f]?this[w].push([e,t,r]):this.emit(e,t,r)}[m](e){switch(this[v]("meta",this[I]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[C]=a.parse(this[I],this[C],!1);break;case"GlobalExtendedHeader":this[E]=a.parse(this[I],this[E],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[C]=this[C]||Object.create(null),this[C].path=this[I].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[C]=this[C]||Object.create(null),this[C].linkpath=this[I].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e,t){this[L]=!0,this.warn(e,t),this.emit("abort",t),this.emit("error",t)}write(e){if(this[L])return;if(null===this[D]&&e){if(this[y]&&(e=u.concat([this[y],e]),this[y]=null),e.length<l.length)return this[y]=e,!0;for(let t=0;null===this[D]&&t<l.length;t++)e[t]!==l[t]&&(this[D]=!1);if(null===this[D]){const t=this[B];this[B]=!1,this[D]=new c.Unzip,this[D].on("data",e=>this[b](e)),this[D].on("error",e=>this.abort(e.message,e)),this[D].on("end",e=>{this[B]=!0,this[b]()}),this[K]=!0;const r=this[D][t?"end":"write"](e);return this[K]=!1,r}}this[K]=!0,this[D]?this[D].write(e):this[b](e),this[K]=!1;const t=!this[w].length&&(!this[f]||this[f].flowing);return t||this[w].length||this[f].once("drain",e=>this.emit("drain")),t}[N](e){e&&!this[L]&&(this[y]=this[y]?u.concat([this[y],e]):e)}[R](){if(this[B]&&!this[Q]&&!this[L]&&!this[M]){this[Q]=!0;const e=this[g];if(e&&e.blockRemain){const t=this[y]?this[y].length:0;this.warn("Truncated input (needed "+e.blockRemain+" more bytes, only "+t+" available)",e),this[y]&&e.write(this[y]),e.end()}this[v](T)}}[b](e){if(this[M])this[N](e);else if(e||this[y]){if(this[M]=!0,this[y]){this[N](e);const t=this[y];this[y]=null,this[S](t)}else this[S](e);for(;this[y]&&this[y].length>=512&&!this[L];){const e=this[y];this[y]=null,this[S](e)}this[M]=!1}else this[R]();this[y]&&!this[B]||this[R]()}[S](e){let t=0,r=e.length;for(;t+512<=r&&!this[L];)switch(this[h]){case"begin":this[F](e,t),t+=512;break;case"ignore":case"body":t+=this[k](e,t);break;case"meta":t+=this[x](e,t);break;default:throw new Error("invalid state: "+this[h])}t<r&&(this[y]?this[y]=u.concat([e.slice(t),this[y]]):this[y]=e.slice(t))}end(e){this[L]||(this[D]?this[D].end(e):(this[B]=!0,this.write(e)))}})},76516:(e,t,r)=>{"use strict";const n=r(15135),i=r(46464),o=r(85622);class s{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){const e=this.encodeBody();if(""===e)return null;const t=n.byteLength(e),r=512*Math.ceil(1+t/512),s=n.allocUnsafe(r);for(let e=0;e<512;e++)s[e]=0;new i({path:("PaxHeader/"+o.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(s),s.write(e,512,t,"utf8");for(let e=t+512;e<s.length;e++)s[e]=0;return s}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(null===this[e]||void 0===this[e])return"";const t=" "+("dev"===e||"ino"===e||"nlink"===e?"SCHILY.":"")+e+"="+(this[e]instanceof Date?this[e].getTime()/1e3:this[e])+"\n",r=n.byteLength(t);let i=Math.floor(Math.log(r)/Math.log(10))+1;r+i>=Math.pow(10,i)&&(i+=1);return i+r+t}}s.parse=(e,t,r)=>new s(A(a(e),t),r);const A=(e,t)=>t?Object.keys(e).reduce((t,r)=>(t[r]=e[r],t),t):e,a=e=>e.replace(/\n$/,"").split("\n").reduce(c,Object.create(null)),c=(e,t)=>{const r=parseInt(t,10);if(r!==n.byteLength(t)+1)return e;const i=(t=t.substr((r+" ").length)).split("="),o=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!o)return e;const s=i.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(1e3*s):/^[0-9]+$/.test(s)?+s:s,e};e.exports=s},88658:(e,t,r)=>{"use strict";r(6464);const n=r(44380),i=Symbol("slurp");e.exports=class extends n{constructor(e,t,r){switch(super(),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=4095&this.mode),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[i](t),r&&this[i](r,!0)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");const r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),!!this.ignore||(r>=t?super.write(e):super.write(e.slice(0,r)))}[i](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}}},84208:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(29231),s=(r(67501),r(35747)),A=r(28123),a=r(54768),c=r(85622),u=r(46464),l=(e.exports=(e,t,r)=>{const n=i(e);if(!n.file)throw new TypeError("file is required");if(n.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),n.sync?l(n,t):g(n,t,r)},(e,t)=>{const r=new o.Sync(e);let i,A,a=!0;try{try{i=s.openSync(e.file,"r+")}catch(t){if("ENOENT"!==t.code)throw t;i=s.openSync(e.file,"w+")}const o=s.fstatSync(i),c=n.alloc(512);e:for(A=0;A<o.size;A+=512){for(let e=0,t=0;e<512;e+=t){if(t=s.readSync(i,c,e,c.length-e,A+e),0===A&&31===c[0]&&139===c[1])throw new Error("cannot append to compressed archives");if(!t)break e}let t=new u(c);if(!t.cksumValid)break;let r=512*Math.ceil(t.size/512);if(A+r+512>o.size)break;A+=r,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}a=!1,h(e,r,A,i,t)}finally{if(a)try{s.closeSync(i)}catch(e){}}}),h=(e,t,r,n,i)=>{const o=new A.WriteStreamSync(e.file,{fd:n,start:r});t.pipe(o),f(t,i)},g=(e,t,r)=>{t=Array.from(t);const i=new o(e),a=new Promise((r,o)=>{i.on("error",o);let a="r+";const c=(l,h)=>l&&"ENOENT"===l.code&&"r+"===a?(a="w+",s.open(e.file,a,c)):l?o(l):void s.fstat(h,(a,c)=>{if(a)return o(a);((t,r,i)=>{const o=(e,r)=>{e?s.close(t,t=>i(e)):i(null,r)};let A=0;if(0===r)return o(null,0);let a=0;const c=n.alloc(512),l=(n,i)=>{if(n)return o(n);if(a+=i,a<512&&i)return s.read(t,c,a,c.length-a,A+a,l);if(0===A&&31===c[0]&&139===c[1])return o(new Error("cannot append to compressed archives"));if(a<512)return o(null,A);const h=new u(c);if(!h.cksumValid)return o(null,A);const g=512*Math.ceil(h.size/512);return A+g+512>r?o(null,A):(A+=g+512,A>=r?o(null,A):(e.mtimeCache&&e.mtimeCache.set(h.path,h.mtime),a=0,void s.read(t,c,0,512,A,l)))};s.read(t,c,0,512,A,l)})(h,c.size,(n,s)=>{if(n)return o(n);const a=new A.WriteStream(e.file,{fd:h,start:s});i.pipe(a),a.on("error",o),a.on("close",r),p(i,t)})});s.open(e.file,a,c)});return r?a.then(r,r):a},f=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?a({file:c.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return a({file:c.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>p(e,t));e.add(r)}e.end()}},6464:(e,t)=>{"use strict";t.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),t.code=new Map(Array.from(t.name).map(e=>[e[1],e[0]]))},43915:(e,t,r)=>{"use strict";const n=r(42357),i=(r(28614).EventEmitter,r(67501)),o=r(35747),s=r(28123),A=r(85622),a=r(65865),c=(a.sync,r(86895)),u=Symbol("onEntry"),l=Symbol("checkFs"),h=Symbol("isReusable"),g=Symbol("makeFs"),f=Symbol("file"),p=Symbol("directory"),d=Symbol("link"),C=Symbol("symlink"),E=Symbol("hardlink"),I=Symbol("unsupported"),m=(Symbol("unknown"),Symbol("checkPath")),y=Symbol("mkdir"),w=Symbol("onError"),B=Symbol("pending"),Q=Symbol("pend"),v=Symbol("unpend"),D=Symbol("ended"),b=Symbol("maybeClose"),S=Symbol("skip"),k=Symbol("doChown"),x=Symbol("uid"),F=Symbol("gid"),M=r(76417),N=(e,t,r)=>e===e>>>0?e:t===t>>>0?t:r;class R extends i{constructor(e){if(e||(e={}),e.ondone=e=>{this[D]=!0,this[b]()},super(e),this.transform="function"==typeof e.transform?e.transform:null,this.writable=!0,this.readable=!1,this[B]=0,this[D]=!1,this.dirCache=e.dirCache||new Map,"number"==typeof e.uid||"number"==typeof e.gid){if("number"!=typeof e.uid||"number"!=typeof e.gid)throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;void 0===e.preserveOwner&&"number"!=typeof e.uid?this.preserveOwner=process.getuid&&0===process.getuid():this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=!0===e.forceChown,this.win32=!!e.win32||"win32"===process.platform,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=A.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask="number"==typeof e.umask?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",e=>this[u](e))}[b](){this[D]&&0===this[B]&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[m](e){if(this.strip){const t=e.path.split(/\/|\\/);if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),"Link"===e.type){const t=e.linkpath.split(/\/|\\/);t.length>=this.strip&&(e.linkpath=t.slice(this.strip).join("/"))}}if(!this.preservePaths){const t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("path contains '..'",t),!1;if(A.win32.isAbsolute(t)){const r=A.win32.parse(t);this.warn("stripping "+r.root+" from absolute path",t),e.path=t.substr(r.root.length)}}if(this.win32){const t=A.win32.parse(e.path);e.path=""===t.root?c.encode(e.path):t.root+c.encode(e.path.substr(t.root.length))}return A.isAbsolute(e.path)?e.absolute=e.path:e.absolute=A.resolve(this.cwd,e.path),!0}[u](e){if(!this[m](e))return e.resume();switch(n.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=448|e.mode);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[l](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[I](e)}}[w](e,t){"CwdError"===e.name?this.emit("error",e):(this.warn(e.message,e),this[v](),t.resume())}[y](e,t,r){a(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},r)}[k](e){return this.forceChown||this.preserveOwner&&("number"==typeof e.uid&&e.uid!==this.processUid||"number"==typeof e.gid&&e.gid!==this.processGid)||"number"==typeof this.uid&&this.uid!==this.processUid||"number"==typeof this.gid&&this.gid!==this.processGid}[x](e){return N(this.uid,e.uid,this.processUid)}[F](e){return N(this.gid,e.gid,this.processGid)}[f](e){const t=4095&e.mode||this.fmode,r=new s.WriteStream(e.absolute,{mode:t,autoClose:!1});r.on("error",t=>this[w](t,e));let n=1;const i=t=>{if(t)return this[w](t,e);0==--n&&o.close(r.fd,e=>this[v]())};r.on("finish",t=>{const s=e.absolute,A=r.fd;if(e.mtime&&!this.noMtime){n++;const t=e.atime||new Date,r=e.mtime;o.futimes(A,t,r,e=>e?o.utimes(s,t,r,t=>i(t&&e)):i())}if(this[k](e)){n++;const t=this[x](e),r=this[F](e);o.fchown(A,t,r,e=>e?o.chown(s,t,r,t=>i(t&&e)):i())}i()});const A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",t=>this[w](t,e)),e.pipe(A)),A.pipe(r)}[p](e){const t=4095&e.mode||this.dmode;this[y](e.absolute,t,t=>{if(t)return this[w](t,e);let r=1;const n=t=>{0==--r&&(this[v](),e.resume())};e.mtime&&!this.noMtime&&(r++,o.utimes(e.absolute,e.atime||new Date,e.mtime,n)),this[k](e)&&(r++,o.chown(e.absolute,this[x](e),this[F](e),n)),n()})}[I](e){this.warn("unsupported entry type: "+e.type,e),e.resume()}[C](e){this[d](e,e.linkpath,"symlink")}[E](e){this[d](e,A.resolve(this.cwd,e.linkpath),"link")}[Q](){this[B]++}[v](){this[B]--,this[b]()}[S](e){this[v](),e.resume()}[h](e,t){return"File"===e.type&&!this.unlink&&t.isFile()&&t.nlink<=1&&"win32"!==process.platform}[l](e){this[Q](),this[y](A.dirname(e.absolute),this.dmode,t=>{if(t)return this[w](t,e);o.lstat(e.absolute,(t,r)=>{r&&(this.keep||this.newer&&r.mtime>e.mtime)?this[S](e):t||this[h](e,r)?this[g](null,e):r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode?o.chmod(e.absolute,e.mode,t=>this[g](t,e)):this[g](null,e):o.rmdir(e.absolute,t=>this[g](t,e)):((e,t)=>{if("win32"!==process.platform)return o.unlink(e,t);const r=e+".DELETE."+M.randomBytes(16).toString("hex");o.rename(e,r,e=>{if(e)return t(e);o.unlink(r,t)})})(e.absolute,t=>this[g](t,e))})})}[g](e,t){if(e)return this[w](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[f](t);case"Link":return this[E](t);case"SymbolicLink":return this[C](t);case"Directory":case"GNUDumpDir":return this[p](t)}}[d](e,t,r){o[r](t,e.absolute,t=>{if(t)return this[w](t,e);this[v](),e.resume()})}}R.Sync=class extends R{constructor(e){super(e)}[l](e){const t=this[y](A.dirname(e.absolute),this.dmode);if(t)return this[w](t,e);try{const r=o.lstatSync(e.absolute);if(this.keep||this.newer&&r.mtime>e.mtime)return this[S](e);if(this[h](e,r))return this[g](null,e);try{return r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode&&o.chmodSync(e.absolute,e.mode):o.rmdirSync(e.absolute):(e=>{if("win32"!==process.platform)return o.unlinkSync(e);const t=e+".DELETE."+M.randomBytes(16).toString("hex");o.renameSync(e,t),o.unlinkSync(t)})(e.absolute),this[g](null,e)}catch(t){return this[w](t,e)}}catch(t){return this[g](null,e)}}[f](e){const t=4095&e.mode||this.fmode,r=t=>{try{o.closeSync(n)}catch(e){}t&&this[w](t,e)};let n;try{n=o.openSync(e.absolute,"w",t)}catch(e){return r(e)}const i=this.transform&&this.transform(e)||e;i!==e&&(i.on("error",t=>this[w](t,e)),e.pipe(i)),i.on("data",e=>{try{o.writeSync(n,e,0,e.length)}catch(e){r(e)}}),i.on("end",t=>{let i=null;if(e.mtime&&!this.noMtime){const t=e.atime||new Date,r=e.mtime;try{o.futimesSync(n,t,r)}catch(n){try{o.utimesSync(e.absolute,t,r)}catch(e){i=n}}}if(this[k](e)){const t=this[x](e),r=this[F](e);try{o.fchownSync(n,t,r)}catch(n){try{o.chownSync(e.absolute,t,r)}catch(e){i=i||n}}}r(i)})}[p](e){const t=4095&e.mode||this.dmode,r=this[y](e.absolute,t);if(r)return this[w](r,e);if(e.mtime&&!this.noMtime)try{o.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(r){}if(this[k](e))try{o.chownSync(e.absolute,this[x](e),this[F](e))}catch(r){}e.resume()}[y](e,t){try{return a.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[d](e,t,r){try{o[r+"Sync"](t,e.absolute),e.resume()}catch(t){return this[w](t,e)}}},e.exports=R},68965:(e,t,r)=>{"use strict";const n=r(59087),i=r(84208),o=(e.exports=(e,t,r)=>{const s=n(e);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),o(s),i(s,t,r)},e=>{const t=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=t?(r,n)=>t(r,n)&&!(e.mtimeCache.get(r)>n.mtime):(t,r)=>!(e.mtimeCache.get(t)>r.mtime)})},7994:e=>{"use strict";e.exports=e=>class extends e{warn(e,t){if(this.strict)if(t instanceof Error)this.emit("error",t);else{const r=new Error(e);r.data=t,this.emit("error",r)}else this.emit("warn",e,t)}}},86895:e=>{"use strict";const t=["|","<",">","?",":"],r=t.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),n=new Map(t.map((e,t)=>[e,r[t]])),i=new Map(r.map((e,r)=>[e,t[r]]));e.exports={encode:e=>t.reduce((e,t)=>e.split(t).join(n.get(t)),e),decode:e=>r.reduce((e,t)=>e.split(t).join(i.get(t)),e)}},27052:(e,t,r)=>{"use strict";const n=r(15135),i=r(44380),o=r(76516),s=r(46464),A=(r(88658),r(35747)),a=r(85622),c=(r(6464),Symbol("process")),u=Symbol("file"),l=Symbol("directory"),h=Symbol("symlink"),g=Symbol("hardlink"),f=Symbol("header"),p=Symbol("read"),d=Symbol("lstat"),C=Symbol("onlstat"),E=Symbol("onread"),I=Symbol("onreadlink"),m=Symbol("openfile"),y=Symbol("onopenfile"),w=Symbol("close"),B=Symbol("mode"),Q=r(7994),v=r(86895),D=r(11754),b=Q(class extends i{constructor(e,t){if(super(t=t||{}),"string"!=typeof e)throw new TypeError("path is required");if(this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||16777216,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),!this.preservePaths&&a.win32.isAbsolute(e)){const t=a.win32.parse(e);this.warn("stripping "+t.root+" from absolute path",e),this.path=e.substr(t.root.length)}this.win32=!!t.win32||"win32"===process.platform,this.win32&&(this.path=v.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||a.resolve(this.cwd,e),""===this.path&&(this.path="./"),this.statCache.has(this.absolute)?this[C](this.statCache.get(this.absolute)):this[d]()}[d](){A.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[C](t)})}[C](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=k(e),this.emit("stat",e),this[c]()}[c](){switch(this.type){case"File":return this[u]();case"Directory":return this[l]();case"SymbolicLink":return this[h]();default:return this.end()}}[B](e){return D(e,"Directory"===this.type)}[f](){"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.header=new s({path:this.path,linkpath:this.linkpath,mode:this[B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new o({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[l](){"/"!==this.path.substr(-1)&&(this.path+="/"),this.stat.size=0,this[f](),this.end()}[h](){A.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[I](t)})}[I](e){this.linkpath=e,this[f](),this.end()}[g](e){this.type="Link",this.linkpath=a.relative(this.cwd,e),this.stat.size=0,this[f](),this.end()}[u](){if(this.stat.nlink>1){const e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){const t=this.linkCache.get(e);if(0===t.indexOf(this.cwd))return this[g](t)}this.linkCache.set(e,this.absolute)}if(this[f](),0===this.stat.size)return this.end();this[m]()}[m](){A.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[y](t)})}[y](e){const t=512*Math.ceil(this.stat.size/512),r=Math.min(t,this.maxReadSize),i=n.allocUnsafe(r);this[p](e,i,0,i.length,0,this.stat.size,t)}[p](e,t,r,n,i,o,s){A.read(e,t,r,n,i,(A,a)=>{if(A)return this[w](e,e=>this.emit("error",A));this[E](e,t,r,n,i,o,s,a)})}[w](e,t){A.close(e,t)}[E](e,t,r,i,o,s,A,a){if(a<=0&&s>0){const t=new Error("encountered unexpected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a>s){const t=new Error("did not encounter expected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a===s)for(let e=a;e<i&&a<A;e++)t[e+r]=0,a++,s++;const c=0===r&&a===t.length?t:t.slice(r,r+a);if(s-=a,A-=a,o+=a,r+=a,this.write(c),!s)return A&&this.write(n.alloc(A)),this.end(),void this[w](e,e=>e);r>=i&&(t=n.allocUnsafe(i),r=0),i=t.length-r,this[p](e,t,r,i,o,s,A)}});const S=Q(class extends i{constructor(e,t){if(super(t=t||{}),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),a.isAbsolute(this.path)&&!this.preservePaths){const e=a.parse(this.path);this.warn("stripping "+e.root+" from absolute path",this.path),this.path=this.path.substr(e.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new s({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),this.header.encode()&&!this.noPax&&super.write(new o({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[B](e){return D(e,"Directory"===this.type)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(n.alloc(this.blockRemain)),super.end()}});b.Sync=class extends b{constructor(e,t){super(e,t)}[d](){this[C](A.lstatSync(this.absolute))}[h](){this[I](A.readlinkSync(this.absolute))}[m](){this[y](A.openSync(this.absolute,"r"))}[p](e,t,r,n,i,o,s){let a=!0;try{const c=A.readSync(e,t,r,n,i);this[E](e,t,r,n,i,o,s,c),a=!1}finally{if(a)try{this[w](e)}catch(e){}}}[w](e){A.closeSync(e)}},b.Tar=S;const k=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported";e.exports=b},75799:(e,t,r)=>{var n=r(31669),i=r(73975),o=r(77686),s=r(86897).Writable,A=r(86897).PassThrough,a=function(){},c=function(e){return(e&=511)&&512-e},u=function(e,t){this._parent=e,this.offset=t,A.call(this)};n.inherits(u,A),u.prototype.destroy=function(e){this._parent.destroy(e)};var l=function(e){if(!(this instanceof l))return new l(e);s.call(this,e),e=e||{},this._offset=0,this._buffer=i(),this._missing=0,this._partial=!1,this._onparse=a,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},A=function(e){if(t._locked=!1,e)return t.destroy(e);t._stream||n()},h=function(){t._stream=null;var e=c(t._header.size);e?t._parse(e,g):t._parse(512,E),t._locked||n()},g=function(){t._buffer.consume(c(t._header.size)),t._parse(512,E),n()},f=function(){var e=t._header.size;t._paxGlobal=o.decodePax(r.slice(0,e)),r.consume(e),h()},p=function(){var e=t._header.size;t._pax=o.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),h()},d=function(){var n=t._header.size;this._gnuLongPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},C=function(){var n=t._header.size;this._gnuLongLinkPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},E=function(){var i,s=t._offset;try{i=t._header=o.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return r.consume(512),i?"gnu-long-path"===i.type?(t._parse(i.size,d),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,C),void n()):"pax-global-header"===i.type?(t._parse(i.size,f),void n()):"pax-header"===i.type?(t._parse(i.size,p),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e}(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?(t._stream=new u(t,s),t.emit("entry",i,t._stream,A),t._parse(i.size,h),void n()):(t._parse(512,E),void t.emit("entry",i,function(e,t){var r=new u(e,t);return r.end(),r}(t,s),A))):(t._parse(512,E),void n())};this._onheader=E,this._parse(512,E)};n.inherits(l,s),l.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},l.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},l.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=a,this._overflow?this._write(this._overflow,void 0,e):e()}},l.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,i=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.length<o)return this._missing-=e.length,this._overflow=null,n?n.write(e,r):(i.append(e),r());this._cb=r,this._missing=0;var s=null;e.length>o&&(s=e.slice(o),e=e.slice(0,o)),n?n.end(e):i.append(e),this._overflow=s,this._onparse()}},l.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()},e.exports=l},77686:(e,t)=>{var r=Buffer.alloc,n="0".charCodeAt(0),i=parseInt("7777",8),o=function(e,t,r,n){for(;r<n;r++)if(e[r]===t)return r;return n},s=function(e){for(var t=256,r=0;r<148;r++)t+=e[r];for(var n=156;n<512;n++)t+=e[n];return t},A=function(e,t){return(e=e.toString(8)).length>t?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "};var a=function(e,t,r){if(128&(e=e.slice(t,t+r))[t=0])return function(e){var t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}for(var r=!1,n=[],i=e.length-1;i>0;i--){var o=e[i];t?n.push(o):r&&0===o?n.push(0):r?(r=!1,n.push(256-o)):n.push(255-o)}var s=0,A=n.length;for(i=0;i<A;i++)s+=n[i]*Math.pow(256,i);return t?s:-1*s}(e);for(;t<e.length&&32===e[t];)t++;for(var n=(i=o(e,32,t,e.length),s=e.length,A=e.length,"number"!=typeof i?A:(i=~~i)>=s?s:i>=0||(i+=s)>=0?i:0);t<n&&0===e[t];)t++;return n===t?0:parseInt(e.slice(t,n).toString(),8);var i,s,A},c=function(e,t,r,n){return e.slice(t,o(e,0,t,t+r)).toString(n)},u=function(e){var t=Buffer.byteLength(e),r=Math.floor(Math.log(t)/Math.log(10))+1;return t+r>=Math.pow(10,r)&&r++,t+r+e};t.decodeLongPath=function(e,t){return c(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=u(" path="+e.name+"\n")),e.linkname&&(t+=u(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=u(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r<e.length&&32!==e[r];)r++;var n=parseInt(e.slice(0,r).toString(),10);if(!n)return t;var i=e.slice(r+1,n-1).toString(),o=i.indexOf("=");if(-1===o)return t;t[i.slice(0,o)]=i.slice(o+1),e=e.slice(n)}return t},t.encode=function(e){var t=r(512),o=e.name,a="";if(5===e.typeflag&&"/"!==o[o.length-1]&&(o+="/"),Buffer.byteLength(o)!==o.length)return null;for(;Buffer.byteLength(o)>100;){var c=o.indexOf("/");if(-1===c)return null;a+=a?"/"+o.slice(0,c):o.slice(0,c),o=o.slice(c+1)}return Buffer.byteLength(o)>100||Buffer.byteLength(a)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(o),t.write(A(e.mode&i,6),100),t.write(A(e.uid,6),108),t.write(A(e.gid,6),116),t.write(A(e.size,11),124),t.write(A(e.mtime.getTime()/1e3|0,11),136),t[156]=n+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&t.write(e.linkname,157),t.write("ustar\x0000",257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(A(e.devmajor||0,6),329),t.write(A(e.devminor||0,6),337),a&&t.write(a,345),t.write(A(s(t),6),148),t)},t.decode=function(e,t){var r=0===e[156]?0:e[156]-n,i=c(e,0,100,t),o=a(e,100,8),A=a(e,108,8),u=a(e,116,8),l=a(e,124,12),h=a(e,136,12),g=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(r),f=0===e[157]?null:c(e,157,100,t),p=c(e,265,32),d=c(e,297,32),C=a(e,329,8),E=a(e,337,8);e[345]&&(i=c(e,345,155,t)+"/"+i),0===r&&i&&"/"===i[i.length-1]&&(r=5);var I=s(e);if(256===I)return null;if(I!==a(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:i,mode:o,uid:A,gid:u,size:l,mtime:new Date(1e3*h),type:g,linkname:f,uname:p,gname:d,devmajor:C,devminor:E}}},59938:(e,t,r)=>{r(75799),t.P=r(72203)},72203:(e,t,r)=>{var n=r(13302),i=r(17067),o=r(85870),s=Buffer.alloc,A=r(86897).Readable,a=r(86897).Writable,c=r(24304).StringDecoder,u=r(77686),l=parseInt("755",8),h=parseInt("644",8),g=s(1024),f=function(){},p=function(e,t){(t&=511)&&e.push(g.slice(0,512-t))};var d=function(e){a.call(this),this.written=0,this._to=e,this._destroyed=!1};o(d,a),d.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r},d.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var C=function(){a.call(this),this.linkname="",this._decoder=new c("utf-8"),this._destroyed=!1};o(C,a),C.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},C.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var E=function(){a.call(this),this._destroyed=!1};o(E,a),E.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},E.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var I=function(e){if(!(this instanceof I))return new I(e);A.call(this,e),this._drain=f,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};o(I,A),I.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!this._finalized&&!this._destroyed){"function"==typeof t&&(r=t,t=null),r||(r=f);var o=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=function(e){switch(e&n.S_IFMT){case n.S_IFBLK:return"block-device";case n.S_IFCHR:return"character-device";case n.S_IFDIR:return"directory";case n.S_IFIFO:return"fifo";case n.S_IFLNK:return"symlink"}return"file"}(e.mode)),e.mode||(e.mode="directory"===e.type?l:h),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t))return e.size=t.length,this._encode(e),this.push(t),p(o,e.size),process.nextTick(r),new E;if("symlink"===e.type&&!e.linkname){var s=new C;return i(s,(function(t){if(t)return o.destroy(),r(t);e.linkname=s.linkname,o._encode(e),r()})),s}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new E;var A=new d(this);return this._stream=A,i(A,(function(t){return o._stream=null,t?(o.destroy(),r(t)):A.written!==e.size?(o.destroy(),r(new Error("size mismatch"))):(p(o,e.size),o._finalizing&&o.finalize(),void r())})),A}},I.prototype.finalize=function(){this._stream?this._finalizing=!0:this._finalized||(this._finalized=!0,this.push(g),this.push(null))},I.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},I.prototype._encode=function(e){if(!e.pax){var t=u.encode(e);if(t)return void this.push(t)}this._encodePax(e)},I.prototype._encodePax=function(e){var t=u.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(u.encode(r)),this.push(t),p(this,t.length),r.size=e.size,r.type=e.type,this.push(u.encode(r))},I.prototype._read=function(e){var t=this._drain;this._drain=f,t()},e.exports=I},94864:(e,t,r)=>{var n=r(92413);function i(e,t,r){e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var i=!1,o=!1,s=[],A=!1,a=new n;function c(){for(;s.length&&!a.paused;){var e=s.shift();if(null===e)return a.emit("end");a.emit("data",e)}}function u(){a.writable=!1,t.call(a),!a.readable&&a.autoDestroy&&a.destroy()}return a.readable=a.writable=!0,a.paused=!1,a.autoDestroy=!(r&&!1===r.autoDestroy),a.write=function(t){return e.call(this,t),!a.paused},a.queue=a.push=function(e){return A||(null===e&&(A=!0),s.push(e),c()),a},a.on("end",(function(){a.readable=!1,!a.writable&&a.autoDestroy&&process.nextTick((function(){a.destroy()}))})),a.end=function(e){if(!i)return i=!0,arguments.length&&a.write(e),u(),a},a.destroy=function(){if(!o)return o=!0,i=!0,s.length=0,a.writable=a.readable=!1,a.emit("close"),a},a.pause=function(){if(!a.paused)return a.paused=!0,a},a.resume=function(){return a.paused&&(a.paused=!1,a.emit("resume")),c(),a.paused||a.emit("drain"),a},a}e.exports=i,i.through=i},67783:(e,t,r)=>{
+/*!
+ * Tmp
+ *
+ * Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
+ *
+ * MIT Licensed
+ */
+const n=r(35747),i=r(85622),o=r(76417),s=r(82941),A=process.binding("constants"),a=s(),c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=/XXXXXX/,l=(A.O_CREAT||A.fs.O_CREAT)|(A.O_EXCL||A.fs.O_EXCL)|(A.O_RDWR||A.fs.O_RDWR),h=A.EBADF||A.os.errno.EBADF,g=A.ENOENT||A.os.errno.ENOENT,f=[];var p=!1,d=!1;function C(e){var t=[],r=null;try{r=o.randomBytes(e)}catch(t){r=o.pseudoRandomBytes(e)}for(var n=0;n<e;n++)t.push(c[r[n]%c.length]);return t.join("")}function E(e){return void 0===e}function I(e,t){return"function"==typeof e?[t||{},e]:E(e)?[{},t]:[e,t]}function m(e){if(e.name)return i.join(e.dir||a,e.name);if(e.template)return e.template.replace(u,C(6));const t=[e.prefix||"tmp-",process.pid,C(12),e.postfix||""].join("");return i.join(e.dir||a,t)}function y(e,t){var r=I(e,t),i=r[0],o=r[1],s=i.name?1:i.tries||3;return isNaN(s)||s<0?o(new Error("Invalid tries")):i.template&&!i.template.match(u)?o(new Error("Invalid template provided")):void function e(){const t=m(i);n.stat(t,(function(r){if(!r)return s-- >0?e():o(new Error("Could not get a unique tmp filename, max tries reached "+t));o(null,t)}))}()}function w(e){var t=I(e)[0],r=t.name?1:t.tries||3;if(isNaN(r)||r<0)throw new Error("Invalid tries");if(t.template&&!t.template.match(u))throw new Error("Invalid template provided");do{const e=m(t);try{n.statSync(e)}catch(t){return e}}while(r-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function B(e){const t=[e];do{for(var r=t.pop(),o=!1,s=n.readdirSync(r),A=0,a=s.length;A<a;A++){var c=i.join(r,s[A]);n.lstatSync(c).isDirectory()?(o||(o=!0,t.push(r)),t.push(c)):n.unlinkSync(c)}o||n.rmdirSync(r)}while(0!==t.length)}function Q(e,t,r){const i=D((function(e){try{0<=e[0]&&n.closeSync(e[0])}catch(e){if(!(t=e,k(t,-h,"EBADF")||S(e)))throw e}var t;try{n.unlinkSync(e[1])}catch(e){if(!S(e))throw e}}),[t,e]);return r.keep||f.unshift(i),i}function v(e,t){const r=D(t.unsafeCleanup?B:n.rmdirSync.bind(n),e);return t.keep||f.unshift(r),r}function D(e,t){var r=!1;return function n(i){if(!r){const i=f.indexOf(n);i>=0&&f.splice(i,1),r=!0,e(t)}i&&i(null)}}function b(){if(!d||p)for(;f.length;)try{f[0].call(null)}catch(e){}}function S(e){return k(e,-g,"ENOENT")}function k(e,t,r){return e.code==t||e.code==r}const x=process.versions.node.split(".").map((function(e){return parseInt(e,10)}));0===x[0]&&(x[1]<9||9===x[1]&&x[2]<5)&&process.addListener("uncaughtException",(function(e){throw d=!0,b(),e})),process.addListener("exit",(function(e){e&&(d=!0),b()})),e.exports.tmpdir=a,e.exports.dir=function(e,t){var r=I(e,t),i=r[0],o=r[1];y(i,(function(e,t){if(e)return o(e);n.mkdir(t,i.mode||448,(function(e){if(e)return o(e);o(null,t,v(t,i))}))}))},e.exports.dirSync=function(e){var t=I(e)[0];const r=w(t);return n.mkdirSync(r,t.mode||448),{name:r,removeCallback:v(r,t)}},e.exports.file=function(e,t){var r=I(e,t),i=r[0],o=r[1];i.postfix=E(i.postfix)?".tmp":i.postfix,y(i,(function(e,t){if(e)return o(e);n.open(t,l,i.mode||384,(function(e,r){return e?o(e):i.discardDescriptor?n.close(r,(function(e){if(e){try{n.unlinkSync(t)}catch(t){S(t)||(e=t)}return o(e)}o(null,t,void 0,Q(t,-1,i))})):i.detachDescriptor?o(null,t,r,Q(t,-1,i)):void o(null,t,r,Q(t,r,i))}))}))},e.exports.fileSync=function(e){var t=I(e)[0];t.postfix=t.postfix||".tmp";const r=t.discardDescriptor||t.detachDescriptor,i=w(t);var o=n.openSync(i,l,t.mode||384);return t.discardDescriptor&&(n.closeSync(o),o=void 0),{name:i,fd:o,removeCallback:Q(i,r?-1:o,t)}},e.exports.tmpName=y,e.exports.tmpNameSync=w,e.exports.setGracefulCleanup=function(){p=!0}},84615:(e,t,r)=>{"use strict";
+/*!
+ * to-regex-range <https://github.com/micromatch/to-regex-range>
+ *
+ * Copyright (c) 2015-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */const n=r(59235),i=(e,t,r)=>{if(!1===n(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===n(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};"boolean"==typeof o.strictZeros&&(o.relaxZeros=!1===o.strictZeros);let a=e+":"+t+"="+String(o.relaxZeros)+String(o.shorthand)+String(o.capture)+String(o.wrap);if(i.cache.hasOwnProperty(a))return i.cache[a].result;let c=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(c-u)){let r=e+"|"+t;return o.capture?`(${r})`:!1===o.wrap?r:`(?:${r})`}let l=f(e)||f(t),h={min:e,max:t,a:c,b:u},g=[],p=[];if(l&&(h.isPadded=l,h.maxLen=String(h.max).length),c<0){p=s(u<0?Math.abs(u):1,Math.abs(c),h,o),c=h.a=0}return u>=0&&(g=s(c,u,h,o)),h.negatives=p,h.positives=g,h.result=function(e,t,r){let n=A(e,t,"-",!1,r)||[],i=A(t,e,"",!1,r)||[],o=A(e,t,"-?",!0,r)||[];return n.concat(o).concat(i).join("|")}(p,g,o),!0===o.capture?h.result=`(${h.result})`:!1!==o.wrap&&g.length+p.length>1&&(h.result=`(?:${h.result})`),i.cache[a]=h,h.result};function o(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=function(e,t){let r=[];for(let n=0;n<e.length;n++)r.push([e[n],t[n]]);return r}(e,t),i=n.length,o="",s=0;for(let e=0;e<i;e++){let[t,i]=n[e];t===i?o+=t:"0"!==t||"9"!==i?o+=g(t,i,r):s++}return s&&(o+=!0===r.shorthand?"\\d":"[0-9]"),{pattern:o,count:[s],digits:i}}function s(e,t,r,n){let i,s=function(e,t){let r=1,n=1,i=u(e,r),o=new Set([t]);for(;e<=i&&i<=t;)o.add(i),r+=1,i=u(e,r);for(i=l(t+1,n)-1;e<i&&i<=t;)o.add(i),n+=1,i=l(t+1,n)-1;return o=[...o],o.sort(a),o}(e,t),A=[],c=e;for(let e=0;e<s.length;e++){let t=s[e],a=o(String(c),String(t),n),u="";r.isPadded||!i||i.pattern!==a.pattern?(r.isPadded&&(u=p(t,r,n)),a.string=u+a.pattern+h(a.count),A.push(a),c=t+1,i=a):(i.count.length>1&&i.count.pop(),i.count.push(a.count[0]),i.string=i.pattern+h(i.count),c=t+1)}return A}function A(e,t,r,n,i){let o=[];for(let i of e){let{string:e}=i;n||c(t,"string",e)||o.push(r+e),n&&c(t,"string",e)&&o.push(r+e)}return o}function a(e,t){return e>t?1:t>e?-1:0}function c(e,t,r){return e.some(e=>e[t]===r)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function l(e,t){return e-e%Math.pow(10,t)}function h(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function g(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function f(e){return/^-?(0+)\d/.test(e)}function p(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=!1!==r.relaxZeros;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}i.cache={},i.clearCache=()=>i.cache={},e.exports=i},75158:e=>{function t(e,t){var r=e.length,n=new Array(r),i={},o=r,s=function(e){for(var t=new Map,r=0,n=e.length;r<n;r++){var i=e[r];t.has(i[0])||t.set(i[0],new Set),t.has(i[1])||t.set(i[1],new Set),t.get(i[0]).add(i[1])}return t}(t),A=function(e){for(var t=new Map,r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}(e);for(t.forEach((function(e){if(!A.has(e[0])||!A.has(e[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")}));o--;)i[o]||a(e[o],o,new Set);return n;function a(e,t,o){if(o.has(e)){var c;try{c=", node was:"+JSON.stringify(e)}catch(e){c=""}throw new Error("Cyclic dependency"+c)}if(!A.has(e))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(e));if(!i[t]){i[t]=!0;var u=s.get(e)||new Set;if(t=(u=Array.from(u)).length){o.add(e);do{var l=u[--t];a(l,A.get(l),o)}while(t);o.delete(e)}n[--r]=e}}}e.exports=function(e){return t(function(e){for(var t=new Set,r=0,n=e.length;r<n;r++){var i=e[r];t.add(i[0]),t.add(i[1])}return Array.from(t)}(e),e)},e.exports.array=t},94682:function(e){e.exports=function(){function e(t,r,n,i,o,s,A){var a,c,u="",l=0,h=i.slice(0);if(h.push([r,n])&&i.length>0&&(i.forEach((function(e,t){t>0&&(u+=(e[1]?" ":"│")+"  "),c||e[0]!==r||(c=!0)})),u+=function(e,t){var r=t?"└":"├";return r+=e?"─ ":"──┐"}(t,n)+t,o&&("object"!=typeof r||r instanceof Date)&&(u+=": "+r),c&&(u+=" (circular ref.)"),A(u)),!c&&"object"==typeof r){var g=function(e,t){var r=[];for(var n in e)e.hasOwnProperty(n)&&(t&&"function"==typeof e[n]||r.push(n));return r}(r,s);g.forEach((function(t){a=++l===g.length,e(t,r[t],a,h,o,s,A)}))}}var t={asLines:function(t,r,n,i){e(".",t,!1,[],r,"function"!=typeof n&&n,i||n)},asTree:function(t,r,n){var i="";return e(".",t,!1,[],r,n,(function(e){i+=e+"\n"})),i}};return t}()},36370:(e,t,r)=>{"use strict";r.d(t,{ZT:()=>i,gn:()=>o});
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}},98161:(e,t,r)=>{e.exports=r(69876)},69876:(e,t,r)=>{"use strict";r(11631);var n,i=r(4016),o=r(98605),s=r(57211),A=r(28614),a=(r(42357),r(31669));function c(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||o.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,r,n,i){for(var o=l(r,n,i),s=0,A=t.requests.length;s<A;++s){var a=t.requests[s];if(a.host===o.host&&a.port===o.port)return t.requests.splice(s,1),void a.request.onSocket(e)}e.destroy(),t.removeSocket(e)}))}function u(e,t){var r=this;c.prototype.createSocket.call(r,e,(function(n){var o=e.request.getHeader("host"),s=h({},r.options,{socket:n,servername:o?o.replace(/:.*$/,""):e.host}),A=i.connect(0,s);r.sockets[r.sockets.indexOf(n)]=A,t(A)}))}function l(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e}function h(e){for(var t=1,r=arguments.length;t<r;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,s=i.length;o<s;++o){var A=i[o];void 0!==n[A]&&(e[A]=n[A])}}return e}t.httpOverHttp=function(e){var t=new c(e);return t.request=o.request,t},t.httpsOverHttp=function(e){var t=new c(e);return t.request=o.request,t.createSocket=u,t.defaultPort=443,t},t.httpOverHttps=function(e){var t=new c(e);return t.request=s.request,t},t.httpsOverHttps=function(e){var t=new c(e);return t.request=s.request,t.createSocket=u,t.defaultPort=443,t},a.inherits(c,A.EventEmitter),c.prototype.addRequest=function(e,t,r,n){var i=this,o=h({request:e},i.options,l(t,r,n));i.sockets.length>=this.maxSockets?i.requests.push(o):i.createSocket(o,(function(t){function r(){i.emit("free",t,o)}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)}))},c.prototype.createSocket=function(e,t){var r=this,i={};r.sockets.push(i);var o=h({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(o.localAddress=e.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),n("making CONNECT request");var s=r.request(o);function A(o,A,a){var c;return s.removeAllListeners(),A.removeAllListeners(),200!==o.statusCode?(n("tunneling socket could not be established, statusCode=%d",o.statusCode),A.destroy(),(c=new Error("tunneling socket could not be established, statusCode="+o.statusCode)).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):a.length>0?(n("got illegal response body from proxy"),A.destroy(),(c=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):(n("tunneling connection has established"),r.sockets[r.sockets.indexOf(i)]=A,t(A))}s.useChunkedEncodingByDefault=!1,s.once("response",(function(e){e.upgrade=!0})),s.once("upgrade",(function(e,t,r){process.nextTick((function(){A(e,t,r)}))})),s.once("connect",A),s.once("error",(function(t){s.removeAllListeners(),n("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var o=new Error("tunneling socket could not be established, cause="+t.message);o.code="ECONNRESET",e.request.emit("error",o),r.removeSocket(i)})),s.end()},c.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,(function(e){r.request.onSocket(e)}))}},n=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=n},5817:(e,t,r)=>{var n;e=r.nmd(e),function(){var r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},i=r._,o=Array.prototype,s=Object.prototype,A="undefined"!=typeof Symbol?Symbol.prototype:null,a=o.push,c=o.slice,u=s.toString,l=s.hasOwnProperty,h=Array.isArray,g=Object.keys,f=Object.create,p=function(){},d=function(e){return e instanceof d?e:this instanceof d?void(this._wrapped=e):new d(e)};t.nodeType?r._=d:(!e.nodeType&&e.exports&&(t=e.exports=d),t._=d),d.VERSION="1.9.1";var C,E=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},I=function(e,t,r){return d.iteratee!==C?d.iteratee(e,t):null==e?d.identity:d.isFunction(e)?E(e,t,r):d.isObject(e)&&!d.isArray(e)?d.matcher(e):d.property(e)};d.iteratee=C=function(e,t){return I(e,t,1/0)};var m=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i<r;i++)n[i]=arguments[i+t];switch(t){case 0:return e.call(this,n);case 1:return e.call(this,arguments[0],n);case 2:return e.call(this,arguments[0],arguments[1],n)}var o=Array(t+1);for(i=0;i<t;i++)o[i]=arguments[i];return o[t]=n,e.apply(this,o)}},y=function(e){if(!d.isObject(e))return{};if(f)return f(e);p.prototype=e;var t=new p;return p.prototype=null,t},w=function(e){return function(t){return null==t?void 0:t[e]}},B=function(e,t){return null!=e&&l.call(e,t)},Q=function(e,t){for(var r=t.length,n=0;n<r;n++){if(null==e)return;e=e[t[n]]}return r?e:void 0},v=Math.pow(2,53)-1,D=w("length"),b=function(e){var t=D(e);return"number"==typeof t&&t>=0&&t<=v};d.each=d.forEach=function(e,t,r){var n,i;if(t=E(t,r),b(e))for(n=0,i=e.length;n<i;n++)t(e[n],n,e);else{var o=d.keys(e);for(n=0,i=o.length;n<i;n++)t(e[o[n]],o[n],e)}return e},d.map=d.collect=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=Array(i),s=0;s<i;s++){var A=n?n[s]:s;o[s]=t(e[A],A,e)}return o};var S=function(e){var t=function(t,r,n,i){var o=!b(t)&&d.keys(t),s=(o||t).length,A=e>0?0:s-1;for(i||(n=t[o?o[A]:A],A+=e);A>=0&&A<s;A+=e){var a=o?o[A]:A;n=r(n,t[a],a,t)}return n};return function(e,r,n,i){var o=arguments.length>=3;return t(e,E(r,i,4),n,o)}};d.reduce=d.foldl=d.inject=S(1),d.reduceRight=d.foldr=S(-1),d.find=d.detect=function(e,t,r){var n=(b(e)?d.findIndex:d.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},d.filter=d.select=function(e,t,r){var n=[];return t=I(t,r),d.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},d.reject=function(e,t,r){return d.filter(e,d.negate(I(t)),r)},d.every=d.all=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(!t(e[s],s,e))return!1}return!0},d.some=d.any=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(t(e[s],s,e))return!0}return!1},d.contains=d.includes=d.include=function(e,t,r,n){return b(e)||(e=d.values(e)),("number"!=typeof r||n)&&(r=0),d.indexOf(e,t,r)>=0},d.invoke=m((function(e,t,r){var n,i;return d.isFunction(t)?i=t:d.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),d.map(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=Q(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))})),d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,r){var n,i,o=-1/0,s=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;A<a;A++)null!=(n=e[A])&&n>o&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&o===-1/0)&&(o=e,s=i)}));return o},d.min=function(e,t,r){var n,i,o=1/0,s=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;A<a;A++)null!=(n=e[A])&&n<o&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))<s||i===1/0&&o===1/0)&&(o=e,s=i)}));return o},d.shuffle=function(e){return d.sample(e,1/0)},d.sample=function(e,t,r){if(null==t||r)return b(e)||(e=d.values(e)),e[d.random(e.length-1)];var n=b(e)?d.clone(e):d.values(e),i=D(n);t=Math.max(Math.min(t,i),0);for(var o=i-1,s=0;s<t;s++){var A=d.random(s,o),a=n[s];n[s]=n[A],n[A]=a}return n.slice(0,t)},d.sortBy=function(e,t,r){var n=0;return t=I(t,r),d.pluck(d.map(e,(function(e,r,i){return{value:e,index:n++,criteria:t(e,r,i)}})).sort((function(e,t){var r=e.criteria,n=t.criteria;if(r!==n){if(r>n||void 0===r)return 1;if(r<n||void 0===n)return-1}return e.index-t.index})),"value")};var k=function(e,t){return function(r,n,i){var o=t?[[],[]]:{};return n=I(n,i),d.each(r,(function(t,i){var s=n(t,i,r);e(o,t,s)})),o}};d.groupBy=k((function(e,t,r){B(e,r)?e[r].push(t):e[r]=[t]})),d.indexBy=k((function(e,t,r){e[r]=t})),d.countBy=k((function(e,t,r){B(e,r)?e[r]++:e[r]=1}));var x=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;d.toArray=function(e){return e?d.isArray(e)?c.call(e):d.isString(e)?e.match(x):b(e)?d.map(e,d.identity):d.values(e):[]},d.size=function(e){return null==e?0:b(e)?e.length:d.keys(e).length},d.partition=k((function(e,t,r){e[r?0:1].push(t)}),!0),d.first=d.head=d.take=function(e,t,r){return null==e||e.length<1?null==t?void 0:[]:null==t||r?e[0]:d.initial(e,e.length-t)},d.initial=function(e,t,r){return c.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))},d.last=function(e,t,r){return null==e||e.length<1?null==t?void 0:[]:null==t||r?e[e.length-1]:d.rest(e,Math.max(0,e.length-t))},d.rest=d.tail=d.drop=function(e,t,r){return c.call(e,null==t||r?1:t)},d.compact=function(e){return d.filter(e,Boolean)};var F=function(e,t,r,n){for(var i=(n=n||[]).length,o=0,s=D(e);o<s;o++){var A=e[o];if(b(A)&&(d.isArray(A)||d.isArguments(A)))if(t)for(var a=0,c=A.length;a<c;)n[i++]=A[a++];else F(A,t,r,n),i=n.length;else r||(n[i++]=A)}return n};d.flatten=function(e,t){return F(e,t,!1)},d.without=m((function(e,t){return d.difference(e,t)})),d.uniq=d.unique=function(e,t,r,n){d.isBoolean(t)||(n=r,r=t,t=!1),null!=r&&(r=I(r,n));for(var i=[],o=[],s=0,A=D(e);s<A;s++){var a=e[s],c=r?r(a,s,e):a;t&&!r?(s&&o===c||i.push(a),o=c):r?d.contains(o,c)||(o.push(c),i.push(a)):d.contains(i,a)||i.push(a)}return i},d.union=m((function(e){return d.uniq(F(e,!0,!0))})),d.intersection=function(e){for(var t=[],r=arguments.length,n=0,i=D(e);n<i;n++){var o=e[n];if(!d.contains(t,o)){var s;for(s=1;s<r&&d.contains(arguments[s],o);s++);s===r&&t.push(o)}}return t},d.difference=m((function(e,t){return t=F(t,!0,!0),d.filter(e,(function(e){return!d.contains(t,e)}))})),d.unzip=function(e){for(var t=e&&d.max(e,D).length||0,r=Array(t),n=0;n<t;n++)r[n]=d.pluck(e,n);return r},d.zip=m(d.unzip),d.object=function(e,t){for(var r={},n=0,i=D(e);n<i;n++)t?r[e[n]]=t[n]:r[e[n][0]]=e[n][1];return r};var M=function(e){return function(t,r,n){r=I(r,n);for(var i=D(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(r(t[o],o,t))return o;return-1}};d.findIndex=M(1),d.findLastIndex=M(-1),d.sortedIndex=function(e,t,r,n){for(var i=(r=I(r,n,1))(t),o=0,s=D(e);o<s;){var A=Math.floor((o+s)/2);r(e[A])<i?o=A+1:s=A}return o};var N=function(e,t,r){return function(n,i,o){var s=0,A=D(n);if("number"==typeof o)e>0?s=o>=0?o:Math.max(o+A,s):A=o>=0?Math.min(o+1,A):o+A+1;else if(r&&o&&A)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(c.call(n,s,A),d.isNaN))>=0?o+s:-1;for(o=e>0?s:A-1;o>=0&&o<A;o+=e)if(n[o]===i)return o;return-1}};d.indexOf=N(1,d.findIndex,d.sortedIndex),d.lastIndexOf=N(-1,d.findLastIndex),d.range=function(e,t,r){null==t&&(t=e||0,e=0),r||(r=t<e?-1:1);for(var n=Math.max(Math.ceil((t-e)/r),0),i=Array(n),o=0;o<n;o++,e+=r)i[o]=e;return i},d.chunk=function(e,t){if(null==t||t<1)return[];for(var r=[],n=0,i=e.length;n<i;)r.push(c.call(e,n,n+=t));return r};var R=function(e,t,r,n,i){if(!(n instanceof t))return e.apply(r,i);var o=y(e.prototype),s=e.apply(o,i);return d.isObject(s)?s:o};d.bind=m((function(e,t,r){if(!d.isFunction(e))throw new TypeError("Bind must be called on a function");var n=m((function(i){return R(e,n,t,this,r.concat(i))}));return n})),d.partial=m((function(e,t){var r=d.partial.placeholder,n=function(){for(var i=0,o=t.length,s=Array(o),A=0;A<o;A++)s[A]=t[A]===r?arguments[i++]:t[A];for(;i<arguments.length;)s.push(arguments[i++]);return R(e,n,this,this,s)};return n})),d.partial.placeholder=d,d.bindAll=m((function(e,t){var r=(t=F(t,!1,!1)).length;if(r<1)throw new Error("bindAll must be passed function names");for(;r--;){var n=t[r];e[n]=d.bind(e[n],e)}})),d.memoize=function(e,t){var r=function(n){var i=r.cache,o=""+(t?t.apply(this,arguments):n);return B(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return r.cache={},r},d.delay=m((function(e,t,r){return setTimeout((function(){return e.apply(null,r)}),t)})),d.defer=d.partial(d.delay,d,1),d.throttle=function(e,t,r){var n,i,o,s,A=0;r||(r={});var a=function(){A=!1===r.leading?0:d.now(),n=null,s=e.apply(i,o),n||(i=o=null)},c=function(){var c=d.now();A||!1!==r.leading||(A=c);var u=t-(c-A);return i=this,o=arguments,u<=0||u>t?(n&&(clearTimeout(n),n=null),A=c,s=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(a,u)),s};return c.cancel=function(){clearTimeout(n),A=0,n=i=o=null},c},d.debounce=function(e,t,r){var n,i,o=function(t,r){n=null,r&&(i=e.apply(t,r))},s=m((function(s){if(n&&clearTimeout(n),r){var A=!n;n=setTimeout(o,t),A&&(i=e.apply(this,s))}else n=d.delay(o,t,this,s);return i}));return s.cancel=function(){clearTimeout(n),n=null},s},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},d.once=d.partial(d.before,2),d.restArguments=m;var K=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],T=function(e,t){var r=L.length,n=e.constructor,i=d.isFunction(n)&&n.prototype||s,o="constructor";for(B(e,o)&&!d.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!d.contains(t,o)&&t.push(o)};d.keys=function(e){if(!d.isObject(e))return[];if(g)return g(e);var t=[];for(var r in e)B(e,r)&&t.push(r);return K&&T(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var r in e)t.push(r);return K&&T(e,t),t},d.values=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=e[t[i]];return n},d.mapObject=function(e,t,r){t=I(t,r);for(var n=d.keys(e),i=n.length,o={},s=0;s<i;s++){var A=n[s];o[A]=t(e[A],A,e)}return o},d.pairs=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=[t[i],e[t[i]]];return n},d.invert=function(e){for(var t={},r=d.keys(e),n=0,i=r.length;n<i;n++)t[e[r[n]]]=r[n];return t},d.functions=d.methods=function(e){var t=[];for(var r in e)d.isFunction(e[r])&&t.push(r);return t.sort()};var P=function(e,t){return function(r){var n=arguments.length;if(t&&(r=Object(r)),n<2||null==r)return r;for(var i=1;i<n;i++)for(var o=arguments[i],s=e(o),A=s.length,a=0;a<A;a++){var c=s[a];t&&void 0!==r[c]||(r[c]=o[c])}return r}};d.extend=P(d.allKeys),d.extendOwn=d.assign=P(d.keys),d.findKey=function(e,t,r){t=I(t,r);for(var n,i=d.keys(e),o=0,s=i.length;o<s;o++)if(t(e[n=i[o]],n,e))return n};var U,_,O=function(e,t,r){return t in r};d.pick=m((function(e,t){var r={},n=t[0];if(null==e)return r;d.isFunction(n)?(t.length>1&&(n=E(n,t[1])),t=d.allKeys(e)):(n=O,t=F(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i<o;i++){var s=t[i],A=e[s];n(A,s,e)&&(r[s]=A)}return r})),d.omit=m((function(e,t){var r,n=t[0];return d.isFunction(n)?(n=d.negate(n),t.length>1&&(r=t[1])):(t=d.map(F(t,!1,!1),String),n=function(e,r){return!d.contains(t,r)}),d.pick(e,n,r)})),d.defaults=P(d.allKeys,!0),d.create=function(e,t){var r=y(e);return t&&d.extendOwn(r,t),r},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var r=d.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o<n;o++){var s=r[o];if(t[s]!==i[s]||!(s in i))return!1}return!0},U=function(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&_(e,t,r,n)},_=function(e,t,r,n){e instanceof d&&(e=e._wrapped),t instanceof d&&(t=t._wrapped);var i=u.call(e);if(i!==u.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return A.valueOf.call(e)===A.valueOf.call(t)}var o="[object Array]"===i;if(!o){if("object"!=typeof e||"object"!=typeof t)return!1;var s=e.constructor,a=t.constructor;if(s!==a&&!(d.isFunction(s)&&s instanceof s&&d.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}n=n||[];for(var c=(r=r||[]).length;c--;)if(r[c]===e)return n[c]===t;if(r.push(e),n.push(t),o){if((c=e.length)!==t.length)return!1;for(;c--;)if(!U(e[c],t[c],r,n))return!1}else{var l,h=d.keys(e);if(c=h.length,d.keys(t).length!==c)return!1;for(;c--;)if(l=h[c],!B(t,l)||!U(e[l],t[l],r,n))return!1}return r.pop(),n.pop(),!0},d.isEqual=function(e,t){return U(e,t)},d.isEmpty=function(e){return null==e||(b(e)&&(d.isArray(e)||d.isString(e)||d.isArguments(e))?0===e.length:0===d.keys(e).length)},d.isElement=function(e){return!(!e||1!==e.nodeType)},d.isArray=h||function(e){return"[object Array]"===u.call(e)},d.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},d.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],(function(e){d["is"+e]=function(t){return u.call(t)==="[object "+e+"]"}})),d.isArguments(arguments)||(d.isArguments=function(e){return B(e,"callee")});var j=r.document&&r.document.childNodes;"object"!=typeof Int8Array&&"function"!=typeof j&&(d.isFunction=function(e){return"function"==typeof e||!1}),d.isFinite=function(e){return!d.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},d.isNaN=function(e){return d.isNumber(e)&&isNaN(e)},d.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===u.call(e)},d.isNull=function(e){return null===e},d.isUndefined=function(e){return void 0===e},d.has=function(e,t){if(!d.isArray(t))return B(e,t);for(var r=t.length,n=0;n<r;n++){var i=t[n];if(null==e||!l.call(e,i))return!1;e=e[i]}return!!r},d.noConflict=function(){return r._=i,this},d.identity=function(e){return e},d.constant=function(e){return function(){return e}},d.noop=function(){},d.property=function(e){return d.isArray(e)?function(t){return Q(t,e)}:w(e)},d.propertyOf=function(e){return null==e?function(){}:function(t){return d.isArray(t)?Q(e,t):e[t]}},d.matcher=d.matches=function(e){return e=d.extendOwn({},e),function(t){return d.isMatch(t,e)}},d.times=function(e,t,r){var n=Array(Math.max(0,e));t=E(t,r,1);for(var i=0;i<e;i++)n[i]=t(i);return n},d.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},d.now=Date.now||function(){return(new Date).getTime()};var Y={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},G=d.invert(Y),J=function(e){var t=function(t){return e[t]},r="(?:"+d.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};d.escape=J(Y),d.unescape=J(G),d.result=function(e,t,r){d.isArray(t)||(t=[t]);var n=t.length;if(!n)return d.isFunction(r)?r.call(e):r;for(var i=0;i<n;i++){var o=null==e?void 0:e[t[i]];void 0===o&&(o=r,i=n),e=d.isFunction(o)?o.call(e):o}return e};var H=0;d.uniqueId=function(e){var t=++H+"";return e?e+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,V=function(e){return"\\"+z[e]};d.template=function(e,t,r){!t&&r&&(t=r),t=d.defaults({},t,d.templateSettings);var n,i=RegExp([(t.escape||q).source,(t.interpolate||q).source,(t.evaluate||q).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,(function(t,r,n,i,A){return s+=e.slice(o,A).replace(W,V),o=A+t.length,r?s+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?s+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(s+="';\n"+i+"\n__p+='"),t})),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{n=new Function(t.variable||"obj","_",s)}catch(e){throw e.source=s,e}var A=function(e){return n.call(this,e,d)},a=t.variable||"obj";return A.source="function("+a+"){\n"+s+"}",A},d.chain=function(e){var t=d(e);return t._chain=!0,t};var X=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){return d.each(d.functions(e),(function(t){var r=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),X(this,r.apply(d,e))}})),d},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];d.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],X(this,r)}})),d.each(["concat","join","slice"],(function(e){var t=o[e];d.prototype[e]=function(){return X(this,t.apply(this._wrapped,arguments))}})),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return String(this._wrapped)},void 0===(n=function(){return d}.apply(t,[]))||(e.exports=n)}()},73212:(e,t,r)=>{e.exports=r(31669).deprecate},87945:(e,t,r)=>{const n="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,i=r(85622),o=n?";":":",s=r(64151),A=e=>Object.assign(new Error("not found: "+e),{code:"ENOENT"}),a=(e,t)=>{const r=t.colon||o,i=e.match(/\//)||n&&e.match(/\\/)?[""]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=n?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",A=n?s.split(r):[""];return n&&-1!==e.indexOf(".")&&""!==A[0]&&A.unshift(""),{pathEnv:i,pathExt:A,pathExtExe:s}},c=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:n,pathExt:o,pathExtExe:c}=a(e,t),u=[],l=r=>new Promise((o,s)=>{if(r===n.length)return t.all&&u.length?o(u):s(A(e));const a=n[r],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(c,e),g=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;o(h(g,r,0))}),h=(e,r,n)=>new Promise((i,A)=>{if(n===o.length)return i(l(r+1));const a=o[n];s(e+a,{pathExt:c},(o,s)=>{if(!o&&s){if(!t.all)return i(e+a);u.push(e+a)}return i(h(e,r,n+1))})});return r?l(0).then(e=>r(null,e),r):l(0)};e.exports=c,c.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:n,pathExtExe:o}=a(e,t),c=[];for(let A=0;A<r.length;A++){const a=r[A],u=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(u,e),h=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;for(let e=0;e<n.length;e++){const r=h+n[e];try{if(s.sync(r,{pathExt:o})){if(!t.all)return r;c.push(r)}}catch(e){}}}if(t.all&&c.length)return c;if(t.nothrow)return null;throw A(e)}},98984:e=>{e.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");return Object.keys(t).forEach((function(e){n[e]=t[e]})),n;function n(){for(var e=new Array(arguments.length),r=0;r<e.length;r++)e[r]=arguments[r];var n=t.apply(this,e),i=e[e.length-1];return"function"==typeof n&&n!==i&&Object.keys(i).forEach((function(e){n[e]=i[e]})),n}}},99770:e=>{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},80800:(e,t,r)=>{"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}function i(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function o(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,r,n){if(!(this instanceof s))return new s(e,t,r,n);this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}e.exports=n,n.Node=s,n.create=n,n.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next},n.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev},n.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&t<e;t++)r=r.next;if(t===e&&null!==r)return r.value},n.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&t<e;t++)r=r.prev;if(t===e&&null!==r)return r.value},n.prototype.map=function(e,t){t=t||this;for(var r=new n,i=this.head;null!==i;)r.push(e.call(t,i.value,this)),i=i.next;return r},n.prototype.mapReverse=function(e,t){t=t||this;for(var r=new n,i=this.tail;null!==i;)r.push(e.call(t,i.value,this)),i=i.prev;return r},n.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&i<e;i++)o=o.next;for(;null!==o&&i<t;i++,o=o.next)r.push(o.value);return r},n.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)r.push(o.value);return r},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;null!==r;r=r.prev){var n=r.prev;r.prev=r.next,r.next=n}return this.head=t,this.tail=e,this};try{r(99770)(n)}catch(e){}},94916:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(15215)),o=n(r(11050)),s=function(){function e(e,t){if(this.refs=e,"function"!=typeof t){if(!(0,i.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");var r=t.is,n=t.then,o=t.otherwise,s="function"==typeof r?r:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.every((function(e){return e===r}))};this.fn=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=t.pop(),A=t.pop(),a=s.apply(void 0,t)?n:o;if(a)return"function"==typeof a?a(A):A.concat(a.resolve(i))}}else this.fn=t}return e.prototype.resolve=function(e,t){var r=this.refs.map((function(e){return e.getValue(t)})),n=this.fn.apply(e,r.concat(e,t));if(void 0===n||n===e)return e;if(!(0,o.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)},e}();t.default=s,e.exports=t.default},6856:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(11050)),o=function(){function e(e){this._resolve=function(t,r){var n=e(t,r);if(!(0,i.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(r)}}var t=e.prototype;return t.resolve=function(e){return this._resolve(e.value,e)},t.cast=function(e,t){return this._resolve(e,t).cast(e,t)},t.validate=function(e,t){return this._resolve(e,t).validate(e,t)},t.validateSync=function(e,t){return this._resolve(e,t).validateSync(e,t)},t.validateAt=function(e,t,r){return this._resolve(t,r).validateAt(e,t,r)},t.validateSyncAt=function(e,t,r){return this._resolve(t,r).validateSyncAt(e,t,r)},e}();o.prototype.__isYupSchema__=!0;var s=o;t.default=s,e.exports=t.default},95814:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(72912)),o=r(79588),s="$",A=".",a=function(){function e(e,t){if(void 0===t&&(t={}),"string"!=typeof e)throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),""===e)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===s,this.isValue=this.key[0]===A,this.isSibling=!this.isContext&&!this.isValue;var r=this.isContext?s:this.isValue?A:"";this.path=this.key.slice(r.length),this.getter=this.path&&(0,o.getter)(this.path,!0),this.map=t.map}var t=e.prototype;return t.getValue=function(e){var t=this.isContext?e.context:this.isValue?e.value:e.parent;return this.getter&&(t=this.getter(t||{})),this.map&&(t=this.map(t)),t},t.cast=function(e,t){return this.getValue((0,i.default)({},t,{value:e}))},t.resolve=function(){return this},t.describe=function(){return{type:"ref",key:this.key}},t.toString=function(){return"Ref("+this.key+")"},e.isRef=function(e){return e&&e.__isYupRef},e}();t.default=a,a.prototype.__isYupRef=!0,e.exports=t.default},40828:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=A;var i=n(r(21043)),o=/\$\{\s*(\w+)\s*\}/g,s=function(e){return function(t){return e.replace(o,(function(e,r){return(0,i.default)(t[r])}))}};function A(e,t,r,n){var i=this;this.name="ValidationError",this.value=t,this.path=r,this.type=n,this.errors=[],this.inner=[],e&&[].concat(e).forEach((function(e){i.errors=i.errors.concat(e.errors||e),e.inner&&(i.inner=i.inner.concat(e.inner.length?e.inner:e))})),this.message=this.errors.length>1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,A)}A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A.isError=function(e){return e&&"ValidationError"===e.name},A.formatError=function(e,t){"string"==typeof e&&(e=s(e));var r=function(t){return t.path=t.label||t.path||"this","function"==typeof e?e(t):e};return 1===arguments.length?r:r(t)},e.exports=t.default},18830:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=void 0;var o=i(r(72912)),s=i(r(62407)),A=i(r(31490)),a=i(r(71665)),c=i(r(11050)),u=i(r(7045)),l=i(r(21043)),h=i(r(16434)),g=r(63802),f=n(r(80180));function p(){var e=(0,s.default)(["","[","]"]);return p=function(){return e},e}var d=C;function C(e){var t=this;if(!(this instanceof C))return new C(e);h.default.call(this,{type:"array"}),this._subType=void 0,this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.of(e)}))}t.default=d,(0,A.default)(C,h.default,{_typeCheck:function(e){return Array.isArray(e)},_cast:function(e,t){var r=this,n=h.default.prototype._cast.call(this,e,t);if(!this._typeCheck(n)||!this._subType)return n;var i=!1,o=n.map((function(e){var n=r._subType.cast(e,t);return n!==e&&(i=!0),n}));return i?o:n},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=[],i=t.sync,s=t.path,A=this._subType,a=this._option("abortEarly",t),c=this._option("recursive",t),l=null!=t.originalValue?t.originalValue:e;return h.default.prototype._validate.call(this,e,t).catch((0,f.propagateErrors)(a,n)).then((function(e){if(!c||!A||!r._typeCheck(e)){if(n.length)throw n[0];return e}l=l||e;var h=e.map((function(r,n){var i=(0,u.default)(p(),t.path,n),s=(0,o.default)({},t,{path:i,strict:!0,parent:e,originalValue:l[n]});return!A.validate||A.validate(r,s)}));return(0,f.default)({sync:i,path:s,value:e,errors:n,endEarly:a,validations:h})}))},_isPresent:function(e){return h.default.prototype._cast.call(this,e)&&e.length>0},of:function(e){var t=this.clone();if(!1!==e&&!(0,c.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. not: "+(0,l.default)(e));return t._subType=e,t},min:function(e,t){return t=t||g.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,a.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return t=t||g.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,a.default)(t)||t.length<=this.resolve(e)}})},ensure:function(){var e=this;return this.default((function(){return[]})).transform((function(t){return e.isType(t)?t:null===t?[]:[].concat(t)}))},compact:function(e){var t=e?function(t,r,n){return!e(t,r,n)}:function(e){return!!e};return this.transform((function(e){return null!=e?e.filter(t):e}))},describe:function(){var e=h.default.prototype.describe.call(this);return this._subType&&(e.innerType=this._subType.describe()),e}}),e.exports=t.default},76595:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(31490)),o=n(r(16434)),s=A;function A(){var e=this;if(!(this instanceof A))return new A;o.default.call(this,{type:"boolean"}),this.withMutation((function(){e.transform((function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(e))return!0;if(/^(false|0)$/i.test(e))return!1}return e}))}))}t.default=s,(0,i.default)(A,o.default,{_typeCheck:function(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}}),e.exports=t.default},41755:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(16434)),o=n(r(31490)),s=n(r(76813)),A=r(63802),a=n(r(71665)),c=n(r(95814)),u=new Date(""),l=h;function h(){var e=this;if(!(this instanceof h))return new h;i.default.call(this,{type:"date"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:(e=(0,s.default)(e))?new Date(e):u}))}))}t.default=l,(0,o.default)(h,i.default,{_typeCheck:function(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t},min:function(e,t){void 0===t&&(t=A.date.min);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`min` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(e){return(0,a.default)(e)||e>=this.resolve(r)}})},max:function(e,t){void 0===t&&(t=A.date.max);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`max` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(e){return(0,a.default)(e)||e<=this.resolve(r)}})}}),e.exports=t.default},15966:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.addMethod=function(e,t,r){if(!e||!(0,p.default)(e.prototype))throw new TypeError("You must provide a yup schema constructor function");if("string"!=typeof t)throw new TypeError("A Method name must be provided");if("function"!=typeof r)throw new TypeError("Method function must be provided");e.prototype[t]=r},t.lazy=t.ref=t.boolean=void 0;var i=n(r(16434));t.mixed=i.default;var o=n(r(76595));t.bool=o.default;var s=n(r(45167));t.string=s.default;var A=n(r(72068));t.number=A.default;var a=n(r(41755));t.date=a.default;var c=n(r(51727));t.object=c.default;var u=n(r(18830));t.array=u.default;var l=n(r(95814)),h=n(r(6856)),g=n(r(40828));t.ValidationError=g.default;var f=n(r(43910));t.reach=f.default;var p=n(r(11050));t.isSchema=p.default;var d=n(r(24280));t.setLocale=d.default;var C=o.default;t.boolean=C;t.ref=function(e,t){return new l.default(e,t)};t.lazy=function(e){return new h.default(e)}},63802:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=t.array=t.object=t.boolean=t.date=t.number=t.string=t.mixed=void 0;var i=n(r(21043)),o={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:function(e){var t=e.path,r=e.type,n=e.value,o=e.originalValue,s=null!=o&&o!==n,A=t+" must be a `"+r+"` type, but the final value was: `"+(0,i.default)(n,!0)+"`"+(s?" (cast from the value `"+(0,i.default)(o,!0)+"`).":".");return null===n&&(A+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),A}};t.mixed=o;var s={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};t.string=s;var A={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",notEqual:"${path} must be not equal to ${notEqual}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};t.number=A;var a={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};t.date=a;var c={};t.boolean=c;var u={noUnknown:"${path} field cannot have keys not specified in the object shape"};t.object=u;var l={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items"};t.array=l;var h={mixed:o,string:s,number:A,date:a,object:u,array:l,boolean:c};t.default=h},16434:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=E;var i=n(r(72912)),o=n(r(15215)),s=n(r(26052)),A=n(r(78700)),a=r(63802),c=n(r(94916)),u=n(r(80180)),l=n(r(22808)),h=n(r(11050)),g=n(r(54107)),f=n(r(21043)),p=n(r(95814)),d=r(43910),C=function(){function e(){this.list=new Set,this.refs=new Map}var t=e.prototype;return t.toArray=function(){return(0,A.default)(this.list).concat((0,A.default)(this.refs.values()))},t.add=function(e){p.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)},t.delete=function(e){p.default.isRef(e)?this.refs.delete(e.key,e):this.list.delete(e)},t.has=function(e,t){if(this.list.has(e))return!0;for(var r,n=this.refs.values();!(r=n.next()).done;)if(t(r.value)===e)return!0;return!1},e}();function E(e){var t=this;if(void 0===e&&(e={}),!(this instanceof E))return new E;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new C,this._blacklist=new C,this.tests=[],this.transforms=[],this.withMutation((function(){t.typeError(a.mixed.notType)})),(0,o.default)(e,"default")&&(this._defaultDefault=e.default),this._type=e.type||"mixed"}for(var I=E.prototype={__isYupSchema__:!0,constructor:E,clone:function(){var e=this;return this._mutate?this:(0,s.default)(this,(function(t){if((0,h.default)(t)&&t!==e)return t}))},label:function(e){var t=this.clone();return t._label=e,t},meta:function(e){if(0===arguments.length)return this._meta;var t=this.clone();return t._meta=(0,i.default)(t._meta||{},e),t},withMutation:function(e){var t=this._mutate;this._mutate=!0;var r=e(this);return this._mutate=t,r},concat:function(e){if(!e||e===this)return this;if(e._type!==this._type&&"mixed"!==this._type)throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+e._type);var t=(0,l.default)(e.clone(),this);return(0,o.default)(e,"_default")&&(t._default=e._default),t.tests=this.tests,t._exclusive=this._exclusive,t.withMutation((function(t){e.tests.forEach((function(e){t.test(e.OPTIONS)}))})),t},isType:function(e){return!(!this._nullable||null!==e)||(!this._typeCheck||this._typeCheck(e))},resolve:function(e){var t=this;if(t._conditions.length){var r=t._conditions;(t=t.clone())._conditions=[],t=(t=r.reduce((function(t,r){return r.resolve(t,e)}),t)).resolve(e)}return t},cast:function(e,t){void 0===t&&(t={});var r=this.resolve((0,i.default)({},t,{value:e})),n=r._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==r.isType(n)){var o=(0,f.default)(e),s=(0,f.default)(n);throw new TypeError("The value of "+(t.path||"field")+' could not be cast to a value that satisfies the schema type: "'+r._type+'". \n\nattempted value: '+o+" \n"+(s!==o?"result of cast: "+s:""))}return n},_cast:function(e){var t=this,r=void 0===e?e:this.transforms.reduce((function(r,n){return n.call(t,r,e)}),e);return void 0===r&&(0,o.default)(this,"_default")&&(r=this.default()),r},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=e,o=null!=t.originalValue?t.originalValue:e,s=this._option("strict",t),A=this._option("abortEarly",t),a=t.sync,c=t.path,l=this._label;s||(n=this._cast(n,(0,i.default)({assert:!1},t)));var h={value:n,path:c,schema:this,options:t,label:l,originalValue:o,sync:a},g=[];return this._typeError&&g.push(this._typeError(h)),this._whitelistError&&g.push(this._whitelistError(h)),this._blacklistError&&g.push(this._blacklistError(h)),(0,u.default)({validations:g,endEarly:A,value:n,path:c,sync:a}).then((function(e){return(0,u.default)({path:c,sync:a,value:e,endEarly:A,validations:r.tests.map((function(e){return e(h)}))})}))},validate:function(e,t){return void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,t)},validateSync:function(e,t){var r,n;if(void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,(0,i.default)({},t,{sync:!0})).then((function(e){return r=e})).catch((function(e){return n=e})),n)throw n;return r},isValid:function(e,t){return this.validate(e,t).then((function(){return!0})).catch((function(e){if("ValidationError"===e.name)return!1;throw e}))},isValidSync:function(e,t){try{return this.validateSync(e,t),!0}catch(e){if("ValidationError"===e.name)return!1;throw e}},getDefault:function(e){return void 0===e&&(e={}),this.resolve(e).default()},default:function(e){if(0===arguments.length){var t=(0,o.default)(this,"_default")?this._default:this._defaultDefault;return"function"==typeof t?t.call(this):(0,s.default)(t)}var r=this.clone();return r._default=e,r},strict:function(e){void 0===e&&(e=!0);var t=this.clone();return t._options.strict=e,t},_isPresent:function(e){return null!=e},required:function(e){return void 0===e&&(e=a.mixed.required),this.test({message:e,name:"required",exclusive:!0,test:function(e){return this.schema._isPresent(e)}})},notRequired:function(){var e=this.clone();return e.tests=e.tests.filter((function(e){return"required"!==e.OPTIONS.name})),e},nullable:function(e){void 0===e&&(e=!0);var t=this.clone();return t._nullable=e,t},transform:function(e){var t=this.clone();return t.transforms.push(e),t},test:function(){var e;if(void 0===(e=1===arguments.length?"function"==typeof(arguments.length<=0?void 0:arguments[0])?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:2===arguments.length?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message&&(e.message=a.mixed.default),"function"!=typeof e.test)throw new TypeError("`test` is a required parameters");var t=this.clone(),r=(0,g.default)(e),n=e.exclusive||e.name&&!0===t._exclusive[e.name];if(e.exclusive&&!e.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t._exclusive[e.name]=!!e.exclusive,t.tests=t.tests.filter((function(t){if(t.OPTIONS.name===e.name){if(n)return!1;if(t.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),t.tests.push(r),t},when:function(e,t){1===arguments.length&&(t=e,e=".");var r=this.clone(),n=[].concat(e).map((function(e){return new p.default(e)}));return n.forEach((function(e){e.isSibling&&r._deps.push(e.key)})),r._conditions.push(new c.default(n,t)),r},typeError:function(e){var t=this.clone();return t._typeError=(0,g.default)({message:e,name:"typeError",test:function(e){return!(void 0!==e&&!this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t},oneOf:function(e,t){void 0===t&&(t=a.mixed.oneOf);var r=this.clone();return e.forEach((function(e){r._whitelist.add(e),r._blacklist.delete(e)})),r._whitelistError=(0,g.default)({message:t,name:"oneOf",test:function(e){if(void 0===e)return!0;var t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},notOneOf:function(e,t){void 0===t&&(t=a.mixed.notOneOf);var r=this.clone();return e.forEach((function(e){r._blacklist.add(e),r._whitelist.delete(e)})),r._blacklistError=(0,g.default)({message:t,name:"notOneOf",test:function(e){var t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},strip:function(e){void 0===e&&(e=!0);var t=this.clone();return t._strip=e,t},_option:function(e,t){return(0,o.default)(t,e)?t[e]:this._options[e]},describe:function(){var e=this.clone();return{type:e._type,meta:e._meta,label:e._label,tests:e.tests.map((function(e){return{name:e.OPTIONS.name,params:e.OPTIONS.params}})).filter((function(e,t,r){return r.findIndex((function(t){return t.name===e.name}))===t}))}}},m=["validate","validateSync"],y=function(){var e=m[w];I[e+"At"]=function(t,r,n){void 0===n&&(n={});var o=(0,d.getIn)(this,t,r,n.context),s=o.parent,A=o.parentPath;return o.schema[e](s&&s[A],(0,i.default)({},n,{parent:s,path:t}))}},w=0;w<m.length;w++)y();for(var B=["equals","is"],Q=0;Q<B.length;Q++){I[B[Q]]=I.oneOf}for(var v=["not","nope"],D=0;D<v.length;D++){I[v[D]]=I.notOneOf}I.optional=I.notRequired,e.exports=t.default},72068:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=c;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=function(e){return(0,A.default)(e)||e===(0|e)};function c(){var e=this;if(!(this instanceof c))return new c;o.default.call(this,{type:"number"}),this.withMutation((function(){e.transform((function(e){var t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)}))}))}(0,i.default)(c,o.default,{_typeCheck:function(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!function(e){return e!=+e}(e)},min:function(e,t){return void 0===t&&(t=s.number.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.number.max),this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,A.default)(t)||t<=this.resolve(e)}})},lessThan:function(e,t){return void 0===t&&(t=s.number.lessThan),this.test({message:t,name:"max",exclusive:!0,params:{less:e},test:function(t){return(0,A.default)(t)||t<this.resolve(e)}})},moreThan:function(e,t){return void 0===t&&(t=s.number.moreThan),this.test({message:t,name:"min",exclusive:!0,params:{more:e},test:function(t){return(0,A.default)(t)||t>this.resolve(e)}})},positive:function(e){return void 0===e&&(e=s.number.positive),this.moreThan(0,e)},negative:function(e){return void 0===e&&(e=s.number.negative),this.lessThan(0,e)},integer:function(e){return void 0===e&&(e=s.number.integer),this.test({name:"integer",message:e,test:a})},truncate:function(){return this.transform((function(e){return(0,A.default)(e)?e:0|e}))},round:function(e){var t=["ceil","floor","round","trunc"];if("trunc"===(e=e&&e.toLowerCase()||"round"))return this.truncate();if(-1===t.indexOf(e.toLowerCase()))throw new TypeError("Only valid options for round() are: "+t.join(", "));return this.transform((function(t){return(0,A.default)(t)?t:Math[e](t)}))}}),e.exports=t.default},51727:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=B;var o=i(r(62407)),s=i(r(72912)),A=i(r(15215)),a=i(r(36494)),c=i(r(89170)),u=i(r(5253)),l=i(r(89612)),h=r(79588),g=i(r(16434)),f=r(63802),p=i(r(18417)),d=i(r(23316)),C=i(r(31490)),E=i(r(7045)),I=n(r(80180));function m(){var e=(0,o.default)(["",".",""]);return m=function(){return e},e}function y(){var e=(0,o.default)(["",".",""]);return y=function(){return e},e}var w=function(e){return"[object Object]"===Object.prototype.toString.call(e)};function B(e){var t=this;if(!(this instanceof B))return new B(e);g.default.call(this,{type:"object",default:function(){var e=this;if(this._nodes.length){var t={};return this._nodes.forEach((function(r){t[r]=e.fields[r].default?e.fields[r].default():void 0})),t}}}),this.fields=Object.create(null),this._nodes=[],this._excludedEdges=[],this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.shape(e)}))}(0,C.default)(B,g.default,{_typeCheck:function(e){return w(e)||"function"==typeof e},_cast:function(e,t){var r=this;void 0===t&&(t={});var n=g.default.prototype._cast.call(this,e,t);if(void 0===n)return this.default();if(!this._typeCheck(n))return n;var i=this.fields,o=!0===this._option("stripUnknown",t),a=this._nodes.concat(Object.keys(n).filter((function(e){return-1===r._nodes.indexOf(e)}))),c={},u=(0,s.default)({},t,{parent:c,__validating:!1}),l=!1;return a.forEach((function(e){var r=i[e],s=(0,A.default)(n,e);if(r){var a,h=r._options&&r._options.strict;if(u.path=(0,E.default)(y(),t.path,e),u.value=n[e],!0===(r=r.resolve(u))._strip)return void(l=l||e in n);void 0!==(a=t.__validating&&h?n[e]:r.cast(n[e],u))&&(c[e]=a)}else s&&!o&&(c[e]=n[e]);c[e]!==n[e]&&(l=!0)})),l?c:n},_validate:function(e,t){var r,n,i=this;void 0===t&&(t={});var o=t.sync,A=[],a=null!=t.originalValue?t.originalValue:e;return r=this._option("abortEarly",t),n=this._option("recursive",t),t=(0,s.default)({},t,{__validating:!0,originalValue:a}),g.default.prototype._validate.call(this,e,t).catch((0,I.propagateErrors)(r,A)).then((function(e){if(!n||!w(e)){if(A.length)throw A[0];return e}a=a||e;var c=i._nodes.map((function(r){var n=(0,E.default)(m(),t.path,r),o=i.fields[r],A=(0,s.default)({},t,{path:n,parent:e,originalValue:a[r]});return o&&o.validate?(A.strict=!0,o.validate(e[r],A)):Promise.resolve(!0)}));return(0,I.default)({sync:o,validations:c,value:e,errors:A,endEarly:r,path:t.path,sort:(0,d.default)(i.fields)})}))},concat:function(e){var t=g.default.prototype.concat.call(this,e);return t._nodes=(0,p.default)(t.fields,t._excludedEdges),t},shape:function(e,t){void 0===t&&(t=[]);var r=this.clone(),n=(0,s.default)(r.fields,e);if(r.fields=n,t.length){Array.isArray(t[0])||(t=[t]);var i=t.map((function(e){return e[0]+"-"+e[1]}));r._excludedEdges=r._excludedEdges.concat(i)}return r._nodes=(0,p.default)(n,r._excludedEdges),r},from:function(e,t,r){var n=(0,h.getter)(e,!0);return this.transform((function(i){if(null==i)return i;var o=i;return(0,A.default)(i,e)&&(o=(0,s.default)({},i),r||delete o[e],o[t]=n(i)),o}))},noUnknown:function(e,t){void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),"string"==typeof e&&(t=e,e=!0);var r=this.test({name:"noUnknown",exclusive:!0,message:t,test:function(t){return null==t||!e||0===function(e,t){var r=Object.keys(e.fields);return Object.keys(t).filter((function(e){return-1===r.indexOf(e)}))}(this.schema,t).length}});return r._options.stripUnknown=e,r},unknown:function(e,t){return void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),this.noUnknown(!e,t)},transformKeys:function(e){return this.transform((function(t){return t&&(0,u.default)(t,(function(t,r){return e(r)}))}))},camelCase:function(){return this.transformKeys(c.default)},snakeCase:function(){return this.transformKeys(a.default)},constantCase:function(){return this.transformKeys((function(e){return(0,a.default)(e).toUpperCase()}))},describe:function(){var e=g.default.prototype.describe.call(this);return e.fields=(0,l.default)(this.fields,(function(e){return e.describe()})),e}}),e.exports=t.default},24280:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e){Object.keys(e).forEach((function(t){Object.keys(e[t]).forEach((function(r){i.default[t][r]=e[t][r]}))}))};var i=n(r(63802));e.exports=t.default},45167:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=l;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,c=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,u=function(e){return(0,A.default)(e)||e===e.trim()};function l(){var e=this;if(!(this instanceof l))return new l;o.default.call(this,{type:"string"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:null!=e&&e.toString?e.toString():e}))}))}(0,i.default)(l,o.default,{_typeCheck:function(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e},_isPresent:function(e){return o.default.prototype._cast.call(this,e)&&e.length>0},length:function(e,t){return void 0===t&&(t=s.string.length),this.test({message:t,name:"length",exclusive:!0,params:{length:e},test:function(t){return(0,A.default)(t)||t.length===this.resolve(e)}})},min:function(e,t){return void 0===t&&(t=s.string.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.string.max),this.test({name:"max",exclusive:!0,message:t,params:{max:e},test:function(t){return(0,A.default)(t)||t.length<=this.resolve(e)}})},matches:function(e,t){var r,n=!1;return t&&(t.message||t.hasOwnProperty("excludeEmptyString")?(n=t.excludeEmptyString,r=t.message):r=t),this.test({message:r||s.string.matches,params:{regex:e},test:function(t){return(0,A.default)(t)||""===t&&n||e.test(t)}})},email:function(e){return void 0===e&&(e=s.string.email),this.matches(a,{message:e,excludeEmptyString:!0})},url:function(e){return void 0===e&&(e=s.string.url),this.matches(c,{message:e,excludeEmptyString:!0})},ensure:function(){return this.default("").transform((function(e){return null===e?"":e}))},trim:function(e){return void 0===e&&(e=s.string.trim),this.transform((function(e){return null!=e?e.trim():e})).test({message:e,name:"trim",test:u})},lowercase:function(e){return void 0===e&&(e=s.string.lowercase),this.transform((function(e){return(0,A.default)(e)?e:e.toLowerCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toLowerCase()}})},uppercase:function(e){return void 0===e&&(e=s.string.uppercase),this.transform((function(e){return(0,A.default)(e)?e:e.toUpperCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toUpperCase()}})}}),e.exports=t.default},54107:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.createErrorFactory=l,t.default=function(e){var t=e.name,r=e.message,n=e.test,s=e.params;function u(e){var u=e.value,h=e.path,g=e.label,f=e.options,p=e.originalValue,d=e.sync,C=(0,i.default)(e,["value","path","label","options","originalValue","sync"]),E=f.parent,I=function(e){return a.default.isRef(e)?e.getValue({value:u,parent:E,context:f.context}):e},m=l({message:r,path:h,value:u,originalValue:p,params:s,label:g,resolve:I,name:t}),y=(0,o.default)({path:h,parent:E,type:t,createError:m,resolve:I,options:f},C);return function(e,t,r,n){var i=e.call(t,r);if(!n)return Promise.resolve(i);if(o=i,o&&"function"==typeof o.then&&"function"==typeof o.catch)throw new Error('Validation test of type: "'+t.type+'" returned a Promise during a synchronous validate. This test will finish after the validate call has returned');var o;return c.SynchronousPromise.resolve(i)}(n,y,u,d).then((function(e){if(A.default.isError(e))throw e;if(!e)throw m()}))}return u.OPTIONS=e,u};var i=n(r(74943)),o=n(r(72912)),s=n(r(89612)),A=n(r(40828)),a=n(r(95814)),c=r(93255),u=A.default.formatError;function l(e){var t=e.value,r=e.label,n=e.resolve,a=e.originalValue,c=(0,i.default)(e,["value","label","resolve","originalValue"]);return function(e){var i=void 0===e?{}:e,l=i.path,h=void 0===l?c.path:l,g=i.message,f=void 0===g?c.message:g,p=i.type,d=void 0===p?c.name:p,C=i.params;return C=(0,o.default)({path:h,value:t,originalValue:a,label:r},function(e,t,r){return(0,s.default)((0,o.default)({},e,t),r)}(c.params,C,n)),(0,o.default)(new A.default(u(f,C),t,h,d),{params:C})}}},31490:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t,r){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),(0,i.default)(e.prototype,r)};var i=n(r(72912));e.exports=t.default},71665:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return null==e},e.exports=t.default},11050:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e&&e.__isYupSchema__},e.exports=t.default},76813:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){var t,n,i=[1,4,5,6,7,10,11],o=0;if(n=r.exec(e)){for(var s,A=0;s=i[A];++A)n[s]=+n[s]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,void 0!==n[8]&&""!==n[8]||void 0!==n[9]&&""!==n[9]?("Z"!==n[8]&&void 0!==n[9]&&(o=60*n[10]+n[11],"+"===n[9]&&(o=0-o)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+o,n[6],n[7])):t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7])}else t=Date.parse?Date.parse(e):NaN;return t};var r=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;e.exports=t.default},7045:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=e.reduce((function(e,t){var n=r.shift();return e+(null==n?"":n)+t}));return i.replace(/^\./,"")},e.exports=t.default},22808:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function e(t,r){for(var n in r)if((0,i.default)(r,n)){var A=r[n],a=t[n];if(void 0===a)t[n]=A;else{if(a===A)continue;(0,o.default)(a)?(0,o.default)(A)&&(t[n]=A.concat(a)):s(a)?s(A)&&(t[n]=e(a,A)):Array.isArray(a)&&Array.isArray(A)&&(t[n]=A.concat(a))}}return t};var i=n(r(15215)),o=n(r(11050)),s=function(e){return"[object Object]"===Object.prototype.toString.call(e)};e.exports=t.default},21043:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){var r=A(e,t);return null!==r?r:JSON.stringify(e,(function(e,r){var n=A(this[e],t);return null!==n?n:r}),2)};var r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,o="undefined"!=typeof Symbol?Symbol.prototype.toString:function(){return""},s=/^Symbol\((.*)\)(.*)$/;function A(e,t){if(void 0===t&&(t=!1),null==e||!0===e||!1===e)return""+e;var A=typeof e;if("number"===A)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===A)return t?'"'+e+'"':e;if("function"===A)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===A)return o.call(e).replace(s,"Symbol($1)");var a=r.call(e).slice(8,-1);return"Date"===a?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===a||e instanceof Error?"["+n.call(e)+"]":"RegExp"===a?i.call(e):null}e.exports=t.default},43910:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.getIn=s,t.default=void 0;var i=r(79588),o=n(r(15215));function s(e,t,r,n){var s,A,a;return n=n||r,t?((0,i.forEach)(t,(function(i,c,u){var l=c?function(e){return e.substr(0,e.length-1).substr(1)}(i):i;if(u||(0,o.default)(e,"_subType")){var h=u?parseInt(l,10):0;if(e=e.resolve({context:n,parent:s,value:r})._subType,r){if(u&&h>=r.length)throw new Error("Yup.reach cannot resolve an array item at index: "+i+", in the path: "+t+". because there is no value at that index. ");r=r[h]}}if(!u){if(e=e.resolve({context:n,parent:s,value:r}),!(0,o.default)(e,"fields")||!(0,o.default)(e.fields,l))throw new Error("The schema does not contain the path: "+t+". (failed at: "+a+' which is a type: "'+e._type+'") ');e=e.fields[l],s=r,r=r&&r[l],A=l,a=c?"["+i+"]":"."+i}})),{schema:e,parent:s,parentPath:A}):{parent:s,parentPath:t,schema:e}}var A=function(e,t,r,n){return s(e,t,r,n).schema};t.default=A},80180:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.propagateErrors=function(e,t){return e?null:function(e){return t.push(e),e.value}},t.settled=a,t.collectErrors=c,t.default=function(e){var t=e.endEarly,r=(0,i.default)(e,["endEarly"]);return t?function(e,t,r){return A(r).all(e).catch((function(e){throw"ValidationError"===e.name&&(e.value=t),e})).then((function(){return t}))}(r.validations,r.value,r.sync):c(r)};var i=n(r(74943)),o=r(93255),s=n(r(40828)),A=function(e){return e?o.SynchronousPromise:Promise};function a(e,t){var r=A(t);return r.all(e.map((function(e){return r.resolve(e).then((function(e){return{fulfilled:!0,value:e}}),(function(e){return{fulfilled:!1,value:e}}))})))}function c(e){var t=e.validations,r=e.value,n=e.path,i=e.sync,o=e.errors,A=e.sort;return o=function(e){return void 0===e&&(e=[]),e.inner&&e.inner.length?e.inner:[].concat(e)}(o),a(t,i).then((function(e){var t=e.filter((function(e){return!e.fulfilled})).reduce((function(e,t){var r=t.value;if(!s.default.isError(r))throw r;return e.concat(r)}),[]);if(A&&t.sort(A),(o=t.concat(o)).length)throw new s.default(o,r,n);return r}))}},23316:(e,t)=>{"use strict";function r(e,t){var r=1/0;return e.some((function(e,n){if(-1!==t.path.indexOf(e))return r=n,!0})),r}t.__esModule=!0,t.default=function(e){var t=Object.keys(e);return function(e,n){return r(t,e)-r(t,n)}},e.exports=t.default},18417:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t){void 0===t&&(t=[]);var r=[],n=[];function c(e,i){var o=(0,s.split)(e)[0];~n.indexOf(o)||n.push(o),~t.indexOf(i+"-"+o)||r.push([i,o])}for(var u in e)if((0,i.default)(e,u)){var l=e[u];~n.indexOf(u)||n.push(u),A.default.isRef(l)&&l.isSibling?c(l.path,u):(0,a.default)(l)&&l._deps&&l._deps.forEach((function(e){return c(e,u)}))}return o.default.array(n,r).reverse()};var i=n(r(15215)),o=n(r(75158)),s=r(79588),A=n(r(95814)),a=n(r(11050));e.exports=t.default},38422:e=>{"use strict";e.exports={u2:"yup"}},60306:e=>{"use strict";e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.1.1","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.1.1","@yarnpkg/fslib":"workspace:^2.1.0","@yarnpkg/libzip":"workspace:^2.1.0","@yarnpkg/parsers":"workspace:^2.1.0","@yarnpkg/plugin-compat":"workspace:^2.1.0","@yarnpkg/plugin-dlx":"workspace:^2.1.0","@yarnpkg/plugin-essentials":"workspace:^2.1.0","@yarnpkg/plugin-file":"workspace:^2.1.0","@yarnpkg/plugin-git":"workspace:^2.1.0","@yarnpkg/plugin-github":"workspace:^2.1.0","@yarnpkg/plugin-http":"workspace:^2.1.0","@yarnpkg/plugin-init":"workspace:^2.1.0","@yarnpkg/plugin-link":"workspace:^2.1.0","@yarnpkg/plugin-node-modules":"workspace:^2.1.0","@yarnpkg/plugin-npm":"workspace:^2.1.0","@yarnpkg/plugin-npm-cli":"workspace:^2.1.0","@yarnpkg/plugin-pack":"workspace:^2.1.0","@yarnpkg/plugin-patch":"workspace:^2.1.0","@yarnpkg/plugin-pnp":"workspace:^2.1.0","@yarnpkg/shell":"workspace:^2.1.0","chalk":"^3.0.0","clipanion":"^2.4.2","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.1.0","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.1.0","micromatch":"^4.0.2","typescript":"^3.9.5"},"peerDependencies":{"@yarnpkg/core":"^2.1.1"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},98497:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=98497,e.exports=t},73841:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/core"}')},32178:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=32178,e.exports=t},4670:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/fslib"}')},81386:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/libzip"}')},3368:(e,t,r)=>{var n,i=Object.assign({},r(35747)),o=void 0!==o?o:{},s={};for(n in o)o.hasOwnProperty(n)&&(s[n]=o[n]);var A,a,c,u,l=[],h="";h=__dirname+"/",A=function(e,t){var n=Be(e);return n?t?n:n.toString():(c||(c=i),u||(u=r(85622)),e=u.normalize(e),c.readFileSync(e,t?null:"utf8"))},a=function(e){var t=A(e,!0);return t.buffer||(t=new Uint8Array(t)),I(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),l=process.argv.slice(2),e.exports=o,o.inspect=function(){return"[Emscripten Module object]"};var g=o.print||console.log.bind(console),f=o.printErr||console.warn.bind(console);for(n in s)s.hasOwnProperty(n)&&(o[n]=s[n]);s=null,o.arguments&&(l=o.arguments),o.thisProgram&&o.thisProgram,o.quit&&o.quit;var p,d;o.wasmBinary&&(p=o.wasmBinary),o.noExitRuntime&&o.noExitRuntime,"object"!=typeof WebAssembly&&f("no native wasm support detected");var C=new WebAssembly.Table({initial:31,maximum:31,element:"anyfunc"}),E=!1;function I(e,t){e||Z("Assertion failed: "+t)}function m(e){var t=o["_"+e];return I(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function y(e,t,r,n,i){var o={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);D(e,t=Re(r),r)}return t},array:function(e){var t=Re(e.length);return function(e,t){x.set(e,t)}(e,t),t}};var s=m(e),A=[],a=0;if(n)for(var c=0;c<n.length;c++){var u=o[r[c]];u?(0===a&&(a=Me()),A[c]=u(n[c])):A[c]=n[c]}var l=s.apply(null,A);return l=function(e){return"string"===t?Q(e):"boolean"===t?Boolean(e):e}(l),0!==a&&Ne(a),l}var w="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function B(e,t,r){for(var n=t+r,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.subarray&&w)return w.decode(e.subarray(t,i));for(var o="";t<i;){var s=e[t++];if(128&s){var A=63&e[t++];if(192!=(224&s)){var a=63&e[t++];if((s=224==(240&s)?(15&s)<<12|A<<6|a:(7&s)<<18|A<<12|a<<6|63&e[t++])<65536)o+=String.fromCharCode(s);else{var c=s-65536;o+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else o+=String.fromCharCode((31&s)<<6|A)}else o+=String.fromCharCode(s)}return o}function Q(e,t){return e?B(F,e,t):""}function v(e,t,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,s=0;s<e.length;++s){var A=e.charCodeAt(s);if(A>=55296&&A<=57343)A=65536+((1023&A)<<10)|1023&e.charCodeAt(++s);if(A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|63&A}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|63&A}else{if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|63&A}}return t[r]=0,r-i}function D(e,t,r){return v(e,F,t,r)}function b(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function S(e){var t=b(e)+1,r=Ke(t);return r&&v(e,x,r,t),r}var k,x,F,M,N,R,K;function L(e){k=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=M=new Int16Array(e),o.HEAP32=N=new Int32Array(e),o.HEAPU8=F=new Uint8Array(e),o.HEAPU16=new Uint16Array(e),o.HEAPU32=new Uint32Array(e),o.HEAPF32=R=new Float32Array(e),o.HEAPF64=K=new Float64Array(e)}var T=o.INITIAL_MEMORY||16777216;function P(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?o.dynCall_v(r):o.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}(d=o.wasmMemory?o.wasmMemory:new WebAssembly.Memory({initial:T/65536,maximum:32768}))&&(k=d.buffer),T=k.byteLength,L(k),N[5160]=5263680;var U=[],_=[],O=[],j=[];var Y=Math.abs,G=Math.ceil,J=Math.floor,H=Math.min,q=0,z=null,W=null;function V(e){q++,o.monitorRunDependencies&&o.monitorRunDependencies(q)}function X(e){if(q--,o.monitorRunDependencies&&o.monitorRunDependencies(q),0==q&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}function Z(e){throw o.onAbort&&o.onAbort(e),g(e+=""),f(e),E=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}o.preloadedImages={},o.preloadedAudios={};function $(e){return t=e,r="data:application/octet-stream;base64,",String.prototype.startsWith?t.startsWith(r):0===t.indexOf(r);var t,r}var ee,te,re="data:application/octet-stream;base64,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BRAiGiABKAIMKAIABEAgASgCDCgCABAcCyABKAIMEBYLIAFBEGokAAuBAgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMKAIcNgIEIAEoAgQQ6gIgASABKAIEKAIUNgIIIAEoAgggASgCDCgCEEsEQCABIAEoAgwoAhA2AggLAkAgASgCCEUNACABKAIMKAIMIAEoAgQoAhAgASgCCBAaGiABKAIMIgAgASgCCCAAKAIMajYCDCABKAIEIgAgASgCCCAAKAIQajYCECABKAIMIgAgASgCCCAAKAIUajYCFCABKAIMIgAgACgCECABKAIIazYCECABKAIEIgAgACgCFCABKAIIazYCFCABKAIEKAIUDQAgASgCBCABKAIEKAIINgIQCyABQRBqJAALYAEBfyMAQRBrIgEkACABIAA2AgggASABKAIIQgIQHzYCBAJAIAEoAgRFBEAgAUEAOwEODAELIAEgASgCBC0AACABKAIELQABQQh0ajsBDgsgAS8BDiEAIAFBEGokACAAC1oBAX8jAEEgayICJAAgAiAANgIcIAIgATcDECACIAIoAhwgAikDEBDPATYCDCACKAIMBEAgAigCHCIAIAIpAxAgACkDEHw3AxALIAIoAgwhACACQSBqJAAgAAtvAQF/IwBBEGsiAiQAIAIgADYCCCACIAE7AQYgAiACKAIIQgIQHzYCAAJAIAIoAgBFBEAgAkF/NgIMDAELIAIoAgAgAi8BBjoAACACKAIAIAIvAQZBCHU6AAEgAkEANgIMCyACKAIMGiACQRBqJAALjwEBAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAghCBBAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACKAIEOgAAIAIoAgAgAigCBEEIdjoAASACKAIAIAIoAgRBEHY6AAIgAigCACACKAIEQRh2OgADIAJBADYCDAsgAigCDBogAkEQaiQAC7YCAQF/IwBBMGsiBCQAIAQgADYCJCAEIAE2AiAgBCACNwMYIAQgAzYCFAJAIAQoAiQpAxhCASAEKAIUrYaDUARAIAQoAiRBDGpBHEEAEBUgBEJ/NwMoDAELAkAgBCgCJCgCAEUEQCAEIAQoAiQoAgggBCgCICAEKQMYIAQoAhQgBCgCJCgCBBEPADcDCAwBCyAEIAQoAiQoAgAg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BCgCLEGUAWogBCgCLEGIE2oQtgELCyAEKAIsELkBIAQoAiAEQCAEKAIsELgBCyAEQTBqJAAL1AEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhFOgAPAkAgAigCGEUEQCACIAIpAxCnEBkiADYCGCAARQRAIAJBADYCHAwCCwsgAkEYEBkiADYCCCAARQRAIAItAA9BAXEEQCACKAIYEBYLIAJBADYCHAwBCyACKAIIQQE6AAAgAigCCCACKAIYNgIEIAIoAgggAikDEDcDCCACKAIIQgA3AxAgAigCCCACLQAPQQFxOgABIAIgAigCCDYCHAsgAigCHCEAIAJBIGokACAAC3gBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIEEB82AgQCQCABKAIERQRAIAFBADYCDAwBCyABIAEoAgQtAAAgASgCBC0AASABKAIELQACIAEoAgQtAANBCHRqQQh0akEIdGo2AgwLIAEoAgwhACABQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQf/9+3dqcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAfNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMg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KAIUIANBngFqIANBnAFqEMQBIAMoAkwgAy8BngEQICADKAJMIAMvAZwBECACQAJAIAMtAIUBQQFxRQ0AIAMoAqQBKQMoQhRaDQAgAygCTEEAECEMAQsgAygCTCADKAKkASgCGBAhCwJAAkAgAygCoAFBgAJxQYACRw0AIAMoAqQBKQMgQv////8PVARAIAMoAqQBKQMoQv////8PVA0BCyADKAJMQX8QISADKAJMQX8QIQwBCwJAIAMoAqQBKQMgQv////8PVARAIAMoAkwgAygCpAEpAyCnECEMAQsgAygCTEF/ECELAkAgAygCpAEpAyhC/////w9UBEAgAygCTCADKAKkASkDKKcQIQwBCyADKAJMQX8QIQsLIAMoAkwgAygCpAEoAjAQUkH//wNxECAgAyADKAKkASgCNCADKAKgARCEAUH//wNxIAMoApABQYAGEIQBQf//A3FqNgKIASADKAJMIAMoAogBQf//A3EQICADKAKgAUGAAnFFBEAgAygCTCADKAKkASgCOBBSQf//A3EQICADKAJMIAMoAqQBKAI8Qf//A3EQICADKAJMIAMoAqQBLwFAECAgAygCTCADKAKkASgCRBAhAkAgAygCpAEpA0hC/////w9UBEAgAygCTCADKAKkASkDSKcQIQwBCyADKAJMQX8QIQsLAn8jAEEQayIAIAMoAkw2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCTBAXIAMoApABECQgA0F/NgKsAQwBCyADKAKoASADQdAAagJ+IwBBEGsiACADKAJMNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAkwQFyADKAKkASgCMARAIAMoAqgBIAMoAqQBKAIwEIgBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQAQRAIAMoAqgBIAMoApABQYAGEIMBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQARAkIAMoAqQBKAI0BEAgAygCqAEgAygCpAEoAjQgAygCoAEQgwFBAEgEQCADQX82AqwBDAILCyADKAKgAUGAAnFFBEAgAygCpAEoAjgEQCADKAKoASADKAKkASgCOBCIAUEASARAIANBfzYC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AygCgAEoAgAgAykDcKdBBHRqKAIAKAI0IAMoAjQQhwEhACADKAKAASgCACADKQNwp0EEdGooAgAgADYCNCADKAKAASgCACADKQNwp0EEdGooAgBBAToABCADQQA2AjQgAxBcIAMgAykDcEIBfDcDcAwCCwALCyADAn4gAykDYCADKQNofUL///////////8AVARAIAMpA2AgAykDaH0MAQtC////////////AAs3A4gBCyADKQOIASEEIANBkAFqJAAgBAumAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhAQ+gEiADYCDAJAIABFBEAgA0EANgIcDAELIAMoAgwgAygCGDYCACADKAIMIAMoAhQ2AgQgAygCFEEQcQRAIAMoAgwiACAAKAIUQQJyNgIUIAMoAgwiACAAKAIYQQJyNgIYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvVAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQAJAIAQpAxBC////////////AFcEQCAEKQMQQoCAgICAgICAgH9ZDQELIAQoAghBBEE9EBUgBEF/NgIcDAELAn8gBCkDECEBIAQoAgwhACAEKAIYIgIoAkxBf0wEQCACIAEgABCXAQwBCyACIAEgABCXAQtBAEgEQCAEKAIIQQRBtJwBKAIAEBUgBEF/NgIcDAELIARBADYCHAsgBCgCHCEAIARBIGokACAACycAAn9BAEEAIAAQBSIAIABBG0YbIgBFDQAaQbScASAANgIAQQALGgteAQF/IwBBEGsiAyQAIAMgAUHAgIACcQR/IAMgAkEEajYCDCACKAIABUEACzYCACAAIAFBgIACciADEBEiAEGBYE8EQEG0nAFBACAAazYCAEF/IQALIANBEGokACAACzMBAX8CfyAAEAYiAUFhRgRAIAAQEiEBCyABQYFgTwsEf0G0nAFBACABazYCAEF/BSABCwtpAQJ/AkAgACgCFCAAKAIcTQ0AIABBAEEAIAAoAiQRAQAaIAAoAhQNAEF/DwsgACgCBCIBIAAoAggiAkkEQCAAIAEgAmusQQEgACgCKBEQABoLIABBADYCHCAAQgA3AxAgAEIANwIEQQALpgEBAX8jAEEQayICJAAgAiAANgIIIAIgATYC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AX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC7QCAQF/IwBBMGsiAyQAIAMgADYCKCADIAE3AyAgAyACNgIcAkAgAykDIFAEQCADQQE6AC8MAQsgAyADKAIoKQMQIAMpAyB8NwMIAkAgAykDCCADKQMgWgRAIAMpAwhC/////wBYDQELIAMoAhxBDkEAEBUgA0EAOgAvDAELIAMgAygCKCgCACADKQMIp0EEdBBPIgA2AgQgAEUEQCADKAIcQQ5BABAVIANBADoALwwBCyADKAIoIAMoAgQ2AgAgAyADKAIoKQMINwMQA0AgAykDECADKQMIWkUEQCADKAIoKAIAIAMpAxCnQQR0ahCOASADIAMpAxBCAXw3AxAMAQsLIAMoAiggAykDCCIBNwMQIAMoAiggATcDCCADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAvMAQEBfyMAQSBrIgIkACACIAA3AxAgAiABNgIMIAJBMBAZIgE2AggCQCABRQRAIAIoAgxBDkEAEBUgAkEANgIcDAELIAIoAghBADYCACACKAIIQgA3AxAgAigCCEIANwMIIAIoAghCADcDICACKAIIQgA3AxggAigCCEEANgIoIAIoAghBADoALCACKAIIIAIpAxAgAigCDBCBAUEBcUUEQCACKAIIECUgAkEANgIcDAELIAIgAigCCDYCHAsgAigCHCEBIAJBIGokACABC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMo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AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC4IFAQF/IwBB4ABrIgMkACADIAA2AlggAyABNgJUIAMgAjYCUAJAAkAgAygCVEEATgRAIAMoAlgNAQsgAygCUEESQQAQFSADQQA2AlwMAQsgAyADKAJUNgJMIwBBEGsiACADKAJYNgIMIAMgACgCDCkDGDcDQEHgmwEpAwBCf1EEQCADQX82AhQgA0EDNgIQIANBBzYCDCADQQY2AgggA0ECNgIEIANBATYCAEHgmwFBACADEDc3AwAgA0F/NgI0IANBDzYCMCADQQ02AiwgA0EMNgIoIANBCjYCJCADQQk2AiBB6JsBQQggA0EgahA3NwMAC0HgmwEpAwAgAykDQEHgmwEpAwCDUgRAIAMoAlBBHEEAEBUgA0EANgJcDAELQeibASkDACADKQNAQeibASkDAINSBEAgAyADKAJMQRByNgJMCyADKAJMQRhxQRhGBEAgAygCUEEZQQAQFSADQQA2AlwMAQsgAyADKAJYIAMoAlAQ+AE2AjwCQAJAAkAgAygCPEEBag4CAAECCyADQQA2AlwMAgsgAygCTEEBcUUEQCADKAJQQQlBABAVIANBADYCXAwCCyADIAMoAlggAygCTCADKAJQEGY2AlwMAQsgAygCTEECcQRAIAMoAlBBCkEAEBUgA0EANgJcDAELIAMoAlgQSUEASARAIAMoAlAgAygCWBAYIANBADYCXAwBCwJAIAMoAkxBCHEEQCADIAMoAlggAygCTCADKAJQEGY2AjgMAQsgAyADKAJYIAMoAkwgAygCUBD3ATYCOAsgAygCOEUEQCADKAJYEDIaIANBADYCXAwBCyADIAMoAjg2AlwLIAMoAlwhACADQeAAaiQAIAALjgEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQgAigCCARAIwBBEGsiACACKAIINgIMIAIgACgCDCgCADYCBCACKAIIELABQQFGBEAjAEEQayIAIAIoAgg2AgxBtJwBIAAoAgwoAgQ2AgALCyACKAIMBEAgAigCDCACKAIENgIACyACQRBqJAALlQEBAX8jAEEQayIBJAAgASAANgIIAkACfyMAQRBrIgAgASgCCDYCDCAAKAIMKQMYQoCAEINQCwRAIAEoAggoAgAEQCABIAEoAggoAgAQlAFBAXE6AA8MAgsgAUEBOgAPDAELIAEgASgCCEEAQgBBEhAiPgIEIAEgASgCBEEARzoADwsgAS0AD0EBcSEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEJEBIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAt/AQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgA0EANgIMIAMgAjYCCAJAIAMpAxBC////////////AFYEQCADKAIIQQRBPRAVIANBfzYCHAwBCyADIAMoAhggAykDECADKAIMIAMoAggQZzYCHAsgAygCHCEAIANBIGokACAAC30AIAJBAUYEQCABIAAoAgggACgCBGusfSEBCwJAIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQEAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigREABCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C+ICAQJ/IwBBIGsiAyQAAn8CQAJAQfSXASABLAAAEJkBRQRAQbScAUEcNgIADAELQZgJEBkiAg0BC0EADAELIAJBAEGQARAzIAFBKxCZAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02AgxBrKABKAIARQRAIAJBfzYCTAsgAkGAoQEoAgA2AjhBgKEBKAIAIgAEQCAAIAI2AjQLQYChASACNgIAIAILIQAgA0EgaiQAIAALGgAgACABEIQCIgBBACAALQAAIAFB/wFxRhsLwwIBAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIIKQMAQgKDQgBSBEAgAygCDCADKAIIKQMQNwMQCyADKAIIKQMAQgSDQgBSBEAgAygCDCADKAIIKQMYNwMYCyADKAIIKQMAQgiDQgBSBEAgAygCDCADKAIIKQMgNwMgCyADKAIIKQMAQhCDQgBSBEAgAygCDCADKAIIKAIoNgIoCyADKAIIKQMAQiCDQgBSBEAgAygCDCADKAIIKAIsNgIsCyADKAIIKQMAQsAAg0IAUgRAIAMoAgwgAygCCC8BMDsBMAsgAygCCCkDAEKAAYNCAFIEQCADKAIMIAMoAggvATI7ATILIAMoAggpAwBCgAKDQgBSBEAgAygCDCADKAIIKAI0NgI0CyADKAIMIgAgAygCCCkDACAAKQMAhDcDAEEACxgAIAAoAkxBf0wEQCAAEJwBDwsgABCcAQtgAgJ/AX4gACgCKCEBQQEhAiAAQgAgAC0AAEGAAXEEf0ECQQEgACgCFCAAKAIcSxsFQQELIAEREAAiA0IAWQR+IAAoAhQgACgCHGusIAMgACgCCCAAKAIEa6x9fAUgAwsLdgEBfyAABEAgACgCTEF/TARAIAAQaw8LIAAQaw8LQYShASgCAARAQYShASgCABCdASEBC0GAoQEoAgAiAARAA0AgACgCTEEATgR/QQEFQQALGiAAKAIUIAAoAhxLBEAgABBrIAFyIQELIAAoAjgiAA0ACwsgAQsiACAAIAEQAiIAQYFgTwR/QbScAUEAIABrNgIAQX8FIAALC9YBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCCAEIAQoAhggBCgCGCAEKQMQIAQoAgwgBCgCCBCpASIANgIAAkAgAEUEQCAEQQA2AhwMAQsgBCgCABBJQQBIBEAgBCgCGEEIaiAEKAIAEBggBCgCABAcIARBADYCHAwBCyAEIAQoAhgQlAIiADYCBCAARQRAIAQoAgAQHCAEQQA2AhwMAQsgBCgCBCAEKAIANgIUIAQgBCgCBDYCHAsgBCgCHCEAIARBIGokACAAC6YBAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE3AxAgBSACNgIMIAUgAzYCCCAFIAQ2AgQgBSAFKAIYIAUpAxAgBSgCDEEAEEUiADYCAAJAIABFBEAgBUF/NgIcDAELIAUoAggEQCAFKAIIIAUoAgAvAQhBCHU6AAALIAUoAgQEQCAFKAIEIAUoAgAoAkQ2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAAC6UEAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE3AyAgBSACNgIcIAUgAzoAGyAFIAQ2AhQCQCAFKAIoIAUpAyBBAEEAEEVFBEAgBUF/NgIsDAELIAUoAigoAhhBAnEEQCAFKAIoQQhqQRlBABAVIAVBfzYCLAwBCyAFIAUoAigoAkAgBSkDIKdBBHRqNgIQIAUCfyAFKAIQKAIABEAgBSgCECgCAC8BCEEIdQwBC0EDCzoACyAFAn8gBSgCECgCAARAIAUoAhAoAgAoAkQMAQtBgIDYjXgLNgIEQQEhACAFIAUtABsgBS0AC0YEfyAFKAIUIAUoAgRHBUEBC0EBcTYCDAJAIAUoAgwEQCAFKAIQKAIERQRAIAUoAhAoAgAQRiEAIAUoAhAgADYCBCAARQRAIAUoAihBCGpBDkEAEBUgBUF/NgIsDAQLCyAFKAIQKAIEIAUoAhAoAgQvAQhB/wFxIAUtABtBCHRyOwEIIAUoAhAoAgQgBSgCFDYCRCAFKAIQKAIEIgAgACgCAEEQcjYCAAwBCyAFKAIQKAIEBEAgBSgCECgCBCIAIAAoAgBBb3E2AgACQCAFKAIQKAIEKAIARQRAIAUoAhAoAgQQOiAFKAIQQQA2AgQMAQsgBSgCECgCBCAFKAIQKAIELwEIQf8BcSAFLQALQQh0cjsBCCAFKAIQKAIEIAUoAgQ2AkQLCwsgBUEANgIsCyAFKAIsIQAgBUEwaiQAIAAL7QQCAX8BfiMAQUBqIgQkACAEIAA2AjQgBEJ/NwMoIAQgATYCJCAEIAI2AiAgBCADNgIcAkAgBCgCNCgCGEECcQRAIAQoAjRBCGpBGUEAEBUgBEJ/NwM4DAELIAQgBCgCNCkDMDcDECAEKQMoQn9RBEAgBEJ/NwMIIAQoAhxBgMAAcQRAIAQgBCgCNCAEKAIkIAQoAhxBABBVNwMICyAEKQMIQn9RBEAgBCAEKAI0EKACIgU3AwggBUIAUwRAIARCfzcDOAwDCwsgBCAEKQMINwMoCwJAIAQoAiRFDQAgBCgCNCAEKQMoIAQoAiQgBCgCHBCfAkUNACAEKAI0KQMwIAQpAxBSBEAgBCgCNCgCQCAEKQMop0EEdGoQYiAEKAI0IAQpAxA3AzALIARCfzcDOAwBCyAEKAI0KAJAIAQpAyinQQR0ahBjAkAgBCgCNCgCQCAEKQMop0EEdGooAgBFDQAgBCgCNCgCQCAEKQMop0EEdGooAgQEQCAEKAI0KAJAIAQpAyinQQR0aigCBCgCAEEBcQ0BCyAEKAI0KAJAIAQpAyinQQR0aigCBEUEQCAEKAI0KAJAIAQpAyinQQR0aigCABBGIQAgBCgCNCgCQCAEKQMop0EEdGogADYCBCAARQRAIAQoAjRBCGpBDkEAEBUgBEJ/NwM4DAMLCyAEKAI0KAJAIAQpAyinQQR0aigCBEF+NgIQIAQoAjQoAkAgBCkDKKdBBHRqKAIEIgAgACgCAEEBcjYCAAsgBCgCNCgCQCAEKQMop0EEdGogBCgCIDYCCCAEIAQpAyg3AzgLIAQpAzghBSAEQUBrJAAgBQuYAgACQAJAIAFBFEsNAAJAAkACQAJAAkACQAJAAkAgAUF3ag4KAAECCQMEBQYJBwgLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAAgAkEWEQQACw8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAtKAQN/IAAoAgAsAABBUGpBCkkEQANAIAAoAgAiASwAACEDIAAgAUEBajYCACADIAJBCmxqQVBqIQIgASwAAUFQakEKSQ0ACwsgAgt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARClASEAIAEoAgBBQGoLNgIAIAAPCyABIAJBgnhqNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALCxIAIABFBEBBAA8LIAAgARC1AgvlAQECfyACQQBHIQMCQAJAAkAgAkUNACAAQQNxRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAEEBaiEAIAJBf2oiAkEARyEDIAJFDQEgAEEDcQ0ACwsgA0UNAQsCQCAALQAAIAFB/wFxRg0AIAJBBEkNACABQf8BcUGBgoQIbCEDA0AgACgCACADcyIEQX9zIARB//37d2pxQYCBgoR4cQ0BIABBBGohACACQXxqIgJBA0sNAAsLIAJFDQAgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBf2oiAg0ACwtBAAuqAQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgIAJBADYCHAJAAkAgAigCKCgCJEEBRgRAIAIoAhxFDQEgAigCHEEBRg0BIAIoAhxBAkYNAQsgAigCKEEMakESQQAQFSACQX82AiwMAQsgAiACKQMgNwMIIAIgAigCHDYCECACQX9BACACKAIoIAJBCGpCEEEMECJCAFMbNgIsCyACKAIsIQAgAkEwaiQAIAALzQsBAX8jAEHAAWsiBSQAIAUgADYCuAEgBSABNgK0ASAFIAI3A6gBIAUgAzYCpAEgBUIANwOYASAFQgA3A5ABIAUgBDYCjAECQCAFKAK4AUUEQCAFQQA2ArwBDAELAkAgBSgCtAEEQCAFKQOoASAFKAK0ASkDMFQNAQsgBSgCuAFBCGpBEkEAEBUgBUEANgK8AQwBCwJAIAUoAqQBQQhxDQAgBSgCtAEoAkAgBSkDqAGnQQR0aigCCEUEQCAFKAK0ASgCQCAFKQOoAadBBHRqLQAMQQFxRQ0BCyAFKAK4AUEIakEPQQAQFSAFQQA2ArwBDAELIAUoArQBIAUpA6gBIAUoAqQBQQhyIAVByABqEHpBAEgEQCAFKAK4AUEIakEUQQAQFSAFQQA2ArwBDAELIAUoAqQBQSBxBEAgBSAFKAKkAUEEcjYCpAELAkAgBSkDmAFCAFgEQCAFKQOQAUIAWA0BCyAFKAKkAUEEcUUNACAFKAK4AUEIakESQQAQFSAFQQA2ArwBDAELAkAgBSkDmAFCAFgEQCAFKQOQAUIAWA0BCyAFKQOYASAFKQOQAXwgBSkDmAFaBEAgBSkDmAEgBSkDkAF8IAUpA2BYDQELIAUoArgBQQhqQRJBABAVIAVBADYCvAEMAQsgBSkDkAFQBEAgBSAFKQNgIAUpA5gBfTcDkAELIAUgBSkDkAEgBSkDYFQ6AEcgBSAFKAKkAUEgcQR/QQAFIAUvAXpBAEcLQQFxOgBFIAUgBSgCpAFBBHEEf0EABSAFLwF4QQBHC0EBcToARCAFAn8gBSgCpAFBBHEEQEEAIAUvAXgNARoLIAUtAEdBf3MLQQFxOgBGIAUtAEVBAXEEQCAFKAKMAUUEQCAFIAUoArgBKAIcNgKMAQsgBSgCjAFFBEAgBSgCuAFBCGpBGkEAEBUgBUEANgK8AQwCCwsgBSkDaFAEQCAFIAUoArgBQQBCAEEAEHk2ArwBDAELAkACQCAFLQBHQQFxRQ0AIAUtAEVBAXENACAFLQBEQQFxDQAgBSAFKQOQATcDICAFIAUpA5ABNwMoIAVBADsBOCAFIAUoAnA2AjAgBULcADcDCCAFIAUoArQBKAIAIAUpA5gBIAUpA5ABIAVBCGpBACAFKAK0ASAFKQOoASAFKAK4AUEIahB+IgA2AogBDAELIAUgBSgCtAEgBSkDqAEgBSgCpAEgBSgCuAFBCGoQRSIANgIEIABFBEAgBUEANgK8AQwCCyAFIAUoArQBKAIAQgAgBSkDaCAFQcgAaiAFKAIELwEMQQF1QQNxIAUoArQBIAUpA6gBIAUoArgBQQhqEH4iADYCiAELIABFBEAgBUEANgK8AQwBCyAFKAKIASAFKAK0ARCGA0EASARAIAUoAogBEBwgBUEANgK8AQwBCyAFLQBFQQFxBEAgBSAFLwF6QQAQdyIANgIAIABFBEAgBSgCuAFBCGpBGEEAEBUgBUEANgK8AQwCCyAFIAUoArgBIAUoAogBIAUvAXpBACAFKAKMASAFKAIAEQYANgKEASAFKAKIARAcIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUtAERBAXEEQCAFIAUoArgBIAUoAogBIAUvAXgQqwE2AoQBIAUoAogBEBwgBSgChAFFBEAgBUEANgK8AQwCCyAFIAUoAoQBNgKIAQsgBS0ARkEBcQRAIAUgBSgCuAEgBSgCiAFBARCqATYChAEgBSgCiAEQHCAFKAKEAUUEQCAFQQA2ArwBDAILIAUgBSgChAE2AogBCwJAIAUtAEdBAXFFDQAgBS0ARUEBcUUEQCAFLQBEQQFxRQ0BCyAFIAUoArgBIAUoAogBIAUpA5gBIAUpA5ABEIgDNgKEASAFKAKIARAcIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUgBSgCiAE2ArwBCyAFKAK8ASEAIAVBwAFqJAAgAAuEAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhRFBEAgAygCGEEIakESQQAQFSADQQA2AhwMAQsgA0E4EBkiADYCDCAARQRAIAMoAhhBCGpBDkEAEBUgA0EANgIcDAELIwBBEGsiACADKAIMQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAMoAgwgAygCEDYCACADKAIMQQA2AgQgAygCDEIANwMoQQBBAEEAEBshACADKAIMIAA2AjAgAygCDEIANwMYIAMgAygCGCADKAIUQRQgAygCDBBkNgIcCyADKAIcIQAgA0EgaiQAIAALQwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBEEAQQAQrQEhACADQRBqJAAgAAtJAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDCgCrEAgASgCDCgCqEAoAgQRAwAgASgCDBA4IAEoAgwQFgsgAUEQaiQAC5cCAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE2AiQgBSACNgIgIAUgAzoAHyAFIAQ2AhggBUEANgIMAkAgBSgCJEUEQCAFKAIoQQhqQRJBABAVIAVBADYCLAwBCyAFIAUoAiAgBS0AH0EBcRCuASIANgIMIABFBEAgBSgCKEEIakEQQQAQFSAFQQA2AiwMAQsgBSAFKAIgIAUtAB9BAXEgBSgCGCAFKAIMEMECIgA2AhQgAEUEQCAFKAIoQQhqQQ5BABAVIAVBADYCLAwBCyAFIAUoAiggBSgCJEETIAUoAhQQZCIANgIQIABFBEAgBSgCFBCsASAFQQA2AiwMAQsgBSAFKAIQNgIsCyAFKAIsIQAgBUEwaiQAIAALzAEBAX8jAEEgayICIAA2AhggAiABOgAXIAICfwJAIAIoAhhBf0cEQCACKAIYQX5HDQELQQgMAQsgAigCGAs7AQ4gAkEANgIQAkADQCACKAIQQdCYASgCAEkEQCACKAIQQQxsQdSYAWovAQAgAi8BDkYEQCACLQAXQQFxBEAgAiACKAIQQQxsQdSYAWooAgQ2AhwMBAsgAiACKAIQQQxsQdSYAWooAgg2AhwMAwUgAiACKAIQQQFqNgIQDAILAAsLIAJBADYCHAsgAigCHAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBkiADYCDAJAIABFBEAgAygCEEEBQbScASgCABAVIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC1oBAX8jAEEQayIBIAA2AggCQAJAIAEoAggoAgBBAE4EQCABKAIIKAIAQaAOKAIASA0BCyABQQA2AgwMAQsgASABKAIIKAIAQQJ0QbAOaigCADYCDAsgASgCDAvjCAEBfyMAQUBqIgIgADYCOCACIAE2AjQgAiACKAI4KAJ8NgIwIAIgAigCOCgCOCACKAI4KAJsajYCLCACIAIoAjgoAng2AiAgAiACKAI4KAKQATYCHCACAn8gAigCOCgCbCACKAI4KAIsQYYCa0sEQCACKAI4KAJsIAIoAjgoAixBhgJrawwBC0EACzYCGCACIAIoAjgoAkA2AhQgAiACKAI4KAI0NgIQIAIgAigCOCgCOCACKAI4KAJsakGCAmo2AgwgAiACKAIsIAIoAiBBAWtqLQAAOgALIAIgAigCLCACKAIgai0AADoACiACKAI4KAJ4IAIoAjgoAowBTwRAIAIgAigCMEECdjYCMAsgAigCHCACKAI4KAJ0SwRAIAIgAigCOCgCdDYCHAsDQAJAIAIgAigCOCgCOCACKAI0ajYCKAJAIAIoAiggAigCIGotAAAgAi0ACkcNACACKAIoIAIoAiBBAWtqLQAAIAItAAtHDQAgAigCKC0AACACKAIsLQAARw0AIAIgAigCKCIAQQFqNgIoIAAtAAEgAigCLC0AAUcEQAwBCyACIAIoAixBAmo2AiwgAiACKAIoQQFqNgIoA0AgAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoAn9BACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAigCLCACKAIMSQtBAXENAAsgAkGCAiACKAIMIAIoAixrazYCJCACIAIoAgxB/n1qNgIsIAIoAiQgAigCIEoEQCACKAI4IAIoAjQ2AnAgAiACKAIkNgIgIAIoAiQgAigCHE4NAiACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKCwsgAiACKAIUIAIoAjQgAigCEHFBAXRqLwEAIgE2AjRBACEAIAEgAigCGEsEfyACIAIoAjBBf2oiADYCMCAAQQBHBUEAC0EBcQ0BCwsCQCACKAIgIAIoAjgoAnRNBEAgAiACKAIgNgI8DAELIAIgAigCOCgCdDYCPAsgAigCPAueEAEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkIAICfyACKAIoKAIMQQVrIAIoAigoAixLBEAgAigCKCgCLAwBCyACKAIoKAIMQQVrCzYCICACQQA2AhAgAiACKAIoKAIAKAIENgIMA0ACQCACQf//AzYCHCACIAIoAigoArwtQSpqQQN1NgIUIAIoAigoAgAoAhAgAigCFEkNACACIAIoAigoAgAoAhAgAigCFGs2AhQgAiACKAIoKAJsIAIoAigoAlxrNgIYIAIoAhwgAigCGCACKAIoKAIAKAIEaksEQCACIAIoAhggAigCKCgCACgCBGo2AhwLIAIoAhwgAigCFEsEQCACIAIoAhQ2AhwLAkAgAigCHCACKAIgTw0AAkAgAigCHEUEQCACKAIkQQRHDQELIAIoAiRFDQAgAigCHCACKAIYIAIoAigoAgAoAgRqRg0BCwwBC0EAIQAgAkEBQQAgAigCJEEERgR/IAIoAhwgAigCGCACKAIoKAIAKAIEakYFQQALQQFxGzYCECACKAIoQQBBACACKAIQEFcgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHSACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGhogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQcxogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGhogAigCKCACKAIoKAIsNgJsDAELIAIoAigoAjwgAigCKCgCbGsgAigCDE0EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAaGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAg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akECdGovAQI2AhQgAyADKAIQQQFqIgA2AhACQAJAIAAgAygCDE4NACADKAIYIAMoAhRHDQAMAQsCQCADKAIQIAMoAghIBEAgAygCLEH8FGogAygCGEECdGoiACADKAIQIAAvAQBqOwEADAELAkAgAygCGARAIAMoAhggAygCHEcEQCADKAIsIAMoAhhBAnRqQfwUaiIAIAAvAQBBAWo7AQALIAMoAiwiACAAQbwVai8BAEEBajsBvBUMAQsCQCADKAIQQQpMBEAgAygCLCIAIABBwBVqLwEAQQFqOwHAFQwBCyADKAIsIgAgAEHEFWovAQBBAWo7AcQVCwsLIANBADYCECADIAMoAhg2AhwCQCADKAIURQRAIANBigE2AgwgA0EDNgIIDAELAkAgAygCGCADKAIURgRAIANBBjYCDCADQQM2AggMAQsgA0EHNgIMIANBBDYCCAsLCyADIAMoAiBBAWo2AiAMAQsLC6cSAQJ/IwBB0ABrIgMgADYCTCADIAE2AkggAyACNgJEIANBADYCOCADKAJMKAKgLQRAA0AgAyADKAJMKAKkLSADKAI4QQF0ai8BADYCQCADKAJMKAKYLSEAIAMgAygCOCIBQQFqNgI4IAMgACABai0AADYCPAJAIAMoAkBFBEAgAyADKAJIIAMoAjxBAnRqLwECNgIsAkAgAygCTCgCvC1BECADKAIsa0oEQCADIAMoAkggAygCPEECdGovAQA2AiggAygCTCIAIAAvAbgtIAMoAihB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCKEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAixBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI8QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCLCAAKAK8LWo2ArwtCwwBCyADIAMoAjwtAIBZNgI0IAMgAygCSCADKAI0QYECakECdGovAQI2AiQCQCADKAJMKAK8LUEQIAMoAiRrSgRAIAMgAygCSCADKAI0QYECakECdGovAQA2AiAgAygCTCIAIAAvAbgtIAMoAiBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCIEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAiRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI0QYECakECdGovAQAgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAiQgACgCvC1qNgK8LQsgAyADKAI0QQJ0QcDlAGooAgA2AjAgAygCMARAIAMgAygCPCADKAI0QQJ0QbDoAGooAgBrNgI8IAMgAygCMDYCHAJAIAMoAkwoArwtQRAgAygCHGtKBEAgAyADKAI8NgIYIAMoAkwiACAALwG4LSADKAIYQf//A3EgAygCTCgCvC10cjsBuC0gAygCTC8BuC1B/wFxIQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTC8BuC1BCHUhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMIAMoAhhB//8DcUEQIAMoAkwoArwta3U7AbgtIAMoAkwiACAAKAK8LSADKAIcQRBrajYCvC0MAQsgAygCTCIAIAAvAbgtIAMoAjxB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCHCAAKAK8LWo2ArwtCwsgAyADKAJAQX9qNgJAIAMCfyADKAJAQYACSQRAIAMoAkAtAIBVDAELIAMoAkBBB3ZBgAJqLQCAVQs2AjQgAyADKAJEIAMoAjRBAnRqLwECNgIUAkAgAygCTCgCvC1BECADKAIUa0oEQCADIAMoAkQgAygCNEECdGovAQA2AhAgAygCTCIAIAAvAbgtIAMoAhBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCEEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCRCADKAI0QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCFCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBwOYAaigCADYCMCADKAIwBEAgAyADKAJAIAMoAjRBAnRBsOkAaigCAGs2AkAgAyADKAIwNgIMAkAgAygCTCgCvC1BECADKAIMa0oEQCADIAMoAkA2AgggAygCTCIAIAAvAbgtIAMoAghB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCCEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAgxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCQEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIMIAAoArwtajYCvC0LCwsgAygCOCADKAJMKAKgLUkNAAsLIAMgAygCSC8Bggg2AgQCQCADKAJMKAK8LUEQIAMoAgRrSgRAIAMgAygCSC8BgAg2AgAgAygCTCIAIAAvAbgtIAMoAgBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCAEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAgRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSC8BgAggAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgQgACgCvC1qNgK8LQsLlwIBBH8jAEEQayIBIAA2AgwCQCABKAIMKAK8LUEQRgRAIAEoAgwvAbgtQf8BcSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwvAbgtQQh1IQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDEEAOwG4LSABKAIMQQA2ArwtDAELIAEoAgwoArwtQQhOBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMIgAgAC8BuC1BCHU7AbgtIAEoAgwiACAAKAK8LUEIazYCvC0LCwvvAQEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQQhKBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHUhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAwBCyABKAIMKAK8LUEASgRAIAEoAgwvAbgtIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAALCyABKAIMQQA7AbgtIAEoAgxBADYCvC0L/AEBAX8jAEEQayIBIAA2AgwgAUEANgIIA0AgASgCCEGeAk5FBEAgASgCDEGUAWogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAFBADYCCANAIAEoAghBHk5FBEAgASgCDEGIE2ogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAFBADYCCANAIAEoAghBE05FBEAgASgCDEH8FGogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAEoAgxBATsBlAkgASgCDEEANgKsLSABKAIMQQA2AqgtIAEoAgxBADYCsC0gASgCDEEANgKgLQsiAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEBYgAUEQaiQAC+kBAQF/IwBBMGsiAiAANgIkIAIgATcDGCACQgA3AxAgAiACKAIkKQMIQgF9NwMIAkADQCACKQMQIAIpAwhUBEAgAiACKQMQIAIpAwggAikDEH1CAYh8NwMAAkAgAigCJCgCBCACKQMAp0EDdGopAwAgAikDGFYEQCACIAIpAwBCAX03AwgMAQsCQCACKQMAIAIoAiQpAwhSBEAgAigCJCgCBCACKQMAQgF8p0EDdGopAwAgAikDGFgNAQsgAiACKQMANwMoDAQLIAIgAikDAEIBfDcDEAsMAQsLIAIgAikDEDcDKAsgAikDKAunAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNgIkIAQgAjcDGCAEIAM2AhQgBCAEKAIoKQM4IAQoAigpAzAgBCgCJCAEKQMYIAQoAhQQjwE3AwgCQCAEKQMIQgBTBEAgBEF/NgIsDAELIAQoAiggBCkDCDcDOCAEKAIoIAQoAigpAzgQuwEhAiAEKAIoIAI3A0AgBEEANgIsCyAEKAIsIQAgBEEwaiQAIAAL6wEBAX8jAEEgayIDJAAgAyAANgIYIAMgATcDECADIAI2AgwCQCADKQMQIAMoAhgpAxBUBEAgA0EBOgAfDAELIAMgAygCGCgCACADKQMQQgSGpxBPIgA2AgggAEUEQCADKAIMQQ5BABAVIANBADoAHwwBCyADKAIYIAMoAgg2AgAgAyADKAIYKAIEIAMpAxBCAXxCA4anEE8iADYCBCAARQRAIAMoAgxBDkEAEBUgA0EAOgAfDAELIAMoAhggAygCBDYCBCADKAIYIAMpAxA3AxAgA0EBOgAfCyADLQAfQQFxIQAgA0EgaiQAIAAL0AIBAX8jAEEwayIEJAAgBCAANgIoIAQgATcDICAEIAI2AhwgBCADNgIYAkACQCAEKAIoDQAgBCkDIEIAWA0AIAQoAhhBEkEAEBUgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBNIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBkiADYCFCAARQRAIAQoAhhBDkEAEBUgBCgCDBA0IARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEJUBIgA2AhAgAEUEQCAEKAIUKAIQEDQgBCgCFBAWIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFYEQCAEKAIYQRJBABAVIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQvgE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQvgE2AiwLIAQoAiwhACAEQTBqJAAgAAuqDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACIDIAFqIQEgACADayIAQcycASgCAEcEQEHInAEoAgAhBCADQf8BTQRAIAAoAggiBCADQQN2IgNBA3RB4JwBakcaIAQgACgCDCICRgRAQbicAUG4nAEoAgBBfiADd3E2AgAMAwsgBCACNgIMIAIgBDYCCAwCCyAAKAIYIQYCQCAAIAAoAgwiAkcEQCAEIAAoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIABBFGoiAygCACIEDQAgAEEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgACAAKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwDCyAGQRBBFCAGKAIQIABGG2ogAjYCACACRQ0CCyACIAY2AhggACgCECIDBEAgAiADNgIQIAMgAjYCGAsgACgCFCIDRQ0BIAIgAzYCFCADIAI2AhgMAQsgBSgCBCICQQNxQQNHDQBBwJwBIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCwJAIAUoAgQiAkECcUUEQCAFQdCcASgCAEYEQEHQnAEgADYCAEHEnAFBxJwBKAIAIAFqIgE2AgAgACABQQFyNgIEIABBzJwBKAIARw0DQcCcAUEANgIAQcycAUEANgIADwsgBUHMnAEoAgBGBEBBzJwBIAA2AgBBwJwBQcCcASgCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPC0HInAEoAgAhAyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgJBA3RB4JwBakcaIAQgBSgCDCIDRgRAQbicAUG4nAEoAgBBfiACd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAkcEQCADIAUoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIAVBFGoiAygCACIEDQAgBUEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAjYCACACRQ0BCyACIAY2AhggBSgCECIDBEAgAiADNgIQIAMgAjYCGAsgBSgCFCIDRQ0AIAIgAzYCFCADIAI2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHMnAEoAgBHDQFBwJwBIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQQN2IgJBA3RB4JwBaiEBAn9BuJwBKAIAIgNBASACdCICcUUEQEG4nAEgAiADcjYCACABDAELIAEoAggLIQMgASAANgIIIAMgADYCDCAAIAE2AgwgACADNgIIDwsgAEIANwIQIAACf0EAIAFBCHYiAkUNABpBHyABQf///wdLDQAaIAIgAkGA/j9qQRB2QQhxIgJ0IgMgA0GA4B9qQRB2QQRxIgN0IgQgBEGAgA9qQRB2QQJxIgR0QQ92IAIgA3IgBHJrIgJBAXQgASACQRVqdkEBcXJBHGoLIgM2AhwgA0ECdEHongFqIQICQAJAQbycASgCACIEQQEgA3QiB3FFBEBBvJwBIAQgB3I2AgAgAiAANgIAIAAgAjYCGAwBCyABQQBBGSADQQF2ayADQR9GG3QhAyACKAIAIQIDQCACIgQoAgRBeHEgAUYNAiADQR12IQIgA0EBdCEDIAQgAkEEcWoiB0EQaigCACICDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC0YBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHEEIahBOIQAgA0EgaiQAIAALjQIBAX8jAEEwayIDJAAgAyAANgIoIAMgATsBJiADIAI2AiAgAyADKAIoKAI0IANBHmogAy8BJkGABkEAEF82AhACQCADKAIQRQ0AIAMvAR5BBUgNAAJAIAMoAhAtAABBAUYNAAwBCyADIAMoAhAgAy8BHq0QKiIANgIUIABFBEAMAQsgAygCFBCNARogAyADKAIUECs2AhggAygCIBCKASADKAIYRgRAIAMgAygCFBAwPQEOIAMgAygCFCADLwEOrRAfIAMvAQ5BgBBBABBRNgIIIAMoAggEQCADKAIgECYgAyADKAIINgIgCwsgAygCFBAXCyADIAMoAiA2AiwgAygCLCEAIANBMGokACAAC7kRAgF/AX4jAEGAAWsiBSQAIAUgADYCdCAFIAE2AnAgBSACNgJsIAUgAzoAayAFIAQ2AmQgBSAFKAJsQQBHOgAdIAVBHkEuIAUtAGtBAXEbNgIoAkACQCAFKAJsBEAgBSgCbBAwIAUoAiitVARAIAUoAmRBE0EAEBUgBUJ/NwN4DAMLDAELIAUgBSgCcCAFKAIorSAFQTBqIAUoAmQQQSIANgJsIABFBEAgBUJ/NwN4DAILCyAFKAJsQgQQHyEAQcXTAEHK0wAgBS0Aa0EBcRsoAAAgACgAAEcEQCAFKAJkQRNBABAVIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAQsgBSgCdBBdAkAgBS0Aa0EBcUUEQCAFKAJsEB4hACAFKAJ0IAA7AQgMAQsgBSgCdEEAOwEICyAFKAJsEB4hACAFKAJ0IAA7AQogBSgCbBAeIQAgBSgCdCAAOwEMIAUoAmwQHkH//wNxIQAgBSgCdCAANgIQIAUgBSgCbBAeOwEuIAUgBSgCbBAeOwEsIAUvAS4gBS8BLBCNAyEAIAUoAnQgADYCFCAFKAJsECshACAFKAJ0IAA2AhggBSgCbBArrSEGIAUoAnQgBjcDICAFKAJsECutIQYgBSgCdCAGNwMoIAUgBSgCbBAeOwEiIAUgBSgCbBAeOwEeAkAgBS0Aa0EBcQRAIAVBADsBICAFKAJ0QQA2AjwgBSgCdEEAOwFAIAUoAnRBADYCRCAFKAJ0QgA3A0gMAQsgBSAFKAJsEB47ASAgBSgCbBAeQf//A3EhACAFKAJ0IAA2AjwgBSgCbBAeIQAgBSgCdCAAOwFAIAUoAmwQKyEAIAUoAnQgADYCRCAFKAJsECutIQYgBSgCdCAGNwNICwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwBCwJAIAUoAnQvAQxBAXEEQCAFKAJ0LwEMQcAAcQRAIAUoAnRB//8DOwFSDAILIAUoAnRBATsBUgwBCyAFKAJ0QQA7AVILIAUoAnRBADYCMCAFKAJ0QQA2AjQgBSgCdEEANgI4IAUgBS8BICAFLwEiIAUvAR5qajYCJAJAIAUtAB1BAXEEQCAFKAJsEDAgBSgCJK1UBEAgBSgCZEEVQQAQFSAFQn83A3gMAwsMAQsgBSgCbBAXIAUgBSgCcCAFKAIkrUEAIAUoAmQQQSIANgJsIABFBEAgBUJ/NwN4DAILCyAFLwEiBEAgBSgCbCAFKAJwIAUvASJBASAFKAJkEIsBIQAgBSgCdCAANgIwIAUoAnQoAjBFBEACfyMAQRBrIgAgBSgCZDYCDCAAKAIMKAIAQRFGCwRAIAUoAmRBFUEAEBULIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAIwQQIQO0EFRgRAIAUoAmRBFUEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwDCwsLIAUvAR4EQCAFIAUoAmwgBSgCcCAFLwEeQQAgBSgCZBBgNgIYIAUoAhhFBEAgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFKAIYIAUvAR5BgAJBgAQgBS0Aa0EBcRsgBSgCdEE0aiAFKAJkEIYBQQFxRQRAIAUoAhgQFiAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILIAUoAhgQFiAFLQBrQQFxBEAgBSgCdEEBOgAECwsgBS8BIARAIAUoAmwgBSgCcCAFLwEgQQAgBSgCZBCLASEAIAUoAnQgADYCOCAFKAJ0KAI4RQRAIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAI4QQIQO0EFRgRAIAUoAmRBFUEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwDCwsLIAUoAnRB9eABIAUoAnQoAjAQwgEhACAFKAJ0IAA2AjAgBSgCdEH1xgEgBSgCdCgCOBDCASEAIAUoAnQgADYCOAJAAkAgBSgCdCkDKEL/////D1ENACAFKAJ0KQMgQv////8PUQ0AIAUoAnQpA0hC/////w9SDQELIAUgBSgCdCgCNCAFQRZqQQFBgAJBgAQgBS0Aa0EBcRsgBSgCZBBfNgIMIAUoAgxFBEAgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFIAUoAgwgBS8BFq0QKiIANgIQIABFBEAgBSgCZEEOQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILAkAgBSgCdCkDKEL/////D1EEQCAFKAIQEDEhBiAFKAJ0IAY3AygMAQsgBS0Aa0EBcQRAIAUoAhAQzAELCyAFKAJ0KQMgQv////8PUQRAIAUoAhAQMSEGIAUoAnQgBjcDIAsgBS0Aa0EBcUUEQCAFKAJ0KQNIQv////8PUQRAIAUoAhAQMSEGIAUoAnQgBjcDSAsgBSgCdCgCPEH//wNGBEAgBSgCEBArIQAgBSgCdCAANgI8CwsgBSgCEBBIQQFxRQRAIAUoAmRBFUEAEBUgBSgCEBAXIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCEBAXCwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwBCyAFLQAdQQFxRQRAIAUoAmwQFwsgBSgCdCkDSEL///////////8AVgRAIAUoAmRBBEEWEBUgBUJ/NwN4DAELIAUoAnQgBSgCZBCMA0EBcUUEQCAFQn83A3gMAQsgBSgCdCgCNBCFASEAIAUoAnQgADYCNCAFIAUoAiggBSgCJGqtNwN4CyAFKQN4IQYgBUGAAWokACAGC8kBAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMgA0EMahAKNgIAAkAgAygCAEUEQCADKAIEQSE7AQAgAygCCEEAOwEADAELIAMoAgAoAhRB0ABIBEAgAygCAEHQADYCFAsgAygCBCADKAIAKAIMIAMoAgAoAhRBCXQgAygCACgCEEEFdGpBoMB9amo7AQAgAygCCCADKAIAKAIIQQt0IAMoAgAoAgRBBXRqIAMoAgAoAgBBAXVqOwEACyADQRBqJAALgwMBAX8jAEEgayIDJAAgAyAAOwEaIAMgATYCFCADIAI2AhAgAyADKAIUIANBCGpBwABBABBHIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIIQQVqQf//A0sEQCADKAIQQRJBABAVIANBADYCHAwBCyADQQAgAygCCEEFaq0QKiIANgIEIABFBEAgAygCEEEOQQAQFSADQQA2AhwMAQsgAygCBEEBEIwBIAMoAgQgAygCFBCKARAhIAMoAgQgAygCDCADKAIIEEACfyMAQRBrIgAgAygCBDYCDCAAKAIMLQAAQQFxRQsEQCADKAIQQRRBABAVIAMoAgQQFyADQQA2AhwMAQsgAyADLwEaAn8jAEEQayIAIAMoAgQ2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IAC6dB//8DcQsCfyMAQRBrIgAgAygCBDYCDCAAKAIMKAIEC0GABhBQNgIAIAMoAgQQFyADIAMoAgA2AhwLIAMoAhwhACADQSBqJAAgAAvgCAEBfyMAQcABayIDJAAgAyAANgK0ASADIAE2ArABIAMgAjcDqAEgAyADKAK0ASgCABA1IgI3AyACQCACQgBTBEAgAygCtAFBCGogAygCtAEoAgAQGCADQn83A7gBDAELIAMgAykDIDcDoAEgA0EAOgAXIANCADcDGANAIAMpAxggAykDqAFUBEAgAyADKAK0ASgCQCADKAKwASADKQMYp0EDdGopAwCnQQR0ajYCDCADIAMoArQBAn8gAygCDCgCBARAIAMoAgwoAgQMAQsgAygCDCgCAAtBgAQQXiIANgIQIABBAEgEQCADQn83A7gBDAMLIAMoAhAEQCADQQE6ABcLIAMgAykDGEIBfDcDGAwBCwsgAyADKAK0ASgCABA1IgI3AyAgAkIAUwRAIAMoArQBQQhqIAMoArQBKAIAEBggA0J/NwO4AQwBCyADIAMpAyAgAykDoAF9NwOYAQJAIAMpA6ABQv////8PWARAIAMpA6gBQv//A1gNAQsgA0EBOgAXCyADIANBMGpC4gAQKiIANgIsIABFBEAgAygCtAFBCGpBDkEAEBUgA0J/NwO4AQwBCyADLQAXQQFxBEAgAygCLEG20wBBBBBAIAMoAixCLBAuIAMoAixBLRAgIAMoAixBLRAgIAMoAixBABAhIAMoAixBABAhIAMoAiwgAykDqAEQLiADKAIsIAMpA6gBEC4gAygCLCADKQOYARAuIAMoAiwgAykDoAEQLiADKAIsQbvTAEEEEEAgAygCLEEAECEgAygCLCADKQOgASADKQOYAXwQLiADKAIsQQEQIQsgAygCLEHA0wBBBBBAIAMoAixBABAhIAMoAiwCfkL//wMgAykDqAFC//8DWg0AGiADKQOoAQunQf//A3EQICADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ/QX8gAykDmAFC/////w9aDQAaIAMpA5gBpwsQISADKAIsAn9BfyADKQOgAUL/////D1oNABogAykDoAGnCxAhIAMCfyADKAK0AS0AKEEBcQRAIAMoArQBKAIkDAELIAMoArQBKAIgCzYClAEgAygCLAJ/IAMoApQBBEAgAygClAEvAQQMAQtBAAtB//8DcRAgAn8jAEEQayIAIAMoAiw2AgwgACgCDC0AAEEBcUULBEAgAygCtAFBCGpBFEEAEBUgAygCLBAXIANCfzcDuAEMAQsgAygCtAECfyMAQRBrIgAgAygCLDYCDCAAKAIMKAIECwJ+IwBBEGsiACADKAIsNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAIsEBcgA0J/NwO4AQwBCyADKAIsEBcgAygClAEEQCADKAK0ASADKAKUASgCACADKAKUAS8BBK0QNkEASARAIANCfzcDuAEMAgsLIAMgAykDmAE3A7gBCyADKQO4ASECIANBwAFqJAAgAgu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhgFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCFATYCDCACKAIcKAIAKAI0IAIoAgwQhwEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsGAEG0nAELjAEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACQQA2AhACQCACKAIURQRAIAJBADYCHAwBCyACIAIoAhQQGTYCDCACKAIMRQRAIAIoAhBBDkEAEBUgAkEANgIcDAELIAIoAgwgAigCGCACKAIUEBoaIAIgAigCDDYCHAsgAigCHCEAIAJBIGokACAACxgAQaicAUIANwIAQbCcAUEANgIAQaicAQuIAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCAJAAkAgAygCFCgCJEEBRgRAIAMpAwhC////////////AFgNAQsgAygCFEEMakESQQAQFSADQn83AxgMAQsgAyADKAIUIAMoAhAgAykDCEELECI3AxgLIAMpAxghAiADQSBqJAAgAgtzAQF/IwBBIGsiASQAIAEgADYCGCABQgg3AxAgASABKAIYKQMQIAEpAxB8NwMIAkAgASkDCCABKAIYKQMQVARAIAEoAhhBADoAACABQX82AhwMAQsgASABKAIYIAEpAwgQLTYCHAsgASgCHBogAUEgaiQACwgAQQFBDBB9CwcAIAAoAigLlgEBAX8jAEEgayICIAA2Ahgg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QRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIIDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwh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AUEJSyEEIAMhASAEDQALDwsgA0EwOgAAIABBADoADws3AQF/IwBBIGsiASQAAn9BASAAIAFBCGoQCCIARQ0AGkG0nAEgADYCAEEACyEAIAFBIGokACAACyABAn8gABAsQQFqIgEQGSICRQRAQQAPCyACIAAgARAaC6UBAQF/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQEEAIQAgAikDCEIAVgR/IAIoAhQoAkAgAikDCEIBfadBBHRqKAIARQVBAAtBAXEEQCACIAIpAwhCf3w3AwgMAQsLIAIgAikDCDcDGAwBCyACIAIoAhQpAzA3AxgLIAIpAxgL8gEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQCADKAIURQRAIANCfzcDGAwBCyADKAIUKAIEBEAgA0J/NwMYDAELIAMpAwhC////////////AFYEQCADKAIUQQRqQRJBABAVIANCfzcDGAwBCwJAIAMoAhQtABBBAXFFBEAgAykDCFBFDQELIANCADcDGAwBCyADIAMoAhQoAhQgAygCECADKQMIEC8iAjcDACACQgBTBEAgAygCFEEEaiADKAIUKAIUEBggA0J/NwMYDAELIAMgAykDADcDGAsgAykDGCECIANBIGokACACC0cBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHCgCHBCfASEAIANBIGokACAAC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEG4iBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEJ8BNgIcCyADKAIcIQAgA0EgaiQAIAALqgEBAX8jAEEQayIBJAAgASAANgIIIAFBGBAZIgA2AgQCQCAARQRAIAEoAghBCGpBDkEAEBUgAUEANgIMDAELIAEoAgQgASgCCDYCACMAQRBrIgAgASgCBEEEajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ABAgASgCBEEANgIUIAEgASgCBDYCDAsgASgCDCEAIAFBEGok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QdAAaiADQaABahBwIARFDQAaIABBAEEAIAAoAiQRAQAaIABBADYCMCAAIAQ2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAFcjYCACACRQ0ACyADQdABaiQACy8AIAECfyACKAJMQX9MBEAgACABIAIQcQwBCyAAIAEgAhBxCyIARgRAIAEPCyAAC1kBAX8gACAALQBKIgFBf2ogAXI6AEogACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQfSgAQsGAEHwoAELBgBB6KABC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELQCIAIgACAEQYH4ACADaxCzAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBDGASICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtgI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQvAIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsg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BEAgASgCGEEGNgIkCyABIAEoAhgoAihBAUHQNyABKAIYKAIgEQEANgIEIAEoAgRFBEAgAUF8NgIcDAELIAEoAhggASgCBDYCHCABKAIEIAEoAhg2AgAgASgCBEEANgI4IAEoAgRBtP4ANgIEIAEgASgCGCABKAIUENICNgIIIAEoAggEQCABKAIYKAIoIAEoAgQgASgCGCgCJBEEACABKAIYQQA2AhwLIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC60CAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYEEsEQCACQX42AhwMAQsgAiACKAIYKAIcNgIMAkAgAigCFEEASARAIAJBADYCECACQQAgAigCFGs2AhQMAQsgAiACKAIUQQR1QQVqNgIQIAIoAhRBMEgEQCACIAIoAhRBD3E2AhQLCwJAIAIoAhRFDQAgAigCFEEITgRAIAIoAhRBD0wNAQsgAkF+NgIcDAELAkAgAigCDCgCOEUNACACKAIMKAIoIAIoAhRGDQAgAigCGCgCKCACKAIMKAI4IAIoAhgoAiQRBAAgAigCDEEANgI4CyACKAIMIAIoAhA2AgwgAigCDCACKAIUNgIoIAIgAigCGBDTAjYCHAsgAigCHCEAIAJBIGokACAAC3IBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCBBLBEAgAUF+NgIMDAELIAEgASgCCCgCHDYCBCABKAIEQQA2AiwgASgCBEEANgIwIAEoAgRBADYCNCABIAEoAggQ1AI2AgwLIAEoAgwhACABQRBqJAAgAAubAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEEsEQCABQX42AgwMAQsgASABKAIIKAIcNgIEIAEoAgRBADYCICABKAIIQQA2AhQgASgCCEEANgIIIAEoAghBADYCGCABKAIEKAIMBEAgASgCCCABKAIEKAIMQQFxNgIwCyABKAIEQbT+ADYCBCABKAIEQQA2AgggASgCBEEANgIQIAEoAgRBgIACNgIYIAEoAgRBADYCJCABKAIEQQA2AjwgASgCBEEANgJAIAEoAgQgASgCBEG0CmoiADYCcCABKAIEIAA2AlQgASgCBCAANgJQIAEoAgRBATYCxDcgASgCBEF/NgLINyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAuI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AgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsLCwNAIAIoAghBAk1FBEAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIDAELCwwBCyACIAIoAkggAigCBGs2AgADQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAghBA2s2AgggAigCCEECSw0ACwsgAigCCARAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAigCCEEBSwRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAALCwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiAgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAlxBzu0ANgIYIAIoAlRB0f4ANgIEDAQLDAILIAIoAgxBwABxRQRAIAJBEGogAigCJCACLwESIAIoAixBASACKAIMdEEBa3FqQQJ0aigBADYBAAwBCwsgAigCDEEgcQRAIAIoAlRBv/4ANgIEDAILIAIoAlxB5O0ANgIYIAIoAlRB0f4ANgIEDAELQQAhACACKAJQIAIoAkxJBH8gAigCSCACKAJASQVBAAtBAXENAQsLIAIgAigCKEEDdjYCCCACIAIoAlAgAigCCGs2AlAgAiACKAIoIAIoAghBA3RrNgIoIAIgAigCLEEBIAIoAih0QQFrcTYCLCACKAJcIAIoAlA2AgAgAigCXCAC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AghBASACKAIIKAIwdDYCLCACKAIIIAIoAggoAixBAWs2AjQgAigCCCACKAIYQQdqNgJQIAIoAghBASACKAIIKAJQdDYCTCACKAIIIAIoAggoAkxBAWs2AlQgAigCCCACKAIIKAJQQQJqQQNuNgJYIAIoAigoAiggAigCCCgCLEECIAIoAigoAiARAQAhACACKAIIIAA2AjggAigCKCgCKCACKAIIKAIsQQIgAigCKCgCIBEBACEAIAIoAgggADYCQCACKAIoKAIoIAIoAggoAkxBAiACKAIoKAIgEQEAIQAgAigCCCAANgJEIAIoAghBADYCwC0gAigCCEEBIAIoAhhBBmp0NgKcLSACIAIoAigoAiggAigCCCgCnC1BBCACKAIoKAIgEQEANgIAIAIoAgggAigCADYCCCACKAIIIAIoAggoApwtQQJ0NgIMAkACQCACKAIIKAI4RQ0AIAIoAggoAkBFDQAgAigCCCgCREUNACACKAIIKAIIDQELIAIoAghBmgU2AgQgAigCKEHo1AAoAgA2AhggAigCKBCzARogAkF8NgIsDAELIAIoAgggAigCACACKAIIKAKcLUEBdkEBdGo2AqQtIAIoAgggAigCCCgCCCACKAIIKAKcLUEDbGo2ApgtIAIoAgggAigCJDYChAEgAigCCCACKAIUNgKIASACKAIIIAIoAiA6ACQgAiACKAIoEOACNgIsCyACKAIsIQAgAkEwaiQAIAALGAEBfyMAQRBrIgEgADYCDCABKAIMQQxqC2wBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBANAIAIgAigCBCACKAIMQQFxcjYCBCACIAIoAgxBAXY2AgwgAiACKAIEQQF0NgIEIAIgAigCCEF/aiIANgIIIABBAEoNAAsgAigCBEEBdguVAgEBfyMAQUBqIgMkACADIAA2AjwgAyABNgI4IAMgAjYCNCADQQA2AgwgA0EBNgIIA0AgAygCCEEPSkUEQCADIAMoAgwgAygCNCADKAIIQQFrQQF0ai8BAGpBAXQ2AgwgA0EQaiADKAIIQQF0aiADKAIMOwEAIAMgAygCCEEBajYCCAwBCwsgA0EANgIEA0AgAygCBCADKAI4TARAIAMgAygCPCADKAIEQQJ0ai8BAjYCACADKAIABEAgA0EQaiADKAIAQQF0aiIBLwEAIQAg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ACAALwG4LUHA4wAvAQAgASgCHCgCvC10cjsBuC0gASgCHCIAIAEoAhAgACgCvC1qNgK8LQsgASgCHBC3ASABQSBqJAALIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBC3ASABQRBqJAALlgEBAX8jAEEQayIBJAAgASAANgIMIAEoAgwgASgCDEGUAWo2ApgWIAEoAgxBgNsANgKgFiABKAIMIAEoAgxBiBNqNgKkFiABKAIMQZTbADYCrBYgASgCDCABKAIMQfwUajYCsBYgASgCDEGo2wA2ArgWIAEoAgxBADsBuC0gASgCDEEANgK8LSABKAIMELkBIAFBEGokAAvXDQEBfyMAQSBrIgMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGEEQdjYCDCADIAMoAhhB//8DcTYCGAJAIAMoAhBBAUYEQCADIAMoAhQtAAAgAygCGGo2AhggAygCGEHx/wNPBEAgAyADKAIYQfH/A2s2AhgLIAMgAygCGCADKAIMajYCDCADKAIMQfH/A08EQCADIAMoAgxB8f8DazYCDAsgAyADKAIYIAMoAgxBEHRyNgIcDAELIAMoAhRFBEAgA0EBNgIcDAELIAMoAhBBEEkEQANAIAMgAygCECIAQX9qNgIQIAAEQCADIAMoAhQiAEEBajYCFCADIAAtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMDAELCyADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIMQfH/A3A2AgwgAyADKAIYIAMoAgxBEHRyNgIcDAELA0AgAygCEEGwK0lFBEAgAyADKAIQQbArazYCECADQdsCNgIIA0AgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAPIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhRBEGo2AhQgAyADKAIIQX9qIgA2AgggAA0ACyADIAMoAhhB8f8DcDYCGCADIAMoAgxB8f8DcDYCDAwBCwsgAygCEARAA0AgAygCEEEQSUUEQCADIAMoAhBBEGs2AhAgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygC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JCADIAE3AxggAyACNgIUIAMgAygCJCADKQMYIAMoAhQQfyIBNwMIAkAgAVAEQCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCADYCBAJAIAMpAwggAygCBCkDIHwgAykDCFoEQCADKQMIIAMoAgQpAyB8Qv///////////wBYDQELIAMoAhRBBEEWEBUgA0IANwMoDAELIAMgAygCBCkDICADKQMIfDcDCCADKAIELwEMQQhxBEAgAygCJCgCACADKQMIQQAQKEEASARAIAMoAhQgAygCJCgCABAYIANCADcDKAwCCyADKAIkKAIAIANCBBAvQgRSBEAgAygCFCADKAIkKAIAEBggA0IANwMoDAILIAMoAABB0JadwABGBEAgAyADKQMIQgR8NwMICyADIAMpAwhCDHw3AwggAygCBEEAEIABQQFxBEAgAyADKQMIQgh8NwMICyADKQMIQv///////////wBWBEAgAygCFEEEQRYQFSADQgA3AygMAgsLIAMgAykDCDcDKAsgAykDKCEBIANBMGokACABC/8BAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABCAAUEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBSIgA7AQggAEH//wNxQQBKBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAALwAIBAX8jAEEwayICJAAgAiAANgIoIAJBgAI7ASYgAiABNgIgIAIgAi8BJkGAAnFBAEc6ABsgAkEeQS4gAi0AG0EBcRs2AhwCQCACKAIoQRpBHCACLQAbQQFxG6xBARAoQQBIBEAgAigCICACKAIoEBggAkF/NgIsDAELIAIgAigCKEEEQQYgAi0AG0EBcRusIAJBDmogAigCIBBBIgA2AgggAEUEQCACQX82AiwMAQsgAkEANgIUA0AgAigCFEECQQMgAi0AG0EBcRtIBEAgAiACKAIIEB5B//8DcSACKAIcajYCHCACIAIoAhRBAWo2AhQMAQsLIAIoAggQSEEBcUUEQCACKAIgQRRBABAVIAIoAggQFyACQX82AiwMAQsgAigCCBAXIAIgAigCHDYCLAsgAigCLCEAIAJBMGokACAAC/8DAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYKAIQQeMARwRAIAJBAToAHwwBCyACIAIoAhgoAjQgAkESakGBsgJBgAZBABBfNgIIAkAgAigCCARAIAIvARJBB04NAQsgAigCFEEVQQAQFSACQQA6AB8MAQsgAiACKAIIIAIvARKtECoiADYCDCAARQRAIAIoAhRBFEEAEBUgAkEAOgAfDAELIAJBAToABwJAAkACQCACKAIMEB5Bf2oOAgIAAQsgAigCGCkDKEIUVARAIAJBADoABwsMAQsgAigCFEEYQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAgxCAhAfLwAAQcGKAUcEQCACKAIUQRhBABAVIAIoAgwQFyACQQA6AB8MAQsCQAJAAkACQAJAIAIoAgwQjQFBf2oOAwABAgMLIAJBgQI7AQQMAwsgAkGCAjsBBAwCCyACQYMCOwEEDAELIAIoAhRBGEEAEBUgAigCDBAXIAJBADoAHwwBCyACLwESQQdHBEAgAigCFEEVQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAhggAi0AB0EBcToABiACKAIYIAIvAQQ7AVIgAigCDBAeQf//A3EhACACKAIYIAA2AhAgAigCDBAXIAJBAToAHwsgAi0AH0EBcSEAIAJBIGokACAAC7kBAQF/IwBBMGsiAiQAIAIgADsBLiACIAE7ASwgAkIANwIAIAJBADYCKCACQgA3AiAgAkIANwIYIAJCADcCECACQgA3AgggAkEANgIgIAIgAi8BLEEJdUHQAGo2AhQgAiACLwEsQQV1QQ9xQQFrNgIQIAIgAi8BLEEfcTYCDCACIAIvAS5BC3U2AgggAiACLwEuQQV1QT9xNgIEIAIgAi8BLkEBdEE+cTYCACACEAwhACACQTBqJAAgAAtMAQJ/IwBBEGsiACQAIABB2AAQGSIBNgIIAkAgAUUEQCAAQQA2AgwMAQsgACgCCBBdIAAgACgCCDYCDAsgACgCDCEBIABBEGokACABCwgAQQFBOBB9CwMAAQsL8o0BJwBBgAgLlAVObyBlcnJvcgBNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABTZWVrIGVycm9yAFJlYWQgZXJyb3IAV3JpdGUgZXJyb3IAQ1JDIGVycm9yAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABObyBzdWNoIGZpbGUARmlsZSBhbHJlYWR5IGV4aXN0cwBDYW4ndCBvcGVuIGZpbGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAWmxpYiBlcnJvcgBNYWxsb2MgZmFpbHVyZQBFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBJbnZhbGlkIGFyZ3VtZW50AE5vdCBhIHppcCBhcmNoaXZlAEludGVybmFsIGVycm9yAFppcCBhcmNoaXZlIGluY29uc2lzdGVudABDYW4ndCByZW1vdmUgZmlsZQBFbnRyeSBoYXMgYmVlbiBkZWxldGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAUmVhZC1vbmx5IGFyY2hpdmUATm8gcGFzc3dvcmQgcHJvdmlkZWQAV3JvbmcgcGFzc3dvcmQgcHJvdmlkZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAFRlbGwgZXJyb3IAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQAQaENC4ABBAAACQQAAC8EAABOBAAAaQQAAHQEAAB/BAAAiwQAAJUEAAC3BAAAxAQAANgEAADoBAAACQUAABQFAAAjBQAAOgUAAFsFAABxBQAAggUAAJQFAACjBQAAvAUAAM4FAADlBQAABQYAABcGAAAsBgAARAYAAFwGAAByBgAAfQYAACAAQbgOCxEBAAAAAQAAAAEAAAABAAAAAQBB3A4LCQEAAAABAAAAAgBBiA8LAQEAQagPCwEBAEG0DwuSRZYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2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AAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0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AAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAMS4yLjExAC0rICAgMFgweAAobnVsbCkAQbCDAQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQtLDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAEHchwELARcAQYOIAQsF//////8AQdCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGwiQEL3Q5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAVW5rbm93biBlcnJvciAlZAAlcyVzJXMAADogAC9wcm9jL3NlbGYvZmQvAC9kZXYvdXJhbmRvbQByd2EAJXMuWFhYWFhYAHIrYgByYgBQSwUGAEGQmAELTgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAABAAAACAAAABBMAAAwTABBkJoBCwJQUABByJoBCwkfAAAAZE0AAAMAQeSaAQuMAS30UVjPjLHARva1yykxA8cEW3AwtF39IHh/i5rYWSlQaEiJq6dWA2z/t82IP9R3tCulo3DxuuSo/EGD/dlv4Yp6Ly10lgcfDQleA3YscPdApSynb1dBqKp036BYZANKx8Q8U66vXxgEFbHjbSiGqwykv0Pw6VCBOVcWUjf/////////////////////";function ne(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return o.extraStackTrace&&(e+="\n"+o.extraStackTrace()),e.replace(/\b_Z[\w\d_]+/g,(function(e){return e==e?e:e+" ["+e+"]"}))}$(re)||(re=function(e){return o.locateFile?o.locateFile(e,h):h+e}(re)),_.push({func:function(){be()}});var ie={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=ie.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return ie.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ie.normalize(e.join("/"))},join2:function(e,t){return ie.normalize(e+"/"+t)}};function oe(e){return N[Se()>>2]=e,e}var se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:he.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=se.resolve(e).substr(1),t=se.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),s=o,A=0;A<o;A++)if(n[A]!==i[A]){s=A;break}var a=[];for(A=s;A<n.length;A++)a.push("..");return(a=a.concat(i.slice(s))).join("/")}},Ae={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ae.ttys[e]={input:[],output:[],ops:t},he.registerDevice(e,Ae.stream_ops)},stream_ops:{open:function(e){var t=Ae.ttys[e.node.rdev];if(!t)throw new he.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.get_char)throw new he.ErrnoError(60);for(var o=0,s=0;s<n;s++){var A;try{A=e.tty.ops.get_char(e.tty)}catch(e){throw new he.ErrnoError(29)}if(void 0===A&&0===o)throw new he.ErrnoError(6);if(null==A)break;o++,t[r+s]=A}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.put_char)throw new he.ErrnoError(60);try{for(var o=0;o<n;o++)e.tty.ops.put_char(e.tty,t[r+o])}catch(e){throw new he.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null,r=Buffer.alloc?Buffer.alloc(256):new Buffer(256),n=0;try{n=c.readSync(process.stdin.fd,r,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}if(!(t=n>0?r.slice(0,n).toString("utf-8"):null))return null;e.input=we(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(g(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(g(B(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(f(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(f(B(e.output,0)),e.output=[])}}},ae={ops_table:null,mount:function(e){return ae.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(he.isBlkdev(r)||he.isFIFO(r))throw new he.ErrnoError(63);ae.ops_table||(ae.ops_table={dir:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,lookup:ae.node_ops.lookup,mknod:ae.node_ops.mknod,rename:ae.node_ops.rename,unlink:ae.node_ops.unlink,rmdir:ae.node_ops.rmdir,readdir:ae.node_ops.readdir,symlink:ae.node_ops.symlink},stream:{llseek:ae.stream_ops.llseek}},file:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:{llseek:ae.stream_ops.llseek,read:ae.stream_ops.read,write:ae.stream_ops.write,allocate:ae.stream_ops.allocate,mmap:ae.stream_ops.mmap,msync:ae.stream_ops.msync}},link:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,readlink:ae.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:he.chrdev_stream_ops}});var i=he.createNode(e,t,r,n);return he.isDir(i.mode)?(i.node_ops=ae.ops_table.dir.node,i.stream_ops=ae.ops_table.dir.stream,i.contents={}):he.isFile(i.mode)?(i.node_ops=ae.ops_table.file.node,i.stream_ops=ae.ops_table.file.stream,i.usedBytes=0,i.contents=null):he.isLink(i.mode)?(i.node_ops=ae.ops_table.link.node,i.stream_ops=ae.ops_table.link.stream):he.isChrdev(i.mode)&&(i.node_ops=ae.ops_table.chrdev.node,i.stream_ops=ae.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i),i},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=he.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,he.isDir(e.mode)?t.size=4096:he.isFile(e.mode)?t.size=e.usedBytes:he.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ae.resizeFileStorage(e,t.size)},lookup:function(e,t){throw he.genericErrors[44]},mknod:function(e,t,r,n){return ae.createNode(e,t,r,n)},rename:function(e,t,r){if(he.isDir(e.mode)){var n;try{n=he.lookupNode(t,r)}catch(e){}if(n)for(var i in n.contents)throw new he.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=he.lookupNode(e,t);for(var n in r.contents)throw new he.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=ae.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!he.isLink(e.mode))throw new he.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,i){var o=e.node.contents;if(i>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-i,n);if(s>8&&o.subarray)t.set(o.subarray(i,i+s),r);else for(var A=0;A<s;A++)t[r+A]=o[i+A];return s},write:function(e,t,r,n,i,o){if(t.buffer===x.buffer&&(o=!1),!n)return 0;var s=e.node;if(s.timestamp=Date.now(),t.subarray&&(!s.contents||s.contents.subarray)){if(o)return s.contents=t.subarray(r,r+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===i)return s.contents=t.slice(r,r+n),s.usedBytes=n,n;if(i+n<=s.usedBytes)return s.contents.set(t.subarray(r,r+n),i),n}if(ae.expandFileStorage(s,i+n),s.contents.subarray&&t.subarray)s.contents.set(t.subarray(r,r+n),i);else for(var A=0;A<n;A++)s.contents[i+A]=t[r+A];return s.usedBytes=Math.max(s.usedBytes,i+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&he.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new he.ErrnoError(28);return n},allocate:function(e,t,r){ae.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,i,o){if(I(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var s,A,a=e.node.contents;if(2&o||a.buffer!==k){if((n>0||n+r<a.length)&&(a=a.subarray?a.subarray(n,n+r):Array.prototype.slice.call(a,n,n+r)),A=!0,!(s=Ke(r)))throw new he.ErrnoError(48);x.set(a,s)}else A=!1,s=a.byteOffset;return{ptr:s,allocated:A}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;ae.stream_ops.write(e,t,0,n,r,!1);return 0}}},ce={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},ue={isWindows:!1,staticInit:function(){ue.isWindows=!!process.platform.match(/^win/);var e={fs:Ce.constants};e.fs&&(e=e.fs),ue.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY}},bufferFrom:function(e){return Buffer.alloc?Buffer.from(e):new Buffer(e)},convertNodeCode:function(e){var t=e.code;return ce[t]},mount:function(e){return ue.createNode(null,"/",ue.getMode(e.opts.root),0)},createNode:function(e,t,r,n){if(!he.isDir(r)&&!he.isFile(r)&&!he.isLink(r))throw new he.ErrnoError(28);var i=he.createNode(e,t,r);return i.node_ops=ue.node_ops,i.stream_ops=ue.stream_ops,i},getMode:function(e){var t;try{t=Ce.lstatSync(e),ue.isWindows&&(t.mode=t.mode|(292&t.mode)>>2)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return t.mode},realPath:function(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),ie.join.apply(null,t)},flagsForNode:function(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289;var t=0;for(var r in ue.flagsForNodeMap)e&r&&(t|=ue.flagsForNodeMap[r],e^=r);if(e)throw new he.ErrnoError(28);return t},node_ops:{getattr:function(e){var t,r=ue.realPath(e);try{t=Ce.lstatSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return ue.isWindows&&!t.blksize&&(t.blksize=4096),ue.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(e,t){var r=ue.realPath(e);try{if(void 0!==t.mode&&(Ce.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);Ce.utimesSync(r,n,n)}void 0!==t.size&&Ce.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},lookup:function(e,t){var r=ie.join2(ue.realPath(e),t),n=ue.getMode(r);return ue.createNode(e,t,n)},mknod:function(e,t,r,n){var i=ue.createNode(e,t,r,n),o=ue.realPath(i);try{he.isDir(i.mode)?Ce.mkdirSync(o,i.mode):Ce.writeFileSync(o,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return i},rename:function(e,t,r){var n=ue.realPath(e),i=ie.join2(ue.realPath(t),r);try{Ce.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}e.name=r},unlink:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},rmdir:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readdir:function(e){var t=ue.realPath(e);try{return Ce.readdirSync(t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},symlink:function(e,t,r){var n=ie.join2(ue.realPath(e),t);try{Ce.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readlink:function(e){var t=ue.realPath(e);try{return t=Ce.readlinkSync(t),t=Ee.relative(Ee.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}}},stream_ops:{open:function(e){var t=ue.realPath(e.node);try{he.isFile(e.node.mode)&&(e.nfd=Ce.openSync(t,ue.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},close:function(e){try{he.isFile(e.node.mode)&&e.nfd&&Ce.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},read:function(e,t,r,n,i){if(0===n)return 0;try{return Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},write:function(e,t,r,n,i){try{return Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},llseek:function(e,t,r){var n=t;if(1===r)n+=e.position;else if(2===r&&he.isFile(e.node.mode))try{n+=Ce.fstatSync(e.nfd).size}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}if(n<0)throw new he.ErrnoError(28);return n},mmap:function(e,t,r,n,i,o){if(I(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var s=Ke(r);return ue.stream_ops.read(e,x,s,r,n),{ptr:s,allocated:!0}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;ue.stream_ops.write(e,t,0,n,r,!1);return 0}}},le={lookupPath:function(e){return{path:e,node:{mode:ue.getMode(e)}}},createStandardStreams:function(){he.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var e=1;e<3;e++)he.streams[e]={fd:e,nfd:e,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(e,t){he.isDir(e)?Ce.mkdirSync(e,t):Ce.writeFileSync(e,"",{mode:t})},mkdir:function(){Ce.mkdirSync.apply(void 0,arguments)},symlink:function(){Ce.symlinkSync.apply(void 0,arguments)},rename:function(){Ce.renameSync.apply(void 0,arguments)},rmdir:function(){Ce.rmdirSync.apply(void 0,arguments)},readdir:function(){Ce.readdirSync.apply(void 0,arguments)},unlink:function(){Ce.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ce.readlinkSync.apply(void 0,arguments)},stat:function(){return Ce.statSync.apply(void 0,arguments)},lstat:function(){return Ce.lstatSync.apply(void 0,arguments)},chmod:function(){Ce.chmodSync.apply(void 0,arguments)},fchmod:function(){Ce.fchmodSync.apply(void 0,arguments)},chown:function(){Ce.chownSync.apply(void 0,arguments)},fchown:function(){Ce.fchownSync.apply(void 0,arguments)},truncate:function(){Ce.truncateSync.apply(void 0,arguments)},ftruncate:function(){Ce.ftruncateSync.apply(void 0,arguments)},utime:function(){Ce.utimesSync.apply(void 0,arguments)},open:function(e,t,r,n){"string"==typeof t&&(t=me.modeStringToFlags(t));var i=Ce.openSync(e,ue.flagsForNode(t),r),o=null!=n?n:he.nextfd(i),s={fd:o,nfd:i,position:0,path:e,flags:t,seekable:!0};return he.streams[o]=s,s},close:function(e){e.stream_ops||Ce.closeSync(e.nfd),he.closeStream(e.fd)},llseek:function(e,t,r){if(e.stream_ops)return me.llseek(e,t,r);var n=t;if(1===r)n+=e.position;else if(2===r)n+=Ce.fstatSync(e.nfd).size;else if(0!==r)throw new he.ErrnoError(ce.EINVAL);if(n<0)throw new he.ErrnoError(ce.EINVAL);return e.position=n,n},read:function(e,t,r,n,i){if(e.stream_ops)return me.read(e,t,r,n,i);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},write:function(e,t,r,n,i){if(e.stream_ops)return me.write(e,t,r,n,i);1024&e.flags&&he.llseek(e,0,2);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},allocate:function(){throw new he.ErrnoError(ce.EOPNOTSUPP)},mmap:function(){throw new he.ErrnoError(ce.ENODEV)},msync:function(){return 0},munmap:function(){return 0},ioctl:function(){throw new he.ErrnoError(ce.ENOTTY)}},he={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof he.ErrnoError))throw e+" : "+ne();return oe(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=se.resolve(he.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new he.ErrnoError(32);for(var i=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),o=he.root,s="/",A=0;A<i.length;A++){var a=A===i.length-1;if(a&&t.parent)break;if(o=he.lookupNode(o,i[A]),s=ie.join2(s,i[A]),he.isMountpoint(o)&&(!a||a&&t.follow_mount)&&(o=o.mounted.root),!a||t.follow)for(var c=0;he.isLink(o.mode);){var u=he.readlink(s);if(s=se.resolve(ie.dirname(s),u),o=he.lookupPath(s,{recurse_count:t.recurse_count}).node,c++>40)throw new he.ErrnoError(32)}}return{path:s,node:o}},getPath:function(e){for(var t;;){if(he.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%he.nameTable.length},hashAddNode:function(e){var t=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[t],he.nameTable[t]=e},hashRemoveNode:function(e){var t=he.hashName(e.parent.id,e.name);if(he.nameTable[t]===e)he.nameTable[t]=e.name_next;else for(var r=he.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=he.mayLookup(e);if(r)throw new he.ErrnoError(r,e);for(var n=he.hashName(e.id,t),i=he.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===e.id&&o===t)return i}return he.lookup(e,t)},createNode:function(e,t,r,n){var i=new he.FSNode(e,t,r,n);return he.hashAddNode(i),i},destroyNode:function(e){he.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=he.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return he.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=he.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{he.lookupNode(e,t);return 20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=he.lookupNode(e,t)}catch(e){return e.errno}var i=he.nodePermissions(e,"wx");if(i)return i;if(r){if(!he.isDir(n.mode))return 54;if(he.isRoot(n)||he.getPath(n)===he.cwd())return 10}else if(he.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(t)||512&t)?31:he.nodePermissions(e,he.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||he.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!he.streams[r])return r;throw new he.ErrnoError(33)},getStream:function(e){return he.streams[e]},createStream:function(e,t,r){he.FSStream||(he.FSStream=function(){},he.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new he.FSStream;for(var i in e)n[i]=e[i];e=n;var o=he.nextfd(t,r);return e.fd=o,he.streams[o]=e,e},closeStream:function(e){he.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=he.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new he.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){he.devices[e]={stream_ops:t}},getDevice:function(e){return he.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&f("warning: "+he.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=he.getMounts(he.root.mount),n=0;function i(e){return he.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((function(t){if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:function(e,t,r){var n,i="/"===r,o=!r;if(i&&he.root)throw new he.ErrnoError(10);if(!i&&!o){var s=he.lookupPath(r,{follow_mount:!1});if(r=s.path,n=s.node,he.isMountpoint(n))throw new he.ErrnoError(10);if(!he.isDir(n.mode))throw new he.ErrnoError(54)}var A={type:e,opts:t,mountpoint:r,mounts:[]},a=e.mount(A);return a.mount=A,A.root=a,i?he.root=a:n&&(n.mounted=A,n.mount&&n.mount.mounts.push(A)),a},unmount:function(e){var t=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(t.node))throw new he.ErrnoError(28);var r=t.node,n=r.mounted,i=he.getMounts(n);Object.keys(he.nameTable).forEach((function(e){for(var t=he.nameTable[e];t;){var r=t.name_next;-1!==i.indexOf(t.mount)&&he.destroyNode(t),t=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);r.mount.mounts.splice(o,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=he.lookupPath(e,{parent:!0}).node,i=ie.basename(e);if(!i||"."===i||".."===i)throw new he.ErrnoError(28);var o=he.mayCreate(n,i);if(o)throw new he.ErrnoError(o);if(!n.node_ops.mknod)throw new he.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,he.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,he.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",i=0;i<r.length;++i)if(r[i]){n+="/"+r[i];try{he.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,he.mknod(e,t,r)},symlink:function(e,t){if(!se.resolve(e))throw new he.ErrnoError(44);var r=he.lookupPath(t,{parent:!0}).node;if(!r)throw new he.ErrnoError(44);var n=ie.basename(t),i=he.mayCreate(r,n);if(i)throw new he.ErrnoError(i);if(!r.node_ops.symlink)throw new he.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,i=ie.dirname(e),o=ie.dirname(t),s=ie.basename(e),A=ie.basename(t);try{r=he.lookupPath(e,{parent:!0}).node,n=he.lookupPath(t,{parent:!0}).node}catch(e){throw new he.ErrnoError(10)}if(!r||!n)throw new he.ErrnoError(44);if(r.mount!==n.mount)throw new he.ErrnoError(75);var a,c=he.lookupNode(r,s),u=se.relative(e,o);if("."!==u.charAt(0))throw new he.ErrnoError(28);if("."!==(u=se.relative(t,i)).charAt(0))throw new he.ErrnoError(55);try{a=he.lookupNode(n,A)}catch(e){}if(c!==a){var l=he.isDir(c.mode),h=he.mayDelete(r,s,l);if(h)throw new he.ErrnoError(h);if(h=a?he.mayDelete(n,A,l):he.mayCreate(n,A))throw new he.ErrnoError(h);if(!r.node_ops.rename)throw new he.ErrnoError(63);if(he.isMountpoint(c)||a&&he.isMountpoint(a))throw new he.ErrnoError(10);if(n!==r&&(h=he.nodePermissions(r,"w")))throw new he.ErrnoError(h);try{he.trackingDelegate.willMovePath&&he.trackingDelegate.willMovePath(e,t)}catch(r){f("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}he.hashRemoveNode(c);try{r.node_ops.rename(c,n,A)}catch(e){throw e}finally{he.hashAddNode(c)}try{he.trackingDelegate.onMovePath&&he.trackingDelegate.onMovePath(e,t)}catch(r){f("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=he.lookupPath(e,{parent:!0}).node,r=ie.basename(e),n=he.lookupNode(t,r),i=he.mayDelete(t,r,!0);if(i)throw new he.ErrnoError(i);if(!t.node_ops.rmdir)throw new he.ErrnoError(63);if(he.isMountpoint(n))throw new he.ErrnoError(10);try{he.trackingDelegate.willDeletePath&&he.trackingDelegate.willDeletePath(e)}catch(t){f("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),he.destroyNode(n);try{he.trackingDelegate.onDeletePath&&he.trackingDelegate.onDeletePath(e)}catch(t){f("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=he.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new he.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=he.lookupPath(e,{parent:!0}).node,r=ie.basename(e),n=he.lookupNode(t,r),i=he.mayDelete(t,r,!1);if(i)throw new he.ErrnoError(i);if(!t.node_ops.unlink)throw new he.ErrnoError(63);if(he.isMountpoint(n))throw new he.ErrnoError(10);try{he.trackingDelegate.willDeletePath&&he.trackingDelegate.willDeletePath(e)}catch(t){f("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),he.destroyNode(n);try{he.trackingDelegate.onDeletePath&&he.trackingDelegate.onDeletePath(e)}catch(t){f("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=he.lookupPath(e).node;if(!t)throw new he.ErrnoError(44);if(!t.node_ops.readlink)throw new he.ErrnoError(28);return se.resolve(he.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=he.lookupPath(e,{follow:!t}).node;if(!r)throw new he.ErrnoError(44);if(!r.node_ops.getattr)throw new he.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return he.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=he.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new he.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){he.chmod(e,t,!0)},fchmod:function(e,t){var r=he.getStream(e);if(!r)throw new he.ErrnoError(8);he.chmod(r.node,t)},chown:function(e,t,r,n){var i;"string"==typeof e?i=he.lookupPath(e,{follow:!n}).node:i=e;if(!i.node_ops.setattr)throw new he.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:function(e,t,r){he.chown(e,t,r,!0)},fchown:function(e,t,r){var n=he.getStream(e);if(!n)throw new he.ErrnoError(8);he.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new he.ErrnoError(28);var r;"string"==typeof e?r=he.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new he.ErrnoError(63);if(he.isDir(r.mode))throw new he.ErrnoError(31);if(!he.isFile(r.mode))throw new he.ErrnoError(28);var n=he.nodePermissions(r,"w");if(n)throw new he.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=he.getStream(e);if(!r)throw new he.ErrnoError(8);if(0==(2097155&r.flags))throw new he.ErrnoError(28);he.truncate(r.node,t)},utime:function(e,t,r){var n=he.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,n,i){if(""===e)throw new he.ErrnoError(44);var s;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?he.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)s=e;else{e=ie.normalize(e);try{s=he.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var A=!1;if(64&t)if(s){if(128&t)throw new he.ErrnoError(20)}else s=he.mknod(e,r,0),A=!0;if(!s)throw new he.ErrnoError(44);if(he.isChrdev(s.mode)&&(t&=-513),65536&t&&!he.isDir(s.mode))throw new he.ErrnoError(54);if(!A){var a=he.mayOpen(s,t);if(a)throw new he.ErrnoError(a)}512&t&&he.truncate(s,0),t&=-131713;var c=he.createStream({node:s,path:he.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},n,i);c.stream_ops.open&&c.stream_ops.open(c),!o.logReadFiles||1&t||(he.readFiles||(he.readFiles={}),e in he.readFiles||(he.readFiles[e]=1,f("FS.trackingDelegate error on read file: "+e)));try{if(he.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=he.tracking.openFlags.READ),0!=(2097155&t)&&(u|=he.tracking.openFlags.WRITE),he.trackingDelegate.onOpenFile(e,u)}}catch(t){f("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(he.isClosed(e))throw new he.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{he.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new he.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new he.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,i){if(n<0||i<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(1==(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.read)throw new he.ErrnoError(28);var o=void 0!==i;if(o){if(!e.seekable)throw new he.ErrnoError(70)}else i=e.position;var s=e.stream_ops.read(e,t,r,n,i);return o||(e.position+=s),s},write:function(e,t,r,n,i,o){if(n<0||i<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(0==(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.write)throw new he.ErrnoError(28);e.seekable&&1024&e.flags&&he.llseek(e,0,2);var s=void 0!==i;if(s){if(!e.seekable)throw new he.ErrnoError(70)}else i=e.position;var A=e.stream_ops.write(e,t,r,n,i,o);s||(e.position+=A);try{e.path&&he.trackingDelegate.onWriteToFile&&he.trackingDelegate.onWriteToFile(e.path)}catch(t){f("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return A},allocate:function(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(t<0||r<=0)throw new he.ErrnoError(28);if(0==(2097155&e.flags))throw new he.ErrnoError(8);if(!he.isFile(e.node.mode)&&!he.isDir(e.node.mode))throw new he.ErrnoError(43);if(!e.stream_ops.allocate)throw new he.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,i,o){if(0!=(2&i)&&0==(2&o)&&2!=(2097155&e.flags))throw new he.ErrnoError(2);if(1==(2097155&e.flags))throw new he.ErrnoError(2);if(!e.stream_ops.mmap)throw new he.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,i,o)},msync:function(e,t,r,n,i){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,i):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new he.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=he.open(e,t.flags),i=he.stat(e).size,o=new Uint8Array(i);return he.read(n,o,0,i,0),"utf8"===t.encoding?r=B(o,0):"binary"===t.encoding&&(r=o),he.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var n=he.open(e,r.flags,r.mode);if("string"==typeof t){var i=new Uint8Array(b(t)+1),o=v(t,i,0,i.length);he.write(n,i,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");he.write(n,t,0,t.byteLength,void 0,r.canOwn)}he.close(n)},cwd:function(){return he.currentPath},chdir:function(e){var t=he.lookupPath(e,{follow:!0});if(null===t.node)throw new he.ErrnoError(44);if(!he.isDir(t.node.mode))throw new he.ErrnoError(54);var r=he.nodePermissions(t.node,"x");if(r)throw new he.ErrnoError(r);he.currentPath=t.path},createDefaultDirectories:function(){he.mkdir("/tmp"),he.mkdir("/home"),he.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(he.mkdir("/dev"),he.registerDevice(he.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,i){return n}}),he.mkdev("/dev/null",he.makedev(1,3)),Ae.register(he.makedev(5,0),Ae.default_tty_ops),Ae.register(he.makedev(6,0),Ae.default_tty1_ops),he.mkdev("/dev/tty",he.makedev(5,0)),he.mkdev("/dev/tty1",he.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);e=function(){return crypto.getRandomValues(t),t[0]}}else{try{var n=r(76417);e=function(){return n.randomBytes(1)[0]}}catch(e){}}e||(e=function(){Z("random_device")}),he.createDevice("/dev","random",e),he.createDevice("/dev","urandom",e),he.mkdir("/dev/shm"),he.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){he.mkdir("/proc"),he.mkdir("/proc/self"),he.mkdir("/proc/self/fd"),he.mount({mount:function(){var e=he.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=+t,n=he.getStream(r);if(!n)throw new he.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return i.parent=i,i}},e}},{},"/proc/self/fd")},createStandardStreams:function(){o.stdin?he.createDevice("/dev","stdin",o.stdin):he.symlink("/dev/tty","/dev/stdin"),o.stdout?he.createDevice("/dev","stdout",null,o.stdout):he.symlink("/dev/tty","/dev/stdout"),o.stderr?he.createDevice("/dev","stderr",null,o.stderr):he.symlink("/dev/tty1","/dev/stderr");he.open("/dev/stdin","r"),he.open("/dev/stdout","w"),he.open("/dev/stderr","w")},ensureErrnoError:function(){he.ErrnoError||(he.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},he.ErrnoError.prototype=new Error,he.ErrnoError.prototype.constructor=he.ErrnoError,[44].forEach((function(e){he.genericErrors[e]=new he.ErrnoError(e),he.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){he.ensureErrnoError(),he.nameTable=new Array(4096),he.mount(ae,{},"/"),he.createDefaultDirectories(),he.createDefaultDevices(),he.createSpecialDirectories(),he.filesystems={MEMFS:ae,NODEFS:ue}},init:function(e,t,r){he.init.initialized=!0,he.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,he.createStandardStreams()},quit:function(){he.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<he.streams.length;t++){var r=he.streams[t];r&&he.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},joinPath:function(e,t){var r=ie.join.apply(null,e);return t&&"/"==r[0]&&(r=r.substr(1)),r},absolutePath:function(e,t){return se.resolve(t,e)},standardizePath:function(e){return ie.normalize(e)},findObject:function(e,t){var r=he.analyzePath(e,t);return r.exists?r.object:(oe(r.error),null)},analyzePath:function(e,t){try{e=(n=he.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=he.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=ie.basename(e),n=he.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createFolder:function(e,t,r,n){var i=ie.join2("string"==typeof e?e:he.getPath(e),t),o=he.getMode(r,n);return he.mkdir(i,o)},createPath:function(e,t,r,n){e="string"==typeof e?e:he.getPath(e);for(var i=t.split("/").reverse();i.length;){var o=i.pop();if(o){var s=ie.join2(e,o);try{he.mkdir(s)}catch(e){}e=s}}return s},createFile:function(e,t,r,n,i){var o=ie.join2("string"==typeof e?e:he.getPath(e),t),s=he.getMode(n,i);return he.create(o,s)},createDataFile:function(e,t,r,n,i,o){var s=t?ie.join2("string"==typeof e?e:he.getPath(e),t):e,A=he.getMode(n,i),a=he.create(s,A);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,l=r.length;u<l;++u)c[u]=r.charCodeAt(u);r=c}he.chmod(a,146|A);var h=he.open(a,"w");he.write(h,r,0,r.length,0,o),he.close(h),he.chmod(a,A)}return a},createDevice:function(e,t,r,n){var i=ie.join2("string"==typeof e?e:he.getPath(e),t),o=he.getMode(!!r,!!n);he.createDevice.major||(he.createDevice.major=64);var s=he.makedev(he.createDevice.major++,0);return he.registerDevice(s,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,i,o){for(var s=0,A=0;A<i;A++){var a;try{a=r()}catch(e){throw new he.ErrnoError(29)}if(void 0===a&&0===s)throw new he.ErrnoError(6);if(null==a)break;s++,t[n+A]=a}return s&&(e.node.timestamp=Date.now()),s},write:function(e,t,r,i,o){for(var s=0;s<i;s++)try{n(t[r+s])}catch(e){throw new he.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),s}}),he.mkdev(i,o,s)},createLink:function(e,t,r,n,i){var o=ie.join2("string"==typeof e?e:he.getPath(e),t);return he.symlink(r,o)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!A)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=we(A(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||oe(29),t},createLazyFile:function(e,t,r,n,i){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,s=1048576;i||(s=n);var A=this;A.setDataGetter((function(e){var t=e*s,i=(e+1)*s-1;if(i=Math.min(i,n-1),void 0===A.chunks[e]&&(A.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==s&&i.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):we(i.responseText||"",!0)}(t,i)),void 0===A.chunks[e])throw new Error("doXHR failed!");return A.chunks[e]})),!o&&n||(s=n=1,n=this.getter(0).length,s=n,g("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s={isDevice:!1,url:r},A=he.createFile(e,t,s,n,i);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var a={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];a[e]=function(){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);return t.apply(null,arguments)}})),a.read=function(e,t,r,n,i){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);var o=e.node.contents;if(i>=o.length)return 0;var s=Math.min(o.length-i,n);if(o.slice)for(var a=0;a<s;a++)t[r+a]=o[i+a];else for(a=0;a<s;a++)t[r+a]=o.get(i+a);return s},A.stream_ops=a,A},createPreloadedFile:function(e,t,r,n,i,s,A,a,c,u){Browser.init();var l=t?se.resolve(ie.join2(e,t)):e;function h(r){function h(r){u&&u(),a||he.createDataFile(e,t,r,n,i,c),s&&s(),X()}var g=!1;o.preloadPlugins.forEach((function(e){g||e.canHandle(l)&&(e.handle(r,l,h,(function(){A&&A(),X()})),g=!0)})),g||h(r)}V(),"string"==typeof r?Browser.asyncLoad(r,(function(e){h(e)}),A):h(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=he.indexedDB();try{var i=n.open(he.DB_NAME(),he.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=function(){g("creating db"),i.result.createObjectStore(he.DB_STORE_NAME)},i.onsuccess=function(){var n=i.result.transaction([he.DB_STORE_NAME],"readwrite"),o=n.objectStore(he.DB_STORE_NAME),s=0,A=0,a=e.length;function c(){0==A?t():r()}e.forEach((function(e){var t=o.put(he.analyzePath(e).object.contents,e);t.onsuccess=function(){++s+A==a&&c()},t.onerror=function(){A++,s+A==a&&c()}})),n.onerror=r},i.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=he.indexedDB();try{var i=n.open(he.DB_NAME(),he.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=r,i.onsuccess=function(){var n=i.result;try{var o=n.transaction([he.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var s=o.objectStore(he.DB_STORE_NAME),A=0,a=0,c=e.length;function u(){0==a?t():r()}e.forEach((function(e){var t=s.get(e);t.onsuccess=function(){he.analyzePath(e).exists&&he.unlink(e),he.createDataFile(ie.dirname(e),ie.basename(e),t.result,!0,!0,!0),++A+a==c&&u()},t.onerror=function(){a++,A+a==c&&u()}})),o.onerror=r},i.onerror=r}},ge={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=he.cwd();else{var n=he.getStream(e);if(!n)throw new he.ErrnoError(8);r=n.path}t=ie.join2(r,t)}return t},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&ie.normalize(t)!==ie.normalize(he.getPath(e.node)))return-54;throw e}return N[r>>2]=n.dev,N[r+4>>2]=0,N[r+8>>2]=n.ino,N[r+12>>2]=n.mode,N[r+16>>2]=n.nlink,N[r+20>>2]=n.uid,N[r+24>>2]=n.gid,N[r+28>>2]=n.rdev,N[r+32>>2]=0,te=[n.size>>>0,(ee=n.size,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+40>>2]=te[0],N[r+44>>2]=te[1],N[r+48>>2]=4096,N[r+52>>2]=n.blocks,N[r+56>>2]=n.atime.getTime()/1e3|0,N[r+60>>2]=0,N[r+64>>2]=n.mtime.getTime()/1e3|0,N[r+68>>2]=0,N[r+72>>2]=n.ctime.getTime()/1e3|0,N[r+76>>2]=0,te=[n.ino>>>0,(ee=n.ino,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+80>>2]=te[0],N[r+84>>2]=te[1],0},doMsync:function(e,t,r,n,i){var o=F.slice(e,e+r);he.msync(t,o,i,r,n)},doMkdir:function(e,t){return"/"===(e=ie.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),he.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return he.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=he.readlink(e),i=Math.min(r,b(n)),o=x[t+i];return D(n,t,r+1),x[t+i]=o,i},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=he.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&he.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=he.getStream(r);return n&&he.close(n),he.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var s=N[t+8*o>>2],A=N[t+(8*o+4)>>2],a=he.read(e,x,s,A,n);if(a<0)return-1;if(i+=a,a<A)break}return i},doWritev:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var s=N[t+8*o>>2],A=N[t+(8*o+4)>>2],a=he.write(e,x,s,A,n);if(a<0)return-1;i+=a}return i},varargs:void 0,get:function(){return ge.varargs+=4,N[ge.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=he.getStream(e);if(!t)throw new he.ErrnoError(8);return t},get64:function(e,t){return e}};function fe(e){try{return d.grow(e-k.byteLength+65535>>>16),L(d.buffer),1}catch(e){}}var pe=(D("GMT",20704,4),20704);var de=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(de.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=de,he.staticInit();var Ce=i,Ee=r(85622);ue.staticInit();var Ie=function(e){return function(){try{return e.apply(this,arguments)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ce[e.code])}}},me=Object.assign({},he);for(var ye in le)he[ye]=Ie(le[ye]);function we(e,t,r){var n=r>0?r:b(e)+1,i=new Array(n),o=v(e,i,0,i.length);return t&&(i.length=o),i}"function"==typeof atob&&atob;function Be(e){if($(e))return function(e){var t;try{t=Buffer.from(e,"base64")}catch(r){t=new Buffer(e,"base64")}return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}(e.slice("data:application/octet-stream;base64,".length))}var Qe,ve={p:function(e,t){try{return e=ge.getStr(e),he.chmod(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},e:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 0:return(i=ge.get())<0?-28:he.open(n.path,n.flags,0,i).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var i=ge.get();return n.flags|=i,0;case 12:i=ge.get();return M[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return oe(28),-1;default:return-28}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},j:function(e,t){try{var r=ge.getStreamFromFD(e);return ge.doStat(he.stat,r.path,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},o:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var i=ge.get();return N[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:i=ge.get();return he.ioctl(n,t,i);case 21523:case 21524:return n.tty?0:-59;default:Z("bad ioctl syscall "+t)}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},r:function(e,t,r){ge.varargs=r;try{var n=ge.getStr(e),i=ge.get();return he.open(n,t,i).fd}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},q:function(e,t,r){try{var n=ge.getStreamFromFD(e);return he.read(n,x,t,r)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},h:function(e,t){try{return e=ge.getStr(e),t=ge.getStr(t),he.rename(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},s:function(e){try{return e=ge.getStr(e),he.rmdir(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},c:function(e,t){try{return e=ge.getStr(e),ge.doStat(he.stat,e,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},g:function(e){try{return e=ge.getStr(e),he.unlink(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},t:function(e,t,r){F.copyWithin(e,t,t+r)},u:function(e){e>>>=0;var t=F.length;if(e>2147483648)return!1;for(var r,n,i=1;i<=4;i*=2){var o=t*(1+.2/i);if(o=Math.min(o,e+100663296),fe(Math.min(2147483648,((r=Math.max(16777216,e,o))%(n=65536)>0&&(r+=n-r%n),r))))return!0}return!1},f:function(e){try{var t=ge.getStreamFromFD(e);return he.close(t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},i:function(e,t){try{var r=ge.getStreamFromFD(e),n=r.tty?2:he.isDir(r.mode)?3:he.isLink(r.mode)?7:4;return x[t>>0]=n,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},n:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doReadv(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},l:function(e,t,r,n,i){try{var o=ge.getStreamFromFD(e),s=4294967296*r+(t>>>0);return s<=-9007199254740992||s>=9007199254740992?-61:(he.llseek(o,s,n),te=[o.position>>>0,(ee=o.position,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[i>>2]=te[0],N[i+4>>2]=te[1],o.getdents&&0===s&&0===n&&(o.getdents=null),0)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},d:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doWritev(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},k:function(e){return function(e,t){var r=new Date(1e3*N[e>>2]);N[t>>2]=r.getUTCSeconds(),N[t+4>>2]=r.getUTCMinutes(),N[t+8>>2]=r.getUTCHours(),N[t+12>>2]=r.getUTCDate(),N[t+16>>2]=r.getUTCMonth(),N[t+20>>2]=r.getUTCFullYear()-1900,N[t+24>>2]=r.getUTCDay(),N[t+36>>2]=0,N[t+32>>2]=0;var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[t+28>>2]=i,N[t+40>>2]=pe,t}(e,20656)},memory:d,a:function(e){0|e},table:C,b:function(e){var t=Date.now()/1e3|0;return e&&(N[e>>2]=t),t},m:function(e){!function e(){if(!e.called){e.called=!0,N[Fe()>>2]=60*(new Date).getTimezoneOffset();var t=(new Date).getFullYear(),r=new Date(t,0,1),n=new Date(t,6,1);N[xe()>>2]=Number(r.getTimezoneOffset()!=n.getTimezoneOffset());var i=a(r),o=a(n),s=S(i),A=S(o);n.getTimezoneOffset()<r.getTimezoneOffset()?(N[ke()>>2]=s,N[ke()+4>>2]=A):(N[ke()>>2]=A,N[ke()+4>>2]=s)}function a(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}();var t=Date.UTC(N[e+20>>2]+1900,N[e+16>>2],N[e+12>>2],N[e+8>>2],N[e+4>>2],N[e>>2],0),r=new Date(t);N[e+24>>2]=r.getUTCDay();var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[e+28>>2]=i,r.getTime()/1e3|0}},De=function(){var e={a:ve};function t(e,t){var r=e.exports;o.asm=r,X()}if(V(),o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return f("Module.instantiateWasm callback failed with error: "+e),!1}return function(){var r,n,i;try{i=function(){try{if(p)return new Uint8Array(p);var e=Be(re);if(e)return e;if(a)return a(re);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){Z(e)}}(),n=new WebAssembly.Module(i),r=new WebAssembly.Instance(n,e)}catch(e){var o=e.toString();throw f("failed to compile wasm module: "+o),(o.indexOf("imported Memory")>=0||o.indexOf("memory import")>=0)&&f("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),e}t(r)}(),o.asm}(),be=o.___wasm_call_ctors=De.v,Se=(o._zipstruct_stat=De.w,o._zipstruct_statS=De.x,o._zipstruct_stat_name=De.y,o._zipstruct_stat_index=De.z,o._zipstruct_stat_size=De.A,o._zipstruct_stat_mtime=De.B,o._zipstruct_error=De.C,o._zipstruct_errorS=De.D,o._zip_close=De.E,o._zip_dir_add=De.F,o._zip_discard=De.G,o._zip_error_init_with_code=De.H,o._zip_get_error=De.I,o._zip_file_get_error=De.J,o._zip_error_strerror=De.K,o._zip_fclose=De.L,o._zip_file_add=De.M,o._zip_file_get_external_attributes=De.N,o._zip_file_set_external_attributes=De.O,o._zip_file_set_mtime=De.P,o._zip_fopen=De.Q,o._zip_fopen_index=De.R,o._zip_fread=De.S,o._zip_get_name=De.T,o._zip_get_num_entries=De.U,o._zip_name_locate=De.V,o._zip_open=De.W,o._zip_open_from_source=De.X,o._zip_set_file_compression=De.Y,o._zip_source_buffer=De.Z,o._zip_source_buffer_create=De._,o._zip_source_close=De.$,o._zip_source_error=De.aa,o._zip_source_free=De.ba,o._zip_source_keep=De.ca,o._zip_source_open=De.da,o._zip_source_read=De.ea,o._zip_source_seek=De.fa,o._zip_source_set_mtime=De.ga,o._zip_source_tell=De.ha,o._zip_stat=De.ia,o._zip_stat_index=De.ja,o._zip_ext_count_symlinks=De.ka,o.___errno_location=De.la),ke=o.__get_tzname=De.ma,xe=o.__get_daylight=De.na,Fe=o.__get_timezone=De.oa,Me=o.stackSave=De.pa,Ne=o.stackRestore=De.qa,Re=o.stackAlloc=De.ra,Ke=o._malloc=De.sa;o._free=De.ta,o.dynCall_vi=De.ua;function Le(e){function t(){Qe||(Qe=!0,o.calledRun=!0,E||(!0,o.noFSInit||he.init.initialized||he.init(),Ae.init(),P(_),he.ignorePermissions=!1,P(O),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),j.unshift(e);var e;P(j)}()))}e=e||l,q>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),U.unshift(e);var e;P(U)}(),q>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t()))}if(o.cwrap=function(e,t,r,n){var i=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&i&&!n?m(e):function(){return y(e,t,r,arguments)}},o.getValue=function(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return x[e>>0];case"i16":return M[e>>1];case"i32":case"i64":return N[e>>2];case"float":return R[e>>2];case"double":return K[e>>3];default:Z("invalid type for getValue: "+t)}return null},W=function e(){Qe||Le(),Qe||(W=e)},o.run=Le,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();Le()},54920:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/parsers"}')},98261:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?`${o(e.parts[t][0])}-${o(e.parts[t][1])}`:o(e.parts[t]);return`[${e.inverted?"^":""}${r}]`},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return`Expected ${function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return`${o[0]} or ${o[1]}`;default:return`${o.slice(0,-1).join(", ")}, or ${o[o.length-1]}`}}(e)} but ${function(e){return e?`"${i(e)}"`:"end of input"}(t)} found.`},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={resolution:v},s=v,A=I("/",!1),a=I("@",!1),c=function(){return e.substring(p,f)},u=/^[^\/@]/,l=m(["/","@"],!0,!1),h=/^[^\/]/,g=m(["/"],!0,!1),f=0,p=0,d=[{line:1,column:1}],C=0,E=[];if("startRule"in r){if(!(r.startRule in o))throw new Error(`Can't start parsing from rule "${r.startRule}".`);s=o[r.startRule]}function I(e,t){return{type:"literal",text:e,ignoreCase:t}}function m(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function y(t){var r,n=d[t];if(n)return n;for(r=t-1;!d[r];)r--;for(n={line:(n=d[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return d[t]=n,n}function w(e,t){var r=y(e),n=y(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function B(e){f<C||(f>C&&(C=f,E=[]),E.push(e))}function Q(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function v(){var t,r,n,o;return t=f,(r=D())!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&(o=D())!==i?(p=t,t=r={from:r,descriptor:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=D())!==i&&(p=t,r=function(e){return{descriptor:e}}(r)),t=r),t}function D(){var t,r,n,o;return t=f,(r=b())!==i?(64===e.charCodeAt(f)?(n="@",f++):(n=i,B(a)),n!==i&&(o=function(){var t,r,n;t=f,r=[],h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));if(n!==i)for(;n!==i;)r.push(n),h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));else r=i;r!==i&&(p=t,r=c());return t=r}())!==i?(p=t,t=r={fullName:r,description:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=b())!==i&&(p=t,r=function(e){return{fullName:e}}(r)),t=r),t}function b(){var t,r,n;return t=f,64===e.charCodeAt(f)?(r="@",f++):(r=i,B(a)),r!==i&&S()!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&S()!==i?(p=t,t=r=c()):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=S())!==i&&(p=t,r=c()),t=r),t}function S(){var t,r,n;if(t=f,r=[],u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l)),n!==i)for(;n!==i;)r.push(n),u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l));else r=i;return r!==i&&(p=t,r=c()),t=r}if((n=s())!==i&&f===e.length)return n;throw n!==i&&f<e.length&&B({type:"end"}),Q(E,C<e.length?e.charAt(C):null,C<e.length?w(C,C+1):w(C,C))}}},92962:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return'"'+i(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?o(e.parts[t][0])+"-"+o(e.parts[t][1]):o(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return o[0]+" or "+o[1];default:return o.slice(0,-1).join(", ")+", or "+o[o.length-1]}}(e)+" but "+function(e){return e?'"'+i(e)+'"':"end of input"}(t)+" found."},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={Start:oe},s=oe,A=$(";",!1),a=$("&&",!1),c=$("||",!1),u=$("|&",!1),l=$("|",!1),h=$("=",!1),g=$("(",!1),f=$(")",!1),p=$(">>",!1),d=$(">",!1),C=$("<<<",!1),E=$("<",!1),I=$("'",!1),m=$('"',!1),y=function(e){return{type:"text",text:e}},w=$("\\",!1),B={type:"any"},Q=/^[^']/,v=ee(["'"],!0,!1),D=function(e){return e.join("")},b=/^[^$"]/,S=ee(["$",'"'],!0,!1),k=$("$(",!1),x=$("${",!1),F=$(":-",!1),M=$("}",!1),N=$(":-}",!1),R=function(e){return{name:e}},K=$("$",!1),L=/^[a-zA-Z0-9_]/,T=ee([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),P=function(){return e.substring(z,q)},U=/^[@*?#a-zA-Z0-9_\-]/,_=ee(["@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),O=/^[(){}<>$|&; \t"']/,j=ee(["(",")","{","}","<",">","$","|","&",";"," ","\t",'"',"'"],!1,!1),Y=/^[<>&; \t"']/,G=ee(["<",">","&",";"," ","\t",'"',"'"],!1,!1),J=/^[ \t]/,H=ee([" ","\t"],!1,!1),q=0,z=0,W=[{line:1,column:1}],V=0,X=[],Z=0;if("startRule"in r){if(!(r.startRule in o))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=o[r.startRule]}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function ee(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function te(t){var r,n=W[t];if(n)return n;for(r=t-1;!W[r];)r--;for(n={line:(n=W[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return W[t]=n,n}function re(e,t){var r=te(e),n=te(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ne(e){q<V||(q>V&&(V=q,X=[]),X.push(e))}function ie(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function oe(){var e,t;return e=q,(t=se())===i&&(t=null),t!==i&&(z=e,t=t||[]),e=t}function se(){var t,r,n;return t=q,(r=Ae())!==i?((n=function(){var t,r,n,o,s,a,c;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(59===e.charCodeAt(q)?(n=";",q++):(n=i,0===Z&&ne(A)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(a=[],c=Be();c!==i;)a.push(c),c=Be();a!==i?(z=t,t=r=s):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,t=r=[r].concat(n||[])):(q=t,t=i)):(q=t,t=i),t}function Ae(){var t,r,n,o,s;return t=q,(r=ae())!==i?((n=function(){var t,r,n,o,s,A,u;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"&&"===e.substr(q,2)?(t="&&",q+=2):(t=i,0===Z&&ne(a));t===i&&("||"===e.substr(q,2)?(t="||",q+=2):(t=i,0===Z&&ne(c)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=Ae())!==i){for(A=[],u=Be();u!==i;)A.push(u),u=Be();A!==i?(z=t,t=r={type:n,line:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{chain:o,then:s}:{chain:o}):(q=t,t=i)):(q=t,t=i),t}function ae(){var t,r,n,o,s;return t=q,(r=function(){var t,r,n,o,s,A,a,c,u,l,h;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(40===e.charCodeAt(q)?(n="(",q++):(n=i,0===Z&&ne(g)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();if(A!==i)if(41===e.charCodeAt(q)?(a=")",q++):(a=i,0===Z&&ne(f)),a!==i){for(c=[],u=Be();u!==i;)c.push(u),u=Be();if(c!==i){for(u=[],l=le();l!==i;)u.push(l),l=le();if(u!==i){for(l=[],h=Be();h!==i;)l.push(h),h=Be();l!==i?(z=t,t=r={type:"subshell",subshell:s,args:u}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){for(n=[],o=ce();o!==i;)n.push(o),o=ce();if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i){if(s=[],(A=ue())!==i)for(;A!==i;)s.push(A),A=ue();else s=i;if(s!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,r=function(e,t){return{type:"command",args:t,envs:e}}(n,s),t=r):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i}else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){if(n=[],(o=ce())!==i)for(;o!==i;)n.push(o),o=ce();else n=i;if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r={type:"envs",envs:n}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}}return t}())!==i?((n=function(){var t,r,n,o,s,A,a;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"|&"===e.substr(q,2)?(t="|&",q+=2):(t=i,0===Z&&ne(u));t===i&&(124===e.charCodeAt(q)?(t="|",q++):(t=i,0===Z&&ne(l)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=ae())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,t=r={type:n,chain:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{...o,then:s}:o):(q=t,t=i)):(q=t,t=i),t}function ce(){var t,r,n,o,s,A;if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i)if((o=ge())!==i){for(s=[],A=Be();A!==i;)s.push(A),A=Be();s!==i?(z=t,t=r={name:r,args:[o]}):(q=t,t=i)}else q=t,t=i;else q=t,t=i;else q=t,t=i;if(t===i)if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r=function(e){return{name:e,args:[]}}(r)):(q=t,t=i)}else q=t,t=i;else q=t,t=i;return t}function ue(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i&&(r=le())!==i?(z=e,e=t=r):(q=e,e=i),e===i){for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();t!==i&&(r=he())!==i?(z=e,e=t=r):(q=e,e=i)}return e}function le(){var t,r,n,o;for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();return r!==i?(">>"===e.substr(q,2)?(n=">>",q+=2):(n=i,0===Z&&ne(p)),n===i&&(62===e.charCodeAt(q)?(n=">",q++):(n=i,0===Z&&ne(d)),n===i&&("<<<"===e.substr(q,3)?(n="<<<",q+=3):(n=i,0===Z&&ne(C)),n===i&&(60===e.charCodeAt(q)?(n="<",q++):(n=i,0===Z&&ne(E))))),n!==i&&(o=he())!==i?(z=t,t=r={type:"redirection",subtype:n,args:[o]}):(q=t,t=i)):(q=t,t=i),t}function he(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();return t!==i&&(r=ge())!==i?(z=e,e=t=r):(q=e,e=i),e}function ge(){var e,t,r,n;if(e=q,t=[],(r=fe())!==i)for(;r!==i;)t.push(r),r=fe();else t=i;return t!==i&&(z=e,n=t,t={type:"argument",segments:[].concat(...n)}),e=t}function fe(){var t,r;return t=q,(r=function(){var t,r,n,o;t=q,39===e.charCodeAt(q)?(r="'",q++):(r=i,0===Z&&ne(I));r!==i&&(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));r!==i&&(z=t,r=D(r));return t=r}())!==i?(39===e.charCodeAt(q)?(o="'",q++):(o=i,0===Z&&ne(I)),o!==i?(z=t,r=function(e){return[{type:"text",text:e}]}(n),t=r):(q=t,t=i)):(q=t,t=i);return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var t,r,n,o;t=q,34===e.charCodeAt(q)?(r='"',q++):(r=i,0===Z&&ne(m));if(r!==i){for(n=[],o=pe();o!==i;)n.push(o),o=pe();n!==i?(34===e.charCodeAt(q)?(o='"',q++):(o=i,0===Z&&ne(m)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i)}else q=t,t=i;return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var e,t,r;if(e=q,t=[],(r=de())!==i)for(;r!==i;)t.push(r),r=de();else t=i;t!==i&&(z=e,t=t);return e=t}())!==i&&(z=t,r=r),t=r)),t}function pe(){var t,r,n;return t=q,(r=Ce())!==i&&(z=t,r={type:"shell",shell:r,quoted:!0}),(t=r)===i&&(t=q,(r=Ee())!==i&&(z=t,n=r,r={type:"variable",...n,quoted:!0}),(t=r)===i&&(t=q,(r=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,r=y(r)),t=r)),t}function de(){var t,n,o;return t=q,(n=Ce())!==i&&(z=t,n={type:"shell",shell:n,quoted:!1}),(t=n)===i&&(t=q,(n=Ee())!==i&&(z=t,o=n,n={type:"variable",...o,quoted:!1}),(t=n)===i&&(t=q,(n=function(){var t,n;t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i);o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);if(n!==i)for(;n!==i;)r.push(n),n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i?(z=q,o=n,(r.isGlobPattern(o)?void 0:i)!==i?(z=t,t=n=n):(q=t,t=i)):(q=t,t=i);var o;return t}())!==i&&(z=t,n={type:"glob",pattern:n}),(t=n)===i&&(t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,n=y(n)),t=n))),t}function Ce(){var t,r,n,o;return t=q,"$("===e.substr(q,2)?(r="$(",q+=2):(r=i,0===Z&&ne(k)),r!==i&&(n=se())!==i?(41===e.charCodeAt(q)?(o=")",q++):(o=i,0===Z&&ne(f)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i),t}function Ee(){var t,r,n,o,s,A;return t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-"===e.substr(q,2)?(o=":-",q+=2):(o=i,0===Z&&ne(F)),o!==i&&(s=function(){var e,t,r,n,o;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i){if(r=[],(n=he())!==i)for(;n!==i;)r.push(n),n=he();else r=i;if(r!==i){for(n=[],o=Be();o!==i;)n.push(o),o=Be();n!==i?(z=e,e=t=r):(q=e,e=i)}else q=e,e=i}else q=e,e=i;return e}())!==i?(125===e.charCodeAt(q)?(A="}",q++):(A=i,0===Z&&ne(M)),A!==i?(z=t,t=r={name:n,defaultValue:s}):(q=t,t=i)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-}"===e.substr(q,3)?(o=":-}",q+=3):(o=i,0===Z&&ne(N)),o!==i?(z=t,t=r=function(e){return{name:e,defaultValue:[]}}(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(125===e.charCodeAt(q)?(o="}",q++):(o=i,0===Z&&ne(M)),o!==i?(z=t,t=r=R(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,36===e.charCodeAt(q)?(r="$",q++):(r=i,0===Z&&ne(K)),r!==i&&(n=me())!==i?(z=t,t=r=R(n)):(q=t,t=i)))),t}function Ie(){var t,r,n;if(t=q,r=[],L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T)),n!==i)for(;n!==i;)r.push(n),L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T));else r=i;return r!==i&&(z=t,r=P()),t=r}function me(){var t,r,n;if(t=q,r=[],U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_)),n!==i)for(;n!==i;)r.push(n),U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_));else r=i;return r!==i&&(z=t,r=P()),t=r}function ye(){var t;return O.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(j)),t}function we(){var t;return Y.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(G)),t}function Be(){var t,r;if(t=[],J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H)),r!==i)for(;r!==i;)t.push(r),J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H));else t=i;return t}if((n=s())!==i&&q===e.length)return n;throw n!==i&&q<e.length&&ne({type:"end"}),ie(X,V<e.length?e.charAt(V):null,V<e.length?re(V,V+1):re(V,V))}}},85443:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?`${o(e.parts[t][0])}-${o(e.parts[t][1])}`:o(e.parts[t]);return`[${e.inverted?"^":""}${r}]`},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return`Expected ${function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return`${o[0]} or ${o[1]}`;default:return`${o.slice(0,-1).join(", ")}, or ${o[o.length-1]}`}}(e)} but ${function(e){return e?`"${i(e)}"`:"end of input"}(t)} found.`},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={Start:le},s=le,A=ie("-",!1),a=ie("#",!1),c={type:"any"},u=ie(":",!1),l=function(e,t){return{[e]:t}},h=ie(",",!1),g=function(e,t){return t},f=se("correct indentation"),p=ie(" ",!1),d=se("pseudostring"),C=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,E=oe(["\r","\n","\t"," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),I=/^[^\r\n\t ,\][{}:#"']/,m=oe(["\r","\n","\t"," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),y=function(){return ne().replace(/^ *| *$/g,"")},w=ie("--",!1),B=/^[a-zA-Z\/0-9]/,Q=oe([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),v=/^[^\r\n\t :,]/,D=oe(["\r","\n","\t"," ",":",","],!0,!1),b=ie("null",!1),S=ie("true",!1),k=ie("false",!1),x=se("string"),F=ie('"',!1),M=/^[^"\\\0-\x1F\x7F]/,N=oe(['"',"\\",["\0",""],""],!0,!1),R=ie('\\"',!1),K=ie("\\\\",!1),L=ie("\\/",!1),T=ie("\\b",!1),P=ie("\\f",!1),U=ie("\\n",!1),_=ie("\\r",!1),O=ie("\\t",!1),j=ie("\\u",!1),Y=/^[0-9a-fA-F]/,G=oe([["0","9"],["a","f"],["A","F"]],!1,!1),J=se("blank space"),H=/^[ \t]/,q=oe([" ","\t"],!1,!1),z=(se("white space"),oe([" ","\t","\n","\r"],!1,!1),ie("\r\n",!1)),W=ie("\n",!1),V=ie("\r",!1),X=0,Z=0,$=[{line:1,column:1}],ee=0,te=[],re=0;if("startRule"in r){if(!(r.startRule in o))throw new Error(`Can't start parsing from rule "${r.startRule}".`);s=o[r.startRule]}function ne(){return e.substring(Z,X)}function ie(e,t){return{type:"literal",text:e,ignoreCase:t}}function oe(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function se(e){return{type:"other",description:e}}function Ae(t){var r,n=$[t];if(n)return n;for(r=t-1;!$[r];)r--;for(n={line:(n=$[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return $[t]=n,n}function ae(e,t){var r=Ae(e),n=Ae(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ce(e){X<ee||(X>ee&&(ee=X,te=[]),te.push(e))}function ue(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function le(){return ge()}function he(){var t,r,n;return t=X,de()!==i?(45===e.charCodeAt(X)?(r="-",X++):(r=i,0===re&&ce(A)),r!==i&&De()!==i&&(n=pe())!==i?(Z=t,t=n):(X=t,t=i)):(X=t,t=i),t}function ge(){var e,t,r,n;for(e=X,t=[],r=fe();r!==i;)t.push(r),r=fe();return t!==i&&(Z=e,n=t,t=Object.assign({},...n)),e=t}function fe(){var t,r,n,o,s,A,f,p,d,C,E,I;if(t=X,(r=De())===i&&(r=null),r!==i){if(n=X,35===e.charCodeAt(X)?(o="#",X++):(o=i,0===re&&ce(a)),o!==i){if(s=[],A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i),A!==i)for(;A!==i;)s.push(A),A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i);else s=i;s!==i?n=o=[o,s]:(X=n,n=i)}else X=n,n=i;if(n===i&&(n=null),n!==i){if(o=[],(s=be())!==i)for(;s!==i;)o.push(s),s=be();else o=i;o!==i?(Z=t,t=r={}):(X=t,t=i)}else X=t,t=i}else X=t,t=i;if(t===i&&(t=X,(r=de())!==i&&(n=function(){var e;(e=Be())===i&&(e=me());return e}())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,(r=de())!==i&&(n=Ie())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i))){if(t=X,(r=de())!==i)if((n=Ie())!==i)if((o=De())!==i)if((s=function(){var e;(e=we())===i&&(e=Be())===i&&(e=ye());return e}())!==i){if(A=[],(f=be())!==i)for(;f!==i;)A.push(f),f=be();else A=i;A!==i?(Z=t,t=r=l(n,s)):(X=t,t=i)}else X=t,t=i;else X=t,t=i;else X=t,t=i;else X=t,t=i;if(t===i)if(t=X,(r=de())!==i)if((n=Ie())!==i){if(o=[],s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i),s!==i)for(;s!==i;)o.push(s),s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i);else o=i;o!==i?((s=De())===i&&(s=null),s!==i?(58===e.charCodeAt(X)?(A=":",X++):(A=i,0===re&&ce(u)),A!==i?((f=De())===i&&(f=null),f!==i&&(p=pe())!==i?(Z=t,C=n,E=o,I=p,t=r=Object.assign({},...[C].concat(E).map(e=>({[e]:I})))):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)}else X=t,t=i;else X=t,t=i}return t}function pe(){var t,r,n,o,s,a,c;if(t=X,r=X,re++,n=X,(o=Se())!==i&&(s=function(){var t,r,n;t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));for(;n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));r!==i?(Z=X,(n=(n=r.length===(xe+1)*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i);return t}())!==i?(45===e.charCodeAt(X)?(a="-",X++):(a=i,0===re&&ce(A)),a!==i&&(c=De())!==i?n=o=[o,s,a,c]:(X=n,n=i)):(X=n,n=i),re--,n!==i?(X=r,r=void 0):r=i,r!==i&&(n=be())!==i&&(o=Ce())!==i&&(s=function(){var e,t,r,n;for(e=X,t=[],r=he();r!==i;)t.push(r),r=he();return t!==i&&(Z=e,n=t,t=[].concat(...n)),e=t}())!==i&&(a=Ee())!==i?(Z=t,t=r=s):(X=t,t=i),t===i&&(t=X,(r=Se())!==i&&(n=Ce())!==i&&(o=ge())!==i&&(s=Ee())!==i?(Z=t,t=r=o):(X=t,t=i),t===i))if(t=X,(r=function(){var t;(t=we())===i&&(t=function(){var t,r;t=X,"true"===e.substr(X,4)?(r="true",X+=4):(r=i,0===re&&ce(S));r!==i&&(Z=t,r=!0);(t=r)===i&&(t=X,"false"===e.substr(X,5)?(r="false",X+=5):(r=i,0===re&&ce(k)),r!==i&&(Z=t,r=!1),t=r);return t}())===i&&(t=Be())===i&&(t=me());return t}())!==i){if(n=[],(o=be())!==i)for(;o!==i;)n.push(o),o=be();else n=i;n!==i?(Z=t,t=r=r):(X=t,t=i)}else X=t,t=i;return t}function de(){var t,r,n;for(re++,t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));return r!==i?(Z=X,(n=(n=r.length===xe*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i),re--,t===i&&(r=i,0===re&&ce(f)),t}function Ce(){return Z=X,xe++,!0?void 0:i}function Ee(){return Z=X,xe--,!0?void 0:i}function Ie(){var e,t,r;if((e=Be())===i){if(e=X,t=[],(r=ye())!==i)for(;r!==i;)t.push(r),r=ye();else t=i;t!==i&&(Z=e,t=ne()),e=t}return e}function me(){var t,r,n,o,s,A;if(re++,t=X,C.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(E)),r!==i){for(n=[],o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);o!==i;)n.push(o),o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);n!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;return re--,t===i&&(r=i,0===re&&ce(d)),t}function ye(){var t,r,n,o,s;if(t=X,"--"===e.substr(X,2)?(r="--",X+=2):(r=i,0===re&&ce(w)),r===i&&(r=null),r!==i)if(B.test(e.charAt(X))?(n=e.charAt(X),X++):(n=i,0===re&&ce(Q)),n!==i){for(o=[],v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));s!==i;)o.push(s),v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));o!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;else X=t,t=i;return t}function we(){var t,r;return t=X,"null"===e.substr(X,4)?(r="null",X+=4):(r=i,0===re&&ce(b)),r!==i&&(Z=t,r=null),t=r}function Be(){var t,r,n,o;return re++,t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i?(34===e.charCodeAt(X)?(n='"',X++):(n=i,0===re&&ce(F)),n!==i?(Z=t,t=r=""):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i&&(n=function(){var e,t,r;if(e=X,t=[],(r=Qe())!==i)for(;r!==i;)t.push(r),r=Qe();else t=i;t!==i&&(Z=e,t=t.join(""));return e=t}())!==i?(34===e.charCodeAt(X)?(o='"',X++):(o=i,0===re&&ce(F)),o!==i?(Z=t,t=r=n):(X=t,t=i)):(X=t,t=i)),re--,t===i&&(r=i,0===re&&ce(x)),t}function Qe(){var t,r,n,o,s,A,a,c,u,l;return M.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(N)),t===i&&(t=X,'\\"'===e.substr(X,2)?(r='\\"',X+=2):(r=i,0===re&&ce(R)),r!==i&&(Z=t,r='"'),(t=r)===i&&(t=X,"\\\\"===e.substr(X,2)?(r="\\\\",X+=2):(r=i,0===re&&ce(K)),r!==i&&(Z=t,r="\\"),(t=r)===i&&(t=X,"\\/"===e.substr(X,2)?(r="\\/",X+=2):(r=i,0===re&&ce(L)),r!==i&&(Z=t,r="/"),(t=r)===i&&(t=X,"\\b"===e.substr(X,2)?(r="\\b",X+=2):(r=i,0===re&&ce(T)),r!==i&&(Z=t,r="\b"),(t=r)===i&&(t=X,"\\f"===e.substr(X,2)?(r="\\f",X+=2):(r=i,0===re&&ce(P)),r!==i&&(Z=t,r="\f"),(t=r)===i&&(t=X,"\\n"===e.substr(X,2)?(r="\\n",X+=2):(r=i,0===re&&ce(U)),r!==i&&(Z=t,r="\n"),(t=r)===i&&(t=X,"\\r"===e.substr(X,2)?(r="\\r",X+=2):(r=i,0===re&&ce(_)),r!==i&&(Z=t,r="\r"),(t=r)===i&&(t=X,"\\t"===e.substr(X,2)?(r="\\t",X+=2):(r=i,0===re&&ce(O)),r!==i&&(Z=t,r="\t"),(t=r)===i&&(t=X,"\\u"===e.substr(X,2)?(r="\\u",X+=2):(r=i,0===re&&ce(j)),r!==i&&(n=ve())!==i&&(o=ve())!==i&&(s=ve())!==i&&(A=ve())!==i?(Z=t,a=n,c=o,u=s,l=A,t=r=String.fromCharCode(parseInt(`0x${a}${c}${u}${l}`))):(X=t,t=i)))))))))),t}function ve(){var t;return Y.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(G)),t}function De(){var t,r;if(re++,t=[],H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q)),r!==i)for(;r!==i;)t.push(r),H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q));else t=i;return re--,t===i&&(r=i,0===re&&ce(J)),t}function be(){var e,t,r,n,o,s;if(e=X,(t=Se())!==i){for(r=[],n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);n!==i;)r.push(n),n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);r!==i?e=t=[t,r]:(X=e,e=i)}else X=e,e=i;return e}function Se(){var t;return"\r\n"===e.substr(X,2)?(t="\r\n",X+=2):(t=i,0===re&&ce(z)),t===i&&(10===e.charCodeAt(X)?(t="\n",X++):(t=i,0===re&&ce(W)),t===i&&(13===e.charCodeAt(X)?(t="\r",X++):(t=i,0===re&&ce(V)))),t}const ke=2;let xe=0;if((n=s())!==i&&X===e.length)return n;throw n!==i&&X<e.length&&ce({type:"end"}),ue(te,ee<e.length?e.charAt(ee):null,ee<e.length?ae(ee,ee+1):ae(ee,ee))}}},20103:(e,t,r)=>{e.exports=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString()},75418:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/shell"}')},42357:e=>{"use strict";e.exports=require("assert")},64293:e=>{"use strict";e.exports=require("buffer")},63129:e=>{"use strict";e.exports=require("child_process")},27619:e=>{"use strict";e.exports=require("constants")},76417:e=>{"use strict";e.exports=require("crypto")},40881:e=>{"use strict";e.exports=require("dns")},28614:e=>{"use strict";e.exports=require("events")},35747:e=>{"use strict";e.exports=require("fs")},98605:e=>{"use strict";e.exports=require("http")},97565:e=>{"use strict";e.exports=require("http2")},57211:e=>{"use strict";e.exports=require("https")},32282:e=>{"use strict";e.exports=require("module")},11631:e=>{"use strict";e.exports=require("net")},12087:e=>{"use strict";e.exports=require("os")},85622:e=>{"use strict";e.exports=require("path")},71191:e=>{"use strict";e.exports=require("querystring")},51058:e=>{"use strict";e.exports=require("readline")},92413:e=>{"use strict";e.exports=require("stream")},24304:e=>{"use strict";e.exports=require("string_decoder")},4016:e=>{"use strict";e.exports=require("tls")},33867:e=>{"use strict";e.exports=require("tty")},78835:e=>{"use strict";e.exports=require("url")},31669:e=>{"use strict";e.exports=require("util")},68987:e=>{"use strict";e.exports=require("v8")},92184:e=>{"use strict";e.exports=require("vm")},78761:e=>{"use strict";e.exports=require("zlib")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(28638)})();
\ No newline at end of file
diff --git a/FrontEnd/.yarn/sdks/eslint/lib/api.js b/FrontEnd/.yarn/sdks/eslint/lib/api.js
new file mode 100644
index 00000000..dd6df163
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/eslint/lib/api.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+const {existsSync} = require(`fs`);
+const {createRequire, createRequireFromPath} = require(`module`);
+const {resolve} = require(`path`);
+
+const relPnpApiPath = "../../../../.pnp.js";
+
+const absPnpApiPath = resolve(__dirname, relPnpApiPath);
+const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
+
+if (existsSync(absPnpApiPath)) {
+  if (!process.versions.pnp) {
+    // Setup the environment to be able to require eslint/lib/api.js
+    require(absPnpApiPath).setup();
+  }
+}
+
+// Defer to the real eslint/lib/api.js your application uses
+module.exports = absRequire(`eslint/lib/api.js`);
diff --git a/FrontEnd/.yarn/sdks/eslint/package.json b/FrontEnd/.yarn/sdks/eslint/package.json
new file mode 100644
index 00000000..b7d1fe0e
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/eslint/package.json
@@ -0,0 +1,6 @@
+{
+  "name": "eslint",
+  "version": "7.5.0-pnpify",
+  "main": "./lib/api.js",
+  "type": "commonjs"
+}
\ No newline at end of file
diff --git a/FrontEnd/.yarn/sdks/integrations.yml b/FrontEnd/.yarn/sdks/integrations.yml
new file mode 100644
index 00000000..bce9333e
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/integrations.yml
@@ -0,0 +1,5 @@
+# This file is automatically generated by PnPify.
+# Manual changes will be lost!
+
+integrations:
+  - vscode
diff --git a/FrontEnd/.yarn/sdks/prettier/index.js b/FrontEnd/.yarn/sdks/prettier/index.js
new file mode 100644
index 00000000..5158364a
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/prettier/index.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+const {existsSync} = require(`fs`);
+const {createRequire, createRequireFromPath} = require(`module`);
+const {resolve} = require(`path`);
+
+const relPnpApiPath = "../../../.pnp.js";
+
+const absPnpApiPath = resolve(__dirname, relPnpApiPath);
+const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
+
+if (existsSync(absPnpApiPath)) {
+  if (!process.versions.pnp) {
+    // Setup the environment to be able to require prettier/index.js
+    require(absPnpApiPath).setup();
+  }
+}
+
+// Defer to the real prettier/index.js your application uses
+module.exports = absRequire(`prettier/index.js`);
diff --git a/FrontEnd/.yarn/sdks/prettier/package.json b/FrontEnd/.yarn/sdks/prettier/package.json
new file mode 100644
index 00000000..0a3b4040
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/prettier/package.json
@@ -0,0 +1,6 @@
+{
+  "name": "prettier",
+  "version": "2.0.5-pnpify",
+  "main": "./index.js",
+  "type": "commonjs"
+}
\ No newline at end of file
diff --git a/FrontEnd/.yarn/sdks/typescript/lib/tsc.js b/FrontEnd/.yarn/sdks/typescript/lib/tsc.js
new file mode 100644
index 00000000..bae984f9
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/typescript/lib/tsc.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+const {existsSync} = require(`fs`);
+const {createRequire, createRequireFromPath} = require(`module`);
+const {resolve} = require(`path`);
+
+const relPnpApiPath = "../../../../.pnp.js";
+
+const absPnpApiPath = resolve(__dirname, relPnpApiPath);
+const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
+
+if (existsSync(absPnpApiPath)) {
+  if (!process.versions.pnp) {
+    // Setup the environment to be able to require typescript/lib/tsc.js
+    require(absPnpApiPath).setup();
+  }
+}
+
+// Defer to the real typescript/lib/tsc.js your application uses
+module.exports = absRequire(`typescript/lib/tsc.js`);
diff --git a/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js b/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js
new file mode 100644
index 00000000..70838e59
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/typescript/lib/tsserver.js
@@ -0,0 +1,63 @@
+#!/usr/bin/env node
+
+const {existsSync} = require(`fs`);
+const {createRequire, createRequireFromPath} = require(`module`);
+const {resolve} = require(`path`);
+
+const relPnpApiPath = "../../../../.pnp.js";
+
+const absPnpApiPath = resolve(__dirname, relPnpApiPath);
+const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
+
+const moduleWrapper = tsserver => {
+  // VSCode sends the zip paths to TS using the "zip://" prefix, that TS
+  // doesn't understand. This layer makes sure to remove the protocol
+  // before forwarding it to TS, and to add it back on all returned paths.
+
+  const {isAbsolute} = require(`path`);
+
+  const Session = tsserver.server.Session;
+  const {onMessage: originalOnMessage, send: originalSend} = Session.prototype;
+
+  return Object.assign(Session.prototype, {
+    onMessage(/** @type {string} */ message) {
+      return originalOnMessage.call(this, JSON.stringify(JSON.parse(message), (key, value) => {
+        return typeof value === 'string' ? removeZipPrefix(value) : value;
+      }));
+    },
+
+    send(/** @type {any} */ msg) {
+      return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => {
+        return typeof value === 'string' ? addZipPrefix(value) : value;
+      })));
+    }
+  });
+
+  function addZipPrefix(str) {
+    // We add the `zip:` prefix to both `.zip/` paths and virtual paths
+    if (isAbsolute(str) && !str.match(/^zip:/) && (str.match(/\.zip\//) || str.match(/\$\$virtual\//))) {
+      // Absolute VSCode `Uri.fsPath`s need to start with a slash.
+      // VSCode only adds it automatically for supported schemes,
+      // so we have to do it manually for the `zip` scheme.
+      return `zip:${str.replace(/^\/?/, `/`)}`;
+    } else {
+      return str;
+    }
+  }
+
+  function removeZipPrefix(str) {
+    return process.platform === 'win32'
+      ? str.replace(/^zip:\//, ``)
+      : str.replace(/^zip:/, ``);
+  }
+};
+
+if (existsSync(absPnpApiPath)) {
+  if (!process.versions.pnp) {
+    // Setup the environment to be able to require typescript/lib/tsserver.js
+    require(absPnpApiPath).setup();
+  }
+}
+
+// Defer to the real typescript/lib/tsserver.js your application uses
+module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`));
diff --git a/FrontEnd/.yarn/sdks/typescript/lib/typescript.js b/FrontEnd/.yarn/sdks/typescript/lib/typescript.js
new file mode 100644
index 00000000..81bea7ce
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/typescript/lib/typescript.js
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+const {existsSync} = require(`fs`);
+const {createRequire, createRequireFromPath} = require(`module`);
+const {resolve} = require(`path`);
+
+const relPnpApiPath = "../../../../.pnp.js";
+
+const absPnpApiPath = resolve(__dirname, relPnpApiPath);
+const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
+
+if (existsSync(absPnpApiPath)) {
+  if (!process.versions.pnp) {
+    // Setup the environment to be able to require typescript/lib/typescript.js
+    require(absPnpApiPath).setup();
+  }
+}
+
+// Defer to the real typescript/lib/typescript.js your application uses
+module.exports = absRequire(`typescript/lib/typescript.js`);
diff --git a/FrontEnd/.yarn/sdks/typescript/package.json b/FrontEnd/.yarn/sdks/typescript/package.json
new file mode 100644
index 00000000..a884274a
--- /dev/null
+++ b/FrontEnd/.yarn/sdks/typescript/package.json
@@ -0,0 +1,6 @@
+{
+  "name": "typescript",
+  "version": "3.9.7-pnpify",
+  "main": "./lib/typescript.js",
+  "type": "commonjs"
+}
\ No newline at end of file
diff --git a/FrontEnd/.yarnrc.yml b/FrontEnd/.yarnrc.yml
new file mode 100644
index 00000000..2e4e43a7
--- /dev/null
+++ b/FrontEnd/.yarnrc.yml
@@ -0,0 +1,5 @@
+plugins:
+  - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
+    spec: "@yarnpkg/plugin-interactive-tools"
+
+yarnPath: .yarn/releases/yarn-2.1.1.cjs
diff --git a/FrontEnd/LICENSE b/FrontEnd/LICENSE
new file mode 100644
index 00000000..238cd2d9
--- /dev/null
+++ b/FrontEnd/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 杨宇千
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/FrontEnd/package.json b/FrontEnd/package.json
new file mode 100644
index 00000000..65c5cbe2
--- /dev/null
+++ b/FrontEnd/package.json
@@ -0,0 +1,111 @@
+{
+  "name": "timeline",
+  "version": "0.1.0",
+  "private": true,
+  "homepage": "https://crupest.xyz",
+  "keywords": [],
+  "description": "Timeline app.",
+  "dependencies": {
+    "axios": "^0.21.0",
+    "bootstrap": "^4.5.3",
+    "bootstrap-icons": "^1.0.0",
+    "classnames": "^2.2.6",
+    "clsx": "^1.1.1",
+    "core-js": "^3.6.5",
+    "i18next": "^19.8.3",
+    "i18next-browser-languagedetector": "^6.0.1",
+    "localforage": "^1.9.0",
+    "lodash": "^4.17.20",
+    "pepjs": "^0.5.2",
+    "react": "^17.0.1",
+    "react-bootstrap": "^1.4.0",
+    "react-dom": "^17.0.1",
+    "react-hot-loader": "^4.13.0",
+    "react-i18next": "^11.7.3",
+    "react-inlinesvg": "^2.1.1",
+    "react-responsive": "^8.1.0",
+    "react-router": "^5.2.0",
+    "react-router-bootstrap": "^0.25.0",
+    "react-router-dom": "^5.2.0",
+    "regenerator-runtime": "^0.13.7",
+    "rxjs": "^6.6.3",
+    "workbox-precaching": "^5.1.4",
+    "workbox-routing": "^5.1.4",
+    "workbox-strategies": "^5.1.4",
+    "workbox-window": "^5.1.4",
+    "xregexp": "^4.3.0"
+  },
+  "scripts": {
+    "start": "webpack-dev-server --config ./webpack.config.dev.js",
+    "build": "webpack --config ./webpack.config.prod.js",
+    "lint": "eslint src/ --ext .js --ext .jsx --ext .ts --ext .tsx"
+  },
+  "browserslist": {
+    "production": [
+      ">0.2%",
+      "not dead",
+      "not op_mini all"
+    ],
+    "development": [
+      "last 1 chrome version",
+      "last 1 firefox version",
+      "last 1 safari version"
+    ]
+  },
+  "devDependencies": {
+    "@babel/core": "^7.12.3",
+    "@babel/plugin-proposal-class-properties": "^7.12.1",
+    "@babel/plugin-proposal-decorators": "^7.12.1",
+    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
+    "@babel/plugin-proposal-optional-chaining": "^7.12.1",
+    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+    "@babel/preset-env": "^7.12.1",
+    "@babel/preset-react": "^7.12.1",
+    "@babel/preset-typescript": "^7.12.1",
+    "@hot-loader/react-dom": "^17.0.0",
+    "@types/classnames": "^2.2.10",
+    "@types/lodash": "^4.14.162",
+    "@types/node": "^14.14.5",
+    "@types/react": "^16.9.53",
+    "@types/react-dom": "^16.9.8",
+    "@types/react-responsive": "^8.0.2",
+    "@types/react-router": "^5.1.8",
+    "@types/react-router-bootstrap": "^0.24.5",
+    "@types/react-router-dom": "^5.1.6",
+    "@types/webpack-env": "^1.15.3",
+    "@types/xregexp": "^4.3.0",
+    "@typescript-eslint/eslint-plugin": "^4.6.0",
+    "@typescript-eslint/parser": "^4.6.0",
+    "@yarnpkg/pnpify": "^2.3.3",
+    "babel-loader": "^8.1.0",
+    "babel-plugin-transform-builtin-extend": "^1.1.2",
+    "clean-webpack-plugin": "^3.0.0",
+    "copy-webpack-plugin": "^6.2.1",
+    "css-loader": "^5.0.0",
+    "eslint": "^7.12.1",
+    "eslint-config-prettier": "^6.14.0",
+    "eslint-plugin-import": "^2.22.1",
+    "eslint-plugin-prettier": "^3.1.4",
+    "eslint-plugin-react": "^7.21.5",
+    "eslint-plugin-react-hooks": "^4.2.0",
+    "file-loader": "^6.1.1",
+    "html-webpack-plugin": "^4.5.0",
+    "http-server": "^0.12.3",
+    "mini-css-extract-plugin": "^1.2.0",
+    "postcss": "^8.1.4",
+    "postcss-loader": "^4.0.4",
+    "postcss-preset-env": "^6.7.0",
+    "prettier": "^2.1.2",
+    "sass": "^1.27.0",
+    "sass-loader": "^10.0.4",
+    "style-loader": "^2.0.0",
+    "ts-loader": "^8.0.7",
+    "typescript": "^4.0.5",
+    "url-loader": "^4.1.1",
+    "webpack": "^5.2.0",
+    "webpack-chain": "^6.5.1",
+    "webpack-cli": "^4.1.0",
+    "webpack-dev-server": "^3.11.0",
+    "workbox-webpack-plugin": "^5.1.4"
+  }
+}
diff --git a/FrontEnd/postcss.config.js b/FrontEnd/postcss.config.js
new file mode 100644
index 00000000..74ee8155
--- /dev/null
+++ b/FrontEnd/postcss.config.js
@@ -0,0 +1,10 @@
+module.exports = {
+  plugins: [
+    [
+      "postcss-preset-env",
+      {
+        // Options
+      },
+    ],
+  ],
+};
diff --git a/FrontEnd/public/android-chrome-192x192.png b/FrontEnd/public/android-chrome-192x192.png
new file mode 100644
index 00000000..da9b6b81
Binary files /dev/null and b/FrontEnd/public/android-chrome-192x192.png differ
diff --git a/FrontEnd/public/android-chrome-512x512.png b/FrontEnd/public/android-chrome-512x512.png
new file mode 100644
index 00000000..fa84e055
Binary files /dev/null and b/FrontEnd/public/android-chrome-512x512.png differ
diff --git a/FrontEnd/public/apple-touch-icon.png b/FrontEnd/public/apple-touch-icon.png
new file mode 100644
index 00000000..d5a3fb45
Binary files /dev/null and b/FrontEnd/public/apple-touch-icon.png differ
diff --git a/FrontEnd/public/browserconfig.xml b/FrontEnd/public/browserconfig.xml
new file mode 100644
index 00000000..f2c89409
--- /dev/null
+++ b/FrontEnd/public/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+    <msapplication>
+        <tile>
+            <square150x150logo src="/mstile-150x150.png"/>
+            <TileColor>#2d89ef</TileColor>
+        </tile>
+    </msapplication>
+</browserconfig>
diff --git a/FrontEnd/public/favicon-16x16.png b/FrontEnd/public/favicon-16x16.png
new file mode 100644
index 00000000..6c978995
Binary files /dev/null and b/FrontEnd/public/favicon-16x16.png differ
diff --git a/FrontEnd/public/favicon-32x32.png b/FrontEnd/public/favicon-32x32.png
new file mode 100644
index 00000000..bbde902f
Binary files /dev/null and b/FrontEnd/public/favicon-32x32.png differ
diff --git a/FrontEnd/public/favicon.ico b/FrontEnd/public/favicon.ico
new file mode 100644
index 00000000..d4cd3db6
Binary files /dev/null and b/FrontEnd/public/favicon.ico differ
diff --git a/FrontEnd/public/mstile-144x144.png b/FrontEnd/public/mstile-144x144.png
new file mode 100644
index 00000000..61eaaf43
Binary files /dev/null and b/FrontEnd/public/mstile-144x144.png differ
diff --git a/FrontEnd/public/mstile-150x150.png b/FrontEnd/public/mstile-150x150.png
new file mode 100644
index 00000000..85fa83ee
Binary files /dev/null and b/FrontEnd/public/mstile-150x150.png differ
diff --git a/FrontEnd/public/mstile-310x150.png b/FrontEnd/public/mstile-310x150.png
new file mode 100644
index 00000000..41889953
Binary files /dev/null and b/FrontEnd/public/mstile-310x150.png differ
diff --git a/FrontEnd/public/mstile-310x310.png b/FrontEnd/public/mstile-310x310.png
new file mode 100644
index 00000000..cddce02e
Binary files /dev/null and b/FrontEnd/public/mstile-310x310.png differ
diff --git a/FrontEnd/public/mstile-70x70.png b/FrontEnd/public/mstile-70x70.png
new file mode 100644
index 00000000..52f59d43
Binary files /dev/null and b/FrontEnd/public/mstile-70x70.png differ
diff --git a/FrontEnd/public/safari-pinned-tab.svg b/FrontEnd/public/safari-pinned-tab.svg
new file mode 100644
index 00000000..e91f046a
--- /dev/null
+++ b/FrontEnd/public/safari-pinned-tab.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.11, written by Peter Selinger 2001-2013
+</metadata>
+<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M3080 6207 l0 -794 -57 -13 c-148 -33 -321 -102 -503 -202 -250 -136
+-519 -398 -687 -669 -122 -196 -224 -463 -264 -694 -24 -139 -32 -418 -16
+-560 72 -648 485 -1236 1069 -1523 68 -33 139 -67 158 -75 51 -22 219 -74 263
+-82 l37 -7 0 -794 0 -794 420 0 420 0 0 794 0 794 38 7 c128 23 423 146 573
+238 503 309 846 851 916 1447 10 83 10 355 1 441 -15 127 -49 283 -89 399 -38
+111 -36 105 -108 252 -151 310 -366 554 -673 765 -62 43 -260 149 -306 164
+-20 6 -41 15 -47 19 -15 11 -183 66 -248 81 l-57 14 0 792 0 793 -420 0 -420
+0 0 -793z m600 -1601 c14 -3 39 -9 55 -12 17 -2 48 -10 70 -16 22 -6 42 -12
+45 -13 21 -4 117 -45 170 -74 277 -145 492 -417 565 -716 24 -100 26 -116 31
+-235 12 -327 -107 -619 -344 -847 -342 -329 -846 -405 -1272 -192 -293 147
+-488 387 -584 719 -24 81 -31 151 -31 300 1 234 65 432 203 630 57 82 177 201
+263 263 137 97 323 173 474 193 28 3 52 8 54 10 6 5 274 -3 301 -10z"/>
+</g>
+</svg>
diff --git a/FrontEnd/public/site.webmanifest b/FrontEnd/public/site.webmanifest
new file mode 100644
index 00000000..74f0901a
--- /dev/null
+++ b/FrontEnd/public/site.webmanifest
@@ -0,0 +1,22 @@
+{
+  "$schema": "http://json.schemastore.org/web-manifest",
+
+  "name": "Timeline",
+  "short_name": "Timeline",
+  "description": "Record your life in Timeline! Created by crupest.",
+  "icons": [
+    {
+      "src": "/android-chrome-192x192.png",
+      "sizes": "192x192",
+      "type": "image/png"
+    },
+    {
+      "src": "/android-chrome-512x512.png",
+      "sizes": "512x512",
+      "type": "image/png"
+    }
+  ],
+  "theme_color": "#ffffff",
+  "background_color": "#ffffff",
+  "display": "standalone"
+}
diff --git a/FrontEnd/sandbox.config.json b/FrontEnd/sandbox.config.json
new file mode 100644
index 00000000..90f99b70
--- /dev/null
+++ b/FrontEnd/sandbox.config.json
@@ -0,0 +1,11 @@
+{
+  "infiniteLoopProtection": true,
+  "hardReloadOnChange": false,
+  "view": "browser",
+  "container": {
+    "port": 3000,
+    "startScript": "start:mock"
+  },
+  "port": 3000,
+  "startScript": "start:mock"
+}
diff --git a/FrontEnd/src/app/App.tsx b/FrontEnd/src/app/App.tsx
new file mode 100644
index 00000000..b68eddb6
--- /dev/null
+++ b/FrontEnd/src/app/App.tsx
@@ -0,0 +1,84 @@
+import React from "react";
+import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
+import { hot } from "react-hot-loader/root";
+
+import AppBar from "./views/common/AppBar";
+import LoadingPage from "./views/common/LoadingPage";
+import Home from "./views/home";
+import Login from "./views/login";
+import Settings from "./views/settings";
+import About from "./views/about";
+import User from "./views/user";
+import TimelinePage from "./views/timeline";
+import AlertHost from "./views/common/alert/AlertHost";
+
+import { dataStorage } from "./services/common";
+import { userService, useRawUser } from "./services/user";
+
+const NoMatch: React.FC = () => {
+  return (
+    <>
+      <AppBar />
+      <div style={{ height: 56 }} />
+      <div>Ah-oh, 404!</div>
+    </>
+  );
+};
+
+const LazyAdmin = React.lazy(
+  () => import(/* webpackChunkName: "admin" */ "./views/admin/Admin")
+);
+
+const App: React.FC = () => {
+  const [loading, setLoading] = React.useState<boolean>(true);
+
+  const user = useRawUser();
+
+  React.useEffect(() => {
+    void userService.checkLoginState();
+    void dataStorage.ready().then(() => setLoading(false));
+  }, []);
+
+  if (user === undefined || loading) {
+    return <LoadingPage />;
+  } else {
+    return (
+      <React.Suspense fallback={<LoadingPage />}>
+        <Router>
+          <AppBar />
+          <Switch>
+            <Route exact path="/">
+              <Home />
+            </Route>
+            <Route exact path="/login">
+              <Login />
+            </Route>
+            <Route path="/settings">
+              <Settings />
+            </Route>
+            <Route path="/about">
+              <About />
+            </Route>
+            <Route path="/timelines/:name">
+              <TimelinePage />
+            </Route>
+            <Route path="/users/:username">
+              <User />
+            </Route>
+            {user && user.administrator && (
+              <Route path="/admin">
+                <LazyAdmin user={user} />
+              </Route>
+            )}
+            <Route>
+              <NoMatch />
+            </Route>
+          </Switch>
+          <AlertHost />
+        </Router>
+      </React.Suspense>
+    );
+  }
+};
+
+export default hot(App);
diff --git a/FrontEnd/src/app/common.ts b/FrontEnd/src/app/common.ts
new file mode 100644
index 00000000..0a2d345f
--- /dev/null
+++ b/FrontEnd/src/app/common.ts
@@ -0,0 +1,44 @@
+import React from "react";
+import { Observable, Subject } from "rxjs";
+
+// This error is thrown when ui goes wrong with bad logic.
+// Such as a variable should not be null, but it does.
+// This error should never occur. If it does, it indicates there is some logic bug in codes.
+export class UiLogicError extends Error {}
+
+export function useEventEmiiter(): [() => Observable<null>, () => void] {
+  const ref = React.useRef<Subject<null> | null>(null);
+
+  return React.useMemo(() => {
+    const getter = (): Subject<null> => {
+      if (ref.current == null) {
+        ref.current = new Subject<null>();
+      }
+      return ref.current;
+    };
+    const trigger = (): void => {
+      getter().next(null);
+    };
+    return [getter, trigger];
+  }, []);
+}
+
+export function useValueEventEmiiter<T>(): [
+  () => Observable<T>,
+  (value: T) => void
+] {
+  const ref = React.useRef<Subject<T> | null>(null);
+
+  return React.useMemo(() => {
+    const getter = (): Subject<T> => {
+      if (ref.current == null) {
+        ref.current = new Subject<T>();
+      }
+      return ref.current;
+    };
+    const trigger = (value: T): void => {
+      getter().next(value);
+    };
+    return [getter, trigger];
+  }, []);
+}
diff --git a/FrontEnd/src/app/http/common.ts b/FrontEnd/src/app/http/common.ts
new file mode 100644
index 00000000..54203d1a
--- /dev/null
+++ b/FrontEnd/src/app/http/common.ts
@@ -0,0 +1,161 @@
+import { AxiosError, AxiosResponse } from "axios";
+
+export const apiBaseUrl = "/api";
+
+export function base64(blob: Blob): Promise<string> {
+  return new Promise<string>((resolve) => {
+    const reader = new FileReader();
+    reader.onload = function () {
+      resolve((reader.result as string).replace(/^data:.+;base64,/, ""));
+    };
+    reader.readAsDataURL(blob);
+  });
+}
+
+export function extractStatusCode(error: AxiosError): number | null {
+  if (error.isAxiosError) {
+    const code = error?.response?.status;
+    if (typeof code === "number") {
+      return code;
+    }
+  }
+  return null;
+}
+
+export interface CommonErrorResponse {
+  code: number;
+  message: string;
+}
+
+export function extractErrorCode(
+  error: AxiosError<CommonErrorResponse>
+): number | null {
+  if (error.isAxiosError) {
+    const code = error.response?.data?.code;
+    if (typeof code === "number") {
+      return code;
+    }
+  }
+  return null;
+}
+
+export class HttpNetworkError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export class HttpForbiddenError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export class NotModified {}
+
+export interface BlobWithEtag {
+  data: Blob;
+  etag: string;
+}
+
+export function extractResponseData<T>(res: AxiosResponse<T>): T {
+  return res.data;
+}
+
+export function catchIfStatusCodeIs<
+  TResult,
+  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
+>(
+  statusCode: number,
+  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
+): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
+  return (error: AxiosError<CommonErrorResponse>) => {
+    if (extractStatusCode(error) == statusCode) {
+      return errorHandler(error);
+    } else {
+      throw error;
+    }
+  };
+}
+
+export function convertToIfStatusCodeIs<NewError>(
+  statusCode: number,
+  newErrorType: {
+    new (innerError: AxiosError): NewError;
+  }
+): (error: AxiosError<CommonErrorResponse>) => never {
+  return catchIfStatusCodeIs(statusCode, (error) => {
+    throw new newErrorType(error);
+  });
+}
+
+export function catchIfErrorCodeIs<
+  TResult,
+  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
+>(
+  errorCode: number,
+  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
+): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
+  return (error: AxiosError<CommonErrorResponse>) => {
+    if (extractErrorCode(error) == errorCode) {
+      return errorHandler(error);
+    } else {
+      throw error;
+    }
+  };
+}
+export function convertToIfErrorCodeIs<NewError>(
+  errorCode: number,
+  newErrorType: {
+    new (innerError: AxiosError): NewError;
+  }
+): (error: AxiosError<CommonErrorResponse>) => never {
+  return catchIfErrorCodeIs(errorCode, (error) => {
+    throw new newErrorType(error);
+  });
+}
+
+export function convertToNetworkError(
+  error: AxiosError<CommonErrorResponse>
+): never {
+  if (error.isAxiosError && error.response == null) {
+    throw new HttpNetworkError(error);
+  } else {
+    throw error;
+  }
+}
+
+export function convertToForbiddenError(
+  error: AxiosError<CommonErrorResponse>
+): never {
+  if (
+    error.isAxiosError &&
+    error.response != null &&
+    (error.response.status == 401 || error.response.status == 403)
+  ) {
+    throw new HttpForbiddenError(error);
+  } else {
+    throw error;
+  }
+}
+
+export function convertToNotModified(
+  error: AxiosError<CommonErrorResponse>
+): NotModified {
+  if (
+    error.isAxiosError &&
+    error.response != null &&
+    error.response.status == 304
+  ) {
+    return new NotModified();
+  } else {
+    throw error;
+  }
+}
+
+export function convertToBlobWithEtag(res: AxiosResponse<Blob>): BlobWithEtag {
+  return {
+    data: res.data,
+    etag: (res.headers as Record<"etag", string>)["etag"],
+  };
+}
diff --git a/FrontEnd/src/app/http/timeline.ts b/FrontEnd/src/app/http/timeline.ts
new file mode 100644
index 00000000..eb7d5065
--- /dev/null
+++ b/FrontEnd/src/app/http/timeline.ts
@@ -0,0 +1,544 @@
+import axios, { AxiosError } from "axios";
+
+import { updateQueryString, applyQueryParameters } from "../utilities/url";
+
+import {
+  apiBaseUrl,
+  extractResponseData,
+  convertToNetworkError,
+  base64,
+  convertToIfStatusCodeIs,
+  convertToIfErrorCodeIs,
+  BlobWithEtag,
+  NotModified,
+  convertToNotModified,
+  convertToForbiddenError,
+  convertToBlobWithEtag,
+} from "./common";
+import { HttpUser } from "./user";
+
+export const kTimelineVisibilities = ["Public", "Register", "Private"] as const;
+
+export type TimelineVisibility = typeof kTimelineVisibilities[number];
+
+export interface HttpTimelineInfo {
+  uniqueId: string;
+  name: string;
+  description: string;
+  owner: HttpUser;
+  visibility: TimelineVisibility;
+  lastModified: Date;
+  members: HttpUser[];
+}
+
+export interface HttpTimelineListQuery {
+  visibility?: TimelineVisibility;
+  relate?: string;
+  relateType?: "own" | "join";
+}
+
+export interface HttpTimelinePostRequest {
+  name: string;
+}
+
+export interface HttpTimelinePostTextContent {
+  type: "text";
+  text: string;
+}
+
+export interface HttpTimelinePostImageContent {
+  type: "image";
+}
+
+export type HttpTimelinePostContent =
+  | HttpTimelinePostTextContent
+  | HttpTimelinePostImageContent;
+
+export interface HttpTimelinePostInfo {
+  id: number;
+  content: HttpTimelinePostContent;
+  time: Date;
+  lastUpdated: Date;
+  author: HttpUser;
+  deleted: false;
+}
+
+export interface HttpTimelineDeletedPostInfo {
+  id: number;
+  time: Date;
+  lastUpdated: Date;
+  author?: HttpUser;
+  deleted: true;
+}
+
+export type HttpTimelineGenericPostInfo =
+  | HttpTimelinePostInfo
+  | HttpTimelineDeletedPostInfo;
+
+export interface HttpTimelinePostPostRequestTextContent {
+  type: "text";
+  text: string;
+}
+
+export interface HttpTimelinePostPostRequestImageContent {
+  type: "image";
+  data: Blob;
+}
+
+export type HttpTimelinePostPostRequestContent =
+  | HttpTimelinePostPostRequestTextContent
+  | HttpTimelinePostPostRequestImageContent;
+
+export interface HttpTimelinePostPostRequest {
+  content: HttpTimelinePostPostRequestContent;
+  time?: Date;
+}
+
+export interface HttpTimelinePatchRequest {
+  visibility?: TimelineVisibility;
+  description?: string;
+}
+
+export class HttpTimelineNotExistError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export class HttpTimelinePostNotExistError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export class HttpTimelineNameConflictError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+//-------------------- begin: internal model --------------------
+
+interface RawTimelineInfo {
+  uniqueId: string;
+  name: string;
+  description: string;
+  owner: HttpUser;
+  visibility: TimelineVisibility;
+  lastModified: string;
+  members: HttpUser[];
+}
+
+interface RawTimelinePostTextContent {
+  type: "text";
+  text: string;
+}
+
+interface RawTimelinePostImageContent {
+  type: "image";
+  url: string;
+}
+
+type RawTimelinePostContent =
+  | RawTimelinePostTextContent
+  | RawTimelinePostImageContent;
+
+interface RawTimelinePostInfo {
+  id: number;
+  content: RawTimelinePostContent;
+  time: string;
+  lastUpdated: string;
+  author: HttpUser;
+  deleted: false;
+}
+
+interface RawTimelineDeletedPostInfo {
+  id: number;
+  time: string;
+  lastUpdated: string;
+  author: HttpUser;
+  deleted: true;
+}
+
+type RawTimelineGenericPostInfo =
+  | RawTimelinePostInfo
+  | RawTimelineDeletedPostInfo;
+
+interface RawTimelinePostPostRequestTextContent {
+  type: "text";
+  text: string;
+}
+
+interface RawTimelinePostPostRequestImageContent {
+  type: "image";
+  data: string;
+}
+
+type RawTimelinePostPostRequestContent =
+  | RawTimelinePostPostRequestTextContent
+  | RawTimelinePostPostRequestImageContent;
+
+interface RawTimelinePostPostRequest {
+  content: RawTimelinePostPostRequestContent;
+  time?: string;
+}
+
+//-------------------- end: internal model --------------------
+
+function processRawTimelineInfo(raw: RawTimelineInfo): HttpTimelineInfo {
+  return {
+    ...raw,
+    lastModified: new Date(raw.lastModified),
+  };
+}
+
+function processRawTimelinePostInfo(
+  raw: RawTimelinePostInfo
+): HttpTimelinePostInfo;
+function processRawTimelinePostInfo(
+  raw: RawTimelineGenericPostInfo
+): HttpTimelineGenericPostInfo;
+function processRawTimelinePostInfo(
+  raw: RawTimelineGenericPostInfo
+): HttpTimelineGenericPostInfo {
+  return {
+    ...raw,
+    time: new Date(raw.time),
+    lastUpdated: new Date(raw.lastUpdated),
+  };
+}
+
+export interface IHttpTimelineClient {
+  listTimeline(query: HttpTimelineListQuery): Promise<HttpTimelineInfo[]>;
+  getTimeline(timelineName: string): Promise<HttpTimelineInfo>;
+  getTimeline(
+    timelineName: string,
+    query: {
+      checkUniqueId?: string;
+    }
+  ): Promise<HttpTimelineInfo>;
+  getTimeline(
+    timelineName: string,
+    query: {
+      checkUniqueId?: string;
+      ifModifiedSince: Date;
+    }
+  ): Promise<HttpTimelineInfo | NotModified>;
+  postTimeline(
+    req: HttpTimelinePostRequest,
+    token: string
+  ): Promise<HttpTimelineInfo>;
+  patchTimeline(
+    timelineName: string,
+    req: HttpTimelinePatchRequest,
+    token: string
+  ): Promise<HttpTimelineInfo>;
+  deleteTimeline(timelineName: string, token: string): Promise<void>;
+  memberPut(
+    timelineName: string,
+    username: string,
+    token: string
+  ): Promise<void>;
+  memberDelete(
+    timelineName: string,
+    username: string,
+    token: string
+  ): Promise<void>;
+  listPost(
+    timelineName: string,
+    token?: string
+  ): Promise<HttpTimelinePostInfo[]>;
+  listPost(
+    timelineName: string,
+    token: string | undefined,
+    query: {
+      modifiedSince?: Date;
+      includeDeleted?: false;
+    }
+  ): Promise<HttpTimelinePostInfo[]>;
+  listPost(
+    timelineName: string,
+    token: string | undefined,
+    query: {
+      modifiedSince?: Date;
+      includeDeleted: true;
+    }
+  ): Promise<HttpTimelineGenericPostInfo[]>;
+  getPostData(
+    timelineName: string,
+    postId: number,
+    token?: string
+  ): Promise<BlobWithEtag>;
+  getPostData(
+    timelineName: string,
+    postId: number,
+    token: string | undefined,
+    etag: string
+  ): Promise<BlobWithEtag | NotModified>;
+  postPost(
+    timelineName: string,
+    req: HttpTimelinePostPostRequest,
+    token: string
+  ): Promise<HttpTimelinePostInfo>;
+  deletePost(
+    timelineName: string,
+    postId: number,
+    token: string
+  ): Promise<void>;
+}
+
+export class HttpTimelineClient implements IHttpTimelineClient {
+  listTimeline(query: HttpTimelineListQuery): Promise<HttpTimelineInfo[]> {
+    return axios
+      .get<RawTimelineInfo[]>(
+        applyQueryParameters(`${apiBaseUrl}/timelines`, query)
+      )
+      .then(extractResponseData)
+      .then((list) => list.map(processRawTimelineInfo))
+      .catch(convertToNetworkError);
+  }
+
+  getTimeline(timelineName: string): Promise<HttpTimelineInfo>;
+  getTimeline(
+    timelineName: string,
+    query: {
+      checkUniqueId?: string;
+    }
+  ): Promise<HttpTimelineInfo>;
+  getTimeline(
+    timelineName: string,
+    query: {
+      checkUniqueId?: string;
+      ifModifiedSince: Date;
+    }
+  ): Promise<HttpTimelineInfo | NotModified>;
+  getTimeline(
+    timelineName: string,
+    query?: {
+      checkUniqueId?: string;
+      ifModifiedSince?: Date;
+    }
+  ): Promise<HttpTimelineInfo | NotModified> {
+    return axios
+      .get<RawTimelineInfo>(
+        applyQueryParameters(`${apiBaseUrl}/timelines/${timelineName}`, query)
+      )
+      .then((res) => {
+        if (res.status === 304) {
+          return new NotModified();
+        } else {
+          return processRawTimelineInfo(res.data);
+        }
+      })
+      .catch(convertToIfStatusCodeIs(404, HttpTimelineNotExistError))
+      .catch(convertToNetworkError);
+  }
+
+  postTimeline(
+    req: HttpTimelinePostRequest,
+    token: string
+  ): Promise<HttpTimelineInfo> {
+    return axios
+      .post<RawTimelineInfo>(`${apiBaseUrl}/timelines?token=${token}`, req)
+      .then(extractResponseData)
+      .then(processRawTimelineInfo)
+      .catch(convertToIfErrorCodeIs(11040101, HttpTimelineNameConflictError))
+      .catch(convertToNetworkError);
+  }
+
+  patchTimeline(
+    timelineName: string,
+    req: HttpTimelinePatchRequest,
+    token: string
+  ): Promise<HttpTimelineInfo> {
+    return axios
+      .patch<RawTimelineInfo>(
+        `${apiBaseUrl}/timelines/${timelineName}?token=${token}`,
+        req
+      )
+      .then(extractResponseData)
+      .then(processRawTimelineInfo)
+      .catch(convertToNetworkError);
+  }
+
+  deleteTimeline(timelineName: string, token: string): Promise<void> {
+    return axios
+      .delete(`${apiBaseUrl}/timelines/${timelineName}?token=${token}`)
+      .catch(convertToNetworkError)
+      .then();
+  }
+
+  memberPut(
+    timelineName: string,
+    username: string,
+    token: string
+  ): Promise<void> {
+    return axios
+      .put(
+        `${apiBaseUrl}/timelines/${timelineName}/members/${username}?token=${token}`
+      )
+      .catch(convertToNetworkError)
+      .then();
+  }
+
+  memberDelete(
+    timelineName: string,
+    username: string,
+    token: string
+  ): Promise<void> {
+    return axios
+      .delete(
+        `${apiBaseUrl}/timelines/${timelineName}/members/${username}?token=${token}`
+      )
+      .catch(convertToNetworkError)
+      .then();
+  }
+
+  listPost(
+    timelineName: string,
+    token?: string
+  ): Promise<HttpTimelinePostInfo[]>;
+  listPost(
+    timelineName: string,
+    token: string | undefined,
+    query: {
+      modifiedSince?: Date;
+      includeDeleted?: false;
+    }
+  ): Promise<HttpTimelinePostInfo[]>;
+  listPost(
+    timelineName: string,
+    token: string | undefined,
+    query: {
+      modifiedSince?: Date;
+      includeDeleted: true;
+    }
+  ): Promise<HttpTimelineGenericPostInfo[]>;
+  listPost(
+    timelineName: string,
+    token?: string,
+    query?: {
+      modifiedSince?: Date;
+      includeDeleted?: boolean;
+    }
+  ): Promise<HttpTimelineGenericPostInfo[]> {
+    let url = `${apiBaseUrl}/timelines/${timelineName}/posts`;
+    url = updateQueryString("token", token, url);
+    if (query != null) {
+      if (query.modifiedSince != null) {
+        url = updateQueryString(
+          "modifiedSince",
+          query.modifiedSince.toISOString(),
+          url
+        );
+      }
+      if (query.includeDeleted != null) {
+        url = updateQueryString(
+          "includeDeleted",
+          query.includeDeleted ? "true" : "false",
+          url
+        );
+      }
+    }
+
+    return axios
+      .get<RawTimelineGenericPostInfo[]>(url)
+      .then(extractResponseData)
+      .catch(convertToIfStatusCodeIs(404, HttpTimelineNotExistError))
+      .catch(convertToForbiddenError)
+      .catch(convertToNetworkError)
+      .then((rawPosts) =>
+        rawPosts.map((raw) => processRawTimelinePostInfo(raw))
+      );
+  }
+
+  getPostData(
+    timelineName: string,
+    postId: number,
+    token: string
+  ): Promise<BlobWithEtag>;
+  getPostData(
+    timelineName: string,
+    postId: number,
+    token?: string,
+    etag?: string
+  ): Promise<BlobWithEtag | NotModified> {
+    const headers =
+      etag != null
+        ? {
+            "If-None-Match": etag,
+          }
+        : undefined;
+
+    let url = `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}/data`;
+    url = updateQueryString("token", token, url);
+
+    return axios
+      .get(url, {
+        responseType: "blob",
+        headers,
+      })
+      .then(convertToBlobWithEtag)
+      .catch(convertToNotModified)
+      .catch(convertToIfStatusCodeIs(404, HttpTimelinePostNotExistError))
+      .catch(convertToNetworkError);
+  }
+
+  async postPost(
+    timelineName: string,
+    req: HttpTimelinePostPostRequest,
+    token: string
+  ): Promise<HttpTimelinePostInfo> {
+    let content: RawTimelinePostPostRequestContent;
+    if (req.content.type === "image") {
+      const base64Data = await base64(req.content.data);
+      content = {
+        ...req.content,
+        data: base64Data,
+      } as RawTimelinePostPostRequestImageContent;
+    } else {
+      content = req.content;
+    }
+    const rawReq: RawTimelinePostPostRequest = {
+      content,
+    };
+    if (req.time != null) {
+      rawReq.time = req.time.toISOString();
+    }
+    return await axios
+      .post<RawTimelinePostInfo>(
+        `${apiBaseUrl}/timelines/${timelineName}/posts?token=${token}`,
+        rawReq
+      )
+      .then(extractResponseData)
+      .catch(convertToNetworkError)
+      .then((rawPost) => processRawTimelinePostInfo(rawPost));
+  }
+
+  deletePost(
+    timelineName: string,
+    postId: number,
+    token: string
+  ): Promise<void> {
+    return axios
+      .delete(
+        `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}?token=${token}`
+      )
+      .catch(convertToNetworkError)
+      .then();
+  }
+}
+
+let client: IHttpTimelineClient = new HttpTimelineClient();
+
+export function getHttpTimelineClient(): IHttpTimelineClient {
+  return client;
+}
+
+export function setHttpTimelineClient(
+  newClient: IHttpTimelineClient
+): IHttpTimelineClient {
+  const old = client;
+  client = newClient;
+  return old;
+}
diff --git a/FrontEnd/src/app/http/token.ts b/FrontEnd/src/app/http/token.ts
new file mode 100644
index 00000000..ae0cf3f6
--- /dev/null
+++ b/FrontEnd/src/app/http/token.ts
@@ -0,0 +1,72 @@
+import axios, { AxiosError } from "axios";
+
+import {
+  apiBaseUrl,
+  convertToNetworkError,
+  convertToIfErrorCodeIs,
+  extractResponseData,
+} from "./common";
+import { HttpUser } from "./user";
+
+export interface HttpCreateTokenRequest {
+  username: string;
+  password: string;
+  expire: number;
+}
+
+export interface HttpCreateTokenResponse {
+  token: string;
+  user: HttpUser;
+}
+
+export interface HttpVerifyTokenRequest {
+  token: string;
+}
+
+export interface HttpVerifyTokenResponse {
+  user: HttpUser;
+}
+
+export class HttpCreateTokenBadCredentialError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export interface IHttpTokenClient {
+  create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse>;
+  verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse>;
+}
+
+export class HttpTokenClient implements IHttpTokenClient {
+  create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse> {
+    return axios
+      .post<HttpCreateTokenResponse>(`${apiBaseUrl}/token/create`, req)
+      .then(extractResponseData)
+      .catch(
+        convertToIfErrorCodeIs(11010101, HttpCreateTokenBadCredentialError)
+      )
+      .catch(convertToNetworkError);
+  }
+
+  verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse> {
+    return axios
+      .post<HttpVerifyTokenResponse>(`${apiBaseUrl}/token/verify`, req)
+      .then(extractResponseData)
+      .catch(convertToNetworkError);
+  }
+}
+
+let client: IHttpTokenClient = new HttpTokenClient();
+
+export function getHttpTokenClient(): IHttpTokenClient {
+  return client;
+}
+
+export function setHttpTokenClient(
+  newClient: IHttpTokenClient
+): IHttpTokenClient {
+  const old = client;
+  client = newClient;
+  return old;
+}
diff --git a/FrontEnd/src/app/http/user.ts b/FrontEnd/src/app/http/user.ts
new file mode 100644
index 00000000..a0a02cce
--- /dev/null
+++ b/FrontEnd/src/app/http/user.ts
@@ -0,0 +1,134 @@
+import axios, { AxiosError } from "axios";
+
+import {
+  apiBaseUrl,
+  convertToNetworkError,
+  extractResponseData,
+  convertToIfStatusCodeIs,
+  convertToIfErrorCodeIs,
+  NotModified,
+  BlobWithEtag,
+  convertToBlobWithEtag,
+  convertToNotModified,
+} from "./common";
+
+export interface HttpUser {
+  uniqueId: string;
+  username: string;
+  administrator: boolean;
+  nickname: string;
+}
+
+export interface HttpUserPatchRequest {
+  nickname?: string;
+}
+
+export interface HttpChangePasswordRequest {
+  oldPassword: string;
+  newPassword: string;
+}
+
+export class HttpUserNotExistError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export class HttpChangePasswordBadCredentialError extends Error {
+  constructor(public innerError?: AxiosError) {
+    super();
+  }
+}
+
+export interface IHttpUserClient {
+  get(username: string): Promise<HttpUser>;
+  patch(
+    username: string,
+    req: HttpUserPatchRequest,
+    token: string
+  ): Promise<HttpUser>;
+  getAvatar(username: string): Promise<BlobWithEtag>;
+  getAvatar(
+    username: string,
+    etag: string
+  ): Promise<BlobWithEtag | NotModified>;
+  putAvatar(username: string, data: Blob, token: string): Promise<void>;
+  changePassword(req: HttpChangePasswordRequest, token: string): Promise<void>;
+}
+
+export class HttpUserClient implements IHttpUserClient {
+  get(username: string): Promise<HttpUser> {
+    return axios
+      .get<HttpUser>(`${apiBaseUrl}/users/${username}`)
+      .then(extractResponseData)
+      .catch(convertToIfStatusCodeIs(404, HttpUserNotExistError))
+      .catch(convertToNetworkError);
+  }
+
+  patch(
+    username: string,
+    req: HttpUserPatchRequest,
+    token: string
+  ): Promise<HttpUser> {
+    return axios
+      .patch<HttpUser>(`${apiBaseUrl}/users/${username}?token=${token}`, req)
+      .then(extractResponseData)
+      .catch(convertToNetworkError);
+  }
+
+  getAvatar(username: string): Promise<BlobWithEtag>;
+  getAvatar(
+    username: string,
+    etag?: string
+  ): Promise<BlobWithEtag | NotModified> {
+    const headers =
+      etag != null
+        ? {
+            "If-None-Match": etag,
+          }
+        : undefined;
+
+    return axios
+      .get(`${apiBaseUrl}/users/${username}/avatar`, {
+        responseType: "blob",
+        headers,
+      })
+      .then(convertToBlobWithEtag)
+      .catch(convertToNotModified)
+      .catch(convertToIfStatusCodeIs(404, HttpUserNotExistError))
+      .catch(convertToNetworkError);
+  }
+
+  putAvatar(username: string, data: Blob, token: string): Promise<void> {
+    return axios
+      .put(`${apiBaseUrl}/users/${username}/avatar?token=${token}`, data, {
+        headers: {
+          "Content-Type": data.type,
+        },
+      })
+      .catch(convertToNetworkError)
+      .then();
+  }
+
+  changePassword(req: HttpChangePasswordRequest, token: string): Promise<void> {
+    return axios
+      .post(`${apiBaseUrl}/userop/changepassword?token=${token}`, req)
+      .catch(
+        convertToIfErrorCodeIs(11020201, HttpChangePasswordBadCredentialError)
+      )
+      .catch(convertToNetworkError)
+      .then();
+  }
+}
+
+let client: IHttpUserClient = new HttpUserClient();
+
+export function getHttpUserClient(): IHttpUserClient {
+  return client;
+}
+
+export function setHttpUserClient(newClient: IHttpUserClient): IHttpUserClient {
+  const old = client;
+  client = newClient;
+  return old;
+}
diff --git a/FrontEnd/src/app/i18n.ts b/FrontEnd/src/app/i18n.ts
new file mode 100644
index 00000000..cdced7bf
--- /dev/null
+++ b/FrontEnd/src/app/i18n.ts
@@ -0,0 +1,79 @@
+import i18n, { BackendModule, ResourceKey } from "i18next";
+import LanguageDetector from "i18next-browser-languagedetector";
+import { initReactI18next } from "react-i18next";
+
+const backend: BackendModule = {
+  type: "backend",
+  async read(language, namespace, callback) {
+    function error(message: string): void {
+      callback(new Error(message), false);
+    }
+
+    function success(result: ResourceKey): void {
+      callback(null, result);
+    }
+
+    if (namespace !== "translation") {
+      error("Namespace must be 'translation'.");
+    }
+
+    if (language === "en") {
+      const res = (
+        await import(
+          /* webpackChunkName: "locales-en" */ "./locales/en/translation"
+        )
+      ).default;
+      success(res);
+    } else if (language === "zh-cn" || language === "zh") {
+      const res = (
+        await import(
+          /* webpackChunkName: "locales-zh" */ "./locales/zh/translation"
+        )
+      ).default;
+      success(res);
+    } else {
+      error(`Language ${language} is not supported.`);
+    }
+  },
+  init() {}, // eslint-disable-line @typescript-eslint/no-empty-function
+  create() {}, // eslint-disable-line @typescript-eslint/no-empty-function
+};
+
+export const i18nPromise = i18n
+  .use(LanguageDetector)
+  .use(backend)
+  .use(initReactI18next) // bind react-i18next to the instance
+  .init({
+    fallbackLng: false,
+    lowerCaseLng: true,
+
+    debug: process.env.NODE_ENV === "development",
+
+    interpolation: {
+      escapeValue: false, // not needed for react!!
+    },
+
+    // react i18next special options (optional)
+    // override if needed - omit if ok with defaults
+    /*
+    react: {
+      bindI18n: 'languageChanged',
+      bindI18nStore: '',
+      transEmptyNodeValue: '',
+      transSupportBasicHtmlNodes: true,
+      transKeepBasicHtmlNodesFor: ['br', 'strong', 'i'],
+      useSuspense: true,
+    }
+    */
+  });
+
+if (module.hot) {
+  module.hot.accept(
+    ["./locales/en/translation", "./locales/zh/translation"],
+    () => {
+      void i18n.reloadResources();
+    }
+  );
+}
+
+export default i18n;
diff --git a/FrontEnd/src/app/index.ejs b/FrontEnd/src/app/index.ejs
new file mode 100644
index 00000000..c2ff4182
--- /dev/null
+++ b/FrontEnd/src/app/index.ejs
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
+
+    <link rel="icon" href="/favicon.ico" />
+    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
+    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
+    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
+    <link rel="manifest" href="/site.webmanifest" />
+    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
+    <meta name="msapplication-TileColor" content="#2d89ef" />
+    <meta name="theme-color" content="#ffffff" />
+
+    <title><%= htmlWebpackPlugin.options.title %></title>
+  </head>
+  <body>
+    <noscript>
+      <strong>
+        We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
+        properly without JavaScript enabled. Please enable it to continue.
+      </strong>
+    </noscript>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+</html>
diff --git a/FrontEnd/src/app/index.sass b/FrontEnd/src/app/index.sass
new file mode 100644
index 00000000..8e87e4ac
--- /dev/null
+++ b/FrontEnd/src/app/index.sass
@@ -0,0 +1,66 @@
+@import '~bootstrap/scss/bootstrap'
+
+@import './views/common/common'
+@import './views/common/alert/alert'
+@import './views/home/home'
+@import './views/about/about'
+@import './views/login/login'
+@import './views/timeline-common/timeline-common'
+@import './views/timeline/timeline'
+@import './views/user/user'
+
+body
+  margin: 0
+
+small
+  line-height: 1.2
+
+.flex-fix-length
+  flex-grow: 0
+  flex-shrink: 0
+
+.position-lt
+  left: 0
+  top: 0
+
+.avatar
+  width: 60px
+  &.large
+    width: 100px
+  &.small
+    width: 40px
+
+.mt-appbar
+  margin-top: 56px
+
+.icon-button
+  font-size: 1.4em
+  &.large
+    font-size: 1.6em
+
+.cursor-pointer
+  cursor: pointer
+
+textarea
+  resize: none
+
+.white-space-no-wrap
+  white-space: nowrap
+
+.cru-card
+  @extend .shadow
+  @extend .border
+  @extend .border-primary
+  @extend .rounded
+  @extend .bg-light
+
+.full-viewport-center-child
+  position: fixed
+  width: 100vw
+  height: 100vh
+  display: flex
+  justify-content: center
+  align-items: center
+
+.text-orange
+  color: $orange
diff --git a/FrontEnd/src/app/index.tsx b/FrontEnd/src/app/index.tsx
new file mode 100644
index 00000000..00a75a4a
--- /dev/null
+++ b/FrontEnd/src/app/index.tsx
@@ -0,0 +1,15 @@
+import "regenerator-runtime";
+import "core-js/modules/es.promise";
+import "core-js/modules/es.array.iterator";
+import "pepjs";
+
+import React from "react";
+import ReactDOM from "react-dom";
+
+import "./index.sass";
+
+import "./i18n";
+
+import App from "./App";
+
+ReactDOM.render(<App />, document.getElementById("app"));
diff --git a/FrontEnd/src/app/locales/en/translation.ts b/FrontEnd/src/app/locales/en/translation.ts
new file mode 100644
index 00000000..c7f33d1e
--- /dev/null
+++ b/FrontEnd/src/app/locales/en/translation.ts
@@ -0,0 +1,202 @@
+import TranslationResource from "../scheme";
+
+const translation: TranslationResource = {
+  welcome: "Welcome!",
+  search: "Search",
+  loadFailReload: "Load failed, click <1>here</1> to reload.",
+  serviceWorker: {
+    availableOffline:
+      "Timeline is now cached in your computer and you can use it offline. 🎉🎉🎉",
+    upgradePrompt: "App is getting a new version!",
+    upgradeNow: "Update Now",
+    upgradeSuccess:
+      "Congratulations! App update succeeded! Still you can use it offline. 🎉🎉🎉",
+    externalActivatedPrompt:
+      "A new version of app is activated. Please refresh the page. Or it may be broken.",
+    reloadNow: "Refresh Now",
+  },
+  nav: {
+    settings: "Settings",
+    login: "Login",
+    about: "About",
+  },
+  chooseImage: "Choose a image",
+  loadImageError: "Failed to load image.",
+  home: {
+    go: "Go!",
+    allTimeline: "All Timelines",
+    joinTimeline: "Joined Timelines",
+    ownTimeline: "Owned Timelines",
+    offlinePrompt:
+      "Oh oh, it seems you are offline. Here list some timelines cached locally. You can view them or click <1>here</1> to refresh.",
+    createButton: "Create Timeline",
+    createDialog: {
+      title: "Create Timeline!",
+      name: "Name",
+      nameFormat:
+        "Name must consist of only letter including non-English letter, digit, hyphen(-) and underline(_) and be no longer than 26.",
+      badFormat: "Bad format.",
+      noEmpty: "Empty is not allowed.",
+      tooLong: "Too long.",
+    },
+  },
+  operationDialog: {
+    retry: "Retry",
+    nextStep: "Next",
+    previousStep: "Previous",
+    confirm: "Confirm",
+    cancel: "Cancel",
+    ok: "OK!",
+    processing: "Processing...",
+    success: "Success!",
+    error: "An error occured.",
+  },
+  timeline: {
+    messageCantSee: "Sorry, you are not allowed to see this timeline.😅",
+    userNotExist: "The user does not exist!",
+    timelineNotExist: "The timeline does not exist!",
+    manage: "Manage",
+    memberButton: "Member",
+    send: "Send",
+    deletePostFailed: "Failed to delete post.",
+    sendPostFailed: "Failed to send post.",
+    visibility: {
+      public: "public to everyone",
+      register: "only registed people can see",
+      private: "only members can see",
+    },
+    visibilityTooltip: {
+      public:
+        "Everyone including those without accounts can see content of the timeline.",
+      register:
+        "Only those who have an account and logined can see content of the timeline.",
+      private: "Only members of this timeline can see content of the timeline.",
+    },
+    dialogChangeProperty: {
+      title: "Change Timeline Properties",
+      visibility: "Visibility",
+      description: "Description",
+    },
+    member: {
+      alreadyMember: "The user is already a member.",
+      add: "Add",
+      remove: "Remove",
+    },
+    manageItem: {
+      nickname: "Nickname",
+      avatar: "Avatar",
+      property: "Timeline Property",
+      member: "Timeline Member",
+      delete: "Delete Timeline",
+    },
+    deleteDialog: {
+      title: "Delete Timeline",
+      inputPrompt:
+        "This is a dangerous action. If you are sure to delete timeline<1>{{name}}</1>, please input its name below and click confirm button.",
+      notMatch: "Name does not match.",
+    },
+    postSyncState: {
+      syncing: "Syncing",
+      synced: "Synced",
+      offline: "Offline",
+    },
+    post: {
+      deleteDialog: {
+        title: "Confirm Delete",
+        prompt:
+          "Are you sure to delete the post? This operation is not recoverable.",
+      },
+    },
+  },
+  user: {
+    username: "username",
+    password: "password",
+    login: "login",
+    rememberMe: "Remember Me",
+    welcomeBack: "Welcome back!",
+    verifyTokenFailed: "User login info is expired. Please login again!",
+    verifyTokenFailedNetwork:
+      "Verifying user login info failed. Please check your network and refresh page!",
+  },
+  login: {
+    emptyUsername: "Username can't be empty.",
+    emptyPassword: "Password can't be empty.",
+    badCredential: "Username or password is invalid.",
+    alreadyLogin: "Already login! Redirect to home page in 3s!",
+  },
+  userPage: {
+    dialogChangeNickname: {
+      title: "Change Nickname",
+      inputLabel: "New nickname",
+    },
+    dialogChangeAvatar: {
+      title: "Change Avatar",
+      previewImgAlt: "preview",
+      prompt: {
+        select: "Please select a picture.",
+        crop: "Please crop the picture.",
+        processingCrop: "Cropping picture...",
+        uploading: "Uploading...",
+        preview: "Please preview avatar",
+      },
+      upload: "upload",
+    },
+  },
+  settings: {
+    subheaders: {
+      account: "Account",
+      customization: "Customization",
+    },
+    languagePrimary: "Choose display language.",
+    languageSecondary:
+      "You language preference will be saved locally. Next time you visit this page, last language option will be used.",
+    changePassword: "Change account's password.",
+    logout: "Log out this account.",
+    gotoSelf:
+      "Click here to go to timeline of myself to change nickname and avatar.",
+    dialogChangePassword: {
+      title: "Change Password",
+      prompt:
+        "You are changing your password. You need to input the correct old password. After change, you need to login again and all old login will be invalid.",
+      inputOldPassword: "Old password",
+      inputNewPassword: "New password",
+      inputRetypeNewPassword: "Retype new password",
+      errorEmptyOldPassword: "Old password can't be empty.",
+      errorEmptyNewPassword: "New password can't be empty.",
+      errorRetypeNotMatch: "Password retyped does not match.",
+    },
+    dialogConfirmLogout: {
+      title: "Confirm Logout",
+      prompt:
+        "Are you sure to log out? All cached data in the browser will be deleted.",
+    },
+  },
+  about: {
+    author: {
+      title: "Site Developer",
+      fullname: "Fullname: ",
+      nickname: "Nickname: ",
+      introduction: "Introduction: ",
+      introductionContent: "A programmer coding based on coincidence",
+      links: "Links: ",
+    },
+    site: {
+      title: "Site Information",
+      content:
+        "The name of this site is <1>Timeline</1>, which is a Web App with <3>timeline</3> as its core concept. Its frontend and backend are both developed by <5>me</5>, and open source on GitHub. It is relatively easy to deploy it on your own server, which is also one of my goals. Welcome to comment anything in GitHub repository.",
+      repo: "GitHub Repo",
+    },
+    credits: {
+      title: "Credits",
+      content:
+        "Timeline is works standing on shoulders of gaints. Special appreciation for many open source projects listed below or not. Related licenses could be found in GitHub repository.",
+      frontend: "Frontend: ",
+      backend: "Backend: ",
+    },
+  },
+  admin: {
+    title: "admin",
+  },
+};
+
+export default translation;
diff --git a/FrontEnd/src/app/locales/scheme.ts b/FrontEnd/src/app/locales/scheme.ts
new file mode 100644
index 00000000..9e3534ac
--- /dev/null
+++ b/FrontEnd/src/app/locales/scheme.ts
@@ -0,0 +1,182 @@
+export default interface TranslationResource {
+  welcome: string;
+  search: string;
+  chooseImage: string;
+  loadImageError: string;
+  loadFailReload: string;
+  serviceWorker: {
+    availableOffline: string;
+    upgradePrompt: string;
+    upgradeNow: string;
+    upgradeSuccess: string;
+    externalActivatedPrompt: string;
+    reloadNow: string;
+  };
+  nav: {
+    settings: string;
+    login: string;
+    about: string;
+  };
+  home: {
+    go: string;
+    allTimeline: string;
+    joinTimeline: string;
+    ownTimeline: string;
+    offlinePrompt: string;
+    createButton: string;
+    createDialog: {
+      title: string;
+      name: string;
+      nameFormat: string;
+      badFormat: string;
+      noEmpty: string;
+      tooLong: string;
+    };
+  };
+  operationDialog: {
+    retry: string;
+    nextStep: string;
+    previousStep: string;
+    confirm: string;
+    cancel: string;
+    ok: string;
+    processing: string;
+    success: string;
+    error: string;
+  };
+  timeline: {
+    messageCantSee: string;
+    userNotExist: string;
+    timelineNotExist: string;
+    manage: string;
+    memberButton: string;
+    send: string;
+    deletePostFailed: string;
+    sendPostFailed: string;
+    visibility: {
+      public: string;
+      register: string;
+      private: string;
+    };
+    visibilityTooltip: {
+      public: string;
+      register: string;
+      private: string;
+    };
+    dialogChangeProperty: {
+      title: string;
+      visibility: string;
+      description: string;
+    };
+    member: {
+      alreadyMember: string;
+      add: string;
+      remove: string;
+    };
+    manageItem: {
+      nickname: string;
+      avatar: string;
+      property: string;
+      member: string;
+      delete: string;
+    };
+    deleteDialog: {
+      title: string;
+      inputPrompt: string;
+      notMatch: string;
+    };
+    postSyncState: {
+      syncing: string;
+      synced: string;
+      offline: string;
+    };
+    post: {
+      deleteDialog: {
+        title: string;
+        prompt: string;
+      };
+    };
+  };
+  user: {
+    username: string;
+    password: string;
+    login: string;
+    rememberMe: string;
+    welcomeBack: string;
+    verifyTokenFailed: string;
+    verifyTokenFailedNetwork: string;
+  };
+  login: {
+    emptyUsername: string;
+    emptyPassword: string;
+    badCredential: string;
+    alreadyLogin: string;
+  };
+  userPage: {
+    dialogChangeNickname: {
+      title: string;
+      inputLabel: string;
+    };
+    dialogChangeAvatar: {
+      title: string;
+      previewImgAlt: string;
+      prompt: {
+        select: string;
+        crop: string;
+        processingCrop: string;
+        preview: string;
+        uploading: string;
+      };
+      upload: string;
+    };
+  };
+  settings: {
+    subheaders: {
+      account: string;
+      customization: string;
+    };
+    languagePrimary: string;
+    languageSecondary: string;
+    changePassword: string;
+    logout: string;
+    gotoSelf: string;
+    dialogChangePassword: {
+      title: string;
+      prompt: string;
+      inputOldPassword: string;
+      inputNewPassword: string;
+      inputRetypeNewPassword: string;
+      errorEmptyOldPassword: string;
+      errorEmptyNewPassword: string;
+      errorRetypeNotMatch: string;
+    };
+    dialogConfirmLogout: {
+      title: string;
+      prompt: string;
+    };
+  };
+  about: {
+    author: {
+      title: string;
+      fullname: string;
+      nickname: string;
+      introduction: string;
+      introductionContent: string;
+      links: string;
+    };
+    site: {
+      title: string;
+      content: string;
+      repo: string;
+    };
+    credits: {
+      title: string;
+      content: string;
+      frontend: string;
+      backend: string;
+    };
+  };
+  admin: {
+    title: string;
+  };
+}
diff --git a/FrontEnd/src/app/locales/zh/translation.ts b/FrontEnd/src/app/locales/zh/translation.ts
new file mode 100644
index 00000000..df316366
--- /dev/null
+++ b/FrontEnd/src/app/locales/zh/translation.ts
@@ -0,0 +1,195 @@
+import TranslationResource from "../scheme";
+
+const translation: TranslationResource = {
+  welcome: "欢迎！",
+  search: "搜索",
+  loadFailReload: "加载失败，<1>点击</1>重试。",
+  serviceWorker: {
+    availableOffline: "Timeline 已经缓存在本地，你可以离线使用它。🎉🎉🎉",
+    upgradePrompt: "App 有新版本！",
+    upgradeNow: "现在升级",
+    upgradeSuccess: "App 升级成功，当然，你仍可以离线使用它。 🎉🎉🎉",
+    externalActivatedPrompt:
+      "一个新的 App 版本已经激活，请刷新页面使用，否则页面可能会出现故障。",
+    reloadNow: "立刻刷新",
+  },
+  nav: {
+    settings: "设置",
+    login: "登陆",
+    about: "关于",
+  },
+  chooseImage: "选择一个图片",
+  loadImageError: "加载图片失败",
+  home: {
+    go: "冲！",
+    allTimeline: "所有的时间线",
+    joinTimeline: "加入的时间线",
+    ownTimeline: "拥有的时间线",
+    offlinePrompt:
+      "你好像处于离线状态。以下是一些缓存在本地的时间线。你可以查看它们或者<1>点击</1>重新获取在线信息。",
+    createButton: "创建时间线",
+    createDialog: {
+      title: "创建时间线！",
+      name: "名字",
+      nameFormat:
+        "名字只能由字母、汉字、数字、下划线（_）和连字符（-）构成，且长度不能超过26.",
+      badFormat: "格式错误",
+      noEmpty: "不能为空",
+      tooLong: "太长了",
+    },
+  },
+  operationDialog: {
+    retry: "重试",
+    nextStep: "下一步",
+    previousStep: "上一步",
+    confirm: "确定",
+    cancel: "取消",
+    ok: "好的！",
+    processing: "处理中...",
+    success: "成功！",
+    error: "出错啦！",
+  },
+  timeline: {
+    messageCantSee: "不好意思，你没有权限查看这个时间线。😅",
+    userNotExist: "该用户不存在！",
+    timelineNotExist: "该时间线不存在！",
+    manage: "管理",
+    memberButton: "成员",
+    send: "发送",
+    deletePostFailed: "删除消息失败。",
+    sendPostFailed: "发送消息失败。",
+    visibility: {
+      public: "对所有人公开",
+      register: "仅注册可见",
+      private: "仅成员可见",
+    },
+    visibilityTooltip: {
+      public: "所有人都可以看到这个时间线的内容，包括没有注册的人。",
+      register: "只有拥有本网站的账号且登陆了的人才能看到这个时间线的内容。",
+      private: "只有这个时间线的成员可以看到这个时间线的内容。",
+    },
+    dialogChangeProperty: {
+      title: "修改时间线属性",
+      visibility: "可见性",
+      description: "描述",
+    },
+    member: {
+      alreadyMember: "该用户已经是一个成员。",
+      add: "添加",
+      remove: "移除",
+    },
+    manageItem: {
+      nickname: "昵称",
+      avatar: "头像",
+      property: "时间线属性",
+      member: "时间线成员",
+      delete: "删除时间线",
+    },
+    deleteDialog: {
+      title: "删除时间线",
+      inputPrompt:
+        "这是一个危险的操作。如果您确认要删除时间线<1>{{name}}</1>，请在下面输入它的名字并点击确认。",
+      notMatch: "名字不匹配",
+    },
+    postSyncState: {
+      syncing: "同步中",
+      synced: "同步成功",
+      offline: "离线",
+    },
+    post: {
+      deleteDialog: {
+        title: "确认删除",
+        prompt: "确定删除这个消息？这个操作不可撤销。",
+      },
+    },
+  },
+  user: {
+    username: "用户名",
+    password: "密码",
+    login: "登录",
+    rememberMe: "记住我",
+    welcomeBack: "欢迎回来！",
+    verifyTokenFailed: "用户登录信息已过期，请重新登陆！",
+    verifyTokenFailedNetwork:
+      "验证用户登录信息失败，请检查网络连接并刷新页面！",
+  },
+  login: {
+    emptyUsername: "用户名不能为空。",
+    emptyPassword: "密码不能为空。",
+    badCredential: "用户名或密码错误。",
+    alreadyLogin: "已经登陆，三秒后导航到首页！",
+  },
+  userPage: {
+    dialogChangeNickname: {
+      title: "更改昵称",
+      inputLabel: "新昵称",
+    },
+    dialogChangeAvatar: {
+      title: "修改头像",
+      previewImgAlt: "预览",
+      prompt: {
+        select: "请选择一个图片",
+        crop: "请裁剪图片",
+        processingCrop: "正在裁剪图片",
+        uploading: "正在上传",
+        preview: "请预览图片",
+      },
+      upload: "上传",
+    },
+  },
+  settings: {
+    subheaders: {
+      account: "账户",
+      customization: "个性化",
+    },
+    languagePrimary: "选择显示的语言。",
+    languageSecondary:
+      "您的语言偏好将会存储在本地，下次浏览时将自动使用上次保存的语言选项。",
+    changePassword: "更改账号的密码。",
+    logout: "注销此账号。",
+    gotoSelf: "点击前往个人时间线修改昵称和头像！",
+    dialogChangePassword: {
+      title: "修改密码",
+      prompt:
+        "您正在修改密码，您需要输入正确的旧密码。成功修改后您需要重新登陆，而且以前所有的登录都会失效。",
+      inputOldPassword: "旧密码",
+      inputNewPassword: "新密码",
+      inputRetypeNewPassword: "再次输入新密码",
+      errorEmptyOldPassword: "旧密码不能为空。",
+      errorEmptyNewPassword: "新密码不能为空",
+      errorRetypeNotMatch: "两次输入的密码不一致",
+    },
+    dialogConfirmLogout: {
+      title: "确定注销",
+      prompt: "您确定注销此账号？这将删除所有已经缓存在浏览器的数据。",
+    },
+  },
+  about: {
+    author: {
+      title: "网站作者",
+      fullname: "姓名：",
+      nickname: "昵称：",
+      introduction: "简介：",
+      introductionContent: "一个基于巧合编程的代码爱好者。",
+      links: "链接：",
+    },
+    site: {
+      title: "网站信息",
+      content:
+        "这个网站的名字叫 <1>Timeline</1>，是一个以<3>时间线</3>为核心概念的 Web App . 它的前端和后端都是由<5>我</5>开发，并且在 GitHub 上开源。大家可以相对轻松的把它们部署在自己的服务器上，这也是我的目标之一。欢迎大家前往 GitHub 仓库提出任何意见。",
+      repo: "GitHub 仓库",
+    },
+    credits: {
+      title: "鸣谢",
+      content:
+        "Timeline 是站在巨人肩膀上的作品，感谢以下列出的和其他未列出的许多开源项目，相关 License 请在 GitHub 仓库中查看。",
+      frontend: "前端：",
+      backend: "后端：",
+    },
+  },
+  admin: {
+    title: "管理",
+  },
+};
+
+export default translation;
diff --git a/FrontEnd/src/app/service-worker.tsx b/FrontEnd/src/app/service-worker.tsx
new file mode 100644
index 00000000..3be54bc1
--- /dev/null
+++ b/FrontEnd/src/app/service-worker.tsx
@@ -0,0 +1,113 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { Button } from "react-bootstrap";
+
+import { pushAlert } from "./services/alert";
+
+if ("serviceWorker" in navigator) {
+  let isThisTriggerUpgrade = false;
+
+  const upgradeSuccessLocalStorageKey = "TIMELINE_UPGRADE_SUCCESS";
+
+  if (window.localStorage.getItem(upgradeSuccessLocalStorageKey)) {
+    pushAlert({
+      message: {
+        type: "i18n",
+        key: "serviceWorker.upgradeSuccess",
+      },
+      type: "success",
+    });
+    window.localStorage.removeItem(upgradeSuccessLocalStorageKey);
+  }
+
+  void import("workbox-window").then(({ Workbox, messageSW }) => {
+    const wb = new Workbox("/sw.js");
+    let registration: ServiceWorkerRegistration | undefined;
+
+    // externalactivated is not usable but I still use its name.
+    wb.addEventListener("controlling", () => {
+      const upgradeReload = (): void => {
+        window.localStorage.setItem(upgradeSuccessLocalStorageKey, "true");
+        window.location.reload();
+      };
+
+      if (isThisTriggerUpgrade) {
+        upgradeReload();
+      } else {
+        const Message: React.FC = () => {
+          const { t } = useTranslation();
+          return (
+            <>
+              {t("serviceWorker.externalActivatedPrompt")}
+              <Button
+                variant="outline-success"
+                size="sm"
+                onClick={upgradeReload}
+              >
+                {t("serviceWorker.reloadNow")}
+              </Button>
+            </>
+          );
+        };
+
+        pushAlert({
+          message: Message,
+          dismissTime: "never",
+          type: "warning",
+        });
+      }
+    });
+
+    wb.addEventListener("activated", (event) => {
+      if (!event.isUpdate) {
+        pushAlert({
+          message: {
+            type: "i18n",
+            key: "serviceWorker.availableOffline",
+          },
+          type: "success",
+        });
+      }
+    });
+
+    const showSkipWaitingPrompt = (): void => {
+      const upgrade = (): void => {
+        isThisTriggerUpgrade = true;
+        if (registration && registration.waiting) {
+          // Send a message to the waiting service worker,
+          // instructing it to activate.
+          // Note: for this to work, you have to add a message
+          // listener in your service worker. See below.
+          void messageSW(registration.waiting, { type: "SKIP_WAITING" });
+        }
+      };
+
+      const UpgradeMessage: React.FC = () => {
+        const { t } = useTranslation();
+        return (
+          <>
+            {t("serviceWorker.upgradePrompt")}
+            <Button variant="outline-success" size="sm" onClick={upgrade}>
+              {t("serviceWorker.upgradeNow")}
+            </Button>
+          </>
+        );
+      };
+
+      pushAlert({
+        message: UpgradeMessage,
+        dismissTime: "never",
+        type: "success",
+      });
+    };
+
+    // Add an event listener to detect when the registered
+    // service worker has installed but is waiting to activate.
+    wb.addEventListener("waiting", showSkipWaitingPrompt);
+    wb.addEventListener("externalwaiting", showSkipWaitingPrompt);
+
+    void wb.register().then((reg) => {
+      registration = reg;
+    });
+  });
+}
diff --git a/FrontEnd/src/app/services/DataHub.ts b/FrontEnd/src/app/services/DataHub.ts
new file mode 100644
index 00000000..93a9b41f
--- /dev/null
+++ b/FrontEnd/src/app/services/DataHub.ts
@@ -0,0 +1,225 @@
+import { pull } from "lodash";
+import { Observable, BehaviorSubject, combineLatest } from "rxjs";
+import { map } from "rxjs/operators";
+
+export type Subscriber<TData> = (data: TData) => void;
+
+export type WithSyncStatus<T> = T & { syncing: boolean };
+
+export class DataLine<TData> {
+  private _current: TData | undefined = undefined;
+
+  private _syncPromise: Promise<void> | null = null;
+  private _syncingSubject = new BehaviorSubject<boolean>(false);
+
+  private _observers: Subscriber<TData>[] = [];
+
+  constructor(
+    private config: {
+      sync: () => Promise<void>;
+      destroyable?: (value: TData | undefined) => boolean;
+      disableInitSync?: boolean;
+    }
+  ) {
+    if (config.disableInitSync !== true) {
+      setImmediate(() => void this.sync());
+    }
+  }
+
+  private subscribe(subscriber: Subscriber<TData>): void {
+    this._observers.push(subscriber);
+    if (this._current !== undefined) {
+      subscriber(this._current);
+    }
+  }
+
+  private unsubscribe(subscriber: Subscriber<TData>): void {
+    if (!this._observers.includes(subscriber)) return;
+    pull(this._observers, subscriber);
+  }
+
+  getObservable(): Observable<TData> {
+    return new Observable<TData>((observer) => {
+      const f = (data: TData): void => {
+        observer.next(data);
+      };
+      this.subscribe(f);
+
+      return () => {
+        this.unsubscribe(f);
+      };
+    });
+  }
+
+  getSyncStatusObservable(): Observable<boolean> {
+    return this._syncingSubject.asObservable();
+  }
+
+  getDataWithSyncStatusObservable(): Observable<WithSyncStatus<TData>> {
+    return combineLatest([
+      this.getObservable(),
+      this.getSyncStatusObservable(),
+    ]).pipe(
+      map(([data, syncing]) => ({
+        ...data,
+        syncing,
+      }))
+    );
+  }
+
+  get value(): TData | undefined {
+    return this._current;
+  }
+
+  next(value: TData): void {
+    this._current = value;
+    this._observers.forEach((observer) => observer(value));
+  }
+
+  get isSyncing(): boolean {
+    return this._syncPromise != null;
+  }
+
+  sync(): Promise<void> {
+    if (this._syncPromise == null) {
+      this._syncingSubject.next(true);
+      this._syncPromise = this.config.sync().then(() => {
+        this._syncingSubject.next(false);
+        this._syncPromise = null;
+      });
+    }
+
+    return this._syncPromise;
+  }
+
+  syncWithAction(
+    syncAction: (line: DataLine<TData>) => Promise<void>
+  ): Promise<void> {
+    if (this._syncPromise == null) {
+      this._syncingSubject.next(true);
+      this._syncPromise = syncAction(this).then(() => {
+        this._syncingSubject.next(false);
+        this._syncPromise = null;
+      });
+    }
+
+    return this._syncPromise;
+  }
+
+  get destroyable(): boolean {
+    const customDestroyable = this.config?.destroyable;
+
+    return (
+      this._observers.length === 0 &&
+      !this.isSyncing &&
+      (customDestroyable != null ? customDestroyable(this._current) : true)
+    );
+  }
+}
+
+export class DataHub<TKey, TData> {
+  private sync: (key: TKey, line: DataLine<TData>) => Promise<void>;
+  private keyToString: (key: TKey) => string;
+  private destroyable?: (key: TKey, value: TData | undefined) => boolean;
+
+  private readonly subscriptionLineMap = new Map<string, DataLine<TData>>();
+
+  private cleanTimerId = 0;
+
+  // setup is called after creating line and if it returns a function as destroyer, then when the line is destroyed the destroyer will be called.
+  constructor(config: {
+    sync: (key: TKey, line: DataLine<TData>) => Promise<void>;
+    keyToString?: (key: TKey) => string;
+    destroyable?: (key: TKey, value: TData | undefined) => boolean;
+  }) {
+    this.sync = config.sync;
+    this.keyToString =
+      config.keyToString ??
+      ((value): string => {
+        if (typeof value === "string") return value;
+        else
+          throw new Error(
+            "Default keyToString function only pass string value."
+          );
+      });
+
+    this.destroyable = config.destroyable;
+  }
+
+  private cleanLines(): void {
+    const toDelete: string[] = [];
+    for (const [key, line] of this.subscriptionLineMap.entries()) {
+      if (line.destroyable) {
+        toDelete.push(key);
+      }
+    }
+
+    if (toDelete.length === 0) return;
+
+    for (const key of toDelete) {
+      this.subscriptionLineMap.delete(key);
+    }
+
+    if (this.subscriptionLineMap.size === 0) {
+      window.clearInterval(this.cleanTimerId);
+      this.cleanTimerId = 0;
+    }
+  }
+
+  private createLine(key: TKey, disableInitSync = false): DataLine<TData> {
+    const keyString = this.keyToString(key);
+    const { destroyable } = this;
+    const newLine: DataLine<TData> = new DataLine<TData>({
+      sync: () => this.sync(key, newLine),
+      destroyable:
+        destroyable != null ? (value) => destroyable(key, value) : undefined,
+      disableInitSync: disableInitSync,
+    });
+    this.subscriptionLineMap.set(keyString, newLine);
+    if (this.subscriptionLineMap.size === 1) {
+      this.cleanTimerId = window.setInterval(this.cleanLines.bind(this), 20000);
+    }
+    return newLine;
+  }
+
+  getObservable(key: TKey): Observable<TData> {
+    return this.getLineOrCreate(key).getObservable();
+  }
+
+  getSyncStatusObservable(key: TKey): Observable<boolean> {
+    return this.getLineOrCreate(key).getSyncStatusObservable();
+  }
+
+  getDataWithSyncStatusObservable(
+    key: TKey
+  ): Observable<WithSyncStatus<TData>> {
+    return this.getLineOrCreate(key).getDataWithSyncStatusObservable();
+  }
+
+  getLine(key: TKey): DataLine<TData> | null {
+    const keyString = this.keyToString(key);
+    return this.subscriptionLineMap.get(keyString) ?? null;
+  }
+
+  getLineOrCreate(key: TKey): DataLine<TData> {
+    const keyString = this.keyToString(key);
+    return this.subscriptionLineMap.get(keyString) ?? this.createLine(key);
+  }
+
+  getLineOrCreateWithoutInitSync(key: TKey): DataLine<TData> {
+    const keyString = this.keyToString(key);
+    return (
+      this.subscriptionLineMap.get(keyString) ?? this.createLine(key, true)
+    );
+  }
+
+  optionalInitLineWithSyncAction(
+    key: TKey,
+    syncAction: (line: DataLine<TData>) => Promise<void>
+  ): Promise<void> {
+    const optionalLine = this.getLine(key);
+    if (optionalLine != null) return Promise.resolve();
+    const line = this.createLine(key, true);
+    return line.syncWithAction(syncAction);
+  }
+}
diff --git a/FrontEnd/src/app/services/alert.ts b/FrontEnd/src/app/services/alert.ts
new file mode 100644
index 00000000..e4c0e653
--- /dev/null
+++ b/FrontEnd/src/app/services/alert.ts
@@ -0,0 +1,61 @@
+import React from "react";
+import pull from "lodash/pull";
+
+export interface AlertInfo {
+  type?: "primary" | "secondary" | "success" | "danger" | "warning" | "info";
+  message: string | React.FC<unknown> | { type: "i18n"; key: string };
+  dismissTime?: number | "never";
+}
+
+export interface AlertInfoEx extends AlertInfo {
+  id: number;
+}
+
+export type AlertConsumer = (alerts: AlertInfoEx) => void;
+
+export class AlertService {
+  private consumers: AlertConsumer[] = [];
+  private savedAlerts: AlertInfoEx[] = [];
+  private currentId = 1;
+
+  private produce(alert: AlertInfoEx): void {
+    for (const consumer of this.consumers) {
+      consumer(alert);
+    }
+  }
+
+  registerConsumer(consumer: AlertConsumer): void {
+    this.consumers.push(consumer);
+    if (this.savedAlerts.length !== 0) {
+      for (const alert of this.savedAlerts) {
+        this.produce(alert);
+      }
+      this.savedAlerts = [];
+    }
+  }
+
+  unregisterConsumer(consumer: AlertConsumer): void {
+    pull(this.consumers, consumer);
+  }
+
+  push(alert: AlertInfo): void {
+    const newAlert: AlertInfoEx = { ...alert, id: this.currentId++ };
+    if (this.consumers.length === 0) {
+      this.savedAlerts.push(newAlert);
+    } else {
+      this.produce(newAlert);
+    }
+  }
+}
+
+export const alertService = new AlertService();
+
+export function pushAlert(alert: AlertInfo): void {
+  alertService.push(alert);
+}
+
+export const kAlertHostId = "alert-host";
+
+export function getAlertHost(): HTMLElement | null {
+  return document.getElementById(kAlertHostId);
+}
diff --git a/FrontEnd/src/app/services/common.ts b/FrontEnd/src/app/services/common.ts
new file mode 100644
index 00000000..3bb6b9d7
--- /dev/null
+++ b/FrontEnd/src/app/services/common.ts
@@ -0,0 +1,23 @@
+import localforage from "localforage";
+
+import { HttpNetworkError } from "@/http/common";
+
+export const dataStorage = localforage.createInstance({
+  name: "data",
+  description: "Database for offline data.",
+  driver: localforage.INDEXEDDB,
+});
+
+export class ForbiddenError extends Error {
+  constructor(message?: string) {
+    super(message);
+  }
+}
+
+export function throwIfNotNetworkError(e: unknown): void {
+  if (!(e instanceof HttpNetworkError)) {
+    throw e;
+  }
+}
+
+export type BlobOrStatus = Blob | "loading" | "error";
diff --git a/FrontEnd/src/app/services/timeline.ts b/FrontEnd/src/app/services/timeline.ts
new file mode 100644
index 00000000..9db76281
--- /dev/null
+++ b/FrontEnd/src/app/services/timeline.ts
@@ -0,0 +1,702 @@
+import React from "react";
+import XRegExp from "xregexp";
+import { Observable, from, combineLatest, of } from "rxjs";
+import { map, switchMap, startWith } from "rxjs/operators";
+import { uniqBy } from "lodash";
+
+import { convertError } from "@/utilities/rxjs";
+import {
+  TimelineVisibility,
+  HttpTimelineInfo,
+  HttpTimelinePatchRequest,
+  HttpTimelinePostPostRequest,
+  HttpTimelinePostPostRequestContent,
+  HttpTimelinePostPostRequestTextContent,
+  HttpTimelinePostPostRequestImageContent,
+  HttpTimelinePostInfo,
+  HttpTimelinePostTextContent,
+  getHttpTimelineClient,
+  HttpTimelineNotExistError,
+  HttpTimelineNameConflictError,
+} from "@/http/timeline";
+import { BlobWithEtag, NotModified, HttpForbiddenError } from "@/http/common";
+import { HttpUser } from "@/http/user";
+
+export { kTimelineVisibilities } from "@/http/timeline";
+
+export type { TimelineVisibility } from "@/http/timeline";
+
+import { dataStorage, throwIfNotNetworkError, BlobOrStatus } from "./common";
+import { DataHub, WithSyncStatus } from "./DataHub";
+import { UserAuthInfo, checkLogin, userService, userInfoService } from "./user";
+
+export type TimelineInfo = HttpTimelineInfo;
+export type TimelineChangePropertyRequest = HttpTimelinePatchRequest;
+export type TimelineCreatePostRequest = HttpTimelinePostPostRequest;
+export type TimelineCreatePostContent = HttpTimelinePostPostRequestContent;
+export type TimelineCreatePostTextContent = HttpTimelinePostPostRequestTextContent;
+export type TimelineCreatePostImageContent = HttpTimelinePostPostRequestImageContent;
+
+export type TimelinePostTextContent = HttpTimelinePostTextContent;
+
+export interface TimelinePostImageContent {
+  type: "image";
+  data: BlobOrStatus;
+}
+
+export type TimelinePostContent =
+  | TimelinePostTextContent
+  | TimelinePostImageContent;
+
+export interface TimelinePostInfo {
+  id: number;
+  content: TimelinePostContent;
+  time: Date;
+  lastUpdated: Date;
+  author: HttpUser;
+}
+
+export const timelineVisibilityTooltipTranslationMap: Record<
+  TimelineVisibility,
+  string
+> = {
+  Public: "timeline.visibilityTooltip.public",
+  Register: "timeline.visibilityTooltip.register",
+  Private: "timeline.visibilityTooltip.private",
+};
+
+export class TimelineNotExistError extends Error {}
+export class TimelineNameConflictError extends Error {}
+
+export type TimelineWithSyncStatus = WithSyncStatus<
+  | {
+      type: "cache";
+      timeline: TimelineInfo;
+    }
+  | {
+      type: "offline" | "synced";
+      timeline: TimelineInfo | null;
+    }
+>;
+
+export type TimelinePostsWithSyncState = WithSyncStatus<{
+  type:
+    | "cache"
+    | "offline" // Sync failed and use cache.
+    | "synced" // Sync succeeded.
+    | "forbid" // The list is forbidden to see.
+    | "notexist"; // The timeline does not exist.
+  posts: TimelinePostInfo[];
+}>;
+
+type TimelineData = Omit<HttpTimelineInfo, "owner" | "members"> & {
+  owner: string;
+  members: string[];
+};
+
+type TimelinePostData = Omit<HttpTimelinePostInfo, "author"> & {
+  author: string;
+};
+
+export class TimelineService {
+  private getCachedTimeline(
+    timelineName: string
+  ): Promise<TimelineData | null> {
+    return dataStorage.getItem<TimelineData | null>(`timeline.${timelineName}`);
+  }
+
+  private saveTimeline(
+    timelineName: string,
+    data: TimelineData
+  ): Promise<void> {
+    return dataStorage
+      .setItem<TimelineData>(`timeline.${timelineName}`, data)
+      .then();
+  }
+
+  private async clearTimelineData(timelineName: string): Promise<void> {
+    const keys = (await dataStorage.keys()).filter((k) =>
+      k.startsWith(`timeline.${timelineName}`)
+    );
+    await Promise.all(keys.map((k) => dataStorage.removeItem(k)));
+  }
+
+  private convertHttpTimelineToData(timeline: HttpTimelineInfo): TimelineData {
+    return {
+      ...timeline,
+      owner: timeline.owner.username,
+      members: timeline.members.map((m) => m.username),
+    };
+  }
+
+  private _timelineHub = new DataHub<
+    string,
+    | {
+        type: "cache";
+        timeline: TimelineData;
+      }
+    | {
+        type: "offline" | "synced";
+        timeline: TimelineData | null;
+      }
+  >({
+    sync: async (key, line) => {
+      const cache = await this.getCachedTimeline(key);
+
+      if (line.value == undefined) {
+        if (cache != null) {
+          line.next({ type: "cache", timeline: cache });
+        }
+      }
+
+      try {
+        const httpTimeline = await getHttpTimelineClient().getTimeline(key);
+
+        userInfoService.saveUsers([
+          httpTimeline.owner,
+          ...httpTimeline.members,
+        ]);
+
+        const timeline = this.convertHttpTimelineToData(httpTimeline);
+
+        if (cache != null && timeline.uniqueId !== cache.uniqueId) {
+          console.log(
+            `Timeline with name ${key} has changed to a new one. Clear old data.`
+          );
+          await this.clearTimelineData(key); // If timeline has changed, clear all old data.
+        }
+
+        await this.saveTimeline(key, timeline);
+
+        line.next({ type: "synced", timeline });
+      } catch (e) {
+        if (e instanceof HttpTimelineNotExistError) {
+          line.next({ type: "synced", timeline: null });
+        } else {
+          if (cache == null) {
+            line.next({ type: "offline", timeline: null });
+          } else {
+            line.next({ type: "offline", timeline: cache });
+          }
+          throwIfNotNetworkError(e);
+        }
+      }
+    },
+  });
+
+  syncTimeline(timelineName: string): Promise<void> {
+    return this._timelineHub.getLineOrCreate(timelineName).sync();
+  }
+
+  getTimeline$(timelineName: string): Observable<TimelineWithSyncStatus> {
+    return this._timelineHub.getDataWithSyncStatusObservable(timelineName).pipe(
+      switchMap((state) => {
+        const { timeline } = state;
+        if (timeline != null) {
+          return combineLatest(
+            [timeline.owner, ...timeline.members].map((u) =>
+              userInfoService.getUser$(u)
+            )
+          ).pipe(
+            map((users) => {
+              return {
+                ...state,
+                timeline: {
+                  ...timeline,
+                  owner: users[0],
+                  members: users.slice(1),
+                },
+              };
+            })
+          );
+        } else {
+          return of(state as TimelineWithSyncStatus);
+        }
+      })
+    );
+  }
+
+  createTimeline(timelineName: string): Observable<TimelineInfo> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient().postTimeline(
+        {
+          name: timelineName,
+        },
+        user.token
+      )
+    ).pipe(
+      convertError(HttpTimelineNameConflictError, TimelineNameConflictError)
+    );
+  }
+
+  changeTimelineProperty(
+    timelineName: string,
+    req: TimelineChangePropertyRequest
+  ): Observable<TimelineInfo> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient()
+        .patchTimeline(timelineName, req, user.token)
+        .then((timeline) => {
+          void this.syncTimeline(timelineName);
+          return timeline;
+        })
+    );
+  }
+
+  deleteTimeline(timelineName: string): Observable<unknown> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient().deleteTimeline(timelineName, user.token)
+    );
+  }
+
+  addMember(timelineName: string, username: string): Observable<unknown> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient()
+        .memberPut(timelineName, username, user.token)
+        .then(() => {
+          void this.syncTimeline(timelineName);
+        })
+    );
+  }
+
+  removeMember(timelineName: string, username: string): Observable<unknown> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient()
+        .memberDelete(timelineName, username, user.token)
+        .then(() => {
+          void this.syncTimeline(timelineName);
+        })
+    );
+  }
+
+  private convertHttpPostToData(post: HttpTimelinePostInfo): TimelinePostData {
+    return {
+      ...post,
+      author: post.author.username,
+    };
+  }
+
+  private convertHttpPostToDataList(
+    posts: HttpTimelinePostInfo[]
+  ): TimelinePostData[] {
+    return posts.map((post) => this.convertHttpPostToData(post));
+  }
+
+  private getCachedPosts(
+    timelineName: string
+  ): Promise<TimelinePostData[] | null> {
+    return dataStorage.getItem<TimelinePostData[] | null>(
+      `timeline.${timelineName}.posts`
+    );
+  }
+
+  private savePosts(
+    timelineName: string,
+    data: TimelinePostData[]
+  ): Promise<void> {
+    return dataStorage
+      .setItem<TimelinePostData[]>(`timeline.${timelineName}.posts`, data)
+      .then();
+  }
+
+  private syncPosts(timelineName: string): Promise<void> {
+    return this._postsHub.getLineOrCreate(timelineName).sync();
+  }
+
+  private _postsHub = new DataHub<
+    string,
+    {
+      type: "cache" | "offline" | "synced" | "forbid" | "notexist";
+      posts: TimelinePostData[];
+    }
+  >({
+    sync: async (key, line) => {
+      // Wait for timeline synced. In case the timeline has changed to another and old data has been cleaned.
+      await this.syncTimeline(key);
+
+      if (line.value == null) {
+        const cache = await this.getCachedPosts(key);
+        if (cache != null) {
+          line.next({ type: "cache", posts: cache });
+        }
+      }
+
+      const now = new Date();
+
+      const lastUpdatedTime = await dataStorage.getItem<Date | null>(
+        `timeline.${key}.lastUpdated`
+      );
+
+      try {
+        if (lastUpdatedTime == null) {
+          const httpPosts = await getHttpTimelineClient().listPost(
+            key,
+            userService.currentUser?.token
+          );
+
+          userInfoService.saveUsers(
+            uniqBy(
+              httpPosts.map((post) => post.author),
+              "username"
+            )
+          );
+
+          const posts = this.convertHttpPostToDataList(httpPosts);
+          await this.savePosts(key, posts);
+          await dataStorage.setItem<Date>(`timeline.${key}.lastUpdated`, now);
+
+          line.next({ type: "synced", posts });
+        } else {
+          const httpPosts = await getHttpTimelineClient().listPost(
+            key,
+            userService.currentUser?.token,
+            {
+              modifiedSince: lastUpdatedTime,
+              includeDeleted: true,
+            }
+          );
+
+          const deletedIds = httpPosts
+            .filter((p) => p.deleted)
+            .map((p) => p.id);
+          const changed = httpPosts.filter(
+            (p): p is HttpTimelinePostInfo => !p.deleted
+          );
+
+          userInfoService.saveUsers(
+            uniqBy(
+              httpPosts
+                .map((post) => post.author)
+                .filter((u): u is HttpUser => u != null),
+              "username"
+            )
+          );
+
+          const cache = (await this.getCachedPosts(key)) ?? [];
+
+          const posts = cache.filter((p) => !deletedIds.includes(p.id));
+
+          for (const changedPost of changed) {
+            const savedChangedPostIndex = posts.findIndex(
+              (p) => p.id === changedPost.id
+            );
+            if (savedChangedPostIndex === -1) {
+              posts.push(this.convertHttpPostToData(changedPost));
+            } else {
+              posts[savedChangedPostIndex] = this.convertHttpPostToData(
+                changedPost
+              );
+            }
+          }
+
+          await this.savePosts(key, posts);
+          await dataStorage.setItem<Date>(`timeline.${key}.lastUpdated`, now);
+          line.next({ type: "synced", posts });
+        }
+      } catch (e) {
+        if (e instanceof HttpTimelineNotExistError) {
+          line.next({ type: "notexist", posts: [] });
+        } else if (e instanceof HttpForbiddenError) {
+          line.next({ type: "forbid", posts: [] });
+        } else {
+          const cache = await this.getCachedPosts(key);
+          if (cache == null) {
+            line.next({ type: "offline", posts: [] });
+          } else {
+            line.next({ type: "offline", posts: cache });
+          }
+          throwIfNotNetworkError(e);
+        }
+      }
+    },
+  });
+
+  getPosts$(timelineName: string): Observable<TimelinePostsWithSyncState> {
+    return this._postsHub.getDataWithSyncStatusObservable(timelineName).pipe(
+      switchMap((state) => {
+        if (state.posts.length === 0) {
+          return of({
+            ...state,
+            posts: [],
+          });
+        }
+
+        return combineLatest([
+          combineLatest(
+            state.posts.map((post) => userInfoService.getUser$(post.author))
+          ),
+          combineLatest(
+            state.posts.map((post) => {
+              if (post.content.type === "image") {
+                return this.getPostData$(timelineName, post.id);
+              } else {
+                return of(null);
+              }
+            })
+          ),
+        ]).pipe(
+          map(([authors, datas]) => {
+            return {
+              ...state,
+              posts: state.posts.map((post, i) => {
+                const { content } = post;
+
+                return {
+                  ...post,
+                  author: authors[i],
+                  content: (() => {
+                    if (content.type === "text") return content;
+                    else
+                      return {
+                        type: "image",
+                        data: datas[i],
+                      } as TimelinePostImageContent;
+                  })(),
+                };
+              }),
+            };
+          })
+        );
+      })
+    );
+  }
+
+  private getCachedPostData(key: {
+    timelineName: string;
+    postId: number;
+  }): Promise<BlobWithEtag | null> {
+    return dataStorage.getItem<BlobWithEtag | null>(
+      `timeline.${key.timelineName}.post.${key.postId}.data`
+    );
+  }
+
+  private savePostData(
+    key: {
+      timelineName: string;
+      postId: number;
+    },
+    data: BlobWithEtag
+  ): Promise<void> {
+    return dataStorage
+      .setItem<BlobWithEtag>(
+        `timeline.${key.timelineName}.post.${key.postId}.data`,
+        data
+      )
+      .then();
+  }
+
+  private syncPostData(key: {
+    timelineName: string;
+    postId: number;
+  }): Promise<void> {
+    return this._postDataHub.getLineOrCreate(key).sync();
+  }
+
+  private _postDataHub = new DataHub<
+    { timelineName: string; postId: number },
+    | { data: Blob; type: "cache" | "synced" | "offline" }
+    | { data?: undefined; type: "notexist" | "offline" }
+  >({
+    keyToString: (key) => `${key.timelineName}.${key.postId}`,
+    sync: async (key, line) => {
+      const cache = await this.getCachedPostData(key);
+      if (line.value == null) {
+        if (cache != null) {
+          line.next({ type: "cache", data: cache.data });
+        }
+      }
+
+      if (cache == null) {
+        try {
+          const res = await getHttpTimelineClient().getPostData(
+            key.timelineName,
+            key.postId
+          );
+          await this.savePostData(key, res);
+          line.next({ data: res.data, type: "synced" });
+        } catch (e) {
+          line.next({ type: "offline" });
+          throwIfNotNetworkError(e);
+        }
+      } else {
+        try {
+          const res = await getHttpTimelineClient().getPostData(
+            key.timelineName,
+            key.postId,
+            cache.etag
+          );
+          if (res instanceof NotModified) {
+            line.next({ data: cache.data, type: "synced" });
+          } else {
+            await this.savePostData(key, res);
+            line.next({ data: res.data, type: "synced" });
+          }
+        } catch (e) {
+          line.next({ data: cache.data, type: "offline" });
+          throwIfNotNetworkError(e);
+        }
+      }
+    },
+  });
+
+  getPostData$(timelineName: string, postId: number): Observable<BlobOrStatus> {
+    return this._postDataHub.getObservable({ timelineName, postId }).pipe(
+      map((state): BlobOrStatus => state.data ?? "error"),
+      startWith("loading")
+    );
+  }
+
+  createPost(
+    timelineName: string,
+    request: TimelineCreatePostRequest
+  ): Observable<unknown> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient()
+        .postPost(timelineName, request, user.token)
+        .then(() => {
+          void this.syncPosts(timelineName);
+        })
+    );
+  }
+
+  deletePost(timelineName: string, postId: number): Observable<unknown> {
+    const user = checkLogin();
+    return from(
+      getHttpTimelineClient()
+        .deletePost(timelineName, postId, user.token)
+        .then(() => {
+          void this.syncPosts(timelineName);
+        })
+    );
+  }
+
+  isMemberOf(username: string, timeline: TimelineInfo): boolean {
+    return timeline.members.findIndex((m) => m.username == username) >= 0;
+  }
+
+  hasReadPermission(
+    user: UserAuthInfo | null | undefined,
+    timeline: TimelineInfo
+  ): boolean {
+    if (user != null && user.administrator) return true;
+
+    const { visibility } = timeline;
+    if (visibility === "Public") {
+      return true;
+    } else if (visibility === "Register") {
+      if (user != null) return true;
+    } else if (visibility === "Private") {
+      if (
+        user != null &&
+        (user.username === timeline.owner.username ||
+          this.isMemberOf(user.username, timeline))
+      ) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  hasPostPermission(
+    user: UserAuthInfo | null | undefined,
+    timeline: TimelineInfo
+  ): boolean {
+    if (user != null && user.administrator) return true;
+
+    return (
+      user != null &&
+      (timeline.owner.username === user.username ||
+        this.isMemberOf(user.username, timeline))
+    );
+  }
+
+  hasManagePermission(
+    user: UserAuthInfo | null | undefined,
+    timeline: TimelineInfo
+  ): boolean {
+    if (user != null && user.administrator) return true;
+
+    return user != null && user.username == timeline.owner.username;
+  }
+
+  hasModifyPostPermission(
+    user: UserAuthInfo | null | undefined,
+    timeline: TimelineInfo,
+    post: TimelinePostInfo
+  ): boolean {
+    if (user != null && user.administrator) return true;
+
+    return (
+      user != null &&
+      (user.username === timeline.owner.username ||
+        user.username === post.author.username)
+    );
+  }
+}
+
+export const timelineService = new TimelineService();
+
+const timelineNameReg = XRegExp("^[-_\\p{L}]*$", "u");
+
+export function validateTimelineName(name: string): boolean {
+  return timelineNameReg.test(name);
+}
+
+export function useTimelineInfo(
+  timelineName: string
+): TimelineWithSyncStatus | undefined {
+  const [state, setState] = React.useState<TimelineWithSyncStatus | undefined>(
+    undefined
+  );
+  React.useEffect(() => {
+    const subscription = timelineService
+      .getTimeline$(timelineName)
+      .subscribe((data) => {
+        setState(data);
+      });
+    return () => {
+      subscription.unsubscribe();
+    };
+  }, [timelineName]);
+  return state;
+}
+
+export function usePostList(
+  timelineName: string | null | undefined
+): TimelinePostsWithSyncState | undefined {
+  const [state, setState] = React.useState<
+    TimelinePostsWithSyncState | undefined
+  >(undefined);
+  React.useEffect(() => {
+    if (timelineName == null) {
+      setState(undefined);
+      return;
+    }
+
+    const subscription = timelineService
+      .getPosts$(timelineName)
+      .subscribe((data) => {
+        setState(data);
+      });
+    return () => {
+      subscription.unsubscribe();
+    };
+  }, [timelineName]);
+  return state;
+}
+
+export async function getAllCachedTimelineNames(): Promise<string[]> {
+  const keys = await dataStorage.keys();
+  return keys
+    .filter(
+      (key) =>
+        key.startsWith("timeline.") && (key.match(/\./g) ?? []).length === 1
+    )
+    .map((key) => key.substr("timeline.".length));
+}
diff --git a/FrontEnd/src/app/services/user.ts b/FrontEnd/src/app/services/user.ts
new file mode 100644
index 00000000..f253fc19
--- /dev/null
+++ b/FrontEnd/src/app/services/user.ts
@@ -0,0 +1,393 @@
+import React, { useState, useEffect } from "react";
+import { BehaviorSubject, Observable, from } from "rxjs";
+import { map, filter } from "rxjs/operators";
+
+import { UiLogicError } from "@/common";
+import { convertError } from "@/utilities/rxjs";
+
+import { HttpNetworkError, BlobWithEtag, NotModified } from "@/http/common";
+import {
+  getHttpTokenClient,
+  HttpCreateTokenBadCredentialError,
+} from "@/http/token";
+import {
+  getHttpUserClient,
+  HttpUserNotExistError,
+  HttpUser,
+} from "@/http/user";
+
+import { dataStorage, throwIfNotNetworkError } from "./common";
+import { DataHub } from "./DataHub";
+import { pushAlert } from "./alert";
+
+export type User = HttpUser;
+
+export interface UserAuthInfo {
+  username: string;
+  administrator: boolean;
+}
+
+export interface UserWithToken extends User {
+  token: string;
+}
+
+export interface LoginCredentials {
+  username: string;
+  password: string;
+}
+
+export class BadCredentialError {
+  message = "login.badCredential";
+}
+
+const USER_STORAGE_KEY = "currentuser";
+
+export class UserService {
+  private userSubject = new BehaviorSubject<UserWithToken | null | undefined>(
+    undefined
+  );
+
+  get user$(): Observable<UserWithToken | null | undefined> {
+    return this.userSubject;
+  }
+
+  get currentUser(): UserWithToken | null | undefined {
+    return this.userSubject.value;
+  }
+
+  async checkLoginState(): Promise<UserWithToken | null> {
+    if (this.currentUser !== undefined) {
+      console.warn("Already checked user. Can't check twice.");
+    }
+
+    const savedUser = await dataStorage.getItem<UserWithToken | null>(
+      USER_STORAGE_KEY
+    );
+
+    if (savedUser == null) {
+      this.userSubject.next(null);
+      return null;
+    }
+
+    this.userSubject.next(savedUser);
+
+    const savedToken = savedUser.token;
+    try {
+      const res = await getHttpTokenClient().verify({ token: savedToken });
+      const user: UserWithToken = { ...res.user, token: savedToken };
+      await dataStorage.setItem<UserWithToken>(USER_STORAGE_KEY, user);
+      this.userSubject.next(user);
+      pushAlert({
+        type: "success",
+        message: {
+          type: "i18n",
+          key: "user.welcomeBack",
+        },
+      });
+      return user;
+    } catch (error) {
+      if (error instanceof HttpNetworkError) {
+        pushAlert({
+          type: "danger",
+          message: { type: "i18n", key: "user.verifyTokenFailedNetwork" },
+        });
+        return savedUser;
+      } else {
+        await dataStorage.removeItem(USER_STORAGE_KEY);
+        this.userSubject.next(null);
+        pushAlert({
+          type: "danger",
+          message: { type: "i18n", key: "user.verifyTokenFailed" },
+        });
+        return null;
+      }
+    }
+  }
+
+  async login(
+    credentials: LoginCredentials,
+    rememberMe: boolean
+  ): Promise<void> {
+    if (this.currentUser) {
+      throw new UiLogicError("Already login.");
+    }
+    try {
+      const res = await getHttpTokenClient().create({
+        ...credentials,
+        expire: 30,
+      });
+      const user: UserWithToken = {
+        ...res.user,
+        token: res.token,
+      };
+      if (rememberMe) {
+        await dataStorage.setItem<UserWithToken>(USER_STORAGE_KEY, user);
+      }
+      this.userSubject.next(user);
+    } catch (e) {
+      if (e instanceof HttpCreateTokenBadCredentialError) {
+        throw new BadCredentialError();
+      } else {
+        throw e;
+      }
+    }
+  }
+
+  async logout(): Promise<void> {
+    if (this.currentUser === undefined) {
+      throw new UiLogicError("Please check user first.");
+    }
+    if (this.currentUser === null) {
+      throw new UiLogicError("No login.");
+    }
+    await dataStorage.removeItem(USER_STORAGE_KEY);
+    this.userSubject.next(null);
+  }
+
+  changePassword(
+    oldPassword: string,
+    newPassword: string
+  ): Observable<unknown> {
+    if (this.currentUser == undefined) {
+      throw new UiLogicError("Not login or checked now, can't log out.");
+    }
+    const $ = from(
+      getHttpUserClient().changePassword(
+        {
+          oldPassword,
+          newPassword,
+        },
+        this.currentUser.token
+      )
+    );
+    $.subscribe(() => {
+      void this.logout();
+    });
+    return $;
+  }
+}
+
+export const userService = new UserService();
+
+export function useRawUser(): UserWithToken | null | undefined {
+  const [user, setUser] = useState<UserWithToken | null | undefined>(
+    userService.currentUser
+  );
+  useEffect(() => {
+    const subscription = userService.user$.subscribe((u) => setUser(u));
+    return () => {
+      subscription.unsubscribe();
+    };
+  });
+  return user;
+}
+
+export function useUser(): UserWithToken | null {
+  const [user, setUser] = useState<UserWithToken | null>(() => {
+    const initUser = userService.currentUser;
+    if (initUser === undefined) {
+      throw new UiLogicError(
+        "This is a logic error in user module. Current user can't be undefined in useUser."
+      );
+    }
+    return initUser;
+  });
+  useEffect(() => {
+    const sub = userService.user$.subscribe((u) => {
+      if (u === undefined) {
+        throw new UiLogicError(
+          "This is a logic error in user module. User emitted can't be undefined later."
+        );
+      }
+      setUser(u);
+    });
+    return () => {
+      sub.unsubscribe();
+    };
+  });
+  return user;
+}
+
+export function useUserLoggedIn(): UserWithToken {
+  const user = useUser();
+  if (user == null) {
+    throw new UiLogicError("You assert user has logged in but actually not.");
+  }
+  return user;
+}
+
+export function checkLogin(): UserWithToken {
+  const user = userService.currentUser;
+  if (user == null) {
+    throw new UiLogicError("You must login to perform the operation.");
+  }
+  return user;
+}
+
+export class UserNotExistError extends Error {}
+
+export class UserInfoService {
+  saveUser(user: HttpUser): void {
+    const key = user.username;
+    void this._userHub.optionalInitLineWithSyncAction(key, async (line) => {
+      await this.doSaveUser(user);
+      line.next({ user, type: "synced" });
+    });
+  }
+
+  saveUsers(users: HttpUser[]): void {
+    return users.forEach((user) => this.saveUser(user));
+  }
+
+  private getCachedUser(username: string): Promise<User | null> {
+    return dataStorage.getItem<HttpUser | null>(`user.${username}`);
+  }
+
+  private doSaveUser(user: HttpUser): Promise<void> {
+    return dataStorage.setItem<HttpUser>(`user.${user.username}`, user).then();
+  }
+
+  syncUser(username: string): Promise<void> {
+    return this._userHub.getLineOrCreate(username).sync();
+  }
+
+  private _userHub = new DataHub<
+    string,
+    | { user: User; type: "cache" | "synced" | "offline" }
+    | { user?: undefined; type: "notexist" | "offline" }
+  >({
+    sync: async (key, line) => {
+      if (line.value == undefined) {
+        const cache = await this.getCachedUser(key);
+        if (cache != null) {
+          line.next({ user: cache, type: "cache" });
+        }
+      }
+
+      try {
+        const res = await getHttpUserClient().get(key);
+        await this.doSaveUser(res);
+        line.next({ user: res, type: "synced" });
+      } catch (e) {
+        if (e instanceof HttpUserNotExistError) {
+          line.next({ type: "notexist" });
+        } else {
+          const cache = await this.getCachedUser(key);
+          line.next({ user: cache ?? undefined, type: "offline" });
+          throwIfNotNetworkError(e);
+        }
+      }
+    },
+  });
+
+  getUser$(username: string): Observable<User> {
+    return this._userHub.getObservable(username).pipe(
+      map((state) => state?.user),
+      filter((user): user is User => user != null)
+    );
+  }
+
+  private getCachedAvatar(username: string): Promise<BlobWithEtag | null> {
+    return dataStorage.getItem<BlobWithEtag | null>(`user.${username}.avatar`);
+  }
+
+  private saveAvatar(username: string, data: BlobWithEtag): Promise<void> {
+    return dataStorage
+      .setItem<BlobWithEtag>(`user.${username}.avatar`, data)
+      .then();
+  }
+
+  syncAvatar(username: string): Promise<void> {
+    return this._avatarHub.getLineOrCreate(username).sync();
+  }
+
+  private _avatarHub = new DataHub<
+    string,
+    | { data: Blob; type: "cache" | "synced" | "offline" }
+    | { data?: undefined; type: "notexist" | "offline" }
+  >({
+    sync: async (key, line) => {
+      const cache = await this.getCachedAvatar(key);
+      if (line.value == null) {
+        if (cache != null) {
+          line.next({ data: cache.data, type: "cache" });
+        }
+      }
+
+      if (cache == null) {
+        try {
+          const avatar = await getHttpUserClient().getAvatar(key);
+          await this.saveAvatar(key, avatar);
+          line.next({ data: avatar.data, type: "synced" });
+        } catch (e) {
+          line.next({ type: "offline" });
+          throwIfNotNetworkError(e);
+        }
+      } else {
+        try {
+          const res = await getHttpUserClient().getAvatar(key, cache.etag);
+          if (res instanceof NotModified) {
+            line.next({ data: cache.data, type: "synced" });
+          } else {
+            const avatar = res;
+            await this.saveAvatar(key, avatar);
+            line.next({ data: avatar.data, type: "synced" });
+          }
+        } catch (e) {
+          line.next({ data: cache.data, type: "offline" });
+          throwIfNotNetworkError(e);
+        }
+      }
+    },
+  });
+
+  getAvatar$(username: string): Observable<Blob> {
+    return this._avatarHub.getObservable(username).pipe(
+      map((state) => state.data),
+      filter((blob): blob is Blob => blob != null)
+    );
+  }
+
+  getUserInfo(username: string): Observable<User> {
+    return from(getHttpUserClient().get(username)).pipe(
+      convertError(HttpUserNotExistError, UserNotExistError)
+    );
+  }
+
+  async setAvatar(username: string, blob: Blob): Promise<void> {
+    const user = checkLogin();
+    await getHttpUserClient().putAvatar(username, blob, user.token);
+    this._avatarHub.getLine(username)?.next({ data: blob, type: "synced" });
+  }
+
+  async setNickname(username: string, nickname: string): Promise<void> {
+    const user = checkLogin();
+    return getHttpUserClient()
+      .patch(username, { nickname }, user.token)
+      .then((user) => {
+        this.saveUser(user);
+      });
+  }
+}
+
+export const userInfoService = new UserInfoService();
+
+export function useAvatar(username?: string): Blob | undefined {
+  const [state, setState] = React.useState<Blob | undefined>(undefined);
+  React.useEffect(() => {
+    if (username == null) {
+      setState(undefined);
+      return;
+    }
+
+    const subscription = userInfoService
+      .getAvatar$(username)
+      .subscribe((blob) => {
+        setState(blob);
+      });
+    return () => {
+      subscription.unsubscribe();
+    };
+  }, [username]);
+  return state;
+}
diff --git a/FrontEnd/src/app/tsconfig.json b/FrontEnd/src/app/tsconfig.json
new file mode 100644
index 00000000..17ee69cb
--- /dev/null
+++ b/FrontEnd/src/app/tsconfig.json
@@ -0,0 +1,13 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "lib": [
+      "dom",
+      "dom.iterable",
+      "esnext"
+    ]
+  },
+  "include": [
+    "."
+  ]
+}
diff --git a/FrontEnd/src/app/typings.d.ts b/FrontEnd/src/app/typings.d.ts
new file mode 100644
index 00000000..34381682
--- /dev/null
+++ b/FrontEnd/src/app/typings.d.ts
@@ -0,0 +1,24 @@
+declare module "*.png" {
+  const content: string;
+  export default content;
+}
+
+declare module "*.jpeg" {
+  const content: string;
+  export default content;
+}
+
+declare module "*.jpg" {
+  const content: string;
+  export default content;
+}
+
+declare module "*.gif" {
+  const content: string;
+  export default content;
+}
+
+declare module "*.svg" {
+  const content: string;
+  export default content;
+}
diff --git a/FrontEnd/src/app/utilities/rxjs.ts b/FrontEnd/src/app/utilities/rxjs.ts
new file mode 100644
index 00000000..0730b899
--- /dev/null
+++ b/FrontEnd/src/app/utilities/rxjs.ts
@@ -0,0 +1,14 @@
+import { OperatorFunction } from "rxjs";
+import { catchError } from "rxjs/operators";
+
+export function convertError<T, NewError>(
+  oldErrorType: { new (...args: never[]): unknown },
+  newErrorType: { new (): NewError }
+): OperatorFunction<T, T> {
+  return catchError((error) => {
+    if (error instanceof oldErrorType) {
+      throw new newErrorType();
+    }
+    throw error;
+  });
+}
diff --git a/FrontEnd/src/app/utilities/url.ts b/FrontEnd/src/app/utilities/url.ts
new file mode 100644
index 00000000..17ead5b2
--- /dev/null
+++ b/FrontEnd/src/app/utilities/url.ts
@@ -0,0 +1,52 @@
+//copied from https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter
+export function updateQueryString(
+  key: string,
+  value: undefined | string | null,
+  url: string
+): string {
+  const re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi");
+  let hash;
+
+  if (re.test(url)) {
+    if (typeof value !== "undefined" && value !== null) {
+      return url.replace(re, "$1" + key + "=" + value + "$2$3");
+    } else {
+      hash = url.split("#");
+      url = hash[0].replace(re, "$1$3").replace(/(&|\?)$/, "");
+      if (typeof hash[1] !== "undefined" && hash[1] !== null) {
+        url += "#" + hash[1];
+      }
+      return url;
+    }
+  } else {
+    if (typeof value !== "undefined" && value !== null) {
+      const separator = url.includes("?") ? "&" : "?";
+      hash = url.split("#");
+      url = hash[0] + separator + key + "=" + value;
+      if (typeof hash[1] !== "undefined" && hash[1] !== null) {
+        url += "#" + hash[1];
+      }
+      return url;
+    } else {
+      return url;
+    }
+  }
+}
+
+export function applyQueryParameters<T>(url: string, query: T): string {
+  if (query == null) return url;
+
+  for (const [key, value] of Object.entries(query)) {
+    if (typeof value === "string") url = updateQueryString(key, value, url);
+    else if (typeof value === "number")
+      url = updateQueryString(key, String(value), url);
+    else if (typeof value === "boolean")
+      url = updateQueryString(key, value ? "true" : "false", url);
+    else if (value instanceof Date)
+      url = updateQueryString(key, value.toISOString(), url);
+    else {
+      console.error("Unknown query parameter type. Param: ", value);
+    }
+  }
+  return url;
+}
diff --git a/FrontEnd/src/app/views/about/about.sass b/FrontEnd/src/app/views/about/about.sass
new file mode 100644
index 00000000..f4d00cae
--- /dev/null
+++ b/FrontEnd/src/app/views/about/about.sass
@@ -0,0 +1,4 @@
+.about-link-icon
+  @extend .mx-2
+  width: 1.2em
+  height: 1.2em
diff --git a/FrontEnd/src/app/views/about/author-avatar.png b/FrontEnd/src/app/views/about/author-avatar.png
new file mode 100644
index 00000000..d890d8d0
Binary files /dev/null and b/FrontEnd/src/app/views/about/author-avatar.png differ
diff --git a/FrontEnd/src/app/views/about/github.png b/FrontEnd/src/app/views/about/github.png
new file mode 100644
index 00000000..ea6ff545
Binary files /dev/null and b/FrontEnd/src/app/views/about/github.png differ
diff --git a/FrontEnd/src/app/views/about/index.tsx b/FrontEnd/src/app/views/about/index.tsx
new file mode 100644
index 00000000..e7771cec
--- /dev/null
+++ b/FrontEnd/src/app/views/about/index.tsx
@@ -0,0 +1,164 @@
+import React from "react";
+import { useTranslation, Trans } from "react-i18next";
+
+import authorAvatarUrl from "./author-avatar.png";
+import githubLogoUrl from "./github.png";
+
+const frontendCredits: {
+  name: string;
+  url: string;
+}[] = [
+  {
+    name: "reactjs",
+    url: "https://reactjs.org",
+  },
+  {
+    name: "typescript",
+    url: "https://www.typescriptlang.org",
+  },
+  {
+    name: "bootstrap",
+    url: "https://getbootstrap.com",
+  },
+  {
+    name: "react-bootstrap",
+    url: "https://react-bootstrap.github.io",
+  },
+  {
+    name: "babeljs",
+    url: "https://babeljs.io",
+  },
+  {
+    name: "webpack",
+    url: "https://webpack.js.org",
+  },
+  {
+    name: "sass",
+    url: "https://sass-lang.com",
+  },
+  {
+    name: "eslint",
+    url: "https://eslint.org",
+  },
+  {
+    name: "prettier",
+    url: "https://prettier.io",
+  },
+  {
+    name: "pepjs",
+    url: "https://github.com/jquery/PEP",
+  },
+  {
+    name: "react-inlinesvg",
+    url: "https://github.com/gilbarbara/react-inlinesvg",
+  },
+];
+
+const backendCredits: {
+  name: string;
+  url: string;
+}[] = [
+  {
+    name: "ASP.NET Core",
+    url: "https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core",
+  },
+  { name: "sqlite", url: "https://sqlite.org" },
+  {
+    name: "ImageSharp",
+    url: "https://github.com/SixLabors/ImageSharp",
+  },
+];
+
+const AboutPage: React.FC = () => {
+  const { t } = useTranslation();
+
+  return (
+    <div className="mt-appbar px-2 mb-4">
+      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
+        <h4 id="author-info">{t("about.author.title")}</h4>
+        <div>
+          <div className="d-flex">
+            <img
+              src={authorAvatarUrl}
+              className="align-self-start avatar large rounded-circle"
+            />
+            <div>
+              <p>
+                <small>{t("about.author.fullname")}</small>
+                <span className="text-primary">杨宇千</span>
+              </p>
+              <p>
+                <small>{t("about.author.nickname")}</small>
+                <span className="text-primary">crupest</span>
+              </p>
+              <p>
+                <small>{t("about.author.introduction")}</small>
+                {t("about.author.introductionContent")}
+              </p>
+            </div>
+          </div>
+          <p>
+            <small>{t("about.author.links")}</small>
+            <a
+              href="https://github.com/crupest"
+              target="_blank"
+              rel="noopener noreferrer"
+            >
+              <img src={githubLogoUrl} className="about-link-icon text-body" />
+            </a>
+          </p>
+        </div>
+      </div>
+      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
+        <h4>{t("about.site.title")}</h4>
+        <p>
+          <Trans i18nKey="about.site.content">
+            0<span className="text-primary">1</span>2<b>3</b>4
+            <a href="#author-info">5</a>6
+          </Trans>
+        </p>
+        <p>
+          <a
+            href="https://github.com/crupest/Timeline"
+            target="_blank"
+            rel="noopener noreferrer"
+          >
+            {t("about.site.repo")}
+          </a>
+        </p>
+      </div>
+      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
+        <h4>{t("about.credits.title")}</h4>
+        <p>{t("about.credits.content")}</p>
+        <p>{t("about.credits.frontend")}</p>
+        <ul>
+          {frontendCredits.map((item, index) => {
+            return (
+              <li key={index}>
+                <a href={item.url} target="_blank" rel="noopener noreferrer">
+                  {item.name}
+                </a>
+              </li>
+            );
+          })}
+          <li>...</li>
+        </ul>
+        <p>{t("about.credits.backend")}</p>
+        <ul>
+          {backendCredits.map((item, index) => {
+            return (
+              <li key={index}>
+                <a href={item.url} target="_blank" rel="noopener noreferrer">
+                  {item.name}
+                </a>
+              </li>
+            );
+          })}
+          <li>...</li>
+        </ul>
+      </div>
+    </div>
+  );
+};
+
+export default AboutPage;
diff --git a/FrontEnd/src/app/views/admin/Admin.tsx b/FrontEnd/src/app/views/admin/Admin.tsx
new file mode 100644
index 00000000..9c0250e7
--- /dev/null
+++ b/FrontEnd/src/app/views/admin/Admin.tsx
@@ -0,0 +1,75 @@
+import React, { Fragment } from "react";
+import {
+  Redirect,
+  Route,
+  Switch,
+  useRouteMatch,
+  useHistory,
+} from "react-router";
+import { Nav } from "react-bootstrap";
+
+import { UserWithToken } from "@/services/user";
+
+import UserAdmin from "./UserAdmin";
+
+interface AdminProps {
+  user: UserWithToken;
+}
+
+const Admin: React.FC<AdminProps> = (props) => {
+  const match = useRouteMatch();
+  const history = useHistory();
+  type TabNames = "users" | "more";
+
+  const tabName = history.location.pathname.replace(match.path + "/", "");
+
+  function toggle(newTab: TabNames): void {
+    history.push(`${match.url}/${newTab}`);
+  }
+
+  const createRoute = (
+    name: string,
+    body: React.ReactNode
+  ): React.ReactNode => {
+    return (
+      <Route path={`${match.path}/${name}`}>
+        <div style={{ height: 56 }} className="flex-fix-length" />
+        <Nav variant="tabs">
+          <Nav.Item>
+            <Nav.Link
+              active={tabName === "users"}
+              onClick={() => {
+                toggle("users");
+              }}
+            >
+              Users
+            </Nav.Link>
+          </Nav.Item>
+          <Nav.Item>
+            <Nav.Link
+              active={tabName === "more"}
+              onClick={() => {
+                toggle("more");
+              }}
+            >
+              More
+            </Nav.Link>
+          </Nav.Item>
+        </Nav>
+        {body}
+      </Route>
+    );
+  };
+
+  return (
+    <Fragment>
+      <Switch>
+        <Redirect from={match.path} to={`${match.path}/users`} exact />
+        {createRoute("users", <UserAdmin user={props.user} />)}
+        {createRoute("more", <div>More Page Works</div>)}
+      </Switch>
+    </Fragment>
+  );
+};
+
+export default Admin;
diff --git a/FrontEnd/src/app/views/admin/UserAdmin.tsx b/FrontEnd/src/app/views/admin/UserAdmin.tsx
new file mode 100644
index 00000000..18b77ca8
--- /dev/null
+++ b/FrontEnd/src/app/views/admin/UserAdmin.tsx
@@ -0,0 +1,460 @@
+import React, { useState, useEffect } from "react";
+import axios from "axios";
+import {
+  ListGroup,
+  Row,
+  Col,
+  Dropdown,
+  Spinner,
+  Button,
+} from "react-bootstrap";
+
+import OperationDialog from "../common/OperationDialog";
+import { User, UserWithToken } from "@/services/user";
+
+const apiBaseUrl = "/api";
+
+async function fetchUserList(_token: string): Promise<User[]> {
+  const res = await axios.get<User[]>(`${apiBaseUrl}/users`);
+  return res.data;
+}
+
+interface CreateUserInfo {
+  username: string;
+  password: string;
+  administrator: boolean;
+}
+
+async function createUser(user: CreateUserInfo, token: string): Promise<User> {
+  const res = await axios.post<User>(
+    `${apiBaseUrl}/userop/createuser?token=${token}`,
+    user
+  );
+  return res.data;
+}
+
+function deleteUser(username: string, token: string): Promise<void> {
+  return axios.delete(`${apiBaseUrl}/users/${username}?token=${token}`);
+}
+
+function changeUsername(
+  oldUsername: string,
+  newUsername: string,
+  token: string
+): Promise<void> {
+  return axios.patch(`${apiBaseUrl}/users/${oldUsername}?token=${token}`, {
+    username: newUsername,
+  });
+}
+
+function changePassword(
+  username: string,
+  newPassword: string,
+  token: string
+): Promise<void> {
+  return axios.patch(`${apiBaseUrl}/users/${username}?token=${token}`, {
+    password: newPassword,
+  });
+}
+
+function changePermission(
+  username: string,
+  newPermission: boolean,
+  token: string
+): Promise<void> {
+  return axios.patch(`${apiBaseUrl}/users/${username}?token=${token}`, {
+    administrator: newPermission,
+  });
+}
+
+const kChangeUsername = "changeusername";
+const kChangePassword = "changepassword";
+const kChangePermission = "changepermission";
+const kDelete = "delete";
+
+type TChangeUsername = typeof kChangeUsername;
+type TChangePassword = typeof kChangePassword;
+type TChangePermission = typeof kChangePermission;
+type TDelete = typeof kDelete;
+
+type ContextMenuItem =
+  | TChangeUsername
+  | TChangePassword
+  | TChangePermission
+  | TDelete;
+
+interface UserCardProps {
+  onContextMenu: (item: ContextMenuItem) => void;
+  user: User;
+}
+
+const UserItem: React.FC<UserCardProps> = (props) => {
+  const user = props.user;
+
+  const createClickCallback = (item: ContextMenuItem): (() => void) => {
+    return () => {
+      props.onContextMenu(item);
+    };
+  };
+
+  return (
+    <ListGroup.Item className="container">
+      <Row className="align-items-center">
+        <Col>
+          <p className="mb-0 text-primary">{user.username}</p>
+          <small
+            className={user.administrator ? "text-danger" : "text-secondary"}
+          >
+            {user.administrator ? "administrator" : "user"}
+          </small>
+        </Col>
+        <Col className="col-auto">
+          <Dropdown>
+            <Dropdown.Toggle variant="warning" className="text-light">
+              Manage
+            </Dropdown.Toggle>
+            <Dropdown.Menu>
+              <Dropdown.Item onClick={createClickCallback(kChangeUsername)}>
+                Change Username
+              </Dropdown.Item>
+              <Dropdown.Item onClick={createClickCallback(kChangePassword)}>
+                Change Password
+              </Dropdown.Item>
+              <Dropdown.Item onClick={createClickCallback(kChangePermission)}>
+                Change Permission
+              </Dropdown.Item>
+              <Dropdown.Item
+                className="text-danger"
+                onClick={createClickCallback(kDelete)}
+              >
+                Delete
+              </Dropdown.Item>
+            </Dropdown.Menu>
+          </Dropdown>
+        </Col>
+      </Row>
+    </ListGroup.Item>
+  );
+};
+
+interface DialogProps {
+  open: boolean;
+  close: () => void;
+}
+
+interface CreateUserDialogProps extends DialogProps {
+  process: (user: CreateUserInfo) => Promise<void>;
+}
+
+const CreateUserDialog: React.FC<CreateUserDialogProps> = (props) => {
+  return (
+    <OperationDialog
+      title="Create"
+      titleColor="create"
+      inputPrompt="You are creating a new user."
+      inputScheme={[
+        { type: "text", label: "Username" },
+        { type: "text", label: "Password" },
+        { type: "bool", label: "Administrator" },
+      ]}
+      onProcess={([username, password, administrator]) =>
+        props.process({
+          username: username as string,
+          password: password as string,
+          administrator: administrator as boolean,
+        })
+      }
+      close={props.close}
+      open={props.open}
+    />
+  );
+};
+
+const UsernameLabel: React.FC = (props) => {
+  return <span style={{ color: "blue" }}>{props.children}</span>;
+};
+
+interface UserDeleteDialogProps extends DialogProps {
+  username: string;
+  process: () => Promise<void>;
+}
+
+const UserDeleteDialog: React.FC<UserDeleteDialogProps> = (props) => {
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      title="Dangerous"
+      titleColor="dangerous"
+      inputPrompt={() => (
+        <>
+          {"You are deleting user "}
+          <UsernameLabel>{props.username}</UsernameLabel>
+          {" !"}
+        </>
+      )}
+      onProcess={props.process}
+    />
+  );
+};
+
+interface UserModifyDialogProps<T> extends DialogProps {
+  username: string;
+  process: (value: T) => Promise<void>;
+}
+
+const UserChangeUsernameDialog: React.FC<UserModifyDialogProps<string>> = (
+  props
+) => {
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      title="Caution"
+      titleColor="dangerous"
+      inputPrompt={() => (
+        <>
+          {"You are change the username of user "}
+          <UsernameLabel>{props.username}</UsernameLabel>
+          {" !"}
+        </>
+      )}
+      inputScheme={[{ type: "text", label: "New Username" }]}
+      onProcess={([newUsername]) => {
+        return props.process(newUsername as string);
+      }}
+    />
+  );
+};
+
+const UserChangePasswordDialog: React.FC<UserModifyDialogProps<string>> = (
+  props
+) => {
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      title="Caution"
+      titleColor="dangerous"
+      inputPrompt={() => (
+        <>
+          {"You are change the password of user "}
+          <UsernameLabel>{props.username}</UsernameLabel>
+          {" !"}
+        </>
+      )}
+      inputScheme={[{ type: "text", label: "New Password" }]}
+      onProcess={([newPassword]) => {
+        return props.process(newPassword as string);
+      }}
+    />
+  );
+};
+
+interface UserChangePermissionDialogProps extends DialogProps {
+  username: string;
+  newPermission: boolean;
+  process: () => Promise<void>;
+}
+
+const UserChangePermissionDialog: React.FC<UserChangePermissionDialogProps> = (
+  props
+) => {
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      title="Caution"
+      titleColor="dangerous"
+      inputPrompt={() => (
+        <>
+          {"You are change user "}
+          <UsernameLabel>{props.username}</UsernameLabel>
+          {" to "}
+          <span style={{ color: "orange" }}>
+            {props.newPermission ? "administrator" : "normal user"}
+          </span>
+          {" !"}
+        </>
+      )}
+      onProcess={props.process}
+    />
+  );
+};
+
+interface UserAdminProps {
+  user: UserWithToken;
+}
+
+const UserAdmin: React.FC<UserAdminProps> = (props) => {
+  type DialogInfo =
+    | null
+    | {
+        type: "create";
+      }
+    | { type: TDelete; username: string }
+    | {
+        type: TChangeUsername;
+        username: string;
+      }
+    | {
+        type: TChangePassword;
+        username: string;
+      }
+    | {
+        type: TChangePermission;
+        username: string;
+        newPermission: boolean;
+      };
+
+  const [users, setUsers] = useState<User[] | null>(null);
+  const [dialog, setDialog] = useState<DialogInfo>(null);
+
+  const token = props.user.token;
+
+  useEffect(() => {
+    let subscribe = true;
+    void fetchUserList(props.user.token).then((us) => {
+      if (subscribe) {
+        setUsers(us);
+      }
+    });
+    return () => {
+      subscribe = false;
+    };
+  }, [props.user]);
+
+  let dialogNode: React.ReactNode;
+  if (dialog)
+    switch (dialog.type) {
+      case "create":
+        dialogNode = (
+          <CreateUserDialog
+            open
+            close={() => setDialog(null)}
+            process={async (user) => {
+              const u = await createUser(user, token);
+              setUsers((oldUsers) => [...(oldUsers ?? []), u]);
+            }}
+          />
+        );
+        break;
+      case "delete":
+        dialogNode = (
+          <UserDeleteDialog
+            open
+            close={() => setDialog(null)}
+            username={dialog.username}
+            process={async () => {
+              await deleteUser(dialog.username, token);
+              setUsers((oldUsers) =>
+                (oldUsers ?? []).filter((u) => u.username !== dialog.username)
+              );
+            }}
+          />
+        );
+        break;
+      case kChangeUsername:
+        dialogNode = (
+          <UserChangeUsernameDialog
+            open
+            close={() => setDialog(null)}
+            username={dialog.username}
+            process={async (newUsername) => {
+              await changeUsername(dialog.username, newUsername, token);
+              setUsers((oldUsers) => {
+                const users = (oldUsers ?? []).slice();
+                const findedUser = users.find(
+                  (u) => u.username === dialog.username
+                );
+                if (findedUser) findedUser.username = newUsername;
+                return users;
+              });
+            }}
+          />
+        );
+        break;
+      case kChangePassword:
+        dialogNode = (
+          <UserChangePasswordDialog
+            open
+            close={() => setDialog(null)}
+            username={dialog.username}
+            process={async (newPassword) => {
+              await changePassword(dialog.username, newPassword, token);
+            }}
+          />
+        );
+        break;
+      case kChangePermission: {
+        const newPermission = dialog.newPermission;
+        dialogNode = (
+          <UserChangePermissionDialog
+            open
+            close={() => setDialog(null)}
+            username={dialog.username}
+            newPermission={newPermission}
+            process={async () => {
+              await changePermission(dialog.username, newPermission, token);
+              setUsers((oldUsers) => {
+                const users = (oldUsers ?? []).slice();
+                const findedUser = users.find(
+                  (u) => u.username === dialog.username
+                );
+                if (findedUser) findedUser.administrator = newPermission;
+                return users;
+              });
+            }}
+          />
+        );
+        break;
+      }
+    }
+
+  if (users) {
+    const userComponents = users.map((user) => {
+      return (
+        <UserItem
+          key={user.username}
+          user={user}
+          onContextMenu={(item) => {
+            setDialog(
+              item === kChangePermission
+                ? {
+                    type: kChangePermission,
+                    username: user.username,
+                    newPermission: !user.administrator,
+                  }
+                : {
+                    type: item,
+                    username: user.username,
+                  }
+            );
+          }}
+        />
+      );
+    });
+
+    return (
+      <>
+        <Button
+          variant="success"
+          onClick={() =>
+            setDialog({
+              type: "create",
+            })
+          }
+          className="align-self-end"
+        >
+          Create User
+        </Button>
+        {userComponents}
+        {dialogNode}
+      </>
+    );
+  } else {
+    return <Spinner animation="border" />;
+  }
+};
+
+export default UserAdmin;
diff --git a/FrontEnd/src/app/views/common/AppBar.tsx b/FrontEnd/src/app/views/common/AppBar.tsx
new file mode 100644
index 00000000..ee4ead8f
--- /dev/null
+++ b/FrontEnd/src/app/views/common/AppBar.tsx
@@ -0,0 +1,64 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { LinkContainer } from "react-router-bootstrap";
+import { Navbar, Nav } from "react-bootstrap";
+
+import { useUser, useAvatar } from "@/services/user";
+
+import TimelineLogo from "./TimelineLogo";
+import BlobImage from "./BlobImage";
+
+const AppBar: React.FC = (_) => {
+  const user = useUser();
+  const avatar = useAvatar(user?.username);
+
+  const { t } = useTranslation();
+
+  const isAdministrator = user && user.administrator;
+
+  return (
+    <Navbar bg="primary" variant="dark" expand="md" sticky="top">
+      <LinkContainer to="/">
+        <Navbar.Brand className="d-flex align-items-center">
+          <TimelineLogo style={{ height: "1em" }} />
+          Timeline
+        </Navbar.Brand>
+      </LinkContainer>
+
+      <Navbar.Toggle />
+      <Navbar.Collapse>
+        <Nav className="mr-auto">
+          <LinkContainer to="/settings">
+            <Nav.Link>{t("nav.settings")}</Nav.Link>
+          </LinkContainer>
+
+          <LinkContainer to="/about">
+            <Nav.Link>{t("nav.about")}</Nav.Link>
+          </LinkContainer>
+
+          {isAdministrator && (
+            <LinkContainer to="/admin">
+              <Nav.Link>Administration</Nav.Link>
+            </LinkContainer>
+          )}
+        </Nav>
+        <Nav className="ml-auto mr-2">
+          {user != null ? (
+            <LinkContainer to={`/users/${user.username}`}>
+              <BlobImage
+                className="avatar small rounded-circle bg-white"
+                blob={avatar}
+              />
+            </LinkContainer>
+          ) : (
+            <LinkContainer to="/login">
+              <Nav.Link>{t("nav.login")}</Nav.Link>
+            </LinkContainer>
+          )}
+        </Nav>
+      </Navbar.Collapse>
+    </Navbar>
+  );
+};
+
+export default AppBar;
diff --git a/FrontEnd/src/app/views/common/BlobImage.tsx b/FrontEnd/src/app/views/common/BlobImage.tsx
new file mode 100644
index 00000000..0dd25c52
--- /dev/null
+++ b/FrontEnd/src/app/views/common/BlobImage.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+
+const BlobImage: React.FC<
+  Omit<React.ImgHTMLAttributes<HTMLImageElement>, "src"> & {
+    blob?: Blob | unknown;
+  }
+> = (props) => {
+  const { blob, ...otherProps } = props;
+
+  const [url, setUrl] = React.useState<string | undefined>(undefined);
+
+  React.useEffect(() => {
+    if (blob instanceof Blob) {
+      const url = URL.createObjectURL(blob);
+      setUrl(url);
+      return () => {
+        URL.revokeObjectURL(url);
+      };
+    } else {
+      setUrl(undefined);
+    }
+  }, [blob]);
+
+  return <img {...otherProps} src={url} />;
+};
+
+export default BlobImage;
diff --git a/FrontEnd/src/app/views/common/ImageCropper.tsx b/FrontEnd/src/app/views/common/ImageCropper.tsx
new file mode 100644
index 00000000..b9db8b99
--- /dev/null
+++ b/FrontEnd/src/app/views/common/ImageCropper.tsx
@@ -0,0 +1,306 @@
+import React from "react";
+import clsx from "clsx";
+
+import { UiLogicError } from "@/common";
+
+export interface Clip {
+  left: number;
+  top: number;
+  width: number;
+}
+
+interface NormailizedClip extends Clip {
+  height: number;
+}
+
+interface ImageInfo {
+  width: number;
+  height: number;
+  landscape: boolean;
+  ratio: number;
+  maxClipWidth: number;
+  maxClipHeight: number;
+}
+
+interface ImageCropperSavedState {
+  clip: NormailizedClip;
+  x: number;
+  y: number;
+  pointerId: number;
+}
+
+export interface ImageCropperProps {
+  clip: Clip | null;
+  imageUrl: string;
+  onChange: (clip: Clip) => void;
+  imageElementCallback?: (element: HTMLImageElement | null) => void;
+  className?: string;
+}
+
+const ImageCropper = (props: ImageCropperProps): React.ReactElement => {
+  const { clip, imageUrl, onChange, imageElementCallback, className } = props;
+
+  const [oldState, setOldState] = React.useState<ImageCropperSavedState | null>(
+    null
+  );
+  const [imageInfo, setImageInfo] = React.useState<ImageInfo | null>(null);
+
+  const normalizeClip = (c: Clip | null | undefined): NormailizedClip => {
+    if (c == null) {
+      return { left: 0, top: 0, width: 0, height: 0 };
+    }
+
+    return {
+      left: c.left || 0,
+      top: c.top || 0,
+      width: c.width || 0,
+      height: imageInfo != null ? (c.width || 0) / imageInfo.ratio : 0,
+    };
+  };
+
+  const c = normalizeClip(clip);
+
+  const imgElementRef = React.useRef<HTMLImageElement | null>(null);
+
+  const onImageRef = React.useCallback(
+    (e: HTMLImageElement | null) => {
+      imgElementRef.current = e;
+      if (imageElementCallback != null && e == null) {
+        imageElementCallback(null);
+      }
+    },
+    [imageElementCallback]
+  );
+
+  const onImageLoad = React.useCallback(
+    (e: React.SyntheticEvent<HTMLImageElement>) => {
+      const img = e.currentTarget;
+      const landscape = img.naturalWidth >= img.naturalHeight;
+
+      const info = {
+        width: img.naturalWidth,
+        height: img.naturalHeight,
+        landscape,
+        ratio: img.naturalHeight / img.naturalWidth,
+        maxClipWidth: landscape ? img.naturalHeight / img.naturalWidth : 1,
+        maxClipHeight: landscape ? 1 : img.naturalWidth / img.naturalHeight,
+      };
+      setImageInfo(info);
+      onChange({ left: 0, top: 0, width: info.maxClipWidth });
+      if (imageElementCallback != null) {
+        imageElementCallback(img);
+      }
+    },
+    [onChange, imageElementCallback]
+  );
+
+  const onPointerDown = React.useCallback(
+    (e: React.PointerEvent) => {
+      if (oldState != null) return;
+      e.currentTarget.setPointerCapture(e.pointerId);
+      setOldState({
+        x: e.clientX,
+        y: e.clientY,
+        clip: c,
+        pointerId: e.pointerId,
+      });
+    },
+    [oldState, c]
+  );
+
+  const onPointerUp = React.useCallback(
+    (e: React.PointerEvent) => {
+      if (oldState == null || oldState.pointerId !== e.pointerId) return;
+      e.currentTarget.releasePointerCapture(e.pointerId);
+      setOldState(null);
+    },
+    [oldState]
+  );
+
+  const onPointerMove = React.useCallback(
+    (e: React.PointerEvent) => {
+      if (oldState == null) return;
+
+      const oldClip = oldState.clip;
+
+      const movement = { x: e.clientX - oldState.x, y: e.clientY - oldState.y };
+
+      const { current: imgElement } = imgElementRef;
+
+      if (imgElement == null) throw new UiLogicError("Image element is null.");
+
+      const moveRatio = {
+        x: movement.x / imgElement.width,
+        y: movement.y / imgElement.height,
+      };
+
+      const newRatio = {
+        x: oldClip.left + moveRatio.x,
+        y: oldClip.top + moveRatio.y,
+      };
+      if (newRatio.x < 0) {
+        newRatio.x = 0;
+      } else if (newRatio.x > 1 - oldClip.width) {
+        newRatio.x = 1 - oldClip.width;
+      }
+      if (newRatio.y < 0) {
+        newRatio.y = 0;
+      } else if (newRatio.y > 1 - oldClip.height) {
+        newRatio.y = 1 - oldClip.height;
+      }
+
+      onChange({ left: newRatio.x, top: newRatio.y, width: oldClip.width });
+    },
+    [oldState, onChange]
+  );
+
+  const onHandlerPointerMove = React.useCallback(
+    (e: React.PointerEvent) => {
+      if (oldState == null) return;
+
+      const oldClip = oldState.clip;
+
+      const movement = { x: e.clientX - oldState.x, y: e.clientY - oldState.y };
+
+      const ratio = imageInfo == null ? 1 : imageInfo.ratio;
+
+      const { current: imgElement } = imgElementRef;
+
+      if (imgElement == null) throw new UiLogicError("Image element is null.");
+
+      const moveRatio = {
+        x: movement.x / imgElement.width,
+        y: movement.x / imgElement.width / ratio,
+      };
+
+      const newRatio = {
+        x: oldClip.width + moveRatio.x,
+        y: oldClip.height + moveRatio.y,
+      };
+
+      const maxRatio = {
+        x: Math.min(1 - oldClip.left, newRatio.x),
+        y: Math.min(1 - oldClip.top, newRatio.y),
+      };
+
+      const maxWidthRatio = Math.min(maxRatio.x, maxRatio.y * ratio);
+
+      let newWidth;
+      if (newRatio.x < 0) {
+        newWidth = 0;
+      } else if (newRatio.x > maxWidthRatio) {
+        newWidth = maxWidthRatio;
+      } else {
+        newWidth = newRatio.x;
+      }
+
+      onChange({ left: oldClip.left, top: oldClip.top, width: newWidth });
+    },
+    [imageInfo, oldState, onChange]
+  );
+
+  const toPercentage = (n: number): string => `${n}%`;
+
+  // fuck!!! I just can't find a better way to implement this in pure css
+  const containerStyle: React.CSSProperties = (() => {
+    if (imageInfo == null) {
+      return { width: "100%", paddingTop: "100%", height: 0 };
+    } else {
+      if (imageInfo.ratio > 1) {
+        return {
+          width: toPercentage(100 / imageInfo.ratio),
+          paddingTop: "100%",
+          height: 0,
+        };
+      } else {
+        return {
+          width: "100%",
+          paddingTop: toPercentage(100 * imageInfo.ratio),
+          height: 0,
+        };
+      }
+    }
+  })();
+
+  return (
+    <div
+      className={clsx("image-cropper-container", className)}
+      style={containerStyle}
+    >
+      <img ref={onImageRef} src={imageUrl} onLoad={onImageLoad} alt="to crop" />
+      <div className="image-cropper-mask-container">
+        <div
+          className="image-cropper-mask"
+          touch-action="none"
+          style={{
+            left: toPercentage(c.left * 100),
+            top: toPercentage(c.top * 100),
+            width: toPercentage(c.width * 100),
+            height: toPercentage(c.height * 100),
+          }}
+          onPointerMove={onPointerMove}
+          onPointerDown={onPointerDown}
+          onPointerUp={onPointerUp}
+        />
+      </div>
+      <div
+        className="image-cropper-handler"
+        touch-action="none"
+        style={{
+          left: `calc(${(c.left + c.width) * 100}% - 15px)`,
+          top: `calc(${(c.top + c.height) * 100}% - 15px)`,
+        }}
+        onPointerMove={onHandlerPointerMove}
+        onPointerDown={onPointerDown}
+        onPointerUp={onPointerUp}
+      />
+    </div>
+  );
+};
+
+export default ImageCropper;
+
+export function applyClipToImage(
+  image: HTMLImageElement,
+  clip: Clip,
+  mimeType: string
+): Promise<Blob> {
+  return new Promise((resolve, reject) => {
+    const naturalSize = {
+      width: image.naturalWidth,
+      height: image.naturalHeight,
+    };
+    const clipArea = {
+      x: naturalSize.width * clip.left,
+      y: naturalSize.height * clip.top,
+      length: naturalSize.width * clip.width,
+    };
+
+    const canvas = document.createElement("canvas");
+    canvas.width = clipArea.length;
+    canvas.height = clipArea.length;
+    const context = canvas.getContext("2d");
+
+    if (context == null) throw new Error("Failed to create context.");
+
+    context.drawImage(
+      image,
+      clipArea.x,
+      clipArea.y,
+      clipArea.length,
+      clipArea.length,
+      0,
+      0,
+      clipArea.length,
+      clipArea.length
+    );
+
+    canvas.toBlob((blob) => {
+      if (blob == null) {
+        reject(new Error("canvas.toBlob returns null"));
+      } else {
+        resolve(blob);
+      }
+    }, mimeType);
+  });
+}
diff --git a/FrontEnd/src/app/views/common/LoadingButton.tsx b/FrontEnd/src/app/views/common/LoadingButton.tsx
new file mode 100644
index 00000000..154334a7
--- /dev/null
+++ b/FrontEnd/src/app/views/common/LoadingButton.tsx
@@ -0,0 +1,29 @@
+import React from "react";
+import { Button, ButtonProps, Spinner } from "react-bootstrap";
+
+const LoadingButton: React.FC<{ loading?: boolean } & ButtonProps> = ({
+  loading,
+  variant,
+  disabled,
+  ...otherProps
+}) => {
+  return (
+    <Button
+      variant={variant != null ? `outline-${variant}` : "outline-primary"}
+      disabled={disabled || loading}
+      {...otherProps}
+    >
+      {otherProps.children}
+      {loading ? (
+        <Spinner
+          className="ml-1"
+          variant={variant}
+          animation="grow"
+          size="sm"
+        />
+      ) : null}
+    </Button>
+  );
+};
+
+export default LoadingButton;
diff --git a/FrontEnd/src/app/views/common/LoadingPage.tsx b/FrontEnd/src/app/views/common/LoadingPage.tsx
new file mode 100644
index 00000000..590fafa0
--- /dev/null
+++ b/FrontEnd/src/app/views/common/LoadingPage.tsx
@@ -0,0 +1,12 @@
+import React from "react";
+import { Spinner } from "react-bootstrap";
+
+const LoadingPage: React.FC = () => {
+  return (
+    <div className="position-fixed w-100 h-100 d-flex justify-content-center align-items-center">
+      <Spinner variant="primary" animation="border" />
+    </div>
+  );
+};
+
+export default LoadingPage;
diff --git a/FrontEnd/src/app/views/common/OperationDialog.tsx b/FrontEnd/src/app/views/common/OperationDialog.tsx
new file mode 100644
index 00000000..841392a6
--- /dev/null
+++ b/FrontEnd/src/app/views/common/OperationDialog.tsx
@@ -0,0 +1,364 @@
+import React, { useState } from "react";
+import { useTranslation } from "react-i18next";
+import { Form, Button, Modal } from "react-bootstrap";
+
+import { UiLogicError } from "@/common";
+
+import LoadingButton from "./LoadingButton";
+
+interface DefaultErrorPromptProps {
+  error?: string;
+}
+
+const DefaultErrorPrompt: React.FC<DefaultErrorPromptProps> = (props) => {
+  const { t } = useTranslation();
+
+  let result = <p className="text-danger">{t("operationDialog.error")}</p>;
+
+  if (props.error != null) {
+    result = (
+      <>
+        {result}
+        <p className="text-danger">{props.error}</p>
+      </>
+    );
+  }
+
+  return result;
+};
+
+export type OperationInputOptionalError = undefined | null | string;
+
+export interface OperationInputErrorInfo {
+  [index: number]: OperationInputOptionalError;
+}
+
+export type OperationInputValidator<TValue> = (
+  value: TValue,
+  values: (string | boolean)[]
+) => OperationInputOptionalError | OperationInputErrorInfo;
+
+export interface OperationTextInputInfo {
+  type: "text";
+  password?: boolean;
+  label?: string;
+  initValue?: string;
+  textFieldProps?: Omit<
+    React.InputHTMLAttributes<HTMLInputElement>,
+    "type" | "value" | "onChange" | "aria-relevant"
+  >;
+  helperText?: string;
+  validator?: OperationInputValidator<string>;
+}
+
+export interface OperationBoolInputInfo {
+  type: "bool";
+  label: string;
+  initValue?: boolean;
+}
+
+export interface OperationSelectInputInfoOption {
+  value: string;
+  label: string;
+  icon?: React.ReactElement;
+}
+
+export interface OperationSelectInputInfo {
+  type: "select";
+  label: string;
+  options: OperationSelectInputInfoOption[];
+  initValue?: string;
+}
+
+export type OperationInputInfo =
+  | OperationTextInputInfo
+  | OperationBoolInputInfo
+  | OperationSelectInputInfo;
+
+interface OperationResult {
+  type: "success" | "failure";
+  data: unknown;
+}
+
+interface OperationDialogProps {
+  open: boolean;
+  close: () => void;
+  title: React.ReactNode;
+  titleColor?: "default" | "dangerous" | "create" | string;
+  onProcess: (inputs: (string | boolean)[]) => Promise<unknown>;
+  inputScheme?: OperationInputInfo[];
+  inputPrompt?: string | (() => React.ReactNode);
+  processPrompt?: () => React.ReactNode;
+  successPrompt?: (data: unknown) => React.ReactNode;
+  failurePrompt?: (error: unknown) => React.ReactNode;
+  onSuccessAndClose?: () => void;
+}
+
+const OperationDialog: React.FC<OperationDialogProps> = (props) => {
+  const inputScheme = props.inputScheme ?? [];
+
+  const { t } = useTranslation();
+
+  type Step = "input" | "process" | OperationResult;
+  const [step, setStep] = useState<Step>("input");
+  const [values, setValues] = useState<(boolean | string)[]>(
+    inputScheme.map((i) => {
+      if (i.type === "bool") {
+        return i.initValue ?? false;
+      } else if (i.type === "text" || i.type === "select") {
+        return i.initValue ?? "";
+      } else {
+        throw new UiLogicError("Unknown input scheme.");
+      }
+    })
+  );
+  const [inputError, setInputError] = useState<OperationInputErrorInfo>({});
+
+  const close = (): void => {
+    if (step !== "process") {
+      props.close();
+      if (
+        typeof step === "object" &&
+        step.type === "success" &&
+        props.onSuccessAndClose
+      ) {
+        props.onSuccessAndClose();
+      }
+    } else {
+      console.log("Attempt to close modal when processing.");
+    }
+  };
+
+  const onConfirm = (): void => {
+    setStep("process");
+    props.onProcess(values).then(
+      (d: unknown) => {
+        setStep({
+          type: "success",
+          data: d,
+        });
+      },
+      (e: unknown) => {
+        setStep({
+          type: "failure",
+          data: e,
+        });
+      }
+    );
+  };
+
+  let body: React.ReactNode;
+  if (step === "input" || step === "process") {
+    const process = step === "process";
+
+    let inputPrompt =
+      typeof props.inputPrompt === "function"
+        ? props.inputPrompt()
+        : props.inputPrompt;
+    inputPrompt = <h6>{inputPrompt}</h6>;
+
+    const updateValue = (
+      index: number,
+      newValue: string | boolean
+    ): (string | boolean)[] => {
+      const oldValues = values;
+      const newValues = oldValues.slice();
+      newValues[index] = newValue;
+      setValues(newValues);
+      return newValues;
+    };
+
+    const testErrorInfo = (errorInfo: OperationInputErrorInfo): boolean => {
+      for (let i = 0; i < inputScheme.length; i++) {
+        if (inputScheme[i].type === "text" && errorInfo[i] != null) {
+          return true;
+        }
+      }
+      return false;
+    };
+
+    const calculateError = (
+      oldError: OperationInputErrorInfo,
+      index: number,
+      newError: OperationInputOptionalError | OperationInputErrorInfo
+    ): OperationInputErrorInfo => {
+      if (newError === undefined) {
+        return oldError;
+      } else if (newError === null || typeof newError === "string") {
+        return { ...oldError, [index]: newError };
+      } else {
+        const newInputError: OperationInputErrorInfo = { ...oldError };
+        for (const [index, error] of Object.entries(newError)) {
+          if (error !== undefined) {
+            newInputError[+index] = error as OperationInputOptionalError;
+          }
+        }
+        return newInputError;
+      }
+    };
+
+    const validateAll = (): boolean => {
+      let newInputError = inputError;
+      for (let i = 0; i < inputScheme.length; i++) {
+        const item = inputScheme[i];
+        if (item.type === "text") {
+          newInputError = calculateError(
+            newInputError,
+            i,
+            item.validator?.(values[i] as string, values)
+          );
+        }
+      }
+      const result = !testErrorInfo(newInputError);
+      setInputError(newInputError);
+      return result;
+    };
+
+    body = (
+      <>
+        <Modal.Body>
+          {inputPrompt}
+          {inputScheme.map((item, index) => {
+            const value = values[index];
+            const error: string | undefined = ((e) =>
+              typeof e === "string" ? t(e) : undefined)(inputError?.[index]);
+
+            if (item.type === "text") {
+              return (
+                <Form.Group key={index}>
+                  {item.label && <Form.Label>{t(item.label)}</Form.Label>}
+                  <Form.Control
+                    type={item.password === true ? "password" : "text"}
+                    value={value as string}
+                    onChange={(e) => {
+                      const v = e.target.value;
+                      const newValues = updateValue(index, v);
+                      setInputError(
+                        calculateError(
+                          inputError,
+                          index,
+                          item.validator?.(v, newValues)
+                        )
+                      );
+                    }}
+                    isInvalid={error != null}
+                    disabled={process}
+                  />
+                  {error != null && (
+                    <Form.Control.Feedback type="invalid">
+                      {error}
+                    </Form.Control.Feedback>
+                  )}
+                  {item.helperText && (
+                    <Form.Text>{t(item.helperText)}</Form.Text>
+                  )}
+                </Form.Group>
+              );
+            } else if (item.type === "bool") {
+              return (
+                <Form.Group key={index}>
+                  <Form.Check<"input">
+                    type="checkbox"
+                    checked={value as boolean}
+                    onChange={(event) => {
+                      updateValue(index, event.currentTarget.checked);
+                    }}
+                    label={t(item.label)}
+                    disabled={process}
+                  />
+                </Form.Group>
+              );
+            } else if (item.type === "select") {
+              return (
+                <Form.Group key={index}>
+                  <Form.Label>{t(item.label)}</Form.Label>
+                  <Form.Control
+                    as="select"
+                    value={value as string}
+                    onChange={(event) => {
+                      updateValue(index, event.target.value);
+                    }}
+                    disabled={process}
+                  >
+                    {item.options.map((option, i) => {
+                      return (
+                        <option value={option.value} key={i}>
+                          {option.icon}
+                          {t(option.label)}
+                        </option>
+                      );
+                    })}
+                  </Form.Control>
+                </Form.Group>
+              );
+            }
+          })}
+        </Modal.Body>
+        <Modal.Footer>
+          <Button variant="outline-secondary" onClick={close}>
+            {t("operationDialog.cancel")}
+          </Button>
+          <LoadingButton
+            variant="primary"
+            loading={process}
+            disabled={testErrorInfo(inputError)}
+            onClick={() => {
+              if (validateAll()) {
+                onConfirm();
+              }
+            }}
+          >
+            {t("operationDialog.confirm")}
+          </LoadingButton>
+        </Modal.Footer>
+      </>
+    );
+  } else {
+    let content: React.ReactNode;
+    const result = step;
+    if (result.type === "success") {
+      content =
+        props.successPrompt?.(result.data) ?? t("operationDialog.success");
+      if (typeof content === "string")
+        content = <p className="text-success">{content}</p>;
+    } else {
+      content = props.failurePrompt?.(result.data) ?? <DefaultErrorPrompt />;
+      if (typeof content === "string")
+        content = <DefaultErrorPrompt error={content} />;
+    }
+    body = (
+      <>
+        <Modal.Body>{content}</Modal.Body>
+        <Modal.Footer>
+          <Button variant="primary" onClick={close}>
+            {t("operationDialog.ok")}
+          </Button>
+        </Modal.Footer>
+      </>
+    );
+  }
+
+  const title = typeof props.title === "string" ? t(props.title) : props.title;
+
+  return (
+    <Modal show={props.open} onHide={close}>
+      <Modal.Header
+        className={
+          props.titleColor != null
+            ? "text-" +
+              (props.titleColor === "create"
+                ? "success"
+                : props.titleColor === "dangerous"
+                ? "danger"
+                : props.titleColor)
+            : undefined
+        }
+      >
+        {title}
+      </Modal.Header>
+      {body}
+    </Modal>
+  );
+};
+
+export default OperationDialog;
diff --git a/FrontEnd/src/app/views/common/SearchInput.tsx b/FrontEnd/src/app/views/common/SearchInput.tsx
new file mode 100644
index 00000000..9833d515
--- /dev/null
+++ b/FrontEnd/src/app/views/common/SearchInput.tsx
@@ -0,0 +1,63 @@
+import React, { useCallback } from "react";
+import clsx from "clsx";
+import { useTranslation } from "react-i18next";
+import { Spinner, Form, Button } from "react-bootstrap";
+
+export interface SearchInputProps {
+  value: string;
+  onChange: (value: string) => void;
+  onButtonClick: () => void;
+  className?: string;
+  loading?: boolean;
+  buttonText?: string;
+  placeholder?: string;
+  additionalButton?: React.ReactNode;
+}
+
+const SearchInput: React.FC<SearchInputProps> = (props) => {
+  const { onChange, onButtonClick } = props;
+
+  const { t } = useTranslation();
+
+  const onInputChange = useCallback(
+    (event: React.ChangeEvent<HTMLInputElement>): void => {
+      onChange(event.currentTarget.value);
+    },
+    [onChange]
+  );
+
+  const onInputKeyPress = useCallback(
+    (event: React.KeyboardEvent<HTMLInputElement>): void => {
+      if (event.key === "Enter") {
+        onButtonClick();
+      }
+    },
+    [onButtonClick]
+  );
+
+  return (
+    <Form inline className={clsx("my-2", props.className)}>
+      <Form.Control
+        className="mr-sm-2 flex-grow-1"
+        value={props.value}
+        onChange={onInputChange}
+        onKeyPress={onInputKeyPress}
+        placeholder={props.placeholder}
+      />
+      <div className="mt-2 mt-sm-0 order-sm-last ml-sm-3">
+        {props.additionalButton}
+      </div>
+      <div className="mt-2 mt-sm-0 ml-auto ml-sm-0">
+        {props.loading ? (
+          <Spinner variant="primary" animation="border" />
+        ) : (
+          <Button variant="outline-primary" onClick={props.onButtonClick}>
+            {props.buttonText ?? t("search")}
+          </Button>
+        )}
+      </div>
+    </Form>
+  );
+};
+
+export default SearchInput;
diff --git a/FrontEnd/src/app/views/common/TimelineLogo.tsx b/FrontEnd/src/app/views/common/TimelineLogo.tsx
new file mode 100644
index 00000000..27d188fc
--- /dev/null
+++ b/FrontEnd/src/app/views/common/TimelineLogo.tsx
@@ -0,0 +1,26 @@
+import React, { SVGAttributes } from "react";
+
+export interface TimelineLogoProps extends SVGAttributes<SVGElement> {
+  color?: string;
+}
+
+const TimelineLogo: React.FC<TimelineLogoProps> = (props) => {
+  const { color, ...forwardProps } = props;
+  const coercedColor = color ?? "currentcolor";
+  return (
+    <svg
+      className={props.className}
+      viewBox="0 0 100 100"
+      fill="none"
+      strokeWidth="12"
+      stroke={coercedColor}
+      {...forwardProps}
+    >
+      <line x1="50" y1="0" x2="50" y2="25" />
+      <circle cx="50" cy="50" r="22" />
+      <line x1="50" y1="75" x2="50" y2="100" />
+    </svg>
+  );
+};
+
+export default TimelineLogo;
diff --git a/FrontEnd/src/app/views/common/UserTimelineLogo.tsx b/FrontEnd/src/app/views/common/UserTimelineLogo.tsx
new file mode 100644
index 00000000..29f6a69f
--- /dev/null
+++ b/FrontEnd/src/app/views/common/UserTimelineLogo.tsx
@@ -0,0 +1,26 @@
+import React, { SVGAttributes } from "react";
+
+export interface UserTimelineLogoProps extends SVGAttributes<SVGElement> {
+  color?: string;
+}
+
+const UserTimelineLogo: React.FC<UserTimelineLogoProps> = (props) => {
+  const { color, ...forwardProps } = props;
+  const coercedColor = color ?? "currentcolor";
+
+  return (
+    <svg viewBox="0 0 100 100" {...forwardProps}>
+      <g fill="none" stroke={coercedColor} strokeWidth="12">
+        <line x1="50" x2="50" y1="0" y2="25" />
+        <circle cx="50" cy="50" r="22" />
+        <line x1="50" x2="50" y1="75" y2="100" />
+      </g>
+      <g fill={color}>
+        <circle cx="85" cy="75" r="10" />
+        <path d="m70,100c0,0 15,-30 30,0.25" />
+      </g>
+    </svg>
+  );
+};
+
+export default UserTimelineLogo;
diff --git a/FrontEnd/src/app/views/common/alert/AlertHost.tsx b/FrontEnd/src/app/views/common/alert/AlertHost.tsx
new file mode 100644
index 00000000..c74f18e2
--- /dev/null
+++ b/FrontEnd/src/app/views/common/alert/AlertHost.tsx
@@ -0,0 +1,101 @@
+import React, { useCallback } from "react";
+import without from "lodash/without";
+import concat from "lodash/concat";
+import { useTranslation } from "react-i18next";
+import { Alert } from "react-bootstrap";
+
+import {
+  alertService,
+  AlertInfoEx,
+  kAlertHostId,
+  AlertInfo,
+} from "@/services/alert";
+
+interface AutoCloseAlertProps {
+  alert: AlertInfo;
+  close: () => void;
+}
+
+export const AutoCloseAlert: React.FC<AutoCloseAlertProps> = (props) => {
+  const { alert } = props;
+  const { dismissTime } = alert;
+
+  const { t } = useTranslation();
+
+  React.useEffect(() => {
+    const tag =
+      dismissTime === "never"
+        ? null
+        : typeof dismissTime === "number"
+        ? window.setTimeout(props.close, dismissTime)
+        : window.setTimeout(props.close, 5000);
+    return () => {
+      if (tag != null) {
+        window.clearTimeout(tag);
+      }
+    };
+  }, [dismissTime, props.close]);
+
+  return (
+    <Alert
+      className="m-3"
+      variant={alert.type ?? "primary"}
+      onClose={props.close}
+      dismissible
+    >
+      {(() => {
+        const { message } = alert;
+        if (typeof message === "function") {
+          const Message = message;
+          return <Message />;
+        } else if (typeof message === "object" && message.type === "i18n") {
+          return t(message.key);
+        } else return alert.message;
+      })()}
+    </Alert>
+  );
+};
+
+// oh what a bad name!
+interface AlertInfoExEx extends AlertInfoEx {
+  close: () => void;
+}
+
+const AlertHost: React.FC = () => {
+  const [alerts, setAlerts] = React.useState<AlertInfoExEx[]>([]);
+
+  // react guarantee that state setters are stable, so we don't need to add it to dependency list
+
+  const consume = useCallback((alert: AlertInfoEx): void => {
+    const alertEx: AlertInfoExEx = {
+      ...alert,
+      close: () => {
+        setAlerts((oldAlerts) => {
+          return without(oldAlerts, alertEx);
+        });
+      },
+    };
+    setAlerts((oldAlerts) => {
+      return concat(oldAlerts, alertEx);
+    });
+  }, []);
+
+  React.useEffect(() => {
+    alertService.registerConsumer(consume);
+    return () => {
+      alertService.unregisterConsumer(consume);
+    };
+  }, [consume]);
+
+  return (
+    <div id={kAlertHostId} className="alert-container">
+      {alerts.map((alert) => {
+        return (
+          <AutoCloseAlert key={alert.id} alert={alert} close={alert.close} />
+        );
+      })}
+    </div>
+  );
+};
+
+export default AlertHost;
diff --git a/FrontEnd/src/app/views/common/alert/alert.sass b/FrontEnd/src/app/views/common/alert/alert.sass
new file mode 100644
index 00000000..c3560b87
--- /dev/null
+++ b/FrontEnd/src/app/views/common/alert/alert.sass
@@ -0,0 +1,15 @@
+.alert-container
+  position: fixed
+  z-index: $zindex-popover
+
+@include media-breakpoint-up(sm)
+  .alert-container
+    bottom: 0
+    right: 0
+
+@include media-breakpoint-down(sm)
+  .alert-container
+    bottom: 0
+    right: 0
+    left: 0
+    text-align: center
diff --git a/FrontEnd/src/app/views/common/common.sass b/FrontEnd/src/app/views/common/common.sass
new file mode 100644
index 00000000..78e6fd14
--- /dev/null
+++ b/FrontEnd/src/app/views/common/common.sass
@@ -0,0 +1,33 @@
+.image-cropper-container
+  position: relative
+  box-sizing: border-box
+  user-select: none
+
+.image-cropper-container img
+  position: absolute
+  left: 0
+  top: 0
+  width: 100%
+  height: 100%
+
+.image-cropper-mask-container
+  position: absolute
+  left: 0
+  top: 0
+  right: 0
+  bottom: 0
+  overflow: hidden
+
+.image-cropper-mask
+  position: absolute
+  box-shadow: 0 0 0 10000px rgba(255, 255, 255, 80%)
+  touch-action: none
+
+.image-cropper-handler
+  position: absolute
+  width: 26px
+  height: 26px
+  border: black solid 2px
+  border-radius: 50%
+  background: white
+  touch-action: none
diff --git a/FrontEnd/src/app/views/home/BoardWithUser.tsx b/FrontEnd/src/app/views/home/BoardWithUser.tsx
new file mode 100644
index 00000000..dcd39cbe
--- /dev/null
+++ b/FrontEnd/src/app/views/home/BoardWithUser.tsx
@@ -0,0 +1,101 @@
+import React from "react";
+import { Row, Col } from "react-bootstrap";
+import { useTranslation } from "react-i18next";
+
+import { UserWithToken } from "@/services/user";
+import { TimelineInfo } from "@/services/timeline";
+import { getHttpTimelineClient } from "@/http/timeline";
+
+import TimelineBoard from "./TimelineBoard";
+import OfflineBoard from "./OfflineBoard";
+
+const BoardWithUser: React.FC<{ user: UserWithToken }> = ({ user }) => {
+  const { t } = useTranslation();
+
+  const [ownTimelines, setOwnTimelines] = React.useState<
+    TimelineInfo[] | "offline" | "loading"
+  >("loading");
+  const [joinTimelines, setJoinTimelines] = React.useState<
+    TimelineInfo[] | "offline" | "loading"
+  >("loading");
+
+  React.useEffect(() => {
+    let subscribe = true;
+    if (ownTimelines === "loading") {
+      void getHttpTimelineClient()
+        .listTimeline({ relate: user.username, relateType: "own" })
+        .then(
+          (timelines) => {
+            if (subscribe) {
+              setOwnTimelines(timelines);
+            }
+          },
+          () => {
+            setOwnTimelines("offline");
+          }
+        );
+    }
+    return () => {
+      subscribe = false;
+    };
+  }, [user, ownTimelines]);
+
+  React.useEffect(() => {
+    let subscribe = true;
+    if (joinTimelines === "loading") {
+      void getHttpTimelineClient()
+        .listTimeline({ relate: user.username, relateType: "join" })
+        .then(
+          (timelines) => {
+            if (subscribe) {
+              setJoinTimelines(timelines);
+            }
+          },
+          () => {
+            setJoinTimelines("offline");
+          }
+        );
+    }
+    return () => {
+      subscribe = false;
+    };
+  }, [user, joinTimelines]);
+
+  return (
+    <Row className="my-2 justify-content-center">
+      {ownTimelines === "offline" && joinTimelines === "offline" ? (
+        <Col className="py-2" sm="8" lg="6">
+          <OfflineBoard
+            onReload={() => {
+              setOwnTimelines("loading");
+              setJoinTimelines("loading");
+            }}
+          />
+        </Col>
+      ) : (
+        <>
+          <Col sm="6" lg="5" className="py-2">
+            <TimelineBoard
+              title={t("home.ownTimeline")}
+              timelines={ownTimelines}
+              onReload={() => {
+                setOwnTimelines("loading");
+              }}
+            />
+          </Col>
+          <Col sm="6" lg="5" className="py-2">
+            <TimelineBoard
+              title={t("home.joinTimeline")}
+              timelines={joinTimelines}
+              onReload={() => {
+                setJoinTimelines("loading");
+              }}
+            />
+          </Col>
+        </>
+      )}
+    </Row>
+  );
+};
+
+export default BoardWithUser;
diff --git a/FrontEnd/src/app/views/home/BoardWithoutUser.tsx b/FrontEnd/src/app/views/home/BoardWithoutUser.tsx
new file mode 100644
index 00000000..ebfddb50
--- /dev/null
+++ b/FrontEnd/src/app/views/home/BoardWithoutUser.tsx
@@ -0,0 +1,60 @@
+import React from "react";
+import { Row, Col } from "react-bootstrap";
+
+import { TimelineInfo } from "@/services/timeline";
+import { getHttpTimelineClient } from "@/http/timeline";
+
+import TimelineBoard from "./TimelineBoard";
+import OfflineBoard from "./OfflineBoard";
+
+const BoardWithoutUser: React.FC = () => {
+  const [publicTimelines, setPublicTimelines] = React.useState<
+    TimelineInfo[] | "offline" | "loading"
+  >("loading");
+
+  React.useEffect(() => {
+    let subscribe = true;
+    if (publicTimelines === "loading") {
+      void getHttpTimelineClient()
+        .listTimeline({ visibility: "Public" })
+        .then(
+          (timelines) => {
+            if (subscribe) {
+              setPublicTimelines(timelines);
+            }
+          },
+          () => {
+            setPublicTimelines("offline");
+          }
+        );
+    }
+    return () => {
+      subscribe = false;
+    };
+  }, [publicTimelines]);
+
+  return (
+    <Row className="my-2 justify-content-center">
+      {publicTimelines === "offline" ? (
+        <Col sm="8" lg="6">
+          <OfflineBoard
+            onReload={() => {
+              setPublicTimelines("loading");
+            }}
+          />
+        </Col>
+      ) : (
+        <Col sm="8" lg="6">
+          <TimelineBoard
+            timelines={publicTimelines}
+            onReload={() => {
+              setPublicTimelines("loading");
+            }}
+          />
+        </Col>
+      )}
+    </Row>
+  );
+};
+
+export default BoardWithoutUser;
diff --git a/FrontEnd/src/app/views/home/OfflineBoard.tsx b/FrontEnd/src/app/views/home/OfflineBoard.tsx
new file mode 100644
index 00000000..fc05bd74
--- /dev/null
+++ b/FrontEnd/src/app/views/home/OfflineBoard.tsx
@@ -0,0 +1,61 @@
+import React from "react";
+import { Link } from "react-router-dom";
+import { Trans } from "react-i18next";
+
+import { getAllCachedTimelineNames } from "@/services/timeline";
+import UserTimelineLogo from "../common/UserTimelineLogo";
+import TimelineLogo from "../common/TimelineLogo";
+
+export interface OfflineBoardProps {
+  onReload: () => void;
+}
+
+const OfflineBoard: React.FC<OfflineBoardProps> = ({ onReload }) => {
+  const [timelines, setTimelines] = React.useState<string[]>([]);
+
+  React.useEffect(() => {
+    let subscribe = true;
+    void getAllCachedTimelineNames().then((t) => {
+      if (subscribe) setTimelines(t);
+    });
+    return () => {
+      subscribe = false;
+    };
+  });
+
+  return (
+    <>
+      <Trans i18nKey="home.offlinePrompt">
+        0
+        <a
+          href="#"
+          onClick={(e) => {
+            onReload();
+            e.preventDefault();
+          }}
+        >
+          1
+        </a>
+        2
+      </Trans>
+      {timelines.map((timeline) => {
+        const isPersonal = timeline.startsWith("@");
+        const url = isPersonal
+          ? `/users/${timeline.slice(1)}`
+          : `/timelines/${timeline}`;
+        return (
+          <div key={timeline} className="timeline-board-item">
+            {isPersonal ? (
+              <UserTimelineLogo className="icon" />
+            ) : (
+              <TimelineLogo className="icon" />
+            )}
+            <Link to={url}>{timeline}</Link>
+          </div>
+        );
+      })}
+    </>
+  );
+};
+
+export default OfflineBoard;
diff --git a/FrontEnd/src/app/views/home/TimelineBoard.tsx b/FrontEnd/src/app/views/home/TimelineBoard.tsx
new file mode 100644
index 00000000..a3d176e1
--- /dev/null
+++ b/FrontEnd/src/app/views/home/TimelineBoard.tsx
@@ -0,0 +1,73 @@
+import React from "react";
+import clsx from "clsx";
+import { Link } from "react-router-dom";
+import { Trans } from "react-i18next";
+import { Spinner } from "react-bootstrap";
+
+import { TimelineInfo } from "@/services/timeline";
+import TimelineLogo from "../common/TimelineLogo";
+import UserTimelineLogo from "../common/UserTimelineLogo";
+
+export interface TimelineBoardProps {
+  title?: string;
+  timelines: TimelineInfo[] | "offline" | "loading";
+  onReload: () => void;
+  className?: string;
+}
+
+const TimelineBoard: React.FC<TimelineBoardProps> = (props) => {
+  const { title, timelines, className } = props;
+
+  return (
+    <div className={clsx("timeline-board", className)}>
+      {title != null && <h3 className="text-center">{title}</h3>}
+      {(() => {
+        if (timelines === "loading") {
+          return (
+            <div className="d-flex flex-grow-1 justify-content-center align-items-center">
+              <Spinner variant="primary" animation="border" />
+            </div>
+          );
+        } else if (timelines === "offline") {
+          return (
+            <div className="d-flex flex-grow-1 justify-content-center align-items-center">
+              <Trans i18nKey="loadFailReload" parent="div">
+                0
+                <a
+                  href="#"
+                  onClick={(e) => {
+                    props.onReload();
+                    e.preventDefault();
+                  }}
+                >
+                  1
+                </a>
+                2
+              </Trans>
+            </div>
+          );
+        } else {
+          return timelines.map((timeline) => {
+            const { name } = timeline;
+            const isPersonal = name.startsWith("@");
+            const url = isPersonal
+              ? `/users/${timeline.owner.username}`
+              : `/timelines/${name}`;
+            return (
+              <div key={name} className="timeline-board-item">
+                {isPersonal ? (
+                  <UserTimelineLogo className="icon" />
+                ) : (
+                  <TimelineLogo className="icon" />
+                )}
+                <Link to={url}>{name}</Link>
+              </div>
+            );
+          });
+        }
+      })()}
+    </div>
+  );
+};
+
+export default TimelineBoard;
diff --git a/FrontEnd/src/app/views/home/TimelineCreateDialog.tsx b/FrontEnd/src/app/views/home/TimelineCreateDialog.tsx
new file mode 100644
index 00000000..d9467719
--- /dev/null
+++ b/FrontEnd/src/app/views/home/TimelineCreateDialog.tsx
@@ -0,0 +1,53 @@
+import React from "react";
+import { useHistory } from "react-router";
+
+import { validateTimelineName, timelineService } from "@/services/timeline";
+import OperationDialog from "../common/OperationDialog";
+
+interface TimelineCreateDialogProps {
+  open: boolean;
+  close: () => void;
+}
+
+const TimelineCreateDialog: React.FC<TimelineCreateDialogProps> = (props) => {
+  const history = useHistory();
+
+  let nameSaved: string;
+
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      titleColor="success"
+      title="home.createDialog.title"
+      inputScheme={[
+        {
+          type: "text",
+          label: "home.createDialog.name",
+          helperText: "home.createDialog.nameFormat",
+          validator: (name) => {
+            if (name.length === 0) {
+              return "home.createDialog.noEmpty";
+            } else if (name.length > 26) {
+              return "home.createDialog.tooLong";
+            } else if (!validateTimelineName(name)) {
+              return "home.createDialog.badFormat";
+            } else {
+              return null;
+            }
+          },
+        },
+      ]}
+      onProcess={([name]) => {
+        nameSaved = name as string;
+        return timelineService.createTimeline(nameSaved).toPromise();
+      }}
+      onSuccessAndClose={() => {
+        history.push(`timelines/${nameSaved}`);
+      }}
+      failurePrompt={(e) => `${e as string}`}
+    />
+  );
+};
+
+export default TimelineCreateDialog;
diff --git a/FrontEnd/src/app/views/home/home.sass b/FrontEnd/src/app/views/home/home.sass
new file mode 100644
index 00000000..28a2e5f3
--- /dev/null
+++ b/FrontEnd/src/app/views/home/home.sass
@@ -0,0 +1,13 @@
+.timeline-board-item
+  font-size: 1.1em
+  @extend .my-2
+  .icon
+    height: 1.3em
+    @extend .mr-2
+
+.timeline-board
+  @extend .cru-card
+  @extend .d-flex
+  @extend .flex-column
+  @extend .p-3
+  min-height: 200px
diff --git a/FrontEnd/src/app/views/home/index.tsx b/FrontEnd/src/app/views/home/index.tsx
new file mode 100644
index 00000000..760adcea
--- /dev/null
+++ b/FrontEnd/src/app/views/home/index.tsx
@@ -0,0 +1,99 @@
+import React from "react";
+import { useHistory } from "react-router";
+import { useTranslation } from "react-i18next";
+import { Row, Container, Button, Col } from "react-bootstrap";
+
+import { useUser } from "@/services/user";
+import SearchInput from "../common/SearchInput";
+
+import BoardWithoutUser from "./BoardWithoutUser";
+import BoardWithUser from "./BoardWithUser";
+import TimelineCreateDialog from "./TimelineCreateDialog";
+
+const HomePage: React.FC = () => {
+  const history = useHistory();
+
+  const { t } = useTranslation();
+
+  const user = useUser();
+
+  const [navText, setNavText] = React.useState<string>("");
+
+  const [dialog, setDialog] = React.useState<"create" | null>(null);
+
+  const goto = React.useCallback((): void => {
+    if (navText === "") {
+      history.push("users/crupest");
+    } else if (navText.startsWith("@")) {
+      history.push(`users/${navText.slice(1)}`);
+    } else {
+      history.push(`timelines/${navText}`);
+    }
+  }, [navText, history]);
+
+  return (
+    <>
+      <Container fluid>
+        <Row className="justify-content-center">
+          <Col xs={12} sm={10} md={8} lg={6}>
+            <SearchInput
+              className="justify-content-center"
+              value={navText}
+              onChange={setNavText}
+              onButtonClick={goto}
+              buttonText={t("home.go")}
+              placeholder="@crupest"
+              additionalButton={
+                user != null && (
+                  <Button
+                    variant="outline-success"
+                    onClick={() => {
+                      setDialog("create");
+                    }}
+                  >
+                    {t("home.createButton")}
+                  </Button>
+                )
+              }
+            />
+          </Col>
+        </Row>
+        {(() => {
+          if (user == null) {
+            return <BoardWithoutUser />;
+          } else {
+            return <BoardWithUser user={user} />;
+          }
+        })()}
+      </Container>
+      <footer className="text-right">
+        <a
+          className="mx-3 text-muted"
+          href="http://beian.miit.gov.cn/"
+          target="_blank"
+          rel="noopener noreferrer"
+        >
+          <small>鄂ICP备18030913号-1</small>
+        </a>
+        <a
+          className="mx-3 text-muted"
+          href="http://www.beian.gov.cn/"
+          target="_blank"
+          rel="noopener noreferrer"
+        >
+          <small className="white-space-no-wrap">公安备案 42112102000124</small>
+        </a>
+      </footer>
+      {dialog === "create" && (
+        <TimelineCreateDialog
+          open
+          close={() => {
+            setDialog(null);
+          }}
+        />
+      )}
+    </>
+  );
+};
+
+export default HomePage;
diff --git a/FrontEnd/src/app/views/login/index.tsx b/FrontEnd/src/app/views/login/index.tsx
new file mode 100644
index 00000000..61b9a525
--- /dev/null
+++ b/FrontEnd/src/app/views/login/index.tsx
@@ -0,0 +1,151 @@
+import React from "react";
+import { useHistory } from "react-router";
+import { useTranslation } from "react-i18next";
+import { Container, Form } from "react-bootstrap";
+
+import { useUser, userService } from "@/services/user";
+
+import AppBar from "../common/AppBar";
+import LoadingButton from "../common/LoadingButton";
+
+const LoginPage: React.FC = (_) => {
+  const { t } = useTranslation();
+  const history = useHistory();
+  const [username, setUsername] = React.useState<string>("");
+  const [usernameDirty, setUsernameDirty] = React.useState<boolean>(false);
+  const [password, setPassword] = React.useState<string>("");
+  const [passwordDirty, setPasswordDirty] = React.useState<boolean>(false);
+  const [rememberMe, setRememberMe] = React.useState<boolean>(true);
+  const [process, setProcess] = React.useState<boolean>(false);
+  const [error, setError] = React.useState<string | null>(null);
+
+  const user = useUser();
+
+  React.useEffect(() => {
+    if (user != null) {
+      const id = setTimeout(() => history.push("/"), 3000);
+      return () => {
+        clearTimeout(id);
+      };
+    }
+  }, [history, user]);
+
+  if (user != null) {
+    return (
+      <>
+        <AppBar />
+        <p className="mt-appbar">{t("login.alreadyLogin")}</p>
+      </>
+    );
+  }
+
+  const submit = (): void => {
+    if (username === "" || password === "") {
+      setUsernameDirty(true);
+      setPasswordDirty(true);
+      return;
+    }
+
+    setProcess(true);
+    userService
+      .login(
+        {
+          username: username,
+          password: password,
+        },
+        rememberMe
+      )
+      .then(
+        () => {
+          if (history.length === 0) {
+            history.push("/");
+          } else {
+            history.goBack();
+          }
+        },
+        (e: Error) => {
+          setProcess(false);
+          setError(e.message);
+        }
+      );
+  };
+
+  const onEnterPressInPassword: React.KeyboardEventHandler = (e) => {
+    if (e.key === "Enter") {
+      submit();
+    }
+  };
+
+  return (
+    <Container fluid className="login-container mt-2">
+      <h1 className="text-center">{t("welcome")}</h1>
+      <Form>
+        <Form.Group>
+          <Form.Label htmlFor="username">{t("user.username")}</Form.Label>
+          <Form.Control
+            id="username"
+            disabled={process}
+            onChange={(e) => {
+              setUsername(e.target.value);
+              setUsernameDirty(true);
+            }}
+            value={username}
+            isInvalid={usernameDirty && username === ""}
+          />
+          {usernameDirty && username === "" && (
+            <Form.Control.Feedback type="invalid">
+              {t("login.emptyUsername")}
+            </Form.Control.Feedback>
+          )}
+        </Form.Group>
+        <Form.Group>
+          <Form.Label htmlFor="password">{t("user.password")}</Form.Label>
+          <Form.Control
+            id="password"
+            type="password"
+            disabled={process}
+            onChange={(e) => {
+              setPassword(e.target.value);
+              setPasswordDirty(true);
+            }}
+            value={password}
+            onKeyDown={onEnterPressInPassword}
+            isInvalid={passwordDirty && password === ""}
+          />
+          {passwordDirty && password === "" && (
+            <Form.Control.Feedback type="invalid">
+              {t("login.emptyPassword")}
+            </Form.Control.Feedback>
+          )}
+        </Form.Group>
+        <Form.Group>
+          <Form.Check<"input">
+            id="remember-me"
+            type="checkbox"
+            checked={rememberMe}
+            onChange={(e) => {
+              setRememberMe(e.currentTarget.checked);
+            }}
+            label={t("user.rememberMe")}
+          />
+        </Form.Group>
+        {error ? <p className="text-danger">{t(error)}</p> : null}
+        <div className="text-right">
+          <LoadingButton
+            loading={process}
+            variant="primary"
+            onClick={(e) => {
+              submit();
+              e.preventDefault();
+            }}
+            disabled={username === "" || password === "" ? true : undefined}
+          >
+            {t("user.login")}
+          </LoadingButton>
+        </div>
+      </Form>
+    </Container>
+  );
+};
+
+export default LoginPage;
diff --git a/FrontEnd/src/app/views/login/login.sass b/FrontEnd/src/app/views/login/login.sass
new file mode 100644
index 00000000..0bf385f5
--- /dev/null
+++ b/FrontEnd/src/app/views/login/login.sass
@@ -0,0 +1,2 @@
+.login-container
+  max-width: 600px
diff --git a/FrontEnd/src/app/views/settings/index.tsx b/FrontEnd/src/app/views/settings/index.tsx
new file mode 100644
index 00000000..964e7442
--- /dev/null
+++ b/FrontEnd/src/app/views/settings/index.tsx
@@ -0,0 +1,209 @@
+import React, { useState } from "react";
+import { useHistory } from "react-router";
+import { useTranslation } from "react-i18next";
+import { Form, Container, Row, Col, Button, Modal } from "react-bootstrap";
+
+import { useUser, userService } from "@/services/user";
+import OperationDialog, {
+  OperationInputErrorInfo,
+} from "../common/OperationDialog";
+
+interface ChangePasswordDialogProps {
+  open: boolean;
+  close: () => void;
+}
+
+const ChangePasswordDialog: React.FC<ChangePasswordDialogProps> = (props) => {
+  const history = useHistory();
+  const { t } = useTranslation();
+
+  const [redirect, setRedirect] = useState<boolean>(false);
+
+  return (
+    <OperationDialog
+      open={props.open}
+      title={t("settings.dialogChangePassword.title")}
+      titleColor="dangerous"
+      inputPrompt={t("settings.dialogChangePassword.prompt")}
+      inputScheme={[
+        {
+          type: "text",
+          label: t("settings.dialogChangePassword.inputOldPassword"),
+          password: true,
+          validator: (v) =>
+            v === ""
+              ? "settings.dialogChangePassword.errorEmptyOldPassword"
+              : null,
+        },
+        {
+          type: "text",
+          label: t("settings.dialogChangePassword.inputNewPassword"),
+          password: true,
+          validator: (v, values) => {
+            const error: OperationInputErrorInfo = {};
+            error[1] =
+              v === ""
+                ? "settings.dialogChangePassword.errorEmptyNewPassword"
+                : null;
+            if (v === values[2]) {
+              error[2] = null;
+            } else {
+              if (values[2] !== "") {
+                error[2] = "settings.dialogChangePassword.errorRetypeNotMatch";
+              }
+            }
+            return error;
+          },
+        },
+        {
+          type: "text",
+          label: t("settings.dialogChangePassword.inputRetypeNewPassword"),
+          password: true,
+          validator: (v, values) =>
+            v !== values[1]
+              ? "settings.dialogChangePassword.errorRetypeNotMatch"
+              : null,
+        },
+      ]}
+      onProcess={async ([oldPassword, newPassword]) => {
+        await userService
+          .changePassword(oldPassword as string, newPassword as string)
+          .toPromise();
+        await userService.logout();
+        setRedirect(true);
+      }}
+      close={() => {
+        props.close();
+        if (redirect) {
+          history.push("/login");
+        }
+      }}
+    />
+  );
+};
+
+const ConfirmLogoutDialog: React.FC<{
+  toggle: () => void;
+  onConfirm: () => void;
+}> = ({ toggle, onConfirm }) => {
+  const { t } = useTranslation();
+
+  return (
+    <Modal show centered onHide={toggle}>
+      <Modal.Header>
+        <Modal.Title className="text-danger">
+          {t("settings.dialogConfirmLogout.title")}
+        </Modal.Title>
+      </Modal.Header>
+      <Modal.Body>{t("settings.dialogConfirmLogout.prompt")}</Modal.Body>
+      <Modal.Footer>
+        <Button variant="secondary" onClick={toggle}>
+          {t("operationDialog.cancel")}
+        </Button>
+        <Button variant="danger" onClick={onConfirm}>
+          {t("operationDialog.confirm")}
+        </Button>
+      </Modal.Footer>
+    </Modal>
+  );
+};
+
+const SettingsPage: React.FC = (_) => {
+  const { i18n, t } = useTranslation();
+  const user = useUser();
+  const history = useHistory();
+
+  const [dialog, setDialog] = useState<null | "changepassword" | "logout">(
+    null
+  );
+
+  const language = i18n.language.slice(0, 2);
+
+  return (
+    <Container fluid>
+      {user ? (
+        <>
+          <Row className="border-bottom p-3 cursor-pointer">
+            <Col xs="12">
+              <h5
+                onClick={() => {
+                  history.push(`/users/${user.username}`);
+                }}
+              >
+                {t("settings.gotoSelf")}
+              </h5>
+            </Col>
+          </Row>
+          <Row className="border-bottom p-3 cursor-pointer">
+            <Col xs="12">
+              <h5
+                className="text-danger"
+                onClick={() => setDialog("changepassword")}
+              >
+                {t("settings.changePassword")}
+              </h5>
+            </Col>
+          </Row>
+          <Row className="border-bottom p-3 cursor-pointer">
+            <Col xs="12">
+              <h5
+                className="text-danger"
+                onClick={() => {
+                  setDialog("logout");
+                }}
+              >
+                {t("settings.logout")}
+              </h5>
+            </Col>
+          </Row>
+        </>
+      ) : null}
+      <Row className="align-items-center border-bottom p-3">
+        <Col xs="12" sm="auto">
+          <h5>{t("settings.languagePrimary")}</h5>
+          <p>{t("settings.languageSecondary")}</p>
+        </Col>
+        <Col xs="auto" className="ml-auto">
+          <Form.Control
+            as="select"
+            value={language}
+            onChange={(e) => {
+              void i18n.changeLanguage(e.target.value);
+            }}
+          >
+            <option value="zh">中文</option>
+            <option value="en">English</option>
+          </Form.Control>
+        </Col>
+      </Row>
+      {(() => {
+        switch (dialog) {
+          case "changepassword":
+            return (
+              <ChangePasswordDialog
+                open
+                close={() => {
+                  setDialog(null);
+                }}
+              />
+            );
+          case "logout":
+            return (
+              <ConfirmLogoutDialog
+                toggle={() => setDialog(null)}
+                onConfirm={() => {
+                  void userService.logout().then(() => {
+                    history.push("/");
+                  });
+                }}
+              />
+            );
+          default:
+            return null;
+        }
+      })()}
+    </Container>
+  );
+};
+
+export default SettingsPage;
diff --git a/FrontEnd/src/app/views/timeline-common/CollapseButton.tsx b/FrontEnd/src/app/views/timeline-common/CollapseButton.tsx
new file mode 100644
index 00000000..3c52150f
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/CollapseButton.tsx
@@ -0,0 +1,23 @@
+import React from "react";
+import clsx from "clsx";
+import Svg from "react-inlinesvg";
+import arrowsAngleContractIcon from "bootstrap-icons/icons/arrows-angle-contract.svg";
+import arrowsAngleExpandIcon from "bootstrap-icons/icons/arrows-angle-expand.svg";
+
+const CollapseButton: React.FC<{
+  collapse: boolean;
+  onClick: () => void;
+  className?: string;
+  style?: React.CSSProperties;
+}> = ({ collapse, onClick, className, style }) => {
+  return (
+    <Svg
+      src={collapse ? arrowsAngleExpandIcon : arrowsAngleContractIcon}
+      onClick={onClick}
+      className={clsx("text-primary icon-button", className)}
+      style={style}
+    />
+  );
+};
+
+export default CollapseButton;
diff --git a/FrontEnd/src/app/views/timeline-common/InfoCardTemplate.tsx b/FrontEnd/src/app/views/timeline-common/InfoCardTemplate.tsx
new file mode 100644
index 00000000..a8de20aa
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/InfoCardTemplate.tsx
@@ -0,0 +1,26 @@
+import React from "react";
+import clsx from "clsx";
+
+import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
+import SyncStatusBadge from "../timeline-common/SyncStatusBadge";
+import CollapseButton from "../timeline-common/CollapseButton";
+
+const InfoCardTemplate: React.FC<
+  Pick<
+    TimelineCardComponentProps<"">,
+    "collapse" | "toggleCollapse" | "syncStatus" | "className"
+  > & { children: React.ReactElement[] }
+> = ({ collapse, toggleCollapse, syncStatus, className, children }) => {
+  return (
+    <div className={clsx("cru-card p-2 clearfix", className)}>
+      <div className="float-right d-flex align-items-center">
+        <SyncStatusBadge status={syncStatus} className="mr-2" />
+        <CollapseButton collapse={collapse} onClick={toggleCollapse} />
+      </div>
+
+      <div style={{ display: collapse ? "none" : "block" }}>{children}</div>
+    </div>
+  );
+};
+
+export default InfoCardTemplate;
diff --git a/FrontEnd/src/app/views/timeline-common/SyncStatusBadge.tsx b/FrontEnd/src/app/views/timeline-common/SyncStatusBadge.tsx
new file mode 100644
index 00000000..e67cfb43
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/SyncStatusBadge.tsx
@@ -0,0 +1,58 @@
+import React from "react";
+import clsx from "clsx";
+import { useTranslation } from "react-i18next";
+
+import { UiLogicError } from "@/common";
+
+export type TimelineSyncStatus = "syncing" | "synced" | "offline";
+
+const SyncStatusBadge: React.FC<{
+  status: TimelineSyncStatus;
+  style?: React.CSSProperties;
+  className?: string;
+}> = ({ status, style, className }) => {
+  const { t } = useTranslation();
+
+  return (
+    <div style={style} className={clsx("timeline-sync-state-badge", className)}>
+      {(() => {
+        switch (status) {
+          case "syncing": {
+            return (
+              <>
+                <span className="timeline-sync-state-badge-pin bg-warning" />
+                <span className="text-warning">
+                  {t("timeline.postSyncState.syncing")}
+                </span>
+              </>
+            );
+          }
+          case "synced": {
+            return (
+              <>
+                <span className="timeline-sync-state-badge-pin bg-success" />
+                <span className="text-success">
+                  {t("timeline.postSyncState.synced")}
+                </span>
+              </>
+            );
+          }
+          case "offline": {
+            return (
+              <>
+                <span className="timeline-sync-state-badge-pin bg-danger" />
+                <span className="text-danger">
+                  {t("timeline.postSyncState.offline")}
+                </span>
+              </>
+            );
+          }
+          default:
+            throw new UiLogicError("Unknown sync state.");
+        }
+      })()}
+    </div>
+  );
+};
+
+export default SyncStatusBadge;
diff --git a/FrontEnd/src/app/views/timeline-common/Timeline.tsx b/FrontEnd/src/app/views/timeline-common/Timeline.tsx
new file mode 100644
index 00000000..fd051d45
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/Timeline.tsx
@@ -0,0 +1,84 @@
+import React from "react";
+import clsx from "clsx";
+
+import { TimelinePostInfo } from "@/services/timeline";
+
+import TimelineItem from "./TimelineItem";
+
+export interface TimelinePostInfoEx extends TimelinePostInfo {
+  deletable: boolean;
+}
+
+export type TimelineDeleteCallback = (index: number, id: number) => void;
+
+export interface TimelineProps {
+  className?: string;
+  posts: TimelinePostInfoEx[];
+  onDelete: TimelineDeleteCallback;
+  onResize?: () => void;
+  containerRef?: React.Ref<HTMLDivElement>;
+}
+
+const Timeline: React.FC<TimelineProps> = (props) => {
+  const { posts, onDelete, onResize } = props;
+
+  const [indexShowDeleteButton, setIndexShowDeleteButton] = React.useState<
+    number
+  >(-1);
+
+  const onItemClick = React.useCallback(() => {
+    setIndexShowDeleteButton(-1);
+  }, []);
+
+  const onToggleDelete = React.useMemo(() => {
+    return posts.map((post, i) => {
+      return post.deletable
+        ? () => {
+            setIndexShowDeleteButton((oldIndexShowDeleteButton) => {
+              return oldIndexShowDeleteButton !== i ? i : -1;
+            });
+          }
+        : undefined;
+    });
+  }, [posts]);
+
+  const onItemDelete = React.useMemo(() => {
+    return posts.map((post, i) => {
+      return () => {
+        onDelete(i, post.id);
+      };
+    });
+  }, [posts, onDelete]);
+
+  return (
+    <div ref={props.containerRef} className={clsx("timeline", props.className)}>
+      {(() => {
+        const length = posts.length;
+        return posts.map((post, i) => {
+          const toggleMore = onToggleDelete[i];
+
+          return (
+            <TimelineItem
+              post={post}
+              key={post.id}
+              current={length - 1 === i}
+              more={
+                toggleMore
+                  ? {
+                      isOpen: indexShowDeleteButton === i,
+                      toggle: toggleMore,
+                      onDelete: onItemDelete[i],
+                    }
+                  : undefined
+              }
+              onClick={onItemClick}
+              onResize={onResize}
+            />
+          );
+        });
+      })()}
+    </div>
+  );
+};
+
+export default Timeline;
diff --git a/FrontEnd/src/app/views/timeline-common/TimelineItem.tsx b/FrontEnd/src/app/views/timeline-common/TimelineItem.tsx
new file mode 100644
index 00000000..4db23371
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelineItem.tsx
@@ -0,0 +1,172 @@
+import React from "react";
+import clsx from "clsx";
+import { Link } from "react-router-dom";
+import { useTranslation } from "react-i18next";
+import Svg from "react-inlinesvg";
+import chevronDownIcon from "bootstrap-icons/icons/chevron-down.svg";
+import trashIcon from "bootstrap-icons/icons/trash.svg";
+import { Modal, Button } from "react-bootstrap";
+
+import { useAvatar } from "@/services/user";
+import { TimelinePostInfo } from "@/services/timeline";
+
+import BlobImage from "../common/BlobImage";
+
+const TimelinePostDeleteConfirmDialog: React.FC<{
+  toggle: () => void;
+  onConfirm: () => void;
+}> = ({ toggle, onConfirm }) => {
+  const { t } = useTranslation();
+
+  return (
+    <Modal toggle={toggle} isOpen centered>
+      <Modal.Header>
+        <Modal.Title className="text-danger">
+          {t("timeline.post.deleteDialog.title")}
+        </Modal.Title>
+      </Modal.Header>
+      <Modal.Body>{t("timeline.post.deleteDialog.prompt")}</Modal.Body>
+      <Modal.Footer>
+        <Button variant="secondary" onClick={toggle}>
+          {t("operationDialog.cancel")}
+        </Button>
+        <Button
+          variant="danger"
+          onClick={() => {
+            onConfirm();
+            toggle();
+          }}
+        >
+          {t("operationDialog.confirm")}
+        </Button>
+      </Modal.Footer>
+    </Modal>
+  );
+};
+
+export interface TimelineItemProps {
+  post: TimelinePostInfo;
+  current?: boolean;
+  more?: {
+    isOpen: boolean;
+    toggle: () => void;
+    onDelete: () => void;
+  };
+  onClick?: () => void;
+  onResize?: () => void;
+  className?: string;
+  style?: React.CSSProperties;
+}
+
+const TimelineItem: React.FC<TimelineItemProps> = (props) => {
+  const { i18n } = useTranslation();
+
+  const current = props.current === true;
+
+  const { more, onResize } = props;
+
+  const avatar = useAvatar(props.post.author.username);
+
+  const [deleteDialog, setDeleteDialog] = React.useState<boolean>(false);
+  const toggleDeleteDialog = React.useCallback(
+    () => setDeleteDialog((old) => !old),
+    []
+  );
+
+  return (
+    <div
+      className={clsx(
+        "timeline-item position-relative",
+        current && "current",
+        props.className
+      )}
+      onClick={props.onClick}
+      style={props.style}
+    >
+      <div className="timeline-line-area-container">
+        <div className="timeline-line-area">
+          <div className="timeline-line-segment start"></div>
+          <div className="timeline-line-node-container">
+            <div className="timeline-line-node"></div>
+          </div>
+          <div className="timeline-line-segment end"></div>
+          {current && <div className="timeline-line-segment current-end" />}
+        </div>
+      </div>
+      <div className="timeline-content-area">
+        <div>
+          <span className="mr-2">
+            <span className="text-primary white-space-no-wrap mr-2">
+              {props.post.time.toLocaleString(i18n.languages)}
+            </span>
+            <small className="text-dark">{props.post.author.nickname}</small>
+          </span>
+          {more != null ? (
+            <Svg
+              src={chevronDownIcon}
+              className="text-info icon-button"
+              onClick={(e) => {
+                more.toggle();
+                e.stopPropagation();
+              }}
+            />
+          ) : null}
+        </div>
+        <div className="timeline-content">
+          <Link
+            className="float-left m-2"
+            to={"/users/" + props.post.author.username}
+          >
+            <BlobImage
+              onLoad={onResize}
+              blob={avatar}
+              className="avatar rounded"
+            />
+          </Link>
+          {(() => {
+            const { content } = props.post;
+            if (content.type === "text") {
+              return content.text;
+            } else {
+              return (
+                <BlobImage
+                  onLoad={onResize}
+                  blob={content.data}
+                  className="timeline-content-image"
+                />
+              );
+            }
+          })()}
+        </div>
+      </div>
+      {more != null && more.isOpen ? (
+        <>
+          <div
+            className="position-absolute position-lt w-100 h-100 mask d-flex justify-content-center align-items-center"
+            onClick={more.toggle}
+          >
+            <Svg
+              src={trashIcon}
+              className="text-danger icon-button large"
+              onClick={(e) => {
+                toggleDeleteDialog();
+                e.stopPropagation();
+              }}
+            />
+          </div>
+          {deleteDialog ? (
+            <TimelinePostDeleteConfirmDialog
+              toggle={() => {
+                toggleDeleteDialog();
+                more.toggle();
+              }}
+              onConfirm={more.onDelete}
+            />
+          ) : null}
+        </>
+      ) : null}
+    </div>
+  );
+};
+
+export default TimelineItem;
diff --git a/FrontEnd/src/app/views/timeline-common/TimelineMember.tsx b/FrontEnd/src/app/views/timeline-common/TimelineMember.tsx
new file mode 100644
index 00000000..67a8543a
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelineMember.tsx
@@ -0,0 +1,211 @@
+import React, { useState } from "react";
+import { useTranslation } from "react-i18next";
+import { Container, ListGroup, Modal, Row, Col, Button } from "react-bootstrap";
+
+import { User, useAvatar } from "@/services/user";
+
+import SearchInput from "../common/SearchInput";
+import BlobImage from "../common/BlobImage";
+
+const TimelineMemberItem: React.FC<{
+  user: User;
+  owner: boolean;
+  onRemove?: (username: string) => void;
+}> = ({ user, owner, onRemove }) => {
+  const { t } = useTranslation();
+
+  const avatar = useAvatar(user.username);
+
+  return (
+    <ListGroup.Item className="container">
+      <Row>
+        <Col xs="auto">
+          <BlobImage blob={avatar} className="avatar small" />
+        </Col>
+        <Col>
+          <Row>{user.nickname}</Row>
+          <Row>
+            <small>{"@" + user.username}</small>
+          </Row>
+        </Col>
+        {(() => {
+          if (owner) {
+            return null;
+          }
+          if (onRemove == null) {
+            return null;
+          }
+          return (
+            <Button
+              className="align-self-center"
+              variant="danger"
+              onClick={() => {
+                onRemove(user.username);
+              }}
+            >
+              {t("timeline.member.remove")}
+            </Button>
+          );
+        })()}
+      </Row>
+    </ListGroup.Item>
+  );
+};
+
+export interface TimelineMemberCallbacks {
+  onCheckUser: (username: string) => Promise<User | null>;
+  onAddUser: (user: User) => Promise<void>;
+  onRemoveUser: (username: string) => void;
+}
+
+export interface TimelineMemberProps {
+  members: User[];
+  edit: TimelineMemberCallbacks | null | undefined;
+}
+
+const TimelineMember: React.FC<TimelineMemberProps> = (props) => {
+  const { t } = useTranslation();
+
+  const [userSearchText, setUserSearchText] = useState<string>("");
+  const [userSearchState, setUserSearchState] = useState<
+    | {
+        type: "user";
+        data: User;
+      }
+    | { type: "error"; data: string }
+    | { type: "loading" }
+    | { type: "init" }
+  >({ type: "init" });
+
+  const userSearchAvatar = useAvatar(
+    userSearchState.type === "user" ? userSearchState.data.username : undefined
+  );
+
+  const members = props.members;
+
+  return (
+    <Container className="px-4">
+      <ListGroup className="my-3">
+        {members.map((member, index) => (
+          <TimelineMemberItem
+            key={member.username}
+            user={member}
+            owner={index === 0}
+            onRemove={props.edit?.onRemoveUser}
+          />
+        ))}
+      </ListGroup>
+      {(() => {
+        const edit = props.edit;
+        if (edit != null) {
+          return (
+            <>
+              <SearchInput
+                value={userSearchText}
+                onChange={(v) => {
+                  setUserSearchText(v);
+                }}
+                loading={userSearchState.type === "loading"}
+                onButtonClick={() => {
+                  if (userSearchText === "") {
+                    setUserSearchState({
+                      type: "error",
+                      data: "login.emptyUsername",
+                    });
+                    return;
+                  }
+
+                  setUserSearchState({ type: "loading" });
+                  edit.onCheckUser(userSearchText).then(
+                    (u) => {
+                      if (u == null) {
+                        setUserSearchState({
+                          type: "error",
+                          data: "timeline.userNotExist",
+                        });
+                      } else {
+                        setUserSearchState({ type: "user", data: u });
+                      }
+                    },
+                    (e) => {
+                      setUserSearchState({
+                        type: "error",
+                        data: `${e as string}`,
+                      });
+                    }
+                  );
+                }}
+              />
+              {(() => {
+                if (userSearchState.type === "user") {
+                  const u = userSearchState.data;
+                  const addable =
+                    members.findIndex((m) => m.username === u.username) === -1;
+                  return (
+                    <>
+                      {!addable ? (
+                        <p>{t("timeline.member.alreadyMember")}</p>
+                      ) : null}
+                      <Container className="mb-3">
+                        <Row>
+                          <Col className="col-auto">
+                            <BlobImage
+                              blob={userSearchAvatar}
+                              className="avatar small"
+                            />
+                          </Col>
+                          <Col>
+                            <Row>{u.nickname}</Row>
+                            <Row>
+                              <small>{"@" + u.username}</small>
+                            </Row>
+                          </Col>
+                          <Button
+                            variant="primary"
+                            className="align-self-center"
+                            disabled={!addable}
+                            onClick={() => {
+                              void edit.onAddUser(u).then((_) => {
+                                setUserSearchText("");
+                                setUserSearchState({ type: "init" });
+                              });
+                            }}
+                          >
+                            {t("timeline.member.add")}
+                          </Button>
+                        </Row>
+                      </Container>
+                    </>
+                  );
+                } else if (userSearchState.type === "error") {
+                  return (
+                    <p className="text-danger">{t(userSearchState.data)}</p>
+                  );
+                }
+              })()}
+            </>
+          );
+        } else {
+          return null;
+        }
+      })()}
+    </Container>
+  );
+};
+
+export default TimelineMember;
+
+export interface TimelineMemberDialogProps extends TimelineMemberProps {
+  open: boolean;
+  onClose: () => void;
+}
+
+export const TimelineMemberDialog: React.FC<TimelineMemberDialogProps> = (
+  props
+) => {
+  return (
+    <Modal show centered onHide={props.onClose}>
+      <TimelineMember {...props} />
+    </Modal>
+  );
+};
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx
new file mode 100644
index 00000000..d5c91622
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplate.tsx
@@ -0,0 +1,185 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { of } from "rxjs";
+import { catchError } from "rxjs/operators";
+
+import { UiLogicError } from "@/common";
+import { pushAlert } from "@/services/alert";
+import { useUser, userInfoService, UserNotExistError } from "@/services/user";
+import {
+  timelineService,
+  usePostList,
+  useTimelineInfo,
+} from "@/services/timeline";
+
+import { TimelineDeleteCallback } from "./Timeline";
+import { TimelineMemberDialog } from "./TimelineMember";
+import TimelinePropertyChangeDialog from "./TimelinePropertyChangeDialog";
+import { TimelinePageTemplateUIProps } from "./TimelinePageTemplateUI";
+import { TimelinePostSendCallback } from "./TimelinePostEdit";
+
+export interface TimelinePageTemplateProps<TManageItem> {
+  name: string;
+  onManage: (item: TManageItem) => void;
+  UiComponent: React.ComponentType<
+    Omit<TimelinePageTemplateUIProps<TManageItem>, "CardComponent">
+  >;
+  notFoundI18nKey: string;
+}
+
+export default function TimelinePageTemplate<TManageItem>(
+  props: TimelinePageTemplateProps<TManageItem>
+): React.ReactElement | null {
+  const { t } = useTranslation();
+
+  const { name } = props;
+
+  const service = timelineService;
+
+  const user = useUser();
+
+  const [dialog, setDialog] = React.useState<null | "property" | "member">(
+    null
+  );
+
+  const timelineState = useTimelineInfo(name);
+
+  const timeline = timelineState?.timeline;
+
+  const postListState = usePostList(name);
+
+  const error: string | undefined = (() => {
+    if (timelineState != null) {
+      const { type, timeline } = timelineState;
+      if (type === "offline" && timeline == null) return "Network Error";
+      if (type === "synced" && timeline == null)
+        return t(props.notFoundI18nKey);
+    }
+    return undefined;
+  })();
+
+  const closeDialog = React.useCallback((): void => {
+    setDialog(null);
+  }, []);
+
+  let dialogElement: React.ReactElement | undefined;
+
+  if (dialog === "property") {
+    if (timeline == null) {
+      throw new UiLogicError(
+        "Timeline is null but attempt to open change property dialog."
+      );
+    }
+
+    dialogElement = (
+      <TimelinePropertyChangeDialog
+        open
+        close={closeDialog}
+        oldInfo={{
+          visibility: timeline.visibility,
+          description: timeline.description,
+        }}
+        onProcess={(req) => {
+          return service.changeTimelineProperty(name, req).toPromise().then();
+        }}
+      />
+    );
+  } else if (dialog === "member") {
+    if (timeline == null) {
+      throw new UiLogicError(
+        "Timeline is null but attempt to open change property dialog."
+      );
+    }
+
+    dialogElement = (
+      <TimelineMemberDialog
+        open
+        onClose={closeDialog}
+        members={[timeline.owner, ...timeline.members]}
+        edit={
+          service.hasManagePermission(user, timeline)
+            ? {
+                onCheckUser: (u) => {
+                  return userInfoService
+                    .getUserInfo(u)
+                    .pipe(
+                      catchError((e) => {
+                        if (e instanceof UserNotExistError) {
+                          return of(null);
+                        } else {
+                          throw e;
+                        }
+                      })
+                    )
+                    .toPromise();
+                },
+                onAddUser: (u) => {
+                  return service.addMember(name, u.username).toPromise().then();
+                },
+                onRemoveUser: (u) => {
+                  service.removeMember(name, u);
+                },
+              }
+            : null
+        }
+      />
+    );
+  }
+
+  const { UiComponent } = props;
+
+  const onDelete: TimelineDeleteCallback = React.useCallback(
+    (index, id) => {
+      service.deletePost(name, id).subscribe(null, () => {
+        pushAlert({
+          type: "danger",
+          message: t("timeline.deletePostFailed"),
+        });
+      });
+    },
+    [service, name, t]
+  );
+
+  const onPost: TimelinePostSendCallback = React.useCallback(
+    (req) => {
+      return service.createPost(name, req).toPromise().then();
+    },
+    [service, name]
+  );
+
+  const onManageProp = props.onManage;
+
+  const onManage = React.useCallback(
+    (item: "property" | TManageItem) => {
+      if (item === "property") {
+        setDialog(item);
+      } else {
+        onManageProp(item);
+      }
+    },
+    [onManageProp]
+  );
+
+  return (
+    <>
+      <UiComponent
+        error={error}
+        timeline={timeline ?? undefined}
+        postListState={postListState}
+        onDelete={onDelete}
+        onPost={
+          timeline != null && service.hasPostPermission(user, timeline)
+            ? onPost
+            : undefined
+        }
+        onManage={
+          timeline != null && service.hasManagePermission(user, timeline)
+            ? onManage
+            : undefined
+        }
+        onMember={() => setDialog("member")}
+      />
+      {dialogElement}
+    </>
+  );
+}
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePageTemplateUI.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
new file mode 100644
index 00000000..6c2c43c1
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
@@ -0,0 +1,243 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { fromEvent } from "rxjs";
+import { Spinner } from "react-bootstrap";
+
+import { getAlertHost } from "@/services/alert";
+import { useEventEmiiter, UiLogicError } from "@/common";
+import {
+  TimelineInfo,
+  TimelinePostsWithSyncState,
+  timelineService,
+} from "@/services/timeline";
+import { userService } from "@/services/user";
+
+import Timeline, {
+  TimelinePostInfoEx,
+  TimelineDeleteCallback,
+} from "./Timeline";
+import TimelineTop from "./TimelineTop";
+import TimelinePostEdit, { TimelinePostSendCallback } from "./TimelinePostEdit";
+import { TimelineSyncStatus } from "./SyncStatusBadge";
+
+export interface TimelineCardComponentProps<TManageItems> {
+  timeline: TimelineInfo;
+  onManage?: (item: TManageItems | "property") => void;
+  onMember: () => void;
+  className?: string;
+  collapse: boolean;
+  syncStatus: TimelineSyncStatus;
+  toggleCollapse: () => void;
+}
+
+export interface TimelinePageTemplateUIProps<TManageItems> {
+  timeline?: TimelineInfo;
+  postListState?: TimelinePostsWithSyncState;
+  CardComponent: React.ComponentType<TimelineCardComponentProps<TManageItems>>;
+  onMember: () => void;
+  onManage?: (item: TManageItems | "property") => void;
+  onPost?: TimelinePostSendCallback;
+  onDelete: TimelineDeleteCallback;
+  error?: string;
+}
+
+export default function TimelinePageTemplateUI<TManageItems>(
+  props: TimelinePageTemplateUIProps<TManageItems>
+): React.ReactElement | null {
+  const { timeline, postListState } = props;
+
+  const { t } = useTranslation();
+
+  const bottomSpaceRef = React.useRef<HTMLDivElement | null>(null);
+
+  const onPostEditHeightChange = React.useCallback((height: number): void => {
+    const { current: bottomSpaceDiv } = bottomSpaceRef;
+    if (bottomSpaceDiv != null) {
+      bottomSpaceDiv.style.height = `${height}px`;
+    }
+    if (height === 0) {
+      const alertHost = getAlertHost();
+      if (alertHost != null) {
+        alertHost.style.removeProperty("margin-bottom");
+      }
+    } else {
+      const alertHost = getAlertHost();
+      if (alertHost != null) {
+        alertHost.style.marginBottom = `${height}px`;
+      }
+    }
+  }, []);
+
+  const timelineRef = React.useRef<HTMLDivElement | null>(null);
+
+  const [getResizeEvent, triggerResizeEvent] = useEventEmiiter();
+
+  React.useEffect(() => {
+    const { current: timelineElement } = timelineRef;
+    if (timelineElement != null) {
+      let loadingScrollToBottom = true;
+      let pinBottom = false;
+
+      const isAtBottom = (): boolean =>
+        window.innerHeight + window.scrollY + 10 >= document.body.scrollHeight;
+
+      const disableLoadingScrollToBottom = (): void => {
+        loadingScrollToBottom = false;
+        if (isAtBottom()) pinBottom = true;
+      };
+
+      const checkAndScrollToBottom = (): void => {
+        if (loadingScrollToBottom || pinBottom) {
+          window.scrollTo(0, document.body.scrollHeight);
+        }
+      };
+
+      const subscriptions = [
+        fromEvent(timelineElement, "wheel").subscribe(
+          disableLoadingScrollToBottom
+        ),
+        fromEvent(timelineElement, "pointerdown").subscribe(
+          disableLoadingScrollToBottom
+        ),
+        fromEvent(timelineElement, "keydown").subscribe(
+          disableLoadingScrollToBottom
+        ),
+        fromEvent(window, "scroll").subscribe(() => {
+          if (loadingScrollToBottom) return;
+
+          if (isAtBottom()) {
+            pinBottom = true;
+          } else {
+            pinBottom = false;
+          }
+        }),
+        fromEvent(window, "resize").subscribe(checkAndScrollToBottom),
+        getResizeEvent().subscribe(checkAndScrollToBottom),
+      ];
+
+      return () => {
+        subscriptions.forEach((s) => s.unsubscribe());
+      };
+    }
+  }, [getResizeEvent, triggerResizeEvent, timeline, postListState]);
+
+  const genCardCollapseLocalStorageKey = (uniqueId: string): string =>
+    `timeline.${uniqueId}.cardCollapse`;
+
+  const cardCollapseLocalStorageKey =
+    timeline != null ? genCardCollapseLocalStorageKey(timeline.uniqueId) : null;
+
+  const [cardCollapse, setCardCollapse] = React.useState<boolean>(true);
+  React.useEffect(() => {
+    if (cardCollapseLocalStorageKey != null) {
+      const savedCollapse =
+        window.localStorage.getItem(cardCollapseLocalStorageKey) === "true";
+      setCardCollapse(savedCollapse);
+    }
+  }, [cardCollapseLocalStorageKey]);
+
+  const toggleCardCollapse = (): void => {
+    const newState = !cardCollapse;
+    setCardCollapse(newState);
+    if (timeline != null) {
+      window.localStorage.setItem(
+        genCardCollapseLocalStorageKey(timeline.uniqueId),
+        newState.toString()
+      );
+    }
+  };
+
+  let body: React.ReactElement;
+
+  if (props.error != null) {
+    body = <p className="text-danger">{t(props.error)}</p>;
+  } else {
+    if (timeline != null) {
+      let timelineBody: React.ReactElement;
+      if (postListState != null) {
+        if (postListState.type === "notexist") {
+          throw new UiLogicError(
+            "Timeline is not null but post list state is notexist."
+          );
+        }
+        if (postListState.type === "forbid") {
+          timelineBody = (
+            <p className="text-danger">{t("timeline.messageCantSee")}</p>
+          );
+        } else {
+          const posts: TimelinePostInfoEx[] = postListState.posts.map(
+            (post) => ({
+              ...post,
+              deletable: timelineService.hasModifyPostPermission(
+                userService.currentUser,
+                timeline,
+                post
+              ),
+            })
+          );
+
+          timelineBody = (
+            <Timeline
+              containerRef={timelineRef}
+              posts={posts}
+              onDelete={props.onDelete}
+              onResize={triggerResizeEvent}
+            />
+          );
+          if (props.onPost != null) {
+            timelineBody = (
+              <>
+                {timelineBody}
+                <div ref={bottomSpaceRef} className="flex-fix-length" />
+                <TimelinePostEdit
+                  className="fixed-bottom"
+                  onPost={props.onPost}
+                  onHeightChange={onPostEditHeightChange}
+                  timelineUniqueId={timeline.uniqueId}
+                />
+              </>
+            );
+          }
+        }
+      } else {
+        timelineBody = (
+          <div className="full-viewport-center-child">
+            <Spinner variant="primary" animation="grow" />
+          </div>
+        );
+      }
+
+      const { CardComponent } = props;
+      const syncStatus: TimelineSyncStatus =
+        postListState == null || postListState.syncing
+          ? "syncing"
+          : postListState.type === "synced"
+          ? "synced"
+          : "offline";
+
+      body = (
+        <>
+          <CardComponent
+            className="timeline-template-card"
+            timeline={timeline}
+            onManage={props.onManage}
+            onMember={props.onMember}
+            syncStatus={syncStatus}
+            collapse={cardCollapse}
+            toggleCollapse={toggleCardCollapse}
+          />
+          <TimelineTop height="56px" />
+          {timelineBody}
+        </>
+      );
+    } else {
+      body = (
+        <div className="full-viewport-center-child">
+          <Spinner variant="primary" animation="grow" />
+        </div>
+      );
+    }
+  }
+
+  return body;
+}
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePostEdit.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePostEdit.tsx
new file mode 100644
index 00000000..dfa2f879
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePostEdit.tsx
@@ -0,0 +1,241 @@
+import React from "react";
+import clsx from "clsx";
+import { useTranslation } from "react-i18next";
+import Svg from "react-inlinesvg";
+import { Button, Spinner, Row, Col, Form } from "react-bootstrap";
+import textIcon from "bootstrap-icons/icons/card-text.svg";
+import imageIcon from "bootstrap-icons/icons/image.svg";
+
+import { UiLogicError } from "@/common";
+
+import { pushAlert } from "@/services/alert";
+import { TimelineCreatePostRequest } from "@/services/timeline";
+
+interface TimelinePostEditImageProps {
+  onSelect: (blob: Blob | null) => void;
+}
+
+const TimelinePostEditImage: React.FC<TimelinePostEditImageProps> = (props) => {
+  const { onSelect } = props;
+  const { t } = useTranslation();
+
+  const [file, setFile] = React.useState<File | null>(null);
+  const [fileUrl, setFileUrl] = React.useState<string | null>(null);
+  const [error, setError] = React.useState<string | null>(null);
+
+  React.useEffect(() => {
+    if (file != null) {
+      const url = URL.createObjectURL(file);
+      setFileUrl(url);
+      return () => {
+        URL.revokeObjectURL(url);
+      };
+    }
+  }, [file]);
+
+  const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(
+    (e) => {
+      const files = e.target.files;
+      if (files == null || files.length === 0) {
+        setFile(null);
+        setFileUrl(null);
+      } else {
+        setFile(files[0]);
+      }
+      onSelect(null);
+      setError(null);
+    },
+    [onSelect]
+  );
+
+  const onImgLoad = React.useCallback(() => {
+    onSelect(file);
+  }, [onSelect, file]);
+
+  const onImgError = React.useCallback(() => {
+    setError("loadImageError");
+  }, []);
+
+  return (
+    <>
+      <Form.File
+        label={t("chooseImage")}
+        onChange={onInputChange}
+        accept="image/*"
+        className="mx-3 my-1 d-inline-block"
+      />
+      {fileUrl && error == null && (
+        <img
+          src={fileUrl}
+          className="timeline-post-edit-image"
+          onLoad={onImgLoad}
+          onError={onImgError}
+        />
+      )}
+      {error != null && <div className="text-danger">{t(error)}</div>}
+    </>
+  );
+};
+
+export type TimelinePostSendCallback = (
+  content: TimelineCreatePostRequest
+) => Promise<void>;
+
+export interface TimelinePostEditProps {
+  className?: string;
+  onPost: TimelinePostSendCallback;
+  onHeightChange?: (height: number) => void;
+  timelineUniqueId: string;
+}
+
+const TimelinePostEdit: React.FC<TimelinePostEditProps> = (props) => {
+  const { onPost } = props;
+
+  const { t } = useTranslation();
+
+  const [state, setState] = React.useState<"input" | "process">("input");
+  const [kind, setKind] = React.useState<"text" | "image">("text");
+  const [text, setText] = React.useState<string>("");
+  const [imageBlob, setImageBlob] = React.useState<Blob | null>(null);
+
+  const draftLocalStorageKey = `timeline.${props.timelineUniqueId}.postDraft`;
+
+  React.useEffect(() => {
+    setText(window.localStorage.getItem(draftLocalStorageKey) ?? "");
+  }, [draftLocalStorageKey]);
+
+  const canSend = kind === "text" || (kind === "image" && imageBlob != null);
+
+  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+  const containerRef = React.useRef<HTMLDivElement>(null!);
+
+  const notifyHeightChange = (): void => {
+    if (props.onHeightChange) {
+      props.onHeightChange(containerRef.current.clientHeight);
+    }
+  };
+
+  React.useEffect(() => {
+    if (props.onHeightChange) {
+      props.onHeightChange(containerRef.current.clientHeight);
+    }
+    return () => {
+      if (props.onHeightChange) {
+        props.onHeightChange(0);
+      }
+    };
+  });
+
+  const toggleKind = React.useCallback(() => {
+    setKind((oldKind) => (oldKind === "text" ? "image" : "text"));
+    setImageBlob(null);
+  }, []);
+
+  const onSend = React.useCallback(() => {
+    setState("process");
+
+    const req: TimelineCreatePostRequest = (() => {
+      switch (kind) {
+        case "text":
+          return {
+            content: {
+              type: "text",
+              text: text,
+            },
+          } as TimelineCreatePostRequest;
+        case "image":
+          if (imageBlob == null) {
+            throw new UiLogicError(
+              "Content type is image but image blob is null."
+            );
+          }
+          return {
+            content: {
+              type: "image",
+              data: imageBlob,
+            },
+          } as TimelineCreatePostRequest;
+        default:
+          throw new UiLogicError("Unknown content type.");
+      }
+    })();
+
+    onPost(req).then(
+      (_) => {
+        if (kind === "text") {
+          setText("");
+          window.localStorage.removeItem(draftLocalStorageKey);
+        }
+        setState("input");
+        setKind("text");
+      },
+      (_) => {
+        pushAlert({
+          type: "danger",
+          message: t("timeline.sendPostFailed"),
+        });
+        setState("input");
+      }
+    );
+  }, [onPost, kind, text, imageBlob, t, draftLocalStorageKey]);
+
+  const onImageSelect = React.useCallback((blob: Blob | null) => {
+    setImageBlob(blob);
+  }, []);
+
+  return (
+    <div
+      ref={containerRef}
+      className={clsx("container-fluid bg-light", props.className)}
+    >
+      <Row>
+        <Col className="px-1 py-1">
+          {kind === "text" ? (
+            <Form.Control
+              as="textarea"
+              className="w-100 h-100 timeline-post-edit"
+              value={text}
+              disabled={state === "process"}
+              onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => {
+                const value = event.currentTarget.value;
+                setText(value);
+                window.localStorage.setItem(draftLocalStorageKey, value);
+              }}
+            />
+          ) : (
+            <TimelinePostEditImage onSelect={onImageSelect} />
+          )}
+        </Col>
+        <Col xs="auto" className="align-self-end m-1">
+          {(() => {
+            if (state === "input") {
+              return (
+                <>
+                  <div className="d-block text-center mt-1 mb-2">
+                    <Svg
+                      onLoad={notifyHeightChange}
+                      src={kind === "text" ? imageIcon : textIcon}
+                      className="icon-button"
+                      onClick={toggleKind}
+                    />
+                  </div>
+                  <Button
+                    variant="primary"
+                    onClick={onSend}
+                    disabled={!canSend}
+                  >
+                    {t("timeline.send")}
+                  </Button>
+                </>
+              );
+            } else {
+              return <Spinner variant="primary" animation="border" />;
+            }
+          })()}
+        </Col>
+      </Row>
+    </div>
+  );
+};
+
+export default TimelinePostEdit;
diff --git a/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx b/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
new file mode 100644
index 00000000..87638f31
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
@@ -0,0 +1,72 @@
+import React from "react";
+
+import {
+  TimelineVisibility,
+  kTimelineVisibilities,
+  TimelineChangePropertyRequest,
+} from "@/services/timeline";
+
+import OperationDialog, {
+  OperationSelectInputInfoOption,
+} from "../common/OperationDialog";
+
+export interface TimelinePropertyInfo {
+  visibility: TimelineVisibility;
+  description: string;
+}
+
+export interface TimelinePropertyChangeDialogProps {
+  open: boolean;
+  close: () => void;
+  oldInfo: TimelinePropertyInfo;
+  onProcess: (request: TimelineChangePropertyRequest) => Promise<void>;
+}
+
+const labelMap: { [key in TimelineVisibility]: string } = {
+  Private: "timeline.visibility.private",
+  Public: "timeline.visibility.public",
+  Register: "timeline.visibility.register",
+};
+
+const TimelinePropertyChangeDialog: React.FC<TimelinePropertyChangeDialogProps> = (
+  props
+) => {
+  return (
+    <OperationDialog
+      title={"timeline.dialogChangeProperty.title"}
+      titleColor="default"
+      inputScheme={[
+        {
+          type: "select",
+          label: "timeline.dialogChangeProperty.visibility",
+          options: kTimelineVisibilities.map<OperationSelectInputInfoOption>(
+            (v) => ({
+              label: labelMap[v],
+              value: v,
+            })
+          ),
+          initValue: props.oldInfo.visibility,
+        },
+        {
+          type: "text",
+          label: "timeline.dialogChangeProperty.description",
+          initValue: props.oldInfo.description,
+        },
+      ]}
+      open={props.open}
+      close={props.close}
+      onProcess={([newVisibility, newDescription]) => {
+        const req: TimelineChangePropertyRequest = {};
+        if (newVisibility !== props.oldInfo.visibility) {
+          req.visibility = newVisibility as TimelineVisibility;
+        }
+        if (newDescription !== props.oldInfo.description) {
+          req.description = newDescription as string;
+        }
+        return props.onProcess(req);
+      }}
+    />
+  );
+};
+
+export default TimelinePropertyChangeDialog;
diff --git a/FrontEnd/src/app/views/timeline-common/TimelineTop.tsx b/FrontEnd/src/app/views/timeline-common/TimelineTop.tsx
new file mode 100644
index 00000000..93a2a32c
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/TimelineTop.tsx
@@ -0,0 +1,21 @@
+import React from "react";
+
+export interface TimelineTopProps {
+  height?: number | string;
+  children?: React.ReactElement;
+}
+
+const TimelineTop: React.FC<TimelineTopProps> = ({ height, children }) => {
+  return (
+    <div style={{ height: height }} className="timeline-top">
+      <div className="timeline-line-area-container">
+        <div className="timeline-line-area">
+          <div className="timeline-line-segment"></div>
+        </div>
+      </div>
+      {children}
+    </div>
+  );
+};
+
+export default TimelineTop;
diff --git a/FrontEnd/src/app/views/timeline-common/timeline-common.sass b/FrontEnd/src/app/views/timeline-common/timeline-common.sass
new file mode 100644
index 00000000..4151bfcc
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline-common/timeline-common.sass
@@ -0,0 +1,146 @@
+@use 'sass:color'
+
+.timeline
+  z-index: 0
+  position: relative
+
+  &-item
+    display: flex
+
+$timeline-line-width: 7px
+$timeline-line-node-radius: 18px
+$timeline-line-color: $primary
+$timeline-line-color-current: #36c2e6
+
+@keyframes timeline-line-node-noncurrent
+  from
+    background: $timeline-line-color
+
+  to
+    background: color.adjust($timeline-line-color, $lightness: +10%)
+    box-shadow: 0 0 20px 3px color.adjust($timeline-line-color, $lightness: +10%, $alpha: -0.1)
+
+@keyframes timeline-line-node-current
+  from
+    background: $timeline-line-color-current
+
+  to
+    background: color.adjust($timeline-line-color-current, $lightness: +10%)
+    box-shadow: 0 0 20px 3px color.adjust($timeline-line-color-current, $lightness: +10%, $alpha: -0.1)
+
+.timeline-line
+  &-area-container
+    display: flex
+    justify-content: flex-end
+    padding-right: 5px
+
+    flex: 0 0 auto
+    width: 60px
+
+  &-area
+    display: flex
+    flex-direction: column
+    align-items: center
+    width: 30px
+
+  &-segment
+    width: $timeline-line-width
+    background: $timeline-line-color
+
+    &.start
+      height: 14px
+      flex: 0 0 auto
+
+    &.end
+      flex: 1 1 auto
+
+    &.current-end
+      height: 20px
+      flex: 0 0 auto
+      background: linear-gradient($timeline-line-color-current, transparent)
+
+  &-node-container
+    flex: 0 0 auto
+    position: relative
+    width: $timeline-line-node-radius
+    height: $timeline-line-node-radius
+
+  &-node
+    width: $timeline-line-node-radius + 2
+    height: $timeline-line-node-radius + 2
+    position: absolute
+    left: -1px
+    top: -1px
+    border-radius: 50%
+    box-sizing: border-box
+    z-index: 1
+    animation: 1s infinite alternate
+    animation-name: timeline-line-node-noncurrent
+
+.timeline-top
+  display: flex
+  justify-content: space-between
+
+  .timeline-line-segment
+    flex: 1 1 auto
+
+.current
+  .timeline-line
+    &-segment
+
+      &.start
+        background: linear-gradient($timeline-line-color, $timeline-line-color-current)
+
+      &.end
+        background: $timeline-line-color-current
+
+    &-node
+      animation-name: timeline-line-node-current
+
+.timeline-content-area
+  padding: 10px 0
+  flex-grow: 1
+
+.timeline-item-delete-button
+  position: absolute
+  right: 0
+  bottom: 0
+
+.timeline-content
+  white-space: pre-line
+
+.timeline-content-image
+  max-width: 60%
+  max-height: 200px
+
+.timeline-post-edit-image
+  max-width: 100px
+  max-height: 100px
+
+.mask
+  background: change-color($color: white, $alpha: 0.8)
+  z-index: 100
+
+.timeline-page-top-space
+  transition: height 0.5s
+
+.timeline-sync-state-badge
+  font-size: 0.8em
+  padding: 3px 8px
+  border-radius: 5px
+  background: #e8fbff
+
+.timeline-sync-state-badge-pin
+  display: inline-block
+  width: 0.4em
+  height: 0.4em
+  border-radius: 50%
+  vertical-align: middle
+  margin-right: 0.6em
+
+.timeline-template-card
+  position: fixed
+  z-index: 1
+  top: 56px
+  right: 0
+  margin: 0.5em
diff --git a/FrontEnd/src/app/views/timeline/TimelineDeleteDialog.tsx b/FrontEnd/src/app/views/timeline/TimelineDeleteDialog.tsx
new file mode 100644
index 00000000..894b8195
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline/TimelineDeleteDialog.tsx
@@ -0,0 +1,55 @@
+import React from "react";
+import { useHistory } from "react-router";
+import { Trans } from "react-i18next";
+
+import { timelineService } from "@/services/timeline";
+
+import OperationDialog from "../common/OperationDialog";
+
+interface TimelineDeleteDialog {
+  open: boolean;
+  name: string;
+  close: () => void;
+}
+
+const TimelineDeleteDialog: React.FC<TimelineDeleteDialog> = (props) => {
+  const history = useHistory();
+
+  const { name } = props;
+
+  return (
+    <OperationDialog
+      open={props.open}
+      close={props.close}
+      title="timeline.deleteDialog.title"
+      titleColor="danger"
+      inputPrompt={() => {
+        return (
+          <Trans i18nKey="timeline.deleteDialog.inputPrompt">
+            0<code className="mx-2">{{ name }}</code>2
+          </Trans>
+        );
+      }}
+      inputScheme={[
+        {
+          type: "text",
+          validator: (value) => {
+            if (value !== name) {
+              return "timeline.deleteDialog.notMatch";
+            } else {
+              return null;
+            }
+          },
+        },
+      ]}
+      onProcess={() => {
+        return timelineService.deleteTimeline(name).toPromise();
+      }}
+      onSuccessAndClose={() => {
+        history.replace("/");
+      }}
+    />
+  );
+};
+
+export default TimelineDeleteDialog;
diff --git a/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx b/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx
new file mode 100644
index 00000000..2d787709
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline/TimelineInfoCard.tsx
@@ -0,0 +1,85 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { Dropdown, Button } from "react-bootstrap";
+
+import { useAvatar } from "@/services/user";
+import { timelineVisibilityTooltipTranslationMap } from "@/services/timeline";
+
+import BlobImage from "../common/BlobImage";
+import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
+import InfoCardTemplate from "../timeline-common/InfoCardTemplate";
+
+export type OrdinaryTimelineManageItem = "delete";
+
+export type TimelineInfoCardProps = TimelineCardComponentProps<
+  OrdinaryTimelineManageItem
+>;
+
+const TimelineInfoCard: React.FC<TimelineInfoCardProps> = (props) => {
+  const {
+    timeline,
+    collapse,
+    onMember,
+    onManage,
+    syncStatus,
+    toggleCollapse,
+  } = props;
+
+  const { t } = useTranslation();
+
+  const avatar = useAvatar(timeline?.owner?.username);
+
+  return (
+    <InfoCardTemplate
+      className={props.className}
+      syncStatus={syncStatus}
+      collapse={collapse}
+      toggleCollapse={toggleCollapse}
+    >
+      <h3 className="text-primary mx-3 d-inline-block align-middle">
+        {timeline.name}
+      </h3>
+      <div className="d-inline-block align-middle">
+        <BlobImage blob={avatar} className="avatar small rounded-circle" />
+        {timeline.owner.nickname}
+        <small className="ml-3 text-secondary">
+          @{timeline.owner.username}
+        </small>
+      </div>
+      <p className="mb-0">{timeline.description}</p>
+      <small className="mt-1 d-block">
+        {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])}
+      </small>
+      <div className="text-right mt-2">
+        {onManage != null ? (
+          <Dropdown>
+            <Dropdown.Toggle variant="outline-primary">
+              {t("timeline.manage")}
+            </Dropdown.Toggle>
+            <Dropdown.Menu>
+              <Dropdown.Item onClick={() => onManage("property")}>
+                {t("timeline.manageItem.property")}
+              </Dropdown.Item>
+              <Dropdown.Item onClick={onMember}>
+                {t("timeline.manageItem.member")}
+              </Dropdown.Item>
+              <Dropdown.Divider />
+              <Dropdown.Item
+                className="text-danger"
+                onClick={() => onManage("delete")}
+              >
+                {t("timeline.manageItem.delete")}
+              </Dropdown.Item>
+            </Dropdown.Menu>
+          </Dropdown>
+        ) : (
+          <Button variant="outline-primary" onClick={onMember}>
+            {t("timeline.memberButton")}
+          </Button>
+        )}
+      </div>
+    </InfoCardTemplate>
+  );
+};
+
+export default TimelineInfoCard;
diff --git a/FrontEnd/src/app/views/timeline/TimelinePageUI.tsx b/FrontEnd/src/app/views/timeline/TimelinePageUI.tsx
new file mode 100644
index 00000000..67ea699e
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline/TimelinePageUI.tsx
@@ -0,0 +1,20 @@
+import React from "react";
+
+import TimelinePageTemplateUI, {
+  TimelinePageTemplateUIProps,
+} from "../timeline-common/TimelinePageTemplateUI";
+
+import TimelineInfoCard, {
+  OrdinaryTimelineManageItem,
+} from "./TimelineInfoCard";
+
+export type TimelinePageUIProps = Omit<
+  TimelinePageTemplateUIProps<OrdinaryTimelineManageItem>,
+  "CardComponent"
+>;
+
+const TimelinePageUI: React.FC<TimelinePageUIProps> = (props) => {
+  return <TimelinePageTemplateUI {...props} CardComponent={TimelineInfoCard} />;
+};
+
+export default TimelinePageUI;
diff --git a/FrontEnd/src/app/views/timeline/index.tsx b/FrontEnd/src/app/views/timeline/index.tsx
new file mode 100644
index 00000000..225a1a59
--- /dev/null
+++ b/FrontEnd/src/app/views/timeline/index.tsx
@@ -0,0 +1,37 @@
+import React from "react";
+import { useParams } from "react-router";
+
+import TimelinePageTemplate from "../timeline-common/TimelinePageTemplate";
+
+import TimelinePageUI from "./TimelinePageUI";
+import { OrdinaryTimelineManageItem } from "./TimelineInfoCard";
+import TimelineDeleteDialog from "./TimelineDeleteDialog";
+
+const TimelinePage: React.FC = (_) => {
+  const { name } = useParams<{ name: string }>();
+
+  const [dialog, setDialog] = React.useState<OrdinaryTimelineManageItem | null>(
+    null
+  );
+
+  let dialogElement: React.ReactElement | undefined;
+  if (dialog === "delete") {
+    dialogElement = (
+      <TimelineDeleteDialog open close={() => setDialog(null)} name={name} />
+    );
+  }
+
+  return (
+    <>
+      <TimelinePageTemplate
+        name={name}
+        UiComponent={TimelinePageUI}
+        onManage={(item) => setDialog(item)}
+        notFoundI18nKey="timeline.timelineNotExist"
+      />
+      {dialogElement}
+    </>
+  );
+};
+
+export default TimelinePage;
diff --git a/FrontEnd/src/app/views/timeline/timeline.sass b/FrontEnd/src/app/views/timeline/timeline.sass
new file mode 100644
index 00000000..e69de29b
diff --git a/FrontEnd/src/app/views/user/ChangeAvatarDialog.tsx b/FrontEnd/src/app/views/user/ChangeAvatarDialog.tsx
new file mode 100644
index 00000000..ffa2218b
--- /dev/null
+++ b/FrontEnd/src/app/views/user/ChangeAvatarDialog.tsx
@@ -0,0 +1,302 @@
+import React, { useState, useEffect } from "react";
+import { useTranslation } from "react-i18next";
+import { AxiosError } from "axios";
+import { Modal, Row, Button } from "react-bootstrap";
+
+import { UiLogicError } from "@/common";
+
+import ImageCropper, { Clip, applyClipToImage } from "../common/ImageCropper";
+
+export interface ChangeAvatarDialogProps {
+  open: boolean;
+  close: () => void;
+  process: (blob: Blob) => Promise<void>;
+}
+
+const ChangeAvatarDialog: React.FC<ChangeAvatarDialogProps> = (props) => {
+  const { t } = useTranslation();
+
+  const [file, setFile] = React.useState<File | null>(null);
+  const [fileUrl, setFileUrl] = React.useState<string | null>(null);
+  const [clip, setClip] = React.useState<Clip | null>(null);
+  const [
+    cropImgElement,
+    setCropImgElement,
+  ] = React.useState<HTMLImageElement | null>(null);
+  const [resultBlob, setResultBlob] = React.useState<Blob | null>(null);
+  const [resultUrl, setResultUrl] = React.useState<string | null>(null);
+
+  const [state, setState] = React.useState<
+    | "select"
+    | "crop"
+    | "processcrop"
+    | "preview"
+    | "uploading"
+    | "success"
+    | "error"
+  >("select");
+
+  const [message, setMessage] = useState<
+    string | { type: "custom"; text: string } | null
+  >("userPage.dialogChangeAvatar.prompt.select");
+
+  const trueMessage =
+    message == null
+      ? null
+      : typeof message === "string"
+      ? t(message)
+      : message.text;
+
+  const closeDialog = props.close;
+
+  const close = React.useCallback((): void => {
+    if (!(state === "uploading")) {
+      closeDialog();
+    }
+  }, [state, closeDialog]);
+
+  useEffect(() => {
+    if (file != null) {
+      const url = URL.createObjectURL(file);
+      setClip(null);
+      setFileUrl(url);
+      setState("crop");
+      return () => {
+        URL.revokeObjectURL(url);
+      };
+    } else {
+      setFileUrl(null);
+      setState("select");
+    }
+  }, [file]);
+
+  React.useEffect(() => {
+    if (resultBlob != null) {
+      const url = URL.createObjectURL(resultBlob);
+      setResultUrl(url);
+      setState("preview");
+      return () => {
+        URL.revokeObjectURL(url);
+      };
+    } else {
+      setResultUrl(null);
+    }
+  }, [resultBlob]);
+
+  const onSelectFile = React.useCallback(
+    (e: React.ChangeEvent<HTMLInputElement>): void => {
+      const files = e.target.files;
+      if (files == null || files.length === 0) {
+        setFile(null);
+      } else {
+        setFile(files[0]);
+      }
+    },
+    []
+  );
+
+  const onCropNext = React.useCallback(() => {
+    if (
+      cropImgElement == null ||
+      clip == null ||
+      clip.width === 0 ||
+      file == null
+    ) {
+      throw new UiLogicError();
+    }
+
+    setState("processcrop");
+    void applyClipToImage(cropImgElement, clip, file.type).then((b) => {
+      setResultBlob(b);
+    });
+  }, [cropImgElement, clip, file]);
+
+  const onCropPrevious = React.useCallback(() => {
+    setFile(null);
+    setState("select");
+  }, []);
+
+  const onPreviewPrevious = React.useCallback(() => {
+    setResultBlob(null);
+    setState("crop");
+  }, []);
+
+  const process = props.process;
+
+  const upload = React.useCallback(() => {
+    if (resultBlob == null) {
+      throw new UiLogicError();
+    }
+
+    setState("uploading");
+    process(resultBlob).then(
+      () => {
+        setState("success");
+      },
+      (e: unknown) => {
+        setState("error");
+        setMessage({ type: "custom", text: (e as AxiosError).message });
+      }
+    );
+  }, [resultBlob, process]);
+
+  const createPreviewRow = (): React.ReactElement => {
+    if (resultUrl == null) {
+      throw new UiLogicError();
+    }
+    return (
+      <Row className="justify-content-center">
+        <img
+          className="change-avatar-img"
+          src={resultUrl}
+          alt={t("userPage.dialogChangeAvatar.previewImgAlt")}
+        />
+      </Row>
+    );
+  };
+
+  return (
+    <Modal show={props.open} onHide={close}>
+      <Modal.Header>
+        <Modal.Title> {t("userPage.dialogChangeAvatar.title")}</Modal.Title>
+      </Modal.Header>
+      {(() => {
+        if (state === "select") {
+          return (
+            <>
+              <Modal.Body className="container">
+                <Row>{t("userPage.dialogChangeAvatar.prompt.select")}</Row>
+                <Row>
+                  <input type="file" accept="image/*" onChange={onSelectFile} />
+                </Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="secondary" onClick={close}>
+                  {t("operationDialog.cancel")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        } else if (state === "crop") {
+          if (fileUrl == null) {
+            throw new UiLogicError();
+          }
+          return (
+            <>
+              <Modal.Body className="container">
+                <Row className="justify-content-center">
+                  <ImageCropper
+                    clip={clip}
+                    onChange={setClip}
+                    imageUrl={fileUrl}
+                    imageElementCallback={setCropImgElement}
+                  />
+                </Row>
+                <Row>{t("userPage.dialogChangeAvatar.prompt.crop")}</Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="secondary" onClick={close}>
+                  {t("operationDialog.cancel")}
+                </Button>
+                <Button variant="secondary" onClick={onCropPrevious}>
+                  {t("operationDialog.previousStep")}
+                </Button>
+                <Button
+                  color="primary"
+                  onClick={onCropNext}
+                  disabled={
+                    cropImgElement == null || clip == null || clip.width === 0
+                  }
+                >
+                  {t("operationDialog.nextStep")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        } else if (state === "processcrop") {
+          return (
+            <>
+              <Modal.Body className="container">
+                <Row>
+                  {t("userPage.dialogChangeAvatar.prompt.processingCrop")}
+                </Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="secondary" onClick={close}>
+                  {t("operationDialog.cancel")}
+                </Button>
+                <Button variant="secondary" onClick={onPreviewPrevious}>
+                  {t("operationDialog.previousStep")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        } else if (state === "preview") {
+          return (
+            <>
+              <Modal.Body className="container">
+                {createPreviewRow()}
+                <Row>{t("userPage.dialogChangeAvatar.prompt.preview")}</Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="secondary" onClick={close}>
+                  {t("operationDialog.cancel")}
+                </Button>
+                <Button variant="secondary" onClick={onPreviewPrevious}>
+                  {t("operationDialog.previousStep")}
+                </Button>
+                <Button variant="primary" onClick={upload}>
+                  {t("userPage.dialogChangeAvatar.upload")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        } else if (state === "uploading") {
+          return (
+            <>
+              <Modal.Body className="container">
+                {createPreviewRow()}
+                <Row>{t("userPage.dialogChangeAvatar.prompt.uploading")}</Row>
+              </Modal.Body>
+              <Modal.Footer></Modal.Footer>
+            </>
+          );
+        } else if (state === "success") {
+          return (
+            <>
+              <Modal.Body className="container">
+                <Row className="p-4 text-success">
+                  {t("operationDialog.success")}
+                </Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="success" onClick={close}>
+                  {t("operationDialog.ok")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        } else {
+          return (
+            <>
+              <Modal.Body className="container">
+                {createPreviewRow()}
+                <Row className="text-danger">{trueMessage}</Row>
+              </Modal.Body>
+              <Modal.Footer>
+                <Button variant="secondary" onClick={close}>
+                  {t("operationDialog.cancel")}
+                </Button>
+                <Button variant="primary" onClick={upload}>
+                  {t("operationDialog.retry")}
+                </Button>
+              </Modal.Footer>
+            </>
+          );
+        }
+      })()}
+    </Modal>
+  );
+};
+
+export default ChangeAvatarDialog;
diff --git a/FrontEnd/src/app/views/user/ChangeNicknameDialog.tsx b/FrontEnd/src/app/views/user/ChangeNicknameDialog.tsx
new file mode 100644
index 00000000..251b18c5
--- /dev/null
+++ b/FrontEnd/src/app/views/user/ChangeNicknameDialog.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+
+import OperationDialog from "../common/OperationDialog";
+
+export interface ChangeNicknameDialogProps {
+  open: boolean;
+  close: () => void;
+  onProcess: (newNickname: string) => Promise<void>;
+}
+
+const ChangeNicknameDialog: React.FC<ChangeNicknameDialogProps> = (props) => {
+  return (
+    <OperationDialog
+      open={props.open}
+      title="userPage.dialogChangeNickname.title"
+      titleColor="default"
+      inputScheme={[
+        { type: "text", label: "userPage.dialogChangeNickname.inputLabel" },
+      ]}
+      onProcess={([newNickname]) => {
+        return props.onProcess(newNickname as string);
+      }}
+      close={props.close}
+    />
+  );
+};
+
+export default ChangeNicknameDialog;
diff --git a/FrontEnd/src/app/views/user/UserInfoCard.tsx b/FrontEnd/src/app/views/user/UserInfoCard.tsx
new file mode 100644
index 00000000..888fb18a
--- /dev/null
+++ b/FrontEnd/src/app/views/user/UserInfoCard.tsx
@@ -0,0 +1,80 @@
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { Dropdown, Button } from "react-bootstrap";
+
+import { timelineVisibilityTooltipTranslationMap } from "@/services/timeline";
+import { useAvatar } from "@/services/user";
+
+import BlobImage from "../common/BlobImage";
+import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
+import InfoCardTemplate from "../timeline-common/InfoCardTemplate";
+
+export type PersonalTimelineManageItem = "avatar" | "nickname";
+
+export type UserInfoCardProps = TimelineCardComponentProps<
+  PersonalTimelineManageItem
+>;
+
+const UserInfoCard: React.FC<UserInfoCardProps> = (props) => {
+  const {
+    timeline,
+    collapse,
+    onMember,
+    onManage,
+    syncStatus,
+    toggleCollapse,
+  } = props;
+  const { t } = useTranslation();
+
+  const avatar = useAvatar(timeline?.owner?.username);
+
+  return (
+    <InfoCardTemplate
+      className={props.className}
+      syncStatus={syncStatus}
+      collapse={collapse}
+      toggleCollapse={toggleCollapse}
+    >
+      <div>
+        <BlobImage blob={avatar} className="avatar" />
+        {timeline.owner.nickname}
+        <small className="ml-3 text-secondary">
+          @{timeline.owner.username}
+        </small>
+      </div>
+      <p className="mb-0">{timeline.description}</p>
+      <small className="mt-1 d-block">
+        {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])}
+      </small>
+      <div className="text-right mt-2">
+        {onManage != null ? (
+          <Dropdown>
+            <Dropdown.Toggle variant="outline-primary">
+              {t("timeline.manage")}
+            </Dropdown.Toggle>
+            <Dropdown.Menu>
+              <Dropdown.Item onClick={() => onManage("nickname")}>
+                {t("timeline.manageItem.nickname")}
+              </Dropdown.Item>
+              <Dropdown.Item onClick={() => onManage("avatar")}>
+                {t("timeline.manageItem.avatar")}
+              </Dropdown.Item>
+              <Dropdown.Item onClick={() => onManage("property")}>
+                {t("timeline.manageItem.property")}
+              </Dropdown.Item>
+              <Dropdown.Item onClick={onMember}>
+                {t("timeline.manageItem.member")}
+              </Dropdown.Item>
+            </Dropdown.Menu>
+          </Dropdown>
+        ) : (
+          <Button variant="outline-primary" onClick={onMember}>
+            {t("timeline.memberButton")}
+          </Button>
+        )}
+      </div>
+    </InfoCardTemplate>
+  );
+};
+
+export default UserInfoCard;
diff --git a/FrontEnd/src/app/views/user/UserPageUI.tsx b/FrontEnd/src/app/views/user/UserPageUI.tsx
new file mode 100644
index 00000000..d405399c
--- /dev/null
+++ b/FrontEnd/src/app/views/user/UserPageUI.tsx
@@ -0,0 +1,18 @@
+import React from "react";
+
+import TimelinePageTemplateUI, {
+  TimelinePageTemplateUIProps,
+} from "../timeline-common/TimelinePageTemplateUI";
+
+import UserInfoCard, { PersonalTimelineManageItem } from "./UserInfoCard";
+
+export type UserPageUIProps = Omit<
+  TimelinePageTemplateUIProps<PersonalTimelineManageItem>,
+  "CardComponent"
+>;
+
+const UserPageUI: React.FC<UserPageUIProps> = (props) => {
+  return <TimelinePageTemplateUI {...props} CardComponent={UserInfoCard} />;
+};
+
+export default UserPageUI;
diff --git a/FrontEnd/src/app/views/user/index.tsx b/FrontEnd/src/app/views/user/index.tsx
new file mode 100644
index 00000000..7c0b1563
--- /dev/null
+++ b/FrontEnd/src/app/views/user/index.tsx
@@ -0,0 +1,72 @@
+import React, { useState } from "react";
+import { useParams } from "react-router";
+
+import { UiLogicError } from "@/common";
+import { useUser, userInfoService } from "@/services/user";
+
+import TimelinePageTemplate from "../timeline-common/TimelinePageTemplate";
+
+import UserPageUI from "./UserPageUI";
+import { PersonalTimelineManageItem } from "./UserInfoCard";
+import ChangeNicknameDialog from "./ChangeNicknameDialog";
+import ChangeAvatarDialog from "./ChangeAvatarDialog";
+
+const UserPage: React.FC = (_) => {
+  const { username } = useParams<{ username: string }>();
+
+  const user = useUser();
+
+  const [dialog, setDialog] = useState<null | PersonalTimelineManageItem>(null);
+
+  let dialogElement: React.ReactElement | undefined;
+
+  const closeDialogHandler = (): void => {
+    setDialog(null);
+  };
+
+  if (dialog === "nickname") {
+    if (user == null) {
+      throw new UiLogicError("Change nickname without login.");
+    }
+
+    dialogElement = (
+      <ChangeNicknameDialog
+        open
+        close={closeDialogHandler}
+        onProcess={(newNickname) =>
+          userInfoService.setNickname(username, newNickname)
+        }
+      />
+    );
+  } else if (dialog === "avatar") {
+    if (user == null) {
+      throw new UiLogicError("Change avatar without login.");
+    }
+
+    dialogElement = (
+      <ChangeAvatarDialog
+        open
+        close={closeDialogHandler}
+        process={(file) => userInfoService.setAvatar(username, file)}
+      />
+    );
+  }
+
+  const onManage = React.useCallback((item: PersonalTimelineManageItem) => {
+    setDialog(item);
+  }, []);
+
+  return (
+    <>
+      <TimelinePageTemplate
+        name={`@${username}`}
+        UiComponent={UserPageUI}
+        onManage={onManage}
+        notFoundI18nKey="timeline.userNotExist"
+      />
+      {dialogElement}
+    </>
+  );
+};
+
+export default UserPage;
diff --git a/FrontEnd/src/app/views/user/user.sass b/FrontEnd/src/app/views/user/user.sass
new file mode 100644
index 00000000..63a28e05
--- /dev/null
+++ b/FrontEnd/src/app/views/user/user.sass
@@ -0,0 +1,7 @@
+.change-avatar-cropper-row
+  max-height: 400px
+
+.change-avatar-img
+  min-width: 50%
+  max-width: 100%
+  max-height: 400px
diff --git a/FrontEnd/src/sw/sw.ts b/FrontEnd/src/sw/sw.ts
new file mode 100644
index 00000000..d6202f36
--- /dev/null
+++ b/FrontEnd/src/sw/sw.ts
@@ -0,0 +1,28 @@
+import { precacheAndRoute, matchPrecache } from "workbox-precaching";
+import { setDefaultHandler } from "workbox-routing";
+import { NetworkOnly } from "workbox-strategies";
+
+declare let self: ServiceWorkerGlobalScope;
+
+self.addEventListener("message", (event) => {
+  if (event.data && (event.data as { type: string }).type === "SKIP_WAITING") {
+    void self.skipWaiting();
+  }
+});
+
+precacheAndRoute(self.__WB_MANIFEST);
+
+const networkOnly = new NetworkOnly();
+
+setDefaultHandler((options) => {
+  const { request, url } = options;
+  if (url && url.pathname.startsWith("/api/")) {
+    return networkOnly.handle(options);
+  }
+
+  if (request instanceof Request && request.destination === "document")
+    return matchPrecache("/index.html").then((r) =>
+      r == null ? Response.error() : r
+    );
+  else return networkOnly.handle(options);
+});
diff --git a/FrontEnd/src/sw/tsconfig.json b/FrontEnd/src/sw/tsconfig.json
new file mode 100644
index 00000000..71fc0bcd
--- /dev/null
+++ b/FrontEnd/src/sw/tsconfig.json
@@ -0,0 +1,12 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "lib": [
+      "esnext",
+      "webworker"
+    ]
+  },
+  "include": [
+    "."
+  ]
+}
diff --git a/FrontEnd/src/tsconfig.json b/FrontEnd/src/tsconfig.json
new file mode 100644
index 00000000..1855f5cd
--- /dev/null
+++ b/FrontEnd/src/tsconfig.json
@@ -0,0 +1,23 @@
+{
+  "compilerOptions": {
+    "target": "esnext",
+    "allowJs": true,
+    "skipLibCheck": true,
+    "esModuleInterop": true,
+    "allowSyntheticDefaultImports": true,
+    "strict": true,
+    "forceConsistentCasingInFileNames": true,
+    "module": "esnext",
+    "moduleResolution": "node",
+    "resolveJsonModule": true,
+    "isolatedModules": true,
+    "jsx": "preserve",
+    "sourceMap": true,
+    "baseUrl": "./",
+    "paths": {
+      "@/*": [
+        "app/*"
+      ]
+    }
+  }
+}
diff --git a/FrontEnd/webpack.common.js b/FrontEnd/webpack.common.js
new file mode 100644
index 00000000..3779003e
--- /dev/null
+++ b/FrontEnd/webpack.common.js
@@ -0,0 +1,86 @@
+const path = require("path");
+const HtmlWebpackPlugin = require("html-webpack-plugin");
+const postcssPresetEnv = require("postcss-preset-env");
+const Config = require("webpack-chain");
+
+const config = new Config();
+
+config.entry("index").add(path.resolve(__dirname, "src/app/index.tsx"));
+
+config.module
+  .rule("ts")
+  .test(/\.ts(x?)$/)
+  .exclude.add(/node_modules/)
+  .end()
+  .use("babel")
+  .loader("babel-loader")
+  .end()
+  .use("ts")
+  .loader("ts-loader")
+  .end();
+
+config.module
+  .rule("js")
+  .test(/\.js(x?)$/)
+  .exclude.add(/node_modules/)
+  .end()
+  .use("babel")
+  .loader("babel-loader")
+  .end();
+
+config.module
+  .rule("css")
+  .test(/\.css$/)
+  .use("css")
+  .loader("css-loader")
+  .end()
+  .use("postcss")
+  .loader("postcss-loader")
+  .end();
+
+config.module
+  .rule("sass")
+  .test(/\.(scss|sass)$/)
+  .use("css")
+  .loader("css-loader")
+  .end()
+  .use("postcss")
+  .loader("postcss-loader")
+  .end()
+  .use("sass")
+  .loader("sass-loader")
+  .end();
+
+config.module
+  .rule("file")
+  .test(/\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot)$/i)
+  .use("url")
+  .loader("url-loader")
+  .options({
+    limit: 8192,
+  });
+
+config.resolve.extensions
+  .add("*")
+  .add(".js")
+  .add(".jsx")
+  .add(".ts")
+  .add(".tsx")
+  .end();
+
+config.resolve.alias.set("@", path.resolve(__dirname, "src/app"));
+
+config.output
+  .path(path.resolve(__dirname, "dist/"))
+  .filename("[name].[contenthash].js")
+  .chunkFilename("[name].[contenthash].js")
+  .publicPath("/");
+
+config.plugin("html").use(HtmlWebpackPlugin, [
+  {
+    template: "src/app/index.ejs",
+    title: "Timeline",
+  },
+]);
+
+module.exports = config;
diff --git a/FrontEnd/webpack.config.dev.js b/FrontEnd/webpack.config.dev.js
new file mode 100644
index 00000000..c88e1aaf
--- /dev/null
+++ b/FrontEnd/webpack.config.dev.js
@@ -0,0 +1,52 @@
+const path = require("path");
+const webpack = require("webpack");
+
+const config = require("./webpack.common");
+
+config.mode("development");
+
+config.entry("index").add("react-hot-loader/patch");
+
+config.module
+  .rule("ts")
+  .use("babel")
+  .options({
+    plugins: ["react-hot-loader/babel"],
+  });
+
+config.module
+  .rule("js")
+  .use("babel")
+  .options({
+    plugins: ["react-hot-loader/babel"],
+  });
+
+config.module
+  .rule("css")
+  .use("style")
+  .before("css")
+  .loader("style-loader")
+  .end();
+
+config.module
+  .rule("sass")
+  .use("style")
+  .before("css")
+  .loader("style-loader")
+  .end();
+
+config.devtool("eval-cheap-module-source-map");
+
+config.resolve.alias.set("react-dom", "@hot-loader/react-dom");
+
+config.devServer
+  .contentBase(path.resolve(__dirname, "public/"))
+  .host("0.0.0.0")
+  .port(3000)
+  .historyApiFallback(true)
+  .hotOnly(true)
+  .allowedHosts.add(".myide.io");
+
+config.plugin("hot").use(webpack.HotModuleReplacementPlugin);
+
+module.exports = config.toConfig();
diff --git a/FrontEnd/webpack.config.prod.js b/FrontEnd/webpack.config.prod.js
new file mode 100644
index 00000000..188cb940
--- /dev/null
+++ b/FrontEnd/webpack.config.prod.js
@@ -0,0 +1,53 @@
+const path = require("path");
+const { CleanWebpackPlugin } = require("clean-webpack-plugin");
+const CopyPlugin = require("copy-webpack-plugin");
+const WorkboxPlugin = require("workbox-webpack-plugin");
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+const config = require("./webpack.common");
+
+config.mode("production");
+
+config
+  .entry("index")
+  .add(path.resolve(__dirname, "src/app/service-worker.tsx"));
+
+config.module
+  .rule("css")
+  .use("mini-css-extract")
+  .before("css")
+  .loader(MiniCssExtractPlugin.loader)
+  .end();
+
+config.module
+  .rule("sass")
+  .use("mini-css-extract")
+  .before("css")
+  .loader(MiniCssExtractPlugin.loader)
+  .end();
+
+config.devtool("source-map");
+
+config.plugin("mini-css-extract").use(MiniCssExtractPlugin);
+
+config.plugin("clean").use(CleanWebpackPlugin);
+
+config.plugin("copy").use(CopyPlugin, [
+  {
+    patterns: [
+      {
+        from: path.resolve(__dirname, "public/"),
+        to: path.resolve(__dirname, "dist/"),
+      },
+    ],
+  },
+]);
+
+config.plugin("workbox").use(WorkboxPlugin.InjectManifest, [
+  {
+    swSrc: path.resolve(__dirname, "src/sw/sw.ts"),
+    maximumFileSizeToCacheInBytes: 15000000,
+  },
+]);
+
+module.exports = config.toConfig();
diff --git a/FrontEnd/yarn.lock b/FrontEnd/yarn.lock
new file mode 100644
index 00000000..5d5a9e4d
--- /dev/null
+++ b/FrontEnd/yarn.lock
@@ -0,0 +1,13002 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+  version: 4
+  cacheKey: 5
+
+"@arcanis/slice-ansi@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "@arcanis/slice-ansi@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"
+  dependencies:
+    grapheme-splitter: ^1.0.4
+  checksum: 1b4539363054608b37f65d49d5c920a557d55f6231a73440213e3fd809fce8ed8c72b8b7939c4dbbbfd14647ce6e8d76c0df6cec19a744400c847ef6e76a1988
+  languageName: node
+  linkType: hard
+
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.5.5":
+  version: 7.10.4
+  resolution: "@babel/code-frame@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"
+  dependencies:
+    "@babel/highlight": ^7.10.4
+  checksum: 05245d3b22a3ae849439195c4ee9ce9903dfd8c3fcb5124e77923c45e9f1ceac971cce4c61505974f411a9db432949531abe10ddee92937a0a9c306dc380a5b2
+  languageName: node
+  linkType: hard
+
+"@babel/compat-data@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/compat-data@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"
+  dependencies:
+    browserslist: ^4.12.0
+    invariant: ^2.2.4
+    semver: ^5.5.0
+  checksum: 788af12585d847fffc2e8d14502ca3a3592c931b1cd8d45493a512c2824f325a358fe52397fba9d4b1d0f1ae4e624932ba2162640b3577637d06d9d903c96fe4
+  languageName: node
+  linkType: hard
+
+"@babel/compat-data@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/compat-data@npm:7.12.1"
+  checksum: 07bc6cfe7cde58c3b6f78d95c8f727fb306eba16c3012a1c80f09bfe93156349f8331908d3651532f936dda1333d6f96285a6df9f7c43d600060b02ef7cb306a
+  languageName: node
+  linkType: hard
+
+"@babel/core@npm:^7.12.3":
+  version: 7.12.3
+  resolution: "@babel/core@npm:7.12.3"
+  dependencies:
+    "@babel/code-frame": ^7.10.4
+    "@babel/generator": ^7.12.1
+    "@babel/helper-module-transforms": ^7.12.1
+    "@babel/helpers": ^7.12.1
+    "@babel/parser": ^7.12.3
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.12.1
+    "@babel/types": ^7.12.1
+    convert-source-map: ^1.7.0
+    debug: ^4.1.0
+    gensync: ^1.0.0-beta.1
+    json5: ^2.1.2
+    lodash: ^4.17.19
+    resolve: ^1.3.2
+    semver: ^5.4.1
+    source-map: ^0.5.0
+  checksum: 110eb092da34c8061db81647d3110e72438a805418195238ac0bb5ab5aec0fa9be9a1ce6350d442865254e088c7ee6edafafc2fbb72f105eb70414ac211e0995
+  languageName: node
+  linkType: hard
+
+"@babel/core@npm:^7.8.4":
+  version: 7.10.5
+  resolution: "@babel/core@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"
+  dependencies:
+    "@babel/code-frame": ^7.10.4
+    "@babel/generator": ^7.10.5
+    "@babel/helper-module-transforms": ^7.10.5
+    "@babel/helpers": ^7.10.4
+    "@babel/parser": ^7.10.5
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.10.5
+    "@babel/types": ^7.10.5
+    convert-source-map: ^1.7.0
+    debug: ^4.1.0
+    gensync: ^1.0.0-beta.1
+    json5: ^2.1.2
+    lodash: ^4.17.19
+    resolve: ^1.3.2
+    semver: ^5.4.1
+    source-map: ^0.5.0
+  checksum: 1b7ddcb578a937245e63889b4648b44c28e04257ef52bf506f61c751ec2def9c9c586883b669be2e66a2b829037a1d78e19ee23a371966c94e0728f9598799e1
+  languageName: node
+  linkType: hard
+
+"@babel/generator@npm:^7.10.5":
+  version: 7.10.5
+  resolution: "@babel/generator@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"
+  dependencies:
+    "@babel/types": ^7.10.5
+    jsesc: ^2.5.1
+    source-map: ^0.5.0
+  checksum: 6e3fd8065268e1ef128bfd6ccb3053d98816f09f130f26ed12101ce6de39801b3b422605bcf0f8f4011ea39ff2ccf14e0ff1d2b9ecf70941319660e15cb0e82b
+  languageName: node
+  linkType: hard
+
+"@babel/generator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/generator@npm:7.12.1"
+  dependencies:
+    "@babel/types": ^7.12.1
+    jsesc: ^2.5.1
+    source-map: ^0.5.0
+  checksum: e0f5f9af4f5e1ed3afd02a57b1f15a85c7adb7e4deafbda2534bb49d889d6443b1fb5494e4543e31525788db20e1426e4a89c8cbd0c55289a8fdc6da0a9700cf
+  languageName: node
+  linkType: hard
+
+"@babel/helper-annotate-as-pure@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-annotate-as-pure@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: 535cdf631e1e6c0bfd6820d2509c69373e2f48148505ddc2325ce8fe85302dc5681d6f6fd41261cacc458a0431edeff7c6115056144b80b02c10e111d2941c36
+  languageName: node
+  linkType: hard
+
+"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-explode-assignable-expression": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 369530a1971c92d09bd3fae3387bf752abffa9a1f285ab55f45cdf0ac9a2e8ed1a28cd4dc31b0d5672ee0aac91435e3fdcf1196f67870ac0f9a768e3d9295d60
+  languageName: node
+  linkType: hard
+
+"@babel/helper-builder-react-jsx-experimental@npm:^7.12.1":
+  version: 7.12.4
+  resolution: "@babel/helper-builder-react-jsx-experimental@npm:7.12.4"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-module-imports": ^7.12.1
+    "@babel/types": ^7.12.1
+  checksum: 246b77aedf5ee458338319450dbd092549f00fe4c3915521fdb8e80af2061ee86b875410482bed07bb906fc8e623cafd46e0751c5317b4c27f9041bcf7d09501
+  languageName: node
+  linkType: hard
+
+"@babel/helper-builder-react-jsx@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-builder-react-jsx@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: f14f786b5e5d4728ecfae8679d26da6460056dee4c8c2ae7432cd0e64332a289cf44e43b0e2b349f8ce1d281595fafb6824988d9674fa29389b1e5ab2055b3be
+  languageName: node
+  linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-compilation-targets@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"
+  dependencies:
+    "@babel/compat-data": ^7.10.4
+    browserslist: ^4.12.0
+    invariant: ^2.2.4
+    levenary: ^1.1.1
+    semver: ^5.5.0
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: 7603388e451012154ac6b8f6ec3792f2f35abbee21efa338fa87a851d88b72bee4a8aa5b016e53a5dc011dc616d803eda2cb030ec55a4a6673f1f587f95275e0
+  languageName: node
+  linkType: hard
+
+"@babel/helper-compilation-targets@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-compilation-targets@npm:7.12.1"
+  dependencies:
+    "@babel/compat-data": ^7.12.1
+    "@babel/helper-validator-option": ^7.12.1
+    browserslist: ^4.12.0
+    semver: ^5.5.0
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: a1b750f3279dda3b311b600aca55e7b0af1c946f20fa0b165308f8c311b757f5c806d35aab4a9996223fe81ad10f7348cee3f514ab823f1487bd25f6e7699e63
+  languageName: node
+  linkType: hard
+
+"@babel/helper-create-class-features-plugin@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/helper-create-class-features-plugin@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-member-expression-to-functions": ^7.10.5
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-replace-supers": ^7.10.4
+    "@babel/helper-split-export-declaration": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: ba8fb0f7b7788d0fde2341314a86d0d5705ed17537eba1e319bb0e532125c5b97fc142633ae1605615be9f45cb6cbf19879c13e626610ecd3be1821d651a1423
+  languageName: node
+  linkType: hard
+
+"@babel/helper-create-class-features-plugin@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-create-class-features-plugin@npm:7.12.1"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-member-expression-to-functions": ^7.12.1
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/helper-replace-supers": ^7.12.1
+    "@babel/helper-split-export-declaration": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: d686eae70dc985b5e0dae85b7ec690930939b564be7f2c09ca2838a52f562f5753fa5d8a12f7305303597f9f8658d51cb36ec71e6e234b1d1385a36c632ea61f
+  languageName: node
+  linkType: hard
+
+"@babel/helper-create-regexp-features-plugin@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-create-regexp-features-plugin@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-regex": ^7.10.4
+    regexpu-core: ^4.7.0
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: 6d1728b614b35daf5f4cef73769286685f86aaebf6caec1d50b8f2edbcb7a74399cf4381c436405476f97ef3411d025c54f2a2674f1c01580a970e634d492963
+  languageName: node
+  linkType: hard
+
+"@babel/helper-create-regexp-features-plugin@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-create-regexp-features-plugin@npm:7.12.1"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-regex": ^7.10.4
+    regexpu-core: ^4.7.1
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: bf4b72eaedfb09c15177d83ce31988b6eba0afffae1de51b0932c767affbe0091bc5306e22e2b5af1f12cd85a46fa13b324a7ec851e496b9b7cf7c55f5676780
+  languageName: node
+  linkType: hard
+
+"@babel/helper-define-map@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/helper-define-map@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/types": ^7.10.5
+    lodash: ^4.17.19
+  checksum: 964cab640de84daa572d75e07216cf9d1aeeca3552acec0516d3aa10533836741f7391ab957e8b22624bd6b25473d8bd53f4b8d4af8713871601af02d31072ae
+  languageName: node
+  linkType: hard
+
+"@babel/helper-explode-assignable-expression@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-explode-assignable-expression@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"
+  dependencies:
+    "@babel/traverse": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 3348549a83dbb81ae44e97504134460069c648cc9add914856aec281fdc712a68b012f110778d84f098a94588178ba5261221ea6f46abd6892e5ec4281c41be0
+  languageName: node
+  linkType: hard
+
+"@babel/helper-function-name@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-function-name@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-get-function-arity": ^7.10.4
+    "@babel/template": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 41ab8f48bbb7d4a65a90a4cf50c79c386d3c30e0dac10bc3ce311fda2ca971d82289a07570a785ebac92686854237ea1e511e74f2577a38c7ec2d67f2a250a9e
+  languageName: node
+  linkType: hard
+
+"@babel/helper-get-function-arity@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-get-function-arity@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: 4f0ddd43405e5a43c0638ddeb9fd6fc562ce8f338983ae603d4824ce4b586c2ca2fbc0ca93864357ba3a28f699029653749c6b49ec8576cb512ab0f404500999
+  languageName: node
+  linkType: hard
+
+"@babel/helper-hoist-variables@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-hoist-variables@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: 0bc1976366e1535920ac46ecf89700a738bb38f1413ca42f1bc11bef708f297f011078077355dfe81b3e5af8ef696c5fb752408d6b65f85c71839c28ce95afaa
+  languageName: node
+  linkType: hard
+
+"@babel/helper-member-expression-to-functions@npm:^7.10.4, @babel/helper-member-expression-to-functions@npm:^7.10.5":
+  version: 7.10.5
+  resolution: "@babel/helper-member-expression-to-functions@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"
+  dependencies:
+    "@babel/types": ^7.10.5
+  checksum: f239d2dfdbbace14aaef6b1acf38e94e126682a739462b0b5ee1aafa86d58c3aeb082cf8913fd03ad184e0b4b222a09f7c6010fc70d7571209a5bcda47f15626
+  languageName: node
+  linkType: hard
+
+"@babel/helper-member-expression-to-functions@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-member-expression-to-functions@npm:7.12.1"
+  dependencies:
+    "@babel/types": ^7.12.1
+  checksum: ae0cd0594bcc0343663747b28aa3433a312164eab259f919d184d39aed60dc2602b4cf0c7e287a22583c244cfc467b9097a289c1c4fd383f435ad10642c6a3d6
+  languageName: node
+  linkType: hard
+
+"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-module-imports@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: 84d03b58e7f04daf7c5a80765c527c24021ddbf4051567381528e2b351a550451dd87f67bf7a66f251dffcc979cd2ddaa01e1defd8b8db1095d38005e18eb806
+  languageName: node
+  linkType: hard
+
+"@babel/helper-module-imports@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-module-imports@npm:7.12.1"
+  dependencies:
+    "@babel/types": ^7.12.1
+  checksum: 261205f2e2c8da282af7c402089af49add550116b330cc2e9191af349da5f7930893bf147fcb1324ce71f515a287899d67ca3e644a4c94b5a1487d9dbfcda3b0
+  languageName: node
+  linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.10.4, @babel/helper-module-transforms@npm:^7.10.5":
+  version: 7.10.5
+  resolution: "@babel/helper-module-transforms@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-module-imports": ^7.10.4
+    "@babel/helper-replace-supers": ^7.10.4
+    "@babel/helper-simple-access": ^7.10.4
+    "@babel/helper-split-export-declaration": ^7.10.4
+    "@babel/template": ^7.10.4
+    "@babel/types": ^7.10.5
+    lodash: ^4.17.19
+  checksum: 02a2b607058da060cc704583025a9c6585503ed40ba346f0630c017c0042c1cc5ab6887fa5f549f4a0b3d728ac89b9388dc224ba1e4601ae75b2286e16f8336f
+  languageName: node
+  linkType: hard
+
+"@babel/helper-module-transforms@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-module-transforms@npm:7.12.1"
+  dependencies:
+    "@babel/helper-module-imports": ^7.12.1
+    "@babel/helper-replace-supers": ^7.12.1
+    "@babel/helper-simple-access": ^7.12.1
+    "@babel/helper-split-export-declaration": ^7.11.0
+    "@babel/helper-validator-identifier": ^7.10.4
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.12.1
+    "@babel/types": ^7.12.1
+    lodash: ^4.17.19
+  checksum: 902ed2b8e9ff45d33d20379f84b2269741a3a6108eb6c5e9e139186fd72e5bb405fac84bdcb7fae135c0cf4a5464d30bfb78ad00fc163b329aa9caa3630e7dd2
+  languageName: node
+  linkType: hard
+
+"@babel/helper-optimise-call-expression@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-optimise-call-expression@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: 70dd5a6daf6dc9f176dbfcac4afc1390d872821abe4ffaedf3ff0b1dbda8fb4b49efdeb612ae86c08f0773340583ce6e393a7a059727991aaa51b18de1fc0960
+  languageName: node
+  linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
+  version: 7.10.4
+  resolution: "@babel/helper-plugin-utils@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"
+  checksum: 9f617e619a3557cb5fae8885e91cd94ba4ee16fb345e0360de0d7dc037efb10cc604939ecc1038ccdb71aa37e7e78f20133d7bbbebecb8f6dcdb557650366d92
+  languageName: node
+  linkType: hard
+
+"@babel/helper-regex@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/helper-regex@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"
+  dependencies:
+    lodash: ^4.17.19
+  checksum: 956b9f22da2e996670b5f0b61450d3ed4efa462a5ebec5af7967da7a7759670a04ec4887152d43ea6b695c320370cac022987a9647d4caa86f0662605d7fc82f
+  languageName: node
+  linkType: hard
+
+"@babel/helper-remap-async-to-generator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-remap-async-to-generator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-wrap-function": ^7.10.4
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 258395dbab35546aecaf8f8b0b5a2c223cddbd11a41cd85e7571911adf1742ff7146dbf6cf53f14ba3d8f3ae2c54ec9bc396fcf31c66aa56d1dd692b10e99299
+  languageName: node
+  linkType: hard
+
+"@babel/helper-remap-async-to-generator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-remap-async-to-generator@npm:7.12.1"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-wrap-function": ^7.10.4
+    "@babel/types": ^7.12.1
+  checksum: 8bc24e91f106edd627f60ce416a20c4313caa6224f778a81b8ab56612c0ba2e84be403996f449bc8d0132ab47bf8a21a9bc66faea95643e0a50843807cd4591e
+  languageName: node
+  linkType: hard
+
+"@babel/helper-replace-supers@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-replace-supers@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-member-expression-to-functions": ^7.10.4
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/traverse": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 2d7e0627cda8d6f360e52d9c962746fb5818cb6599072d4473fc1e7a2eacfb1a2605a1727d95ae9af66e06e1b84c0a67d40ae16446f838d367de11ae198ee0f8
+  languageName: node
+  linkType: hard
+
+"@babel/helper-replace-supers@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-replace-supers@npm:7.12.1"
+  dependencies:
+    "@babel/helper-member-expression-to-functions": ^7.12.1
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/traverse": ^7.12.1
+    "@babel/types": ^7.12.1
+  checksum: e745f78b48647975392517c64df9311308f1badec3ca911d21126ba2f3f4aa36b4c31ad42f4cba4813d5b44f6c0417b2649d2d9991332f881d59ff25ab32c2a2
+  languageName: node
+  linkType: hard
+
+"@babel/helper-simple-access@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-simple-access@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"
+  dependencies:
+    "@babel/template": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: a7ce52a2295b9290b70cfbdd5667ec42de1a170de2f9d6e8321b3864e631bca729fbb537fbcc85396b7ce921abc2c844a452e70996fcd582dd31433c33ef0f9d
+  languageName: node
+  linkType: hard
+
+"@babel/helper-simple-access@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-simple-access@npm:7.12.1"
+  dependencies:
+    "@babel/types": ^7.12.1
+  checksum: ca44e3f694957d4026e2837905cd4f4ec60d73f49f8d65d8592afa6d797cb000f261ce7db1ed3e14b51200467f4c04917cb84ebe395f3d153462ccce1b980322
+  languageName: node
+  linkType: hard
+
+"@babel/helper-skip-transparent-expression-wrappers@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.12.1"
+  dependencies:
+    "@babel/types": ^7.12.1
+  checksum: 2e690ed5659534f46387bde713d7c511865a309c5cd6f1d64ff94abdb64fe2e4d5e6cb6ed6c9856cbb16e9de60ecac86534b9d1eb93e877830442610889f6144
+  languageName: node
+  linkType: hard
+
+"@babel/helper-split-export-declaration@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-split-export-declaration@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"
+  dependencies:
+    "@babel/types": ^7.10.4
+  checksum: d8536faa40a026f57c48d18ac4e7e3979941af2164beb281aff96af5668984827b6a18f357b903ada6474357a24045b4d0c4409a77139b0207ea62bcdfc108e3
+  languageName: node
+  linkType: hard
+
+"@babel/helper-split-export-declaration@npm:^7.11.0":
+  version: 7.11.0
+  resolution: "@babel/helper-split-export-declaration@npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"
+  dependencies:
+    "@babel/types": ^7.11.0
+  checksum: ddfc44d0cf75ee3a73e71b18e8b9b67d256f6e8496e550ab0b1342ef8cd62dd232c13ac77569e319869b1515a9733863e69a143e76f52e9fc1b51ee374b8869b
+  languageName: node
+  linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-validator-identifier@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"
+  checksum: 25098ef842e3ffecdd9a7216f6173da7ad7be1b0b3e454a9f6965055154b9ad7a4acd2f218ba3d2efc0821bdab97837b3cb815844af7d72f66f89d446a54efc6
+  languageName: node
+  linkType: hard
+
+"@babel/helper-validator-option@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helper-validator-option@npm:7.12.1"
+  checksum: 5d9a8f67500baf464151d15ca281388e7272ed22e3b909e13ccff89b2b4cc83a3e29972f9feaacb8a372e749028b252187982a59c6e6944ce30e0d15d905ab5c
+  languageName: node
+  linkType: hard
+
+"@babel/helper-wrap-function@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helper-wrap-function@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 4d5fe2db333b8f64f85057562ab49d825ad64ec53b94b92d2229645f7373e6e67a51e9eb108ac5d91933687a576ab4cd1f663a66caf140a6911d2a07e7efba24
+  languageName: node
+  linkType: hard
+
+"@babel/helpers@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/helpers@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"
+  dependencies:
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 96859c490ac07fe30fe2b6ad8e474325d2504ffcc8b720b0f22a01e8334d79b4fb3051720c2146390579f7781cbc5923cb32d4e23e51b811c83aaa644fe17f2a
+  languageName: node
+  linkType: hard
+
+"@babel/helpers@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/helpers@npm:7.12.1"
+  dependencies:
+    "@babel/template": ^7.10.4
+    "@babel/traverse": ^7.12.1
+    "@babel/types": ^7.12.1
+  checksum: bbea976e6900dfe1c55bd8425ef982839650a1190859eae9a7cae737332b71375ea74e83863399d2941800142bdbe876829827907096d36685d7a980511c1d86
+  languageName: node
+  linkType: hard
+
+"@babel/highlight@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/highlight@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-validator-identifier": ^7.10.4
+    chalk: ^2.0.0
+    js-tokens: ^4.0.0
+  checksum: c167b938af9797e7630dd922398ceb1a079469085b9c0a7274f093f9f2b1ef9f0a5efec89592e81cbab7c87a537d32c238cea97d288b7af9a0d26b2bceb7a439
+  languageName: node
+  linkType: hard
+
+"@babel/parser@npm:^7.10.4, @babel/parser@npm:^7.10.5":
+  version: 7.10.5
+  resolution: "@babel/parser@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"
+  bin:
+    parser: ./bin/babel-parser.js
+  checksum: c7b4d7183fb89a6b74a4d6c690a9ffd0c33942814ae902a909642fb77495b9ca9ab5420d7f86c2a82e6721469477830e42c7e9f5a49f7471d4ba13819f7913b6
+  languageName: node
+  linkType: hard
+
+"@babel/parser@npm:^7.12.1, @babel/parser@npm:^7.12.3":
+  version: 7.12.3
+  resolution: "@babel/parser@npm:7.12.3"
+  bin:
+    parser: ./bin/babel-parser.js
+  checksum: 3605bcf97e956ef36506ccb7e0ca4432025d8992c7e1f5d5b03976750a1198a0b27f461ab9304dbc5319a154b5ea19c09e72f87bfc5c08dd2780428734e13339
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-async-generator-functions@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-remap-async-to-generator": ^7.10.4
+    "@babel/plugin-syntax-async-generators": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d43c72c3308dbf70a6f437919af6e8de6e59170876443d3785554805272901f2eb226a95535aaffde397ff664cce74425fd50986908195741714860986aade85
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-async-generator-functions@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-remap-async-to-generator": ^7.12.1
+    "@babel/plugin-syntax-async-generators": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 59f8c4e46900f8982507fc2bee65a39a831469e1ed7862af8b78c4244386c5bb0eaa416c30964c30e64c0ca24abd5e39b900f83686b4e86c45db07263bb6a629
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-class-properties@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-class-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 32cf34c077eb2612e7f9a599078a51ed53807167b8cfe01702a777bf9efaec254820e2c3c52ce801e8619d40226065f311b8190b36c21f8b853c7f340dccca1f
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-class-properties@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-class-properties@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 690cbec3df2c4a1ec12c8a99b87dd4cc9aee07627dea957031549997267ee6ce59727ba44266dd83d3c6fb4cf759d14017ad9a530bf3d8f4447780947031449a
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-decorators@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-decorators@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-decorators": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 148c01c4ce42efc033c5c307c4de3aa32b3babd0e06b4fab03a116ee370614e1e5b82f0b92ae6e11842cb0a759db25a1daa3214331ffe5055323c7b2fbebb7c0
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-dynamic-import@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-dynamic-import@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-dynamic-import": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 0ded8305a774d2885ead96e9fda66ec0fc01085c123427b4ecd71314ea08a2b753e8bdbf28f127eafa9cbd7d2d08c7302506ae6f9c0e1c0895818a4c1604f45b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-dynamic-import@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-dynamic-import@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-dynamic-import": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 4428439b483912c898d70a858f86e48f28247f55b05f4ca4ebc1f6746e63cc73e2704ed85c8fc65f2761154f4fcfa08220ac413c9edd5758d1ace03b4dcd4551
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-export-namespace-from@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-export-namespace-from": ^7.8.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: ae5317ca008cc9eb2890b1f238156fbb990e5030fd1b7f123a5d11d89f8617a867b11db129aeafe51ef3bb4dddc4059e8172ddf99e8cdc42cbfa2a45dce1a16b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-json-strings@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-json-strings@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-json-strings": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 340397166125ea2d4e2b2c15b5bb8845dc6cb5dc2bcd9ff52b5e767b8337e38ff1daa66aa7eb461b4abed3d242376e93d972ebe6799b5a1a3c65b1feb8833dfe
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-json-strings@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-json-strings@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-json-strings": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: fbe4f3241c3edfb432138745657386c049cde9c39fbe9cb86f2a6ec10809cb4aafebf3f78b351bae3acf2cffca6cfd319d26d8c899c50b4bd7a39675ebb57f6b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-logical-assignment-operators@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 08af656aaa40c554ba079c5b6cae9fe9dff95cf817debcbfc2ba5e7b7e051d6b2b04aa727d4e77404ea147758e513da7be8b35626e8053f50caceeaeff8f9763
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 5a20d8bcbf2926dde3e9edcf847eaa5485d0d0fea76d0683ef1cafb11e0c35e46620391916283e1a9c0f76351e8c5ecccebf0d3a6bdf24559c5ad381433a0e3a
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 9c825901a13aa52330b7ec44f2b6355112d9e2dce9f3e0230c66a7536d542424d19a08b797cd72a00c18fe2e11b1d4037b365012eddfe69c169500b02ed83964
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-numeric-separator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-numeric-separator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-numeric-separator": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 344eff491f0a7bb17958ce00db34af5671ec3d9dc87c29766208ab7a3c8ea769730c9f2420c55c54ecd24ffdd5df01f258d54eb41ccd35911e974c549a697e4b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-numeric-separator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-numeric-separator@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-numeric-separator": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 7c825cc90305ab55f17a363857f5a31b8db4008a627a9153c5778003231cda5da669c2a64b4ab5a309b54889f44f5e2332d8956d89be5d446484f51035b71147
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-object-rest-spread@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
+    "@babel/plugin-transform-parameters": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: eb09aa3de7ee0c89ba28e4e1a7e2e24d1d2ba8cb83288993798b37cb588a16c19b9bfe596108bf0e4e9b266c53baeb77aad6bb5d9c114af1e8828693ac7f2c28
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-object-rest-spread@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
+    "@babel/plugin-transform-parameters": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d14fc95dad725b72bc1d29f6ea3eee0ff436fa5ab2ac2dd486acb9c1e4cda9f68424581c87857fe4e2c58bf48386b38b3eac542157b040b0f25c1fbbd98dd8f0
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-optional-catch-binding@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 56a3a62131cdc7b7481a005dacd26f83ae10936e2dbe0b06a98cb767b13cdc859504d862a166be8d1e2ac4bc0ddfc7aa9fa7135a68e126bfcba1bcb0585928d0
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-optional-catch-binding@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: ca8c20fb7371a3e16d48d9989ec8c3a38eb46354dcd2edba70231fcb0959967920a01c9dee768f21e715ef679c4d2b10b9f04499655f719228e753e2d884e3e7
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-optional-chaining@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-optional-chaining@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-optional-chaining": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b08607650998af75a53324b8b72dd40153791a02bd738551ffe7a2b8b9d9cd9935db97e1b5f028124e74e53d80a703b13804fb0d90f7edfc77a0a8daeca0184d
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-optional-chaining@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-optional-chaining@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-skip-transparent-expression-wrappers": ^7.12.1
+    "@babel/plugin-syntax-optional-chaining": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 3cca1bf3b36de3727444178df99d78c36a181dde039032472a861e19d6a47cf1460752df7180d871e7e450434242223cdf92e67b70e5c6b27207b1f12daa6511
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-private-methods@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-private-methods@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 7a29e63aaf68e25059570253c0f3b1046000ed2d43f66cb458a90c6d5fa4f1cc58f2197778ee0d07f773520980bd076609f94789d7f6b8637b9927d62ddfe6fe
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-private-methods@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-private-methods@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 350a1a8c3df47096fe37f455f6fcedd185f514a72e3aa01df8a773fb4cd86370a34f3c14cdecf0dda609c7715061ebde87563a21ceccf9f5846d1b38dd97b2cf
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-unicode-property-regex@npm:^7.10.4, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 41e271cf08bad32a0e86dedb67ed4329a119466ec1531a69397915fbac6032f8452e5b0bb7205a069a6a728c370375a944efabaec155d861b9e4028e0f434667
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-proposal-unicode-property-regex@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b960b8c1af6f8420e0ae1107f5af00ac954a322117428330585230b3b28c0653be80d463d6c3c18fe629fd2f7439ecbee635c9d5a1867da58331e744b2613f90
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-async-generators@npm:^7.8.0":
+  version: 7.8.4
+  resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 39685944ffe342981afb1fe3af824305e94ee249b1841c78c1112f93d256d3d405902ac146ab3bad8c243710f081621f9fbf53c62474800d398293c99521c8ef
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-syntax-class-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 8d0c1a3f5a922c2cd9387c7313e5516d58bfb6e60885b8d953ae23b6432aafe14be0fa1a2d4348c02f2eaaca82fecd76b7f622bff439775505c021b00a12dcbb
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-class-properties@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-syntax-class-properties@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b5e354a0cd18f67f29e59cdaa80f9e50839ed9d3d8e1fca2964431fa474d08c3ca4cd1f61d0bcb577e8451c541e45e0e702e6feca5483ecd4e265ef5a0b70d42
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-decorators@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-syntax-decorators@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c64b9eedfd5af1f106a98978e386b51e04bb4849821cb889feef397df13f5fddf4ee7dec3d0d1319a606eeb8368622ca4bc4bf428c1c353920a0a1fddb16d440
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-dynamic-import@npm:^7.8.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.3":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 134a6f37feac0e6d55f8188232e11798ccf699b02d50a4daf9c040f52a22ee32923a6a979443ecc865f4014937ffe67ac11b81aa5668b6792238c647314f41c9
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 832e007319bc5040818012d51eb91c3ad4c38a1ea696e9a9805df4d601d8c4f061032cb61494946e7bdaa5db0422a6bb6f39577cd0e5c8323b6bb2c364406dcb
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-json-strings@npm:^7.8.0":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 1a7dabf0a4b264cb235966c4256aad131567eba20e41de731fa9127d371454a2f702e27fd7bedac65efb0df847e5cece7bcb5507a931604d1c2ecb7390adaa1f
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-jsx@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-syntax-jsx@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2f0314608b171d0146dcb8283abfb0d48824da19b311b3aa875cb9977db23cb5e64e895390780f1839dd9679e6761b61e109d40741f174d73f200b6eceacfcbf
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 5b82f717707d278e58d12649932bf3327923361f051cd4517a5b63d7ebfe39cb6cdfb37aa199b5a441db305301a3c8de01c946d25d1f4c4ecb94322a23ac9e73
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.0":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 4ba03753759a2d9783b792c060147a20f474f76c42edf77cbf89c6669f9f22ffb3cbba4facdd8ce651129db6089a81feca1f7e42da75244eabedecba37bd20be
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 47ae8782939ccc41f94b1d46b8b7a63363b003b8b7544bddae8dd454a8d51b38bbd4f9c26e91ecfb5fc16dc5f2228700e3030def63c5d07046073ec8fabc4665
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-object-rest-spread@npm:^7.8.0":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: db5dfb39faceddba8b80c586e331e17c3a1f79941f80eaa070b91fb920582bffe8bba46f6bebbdaf7c1f9b0bbe2a68493c28e1c9fb0ced864da739c0cd52ce43
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.0":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: f03d07526674ecdb3388e1d648ec250250968e13c037a7110e37d3eab0b82b07d6605332772afdf19f1831dfd3bdbbf0288a7d9097097d30b9548388ea693a07
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-optional-chaining@npm:^7.8.0":
+  version: 7.8.3
+  resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.8.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2a50685d023bc609b01a3fd7ed3af03bc36c575da8d02199ed51cb24e8e068f26a128a20486cd502abe9e1d4c02e0264b8a58f1a5143e1291ca3508a948ada97
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-top-level-await@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-syntax-top-level-await@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 998d87fbd38a2c7d1b630ccd0a90430a70dec6b7fb23fc37c60cbc10de7112a094c786602d9c8e3093568f538eb2642705006682ce58eb922f2eda889af3ad48
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-top-level-await@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-syntax-top-level-await@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 9767e46ddc1add9133a21f5d6c4452e9a62f891fe1db5d8291f62f9036f9e697bc118adad43109a8740ac15769e9489d68d134b17cfe9f3bdf06d2c50c9c6dce
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-syntax-typescript@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-syntax-typescript@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 37bdb828915d9193d5fc3b877fb479f1cef6ea3f1cfaa18908170fe23af043ba59d7bc723d3e27067b879e486f16e418d602d7212a7a1e93125bf80339c39668
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-arrow-functions@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-arrow-functions@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: ec5b1d6ec6b61baf93cff41016e30f9d410a6a24fd8adc6e8790b168781470ad52dbf34c8e6897bed7c62eb79c20f59f96e6014acb8f7fd6b91c89ed1c515acb
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-arrow-functions@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-arrow-functions@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 602be39f30dd1937a2ff8bb40af594a150998d6914fae61421cbfb99cc91ab7dbb9bd156f4f092e789fa0a8c16034d3e0f663b25521561a63da219529d816506
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-async-to-generator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-async-to-generator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-module-imports": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-remap-async-to-generator": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c4cddae691f303aecc5124dfd4cbc9eba09523b714b92fa4a567cf4add212c057b93d7598cd6dda79645230c777290fc13ec17f6384255c8bdce50692539abe1
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-async-to-generator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-async-to-generator@npm:7.12.1"
+  dependencies:
+    "@babel/helper-module-imports": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-remap-async-to-generator": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 96a48e5cbfb44f9d2a5d561ff96c9821a1dcb15c9b61d8cb7b0ba0f78ff21873f0e8f486075d5d75122dca53d87ae25f6743f04f4129ec912379127be1b4de74
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-block-scoped-functions@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d608f55104576798ec224d1b222ee33a22968bc0653b54c316c0a591bf4c2681b87c6222266d978ab273c19ef44e6976eaeac4da8928694312433a01616cc73f
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-block-scoped-functions@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2da63c6b92d35928d51d2d9782b5fac6a0aef07051bed78eeb8b6d1a57260ebb830c68b8eeb374e169c49ffaa032e49a04fe468259cf1dd7d7010ef07b1251c9
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-block-scoping@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-transform-block-scoping@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: f4df58ebe82dbb758e2bfe4fc0ad9b6746c244ec6ed6a6d4bbdae9979055e7a67fbb6e844c28fff6b614f79d98aaf1e554b9116f3a1f9c6bc9334f51022ae1d5
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-block-scoping@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-block-scoping@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 067f8b55a32ba53c7bc61e730f0a2dd063ee377afea88e153e9b8bd8069d666df3106b80777e37e418d14a21cabd1dee0f7dabfe8cb038d5080d9e332a202e36
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-classes@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-classes@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-define-map": ^7.10.4
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-replace-supers": ^7.10.4
+    "@babel/helper-split-export-declaration": ^7.10.4
+    globals: ^11.1.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c5ba85f73658eb060c83fafda960572c9ceb4e47650c539fbde474d37f133a0112031c4602964cf5f9ef967916e4bbd4afa8b1210cd64ec6fb71519521e28348
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-classes@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-classes@npm:7.12.1"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-define-map": ^7.10.4
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-optimise-call-expression": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-replace-supers": ^7.12.1
+    "@babel/helper-split-export-declaration": ^7.10.4
+    globals: ^11.1.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: ae895d1a201be7c038f220f49f00eb804cf5e2280199127469ce0962080574b9515117807c0f1c5d446df543b2fa8af1325d6bafb46aa4e6ecdfe1d30aae2047
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-computed-properties@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-computed-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c69c53881deaa1595fd974328997f1c4731586df5e6be310269107becb83efb0fd8abbe7177320c6b1fdd8828bfe42301f6649e7589da8472a65ecda72cd8d32
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-computed-properties@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-computed-properties@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b3680b9c0327e55ae58b16e9f77cebc857a30fcda45b863750396ff46e1714b5d57fe55b57ef6552004b0e110d5b66c6994753fa45d658b13c245907ffb72757
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-destructuring@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-destructuring@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2ea714834691b08805227a5335707e556aff087507c9fdccb7265ed56ca9ee39635945d102f5a6f418ade08f3f61ce3f4ebc345d36060254d06d6e08a5693f0a
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-destructuring@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-destructuring@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 704057fa7c9107efd19615e111517377a75f9c52c518870779effa225a220ba9f77206d60574e8ff15bc8be32996f0c0d21c01bf4095c4ca04a18e0b194a1f75
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-dotall-regex@npm:^7.10.4, @babel/plugin-transform-dotall-regex@npm:^7.4.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-dotall-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 284cce72dfade92b51e8a66742ac7e9449f3d9e379ea2185777e600b000fd1ba0614786ccd9f753a52e2a896235ba7381d82767d7ade0352fd32ec5c90781bc7
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-dotall-regex@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-dotall-regex@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: dd522110c9a981194cecbf8dbb8b9c668b6bdbffdbb4e601db3edca35398d778a9d4bc26a60af5965eba1230fc960e9a7588c3b90db87b5f243bd29332d788d8
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-duplicate-keys@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-duplicate-keys@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 60897c7c2f49f687b5699c486a84f91f16bd8951c306795199bbc908073000db3d693f4ca04058d62ef09bec61fccd4d9c379ef8086754297d4440b1677047f2
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-duplicate-keys@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-duplicate-keys@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: a8c45815fb51048ac6b6f8fdad583b6d9d48affc9d00c9ef67b030e3262e12694d51b026db90dae26bce5420c8e26bc7ee663fea973c1aebafb4636a0ffcbd20
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-exponentiation-operator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: fb086b4482cce50adc59dcc5713f4a4fe082bad176b360f5bb3fabc47461cdfed6bbf739a84535a78bc26f743bca74f31f195ec8c223cba8acafa299f5361fe1
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-exponentiation-operator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.12.1"
+  dependencies:
+    "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 9a01b9350660ea68318fa94c1486833e006f75bba236854e714662dc4f2674604b8cb377844fa45727f6a63fa3a379d10da9090f5f1cc6b95d59ed5e63f77c5c
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-for-of@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-for-of@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 86c02bbf98763179f881f58f7b3c6536ed6da36db9190f6a285a61298584ecbef253e1d1e7ffae3cdc216c47bca7987d96e3a4c652edd3134994a146da831e4e
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-for-of@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-for-of@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d51761cecb966bcde390a9ecb9651679d9a8c96e5f74182066028d496abeda26091986f64817e34c8cb2895fb722e364dd875645ca35ec1d6bcd759fd37b8907
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-function-name@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-function-name@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 64d8bf2de2a290d1c5d0c5f1d5f57fc64ff02705bc9740fc217f026d7aea7a1823ef22e28c6aa101ee7f81b55485801938bbc2210530845eee7fc0305ccdde0c
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-function-name@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-function-name@npm:7.12.1"
+  dependencies:
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 7dff23e9b56f4b2f715c5bbdb21388c67820c5a543344f01aaca580ce124fb6646d36786fb4e8a9ed550113b28946c559f4b3402fce8cffe0c8e124213bc1d0e
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-literals@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 53cd3f43672cb9361175e21cddb9eb39d260ddb1ca6206c669ec5a6519db16609cb46e88af700b3da5b2a9ce09ea035f9557ca60e679341d737b1988f5ba6088
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-literals@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-literals@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 1bc7a828e06ac4484cd26b521a3ce3da221899fd1dbf747e353c5d560749160ac104fb505d1deaccb46dc01d5f6fed134577c14a67f1608d1522223e22d3cfcf
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-member-expression-literals@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-member-expression-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: e6a1844cb542ea43a83fc0ac81f630ab5ac1547aaf595acfb9f9c17e98b5aa1f7aca21f84657c111260e6e7a2404643355ea8c2b5fd434915b106c3e1c2f431e
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-member-expression-literals@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-member-expression-literals@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2a216ee882d6046e2ccb949bf353c23f729f306a660139277b432c0cbe1db03e04cb9c0b03db86098799c705654a215dc9be714e22b91a8c238bab2c0ecea726
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-amd@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-transform-modules-amd@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.10.5
+    "@babel/helper-plugin-utils": ^7.10.4
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 6d2b80f3ca13d13589863288f75f9c9efaa7d80e6eeb93351c8994c3c15c4a675e8347f0b28fcc2afb2dce5cb17b499560a215ba7691719d6ab0ad164384e41e
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-amd@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-modules-amd@npm:7.12.1"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 0b22d7ccf3bf91aebc9a751bbb88f108ee553a047756dc5d83d34294561f94ee1f63cc23479eb2f17f34d118234143e8627c2a29beb14d151d04294721dd4fd0
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-commonjs@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-simple-access": ^7.10.4
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 42176865089a2800e888c41beaf3688e00b9b71b5bc65ca238342c83e9d38ec141eaa405182688a8294b344cd8a7ed36ab2da2662c38a40e2c736fed48ae7178
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-commonjs@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.12.1"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-simple-access": ^7.12.1
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 7201ad5f82f51f992e855909a99adc9dbade07146d86bd3b219fb6bc4111169adca4b082365365657f03ae025b5ce18d749125251a1aca111d06c2c647cfbfbe
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-systemjs@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-transform-modules-systemjs@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-hoist-variables": ^7.10.4
+    "@babel/helper-module-transforms": ^7.10.5
+    "@babel/helper-plugin-utils": ^7.10.4
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: eb08d7c7e58c45c14212b885d3aceea9742a4565fa561e171c53169834d5e42044c818447a7f055f098b92742eef392470cf16678c30b9775bf6b232130c259b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-systemjs@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-modules-systemjs@npm:7.12.1"
+  dependencies:
+    "@babel/helper-hoist-variables": ^7.10.4
+    "@babel/helper-module-transforms": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-validator-identifier": ^7.10.4
+    babel-plugin-dynamic-import-node: ^2.3.3
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: f47d070edac6c064a7a86764885b84bdb62ecea6ca8a6c33ae8bfa516bf4f3827df0ec72c720d8daa8d376a9a1669e9a9be3f1d6576544288b709f0556a4c806
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-umd@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-modules-umd@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b0c3f47b9e36dd2fffb8f31ee6449410b59bcb8c544552bc91c2f565ea34c8b9dc4396b478e38ba885b96777de6fdd38cf2053307c189837b54429290ecfa720
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-modules-umd@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-modules-umd@npm:7.12.1"
+  dependencies:
+    "@babel/helper-module-transforms": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 9998266d1ea4eada5fdda84fddc1611e733eb75ff363419c7884827cbb3229bc0c14e7abfbb1436354102ce085175f9a850cbc7a2bbe7c1493021414da3127ba
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: 6b868806fda6cab6ff011990473a424199059f75a9eb12d0e421e01460244e0164f837af8b76e415bc390bf6502d5372ad9d56fd270cd1cfff7e0d19facc237f
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0
+  checksum: 96eb5b35875d6065a934110bb04ce18feff437f085651c75cd64f32cecf3e87ac7526ff55b7592129bde3b1d61c9352da64fccd99baa6f5c58229bde67ab9d0b
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-new-target@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-new-target@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: a4742428d2c942d11b8cd91beaf6e3e1509416b563bf74959e4d103ffa954176d639cb44eb3b5992321897253eda6d921f21f18af1d20da30534dcccdd474bec
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-new-target@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-new-target@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d3b9f4f0c28211d7e2cafe7c20691259da9ec8931d870154c46132a9b6e4dfc575caa76bf60684eff58f0da75423cebae1ecc8b53f35f93eab4ccdf68bb0f633
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-object-super@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-object-super@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-replace-supers": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 30485dd88ba30dc1584d08a3c2b61f61e3ca5b0850a183e3c655a3bcd7fa49fd3c5c1d5de5da2baa811b97d65d52fec11a39deb3acca4acbacd63ae632335d0c
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-object-super@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-object-super@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-replace-supers": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 36cc06f539aee16a544151c096381cae1a13f3ac531fe3a340a687373a5c01fc368b9d3d53ced0caf1f5413b5176c4acf34132f39f00e8045bf31cd9d7ffaaad
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-parameters@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-transform-parameters@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-get-function-arity": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: f5da5726a22e981388640b152b7cdb75132e8a0d93a0228a4c6c72a9cd80052edf01e25829d24f71419f978de0512103d61328fd24d4df36c3b0b16064b5b1bb
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-parameters@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-parameters@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: a968ef99b6356b610bee1f933dfd64cfd3fe3d0971370bc31734fff65435a05fbdc42b59401e9dc9dfe4b310e92e417a3273f454eb0542ec4afde9088059b963
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-property-literals@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-property-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 06ced62af42371e315830b84b71e043a08fbdac995945b7b15d9987430d3eea9f3aed646c3b50e4b4aaa2fadf46a824b2a2ce49e379db7157647a37d751603c6
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-property-literals@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-property-literals@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: dff34b03d88e0e4a333f1b046ecf3a396208266afa270ce40f87e8051ede4fdc351e59cbbd78f5e49601f57a00b99f76879dbcd2d79d237871ba54831ef393e9
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-display-name@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-display-name@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 88d6819169bd3d84ccf47614a363b46f7269fa6d086f1a05e0b306fffd72c73c9a07cc9865e8bee2889b37754816b8ab8f668bc18cc0aa8691fde12e3338db11
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-jsx-development@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-jsx-development@npm:7.12.1"
+  dependencies:
+    "@babel/helper-builder-react-jsx-experimental": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-jsx": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2af1228b5e259f44e474439605ebe875df1c87bbd0f2ce7ba15be1d4e204edeb34b0334d3d8ae93cb47255cab3ade7be9f6cfc1a7a8f6a3099355587caf675b5
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-jsx-self@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-jsx-self@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 89401f14f3ca08e8d4e3fe9ba91f09f6ad10e7f2636e7c569a392876ca04a376289b36e4a2853869d8c62de2ab08961574ee5b9d97542f933fd845ca246f5f85
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-jsx-source@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d5fd8818ad8539e1d74541185b038c952fc8a6a3179b0bcac9ee5644f0bba260ab57335d736b11838bb19b5078cbf5c14bdd5c93927b96e359ccb5414f4a9488
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-jsx@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-jsx@npm:7.12.1"
+  dependencies:
+    "@babel/helper-builder-react-jsx": ^7.10.4
+    "@babel/helper-builder-react-jsx-experimental": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-jsx": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 58dbb169e2a97a7cba0a6b204c8288827be7d8a5aa895240c0228eae9c889e9ec991ee84b32fc8be665709822febc4356e7ddff02168c24ccafa16641c5bab25
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-react-pure-annotations@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.12.1"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: b1984954daac2a02e5a105e616df273cc13b76e8ead061913ee80089d8f77722235cd1103ca8dc4c2bbda62a53736d15037dcffe6dd9a06acfa83600299a790a
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-regenerator@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-regenerator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"
+  dependencies:
+    regenerator-transform: ^0.14.2
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 932b35c5ed2f91b09afbea141789d561e8ce5af280f668107fb2768bc3e441c102c37051a964749837053c7be266a224a9ddc5acc562f997b9fef406ca47b179
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-regenerator@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-regenerator@npm:7.12.1"
+  dependencies:
+    regenerator-transform: ^0.14.2
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: a1722c284770776ea88a416c9c081dedbf1844f5c90a245998bb28243714d3275b5256d1531c565c53e5511d1e00404ca172fe47106af0a9c1aa52572b6b5c74
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-reserved-words@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-reserved-words@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 457433e66e54b527a4b27473eaab0302a868ed74c8b9fcb33a8a7fd24e66bdb764d6bff505de79fcfb35444debca66fd12b51c9df53e6cf817b784ad9f46ae91
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-reserved-words@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-reserved-words@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 41f589086b16cdd9b0783e0733ccf236ebdd68cd4def7641e9ff18efe1306fee21f096f6de0384c69854dd6445514b4a844ae5ea3e8a55a76ffb5bc1051085b4
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-shorthand-properties@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-shorthand-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 91ba5aa0990a9ba2fdca39c98cdd687a7a0bc62c20c0243cbe02b8c580e51d55f2ee310df9decd7b8eb8e8395c68071ee69d22b953aafa0b2d436081d767317d
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-shorthand-properties@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-shorthand-properties@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 36cd37c9dd09d822c0707544c19539a01c5744ca8024f7dbaa3ca11284c6b1ec88ca631698351aa3302fd8dc7e8b3332ac1df0987146d707168c4951ae90c98a
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-spread@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-spread@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 67ac6ffa6492694caaa427522e4a550f5925e7f87496ee30b24c2f4ab7aa931a627e923211f7570e42101ec094a77643ce480bdf67b3f9c4812532efb3eff902
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-spread@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-spread@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-skip-transparent-expression-wrappers": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 905e1872e34b9aa5b8f95ac33accb6cbe8a1a5567043767adc3048e095aa20511d8555688a47129da2bb821d57cd77de1e1482cea7eebf2ee18b65b1f5ae05d7
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-sticky-regex@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-sticky-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-regex": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 56eed04e484f03645bc57228b3c6057460a2ded9ead109aa895edef4475410f480896319c04f1dbe66fcfe8b5a49ead110ce50595eefee01a0ac6fbb2b2f7f8c
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-sticky-regex@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-sticky-regex@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-regex": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c7d0f3948192e2136dc8138c62e7cb7a2844840102127cd67b22b34f638b23b0fc387a4f191d8606497b66208a33d897c9e6c2f3f5df5c4c7864d49cdb91e649
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-template-literals@npm:^7.10.4":
+  version: 7.10.5
+  resolution: "@babel/plugin-transform-template-literals@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-annotate-as-pure": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: bd5e87e4073d3b8ee437f5c3ee1316540110796a988a31ab238291ec3b6d99dde1f19733d34d4ac9e0f71419e37870519cd43e91f3f3896068b450df860982be
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-template-literals@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-template-literals@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2e37a8efa38cd856aa2336e285978c86d23d95066db96833fa2b38b879d81ff242531c1712c86e6b6b130144bd5a272cf7213ea9b585debaa6d877043d30e229
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-typeof-symbol@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 13f3e7537220788f3d1b6a100769897c23dc084abe38e5e893a8e71f729f74a675af10999ac672cd83f3206a942dc5e9200dea5b0d474f37119de677af142737
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-typeof-symbol@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 73bb34cb448ae2e953b36c8d0283c73b7979577ca470fccae036a0b7b2a8e9b266a377878495f9a5dea1b42b5b33f6f234dc08675600f1ae5e557e73f64bdc48
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-typescript@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-typescript@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-class-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-syntax-typescript": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: d93737e2350d0f7c36726c43af64ed4af566e67fd38400faf7f9057ede62eef4fa99235228167b27150e03b86aa53c2ef9f0ea346a02ad9a3070c147aa5e732d
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-unicode-escapes@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-unicode-escapes@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c7467a508fa834df8f251f714604fc1ed21c37e8a1443a24bcc1db353f647d28305f912c603924648081a717cb92557ea6bc47c5b011ebbe67f601e7dbaa6b5e
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-unicode-escapes@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-unicode-escapes@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 40f57b173a7d5623d58175692dfee966ced2f7d760bc50785e9ee5cb8b6360d836ae89677ef9b9a2e98f71b0a75e66306a21483d76d64047250bdc16006541c2
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-unicode-regex@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/plugin-transform-unicode-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 2e0762e7fa222c1e2c936ec0e94af336dfe5c69130499ada734b20e2c86f83907528c748258f3ee99e728eea3b183f9e0c9d61e3b3d4c83daa92308078cc1888
+  languageName: node
+  linkType: hard
+
+"@babel/plugin-transform-unicode-regex@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/plugin-transform-unicode-regex@npm:7.12.1"
+  dependencies:
+    "@babel/helper-create-regexp-features-plugin": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 411ddc96ef17d33f063371d9bbf2841cc0907e8d65060776a78e793386239070c7c0699c72d975d9b82d9cbc60935255b0a86eb7f5ded7d8dc634df9e5d4c445
+  languageName: node
+  linkType: hard
+
+"@babel/preset-env@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/preset-env@npm:7.12.1"
+  dependencies:
+    "@babel/compat-data": ^7.12.1
+    "@babel/helper-compilation-targets": ^7.12.1
+    "@babel/helper-module-imports": ^7.12.1
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/helper-validator-option": ^7.12.1
+    "@babel/plugin-proposal-async-generator-functions": ^7.12.1
+    "@babel/plugin-proposal-class-properties": ^7.12.1
+    "@babel/plugin-proposal-dynamic-import": ^7.12.1
+    "@babel/plugin-proposal-export-namespace-from": ^7.12.1
+    "@babel/plugin-proposal-json-strings": ^7.12.1
+    "@babel/plugin-proposal-logical-assignment-operators": ^7.12.1
+    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1
+    "@babel/plugin-proposal-numeric-separator": ^7.12.1
+    "@babel/plugin-proposal-object-rest-spread": ^7.12.1
+    "@babel/plugin-proposal-optional-catch-binding": ^7.12.1
+    "@babel/plugin-proposal-optional-chaining": ^7.12.1
+    "@babel/plugin-proposal-private-methods": ^7.12.1
+    "@babel/plugin-proposal-unicode-property-regex": ^7.12.1
+    "@babel/plugin-syntax-async-generators": ^7.8.0
+    "@babel/plugin-syntax-class-properties": ^7.12.1
+    "@babel/plugin-syntax-dynamic-import": ^7.8.0
+    "@babel/plugin-syntax-export-namespace-from": ^7.8.3
+    "@babel/plugin-syntax-json-strings": ^7.8.0
+    "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
+    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
+    "@babel/plugin-syntax-numeric-separator": ^7.10.4
+    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
+    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
+    "@babel/plugin-syntax-optional-chaining": ^7.8.0
+    "@babel/plugin-syntax-top-level-await": ^7.12.1
+    "@babel/plugin-transform-arrow-functions": ^7.12.1
+    "@babel/plugin-transform-async-to-generator": ^7.12.1
+    "@babel/plugin-transform-block-scoped-functions": ^7.12.1
+    "@babel/plugin-transform-block-scoping": ^7.12.1
+    "@babel/plugin-transform-classes": ^7.12.1
+    "@babel/plugin-transform-computed-properties": ^7.12.1
+    "@babel/plugin-transform-destructuring": ^7.12.1
+    "@babel/plugin-transform-dotall-regex": ^7.12.1
+    "@babel/plugin-transform-duplicate-keys": ^7.12.1
+    "@babel/plugin-transform-exponentiation-operator": ^7.12.1
+    "@babel/plugin-transform-for-of": ^7.12.1
+    "@babel/plugin-transform-function-name": ^7.12.1
+    "@babel/plugin-transform-literals": ^7.12.1
+    "@babel/plugin-transform-member-expression-literals": ^7.12.1
+    "@babel/plugin-transform-modules-amd": ^7.12.1
+    "@babel/plugin-transform-modules-commonjs": ^7.12.1
+    "@babel/plugin-transform-modules-systemjs": ^7.12.1
+    "@babel/plugin-transform-modules-umd": ^7.12.1
+    "@babel/plugin-transform-named-capturing-groups-regex": ^7.12.1
+    "@babel/plugin-transform-new-target": ^7.12.1
+    "@babel/plugin-transform-object-super": ^7.12.1
+    "@babel/plugin-transform-parameters": ^7.12.1
+    "@babel/plugin-transform-property-literals": ^7.12.1
+    "@babel/plugin-transform-regenerator": ^7.12.1
+    "@babel/plugin-transform-reserved-words": ^7.12.1
+    "@babel/plugin-transform-shorthand-properties": ^7.12.1
+    "@babel/plugin-transform-spread": ^7.12.1
+    "@babel/plugin-transform-sticky-regex": ^7.12.1
+    "@babel/plugin-transform-template-literals": ^7.12.1
+    "@babel/plugin-transform-typeof-symbol": ^7.12.1
+    "@babel/plugin-transform-unicode-escapes": ^7.12.1
+    "@babel/plugin-transform-unicode-regex": ^7.12.1
+    "@babel/preset-modules": ^0.1.3
+    "@babel/types": ^7.12.1
+    core-js-compat: ^3.6.2
+    semver: ^5.5.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 32a9f56fc405ce3545a48dca5daefed0a2ae418e5105c9b0cc26a4c9679346d2cc8b1efb01f1496d6b5d1d53d6037191acbd579b7e42d1f6d605c3ae26f6af22
+  languageName: node
+  linkType: hard
+
+"@babel/preset-env@npm:^7.8.4":
+  version: 7.10.4
+  resolution: "@babel/preset-env@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"
+  dependencies:
+    "@babel/compat-data": ^7.10.4
+    "@babel/helper-compilation-targets": ^7.10.4
+    "@babel/helper-module-imports": ^7.10.4
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-proposal-async-generator-functions": ^7.10.4
+    "@babel/plugin-proposal-class-properties": ^7.10.4
+    "@babel/plugin-proposal-dynamic-import": ^7.10.4
+    "@babel/plugin-proposal-json-strings": ^7.10.4
+    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.10.4
+    "@babel/plugin-proposal-numeric-separator": ^7.10.4
+    "@babel/plugin-proposal-object-rest-spread": ^7.10.4
+    "@babel/plugin-proposal-optional-catch-binding": ^7.10.4
+    "@babel/plugin-proposal-optional-chaining": ^7.10.4
+    "@babel/plugin-proposal-private-methods": ^7.10.4
+    "@babel/plugin-proposal-unicode-property-regex": ^7.10.4
+    "@babel/plugin-syntax-async-generators": ^7.8.0
+    "@babel/plugin-syntax-class-properties": ^7.10.4
+    "@babel/plugin-syntax-dynamic-import": ^7.8.0
+    "@babel/plugin-syntax-json-strings": ^7.8.0
+    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
+    "@babel/plugin-syntax-numeric-separator": ^7.10.4
+    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
+    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
+    "@babel/plugin-syntax-optional-chaining": ^7.8.0
+    "@babel/plugin-syntax-top-level-await": ^7.10.4
+    "@babel/plugin-transform-arrow-functions": ^7.10.4
+    "@babel/plugin-transform-async-to-generator": ^7.10.4
+    "@babel/plugin-transform-block-scoped-functions": ^7.10.4
+    "@babel/plugin-transform-block-scoping": ^7.10.4
+    "@babel/plugin-transform-classes": ^7.10.4
+    "@babel/plugin-transform-computed-properties": ^7.10.4
+    "@babel/plugin-transform-destructuring": ^7.10.4
+    "@babel/plugin-transform-dotall-regex": ^7.10.4
+    "@babel/plugin-transform-duplicate-keys": ^7.10.4
+    "@babel/plugin-transform-exponentiation-operator": ^7.10.4
+    "@babel/plugin-transform-for-of": ^7.10.4
+    "@babel/plugin-transform-function-name": ^7.10.4
+    "@babel/plugin-transform-literals": ^7.10.4
+    "@babel/plugin-transform-member-expression-literals": ^7.10.4
+    "@babel/plugin-transform-modules-amd": ^7.10.4
+    "@babel/plugin-transform-modules-commonjs": ^7.10.4
+    "@babel/plugin-transform-modules-systemjs": ^7.10.4
+    "@babel/plugin-transform-modules-umd": ^7.10.4
+    "@babel/plugin-transform-named-capturing-groups-regex": ^7.10.4
+    "@babel/plugin-transform-new-target": ^7.10.4
+    "@babel/plugin-transform-object-super": ^7.10.4
+    "@babel/plugin-transform-parameters": ^7.10.4
+    "@babel/plugin-transform-property-literals": ^7.10.4
+    "@babel/plugin-transform-regenerator": ^7.10.4
+    "@babel/plugin-transform-reserved-words": ^7.10.4
+    "@babel/plugin-transform-shorthand-properties": ^7.10.4
+    "@babel/plugin-transform-spread": ^7.10.4
+    "@babel/plugin-transform-sticky-regex": ^7.10.4
+    "@babel/plugin-transform-template-literals": ^7.10.4
+    "@babel/plugin-transform-typeof-symbol": ^7.10.4
+    "@babel/plugin-transform-unicode-escapes": ^7.10.4
+    "@babel/plugin-transform-unicode-regex": ^7.10.4
+    "@babel/preset-modules": ^0.1.3
+    "@babel/types": ^7.10.4
+    browserslist: ^4.12.0
+    core-js-compat: ^3.6.2
+    invariant: ^2.2.2
+    levenary: ^1.1.1
+    semver: ^5.5.0
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: c13fe3c2c4caa42e1802b07baffc79db976474c69e089b3eccdff7a0f7282344fa1239980b323ef963c72e73a93ae24a2128987b9a8cf702766d1fda31d35a5d
+  languageName: node
+  linkType: hard
+
+"@babel/preset-modules@npm:^0.1.3":
+  version: 0.1.3
+  resolution: "@babel/preset-modules@npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.0.0
+    "@babel/plugin-proposal-unicode-property-regex": ^7.4.4
+    "@babel/plugin-transform-dotall-regex": ^7.4.4
+    "@babel/types": ^7.4.4
+    esutils: ^2.0.2
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 341c13de18779d682ec710c40e60e92285d9a557211c0448398b7308cffb7a1edaaaf4862c1dfe9b02c8b1184c3fdad73daead66cc48aa37b8e90602a49ac175
+  languageName: node
+  linkType: hard
+
+"@babel/preset-react@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/preset-react@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-transform-react-display-name": ^7.12.1
+    "@babel/plugin-transform-react-jsx": ^7.12.1
+    "@babel/plugin-transform-react-jsx-development": ^7.12.1
+    "@babel/plugin-transform-react-jsx-self": ^7.12.1
+    "@babel/plugin-transform-react-jsx-source": ^7.12.1
+    "@babel/plugin-transform-react-pure-annotations": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 67219d33110be1e6cb64b7a5470589cc4a0ada14fa80a86e676adf0baa3b3180c3586964e989509509b659b8c7744abb57d4a5513130fc40fca12fbc16aa6669
+  languageName: node
+  linkType: hard
+
+"@babel/preset-typescript@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/preset-typescript@npm:7.12.1"
+  dependencies:
+    "@babel/helper-plugin-utils": ^7.10.4
+    "@babel/plugin-transform-typescript": ^7.12.1
+  peerDependencies:
+    "@babel/core": ^7.0.0-0
+  checksum: 730eb743a4367db204c229183a3c2d669caa4f5234d98196c39368fc54f2cadd20a3d55f71104ebec8bc17cf3236b784f2737cac9ae4bb57b250cd1c609aabf9
+  languageName: node
+  linkType: hard
+
+"@babel/runtime-corejs3@npm:^7.8.3":
+  version: 7.10.5
+  resolution: "@babel/runtime-corejs3@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"
+  dependencies:
+    core-js-pure: ^3.0.0
+    regenerator-runtime: ^0.13.4
+  checksum: fc1caee034dae9fe4a411f3b09296debec728a059448c1e90f765ce1792f4229e658759103442825d5e6a2145a22417f75b181aecbe28914f2ee206df5fbafe7
+  languageName: node
+  linkType: hard
+
+"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4":
+  version: 7.10.5
+  resolution: "@babel/runtime@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"
+  dependencies:
+    regenerator-runtime: ^0.13.4
+  checksum: 222bc7c75b83f73802c8c93c59281085d36ff4efebf58a81fb631af587ebaa0d0eaa187e30587448e65e8f50a4b8719fc13aa5214c02c2562e95be4c8230627e
+  languageName: node
+  linkType: hard
+
+"@babel/runtime@npm:^7.12.0":
+  version: 7.12.1
+  resolution: "@babel/runtime@npm:7.12.1"
+  dependencies:
+    regenerator-runtime: ^0.13.4
+  checksum: 979d1c099c386031f96a952ee903e7bc3c60ae6e4eefe2bf49e4224014542d4ac2b1e2fb708031da36501a3842d4442dfdab38ab359ab3f46634b3c7cb5f6c6e
+  languageName: node
+  linkType: hard
+
+"@babel/runtime@npm:^7.4.2, @babel/runtime@npm:^7.4.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.7":
+  version: 7.11.2
+  resolution: "@babel/runtime@npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"
+  dependencies:
+    regenerator-runtime: ^0.13.4
+  checksum: 2f127ad60a0f0568faa0044e5b48329d8166c7fd3a0a3ce774070010a1c441ebf5570f526dd6bb26e214fb1a01bb987ab6a4c3f60a00f04d02448939f4c61e1e
+  languageName: node
+  linkType: hard
+
+"@babel/template@npm:^7.10.4":
+  version: 7.10.4
+  resolution: "@babel/template@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"
+  dependencies:
+    "@babel/code-frame": ^7.10.4
+    "@babel/parser": ^7.10.4
+    "@babel/types": ^7.10.4
+  checksum: 23a5c4f7ab77d3f0cfeca3f8462f3b8a85d605d7c56bd917b46e9061aca2c8e84558d1209b8e365eb0e038d92fc387d42382c3072e3ad75087f9a04649e7bea6
+  languageName: node
+  linkType: hard
+
+"@babel/traverse@npm:^7.10.4, @babel/traverse@npm:^7.10.5":
+  version: 7.10.5
+  resolution: "@babel/traverse@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"
+  dependencies:
+    "@babel/code-frame": ^7.10.4
+    "@babel/generator": ^7.10.5
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-split-export-declaration": ^7.10.4
+    "@babel/parser": ^7.10.5
+    "@babel/types": ^7.10.5
+    debug: ^4.1.0
+    globals: ^11.1.0
+    lodash: ^4.17.19
+  checksum: 4292255a99167d215294c1b8bfb0ac94e721d7792ffb65fd1bba9b54a59a7ce0657b0889b22cfe0078e0d33cf2f71b097dda351f44341e83523074dd4440b50c
+  languageName: node
+  linkType: hard
+
+"@babel/traverse@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/traverse@npm:7.12.1"
+  dependencies:
+    "@babel/code-frame": ^7.10.4
+    "@babel/generator": ^7.12.1
+    "@babel/helper-function-name": ^7.10.4
+    "@babel/helper-split-export-declaration": ^7.11.0
+    "@babel/parser": ^7.12.1
+    "@babel/types": ^7.12.1
+    debug: ^4.1.0
+    globals: ^11.1.0
+    lodash: ^4.17.19
+  checksum: a3040d94b72ba4214dc63b3d5f3517874dc8a72991a4c6916f48b756567e20c53c796feca6340db6edad9d48e7a9075e351c9b8daa0ed179d498cb80865be9da
+  languageName: node
+  linkType: hard
+
+"@babel/types@npm:^7.10.4, @babel/types@npm:^7.10.5, @babel/types@npm:^7.4.4":
+  version: 7.10.5
+  resolution: "@babel/types@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"
+  dependencies:
+    "@babel/helper-validator-identifier": ^7.10.4
+    lodash: ^4.17.19
+    to-fast-properties: ^2.0.0
+  checksum: 00bdeb6f4687357750252f27d6f1a597596c6f727992df7b0c3d8f7ca6347a656f687c000e3ac141d7fc75f0171aa137126ecbe899f87b4ae5dd903bdccc1f01
+  languageName: node
+  linkType: hard
+
+"@babel/types@npm:^7.11.0":
+  version: 7.11.0
+  resolution: "@babel/types@npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"
+  dependencies:
+    "@babel/helper-validator-identifier": ^7.10.4
+    lodash: ^4.17.19
+    to-fast-properties: ^2.0.0
+  checksum: 46e2fcd49d1c6d3261fcc3e88906fa39661a193365325ca94b9b1d59f949cef8546e3aba3e13a122b1bf2a493120ad00c06533ae0c428ad60ce81ee2a2649964
+  languageName: node
+  linkType: hard
+
+"@babel/types@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "@babel/types@npm:7.12.1"
+  dependencies:
+    "@babel/helper-validator-identifier": ^7.10.4
+    lodash: ^4.17.19
+    to-fast-properties: ^2.0.0
+  checksum: 0747b064093126e3ceba410c78e8ea438ed84cd68ad8abb2f98ffe88e2b600406096553bb5ef28cd40b29e68122820fe98e31ddfd0318fbb0efc2f4080d3417a
+  languageName: node
+  linkType: hard
+
+"@csstools/convert-colors@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "@csstools/convert-colors@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"
+  checksum: c8c8e6b5b3c2ae7e2c4a0ff376b79e09c8e350f3a3973eee8d42372f3e49d41c43172087c426e33fefdb9057de8a6f23cabf31e6201adce3f78d4b25e1722b50
+  languageName: node
+  linkType: hard
+
+"@eslint/eslintrc@npm:^0.2.1":
+  version: 0.2.1
+  resolution: "@eslint/eslintrc@npm:0.2.1"
+  dependencies:
+    ajv: ^6.12.4
+    debug: ^4.1.1
+    espree: ^7.3.0
+    globals: ^12.1.0
+    ignore: ^4.0.6
+    import-fresh: ^3.2.1
+    js-yaml: ^3.13.1
+    lodash: ^4.17.19
+    minimatch: ^3.0.4
+    strip-json-comments: ^3.1.1
+  checksum: 99310cddf0f1abb2de4b5278293db6e2639445aab4e525f3c5f5b3b8ad53a59d6003a306954fb7ad15edd2f8a02b658d43418fa8b52ae2d07e074b24d991de2a
+  languageName: node
+  linkType: hard
+
+"@hapi/address@npm:2.x.x":
+  version: 2.1.4
+  resolution: "@hapi/address@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"
+  checksum: 5dc5d0d3d6aad953bef59c5f24af704ae349dce626460eb2df93bd1e4b560136e354f92ce1c573292dfc7edce84189859794d28381711b50f738e67042081278
+  languageName: node
+  linkType: hard
+
+"@hapi/bourne@npm:1.x.x":
+  version: 1.3.2
+  resolution: "@hapi/bourne@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"
+  checksum: bc23796d94afbca6bf691161d181bf005e86eac3f16fa4a11c38ca1acc9ffabf4e83791a98e9234bd09539ac013675bb53ea2de119373f9e9349f3b94312b76d
+  languageName: node
+  linkType: hard
+
+"@hapi/hoek@npm:8.x.x, @hapi/hoek@npm:^8.3.0":
+  version: 8.5.1
+  resolution: "@hapi/hoek@npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"
+  checksum: 17bf9a0b6f2f9ecb248824dab838c66c50b16b00b1d3785233fafd5abacb06cc6cdcbd6f4c7be87babb227fc02fff46ad1c23de3f5b6f48ffe36b6aac829d82c
+  languageName: node
+  linkType: hard
+
+"@hapi/joi@npm:^15.1.0":
+  version: 15.1.1
+  resolution: "@hapi/joi@npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"
+  dependencies:
+    "@hapi/address": 2.x.x
+    "@hapi/bourne": 1.x.x
+    "@hapi/hoek": 8.x.x
+    "@hapi/topo": 3.x.x
+  checksum: 7edbb0d5a5c1ff376b66243427a3b98a559e9ea89f7d40ee55916e0519bc1be56a9ac69f1e446a2c39c153fe835c57e4ee71297d4266b0ca82c49f7a2e90f681
+  languageName: node
+  linkType: hard
+
+"@hapi/topo@npm:3.x.x":
+  version: 3.1.6
+  resolution: "@hapi/topo@npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"
+  dependencies:
+    "@hapi/hoek": ^8.3.0
+  checksum: 4550d3d7498a203ce5c0e53753eb9f510aa2b74c08bfaf7d7c4676a0943b27d72f22297ff006e8396eb74e6b73154ebf98feab19c199b0768a084a777d024a50
+  languageName: node
+  linkType: hard
+
+"@hot-loader/react-dom@npm:^17.0.0":
+  version: 17.0.0
+  resolution: "@hot-loader/react-dom@npm:17.0.0"
+  dependencies:
+    loose-envify: ^1.1.0
+    object-assign: ^4.1.1
+    scheduler: ^0.20.0
+  peerDependencies:
+    react: 17.0.0
+  checksum: 9d2b060e884d085345a9a73116fe9aee1fbdd0872b6fd1ccb02bd81dc411bcb644e202270e9e0f8ae57957dc67a96f503ed21362b4a3802a0aaa50b86e0a27e0
+  languageName: node
+  linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.3":
+  version: 2.1.3
+  resolution: "@nodelib/fs.scandir@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"
+  dependencies:
+    "@nodelib/fs.stat": 2.0.3
+    run-parallel: ^1.1.9
+  checksum: 1f100655dd65cda70b92cd4497b34f85855fd7b8f439d1eb0d0304e605e5a7c97e100710bfff21447f792b2504d5c6a9918b74696ccc22f32b279fb557c1db47
+  languageName: node
+  linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.3, @nodelib/fs.stat@npm:^2.0.2":
+  version: 2.0.3
+  resolution: "@nodelib/fs.stat@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"
+  checksum: 1bfdb2f419370fe5f8412ae2691cc50122c829103719627b36838e875feacc982a9d8d102ea6b5ab1479538a96867f324f63fe97440d8352d03ffa6337beec45
+  languageName: node
+  linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3":
+  version: 1.2.4
+  resolution: "@nodelib/fs.walk@npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"
+  dependencies:
+    "@nodelib/fs.scandir": 2.1.3
+    fastq: ^1.6.0
+  checksum: f4bffba16cc5d527fa594e120065e6d2376e274fb5df42cc744fcd28805fe23844590db74b20e102805280794208438b574e6e7fc25c6c245896909992a65e83
+  languageName: node
+  linkType: hard
+
+"@npmcli/move-file@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "@npmcli/move-file@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"
+  dependencies:
+    mkdirp: ^1.0.4
+  checksum: ed2cb75eefe218113794416fae43b5307f7c30476506942ed6c6c51f702713323842f81102ae1327f9134130bec0360312e6f858ddef143c21d9e269e90737ac
+  languageName: node
+  linkType: hard
+
+"@popperjs/core@npm:^2.0.0":
+  version: 2.4.4
+  resolution: "@popperjs/core@npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"
+  checksum: 49a1e6cfa2ec5004c541b0a1bd7d523c8aa7d728aa26e05df10f0af8c1e6c0db7fb9ebc8bee6dbfcdc7ad422999d9bf7d8a1c2b07dff3292b7dfa61a63af8b49
+  languageName: node
+  linkType: hard
+
+"@restart/context@npm:^2.1.4":
+  version: 2.1.4
+  resolution: "@restart/context@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"
+  peerDependencies:
+    react: ">=16.3.2"
+  checksum: f9dd1416c16988b5bd66d3306dedfc9b95665d3af2c5b88cd2040b0825dfcf778eb9bd992c6e810c62187f981a78ea34923fb582a023f896079634edb3b1bc2c
+  languageName: node
+  linkType: hard
+
+"@restart/hooks@npm:^0.3.12, @restart/hooks@npm:^0.3.21":
+  version: 0.3.25
+  resolution: "@restart/hooks@npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"
+  dependencies:
+    lodash: ^4.17.15
+    lodash-es: ^4.17.15
+  peerDependencies:
+    react: ^16.8.0
+  checksum: 08aefc359f597f9def83454c182e40efef034ca6e0eac41d28e013d8a3940d354911f60f89e73bad72ac9aee1bff56e84d4b26b95d46877818b733483ed95cad
+  languageName: node
+  linkType: hard
+
+"@rollup/plugin-node-resolve@npm:^7.1.1":
+  version: 7.1.3
+  resolution: "@rollup/plugin-node-resolve@npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"
+  dependencies:
+    "@rollup/pluginutils": ^3.0.8
+    "@types/resolve": 0.0.8
+    builtin-modules: ^3.1.0
+    is-module: ^1.0.0
+    resolve: ^1.14.2
+  peerDependencies:
+    rollup: ^1.20.0||^2.0.0
+  checksum: 4d751a407f752a320dae3fed9cc8be293bf15c3b2a7f387945195275580612f540572f69ffe8bbeb1d89732e63dfb19694901172603a68f58968e3ff65ce7684
+  languageName: node
+  linkType: hard
+
+"@rollup/plugin-replace@npm:^2.3.1":
+  version: 2.3.3
+  resolution: "@rollup/plugin-replace@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"
+  dependencies:
+    "@rollup/pluginutils": ^3.0.8
+    magic-string: ^0.25.5
+  peerDependencies:
+    rollup: ^1.20.0 || ^2.0.0
+  checksum: d08a514b8f446a3fe3db7e9de7d1a57c4aaeaaa3d6f70c2e18925d893ed81480dbfd29fe939f61c1ef31194b036ab7b1df22a744ffd33196335f9fa1925d3c22
+  languageName: node
+  linkType: hard
+
+"@rollup/pluginutils@npm:^3.0.8":
+  version: 3.1.0
+  resolution: "@rollup/pluginutils@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"
+  dependencies:
+    "@types/estree": 0.0.39
+    estree-walker: ^1.0.1
+    picomatch: ^2.2.2
+  peerDependencies:
+    rollup: ^1.20.0||^2.0.0
+  checksum: 45da6411e045d1b034242a8144f4a5e8c02ff1b68a2e0857807f5bb4b091c416f2015e075057f0f0dec200e7b35efe6ed4e301b43e365cedea09192f01a6839b
+  languageName: node
+  linkType: hard
+
+"@sindresorhus/is@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "@sindresorhus/is@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"
+  checksum: 77cdb085422e8bf44783441a7bafff16b456123084447e2cc1aebbb9958b95469a82fec71b185457b9ddf1caf6c2d098a16e4ffed74f283411724277223d9475
+  languageName: node
+  linkType: hard
+
+"@surma/rollup-plugin-off-main-thread@npm:^1.1.1":
+  version: 1.4.1
+  resolution: "@surma/rollup-plugin-off-main-thread@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"
+  dependencies:
+    ejs: ^2.6.1
+    magic-string: ^0.25.0
+  checksum: 4f91dc8b394f216bfa49864b4c1ef3eac91e129adb054e27f61bae2ee6af73d3eb227d5b29dbec72f0044da182c75331bcbd78cf328f2e1ce0ebe7e9b2410b60
+  languageName: node
+  linkType: hard
+
+"@szmarczak/http-timer@npm:^4.0.5":
+  version: 4.0.5
+  resolution: "@szmarczak/http-timer@npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"
+  dependencies:
+    defer-to-connect: ^2.0.0
+  checksum: 13d8f71dbd792b620b2cd13d72d086ef031ebefd5263a9db2f34693a32e4d90920fa1d7075cd59bf0c9810b2b1b93ad36d89fc88aba4cd3b8022df7ecc5ffdec
+  languageName: node
+  linkType: hard
+
+"@types/anymatch@npm:*":
+  version: 1.3.1
+  resolution: "@types/anymatch@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"
+  checksum: 1647865e528a168f66f57a077e9651c10a4c172b656cc3686fddf176555d42ca0a1647bfc626ea2fceb68fc7701426ab708224be1762b4a5216fe8368ffdba3c
+  languageName: node
+  linkType: hard
+
+"@types/cacheable-request@npm:^6.0.1":
+  version: 6.0.1
+  resolution: "@types/cacheable-request@npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"
+  dependencies:
+    "@types/http-cache-semantics": "*"
+    "@types/keyv": "*"
+    "@types/node": "*"
+    "@types/responselike": "*"
+  checksum: 3dae802a0808573986c56b92bf16cd031a5b648b6c893d20c7ef6bfda3fc72a2107c7978697d2b27b14febc597162d6959985eeb5befc307a9f9f3c5081d4905
+  languageName: node
+  linkType: hard
+
+"@types/classnames@npm:^2.2.10":
+  version: 2.2.10
+  resolution: "@types/classnames@npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"
+  checksum: 31b6380183c2123c69f5e50b9e40c7da2862ddfe634361d906a6e300dacd716656ce95e508541d0ec300f71aeed57d30a7ea46f36e881c01eb2334843700fadc
+  languageName: node
+  linkType: hard
+
+"@types/color-name@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "@types/color-name@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"
+  checksum: 8311db94a9c4ecd247763b81e783ee49d87678b4ce6a7ee502e2bd5cea242b7357804a04855db009f713174bc654cc0c01c7303d40d757e5d710f5ac0368500f
+  languageName: node
+  linkType: hard
+
+"@types/emscripten@npm:^1.38.0":
+  version: 1.39.4
+  resolution: "@types/emscripten@npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"
+  checksum: b848421e2597a0ce56b74c6427f843cfd8f26dec8eaaa1929317e9417bc06eaa934057c317cbb561ade2f5462b6906e37868608211e09f9f507dca62066795a8
+  languageName: node
+  linkType: hard
+
+"@types/eslint-scope@npm:^3.7.0":
+  version: 3.7.0
+  resolution: "@types/eslint-scope@npm:3.7.0"
+  dependencies:
+    "@types/eslint": "*"
+    "@types/estree": "*"
+  checksum: 1ee912a956f6fecd26bef9517ef33473498feda4a7fc7f191b705c750dcf8bbbd78a83d8c69e66d98c23cad4dfc8769a464780a3cf395948e3f0f85146729f68
+  languageName: node
+  linkType: hard
+
+"@types/eslint@npm:*":
+  version: 7.2.4
+  resolution: "@types/eslint@npm:7.2.4"
+  dependencies:
+    "@types/estree": "*"
+    "@types/json-schema": "*"
+  checksum: 281fbca931a7a9e4d9512cdb7f7ff92ecbc66362615712bb42f9fa7405b8cfad77e8fef35999c0533954effc0dfd153aa496bef08e3c160e0d89367166d7becb
+  languageName: node
+  linkType: hard
+
+"@types/estree@npm:*":
+  version: 0.0.45
+  resolution: "@types/estree@npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"
+  checksum: 9d339cbcf29a96a32e9d40efc21009c2342e93c4f653294dd1ef081ae474bca9e54707e5d4a1cff90b9e3566e8bdd71ac31e0c3d24bc2ff1d3d5aa75058b3937
+  languageName: node
+  linkType: hard
+
+"@types/estree@npm:0.0.39":
+  version: 0.0.39
+  resolution: "@types/estree@npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"
+  checksum: 43e5361de39969def145f32f4599391ab13055ec94841f1633a7cfe10f0e8a940ebf0e9a4b2770454a6bddd034b57e7e0d51a4d565cb2714ee2accf10a7718be
+  languageName: node
+  linkType: hard
+
+"@types/estree@npm:^0.0.45":
+  version: 0.0.45
+  resolution: "@types/estree@npm:0.0.45"
+  checksum: 9d339cbcf29a96a32e9d40efc21009c2342e93c4f653294dd1ef081ae474bca9e54707e5d4a1cff90b9e3566e8bdd71ac31e0c3d24bc2ff1d3d5aa75058b3937
+  languageName: node
+  linkType: hard
+
+"@types/glob@npm:^7.1.1":
+  version: 7.1.3
+  resolution: "@types/glob@npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"
+  dependencies:
+    "@types/minimatch": "*"
+    "@types/node": "*"
+  checksum: 633bf1dda9a30899b233ed6b97c75cdd59f2ee856a12240c85474ce6889e26b3b3520b62de56f6bb61824af0ef51b311a0cae305f27ba0de8ddc4898a3673d42
+  languageName: node
+  linkType: hard
+
+"@types/history@npm:*":
+  version: 4.7.6
+  resolution: "@types/history@npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"
+  checksum: 8782d92953946314f7a4c76c2f47168f2fe6e43f01c31d44acac128638d8d5cd599247d2e593c3ed829387e8d48d8bf67155a3d0f7ce57e1920b9c1f2de10783
+  languageName: node
+  linkType: hard
+
+"@types/html-minifier-terser@npm:^5.0.0":
+  version: 5.1.0
+  resolution: "@types/html-minifier-terser@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"
+  checksum: e07f30cf9b3bfc3fcf4854c28b43cbdfb9c25180368a393749c762c4b980985037acddef50d894d722bf6e3d866b4c6d6d466ecb3b4db997429e5f75cc8bc422
+  languageName: node
+  linkType: hard
+
+"@types/http-cache-semantics@npm:*":
+  version: 4.0.0
+  resolution: "@types/http-cache-semantics@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"
+  checksum: e16fae56d4daea4ed678b4d5918b693b44ca12fb5e479b87d242d3a35bf3a014974dcf9ed7aba7e29149fdb6c3719f9987fca51b20ef10aa84b58f86553c2f74
+  languageName: node
+  linkType: hard
+
+"@types/invariant@npm:^2.2.33":
+  version: 2.2.34
+  resolution: "@types/invariant@npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"
+  checksum: d0ecc665e5c95abf1ad7263c8cc32604d6b3444cfbc97657fede7e63f3751554a4f35f72ae565d70c28184dfb8b0cd4c058eaec1af972999edfd0a81b365f74b
+  languageName: node
+  linkType: hard
+
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.6":
+  version: 7.0.6
+  resolution: "@types/json-schema@npm:7.0.6"
+  checksum: 820cabe35ac915b93e38b0c01957e5c49d7d9f69251dddfbf39af0ff4fe24f6e08b39e55603e0d212dea7bcaa383b1218b58a738d1c02013dc22df06547ff238
+  languageName: node
+  linkType: hard
+
+"@types/json-schema@npm:^7.0.3, @types/json-schema@npm:^7.0.4":
+  version: 7.0.5
+  resolution: "@types/json-schema@npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"
+  checksum: 6290f9fe93ac957b244262d5ff56cfd3045c63da6ed88dcc2d5b84131e6284c8e6213bf0cb81423a4f940182647bcd69057309c982f8db64dfff8f65f800ef80
+  languageName: node
+  linkType: hard
+
+"@types/json5@npm:^0.0.29":
+  version: 0.0.29
+  resolution: "@types/json5@npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"
+  checksum: 66e9ac0143ec521522c7bb670301e9836ee886207eeed1aab6d4854a1b19b404ab3a54cd8d449f9b1f13acc357f540be96f8ac2d1e86e301eab52ae0f9a4066f
+  languageName: node
+  linkType: hard
+
+"@types/keyv@npm:*":
+  version: 3.1.1
+  resolution: "@types/keyv@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"
+  dependencies:
+    "@types/node": "*"
+  checksum: 3aaf557d5b82e733d5a17b7f55af5d6be953363c3a594f006d64265790fe87c301c6e1400c0b6b1cf72add50a0ceddc25afb8231ab8302a2e5b6ebfbfac30e5d
+  languageName: node
+  linkType: hard
+
+"@types/lodash@npm:^4.14.162":
+  version: 4.14.162
+  resolution: "@types/lodash@npm:4.14.162"
+  checksum: 16205a12995d659ac556f25405cfeec3b9fb427364ed8e24e4e4ab84f646b1a2f6f08f6aee155ebc6127ac6791fd7755fc15be10b6c8dd5a3ab3d3f4917f7173
+  languageName: node
+  linkType: hard
+
+"@types/minimatch@npm:*":
+  version: 3.0.3
+  resolution: "@types/minimatch@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"
+  checksum: 672ccdac197e8176eed1a9441d0caf8a29a90eb139b1cefdd4c9e71b1c48f5c749f5d101a2d85da15c6259214ebda95072835021407d60330a731a2672964b82
+  languageName: node
+  linkType: hard
+
+"@types/node@npm:*":
+  version: 14.0.23
+  resolution: "@types/node@npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"
+  checksum: 35415a294f536c2b14d29ec02a733af23405f4e7e87dace5b4392a69358aae7a14d28805a528b6e9a5f55cfbd9e035bd817e4db0325945fe0332db40ecabdf84
+  languageName: node
+  linkType: hard
+
+"@types/node@npm:^13.7.0":
+  version: 13.13.14
+  resolution: "@types/node@npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"
+  checksum: b2fa5163740c067303f41b06aa35bc67e67ea5284de2aceac4c3b4eb8e34c1c9f102ecba82d268f05a4d06fbcc82079160ca577a763cfe31ee38a0a123bd42dd
+  languageName: node
+  linkType: hard
+
+"@types/node@npm:^14.14.5":
+  version: 14.14.5
+  resolution: "@types/node@npm:14.14.5"
+  checksum: 4916d5c46e604be9b76c69300efdf26538f74ad63a5df572a6b66b95238ddbed3c2bcd5a9748c6ec2ef1bf529d84b3f3a53a0eed54d1f46eaa29471cbb7b1406
+  languageName: node
+  linkType: hard
+
+"@types/parse-json@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "@types/parse-json@npm:4.0.0"
+  checksum: 4a8f720afac47b474d3f2eece312340e72bc31bc9561cda37b596ce2ed218c0099765d302625bb67d659a8452a1f93d514f4863c11c7ebaf65430428687dc426
+  languageName: node
+  linkType: hard
+
+"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.3":
+  version: 15.7.3
+  resolution: "@types/prop-types@npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"
+  checksum: bd0eab69d5120ad3784d0c9985f902653d5924707a7f2b3702a330e762dfd61b6494954cb54ad0c52b918ffd6f1e7e27c9270e4442bc15250de348596f2f60cb
+  languageName: node
+  linkType: hard
+
+"@types/react-dom@npm:^16.9.8":
+  version: 16.9.8
+  resolution: "@types/react-dom@npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"
+  dependencies:
+    "@types/react": "*"
+  checksum: 53a223c0266178bca9161301d18ee6199e8f75f88caed5c4601c5aaedaf4c68f03bd72f6aafa979254beb20759f0b68a542ce04295d704eb67ae179769c50813
+  languageName: node
+  linkType: hard
+
+"@types/react-responsive@npm:^8.0.2":
+  version: 8.0.2
+  resolution: "@types/react-responsive@npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"
+  dependencies:
+    "@types/react": "*"
+  checksum: 48bc498859226af961233c1bf4764b5f0af132a81e3dcb7089c40ce14bf4e94eec40bb960a85621dd8bf798f40e2caaf0addc649d3ddb9ec6bda7f9bac5d30ac
+  languageName: node
+  linkType: hard
+
+"@types/react-router-bootstrap@npm:^0.24.5":
+  version: 0.24.5
+  resolution: "@types/react-router-bootstrap@npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"
+  dependencies:
+    "@types/react": "*"
+    "@types/react-router-dom": "*"
+  checksum: 08b8ed99b750ffa14546653f73bcc2e39ab5149c4a22e1ef8d8dd0d73874bd38b5c7873bba34753cee4942141d9eabd520d5e36a12ead6309626699ba8d85faa
+  languageName: node
+  linkType: hard
+
+"@types/react-router-dom@npm:*":
+  version: 5.1.5
+  resolution: "@types/react-router-dom@npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"
+  dependencies:
+    "@types/history": "*"
+    "@types/react": "*"
+    "@types/react-router": "*"
+  checksum: d25c11cb718653a01b0e2cd5e4a44b1910fd506b3141c49e4b47ee197ddc06a05f3ee3c6853c60c15d83b96aeea534321ab200d4fbfd4ba047413b2c7176bfcb
+  languageName: node
+  linkType: hard
+
+"@types/react-router-dom@npm:^5.1.6":
+  version: 5.1.6
+  resolution: "@types/react-router-dom@npm:5.1.6"
+  dependencies:
+    "@types/history": "*"
+    "@types/react": "*"
+    "@types/react-router": "*"
+  checksum: dcff1d613899af1cbfb003eb3994f7ebce5f2633e0018588008be39af8e15971041644b7c99e6448122d661d509ee7cafce7bb5972598e8bb6701e77c9431def
+  languageName: node
+  linkType: hard
+
+"@types/react-router@npm:*, @types/react-router@npm:^5.1.8":
+  version: 5.1.8
+  resolution: "@types/react-router@npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"
+  dependencies:
+    "@types/history": "*"
+    "@types/react": "*"
+  checksum: 8b4c8fefdba877971aeaa642d81074d0fda0db9d8891709071c8586c32c75afca1baf478c3b26bcbd404503304599d8ea3243beb4e01080ee77f48f56815ee73
+  languageName: node
+  linkType: hard
+
+"@types/react-transition-group@npm:^4.4.0":
+  version: 4.4.0
+  resolution: "@types/react-transition-group@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"
+  dependencies:
+    "@types/react": "*"
+  checksum: b761f70623ca2a386a310536886e7ceed15087e59a3b6c68478c9965d38edd819c5b29e3fb79a5d911ee4b1db5ab397ae0ebb5a5ddf98f08708a6d592cb7c256
+  languageName: node
+  linkType: hard
+
+"@types/react@npm:*":
+  version: 16.9.43
+  resolution: "@types/react@npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"
+  dependencies:
+    "@types/prop-types": "*"
+    csstype: ^2.2.0
+  checksum: b9d4491463ab013e0752bf6f99bd578f91504f74dfd1ebd7fbceebbdffe89762b040494a78403e249bb72d1645d2784f844890e7b1acdb3634432533ff9732fb
+  languageName: node
+  linkType: hard
+
+"@types/react@npm:^16.9.11, @types/react@npm:^16.9.35":
+  version: 16.9.49
+  resolution: "@types/react@npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"
+  dependencies:
+    "@types/prop-types": "*"
+    csstype: ^3.0.2
+  checksum: cf5dabe1e9c893a19a338002ac4bf5a86c9bc3cd88eb07aece54e6d2e5af35debe2a8c72d211ad9133391543ce115219cd7c7f2a6f649b81caf4548e1cc99061
+  languageName: node
+  linkType: hard
+
+"@types/react@npm:^16.9.53":
+  version: 16.9.53
+  resolution: "@types/react@npm:16.9.53"
+  dependencies:
+    "@types/prop-types": "*"
+    csstype: ^3.0.2
+  checksum: 01c646c8f08306660441a14495e926c0362114da7813c3bc3d4d58b47590ee92274bbbff18f3fafd465a09369daa25982d68ba6628f1080120b62d40ce75ca40
+  languageName: node
+  linkType: hard
+
+"@types/resolve@npm:0.0.8":
+  version: 0.0.8
+  resolution: "@types/resolve@npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"
+  dependencies:
+    "@types/node": "*"
+  checksum: f54f13e4b6ac46a6c7bde9e609cd730f4369b434aa59c5230478b9262bb75e7349c3247fd2cdb917e98d053a57f5609dd552379c612a720b59a8714914d324ed
+  languageName: node
+  linkType: hard
+
+"@types/responselike@npm:*, @types/responselike@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "@types/responselike@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"
+  dependencies:
+    "@types/node": "*"
+  checksum: e6e6613c800aeda63e2331e753e8d21df1a2c9aa7a4bc71ed792a848e4811fc96e609759089355314a2318c76eff1f161499cd242044838ab1e6f56e463ebb9c
+  languageName: node
+  linkType: hard
+
+"@types/semver@npm:^7.1.0":
+  version: 7.3.4
+  resolution: "@types/semver@npm:7.3.4"
+  checksum: 7e8588aa55ecb344eda6954674b83a3c568d97d478e70e4617bd3ab22902590ac416ccf2cea48b58fb2f0fbd80f9ad1896332c9b3c3189ffd24e4350ff22094a
+  languageName: node
+  linkType: hard
+
+"@types/source-list-map@npm:*":
+  version: 0.1.2
+  resolution: "@types/source-list-map@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"
+  checksum: 191f0e3b056b481e7a0bbb38f3d5b54b015556e38075726ca2637a35d3694df85cd16761b1b188729ac687a55aec3cbc2b07033ac090bcc13efe09ad10a3e935
+  languageName: node
+  linkType: hard
+
+"@types/tapable@npm:*, @types/tapable@npm:^1.0.5":
+  version: 1.0.6
+  resolution: "@types/tapable@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"
+  checksum: 01709a2f8dbea665a39c008ba6995c76210fabb52434815e7632c7fff22ecad1dd49a1d75b8f5b2e9b365c6d7a6407127bed834587df4777b800110c2a74fc36
+  languageName: node
+  linkType: hard
+
+"@types/treeify@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "@types/treeify@npm:1.0.0"
+  checksum: f7b82d91a4be51d5b93fb1e245ea71768e06a567daa1ff84fe075c3e62ce90f2703fa8258f0f093f92816416fe2f41c3177e5005114613adbdddabe2ddc3e593
+  languageName: node
+  linkType: hard
+
+"@types/uglify-js@npm:*":
+  version: 3.9.3
+  resolution: "@types/uglify-js@npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"
+  dependencies:
+    source-map: ^0.6.1
+  checksum: b12ae05d8faace173070c3ab2d0a7345a4fdefd9c1a248ac6256200f9ba5ad129c89f313e7e12544027906ffc620a56b458ab3731102f65c5412c0c068232374
+  languageName: node
+  linkType: hard
+
+"@types/warning@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "@types/warning@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"
+  checksum: cb7a16aa88641beceec53ce765274c1ba3a9136e3c7c53cafd769d5063ea96f8899332ce7031c6f374bd23b5713a9a733d42c369ebdb4b62daf9b7562700848c
+  languageName: node
+  linkType: hard
+
+"@types/webpack-env@npm:^1.15.3":
+  version: 1.15.3
+  resolution: "@types/webpack-env@npm:1.15.3"
+  checksum: e37909d70e4940a431c912645dca781fd164c906f68be6419a09099cbf95e9936e958acd949c35d45f6f4f1144fa0ee46a3962bd6b46aa93173aed5a5bd5cdc2
+  languageName: node
+  linkType: hard
+
+"@types/webpack-sources@npm:*":
+  version: 1.4.0
+  resolution: "@types/webpack-sources@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"
+  dependencies:
+    "@types/node": "*"
+    "@types/source-list-map": "*"
+    source-map: ^0.7.3
+  checksum: fc237a6e8b04351329da179024b6fba4841ecc02374215f41b83693576ed553462c9c0cb3da59d044a3c7caa1153e40222843da073d8198f9eb20a5ce3e686e0
+  languageName: node
+  linkType: hard
+
+"@types/webpack@npm:^4.4.31, @types/webpack@npm:^4.41.8":
+  version: 4.41.21
+  resolution: "@types/webpack@npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"
+  dependencies:
+    "@types/anymatch": "*"
+    "@types/node": "*"
+    "@types/tapable": "*"
+    "@types/uglify-js": "*"
+    "@types/webpack-sources": "*"
+    source-map: ^0.6.0
+  checksum: 3a02667221be2d8ecdb2da8d78e74dbc6ef216a4f0c636017e9dbe243198ed80a258e0c9f9e0613eea76efe77b5293f6f052dee4d26adc3dd54e56f38a2031f2
+  languageName: node
+  linkType: hard
+
+"@types/xregexp@npm:^4.3.0":
+  version: 4.3.0
+  resolution: "@types/xregexp@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"
+  checksum: a25f5cc1e791d0a5e3359ad2daac293355ab195624aaae29141420cc5327226a8a9ca527947f70ca041039a7d2e57da6376f13ddad94340e0c48496f820cae58
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/eslint-plugin@npm:^4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/eslint-plugin@npm:4.6.0"
+  dependencies:
+    "@typescript-eslint/experimental-utils": 4.6.0
+    "@typescript-eslint/scope-manager": 4.6.0
+    debug: ^4.1.1
+    functional-red-black-tree: ^1.0.1
+    regexpp: ^3.0.0
+    semver: ^7.3.2
+    tsutils: ^3.17.1
+  peerDependencies:
+    "@typescript-eslint/parser": ^4.0.0
+    eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
+    typescript: "*"
+  peerDependenciesMeta:
+    typescript:
+      optional: true
+  checksum: 7bf5bb6a0c9103d7eb8a1f8fcf0d48e5cf4a736b0d003fb2e899d37a416c3ba79d697e9a9b43f99b3a0a0ba606d0f7a05312f63aff7fc3c435b9f59a6172f423
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/experimental-utils@npm:4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/experimental-utils@npm:4.6.0"
+  dependencies:
+    "@types/json-schema": ^7.0.3
+    "@typescript-eslint/scope-manager": 4.6.0
+    "@typescript-eslint/types": 4.6.0
+    "@typescript-eslint/typescript-estree": 4.6.0
+    eslint-scope: ^5.0.0
+    eslint-utils: ^2.0.0
+  peerDependencies:
+    eslint: "*"
+  checksum: ca0fdd7e51408ed79a7844abf91f9b549a6eabd5923463adfecc08e42ea4ac32d1b770dc41208a1a9f773626f963002015e5fde95fa209001864fd69fd0f2215
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/parser@npm:^4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/parser@npm:4.6.0"
+  dependencies:
+    "@typescript-eslint/scope-manager": 4.6.0
+    "@typescript-eslint/types": 4.6.0
+    "@typescript-eslint/typescript-estree": 4.6.0
+    debug: ^4.1.1
+  peerDependencies:
+    eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
+    typescript: "*"
+  peerDependenciesMeta:
+    typescript:
+      optional: true
+  checksum: ada5fea21ccadf57a5c44d68c30ba8b07354c7f0c9bd7008c622386ebfe3887aa4cf17667d1e295f1c81dc354841645c6ec6d87e496ceda2f6eb45e4c690bdac
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/scope-manager@npm:4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/scope-manager@npm:4.6.0"
+  dependencies:
+    "@typescript-eslint/types": 4.6.0
+    "@typescript-eslint/visitor-keys": 4.6.0
+  checksum: 8bf4f4646e20e2b824cb799942890cefe56ee78fa50a383162ca4ec945eeb36490f42116c6482ab880c23c5fd3fc22eec02a412894f8b492a6b9b5488da1aad2
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/types@npm:4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/types@npm:4.6.0"
+  checksum: c136ebe791b82187d2fd9e0d5b76aa1ec3e644fe11465222faa114f3e170fd74929d4b5c4a3184346715a065cf8cf637cf9e599c0dc4162437bf5dca4511cb2a
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/typescript-estree@npm:4.6.0"
+  dependencies:
+    "@typescript-eslint/types": 4.6.0
+    "@typescript-eslint/visitor-keys": 4.6.0
+    debug: ^4.1.1
+    globby: ^11.0.1
+    is-glob: ^4.0.1
+    lodash: ^4.17.15
+    semver: ^7.3.2
+    tsutils: ^3.17.1
+  peerDependencies:
+    typescript: "*"
+  peerDependenciesMeta:
+    typescript:
+      optional: true
+  checksum: 27d35ac3c49f22568d217d6560745a7f263747eeb42cf627fb64e910e90b32a78e3133e2151ea1aa43c04da5a37a6573b1237eca5bb829eb671cbe5e4d6ed6b0
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:4.6.0":
+  version: 4.6.0
+  resolution: "@typescript-eslint/visitor-keys@npm:4.6.0"
+  dependencies:
+    "@typescript-eslint/types": 4.6.0
+    eslint-visitor-keys: ^2.0.0
+  checksum: ea1a701501f7e3f5818f026e8040a928b3dd47d6dcbe39aa825690bfb247fbdfdeafa85db204513def8fa0362850b3357256dd89c9c5bebe59943ed805994fca
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/ast@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/ast@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/helper-module-context": 1.9.0
+    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
+    "@webassemblyjs/wast-parser": 1.9.0
+  checksum: 25d93900cc32c2cfa34860b988a534c6671cf789159cc6b918afdf6099f9f2f70710a947501170d9ba0a24f0503fe3b3b45300ec14ec05c9d833c055795133c4
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/floating-point-hex-parser@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"
+  checksum: af9e11a688b0748f2e4119379d64a8f990a0edf1fbf80df612d2fdf3874528f4917ba51c735b324266314b6587b229825eb53eacbc9e9d00ce1d21ebd2a7d9dc
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-api-error@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-api-error@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"
+  checksum: ae7b9703ecbd0db50a2e95e23c9a1de2a0ba3d98187f4cd57473df4f2a88f9c3a2e53f98ce3a8ba0d73718a50733843ba0d8f88440d5e4a90704bb831f26a2e0
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-buffer@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-buffer@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"
+  checksum: 94bcf27ccf4e5cfcdb92f89bb1e80a973656cab5d19e67eb61a8b5c9cf4ce060616e3afc3d900f6cffa2fc9746a4ad7be75fa448c06af4d4103e507584149a78
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-code-frame@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-code-frame@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/wast-printer": 1.9.0
+  checksum: 008fc534f21b3b054bd0bd863d3afcb30740d9c8cdc5044481747533bd276729ec196392a78c16f5a5ee8a6d067fd5fbaed16142b2b4097b1c5340451b5a5d1d
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-fsm@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-fsm@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"
+  checksum: 3181e69c16aad1267fd471283b797e86f5e0b26abfddf1d0d2ddef8a758f486cd2482887ec317ecbb5c421aa1d11dea17a06e92c59ea9bd38513204e6c7b8f3d
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-module-context@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-module-context@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+  checksum: 9aa715a8d06a17ea92a6ec44322628f9418aa414b888632b5d8092a5125c2b6dcf2c6b80be2b6ad548201aa38e21d390e13c34f2edf7ba3335442739d88b0aef
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-wasm-bytecode@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"
+  checksum: 27ba07f49514d49ccf62a6e7a460941a6794107c9d7ef9685fda8a7373169d6ebdb676071006ce20581abb9f62562fa447473fb0b031e9ef6b2f62fa819be3f1
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/helper-wasm-section@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/helper-wasm-section@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-buffer": 1.9.0
+    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
+    "@webassemblyjs/wasm-gen": 1.9.0
+  checksum: 0e2957efc4001b1e030cf088f41a81b779437bf073272fbb31e3fc36d979dc5dd4137611397a70fa308986597a09cbdcd7806f123a0a809ae1035c40495a59d3
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/ieee754@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/ieee754@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"
+  dependencies:
+    "@xtuc/ieee754": ^1.2.0
+  checksum: 1474a87d8686542267b11b8ab0a1a37d3003cd6d4b797b8f96c58e348d483fec4e267ec1e128525e56e9250f90b75a79f1187a6beba2072d568b7a01faf3b8d4
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/leb128@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/leb128@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"
+  dependencies:
+    "@xtuc/long": 4.2.2
+  checksum: af49765d067ca2db5ec6bda360a235b9063756092a6439b8a296cb1ee0ebff778bcd68f686d3c350d1375a3fdb80fd0a91ea9655da5d1ea10ea5d3eae19c1105
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/utf8@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/utf8@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"
+  checksum: 172fd362aaf6760b826117177ec171ce63b5fabe172f09343b8cd24852f33475f3a596bc1d02088f64a498556a19f98dce00cafe3da3fb8d77367db5326d2d66
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wasm-edit@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wasm-edit@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-buffer": 1.9.0
+    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
+    "@webassemblyjs/helper-wasm-section": 1.9.0
+    "@webassemblyjs/wasm-gen": 1.9.0
+    "@webassemblyjs/wasm-opt": 1.9.0
+    "@webassemblyjs/wasm-parser": 1.9.0
+    "@webassemblyjs/wast-printer": 1.9.0
+  checksum: 16016c9ef5b69fed1d6a6f21926e6e4a9add41e316efb23f6aeadc6efe2035cfb528720965883ac7861a5584b679a2697416f19db983c8a0c8bd6c7de7a0c6f1
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wasm-gen@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wasm-gen@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
+    "@webassemblyjs/ieee754": 1.9.0
+    "@webassemblyjs/leb128": 1.9.0
+    "@webassemblyjs/utf8": 1.9.0
+  checksum: 1afcebfd1272b6f2aac2322b64ced22194d5fe91baf7cbc9fbd4e18a9cf9b1c2d31af5a02a7bf15d5880d598de822accc21d446a94ad0e70d7eb09eeab7de6c6
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wasm-opt@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wasm-opt@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-buffer": 1.9.0
+    "@webassemblyjs/wasm-gen": 1.9.0
+    "@webassemblyjs/wasm-parser": 1.9.0
+  checksum: 2ce89f206e40dbfc44ec4a04669b76d14810db70da2506f90a7d5ff45f8002e34d7eaed447c3423cdad76d60617012d1fd0c055b63a5ed863b0068e5ce3e4032
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wasm-parser@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wasm-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-api-error": 1.9.0
+    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
+    "@webassemblyjs/ieee754": 1.9.0
+    "@webassemblyjs/leb128": 1.9.0
+    "@webassemblyjs/utf8": 1.9.0
+  checksum: b8cb346c9b7d1238d24a418bbc676c5adea7561202580527e3f6a8f74e38de8ba60962d5bda56fa7c1d652d28d787234dfae0b4777e2a8bcaf3e0d539ced8acf
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wast-parser@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wast-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/floating-point-hex-parser": 1.9.0
+    "@webassemblyjs/helper-api-error": 1.9.0
+    "@webassemblyjs/helper-code-frame": 1.9.0
+    "@webassemblyjs/helper-fsm": 1.9.0
+    "@xtuc/long": 4.2.2
+  checksum: eaa0140a446be6138bbd19ecadf93119381f4cfabe5d7453397f2bd1716e00498666f12944b7da0b472ad1bcc27eca2fd9934785b57cfe97910189f0df59c3f1
+  languageName: node
+  linkType: hard
+
+"@webassemblyjs/wast-printer@npm:1.9.0":
+  version: 1.9.0
+  resolution: "@webassemblyjs/wast-printer@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"
+  dependencies:
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/wast-parser": 1.9.0
+    "@xtuc/long": 4.2.2
+  checksum: 9f013b27e28b60cb215011079a15c94d1a7b0784eb3b59ec4936f8c0635ecdb58875c6809485cff814e01df170f02c18676cf782826795dc08553b98e69c1049
+  languageName: node
+  linkType: hard
+
+"@webpack-cli/info@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "@webpack-cli/info@npm:1.0.2"
+  dependencies:
+    envinfo: ^7.7.3
+  peerDependencies:
+    webpack-cli: 4.x.x
+  checksum: a961e982fbb4d6f0c25e328215c157775236b0bd19ea699ce46963e692b21abbc002f68f753f8d80e935757070b656aa5edeab4f3692346b308a3bc39ad52528
+  languageName: node
+  linkType: hard
+
+"@webpack-cli/serve@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "@webpack-cli/serve@npm:1.0.1"
+  peerDependencies:
+    webpack-cli: 4.x.x
+    webpack-dev-server: "*"
+  peerDependenciesMeta:
+    webpack-dev-server:
+      optional: true
+  checksum: d1dd4fb204a1937a7a2340d466b0e45ab0370fbf933244caa662627bc991893678755779b6d8e8c0775827c9dfb2b58274f58c948799f8c5efa80c83b4eb17b7
+  languageName: node
+  linkType: hard
+
+"@xtuc/ieee754@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "@xtuc/ieee754@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"
+  checksum: 65bb9c55a054e2d79bf2a8c4ea23a962bd23f654b84532f3555d158d06dedf1603a4131a2f685cad988e582824ef7b8179918e894537be9626ea357f8ea60a63
+  languageName: node
+  linkType: hard
+
+"@xtuc/long@npm:4.2.2":
+  version: 4.2.2
+  resolution: "@xtuc/long@npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"
+  checksum: ec09a359f98e9f8c47bf6c965e73b520a1a65e93f1febf6472babc8b6b0b425a2084452be103da5be11aec8c502ecfa29400713d55ef774579d04f691db44a2d
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/core@npm:^2.3.1":
+  version: 2.3.1
+  resolution: "@yarnpkg/core@npm:2.3.1"
+  dependencies:
+    "@arcanis/slice-ansi": ^1.0.2
+    "@types/semver": ^7.1.0
+    "@types/treeify": ^1.0.0
+    "@yarnpkg/fslib": ^2.3.0
+    "@yarnpkg/json-proxy": ^2.1.0
+    "@yarnpkg/libzip": ^2.2.1
+    "@yarnpkg/parsers": ^2.3.0
+    "@yarnpkg/pnp": ^2.3.1
+    "@yarnpkg/shell": ^2.4.0
+    binjumper: ^0.1.2
+    camelcase: ^5.3.1
+    chalk: ^3.0.0
+    ci-info: ^2.0.0
+    clipanion: ^2.6.2
+    cross-spawn: 7.0.3
+    diff: ^4.0.1
+    globby: ^11.0.1
+    got: ^11.1.3
+    json-file-plus: ^3.3.1
+    lodash: ^4.17.15
+    logic-solver: ^2.0.1
+    micromatch: ^4.0.2
+    mkdirp: ^0.5.1
+    p-limit: ^2.2.0
+    pluralize: ^7.0.0
+    pretty-bytes: ^5.1.0
+    semver: ^7.1.2
+    stream-to-promise: ^2.2.0
+    tar-stream: ^2.0.1
+    treeify: ^1.1.0
+    tslib: ^1.13.0
+    tunnel: ^0.0.6
+  checksum: d2236acac238cd409df88be37ded30315fb0681abc6dbb5a1e9d3c7c8c08b842a7e19662ff8a7b3f31eb526a1c35fb95f3656270ba3ed1a075e6fa74732e0ab2
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/fslib@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "@yarnpkg/fslib@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"
+  dependencies:
+    "@yarnpkg/libzip": ^2.1.0
+    tslib: ^1.13.0
+  checksum: 5a77427f2b746b8003a7bd1352c94e31c26d580605f0db15a3a45c40eac0b538362a7371abeb17b939b35e87dbb2204eb1783afad386733ba0923d0d876962d1
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/fslib@npm:^2.3.0":
+  version: 2.3.0
+  resolution: "@yarnpkg/fslib@npm:2.3.0"
+  dependencies:
+    "@yarnpkg/libzip": ^2.2.1
+    tslib: ^1.13.0
+  checksum: 0969bd6b12cb5668f4c544aea080ed13c6196a4954efcddbcbf5629048b69e38e77ad705f20389cbd3ac201ba55ee0fc6aedb844f0bff20b850085c2b85fa2c3
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/json-proxy@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "@yarnpkg/json-proxy@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"
+  dependencies:
+    "@yarnpkg/fslib": ^2.1.0
+    tslib: ^1.13.0
+  checksum: 9c3877ca034d9f5a802a15853ae006aab8df7b0969b79a46a9dcec348b5342ec11c4027de73367e5c1a52d13620a96c15c9f040968ebb4c11e9407248f63555c
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/libzip@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "@yarnpkg/libzip@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"
+  dependencies:
+    "@types/emscripten": ^1.38.0
+    tslib: ^1.13.0
+  checksum: 886d4a269a91c229c52984cb2dd040aa8dfa8114c39b72a380f7dab7755f9c250c228f8e3fa45b985bee9a4ac602b6ec3c57b80e98d7320e260774d9a856c6d8
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/libzip@npm:^2.2.1":
+  version: 2.2.1
+  resolution: "@yarnpkg/libzip@npm:2.2.1"
+  dependencies:
+    "@types/emscripten": ^1.38.0
+    tslib: ^1.13.0
+  checksum: 75813c2dbed76fd81aa7ba04f592888c45c58334c901edf3782105baa9b11e084473db5a3da678626509a7de3196e5297c0a790424e86d6976e916502b576c81
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/parsers@npm:^2.3.0":
+  version: 2.3.0
+  resolution: "@yarnpkg/parsers@npm:2.3.0"
+  dependencies:
+    js-yaml: ^3.10.0
+    tslib: ^1.13.0
+  checksum: 3c221fe5e2259a71bbfab7fe03b4790c1cc4d139b64ae45701b5a0542ae7f15e06613a6c486687fbf90318d8f95508134b42591f5918421343981496b9e721f4
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/pnp@npm:^2.3.1":
+  version: 2.3.1
+  resolution: "@yarnpkg/pnp@npm:2.3.1"
+  dependencies:
+    "@types/node": ^13.7.0
+    "@yarnpkg/fslib": ^2.3.0
+    tslib: ^1.13.0
+  checksum: b04da36672da3dcd0fd2df3a9055a783f1056df157b5674a4c63c4e2269f73fa2ea877d61d6f5f7abd7d7b23a36dfcb3918b0c91635264d6272b0c3fe270a194
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/pnpify@npm:^2.3.3":
+  version: 2.3.3
+  resolution: "@yarnpkg/pnpify@npm:2.3.3"
+  dependencies:
+    "@yarnpkg/core": ^2.3.1
+    "@yarnpkg/fslib": ^2.3.0
+    "@yarnpkg/parsers": ^2.3.0
+    chalk: ^3.0.0
+    clipanion: ^2.6.2
+    comment-json: ^2.2.0
+    lodash: ^4.17.15
+    tslib: ^1.13.0
+  peerDependencies:
+    eslint: "*"
+    typescript: "*"
+  peerDependenciesMeta:
+    eslint:
+      optional: true
+    typescript:
+      optional: true
+  bin:
+    pnpify: ./lib/cli.js
+  checksum: 80ccd1a56083913c105d7028ca63bac2fd62883404bf929fe1bea12c0768d6e0f981a61654115e6bbe700309887cafe108c0bce7a4bd603d8cbaeb29773c5014
+  languageName: node
+  linkType: hard
+
+"@yarnpkg/shell@npm:^2.4.0":
+  version: 2.4.0
+  resolution: "@yarnpkg/shell@npm:2.4.0"
+  dependencies:
+    "@yarnpkg/fslib": ^2.3.0
+    "@yarnpkg/parsers": ^2.3.0
+    clipanion: ^2.6.2
+    cross-spawn: 7.0.3
+    fast-glob: ^3.2.2
+    micromatch: ^4.0.2
+    stream-buffers: ^3.0.2
+    tslib: ^1.13.0
+  bin:
+    shell: ./lib/cli.js
+  checksum: fd09d872d57d0e4d6b0eea5ba15148e277b2c875eb46f098405617987801d5a9f50c34ba51ccc5b4528d6724b212de8540a39668c1b438654ce549e7aa53dcde
+  languageName: node
+  linkType: hard
+
+"abbrev@npm:1":
+  version: 1.1.1
+  resolution: "abbrev@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"
+  checksum: 9f9236a3cc7f56c167be3aa81c77fcab2e08dfb8047b7861b91440f20b299b9442255856bdbe9d408d7e96a0b64a36e1c27384251126962490b4eee841b533e0
+  languageName: node
+  linkType: hard
+
+"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.7":
+  version: 1.3.7
+  resolution: "accepts@npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"
+  dependencies:
+    mime-types: ~2.1.24
+    negotiator: 0.6.2
+  checksum: 2686fa30dbc850db1bf458dc8171fba13c54ed6cb25f4298ec7c2f88b8dfc50351f25c40abe3a948e4ec7a0cc8ea83d1c55c2f73ffa612d18840a8778d4a2ee0
+  languageName: node
+  linkType: hard
+
+"acorn-jsx@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "acorn-jsx@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"
+  peerDependencies:
+    acorn: ^6.0.0 || ^7.0.0
+  checksum: 1247cc4b32e7883c70823eae643ef07faefb02ef6084bb92d650e5564bb22d6e6392771036c1e15428dc01e6350a5336c6741e272c30ab6bf9ce578e4701f6c0
+  languageName: node
+  linkType: hard
+
+"acorn@npm:^7.1.0":
+  version: 7.3.1
+  resolution: "acorn@npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"
+  bin:
+    acorn: bin/acorn
+  checksum: 3fa70393843c3fd4af691f449563e983e064c5c3f655fd943f5f77fb767257623f8afc0a2454b0037aa0c4dd95374c75a9e0e6c54a5f497fc63e63449ad6327c
+  languageName: node
+  linkType: hard
+
+"acorn@npm:^7.4.0":
+  version: 7.4.1
+  resolution: "acorn@npm:7.4.1"
+  bin:
+    acorn: bin/acorn
+  checksum: 2bde98c28c1be9a08e41e581179b776b43396c9486ce52b2b9848d73c53df38c516b7edba4bacdc84cabc9d7a3299f3b46ef240ae261c38dbf8ddd89f635bd32
+  languageName: node
+  linkType: hard
+
+"acorn@npm:^8.0.4":
+  version: 8.0.4
+  resolution: "acorn@npm:8.0.4"
+  bin:
+    acorn: bin/acorn
+  checksum: d23a2df6c64845afd521f0df1f8f93f611c3647e01b8770b8ad2972c59246529fa42756bfd3ad6abf2d0cacb8e5203f5470c96637778ec583460f1637e1f6eb7
+  languageName: node
+  linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+  version: 3.0.1
+  resolution: "aggregate-error@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"
+  dependencies:
+    clean-stack: ^2.0.0
+    indent-string: ^4.0.0
+  checksum: aee96f00c21c9a8c005d949a448e656339235faeec5c050e041ed3d33812fc3478a777ffd6309eb61c17ceb66dd0d2c6220e06e565ec994f536d9a16814e0ebf
+  languageName: node
+  linkType: hard
+
+"ajv-errors@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "ajv-errors@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"
+  peerDependencies:
+    ajv: ">=5.0.0"
+  checksum: d8356aadcb8a602c69c8eefca1aff93271316c45c42b975606346cfd7c3f9bf56569c15bd2fe18bee5ae16d4db15fb9b0b12cb48c057335980993978c5ff2450
+  languageName: node
+  linkType: hard
+
+"ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.4.1":
+  version: 3.5.1
+  resolution: "ajv-keywords@npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"
+  peerDependencies:
+    ajv: ^6.9.1
+  checksum: f91a8a5304d1f314f5ec1429c9bd895964df50eb8455430ce51d79d38fd2ed63e807dbd1966eb759ac25c06b32485ccc8a2735145836ce01fffe13859c449ea0
+  languageName: node
+  linkType: hard
+
+"ajv-keywords@npm:^3.5.2":
+  version: 3.5.2
+  resolution: "ajv-keywords@npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"
+  peerDependencies:
+    ajv: ^6.9.1
+  checksum: 01f26c292304870c03a1cd14fc1ddcf7c713a05611a122c5193694d4050063d5fba46cbf8b5b2ebde364166fddd3c2e0abdcd97df655b7a7fbb3e6634eeb056a
+  languageName: node
+  linkType: hard
+
+"ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.2, ajv@npm:^6.5.5":
+  version: 6.12.3
+  resolution: "ajv@npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"
+  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
+  checksum: b20a171bf30ede1635c6b1955bcc1db5a6b3e7dfa77f75aace9fb0db87375430c46d5cdd84158a0bf0a8da91e4da97bdb1afe5604a0969d8468b7c11143fdbba
+  languageName: node
+  linkType: hard
+
+"ajv@npm:^6.12.4":
+  version: 6.12.4
+  resolution: "ajv@npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"
+  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
+  checksum: 50d72b0a10326732072f5481b1b6bd5a43f8d770878b8f88ba5bb232abb745cefbf7f87a0e64679bd477d4a8bba0b3aea084675bd34943db5279c15907ee658f
+  languageName: node
+  linkType: hard
+
+"ajv@npm:^6.12.5":
+  version: 6.12.6
+  resolution: "ajv@npm:6.12.6"
+  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
+  checksum: 19a8f3b0a06001eb68e6268f4f9f04424b32baadd5df6ba8292cd473e22e5f4019ed9ab17c3e3510394178ed8bef9b42ad0bdb5c675d65f042421a774780ce1a
+  languageName: node
+  linkType: hard
+
+"ansi-colors@npm:^3.0.0":
+  version: 3.2.4
+  resolution: "ansi-colors@npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"
+  checksum: 86ec4a476ae8661237c0da58c0b4c48ea57719fdd80eed00132db09ee88d69f5caa5889e13ccd07489e710bf3b9fd85123729e0660384d4373e92ef6125c1fad
+  languageName: node
+  linkType: hard
+
+"ansi-colors@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "ansi-colors@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"
+  checksum: 50d8dfbce25602caea1b170ecf4c71c4c9c58d2d1e3186fb5712848c0610d05fe60b8bb6a9eaebd9b54f1db3baf6f603e04214cce597cc7799bc9f47fd9a797a
+  languageName: node
+  linkType: hard
+
+"ansi-escapes@npm:^4.3.1":
+  version: 4.3.1
+  resolution: "ansi-escapes@npm:4.3.1"
+  dependencies:
+    type-fest: ^0.11.0
+  checksum: bcb39e57bd32af0236c4ded96aaf8ef5d86c5a4683762b0be998c68cd11d5afd93296f4b5e087a3557da82a899b7c4d081483d603a4d4647e6a6613bf1aded8a
+  languageName: node
+  linkType: hard
+
+"ansi-html@npm:0.0.7":
+  version: 0.0.7
+  resolution: "ansi-html@npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"
+  bin:
+    ansi-html: ./bin/ansi-html
+  checksum: 1178680548785b6557e67c197c343411ee1a334606058ebcfb4a3c79accddaa43edb511b0dcb79c15a18041fe0e8d1063bbbad95be8b5b1d56934b9a51d88c83
+  languageName: node
+  linkType: hard
+
+"ansi-regex@npm:^2.0.0":
+  version: 2.1.1
+  resolution: "ansi-regex@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"
+  checksum: 93a53c923fd433f67cd3d5647dffa6790f37bbfb924cf73ad23e28a8e414bde142d1da260d9a2be52ac4aa382063196880b1d40cf8b547642c746ed538ebf6c4
+  languageName: node
+  linkType: hard
+
+"ansi-regex@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "ansi-regex@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"
+  checksum: 53b6fe447cf92ee59739379de637af6f86b3b8a9537fbfe36a66f946f1d9d34afc3efe664ac31bcc7c3af042d43eabcfcfd3f790316d474bbc7b19a4b1d132dd
+  languageName: node
+  linkType: hard
+
+"ansi-regex@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "ansi-regex@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"
+  checksum: cbd9b5c9dbbb4a949c2a6e93f1c6cc19f0683d8a4724d08d2158627be6d373f0f3ba1f4ada01dce7ee141f2ba2628fbbd29932c7d49926e3b630c7f329f3178b
+  languageName: node
+  linkType: hard
+
+"ansi-styles@npm:^2.2.1":
+  version: 2.2.1
+  resolution: "ansi-styles@npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"
+  checksum: 108c7496372982f1ee53f3f09975de89cc771d2f7c89a32d56ab7a542f67b7de97391c9c16b43b39eb7ea176d3cfbb15975b6b355ae827f15f5a457b1b9dec31
+  languageName: node
+  linkType: hard
+
+"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1":
+  version: 3.2.1
+  resolution: "ansi-styles@npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"
+  dependencies:
+    color-convert: ^1.9.0
+  checksum: 456e1c23d9277512a47718da75e7fbb0a5ee215ef893c2f76d6b3efe8fceabc861121b80b0362146f5f995d21a1633f05a19bbf6283ae66ac11dc3b9c0bed779
+  languageName: node
+  linkType: hard
+
+"ansi-styles@npm:^4.1.0":
+  version: 4.2.1
+  resolution: "ansi-styles@npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"
+  dependencies:
+    "@types/color-name": ^1.1.1
+    color-convert: ^2.0.1
+  checksum: c8c007d5dab7b4fea064c9ea318114e1f6fc714bb382d061ac09e66bc83c8f3ce12bb6354be01598722c14a5d710af280b7614d269354f80d2535946aefa82f4
+  languageName: node
+  linkType: hard
+
+"any-promise@npm:^1.1.0, any-promise@npm:~1.3.0":
+  version: 1.3.0
+  resolution: "any-promise@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"
+  checksum: e829425e4aef532fb9063c638de4693feaf285dae8ba84bcabd9c6d49446264650d1e16b73af8a25ae1e4480f9a4dc7cae364b4c4d4753b57dd1900cdfab8183
+  languageName: node
+  linkType: hard
+
+"anymatch@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "anymatch@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"
+  dependencies:
+    micromatch: ^3.1.4
+    normalize-path: ^2.1.1
+  checksum: 9e495910cca364b47ee125d451bae1bde542ef78a56ac2a1e9fe835a671ed6f3b05a0fedafc8afc58d0f5214c604cddd5ca2d27fa48f234faffa2bf26ffa7fcf
+  languageName: node
+  linkType: hard
+
+"anymatch@npm:~3.1.1":
+  version: 3.1.1
+  resolution: "anymatch@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"
+  dependencies:
+    normalize-path: ^3.0.0
+    picomatch: ^2.0.4
+  checksum: cf61bbaf7f34d9f94dd966230b7a7f8f1f24e3e2185540741a2561118e108206d85101ee2fc9876cd756475dbe6573d84d91115c3abdbf53a64e26a5f1f06b67
+  languageName: node
+  linkType: hard
+
+"aproba@npm:^1.0.3":
+  version: 1.2.0
+  resolution: "aproba@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"
+  checksum: d4bac3e640af1f35eea8d5ee2b96ce2682549e47289f071aa37ae56066e19d239e43dea170c207d0f71586d7634099089523dd5701f26d4ded7b31dd5848a24a
+  languageName: node
+  linkType: hard
+
+"are-we-there-yet@npm:~1.1.2":
+  version: 1.1.5
+  resolution: "are-we-there-yet@npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"
+  dependencies:
+    delegates: ^1.0.0
+    readable-stream: ^2.0.6
+  checksum: 2d6fdb0ddde9b8cb120b6851b42c75f6b6db78b540b579a00d144ad38cb9e1bdf1248e5454049fcf5b47ef61d1a6f2ea433a8e38984158afd441bc1e0db7a625
+  languageName: node
+  linkType: hard
+
+"argparse@npm:^1.0.7":
+  version: 1.0.10
+  resolution: "argparse@npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"
+  dependencies:
+    sprintf-js: ~1.0.2
+  checksum: 435adaef5f6671c3ef1478a22be6fd54bdb99fdbbce8f5561b9cbbb05068ccce87b7df3b9f3322ff52a6ebb9cab2b427cbedac47a07611690a9beaa5184093e2
+  languageName: node
+  linkType: hard
+
+"arr-diff@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "arr-diff@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"
+  checksum: cbdff67cf52b9742d7ecfcf8614a1a458638679909fadcec2f91d18807dd5ba1cfa1e47984f52876063c8648146d385926e11bdac976a1db3f219bfde9668160
+  languageName: node
+  linkType: hard
+
+"arr-flatten@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "arr-flatten@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"
+  checksum: 564dc9c32cb20a1b5bc6eeea3b7a7271fcc5e9f1f3d7648b9db145b7abf68815562870267010f9f4976d788f3f79d2ccf176e94cee69af7da48943a71041ab57
+  languageName: node
+  linkType: hard
+
+"arr-union@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "arr-union@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"
+  checksum: 78f0f75c4778283023b723152bf12be65773ab3628e21493e1a1d3c316d472af9053d9b3dec4d814a130ad4f8ba45ae79b0f33d270a4ae0b0ff41eb743461aa8
+  languageName: node
+  linkType: hard
+
+"array-back@npm:^4.0.0, array-back@npm:^4.0.1":
+  version: 4.0.1
+  resolution: "array-back@npm:4.0.1"
+  checksum: 611f95e0398cc9f845ebb2ff6d611eae5d1c8063e8737a29e44033ee3cde6c04ab791f43f90899c001825aede8a9b60e987c3e20e446dccc12c4e4b9b848923b
+  languageName: node
+  linkType: hard
+
+"array-flatten@npm:1.1.1":
+  version: 1.1.1
+  resolution: "array-flatten@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"
+  checksum: de7a056451ff7891bb1bcda6ce2a50448ca70f63cd0fa7aa90430d288b6dc2931517b6853ce16c473a7f40fa6eaa874e20b6151616db93375471d1ffadfb1d3d
+  languageName: node
+  linkType: hard
+
+"array-flatten@npm:^2.1.0":
+  version: 2.1.2
+  resolution: "array-flatten@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"
+  checksum: 46bfb198da424765f26350a8d8b207deade75d493e6d26417bfebb4027857b9fef8f5ae3bacd0b912f9a9fd2c04e2ec140c7183c0408e10950579e9d5c9dea25
+  languageName: node
+  linkType: hard
+
+"array-includes@npm:^3.1.1":
+  version: 3.1.1
+  resolution: "array-includes@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0
+    is-string: ^1.0.5
+  checksum: 9fa86fdad9b07f733ab9994fe1058228d4835917ea26788cbd88eed0805f8b87baddb03e6f277498f96297532d6aac678be2a65694fb44ea561cba71d619a611
+  languageName: node
+  linkType: hard
+
+"array-union@npm:^1.0.1":
+  version: 1.0.2
+  resolution: "array-union@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"
+  dependencies:
+    array-uniq: ^1.0.1
+  checksum: 5be2568acc80d284519ff2bed8385daa37074dccbf440d5a9ce911bcb9cf51486dd677d3f61903ba113196333d033b261c8eb901a491e15bb4e437e5c68f92c7
+  languageName: node
+  linkType: hard
+
+"array-union@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "array-union@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"
+  checksum: 93af542eb854bf62a742192d0061c82788a963a9a6594628f367388f2b9f1bfd9215910febbbdd55074841555d8b59bda6a13ecba4a8e136f58b675499eda292
+  languageName: node
+  linkType: hard
+
+"array-uniq@npm:^1.0.1":
+  version: 1.0.3
+  resolution: "array-uniq@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"
+  checksum: ae11b7fc1e624f7ed45f7a269b521f3f9f73dbff277be9c61fe0240c497bd3fba86367753e0ebdf49bcfd3fee14f4ebab80f573545878525eb48429514a02124
+  languageName: node
+  linkType: hard
+
+"array-unique@npm:^0.3.2":
+  version: 0.3.2
+  resolution: "array-unique@npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"
+  checksum: 7139dbbcaf48325224593f2f7a400b123b310c53365b4a1d49916928082ad862117a1e6d411c926ec540e9408786bbd1cf90805609040568059156d1d09feb70
+  languageName: node
+  linkType: hard
+
+"array.prototype.flat@npm:^1.2.3":
+  version: 1.2.3
+  resolution: "array.prototype.flat@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+  checksum: f88a474d1cb3bfb2cfa44a5d36047bad146324f1beabbc743689d34fa36f29fab277008446ab56601c48721e1d50c5f47e5b3fae2583cc3724d1e6073cbdd901
+  languageName: node
+  linkType: hard
+
+"array.prototype.flatmap@npm:^1.2.3":
+  version: 1.2.3
+  resolution: "array.prototype.flatmap@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+    function-bind: ^1.1.1
+  checksum: adbf30f2711d6599769a762278b7a1f8b94c917db268eb81f1364d808f1502b4e8995fe5a678e70029edb30fa4d39c1e3af3af7121baa3b7afcb7b59cbf76a00
+  languageName: node
+  linkType: hard
+
+"asap@npm:~2.0.3":
+  version: 2.0.6
+  resolution: "asap@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"
+  checksum: 3d314f8c598b625a98347bacdba609d4c889c616ca5d8ea65acaae8050ab8b7aa6630df2cfe9856c20b260b432adf2ee7a65a1021f268ef70408c70f809e3a39
+  languageName: node
+  linkType: hard
+
+"asn1@npm:~0.2.3":
+  version: 0.2.4
+  resolution: "asn1@npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"
+  dependencies:
+    safer-buffer: ~2.1.0
+  checksum: 5743ace942e2faa0b72f3b14bf1826509c5ca707ea150c10520f52b04f90aa715cee4370ec2e6279ce1ceb7d3c472ca33270124e90b495bea4c9b02f41b9d8ac
+  languageName: node
+  linkType: hard
+
+"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "assert-plus@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"
+  checksum: 1bda24f67343ccb75a7eee31179c92cf9f79bd6f6bc24101b0ce1495ef979376dd9b0f9b9064812bba564cdade5fbf851ed76b4a44b5e141d49cdaee6ffed6b2
+  languageName: node
+  linkType: hard
+
+"assign-symbols@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "assign-symbols@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"
+  checksum: 893e9389a5dde0690102ad8d6146e50d747b6f45d51996d39b04abb7774755a4a9b53883295abab4dd455704b1e10c1fa560d617db5404bae118526916472bec
+  languageName: node
+  linkType: hard
+
+"astral-regex@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "astral-regex@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"
+  checksum: 08e37f599604eb3894af4ec5f9845caec7a45d10c1b57b04c4fc21cc669091803f8386efc52957ec3c7ae8c3af60b933018926aab156e5696a7aab393d6e0874
+  languageName: node
+  linkType: hard
+
+"async-each@npm:^1.0.1":
+  version: 1.0.3
+  resolution: "async-each@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"
+  checksum: 0cf01982ae42db5ce591aab153e45e77aa7c813c4fb282f1e7cac2259f90949f82542e82a33f73ef308e0126c9a8bc702ee117a87614549fe88840cf5a44aec4
+  languageName: node
+  linkType: hard
+
+"async-limiter@npm:~1.0.0":
+  version: 1.0.1
+  resolution: "async-limiter@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"
+  checksum: d123312ace75c07399ddc58e06cc028dacce35f71cdf59cf9b22f6c31dde221c22285e6185ede823ecb67f3b3065e26205eb9f74fcbba3f12ce7a2c2b09d7763
+  languageName: node
+  linkType: hard
+
+"async@npm:^2.6.2":
+  version: 2.6.3
+  resolution: "async@npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"
+  dependencies:
+    lodash: ^4.17.14
+  checksum: 5c30ec6f3d64308dd96d56dae16a00a23b9e6278fe8f66492837896d958508698648c59c53457d3fdf05fd04484e16538efeca2be38337cd78df0284e764ab34
+  languageName: node
+  linkType: hard
+
+"asynckit@npm:^0.4.0":
+  version: 0.4.0
+  resolution: "asynckit@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"
+  checksum: a024000b9ddd938e2f27b3cb8188f96a5e1fff58185e98b84862fc4e01de279a547874a800340c2b106bb9de9b0fc61c6c683bc6892abf65e6be29a96addafd3
+  languageName: node
+  linkType: hard
+
+"atob@npm:^2.1.2":
+  version: 2.1.2
+  resolution: "atob@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"
+  bin:
+    atob: bin/atob.js
+  checksum: 597c0d1a740bb6522c98bea8fe362ae9420b4203af588d2bd470326d9abd4504264956b8355923d7019a21527ef5e6526a7b4455862ec5178ccd81e0ea289d5f
+  languageName: node
+  linkType: hard
+
+"autoprefixer@npm:^9.6.1":
+  version: 9.8.6
+  resolution: "autoprefixer@npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"
+  dependencies:
+    browserslist: ^4.12.0
+    caniuse-lite: ^1.0.30001109
+    colorette: ^1.2.1
+    normalize-range: ^0.1.2
+    num2fraction: ^1.2.2
+    postcss: ^7.0.32
+    postcss-value-parser: ^4.1.0
+  bin:
+    autoprefixer: bin/autoprefixer
+  checksum: b406d8047a97fcc39c9c6d208fd6f1974e5957800461d9a79457a3ecaca2c0ea090bd06f30c8653f48f751c31115c63a80502ff8c9a6bb7b8a5a5063021827d4
+  languageName: node
+  linkType: hard
+
+"aws-sign2@npm:~0.7.0":
+  version: 0.7.0
+  resolution: "aws-sign2@npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"
+  checksum: 7162b9b8fbd4cf451bd889b0ed27fc895f88e6a6cb5c5609de49759ea1a6e31646f86ca8e18d90bea0455c4caa466fc9692c1098a1784d2372a358cb68c1eea6
+  languageName: node
+  linkType: hard
+
+"aws4@npm:^1.8.0":
+  version: 1.10.0
+  resolution: "aws4@npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"
+  checksum: f8c20a0031a2ae88bb29a89d5e5f8139eb0cc8aa964d0a8d69a476a4b0f6cf3954e3dd40bd08cea69c95ee31e2e69226d82e804628261a2375223ac67582009d
+  languageName: node
+  linkType: hard
+
+"axios@npm:^0.21.0":
+  version: 0.21.0
+  resolution: "axios@npm:0.21.0"
+  dependencies:
+    follow-redirects: ^1.10.0
+  checksum: 4b08ecab39040948c03cae5fa726fdcf8bc299679818179c146e779a922ce887fad9261d82ad57ad1a3aa1fcba3612f14b490fdfa2cd28fa23c190fd48517f5f
+  languageName: node
+  linkType: hard
+
+"babel-code-frame@npm:^6.26.0":
+  version: 6.26.0
+  resolution: "babel-code-frame@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"
+  dependencies:
+    chalk: ^1.1.3
+    esutils: ^2.0.2
+    js-tokens: ^3.0.2
+  checksum: cc2a799ccc341ad2db8aa90762b680bbca1e15893c3b28a328e974f46443110b8c56bad25554efe26f8955d19cfa2955b5f3068310ab8a818a9d7e875c90e8b4
+  languageName: node
+  linkType: hard
+
+"babel-extract-comments@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "babel-extract-comments@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"
+  dependencies:
+    babylon: ^6.18.0
+  checksum: 2a291f1a3afb95052b98346e6fc41d36add460d557dc7f01bacaae92efd1dd98521a632d211801a7045ef563c1eebd8d6d88d1a86548e57ffb7c68b4aaab9d0a
+  languageName: node
+  linkType: hard
+
+"babel-loader@npm:^8.1.0":
+  version: 8.1.0
+  resolution: "babel-loader@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"
+  dependencies:
+    find-cache-dir: ^2.1.0
+    loader-utils: ^1.4.0
+    mkdirp: ^0.5.3
+    pify: ^4.0.1
+    schema-utils: ^2.6.5
+  peerDependencies:
+    "@babel/core": ^7.0.0
+    webpack: ">=2"
+  checksum: f7b236a5f7b3f2c8a49ec41ed0a2905075ed4bb6d6ba85552b50be7c56b8fdb46e92270576ef29e6598f23919f7a00a515091c2410ced25c08992a4bd799124b
+  languageName: node
+  linkType: hard
+
+"babel-messages@npm:^6.23.0":
+  version: 6.23.0
+  resolution: "babel-messages@npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"
+  dependencies:
+    babel-runtime: ^6.22.0
+  checksum: 9a04e1b86bf68f0469efc7d09d04dbcd69d386ae0347d71c67b8867d6763f0b46616856ca3669b982e9e000642b0546271ecda51c1e1a321fc8cf179ad6d65ad
+  languageName: node
+  linkType: hard
+
+"babel-plugin-dynamic-import-node@npm:^2.3.3":
+  version: 2.3.3
+  resolution: "babel-plugin-dynamic-import-node@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"
+  dependencies:
+    object.assign: ^4.1.0
+  checksum: 6745b8edca96f6c8bc34ab65935b5676358d2e55323e8e823b8de7aa353e3e6398a495ce434c9c36ad5fb1609467a1b1a0028946e1490bf7de8f97df3ae7f3b1
+  languageName: node
+  linkType: hard
+
+"babel-plugin-syntax-object-rest-spread@npm:^6.8.0":
+  version: 6.13.0
+  resolution: "babel-plugin-syntax-object-rest-spread@npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"
+  checksum: 459844d1a89dfe580876daa6c8be3f120931db2705cfc32ffacaa93442ca8036e38ad3f687fc889e9cd6e96f51d83cb4b520c063d8f12223baf6f8a34a07e4cc
+  languageName: node
+  linkType: hard
+
+"babel-plugin-transform-builtin-extend@npm:^1.1.2":
+  version: 1.1.2
+  resolution: "babel-plugin-transform-builtin-extend@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"
+  dependencies:
+    babel-runtime: ^6.2.0
+    babel-template: ^6.3.0
+  checksum: 29040a2217234d99930485c0a7e20d93bcd26dc8f7d51e0824f982d0f93d1147042cf89ad78f4502cd5afc2d036fbadae6615f79ef70fd6c12fe9c235671e5f3
+  languageName: node
+  linkType: hard
+
+"babel-plugin-transform-object-rest-spread@npm:^6.26.0":
+  version: 6.26.0
+  resolution: "babel-plugin-transform-object-rest-spread@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"
+  dependencies:
+    babel-plugin-syntax-object-rest-spread: ^6.8.0
+    babel-runtime: ^6.26.0
+  checksum: 1d8ff820576afd78850081dc71e36f77be08484b502a8fe87b959bad4463581bd0731c605b09307cd3ffabeb372c70524c0f8a303dc99c4d15085f84c06f26e3
+  languageName: node
+  linkType: hard
+
+"babel-runtime@npm:^6.2.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0":
+  version: 6.26.0
+  resolution: "babel-runtime@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"
+  dependencies:
+    core-js: ^2.4.0
+    regenerator-runtime: ^0.11.0
+  checksum: 5010bf1d81e484d9c6a5b4e4c32564a0dc180c2dc5a65f999729c3cb63b9c6e805d3d10c19a4ccc2112bce084e39e51e52daf5c21df0141ce8e6e37727af2e0b
+  languageName: node
+  linkType: hard
+
+"babel-template@npm:^6.3.0":
+  version: 6.26.0
+  resolution: "babel-template@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"
+  dependencies:
+    babel-runtime: ^6.26.0
+    babel-traverse: ^6.26.0
+    babel-types: ^6.26.0
+    babylon: ^6.18.0
+    lodash: ^4.17.4
+  checksum: 3c76998a19c90e1aa2c37c4fd6a83b01db685df169f83669a40c459deda30792c40de1f2a1ffe405c9c8c25e4cd00733c0185244f5c457e94579bbe272bb22ef
+  languageName: node
+  linkType: hard
+
+"babel-traverse@npm:^6.26.0":
+  version: 6.26.0
+  resolution: "babel-traverse@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"
+  dependencies:
+    babel-code-frame: ^6.26.0
+    babel-messages: ^6.23.0
+    babel-runtime: ^6.26.0
+    babel-types: ^6.26.0
+    babylon: ^6.18.0
+    debug: ^2.6.8
+    globals: ^9.18.0
+    invariant: ^2.2.2
+    lodash: ^4.17.4
+  checksum: 05030a5152139565a2fe1d277d6ff337df33fe406b9eedb04c8fb740d2c26008d051457437fbf32faace5ea3cee968dcfba0bc4f359743917a03d1ee945ca5f3
+  languageName: node
+  linkType: hard
+
+"babel-types@npm:^6.26.0":
+  version: 6.26.0
+  resolution: "babel-types@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"
+  dependencies:
+    babel-runtime: ^6.26.0
+    esutils: ^2.0.2
+    lodash: ^4.17.4
+    to-fast-properties: ^1.0.3
+  checksum: 9fb4b712afe5c19bfd2ab77e9888062d1b4888be22d8b21934fee03dbbd6add8d89ce9e435b7321a1047776c14f713301666112a5c5e505cb673e88d63076cca
+  languageName: node
+  linkType: hard
+
+"babylon@npm:^6.18.0":
+  version: 6.18.0
+  resolution: "babylon@npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"
+  bin:
+    babylon: ./bin/babylon.js
+  checksum: af38302e3fd8b01004ab03e7f42e00d3d6b3e85190102a1ad7ffbed87bc025d96413a7c165b2b5f0b78e576b71e5306a67c1ae0368f6d12bef40fd00b0dbc7b5
+  languageName: node
+  linkType: hard
+
+"balanced-match@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "balanced-match@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"
+  checksum: f515a605fe1b59f476f7477c5e1d53ad55b4f42982fca1d57b6701906f4ad1f1ac90fd6587d92cc1af2edb43eecf979214dd847ee410a6de9db4ebf0dd128d62
+  languageName: node
+  linkType: hard
+
+"base64-js@npm:^1.0.2":
+  version: 1.3.1
+  resolution: "base64-js@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"
+  checksum: 8a0cc69d7c7c0ab75c164d3e2eccc3dd65fbaba17bcf440aab54636afd31255287ac3cd16a111e98d741c4a6e0b5631774b0c32818355089e645df3ae96a49bb
+  languageName: node
+  linkType: hard
+
+"base@npm:^0.11.1":
+  version: 0.11.2
+  resolution: "base@npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"
+  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
+  checksum: 84e30392fd028df388b209cfb800e1ab4156b3cc499bd46f96ce6271fd17f10302ba6b87d4a56c6946cc77b6571502d45d73c7948a63a84f9ffd421f81232dd5
+  languageName: node
+  linkType: hard
+
+"basic-auth@npm:^1.0.3":
+  version: 1.1.0
+  resolution: "basic-auth@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"
+  checksum: dd75a3730b0e7199c6067a63598cbe39470bc9fcacd67c21c3e442d65124909001f0d37c0751fed51f06191d598663b3b2c766d42f3e70313e72e3881ab98f7d
+  languageName: node
+  linkType: hard
+
+"batch@npm:0.6.1":
+  version: 0.6.1
+  resolution: "batch@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"
+  checksum: 4ec2d961e6af6e944e164eb1b8c5885bc4c85846d110ce2d55156ab2903dd1593f3c4a7b71c2cff81464a2973e1b91cc1bf86239a9ba44435a319eeae3346a91
+  languageName: node
+  linkType: hard
+
+"bcrypt-pbkdf@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "bcrypt-pbkdf@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"
+  dependencies:
+    tweetnacl: ^0.14.3
+  checksum: 3f57eb99bbc02352f68ff31e446997f4d21cc9a5e5286449dc1fe0116ec5dac5a4aa538967d45714fa9320312d2be8d16126f2d357da1dd40a3d546b96e097ed
+  languageName: node
+  linkType: hard
+
+"big.js@npm:^5.2.2":
+  version: 5.2.2
+  resolution: "big.js@npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"
+  checksum: ea33d7d25674df4253ae3667da7f48ade6cc8828cb4f2c3a7753f53975f10cebae57e0d1ecf84f1b920b5467262dc0d4f357e5e497b138472d0e64992a8402a4
+  languageName: node
+  linkType: hard
+
+"binary-extensions@npm:^1.0.0":
+  version: 1.13.1
+  resolution: "binary-extensions@npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"
+  checksum: 7cdacc6dadaffb6a4d250c39ca51e1fd7ba0fd846348e2813465dfaa7fce1e59a3465c1555578e7e4e7959023b47824cc387b37780e2160f52fface775cc0133
+  languageName: node
+  linkType: hard
+
+"binary-extensions@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "binary-extensions@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"
+  checksum: 12bee2817930b211b88f6de5da2edb64f924ffde79e01516fcb17005a39e75374fae1ce1a9c58b52557a4d81eb6eb7a804cbe7170ea3a553919a7ce0053e2e4f
+  languageName: node
+  linkType: hard
+
+"bindings@npm:^1.5.0":
+  version: 1.5.0
+  resolution: "bindings@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"
+  dependencies:
+    file-uri-to-path: 1.0.0
+  checksum: bd623dec58f126eb0c30f04a20da7080f06cdd5af26bf5a91615e70055fbba66c4cec5c88b156e8181c1d822f2392034a40a9121ef3ebc25638dc2163332b12d
+  languageName: node
+  linkType: hard
+
+"binjumper@npm:^0.1.2":
+  version: 0.1.3
+  resolution: "binjumper@npm:0.1.3"
+  checksum: 660000e5a55a9d6fedac4377f12595bcd114f2556200c7a44511ed6457d48d720f25719bdf85923188c0a3b467a753421a00e92fef44366d3998bb2e959d60db
+  languageName: node
+  linkType: hard
+
+"bl@npm:^4.0.1":
+  version: 4.0.3
+  resolution: "bl@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"
+  dependencies:
+    buffer: ^5.5.0
+    inherits: ^2.0.4
+    readable-stream: ^3.4.0
+  checksum: 1f33c5a3da08a87260a7f11acadf088ef331ebb4b86db1160ec332be9326afdf9f73dca1fd5cc431dba7cc9d5574b508192f9fd7c37a9a11c9e4a50025917690
+  languageName: node
+  linkType: hard
+
+"body-parser@npm:1.19.0":
+  version: 1.19.0
+  resolution: "body-parser@npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"
+  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
+  checksum: 18c2a81df5eabc7e3541bc9ace394b88e6fbd390989b5e764ff34c3f9dbd097e19986c31baa9b855ec5c2cff2b79157449afb0cdfb97bb99c11d6239b2c47a34
+  languageName: node
+  linkType: hard
+
+"bonjour@npm:^3.5.0":
+  version: 3.5.0
+  resolution: "bonjour@npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"
+  dependencies:
+    array-flatten: ^2.1.0
+    deep-equal: ^1.0.1
+    dns-equal: ^1.0.0
+    dns-txt: ^2.0.2
+    multicast-dns: ^6.0.1
+    multicast-dns-service-types: ^1.1.0
+  checksum: b6c49714a3e0015411878296d9db80894493c973f5bb4516811d75747b21429b1f807e9176d3f188165127feecdda8073abae47892426b25a4a1513f70daaeb8
+  languageName: node
+  linkType: hard
+
+"boolbase@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "boolbase@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"
+  checksum: e827963c416fdb1dbcd57e066a43c40829518f4dcdc9f58ed04519daeebb610adacbb6cf102518bda9f08be593c5b1b49a83e36bf6b7d91b3403f7e35510eeae
+  languageName: node
+  linkType: hard
+
+"bootstrap-icons@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "bootstrap-icons@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"
+  checksum: 082d8d2aff07217289b3a78c0d8eb80c45b42f2ee63ffa27a87c83072745177dd12b0b12d1b73d95a5e69d45b54c739b5db6e2eb7e310aa8b54b6b08ec57772c
+  languageName: node
+  linkType: hard
+
+"bootstrap@npm:^4.5.3":
+  version: 4.5.3
+  resolution: "bootstrap@npm:4.5.3"
+  peerDependencies:
+    jquery: 1.9.1 - 3
+    popper.js: ^1.16.1
+  checksum: 8c8850152f535ea1f3a24ceb06baaf12557423ad02fa17d8a1517a4a46b46cee58ecf0d031fca0e4d0cce2165d3bac0c90e782eb31cf7a84dae640531f7b2f7c
+  languageName: node
+  linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+  version: 1.1.11
+  resolution: "brace-expansion@npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"
+  dependencies:
+    balanced-match: ^1.0.0
+    concat-map: 0.0.1
+  checksum: 4c878e25e4858baf801945dfd63eb68feab2e502cf1122f25f3915c0e3bf397af3a93ff6bef0798db41c0d81ef28c08e55daac38058710f749a3b96eee6b8f40
+  languageName: node
+  linkType: hard
+
+"braces@npm:^2.3.1, braces@npm:^2.3.2":
+  version: 2.3.2
+  resolution: "braces@npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"
+  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
+  checksum: 5f2d5ae262a39e516c7266f1316bc1caade4dcc26c5f8454f1d35064abbccd51cfea1c2cfa5a7402026991448a2b0ed0be1adce76ff1db2dfca7d3263f58d24d
+  languageName: node
+  linkType: hard
+
+"braces@npm:^3.0.1, braces@npm:~3.0.2":
+  version: 3.0.2
+  resolution: "braces@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"
+  dependencies:
+    fill-range: ^7.0.1
+  checksum: f3493181c3e91a1333d3c9afc9b3263a3f62f4ced0b033c372efc1373b48a7699557f4e04026b232a8556e043ca5360a9d3008c33852350138d4b0ea57558b8d
+  languageName: node
+  linkType: hard
+
+"browserslist@npm:^4.12.0, browserslist@npm:^4.8.5":
+  version: 4.13.0
+  resolution: "browserslist@npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"
+  dependencies:
+    caniuse-lite: ^1.0.30001093
+    electron-to-chromium: ^1.3.488
+    escalade: ^3.0.1
+    node-releases: ^1.1.58
+  bin:
+    browserslist: cli.js
+  checksum: 91657dcc024f03f7b8a03f897e4a15c73774f39040f4e2fa9cb0e10b057113d71c97b29721590a80bf03dccfae1d69ad3fdf7326644c2c41cdd0410fb1a679a0
+  languageName: node
+  linkType: hard
+
+"browserslist@npm:^4.14.5":
+  version: 4.14.5
+  resolution: "browserslist@npm:4.14.5"
+  dependencies:
+    caniuse-lite: ^1.0.30001135
+    electron-to-chromium: ^1.3.571
+    escalade: ^3.1.0
+    node-releases: ^1.1.61
+  bin:
+    browserslist: cli.js
+  checksum: 18261764bd01f559059a57b1536b75b93e8b448c3e9ccd4de1699b40fcd0697feebbd2e76cc573cbfd0c3f308d29e441435591f93f81bc60596101f5a3d58bbb
+  languageName: node
+  linkType: hard
+
+"browserslist@npm:^4.6.4":
+  version: 4.14.0
+  resolution: "browserslist@npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"
+  dependencies:
+    caniuse-lite: ^1.0.30001111
+    electron-to-chromium: ^1.3.523
+    escalade: ^3.0.2
+    node-releases: ^1.1.60
+  bin:
+    browserslist: cli.js
+  checksum: 1ca4d424ae15266468d1635d41f4113b1f863a9892958a86be8642e93504ad4ebc488c1ab935b7e86753d0f2243e5d24c15a637c4bc5aaa40dfd6da8d0eaa73b
+  languageName: node
+  linkType: hard
+
+"buffer-from@npm:^1.0.0":
+  version: 1.1.1
+  resolution: "buffer-from@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"
+  checksum: 540ceb79c4f5bfcadaabbc18324fa84c50dc52905084be7c03596a339cf5a88513bee6831ce9b36ddd046fab09257a7c80686e129d0559a0cfd141da196ad956
+  languageName: node
+  linkType: hard
+
+"buffer-indexof@npm:^1.0.0":
+  version: 1.1.1
+  resolution: "buffer-indexof@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"
+  checksum: f7114185678d4ebd66b68a8d76feda5a66ea5df57101e7af1c3faef6ff98ca6ac15891da200d7eea99153573e110d05bc9fdf493278e3bd2b0f117e84ff08f64
+  languageName: node
+  linkType: hard
+
+"buffer@npm:^5.5.0":
+  version: 5.6.0
+  resolution: "buffer@npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"
+  dependencies:
+    base64-js: ^1.0.2
+    ieee754: ^1.1.4
+  checksum: e18fdf099c25cae354d673c7deee0391978bde5a47b785cf81e118c75853f0f36838b0a5ea5ee7adf8c02eedb9664292608efdcac9945f4f4f514d14054656f7
+  languageName: node
+  linkType: hard
+
+"builtin-modules@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "builtin-modules@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"
+  checksum: 54f062393cd48ff6c7293d885a106faa0988cbffb8b5f7790bfd0148e56cedf21b13bd4c1e544911ec7b4b022c52fd4c606e8697469b342e8b3e529ce48d8831
+  languageName: node
+  linkType: hard
+
+"bytes@npm:3.0.0":
+  version: 3.0.0
+  resolution: "bytes@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"
+  checksum: 98d6c0ab36f7a5527226fd928e65495ffd3d53cb22da627eba3300eed36bd283ae3dfdf3a0aa017df13a09115b5b8847e3d51f66c2f0304a262264c86a317c05
+  languageName: node
+  linkType: hard
+
+"bytes@npm:3.1.0":
+  version: 3.1.0
+  resolution: "bytes@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"
+  checksum: c3f64645ef37922c8194fef88a052de2a28101882dfdf8a225493888c4941a26ea15164957e7492e5c5e3a8e98ee6276f4834efacb68e2d8ad4d91f903250b6c
+  languageName: node
+  linkType: hard
+
+"cacache@npm:^15.0.5":
+  version: 15.0.5
+  resolution: "cacache@npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"
+  dependencies:
+    "@npmcli/move-file": ^1.0.1
+    chownr: ^2.0.0
+    fs-minipass: ^2.0.0
+    glob: ^7.1.4
+    infer-owner: ^1.0.4
+    lru-cache: ^6.0.0
+    minipass: ^3.1.1
+    minipass-collect: ^1.0.2
+    minipass-flush: ^1.0.5
+    minipass-pipeline: ^1.2.2
+    mkdirp: ^1.0.3
+    p-map: ^4.0.0
+    promise-inflight: ^1.0.1
+    rimraf: ^3.0.2
+    ssri: ^8.0.0
+    tar: ^6.0.2
+    unique-filename: ^1.1.1
+  checksum: 8e371cbf3c5051585127e63a84c9f1e430032590e5c4ada17d57b7953e21f6d5722e7f29f80cfef26520175ea2d1705a0670897ed7fe64377c7bd2ee650be287
+  languageName: node
+  linkType: hard
+
+"cache-base@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "cache-base@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"
+  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
+  checksum: 3f362ba824453d4043df82655314503e591a09a1bcb909ffdfcc74deb0fe4e7c58e40de31293153b07aeb5545610a1d81bf49b67cff5d3dd084d389e5a4d4849
+  languageName: node
+  linkType: hard
+
+"cacheable-lookup@npm:^5.0.3":
+  version: 5.0.3
+  resolution: "cacheable-lookup@npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"
+  checksum: a51e3ddb824865b87895a915fc41be6e2097b62932e5441c357711bb87ec23b0a738a7b7a5cefd9043dacd4ed31ca56b62528ec60ba020e360f07175b6ca5bfe
+  languageName: node
+  linkType: hard
+
+"cacheable-request@npm:^7.0.1":
+  version: 7.0.1
+  resolution: "cacheable-request@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"
+  dependencies:
+    clone-response: ^1.0.2
+    get-stream: ^5.1.0
+    http-cache-semantics: ^4.0.0
+    keyv: ^4.0.0
+    lowercase-keys: ^2.0.0
+    normalize-url: ^4.1.0
+    responselike: ^2.0.0
+  checksum: fe0b6f3b8a145c98fecc00f0f1b13a9886cad9bf4537533c5568cba19db81c8ee09ace9c61967d5a4e72615e174d771b6b8080c3816f0b74fc6f9c69060c3ff0
+  languageName: node
+  linkType: hard
+
+"callsites@npm:^3.0.0":
+  version: 3.1.0
+  resolution: "callsites@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"
+  checksum: f726bf10d752901174cae348e69c2e58206404d5eebcea485b3fedbcf7fcffdb397e10919fdf6ee2c8adb4be52a64eea2365d52583611939bfecd109260451c9
+  languageName: node
+  linkType: hard
+
+"camel-case@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "camel-case@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"
+  dependencies:
+    pascal-case: ^3.1.1
+    tslib: ^1.10.0
+  checksum: c202f62a74c020e51ab6d7d02c0367a6b8cd5d1803e69371421970186d6ca32a20437eb45257baa00a7bb976a202e8fbdb75d509145f5b022f7f80936997c6b8
+  languageName: node
+  linkType: hard
+
+"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1":
+  version: 5.3.1
+  resolution: "camelcase@npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"
+  checksum: 6a3350c4ea8ab6e5109e0b443cfaf43dc40abfad7b2d79dcafbbafbe9b6b4059b4365b17ad822e24cf08e6627c1ffb65a9651d05cef9fcc6f64b6a0c2f327feb
+  languageName: node
+  linkType: hard
+
+"camelcase@npm:^6.1.0":
+  version: 6.1.0
+  resolution: "camelcase@npm:6.1.0"
+  checksum: 3e968d5efba3c08410437c097b6706aa2a3f1ff34c3ee11940cca932397d99e44693a314545e2d00cb36c1c05d8463ca6f3dabb005e9ce2b615edb7ef274b6c3
+  languageName: node
+  linkType: hard
+
+"caniuse-lite@npm:^1.0.30000981, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001111":
+  version: 1.0.30001117
+  resolution: "caniuse-lite@npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"
+  checksum: 1e662b55088f83c50164f765d6a3d67109cb94bda943b8ac1efeb8be74c2320ea61eed3e49572d9f98d6de3d7968831cd3370ac29196b632a909ae25f5084bc7
+  languageName: node
+  linkType: hard
+
+"caniuse-lite@npm:^1.0.30001093":
+  version: 1.0.30001104
+  resolution: "caniuse-lite@npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"
+  checksum: fdaf22cc7ddac06c6683bfb38e8b158fb09dcb4a8a6a082ea0da4b144ba6735cde1c177be40a1b52e296350219d0e51449d4b374a6e558543734fd549fe0d1a9
+  languageName: node
+  linkType: hard
+
+"caniuse-lite@npm:^1.0.30001135":
+  version: 1.0.30001151
+  resolution: "caniuse-lite@npm:1.0.30001151"
+  checksum: 3acb52ac17034d7abe4468e66293c9e5597cb5f123bd8f86ea3b87e758112ac4259fdbc35f8f4cbf5477e385dd975f11031bfbf26f4cec64d64a0c567a430b58
+  languageName: node
+  linkType: hard
+
+"caseless@npm:~0.12.0":
+  version: 0.12.0
+  resolution: "caseless@npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"
+  checksum: 147f48bff9bebf029d7050e2335da3f8d295f26d157edf08d8c3282c804dae04a462c4cd6efa8179755686aa3aeaca5c28f3e7f3559698bc0484c65e46c36c5b
+  languageName: node
+  linkType: hard
+
+"chalk@npm:^1.1.3":
+  version: 1.1.3
+  resolution: "chalk@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"
+  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
+  checksum: bc2df54f6da63d0918254aa2d79dd87f75442e35c751b07f5ca37e5886dd0963472e37ee8c5fa6da27710fdfa0e10779c72be4a6c860c67e96769ba63ee2901e
+  languageName: node
+  linkType: hard
+
+"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.2":
+  version: 2.4.2
+  resolution: "chalk@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"
+  dependencies:
+    ansi-styles: ^3.2.1
+    escape-string-regexp: ^1.0.5
+    supports-color: ^5.3.0
+  checksum: 22c7b7b5bc761c882bb6516454a1a671923f1c53ff972860065aa0b28a195f230163c1d46ee88bcc7a03e5539177d896457d8bc727de7f244c6e87032743038e
+  languageName: node
+  linkType: hard
+
+"chalk@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "chalk@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"
+  dependencies:
+    ansi-styles: ^4.1.0
+    supports-color: ^7.1.0
+  checksum: 4018b0c812880da595d0d7b8159939527b72f58d3370e2fdc1a24d9abd460bab851695d7eca014082f110d5702d1221b05493fec430ccce375de907d50cc48c1
+  languageName: node
+  linkType: hard
+
+"chalk@npm:^4.0.0":
+  version: 4.1.0
+  resolution: "chalk@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"
+  dependencies:
+    ansi-styles: ^4.1.0
+    supports-color: ^7.1.0
+  checksum: f860285b419f9e925c2db0f45ffa88aa8794c14b80cc5d01ff30930bcfc384996606362706f0829cf557f6d36152a5fb2d227ad63c4bc90e2ec9e9dbed4a3c07
+  languageName: node
+  linkType: hard
+
+"chokidar@npm:>=2.0.0 <4.0.0":
+  version: 3.4.1
+  resolution: "chokidar@npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"
+  dependencies:
+    anymatch: ~3.1.1
+    braces: ~3.0.2
+    fsevents: ~2.1.2
+    glob-parent: ~5.1.0
+    is-binary-path: ~2.1.0
+    is-glob: ~4.0.1
+    normalize-path: ~3.0.0
+    readdirp: ~3.4.0
+  dependenciesMeta:
+    fsevents:
+      optional: true
+  checksum: fdbeae89bdd7832acb0b7a5192b7d6ec1a81aff915609b0b6ff110e58fa211d793fed16ce41ccd9d4c6c7786db1b97cd88984bfe2b87303f04aa6bf0f31feaaa
+  languageName: node
+  linkType: hard
+
+"chokidar@npm:^2.1.8":
+  version: 2.1.8
+  resolution: "chokidar@npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"
+  dependencies:
+    anymatch: ^2.0.0
+    async-each: ^1.0.1
+    braces: ^2.3.2
+    fsevents: ^1.2.7
+    glob-parent: ^3.1.0
+    inherits: ^2.0.3
+    is-binary-path: ^1.0.0
+    is-glob: ^4.0.0
+    normalize-path: ^3.0.0
+    path-is-absolute: ^1.0.0
+    readdirp: ^2.2.1
+    upath: ^1.1.1
+  dependenciesMeta:
+    fsevents:
+      optional: true
+  checksum: 0758dcc7c6c7ace5924cf3c68088210932d391ab41026376b0adb8e07013ac87232e029f13468dfc9ca4dd59adae62a2b7eaedebb6c4e4f0ba92cbf3ac9e3721
+  languageName: node
+  linkType: hard
+
+"chownr@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "chownr@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"
+  checksum: b06ba0bf4218bc2214cdb94a7d0200db5c6425f9425795c064dcf5a3801aac8ae87f764727890cd1f48c026559159e7e0e15ed3d1940ce453dec54898d013379
+  languageName: node
+  linkType: hard
+
+"chrome-trace-event@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "chrome-trace-event@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"
+  dependencies:
+    tslib: ^1.9.0
+  checksum: 926fe23bc92e35c7fb666711c1dc1f342f289a728eb37d23bc4371df7587fe58152569eb57d657e2377f2e56093513939cab5a5a8f3589743938cc0b61527c02
+  languageName: node
+  linkType: hard
+
+"ci-info@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "ci-info@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"
+  checksum: 553fe83c085fce5e19e20f85b993f24a463e6f805803837a8868607bb68b1300567868694a5dff1beca6c54926a4c0be1cc9ef0c35f810653d590bf64183f6a0
+  languageName: node
+  linkType: hard
+
+"class-utils@npm:^0.3.5":
+  version: 0.3.6
+  resolution: "class-utils@npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"
+  dependencies:
+    arr-union: ^3.1.0
+    define-property: ^0.2.5
+    isobject: ^3.0.0
+    static-extend: ^0.1.1
+  checksum: 6411679ad4d2bde81b62ad721d4771d108d5d8ef32805d10ebfa6f1d6bdcfd5cb6dfea5232b85221f079e42691c36cf2db05a5e76b87ba8f6deb37a2c23a4a41
+  languageName: node
+  linkType: hard
+
+"classnames@npm:^2.2.6":
+  version: 2.2.6
+  resolution: "classnames@npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"
+  checksum: 490eaeca5931846737ffd33e472a701d268d5b8bc5717dd4cf108a127b06e86e05350e06799abbbe763a0e4c945b4217f6700b7ae00ddc703505682c370e5cf2
+  languageName: node
+  linkType: hard
+
+"clean-css@npm:^4.2.3":
+  version: 4.2.3
+  resolution: "clean-css@npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"
+  dependencies:
+    source-map: ~0.6.0
+  checksum: a60f7800828ea7a6b8315c3c855d700c59cf9e45e88a88e73c7fff12ee316a4afcbca1041b14453c8020f57de72ebf3d0ed6250f306faea83f5e05ee90a4c67a
+  languageName: node
+  linkType: hard
+
+"clean-stack@npm:^2.0.0":
+  version: 2.2.0
+  resolution: "clean-stack@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"
+  checksum: e291ce2b8c8c59e6449ac9a7a726090264bea6696e5343b21385e16d279c808ca09d73a1abea8fd23a9b7699e6ef5ce582df203511f71c8c27666bf3b2e300c5
+  languageName: node
+  linkType: hard
+
+"clean-webpack-plugin@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "clean-webpack-plugin@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"
+  dependencies:
+    "@types/webpack": ^4.4.31
+    del: ^4.1.1
+  peerDependencies:
+    webpack: "*"
+  checksum: fc0fbd1c8e163b784209d51a5df4336ad359737f8b324697d33d1c484ee5c7efee9a1f9f18786860216019764f4a6e02e329e0410e3ab4d52e5e5b52a1038dfe
+  languageName: node
+  linkType: hard
+
+"clipanion@npm:^2.6.2":
+  version: 2.6.2
+  resolution: "clipanion@npm:2.6.2"
+  checksum: d162deedd0bd297f0881ef2814cf00409d2c67383589345cf8ae0ae6d9eee2e7235313b392dd3ec9df85490e4875dd52c085997e4161a6c8aa4ec0a2c78f8f36
+  languageName: node
+  linkType: hard
+
+"cliui@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "cliui@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"
+  dependencies:
+    string-width: ^3.1.0
+    strip-ansi: ^5.2.0
+    wrap-ansi: ^5.1.0
+  checksum: 25e61dc985279bd7ec16715df53288346e5c36ff43956f7de31bf55b2432ce1259e75148b28c3ed41265caf1baee1d204363c429ae5fee54e6f78bed5a5d82b3
+  languageName: node
+  linkType: hard
+
+"clone-response@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "clone-response@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"
+  dependencies:
+    mimic-response: ^1.0.0
+  checksum: 71832f9219f2682b0915bdbc0dd187ba8e63d16b0af5342b44f97b34afe9400a1f528a253dd2f70a8dd8b23bfa4c4e106928fcc520fa5899d769af95e4cce53c
+  languageName: node
+  linkType: hard
+
+"clsx@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "clsx@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"
+  checksum: d8ae10ac0546da19fe8c9516886f6582a64a382cf4d09ea7d36d5287cafbdab1192ab249adc2cdf0310e0b0aeac4f4142cf7c738c98d9cb68c19ba24b6f673d5
+  languageName: node
+  linkType: hard
+
+"code-point-at@npm:^1.0.0":
+  version: 1.1.0
+  resolution: "code-point-at@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"
+  checksum: 7d9837296e0f1c00239c88542f5a3e0bad11e45d3d0e8d9d097901fe54722dd5d2c006969077a287be8648a202c43f74e096f17552cbd897568308fba7b87ac0
+  languageName: node
+  linkType: hard
+
+"collection-visit@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "collection-visit@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"
+  dependencies:
+    map-visit: ^1.0.0
+    object-visit: ^1.0.0
+  checksum: c73cb1316c29f4b175198dba417f759e6b50ca3f312e42f4f451c2a38cc8e3e292e1fec60d9ccbada35fbc22805a1d897d3bc37fd88fbfe8ab509e4ede88c386
+  languageName: node
+  linkType: hard
+
+"color-convert@npm:^1.9.0":
+  version: 1.9.3
+  resolution: "color-convert@npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"
+  dependencies:
+    color-name: 1.1.3
+  checksum: 5f244daa3d1fe1f216d48878c550465067d15268688308554e613b7640a068f96588096d51f0b98b68f15d6ff6bb8ad24e172582ac8c0ad43fa4d3da60fd1b79
+  languageName: node
+  linkType: hard
+
+"color-convert@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "color-convert@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"
+  dependencies:
+    color-name: ~1.1.4
+  checksum: 3d5d8a011a43012ca11b6d739049ecf2055d95582fd16ec44bf1e685eb0baa5cc652002be8a1dc92b429c8d87418287d0528266a7595cb1ad8a7f4f1d3049df2
+  languageName: node
+  linkType: hard
+
+"color-name@npm:1.1.3":
+  version: 1.1.3
+  resolution: "color-name@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"
+  checksum: d8b91bb90aefc05b6ff568cf8889566dcc6269824df6f3c9b8ca842b18d7f4d089c07dc166808d33f22092d4a79167aa56a96a5ff0d21efab548bf44614db43b
+  languageName: node
+  linkType: hard
+
+"color-name@npm:~1.1.4":
+  version: 1.1.4
+  resolution: "color-name@npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"
+  checksum: 3e1c9a4dee12eada307436f61614dd11fe300469db2b83f80c8b7a7cd8a1015f0f18dd13403f018927b249003777ff60baba4a03c65f12e6bddc0dfd9642021f
+  languageName: node
+  linkType: hard
+
+"colorette@npm:^1.2.1":
+  version: 1.2.1
+  resolution: "colorette@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"
+  checksum: 1cc21ad4b84777a424794f78b6bb6a44b614ae17dcea91762199339f8047598e6d981249eeef7ea588c99eaf062be8fcdcd4866c112998922ed854db6dde96f9
+  languageName: node
+  linkType: hard
+
+"colors@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "colors@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"
+  checksum: a0f266ac041a9774d92cc9624a984707678d2eeec125d54e8d8231075ce36c24c5352fb5d0f90c6ee420d0f63e354417cec716386ad341309334aad18e32b933
+  languageName: node
+  linkType: hard
+
+"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6":
+  version: 1.0.8
+  resolution: "combined-stream@npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"
+  dependencies:
+    delayed-stream: ~1.0.0
+  checksum: 5791ce7944530f0db74a97e77ea28b6fdbf89afcf038e41d6b4195019c4c803cd19ed2905a54959e5b3830d50bd5d6f93c681c6d3aaea8614ad43b48e62e9d65
+  languageName: node
+  linkType: hard
+
+"command-line-usage@npm:^6.1.0":
+  version: 6.1.0
+  resolution: "command-line-usage@npm:6.1.0"
+  dependencies:
+    array-back: ^4.0.0
+    chalk: ^2.4.2
+    table-layout: ^1.0.0
+    typical: ^5.2.0
+  checksum: c49e5f4a6780ee42dfeb537a1331715b1f6e52d4529ea8ebad45b2fc882b40a82815df38cf36147a308d2d8698f132374ae7af2c43d03aa7c1e51cffbdfe5206
+  languageName: node
+  linkType: hard
+
+"commander@npm:^2.20.0":
+  version: 2.20.3
+  resolution: "commander@npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"
+  checksum: b73428e97de7624323f81ba13f8ed9271de487017432d18b4da3f07cfc528ad754bbd199004bd5d14e0ccd67d1fdfe0ec8dbbd4c438b401df3c4cc387bfd1daa
+  languageName: node
+  linkType: hard
+
+"commander@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "commander@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"
+  checksum: 448585071bf8fb4c0bf9dd52abaee43dea086f801334caec2c8e8c9f456f8abc224c1614ccbbdbf7da5ac2524d230f13cf1fc86c233cf8a041ebecea7df106e9
+  languageName: node
+  linkType: hard
+
+"commander@npm:^6.0.0":
+  version: 6.2.0
+  resolution: "commander@npm:6.2.0"
+  checksum: c78501cd98e6ad66839004adc27940f5fc1a0102b306fbbc177965101d586cf6dd2e01bdffd64f99f2d4862101f24e602e3e4baa641b6f6a11c01ec5c900e412
+  languageName: node
+  linkType: hard
+
+"comment-json@npm:^2.2.0":
+  version: 2.4.2
+  resolution: "comment-json@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"
+  dependencies:
+    core-util-is: ^1.0.2
+    esprima: ^4.0.1
+    has-own-prop: ^2.0.0
+    repeat-string: ^1.6.1
+  checksum: 80bc181741f7966946e09ba253e97a4709288acb65e8b30e641efbca0a1a2c79f31d4df6cd1412a17ddb3d1289f552ec13e1d3f983b42ac84de6344fd062cf3d
+  languageName: node
+  linkType: hard
+
+"common-tags@npm:^1.8.0":
+  version: 1.8.0
+  resolution: "common-tags@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"
+  checksum: f37a868d868929cf345fe49c4122efde693f9b06bf5764df36c3bdf5d3c271a24bb3fb6fbfaeec1f29768e60ad648cc11a4092c91bac05a8bde90ddbf5aae1a8
+  languageName: node
+  linkType: hard
+
+"commondir@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "commondir@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"
+  checksum: 98f18ad14f0ea38e0866db365bc8496f2a74250cf47ec96b94913e1b0574c99b4ff837a9f05dbc68d82505fd06b52dfba4f6bbe6fbda43094296cfaf33b475a0
+  languageName: node
+  linkType: hard
+
+"component-emitter@npm:^1.2.1":
+  version: 1.3.0
+  resolution: "component-emitter@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"
+  checksum: fc4edbf1014f0aed88dcec33ca02d2938734e428423f640d8a3f94975615b8e8c506c19e29b93949637c5a281353e75fa79e299e0d57732f42a9fe346cb2cad6
+  languageName: node
+  linkType: hard
+
+"compressible@npm:~2.0.16":
+  version: 2.0.18
+  resolution: "compressible@npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"
+  dependencies:
+    mime-db: ">= 1.43.0 < 2"
+  checksum: 8ac178b6ef4f72adc51e495f23f7212a4764395dde24e476046cca1db988859eef96453e11563bcf40d1bf74469cdd7db29539fd4ac553577d9812d3f112fada
+  languageName: node
+  linkType: hard
+
+"compression@npm:^1.7.4":
+  version: 1.7.4
+  resolution: "compression@npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"
+  dependencies:
+    accepts: ~1.3.5
+    bytes: 3.0.0
+    compressible: ~2.0.16
+    debug: 2.6.9
+    on-headers: ~1.0.2
+    safe-buffer: 5.1.2
+    vary: ~1.1.2
+  checksum: 8f5356777088492755e40a506acb35af7de9e99b3efcaba9d60dbdf4b61cb2f817a1100015da06f6ca8dea8f4cd015b91c27f02b562e2f66750329b9104dfeb1
+  languageName: node
+  linkType: hard
+
+"concat-map@npm:0.0.1":
+  version: 0.0.1
+  resolution: "concat-map@npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"
+  checksum: 554e28d9ee5aa6e061795473ee092cb3d3a2cbdb76c35416e0bb6e03f136d7d07676da387b2ed0ec4106cedbb6534080d9abc48ecc4a92b76406cf2d0c3c0c4b
+  languageName: node
+  linkType: hard
+
+"connect-history-api-fallback@npm:^1.6.0":
+  version: 1.6.0
+  resolution: "connect-history-api-fallback@npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"
+  checksum: 298f60415d5f5480b76f98d8bf83737cae9f05921e3d3479452cae34ed3498fab35a1c4c8f19ca5b327bbbe759098f5f6e5fc097d829f607d0d642b075c93e21
+  languageName: node
+  linkType: hard
+
+"console-control-strings@npm:^1.0.0, console-control-strings@npm:~1.1.0":
+  version: 1.1.0
+  resolution: "console-control-strings@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"
+  checksum: 58a404d951bf270494fb91e136cf064652c1208ccedac23e4da24e6a3a3933998f302cadc45cbf6582a007a4aa44dab944e84056b24e3b1964e9a28aeedf76c9
+  languageName: node
+  linkType: hard
+
+"contains-path@npm:^0.1.0":
+  version: 0.1.0
+  resolution: "contains-path@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"
+  checksum: 59920a59a0c7d1244235d76b8cfd2b2e7a8dcc463fa578ef9d4d5a5a73eeb14d75dada6b21188e0b35f2474ae9efd10c3698372e674db9c6a904b281998b97d6
+  languageName: node
+  linkType: hard
+
+"content-disposition@npm:0.5.3":
+  version: 0.5.3
+  resolution: "content-disposition@npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"
+  dependencies:
+    safe-buffer: 5.1.2
+  checksum: 8f1f235c0423be68023df7f5a3948601d859ce44ee94e1d0fa2a97383bd469e789320b6ddf6f31b3620605c75cf771522df11386f51aff401e5d51b6ccfde3e2
+  languageName: node
+  linkType: hard
+
+"content-type@npm:~1.0.4":
+  version: 1.0.4
+  resolution: "content-type@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"
+  checksum: ff6e19cbf281c23d5608723a6dc60ac97e2280bd4d21602511283112321e6c1555895e395555e367672b54a0f1585276284b7c3c8be313aca73902ac2f2609fd
+  languageName: node
+  linkType: hard
+
+"convert-source-map@npm:^1.7.0":
+  version: 1.7.0
+  resolution: "convert-source-map@npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"
+  dependencies:
+    safe-buffer: ~5.1.1
+  checksum: b10fbf041e3221c65e1ab67f05c8fcbad9c5fd078c62f4a6e05cb5fddc4b5a0e8a17c6a361c6a44f011b1a0c090b36aa88543be9dfa65da8c9e7f39c5de2d4df
+  languageName: node
+  linkType: hard
+
+"cookie-signature@npm:1.0.6":
+  version: 1.0.6
+  resolution: "cookie-signature@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"
+  checksum: 305054e102eebd0a483c63aefdc3abf54a9471bed5eb12be56c0dcf35a94110b8a13139b27751ab07a5ef09e9f4190ee67f71e9d3acf1748e6e2f1aed338c987
+  languageName: node
+  linkType: hard
+
+"cookie@npm:0.4.0":
+  version: 0.4.0
+  resolution: "cookie@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"
+  checksum: 7aaef4b642c533600fdd001d963a507dfcd814267503374e51d9743475d024feeff8b0b4ddd0777a25791a2efbdfd8bc4a0fe0696104efa195e8f8584807d410
+  languageName: node
+  linkType: hard
+
+"copy-descriptor@npm:^0.1.0":
+  version: 0.1.1
+  resolution: "copy-descriptor@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"
+  checksum: c052cf571ff6b69b604607a3d41f03cb742af9472026013e690ab33e1bef5e64930c53a5f881dc79c7e4f5ccc3cea0ebb9f420315d3690989329088976b68ee9
+  languageName: node
+  linkType: hard
+
+"copy-webpack-plugin@npm:^6.2.1":
+  version: 6.2.1
+  resolution: "copy-webpack-plugin@npm:6.2.1"
+  dependencies:
+    cacache: ^15.0.5
+    fast-glob: ^3.2.4
+    find-cache-dir: ^3.3.1
+    glob-parent: ^5.1.1
+    globby: ^11.0.1
+    loader-utils: ^2.0.0
+    normalize-path: ^3.0.0
+    p-limit: ^3.0.2
+    schema-utils: ^3.0.0
+    serialize-javascript: ^5.0.1
+    webpack-sources: ^1.4.3
+  peerDependencies:
+    webpack: ^4.37.0 || ^5.0.0
+  checksum: 99ef83b4237b51e95618365ad2e62775b640fe1cae0d39d3ab03bcb09c9026a00ab0fb1c03f72d164c1457482114ddf959e7a03ab409704f34686e0a64ee4a31
+  languageName: node
+  linkType: hard
+
+"core-js-compat@npm:^3.6.2":
+  version: 3.6.5
+  resolution: "core-js-compat@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"
+  dependencies:
+    browserslist: ^4.8.5
+    semver: 7.0.0
+  checksum: b263b5313f5b10807cbe2037bcff1d0abc3611d8600ca29a742695eb21411f76a8c762db00a04d684a3f80645252aeb74b24542c157ec24697edd3ae7afcce87
+  languageName: node
+  linkType: hard
+
+"core-js-pure@npm:^3.0.0":
+  version: 3.6.5
+  resolution: "core-js-pure@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"
+  checksum: 91fc8e0b699d5bcb11f265ad4544d08c98096b86ad6c9b4c00109616db0aa992ceb58ea82d0dbae2a16658a7aaf2922aa6f9fc1107dc3b0055270799d0414a3f
+  languageName: node
+  linkType: hard
+
+"core-js@npm:^2.4.0":
+  version: 2.6.11
+  resolution: "core-js@npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"
+  checksum: 39ad00b46deaecf344470ef940949b58c4b15e71608a98e8ac7429cd16e485b829f9720d44a44b5f4dee966ff04a18baf5283feb8aaba2cb59ce2c25fa72b88c
+  languageName: node
+  linkType: hard
+
+"core-js@npm:^3.6.5":
+  version: 3.6.5
+  resolution: "core-js@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"
+  checksum: 9283348dd5be2f1d07feaf90e2336b3f00a2316e3d3c6d4f789c9a67bdd4d7b08ce1c88dca4e591340130056c6b412b0b74fae039f8e259206f1073f542e4e85
+  languageName: node
+  linkType: hard
+
+"core-util-is@npm:1.0.2, core-util-is@npm:^1.0.2, core-util-is@npm:~1.0.0":
+  version: 1.0.2
+  resolution: "core-util-is@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"
+  checksum: 089015ee3c462dfceba70faa1df83b42a7bb35db26dae6af283247b06fe3216c65fccd9f00eebcaf98300dc31e981d56aae9f90b624f8f6ff1153e235ff88b65
+  languageName: node
+  linkType: hard
+
+"corser@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "corser@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"
+  checksum: 5af366b3eacfe1e6a0475e65afd30527a39d0b44c62a8889be0e9204399c22f0462acbec5db04e2ad4ed506b05273668a65688c6e6ebfbcc507a4097592698c2
+  languageName: node
+  linkType: hard
+
+"cosmiconfig@npm:^7.0.0":
+  version: 7.0.0
+  resolution: "cosmiconfig@npm:7.0.0"
+  dependencies:
+    "@types/parse-json": ^4.0.0
+    import-fresh: ^3.2.1
+    parse-json: ^5.0.0
+    path-type: ^4.0.0
+    yaml: ^1.10.0
+  checksum: 151fcb91773c0ae826fc801eab86f8f818605dbf63c8e5515adf0ff0fec5ede8e614f387f93c088d65527a2ea9021f0cd8c6b6e5c7fef2b77480b5e2c33700dc
+  languageName: node
+  linkType: hard
+
+"cross-spawn@npm:7.0.3, cross-spawn@npm:^7.0.0":
+  version: 7.0.3
+  resolution: "cross-spawn@npm:7.0.3"
+  dependencies:
+    path-key: ^3.1.0
+    shebang-command: ^2.0.0
+    which: ^2.0.1
+  checksum: 51f10036f5f1de781be98f4738d58b50c6d44f4f471069b8ab075b21605893ba1548654880f7310a29a732d6fc7cd481da6026169b9f0831cab0148a62fb397a
+  languageName: node
+  linkType: hard
+
+"cross-spawn@npm:^6.0.0":
+  version: 6.0.5
+  resolution: "cross-spawn@npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"
+  dependencies:
+    nice-try: ^1.0.4
+    path-key: ^2.0.1
+    semver: ^5.5.0
+    shebang-command: ^1.2.0
+    which: ^1.2.9
+  checksum: 05fbbf957d9b81dc05fd799a238f6aacc2e7cc9783fff3f0e00439a97d6f269c90482571cbf1eeea17200fd119161a2d1f88aa49a8110b176e04f2a70825284f
+  languageName: node
+  linkType: hard
+
+"cross-spawn@npm:^7.0.2":
+  version: 7.0.3
+  resolution: "cross-spawn@npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"
+  dependencies:
+    path-key: ^3.1.0
+    shebang-command: ^2.0.0
+    which: ^2.0.1
+  checksum: 51f10036f5f1de781be98f4738d58b50c6d44f4f471069b8ab075b21605893ba1548654880f7310a29a732d6fc7cd481da6026169b9f0831cab0148a62fb397a
+  languageName: node
+  linkType: hard
+
+"crypto-random-string@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "crypto-random-string@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"
+  checksum: 0876b316ccf6f501d0deda42507adcfff276790eba38ab87ba4a7f77e1f11404f406fa36a8c273e781c9eabbbe5da4eab4d7577ca1e84dcac556743ffc816af5
+  languageName: node
+  linkType: hard
+
+"css-blank-pseudo@npm:^0.1.4":
+  version: 0.1.4
+  resolution: "css-blank-pseudo@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"
+  dependencies:
+    postcss: ^7.0.5
+  bin:
+    css-blank-pseudo: cli.js
+  checksum: 605927ba911aa22820de56db3ce5760a7d8936834447c5e30e20f63f141a8787920a0aa8dd7fdde97823ee0619e76e003a6e66f2ff299d49e8574b12ed300a7f
+  languageName: node
+  linkType: hard
+
+"css-has-pseudo@npm:^0.10.0":
+  version: 0.10.0
+  resolution: "css-has-pseudo@npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"
+  dependencies:
+    postcss: ^7.0.6
+    postcss-selector-parser: ^5.0.0-rc.4
+  bin:
+    css-has-pseudo: cli.js
+  checksum: 8bfb4c7d426f4b0b660d1a72ed0c652fd58b3b2203f629ebffcb2bdc278e2e9de2319fe3bddde9f0d2de3d7cb42f0905f5de49802bd9a40f512fd782013eb7b9
+  languageName: node
+  linkType: hard
+
+"css-loader@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "css-loader@npm:5.0.0"
+  dependencies:
+    camelcase: ^6.1.0
+    cssesc: ^3.0.0
+    icss-utils: ^5.0.0
+    loader-utils: ^2.0.0
+    postcss: ^8.1.1
+    postcss-modules-extract-imports: ^3.0.0
+    postcss-modules-local-by-default: ^4.0.0
+    postcss-modules-scope: ^3.0.0
+    postcss-modules-values: ^4.0.0
+    postcss-value-parser: ^4.1.0
+    schema-utils: ^3.0.0
+    semver: ^7.3.2
+  peerDependencies:
+    webpack: ^4.27.0 || ^5.0.0
+  checksum: 8b0d45e2011d09ba91fd6d200f07ee7206104e676a84c7a01f9c7d6b7515e9b882b44a290f44002d4624d8252d9b06303f0a5c0e1885c43238ad84482e5efb51
+  languageName: node
+  linkType: hard
+
+"css-mediaquery@npm:^0.1.2":
+  version: 0.1.2
+  resolution: "css-mediaquery@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"
+  checksum: 571ab2efdba0dead1315eb82b1e53917b4aeb45f07cc2ff97bfe3c6443cd036843d944044661561b5585d1f64ecbcad112052b40846ae4d85ef7d5e978e996e4
+  languageName: node
+  linkType: hard
+
+"css-prefers-color-scheme@npm:^3.1.1":
+  version: 3.1.1
+  resolution: "css-prefers-color-scheme@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"
+  dependencies:
+    postcss: ^7.0.5
+  bin:
+    css-prefers-color-scheme: cli.js
+  checksum: 3ef06a7a427658f1ac0772d253990a70748d9f19e0e5b92d26430b3522f982a38195df79fd3d1eb45241a35d0f253d7a36e295a6a91d130d2ea45e90363ba8f8
+  languageName: node
+  linkType: hard
+
+"css-select@npm:^1.1.0":
+  version: 1.2.0
+  resolution: "css-select@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"
+  dependencies:
+    boolbase: ~1.0.0
+    css-what: 2.1
+    domutils: 1.5.1
+    nth-check: ~1.0.1
+  checksum: c1fdd9040c677cd872e57761aafce8b603fa3c979117cc9d70e0e4901d6e0c751abe3b05b93d918835413165916d7f7132559a6f350863124f6bbbec2b1694d8
+  languageName: node
+  linkType: hard
+
+"css-what@npm:2.1":
+  version: 2.1.3
+  resolution: "css-what@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"
+  checksum: 732fcecfe3247eadd79081790934f9aa003ca935657d87a4737afc03dc378f8f3d1a071066328a226d98299d15e855c886f625119fe1d7f2367659d3335bde6f
+  languageName: node
+  linkType: hard
+
+"cssdb@npm:^4.4.0":
+  version: 4.4.0
+  resolution: "cssdb@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"
+  checksum: 457af51749239fccace2760bc9e49a211d72a992dde98f6b737cd9bebe44da3da323a96835cb3d7c48927c491e940d6985ba345da9a9467581242152745d9659
+  languageName: node
+  linkType: hard
+
+"cssesc@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "cssesc@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"
+  bin:
+    cssesc: bin/cssesc
+  checksum: f32fabda44dbedacb03a1b393579696594effce89da0a3dd2614ce827b803e4fdf747031bb0bd72784d5558fa077211cddfb20a3dc1326815810b301cb7baab6
+  languageName: node
+  linkType: hard
+
+"cssesc@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "cssesc@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"
+  bin:
+    cssesc: bin/cssesc
+  checksum: 673783eda1f89af3faefc0e4b833f40621f484ce102a23396e7a65cc4c42798bd91ee3656c8b04a0a5ca38d40ada5bc8663e4541c380a7a81af2de5b2322e443
+  languageName: node
+  linkType: hard
+
+"csstype@npm:^2.2.0":
+  version: 2.6.11
+  resolution: "csstype@npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"
+  checksum: b5de145e845a416006d870c8005807922ee23cb72f9427c2c1e3e7df9f7f2996ef32aa2f12456477a47966eabbd7a9a5baa668588ff6c6a19546ada77ad09edf
+  languageName: node
+  linkType: hard
+
+"csstype@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "csstype@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"
+  checksum: acf2852a3c5f5e1ed84e36526e41584e09353ee57b9bd93bf17f91bd2be60545adaf86c4439b84952d1f596149e06f9da6bb28c1d1ab883c9b2ad68e143e79f4
+  languageName: node
+  linkType: hard
+
+"dashdash@npm:^1.12.0":
+  version: 1.14.1
+  resolution: "dashdash@npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"
+  dependencies:
+    assert-plus: ^1.0.0
+  checksum: 5959409ee42dc4bdbf3fa384b801ece580ca336658bb0342ffab0099b3fc6bf9b3e239e1b82dcc4fcaeee315353e08f2eae47b0928a6a579391598c44958afa1
+  languageName: node
+  linkType: hard
+
+"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9":
+  version: 2.6.9
+  resolution: "debug@npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"
+  dependencies:
+    ms: 2.0.0
+  checksum: 559f44f98cf25e2ee489022aec173afbff746564cb108c4493becb95bc3c017a67bdaa25a0ff64801fd32c35051d00af0e56cc7f762ae2c3bc089496e5a1c31b
+  languageName: node
+  linkType: hard
+
+"debug@npm:=3.1.0":
+  version: 3.1.0
+  resolution: "debug@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"
+  dependencies:
+    ms: 2.0.0
+  checksum: 1295acd5e0531761255661d325cd0a80ac8c5f6de8942a53bb23c2197ccb97526972de662ed0e5d9393be83f3428a298a6e7185ecb02f0da6282019cd2ffb4a8
+  languageName: node
+  linkType: hard
+
+"debug@npm:^3.1.1, debug@npm:^3.2.5":
+  version: 3.2.6
+  resolution: "debug@npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"
+  dependencies:
+    ms: ^2.1.1
+  checksum: 619feb53b115f1a8341365b8aa58a8757e6632738587d4b61b25627b74891211cb20e31fdbea37fec766e575a60cf456f7a02d6f9eddfdcef80caa6a4b0fc042
+  languageName: node
+  linkType: hard
+
+"debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1":
+  version: 4.2.0
+  resolution: "debug@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"
+  dependencies:
+    ms: 2.1.2
+  peerDependencies:
+    supports-color: "*"
+  peerDependenciesMeta:
+    supports-color:
+      optional: true
+  checksum: dcfb8ede26b4d899628a75806923ab9ad29daae7db0f6f1ca6227b660693ae0ca085c7f87261793abe0832ad56aff2afc33f907c6b5dc96a41fc208771feb465
+  languageName: node
+  linkType: hard
+
+"decamelize@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "decamelize@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"
+  checksum: 8ca9d03ea8ac07920f4504e219d18edff2491bdd0a3e05a1e5ca2e9a0bf6333564231de3528b01d5e76c40a38c37bbc1e09cb5a0424714f53dd615ed78ced464
+  languageName: node
+  linkType: hard
+
+"decode-uri-component@npm:^0.2.0":
+  version: 0.2.0
+  resolution: "decode-uri-component@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"
+  checksum: d8cb28c33f7b0a70b159b5fa126aee821ba090396689bd46ad2c423c3a658c504d2743ab18060fd5ed1cae5377bdd3632760a8e98ba920ff49637d43dc6a9687
+  languageName: node
+  linkType: hard
+
+"decompress-response@npm:^6.0.0":
+  version: 6.0.0
+  resolution: "decompress-response@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"
+  dependencies:
+    mimic-response: ^3.1.0
+  checksum: bb8b8c42be7767994764d27f91a3949e3dc9008da82f1aaeab1de40f1ebb50d7abf17b31b2e4000f8d267a1e75f76052efd58d4419124c04bf430e184c164fad
+  languageName: node
+  linkType: hard
+
+"deep-equal@npm:^1.0.1":
+  version: 1.1.1
+  resolution: "deep-equal@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"
+  dependencies:
+    is-arguments: ^1.0.4
+    is-date-object: ^1.0.1
+    is-regex: ^1.0.4
+    object-is: ^1.0.1
+    object-keys: ^1.1.1
+    regexp.prototype.flags: ^1.2.0
+  checksum: cc6a0009ce73a10230758d50795211fb3ceb7eb7f2cf8baed1c4a4cb2a06dc28857ce11e641c95ca9abb5edc1f1e86a4bb6bcffaadf9fe9d310c102d346d043b
+  languageName: node
+  linkType: hard
+
+"deep-extend@npm:~0.6.0":
+  version: 0.6.0
+  resolution: "deep-extend@npm:0.6.0"
+  checksum: 856d7f52db152c19fc5a70439ea938461cfb9338a632496fe370050dc73d3291cd76fc6713f604a5c126612dee9cac0f6da1d4b88ba4b0caa4f7214345879b89
+  languageName: node
+  linkType: hard
+
+"deep-is@npm:^0.1.3":
+  version: 0.1.3
+  resolution: "deep-is@npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"
+  checksum: 3de58f86af4dec86c8be531a5abaf2e6d8ea98fa2f1d81a3a778d0d8df920ee282043a6ef05bfb4eb699c8551df9ac1b808d4dc71d54cc40ab1efa5ce8792943
+  languageName: node
+  linkType: hard
+
+"deepmerge@npm:^1.5.2":
+  version: 1.5.2
+  resolution: "deepmerge@npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"
+  checksum: 5c44bd09ed12abe023d0358208dfc4cc4ec85287891bcbb8659a43faeb44a87c65d0c5b892bd99e32e837614adf4b591a07bf1ef76e3b0d04c8461500cf55d17
+  languageName: node
+  linkType: hard
+
+"default-gateway@npm:^4.2.0":
+  version: 4.2.0
+  resolution: "default-gateway@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"
+  dependencies:
+    execa: ^1.0.0
+    ip-regex: ^2.1.0
+  checksum: 5d92439d573a261d850f6205fcc6541ec57378dec2032f3c7d0a18c7f9222f88f7ff4997bfff17607850b8fce6cdf3fb1c231bc43bf5e2bd6bbce3b733082add
+  languageName: node
+  linkType: hard
+
+"defer-to-connect@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "defer-to-connect@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"
+  checksum: 0453938bfce1c866263d0a4732ade8d69b1a39e27e073d3fbae9e0cc1c6a15a422c2fe5f90320465312ace6a01dbed4a2836755ac2a9519555e82d65141eabdc
+  languageName: node
+  linkType: hard
+
+"define-properties@npm:^1.1.2, define-properties@npm:^1.1.3":
+  version: 1.1.3
+  resolution: "define-properties@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"
+  dependencies:
+    object-keys: ^1.0.12
+  checksum: b69c48c1b1dacb61f0b1cea367707c3bb214e3c47818aff18e6f20a7f88cbfa33d4cbdfd9ff79e56faba95ddca3d78ff10fbf2f02ecfad6f3e13b256e76b1212
+  languageName: node
+  linkType: hard
+
+"define-property@npm:^0.2.5":
+  version: 0.2.5
+  resolution: "define-property@npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"
+  dependencies:
+    is-descriptor: ^0.1.0
+  checksum: 6fed0540727ca8ea1f5eacddf24bf9e8c212c07f638ef0cd743caa69647f0421cd72a17b466d4c378c5c0f232ad756fa92b90f8e1d975ddfec388dc6306e3583
+  languageName: node
+  linkType: hard
+
+"define-property@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "define-property@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"
+  dependencies:
+    is-descriptor: ^1.0.0
+  checksum: 9034f8f6f3128945374349262e4f97b53e9582f9e3435bedb284c5210c45a98b355d40a42a570766add34a604d97b6ff0773bfd122f891a289009a1b82cc0eee
+  languageName: node
+  linkType: hard
+
+"define-property@npm:^2.0.2":
+  version: 2.0.2
+  resolution: "define-property@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"
+  dependencies:
+    is-descriptor: ^1.0.2
+    isobject: ^3.0.1
+  checksum: 00c7ec53b5040507016736922a9678b3247bc85e0ea0429e47d6ca6a993890f9dc338fb19d5bf6f8c0ca29016a68aa7e7da5c35d4ed8b3646347d86a3b2b4b01
+  languageName: node
+  linkType: hard
+
+"del@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "del@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"
+  dependencies:
+    "@types/glob": ^7.1.1
+    globby: ^6.1.0
+    is-path-cwd: ^2.0.0
+    is-path-in-cwd: ^2.0.0
+    p-map: ^2.0.0
+    pify: ^4.0.1
+    rimraf: ^2.6.3
+  checksum: 87eecb2af52e794f8d9c8d200a31e0032cec8c255f08a97ef28be771bf561f16023746f2329d7b436e0a1fe09abafe80a25b2546131aa809cbd9a6bf49220cf3
+  languageName: node
+  linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "delayed-stream@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"
+  checksum: d9dfb0a7c79fd308fada9db2cf29d1ff22047ceb50dd78f7e3c173567909b438f418259cb76a6d9c9f513e88ef41d3a14154f618741ec8368c3efeff616d0c9f
+  languageName: node
+  linkType: hard
+
+"delegates@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "delegates@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"
+  checksum: 7459e34d29cadd9bfd340728bfcc70ea96da5d940fb197298b523f805822680e583cba3ec34d36a18004325f1ec9de55e202a92b414d01db18cd87bb8a2ae5bd
+  languageName: node
+  linkType: hard
+
+"depd@npm:~1.1.2":
+  version: 1.1.2
+  resolution: "depd@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"
+  checksum: f45566ff7019a346852f095768a380778ed544de24e103b479fd5d3e61982d670efbb5234c09d0588d7fdb09c26c48283d7150e4be5e6ce5d3d37cd268d75c4d
+  languageName: node
+  linkType: hard
+
+"destroy@npm:~1.0.4":
+  version: 1.0.4
+  resolution: "destroy@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"
+  checksum: 5a516fc5a8a8089eecdac11da2339353542be7a71102dc5a1372ef6161501bf5c1ee59ff9f8a3f5f14cc8c88594d606f855f816d46a228ee5e0e5cb2b543534b
+  languageName: node
+  linkType: hard
+
+"detect-node@npm:^2.0.4":
+  version: 2.0.4
+  resolution: "detect-node@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"
+  checksum: e7648a5a91dd5e91838d14f0e9631f2adf0117cc271ea86d8ce394a8fbe8fc7545755c8261faaf4b1e196795a10da99e5d5f1013163ba0f6260a57b0ba29cc60
+  languageName: node
+  linkType: hard
+
+"diff@npm:^4.0.1":
+  version: 4.0.2
+  resolution: "diff@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"
+  checksum: 81b5cd7ddde6f0ba2a532d434cfdca365aedd6cc62bb133e851e66e071d40382a30924a07c1034bd3d5a2e332146f64514b73c06fe2ebc0490a67f0c98da79fb
+  languageName: node
+  linkType: hard
+
+"dir-glob@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "dir-glob@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"
+  dependencies:
+    path-type: ^4.0.0
+  checksum: 687fa3bd604f264042f325d9460e1298447fb32782f30cddc47cb302b742684d13e8ffce4c6f455e0ae92099d71e29f72387379c10b8fd3f6f1bf8992d7c0997
+  languageName: node
+  linkType: hard
+
+"dns-equal@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "dns-equal@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"
+  checksum: 096be3c1a742c7c5bdcd39836f70cb060f4c453f0f48cae1830bf011813387912f97da34d247570b5ec547c61c404f06657a0092297f38d797b22a10b5801bfe
+  languageName: node
+  linkType: hard
+
+"dns-packet@npm:^1.3.1":
+  version: 1.3.1
+  resolution: "dns-packet@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"
+  dependencies:
+    ip: ^1.1.0
+    safe-buffer: ^5.0.1
+  checksum: cb7bb4e8fb25460fcde192273f0c95ce91a9f780a7f3a49ae835cd2fd7f0fcc1bb870ef0141ebb9eca8de9c545293291d1a4c978a754adbb93a84dcee9623bd9
+  languageName: node
+  linkType: hard
+
+"dns-txt@npm:^2.0.2":
+  version: 2.0.2
+  resolution: "dns-txt@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"
+  dependencies:
+    buffer-indexof: ^1.0.0
+  checksum: 62d4b87b09421f813dd03eb17866cb307e278555475b25752396d3e5c7e63b9f0f64ab5b41edeb755cb52d722600a89977d36c64a94d02ed92c32e44a8b849f2
+  languageName: node
+  linkType: hard
+
+"doctrine@npm:1.5.0":
+  version: 1.5.0
+  resolution: "doctrine@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"
+  dependencies:
+    esutils: ^2.0.2
+    isarray: ^1.0.0
+  checksum: aaffea02f963b8b07a78b1e27d7cef29be65d31be2c6681cb2872c2fb3781e14615bd05d4dff6036f75dcf3f191216058409fbfec805d3a7277a8647cd5bdee1
+  languageName: node
+  linkType: hard
+
+"doctrine@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "doctrine@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"
+  dependencies:
+    esutils: ^2.0.2
+  checksum: 4aa55e46757cc11bff8efa67cdb679dd89e87c954ea9d88fad5a9198cfe0a73748085503d29bebcb143487d720a759a6bbe81d6848c94da46a55c7a366b9834e
+  languageName: node
+  linkType: hard
+
+"doctrine@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "doctrine@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"
+  dependencies:
+    esutils: ^2.0.2
+  checksum: 2eae469bd2889ceee9892083a67340b3622568fe5290edce620e5d5ddab23d644b2a780e9a7c68ad9c8a62716a70c5e484402ac93a398fa78b54b7505592aa7f
+  languageName: node
+  linkType: hard
+
+"dom-converter@npm:^0.2":
+  version: 0.2.0
+  resolution: "dom-converter@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"
+  dependencies:
+    utila: ~0.4
+  checksum: 437b4464bd3c5e654decf855f9263e939d633d7bb720512f9a400b3e1005d870eb4a5fbead7d9ccb7849f7df5ee30c62f9a56b68143c13575ae5fef16007742c
+  languageName: node
+  linkType: hard
+
+"dom-helpers@npm:^5.0.1, dom-helpers@npm:^5.1.0, dom-helpers@npm:^5.1.2":
+  version: 5.2.0
+  resolution: "dom-helpers@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"
+  dependencies:
+    "@babel/runtime": ^7.8.7
+    csstype: ^3.0.2
+  checksum: 9ef27628f4ccfdfa0537b35ecf3b9600f1656f9c66f57a1530b552a65b51f4466d44514f2cb87399a15feee3c51047a77760327971e9aabc64fe637efd319156
+  languageName: node
+  linkType: hard
+
+"dom-serializer@npm:0":
+  version: 0.2.2
+  resolution: "dom-serializer@npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"
+  dependencies:
+    domelementtype: ^2.0.1
+    entities: ^2.0.0
+  checksum: 598e05e71b8cdb03424393c0631818b978b9fee2dd18d0215a9ee97a6dee86bddd1dcfae4609c173185a9f1bcde24d4a87e1f0d512d66b76536b21fc3f34fc03
+  languageName: node
+  linkType: hard
+
+"dom-walk@npm:^0.1.0":
+  version: 0.1.2
+  resolution: "dom-walk@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"
+  checksum: 948c7527f3798cae9d7039cc0e5dc9f013ebd701d7d99478bac79d7d9eb8b81e7b6e836526e21ed9b156466b268e30ea0f2d5b72df955fabec3ce2aa7dc0086e
+  languageName: node
+  linkType: hard
+
+"domelementtype@npm:1, domelementtype@npm:^1.3.1":
+  version: 1.3.1
+  resolution: "domelementtype@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"
+  checksum: a4791788de07071422b2fe63b58cfb89c2507def6864954d0d7a062adb00fc925059856d29c3e48051c8fa2f20147e5d3fb24b1adbc5bdf0f9e99981b53b74c6
+  languageName: node
+  linkType: hard
+
+"domelementtype@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "domelementtype@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"
+  checksum: 9ddda35625a244de9a4832b1cf861f80e146faf6f0e70efe5a88c2c54c34e29e745f7048992dadc3af91c031abe035782f4dc16e6e7862eff6e80bd7c79327df
+  languageName: node
+  linkType: hard
+
+"domhandler@npm:^2.3.0":
+  version: 2.4.2
+  resolution: "domhandler@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"
+  dependencies:
+    domelementtype: 1
+  checksum: dbe99b096aaf6e0618efc2e7e39d46448cba00999b08ba14970ee4d7a8916c4d4d463fcc1b4a7f247b34f47d1c115eec8fa5f8a4d1e430b2207da32bdf41f49a
+  languageName: node
+  linkType: hard
+
+"domutils@npm:1.5.1":
+  version: 1.5.1
+  resolution: "domutils@npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"
+  dependencies:
+    dom-serializer: 0
+    domelementtype: 1
+  checksum: ffc578118d3e50d0f34a0bba37575492998d43b7e54764533b1890e6c233b67068a0f369d1d23d200aa71c3fe87f2d60fdc4a87479e416edafecc33f00fc9735
+  languageName: node
+  linkType: hard
+
+"domutils@npm:^1.5.1":
+  version: 1.7.0
+  resolution: "domutils@npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"
+  dependencies:
+    dom-serializer: 0
+    domelementtype: 1
+  checksum: a5b2f01fb3ff626073e3c3b43fedcff34073fb059b1235ee31cd0b5690d826304f41bc3fd117f95d754a1666ac3a57d224b408d83dd4f1c4525fd5b636d8df6f
+  languageName: node
+  linkType: hard
+
+"dot-case@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "dot-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"
+  dependencies:
+    no-case: ^3.0.3
+    tslib: ^1.10.0
+  checksum: 31e5037039fb696ed7f1da1d3f0cea5fa0ffe0523334229a2f241856411fbbb59a5a7a6f8ae1447820718797708650bd6f90836d510ec27a81694fbc006c946a
+  languageName: node
+  linkType: hard
+
+"ecc-jsbn@npm:~0.1.1":
+  version: 0.1.2
+  resolution: "ecc-jsbn@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"
+  dependencies:
+    jsbn: ~0.1.0
+    safer-buffer: ^2.1.0
+  checksum: 5b4dd05f24b2b94c1bb882488dba2b878bb5b83182669aa71fbdf53c6941618180cb226c4eb9a3e2fa51ad11f87b5edb0a7d7289cdef468ba2e6024542f73f07
+  languageName: node
+  linkType: hard
+
+"ecstatic@npm:^3.3.2":
+  version: 3.3.2
+  resolution: "ecstatic@npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"
+  dependencies:
+    he: ^1.1.1
+    mime: ^1.6.0
+    minimist: ^1.1.0
+    url-join: ^2.0.5
+  bin:
+    ecstatic: ./lib/ecstatic.js
+  checksum: a6185a71daa21e8bdbaca3117e9eda90edc40d85c34eb1c0af3209a162cd8385624f15e46940f1dcfe96bad01fc82fa0df09caa51d7a052637eb22dd11c1426f
+  languageName: node
+  linkType: hard
+
+"ee-first@npm:1.1.1":
+  version: 1.1.1
+  resolution: "ee-first@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"
+  checksum: ba74f91398e3ee3b6d665b2f0d13ad6530e89a7e64ec886a6eec0602fb8a5a274652960e21bd5d4b42fdeb9017d873ff872f50342d38779e955285977edb337c
+  languageName: node
+  linkType: hard
+
+"ejs@npm:^2.6.1":
+  version: 2.7.4
+  resolution: "ejs@npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"
+  checksum: f066d9a932fb921bdb6e87133d747d5e3408a1c1303f9a15e5a7a3973afdf444a672c98c2f6d97b9a1a76363bd8ae6d05286f26c6b6b7b9674dfc5802fc8546d
+  languageName: node
+  linkType: hard
+
+"electron-to-chromium@npm:^1.3.488":
+  version: 1.3.501
+  resolution: "electron-to-chromium@npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"
+  checksum: ec4408a0859dab6e89134d4a95ebd6416cb93b5f76fe4103a993bb3ba2148ae23228fef9d882f404d5b59bc67ceca1142f29f8c85c9050add2073926ffb18131
+  languageName: node
+  linkType: hard
+
+"electron-to-chromium@npm:^1.3.523":
+  version: 1.3.544
+  resolution: "electron-to-chromium@npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"
+  checksum: bb86613254a499835f08f2480c9f8247bb7ee8a81b0154c9d51f61906051d69c9ccdccf37f6b4180e181b03248712317a4668096212d6b837239452726dba72c
+  languageName: node
+  linkType: hard
+
+"electron-to-chromium@npm:^1.3.571":
+  version: 1.3.583
+  resolution: "electron-to-chromium@npm:1.3.583"
+  checksum: 134710b06cdd0a722bba5efe502beb914bae9285cd3140c5824f043984b2595e64d6cb893675d8b185cf8bef46cc8f39c72a9f1c78237e31def0c64e076e532f
+  languageName: node
+  linkType: hard
+
+"emoji-regex@npm:^7.0.1":
+  version: 7.0.3
+  resolution: "emoji-regex@npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"
+  checksum: e3a504cf5242061d9b3c78a88ce787d6beee37a5d21287c6ccdddf1fe665d5ef3eddfdda663d0baf683df8e7d354210eeb1458a7d9afdf0d7a28d48cbb9975e1
+  languageName: node
+  linkType: hard
+
+"emojis-list@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "emojis-list@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"
+  checksum: a79126b55bc86ee8fd938235a6adf9d457c05fb5bb934e8608b7d35c878d9d1e312a67759244f5c3fba0810b508eb5617e5e6ad6886496ebcfa6832d1c8de3c4
+  languageName: node
+  linkType: hard
+
+"encodeurl@npm:~1.0.2":
+  version: 1.0.2
+  resolution: "encodeurl@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"
+  checksum: 6ee5fcbcd245d2a2b6bd6fe36b80f91e31ab46e29192c50af00e8f860c0c2310ebbdaae40257878fdce90b42abcb3526895c7c3a2e229461ed1f0d0b5a020fc8
+  languageName: node
+  linkType: hard
+
+"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1":
+  version: 1.4.4
+  resolution: "end-of-stream@npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"
+  dependencies:
+    once: ^1.4.0
+  checksum: 7da60e458bdb5e16c006a45e85ef3bc1e3791db5ba275b0913258ccddc8899acb9252c4ddbcce87bd1b46e2a3f97315aafb9f0c0330e8aac44defb504a9d3ccd
+  languageName: node
+  linkType: hard
+
+"end-of-stream@npm:~1.1.0":
+  version: 1.1.0
+  resolution: "end-of-stream@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"
+  dependencies:
+    once: ~1.3.0
+  checksum: 1a078bec4bd3e135bfaccc3083ff0150785a5a3c9c1bceb61b743b84b2d7873ca4ea22dc1dc289dfcc150afbeeed167dd625271cf0bc0bbd10e9f3debce0cdad
+  languageName: node
+  linkType: hard
+
+"enhanced-resolve@npm:^4.0.0":
+  version: 4.3.0
+  resolution: "enhanced-resolve@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"
+  dependencies:
+    graceful-fs: ^4.1.2
+    memory-fs: ^0.5.0
+    tapable: ^1.0.0
+  checksum: aecdc0b2085990d84682c2ef829d0df3fe52511ac6353b2210ff138892fa36e524e117e1a534e0d5e51853cb1a9cce8941a68c81ed51a4989d2b041739aab65b
+  languageName: node
+  linkType: hard
+
+"enhanced-resolve@npm:^5.3.0":
+  version: 5.3.1
+  resolution: "enhanced-resolve@npm:5.3.1"
+  dependencies:
+    graceful-fs: ^4.2.4
+    tapable: ^2.0.0
+  checksum: 1689ec43477bc31b8fd78737ce3f278bebeab0e97426662d966fc722dc5d5dfac8c9279e3467b9918e7e51590e37eb84bc751a67b047e71e8ca34615c729f42e
+  languageName: node
+  linkType: hard
+
+"enquirer@npm:^2.3.4":
+  version: 2.3.6
+  resolution: "enquirer@npm:2.3.6"
+  dependencies:
+    ansi-colors: ^4.1.1
+  checksum: e249bb97bf7d5a91d51081547ea5aa1d849604e5de74feff2c48f7174fc6c9dfcfeea42ef5536e9a3be58964a248c322d6897269ae7bba3e1b6d24f152d9d685
+  languageName: node
+  linkType: hard
+
+"enquirer@npm:^2.3.5":
+  version: 2.3.6
+  resolution: "enquirer@npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"
+  dependencies:
+    ansi-colors: ^4.1.1
+  checksum: e249bb97bf7d5a91d51081547ea5aa1d849604e5de74feff2c48f7174fc6c9dfcfeea42ef5536e9a3be58964a248c322d6897269ae7bba3e1b6d24f152d9d685
+  languageName: node
+  linkType: hard
+
+"entities@npm:^1.1.1":
+  version: 1.1.2
+  resolution: "entities@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"
+  checksum: 3a4259db358c612853e616915d398e692a3c5dbaa4da44b9a6fce15ab88615cadc9790af608c3bee152972ece69ae61a22f4a13272fd943db2ceaee02ce5cc87
+  languageName: node
+  linkType: hard
+
+"entities@npm:^2.0.0":
+  version: 2.0.3
+  resolution: "entities@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"
+  checksum: 02dfe1fbf531dd667420ff4e963ddc049203471ba8ad2873655303aff4cf65f27823effb397521af4d58b5609d33fc0492b0cc073c8374f3bbe6d3b5bcec1a42
+  languageName: node
+  linkType: hard
+
+"env-paths@npm:^2.2.0":
+  version: 2.2.0
+  resolution: "env-paths@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"
+  checksum: 09de4fd1c068d5965aa8aede852a764b7fb6fa8f1299ba7789bc29c22840ab1985e0c9c55bc6bf40b4276834b8adfa1baf82ec9bc58445d9e75800dc32d78a4f
+  languageName: node
+  linkType: hard
+
+"envinfo@npm:^7.7.3":
+  version: 7.7.3
+  resolution: "envinfo@npm:7.7.3"
+  bin:
+    envinfo: dist/cli.js
+  checksum: 1372214a3f7ab4d5f3cbe112f5bf590c9c5ce8b672ab84a1f15eb09c1df273980e18679eefc96f9e442a5dd7e51ac5f4d8727b36f4db9f4ce00b7ad77c3628ad
+  languageName: node
+  linkType: hard
+
+"errno@npm:^0.1.3":
+  version: 0.1.7
+  resolution: "errno@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"
+  dependencies:
+    prr: ~1.0.1
+  bin:
+    errno: ./cli.js
+  checksum: 3d2da6fa1e3826dead7e06476cb4219555e8492c4ba8e0c40b2dc333e9b52e33223a414a394d7b9f18f82740aa69861c5fcef5b80798f08ff903c7c78916ce14
+  languageName: node
+  linkType: hard
+
+"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1":
+  version: 1.3.2
+  resolution: "error-ex@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"
+  dependencies:
+    is-arrayish: ^0.2.1
+  checksum: 6c6c9187429ae867d145bc64c682c7c137b1f8373a406dc3b605c0d92f15b85bfcea02b461dc55ae11b10d013377e1eaf3d469d2861b2f94703c743620a9c08c
+  languageName: node
+  linkType: hard
+
+"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5":
+  version: 1.17.6
+  resolution: "es-abstract@npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"
+  dependencies:
+    es-to-primitive: ^1.2.1
+    function-bind: ^1.1.1
+    has: ^1.0.3
+    has-symbols: ^1.0.1
+    is-callable: ^1.2.0
+    is-regex: ^1.1.0
+    object-inspect: ^1.7.0
+    object-keys: ^1.1.1
+    object.assign: ^4.1.0
+    string.prototype.trimend: ^1.0.1
+    string.prototype.trimstart: ^1.0.1
+  checksum: 637ad488bdcbc538dfb35ee30cdbe5e48ecf68c5145a368c8f1be346e83d2555e416709e9382eb9902e542da94763cdd2152d87dbbb01b5b39919c1329bd0bb4
+  languageName: node
+  linkType: hard
+
+"es-abstract@npm:^1.18.0-next.0":
+  version: 1.18.0-next.1
+  resolution: "es-abstract@npm:1.18.0-next.1"
+  dependencies:
+    es-to-primitive: ^1.2.1
+    function-bind: ^1.1.1
+    has: ^1.0.3
+    has-symbols: ^1.0.1
+    is-callable: ^1.2.2
+    is-negative-zero: ^2.0.0
+    is-regex: ^1.1.1
+    object-inspect: ^1.8.0
+    object-keys: ^1.1.1
+    object.assign: ^4.1.1
+    string.prototype.trimend: ^1.0.1
+    string.prototype.trimstart: ^1.0.1
+  checksum: f1e37567e49a54c09050aa3371cac601a789441f4fa9730f2c2d386aadad547d6c303bb41e7f5cb5286b616104d6c13450f33b712f664939a09729dd5e45c963
+  languageName: node
+  linkType: hard
+
+"es-to-primitive@npm:^1.2.1":
+  version: 1.2.1
+  resolution: "es-to-primitive@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"
+  dependencies:
+    is-callable: ^1.1.4
+    is-date-object: ^1.0.1
+    is-symbol: ^1.0.2
+  checksum: d20b7be268b84662469972ec7265a57d4d6a65b9bf2b73f040d75e14f9f6dbe266a1a88579162e11349f9cb70eaa17640efb515c90dab19745a904b680b14be3
+  languageName: node
+  linkType: hard
+
+"escalade@npm:^3.0.1, escalade@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "escalade@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"
+  checksum: 30f45cb4dbc35e41dd53910c016313733219bdd06c49751fd30ef241509ef4f1c8b21b65313949aaaf1edd58ab1ac84bf71b4a70465c7be46f7e5eaf51d737bb
+  languageName: node
+  linkType: hard
+
+"escalade@npm:^3.1.0":
+  version: 3.1.1
+  resolution: "escalade@npm:3.1.1"
+  checksum: 1e31ff50d66f47cd0dfffa702061127116ccf9886d1f54a802a7b3bc95b94cab0cbf5b145cc5ac199036df6fd9d1bb24af1fa1bfed87c94879e950fbee5f86d1
+  languageName: node
+  linkType: hard
+
+"escape-html@npm:~1.0.3":
+  version: 1.0.3
+  resolution: "escape-html@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"
+  checksum: 900a7f2b80b9f89c85b7a303d1b7a4d354b93e328871414f165f13c5c209a80eab787e3a63429e596877def69fe4dcb3d1b55af655207a901a9ec99f7f148743
+  languageName: node
+  linkType: hard
+
+"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
+  version: 1.0.5
+  resolution: "escape-string-regexp@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"
+  checksum: f9484b8b4c8827d816e0fd905c25ed4b561376a9c220e1430403ea84619bf680c76a883a48cff8b8e091daf55d6a497e37479f9787b9f15f3c421b6054289744
+  languageName: node
+  linkType: hard
+
+"eslint-config-prettier@npm:^6.14.0":
+  version: 6.14.0
+  resolution: "eslint-config-prettier@npm:6.14.0"
+  dependencies:
+    get-stdin: ^6.0.0
+  peerDependencies:
+    eslint: ">=3.14.1"
+  bin:
+    eslint-config-prettier-check: bin/cli.js
+  checksum: 8d478429bb6c63a538270b8d2fae13a2ffe5c5bd8401d2f478e9a65e1bc94ed6e0f6ca3d063a8decd0003ad91ef26ca32fadf2d08f3e2d7dd4c76ee8efea6711
+  languageName: node
+  linkType: hard
+
+"eslint-import-resolver-node@npm:^0.3.4":
+  version: 0.3.4
+  resolution: "eslint-import-resolver-node@npm:0.3.4"
+  dependencies:
+    debug: ^2.6.9
+    resolve: ^1.13.1
+  checksum: 825e34e662c988ece8229e6956a95f12d2fa19265b429e3e3db14e58bfe72e270c999cda0cfc690793ed6e6a3e49ffa8df0e0a8842d668a1f0f7de5ae1aa36f9
+  languageName: node
+  linkType: hard
+
+"eslint-module-utils@npm:^2.6.0":
+  version: 2.6.0
+  resolution: "eslint-module-utils@npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"
+  dependencies:
+    debug: ^2.6.9
+    pkg-dir: ^2.0.0
+  checksum: f584af176480a702eedcdb3f610797f8b8d1293c3835ed71fadb579ec28400b91ded5283729418f63d48dc27c6358bd66f2bd839614d565a1b78d3c3440ee8f7
+  languageName: node
+  linkType: hard
+
+"eslint-plugin-import@npm:^2.22.1":
+  version: 2.22.1
+  resolution: "eslint-plugin-import@npm:2.22.1"
+  dependencies:
+    array-includes: ^3.1.1
+    array.prototype.flat: ^1.2.3
+    contains-path: ^0.1.0
+    debug: ^2.6.9
+    doctrine: 1.5.0
+    eslint-import-resolver-node: ^0.3.4
+    eslint-module-utils: ^2.6.0
+    has: ^1.0.3
+    minimatch: ^3.0.4
+    object.values: ^1.1.1
+    read-pkg-up: ^2.0.0
+    resolve: ^1.17.0
+    tsconfig-paths: ^3.9.0
+  peerDependencies:
+    eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0
+  checksum: 35ae09ceae6f0fe239f6b72e134d58d74762ad1ed0f57aa989affb856354e46bc082bb6df9399b624989107efb9ab9af2c91c08f03c0c70c5cb46a37676591ec
+  languageName: node
+  linkType: hard
+
+"eslint-plugin-prettier@npm:^3.1.4":
+  version: 3.1.4
+  resolution: "eslint-plugin-prettier@npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"
+  dependencies:
+    prettier-linter-helpers: ^1.0.0
+  peerDependencies:
+    eslint: ">=5.0.0"
+    prettier: ">=1.13.0"
+  checksum: 4e4df155790a20a7ceef9008bbc22a677a8f7e790e9ef613a049a78dfe0b5dc3726afcd4bfd2a8ce41abc88c9a11db029819a722f70b940da32a03629e7f7832
+  languageName: node
+  linkType: hard
+
+"eslint-plugin-react-hooks@npm:^4.2.0":
+  version: 4.2.0
+  resolution: "eslint-plugin-react-hooks@npm:4.2.0"
+  peerDependencies:
+    eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+  checksum: 5378d16b5a56431a7a77b56d61464dbbfa343e8607da87b851a6caee44b96e08847147321f5f38de30d20668418691d859f69d9c5262dfb5308856382252096c
+  languageName: node
+  linkType: hard
+
+"eslint-plugin-react@npm:^7.21.5":
+  version: 7.21.5
+  resolution: "eslint-plugin-react@npm:7.21.5"
+  dependencies:
+    array-includes: ^3.1.1
+    array.prototype.flatmap: ^1.2.3
+    doctrine: ^2.1.0
+    has: ^1.0.3
+    jsx-ast-utils: ^2.4.1 || ^3.0.0
+    object.entries: ^1.1.2
+    object.fromentries: ^2.0.2
+    object.values: ^1.1.1
+    prop-types: ^15.7.2
+    resolve: ^1.18.1
+    string.prototype.matchall: ^4.0.2
+  peerDependencies:
+    eslint: ^3 || ^4 || ^5 || ^6 || ^7
+  checksum: a7123f6feb287ad7e15d36b1c9fda8f78a0f0d39b9ee2d6479a5f0ad0effb8f60f639ef7449cecabb711095060e487f0950b69478b22768547b909c0de4f3afd
+  languageName: node
+  linkType: hard
+
+"eslint-scope@npm:^5.0.0":
+  version: 5.1.0
+  resolution: "eslint-scope@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"
+  dependencies:
+    esrecurse: ^4.1.0
+    estraverse: ^4.1.1
+  checksum: 4a0e97979a855d09c4bb3a3f4f945cefaf8f6638a6a8f49472cefb0cf64982ab7ed1683a1e63d20ce1bcb01f94c133dc7a5bdf03b28eb945999f50f08878a2b4
+  languageName: node
+  linkType: hard
+
+"eslint-scope@npm:^5.1.1":
+  version: 5.1.1
+  resolution: "eslint-scope@npm:5.1.1"
+  dependencies:
+    esrecurse: ^4.3.0
+    estraverse: ^4.1.1
+  checksum: 79465cf5082f4216176f6d49c7d088de89ee890f912eb87b831f23ee9a5e17ed0f3f2ab6108fb8fefa0474ba5ebeaa9bdefbe49ba704bd879b73f2445e23ee10
+  languageName: node
+  linkType: hard
+
+"eslint-utils@npm:^2.0.0, eslint-utils@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "eslint-utils@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"
+  dependencies:
+    eslint-visitor-keys: ^1.1.0
+  checksum: a43892372a4205374982ac9d4c8edc5fe180cba76535ab9184c48f18a3d931b7ffdd6862cb2f8ca4305c47eface0e614e39884a75fbf169fcc55a6131af2ec48
+  languageName: node
+  linkType: hard
+
+"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0":
+  version: 1.3.0
+  resolution: "eslint-visitor-keys@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"
+  checksum: 58ab7a0107621d8a0fe19142a5e1306fd527c0f36b65d5c79033639e80278d8060264804f42c56f68e5541c4cc83d9175f9143083774cec8222f6cd5a695306e
+  languageName: node
+  linkType: hard
+
+"eslint-visitor-keys@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "eslint-visitor-keys@npm:2.0.0"
+  checksum: 429dabdcab3c1cf5e65d44843afc513398d4ee32a37f93edc93bb5ba59a12b78fa67d87ff23c752c170b5e4f9085050f45b3c036cdfb23d40a724f2614048140
+  languageName: node
+  linkType: hard
+
+"eslint@npm:^7.12.1":
+  version: 7.12.1
+  resolution: "eslint@npm:7.12.1"
+  dependencies:
+    "@babel/code-frame": ^7.0.0
+    "@eslint/eslintrc": ^0.2.1
+    ajv: ^6.10.0
+    chalk: ^4.0.0
+    cross-spawn: ^7.0.2
+    debug: ^4.0.1
+    doctrine: ^3.0.0
+    enquirer: ^2.3.5
+    eslint-scope: ^5.1.1
+    eslint-utils: ^2.1.0
+    eslint-visitor-keys: ^2.0.0
+    espree: ^7.3.0
+    esquery: ^1.2.0
+    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
+    is-glob: ^4.0.0
+    js-yaml: ^3.13.1
+    json-stable-stringify-without-jsonify: ^1.0.1
+    levn: ^0.4.1
+    lodash: ^4.17.19
+    minimatch: ^3.0.4
+    natural-compare: ^1.4.0
+    optionator: ^0.9.1
+    progress: ^2.0.0
+    regexpp: ^3.1.0
+    semver: ^7.2.1
+    strip-ansi: ^6.0.0
+    strip-json-comments: ^3.1.0
+    table: ^5.2.3
+    text-table: ^0.2.0
+    v8-compile-cache: ^2.0.3
+  bin:
+    eslint: bin/eslint.js
+  checksum: b3d11ea516d2932db5854ea942a546b711e6ee8735306627042bb9e2539e96844cc62cdb5826039f5d0509202936045c2cd7b84b457004c891a326f8eccae333
+  languageName: node
+  linkType: hard
+
+"espree@npm:^7.3.0":
+  version: 7.3.0
+  resolution: "espree@npm:7.3.0"
+  dependencies:
+    acorn: ^7.4.0
+    acorn-jsx: ^5.2.0
+    eslint-visitor-keys: ^1.3.0
+  checksum: dd2543c293e091532f3d6eda4a09ae49039ac65e69bc072aec952a5db6eb23eeee7617e99cde11414367104208c2dec13f709bbede0528d4f6854ce5cb734960
+  languageName: node
+  linkType: hard
+
+"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
+  version: 4.0.1
+  resolution: "esprima@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"
+  bin:
+    esparse: ./bin/esparse.js
+    esvalidate: ./bin/esvalidate.js
+  checksum: 5df45a3d9c95c36800d028ba76d8d4e04e199932b58c2939f462f859fd583e7d39b4a12d3f97986cf272a28a5fe5948ee6e49e36ef63f67b5b48d82a635c5081
+  languageName: node
+  linkType: hard
+
+"esquery@npm:^1.2.0":
+  version: 1.3.1
+  resolution: "esquery@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"
+  dependencies:
+    estraverse: ^5.1.0
+  checksum: 0aac7572bc8cf4aad87f4424b3e5e80917c214d15a1da02718c4bb0e6030552b0dea700777747507d5e310cfba43ea719e6397a45050fb50b9b68c0f7de6b26a
+  languageName: node
+  linkType: hard
+
+"esrecurse@npm:^4.1.0":
+  version: 4.2.1
+  resolution: "esrecurse@npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"
+  dependencies:
+    estraverse: ^4.1.0
+  checksum: 9acfa287729037ccb63ee725df2214b313fe1296a91f58fe42b151e1af0d51558ac18486e53f5717477ad9306f7a79d4e20fc7f8bac486d3175f86ab2dc67f73
+  languageName: node
+  linkType: hard
+
+"esrecurse@npm:^4.3.0":
+  version: 4.3.0
+  resolution: "esrecurse@npm:4.3.0"
+  dependencies:
+    estraverse: ^5.2.0
+  checksum: 2c96302dd5c4e6d07154d0ce6baee9e829ebf77e21c50c5ca4f24d6d0006fe4a4582364624a01f5667a3633b3e39bbce1a8191924f8419fb71584bb45bf7bb81
+  languageName: node
+  linkType: hard
+
+"estraverse@npm:^4.1.0, estraverse@npm:^4.1.1":
+  version: 4.3.0
+  resolution: "estraverse@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"
+  checksum: 1e4c627da9e9af07bf7b2817320f606841808fb2ec0cbd81097b30d5f90d8613288b3e523153babe04615d59b54ef876d98f0ca27488b6c0934dacd725a8d338
+  languageName: node
+  linkType: hard
+
+"estraverse@npm:^5.1.0":
+  version: 5.1.0
+  resolution: "estraverse@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"
+  checksum: 1b8a47cf7c56ef3780437e4c3d733ac74d07e32f24c153d2dbe52b621802d2f88cf828c15746dabfd10a994a3ac74e1c5b74dba97d096fa9a7df2262c4f72ea9
+  languageName: node
+  linkType: hard
+
+"estraverse@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "estraverse@npm:5.2.0"
+  checksum: 7dc1b027aebf937bab10c3254d9d73ed21672d7382518c9ddb9dc45560cb2f4e6548cc8ff1a07b7f431e94bd0fb0bf5da75b602e2473f966fea141c4c31b31d6
+  languageName: node
+  linkType: hard
+
+"estree-walker@npm:^0.6.1":
+  version: 0.6.1
+  resolution: "estree-walker@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"
+  checksum: a63b94b841fcda2d79ff8e313b4ea8439b3364094ba66547289814bd7da4399a54cd33849b23504d239266430f219a142627071201a9fb6eb488bd025575f8fc
+  languageName: node
+  linkType: hard
+
+"estree-walker@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "estree-walker@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"
+  checksum: 85e7cee763e9125a7d8a947b3a06a8b9282873936df220dd0d791d9b3315e45e40ab096b43ba71bdc99140c11a6d23fdcf686642dc119a7b2d6181004fdb24d2
+  languageName: node
+  linkType: hard
+
+"esutils@npm:^2.0.2":
+  version: 2.0.3
+  resolution: "esutils@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"
+  checksum: 590b04533177f8f6f0f352b3ac7da6c1c1e3d8375d8973972fba9c94558ca168685fd38319c3c6f4c37ba256df7494a7f15d8e761df1655af8a8f0027d988f8f
+  languageName: node
+  linkType: hard
+
+"etag@npm:~1.8.1":
+  version: 1.8.1
+  resolution: "etag@npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"
+  checksum: f18341a3c12a554ec46c0d4756bc9cae177e92f25a4ebd9ceefebf0ee448b675972fc110879f22b1bf514174713921ae5de9ff77af2062d422b1085588465a57
+  languageName: node
+  linkType: hard
+
+"eventemitter3@npm:^4.0.0":
+  version: 4.0.4
+  resolution: "eventemitter3@npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"
+  checksum: 6693972304a7bf91aea3727d83803e1b38819ee0ed628ed842ac909284dedd1f3a7aa0ab4ccdd332bfcb9720138c9021b7b4737259e9fe8d70f7f25c57b9f0ad
+  languageName: node
+  linkType: hard
+
+"events@npm:^3.2.0":
+  version: 3.2.0
+  resolution: "events@npm:3.2.0"
+  checksum: 6ea52b160c2dfbe060feb2388d3d6d8b76a58779c2b14d66d96fdfcb255ccecaac11464634af4e5a7ba272b5412de929ead65d24cd203f3ff8ca881d4ba3796b
+  languageName: node
+  linkType: hard
+
+"eventsource@npm:^1.0.7":
+  version: 1.0.7
+  resolution: "eventsource@npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"
+  dependencies:
+    original: ^1.0.0
+  checksum: 058506715061d4613c004854c1220d57091445ba73599f9eb232273be1119f13d3568df1a3d866bf94333fbcd138cc45268c454376ee48c3b432a26767961815
+  languageName: node
+  linkType: hard
+
+"execa@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "execa@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"
+  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
+  checksum: 39714ea24e349403f9fc92b450f0e6823cdd4573e15b17c0fba6d95f2eecd46dc32624bbf15071d91e2c64a4402c74ce7a362671126964100ad34e2d6210adf9
+  languageName: node
+  linkType: hard
+
+"execa@npm:^4.0.0":
+  version: 4.0.3
+  resolution: "execa@npm:4.0.3"
+  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
+    signal-exit: ^3.0.2
+    strip-final-newline: ^2.0.0
+  checksum: 65b237d178b468045ee57af6aa4e4124807b28aec9573d9b3b16b02a7e41bd65996236e0c5575d053d3888585ffc795cbed38847c6c9669e9c8481fc44ac05e4
+  languageName: node
+  linkType: hard
+
+"exenv@npm:^1.2.2":
+  version: 1.2.2
+  resolution: "exenv@npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"
+  checksum: 09fd080c0478739f0154916b73dea07f30f97972e1b3be3368d2b96d282d889b509f05e163d830e323c9ab1e94b0a293a9947b410651325df467c404f37f32f1
+  languageName: node
+  linkType: hard
+
+"expand-brackets@npm:^2.1.4":
+  version: 2.1.4
+  resolution: "expand-brackets@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"
+  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
+  checksum: 9aadab00ff10da89d3bdbcb92fc48f152977e8f986b227955b17601cb7eb65a63c9b35811d78ce8ff534fc20faab759a043f0f1c71b904f5d37a35a074ff6fb0
+  languageName: node
+  linkType: hard
+
+"express@npm:^4.17.1":
+  version: 4.17.1
+  resolution: "express@npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"
+  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
+  checksum: c4b470d623152c148e874b08d4afc35ea9498547c31a6ff6dae767ae11e3a59508a299732e9f45bfa2885685fbe2b75ca360862977798dfcec28ff2a4260eab2
+  languageName: node
+  linkType: hard
+
+"extend-shallow@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "extend-shallow@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"
+  dependencies:
+    is-extendable: ^0.1.0
+  checksum: 03dbbba8b9711409442428f4e0f80a92f86862a4d2559fa9629dd7080e85cacc6311c84ebea8b22b5ff40d3ef6475bbf534f098b77b7624448276708e60fa248
+  languageName: node
+  linkType: hard
+
+"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "extend-shallow@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"
+  dependencies:
+    assign-symbols: ^1.0.0
+    is-extendable: ^1.0.1
+  checksum: 5301c5070b98bef2413524046c3478cdce1a6bc112b44af2d4bdbfca59daabad49eb04c14e55375963db45f4ef6f43530d71a2c1c862a72d08eb165c77a13767
+  languageName: node
+  linkType: hard
+
+"extend@npm:~3.0.2":
+  version: 3.0.2
+  resolution: "extend@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"
+  checksum: 1406da1f0c4b00b839497e4cdd0ec4303ce2ae349144b7c28064a5073c93ce8c08da4e8fb1bc5cb459ffcdff30a35fc0fe54344eb88320e70100c1baea6f195c
+  languageName: node
+  linkType: hard
+
+"extglob@npm:^2.0.4":
+  version: 2.0.4
+  resolution: "extglob@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"
+  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
+  checksum: ce23be772ff536976902aa0193a6d167abad229ca40fb4c1de2fd71c0116eeae168a02f6508d41382eb918fcbafb66dba61d498754051964a167c98210c62b28
+  languageName: node
+  linkType: hard
+
+"extsprintf@npm:1.3.0, extsprintf@npm:^1.2.0":
+  version: 1.3.0
+  resolution: "extsprintf@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"
+  checksum: 892efd56aa9b27cbfbca42ad0c59308633f66000e71d1fb19c6989ea7309b32f3ff281778871bd2ce9bc7f3ad02515aa2783cea0323d0f6ff840b7c6a6a4603e
+  languageName: node
+  linkType: hard
+
+"fast-deep-equal@npm:^3.1.1":
+  version: 3.1.3
+  resolution: "fast-deep-equal@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"
+  checksum: 451526766b219503131d11e823eaadd1533080b0be4860e316670b039dcaf31cd1007c2fe036a9b922abba7c040dfad5e942ed79d21f2ff849e50049f36e0fb7
+  languageName: node
+  linkType: hard
+
+"fast-diff@npm:^1.1.2":
+  version: 1.2.0
+  resolution: "fast-diff@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"
+  checksum: 9c5407d9c4869407854fe8838b8d9d26065ca747c9b80697957ae37482e982e880de823efa2c97ea1cba05dc06fce853a005e7557d10550c64c052cf7021ba9e
+  languageName: node
+  linkType: hard
+
+"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.2, fast-glob@npm:^3.2.4":
+  version: 3.2.4
+  resolution: "fast-glob@npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"
+  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
+  checksum: 18f9eca898bc3be71b717cb59cb424e937bb9f5629449ba4e93e498dca9db921a9fd3cbdc3389d3f94aec3074bbe2ff6a74f779627a93e81ba0262b795ec44e4
+  languageName: node
+  linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "fast-json-stable-stringify@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"
+  checksum: 7df3fabfe445d65953b2d9d9d3958bd895438b215a40fb87dae8b2165c5169a897785eb5d51e6cf0eb03523af756e3d82ea01083f6ac6341fe16db532fee3016
+  languageName: node
+  linkType: hard
+
+"fast-levenshtein@npm:^2.0.6":
+  version: 2.0.6
+  resolution: "fast-levenshtein@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"
+  checksum: a2d03af3088b0397633e007fb3010ecfa4f91cae2116d2385653c59396a1b31467641afa672a79e6f82218518670dc144128378124e711e35dbf90bc82846f22
+  languageName: node
+  linkType: hard
+
+"fastq@npm:^1.6.0":
+  version: 1.8.0
+  resolution: "fastq@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"
+  dependencies:
+    reusify: ^1.0.4
+  checksum: 77d71545ba88a5c4cbe628716bcf7a0db1dbe81943c1abfbe9eab65db17c6c1db7836e99478b3b8baf21d260b896dff4723f7b7af6606b3d3db2b135bf414c16
+  languageName: node
+  linkType: hard
+
+"faye-websocket@npm:^0.10.0":
+  version: 0.10.0
+  resolution: "faye-websocket@npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"
+  dependencies:
+    websocket-driver: ">=0.5.1"
+  checksum: 2a5823ddfb39ec7ef952dd1adab4c28fd162f5ee175f40f8d7467560554299199c1f0aa505e0fe14a85452c76d0c4dbee32f8327c71bf2f61a32f62538843111
+  languageName: node
+  linkType: hard
+
+"faye-websocket@npm:~0.11.1":
+  version: 0.11.3
+  resolution: "faye-websocket@npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"
+  dependencies:
+    websocket-driver: ">=0.5.1"
+  checksum: 94c48a5b4e9ab6ff05a424dfeebe0da6c7963776172c8713588926f1e15348c423e440c601360d105602586d59f8daeed5dadb76e29070f0b468ebd55e1f868d
+  languageName: node
+  linkType: hard
+
+"file-entry-cache@npm:^5.0.1":
+  version: 5.0.1
+  resolution: "file-entry-cache@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"
+  dependencies:
+    flat-cache: ^2.0.1
+  checksum: 7140588becf15f05ee956cfb359b5f23e0c73acbbd38ad14c7a76a0097342e6bfc0a8151cd2e481ea3cbb735190ba9a0df4b69055ebb5b0389c62339b1a2f86b
+  languageName: node
+  linkType: hard
+
+"file-loader@npm:^6.1.1":
+  version: 6.1.1
+  resolution: "file-loader@npm:6.1.1"
+  dependencies:
+    loader-utils: ^2.0.0
+    schema-utils: ^3.0.0
+  peerDependencies:
+    webpack: ^4.0.0 || ^5.0.0
+  checksum: 0272335818c26e5c78a9f972ce779c8ed508e815329e4ace4d55045100140d89460d72eec1af78400dd04f2d16e28e29b3649433804619653cf044220afdf45d
+  languageName: node
+  linkType: hard
+
+"file-uri-to-path@npm:1.0.0":
+  version: 1.0.0
+  resolution: "file-uri-to-path@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"
+  checksum: 5ddb9682f04f6f87b7765b93306206db2f96bc86162487e27639c55fe3ffeed12c30906ef1dedaa5307d7cabbbbdcbfa299b79aaec435de0f17e17ab31bd20b3
+  languageName: node
+  linkType: hard
+
+"fill-range@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "fill-range@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"
+  dependencies:
+    extend-shallow: ^2.0.1
+    is-number: ^3.0.0
+    repeat-string: ^1.6.1
+    to-regex-range: ^2.1.0
+  checksum: 4a1491ee292f3d4a3d073c34cff0d7ba00dad8ad0de12d0a973c5aefb3f3f54971508cbc4b1c4923f6278b692b7695f9561086571fbee9f24cf3435ab92e8d50
+  languageName: node
+  linkType: hard
+
+"fill-range@npm:^7.0.1":
+  version: 7.0.1
+  resolution: "fill-range@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"
+  dependencies:
+    to-regex-range: ^5.0.1
+  checksum: efca43d59b487ad4bc0b2b1cb9e51617c75a7b0159db51fa190c75c3d634ea5fad1ff4750d7c14346add4cd065e3c46e8f99af333edf2b4ec2a424f87e491a85
+  languageName: node
+  linkType: hard
+
+"finalhandler@npm:~1.1.2":
+  version: 1.1.2
+  resolution: "finalhandler@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"
+  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
+  checksum: f2e5b6bfe2201f13e74408530a7f354b7846ab3e648b3dde4f8ed3b773c8a743c16b0f378cb5113df7fef84c5be364bb1a3655f0a75571f163c982289fbd9671
+  languageName: node
+  linkType: hard
+
+"find-cache-dir@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "find-cache-dir@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"
+  dependencies:
+    commondir: ^1.0.1
+    make-dir: ^2.0.0
+    pkg-dir: ^3.0.0
+  checksum: 6e996026565b651d709964abad7f353976e83e869dffae96f73f99f51078eb856a82411a3f2c77f89040c4976aed28248a761590f7237796a8578d00c6b34446
+  languageName: node
+  linkType: hard
+
+"find-cache-dir@npm:^3.3.1":
+  version: 3.3.1
+  resolution: "find-cache-dir@npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"
+  dependencies:
+    commondir: ^1.0.1
+    make-dir: ^3.0.2
+    pkg-dir: ^4.1.0
+  checksum: b1e23226ee89fba89646aa5f72d084c6d04bb64f6d523c9cb2d57a1b5280fcac39e92fd5be572e2fae8a83aa70bc5b797ce33a826b9a4b92373cc38e66d4aa64
+  languageName: node
+  linkType: hard
+
+"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "find-up@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"
+  dependencies:
+    locate-path: ^2.0.0
+  checksum: 9dedb89f936b572f7c9fda3f66ebe146b0000fe9ef16fad94a77c25ce9585962e910bb32c1e08bab9b423985ff20221d2af4b7e4130b27c0f5f60c1aad3f6a7f
+  languageName: node
+  linkType: hard
+
+"find-up@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "find-up@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"
+  dependencies:
+    locate-path: ^3.0.0
+  checksum: c5422fc7231820421cff6f6e3a5d00a11a79fd16625f2af779c6aedfbaad66764fd149c1b84017aa44e85f86395eb25c31188ad273fc468a981b529eaa59a424
+  languageName: node
+  linkType: hard
+
+"find-up@npm:^4.0.0":
+  version: 4.1.0
+  resolution: "find-up@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"
+  dependencies:
+    locate-path: ^5.0.0
+    path-exists: ^4.0.0
+  checksum: d612d28e02eaca6cd7128fc9bc9b456e2547a3f9875b2b2ae2dbdc6b8cec52bc2885efcb3ac6c18954e838f4c8e20565d196784b190e1d38565f9dc39aade722
+  languageName: node
+  linkType: hard
+
+"flat-cache@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "flat-cache@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"
+  dependencies:
+    flatted: ^2.0.0
+    rimraf: 2.6.3
+    write: 1.0.3
+  checksum: a36ba407553064be4a571cdee4021a50290f6179a0827df1d076a2e33cd84e543d0274cb15dbeb551c2ae6d53e611e3c02564a93f0d527563d0f560be7a14b0d
+  languageName: node
+  linkType: hard
+
+"flatted@npm:^2.0.0":
+  version: 2.0.2
+  resolution: "flatted@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"
+  checksum: a3e5fb71ad3c4f0661cd3899864812bcf3f64bdf6aa5f33f967c9c2a8a5f0c7219707e864c0602115fef40e093415f76a43e77afd0a86990904e2217ddb44eb4
+  languageName: node
+  linkType: hard
+
+"flatten@npm:^1.0.2":
+  version: 1.0.3
+  resolution: "flatten@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"
+  checksum: 8a382594dc7bb4e4f28739a4abcd9d6f5c74d4be370892c10386a09656722e1a822137dc48c4bff15758e0656f8fee7bb3001133d068431796cf17b1f52a969a
+  languageName: node
+  linkType: hard
+
+"follow-redirects@npm:^1.0.0":
+  version: 1.5.10
+  resolution: "follow-redirects@npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"
+  dependencies:
+    debug: =3.1.0
+  checksum: 6e58e02c31337b6b41ffc3d5f3d49920b7db428eddcf374537da00ef121fe473983e12d8557f4304287604168d3efcc288d1f009abaf4c9d61e5db0c0cee3c4a
+  languageName: node
+  linkType: hard
+
+"follow-redirects@npm:^1.10.0":
+  version: 1.13.0
+  resolution: "follow-redirects@npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"
+  checksum: f220828d3f153da30ea616fdbe9f6676e74e4e68c51d336a751037c1d556e2de34aa5918f58951fa19bb6517c9c88b4403a0a8bdfc40d3e779d37def2ac0f2c4
+  languageName: node
+  linkType: hard
+
+"for-in@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "for-in@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"
+  checksum: e8d7280a654216e9951103e407d1655c2dfa67178ad468cb0b35701df6b594809ccdc66671b3478660d0e6c4bca9d038b1f1fc032716a184c19d67319550c554
+  languageName: node
+  linkType: hard
+
+"forever-agent@npm:~0.6.1":
+  version: 0.6.1
+  resolution: "forever-agent@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"
+  checksum: 9cc0054dd4ea5fc26e014b8c929d1fb9247e931e81165cbd965a712061d65fb84791b2124f64cd79492e516662b94068d29fe1d824732382237321b3f61955fe
+  languageName: node
+  linkType: hard
+
+"form-data@npm:~2.3.2":
+  version: 2.3.3
+  resolution: "form-data@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"
+  dependencies:
+    asynckit: ^0.4.0
+    combined-stream: ^1.0.6
+    mime-types: ^2.1.12
+  checksum: 862e686b105634222db77138d5f5ae08ba85f88c04925de5be86b2b9d03cf671d86566ad10f1dd5217634c0f1634069dfc1a663a1cc13e8fbac0ce8f670ad070
+  languageName: node
+  linkType: hard
+
+"forwarded@npm:~0.1.2":
+  version: 0.1.2
+  resolution: "forwarded@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"
+  checksum: 568d862ad1c514813fc62dc1bd58b8669b16d4ee2e634a6fc71f4849df798883ab94e63d8e1b35a17af51b2b39ca869e672c7310efe42fc7b9bad43a80b5ff87
+  languageName: node
+  linkType: hard
+
+"fragment-cache@npm:^0.2.1":
+  version: 0.2.1
+  resolution: "fragment-cache@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"
+  dependencies:
+    map-cache: ^0.2.2
+  checksum: f88983f4bf54f9a8847d15e54518535aecbfa9b7f0242604ca5cd027d88ea1469212b5dbb579233e769d0e2f4e6764bc6bbac44731fb78b9964942165c7c3048
+  languageName: node
+  linkType: hard
+
+"fresh@npm:0.5.2":
+  version: 0.5.2
+  resolution: "fresh@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"
+  checksum: 2f76c8505d1ea5a6d5accea3e7aff0b796bfa43364c84929254f33909fa08640948bd1728220d1ff5f4c2b378a65e97da647f2fe0f2b7ddb44001f6e0dc2e91f
+  languageName: node
+  linkType: hard
+
+"fs-constants@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "fs-constants@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"
+  checksum: b8382395f555012591b20bddf08d258723f660b4e7312943d10431a893e2af879295fefc15a917df43c9ed52d80d2f014c0ca8ca359367969be5c8a133e39742
+  languageName: node
+  linkType: hard
+
+"fs-extra@npm:^8.1.0":
+  version: 8.1.0
+  resolution: "fs-extra@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"
+  dependencies:
+    graceful-fs: ^4.2.0
+    jsonfile: ^4.0.0
+    universalify: ^0.1.0
+  checksum: 056a96d4f55ab8728b021e251175a4a6440d1edb5845e6c2e8e010019bde3e63de188a0eb99386c21c71804ca1a571cd6e08f507971f10a2bc4f4f7667720fa4
+  languageName: node
+  linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "fs-minipass@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"
+  dependencies:
+    minipass: ^3.0.0
+  checksum: e14a490658621cf1f7d8cbf9e92a9cc4dc7ce050418e4817e877e4531c438223db79f7a1774668087428d665a3de95f87014ce36c8afdc841fea42bcb782abcb
+  languageName: node
+  linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "fs.realpath@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"
+  checksum: 698a91b1695e3926185c9e5b0dd57cf687dceb4eb73799af91e6b2ab741735e2962c366c5af6403ffddae2619914193bd339efa706fdc984d0ffc74b7a3603f4
+  languageName: node
+  linkType: hard
+
+fsevents@^1.2.7:
+  version: 1.2.13
+  resolution: "fsevents@npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz"
+  dependencies:
+    bindings: ^1.5.0
+    nan: ^2.12.1
+  checksum: e70509558b5f49ce9dfacb8f9e2848c6e6751a61966027789561145a9c4ae9ba4c6b28b531bc8b4ae52fdd2d4c90a3bf314e6794717e51838b27910bb41ce588
+  languageName: node
+  linkType: hard
+
+"fsevents@patch:fsevents@^1.2.7#builtin<compat/fsevents>":
+  version: 1.2.13
+  resolution: "fsevents@patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"
+  dependencies:
+    bindings: ^1.5.0
+    nan: ^2.12.1
+  checksum: 508a7e7e1e365236a7a0478392827145ba05c0181b1928b73b20c1a5212d15f6529735db897d617d7b0b051248c5720160f74c113bd727fc02de4f6cf885e1ff
+  languageName: node
+  linkType: hard
+
+"fsevents@patch:fsevents@~2.1.2#builtin<compat/fsevents>":
+  version: 2.1.3
+  resolution: "fsevents@patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"
+  dependencies:
+    node-gyp: latest
+  checksum: 0005677b72f38a129a3cbe8c3794bdc83081a2bec53dfc03b085c2e5e4ca7a33a861a779d623313652df89746d97f79d24e4fef3b101c11c39ce1ea8a9690e18
+  languageName: node
+  linkType: hard
+
+fsevents@~2.1.2:
+  version: 2.1.3
+  resolution: "fsevents@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz"
+  dependencies:
+    node-gyp: latest
+  checksum: 8977781884d06c5bcb97b5f909efdce9683c925f2a0ce7e098d2cdffe2e0a0a50b1868547bb94dca75428c06535a4a70517a7bb3bb5a974d93bf9ffc067291eb
+  languageName: node
+  linkType: hard
+
+"function-bind@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "function-bind@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"
+  checksum: ffad86e7d2010ba179aaa6a3987d2cc0ed48fa92d27f1ed84bfa06d14f77deeed5bfbae7f00bdebc0c54218392cab2b18ecc080e2c72f592431927b87a27d42b
+  languageName: node
+  linkType: hard
+
+"functional-red-black-tree@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "functional-red-black-tree@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"
+  checksum: 477ecaf62d4f8d788876099b35ed4b97586b331e729d2d28d0df96b598863d21c18b8a45a6cbecb6c2bf7f5e5ef1e82a053570583ef9a0ff8336683ab42b8d14
+  languageName: node
+  linkType: hard
+
+"gauge@npm:~2.7.3":
+  version: 2.7.4
+  resolution: "gauge@npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"
+  dependencies:
+    aproba: ^1.0.3
+    console-control-strings: ^1.0.0
+    has-unicode: ^2.0.0
+    object-assign: ^4.1.0
+    signal-exit: ^3.0.0
+    string-width: ^1.0.1
+    strip-ansi: ^3.0.1
+    wide-align: ^1.1.0
+  checksum: b136dbeb8e40acaaddab6c71c9f34d3c9aa104efc538c8c0ddcd74b25efb8daeb8dca24a9b30626b477d66beccd3dee8dd31e25eb4c7c97ec58a3f1a82914be1
+  languageName: node
+  linkType: hard
+
+"gensync@npm:^1.0.0-beta.1":
+  version: 1.0.0-beta.1
+  resolution: "gensync@npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"
+  checksum: 3d14f7c34fc903dd52c36d0879de2c4afde8315edccd630e97919c365819b32c06d98770ef87f7ba45686ee5d2bd5818354920187659b42828319f7cc3352fdb
+  languageName: node
+  linkType: hard
+
+"get-caller-file@npm:^2.0.1":
+  version: 2.0.5
+  resolution: "get-caller-file@npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"
+  checksum: 9dd9e1e2591039ee4c38c897365b904f66f1e650a8c1cb7b7db8ce667fa63e88cc8b13282b74df9d93de481114b3304a0487880d31cd926dfda6efe71455855d
+  languageName: node
+  linkType: hard
+
+"get-own-enumerable-property-symbols@npm:^3.0.0":
+  version: 3.0.2
+  resolution: "get-own-enumerable-property-symbols@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"
+  checksum: 23f13946c768d9803a8e072ba13a4250528ced6bd5af4b4b31306eb197281f01a6426936b24b16725ff0e55f9097475296e4bcdb6d33455989683c3d385079ce
+  languageName: node
+  linkType: hard
+
+"get-stdin@npm:^6.0.0":
+  version: 6.0.0
+  resolution: "get-stdin@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"
+  checksum: b51d664838aef7f8353dc57371ce59cea54d8d584fec015a9d89d24561e95b97806d5b5ba120bc81574c9ed63cb3e210176ffa0ff9263c7e7ba4d56d0fe54913
+  languageName: node
+  linkType: hard
+
+"get-stream@npm:^4.0.0":
+  version: 4.1.0
+  resolution: "get-stream@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"
+  dependencies:
+    pump: ^3.0.0
+  checksum: f41bb3c74de09d1dbe1e9d0b6d12520875d99b7ecd32c71ee21eea26d32ca74110e2406922ca64ed8cd6f10076c5f59e4fd128f10cc292eae3b669379e5f18ed
+  languageName: node
+  linkType: hard
+
+"get-stream@npm:^5.0.0":
+  version: 5.2.0
+  resolution: "get-stream@npm:5.2.0"
+  dependencies:
+    pump: ^3.0.0
+  checksum: c71c5625f4573a33823371da253b4183df6bdb28cb678d03bab9b5f91626d92d6f3f5ae2404c5efdc1248fbb82204e4dae4283c7ff3cc14e505754f9f748f217
+  languageName: node
+  linkType: hard
+
+"get-stream@npm:^5.1.0":
+  version: 5.1.0
+  resolution: "get-stream@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"
+  dependencies:
+    pump: ^3.0.0
+  checksum: 599dad0b6b9e41602c5a383d218e929209774e66bd3345d5ba6b87e305a16e5d4263936cab974804a30cfeebb1d9e6082f0dba4a463fcce0ba75b922b7c9d861
+  languageName: node
+  linkType: hard
+
+"get-value@npm:^2.0.3, get-value@npm:^2.0.6":
+  version: 2.0.6
+  resolution: "get-value@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"
+  checksum: f08da3262718e0f2617703cc99ecd0ddb4cca1541b0022118f898824c99157778e044c802160688dc184b17e5a894d11c5771aaadc376c68cdf66bdbc25ff865
+  languageName: node
+  linkType: hard
+
+"getpass@npm:^0.1.1":
+  version: 0.1.7
+  resolution: "getpass@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"
+  dependencies:
+    assert-plus: ^1.0.0
+  checksum: 2650725bc6939616da8432e5351ca87d8b29421bb8dc19c21bad2c37cd337d2a50d36fcc398ce0c16a075f6079afe114131780dca7e2f4b96063e53e7d28fd7a
+  languageName: node
+  linkType: hard
+
+"glob-parent@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "glob-parent@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"
+  dependencies:
+    is-glob: ^3.1.0
+    path-dirname: ^1.0.0
+  checksum: 2827ec4405295b660d5ec3e400d84d548a22fc38c3de8fb4586258248bb24afc4515f377935fd80b8397debeb56ffe0d2f4e91233e3a1377fe0d1ddbceb605fc
+  languageName: node
+  linkType: hard
+
+"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.0, glob-parent@npm:^5.1.1, glob-parent@npm:~5.1.0":
+  version: 5.1.1
+  resolution: "glob-parent@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"
+  dependencies:
+    is-glob: ^4.0.1
+  checksum: 2af6e196fba4071fb07ba261366e446ba2b320e6db0a2069cf8e12117c5811abc6721f08546148048882d01120df47e56aa5a965517a6e5ba19bfeb792655119
+  languageName: node
+  linkType: hard
+
+"glob-to-regexp@npm:^0.4.1":
+  version: 0.4.1
+  resolution: "glob-to-regexp@npm:0.4.1"
+  checksum: 6093c15d9f92d010998dd7cc7a5ba4e74eea83878d3f8c2616c6935dab9a79bf31ca7ddc214604b84a87c65b9e51481221e325be68f5fe6db8ed27dc76a5230f
+  languageName: node
+  linkType: hard
+
+"glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
+  version: 7.1.6
+  resolution: "glob@npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"
+  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
+  checksum: 789977b52432865bd63846da5c75a6efc2c56abdc0cb5ffcdb8e91eeb67a58fa5594c1195d18b2b4aff99675b0739ed6bd61024b26562e0cca18c8f993efdc82
+  languageName: node
+  linkType: hard
+
+"global@npm:^4.3.0":
+  version: 4.4.0
+  resolution: "global@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"
+  dependencies:
+    min-document: ^2.19.0
+    process: ^0.11.10
+  checksum: da0cf92ef034b63cf4d0fe5e14cb71bc4c748b8c1bbeabe4061443562ba8e9027774f8074e66543fa98f0d965da6d11e0861e3bf8c628b7ab19220e8ee18cc71
+  languageName: node
+  linkType: hard
+
+"globals@npm:^11.1.0":
+  version: 11.12.0
+  resolution: "globals@npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"
+  checksum: 2563d3306a7e646fd9ec484b0ca29bf8847d9dc6ebbe86026f11e31bda04f420f6536c2decbd4cb96350379801d2cce352ab373c40be8b024324775b31f882f9
+  languageName: node
+  linkType: hard
+
+"globals@npm:^12.1.0":
+  version: 12.4.0
+  resolution: "globals@npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"
+  dependencies:
+    type-fest: ^0.8.1
+  checksum: 0b9764bdeab0bc9762dea8954a0d4c5db029420bd8bf693df9098ce7e045ccaf9b2d259185396fd048b051d42fdc8dc7ab02af62e3dbeb2324a78a05aac8d33c
+  languageName: node
+  linkType: hard
+
+"globals@npm:^9.18.0":
+  version: 9.18.0
+  resolution: "globals@npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"
+  checksum: ad86a4b4d7348a259c4a0748c5f4c7c1c51c624567a48538092b7fc0b6cba7d9de9d16e7b788c693b590856608f9a697af2295ff278ff442d8fa705dd1240164
+  languageName: node
+  linkType: hard
+
+"globby@npm:^11.0.1":
+  version: 11.0.1
+  resolution: "globby@npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"
+  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
+  checksum: e7239e9e468c3692aec31dc97b5efc13dd21edf38820baeda98118ade39f475c4ff9e7610859eb4a3c75277ca2616e371265fec3c626aba5db4335bc41c59ac7
+  languageName: node
+  linkType: hard
+
+"globby@npm:^6.1.0":
+  version: 6.1.0
+  resolution: "globby@npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"
+  dependencies:
+    array-union: ^1.0.1
+    glob: ^7.0.3
+    object-assign: ^4.0.1
+    pify: ^2.0.0
+    pinkie-promise: ^2.0.0
+  checksum: 7acac933247f203624c502e6db54995d355ae2ce618be40a6a125c73bac9fa1bb775cf2b0959d92807605534f7b29cf711bc354febb8a6dc2ecbaa1cbf59efa5
+  languageName: node
+  linkType: hard
+
+"got@npm:^11.1.3":
+  version: 11.5.1
+  resolution: "got@npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"
+  dependencies:
+    "@sindresorhus/is": ^3.0.0
+    "@szmarczak/http-timer": ^4.0.5
+    "@types/cacheable-request": ^6.0.1
+    "@types/responselike": ^1.0.0
+    cacheable-lookup: ^5.0.3
+    cacheable-request: ^7.0.1
+    decompress-response: ^6.0.0
+    http2-wrapper: ^1.0.0-beta.5.0
+    lowercase-keys: ^2.0.0
+    p-cancelable: ^2.0.0
+    responselike: ^2.0.0
+  checksum: a746db1245438bfcdf97f093070dfb7fd731d7ba2d4be8eb505504dfb83def90f977688fb9c0fda879e261d2b2b641e915dd895d9d93a44a388dfe622b8a749d
+  languageName: node
+  linkType: hard
+
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.3":
+  version: 4.2.4
+  resolution: "graceful-fs@npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"
+  checksum: d095ee4dc6eacc76814cd52d5d185b860119378a6fd4888e7d4e94983095c54d4f6369942a5e3d759cdbdd4e3ee7eaeb27a39ff938c6ee4610894fd9de46b6cb
+  languageName: node
+  linkType: hard
+
+"graceful-fs@npm:^4.2.4":
+  version: 4.2.4
+  resolution: "graceful-fs@npm:4.2.4"
+  checksum: d095ee4dc6eacc76814cd52d5d185b860119378a6fd4888e7d4e94983095c54d4f6369942a5e3d759cdbdd4e3ee7eaeb27a39ff938c6ee4610894fd9de46b6cb
+  languageName: node
+  linkType: hard
+
+"grapheme-splitter@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "grapheme-splitter@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"
+  checksum: 6875e94add80360364a609e1fd0fe325e3b82326db2278dd36c1011a6bfc0e098811e791dedf9a88d4ae3f9d17a5c6a8d684948dd7b097f1f8d5ff905676e2b2
+  languageName: node
+  linkType: hard
+
+"handle-thing@npm:^2.0.0":
+  version: 2.0.1
+  resolution: "handle-thing@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"
+  checksum: 7509fca9ebc8c119c8d36a7de19216dfcd120a2f9ac0a7f4e7836549561f728bfe4d86fbe604805c0f4d574c2eed756c54486b9ddc436d0387d8397c7c00a434
+  languageName: node
+  linkType: hard
+
+"har-schema@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "har-schema@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"
+  checksum: e27ac33a968b8a3b2cc32e53afaec8aa795d08b058ef9b09b3bbce74db7ecadcabf60a6186e3bb901335d2c72bbf9e2af59429d736b5e80dc0edf18b3e1c5860
+  languageName: node
+  linkType: hard
+
+"har-validator@npm:~5.1.3":
+  version: 5.1.3
+  resolution: "har-validator@npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"
+  dependencies:
+    ajv: ^6.5.5
+    har-schema: ^2.0.0
+  checksum: 64cb2294c1eceba077280e31d7059e54a99aca442ade03b7e14af3d715f7f1c01c6e1a6df21252b0aff9bea7b06fc10539bb99ebe1acf46321e97f197bbb932b
+  languageName: node
+  linkType: hard
+
+"has-ansi@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "has-ansi@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"
+  dependencies:
+    ansi-regex: ^2.0.0
+  checksum: c6805f5d01ced45ba247ff2b8c914f401e70aa9086552d8eafbdf6bc0b0e38ea4a3bf1a387d100ff5f07e5854bca96532a01777820a16be2cdf8cf6582091bad
+  languageName: node
+  linkType: hard
+
+"has-flag@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "has-flag@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"
+  checksum: 63aade480d27aeedb3b5b63a2e069d47d0006bf182338d662e7941cdc024e68a28418e0efa8dc5df30db9c4ee2407f39e6ea3f16cfbc6b83848b450826a28aa0
+  languageName: node
+  linkType: hard
+
+"has-flag@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "has-flag@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"
+  checksum: 2e5391139d3d287231ccb58659702392f6e3abeac3296fb4721afaff46493f3d9b99a9329ae015dfe973aa206ed5c75f43e86aec0267dce79aa5c2b6e811b3ad
+  languageName: node
+  linkType: hard
+
+"has-own-prop@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "has-own-prop@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"
+  checksum: 8513ff905297afb7b65f4e22012a2c8e20ab006067841015bf338cfd23019b6c7cec89b5192b4cb7eaaa2a5370d2474dc9a0bcfdfd71100c45b8d3be9882f45b
+  languageName: node
+  linkType: hard
+
+"has-symbols@npm:^1.0.0, has-symbols@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "has-symbols@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"
+  checksum: 84e2a03ada6f530f0c1ebea64df5932556ac20a4b78998f1f2b5dd0cf736843e8082c488b0ea7f08b9aec72fb6d8b736beed2fd62fac60dcaebfdc0b8d2aa7ac
+  languageName: node
+  linkType: hard
+
+"has-unicode@npm:^2.0.0":
+  version: 2.0.1
+  resolution: "has-unicode@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"
+  checksum: ed3719f95cbd7dada9e3fde6fad113eae6d317bc8e818a2350954914c098ca6eddb203261af2c291c49a14c52f83610becbc7ab8d569bee81261b9c260a435f2
+  languageName: node
+  linkType: hard
+
+"has-value@npm:^0.3.1":
+  version: 0.3.1
+  resolution: "has-value@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"
+  dependencies:
+    get-value: ^2.0.3
+    has-values: ^0.1.4
+    isobject: ^2.0.0
+  checksum: d78fab4523ad531894a84d840e00ac8041e5958e44a418c56517ac62436b7c827154ab79748b4b7f6aa1358cd7d74f888be52744115c56e6acedc7cb5523e213
+  languageName: node
+  linkType: hard
+
+"has-value@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "has-value@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"
+  dependencies:
+    get-value: ^2.0.6
+    has-values: ^1.0.0
+    isobject: ^3.0.0
+  checksum: e05422bce9a522e79332cba48ec7c01fb4c4b04b0d030417fdc9e2ea53508479d7efcb3184d4f7a5cf5070a99043836f18962bab25c728362d2abc29ec18b574
+  languageName: node
+  linkType: hard
+
+"has-values@npm:^0.1.4":
+  version: 0.1.4
+  resolution: "has-values@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"
+  checksum: df7ac830e460d399b181203c12cacaeaa1dcf0febceeed78fcfa0a6354879aa6c64c6b1ec049ce1c850a9b545d7a85fecc71741a5b743e0ad5dbd3e9928adff6
+  languageName: node
+  linkType: hard
+
+"has-values@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "has-values@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"
+  dependencies:
+    is-number: ^3.0.0
+    kind-of: ^4.0.0
+  checksum: b69c45d5132bc29d54a9a28e5ee53a35ab4109f3335a035c37e3511fe94234e848169e2e7d583f4fa889a92646f3018287361d47d9f636c0e2880c0856c79a58
+  languageName: node
+  linkType: hard
+
+"has@npm:^1.0.3":
+  version: 1.0.3
+  resolution: "has@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"
+  dependencies:
+    function-bind: ^1.1.1
+  checksum: c686e15300d41364486c099a9259d9c418022c294244843dcd712c4c286ff839d4f23a25413baa28c4d2c1e828afc2aaab70f685400b391533980223c71fa1ca
+  languageName: node
+  linkType: hard
+
+"he@npm:^1.1.1, he@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "he@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"
+  bin:
+    he: bin/he
+  checksum: 212122003c20c8c17ac0c83a419b4c8e835411ff6ab9195d053ea6e4a0597cc005b5b8eabcbd57b0b0c0fe676f0049e09315845fff4e051198845491cbba260e
+  languageName: node
+  linkType: hard
+
+"history@npm:^4.9.0":
+  version: 4.10.1
+  resolution: "history@npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"
+  dependencies:
+    "@babel/runtime": ^7.1.2
+    loose-envify: ^1.2.0
+    resolve-pathname: ^3.0.0
+    tiny-invariant: ^1.0.2
+    tiny-warning: ^1.0.0
+    value-equal: ^1.0.1
+  checksum: 3b302b54c08f61f040a265ae9608c6dba88260179b9ddfe542042465ccf79e2ff19e792cb70c6e0240e80bc00b29aad5308d1f277815b1e95662bd5b819c625b
+  languageName: node
+  linkType: hard
+
+"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0":
+  version: 3.3.2
+  resolution: "hoist-non-react-statics@npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"
+  dependencies:
+    react-is: ^16.7.0
+  checksum: d3e3791d6e3a2741ce0ba38e878081dec49247ef22982a990c80941ee1f564ef16cd5a511bcc8c5e54f1ce8205535e0414ca5feea722c0690c80040be7ebf9df
+  languageName: node
+  linkType: hard
+
+"hosted-git-info@npm:^2.1.4":
+  version: 2.8.8
+  resolution: "hosted-git-info@npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"
+  checksum: 3ecc389dc6ecbd5463fada7e04461e96f3c817fe2f989ca41e9dd3b503745a0bfa26fba405861b2831ca64edc1abc5d2fbc97ee977303f89650dac4fbfdc2d7a
+  languageName: node
+  linkType: hard
+
+"hpack.js@npm:^2.1.6":
+  version: 2.1.6
+  resolution: "hpack.js@npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"
+  dependencies:
+    inherits: ^2.0.1
+    obuf: ^1.0.0
+    readable-stream: ^2.0.1
+    wbuf: ^1.1.0
+  checksum: a22a28aa318167f29d65994ac28a238356142a3dcbcdcf20b0a87f14a746af7017596c91a895933d79ee68edf0303a4de5e629a2141cb1dbddb2cd9cad07418b
+  languageName: node
+  linkType: hard
+
+"html-entities@npm:^1.3.1":
+  version: 1.3.1
+  resolution: "html-entities@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"
+  checksum: 53d37e5161230ad7f2c16dd2b54945069d84b5167113eac55e39a8fffed357378afc022d5dc66045b132ea46232cab41aee86e79dd5cd0618e0b78776b9085b5
+  languageName: node
+  linkType: hard
+
+"html-minifier-terser@npm:^5.0.1":
+  version: 5.1.1
+  resolution: "html-minifier-terser@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"
+  dependencies:
+    camel-case: ^4.1.1
+    clean-css: ^4.2.3
+    commander: ^4.1.1
+    he: ^1.2.0
+    param-case: ^3.0.3
+    relateurl: ^0.2.7
+    terser: ^4.6.3
+  bin:
+    html-minifier-terser: cli.js
+  checksum: d05dea891f5977a35691306b1fb40438cffd6620c2f5a69d7ecb67bfa836af1d36c24978edd1616dc6d27e230561bd756c5f11b3054e6ebf2f8448289e3ca73d
+  languageName: node
+  linkType: hard
+
+"html-parse-stringify2@npm:2.0.1":
+  version: 2.0.1
+  resolution: "html-parse-stringify2@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"
+  dependencies:
+    void-elements: ^2.0.1
+  checksum: 71159c76d54e7e8c1dad808b7ed3f3410e7846b496e3910f0c14f78ade875477b3f6b320ee1259ba5a7689a7ba61bee0b23f9f50ae1d33189de73bf436fb2a52
+  languageName: node
+  linkType: hard
+
+"html-webpack-plugin@npm:^4.5.0":
+  version: 4.5.0
+  resolution: "html-webpack-plugin@npm:4.5.0"
+  dependencies:
+    "@types/html-minifier-terser": ^5.0.0
+    "@types/tapable": ^1.0.5
+    "@types/webpack": ^4.41.8
+    html-minifier-terser: ^5.0.1
+    loader-utils: ^1.2.3
+    lodash: ^4.17.15
+    pretty-error: ^2.1.1
+    tapable: ^1.1.3
+    util.promisify: 1.0.0
+  peerDependencies:
+    webpack: ^4.0.0 || ^5.0.0
+  checksum: df4dd38bd886aaac4cdcfa40f80fd35eb310810c8cad5bf1f7b8ca91550ad7d9f277c80dd4015fd2b0ef235d0384e9708b92a9c39f33d1b09090ca6fd8fdb53b
+  languageName: node
+  linkType: hard
+
+"htmlparser2@npm:^3.3.0":
+  version: 3.10.1
+  resolution: "htmlparser2@npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"
+  dependencies:
+    domelementtype: ^1.3.1
+    domhandler: ^2.3.0
+    domutils: ^1.5.1
+    entities: ^1.1.1
+    inherits: ^2.0.1
+    readable-stream: ^3.1.1
+  checksum: 94fa6312e6c378b1c0f1626d3f468f0b25c5dcf6689bfa61fa0002c044c4c77842b5122feb84b501b02539165917febba0ffe754046996c9e8ed77c1bb65e66c
+  languageName: node
+  linkType: hard
+
+"http-cache-semantics@npm:^4.0.0":
+  version: 4.1.0
+  resolution: "http-cache-semantics@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"
+  checksum: 451df9784af2acbe0cc1fd70291285c08ca4a8966ab5ee4d3975e003d1ad4d74c81473086d628f31296b31221966fda8bc5ea1e29dd8f1f33f9fc2b0fdca65ca
+  languageName: node
+  linkType: hard
+
+"http-deceiver@npm:^1.2.7":
+  version: 1.2.7
+  resolution: "http-deceiver@npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"
+  checksum: d0b10fce2548f9ffda9dc1707224e009ea9c132f3df7df2ba1d293a91c5f21efea618bc3737a21116b427c3d09187649b0158582f9174d2b61cd69bee7939d7d
+  languageName: node
+  linkType: hard
+
+"http-errors@npm:1.7.2":
+  version: 1.7.2
+  resolution: "http-errors@npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"
+  dependencies:
+    depd: ~1.1.2
+    inherits: 2.0.3
+    setprototypeof: 1.1.1
+    statuses: ">= 1.5.0 < 2"
+    toidentifier: 1.0.0
+  checksum: 8ce4a4af05a3652c81768a2754ced24b86ff62e7bee147a27b6ef8cde24e7a48f9fbfcb87ec6f67781879b95f1b35d3f8d6378e8555eb7d469ce875f4e184418
+  languageName: node
+  linkType: hard
+
+"http-errors@npm:~1.6.2":
+  version: 1.6.3
+  resolution: "http-errors@npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"
+  dependencies:
+    depd: ~1.1.2
+    inherits: 2.0.3
+    setprototypeof: 1.1.0
+    statuses: ">= 1.4.0 < 2"
+  checksum: 850a3bf69ffc56c5151cea4a31bdf47412b7a6af3ee3f4fc92d3c4d90f8398d8843806f0d81916b310b661eed93722272cf2d41c2cac2fd5d1d1c66d4077942c
+  languageName: node
+  linkType: hard
+
+"http-errors@npm:~1.7.2":
+  version: 1.7.3
+  resolution: "http-errors@npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"
+  dependencies:
+    depd: ~1.1.2
+    inherits: 2.0.4
+    setprototypeof: 1.1.1
+    statuses: ">= 1.5.0 < 2"
+    toidentifier: 1.0.0
+  checksum: 563ae4a3f19c89029212922bade6ffcd0e4b7fa52e539f08c8f6941de7eaccb00bf76cb7692662192f2f0d567d4ac1f9d6a3d0ee70b166c8540cf791497f90ea
+  languageName: node
+  linkType: hard
+
+"http-proxy-middleware@npm:0.19.1":
+  version: 0.19.1
+  resolution: "http-proxy-middleware@npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"
+  dependencies:
+    http-proxy: ^1.17.0
+    is-glob: ^4.0.0
+    lodash: ^4.17.11
+    micromatch: ^3.1.10
+  checksum: 30f6e99935057bdd1e8323f34ee933822606fd762a912813182d4846b9acbf49f1e1767f0939f9ea1a503291727c1023dadaa41986b05b1d1ca9d420c67b5e09
+  languageName: node
+  linkType: hard
+
+"http-proxy@npm:^1.17.0, http-proxy@npm:^1.18.0":
+  version: 1.18.1
+  resolution: "http-proxy@npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"
+  dependencies:
+    eventemitter3: ^4.0.0
+    follow-redirects: ^1.0.0
+    requires-port: ^1.0.0
+  checksum: fc2062718d77868eff0d2707652d7e0d302a0f85d90f317daa410df5c41fbe009589c80bc73cc72a44368bb37d071c8f52aaa5b3ce82a08f3524a79ddf178b9b
+  languageName: node
+  linkType: hard
+
+"http-server@npm:^0.12.3":
+  version: 0.12.3
+  resolution: "http-server@npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"
+  dependencies:
+    basic-auth: ^1.0.3
+    colors: ^1.4.0
+    corser: ^2.0.1
+    ecstatic: ^3.3.2
+    http-proxy: ^1.18.0
+    minimist: ^1.2.5
+    opener: ^1.5.1
+    portfinder: ^1.0.25
+    secure-compare: 3.0.1
+    union: ~0.5.0
+  bin:
+    hs: bin/http-server
+    http-server: bin/http-server
+  checksum: cbb1f5b9261f7018372f1356bcd2c8a67c8e8aaed9d0c47adcf28e7cb31f866a339285bc5a544bb85ece5ea12807ce9b86c6e465afea2a2195888672d4dd25f9
+  languageName: node
+  linkType: hard
+
+"http-signature@npm:~1.2.0":
+  version: 1.2.0
+  resolution: "http-signature@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"
+  dependencies:
+    assert-plus: ^1.0.0
+    jsprim: ^1.2.2
+    sshpk: ^1.7.0
+  checksum: d28227eed37cb0dae0e76c46b2a5e611c678808433e5642238f17dba7f2c9c8f8d1646122d57ec1a110ecc7e8b9f5b7aa0462f1e2a5fa3b41f2fca5a69af7edf
+  languageName: node
+  linkType: hard
+
+"http2-wrapper@npm:^1.0.0-beta.5.0":
+  version: 1.0.0-beta.5.2
+  resolution: "http2-wrapper@npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"
+  dependencies:
+    quick-lru: ^5.1.1
+    resolve-alpn: ^1.0.0
+  checksum: 74db457c83d2cef5ea36e6a0a013a0a12b3fff575c4cabfc91c012b7335463d09ed3dba2d7e87babab4396a170df466730b1c13d92f99bbdd82b7aec99387683
+  languageName: node
+  linkType: hard
+
+"human-signals@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "human-signals@npm:1.1.1"
+  checksum: cac115f635090055427bbd9d066781b17de3a2d8bbf839d920ae2fa52c3eab4efc63b4c8abc10e9a8b979233fa932c43a83a48864003a8c684ed9fb78135dd45
+  languageName: node
+  linkType: hard
+
+"hyphenate-style-name@npm:^1.0.0":
+  version: 1.0.4
+  resolution: "hyphenate-style-name@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"
+  checksum: 4cfeb47e98eab9c25e6dece20da772cc914a9f8e5ee794cf8db105b0649dd64a61d8ee8ff32acf23ae0ac181db8fcbe4a6abb2f7de48ae52b42a85bbf1aacb86
+  languageName: node
+  linkType: hard
+
+"i18next-browser-languagedetector@npm:^6.0.1":
+  version: 6.0.1
+  resolution: "i18next-browser-languagedetector@npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"
+  dependencies:
+    "@babel/runtime": ^7.5.5
+  checksum: 760bc83f3bfdf18622a55d732c295130fb9d496e5a1ce389820dd253a3b53f4179826da9cb1b915167ff33c25fc33b5bd93bae8157135c026cd91d0e3a1df4fc
+  languageName: node
+  linkType: hard
+
+"i18next@npm:^19.8.3":
+  version: 19.8.3
+  resolution: "i18next@npm:19.8.3"
+  dependencies:
+    "@babel/runtime": ^7.12.0
+  checksum: 0dd7b4a9971e830a387f8b163485c89da4c5fa975f7d1a6441b1500ab58d063ff9a3866cf02e961fe4ee6f87a260991688a325c78d668411ee711f694ee7fe91
+  languageName: node
+  linkType: hard
+
+"iconv-lite@npm:0.4.24":
+  version: 0.4.24
+  resolution: "iconv-lite@npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"
+  dependencies:
+    safer-buffer: ">= 2.1.2 < 3"
+  checksum: a9b9521066ee81853a8561e92bd7240bc5d3b7d5ef7da807a475e7858b0246e318b6af518c30a20a8749ef5eafeaa9631079446e4e696c7b60f468b34dc2cbfc
+  languageName: node
+  linkType: hard
+
+"icss-utils@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "icss-utils@npm:5.0.0"
+  peerDependencies:
+    postcss: ^8.1.0
+  checksum: c0f385f09dd428269700bd7a3e90fb44f0e866b11807f215e2dfe6db26d02248a362625c62c819bd4cd0116b0fc2c7c148b25f3ea9edba91285e8a09a5d2a0a0
+  languageName: node
+  linkType: hard
+
+"ieee754@npm:^1.1.4":
+  version: 1.1.13
+  resolution: "ieee754@npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"
+  checksum: 9ef12932e8aeae1c614f314783b3770fac5daae7ae92ebffcda97da58efd77c0289181093666f6048e02c566ceeec4d0edf3b04b57ce8e0b57e9b3814a870469
+  languageName: node
+  linkType: hard
+
+"ignore@npm:^4.0.6":
+  version: 4.0.6
+  resolution: "ignore@npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"
+  checksum: 8f7b7f7c261d110604aed4340771933b0a42ffd2075e87bf8b4229ceb679659c5384c99e25c059f53a2b0e16cebaa4c49f7e837d1f374d1abf91fea46ccddd1a
+  languageName: node
+  linkType: hard
+
+"ignore@npm:^5.1.4":
+  version: 5.1.8
+  resolution: "ignore@npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"
+  checksum: b08e3d5b5d94eca13475f29a5d47d221060e9cdd7e38d7647088e29d90130669a970fecbc4cdb41b8fa295c6673740c729d3dc05dadc381f593efb42282cbf9f
+  languageName: node
+  linkType: hard
+
+"immediate@npm:~3.0.5":
+  version: 3.0.6
+  resolution: "immediate@npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"
+  checksum: e86d4d20e2da86f9a4629d9aee9d56dfae7d3a7ace7f569b0538f2ec2570d86b3cbdc52c546d23be2cfd28306670f44676fc833cd96d9506659b8c5ab8202ca4
+  languageName: node
+  linkType: hard
+
+"import-fresh@npm:^3.0.0":
+  version: 3.2.1
+  resolution: "import-fresh@npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"
+  dependencies:
+    parent-module: ^1.0.0
+    resolve-from: ^4.0.0
+  checksum: 5ace95063123e8c2e30cfe302421f3ef1598d4fff9763c1b6bbed0ab4e700a16e45078fbfc3f7a8a5c3680e01edf707bca25354dec90a268b9803074e46bc89c
+  languageName: node
+  linkType: hard
+
+"import-fresh@npm:^3.2.1":
+  version: 3.2.1
+  resolution: "import-fresh@npm:3.2.1"
+  dependencies:
+    parent-module: ^1.0.0
+    resolve-from: ^4.0.0
+  checksum: 5ace95063123e8c2e30cfe302421f3ef1598d4fff9763c1b6bbed0ab4e700a16e45078fbfc3f7a8a5c3680e01edf707bca25354dec90a268b9803074e46bc89c
+  languageName: node
+  linkType: hard
+
+"import-local@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "import-local@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"
+  dependencies:
+    pkg-dir: ^3.0.0
+    resolve-cwd: ^2.0.0
+  bin:
+    import-local-fixture: fixtures/cli.js
+  checksum: 4729bf153cf0d5ca5ee15f7fd7c93d17e7f129704525d5272e33a800cdf656b70d31bb2a5a25c3743d431b35e3fe8edd44b4e36cd7f10c71c092ca0cae76ef8e
+  languageName: node
+  linkType: hard
+
+"import-local@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "import-local@npm:3.0.2"
+  dependencies:
+    pkg-dir: ^4.2.0
+    resolve-cwd: ^3.0.0
+  bin:
+    import-local-fixture: fixtures/cli.js
+  checksum: 9ba5f1697b8b11aae8dab7964bf1c2409ed5dc51dd03fe8698fb32df04a3a683adbe9d95e6bb963a384373ec8d055c508f0c534b45aac1de4a3b4b653e6cfe82
+  languageName: node
+  linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+  version: 0.1.4
+  resolution: "imurmurhash@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"
+  checksum: 34d414d789286f6ef4d2b954c76c7df40dd7cabffef9b9959c8bd148677e98151f4fa5344aae2e3ad2b62308555ccbba3022e535a3e24288c9babb1308e35532
+  languageName: node
+  linkType: hard
+
+"indent-string@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "indent-string@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"
+  checksum: 3e54996c6e15ca00a7a4403be705bce4fb3bb4ac637da2e1473006e42a651863f53bfb8c3438c1b3aac77817768ac0cde0e7b7a81a6cf24a1286227a06510dbf
+  languageName: node
+  linkType: hard
+
+"indexes-of@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "indexes-of@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"
+  checksum: e1c232a32631c709bb8a2188d0a53c02aae18904fff0165322a353dfd2985e0b3ea184b2b15b74acc363a0344dc6e8dc927b874935a738e8ce0e5253e4a9da98
+  languageName: node
+  linkType: hard
+
+"infer-owner@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "infer-owner@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"
+  checksum: 56aa1d87b05936947765b1d9ace5f8d7ccd8cf6ccc1d69b67e8eaaee0e1ee2960d5accd51deb50d884665a5a1af3bcbb80f5d249c01a00280365bba59db9687b
+  languageName: node
+  linkType: hard
+
+"inflight@npm:^1.0.4":
+  version: 1.0.6
+  resolution: "inflight@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"
+  dependencies:
+    once: ^1.3.0
+    wrappy: 1
+  checksum: 17c53fc42cbe7f7f471d2bc41b97a0cde4b79a74d5ff59997d3f75210566fa278e17596da526d43de2bd07e222706240ce50e60097e54f2cde2e64cbbb372638
+  languageName: node
+  linkType: hard
+
+"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3":
+  version: 2.0.4
+  resolution: "inherits@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"
+  checksum: 98426da247ddfc3dcd7d7daedd90c3ca32d5b08deca08949726f12d49232aef94772a07b36cf4ff833e105ae2ef931777f6de4a6dd8245a216b9299ad4a50bea
+  languageName: node
+  linkType: hard
+
+"inherits@npm:2.0.3":
+  version: 2.0.3
+  resolution: "inherits@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"
+  checksum: 9488f9433effbc24474f6baee8014e5337c7f99305ecb4204fa5864ae7655c24225780d87fc65ed8d3d374715a18c5dc8c69fe3bf9745cde2e7acd0ac068a07b
+  languageName: node
+  linkType: hard
+
+"internal-ip@npm:^4.3.0":
+  version: 4.3.0
+  resolution: "internal-ip@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"
+  dependencies:
+    default-gateway: ^4.2.0
+    ipaddr.js: ^1.9.0
+  checksum: 2cf2248053bd471a3f07880d76a86fa64fb16f2fe5006c0efda218224050ea383618788627498734055cc7027926b7749288f88981bb35433da3f4171824afd0
+  languageName: node
+  linkType: hard
+
+"internal-slot@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "internal-slot@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"
+  dependencies:
+    es-abstract: ^1.17.0-next.1
+    has: ^1.0.3
+    side-channel: ^1.0.2
+  checksum: 02b2bcc612fbbaa5de71acec354a7bb50d8b3b2d2df775b6df61ea41419f92b69e0562f80125d7fa3667c9fb485cc88726f8a181fb544d880c79564f0f7d7d1e
+  languageName: node
+  linkType: hard
+
+"interpret@npm:^2.0.0":
+  version: 2.2.0
+  resolution: "interpret@npm:2.2.0"
+  checksum: c89b6aa67f6957ab57e3f12c406043ea6a8a00bfd4b36bdb914080a973574bee40e25afc0b162bcab9793e39744c90cc03e23150a79ad6a4b9ea31291a23ced4
+  languageName: node
+  linkType: hard
+
+"invariant@npm:^2.2.2, invariant@npm:^2.2.4":
+  version: 2.2.4
+  resolution: "invariant@npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"
+  dependencies:
+    loose-envify: ^1.0.0
+  checksum: 96d8a2a4f0ad21020c5847546fc36bec5c0870d99f071aaa93df00c1036439d48211a1823ab6128f78a15ccc4c4f62baf6a65f6c0ed489270dd44d0a04f443a1
+  languageName: node
+  linkType: hard
+
+"ip-regex@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "ip-regex@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"
+  checksum: 2fd2190ada81b55a8a6f913bcb5a6fd6ff9da127905b4c01521f09a1d391e86d415dfe8c131ed2989d536949bb2f9654a71b9fa6f7ae2ac3ae6111b2026cc902
+  languageName: node
+  linkType: hard
+
+"ip@npm:^1.1.0, ip@npm:^1.1.5":
+  version: 1.1.5
+  resolution: "ip@npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"
+  checksum: 3ad007368cf797ec9b73fbac0a644077198dd85a128d0fe39697a78a9cdd47915577eee5c4eca9933549b575ac4716107896c2d4aa43a1622b3f72104232cad4
+  languageName: node
+  linkType: hard
+
+"ipaddr.js@npm:1.9.1, ipaddr.js@npm:^1.9.0":
+  version: 1.9.1
+  resolution: "ipaddr.js@npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"
+  checksum: de15bc7e63973d960abc43c9fbbf19589c726774f59d157d1b29382a1e86ae87c68cbd8b5c78a1712a87fc4fcd91e10762c7671950c66a1a19040ff4fd2f9c9b
+  languageName: node
+  linkType: hard
+
+"is-absolute-url@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "is-absolute-url@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"
+  checksum: 1beac700465defee2bfa881cafcf144f3365cf0f748d62880e4a726c1de525ac39e8203bed14032f10509916dd392908e24d50ce1c1a444b44655a74708f9556
+  languageName: node
+  linkType: hard
+
+"is-accessor-descriptor@npm:^0.1.6":
+  version: 0.1.6
+  resolution: "is-accessor-descriptor@npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"
+  dependencies:
+    kind-of: ^3.0.2
+  checksum: 7a7fca21855f7f5e56706d34ce089bc95b78db4ee0d11f554b642ac06b508452aaf26ffdf5dc0680c99f66e2043d78ab659760c417af60fd067ae0f09717d3cc
+  languageName: node
+  linkType: hard
+
+"is-accessor-descriptor@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "is-accessor-descriptor@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"
+  dependencies:
+    kind-of: ^6.0.0
+  checksum: 3973215c2eaea260a33d8ab227f56dc1f9bf085f68a1a27e3108378917482369992b907a57ae05a72a16591af174cf5206efca3faf608fb36eaca675f2841e13
+  languageName: node
+  linkType: hard
+
+"is-arguments@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "is-arguments@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"
+  checksum: a04bc21254cfbb77c934ec51165ef7629c12cabd2a92c2c4333280b5117f138fcec6369dd2ab7d8fe24e3af7dbc2a4ce389c53ed0b55b0f8818788c3c09f4ad2
+  languageName: node
+  linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+  version: 0.2.1
+  resolution: "is-arrayish@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"
+  checksum: fc2bbe14dbcb27b490e63b7fbf0e3b0aae843e5e1fa96d79450bb9617797615a575c78c454ffc8e027c3ad50d63d83e85a7387784979dcd46686d2eb5f412db0
+  languageName: node
+  linkType: hard
+
+"is-binary-path@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "is-binary-path@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"
+  dependencies:
+    binary-extensions: ^1.0.0
+  checksum: 25a2cda1e504403a179d1daf2773d6ea47ce383e912bc695bb9e923b5d5468447e239499be5c2212c7508be7777196810f8307e1d1f0e83a6191425eb22c2887
+  languageName: node
+  linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+  version: 2.1.0
+  resolution: "is-binary-path@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"
+  dependencies:
+    binary-extensions: ^2.0.0
+  checksum: 49a1446a3cf3719e91a061f0e52add18fd065325c652c277519a2ad333440dc8b449076a893277a46940ef16f05a908716667ca8f986b28c677b9acb11e10a36
+  languageName: node
+  linkType: hard
+
+"is-buffer@npm:^1.1.5":
+  version: 1.1.6
+  resolution: "is-buffer@npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"
+  checksum: 336ec78f00e88efe6ff6f1aa08d06aadb942a6cd320e5f538ac00648378fb964743b3737c88ce7ce8741c067e4a3b78f596b83ee1a3c72dc2885ea0b03dc84f2
+  languageName: node
+  linkType: hard
+
+"is-callable@npm:^1.1.4, is-callable@npm:^1.1.5, is-callable@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "is-callable@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"
+  checksum: 8a5e68b7c3a95159c98595789015da72e71432e638c4bc0aad4722ea6a1ffeca178838cfb6012f5b9cc1a8c61b737704bd658d8f588959a46a899961667e99f5
+  languageName: node
+  linkType: hard
+
+"is-callable@npm:^1.2.2":
+  version: 1.2.2
+  resolution: "is-callable@npm:1.2.2"
+  checksum: c35d37cc46c997d6417d7254733c8a3b1146f18121197c5600f601c56fb27abd1b372b0b9c41ea9a69d30556a2a0fd85e396da8eb8bc4af2e5ad8c5232fcd433
+  languageName: node
+  linkType: hard
+
+"is-core-module@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "is-core-module@npm:2.0.0"
+  dependencies:
+    has: ^1.0.3
+  checksum: de99dfbdf14d254f6d078aa37113512295acef3cfff5fb39fdf8020b04788535eae6da39e02b0c4ad07f7bc79594de8d5aeb4fce66f97feb9c597d7d6d6d43d4
+  languageName: node
+  linkType: hard
+
+"is-data-descriptor@npm:^0.1.4":
+  version: 0.1.4
+  resolution: "is-data-descriptor@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"
+  dependencies:
+    kind-of: ^3.0.2
+  checksum: 51db89bb4676b871a67f371f665dcf9c3fabb84e26b411beff42fb3b5505cdc0e33eeb1aeaa9c0400eb6d372a3b241c23a6953b5902397e5ff212cfbfd9edcda
+  languageName: node
+  linkType: hard
+
+"is-data-descriptor@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "is-data-descriptor@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"
+  dependencies:
+    kind-of: ^6.0.0
+  checksum: 0297518899d51c498987b1cc64fde72b0300f93a09669b6653a4d56a9cfb40c85b5988e52e36b10e88d17ad13b1927932f4631ddc02f10fa1d44a1e3150d31cd
+  languageName: node
+  linkType: hard
+
+"is-date-object@npm:^1.0.1":
+  version: 1.0.2
+  resolution: "is-date-object@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"
+  checksum: 0e322699464a99da638c8a583b74dfb791732b6bc9c102bc0b7ac6303d83c86b9935f19b8d2ed4de52092241190c8826b099cb31972dea49a99b755293c0b1cf
+  languageName: node
+  linkType: hard
+
+"is-descriptor@npm:^0.1.0":
+  version: 0.1.6
+  resolution: "is-descriptor@npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"
+  dependencies:
+    is-accessor-descriptor: ^0.1.6
+    is-data-descriptor: ^0.1.4
+    kind-of: ^5.0.0
+  checksum: cab6979fb6412eefca8e9bc3b59d239b2ce4916d6025f184eb6c3031b5d381cb536630606a4635f0f43197164a090bb500c762f713f17846c1e34dd9ae6ef607
+  languageName: node
+  linkType: hard
+
+"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "is-descriptor@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"
+  dependencies:
+    is-accessor-descriptor: ^1.0.0
+    is-data-descriptor: ^1.0.0
+    kind-of: ^6.0.2
+  checksum: be8004010eac165fa9a61513a51881c4bac324d060916d44bfee2be03edf500d5994591707147f1f4c93ae611f97de27debdd8325702158fcd0cf8fcca3fbe06
+  languageName: node
+  linkType: hard
+
+"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1":
+  version: 0.1.1
+  resolution: "is-extendable@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"
+  checksum: 9d051e68c38b09c242564b62d98cdcc0ba5b20421340c95d5ae023955dcaf31ae1d614e1eb7a18a6358d4c47ea77d811623e1777a0589df9ac5928c370edd5e5
+  languageName: node
+  linkType: hard
+
+"is-extendable@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "is-extendable@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"
+  dependencies:
+    is-plain-object: ^2.0.4
+  checksum: 2bf711afe60cc99f46699015c444db8f06c9c5553dd2b26fd8cb663fcec4bf00df1c11d02e28a8cc97b8efb49315c3c3fcf6ce1ceb09341af8e4fcccde516dd7
+  languageName: node
+  linkType: hard
+
+"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "is-extglob@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"
+  checksum: ca623e2c56c893714a237aff645ec7caa8fea4d78868682af8d6803d7f0780323f8d566311e0dc6f942c886e81cbfa517597e48fcada7f3bf78a4d099eeecdd3
+  languageName: node
+  linkType: hard
+
+"is-fullwidth-code-point@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "is-fullwidth-code-point@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"
+  dependencies:
+    number-is-nan: ^1.0.0
+  checksum: fc3d51ef082eaf0c0d44e94b74cf43b97446e008b147b08186daea8bd5ff402596f04b5fe4fa4c0457470beab5c2de8339c49c96b5be65fe9fdf88f60a0001e8
+  languageName: node
+  linkType: hard
+
+"is-fullwidth-code-point@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "is-fullwidth-code-point@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"
+  checksum: e1e5284f848ab6885665967cd768292a75022304d4401e78937a68f423047c29bfe87a43a9cdb67a3210fff7bcd5da51469122a0eff59b03261c379e58dbe921
+  languageName: node
+  linkType: hard
+
+"is-glob@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "is-glob@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"
+  dependencies:
+    is-extglob: ^2.1.0
+  checksum: 9911e04e28285c50bfd5ff79950c6cf712ed9d959ef640acba2daeca8a17a921494b78b3143d5d1749c4dc3bbeb296b8955064a4f17d014112f0c63a239322d6
+  languageName: node
+  linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:~4.0.1":
+  version: 4.0.1
+  resolution: "is-glob@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"
+  dependencies:
+    is-extglob: ^2.1.1
+  checksum: 98cd4f715f0fb81da34aa6c8be4a5ef02d8cfac3ebc885153012abc2a0410df5a572f9d0393134fcba9192c7a845da96142c5f74a3c02787efe178ed798615e6
+  languageName: node
+  linkType: hard
+
+"is-module@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "is-module@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"
+  checksum: 2cbd41e2760874130b76aee84cc53120c4feef0d0f196fa665326857b444c8549909cc840f3f3a59652a7e8df46146a77f6c0f3f70a578704e03670975843e74
+  languageName: node
+  linkType: hard
+
+"is-negative-zero@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "is-negative-zero@npm:2.0.0"
+  checksum: 87ddefbdf75c2a7cfe0bed4b01b91617972316639eec6baafdef751b66b2668513f0d48138cdcae4edd29e817111f8b156722211cf8f6415e0623c6c253049d9
+  languageName: node
+  linkType: hard
+
+"is-number@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "is-number@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"
+  dependencies:
+    kind-of: ^3.0.2
+  checksum: ae03986dedb1e414cfef5402b24c9be5e9171bc77fdaa189f468144e801b23d8abaa9bf52fb882295558a042fbb0192fb3f80759a010073884eff9ee3f196962
+  languageName: node
+  linkType: hard
+
+"is-number@npm:^7.0.0":
+  version: 7.0.0
+  resolution: "is-number@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"
+  checksum: eec6e506c6de472af4bdfd0cc477e8aeb76f0a7066c8680fcdfed5324ee31a7d2b59d22313007c58aa80eb937f0c40eefdceedb851997d46b490b49f87160369
+  languageName: node
+  linkType: hard
+
+"is-obj@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "is-obj@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"
+  checksum: 0913a3bb6424d6bfb37e2daa5ef4a5d31a388b0f5a53f36bbe1fd95f1264efe92c6fd87a5c3f41e25b3db42fe60924fe6ae1f0efb274375b090fd093a5301ccf
+  languageName: node
+  linkType: hard
+
+"is-path-cwd@npm:^2.0.0":
+  version: 2.2.0
+  resolution: "is-path-cwd@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"
+  checksum: 900f6e81445b9979705952189d7dbada79dbe6d77be3b5fc95aed3dc1cc9d77de5b286db2d525942a72a717c81aa549509b76705883415fb655183dfefce9541
+  languageName: node
+  linkType: hard
+
+"is-path-in-cwd@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "is-path-in-cwd@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"
+  dependencies:
+    is-path-inside: ^2.1.0
+  checksum: d814427f4e8757e960031bf9cf202f764a688a7d6be3bc8889335e5dc112e88731fda95556b8b6c7dc030358f4e6385e27ac9af95d0406411fc5271a94abef86
+  languageName: node
+  linkType: hard
+
+"is-path-inside@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "is-path-inside@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"
+  dependencies:
+    path-is-inside: ^1.0.2
+  checksum: e289fc4ec6df457600bac34068b7c564bf17eee703888d9eea2b0a363a0ac67bb5864e715ba428904dd683287154cab0f7f9536d7e4c23e3410c5cc024a5839b
+  languageName: node
+  linkType: hard
+
+"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4":
+  version: 2.0.4
+  resolution: "is-plain-object@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"
+  dependencies:
+    isobject: ^3.0.1
+  checksum: 2f3232267366f3cdf13d53deda1b282ba7959f28ccb2ee8e0ca168f859f0d7126c27c846ebb7c2b9821a09bbda2e1835fd4020337ba666cf3c03dc256aab7ba1
+  languageName: node
+  linkType: hard
+
+"is-regex@npm:^1.0.4, is-regex@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "is-regex@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"
+  dependencies:
+    has-symbols: ^1.0.1
+  checksum: 8fe7ae8c060ff831660be439c17a39dadc97c950d2636634f27db83b6a048695b1c46d304ba8a77efe906fb20c99755fdf4a1f628fcf75de3cdcbb687096bdaa
+  languageName: node
+  linkType: hard
+
+"is-regex@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "is-regex@npm:1.1.1"
+  dependencies:
+    has-symbols: ^1.0.1
+  checksum: 0c5b9d335c125cc59a83b9446b172d419303034f3cb570e95bfb7b45fc1dfb8bedd7ecf5e8139a99b8fed66894ee516fd7ce376feb109504f64c53092c7f07ee
+  languageName: node
+  linkType: hard
+
+"is-regexp@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "is-regexp@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"
+  checksum: b6c3ea4f405d31e20c9612f0480b5deb86d71477f3e08c78a889a8b7b4c9f9e9944b2621b997bede7b94b6f8607dc8333b521b6b69a2f8ad97c80d9eb47d04a9
+  languageName: node
+  linkType: hard
+
+"is-stream@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "is-stream@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"
+  checksum: 39843ee9ff68ebda05237199f18831eb6e0e28db7799ee9ddaac5573b0681f18b4dc427afdb7b7ad906db545e4648999c42a1810b277acc8451593ff59da00fa
+  languageName: node
+  linkType: hard
+
+"is-stream@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "is-stream@npm:2.0.0"
+  checksum: f92ba04a8b8fafbade79bdaada53a044025db2fbd3fc2be978434db9a097a4afa457c2e3222c70c2ffc38854bde3a352593d6315463a54394f08ca9e51e32b50
+  languageName: node
+  linkType: hard
+
+"is-string@npm:^1.0.5":
+  version: 1.0.5
+  resolution: "is-string@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"
+  checksum: c64c791eb75935db9055291bc598edc22f03d3879b8a050b2955ba8087642d006338a1dedf7ac414c95f985c77c2d6fce655498d33c0df248fa92228a9945720
+  languageName: node
+  linkType: hard
+
+"is-symbol@npm:^1.0.2":
+  version: 1.0.3
+  resolution: "is-symbol@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"
+  dependencies:
+    has-symbols: ^1.0.1
+  checksum: 753aa0cf95069387521b110c6646df4e0b5cce76cf604521c26b4f5d30a997a95036ed5930c0cca9e850ac6fccb04de551cc95aab71df471ee88e04ed1a96f21
+  languageName: node
+  linkType: hard
+
+"is-typedarray@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "is-typedarray@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"
+  checksum: 4e21156e7360a5916eded35c5938adf6278299a8055640864eebb251e4351cd605beccddf9af27477e19f753d453412fe0c21379bb54b55cfdf5add263076959
+  languageName: node
+  linkType: hard
+
+"is-windows@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "is-windows@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"
+  checksum: dd1ed8339a28c68fb52f05931c832488dafc90063e53b97a69ead219a5584d7f3e6e564731c2f983962ff5403afeb05365d88ce9af34c8dae76a14911020d73a
+  languageName: node
+  linkType: hard
+
+"is-wsl@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "is-wsl@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"
+  checksum: 0f15cf5d5ff025afb0ba9cb49fd425b5d533b2af700533d343b7fa9aaca2f6c8242ba1c1a4e30c925522816bf0172fec2ae7cacaae682c91ffa0cd3f88ff1e8e
+  languageName: node
+  linkType: hard
+
+"is@npm:^3.2.1":
+  version: 3.3.0
+  resolution: "is@npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"
+  checksum: 191293ded7b1906b8839201dc027087fc738e04af8e58e3fd477855b8926481ffd7873fd9bc88d91efc9448c313a8f474bfd1667e3f27e8b20c8be7f1c6b991f
+  languageName: node
+  linkType: hard
+
+"isarray@npm:0.0.1":
+  version: 0.0.1
+  resolution: "isarray@npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"
+  checksum: daeda3c23646200b0b464b7a9030d10008d7701fc6b7a1b45cafe42b4f4d2dde20835b56f19a49e04bb218245b7f7a2bcc6d0f696cff3711e4eddaa2031c611f
+  languageName: node
+  linkType: hard
+
+"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "isarray@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"
+  checksum: b0ff31a290e783f7b3fb73f2951ee7fc2946dc197b05f73577dc77f87dc3be2e0f66007bedf069123d4e5c4b691e7c89a241f6ca06f0c0f4765cdac5aa4b4047
+  languageName: node
+  linkType: hard
+
+"isexe@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "isexe@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"
+  checksum: 7b437980bb77881a146fba85cfbdf01edc2b148673e9c2722a1e49661fea73adf524430a80fdbfb8ce9f60d43224e682c657c45030482bd39e0c488fc29b4afe
+  languageName: node
+  linkType: hard
+
+"isobject@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "isobject@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"
+  dependencies:
+    isarray: 1.0.0
+  checksum: 2e7d7dd8d5874d1c32a0380f8b5d8d84aee782e0137e5978f75e27402ee2d49ca194baf7acd43d176f4fe0d925090b8b336461741674f402558e954c8c4ee886
+  languageName: node
+  linkType: hard
+
+"isobject@npm:^3.0.0, isobject@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "isobject@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"
+  checksum: b537a9ccdd8d40ec552fe7ff5db3731f1deb77581adf9beb8ae812f8d08acfa0e74b193159ac50fb01084d7ade06d114077f984e21b8340531241bf85be9a0ab
+  languageName: node
+  linkType: hard
+
+"isstream@npm:~0.1.2":
+  version: 0.1.2
+  resolution: "isstream@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"
+  checksum: 8e6e5c4cf1823562db7035d2e7bac388412060fe9bc6727eca8c608def5aa57709165c51c2e68a2fce6ff0b64d79489501b84715060c5e8a477b87b6cbcd1eca
+  languageName: node
+  linkType: hard
+
+"javascript-stringify@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "javascript-stringify@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"
+  checksum: 77e800e1b687e03d47beefeb687e318565e07f8808d8166dfb1b077b69e59ef518844a08cba01124069d43dd72d2fd7773dd44feaf468d2f8d8e23a67045d4ca
+  languageName: node
+  linkType: hard
+
+"jest-worker@npm:^24.9.0":
+  version: 24.9.0
+  resolution: "jest-worker@npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"
+  dependencies:
+    merge-stream: ^2.0.0
+    supports-color: ^6.1.0
+  checksum: 9740355081d8f98b15e035405a76a9eafc4ee2b943e00bbc74c34fa632a23e2c2d9d9efb4eb86165435ff76f8bc95dcd74ec63b5acbeb2f0755c83e77d0e71f4
+  languageName: node
+  linkType: hard
+
+"jest-worker@npm:^26.6.1":
+  version: 26.6.1
+  resolution: "jest-worker@npm:26.6.1"
+  dependencies:
+    "@types/node": "*"
+    merge-stream: ^2.0.0
+    supports-color: ^7.0.0
+  checksum: 329b65b18baf5e0e6db00dea87bdad445fcbd0d4e656dfb2a109230fb6d90ab4548ac1d48c69e7b8b83b4a2ba5e1bc380c4622ccefcbb11132a5190159e0f145
+  languageName: node
+  linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "js-tokens@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"
+  checksum: 1fc4e4667ac2d972aba65148b9cbf9c17566b2394d3504238d8492bbd3e68f496c657eab06b26b40b17db5cac0a34d153a12130e2d2d2bb6dc2cdc8a4764eb1b
+  languageName: node
+  linkType: hard
+
+"js-tokens@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "js-tokens@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"
+  checksum: 81e634d5a909ba8294758ddca47a0c0cfee90e84cc14973c072a3a27456b387ed8def0f24aff7074c02c3ba47531f4ad8b58320f5f5c4216ef46257de5350568
+  languageName: node
+  linkType: hard
+
+"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1":
+  version: 3.14.0
+  resolution: "js-yaml@npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"
+  dependencies:
+    argparse: ^1.0.7
+    esprima: ^4.0.0
+  bin:
+    js-yaml: bin/js-yaml.js
+  checksum: 2eb95464e5263aedc20ae2d9280f0e29b00adab15ece080ec42473d7055efaab24b904108644d115f687efe05a5bde02972b883aafa93607c4c108f667a56fa7
+  languageName: node
+  linkType: hard
+
+"jsbn@npm:~0.1.0":
+  version: 0.1.1
+  resolution: "jsbn@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"
+  checksum: b530d48a64e6aff9523407856a54c5b9beee30f34a410612057f4fa097d90072fc8403c49604dacf0c3e7620dca43c2b7f0de3f954af611e43716a254c46f6f5
+  languageName: node
+  linkType: hard
+
+"jsesc@npm:^2.5.1":
+  version: 2.5.2
+  resolution: "jsesc@npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"
+  bin:
+    jsesc: bin/jsesc
+  checksum: ca91ec33d74c55959e4b6fdbfee2af5f38be74a752cf0a982702e3a16239f26c2abbe19f5f84b15592570dda01872e929a90738615bd445f7b9b859781cfcf68
+  languageName: node
+  linkType: hard
+
+"jsesc@npm:~0.5.0":
+  version: 0.5.0
+  resolution: "jsesc@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"
+  bin:
+    jsesc: bin/jsesc
+  checksum: 1e4574920d3c17c9167fdc14ca66197e8d5d96fb3f37c7473df7857822b7adbf2954d0e126131456f8fd72b6f6908c2367e7a12c18495a5393c37be99acbbb5a
+  languageName: node
+  linkType: hard
+
+"json-buffer@npm:3.0.1":
+  version: 3.0.1
+  resolution: "json-buffer@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"
+  checksum: 78011309cb53c19195702ece9e282c8c58d7facd8d6e286857fd4daf511f0bd93424498898d0b9ecfde6ab8e87a2ab0c0a654fba4b1a4ec81fa51f2c48a5ddba
+  languageName: node
+  linkType: hard
+
+"json-file-plus@npm:^3.3.1":
+  version: 3.3.1
+  resolution: "json-file-plus@npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"
+  dependencies:
+    is: ^3.2.1
+    node.extend: ^2.0.0
+    object.assign: ^4.1.0
+    promiseback: ^2.0.2
+    safer-buffer: ^2.0.2
+  checksum: 91d5ea48710a5f6ab0f085c3cb587d4695af71f9cbef608ec1b0d536c4b9c3f0dbb9157a6ddf2d2c8c7ca1f8c14b2809fbfcdfb2dc42f9235b59384520b0dd1a
+  languageName: node
+  linkType: hard
+
+"json-parse-better-errors@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "json-parse-better-errors@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"
+  checksum: b4c4f0e43b43892af887db742b26f9aa6302b09cd5f6e655ead49fca9f47f3cdd300dcf98cf5218778262be51d7b29859221206fc98b87a1a61c5af7618dae89
+  languageName: node
+  linkType: hard
+
+"json-parse-even-better-errors@npm:^2.3.0":
+  version: 2.3.1
+  resolution: "json-parse-even-better-errors@npm:2.3.1"
+  checksum: d89fa7fe57957f3004cf0e786465a64183c0de861f6fda800d352956397c01b22f9feb141d0dce5b23f5dbe0aae74dd5b45fc0c3c1679b0942688efa5544e726
+  languageName: node
+  linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+  version: 0.4.1
+  resolution: "json-schema-traverse@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"
+  checksum: 6f71bddba38aa043cf9c05ff9cf37158a6657909f1dd37032ba164b76923da47a17bb4592ee4f7f9c029dfaf26965b821ac214c1f991bb3bd038c9cfea2da50b
+  languageName: node
+  linkType: hard
+
+"json-schema@npm:0.2.3":
+  version: 0.2.3
+  resolution: "json-schema@npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"
+  checksum: d382ea841f0af5cf6ae3b63043c6ddbd144086de52342b5dd32d8966872dce1e0ed280f6b27c5fba97e50cf8640f27b593e039cb95df365718ada03ef0feb9f2
+  languageName: node
+  linkType: hard
+
+"json-stable-stringify-without-jsonify@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "json-stable-stringify-without-jsonify@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"
+  checksum: a01b6c65413b2d0dd6797004ace6166bb6f8a0a2a77c742966021c74233cebe48de3c33223f003a9e8e4a241bb882fe92141e538e7e1dad58afd32649444e269
+  languageName: node
+  linkType: hard
+
+"json-stringify-safe@npm:~5.0.1":
+  version: 5.0.1
+  resolution: "json-stringify-safe@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"
+  checksum: 261dfb8eb3e72c8b0dda11fd7c20c151ffc1d1b03e529245d51708c8dd8d8c6a225880464adf41a570dff6e5c805fd9d1f47fed948cfb526e4fbe5a67ce4e5f4
+  languageName: node
+  linkType: hard
+
+"json3@npm:^3.3.2":
+  version: 3.3.3
+  resolution: "json3@npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"
+  checksum: f79831247f3ecdd4e99996534a171ccd20f34502b799dd53b671af8a7d7ac1228a7d806c100948cc16f3437da5ea0b821e2c44f8372a2a4095a0abebf0fb41ef
+  languageName: node
+  linkType: hard
+
+"json5@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "json5@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"
+  dependencies:
+    minimist: ^1.2.0
+  bin:
+    json5: lib/cli.js
+  checksum: df41624f9f40bfacc546f779eef6d161a3312fbb6ec1dbd69f8c4388e9807af653b753371ab19b6d2bab22af2ca7dde62fe03c791596acf76915e1fc4ee6fd88
+  languageName: node
+  linkType: hard
+
+"json5@npm:^2.1.2":
+  version: 2.1.3
+  resolution: "json5@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"
+  dependencies:
+    minimist: ^1.2.5
+  bin:
+    json5: lib/cli.js
+  checksum: 957e4937106cf59975aa0281e68911534d65c8a25be5b4d3559aa55eba351ccab516a943a60ba33e461e4b8af749939986e311de910cbcfd197410b57d971741
+  languageName: node
+  linkType: hard
+
+"jsonfile@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "jsonfile@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"
+  dependencies:
+    graceful-fs: ^4.1.6
+  dependenciesMeta:
+    graceful-fs:
+      optional: true
+  checksum: a40b7b64da41c84b0dc7ad753737ba240bb0dc50a94be20ec0b73459707dede69a6f89eb44b4d29e6994ed93ddf8c9b6e57f6b1f09dd707567959880ad6cee7f
+  languageName: node
+  linkType: hard
+
+"jsprim@npm:^1.2.2":
+  version: 1.4.1
+  resolution: "jsprim@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"
+  dependencies:
+    assert-plus: 1.0.0
+    extsprintf: 1.3.0
+    json-schema: 0.2.3
+    verror: 1.10.0
+  checksum: ee0177b7ef39e6becf18c586d31fabe15d62be88e7867d3aff86466e4a3de9a2cd47b6e597417aebc1cd3c2d43bc662e79ab5eecdadf3ce0643e909432ed6d2c
+  languageName: node
+  linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
+  version: 3.1.0
+  resolution: "jsx-ast-utils@npm:3.1.0"
+  dependencies:
+    array-includes: ^3.1.1
+    object.assign: ^4.1.1
+  checksum: 189ef9aed8dae620376a3f164c7aac9caaa906e6ecc460f175b3910dadc28f472f0e8c171c3355f9c6a1fc448282926f3f3e42da993880d5a9d57408c03ed85a
+  languageName: node
+  linkType: hard
+
+"keyv@npm:^4.0.0":
+  version: 4.0.1
+  resolution: "keyv@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"
+  dependencies:
+    json-buffer: 3.0.1
+  checksum: f4e65024a7451942c28dc7b813d1788b4279f9e9415c8f611d4c0f3d90162207900fa90fff0c56db94f3bab01054ad31b813958d0f9f76984e33dd62c4da2d72
+  languageName: node
+  linkType: hard
+
+"killable@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "killable@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"
+  checksum: 397df2b8a74b800b5d19986375fe6d5e2c548163f1da49eee8b03bb0fa7e98ae8c5b93d9f34b83634d3a32a9b239f758e6de388b4bedb50f2f438fc91434e92f
+  languageName: node
+  linkType: hard
+
+"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0":
+  version: 3.2.2
+  resolution: "kind-of@npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"
+  dependencies:
+    is-buffer: ^1.1.5
+  checksum: e8a1835c4baa9b52666cd5d8ae89e6b9b9f5978600a30ba75fc92da332d1ba182bda90aa7372fc992a3eb6da261dc3fea0f136af24ddc87cfb668d40c817af56
+  languageName: node
+  linkType: hard
+
+"kind-of@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "kind-of@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"
+  dependencies:
+    is-buffer: ^1.1.5
+  checksum: 2e7296c614f54ba9cdcab4c389ec9d8f6ed7955c661b4bd075d5c1b67107ee00263a82aa12f76b61209e9d93f4949ee3d20c6ff17a8b0d199d84ba06d6f59478
+  languageName: node
+  linkType: hard
+
+"kind-of@npm:^5.0.0":
+  version: 5.1.0
+  resolution: "kind-of@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"
+  checksum: c98cfe70c805a7a3a10ec4399fac2884fb4b277494baffea0712a5e8de49a0bbdc36d9cfedf7879f47567fa4d7f4d92fd5b69582bc8666100b3560e03bd88844
+  languageName: node
+  linkType: hard
+
+"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2":
+  version: 6.0.3
+  resolution: "kind-of@npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"
+  checksum: 5de5d6577796af87a983199d6350ed41c670abec4a306cc43ca887c1afdbd6b89af9ab00016e3ca17eb7ad89ebfd9bb817d33baa89f855c6c95398a8b8abbf08
+  languageName: node
+  linkType: hard
+
+"klona@npm:^2.0.4":
+  version: 2.0.4
+  resolution: "klona@npm:2.0.4"
+  checksum: be4a0c784135b6a75ac2c5ac9564894807aa050de041ac775a20d3ee46969ac5c3d37503d12c215c7decb592196e59e22852fd0cf28ac0cc29fe3a6df9168624
+  languageName: node
+  linkType: hard
+
+"leven@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "leven@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"
+  checksum: 6ebca7529809b8d099ab8793091b1ee8712a87932fae14c7d0c2693b0fcc0640aea72141a6539c03b9dae53a34f15a43dc151bb5c04eded0d1d38b277bfd206a
+  languageName: node
+  linkType: hard
+
+"levenary@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "levenary@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"
+  dependencies:
+    leven: ^3.1.0
+  checksum: 6d3b78e3953b0e5c4c9a703cce2c11c817e2465c010daf08e3c5964c259c850d233584009e5939f0cf4af2b6455f7f7e3a092ea119f63a2a81e273cd2d5e09e2
+  languageName: node
+  linkType: hard
+
+"levn@npm:^0.4.1":
+  version: 0.4.1
+  resolution: "levn@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"
+  dependencies:
+    prelude-ls: ^1.2.1
+    type-check: ~0.4.0
+  checksum: 2f6ddfb0b956f2cb6b1608253a62b0c30e7392dd3c7b4cf284dfe2889b44d8385eaa81597646e253752c312a960ccb5e4d596968e476d5f6614f4ca60e5218e9
+  languageName: node
+  linkType: hard
+
+"lie@npm:3.1.1":
+  version: 3.1.1
+  resolution: "lie@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"
+  dependencies:
+    immediate: ~3.0.5
+  checksum: 33a07ffeb7eb5aaec59a5f7a72ba7e6a2ce9d011bd7894f36ed11e2da43f076467019e5f9826c5864500c6a792450aa54b263f31cef0a1774553851dce8a501c
+  languageName: node
+  linkType: hard
+
+"line-column@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "line-column@npm:1.0.2"
+  dependencies:
+    isarray: ^1.0.0
+    isobject: ^2.0.0
+  checksum: e6fa785b0c75c4485d0f181beaeb2f0b482ebf16921b64d5b61e75e86a61504b42053655d481b1c8de5c4d8b551473c034eb48780c65d76be377e643d395f6e5
+  languageName: node
+  linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+  version: 1.1.6
+  resolution: "lines-and-columns@npm:1.1.6"
+  checksum: 798b80ed7ae3fba34d43fe29591ccb4f16f6fca1da4e1f9922b92264b91d931012433c248daf8e44caa74feb40c0eaa0f27a14f8ee68b6ffb425f3c3f785af27
+  languageName: node
+  linkType: hard
+
+"load-json-file@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "load-json-file@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"
+  dependencies:
+    graceful-fs: ^4.1.2
+    parse-json: ^2.2.0
+    pify: ^2.0.0
+    strip-bom: ^3.0.0
+  checksum: c6ea93d36099dd6e778c6c018c9e184ad65d278a9538c2280f959b040b1a9a756d8856bdaf8a38c8f1454eca19bf4798ea59f79ccd8bb1c33aa8b7ecbe157f0c
+  languageName: node
+  linkType: hard
+
+"loader-runner@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "loader-runner@npm:4.1.0"
+  checksum: 2b964f3484249acc18f1c28e35aee284ed698a73e9f1913bc045761ad0af3a61b403e22ce170e4cc8bdcea87fddb6a34b42e9f88a023758e635d5276c75dd8c4
+  languageName: node
+  linkType: hard
+
+"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0, loader-utils@npm:^1.2.3, loader-utils@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "loader-utils@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"
+  dependencies:
+    big.js: ^5.2.2
+    emojis-list: ^3.0.0
+    json5: ^1.0.1
+  checksum: 9fd690e57ad78d32ff2942383b4a7a175eba575280ba5aca3b4d03183fec34aa0db314f49bd3301adf7e60b02471644161bf53149e8f2d18fd6a52627e95a927
+  languageName: node
+  linkType: hard
+
+"loader-utils@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "loader-utils@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"
+  dependencies:
+    big.js: ^5.2.2
+    emojis-list: ^3.0.0
+    json5: ^2.1.2
+  checksum: a1c2e48781e1501e126a32c39bc1fb1a7e2f02bd99e5aeb8853ddaf3c121fffefcc4579367f97ca6890b58369e571af1c9ec82e4e20db238d560ab359ff25c33
+  languageName: node
+  linkType: hard
+
+"localforage@npm:^1.9.0":
+  version: 1.9.0
+  resolution: "localforage@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"
+  dependencies:
+    lie: 3.1.1
+  checksum: 0645f5ec6fe28799081a9a21dc23796fbb665dcc20e09061228302750a05671bd13a42688e41b523f1598fff5d8e219f468d826595b75db07b555d4ff223943e
+  languageName: node
+  linkType: hard
+
+"locate-path@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "locate-path@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"
+  dependencies:
+    p-locate: ^2.0.0
+    path-exists: ^3.0.0
+  checksum: ee5a888d686f8d555ebfa6c4f6f3b7c5cdfa5f382dee17e0b3fde7456fc68301ddb6a79790a412659d1e067f2f58fd74c683b203fc20368deaed45fb985b4fda
+  languageName: node
+  linkType: hard
+
+"locate-path@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "locate-path@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"
+  dependencies:
+    p-locate: ^3.0.0
+    path-exists: ^3.0.0
+  checksum: 0b6bf0c1bb09021499f6198ed6a4ae367e8224e2493a74cc7bc5f4e6eca9ed880a5f7fdfb4d57b7e21d3e289c3abfe152cd510cacb1d03049f9d81d9a7d302ca
+  languageName: node
+  linkType: hard
+
+"locate-path@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "locate-path@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"
+  dependencies:
+    p-locate: ^4.1.0
+  checksum: c58f49d45c8672d0a290dea0ce41fcb27205b3f2d61452ba335ef3b42ad36c10c31b1f061b46d96dd4b81e9a00e8a2897bc124d75623b80a9f6d36b1e754a6b5
+  languageName: node
+  linkType: hard
+
+"lodash-es@npm:^4.17.15":
+  version: 4.17.15
+  resolution: "lodash-es@npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"
+  checksum: ee2871b76deefd1754527e659a8c8b688f2e427e67b30709296878e18ad9cb54b4f0fc16a7161298156b4e0ebc2a37dfe501a3ea8725f195763f9de8a7ba6da6
+  languageName: node
+  linkType: hard
+
+"lodash._reinterpolate@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "lodash._reinterpolate@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"
+  checksum: 27513557d6fe526296324f1de9e1b8e8ac88ef2a2544a655e825f3ab0f52c5a675f1a73a0c9ff3c64fda031c56dfb4deb9dac7c7d21f9a04bc63dd7db5a5a73d
+  languageName: node
+  linkType: hard
+
+"lodash.template@npm:^4.5.0":
+  version: 4.5.0
+  resolution: "lodash.template@npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"
+  dependencies:
+    lodash._reinterpolate: ^3.0.0
+    lodash.templatesettings: ^4.0.0
+  checksum: e27068e20b7a374938c20ab76a093dd49e9626bfbe1882d9d05d81efefe3210cfcd6ad24f1cb0d956ce57d75855fec17bd386a4aa54762a144bd7c0891ee7ee1
+  languageName: node
+  linkType: hard
+
+"lodash.templatesettings@npm:^4.0.0":
+  version: 4.2.0
+  resolution: "lodash.templatesettings@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"
+  dependencies:
+    lodash._reinterpolate: ^3.0.0
+  checksum: 45546a5b76376b138ef4f01aa2722813127c639428eb9baef3fbac176b509ee2dab5cb9d1ee8267dbeeef8d49371f9a748af3df83649bf8b75fa54993f65b7aa
+  languageName: node
+  linkType: hard
+
+"lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.4":
+  version: 4.17.19
+  resolution: "lodash@npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"
+  checksum: ff2b7a95f0129dba9101e346d44e0eda0f159d76bbbf23721eec1969b87a32bde3de0cfef0733218c64620e9be08040a973278d46a686540233b356115f3527c
+  languageName: node
+  linkType: hard
+
+"lodash@npm:^4.17.20":
+  version: 4.17.20
+  resolution: "lodash@npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"
+  checksum: c62101d2500c383b5f174a7e9e6fe8098149ddd6e9ccfa85f36d4789446195f5c4afd3cfba433026bcaf3da271256566b04a2bf2618e5a39f6e67f8c12030cb6
+  languageName: node
+  linkType: hard
+
+"logic-solver@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "logic-solver@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"
+  dependencies:
+    underscore: ^1.7.0
+  checksum: 48458c67714792417e9c79e61e1d0edcceb45d7fa402da2464a9e86374545e6abd54bcd1d50931e753bb3fc9c78eb7128291db530f801ca3ce294b0e115c39e2
+  languageName: node
+  linkType: hard
+
+"loglevel@npm:^1.6.8":
+  version: 1.6.8
+  resolution: "loglevel@npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"
+  checksum: 847939b08549649a0495e1b0d25ac89cec537a057fbb6deae468a066236ca0295aabce314366c026605537c345ece982d88783c7f44ab3599a40554bb09442ed
+  languageName: node
+  linkType: hard
+
+"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "loose-envify@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"
+  dependencies:
+    js-tokens: ^3.0.0 || ^4.0.0
+  bin:
+    loose-envify: cli.js
+  checksum: 5c3b47bbe5f597a3889fb001a3a98aaea2a3fafa48089c19034de1e0121bf57dbee609d184478514d74d5c5a7e9cfa3d846343455e5123b060040d46c39e91dc
+  languageName: node
+  linkType: hard
+
+"lower-case@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "lower-case@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"
+  dependencies:
+    tslib: ^1.10.0
+  checksum: 52a55327ea69cbec7693daa11efb94f9e3d13b2697773d3cecd71f68c7eafaca2b0b34f8cc10617a751134e17c8396be992972765f5d5db220047651046762b5
+  languageName: node
+  linkType: hard
+
+"lowercase-keys@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "lowercase-keys@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"
+  checksum: 4da67f41865a25360bb05749a66a83c60987c7efa0b8ec443941a19978c21ba916ae9fedca25b96fc652026c4264a437d3fec099d1949716b5483eec42395ec9
+  languageName: node
+  linkType: hard
+
+"lru-cache@npm:^6.0.0":
+  version: 6.0.0
+  resolution: "lru-cache@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"
+  dependencies:
+    yallist: ^4.0.0
+  checksum: b8b78353d2391c0f135cdc245c4744ad41c2efb1a6d98f31bc57a2cf48ebf02de96e4876657c3026673576bf1f1f61fc3fdd77ab00ad1ead737537bf17d8019d
+  languageName: node
+  linkType: hard
+
+"magic-string@npm:^0.25.0, magic-string@npm:^0.25.5":
+  version: 0.25.7
+  resolution: "magic-string@npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"
+  dependencies:
+    sourcemap-codec: ^1.4.4
+  checksum: 4b70c13eb21c6f1c54bf7fb029748dc44d6bfcd3c59e5deeda060eecc38df6144b91d10fb7a3cf6156fadab1a68f83d69a189df20ca5f6bd088bf0196ea8f039
+  languageName: node
+  linkType: hard
+
+"make-dir@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "make-dir@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"
+  dependencies:
+    pify: ^4.0.1
+    semver: ^5.6.0
+  checksum: 94e2ab9dda2198508057fd75f4e0b5998ee2d1e390c1e03172c32104dbd750ba2314376fec540ce517c8ed7fc526aeebc7d193315d060e229fec0fe55feb2228
+  languageName: node
+  linkType: hard
+
+"make-dir@npm:^3.0.2":
+  version: 3.1.0
+  resolution: "make-dir@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"
+  dependencies:
+    semver: ^6.0.0
+  checksum: 54b6f186c209c1b133d0d1710e6b04c41ebfcb0dac699e5a369ea1223f22c0574ef820b91db37cae6c245f5bda8aff9bfec94f6c23e7d75970446b34a58a79b0
+  languageName: node
+  linkType: hard
+
+"map-cache@npm:^0.2.2":
+  version: 0.2.2
+  resolution: "map-cache@npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"
+  checksum: 3d205d20e0135a5b5f3e2b85e7bfa289cc2fc3c748fe802795e74c6fe157e5f2bed3b7c3a270b82fe36a02123880cb2e0dc525e1ae37ac7e673ce3e75a2e2c56
+  languageName: node
+  linkType: hard
+
+"map-visit@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "map-visit@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"
+  dependencies:
+    object-visit: ^1.0.0
+  checksum: 9e85e6d802183927229d9ad04d70a0e0c7225451994605674d3ed4e4a21f817b4d9aba42a775e98078ffe47cf67df44a50eb07f965f14afead5015c8692503bd
+  languageName: node
+  linkType: hard
+
+"matchmediaquery@npm:^0.3.0":
+  version: 0.3.1
+  resolution: "matchmediaquery@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"
+  dependencies:
+    css-mediaquery: ^0.1.2
+  checksum: face426fe3fd743d08d70c2e92c103c14419268f7ba0069bacd04c91e819a7ca270d195e2e6793169a6fcacc22b225965d685ec3fc144babee84f46659645757
+  languageName: node
+  linkType: hard
+
+"media-typer@npm:0.3.0":
+  version: 0.3.0
+  resolution: "media-typer@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"
+  checksum: be1c825782df7f38eebd451d778f6407bb15a59c8807a69e7f2ad74a25440e474536441c6bf583fdf2803ea23b866e91ff68f565cda297211dd89147758c8df3
+  languageName: node
+  linkType: hard
+
+"memory-fs@npm:^0.4.1":
+  version: 0.4.1
+  resolution: "memory-fs@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"
+  dependencies:
+    errno: ^0.1.3
+    readable-stream: ^2.0.1
+  checksum: ba79207118e62d7e3d13b6a00c1b0508b506a7f281e26c5efcc85e7ba0c9e11eda36a242b42f07067367c4b8547b1e905096293fa65dc6b3dbdd8f825b787dd9
+  languageName: node
+  linkType: hard
+
+"memory-fs@npm:^0.5.0":
+  version: 0.5.0
+  resolution: "memory-fs@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"
+  dependencies:
+    errno: ^0.1.3
+    readable-stream: ^2.0.1
+  checksum: deb916f33ca09215d6ad58db30854bbf36aaca86e018dcbbbdb7c6160661e8c0b9acdcc23c9931fc6dcd62f3dd5318a7ecab519e3688f7787d0833e5f48c0d0a
+  languageName: node
+  linkType: hard
+
+"merge-descriptors@npm:1.0.1":
+  version: 1.0.1
+  resolution: "merge-descriptors@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"
+  checksum: 2d2a09eaac840a7ceac7a13b44b7c8abf3ecccd93a609c3525d8290cb5d814336cc7c0b1dd485ae3bc471ed354eeefb153475ce2e1604ccdf79eebe74021c192
+  languageName: node
+  linkType: hard
+
+"merge-stream@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "merge-stream@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"
+  checksum: cde834809a0e65485e474de3162af9853ab2a07977fd36d328947b7b3e6207df719ffb115b11085ecc570501e15a2aa8bacd772ac53f77873f53b0626e52a39a
+  languageName: node
+  linkType: hard
+
+"merge2@npm:^1.3.0":
+  version: 1.4.1
+  resolution: "merge2@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"
+  checksum: 7ad40d8b140a5ed4e621b916858410e4f0dd4ced1e5a2b675563347e70f0661d95ba6c3c8007dd3c4e242d0b8eee44559fa75bb90a146cf168debffc0cbc18f3
+  languageName: node
+  linkType: hard
+
+"methods@npm:~1.1.2":
+  version: 1.1.2
+  resolution: "methods@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"
+  checksum: 450e4ea0fd4a0f3de8c0593d753c7d6c8f2ee49766f5ef35c68cc2ac41699d5e295b7d6330fc2b7271b8569a07857e3eb0b5df0599a353c5808265b4b5066168
+  languageName: node
+  linkType: hard
+
+"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4":
+  version: 3.1.10
+  resolution: "micromatch@npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"
+  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
+  checksum: a60e73539a3ac6c6231f11642257a460861302df5986a94fd418d1b64a817409cda778d7023b53541a2091b523eda2c6f7212721e380d0b696284b7ca0a45bda
+  languageName: node
+  linkType: hard
+
+"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2":
+  version: 4.0.2
+  resolution: "micromatch@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"
+  dependencies:
+    braces: ^3.0.1
+    picomatch: ^2.0.5
+  checksum: 0cb0e11d647cbb65e398a0a8a1340a7fb751ae2722346219c435704cfac8b3275a94a6464236fe867f52ad46a24046d3bc4ac11b3d21ddb73bc44e27cf1e4904
+  languageName: node
+  linkType: hard
+
+"mime-db@npm:1.44.0, mime-db@npm:>= 1.43.0 < 2":
+  version: 1.44.0
+  resolution: "mime-db@npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"
+  checksum: b4e3b2141418572fba9786f7e36324faef15e23032ad0871f56760cb304ee721ba4c8cc795d3c1cac69a2a8b94045c1d6b08c4a8d1ef6ba1226a3a5193915c57
+  languageName: node
+  linkType: hard
+
+"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24":
+  version: 2.1.27
+  resolution: "mime-types@npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"
+  dependencies:
+    mime-db: 1.44.0
+  checksum: 51fe2f2c08c10ac7a2f67e2ce5de30f6500faa88d095418a1ab6e90e30960db7c682a8ecce60d3d4e293ac52c4700ca99399833db998ea9ec83d6f0503b70a94
+  languageName: node
+  linkType: hard
+
+"mime-types@npm:^2.1.27":
+  version: 2.1.27
+  resolution: "mime-types@npm:2.1.27"
+  dependencies:
+    mime-db: 1.44.0
+  checksum: 51fe2f2c08c10ac7a2f67e2ce5de30f6500faa88d095418a1ab6e90e30960db7c682a8ecce60d3d4e293ac52c4700ca99399833db998ea9ec83d6f0503b70a94
+  languageName: node
+  linkType: hard
+
+"mime@npm:1.6.0, mime@npm:^1.6.0":
+  version: 1.6.0
+  resolution: "mime@npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"
+  bin:
+    mime: cli.js
+  checksum: d540c24dd3e3a9e25e813714e55ff2f7841a3a1a47aed9786c508bd0251653d5e9abbfb1163c0c6e1be99f872d7fa1538c068bd6e306e9cb12dd9affa841a61e
+  languageName: node
+  linkType: hard
+
+"mime@npm:^2.4.4":
+  version: 2.4.6
+  resolution: "mime@npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"
+  bin:
+    mime: cli.js
+  checksum: 319ec3858894aa9befa9da90e33c4422506689f1e3e7c939095df68abe848050a51070c78a31061769d9192051a8c9f33d14d6771dc0f2ff309fe846898e0807
+  languageName: node
+  linkType: hard
+
+"mimic-fn@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "mimic-fn@npm:2.1.0"
+  checksum: f7d2d7febe3d7dd71da0700b1d455ec6c951a96b463ffcc303c93771b9fe4e45318152ea677c241505b19b39e41d906e5052cfb382d59a44bdb6d3d57f8b467b
+  languageName: node
+  linkType: hard
+
+"mimic-response@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "mimic-response@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"
+  checksum: 64b43c717ed8710bc920576e96d38d0e504e9eec3114af8e00c9e3d7ae53cd459ee38febb0badc83e3a4e6d21cd571db43e9011f8cf014809989c87a1a9f0ea4
+  languageName: node
+  linkType: hard
+
+"mimic-response@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "mimic-response@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"
+  checksum: cfbf19f66de6ad46df7481d9e8c1a7f30b6fa77dd771ad4a72a0443265041a39768182bde6d1de39001c2774168635bc74f42902e401c8ba33db55d69b773004
+  languageName: node
+  linkType: hard
+
+"min-document@npm:^2.19.0":
+  version: 2.19.0
+  resolution: "min-document@npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"
+  dependencies:
+    dom-walk: ^0.1.0
+  checksum: 8da883996e00a53729e867dad45a358c6d8b3b55f2473a20768c1a2b4642d0983bc61827cf29eb98c53d7290c2a1a74a5cba60873857da416bdfae09bf73bb21
+  languageName: node
+  linkType: hard
+
+"mini-create-react-context@npm:^0.4.0":
+  version: 0.4.0
+  resolution: "mini-create-react-context@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"
+  dependencies:
+    "@babel/runtime": ^7.5.5
+    tiny-warning: ^1.0.3
+  peerDependencies:
+    prop-types: ^15.0.0
+    react: ^0.14.0 || ^15.0.0 || ^16.0.0
+  checksum: 51f07df1ed473597e997a6be181262cc06a68e6f29e1ff4d7c6f0a201cfb191e840e504fad1e417cbe622cb3575354fb29cde3327443ce428e09927520078ab2
+  languageName: node
+  linkType: hard
+
+"mini-css-extract-plugin@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "mini-css-extract-plugin@npm:1.2.0"
+  dependencies:
+    loader-utils: ^2.0.0
+    schema-utils: ^3.0.0
+    webpack-sources: ^1.1.0
+  peerDependencies:
+    webpack: ^4.4.0 || ^5.0.0
+  checksum: e87cbebbcbdcd0ecacd32d4056a95e129360f32b74140195d48fed0d67e9ad9cc6c8e87fb54fe1df16841dd11dd0236574bdcf565a978b9718df4a99cbe28ca8
+  languageName: node
+  linkType: hard
+
+"minimalistic-assert@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "minimalistic-assert@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"
+  checksum: 28f1de3cf9edfb82613428a58eb3dd38ec6d33ab761b98abf2d130c81104ea86be540c7e5eb8284f13e0a065ead8b17501de09419b9a98987ed27268ad538dba
+  languageName: node
+  linkType: hard
+
+"minimatch@npm:^3.0.4":
+  version: 3.0.4
+  resolution: "minimatch@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"
+  dependencies:
+    brace-expansion: ^1.1.7
+  checksum: 47eab9263962cacd5733e274ecad2d8e54b0f8e124ba35ae69189e296058f634a4967b87a98954f86fa5c830ff177caf827ce0136d28717ed3232951fb4fae62
+  languageName: node
+  linkType: hard
+
+"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5":
+  version: 1.2.5
+  resolution: "minimist@npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"
+  checksum: b77b8590147a4e217ff34266236bc39de23b52e6e33054076991ff674c7397a1380a7bde11111916f16f003a94aaa7e4f3d92595a32189644ff607fabc65a5b6
+  languageName: node
+  linkType: hard
+
+"minipass-collect@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "minipass-collect@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"
+  dependencies:
+    minipass: ^3.0.0
+  checksum: 529ef6212333e6b9afc6aa4487a246df6fd28a28e42060533491ebf58fddb349f9b044f017725bddf3e13cae3986c58c24ee2531832f62e6d97379846e04e0a8
+  languageName: node
+  linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+  version: 1.0.5
+  resolution: "minipass-flush@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"
+  dependencies:
+    minipass: ^3.0.0
+  checksum: d354ca0da834e3e79a1f0372d1cb86ba043a96b495624ed6360f7cd1f549e5685d9b292d4193a963497efcf4a4db8563e188cda565b119b8acc00852259e286c
+  languageName: node
+  linkType: hard
+
+"minipass-pipeline@npm:^1.2.2":
+  version: 1.2.3
+  resolution: "minipass-pipeline@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"
+  dependencies:
+    minipass: ^3.0.0
+  checksum: 618713f98ce51f40bb06528c6c845a77ce6c66a7c84f9f014495c0ae9ed1c55aaa24110df09a64b6bea763dc00542401b54de9960423a23860a71c14c7e46cb0
+  languageName: node
+  linkType: hard
+
+"minipass@npm:^3.0.0, minipass@npm:^3.1.1":
+  version: 3.1.3
+  resolution: "minipass@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"
+  dependencies:
+    yallist: ^4.0.0
+  checksum: d12b95a845f15950bce7a77730c89400cf0c4f55e7066338da1d201ac148ece4ea8efa79e45a2c07c868c61bcaf9e996c4c3d6bf6b85c038ffa454521fc6ecd5
+  languageName: node
+  linkType: hard
+
+"minizlib@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "minizlib@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"
+  dependencies:
+    minipass: ^3.0.0
+    yallist: ^4.0.0
+  checksum: 665346bad842df6fbfd59aa24f49a12d7971e72d8ccd4078f6e3167ad6185b64dec37d6f2cc053fe778230dd54f2a55550454ffec00b4460e14c3f20fe83be6e
+  languageName: node
+  linkType: hard
+
+"mixin-deep@npm:^1.2.0":
+  version: 1.3.2
+  resolution: "mixin-deep@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"
+  dependencies:
+    for-in: ^1.0.2
+    is-extendable: ^1.0.1
+  checksum: 68da98bc1af57ffccde7abdc86ac49feec263b73b3c483ab7e6e2fab9aa2b06fba075da9e86bcda725133c1d2a59e4c810a17b55865c67c827871c25d5713c33
+  languageName: node
+  linkType: hard
+
+"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3":
+  version: 0.5.5
+  resolution: "mkdirp@npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"
+  dependencies:
+    minimist: ^1.2.5
+  bin:
+    mkdirp: bin/cmd.js
+  checksum: 9dd9792e891927b14ca02226dbe1daeb717b9517a001620d5e2658bbc72c5e4f06887b6cbcbb60595fa5a56e701073cf250f1ed69c1988a6b89faf9fd6a4d049
+  languageName: node
+  linkType: hard
+
+"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "mkdirp@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"
+  bin:
+    mkdirp: bin/cmd.js
+  checksum: 1aa3a6a2d7514f094a91329ec09994f5d32d2955a4985ecbb3d86f2aaeafc4aa11521f98d606144c1d49cd9835004d9a73342709b8c692c92e59eacf37412468
+  languageName: node
+  linkType: hard
+
+"ms@npm:2.0.0":
+  version: 2.0.0
+  resolution: "ms@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"
+  checksum: 1a230340cc7f322fbe916783d8c8d60455407c6b7fb7f901d6ee34eb272402302c5c7f070a97b8531245cbb4ca6a0a623f6a128d7e5a5440cefa2c669c0b35bb
+  languageName: node
+  linkType: hard
+
+"ms@npm:2.1.1":
+  version: 2.1.1
+  resolution: "ms@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"
+  checksum: 81ad38c74df2473ce9fbed8bb71a00220c3d9e237ebd576306c9f6ca3221b251d602c7d199808944be1a3d7cda5883e72c77adb473734ba30f6e032165e05ebc
+  languageName: node
+  linkType: hard
+
+"ms@npm:2.1.2, ms@npm:^2.1.1":
+  version: 2.1.2
+  resolution: "ms@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"
+  checksum: 9b65fb709bc30c0c07289dcbdb61ca032acbb9ea5698b55fa62e2cebb04c5953f1876a1f3f7f4bc2e91d4bf4d86003f3e207c3bc6ee2f716f99827e62389cd0e
+  languageName: node
+  linkType: hard
+
+"multicast-dns-service-types@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "multicast-dns-service-types@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"
+  checksum: de10f16134855e368505a174ea0a25c60c74e34a73fd251d09d1d7cbdb70ee23c077b7eec9d4314ae51b1bc134775d490f4b7e2e29a4d9312bbd089456ac20b1
+  languageName: node
+  linkType: hard
+
+"multicast-dns@npm:^6.0.1":
+  version: 6.2.3
+  resolution: "multicast-dns@npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"
+  dependencies:
+    dns-packet: ^1.3.1
+    thunky: ^1.0.2
+  bin:
+    multicast-dns: cli.js
+  checksum: 3a67f9a155f32a543e06ebc058cea63d8ee3122f652289cfc91ec24bf7450433a21a017640852e65f1548d4bcca2b8bd10c3d201e56f66945dc1f2554a7e7939
+  languageName: node
+  linkType: hard
+
+"nan@npm:^2.12.1":
+  version: 2.14.1
+  resolution: "nan@npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"
+  dependencies:
+    node-gyp: latest
+  checksum: eeab7cf260362a578f0b8622716a76d19bc009722049c7274748644ce03b2aa38ca01b3ac730a0497fd2c1ec882a21a0592e800a903994ed4d32acd06bf7eba7
+  languageName: node
+  linkType: hard
+
+"nanoid@npm:^3.1.15":
+  version: 3.1.16
+  resolution: "nanoid@npm:3.1.16"
+  bin:
+    nanoid: bin/nanoid.cjs
+  checksum: 1903aa0a7602e881ef7015d4c8ccf8a2a92b45b1bd6c4bb9c1dd2119f41ebe08a44c9195ecf4c1fbaef147bd4d050e41adbcb747ec96d7d14c1f662e3ac52790
+  languageName: node
+  linkType: hard
+
+"nanomatch@npm:^1.2.9":
+  version: 1.2.13
+  resolution: "nanomatch@npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"
+  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
+  checksum: 2e1440c5705f0192b9d9b46bb682a1832052974dad359ed473b9f555abb5c55a08b3d5ba45d7d37c53a83f64b7f93866292824d3086a150ff7980e71874feb3b
+  languageName: node
+  linkType: hard
+
+"natural-compare@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "natural-compare@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"
+  checksum: 2daf93d9bb516eddb06e2e80657a605af2e494d47c65d090ba43691aaffbc41f520840f1c9d3b7b641977af950217a4ab6ffb85bafcd5dfa8ba6fe4e68c43b53
+  languageName: node
+  linkType: hard
+
+"negotiator@npm:0.6.2":
+  version: 0.6.2
+  resolution: "negotiator@npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"
+  checksum: 4b230bd15f0862d16c54ce0243fcfcf835ad59c8e58c467b4504dd28c9868cff71ff485b02cc575dc69dca819b58a1fadc9fb28403f45721f38a8fffde007d54
+  languageName: node
+  linkType: hard
+
+"neo-async@npm:^2.6.2":
+  version: 2.6.2
+  resolution: "neo-async@npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"
+  checksum: 34a8f5309135be258a97082af810ea43700a3e0121e7b1ea31b3e22e2663d7c0d502cd949abb6d1ab8c11abfd04500ee61721ec5408b2d4bef8105241fd8a4c2
+  languageName: node
+  linkType: hard
+
+"nice-try@npm:^1.0.4":
+  version: 1.0.5
+  resolution: "nice-try@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"
+  checksum: 330f190bf68146a560008b661e1ddbb2eac667c16990b6bf791516d89cceb707ec67901ad647d2b32674bfa816b916489cead5c2fb6e96864c659573ab5aa3bb
+  languageName: node
+  linkType: hard
+
+"no-case@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "no-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"
+  dependencies:
+    lower-case: ^2.0.1
+    tslib: ^1.10.0
+  checksum: 619e0bd00a3ef0fa6ad9442d32c88adcf47339c5b0d9bdfaaab19380709dad5ba71f865ae584531988ba85a6083e1f0ea0b851bcc49c67aee40a5100104e84b9
+  languageName: node
+  linkType: hard
+
+"node-forge@npm:0.9.0":
+  version: 0.9.0
+  resolution: "node-forge@npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"
+  checksum: 901d6ab679072ad4b4174daed4d1ede43f01131456aba1918d89246ae37f73e40e053d9bf32ab3836e74e9e471c2637f4a6af337ab8c6a562faa3a385aac806c
+  languageName: node
+  linkType: hard
+
+"node-gyp@npm:latest":
+  version: 7.0.0
+  resolution: "node-gyp@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"
+  dependencies:
+    env-paths: ^2.2.0
+    glob: ^7.1.4
+    graceful-fs: ^4.2.3
+    nopt: ^4.0.3
+    npmlog: ^4.1.2
+    request: ^2.88.2
+    rimraf: ^2.6.3
+    semver: ^7.3.2
+    tar: ^6.0.1
+    which: ^2.0.2
+  bin:
+    node-gyp: bin/node-gyp.js
+  checksum: 60e91c374739d7d17f3a41d799543a28d06a3f2e622f70a92a244d186dd12d0df1320e95b7d44cf1d40e401bf8a72f359f94ea2df95fef3ab42eecaa87c62e36
+  languageName: node
+  linkType: hard
+
+"node-releases@npm:^1.1.58":
+  version: 1.1.59
+  resolution: "node-releases@npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"
+  checksum: 35eb1c268b0214cb47f9a2303332c622b49ffc9c7522649a468b966564debf8b5f545843deca5a82cb4d8b8547c083aa3e9bf5a13e464809f9f91f9543d206a4
+  languageName: node
+  linkType: hard
+
+"node-releases@npm:^1.1.60":
+  version: 1.1.60
+  resolution: "node-releases@npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"
+  checksum: bed3480bd1d7a9c3ad0b4acf79eceabfb14c5ba3e5d48619c8ec1fb5197fb358c9d0c117e31c48d52b7dba75b71c1371c5e67d01f55b79cbd2d7b60ca30974d1
+  languageName: node
+  linkType: hard
+
+"node-releases@npm:^1.1.61":
+  version: 1.1.64
+  resolution: "node-releases@npm:1.1.64"
+  checksum: 09e85fd0eccee979c56c8582dac19a6f88fe4444f0ae0c2c55a7e70df10cf11530f76d3203150e9961fa59d0448cab406d450cef3bc4681f12c3edd070d68b36
+  languageName: node
+  linkType: hard
+
+"node.extend@npm:^2.0.0":
+  version: 2.0.2
+  resolution: "node.extend@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"
+  dependencies:
+    has: ^1.0.3
+    is: ^3.2.1
+  checksum: 750516f66b71b262e5cb39b53f96a5776ba859936a1e2116750cde0c1a304a226097bff3445686a27734b6a10f1df382bc134a817b2f2fbc695de61eec140933
+  languageName: node
+  linkType: hard
+
+"nopt@npm:^4.0.3":
+  version: 4.0.3
+  resolution: "nopt@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"
+  dependencies:
+    abbrev: 1
+    osenv: ^0.1.4
+  bin:
+    nopt: bin/nopt.js
+  checksum: bf7b8c15fd035bf1faa897ec83c3fe5a459beb51a09dfad9413429382139784c3f05e11847d2e5de7160a813c5c8c6cf74c34f22b483c08fdaf465586f293f49
+  languageName: node
+  linkType: hard
+
+"normalize-package-data@npm:^2.3.2":
+  version: 2.5.0
+  resolution: "normalize-package-data@npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"
+  dependencies:
+    hosted-git-info: ^2.1.4
+    resolve: ^1.10.0
+    semver: 2 || 3 || 4 || 5
+    validate-npm-package-license: ^3.0.1
+  checksum: 97d4d6b061cab51425ddb05c38d126d7a1a2a6f2c9949bef2b5ad7ef19c005df12099ea442e4cb09190929b7770008f94f87b10342a66f739acf92a7ebb9d9f2
+  languageName: node
+  linkType: hard
+
+"normalize-path@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "normalize-path@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"
+  dependencies:
+    remove-trailing-separator: ^1.0.1
+  checksum: 9eb82b2f6abc1b99d820c36405d6b7a26a4cfa49d49d397eb2ad606b1295cb8e243b6071b18826907ae54a9a2b35373a83d827d843d19b76efcfa267d72cb301
+  languageName: node
+  linkType: hard
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+  version: 3.0.0
+  resolution: "normalize-path@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"
+  checksum: 215a701b471948884193628f3e38910353abf445306b519c42c2a30144b8beb8ca0a684da97bfc2ee11eb168c35c776d484274da4bd8f213d2b22f70579380ee
+  languageName: node
+  linkType: hard
+
+"normalize-range@npm:^0.1.2":
+  version: 0.1.2
+  resolution: "normalize-range@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"
+  checksum: bca997d800d76b7954b36d394f44bbe65948eb4cca954b2e731cd81a7a5540725dcd237df7cb2006449e705c4803755658b8f23d89f9cc2eb5da464558baba69
+  languageName: node
+  linkType: hard
+
+"normalize-url@npm:^4.1.0":
+  version: 4.5.0
+  resolution: "normalize-url@npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"
+  checksum: 09794941dbe5c7b91caf6f3cd1ae167c27f6d09793e4a03601a68b62de7e8ee9e5de21a246130cdbab98b01481de292f9556d492444a527648f9cf1220e4b0df
+  languageName: node
+  linkType: hard
+
+"npm-run-path@npm:^2.0.0":
+  version: 2.0.2
+  resolution: "npm-run-path@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"
+  dependencies:
+    path-key: ^2.0.0
+  checksum: 0a1bc9a1e0faa7e54a011929b830121d5da393f50cbe37c83f3ffd67781b6d176739ba6e8eab5d56faa05738a60f7eb50389673767db0dc887073932f80b9b60
+  languageName: node
+  linkType: hard
+
+"npm-run-path@npm:^4.0.0":
+  version: 4.0.1
+  resolution: "npm-run-path@npm:4.0.1"
+  dependencies:
+    path-key: ^3.0.0
+  checksum: 058fd068804f8c34fcef9393fc895d45400834c9f90bbafc57259f9fd47e8796712e4ad54524f0971b806260a118bf61ac37b0bf9f74e9e58c84bae780ae09e6
+  languageName: node
+  linkType: hard
+
+"npmlog@npm:^4.1.2":
+  version: 4.1.2
+  resolution: "npmlog@npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"
+  dependencies:
+    are-we-there-yet: ~1.1.2
+    console-control-strings: ~1.1.0
+    gauge: ~2.7.3
+    set-blocking: ~2.0.0
+  checksum: 0cd63f127c1bbda403a112e83b11804aaee2b58b0bc581c3bde9b82e4d957c7ed0ad3bee499af706cdd3599bb93669d7cbbf29fb500407d35fe75687ac96e2c0
+  languageName: node
+  linkType: hard
+
+"nth-check@npm:~1.0.1":
+  version: 1.0.2
+  resolution: "nth-check@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"
+  dependencies:
+    boolbase: ~1.0.0
+  checksum: 88a58b8b6289344749102019422705e8e6fa870d55e4bd4c71f860105ea5b8145ae71657f6edd6df953964081f52d65936a3eec4af1d9ee42122e42d293b2abe
+  languageName: node
+  linkType: hard
+
+"num2fraction@npm:^1.2.2":
+  version: 1.2.2
+  resolution: "num2fraction@npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"
+  checksum: c9bb3e7c6d358cc8a6f354e0f5b56235845255465622f4d2eafec6bf5209dd3500133ab2888fbb444c997e29702e85b79ceef026ccc1c06a2971c2c1a93cee90
+  languageName: node
+  linkType: hard
+
+"number-is-nan@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "number-is-nan@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"
+  checksum: 42251b2653a16f8b47639d93c3b646fff295a4582a6b3a2fc51a651d4511427c247629709063d19befbceb8a3db1a8e9f17016b3a207291e79e4bd1413032918
+  languageName: node
+  linkType: hard
+
+"oauth-sign@npm:~0.9.0":
+  version: 0.9.0
+  resolution: "oauth-sign@npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"
+  checksum: af1ab60297c3a687d1d2de5c43c6453c4df6939de3e6114ada4a486ac51fa7ab1769f33000b94c0e8ffced5ae4c57c4f5d36b517792d83e9e9742578a728682e
+  languageName: node
+  linkType: hard
+
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "object-assign@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"
+  checksum: 66cf021898fc1b13ea573ea8635fbd5a76533f50cecbc2fcd5eee1e8029af41bcebe7023788b6d0e06cbe4401ecea075d972f78ec74467cdc571a0f1a4d1a081
+  languageName: node
+  linkType: hard
+
+"object-copy@npm:^0.1.0":
+  version: 0.1.0
+  resolution: "object-copy@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"
+  dependencies:
+    copy-descriptor: ^0.1.0
+    define-property: ^0.2.5
+    kind-of: ^3.0.3
+  checksum: d91d46e54297cad0544f04e4dff4694f92aca9661f59ad7e803a1ba94a2bb24b38ca4fd59ea827d24c9bdc6f7148d5c838287ee4b2b9c5df9b445b1c0d7a066c
+  languageName: node
+  linkType: hard
+
+"object-inspect@npm:^1.7.0":
+  version: 1.8.0
+  resolution: "object-inspect@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"
+  checksum: 4da23a188b3811d75fcd6e7916471465f94e4752159e064f9621040945d375dca1afa092a000a398267d81b4f40bf33cfdbe1e99eff98f1972155efe055f80c8
+  languageName: node
+  linkType: hard
+
+"object-inspect@npm:^1.8.0":
+  version: 1.8.0
+  resolution: "object-inspect@npm:1.8.0"
+  checksum: 4da23a188b3811d75fcd6e7916471465f94e4752159e064f9621040945d375dca1afa092a000a398267d81b4f40bf33cfdbe1e99eff98f1972155efe055f80c8
+  languageName: node
+  linkType: hard
+
+"object-is@npm:^1.0.1":
+  version: 1.1.2
+  resolution: "object-is@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.5
+  checksum: 9ea7df4475f250c968171fa142b6584bad4c65859af8cb50e06fa8168089ae47afb460776ab60fe5f3aea8ea3c97b30dd0b37d41e23106f2abcc7d6f982bec04
+  languageName: node
+  linkType: hard
+
+"object-keys@npm:^1.0.11, object-keys@npm:^1.0.12, object-keys@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "object-keys@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"
+  checksum: 30d72d768b7f3f42144cee517b80e70c40cf39bb76f100557ffac42779613c591780135c54d8133894a78d2c0ae817e24a5891484722c6019a5cd5b58c745c66
+  languageName: node
+  linkType: hard
+
+"object-visit@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "object-visit@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"
+  dependencies:
+    isobject: ^3.0.0
+  checksum: 8666727dbfb957676c0b093cde6d676ed6b847b234d98a4ed7f4d7f7e4b40c00af8067354d5c45052dc40c6830d68b68212c15c96dbcc286cdc96aca58faf548
+  languageName: node
+  linkType: hard
+
+"object.assign@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "object.assign@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"
+  dependencies:
+    define-properties: ^1.1.2
+    function-bind: ^1.1.1
+    has-symbols: ^1.0.0
+    object-keys: ^1.0.11
+  checksum: 92e20891ddf04d9974f7b178ae70d198727dcd638c8a5a422f07f730f40140c4fe02451cdc9c37e9f22392e5487b9162975003a9f20b16a87b9d13fe150cf62d
+  languageName: node
+  linkType: hard
+
+"object.assign@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "object.assign@npm:4.1.1"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.18.0-next.0
+    has-symbols: ^1.0.1
+    object-keys: ^1.1.1
+  checksum: 2038905bbf7c07313df831e83e40fc4eba783d2d680533ec47c546e562e939902db69c83fea9bd836204aa3e01e8db0faa412d4f649c9825235cc8e5c1166dd1
+  languageName: node
+  linkType: hard
+
+"object.entries@npm:^1.1.2":
+  version: 1.1.2
+  resolution: "object.entries@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.5
+    has: ^1.0.3
+  checksum: bcde47ee0396df8bc074e3194b74d3983e3da205321836f132cc55403f26cd06cd8d677492ca35697fa4d52419428fec2e01b60a96db1c22d21f1978d37db97d
+  languageName: node
+  linkType: hard
+
+"object.fromentries@npm:^2.0.2":
+  version: 2.0.2
+  resolution: "object.fromentries@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+    function-bind: ^1.1.1
+    has: ^1.0.3
+  checksum: 58fa9edab136a299e81828842e0c2dd12df1985025f13e451a2c5609d8b16e4c7ebd2c574691f3b6edffb44ada8d5d12aef3b060ce1a65660b65e3202a7897a1
+  languageName: node
+  linkType: hard
+
+"object.getownpropertydescriptors@npm:^2.0.3":
+  version: 2.1.0
+  resolution: "object.getownpropertydescriptors@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+  checksum: c33dcc3061b56ec4d9f6d30620a364a5218aba8f592662f5ce346fcf523eb0483bc865d3f52848e267217285d831ca0a3d85836787bef5f86ecfa29f77dc249e
+  languageName: node
+  linkType: hard
+
+"object.pick@npm:^1.3.0":
+  version: 1.3.0
+  resolution: "object.pick@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"
+  dependencies:
+    isobject: ^3.0.1
+  checksum: e22d555d3bb73c665a5baa1da7789d3a98f557d8712a9bbe34dc59d4adbce9d390245815296025de5260b18794de647401a6b2ae1ba0ab854a6710e2958291f6
+  languageName: node
+  linkType: hard
+
+"object.values@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "object.values@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+    function-bind: ^1.1.1
+    has: ^1.0.3
+  checksum: 33e99ceb5cdb4c4b43372aa133ecb1d73d5cf73ebbbe9ec64f45cd39c87d0226ca88d6a354cd8b819fbde6b9ebbc7df1a6a093f91d2c951c51a07546f54fe33d
+  languageName: node
+  linkType: hard
+
+"obuf@npm:^1.0.0, obuf@npm:^1.1.2":
+  version: 1.1.2
+  resolution: "obuf@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"
+  checksum: aa741387b0f5dc2b8addec7cd0e05448d8b2892b6e76e167e18a5b90f0b85bd4c9be4c7be01a354dee3353f5c3367b08006adb06e0737d6a8f1b88618147715a
+  languageName: node
+  linkType: hard
+
+"on-finished@npm:~2.3.0":
+  version: 2.3.0
+  resolution: "on-finished@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"
+  dependencies:
+    ee-first: 1.1.1
+  checksum: 362e64608287d31ffd96a15fb9305a410b3e4d07c86f277fae907e38af46bc6f5ff948de90eabb81dc5632ca7f9a290085acc5410c378053dfa9860451d97ee5
+  languageName: node
+  linkType: hard
+
+"on-headers@npm:~1.0.2":
+  version: 1.0.2
+  resolution: "on-headers@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"
+  checksum: 51e75c80755169e765aa76238722e5ad1623f62b13bbc23544ade20cdbb6950cf0e6aa91de35d02ec956f47dc072ee460d8eef82354e4abf8fa692885cb3f2d8
+  languageName: node
+  linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "once@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"
+  dependencies:
+    wrappy: 1
+  checksum: 57afc246536cf6494437f982b26475f22bee860f8b77ce8eb1543f42a8bffe04b2c66ddfea9a16cb25ccb80943f8ee4fc639367ef97b7a6a4f2672eb573963f5
+  languageName: node
+  linkType: hard
+
+"once@npm:~1.3.0":
+  version: 1.3.3
+  resolution: "once@npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"
+  dependencies:
+    wrappy: 1
+  checksum: c68086bafeee1e66c5913a79a9466dbdfca9f0f9c3217aae808a219eac7648f7b164da615028d04dd7642596f6d097e6ba2f4b1c97560ca26c7502dac2ad4859
+  languageName: node
+  linkType: hard
+
+"onetime@npm:^5.1.0":
+  version: 5.1.2
+  resolution: "onetime@npm:5.1.2"
+  dependencies:
+    mimic-fn: ^2.1.0
+  checksum: e425f6caeb20cf2598ffece94be5663932e34d074f1631b682b13d5f01cc1e0712a7dc711eff1706bb5a5aaab8a52e37bd5edcf560334e3222219d7e8b09c21c
+  languageName: node
+  linkType: hard
+
+"opener@npm:^1.5.1":
+  version: 1.5.1
+  resolution: "opener@npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"
+  bin:
+    opener: bin/opener-bin.js
+  checksum: 055a1efdc206e1c8ac37ca1d62e16de84c7f6ae48883ac1898f1b8e9e9b918979fe747d439b249975c707b911073072ddc933fa1993d8a7345b729393466fbbf
+  languageName: node
+  linkType: hard
+
+"opn@npm:^5.5.0":
+  version: 5.5.0
+  resolution: "opn@npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"
+  dependencies:
+    is-wsl: ^1.1.0
+  checksum: 0ea3b6550fbbc530a57f958baf5d44253a435d67ad88b4af1df8b3a98693f7c70b71d72f29b09a02d15e94654ec3875aae8cf4fccbf8e4e326671a02f66058d3
+  languageName: node
+  linkType: hard
+
+"optionator@npm:^0.9.1":
+  version: 0.9.1
+  resolution: "optionator@npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"
+  dependencies:
+    deep-is: ^0.1.3
+    fast-levenshtein: ^2.0.6
+    levn: ^0.4.1
+    prelude-ls: ^1.2.1
+    type-check: ^0.4.0
+    word-wrap: ^1.2.3
+  checksum: bdf5683f986d00e173e6034837b7b6a9e68c7e1a37d7684b240adf1758db9076cfb04c9f64be29327881bb06c5017afb8b65012c5f02d07b180e9f6f42595ffd
+  languageName: node
+  linkType: hard
+
+"original@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "original@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"
+  dependencies:
+    url-parse: ^1.4.3
+  checksum: 6918b9d4545917616aba3788ce3c8c47dc5bcc26b0a3dc7da68d9976ce4d09fd1172d249cbc8063ef3311ddfbc435ef7a48b753abc85f3b74e83cf0c8de9aae3
+  languageName: node
+  linkType: hard
+
+"os-homedir@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "os-homedir@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"
+  checksum: 725256246b2cec353250ec46442e3cfa7bc96ef92285d448a90f12f4bbd78c1bf087051b2cef0382da572e1a9ebc8aa24bd0940a3bdc633c3e3012eef1dc6848
+  languageName: node
+  linkType: hard
+
+"os-tmpdir@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "os-tmpdir@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"
+  checksum: ca158a3c2e48748adc7736cdbe4c593723f8ed8581d2aae2f2a30fdb9417d4ba14bed1cd487d47561898a7b1ece88bce69745e9ce0303e1dea9ea7d22d1f1082
+  languageName: node
+  linkType: hard
+
+"osenv@npm:^0.1.4":
+  version: 0.1.5
+  resolution: "osenv@npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"
+  dependencies:
+    os-homedir: ^1.0.0
+    os-tmpdir: ^1.0.0
+  checksum: 1c7462808c5ff0c2816b11f2f46265a98c395586058f98d73a6deac82955744484b277baedceeb962c419f3b75d0831a77ce7cf38b9e4f20729943ba79d72b08
+  languageName: node
+  linkType: hard
+
+"p-cancelable@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "p-cancelable@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"
+  checksum: 966065f056a116a1ca3b6c7064d4d27a65bc1740c25cc60729faa5deea385bbd0f2317aedabb8e64c0cfc3c6b2dafe7f3ea65c267373d6d9be1602af443b4f12
+  languageName: node
+  linkType: hard
+
+"p-finally@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "p-finally@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"
+  checksum: 01f49b2d9c67573b3a1cb253cd9e1ecf5c912b6ba5de8824118bbc8d647bfa6296820b5a536e91ec68a54395d4e1c58de9a381ded3b688074fb446a8fe351931
+  languageName: node
+  linkType: hard
+
+"p-limit@npm:^1.1.0":
+  version: 1.3.0
+  resolution: "p-limit@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"
+  dependencies:
+    p-try: ^1.0.0
+  checksum: 579cbd3d6c606058aa624c464e2cb3c4b56d04ed4cbafdb705633cbe62ba36d77ba2c4289023335ba382f4fbf32c15709465eea18a0e1547c5ebc4b887f2a7da
+  languageName: node
+  linkType: hard
+
+"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0":
+  version: 2.3.0
+  resolution: "p-limit@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"
+  dependencies:
+    p-try: ^2.0.0
+  checksum: 5f20492a25c5f93fca2930dbbf41fa1bee46ef70eaa6b49ad1f7b963f309e599bc40507e0a3a531eee4bcd10fec4dd4a63291d0e3b2d84ac97d7403d43d271a9
+  languageName: node
+  linkType: hard
+
+"p-limit@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "p-limit@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"
+  dependencies:
+    p-try: ^2.0.0
+  checksum: 1eb23d6ea77709212bf8d7a98d36c4e8b5276ec791bf74f460c012fadf4580d136f40efafa25d4892a9327102866eafc79b441eed7be339b0da59da416ced600
+  languageName: node
+  linkType: hard
+
+"p-locate@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "p-locate@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"
+  dependencies:
+    p-limit: ^1.1.0
+  checksum: b6dabbd855fba9bfa74b77882f96d0eac6c25d9966e61ab0ed7bf3d19f2e3b766f290ded1aada1ac4ce2627217b00342cf7a1d36482bada59ba6789be412dad7
+  languageName: node
+  linkType: hard
+
+"p-locate@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "p-locate@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"
+  dependencies:
+    p-limit: ^2.0.0
+  checksum: 3ee9e3ed0b1b543f8148ef0981d33013d82a21c338b117a2d15650456f8dc888c19eb8a98484e7e159276c3ad9219c3e2a00b63228cab46bf29aeaaae096b1d6
+  languageName: node
+  linkType: hard
+
+"p-locate@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "p-locate@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"
+  dependencies:
+    p-limit: ^2.2.0
+  checksum: 57f9abef0b29f02ff88c0936a392c9a1fbdd08169e636e0d85b7407c108014d71578c0c6fe93fa49b5bf3857b20d6f16b96389e2b356f7f599d4d2150505844f
+  languageName: node
+  linkType: hard
+
+"p-map@npm:^2.0.0":
+  version: 2.1.0
+  resolution: "p-map@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"
+  checksum: 8557e841ed832a489aaee7d825b7bea73e0559c452578821f5af418f430a8455727ab8dd5b4318b6b6733096029cfa571aa0e8d21bdd2c213025f02f919f7a9a
+  languageName: node
+  linkType: hard
+
+"p-map@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "p-map@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"
+  dependencies:
+    aggregate-error: ^3.0.0
+  checksum: d51e630d72b7c38bc9e396710e7a068f0b813fe4db6f4a2d1ce2972e7fa11142c763c3aa39bcfd77c0133688c1ebfdd9b38fa3ac4c6ada20b62df26239c5c0e4
+  languageName: node
+  linkType: hard
+
+"p-retry@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "p-retry@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"
+  dependencies:
+    retry: ^0.12.0
+  checksum: 26c888de4e64e62e9b6112219fae2c2f45ddc2face5d6c7c98e1b8762bcd4a54bea4f50cdff275b2ee5ebb11b633bfb16f4dd473ecd4d07081385cb716e961cf
+  languageName: node
+  linkType: hard
+
+"p-try@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "p-try@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"
+  checksum: 85739d77b3e9f6a52a8545f1adc53621fb5df4d6ef9b59a3f54f3f3159b45c4100d4e63128a1e790e9ff8ff8b86213ace314ff6d2d327c3edcceea18891baa42
+  languageName: node
+  linkType: hard
+
+"p-try@npm:^2.0.0":
+  version: 2.2.0
+  resolution: "p-try@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"
+  checksum: 20983f3765466c1ab617ed153cb53b70ac5df828d854a3334d185e20b37f436e9096f12bc1b7fc96d8908dc927a3685172d3d89e755774f57b7103460c54dcc5
+  languageName: node
+  linkType: hard
+
+"param-case@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "param-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"
+  dependencies:
+    dot-case: ^3.0.3
+    tslib: ^1.10.0
+  checksum: ef57facfaf282f6c074e565e26738e7bb043882aea9a4a575b0568d74f003ab8a1c69555d81773d25413287f079a367aa26a9518b3d5b25f2f17b4952a647f40
+  languageName: node
+  linkType: hard
+
+"parent-module@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "parent-module@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"
+  dependencies:
+    callsites: ^3.0.0
+  checksum: 58714b9699f8e84340aaf0781b7cbd82f1c357f6ce9c035c151d0e8c1e9b869c51b95b680882f0d21b4751e817a6c936d4bb2952a1a1d9d9fb27e5a84baec2aa
+  languageName: node
+  linkType: hard
+
+"parse-json@npm:^2.2.0":
+  version: 2.2.0
+  resolution: "parse-json@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"
+  dependencies:
+    error-ex: ^1.2.0
+  checksum: 920582196a8edebb3d3c4623b2f057987218272b35ae4d2d310c00bc1bd7e89b87c79358d7e009d54f047ca2eea82eab8d7e1b14e1f7cbbb345ef29fcda29731
+  languageName: node
+  linkType: hard
+
+"parse-json@npm:^5.0.0":
+  version: 5.1.0
+  resolution: "parse-json@npm:5.1.0"
+  dependencies:
+    "@babel/code-frame": ^7.0.0
+    error-ex: ^1.3.1
+    json-parse-even-better-errors: ^2.3.0
+    lines-and-columns: ^1.1.6
+  checksum: 5e09955194d4ced3a7c8d2e41302834c1420e3709e06b16fa0d4bff575f054f7323cb4d4551fb6680d4c487184883ba20229de19edd5a52e1c5920148778d8cc
+  languageName: node
+  linkType: hard
+
+"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
+  version: 1.3.3
+  resolution: "parseurl@npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"
+  checksum: 52c9e86cb58e38b28f1a50a6354d16648974ab7a2b91b209f97102840471de8adf524427774af6d5bc482fb7c0a6af6ba08ab37de9a1a7ae389ebe074015914b
+  languageName: node
+  linkType: hard
+
+"pascal-case@npm:^3.1.1":
+  version: 3.1.1
+  resolution: "pascal-case@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"
+  dependencies:
+    no-case: ^3.0.3
+    tslib: ^1.10.0
+  checksum: 56f66aea7f8c06f3e8b9e70c48c3019dcd8c3e5f218be905b4aba84c5880baf58dcb517bbf1becac3628e17c09b6c3bd35428a9e519343e5f04e50dd0d17c5f5
+  languageName: node
+  linkType: hard
+
+"pascalcase@npm:^0.1.1":
+  version: 0.1.1
+  resolution: "pascalcase@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"
+  checksum: 268a9dbf9cd934fcd0ba02733b7d6176834b13a608bbcd295550636b3c6371a6047875175b457e705b283e81ec171884c9cd86d1fd6c49f70f66fbc3783dc0c1
+  languageName: node
+  linkType: hard
+
+"path-dirname@npm:^1.0.0":
+  version: 1.0.2
+  resolution: "path-dirname@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"
+  checksum: 4af73745fd97680c95b356b88450cd4c21d6825d0580620331382a6c910b76b3ced4aa2c4ddc2953d938bd758906b3d3aa2f56a2f601ec52763ed2cbbfc0106b
+  languageName: node
+  linkType: hard
+
+"path-exists@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "path-exists@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"
+  checksum: 09683e92bafb5657838217cce04e4f2f0530c274bc357c995c3231461030566e9f322b9a8bcc1ea810996e250d9a293ca36dd78dbdd6bfbee42e85a94772d6d5
+  languageName: node
+  linkType: hard
+
+"path-exists@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "path-exists@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"
+  checksum: 6ab15000c5bea4f3e6e6b651983276e27ee42907ea29f5bd68f0d5c425c22f1664ab53c355099723f59b0bfd31aa52d29ea499e1843bf62543e045698f4c77b2
+  languageName: node
+  linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "path-is-absolute@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"
+  checksum: 907e1e3e6ac0aef6e65adffd75b3892191d76a5b94c5cf26b43667c4240531d11872ca6979c209b2e5e1609f7f579d02f64ba9936b48bb59d36cc529f0d965ed
+  languageName: node
+  linkType: hard
+
+"path-is-inside@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "path-is-inside@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"
+  checksum: 9c1841199d18398ee5f6d79f57eaa57f8eb85743353ea97c6d933423f246f044575a10c1847c638c36440b050aef82665b9cb4fc60950866cd239f3d51835ef4
+  languageName: node
+  linkType: hard
+
+"path-key@npm:^2.0.0, path-key@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "path-key@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"
+  checksum: 7dc807a2baa11d6bc0fca72148a0a0ca69ab73d98fbe42e10d22764d1ef547767f2b4ff827c6bc66e733388cd8d54297a45a39499825b9fdfd18959202384029
+  languageName: node
+  linkType: hard
+
+"path-key@npm:^3.0.0":
+  version: 3.1.1
+  resolution: "path-key@npm:3.1.1"
+  checksum: e44aa3ca9faed0440994883050143b1214fffb907bf3a7bbdba15dc84f60821617c0d84e4cc74e1d84e9274003da50427f54d739b0b47636bcbaff4ec71b9b86
+  languageName: node
+  linkType: hard
+
+"path-key@npm:^3.1.0":
+  version: 3.1.1
+  resolution: "path-key@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"
+  checksum: e44aa3ca9faed0440994883050143b1214fffb907bf3a7bbdba15dc84f60821617c0d84e4cc74e1d84e9274003da50427f54d739b0b47636bcbaff4ec71b9b86
+  languageName: node
+  linkType: hard
+
+"path-parse@npm:^1.0.6":
+  version: 1.0.6
+  resolution: "path-parse@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"
+  checksum: 2eee4b93fb3ae13600e3fca18390d9933bbbcf725a624f6b8df020d87515a74872ff6c58072190d6dc75a5584a683dc6ae5c385ad4e4f4efb6e66af040d56c67
+  languageName: node
+  linkType: hard
+
+"path-to-regexp@npm:0.1.7":
+  version: 0.1.7
+  resolution: "path-to-regexp@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"
+  checksum: 342fdb0ca48415d6eccdbe6d4180fd0fa4786ccc96ab3f74fcdf7acfc99e075af25e6077c8086c341dcfb4f5f84401ecd21e6cd7b24e0c3b556fb7ffb2570da7
+  languageName: node
+  linkType: hard
+
+"path-to-regexp@npm:^1.7.0":
+  version: 1.8.0
+  resolution: "path-to-regexp@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"
+  dependencies:
+    isarray: 0.0.1
+  checksum: 4c0d9aaf3fc55db0b2d9aab379856acbf4e437f2252bbc2a178aec9f707c8457f8084ea6243a80e0b37c8c1c20d23e918cd43e772a7e71142a8ad67af699686b
+  languageName: node
+  linkType: hard
+
+"path-type@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "path-type@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"
+  dependencies:
+    pify: ^2.0.0
+  checksum: d028f828dffe48a0062dc4370d5118a0c45f5fb075b013a1dfb13eadd1426eba0c8c2a13fa78f19fc4fd8771ef2012e9d062f8f970c8e56df36d4fbbe5073b26
+  languageName: node
+  linkType: hard
+
+"path-type@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "path-type@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"
+  checksum: ef5835f2eb47e4d06004c7ec7bd51175c0455eaecd5ee99a9774bca5ef43242616e25b44ccc0ba86a0bf42b9f197550fcc0dfa7580e5ff9dca53c035e9bd86a9
+  languageName: node
+  linkType: hard
+
+"pepjs@npm:^0.5.2":
+  version: 0.5.2
+  resolution: "pepjs@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"
+  checksum: bc44db87f7ed864c98f7493669c0e14d509642777f03461041f1fb87acbff04d79954c5ae57afd4d82d23625b3f283e31b084d90753f5dacee2feddb274c7f4f
+  languageName: node
+  linkType: hard
+
+"performance-now@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "performance-now@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"
+  checksum: bb4ebed0b03d6c3ad3ae4eddd1182c895d385cff9096af441c19c130aaae3ea70229438ebc3297dfc52c86022f6becf177a810050823d01bf5280779cd2de624
+  languageName: node
+  linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.0.5, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2":
+  version: 2.2.2
+  resolution: "picomatch@npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"
+  checksum: 20fa75e0a58b39d83425b3db68744d5f6f361fd4fd66ec7745d884036d502abba0d553a637703af79939b844164b13e60eea339ccb043d7fbd74c3da2592b864
+  languageName: node
+  linkType: hard
+
+"pify@npm:^2.0.0":
+  version: 2.3.0
+  resolution: "pify@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"
+  checksum: d5758aa570bbd5969c62b5f745065006827ef4859b32af302e3df2bb5978e6c1e50c2360d7ffefa102e451084f4530115c84570c185ba5153ee9871c977fe278
+  languageName: node
+  linkType: hard
+
+"pify@npm:^4.0.1":
+  version: 4.0.1
+  resolution: "pify@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"
+  checksum: 786486a8c94a7e1980ea56c59dcc05ebf0793740b71df9b9f273e48032e6301c5ecc5cc237c5a9ff45b13db27678b4d71aa37a2777bc11473c1310718b648e98
+  languageName: node
+  linkType: hard
+
+"pinkie-promise@npm:^2.0.0":
+  version: 2.0.1
+  resolution: "pinkie-promise@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"
+  dependencies:
+    pinkie: ^2.0.0
+  checksum: 1e32e05ffdfb691b04a42d05d5452698853099efe1bab70bfa538e9a793e609b66cc59180cc5fc2158062a2fc5991c9c268a82b2b655247aa005020167e31d75
+  languageName: node
+  linkType: hard
+
+"pinkie@npm:^2.0.0":
+  version: 2.0.4
+  resolution: "pinkie@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"
+  checksum: 2cb484c9da47b2f420fddffe7cbfeac950106a848343d147c2b2668d12b71aa3d09297bfe37ec32539a27c6dc7db414414f5ee166d6b2ca0d95f6dfe9dde60d7
+  languageName: node
+  linkType: hard
+
+"pkg-dir@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "pkg-dir@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"
+  dependencies:
+    find-up: ^2.1.0
+  checksum: f8ae3a151714c61283aeb24385b10355a238732fab822a560145c670c21350da2024f01918231222bcdfce53ec5d69056681be2c2cffe3f3a06e462b9ef2ac29
+  languageName: node
+  linkType: hard
+
+"pkg-dir@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "pkg-dir@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"
+  dependencies:
+    find-up: ^3.0.0
+  checksum: f29a7d0134ded2c5fb71eb9439809a415d4b79bd4648581486361a83e0dcca392739603de268410c154f44c60449f3e0855bda65bfb3256f0726a88e91699d8f
+  languageName: node
+  linkType: hard
+
+"pkg-dir@npm:^4.1.0":
+  version: 4.2.0
+  resolution: "pkg-dir@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"
+  dependencies:
+    find-up: ^4.0.0
+  checksum: 1956ebf3cf5cc36a5d20e93851fcadd5a786774eb08667078561e72e0ab8ace91fc36a028d5305f0bfe7c89f9bf51886e2a3c8cb2c2620accfa3feb8da3c256b
+  languageName: node
+  linkType: hard
+
+"pkg-dir@npm:^4.2.0":
+  version: 4.2.0
+  resolution: "pkg-dir@npm:4.2.0"
+  dependencies:
+    find-up: ^4.0.0
+  checksum: 1956ebf3cf5cc36a5d20e93851fcadd5a786774eb08667078561e72e0ab8ace91fc36a028d5305f0bfe7c89f9bf51886e2a3c8cb2c2620accfa3feb8da3c256b
+  languageName: node
+  linkType: hard
+
+"pluralize@npm:^7.0.0":
+  version: 7.0.0
+  resolution: "pluralize@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"
+  checksum: d35d8aeda1eb2f81123131e76ed0f2f48d681abfa4c46e4c6fdd6dca622650c8bd531aa0c5a3c7f779bd9660d08ceb51660e1f55def4bd14328ecfa76fe69962
+  languageName: node
+  linkType: hard
+
+"portfinder@npm:^1.0.25, portfinder@npm:^1.0.26":
+  version: 1.0.27
+  resolution: "portfinder@npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"
+  dependencies:
+    async: ^2.6.2
+    debug: ^3.1.1
+    mkdirp: ^0.5.1
+  checksum: dfecedbaf8eb32d0b617a7d4bf318eb832821e6870155de089213173f0dd3cc872cf8ba8c3f92c153224c58d00b803e02ff71ee90dd1d857d68ea29f20b2ffdb
+  languageName: node
+  linkType: hard
+
+"posix-character-classes@npm:^0.1.0":
+  version: 0.1.1
+  resolution: "posix-character-classes@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"
+  checksum: 984f83c2d4dec5abb9a6ac2b4a184132a58c4af9ce25704bfda2be6e8139335673c45d959ef6ffea3756dc88d3a0cb27c745a84d875ae5142b76e661a37a5f0e
+  languageName: node
+  linkType: hard
+
+"postcss-attribute-case-insensitive@npm:^4.0.1":
+  version: 4.0.2
+  resolution: "postcss-attribute-case-insensitive@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-selector-parser: ^6.0.2
+  checksum: 0de786320f06795664431b32ed65bb29aa895140b75504e95d5e94ff89b713fba365bf319ac82a02958c70b923a778a64e4f07d5444a953fc0f1ced544fbcae5
+  languageName: node
+  linkType: hard
+
+"postcss-color-functional-notation@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "postcss-color-functional-notation@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: 8f83bde47bc0d7d1b97ed1c8b93892698b26735b8dcd9bcac8322e362d544af39c85eea28a7d3a37ce16daaec793ae2b6c01da41541675d67fd83bded691b6bd
+  languageName: node
+  linkType: hard
+
+"postcss-color-gray@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "postcss-color-gray@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"
+  dependencies:
+    "@csstools/convert-colors": ^1.4.0
+    postcss: ^7.0.5
+    postcss-values-parser: ^2.0.0
+  checksum: 99c885049caf46b0bf2fe46d4c43c3c5ddf137c3383adf0fe355e17ffee5321c519e962fdbf2b9d0276eb33109864375baca28032a08ce8dad82db629954a7e8
+  languageName: node
+  linkType: hard
+
+"postcss-color-hex-alpha@npm:^5.0.3":
+  version: 5.0.3
+  resolution: "postcss-color-hex-alpha@npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"
+  dependencies:
+    postcss: ^7.0.14
+    postcss-values-parser: ^2.0.1
+  checksum: 99e8a9457ce0aa090a4d7e5227bae484a845ff706875d9acbf0304a8f4d669a440d2edead50cd9096df516eae7fa603f4b61e35d33989f2b3ced4f2e8bea6113
+  languageName: node
+  linkType: hard
+
+"postcss-color-mod-function@npm:^3.0.3":
+  version: 3.0.3
+  resolution: "postcss-color-mod-function@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"
+  dependencies:
+    "@csstools/convert-colors": ^1.4.0
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: dd484df73c5623bd8cb27d9f465b858f7334ec739e3914fe000b823130c269af105caec81fc0b3280b377954b91ee6606769ebde78833bf9b0b786574baad75e
+  languageName: node
+  linkType: hard
+
+"postcss-color-rebeccapurple@npm:^4.0.1":
+  version: 4.0.1
+  resolution: "postcss-color-rebeccapurple@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: a6fcc16f2a89ecd5a8258a4d24122e49a58b63bb657fcfaef73c36bd27d766c28a36c895667901afcfaa283def229042306245fab11ea81e29d3d7016684e1a8
+  languageName: node
+  linkType: hard
+
+"postcss-custom-media@npm:^7.0.8":
+  version: 7.0.8
+  resolution: "postcss-custom-media@npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"
+  dependencies:
+    postcss: ^7.0.14
+  checksum: f0ac879d17f61225f1e086854720a63a2950d59f115ac66ed440873b69cc7b20f3941bf4667954bd8aa311ec959a98b8044a69c4674364e9bb9452097357b606
+  languageName: node
+  linkType: hard
+
+"postcss-custom-properties@npm:^8.0.11":
+  version: 8.0.11
+  resolution: "postcss-custom-properties@npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"
+  dependencies:
+    postcss: ^7.0.17
+    postcss-values-parser: ^2.0.1
+  checksum: 2d3c11d4c9d29e80428e2a0f64dacb6f144e97c57a2175f6971588657f07726954414c493a60ba09043fe67be23cc2ebf3ef8b56d93d4d945a49ed9807d1366f
+  languageName: node
+  linkType: hard
+
+"postcss-custom-selectors@npm:^5.1.2":
+  version: 5.1.2
+  resolution: "postcss-custom-selectors@npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-selector-parser: ^5.0.0-rc.3
+  checksum: 7d0d5f7751e54b40726d51196ba5569d18488d25ef7b1837ec26d5f32909d3cb4850edd527d70d1a141b7d81aeeed87ca00037f01e318b43fde92e72bb9fa141
+  languageName: node
+  linkType: hard
+
+"postcss-dir-pseudo-class@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "postcss-dir-pseudo-class@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-selector-parser: ^5.0.0-rc.3
+  checksum: fc4f686058e7e973df5699d59e4532b8c124fbd6a4a1f9f40a92fa4d599b8212e336915f540b556278c696a0cc67d06cddfca0b5bdbd527e761c88c9d97f68b4
+  languageName: node
+  linkType: hard
+
+"postcss-double-position-gradients@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "postcss-double-position-gradients@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.5
+    postcss-values-parser: ^2.0.0
+  checksum: 151194816535419a9f90f837bdc872ac5a3972e4d409b0c601fcd0fb069d4bdae51955a5b92f7192102c5b30d846f91d77e1182402df42de9ba5379dd228b6d9
+  languageName: node
+  linkType: hard
+
+"postcss-env-function@npm:^2.0.2":
+  version: 2.0.2
+  resolution: "postcss-env-function@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: 1cba45f90af655de776ed51a3672995130e5c9c3eab59a8bfa062e4e8bedce03faf63900fd0da69f701a2ab4c4bcf61698535526bf8996ab16920a16c2186426
+  languageName: node
+  linkType: hard
+
+"postcss-focus-visible@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-focus-visible@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: df9f0b029cd4770b5f7e803e9cd098a36dc8e06415adc735eb87da07d459e1704ce972f7db4e2674e9b01e45add3dd0689a8628b6784c7a22833576025ca9b60
+  languageName: node
+  linkType: hard
+
+"postcss-focus-within@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "postcss-focus-within@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: 9339299c411a3707309f1eb91919564be2f698c96920b3d93ab81ad6737318a30f2b383780682c173647b76392c11eba446746973e98213379f1f6ce4f522c88
+  languageName: node
+  linkType: hard
+
+"postcss-font-variant@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-font-variant@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: fe9f8f01240df7144c4395571724815e270989d1dfe969bcf1a86a7a07fb9fb26f1e1d6ab784f8ef4234dce91c40f4cb62a3865835240fcc2aad92b27f1aadf9
+  languageName: node
+  linkType: hard
+
+"postcss-gap-properties@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "postcss-gap-properties@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: fa8be8b253cd479f5e3c050796f6250c27e7cce69965535c694ad6093f21adcf83e90bbb4b63c472628d42d1089d43bf9aeac8df4b4d29709f78d4b49dc29fb2
+  languageName: node
+  linkType: hard
+
+"postcss-image-set-function@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "postcss-image-set-function@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: e5612a60755963cd8270c8d793fcc246ec02e2387d5e8faf8ee4e871b65aea3625ebf7d3382db826e8ed44b0922d3f53a9a3b317fe4187e837ae045d6721eb49
+  languageName: node
+  linkType: hard
+
+"postcss-initial@npm:^3.0.0":
+  version: 3.0.2
+  resolution: "postcss-initial@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"
+  dependencies:
+    lodash.template: ^4.5.0
+    postcss: ^7.0.2
+  checksum: ec01ff4da60e616240bb7409ab4edd778fc94a1a310bc118125d495f6c4f4406ae323b2a83fd49e3e086bf3e270e4121776a9c7e0de7b84df0cc69a617535bfe
+  languageName: node
+  linkType: hard
+
+"postcss-lab-function@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "postcss-lab-function@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"
+  dependencies:
+    "@csstools/convert-colors": ^1.4.0
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: 034195cfd91b0f817ccbb1dc2ed6d7c75134ceacaebb270ee7f5a78e110bc753af9e3235a58614b32961f6e8781151206ee8703221b5d75b3e2ccdff7f261dea
+  languageName: node
+  linkType: hard
+
+"postcss-loader@npm:^4.0.4":
+  version: 4.0.4
+  resolution: "postcss-loader@npm:4.0.4"
+  dependencies:
+    cosmiconfig: ^7.0.0
+    klona: ^2.0.4
+    loader-utils: ^2.0.0
+    schema-utils: ^3.0.0
+    semver: ^7.3.2
+  peerDependencies:
+    postcss: ^7.0.0 || ^8.0.1
+    webpack: ^4.0.0 || ^5.0.0
+  checksum: f82028a03da25789d684dc0c9a770954c8ff11bfcc67cc1a6f928e66d04bab7a2349ac19c5205a969feaf766e5d56429b9cc8ec7bfe101b413219a443ddb18b7
+  languageName: node
+  linkType: hard
+
+"postcss-logical@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "postcss-logical@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: fdd9f0519bf3a2cc283991b5f31b45f44eac4803af605f4dac4ccdb7379a4362a4f89b1c3303ad511c68d08ca005e32ffc58768aadd8a1f925dfda78c774a07d
+  languageName: node
+  linkType: hard
+
+"postcss-media-minmax@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-media-minmax@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: 9b4953f4a5ec61c2d451b06a7e475515b128955404750270fdfd4d84ab3c2cf9a6573e33617d0036278855e04782d09623d2391f056b18dc87cc71f2df62c4b7
+  languageName: node
+  linkType: hard
+
+"postcss-modules-extract-imports@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "postcss-modules-extract-imports@npm:3.0.0"
+  peerDependencies:
+    postcss: ^8.1.0
+  checksum: 874b94fd94f6e44e27f7a08814b972c472bcf21db708640f09b8d5900ce9ef6c8aa3291bc54be0526ba07efee5da0322ea01ed0deecd831e80ba5bd5de0e784e
+  languageName: node
+  linkType: hard
+
+"postcss-modules-local-by-default@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-modules-local-by-default@npm:4.0.0"
+  dependencies:
+    icss-utils: ^5.0.0
+    postcss-selector-parser: ^6.0.2
+    postcss-value-parser: ^4.1.0
+  peerDependencies:
+    postcss: ^8.1.0
+  checksum: c0331dbc56cb37174ad5d9cf84c71fd5787a4f0241fafaade870cb6382abdb0e3db233e9e0eb86fc000a7399006fa360391d97341d4ac0f21e4918ad01892cb9
+  languageName: node
+  linkType: hard
+
+"postcss-modules-scope@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "postcss-modules-scope@npm:3.0.0"
+  dependencies:
+    postcss-selector-parser: ^6.0.4
+  peerDependencies:
+    postcss: ^8.1.0
+  checksum: 0b30c7bd28433880baf35f9e076f79fee98d9fe2544d118618429dacedd0a26d26145efd238c72f2c68f936b35729fe45e193e088f7d16fce72dd40bfa6afb69
+  languageName: node
+  linkType: hard
+
+"postcss-modules-values@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-modules-values@npm:4.0.0"
+  dependencies:
+    icss-utils: ^5.0.0
+  peerDependencies:
+    postcss: ^8.1.0
+  checksum: 43fa6db334e38acb9b835578dccab45a5e9e5951dcbb20647348cdc0ad35ed362e36833facd8dab753fa83ffbecd26d2b3f9d4f06a2f9ae4c5c39abf9a0191e0
+  languageName: node
+  linkType: hard
+
+"postcss-nesting@npm:^7.0.0":
+  version: 7.0.1
+  resolution: "postcss-nesting@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: ffc3c12f831b83f3276be86d6cf4d7e897146cbd7d40c01765ff8b25bcc238e9503741a63acd157e8a54df588f8a5a6d46aa6c2c27ab242985503b4d2208ddab
+  languageName: node
+  linkType: hard
+
+"postcss-overflow-shorthand@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "postcss-overflow-shorthand@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: 4e47823ea03539ad6aefed9ccd5e6e47d364310af7ac38007cfe5ac3ae5bb3cbcfe92f6edc02b8be60f65af4b7f4f349f284df089836b2f463022708a0355b9a
+  languageName: node
+  linkType: hard
+
+"postcss-page-break@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "postcss-page-break@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: 6e8fcbad5252bbb61df1c89ebaa43c5d8c15a73002bb3d93de4d2d1d805d47d90291dc9a7fc785ef7a82f563c7fd33c24761e5253326639402f875f25e161d65
+  languageName: node
+  linkType: hard
+
+"postcss-place@npm:^4.0.1":
+  version: 4.0.1
+  resolution: "postcss-place@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-values-parser: ^2.0.0
+  checksum: db35406cb7166d9883a8875897ec21fefe8b23e036b7ecd4dca9ed374e7deefecc983c9dacf60ccff20e0a5b8e11c6dee33216527f840943381a11aaaa41c453
+  languageName: node
+  linkType: hard
+
+"postcss-preset-env@npm:^6.7.0":
+  version: 6.7.0
+  resolution: "postcss-preset-env@npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"
+  dependencies:
+    autoprefixer: ^9.6.1
+    browserslist: ^4.6.4
+    caniuse-lite: ^1.0.30000981
+    css-blank-pseudo: ^0.1.4
+    css-has-pseudo: ^0.10.0
+    css-prefers-color-scheme: ^3.1.1
+    cssdb: ^4.4.0
+    postcss: ^7.0.17
+    postcss-attribute-case-insensitive: ^4.0.1
+    postcss-color-functional-notation: ^2.0.1
+    postcss-color-gray: ^5.0.0
+    postcss-color-hex-alpha: ^5.0.3
+    postcss-color-mod-function: ^3.0.3
+    postcss-color-rebeccapurple: ^4.0.1
+    postcss-custom-media: ^7.0.8
+    postcss-custom-properties: ^8.0.11
+    postcss-custom-selectors: ^5.1.2
+    postcss-dir-pseudo-class: ^5.0.0
+    postcss-double-position-gradients: ^1.0.0
+    postcss-env-function: ^2.0.2
+    postcss-focus-visible: ^4.0.0
+    postcss-focus-within: ^3.0.0
+    postcss-font-variant: ^4.0.0
+    postcss-gap-properties: ^2.0.0
+    postcss-image-set-function: ^3.0.1
+    postcss-initial: ^3.0.0
+    postcss-lab-function: ^2.0.1
+    postcss-logical: ^3.0.0
+    postcss-media-minmax: ^4.0.0
+    postcss-nesting: ^7.0.0
+    postcss-overflow-shorthand: ^2.0.0
+    postcss-page-break: ^2.0.0
+    postcss-place: ^4.0.1
+    postcss-pseudo-class-any-link: ^6.0.0
+    postcss-replace-overflow-wrap: ^3.0.0
+    postcss-selector-matches: ^4.0.0
+    postcss-selector-not: ^4.0.0
+  checksum: 2867000f4da242b1b966b9fdb93962d6ba29943a99fee6809504469420a57b8021dbe468a4f0e188d0f6a0582894c312c45774d80fba730fb9da3c2d0acb81a7
+  languageName: node
+  linkType: hard
+
+"postcss-pseudo-class-any-link@npm:^6.0.0":
+  version: 6.0.0
+  resolution: "postcss-pseudo-class-any-link@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+    postcss-selector-parser: ^5.0.0-rc.3
+  checksum: ee673573fb1c7f47788534599bf991bf33f364583432632d1d6f811fce0be081975e27850f51ec8c928fa6cb03998ab6c0af1a85d7627a384b7fe6da104dc23f
+  languageName: node
+  linkType: hard
+
+"postcss-replace-overflow-wrap@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "postcss-replace-overflow-wrap@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"
+  dependencies:
+    postcss: ^7.0.2
+  checksum: b9b6f604b80b81b62206a4aad0743ebdad3afbac0e1e906f9223573eb8e9eaf20cde7f7f55aa3e8fd2a7075a67386f85d74f04a029bb6ad8729463401239ac36
+  languageName: node
+  linkType: hard
+
+"postcss-selector-matches@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-selector-matches@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"
+  dependencies:
+    balanced-match: ^1.0.0
+    postcss: ^7.0.2
+  checksum: 8445f6453b60a94c657fc56c7673a46abbaa91ca270d97e53a8555ac0b9cc5ab75a9a88fa9163a5b0cbe9b0214d1578722f18c8bcab4d2c1ded5c8b6da6e5d53
+  languageName: node
+  linkType: hard
+
+"postcss-selector-not@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "postcss-selector-not@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"
+  dependencies:
+    balanced-match: ^1.0.0
+    postcss: ^7.0.2
+  checksum: 7b3139dbe441b20f3ce45bc0682829423ade9c63fc73baade595d521282ac8710a0b316082fa43561c3c2654bb6c1e17f2b8d350d04177696531c4335fe73508
+  languageName: node
+  linkType: hard
+
+"postcss-selector-parser@npm:^5.0.0-rc.3, postcss-selector-parser@npm:^5.0.0-rc.4":
+  version: 5.0.0
+  resolution: "postcss-selector-parser@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"
+  dependencies:
+    cssesc: ^2.0.0
+    indexes-of: ^1.0.1
+    uniq: ^1.0.1
+  checksum: eabe69f66f66c7469d7c1618821235d474c9f96d77d7247cb1d5e7481d0ad9b2f632bf5dd8a8a895f1a00df93b10b6c02a61e6f276406d61503ffb0bd67cf5cd
+  languageName: node
+  linkType: hard
+
+"postcss-selector-parser@npm:^6.0.2":
+  version: 6.0.2
+  resolution: "postcss-selector-parser@npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"
+  dependencies:
+    cssesc: ^3.0.0
+    indexes-of: ^1.0.1
+    uniq: ^1.0.1
+  checksum: 0c8bec00e966038572228df54782ef4eefcd76902e5fc3822e6ad8f144c097c48acd9d00376d95cbbd902bfc0ecdf078e3a42eaba2679e1e43b4f91660534121
+  languageName: node
+  linkType: hard
+
+"postcss-selector-parser@npm:^6.0.4":
+  version: 6.0.4
+  resolution: "postcss-selector-parser@npm:6.0.4"
+  dependencies:
+    cssesc: ^3.0.0
+    indexes-of: ^1.0.1
+    uniq: ^1.0.1
+    util-deprecate: ^1.0.2
+  checksum: f6b6e30f515e0909af2555df29feca42f2141d10fac7f8e719ac72f071729a9b9f631241bb1d8ff88cbec7e8fb2ada22c0c92ee0d629582340551ea090985a74
+  languageName: node
+  linkType: hard
+
+"postcss-value-parser@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "postcss-value-parser@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"
+  checksum: 70831403886859289f650550a38889857022c5bbe264fd5d39cfad5207b3e1d33422edc031c1a922f3ae29d0dff98837a8bf126c840374d2b0079e7d57cf7d71
+  languageName: node
+  linkType: hard
+
+"postcss-values-parser@npm:^2.0.0, postcss-values-parser@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "postcss-values-parser@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"
+  dependencies:
+    flatten: ^1.0.2
+    indexes-of: ^1.0.1
+    uniq: ^1.0.1
+  checksum: dfc25618bed3ba74da9adb4df9535dc0edd03e4618fb6774d0327934970876f93f565071bce97faa96ef236da2ce43ec2efeae240fc2eedc0e764e379b3e9441
+  languageName: node
+  linkType: hard
+
+"postcss@npm:^7.0.14, postcss@npm:^7.0.17, postcss@npm:^7.0.2, postcss@npm:^7.0.32, postcss@npm:^7.0.5, postcss@npm:^7.0.6":
+  version: 7.0.32
+  resolution: "postcss@npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"
+  dependencies:
+    chalk: ^2.4.2
+    source-map: ^0.6.1
+    supports-color: ^6.1.0
+  checksum: 340f4f6ca6bd37961927f68bf7e38d071a7cba0468240cbba64ccf78012b2acbec974491284cb200e438dd3e655314e6d9508562523cbf9a49d5b00fd7e769fa
+  languageName: node
+  linkType: hard
+
+"postcss@npm:^8.1.1, postcss@npm:^8.1.4":
+  version: 8.1.4
+  resolution: "postcss@npm:8.1.4"
+  dependencies:
+    colorette: ^1.2.1
+    line-column: ^1.0.2
+    nanoid: ^3.1.15
+    source-map: ^0.6.1
+  checksum: b2bfa799c058d1c19b0f433667bc933b85f3d5b78fa46c4f6239322b1cc2d9b2652cba009ac3632bfec4b955818d406f21d95f3b3a4592ec32a14a3dc5dafe27
+  languageName: node
+  linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+  version: 1.2.1
+  resolution: "prelude-ls@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"
+  checksum: bc1649f521e8928cde0e1b349b224de2e6f00b71361a4a44f2e4a615342b6e1ae30366c32d26412dabe74d999a40f79c0ae044ae6b17cf19af935e74d12ea4fa
+  languageName: node
+  linkType: hard
+
+"prettier-linter-helpers@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "prettier-linter-helpers@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"
+  dependencies:
+    fast-diff: ^1.1.2
+  checksum: 6d698b9c8dc28e52c8d69df520cde3410cc06cc40471acf81b4b7c18ca08e73d0efb0f878654985bb02fce4f8d3d64cdf64fe9f3ffad3e1dc7e17b837d4ddcb2
+  languageName: node
+  linkType: hard
+
+"prettier@npm:^2.1.2":
+  version: 2.1.2
+  resolution: "prettier@npm:2.1.2"
+  bin:
+    prettier: bin-prettier.js
+  checksum: bedc24c568efbcfe45f255558900777e2fabb36bf28ed4c22d2456eb22dfb012d12e566a46472ea5b857a4e9f263e888f7e316527d00bb58188f1820b0b0031a
+  languageName: node
+  linkType: hard
+
+"pretty-bytes@npm:^5.1.0, pretty-bytes@npm:^5.3.0":
+  version: 5.3.0
+  resolution: "pretty-bytes@npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"
+  checksum: ecc6b1670f7ebcf6c78b91edad97ffdc0be58283ff5fa6c95c99c6bda48d2aa1858367fae8eccce35bc36eb90ec3cbcc24b9d7e29fd6ad98cc52d53d2e307789
+  languageName: node
+  linkType: hard
+
+"pretty-error@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "pretty-error@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"
+  dependencies:
+    renderkid: ^2.0.1
+    utila: ~0.4
+  checksum: dc2a92f59888eac1bd3861b439944ab50c46fcc957c3147126270f1e9e06c7bbacde1ab23ab2fc73c8f3a1961094db0878ec8a569f1d5606343a0ada7899cfc4
+  languageName: node
+  linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+  version: 2.0.1
+  resolution: "process-nextick-args@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"
+  checksum: ddeb0f07d0d5efa649c2c5e39d1afd0e3668df2b392d036c8a508b0034f7beffbc474b3c2f7fd3fed2dc4113cef8f1f7e00d05690df3c611b36f6c7efd7852d1
+  languageName: node
+  linkType: hard
+
+"process@npm:^0.11.10":
+  version: 0.11.10
+  resolution: "process@npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"
+  checksum: ed93a85e9185b40fb01788c588a87c1a9da0eb925ef7cebebbe1b8bbf0eba1802130366603a29e3b689c116969d4fe018de6aed3474bbeb5aefb3716b85d6449
+  languageName: node
+  linkType: hard
+
+"progress@npm:^2.0.0":
+  version: 2.0.3
+  resolution: "progress@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"
+  checksum: c46ef5a1de4d527dfd32fe56a7df0c1c8b420a4c02617196813bf7f10ac7c2a929afc265d44fdd68f5c439a7e7cb3d70d569716c82d6b4148ec72089860a1312
+  languageName: node
+  linkType: hard
+
+"promise-deferred@npm:^2.0.3":
+  version: 2.0.3
+  resolution: "promise-deferred@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"
+  dependencies:
+    promise: ^7.3.1
+  checksum: 3135c0fe22065b296cf4148074bfcb82cc940b6c566bb9de2c4d726cde9c3ba40886c068d7edaff6f89d17e14b6b0493e1cc0f116044f205c4301ff4d9fb3e75
+  languageName: node
+  linkType: hard
+
+"promise-inflight@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "promise-inflight@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"
+  checksum: c06bce0fc60b1c7979f291e489b9017db9c15f872d5cef0dfbb2b56694e9db574bc5c28f332a7033cdbd3a1d6417c5a1ee03889743638f0241e82e5a6b9c277f
+  languageName: node
+  linkType: hard
+
+"promise@npm:^7.3.1":
+  version: 7.3.1
+  resolution: "promise@npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"
+  dependencies:
+    asap: ~2.0.3
+  checksum: 23267a4b078fcb02c57b06ca1a1d5739109deb0932c0fd79615a2c5636dd0571ac6a161f19c4ea9683a4ab89791da13112678fa410b65334de490e97c33410ae
+  languageName: node
+  linkType: hard
+
+"promiseback@npm:^2.0.2":
+  version: 2.0.3
+  resolution: "promiseback@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"
+  dependencies:
+    is-callable: ^1.1.5
+    promise-deferred: ^2.0.3
+  checksum: 3c405394a4325396824fecb7239be909a61b679741279240860d6f74ebb2c7f9209a82ce0e3c37a15ee64b36d061b2857af308a71690abb597199ee4aee4385a
+  languageName: node
+  linkType: hard
+
+"prop-types-extra@npm:^1.1.0":
+  version: 1.1.1
+  resolution: "prop-types-extra@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"
+  dependencies:
+    react-is: ^16.3.2
+    warning: ^4.0.0
+  peerDependencies:
+    react: ">=0.14.0"
+  checksum: f1f1cc23b95423615da6ab3ad5726a228011c64612fc77cb773a507437d34543d16758d5ec54fa987611c85e7de6fc4f44e8d3fcec9e343fa5578bca8a09378a
+  languageName: node
+  linkType: hard
+
+"prop-types@npm:^15.5.10, prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
+  version: 15.7.2
+  resolution: "prop-types@npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"
+  dependencies:
+    loose-envify: ^1.4.0
+    object-assign: ^4.1.1
+    react-is: ^16.8.1
+  checksum: a440dd406c5cf53bf39f3e898d2c65178511d34ca3c8c789b30c177992408b9e4273969726b274719aa69ccce5ab34b2fd8caa60b90f23cd2e910cdcf682de52
+  languageName: node
+  linkType: hard
+
+"proxy-addr@npm:~2.0.5":
+  version: 2.0.6
+  resolution: "proxy-addr@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"
+  dependencies:
+    forwarded: ~0.1.2
+    ipaddr.js: 1.9.1
+  checksum: a7dcfd70258cdc3b73c5dc4a35c73db9857f3bf4cf5e6404380e8ea558f8c5569147e721a01195d00b450e36b4dde727fc9d22fdea14310ba38faa595530cd58
+  languageName: node
+  linkType: hard
+
+"prr@npm:~1.0.1":
+  version: 1.0.1
+  resolution: "prr@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"
+  checksum: ac5c0986b46390140b920b8e7f6b56e769a00620af02b6bbdfc6658e8a36b876569c8f174a7c209843f5b9af3d13cbf847c2a9dded4d965b01afbfa5ea8d0761
+  languageName: node
+  linkType: hard
+
+"psl@npm:^1.1.28":
+  version: 1.8.0
+  resolution: "psl@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"
+  checksum: 92d47c6257456878bfa8190d76b84de69bcefdc129eeee3f9fe204c15fd08d35fe5b8627033f39b455e40a9375a1474b25ff4ab2c5448dd8c8f75da692d0f5b4
+  languageName: node
+  linkType: hard
+
+"pump@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "pump@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"
+  dependencies:
+    end-of-stream: ^1.1.0
+    once: ^1.3.1
+  checksum: 5464d5cf6c6f083cc60cb45b074fb9a4a92ba4d3e0d89e9b2fa1906d8151fd3766784a426725ccf1af50d1c29963ac20b13829933549830e08a6704e3f95e08c
+  languageName: node
+  linkType: hard
+
+"punycode@npm:1.3.2":
+  version: 1.3.2
+  resolution: "punycode@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"
+  checksum: e67fddacd83b918ca2f4a47b1fd13858108779cdc2a3f2db3233ff82a25f9305d46e1d9891f7b9ad21ed36454adfc675d4559621fcffed2cf2067abd04e121cd
+  languageName: node
+  linkType: hard
+
+"punycode@npm:^2.1.0, punycode@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "punycode@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"
+  checksum: 0202dc191cb35bfd88870ac99a1e824b03486d4cee20b543ef337a6dee8d8b11017da32a3e4c40b69b19976e982c030b62bd72bba42884acb691bc5ef91354c8
+  languageName: node
+  linkType: hard
+
+"qs@npm:6.7.0":
+  version: 6.7.0
+  resolution: "qs@npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"
+  checksum: 8590470436ff0a75ae35e6b45fd7260e2beb537ff8ec1104f9703a349b09ce1aa27e8e1c06b9ad25ac62fc098e12cc65df93042a233128a0276ccd6de4c7819a
+  languageName: node
+  linkType: hard
+
+"qs@npm:^6.4.0":
+  version: 6.9.4
+  resolution: "qs@npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"
+  checksum: beba62d1e1c66e9888cc08a488eb95771c252a92289a96bff4b767a49e4e7afe9487d7ee3269b856292d8281b855ac5eac927c2e77f845e407ee4fe54743fea7
+  languageName: node
+  linkType: hard
+
+"qs@npm:~6.5.2":
+  version: 6.5.2
+  resolution: "qs@npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"
+  checksum: fa0410eff2c05ce3328e11f82db4015e7819c986ee056d6b62b06ae112f4929af09ea3b879ca168ff9f0338f50972bba487ad0e46c879e42bfaf63c3c2ea7f09
+  languageName: node
+  linkType: hard
+
+"querystring@npm:0.2.0":
+  version: 0.2.0
+  resolution: "querystring@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"
+  checksum: 1e76c51462f0ffb148e0b2fdeb811f61377800298605229d32efcdaaaf0a8fd4314a4b4405e1fbf130a5ca421c0e51f926fab5bb9f8b9b3b8c394f4e2d33d3d1
+  languageName: node
+  linkType: hard
+
+"querystringify@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "querystringify@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"
+  checksum: 35301cc744d5de15040a6bdb6b751ef127f65a82675c5f3a9139a4ce0d047ed8b61a459a93261cd7ae0becfa389edd3f02e8aec1c025ae3e7f0d06dc758baa98
+  languageName: node
+  linkType: hard
+
+"quick-lru@npm:^5.1.1":
+  version: 5.1.1
+  resolution: "quick-lru@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"
+  checksum: fafb2b2fa1a948d6f2e88d4a60571be70b316d9b0be857d24fba0ac28fc31acebf535b643fe968473d689f8c655bcb2a0e4da67912f571059a4e4eb15740b021
+  languageName: node
+  linkType: hard
+
+"randombytes@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "randombytes@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"
+  dependencies:
+    safe-buffer: ^5.1.0
+  checksum: ede2693af09732ceab1c273dd70db787f34a7b8d95bab13f1aca763483c0113452a78e53d61ff18d393dcea586d388e01f198a5132a4a85cebba31ec54164b75
+  languageName: node
+  linkType: hard
+
+"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1":
+  version: 1.2.1
+  resolution: "range-parser@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"
+  checksum: 05074f5b23dbdc24acdae9821dd684fbc9c0d770cdaa4469ab529d8e0fc1338aa33561a4c7c14a1f9bdcb3b5e9a3770e5a80318258a72289a7ef05fcda72a707
+  languageName: node
+  linkType: hard
+
+"raw-body@npm:2.4.0":
+  version: 2.4.0
+  resolution: "raw-body@npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"
+  dependencies:
+    bytes: 3.1.0
+    http-errors: 1.7.2
+    iconv-lite: 0.4.24
+    unpipe: 1.0.0
+  checksum: 46dc02f8b4f358786d41e18fb55533fbe4702d390e22bbe2b9c98c88dec41cab23ea2315f3ae0bf4bc0213a2872c89943d3df6857f4e21f996ea9d2d92f1bcaa
+  languageName: node
+  linkType: hard
+
+"react-bootstrap@npm:^1.4.0":
+  version: 1.4.0
+  resolution: "react-bootstrap@npm:1.4.0"
+  dependencies:
+    "@babel/runtime": ^7.4.2
+    "@restart/context": ^2.1.4
+    "@restart/hooks": ^0.3.21
+    "@types/classnames": ^2.2.10
+    "@types/invariant": ^2.2.33
+    "@types/prop-types": ^15.7.3
+    "@types/react": ^16.9.35
+    "@types/react-transition-group": ^4.4.0
+    "@types/warning": ^3.0.0
+    classnames: ^2.2.6
+    dom-helpers: ^5.1.2
+    invariant: ^2.2.4
+    prop-types: ^15.7.2
+    prop-types-extra: ^1.1.0
+    react-overlays: ^4.1.0
+    react-transition-group: ^4.4.1
+    uncontrollable: ^7.0.0
+    warning: ^4.0.3
+  peerDependencies:
+    react: ">=16.8.0"
+    react-dom: ">=16.8.0"
+  checksum: 9ac160925e1ce1c8f81496ac037e3da8ea18221324977c7b0a0ee3815fcc808b69399cdcf2937c6433869c62ad76eede426a9c1e7685cfd83beaac1d575f86b5
+  languageName: node
+  linkType: hard
+
+"react-dom@npm:^17.0.1":
+  version: 17.0.1
+  resolution: "react-dom@npm:17.0.1"
+  dependencies:
+    loose-envify: ^1.1.0
+    object-assign: ^4.1.1
+    scheduler: ^0.20.1
+  peerDependencies:
+    react: 17.0.1
+  checksum: 6a70028fbe3c95e0056c5e8ce065b4a9b8d4ff3bffde9b016454072bde5e4b012af7668ca45b7235ace428267d5be5237b68ea87ce8c296e54e81a8d678a4355
+  languageName: node
+  linkType: hard
+
+"react-from-dom@npm:^0.5.0":
+  version: 0.5.0
+  resolution: "react-from-dom@npm:0.5.0"
+  peerDependencies:
+    react: ^15.0.0 || ^16.0.0
+  checksum: a993221297759de799a0089ba57de5a4c71099b2f28b1eda3cf7b0c06b66b08cd9c67a28e10109f23d0929753ffa96775695420c6bb60456c21d357f137d118e
+  languageName: node
+  linkType: hard
+
+"react-hot-loader@npm:^4.13.0":
+  version: 4.13.0
+  resolution: "react-hot-loader@npm:4.13.0"
+  dependencies:
+    fast-levenshtein: ^2.0.6
+    global: ^4.3.0
+    hoist-non-react-statics: ^3.3.0
+    loader-utils: ^1.1.0
+    prop-types: ^15.6.1
+    react-lifecycles-compat: ^3.0.4
+    shallowequal: ^1.1.0
+    source-map: ^0.7.3
+  peerDependencies:
+    "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 "
+    react: "^15.0.0 || ^16.0.0 || ^17.0.0 "
+    react-dom: "^15.0.0 || ^16.0.0 || ^17.0.0 "
+  peerDependenciesMeta:
+    "@types/react":
+      optional: true
+  checksum: f1df03e93206b379b605f3da983f700d5c8a16e3ebedf25ca1311067f4dc95cf968206af44d0b734a5505619958f2da5efe9df4bf749ed6a4989e1f6ea5d2915
+  languageName: node
+  linkType: hard
+
+"react-i18next@npm:^11.7.3":
+  version: 11.7.3
+  resolution: "react-i18next@npm:11.7.3"
+  dependencies:
+    "@babel/runtime": ^7.3.1
+    html-parse-stringify2: 2.0.1
+  peerDependencies:
+    i18next: ">= 19.0.0"
+    react: ">= 16.8.0"
+  checksum: 7f0b0535bf2577b534b3c163761f3151a204ae0cd2c2cf286385f6af4401cfc74500f3843328c70c46e5a115ffcfbc007bfee6bea0961b92f7103f26204e8c3a
+  languageName: node
+  linkType: hard
+
+"react-inlinesvg@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "react-inlinesvg@npm:2.1.1"
+  dependencies:
+    exenv: ^1.2.2
+    react-from-dom: ^0.5.0
+  peerDependencies:
+    react: ^16.8.0
+  checksum: 39de7b009a332f3b6b7351846cc4633380d8310273da50a0fbb820d1470714057318411e4d91e8d47e697613eff6d9eb52a0494e662b678660443e858794fdb6
+  languageName: node
+  linkType: hard
+
+"react-is@npm:^16.3.2, react-is@npm:^16.6.0, react-is@npm:^16.7.0, react-is@npm:^16.8.1":
+  version: 16.13.1
+  resolution: "react-is@npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"
+  checksum: 11bcf1267a314a522615f626f3ce3727a3a24cdbf61c4d452add3550a7875326669631326cfb1ba3e92b6f72244c32ffecf93ad21c0cad8455d3e169d0e3f060
+  languageName: node
+  linkType: hard
+
+"react-lifecycles-compat@npm:^3.0.4":
+  version: 3.0.4
+  resolution: "react-lifecycles-compat@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"
+  checksum: 82176a55ef7526414d770d5e07dc1d28b4c7f20281f22c6f53f3a98df9dbbb5d70c94bebee57b4ea8ccc2eee430b907ca7b564a42fbdd0ed21e7c43bfee35404
+  languageName: node
+  linkType: hard
+
+"react-overlays@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "react-overlays@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"
+  dependencies:
+    "@babel/runtime": ^7.4.5
+    "@popperjs/core": ^2.0.0
+    "@restart/hooks": ^0.3.12
+    "@types/warning": ^3.0.0
+    dom-helpers: ^5.1.0
+    prop-types: ^15.7.2
+    uncontrollable: ^7.0.0
+    warning: ^4.0.3
+  peerDependencies:
+    react: ">=16.3.0"
+    react-dom: ">=16.3.0"
+  checksum: 64d46694be7969885c8aa60b671b2a5e9e2fa30431efdd554f12793bc730d045a084a3e245f65e61cb5bcf94884e16f850fa3e870438b463f914556455ac1261
+  languageName: node
+  linkType: hard
+
+"react-responsive@npm:^8.1.0":
+  version: 8.1.0
+  resolution: "react-responsive@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
+  dependencies:
+    hyphenate-style-name: ^1.0.0
+    matchmediaquery: ^0.3.0
+    prop-types: ^15.6.1
+    shallow-equal: ^1.1.0
+  peerDependencies:
+    react: ^16.8.0
+  checksum: 059c460fd4aa826254442ca1d0739d19e262ad08e0960ca62bd74556377021645394c44104256e1dc929d3106d5d91d736f7643c2c6f6d47f0bcd62567c213a8
+  languageName: node
+  linkType: hard
+
+"react-router-bootstrap@npm:^0.25.0":
+  version: 0.25.0
+  resolution: "react-router-bootstrap@npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"
+  dependencies:
+    prop-types: ^15.5.10
+  peerDependencies:
+    react: ">=0.14.0"
+    react-router-dom: ">=4.0.0"
+  checksum: c9a66a8cc92ff2eaffe76e95577c8db5dda68e8a6c7386832e8c8e34da4e3956ea928960391ef3dd9e99f537f1faa08b6689a43dee03bd331eeb8731180803f6
+  languageName: node
+  linkType: hard
+
+"react-router-dom@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "react-router-dom@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"
+  dependencies:
+    "@babel/runtime": ^7.1.2
+    history: ^4.9.0
+    loose-envify: ^1.3.1
+    prop-types: ^15.6.2
+    react-router: 5.2.0
+    tiny-invariant: ^1.0.2
+    tiny-warning: ^1.0.0
+  peerDependencies:
+    react: ">=15"
+  checksum: 9ad2d72630491f324a0f0c1dbcc3dc04d8d7cee7cb9dc9effd115fe736ba06104360a78a624170f863738d77e487d459864206a79d91d3c9663cf1dadb3b637f
+  languageName: node
+  linkType: hard
+
+"react-router@npm:5.2.0, react-router@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "react-router@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"
+  dependencies:
+    "@babel/runtime": ^7.1.2
+    history: ^4.9.0
+    hoist-non-react-statics: ^3.1.0
+    loose-envify: ^1.3.1
+    mini-create-react-context: ^0.4.0
+    path-to-regexp: ^1.7.0
+    prop-types: ^15.6.2
+    react-is: ^16.6.0
+    tiny-invariant: ^1.0.2
+    tiny-warning: ^1.0.0
+  peerDependencies:
+    react: ">=15"
+  checksum: 4437eaa9bab02d46a7d6ea4915731c1f31642d6c3e3f7b9f951f5c6a9a73f35d4deb43a2d6b4be85f27816a20de96c3b9a9239f4b7e9136742106794ad20e95c
+  languageName: node
+  linkType: hard
+
+"react-transition-group@npm:^4.4.1":
+  version: 4.4.1
+  resolution: "react-transition-group@npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"
+  dependencies:
+    "@babel/runtime": ^7.5.5
+    dom-helpers: ^5.0.1
+    loose-envify: ^1.4.0
+    prop-types: ^15.6.2
+  peerDependencies:
+    react: ">=16.6.0"
+    react-dom: ">=16.6.0"
+  checksum: e14446123f820e804335c64be5270333c29e8cfaa43dfc33387e132c5d521cf4a0a7c2408058a147b254ae82a6569f373394d83e977ef340d6937bc2f4ff7d6c
+  languageName: node
+  linkType: hard
+
+"react@npm:^17.0.1":
+  version: 17.0.1
+  resolution: "react@npm:17.0.1"
+  dependencies:
+    loose-envify: ^1.1.0
+    object-assign: ^4.1.1
+  checksum: a76d86ec973eb4b25a46071ac7f974adfd66ed89ad1db63043be1d976ec25417520a210e6d724b0ad937422b706afcf9962cedda9e92125992a8c0e8a95f2051
+  languageName: node
+  linkType: hard
+
+"read-pkg-up@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "read-pkg-up@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"
+  dependencies:
+    find-up: ^2.0.0
+    read-pkg: ^2.0.0
+  checksum: f35e4cb4577b994fc9497886672c748de766ab034e24f029111b6bbbfe757b2e27b6d2b82a28a38f45d9d89ea8a9b1d3c04854e5f991d5deed48f4c9ff7baeb9
+  languageName: node
+  linkType: hard
+
+"read-pkg@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "read-pkg@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"
+  dependencies:
+    load-json-file: ^2.0.0
+    normalize-package-data: ^2.3.2
+    path-type: ^2.0.0
+  checksum: ddf911317fba54abb447b1d76dd1785c37e1360f7b1e39d83201f6f3807572391ab7392f11727a9c4d90600ebc6616d22e72514d2291688c89ebd440148840b4
+  languageName: node
+  linkType: hard
+
+"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6":
+  version: 2.3.7
+  resolution: "readable-stream@npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"
+  dependencies:
+    core-util-is: ~1.0.0
+    inherits: ~2.0.3
+    isarray: ~1.0.0
+    process-nextick-args: ~2.0.0
+    safe-buffer: ~5.1.1
+    string_decoder: ~1.1.1
+    util-deprecate: ~1.0.1
+  checksum: 6e3826560627a751feb3a8aec073ef94c6e47b8c8e06eb5d136323b5f09db9d2077c23a42a8d54ed0123695af54b36c1e4271a8ec55112b15f4b89020d8dec72
+  languageName: node
+  linkType: hard
+
+"readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0":
+  version: 3.6.0
+  resolution: "readable-stream@npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"
+  dependencies:
+    inherits: ^2.0.3
+    string_decoder: ^1.1.1
+    util-deprecate: ^1.0.1
+  checksum: f178b1daa80d9e58ebba71dbb08486430aa6f0dea3a22a1b7401f3f6983077d0bc0edea43099db06b8d006c9ad48d6383e8fb72c05d5b187670aeaf1b9b44f00
+  languageName: node
+  linkType: hard
+
+"readdirp@npm:^2.2.1":
+  version: 2.2.1
+  resolution: "readdirp@npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"
+  dependencies:
+    graceful-fs: ^4.1.11
+    micromatch: ^3.1.10
+    readable-stream: ^2.0.2
+  checksum: 00b5209ee5278ba6faa2fbcabb817e8f64a498ff7fee8cfd30634a04140e673375582812c67c59e25ee3ee9979687b1c832f33e1bbacd8ac3340bab0645b8374
+  languageName: node
+  linkType: hard
+
+"readdirp@npm:~3.4.0":
+  version: 3.4.0
+  resolution: "readdirp@npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"
+  dependencies:
+    picomatch: ^2.2.1
+  checksum: 0159f43eb0a90cf4fde5989b607e0a6bef4e6332dc8648f1b50fbc013f1158e1d021bcfd6dad1dc2895da2bb14cdac408239d047e3d61a01dd3a44376e6ec1f1
+  languageName: node
+  linkType: hard
+
+"rechoir@npm:^0.7.0":
+  version: 0.7.0
+  resolution: "rechoir@npm:0.7.0"
+  dependencies:
+    resolve: ^1.9.0
+  checksum: 1d4cc8db1d4ff51d4c156db7ff6fe0a376e7527b61afafd148f1cfa2c19a6c454f3f77f1cb175e1f1f1476a83dbeba3632de088441dbaa404091a30d39c8749f
+  languageName: node
+  linkType: hard
+
+"reduce-flatten@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "reduce-flatten@npm:2.0.0"
+  checksum: 216ce860c78081b83f255cad4d032361677e4aea87dacecd387e62505e1e4a50dd947b3ce9166b70d8b9aaa45215c1b512c518b5384e5067ee7d29011da0efb4
+  languageName: node
+  linkType: hard
+
+"regenerate-unicode-properties@npm:^8.2.0":
+  version: 8.2.0
+  resolution: "regenerate-unicode-properties@npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"
+  dependencies:
+    regenerate: ^1.4.0
+  checksum: afe83304fbb5e8f74334b6f6f3f19ba261b9036aade352db14f4e5c2776fcf6e6a5da465628545f2f6f50f898a1b5246711b2cafedaa01c3f329d186e850af04
+  languageName: node
+  linkType: hard
+
+"regenerate@npm:^1.4.0":
+  version: 1.4.1
+  resolution: "regenerate@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"
+  checksum: 67fe7ea33291997b20634105c7b6787bcc03e137da348c1cc0d617b3d97d9ed1e05ce4b6dabcb86be7ddf198000f78275bcabd67e66889ba7daa296926f8eada
+  languageName: node
+  linkType: hard
+
+"regenerator-runtime@npm:^0.11.0":
+  version: 0.11.1
+  resolution: "regenerator-runtime@npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"
+  checksum: d98d44b9f5c9c3c670dcb615c5f5374931f937f3075dc8338126f45231643aa8c47ed2bfdef6ae593e311be54ca02d25d943971ca86a3dc1fa99068c2e1b88b2
+  languageName: node
+  linkType: hard
+
+"regenerator-runtime@npm:^0.13.4":
+  version: 0.13.5
+  resolution: "regenerator-runtime@npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"
+  checksum: 8d8ee0eca26e0491085033caf2b1b95379c4db21e38d79cde52bbd4014a3865eee26ec0f4f958682e8600f185f2f5dbcd8c6685b9b9261639767929c19b5bcd2
+  languageName: node
+  linkType: hard
+
+"regenerator-runtime@npm:^0.13.7":
+  version: 0.13.7
+  resolution: "regenerator-runtime@npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"
+  checksum: 6ef567c662088b1b292214920cbd72443059298d477f72e1a37e0a113bafbfac9057cbfe35ae617284effc4b423493326a78561bbff7b04162c7949bdb9624e8
+  languageName: node
+  linkType: hard
+
+"regenerator-transform@npm:^0.14.2":
+  version: 0.14.5
+  resolution: "regenerator-transform@npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"
+  dependencies:
+    "@babel/runtime": ^7.8.4
+  checksum: ed07c2c1d08f4828807f9366621ca1d62102969f5af575662c9e5f085f7b49df068e4944e17c7016898bc125cdc7b0d74014e9856bff3a6a147714c4e7de3ed9
+  languageName: node
+  linkType: hard
+
+"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "regex-not@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"
+  dependencies:
+    extend-shallow: ^3.0.2
+    safe-regex: ^1.1.0
+  checksum: 3d6d95b4fda3cabe7222b3800876491825a865ae6ca4c90bb10fd0f6442d0c57d180657bb65358b4509bdd1cecad1bd2d23e7d15a69f9c523f501cc4431b950b
+  languageName: node
+  linkType: hard
+
+"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.3.0":
+  version: 1.3.0
+  resolution: "regexp.prototype.flags@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0-next.1
+  checksum: 468e19b3aed632653333741346cab170787b9bc79eecdfdd3d7ba5be26574c135edc2ce286d9d4154b635158c3c44f9614fca51cbf6d4d3f529ef89cf7e03908
+  languageName: node
+  linkType: hard
+
+"regexpp@npm:^3.0.0, regexpp@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "regexpp@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"
+  checksum: 69d0ce6b449cf35d3732d6341a1e70850360ffc619f8eef10629871c462e614853fffb80d3f00fc17cd0bb5b8f34b0cde5be4b434e72c0eb3fbba2360c8b5ac4
+  languageName: node
+  linkType: hard
+
+"regexpu-core@npm:^4.7.0":
+  version: 4.7.0
+  resolution: "regexpu-core@npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"
+  dependencies:
+    regenerate: ^1.4.0
+    regenerate-unicode-properties: ^8.2.0
+    regjsgen: ^0.5.1
+    regjsparser: ^0.6.4
+    unicode-match-property-ecmascript: ^1.0.4
+    unicode-match-property-value-ecmascript: ^1.2.0
+  checksum: 8947f4c4ac23494cb842e6a0b82f29dd76737486d78f833c1ba2436a046a134435e442a615d988c6dc6b9cdaf611aafd3627ce8d2f62a8e580f094101916cad4
+  languageName: node
+  linkType: hard
+
+"regexpu-core@npm:^4.7.1":
+  version: 4.7.1
+  resolution: "regexpu-core@npm:4.7.1"
+  dependencies:
+    regenerate: ^1.4.0
+    regenerate-unicode-properties: ^8.2.0
+    regjsgen: ^0.5.1
+    regjsparser: ^0.6.4
+    unicode-match-property-ecmascript: ^1.0.4
+    unicode-match-property-value-ecmascript: ^1.2.0
+  checksum: a4d25a11cb95841325289ab8d0d43182b74cf7fce537e60718bc8b901adb4141714f8108c5d333da302e707068f0ea7be09fd5f06ef26a2b1c27b4f29177b8ab
+  languageName: node
+  linkType: hard
+
+"regjsgen@npm:^0.5.1":
+  version: 0.5.2
+  resolution: "regjsgen@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"
+  checksum: 629afab3d9ce61e104064cda66aca74ec9a1921151cc985d93c5cb58453ed7f7c23479bdb1a4a0826d200ed28c3871a7b8a8938e634ab00194195012893bccbc
+  languageName: node
+  linkType: hard
+
+"regjsparser@npm:^0.6.4":
+  version: 0.6.4
+  resolution: "regjsparser@npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"
+  dependencies:
+    jsesc: ~0.5.0
+  bin:
+    regjsparser: bin/parser
+  checksum: cf7838462ebe0256ef25618eab5981dc080501efde6458906a47ee1c017c93f7e27723d4a56f658014d5c8381a60d189e19f05198ef343e106343642471b1594
+  languageName: node
+  linkType: hard
+
+"relateurl@npm:^0.2.7":
+  version: 0.2.7
+  resolution: "relateurl@npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"
+  checksum: 856db0385d82022042584c14702ce58cb4d74c6b6a6d98ba85357638e64c081e6cb85adbbadebc82eec87b6e70ba43ae02d8655e565dbd4baffdc405a1b0b614
+  languageName: node
+  linkType: hard
+
+"remove-trailing-separator@npm:^1.0.1":
+  version: 1.1.0
+  resolution: "remove-trailing-separator@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"
+  checksum: 17dadf3d1f7c51411b7c426c8e2d6a660359bc8dae7686137120483fe4345bfca4bf7460d2c302aa741a7886c932d8dad708d2b971669d74e0fb3ff9a4814408
+  languageName: node
+  linkType: hard
+
+"renderkid@npm:^2.0.1":
+  version: 2.0.3
+  resolution: "renderkid@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"
+  dependencies:
+    css-select: ^1.1.0
+    dom-converter: ^0.2
+    htmlparser2: ^3.3.0
+    strip-ansi: ^3.0.0
+    utila: ^0.4.0
+  checksum: 6520020e223b934fba7faf2c87242b065196d48a6ef8fc6c2c371379ed9c3a40cd8254d7db4b1cfb1bfad254b17d346800270bb0b8e7b96002285f5b9bf13c98
+  languageName: node
+  linkType: hard
+
+"repeat-element@npm:^1.1.2":
+  version: 1.1.3
+  resolution: "repeat-element@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"
+  checksum: 6a59b879efdd3512a786be5de1bc05c110822fec6820bb5a38dfdfdd4488e7ba0cf6d15b28da21544e6f072ae60762ee9efa784f2988128e656c97a8b0be46cb
+  languageName: node
+  linkType: hard
+
+"repeat-string@npm:^1.6.1":
+  version: 1.6.1
+  resolution: "repeat-string@npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"
+  checksum: 99c431ba7bef7a5d39819d562ebca89206368b45f73213677a3b562e25b5dd272d9e6a2ca8105001df14b6fc8cc71f0b10258c86e16cf8a256318fac1ddc8a77
+  languageName: node
+  linkType: hard
+
+"request@npm:^2.88.2":
+  version: 2.88.2
+  resolution: "request@npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"
+  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
+  checksum: 7a74841f3024cac21d8c3cca7f7f2e4243fbd62464d2f291fddb94008a9d010e20c4a1488f4224b03412a4438a699db2a3de11019e486c8e656f86b0b79bf022
+  languageName: node
+  linkType: hard
+
+"require-directory@npm:^2.1.1":
+  version: 2.1.1
+  resolution: "require-directory@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"
+  checksum: f495d02d89c385af2df4b26f0216ece091e99710d358d0ede424126c476d0c639e8bd77dcd237c00a6a5658f3d862e7513164f8c280263052667d06df830eb23
+  languageName: node
+  linkType: hard
+
+"require-main-filename@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "require-main-filename@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"
+  checksum: 8d3633149a7fef67d14613146247137fe1dc4cc969bf2d1adcd40e3c28056de503229f41e78cba5efebad3a223cbfb4215fd220d879148df10c6d9a877099dbd
+  languageName: node
+  linkType: hard
+
+"requires-port@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "requires-port@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"
+  checksum: 0db25fb2ac9b4f2345a350846b7ba99d1f25a6686b1728246d14f05450c8f2fc066bdfae4561b4be2627c184a030a27e17268cfefdf46836e271db13734bc49e
+  languageName: node
+  linkType: hard
+
+"resolve-alpn@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "resolve-alpn@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"
+  checksum: 17baee01c03a57cebd163aa5c9bd94f33646378bce8aa94c7a8d29fc0e1bf0807532bda3c36bb929511606633921d0f4a69e7fcc894cf02ad1c742e649b71673
+  languageName: node
+  linkType: hard
+
+"resolve-cwd@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "resolve-cwd@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"
+  dependencies:
+    resolve-from: ^3.0.0
+  checksum: f5d5526526d646c013f8ccb946861907e9f5fcfb951b2495add0f6a344a6796111b1c88e5227bc846d04a0e07182cc856a694ad0dd559dfa6a795a4eaff4477e
+  languageName: node
+  linkType: hard
+
+"resolve-cwd@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "resolve-cwd@npm:3.0.0"
+  dependencies:
+    resolve-from: ^5.0.0
+  checksum: 97edfbbf83ade94e880c2e62d0faf76eb245ea5696fc70f59eaa2747773e19108a1fa0fba13f53d471d9f245454bb1592dc4f537c6dfd19b8016ef8639a9fadc
+  languageName: node
+  linkType: hard
+
+"resolve-from@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "resolve-from@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"
+  checksum: dc0c83b3b867753b9fe3a901587fa70efc596a69355eb133fd68f8bbaef4e77266ef38b8a01a2d664aa32ba732425d54413b3d581ca7dff96bee177c61a0c84d
+  languageName: node
+  linkType: hard
+
+"resolve-from@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "resolve-from@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"
+  checksum: 87a4357c0c1c2d165012ec04a3b2aa58931c0c0be257890806760b627bad36c9bceb6f9b2a3726f8570c67f2c9ff3ecc9507fe65cc3ad8d45cdab015245c649f
+  languageName: node
+  linkType: hard
+
+"resolve-from@npm:^5.0.0":
+  version: 5.0.0
+  resolution: "resolve-from@npm:5.0.0"
+  checksum: 0d29fc7012eb21f34d2637fa0602694f60e64c14bf5fbd5395b72f6ea5540a6906cbeef062edefc34c22fd802bfe8ae46ef936e6c4a3f1b1047390f9738dd76f
+  languageName: node
+  linkType: hard
+
+"resolve-pathname@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "resolve-pathname@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"
+  checksum: 88ed8b3dd2b5cec68d35c319dc831cd879155da153208bb9c035f263cd9220fcf0af49158456871f64a181511f8e95c483c3700a958f4110f36e513b78cfd9f0
+  languageName: node
+  linkType: hard
+
+"resolve-url@npm:^0.2.1":
+  version: 0.2.1
+  resolution: "resolve-url@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"
+  checksum: 9e1cd0028d0f2e157a889a02653637c1c1d7f133aa47b75261b4590e84105e63fae3b6be31bad50d5b94e01898d9dbe6b95abe28db7eab46e22321f7cbf00273
+  languageName: node
+  linkType: hard
+
+"resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2":
+  version: 1.17.0
+  resolution: "resolve@npm:1.17.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz"
+  dependencies:
+    path-parse: ^1.0.6
+  checksum: 5e3cdb8cf68c20b0c5edeb6505e7fab20c6776af0cae4b978836e557420aef7bb50acd25339bbb143b7f80533aa1988c7e827a0061aee9c237926a7d2c41f8d0
+  languageName: node
+  linkType: hard
+
+"resolve@^1.18.1, resolve@^1.9.0":
+  version: 1.18.1
+  resolution: "resolve@npm:1.18.1"
+  dependencies:
+    is-core-module: ^2.0.0
+    path-parse: ^1.0.6
+  checksum: deb5ba746e1c038ba8fb7ca5c35ee3fe88665e2f79be3e9a706e5254eeea55eb12b6f1830dd60a11bbafa327bcd868284fbf5caf428cf5761b3f094abdffee77
+  languageName: node
+  linkType: hard
+
+"resolve@patch:resolve@^1.10.0#builtin<compat/resolve>, resolve@patch:resolve@^1.13.1#builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#builtin<compat/resolve>, resolve@patch:resolve@^1.3.2#builtin<compat/resolve>":
+  version: 1.17.0
+  resolution: "resolve@patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"
+  dependencies:
+    path-parse: ^1.0.6
+  checksum: 4bcfb568860d0c361fd16c26b6fce429711138ff0de7dd353bdd73fcb5c7eede2f4602d40ccfa08ff45ec7ef9830845eab2021a46036af0a6e5b58bab1ff6399
+  languageName: node
+  linkType: hard
+
+"resolve@patch:resolve@^1.18.1#builtin<compat/resolve>, resolve@patch:resolve@^1.9.0#builtin<compat/resolve>":
+  version: 1.18.1
+  resolution: "resolve@patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"
+  dependencies:
+    is-core-module: ^2.0.0
+    path-parse: ^1.0.6
+  checksum: 9e62d2803ad1ec21b13780cc6a45b72bb7b6525eb5b44f0ede7cde37c00a8eb310c06ebfcc7de7dc10c2234d7d271bc4f1eed9783fb87acac141597cd4efaeec
+  languageName: node
+  linkType: hard
+
+"responselike@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "responselike@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"
+  dependencies:
+    lowercase-keys: ^2.0.0
+  checksum: 11d8225dd8bbbd2ab7482c2e54ff2618e346c7d785e66d2ff5da03d6eafa8b33c3a4c6d685324dccf06f36ee2695db9bd2579382548c2a7253d770204694a63d
+  languageName: node
+  linkType: hard
+
+"ret@npm:~0.1.10":
+  version: 0.1.15
+  resolution: "ret@npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"
+  checksum: 749c2fcae7071f5ecea4f8a18e35a79a8e8a58e522a16d843ecb9dfe9e647a76d92ae85c22690b02f87d3ab78b6b1f73341efc2fabbf59ed54dcfd9b1bdff883
+  languageName: node
+  linkType: hard
+
+"retry@npm:^0.12.0":
+  version: 0.12.0
+  resolution: "retry@npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"
+  checksum: 51f2fddddb2f157a0738c53c515682813a881df566da36992f3cf0a975ea84a19434c5abbc682056e97351540bcc7ea38fce2622d0b191c3b5cc1020b71ea0f2
+  languageName: node
+  linkType: hard
+
+"reusify@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "reusify@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"
+  checksum: 08ef02ed0514f020a51131ba2e6c27c66ccebe25d49cfc83467a0d4054db4634a2853480d0895c710b645ab66af1a6fb3e183888306ae559413bd96c69f39ccd
+  languageName: node
+  linkType: hard
+
+"rimraf@npm:2.6.3":
+  version: 2.6.3
+  resolution: "rimraf@npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"
+  dependencies:
+    glob: ^7.1.3
+  bin:
+    rimraf: ./bin.js
+  checksum: c9ce1854f19327606934558f4729b0f7aa7b9f1a3e7ca292d56261cce1074e20b0a0b16689166da6d8ab24ed9c30f7c71fba0df38e1d37f0233b6f48307c5c7a
+  languageName: node
+  linkType: hard
+
+"rimraf@npm:^2.6.3":
+  version: 2.7.1
+  resolution: "rimraf@npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"
+  dependencies:
+    glob: ^7.1.3
+  bin:
+    rimraf: ./bin.js
+  checksum: 059efac2838ef917d4d1da1d80e724ad28c120cdf14ca6ed27ca72db2dc70be3e25421cba5947c6ec3d804c1d2bb9a247254653816ee0722bf943ffdd1ae19ef
+  languageName: node
+  linkType: hard
+
+"rimraf@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "rimraf@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"
+  dependencies:
+    glob: ^7.1.3
+  bin:
+    rimraf: bin.js
+  checksum: f0de3e445581e64a8a077af476cc30708e659f5779ec2ca2a161556d0792aa318a685923798ae22055b4ecd02b9aff444ef619578f7af53cf8e0e248031e3dee
+  languageName: node
+  linkType: hard
+
+"rollup-plugin-babel@npm:^4.3.3":
+  version: 4.4.0
+  resolution: "rollup-plugin-babel@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"
+  dependencies:
+    "@babel/helper-module-imports": ^7.0.0
+    rollup-pluginutils: ^2.8.1
+  peerDependencies:
+    "@babel/core": 7 || ^7.0.0-rc.2
+    rollup: ">=0.60.0 <3"
+  checksum: 9f82719d1595e4f6770d6d5521f8bd982eace92d97ac258d37c0e2410c3e355f7bb5423ca00a178fe78e6c07facfd20cfa06c25f468d419b3152802e256d6f86
+  languageName: node
+  linkType: hard
+
+"rollup-plugin-terser@npm:^5.3.1":
+  version: 5.3.1
+  resolution: "rollup-plugin-terser@npm:5.3.1"
+  dependencies:
+    "@babel/code-frame": ^7.5.5
+    jest-worker: ^24.9.0
+    rollup-pluginutils: ^2.8.2
+    serialize-javascript: ^4.0.0
+    terser: ^4.6.2
+  peerDependencies:
+    rollup: ">=0.66.0 <3"
+  checksum: 18ebbdc41ae13b89f033314942b104320507133ade4f865d36fc17263662686f459aea2ba7ade6eb069e8630e27fb8183f03e752d9b62f0f6a3cf8a635e71c5f
+  languageName: node
+  linkType: hard
+
+"rollup-pluginutils@npm:^2.8.1, rollup-pluginutils@npm:^2.8.2":
+  version: 2.8.2
+  resolution: "rollup-pluginutils@npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"
+  dependencies:
+    estree-walker: ^0.6.1
+  checksum: 6922c1a26df033cc3da4650106244fb2211b5ddf72a93be5010cbe51a0817c9abcab08f61cbc3f5fc906b2701df123d8c9b0dae0a34e69dd07218e34e5d357b8
+  languageName: node
+  linkType: hard
+
+"rollup@npm:^1.31.1":
+  version: 1.32.1
+  resolution: "rollup@npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"
+  dependencies:
+    "@types/estree": "*"
+    "@types/node": "*"
+    acorn: ^7.1.0
+  bin:
+    rollup: dist/bin/rollup
+  checksum: fc59b8af482e0729fd720a6be1221f477ae1848fd88b0474d10f805567aa4ad5f16afa9a976c8fd30fd196fcb689b252826cdd138e7a4ad88462547adb5dbf40
+  languageName: node
+  linkType: hard
+
+"run-parallel@npm:^1.1.9":
+  version: 1.1.9
+  resolution: "run-parallel@npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"
+  checksum: a05ca86e9908b2d2f90d659a0eb4129e040341729fc9ac1fa8971bf0d77ca6ccfb69f9a559cecce9cd541a9328fa4fa19a3faa6d24698d93cf751efb90aec61f
+  languageName: node
+  linkType: hard
+
+"rxjs@npm:^6.6.3":
+  version: 6.6.3
+  resolution: "rxjs@npm:6.6.3"
+  dependencies:
+    tslib: ^1.9.0
+  checksum: 61a3da6db947f69b7d805df3a619d8f60678b7372c4d571dd63e45ef3532be984a88307ea0aa2cd8d2578b62c3c022186e8da9dca47c9c1b8c9ecba6f5581deb
+  languageName: node
+  linkType: hard
+
+"safe-buffer@npm:5.1.2, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+  version: 5.1.2
+  resolution: "safe-buffer@npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"
+  checksum: 2708587c1b5e70a5e420714ceb59f30f5791c6e831d39812125a008eca63a4ac18578abd020a0776ea497ff03b4543f2b2a223a7b9073bf2d6c7af9ec6829218
+  languageName: node
+  linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0":
+  version: 5.2.1
+  resolution: "safe-buffer@npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"
+  checksum: 0bb57f0d8f9d1fa4fe35ad8a2db1f83a027d48f2822d59ede88fd5cd4ddad83c0b497213feb7a70fbf90597a70c5217f735b0eb1850df40ce9b4ae81dd22b3f9
+  languageName: node
+  linkType: hard
+
+"safe-regex@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "safe-regex@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"
+  dependencies:
+    ret: ~0.1.10
+  checksum: c355e3163fda56bef5ef0896de55ab1e26504def2c7f9ee96ee8b90171a7da7a596048d256e61a51e2d041d9f4625d956d3702ebcfb7627c7a4846896d6ce3a4
+  languageName: node
+  linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
+  version: 2.1.2
+  resolution: "safer-buffer@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"
+  checksum: 549ba83f5b314b59898efe3422120ce1ca7987a6eae5925a5fa5db930dc414d4a9dde0a5594f89638cd6ea60b6840ea961872908933ac2428d1726489db46fa5
+  languageName: node
+  linkType: hard
+
+"sass-loader@npm:^10.0.4":
+  version: 10.0.4
+  resolution: "sass-loader@npm:10.0.4"
+  dependencies:
+    klona: ^2.0.4
+    loader-utils: ^2.0.0
+    neo-async: ^2.6.2
+    schema-utils: ^3.0.0
+    semver: ^7.3.2
+  peerDependencies:
+    fibers: ">= 3.1.0"
+    node-sass: ^4.0.0
+    sass: ^1.3.0
+    webpack: ^4.36.0 || ^5.0.0
+  peerDependenciesMeta:
+    fibers:
+      optional: true
+    node-sass:
+      optional: true
+    sass:
+      optional: true
+  checksum: ec8e0b8a388750a37f044c3fc1ad89a3dd817d68687a5bfc8abd176aef2d3d63e105a9bbf4ed4a1a729bef95986aba72db6f3048dc939460f06c7437f26242a4
+  languageName: node
+  linkType: hard
+
+"sass@npm:^1.27.0":
+  version: 1.27.0
+  resolution: "sass@npm:1.27.0"
+  dependencies:
+    chokidar: ">=2.0.0 <4.0.0"
+  bin:
+    sass: sass.js
+  checksum: db4342b13bbcc5e0f13c1d9139f31c48f9c5a03bdb1c8d8ef7b47d063f5c333a2b69642bd489501cd756f4d0d1da43ee77127938cf9743cc39839952319a705e
+  languageName: node
+  linkType: hard
+
+"scheduler@npm:^0.20.0, scheduler@npm:^0.20.1":
+  version: 0.20.1
+  resolution: "scheduler@npm:0.20.1"
+  dependencies:
+    loose-envify: ^1.1.0
+    object-assign: ^4.1.1
+  checksum: 377b4ad0d8313c4548bac7374bc38409e9d142799979ce396787efa04d1bcabf2591540f243f2131e3df8e56e7f5b29c5415248523e88ecb60f13a32db2e076f
+  languageName: node
+  linkType: hard
+
+"schema-utils@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "schema-utils@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"
+  dependencies:
+    ajv: ^6.1.0
+    ajv-errors: ^1.0.0
+    ajv-keywords: ^3.1.0
+  checksum: d2f753e7a17c6054cb8c6d0806daeddac73ea2a192e452f506e50af14da1999d1435618b81a616d9f72e1606c0e46bf1870c9b429bce5d3a949d34455e6e54ff
+  languageName: node
+  linkType: hard
+
+"schema-utils@npm:^2.6.5":
+  version: 2.7.0
+  resolution: "schema-utils@npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"
+  dependencies:
+    "@types/json-schema": ^7.0.4
+    ajv: ^6.12.2
+    ajv-keywords: ^3.4.1
+  checksum: 5d3e7c9e532712bbe0b7ba2f0bdbebc88ca3066c00ceb89877667c3c7b7ea5ee65e0ff7ffbf5164ebda43b0726166d4d39b382e91e9554b7ad2f6b06e77f947d
+  languageName: node
+  linkType: hard
+
+"schema-utils@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "schema-utils@npm:3.0.0"
+  dependencies:
+    "@types/json-schema": ^7.0.6
+    ajv: ^6.12.5
+    ajv-keywords: ^3.5.2
+  checksum: a084f593f222560c412a4d8f40c92386c01c1c709f27c0672c2f02927a4d4d475f57f8b8e91198d0defb452add160476a03f07a05b26200a64b5124fa874e158
+  languageName: node
+  linkType: hard
+
+"secure-compare@npm:3.0.1":
+  version: 3.0.1
+  resolution: "secure-compare@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"
+  checksum: 6444a93f74532ca0628698461fbad281efcb826268f31dcc492823eef4be9c6d9254000e296189f7173db8774f3527e13d0e757020d2c3c683ba64f899c3600e
+  languageName: node
+  linkType: hard
+
+"select-hose@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "select-hose@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"
+  checksum: 4da089c0225bfddf86d6e3942d822bab66da27c39c72baacab5bb8b1bfa7e5da45b8dfac95bd7fbe2d5b0def50c1383d1701b92f22891400abcd562bb4324af7
+  languageName: node
+  linkType: hard
+
+"selfsigned@npm:^1.10.7":
+  version: 1.10.7
+  resolution: "selfsigned@npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"
+  dependencies:
+    node-forge: 0.9.0
+  checksum: ef53d4801c5cb67690dba94b105e3d87d243f1b1254c7cc02db51d7cb352ddfece065951874515b7c23d52025c250d9f50d74dbe547ba38cca8d15c5ad4ad5e6
+  languageName: node
+  linkType: hard
+
+"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0":
+  version: 5.7.1
+  resolution: "semver@npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"
+  bin:
+    semver: ./bin/semver
+  checksum: 06ff0ed753ebf741b7602be8faad620d6e160a2cb3f61019d00d919c8bca141638aa23c34da779b8595afdc9faa3678bfbb5f60366b6a4f65f98cf86605bbcdb
+  languageName: node
+  linkType: hard
+
+"semver@npm:7.0.0":
+  version: 7.0.0
+  resolution: "semver@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"
+  bin:
+    semver: bin/semver.js
+  checksum: 5162b31e9902be1d51d63523eb21d28164d632f527cb0dc439a58d6eaf1a2f3c49c4e2a0f7cf8d650f673638ae34ac7e0c7c2048ff66bc5dc1298ef8551575b5
+  languageName: node
+  linkType: hard
+
+"semver@npm:^6.0.0, semver@npm:^6.3.0":
+  version: 6.3.0
+  resolution: "semver@npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"
+  bin:
+    semver: ./bin/semver.js
+  checksum: f0d155c06a67cc7e500c92d929339f1c6efd4ce9fe398aee6acc00a2333489cca0f5b4e76ee7292beba237fcca4b5a3d4a6153471f105f56299801bdab37289f
+  languageName: node
+  linkType: hard
+
+"semver@npm:^7.1.2, semver@npm:^7.2.1, semver@npm:^7.3.2":
+  version: 7.3.2
+  resolution: "semver@npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"
+  bin:
+    semver: bin/semver.js
+  checksum: bceb46d396d039afb5be2b2860bce1b0a43ecbadc72dde7ebe9c56dd9035ca50d9b8e086208ff9bbe53773ebde0bcfc6fc0842d7358398bca7054bb9ced801e3
+  languageName: node
+  linkType: hard
+
+"send@npm:0.17.1":
+  version: 0.17.1
+  resolution: "send@npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"
+  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
+  checksum: 58e4ab2e07e8dfb206ca954a9b85f4e367aba0e4d59ce4c9c96a82034385b67f25d33ad526fdb69d635744bbe4d8afea06e2c0348d7d32920e3489d86dc3ec6f
+  languageName: node
+  linkType: hard
+
+"serialize-javascript@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "serialize-javascript@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"
+  dependencies:
+    randombytes: ^2.1.0
+  checksum: f17305aaabab9ae443505d1bf477c13b09adb7031c397d18400bec16f43f788febdd3311ca6043fdebd1d446cfa70a5804ef7268da54351dec51080f56d52fa9
+  languageName: node
+  linkType: hard
+
+"serialize-javascript@npm:^5.0.1":
+  version: 5.0.1
+  resolution: "serialize-javascript@npm:5.0.1"
+  dependencies:
+    randombytes: ^2.1.0
+  checksum: 97eef70a33c75e690b0c6aa2ffe622ecdfc888d3f181a5cf129e5778228dcd100febabc0f41ff793199ee79acd14cbbad0c69f1348a3893580fe424c4718889b
+  languageName: node
+  linkType: hard
+
+"serve-index@npm:^1.9.1":
+  version: 1.9.1
+  resolution: "serve-index@npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"
+  dependencies:
+    accepts: ~1.3.4
+    batch: 0.6.1
+    debug: 2.6.9
+    escape-html: ~1.0.3
+    http-errors: ~1.6.2
+    mime-types: ~2.1.17
+    parseurl: ~1.3.2
+  checksum: 035c0b7d5f0457753cf6fdb3ee7d4eb94fab8abd888780ba4d84feaacc72e462ba369d5dfb92c9f0a8c770f2a13b2de32f36c237eb206fc9e1662ada61b5f489
+  languageName: node
+  linkType: hard
+
+"serve-static@npm:1.14.1":
+  version: 1.14.1
+  resolution: "serve-static@npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"
+  dependencies:
+    encodeurl: ~1.0.2
+    escape-html: ~1.0.3
+    parseurl: ~1.3.3
+    send: 0.17.1
+  checksum: 97e8c94ec02950d019000ca12a8e0b4fdeaaabb7ae965c1c05557b55b48114716ae92688972a8d9f06a5e2d5957c305253a859ec223bb39a1e0732366d0e2768
+  languageName: node
+  linkType: hard
+
+"set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0":
+  version: 2.0.0
+  resolution: "set-blocking@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"
+  checksum: 0ac2403b0c2d39bf452f6d5d17dfd3cb952b9113098e1231cc0614c436e2f465637e39d27cf3b93556f5c59795e9790fd7e98da784c5f9919edeba4295ffeb29
+  languageName: node
+  linkType: hard
+
+"set-value@npm:^2.0.0, set-value@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "set-value@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"
+  dependencies:
+    extend-shallow: ^2.0.1
+    is-extendable: ^0.1.1
+    is-plain-object: ^2.0.3
+    split-string: ^3.0.1
+  checksum: a97a99a00cc5ed3034ccd690ff4dde167e4182ec4ef2fd5277637a6e388839292559301408b91405534b44e76450bdd443ac95427fde40e9a1a62102c1262bd1
+  languageName: node
+  linkType: hard
+
+"setprototypeof@npm:1.1.0":
+  version: 1.1.0
+  resolution: "setprototypeof@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"
+  checksum: 8a3fb2ff4bf7daf0f8fb0e52d87d6e3dc387599e1c7a42833fddc1d711e87f7f187a6f957137a435ae154a98877e4357569f1fb48f3d17e96242621cd469e1f6
+  languageName: node
+  linkType: hard
+
+"setprototypeof@npm:1.1.1":
+  version: 1.1.1
+  resolution: "setprototypeof@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"
+  checksum: 0efed4da5aec7535828ac07c3b560f0a54257a4a7d5390ffabe5530a083974aef577651507974215edb92a51efa142f22fb3242e24d630ba6adcbfc9e7f1ff2b
+  languageName: node
+  linkType: hard
+
+"shallow-equal@npm:^1.1.0":
+  version: 1.2.1
+  resolution: "shallow-equal@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"
+  checksum: 5002ac4a3639e35782d3cb21073d48e1e4f85321cc54608f48b2331f6db6d54e4f4b44ed81ec4d75385ebe893e8286752b1e29595381e6adad72dd836f001b7f
+  languageName: node
+  linkType: hard
+
+"shallowequal@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "shallowequal@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"
+  checksum: 15820dd544ce15521565c366940a46dcbe0f093c1336f6259c7b3e2490ca10135645ee262778f555d3ccc38283207f2f0a41e9a0f26888b5d5159f2904c4ac68
+  languageName: node
+  linkType: hard
+
+"shebang-command@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "shebang-command@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"
+  dependencies:
+    shebang-regex: ^1.0.0
+  checksum: 2a1e0092a6b80b14ec742ef4e982be8aa670edc7de3e8c68b26744fb535051f7d92518106387b52e9aabe0c1ceae33d23a7dfdb94c3d7f5035c3868b723a2854
+  languageName: node
+  linkType: hard
+
+"shebang-command@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "shebang-command@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"
+  dependencies:
+    shebang-regex: ^3.0.0
+  checksum: 85aa394d8cedeedf2e03524d6defef67a2b07d3a17d7ee50d4281d62d3fca898f26ebe7aa7bf674d51b80f197aa1d346bc1a10e8efb04377b534f4322c621012
+  languageName: node
+  linkType: hard
+
+"shebang-regex@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "shebang-regex@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"
+  checksum: cf1a41cb09023e7d39739d7145fcba57c3fabc6728b78ce706f7315cf52dfadf30f7eea664e069224fbcbbfb6ab853bc55ac45f494b47ee73fc209c98487fae5
+  languageName: node
+  linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "shebang-regex@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"
+  checksum: ea18044ffaf18129ced5a246660a9171a7dff98999aaa9de8abb237d8a7711d8a1f76e16881399994ee429156717ce1c6a50c665bb18a4d55a7f80b9125b1f7d
+  languageName: node
+  linkType: hard
+
+"side-channel@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "side-channel@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"
+  dependencies:
+    es-abstract: ^1.17.0-next.1
+    object-inspect: ^1.7.0
+  checksum: cbac23d542734932f164d3b4fdbd0307f97aae96c135c03100ad1d23b2ce2cd887899e94d4c231b0af880760314e381e5ca63d2d56e9fcc43e0d7d535db12624
+  languageName: node
+  linkType: hard
+
+"signal-exit@npm:^3.0.0":
+  version: 3.0.3
+  resolution: "signal-exit@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"
+  checksum: f8f3fec95c8d1f9ad7e3cce07e1195f84e7a85cdcb4e825e8a2b76aa5406a039083d2bc9662b3cf40e6948262f41277047d20e6fbd58c77edced0b18fab647d8
+  languageName: node
+  linkType: hard
+
+"signal-exit@npm:^3.0.2":
+  version: 3.0.3
+  resolution: "signal-exit@npm:3.0.3"
+  checksum: f8f3fec95c8d1f9ad7e3cce07e1195f84e7a85cdcb4e825e8a2b76aa5406a039083d2bc9662b3cf40e6948262f41277047d20e6fbd58c77edced0b18fab647d8
+  languageName: node
+  linkType: hard
+
+"slash@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "slash@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"
+  checksum: fc3e8597d822ee3ba6cd76e9b001cd5be315f9b81c3a03a29bb611c003d1484e3b29a9e7bc020298fa669b585ff7c9268f44513f60c186216eb6af3111a3e838
+  languageName: node
+  linkType: hard
+
+"slice-ansi@npm:^2.1.0":
+  version: 2.1.0
+  resolution: "slice-ansi@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"
+  dependencies:
+    ansi-styles: ^3.2.0
+    astral-regex: ^1.0.0
+    is-fullwidth-code-point: ^2.0.0
+  checksum: 7578393cac91c28f8cb5fa5df36b826ad62c9e66313d2547770db8401570fa8f4aa20cd84ef9244fa054d8e9cc6bfc02578784bb89b238d384b99f2728a35a6d
+  languageName: node
+  linkType: hard
+
+"snapdragon-node@npm:^2.0.1":
+  version: 2.1.1
+  resolution: "snapdragon-node@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"
+  dependencies:
+    define-property: ^1.0.0
+    isobject: ^3.0.0
+    snapdragon-util: ^3.0.1
+  checksum: 75918b0d6061b6acf2b9a9833b8ba7cef068df141925e790269f25f0a33d1ceb9a0ebfc39286891c112bfffbbf87744223127dba53f55e85318e335e324b65b9
+  languageName: node
+  linkType: hard
+
+"snapdragon-util@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "snapdragon-util@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"
+  dependencies:
+    kind-of: ^3.2.0
+  checksum: d1a7ab4171376f2caacae601372dacf7fdad055e63f5e7eb3e9bd87f069b41d6fc8f54726d26968682e1ba448d5de80e94f7613d9b708646b161c4789988fa75
+  languageName: node
+  linkType: hard
+
+"snapdragon@npm:^0.8.1":
+  version: 0.8.2
+  resolution: "snapdragon@npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"
+  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
+  checksum: c30b63a732bf37dbd2147bf57b4d9eac651ab7b313d1521f73855154b2c2f5a3f2ad18bd47e21cc64b6991f868ecb2a99f8da973ca86da39956f1f0f720b7033
+  languageName: node
+  linkType: hard
+
+"sockjs-client@npm:1.4.0":
+  version: 1.4.0
+  resolution: "sockjs-client@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"
+  dependencies:
+    debug: ^3.2.5
+    eventsource: ^1.0.7
+    faye-websocket: ~0.11.1
+    inherits: ^2.0.3
+    json3: ^3.3.2
+    url-parse: ^1.4.3
+  checksum: efe7e7bcf2758f5ab3947f750b9909ea442022911dfad5883f5133085b587d0ac96f579a0463be8ea0613d1d4c5ee68af33b0896b58b4b7734571d9290b6c1c0
+  languageName: node
+  linkType: hard
+
+"sockjs@npm:0.3.20":
+  version: 0.3.20
+  resolution: "sockjs@npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"
+  dependencies:
+    faye-websocket: ^0.10.0
+    uuid: ^3.4.0
+    websocket-driver: 0.6.5
+  checksum: 9a8596f800e66bdb718165e1e51bb20d04ebf2f9f837cb459a83060b78230ae787bb6bbbc75ded3c20409b935a6cf0e03fc762cf26b558cc1f7b557b6acc9fbc
+  languageName: node
+  linkType: hard
+
+"source-list-map@npm:^2.0.0":
+  version: 2.0.1
+  resolution: "source-list-map@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"
+  checksum: d8d45f29987d00d995ccda308dcc78b710031a9958fdb5d26674d32220c952eb7a8562062638d91896628ae4eef30e1cd112a6a547563dfda0b013024c2a9bf7
+  languageName: node
+  linkType: hard
+
+"source-list-map@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "source-list-map@npm:2.0.1"
+  checksum: d8d45f29987d00d995ccda308dcc78b710031a9958fdb5d26674d32220c952eb7a8562062638d91896628ae4eef30e1cd112a6a547563dfda0b013024c2a9bf7
+  languageName: node
+  linkType: hard
+
+"source-map-resolve@npm:^0.5.0":
+  version: 0.5.3
+  resolution: "source-map-resolve@npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"
+  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
+  checksum: 042ad0c0ba70458ba45fc8726a4eb61068ca0a5273578994803e25fc0fb8da00854cf5004616c9b6d0cb7fcd528c50313789d75dfc56a2f5c789cbd332bf4331
+  languageName: node
+  linkType: hard
+
+"source-map-support@npm:~0.5.12":
+  version: 0.5.19
+  resolution: "source-map-support@npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"
+  dependencies:
+    buffer-from: ^1.0.0
+    source-map: ^0.6.0
+  checksum: 59d4efaae97755155b078413ecba63517e3ef054cc7ab767bbd30e6f3054be2ae8e8f5cce7eef53b7eb93e98fe27a58dd8f5e7abfb13144ba420ddaf5267bbb2
+  languageName: node
+  linkType: hard
+
+"source-map-support@npm:~0.5.19":
+  version: 0.5.19
+  resolution: "source-map-support@npm:0.5.19"
+  dependencies:
+    buffer-from: ^1.0.0
+    source-map: ^0.6.0
+  checksum: 59d4efaae97755155b078413ecba63517e3ef054cc7ab767bbd30e6f3054be2ae8e8f5cce7eef53b7eb93e98fe27a58dd8f5e7abfb13144ba420ddaf5267bbb2
+  languageName: node
+  linkType: hard
+
+"source-map-url@npm:^0.4.0":
+  version: 0.4.0
+  resolution: "source-map-url@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"
+  checksum: 84d509cfa1f6f5e0d2a36e17b8097422954e3007fbe4b741c2f1ec91551ac5493ffa0c21862a54bb8e0d31701fe2cba1129aced695f515d35d375bfad755eb98
+  languageName: node
+  linkType: hard
+
+"source-map@npm:^0.5.0, source-map@npm:^0.5.6":
+  version: 0.5.7
+  resolution: "source-map@npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"
+  checksum: 737face96577a2184a42f141607fcc2c9db5620cb8517ae8ab3924476defa138fc26b0bab31e98cbd6f19211ecbf78400b59f801ff7a0f87aa9faa79f7433e10
+  languageName: node
+  linkType: hard
+
+"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
+  version: 0.6.1
+  resolution: "source-map@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
+  checksum: 8647829a0611724114022be455ca1c8a2c8ae61df81c5b3667d9b398207226a1e21174fb7bbf0b4dbeb27ac358222afb5a14f1c74a62a62b8883b012e5eb1270
+  languageName: node
+  linkType: hard
+
+"source-map@npm:^0.7.3":
+  version: 0.7.3
+  resolution: "source-map@npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"
+  checksum: 351ce26ffa1ebf203660c0d70d7566c81e65d2d994d1c2d94da140808e02da34961673ce12ecea9b40797b96fbeb8c70bf71a4ad9f779f1a4fdbba75530bb386
+  languageName: node
+  linkType: hard
+
+"source-map@npm:~0.7.2":
+  version: 0.7.3
+  resolution: "source-map@npm:0.7.3"
+  checksum: 351ce26ffa1ebf203660c0d70d7566c81e65d2d994d1c2d94da140808e02da34961673ce12ecea9b40797b96fbeb8c70bf71a4ad9f779f1a4fdbba75530bb386
+  languageName: node
+  linkType: hard
+
+"sourcemap-codec@npm:^1.4.4":
+  version: 1.4.8
+  resolution: "sourcemap-codec@npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"
+  checksum: 4d56d1232a45af813606d1755f11e7ae6b3542c615a7e3f904382f0134a9412ba8d090e83749254d78449eafdfcc62d5158b8f35e6241480b51b74b5c46b99f9
+  languageName: node
+  linkType: hard
+
+"spdx-correct@npm:^3.0.0":
+  version: 3.1.1
+  resolution: "spdx-correct@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"
+  dependencies:
+    spdx-expression-parse: ^3.0.0
+    spdx-license-ids: ^3.0.0
+  checksum: f3413eb225ef9f13aa2ec05230ff7669bffad055a7f62ec85164dd27f00a9f1e19880554a8fa5350fc434764ff895836c207f98813511a0180b0e929581bfe01
+  languageName: node
+  linkType: hard
+
+"spdx-exceptions@npm:^2.1.0":
+  version: 2.3.0
+  resolution: "spdx-exceptions@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"
+  checksum: 3cbd2498897dc384158666a9dd7435e3b42ece5da42fd967b218b790e248381d001ec77a676d13d1f4e8da317d97b7bc0ebf4fff37bfbb95923d49b024030c96
+  languageName: node
+  linkType: hard
+
+"spdx-expression-parse@npm:^3.0.0":
+  version: 3.0.1
+  resolution: "spdx-expression-parse@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"
+  dependencies:
+    spdx-exceptions: ^2.1.0
+    spdx-license-ids: ^3.0.0
+  checksum: f0211cada3fa7cd9db2243143fb0e66e28a46d72d8268f38ad2196aac49408d87892cda6e5600d43d6b05ed2707cb2f4148deb27b092aafabc50a67038f4cbf5
+  languageName: node
+  linkType: hard
+
+"spdx-license-ids@npm:^3.0.0":
+  version: 3.0.5
+  resolution: "spdx-license-ids@npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"
+  checksum: 4ff7c0615a3c69a195b206a425e6a633ccb24e680ac21f5464b249b57ebb5c3f356f84a8e713599758be69ee4a849319d7fce7041b69e29acd9d31daed3fb8eb
+  languageName: node
+  linkType: hard
+
+"spdy-transport@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "spdy-transport@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"
+  dependencies:
+    debug: ^4.1.0
+    detect-node: ^2.0.4
+    hpack.js: ^2.1.6
+    obuf: ^1.1.2
+    readable-stream: ^3.0.6
+    wbuf: ^1.7.3
+  checksum: e717ce9d76a03052205950632cb316e4de863764fd968404820cb84f4a93da259e43d5c973c3444847157a41ad6316ffdd7a2862454a7862ebd84388d1ce6e2a
+  languageName: node
+  linkType: hard
+
+"spdy@npm:^4.0.2":
+  version: 4.0.2
+  resolution: "spdy@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"
+  dependencies:
+    debug: ^4.1.0
+    handle-thing: ^2.0.0
+    http-deceiver: ^1.2.7
+    select-hose: ^2.0.0
+    spdy-transport: ^3.0.0
+  checksum: 388d39324d706a0a73d1d16fa93397029b3eb47ff2aaa3ad58c3d9c7682ce53eb847795560dc08190b7e3f8404e8bf4814ff3fd74cf0c849796310f1cd8a5f92
+  languageName: node
+  linkType: hard
+
+"split-string@npm:^3.0.1, split-string@npm:^3.0.2":
+  version: 3.1.0
+  resolution: "split-string@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"
+  dependencies:
+    extend-shallow: ^3.0.0
+  checksum: 9b610d1509f8213dad7d38b5f0b49109ab53c2a93e7886c370a66b9eeb723706cd01b04b61b3d906ff6369314429412f8fad54b93d57fa50103d85884f0c175f
+  languageName: node
+  linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+  version: 1.0.3
+  resolution: "sprintf-js@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"
+  checksum: 51df1bce9e577287f56822d79ac5bd94f6c634fccf193895f2a1d2db2e975b6aa7bc97afae9cf11d49b7c37fe4afc188ff5c4878be91f2c86eabd11c5df8b62c
+  languageName: node
+  linkType: hard
+
+"sshpk@npm:^1.7.0":
+  version: 1.16.1
+  resolution: "sshpk@npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"
+  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
+  bin:
+    sshpk-conv: bin/sshpk-conv
+    sshpk-sign: bin/sshpk-sign
+    sshpk-verify: bin/sshpk-verify
+  checksum: 4bd7422634ec3730404186179e5d9ba913accc64449f18d594b3a757a3b81000719adc94cf0c93a7b3da42487ae42404a1f37bfaa7908a60743d4478382b9d78
+  languageName: node
+  linkType: hard
+
+"ssri@npm:^8.0.0":
+  version: 8.0.0
+  resolution: "ssri@npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"
+  dependencies:
+    minipass: ^3.1.1
+  checksum: 97964745a80846b4a50d4506b10b08d35384c3cec482d687cae5f4b7c842afe239c8c368d620f5d7d92642ab75379b409aa809072c2b8e94ec15d9c70d843da5
+  languageName: node
+  linkType: hard
+
+"static-extend@npm:^0.1.1":
+  version: 0.1.2
+  resolution: "static-extend@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"
+  dependencies:
+    define-property: ^0.2.5
+    object-copy: ^0.1.0
+  checksum: c42052c35259769fabbede527b2ae81962b53cf3b7a5cb07bd5b0b295777641ba81ddb2f4a62df9970c96303357fc6ffb90f61a4a9e127e6e42c7895af9cd5ce
+  languageName: node
+  linkType: hard
+
+"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0":
+  version: 1.5.0
+  resolution: "statuses@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"
+  checksum: 57735269bf231176a60deb80f6d60214cb4a87663b0937e79497afe9aebe2597f8377fd28893f4d1776205f18dd0b927774a26b72051411ac5108e9e2dfc77d2
+  languageName: node
+  linkType: hard
+
+"stream-buffers@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "stream-buffers@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"
+  checksum: 340a04fc135ac618a3b8c4069b444bf71dd55ac18c6ec1370acd62bad4c0c9f84935b7b10f4b4fac358669855d26dccedc96bc26590cae35be2d68c1620973b0
+  languageName: node
+  linkType: hard
+
+"stream-to-array@npm:~2.3.0":
+  version: 2.3.0
+  resolution: "stream-to-array@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"
+  dependencies:
+    any-promise: ^1.1.0
+  checksum: b313d7dfa5230674ffd3442ae985d64b9f95ad7d122aa7d3fd9ebe21bf7129548afda51dda2af781e2cd31c84911253bbf549061e96a63941a45686329ccba3f
+  languageName: node
+  linkType: hard
+
+"stream-to-promise@npm:^2.2.0":
+  version: 2.2.0
+  resolution: "stream-to-promise@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"
+  dependencies:
+    any-promise: ~1.3.0
+    end-of-stream: ~1.1.0
+    stream-to-array: ~2.3.0
+  checksum: 1f26f85d571d94a308f9332c79f2652697f9893733e3a2aebca1aaaf4d2a0d0655150b8b0a88105256a50510d9e9b8a0b1e5d9139b464ee1f9285be3647c3b83
+  languageName: node
+  linkType: hard
+
+"string-width@npm:^1.0.1, string-width@npm:^1.0.2 || 2":
+  version: 1.0.2
+  resolution: "string-width@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"
+  dependencies:
+    code-point-at: ^1.0.0
+    is-fullwidth-code-point: ^1.0.0
+    strip-ansi: ^3.0.0
+  checksum: b11745daa9398a1b3bb37ffa64263f9869c5f790901ed1242decb08171785346447112ead561cffde6b222a5ebeab9d2b382c72ae688859e852aa29325ca9d0b
+  languageName: node
+  linkType: hard
+
+"string-width@npm:^3.0.0, string-width@npm:^3.1.0":
+  version: 3.1.0
+  resolution: "string-width@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"
+  dependencies:
+    emoji-regex: ^7.0.1
+    is-fullwidth-code-point: ^2.0.0
+    strip-ansi: ^5.1.0
+  checksum: 54c5d1842dc122d8e0251ad50e00e91c06368f1aca44f41a67cd5ce013c4ba8f5a26f1b7f72a3e1644f38c62092a82c86b646aff514073894faf84b9564a38a0
+  languageName: node
+  linkType: hard
+
+"string.prototype.matchall@npm:^4.0.2":
+  version: 4.0.2
+  resolution: "string.prototype.matchall@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.0
+    has-symbols: ^1.0.1
+    internal-slot: ^1.0.2
+    regexp.prototype.flags: ^1.3.0
+    side-channel: ^1.0.2
+  checksum: 0ca2937d28a80ad10b3173ff8e2f4ac0aa101b127b8256c3a6e749b7ab619e250208848c7fd9a740760df7e94c5b225fc6d0830e0f9d0e1ef615f3149cd194a9
+  languageName: node
+  linkType: hard
+
+"string.prototype.trimend@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "string.prototype.trimend@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.5
+  checksum: 93046463de6a3b4ae27d0622ae8795239c8d372b1be1a60122fce591bf7578b719becf00bf04326642a868bc6185f35901119b61a246509dd0dc0666b2a803ed
+  languageName: node
+  linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "string.prototype.trimstart@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"
+  dependencies:
+    define-properties: ^1.1.3
+    es-abstract: ^1.17.5
+  checksum: 20c4a940f1ba65b0aa5abf0c319dceba4fbf04d24553583b0b82eba2711815d1e40663ce36175ed06475701dbe797cac81be1ec1dc4bb4416b2077e8b0409036
+  languageName: node
+  linkType: hard
+
+"string_decoder@npm:^1.1.1":
+  version: 1.3.0
+  resolution: "string_decoder@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"
+  dependencies:
+    safe-buffer: ~5.2.0
+  checksum: 0a09afb610cb538707fcf0a50a080f159040529eabdba82f23b04f1d1f90adf9ba18cc3800231c6ab2ee55dece047f4bed87c56da52b2afd85c3c7fb73eb7e48
+  languageName: node
+  linkType: hard
+
+"string_decoder@npm:~1.1.1":
+  version: 1.1.1
+  resolution: "string_decoder@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"
+  dependencies:
+    safe-buffer: ~5.1.0
+  checksum: bc2dc169d83df1b9e94defe7716bcad8a19ffe8211b029581cb0c6f9e83a6a7ba9ec3be38d179708a8643c692868a2b8b004ab159555dc26089ad3fa7b2158f5
+  languageName: node
+  linkType: hard
+
+"stringify-object@npm:^3.3.0":
+  version: 3.3.0
+  resolution: "stringify-object@npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"
+  dependencies:
+    get-own-enumerable-property-symbols: ^3.0.0
+    is-obj: ^1.0.1
+    is-regexp: ^1.0.0
+  checksum: 4b0a6802f0294a3a340f31822a0802a4945f12b0823e640c9a3dd64b487abf0a0e7099b43d6133a9aa28a9b99ffe187ee5e066f0798ea60019c87e156bcaf6d3
+  languageName: node
+  linkType: hard
+
+"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "strip-ansi@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"
+  dependencies:
+    ansi-regex: ^2.0.0
+  checksum: 98772dcf440d08f65790ee38cd186b1f139fa69b430e75f9d9c11f97058662f82a22c2ba03a30f502f948958264e99051524fbf1819edaa8a8bbb909ece297da
+  languageName: node
+  linkType: hard
+
+"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0, strip-ansi@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "strip-ansi@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"
+  dependencies:
+    ansi-regex: ^4.1.0
+  checksum: 44a0d0d354f5f7b15f83323879a9112ea746daae7bef0b68238a27626ee757d9a04ce6590433841e14b325e8e7c5d62b8442885e50497e21b7cbca6da40d54ea
+  languageName: node
+  linkType: hard
+
+"strip-ansi@npm:^6.0.0":
+  version: 6.0.0
+  resolution: "strip-ansi@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"
+  dependencies:
+    ansi-regex: ^5.0.0
+  checksum: 10568c91cadbef182a807c38dfa718dce15a35b12fcc97b96b6b2029d0508ef66ca93fabddeb49482d9b027495d1e18591858e80f27ad26861c4967c60fd207f
+  languageName: node
+  linkType: hard
+
+"strip-bom@npm:^3.0.0":
+  version: 3.0.0
+  resolution: "strip-bom@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"
+  checksum: 361dd1dd08ae626940061570d20bcf73909d0459734b8880eb3d14176aa28f41cf85d13af036c323ce739e04ef3930a71b516950c5985b318bae3757ecb2974c
+  languageName: node
+  linkType: hard
+
+"strip-comments@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "strip-comments@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"
+  dependencies:
+    babel-extract-comments: ^1.0.0
+    babel-plugin-transform-object-rest-spread: ^6.26.0
+  checksum: 21d667d3ba6dc0e0cd377c64856e51a8399ea2e4b3e43df6f356c0e0a7bc7b6cf962d7069a1e9d0f2d72a67d2fe4b3b85e0e3dea23d71aa518b318744159326a
+  languageName: node
+  linkType: hard
+
+"strip-eof@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "strip-eof@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"
+  checksum: 905cd8718ad2e7b3a9c4bc6a9ed409c38b8cef638845a9471884547de0dbe611828d584e749a38d3eebc2d3c830ea9c619d78875a639b7413d93080661807376
+  languageName: node
+  linkType: hard
+
+"strip-final-newline@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "strip-final-newline@npm:2.0.0"
+  checksum: 74dbd8a602409706748db730200efab53ba739ed7888310e74e45697efbd760981df6d6f0fa34b23e973135fb07d3b22adae6e6d58898f692a094e49692c6c33
+  languageName: node
+  linkType: hard
+
+"strip-json-comments@npm:^3.1.0":
+  version: 3.1.1
+  resolution: "strip-json-comments@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"
+  checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206
+  languageName: node
+  linkType: hard
+
+"strip-json-comments@npm:^3.1.1":
+  version: 3.1.1
+  resolution: "strip-json-comments@npm:3.1.1"
+  checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206
+  languageName: node
+  linkType: hard
+
+"style-loader@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "style-loader@npm:2.0.0"
+  dependencies:
+    loader-utils: ^2.0.0
+    schema-utils: ^3.0.0
+  peerDependencies:
+    webpack: ^4.0.0 || ^5.0.0
+  checksum: ffc305488244ab499f91b05a1c94dd199b8b106d69e260ce38bd599819bbb352357e107bef3c319b775b9fb0eaed571cb68f8c7940e457553f85a980f4b630d8
+  languageName: node
+  linkType: hard
+
+"supports-color@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "supports-color@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"
+  checksum: 5d6fb449e29f779cc639756f0d6b9ab6138048e753683cd2c647f36a9254714051909a5f569e6aa83c5310c8dfe8a1f481967e02bef401ac8eed46ee0950d779
+  languageName: node
+  linkType: hard
+
+"supports-color@npm:^5.3.0":
+  version: 5.5.0
+  resolution: "supports-color@npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"
+  dependencies:
+    has-flag: ^3.0.0
+  checksum: edacee6425498440744c418be94b0660181aad2a1828bcf2be85c42bd385da2fd8b2b358d9b62b0c5b03ff5cd3e992458d7b8f879d9fb42f2201fe05a4848a29
+  languageName: node
+  linkType: hard
+
+"supports-color@npm:^6.1.0":
+  version: 6.1.0
+  resolution: "supports-color@npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"
+  dependencies:
+    has-flag: ^3.0.0
+  checksum: 86821571295ad9f808d5e0149f13c2b0ca6faaf1325c427b369e6f4b2b1e4759046b7a4ea0e3c3c7f2546035fa2fb0d6a90f31c6c4f751eaedbcdc1b983a08cc
+  languageName: node
+  linkType: hard
+
+"supports-color@npm:^7.0.0":
+  version: 7.2.0
+  resolution: "supports-color@npm:7.2.0"
+  dependencies:
+    has-flag: ^4.0.0
+  checksum: 8e57067c39216f3c2ffce7cc14ca934d54746192571203aa9c9922d97d2d55cc1bdaa9e41a11f91e620670b5a74ebdec6b548a885d8cc2dea7cab59e21416029
+  languageName: node
+  linkType: hard
+
+"supports-color@npm:^7.1.0":
+  version: 7.1.0
+  resolution: "supports-color@npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"
+  dependencies:
+    has-flag: ^4.0.0
+  checksum: 6130f36b2a71f73014a6ef306bbaa5415d8daa5c0294082762a0505e4fb6800b8a9d037b60ed54f0c69cdfc37860034047d6004481c21f22dd43151b5e9334f0
+  languageName: node
+  linkType: hard
+
+"table-layout@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "table-layout@npm:1.0.1"
+  dependencies:
+    array-back: ^4.0.1
+    deep-extend: ~0.6.0
+    typical: ^5.2.0
+    wordwrapjs: ^4.0.0
+  checksum: b2e899f60f2ad5c161bf31ca5b1d886b3b1eeb1dca69e71d3492cdfd8c4be51251b978f692bcf76364be2a4a37cc3b353539f4006471b202647813bce0179a70
+  languageName: node
+  linkType: hard
+
+"table@npm:^5.2.3":
+  version: 5.4.6
+  resolution: "table@npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"
+  dependencies:
+    ajv: ^6.10.2
+    lodash: ^4.17.14
+    slice-ansi: ^2.1.0
+    string-width: ^3.0.0
+  checksum: 38877a196c0a57b955e4965fa3ff1cede38649b6e1f6286aa5435579dfd01663fdf8d19c87510e67a79474d75ae0144a0819f2054d654c45d7f525270aafe56b
+  languageName: node
+  linkType: hard
+
+"tapable@npm:^1.0.0, tapable@npm:^1.1.3":
+  version: 1.1.3
+  resolution: "tapable@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"
+  checksum: b2c2ab20260394b867fd249d8b6ab3e4645e00f9cce16b558b0de5a86291ef05f536f578744549d1618c9032c7f99bc1d6f68967e4aa11cb0dca4461dc4714bc
+  languageName: node
+  linkType: hard
+
+"tapable@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "tapable@npm:2.0.0"
+  checksum: e6321280f9ace1043b2d2e893b998454227f27da05e5e1f7c92a67752d6a87e2ca529aeb516f31a21c1a92d2532a77518423b7df7aaf7acd3a8df925f02b4c66
+  languageName: node
+  linkType: hard
+
+"tar-stream@npm:^2.0.1":
+  version: 2.1.3
+  resolution: "tar-stream@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"
+  dependencies:
+    bl: ^4.0.1
+    end-of-stream: ^1.4.1
+    fs-constants: ^1.0.0
+    inherits: ^2.0.3
+    readable-stream: ^3.1.1
+  checksum: 57d2284615ee76ae5e41bcb8a1cb61c00b9ba514a1b8b86168d53967ea0f45581a3f00c8bdf7653fbd208490edea69ff39caaa845d7e04420cdddd56bea17e92
+  languageName: node
+  linkType: hard
+
+"tar@npm:^6.0.1, tar@npm:^6.0.2":
+  version: 6.0.2
+  resolution: "tar@npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"
+  dependencies:
+    chownr: ^2.0.0
+    fs-minipass: ^2.0.0
+    minipass: ^3.0.0
+    minizlib: ^2.1.0
+    mkdirp: ^1.0.3
+    yallist: ^4.0.0
+  checksum: 7d28cc13d74a87d0dcd9fa89038225f171e506882f9e4d6f44bfd3943f868e6ae9f46a6f03c82cca8ad2d4dde3384862cb7e789bfa06e3af602eec561c765787
+  languageName: node
+  linkType: hard
+
+"temp-dir@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "temp-dir@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"
+  checksum: 4cc703b6ac3a3989c9da69c1b861babddff5e14a7913c26b4933049983a2d8392d3c6bbfa4bbd2ec4b9762a2460e8e7599f827dbc7c8ef1662e6e905d0f92b0b
+  languageName: node
+  linkType: hard
+
+"tempy@npm:^0.3.0":
+  version: 0.3.0
+  resolution: "tempy@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"
+  dependencies:
+    temp-dir: ^1.0.0
+    type-fest: ^0.3.1
+    unique-string: ^1.0.0
+  checksum: 487b16624f9179b7ccd36684d330d0986861cd3e6bbc3875cae5728067b470c6e6fbe87dc2189874d8f4f5142c2782cd168f82bf2a22368b66f68312352d0ff1
+  languageName: node
+  linkType: hard
+
+"terser-webpack-plugin@npm:^5.0.0":
+  version: 5.0.1
+  resolution: "terser-webpack-plugin@npm:5.0.1"
+  dependencies:
+    jest-worker: ^26.6.1
+    p-limit: ^3.0.2
+    schema-utils: ^3.0.0
+    serialize-javascript: ^5.0.1
+    source-map: ^0.6.1
+    terser: ^5.3.8
+  peerDependencies:
+    webpack: ^5.1.0
+  checksum: 23dfddfcbaa72b0eb4ee2f2af56ec1d72498f4cf4b17a29712cfa4edd7ce5e4dbc7577f1c69835d32ce104672d77559b0b401a0534f67706f0919cf275e47ace
+  languageName: node
+  linkType: hard
+
+"terser@npm:^4.6.2, terser@npm:^4.6.3":
+  version: 4.8.0
+  resolution: "terser@npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"
+  dependencies:
+    commander: ^2.20.0
+    source-map: ~0.6.1
+    source-map-support: ~0.5.12
+  bin:
+    terser: bin/terser
+  checksum: d7ab95898b40e2aa3513b02fc74f520f8e65072a19d7f687b8224af01512ad4d2227bc1375c22cd050f67eb1ca3e440b4f09652c5f48f13ed9ee81c0c26015a3
+  languageName: node
+  linkType: hard
+
+"terser@npm:^5.3.8":
+  version: 5.3.8
+  resolution: "terser@npm:5.3.8"
+  dependencies:
+    commander: ^2.20.0
+    source-map: ~0.7.2
+    source-map-support: ~0.5.19
+  bin:
+    terser: bin/terser
+  checksum: 3fc070378ba9981d8088a4012060f16428a97dc8f98d5a731b2ab51b8c9bc8cb651ca068aef499faad863584ae4d4883872c4f51db053bc2575c2e0bc11ab411
+  languageName: node
+  linkType: hard
+
+"text-table@npm:^0.2.0":
+  version: 0.2.0
+  resolution: "text-table@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"
+  checksum: 373904ce70524ba11ec7e1905c44fb92671132d5e0b0aba2fb48057161f8bf9cbf7f6178f0adf31810150cf44fb52c7b912dc722bff3fddf9688378596dbeb56
+  languageName: node
+  linkType: hard
+
+"thunky@npm:^1.0.2":
+  version: 1.1.0
+  resolution: "thunky@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"
+  checksum: eceb856b6412ecd02c24731a2441698aa57622e03b0a4d6d1dea47d7b173aca54980fd2fba5b3a2e11ccec48373c46483f7f55a46717bfc07645395fa57267a6
+  languageName: node
+  linkType: hard
+
+"timeline@workspace:.":
+  version: 0.0.0-use.local
+  resolution: "timeline@workspace:."
+  dependencies:
+    "@babel/core": ^7.12.3
+    "@babel/plugin-proposal-class-properties": ^7.12.1
+    "@babel/plugin-proposal-decorators": ^7.12.1
+    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1
+    "@babel/plugin-proposal-optional-chaining": ^7.12.1
+    "@babel/plugin-syntax-dynamic-import": ^7.8.3
+    "@babel/preset-env": ^7.12.1
+    "@babel/preset-react": ^7.12.1
+    "@babel/preset-typescript": ^7.12.1
+    "@hot-loader/react-dom": ^17.0.0
+    "@types/classnames": ^2.2.10
+    "@types/lodash": ^4.14.162
+    "@types/node": ^14.14.5
+    "@types/react": ^16.9.53
+    "@types/react-dom": ^16.9.8
+    "@types/react-responsive": ^8.0.2
+    "@types/react-router": ^5.1.8
+    "@types/react-router-bootstrap": ^0.24.5
+    "@types/react-router-dom": ^5.1.6
+    "@types/webpack-env": ^1.15.3
+    "@types/xregexp": ^4.3.0
+    "@typescript-eslint/eslint-plugin": ^4.6.0
+    "@typescript-eslint/parser": ^4.6.0
+    "@yarnpkg/pnpify": ^2.3.3
+    axios: ^0.21.0
+    babel-loader: ^8.1.0
+    babel-plugin-transform-builtin-extend: ^1.1.2
+    bootstrap: ^4.5.3
+    bootstrap-icons: ^1.0.0
+    classnames: ^2.2.6
+    clean-webpack-plugin: ^3.0.0
+    clsx: ^1.1.1
+    copy-webpack-plugin: ^6.2.1
+    core-js: ^3.6.5
+    css-loader: ^5.0.0
+    eslint: ^7.12.1
+    eslint-config-prettier: ^6.14.0
+    eslint-plugin-import: ^2.22.1
+    eslint-plugin-prettier: ^3.1.4
+    eslint-plugin-react: ^7.21.5
+    eslint-plugin-react-hooks: ^4.2.0
+    file-loader: ^6.1.1
+    html-webpack-plugin: ^4.5.0
+    http-server: ^0.12.3
+    i18next: ^19.8.3
+    i18next-browser-languagedetector: ^6.0.1
+    localforage: ^1.9.0
+    lodash: ^4.17.20
+    mini-css-extract-plugin: ^1.2.0
+    pepjs: ^0.5.2
+    postcss: ^8.1.4
+    postcss-loader: ^4.0.4
+    postcss-preset-env: ^6.7.0
+    prettier: ^2.1.2
+    react: ^17.0.1
+    react-bootstrap: ^1.4.0
+    react-dom: ^17.0.1
+    react-hot-loader: ^4.13.0
+    react-i18next: ^11.7.3
+    react-inlinesvg: ^2.1.1
+    react-responsive: ^8.1.0
+    react-router: ^5.2.0
+    react-router-bootstrap: ^0.25.0
+    react-router-dom: ^5.2.0
+    regenerator-runtime: ^0.13.7
+    rxjs: ^6.6.3
+    sass: ^1.27.0
+    sass-loader: ^10.0.4
+    style-loader: ^2.0.0
+    ts-loader: ^8.0.7
+    typescript: ^4.0.5
+    url-loader: ^4.1.1
+    webpack: ^5.2.0
+    webpack-chain: ^6.5.1
+    webpack-cli: ^4.1.0
+    webpack-dev-server: ^3.11.0
+    workbox-precaching: ^5.1.4
+    workbox-routing: ^5.1.4
+    workbox-strategies: ^5.1.4
+    workbox-webpack-plugin: ^5.1.4
+    workbox-window: ^5.1.4
+    xregexp: ^4.3.0
+  languageName: unknown
+  linkType: soft
+
+"tiny-invariant@npm:^1.0.2":
+  version: 1.1.0
+  resolution: "tiny-invariant@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"
+  checksum: 64318fbd77c451cfff23b57b9f3aef56594d9cea051a87dc538c9b371f97e8d474eaa2a7cbd60b8aa23f852393152495e8651b197607465fdf9c8ff134043b1b
+  languageName: node
+  linkType: hard
+
+"tiny-warning@npm:^1.0.0, tiny-warning@npm:^1.0.3":
+  version: 1.0.3
+  resolution: "tiny-warning@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"
+  checksum: 6cf9f66cb765b893976b8cd1c1310338861f30fb04d02ef2c8e0a748cbc2ed5acd8bb1954b78c15f640ad4116def67134d7d705f2a0c9bf27e6e2eb3e92bff29
+  languageName: node
+  linkType: hard
+
+"to-fast-properties@npm:^1.0.3":
+  version: 1.0.3
+  resolution: "to-fast-properties@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"
+  checksum: bfe41c936705c9d82ed21ac6f39384c323d860f74b55d2354bc511eeb5f5729849f70ea4c1fab8ad71ca5717fa184c94899778e4959ef09e7316708086cf04c6
+  languageName: node
+  linkType: hard
+
+"to-fast-properties@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "to-fast-properties@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"
+  checksum: 40e61984243b183d575a2f3a87d008bd57102115701ee9037fd673e34becf12ee90262631857410169ca82f401a662ed94482235cea8f3b8dea48b87eaabc467
+  languageName: node
+  linkType: hard
+
+"to-object-path@npm:^0.3.0":
+  version: 0.3.0
+  resolution: "to-object-path@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"
+  dependencies:
+    kind-of: ^3.0.2
+  checksum: a6a5a502259af744ac4e86752c8e71395c4106cae6f4e2a5c711e6f5de4cdbd08691e9295bf5b6e86b3e12722274fc3c5c0410f5fcf42ca783cc43f62139b5d0
+  languageName: node
+  linkType: hard
+
+"to-regex-range@npm:^2.1.0":
+  version: 2.1.1
+  resolution: "to-regex-range@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"
+  dependencies:
+    is-number: ^3.0.0
+    repeat-string: ^1.6.1
+  checksum: 801501b59d6a2892d88b2ccb78416d6778aec1549da593f83b7bb433a5540995e4c6f2d954ff44d53f38c094d04c0da3ed6f61f110d9cd2ea00cb570b90e81e4
+  languageName: node
+  linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+  version: 5.0.1
+  resolution: "to-regex-range@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"
+  dependencies:
+    is-number: ^7.0.0
+  checksum: 2b6001e314e4998a07137c197e333fac2f86d46d0593da90b678ae64e2daa07274b508f83cca09e6b3504cdf222497dcb5b7daceb6dc13a9a8872f58a27db907
+  languageName: node
+  linkType: hard
+
+"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2":
+  version: 3.0.2
+  resolution: "to-regex@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"
+  dependencies:
+    define-property: ^2.0.2
+    extend-shallow: ^3.0.2
+    regex-not: ^1.0.2
+    safe-regex: ^1.1.0
+  checksum: ed733fdff8970628ef2d425564d1331a812e57cbb6ab7675c970046b2b792cbf2386c8292e45bb201bf85ca71a7708e3e1ffb979f5cd089ad4a82a12df75939b
+  languageName: node
+  linkType: hard
+
+"toidentifier@npm:1.0.0":
+  version: 1.0.0
+  resolution: "toidentifier@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"
+  checksum: 95720e8a0f98f1525f50ccbecbc2a23f0a1b4e448de03819dbbeda03adf0d2010fe64525fbc9d549765242550d341bb891672e4ac0b2cac58613cdd742324255
+  languageName: node
+  linkType: hard
+
+"tough-cookie@npm:~2.5.0":
+  version: 2.5.0
+  resolution: "tough-cookie@npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"
+  dependencies:
+    psl: ^1.1.28
+    punycode: ^2.1.1
+  checksum: bf5d6fac5ce0bebc5876cb9b9a79d3d9ea21c9e4099f3d3e64701d6ba170a052cb88cece6737ec2473bac4f0a4f6c75d46ec17985be8587c6bbdd38d91625cb4
+  languageName: node
+  linkType: hard
+
+"treeify@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "treeify@npm:1.1.0"
+  checksum: 78db62f564d025ffd9ec0f89e9195ee343298db0eb2d54cd84bce2b7460d347a1d3ea14a75a7f04d3c45b87aa9eb4b0c8ecd7ab4fba9b456cf29c4c895f4fc1d
+  languageName: node
+  linkType: hard
+
+"ts-loader@npm:^8.0.7":
+  version: 8.0.7
+  resolution: "ts-loader@npm:8.0.7"
+  dependencies:
+    chalk: ^2.3.0
+    enhanced-resolve: ^4.0.0
+    loader-utils: ^1.0.2
+    micromatch: ^4.0.0
+    semver: ^6.0.0
+  peerDependencies:
+    typescript: "*"
+  checksum: 062143ef35d5ee064244fb5de934d3db8460737168dbf88d19655498cc39cad8bac742c785ec5ed16600c21d2fa9e6acbba28032cdeae469992444fd8e3fa96c
+  languageName: node
+  linkType: hard
+
+"tsconfig-paths@npm:^3.9.0":
+  version: 3.9.0
+  resolution: "tsconfig-paths@npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"
+  dependencies:
+    "@types/json5": ^0.0.29
+    json5: ^1.0.1
+    minimist: ^1.2.0
+    strip-bom: ^3.0.0
+  checksum: 5383ba626b3ac70e08094b9dfd1e30ce82878407b6c8db8cd84279cc7c7340d5f53f67dbeb8174a233c082a068322a6b00ec8514b96d9a80a453e0476dc116d2
+  languageName: node
+  linkType: hard
+
+"tslib@npm:^1.10.0, tslib@npm:^1.13.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0":
+  version: 1.13.0
+  resolution: "tslib@npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"
+  checksum: 5dc3bdaea3b67c76ef4a14c28fcb2171da7bcf292fd9c59a260098729626b1ce766c52b588f08e324ed9a0c52ea8a93a815920f980d75981abc9d850fbf310fb
+  languageName: node
+  linkType: hard
+
+"tsutils@npm:^3.17.1":
+  version: 3.17.1
+  resolution: "tsutils@npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"
+  dependencies:
+    tslib: ^1.8.1
+  peerDependencies:
+    typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+  checksum: bed8ff7998d90a7ab9f3bdb26d36dae0edfcdb3e4f07994fb59df8d42e62ee07d591d3a435fb65cb50b6ca9af6b76c9bc9423a216186e5085d91793fa169c248
+  languageName: node
+  linkType: hard
+
+"tunnel-agent@npm:^0.6.0":
+  version: 0.6.0
+  resolution: "tunnel-agent@npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"
+  dependencies:
+    safe-buffer: ^5.0.1
+  checksum: 03db75a4f994fee610d3485c492e95105ed265a9fecd49d14c98e9982f973ecc0220d0c1bc264e37802e423a1274bb63788a873e4e07009408ae3ac517347fd7
+  languageName: node
+  linkType: hard
+
+"tunnel@npm:^0.0.6":
+  version: 0.0.6
+  resolution: "tunnel@npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"
+  checksum: 78fbb1a55a44fc8de6a497923bf7bf6e7b14b396e0ddaf11fe624ab7f646a0d2ada03f6dcb4a80940faed9649e30d229114f218e8906badd12ded2323a6f666b
+  languageName: node
+  linkType: hard
+
+"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
+  version: 0.14.5
+  resolution: "tweetnacl@npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"
+  checksum: e1c9d52e2e9f582fd0df9ea26ba5a9ab88b9a38b69625d8e55c5e8870a4832ac8c32f8854b41fce7b59f97258bb103535363f9eda7050aa70e75824b972c7dde
+  languageName: node
+  linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+  version: 0.4.0
+  resolution: "type-check@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"
+  dependencies:
+    prelude-ls: ^1.2.1
+  checksum: 6c2e1ce339567e122504f0c729cfa35d877fb2da293b99110f0819eca81e6ed8d3ba9bb36c0bc0ee4904d5340dbe678f8642a395c1c67b1d0f69f081efb47f4a
+  languageName: node
+  linkType: hard
+
+"type-fest@npm:^0.11.0":
+  version: 0.11.0
+  resolution: "type-fest@npm:0.11.0"
+  checksum: 02e5cadf13590a5724cacf8d9133320efd173f6fb1b695fcb29e56551a315bf0f07ca988a780a1999b7b55bb3eaaa7f37223615207236d393af17bba6749dc95
+  languageName: node
+  linkType: hard
+
+"type-fest@npm:^0.3.1":
+  version: 0.3.1
+  resolution: "type-fest@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"
+  checksum: 508923061144ff7ebc69d4f49bc812c7b8a81c633d10e89191092efb5746531ee6c4dd912db1447e954a766186ed48eee0dcfa53047c55a7646076a76640ff43
+  languageName: node
+  linkType: hard
+
+"type-fest@npm:^0.8.1":
+  version: 0.8.1
+  resolution: "type-fest@npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"
+  checksum: f8c4b4249f52e8bea7a4fc55b3653c96c2d547240e4c772e001d02b7cc38b8c3eb493ab9fbe985a76a203cd1aa7044776b728a71ba12bf36e7131f989597885b
+  languageName: node
+  linkType: hard
+
+"type-is@npm:~1.6.17, type-is@npm:~1.6.18":
+  version: 1.6.18
+  resolution: "type-is@npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"
+  dependencies:
+    media-typer: 0.3.0
+    mime-types: ~2.1.24
+  checksum: 20a3514f1d835c979237995129d1f8c564325301e3a8f1c732bcbe1d7fa0ca1f65994e41a79e9030d79f31e5459bb9be5c377848fcb477cb3049a661b3713d74
+  languageName: node
+  linkType: hard
+
+typescript@^4.0.5:
+  version: 4.0.5
+  resolution: "typescript@npm:4.0.5"
+  bin:
+    tsc: bin/tsc
+    tsserver: bin/tsserver
+  checksum: ce94d4bbb914cc9d6fbd42e1476ab18c3292b262b8ba7ba76cd167a858545207a604e75bf1efbb75b8654c8f85deaa19795c3ef00098d7612855139b4ecc0240
+  languageName: node
+  linkType: hard
+
+"typescript@patch:typescript@^4.0.5#builtin<compat/typescript>":
+  version: 4.0.5
+  resolution: "typescript@patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"
+  bin:
+    tsc: bin/tsc
+    tsserver: bin/tsserver
+  checksum: d4be0bd2a2050b2d7b132cb2a40329178f181543e9d2ac6d1f06babd9f047208558a736a7effdeb28759ae2e815f070b61d10ee2f02cc93a6221a1490f21ffce
+  languageName: node
+  linkType: hard
+
+"typical@npm:^5.0.0, typical@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "typical@npm:5.2.0"
+  checksum: f4af3049786332f535a02344283d8388d18d8335eb7232c99b73a49f4b240798aecc2e6ae30b108f01a82f37e98a17b84e4d9be6724244e1688442dfc2e87bac
+  languageName: node
+  linkType: hard
+
+"uncontrollable@npm:^7.0.0":
+  version: 7.1.1
+  resolution: "uncontrollable@npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"
+  dependencies:
+    "@babel/runtime": ^7.6.3
+    "@types/react": ^16.9.11
+    invariant: ^2.2.4
+    react-lifecycles-compat: ^3.0.4
+  peerDependencies:
+    react: ">=15.0.0"
+  checksum: 208d397c41bb8293e884dc615dfeb1163c14d470e4a677e9afb695ce8cc339bbe8cafb1e8e6c8d20d3b826621bacf07906ce65fee9667b8e5f1f08f42bf9e3d7
+  languageName: node
+  linkType: hard
+
+"underscore@npm:^1.7.0":
+  version: 1.10.2
+  resolution: "underscore@npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"
+  checksum: d49b87c03d50a431f8ca146b99be29ce47e0e08057aff58da063d7bdc30c41f9b2ade695a0ec5eab903ba1423dd16319391e953c5464aefcb482d3955766bd94
+  languageName: node
+  linkType: hard
+
+"unicode-canonical-property-names-ecmascript@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "unicode-canonical-property-names-ecmascript@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"
+  checksum: 8b51950f8f6725acfd0cc33117e7061cc5b3ba97760aab6003db1e31b90ac41e626f289a5a39f8e2c3ed3fbb6b4774c1877fd6156a4c6f4e05736b9ff7a2e783
+  languageName: node
+  linkType: hard
+
+"unicode-match-property-ecmascript@npm:^1.0.4":
+  version: 1.0.4
+  resolution: "unicode-match-property-ecmascript@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"
+  dependencies:
+    unicode-canonical-property-names-ecmascript: ^1.0.4
+    unicode-property-aliases-ecmascript: ^1.0.4
+  checksum: 481203b4b86861f278424ef694293bad9a090d606ac5bdb71a096fe3bbf413555d25f17e888ef9815841ece01c6a7d9f566752c04681cba8e27aec1a7e519641
+  languageName: node
+  linkType: hard
+
+"unicode-match-property-value-ecmascript@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "unicode-match-property-value-ecmascript@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"
+  checksum: 892ca3933535a30d939de026941f0e615330cb6906b62f76561b76dbe6de2aab1eb2a3c5971056813efd31c48f889b4709d34d4d8327e4ff66e3ac72b58a703e
+  languageName: node
+  linkType: hard
+
+"unicode-property-aliases-ecmascript@npm:^1.0.4":
+  version: 1.1.0
+  resolution: "unicode-property-aliases-ecmascript@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"
+  checksum: 2fa80e62a6ec395af3ee4747ce9738d2fee25ef963fb5650e358b2eb878d7f047f5ccdbd5f92e9605d13276f995fc3c4e3084475b03722cdd7ce9d58a148b2bd
+  languageName: node
+  linkType: hard
+
+"union-value@npm:^1.0.0":
+  version: 1.0.1
+  resolution: "union-value@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"
+  dependencies:
+    arr-union: ^3.1.0
+    get-value: ^2.0.6
+    is-extendable: ^0.1.1
+    set-value: ^2.0.1
+  checksum: bd6ae611f09e98d3918ee425b0cb61987e9240672c9822cfac642b0240e7a807c802c1968e0205176d7fa91ca0bba5f625a6937b26b2269620a1402589852fd8
+  languageName: node
+  linkType: hard
+
+"union@npm:~0.5.0":
+  version: 0.5.0
+  resolution: "union@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"
+  dependencies:
+    qs: ^6.4.0
+  checksum: 38d86c00ee687fe2a6a8a823293550dee10a09eb11217cf8a75c8b2a256c67be8d6281a3874c3ca7c1e83c6741726fea5f1483b1435b2a56c837511975730e36
+  languageName: node
+  linkType: hard
+
+"uniq@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "uniq@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"
+  checksum: a5603a5b3128616f268e7695e47cd1eb8d583cf8ee1278434140cd83d2f3f98e5d65a22cf4187f0345ca8d8a0a9f1d07e1f06cb46312135ad4a6303fd28fc317
+  languageName: node
+  linkType: hard
+
+"unique-filename@npm:^1.1.1":
+  version: 1.1.1
+  resolution: "unique-filename@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"
+  dependencies:
+    unique-slug: ^2.0.0
+  checksum: 0e674206bdda0c949b4ef86b073ba614f11de6141310834a236860888e592826da988837a7277f91a943752a691c5ab7ab939a19e7c0a5d7fcf1b7265720bf86
+  languageName: node
+  linkType: hard
+
+"unique-slug@npm:^2.0.0":
+  version: 2.0.2
+  resolution: "unique-slug@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"
+  dependencies:
+    imurmurhash: ^0.1.4
+  checksum: 3b17dabc13b3cc41897715e106d4403b88c225739e70bbb6d1142e0fb680261b20574cae133b0ac0eedcf514fc19766d6fa37411f9e9ee038daaa4ae83e7cd70
+  languageName: node
+  linkType: hard
+
+"unique-string@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "unique-string@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"
+  dependencies:
+    crypto-random-string: ^1.0.0
+  checksum: 860f1ab835e8699e19ebaf0d651b967cf926ca80e22ae9f098996f8fec12ca007ac4914bf47e37556aca0ae10bd80ca4322982abfd30abcffec44d5e7612ae5f
+  languageName: node
+  linkType: hard
+
+"universalify@npm:^0.1.0":
+  version: 0.1.2
+  resolution: "universalify@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"
+  checksum: 420fc6547357782c700d53e9a92506a8e95345b13e97684c8f9ab75237912ec2ebb6af8ac10d4f7406b7b6bd21c58f6c5c0811414fb0b4091b78b4743fa6806e
+  languageName: node
+  linkType: hard
+
+"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
+  version: 1.0.0
+  resolution: "unpipe@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"
+  checksum: ba244e8bf640475b2143af95be5d71353cd4d238d63abf5dfe700c67841f066eb0819fc60dee7f2348ef647a5644a06ba024b9a0ab6d399fc07a05eb72a30ac7
+  languageName: node
+  linkType: hard
+
+"unset-value@npm:^1.0.0":
+  version: 1.0.0
+  resolution: "unset-value@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"
+  dependencies:
+    has-value: ^0.3.1
+    isobject: ^3.0.0
+  checksum: b4c4853f2744a91e9bb5ccb3dfb28f78c32310bf851f0e6b9e781d3ca5244a803632926b2af701da5f9153a03e405023cebc1f90b87711f73b5fc86b6c33efae
+  languageName: node
+  linkType: hard
+
+"upath@npm:^1.1.1, upath@npm:^1.1.2, upath@npm:^1.2.0":
+  version: 1.2.0
+  resolution: "upath@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"
+  checksum: ecb08ff3e7e3b152e03bceb7089e6f0077bf3494764397a301eb99a7a5cd4c593ea4d0b13a7714195ad8a3ddca9d7a5964037a1c0bc712e1ba7b67a79165a0be
+  languageName: node
+  linkType: hard
+
+"uri-js@npm:^4.2.2":
+  version: 4.2.2
+  resolution: "uri-js@npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"
+  dependencies:
+    punycode: ^2.1.0
+  checksum: 651a49f55d6d65a15e589ed5ffa23bf99e495699e246c1c3fecbe6f232c675589fdae4e93a88608525ff130f39b6fb854c19982820813a2d94c005c11eafd7ed
+  languageName: node
+  linkType: hard
+
+"urix@npm:^0.1.0":
+  version: 0.1.0
+  resolution: "urix@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"
+  checksum: 6bdfca4e7fb7d035537068a47a04ace1bacfa32e6b1aaf54c5a0340c83125a186d59109a19b9a3a1c1f986d3eb718b82faf9ad03d53cb99cf868068580b15b3b
+  languageName: node
+  linkType: hard
+
+"url-join@npm:^2.0.5":
+  version: 2.0.5
+  resolution: "url-join@npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"
+  checksum: 142e04d81bd5c2c71d6f499d20d97360e64c0654f691ed098514539508eb23ab2805ef33408b2718359e50ff35d5a841f607dc6d7d5e55b8bfc5906c6f7ddcb6
+  languageName: node
+  linkType: hard
+
+"url-loader@npm:^4.1.1":
+  version: 4.1.1
+  resolution: "url-loader@npm:4.1.1"
+  dependencies:
+    loader-utils: ^2.0.0
+    mime-types: ^2.1.27
+    schema-utils: ^3.0.0
+  peerDependencies:
+    file-loader: "*"
+    webpack: ^4.0.0 || ^5.0.0
+  peerDependenciesMeta:
+    file-loader:
+      optional: true
+  checksum: 871e8c8df26a985bbc8c1fb345f26565ee920a36bd7f48bece74aa541675b1ff3583e1ca5e9338d0525fbf5e5f6de96d84d9f6e6aa76657a68a5fc13832b009f
+  languageName: node
+  linkType: hard
+
+"url-parse@npm:^1.4.3":
+  version: 1.4.7
+  resolution: "url-parse@npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"
+  dependencies:
+    querystringify: ^2.1.1
+    requires-port: ^1.0.0
+  checksum: 33c44a24b9a9e9da7f2591652dc944b6164b93ad1d3ee4eea889b396788f716bd2d6c9d0a2b3ee2e8f863bde69bacbc12c3a4b4e666506ee4c88ea7444004f95
+  languageName: node
+  linkType: hard
+
+"url@npm:^0.11.0":
+  version: 0.11.0
+  resolution: "url@npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"
+  dependencies:
+    punycode: 1.3.2
+    querystring: 0.2.0
+  checksum: 537f785b16f873fdd2b63ccb7a61463b8e41370fdba95385b0102f3ed7b953c300d95b8755ec3b65f3e406372d47d16c3c989e196b25b70f42190da1fc36c56f
+  languageName: node
+  linkType: hard
+
+"use@npm:^3.1.0":
+  version: 3.1.1
+  resolution: "use@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"
+  checksum: 8dd3bdeeda53864c779e0fa8d799064739708f80b45d06fa48a1a6ba192dc3f9e3266d4556f223cd718d27aedfd957922152e7463c00ac46e185f8331353fb6f
+  languageName: node
+  linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+  version: 1.0.2
+  resolution: "util-deprecate@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"
+  checksum: 73c2b1cf0210ccac300645384d8443cabbd93194117b2dc1b3bae8d8279ad39aedac857e020c4ea505e96a1045059c7359db3df6a9df0be6b8584166c9d61dc9
+  languageName: node
+  linkType: hard
+
+"util-deprecate@npm:^1.0.2":
+  version: 1.0.2
+  resolution: "util-deprecate@npm:1.0.2"
+  checksum: 73c2b1cf0210ccac300645384d8443cabbd93194117b2dc1b3bae8d8279ad39aedac857e020c4ea505e96a1045059c7359db3df6a9df0be6b8584166c9d61dc9
+  languageName: node
+  linkType: hard
+
+"util.promisify@npm:1.0.0":
+  version: 1.0.0
+  resolution: "util.promisify@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"
+  dependencies:
+    define-properties: ^1.1.2
+    object.getownpropertydescriptors: ^2.0.3
+  checksum: 0dffbe1af61c9c034b5e7b411461e46c17c788d855fb02bcbf96cd0f603c086eb83160a3c878c4d69bede9a42118a7ce2b3cc05ed5a235e1c1c04c93bd5608e7
+  languageName: node
+  linkType: hard
+
+"utila@npm:^0.4.0, utila@npm:~0.4":
+  version: 0.4.0
+  resolution: "utila@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"
+  checksum: 6799b0a5666ac26fb547068e6967e51b534e290174b10ae26e500c216197b0faed9be8a12108bc408ce475ce1002c866aac2d1d4e1453dc72b441d8900f2063a
+  languageName: node
+  linkType: hard
+
+"utils-merge@npm:1.0.1":
+  version: 1.0.1
+  resolution: "utils-merge@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"
+  checksum: a457956ebc09efbda05da8bf213ab89140bb9dffa3c42b3315dd8fc3c45d67a1b802741f58b7bba4872113201fc275fc86470289d8bd32b74297b5e5b5980705
+  languageName: node
+  linkType: hard
+
+"uuid@npm:^3.3.2, uuid@npm:^3.4.0":
+  version: 3.4.0
+  resolution: "uuid@npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"
+  bin:
+    uuid: ./bin/uuid
+  checksum: 1ce3f37e214d6d0dc94a6a9663a0365013ace66bc3fd5b203e6f5d2eeb978aaee1192367222386345d30b4c6a447928c501121aa84c637724bf105ef57284949
+  languageName: node
+  linkType: hard
+
+"v8-compile-cache@npm:^2.0.3":
+  version: 2.1.1
+  resolution: "v8-compile-cache@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"
+  checksum: 1290922fe1501a732155206f2d516f91bdfd7acf318542ffe2813ff06465cf49051fae7e1a40f3e0a56cf78b41f799473f6e389fec0534e4ecc62eb4105cf22f
+  languageName: node
+  linkType: hard
+
+"v8-compile-cache@npm:^2.1.0":
+  version: 2.1.1
+  resolution: "v8-compile-cache@npm:2.1.1"
+  checksum: 1290922fe1501a732155206f2d516f91bdfd7acf318542ffe2813ff06465cf49051fae7e1a40f3e0a56cf78b41f799473f6e389fec0534e4ecc62eb4105cf22f
+  languageName: node
+  linkType: hard
+
+"validate-npm-package-license@npm:^3.0.1":
+  version: 3.0.4
+  resolution: "validate-npm-package-license@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"
+  dependencies:
+    spdx-correct: ^3.0.0
+    spdx-expression-parse: ^3.0.0
+  checksum: 940899bd4eacfa012ceecb10a5814ba0e8103da5243aa74d0d62f1f8a405efcd23e034fb7193e2d05b392870c53aabcb1f66439b062075cdcb28bc5d562a8ff6
+  languageName: node
+  linkType: hard
+
+"value-equal@npm:^1.0.1":
+  version: 1.0.1
+  resolution: "value-equal@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"
+  checksum: ae8cc7bbb2bebcaf78ecbf7669944cfc6e23f50361d0d97dc903abbfb9ce5111ce1dc5cb2575646db69636a84b2a3b224e2191088edc3442fb4669c2365af874
+  languageName: node
+  linkType: hard
+
+"vary@npm:~1.1.2":
+  version: 1.1.2
+  resolution: "vary@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"
+  checksum: 591f059f727ac1ba0d97cb7767f8583a03fcbb07db7be2b7dce838ede520ec0e958a41cb19077054769077fdc49a9b9a2dc391c83426bfee89c054b8cc7404bf
+  languageName: node
+  linkType: hard
+
+"verror@npm:1.10.0":
+  version: 1.10.0
+  resolution: "verror@npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"
+  dependencies:
+    assert-plus: ^1.0.0
+    core-util-is: 1.0.2
+    extsprintf: ^1.2.0
+  checksum: 38ea80312cb42e5e8b4ac562d108d675b2354a79f8f125d363671f692657461b9181fd26f4fc9acdca433f8afee099cb78058806e1303e6b15b8fb022affba94
+  languageName: node
+  linkType: hard
+
+"void-elements@npm:^2.0.1":
+  version: 2.0.1
+  resolution: "void-elements@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"
+  checksum: 768d7e08534922455d0e87c66426123920f4d26d88e9c3dc430469e4ce1c11920ca8e2aea7794e52916524d55c3c7820efc20d3f5ce6b749036d989adef1cdd9
+  languageName: node
+  linkType: hard
+
+"warning@npm:^4.0.0, warning@npm:^4.0.3":
+  version: 4.0.3
+  resolution: "warning@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"
+  dependencies:
+    loose-envify: ^1.0.0
+  checksum: 20ef5d29ff9c20af3060e504914a00d5a90ce346e75e6691efbedb540481cdc82070c966d75195f812de64bb0bd7f1b02315fcb52469db151c0f15e29002781c
+  languageName: node
+  linkType: hard
+
+"watchpack@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "watchpack@npm:2.0.0"
+  dependencies:
+    glob-to-regexp: ^0.4.1
+    graceful-fs: ^4.1.2
+  checksum: de23b15ad1e07b56866ff4f1281692ef5ee3b0f114b3dd1d1beb45271e3a4510a7853ea1824fe1eb232e23a3765a5f9c5ffcc51040c85433664851e1d9c28083
+  languageName: node
+  linkType: hard
+
+"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3":
+  version: 1.7.3
+  resolution: "wbuf@npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"
+  dependencies:
+    minimalistic-assert: ^1.0.0
+  checksum: 5916a49cb25fc8c70e4e7eb2d01955061132687a79879292fbdee632952f368c12bc5a641d0404794dbc0e3563f8b6e74dda04467b3e96be8bcd0b919bd47a8c
+  languageName: node
+  linkType: hard
+
+"webpack-chain@npm:^6.5.1":
+  version: 6.5.1
+  resolution: "webpack-chain@npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"
+  dependencies:
+    deepmerge: ^1.5.2
+    javascript-stringify: ^2.0.1
+  checksum: 56995e18999a012fb16fbd769a06716f54053694f01313d7006be70b845f44d62b7c0c42118fe44553fcac825b23c4d1b5720786ad3a756e057f77e39882458e
+  languageName: node
+  linkType: hard
+
+"webpack-cli@npm:^4.1.0":
+  version: 4.1.0
+  resolution: "webpack-cli@npm:4.1.0"
+  dependencies:
+    "@webpack-cli/info": ^1.0.2
+    "@webpack-cli/serve": ^1.0.1
+    ansi-escapes: ^4.3.1
+    colorette: ^1.2.1
+    command-line-usage: ^6.1.0
+    commander: ^6.0.0
+    enquirer: ^2.3.4
+    execa: ^4.0.0
+    import-local: ^3.0.2
+    interpret: ^2.0.0
+    rechoir: ^0.7.0
+    v8-compile-cache: ^2.1.0
+    webpack-merge: ^4.2.2
+  peerDependencies:
+    "@webpack-cli/generate-loader": "*"
+    "@webpack-cli/generate-plugin": "*"
+    "@webpack-cli/init": "*"
+    "@webpack-cli/migrate": "*"
+    webpack: 4.x.x || 5.x.x
+    webpack-bundle-analyzer: "*"
+    webpack-dev-server: "*"
+  peerDependenciesMeta:
+    "@webpack-cli/generate-loader":
+      optional: true
+    "@webpack-cli/generate-plugin":
+      optional: true
+    "@webpack-cli/init":
+      optional: true
+    "@webpack-cli/migrate":
+      optional: true
+    webpack-bundle-analyzer:
+      optional: true
+    webpack-dev-server:
+      optional: true
+  bin:
+    webpack-cli: bin/cli.js
+  checksum: 70402fe84abd9efe24db5ee5d2f053f4e8d96bb76e61111bbeb89b50af031c5f52bef91d3c5f006da9f90cdda9e0e0aeb599b7ec4f28811917c3bad79880fd37
+  languageName: node
+  linkType: hard
+
+"webpack-dev-middleware@npm:^3.7.2":
+  version: 3.7.2
+  resolution: "webpack-dev-middleware@npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"
+  dependencies:
+    memory-fs: ^0.4.1
+    mime: ^2.4.4
+    mkdirp: ^0.5.1
+    range-parser: ^1.2.1
+    webpack-log: ^2.0.0
+  peerDependencies:
+    webpack: ^4.0.0
+  checksum: 88480e7d7f8116f2a992a4f4b3ca5f2ce93e11edbedd029858f43a789109fcd001bad9fcf34df7bb0e8cb33d342205a789abafd6f6315e9fc54bc436e6caa78f
+  languageName: node
+  linkType: hard
+
+"webpack-dev-server@npm:^3.11.0":
+  version: 3.11.0
+  resolution: "webpack-dev-server@npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"
+  dependencies:
+    ansi-html: 0.0.7
+    bonjour: ^3.5.0
+    chokidar: ^2.1.8
+    compression: ^1.7.4
+    connect-history-api-fallback: ^1.6.0
+    debug: ^4.1.1
+    del: ^4.1.1
+    express: ^4.17.1
+    html-entities: ^1.3.1
+    http-proxy-middleware: 0.19.1
+    import-local: ^2.0.0
+    internal-ip: ^4.3.0
+    ip: ^1.1.5
+    is-absolute-url: ^3.0.3
+    killable: ^1.0.1
+    loglevel: ^1.6.8
+    opn: ^5.5.0
+    p-retry: ^3.0.1
+    portfinder: ^1.0.26
+    schema-utils: ^1.0.0
+    selfsigned: ^1.10.7
+    semver: ^6.3.0
+    serve-index: ^1.9.1
+    sockjs: 0.3.20
+    sockjs-client: 1.4.0
+    spdy: ^4.0.2
+    strip-ansi: ^3.0.1
+    supports-color: ^6.1.0
+    url: ^0.11.0
+    webpack-dev-middleware: ^3.7.2
+    webpack-log: ^2.0.0
+    ws: ^6.2.1
+    yargs: ^13.3.2
+  peerDependencies:
+    webpack: ^4.0.0 || ^5.0.0
+    webpack-cli: "*"
+  peerDependenciesMeta:
+    webpack-cli:
+      optional: true
+  bin:
+    webpack-dev-server: bin/webpack-dev-server.js
+  checksum: 1d3445745634cee36df9a01edcb8ed56eadd647a0d72751e8646c038c4d76f40194b841f97ed819971988f85c5b531c571cc776288011ffafd201c9f3ccd444d
+  languageName: node
+  linkType: hard
+
+"webpack-log@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "webpack-log@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"
+  dependencies:
+    ansi-colors: ^3.0.0
+    uuid: ^3.3.2
+  checksum: 250db04c41e278aa15a4f452808ef32ca8eca0f7df9d4c7c28b3d94e45d2649fbeb90a0adbee1c675447209b6a35136e13c1fb31476c3ca81c972bb41f0535bb
+  languageName: node
+  linkType: hard
+
+"webpack-merge@npm:^4.2.2":
+  version: 4.2.2
+  resolution: "webpack-merge@npm:4.2.2"
+  dependencies:
+    lodash: ^4.17.15
+  checksum: 038c6d8ba45f538ce8e4505a8a3d90fbd2e554ba2065bacffe4d7cff0229cce9f0d983bf56061f8e0fef86c711da7232f88681aab285c06673b3916b1040cd9e
+  languageName: node
+  linkType: hard
+
+"webpack-sources@npm:^1.1.0, webpack-sources@npm:^1.3.0, webpack-sources@npm:^1.4.3":
+  version: 1.4.3
+  resolution: "webpack-sources@npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"
+  dependencies:
+    source-list-map: ^2.0.0
+    source-map: ~0.6.1
+  checksum: 2a753b36adf0ddd4dadf6ff375824108a918d180c4ea5383b377526f543e6db0c1ecd40b4154bae8e94c4b209b7814d764879691a468fe230ef9eb32b27fdde4
+  languageName: node
+  linkType: hard
+
+"webpack-sources@npm:^2.0.1":
+  version: 2.1.0
+  resolution: "webpack-sources@npm:2.1.0"
+  dependencies:
+    source-list-map: ^2.0.1
+    source-map: ^0.6.1
+  checksum: 3950d59661b33ecbfaa0dc4d96a118f2d5e6f9f1b3a24ba5cdb0575758745698035949beac486f52a9e9a69bd94dce5f5a138125632117b1ab708220929e9cda
+  languageName: node
+  linkType: hard
+
+"webpack@npm:^5.2.0":
+  version: 5.2.0
+  resolution: "webpack@npm:5.2.0"
+  dependencies:
+    "@types/eslint-scope": ^3.7.0
+    "@types/estree": ^0.0.45
+    "@webassemblyjs/ast": 1.9.0
+    "@webassemblyjs/helper-module-context": 1.9.0
+    "@webassemblyjs/wasm-edit": 1.9.0
+    "@webassemblyjs/wasm-parser": 1.9.0
+    acorn: ^8.0.4
+    browserslist: ^4.14.5
+    chrome-trace-event: ^1.0.2
+    enhanced-resolve: ^5.3.0
+    eslint-scope: ^5.1.1
+    events: ^3.2.0
+    glob-to-regexp: ^0.4.1
+    graceful-fs: ^4.2.4
+    json-parse-better-errors: ^1.0.2
+    loader-runner: ^4.1.0
+    mime-types: ^2.1.27
+    neo-async: ^2.6.2
+    pkg-dir: ^4.2.0
+    schema-utils: ^3.0.0
+    tapable: ^2.0.0
+    terser-webpack-plugin: ^5.0.0
+    watchpack: ^2.0.0
+    webpack-sources: ^2.0.1
+  peerDependencies:
+    webpack-cli: "*"
+  peerDependenciesMeta:
+    webpack-cli:
+      optional: true
+  bin:
+    webpack: bin/webpack.js
+  checksum: 1f91563c2512e9068c9d76f45479fd3c6d9652f490c428d36ce9f5311979609e363e58b0cf8f23019185cd335e72d00a48911a9c1da1b34f0d7a6265eab7e5c4
+  languageName: node
+  linkType: hard
+
+"websocket-driver@npm:0.6.5, websocket-driver@npm:>=0.5.1":
+  version: 0.6.5
+  resolution: "websocket-driver@npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"
+  dependencies:
+    websocket-extensions: ">=0.1.1"
+  checksum: 1169a0ecccf514a98abc54a1b9c9aa56ef662e9169336cc4bc684c4f95a52b93f499d52d2b2f1eb7ccae79dcc41d6cfe8bf9b4cf05f4c69756d7c75fa53d312f
+  languageName: node
+  linkType: hard
+
+"websocket-extensions@npm:>=0.1.1":
+  version: 0.1.4
+  resolution: "websocket-extensions@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"
+  checksum: bbafc0ffa1c6f54606aac88ce366c6a0d72c7827291f40c15a1c325f9f4abe7f7176ab844dd43eab4f07276d9e748dd241d671874c4a0df5cbb0fbed133908dc
+  languageName: node
+  linkType: hard
+
+"which-module@npm:^2.0.0":
+  version: 2.0.0
+  resolution: "which-module@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"
+  checksum: 3d2107ab18c3c2a0ffa4f1a2a0a8862d0bb3fd5c72b10df9cbd75a15b496533bf4c4dc6fa65cefba6fdb8af7935ffb939ef4c8f2eb7835b03d1b93680e9101e9
+  languageName: node
+  linkType: hard
+
+"which@npm:^1.2.9":
+  version: 1.3.1
+  resolution: "which@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"
+  dependencies:
+    isexe: ^2.0.0
+  bin:
+    which: ./bin/which
+  checksum: 298d95f9c185c4da22c1bfb1fdfa37c2ba56df8a6b98706ab361bf31a7d3a4845afaecfc48d4de7a259048842b5f2977f51b56f5c06c1f6a83dcf5a9e3de634a
+  languageName: node
+  linkType: hard
+
+"which@npm:^2.0.1, which@npm:^2.0.2":
+  version: 2.0.2
+  resolution: "which@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"
+  dependencies:
+    isexe: ^2.0.0
+  bin:
+    node-which: ./bin/node-which
+  checksum: ea9b1db1266b08f7880717cf70dd9012dd523e5a317f10fbe4d5e8c1a761c5fd237f88642f2ba33b23f973ff4002c9b26648d63084ab208d8ecef36497315f6e
+  languageName: node
+  linkType: hard
+
+"wide-align@npm:^1.1.0":
+  version: 1.1.3
+  resolution: "wide-align@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"
+  dependencies:
+    string-width: ^1.0.2 || 2
+  checksum: 4f850f84da84b7471d7b92f55e381e7ba286210470fe77a61e02464ef66d10e96057a0d137bc013fbbedb7363a26e79c0e8b21d99bb572467d3fee0465b8fd27
+  languageName: node
+  linkType: hard
+
+"word-wrap@npm:^1.2.3":
+  version: 1.2.3
+  resolution: "word-wrap@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"
+  checksum: 6526abd75d4409c76d1989cf2fbf6080b903db29824be3d17d0a0b8f6221486c76a021174eda2616cf311199787983c34bae3c5e7b51d2ad7476f2066cddb75a
+  languageName: node
+  linkType: hard
+
+"wordwrapjs@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "wordwrapjs@npm:4.0.0"
+  dependencies:
+    reduce-flatten: ^2.0.0
+    typical: ^5.0.0
+  checksum: 022dc1d1a3a2b15490288840822f4f5db31d653edc31117e492e402e77ea02509f44ac7fe163b0aa39d1cc8e2df4d7ef2a28ad8bf3795e7f2a8ee1da8b8bef54
+  languageName: node
+  linkType: hard
+
+"workbox-background-sync@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-background-sync@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 5e227136319a203af07b2949b2ac7cf74995cc740692d4cba2d35df05e9959e0b6bba64ab552b4e80406704bd754639bfc199f72f19f3257cfe22193a5975433
+  languageName: node
+  linkType: hard
+
+"workbox-broadcast-update@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-broadcast-update@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 580c0f56a771f07eb9c07726e70c820cd5f4376b5193dda4c7f3e3606be6c173abd42aede81a106f3dde01dffcd90bf7fbf69812683d822b849840cf9f23f03f
+  languageName: node
+  linkType: hard
+
+"workbox-build@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-build@npm:5.1.4"
+  dependencies:
+    "@babel/core": ^7.8.4
+    "@babel/preset-env": ^7.8.4
+    "@babel/runtime": ^7.8.4
+    "@hapi/joi": ^15.1.0
+    "@rollup/plugin-node-resolve": ^7.1.1
+    "@rollup/plugin-replace": ^2.3.1
+    "@surma/rollup-plugin-off-main-thread": ^1.1.1
+    common-tags: ^1.8.0
+    fast-json-stable-stringify: ^2.1.0
+    fs-extra: ^8.1.0
+    glob: ^7.1.6
+    lodash.template: ^4.5.0
+    pretty-bytes: ^5.3.0
+    rollup: ^1.31.1
+    rollup-plugin-babel: ^4.3.3
+    rollup-plugin-terser: ^5.3.1
+    source-map: ^0.7.3
+    source-map-url: ^0.4.0
+    stringify-object: ^3.3.0
+    strip-comments: ^1.0.2
+    tempy: ^0.3.0
+    upath: ^1.2.0
+    workbox-background-sync: ^5.1.4
+    workbox-broadcast-update: ^5.1.4
+    workbox-cacheable-response: ^5.1.4
+    workbox-core: ^5.1.4
+    workbox-expiration: ^5.1.4
+    workbox-google-analytics: ^5.1.4
+    workbox-navigation-preload: ^5.1.4
+    workbox-precaching: ^5.1.4
+    workbox-range-requests: ^5.1.4
+    workbox-routing: ^5.1.4
+    workbox-strategies: ^5.1.4
+    workbox-streams: ^5.1.4
+    workbox-sw: ^5.1.4
+    workbox-window: ^5.1.4
+  checksum: b20cb791a9036adf9b4f2683d46d9c14742e23f7d8975513ce9274df41e6e954fcb560220139f107f79cd30380f2e1de28f643e54c079f7346144bcf4983aad6
+  languageName: node
+  linkType: hard
+
+"workbox-cacheable-response@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-cacheable-response@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 1a7600120e62b4e3a67c3dfce04f0e4123941c639c4f08a6efa7a5017c48891d073198c63d7e39c94c94d1b4252e4682ec51d63b383c0e1c2a7ef8687a3c2caa
+  languageName: node
+  linkType: hard
+
+"workbox-core@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-core@npm:5.1.4"
+  checksum: eaa6021ef9d7f3046619d09904171121286dee8c20299b00f4a06d85e8a549c0345f70cf5a5cb47c270641ffd3e319b40479c7a7bd4025c651f9ee215ee27014
+  languageName: node
+  linkType: hard
+
+"workbox-expiration@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-expiration@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 94bb79ca9ec2bfc3ae05a4df32d2dc2c4b6246162851abdf620168b8154f31f8469230224862f0367cb52af063fb332a448e74b3c31840f7798fa9c0bc721575
+  languageName: node
+  linkType: hard
+
+"workbox-google-analytics@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-google-analytics@npm:5.1.4"
+  dependencies:
+    workbox-background-sync: ^5.1.4
+    workbox-core: ^5.1.4
+    workbox-routing: ^5.1.4
+    workbox-strategies: ^5.1.4
+  checksum: a533d05d0769427dbe6768299aa44acacf0774e8fd80ee0b5875b0b551603620221a69c444dca867f9c5b7f2296971831ef422801dd6afbcc0c834424dfffb8f
+  languageName: node
+  linkType: hard
+
+"workbox-navigation-preload@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-navigation-preload@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 1704ecaadb4f90fc8236a760b0e53cfd511dda5b6ab0b929792574baaea8b8f7e3d033e6f90bfdb08b391ff717eb09589e846028665db0be5fe6175c20a46320
+  languageName: node
+  linkType: hard
+
+"workbox-precaching@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-precaching@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: a2add02126a0de093e439dc145eb7d8455439d981792fccf42fe53376e3be5318e279ca4ee09bd63ef750ca203147387917ba5b9068ec39f3a4dd967975b91ae
+  languageName: node
+  linkType: hard
+
+"workbox-range-requests@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-range-requests@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 3df8c87cd2ddb38f63d4f5ef5c1f0cb6acbfafc648ca7b8c0aa6343c8ee25b58756893ef131ee60cafd599f8664fd7fb92c65ef8aae207ee261dbdc0d62d4b44
+  languageName: node
+  linkType: hard
+
+"workbox-routing@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-routing@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 46583ef2c4733cc2664652a0778e7154a6bd93afedc3147d1c06aaaa1500d37b323c11a5acfe5d17a441e6135afc56ec45ad12ce29edd4cf537e9732e5987280
+  languageName: node
+  linkType: hard
+
+"workbox-strategies@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-strategies@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+    workbox-routing: ^5.1.4
+  checksum: 4db2d9c9873277c174ea990a2079d6edb87a2d72f8c19f89771574173fe2479666ce533e15a474b5139a94560a7c37cefbaad2d4373dae59ee3a01746f25c5a6
+  languageName: node
+  linkType: hard
+
+"workbox-streams@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-streams@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+    workbox-routing: ^5.1.4
+  checksum: 2f620673286136bc755983b049c3bee5a2cc5cc539dcc9849829983ae9161df36953bde91e5da158f037d6afcb9704c8b4333ce85d186eca418893e619faf929
+  languageName: node
+  linkType: hard
+
+"workbox-sw@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-sw@npm:5.1.4"
+  checksum: cff84bdecc96de3024d9dce4b1f633d741bf94f03734fd9a26d25b4a54b993376e7a8b3021beeae74a9ef7659dd3b50d0f284483b27c51fca0b24111a8016aec
+  languageName: node
+  linkType: hard
+
+"workbox-webpack-plugin@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-webpack-plugin@npm:5.1.4"
+  dependencies:
+    "@babel/runtime": ^7.5.5
+    fast-json-stable-stringify: ^2.0.0
+    source-map-url: ^0.4.0
+    upath: ^1.1.2
+    webpack-sources: ^1.3.0
+    workbox-build: ^5.1.4
+  peerDependencies:
+    webpack: ^4.0.0
+  checksum: 27f7f598659cb130d546a39f23b16ecc89390eb5d5c9176a0b527f0ece2f3781031d4bea702f2ac2d0771398af7ff07d9e5e7e210f60846da446cd031cc9366c
+  languageName: node
+  linkType: hard
+
+"workbox-window@npm:^5.1.4":
+  version: 5.1.4
+  resolution: "workbox-window@npm:5.1.4"
+  dependencies:
+    workbox-core: ^5.1.4
+  checksum: 1bbefb35ba8745ede8837f3d4f46b36f4b27c6c018e7128412bb27a17ddfcf2d5c34a1a8c6cb4e8570d0bc87b42ccf530b06fd382ed05ee269ea2183f7e003eb
+  languageName: node
+  linkType: hard
+
+"wrap-ansi@npm:^5.1.0":
+  version: 5.1.0
+  resolution: "wrap-ansi@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"
+  dependencies:
+    ansi-styles: ^3.2.0
+    string-width: ^3.0.0
+    strip-ansi: ^5.0.0
+  checksum: 9622c3aa2742645e9a6941d297436a433c65ffe1b1416578ad56e0df657716bda6857401c5c9cc485c0abbc04e852aafedf295d87e2d6ec58a01799d6bcb2fdf
+  languageName: node
+  linkType: hard
+
+"wrappy@npm:1":
+  version: 1.0.2
+  resolution: "wrappy@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"
+  checksum: 519fcda0fcdf0c16327be2de9d98646742307bc830277e8868529fcf7566f2b330a6453c233e0cdcb767d5838dd61a90984a02ecc983bcddebea5ad0833bbf98
+  languageName: node
+  linkType: hard
+
+"write@npm:1.0.3":
+  version: 1.0.3
+  resolution: "write@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"
+  dependencies:
+    mkdirp: ^0.5.1
+  checksum: e8f8fddefea3eaaf4c8bacf072161f82d5e05c5fb8f003e1bae52673b94b88a4954d97688c7403a20301d2f6e9f61363b1affe74286b499b39bc0c42f17a56cb
+  languageName: node
+  linkType: hard
+
+"ws@npm:^6.2.1":
+  version: 6.2.1
+  resolution: "ws@npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"
+  dependencies:
+    async-limiter: ~1.0.0
+  checksum: 35d32b09e28f799f04708c3a7bd9eff469ae63e60543d7e18335f28689228a42ee21210f48de680aad6e5317df76b5b1183d1a1ea4b4d14cb6e0943528f40e76
+  languageName: node
+  linkType: hard
+
+"xregexp@npm:^4.3.0":
+  version: 4.3.0
+  resolution: "xregexp@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"
+  dependencies:
+    "@babel/runtime-corejs3": ^7.8.3
+  checksum: 2dcef4888ea32e7c01b8f42d1ee3df24970de14b299a8f534ccecf2252d297092f92d037502176ec334b6c8d7cd1dd3dba0d3cf949e26f418d50b46846268839
+  languageName: node
+  linkType: hard
+
+"y18n@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "y18n@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"
+  checksum: 5b7434c95d31ffa2b9b97df98e2d786446a0ff21c30e0265088caa4818a3335559a425763e55b6d9370d9fcecb75a36ae5bb901184676bd255f96ee3c743f667
+  languageName: node
+  linkType: hard
+
+"yallist@npm:^4.0.0":
+  version: 4.0.0
+  resolution: "yallist@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"
+  checksum: a2960ef879af6ee67a76cae29bac9d8bffeb6e9e366c217dbd21464e7fce071933705544724f47e90ba5209cf9c83c17d5582dd04415d86747a826b2a231efb8
+  languageName: node
+  linkType: hard
+
+"yaml@npm:^1.10.0":
+  version: 1.10.0
+  resolution: "yaml@npm:1.10.0"
+  checksum: d4cc9f9724f8d0aebc2cf52e4e6aa7059f12d50deb54b5225d103462fb2af36e5c0bb419101ca4b1f0cd3b4db9e4139cf2c690e863ac6227648d39d6f4e2522c
+  languageName: node
+  linkType: hard
+
+"yargs-parser@npm:^13.1.2":
+  version: 13.1.2
+  resolution: "yargs-parser@npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"
+  dependencies:
+    camelcase: ^5.0.0
+    decamelize: ^1.2.0
+  checksum: 82d3b7ab99085d70a5121399ad407d2b98d296538bf7012ac2ce044a61160ca891ea617de6374699d81955d9a61c36a3b2a6a51588e38f710bd211ce2e63c33c
+  languageName: node
+  linkType: hard
+
+"yargs@npm:^13.3.2":
+  version: 13.3.2
+  resolution: "yargs@npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"
+  dependencies:
+    cliui: ^5.0.0
+    find-up: ^3.0.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: ^3.0.0
+    which-module: ^2.0.0
+    y18n: ^4.0.0
+    yargs-parser: ^13.1.2
+  checksum: 92c612cd14a9217d7421ae4f42bc7c460472633bfc2e45f7f86cd614a61a845670d3bac7c2228c39df7fcecce0b8c12b2af65c785b1f757de974dcf84b5074f9
+  languageName: node
+  linkType: hard
diff --git a/Nuget.Config b/Nuget.Config
deleted file mode 100644
index e219de2b..00000000
--- a/Nuget.Config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <clear />
-    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
-  </packageSources>
-</configuration>
diff --git a/Timeline.ErrorCodes.CodeGenerator/Program.cs b/Timeline.ErrorCodes.CodeGenerator/Program.cs
deleted file mode 100644
index 84ab5908..00000000
--- a/Timeline.ErrorCodes.CodeGenerator/Program.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-﻿using System;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-
-namespace Timeline.ErrorCodes.CodeGenerator
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {
-            string Indent(int n)
-            {
-                const string indent = "    ";
-                return string.Concat(Enumerable.Repeat(indent, n));
-            }
-
-            StringBuilder code = new StringBuilder();
-
-            code.AppendLine("using static Timeline.Resources.Messages;");
-            code.AppendLine();
-            code.AppendLine("namespace Timeline.Models.Http");
-            code.AppendLine("{");
-
-            int depth = 1;
-
-            void RecursiveAddErrorCode(Type type, bool root)
-            {
-                code.AppendLine($"{Indent(depth)}public static class {(root ? "ErrorResponse" : type.Name)}");
-                code.AppendLine($"{Indent(depth)}{{");
-
-                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
-                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
-                {
-                    var path = type.FullName.Replace("+", ".").Replace("Timeline.Models.Http.ErrorCodes.", "") + "." + field.Name;
-
-                    code.AppendLine($"{Indent(depth + 1)}public static CommonResponse {field.Name}(params object?[] formatArgs)");
-                    code.AppendLine($"{Indent(depth + 1)}{{");
-                    code.AppendLine($"{Indent(depth + 2)}return new CommonResponse({"ErrorCodes." + path}, string.Format({path.Replace(".", "_")}, formatArgs));");
-                    code.AppendLine($"{Indent(depth + 1)}}}");
-                    code.AppendLine();
-                    code.AppendLine($"{Indent(depth + 1)}public static CommonResponse CustomMessage_{field.Name}(string message, params object?[] formatArgs)");
-                    code.AppendLine($"{Indent(depth + 1)}{{");
-                    code.AppendLine($"{Indent(depth + 2)}return new CommonResponse({"ErrorCodes." + path}, string.Format(message, formatArgs));");
-                    code.AppendLine($"{Indent(depth + 1)}}}");
-                    code.AppendLine();
-                }
-
-                depth += 1;
-
-                foreach (var nestedType in type.GetNestedTypes())
-                {
-                    RecursiveAddErrorCode(nestedType, false);
-                }
-
-                depth -= 1;
-
-                code.AppendLine($"{Indent(depth)}}}");
-                code.AppendLine();
-            }
-
-            RecursiveAddErrorCode(typeof(Timeline.Models.Http.ErrorCodes), true);
-
-            code.AppendLine("}");
-
-            var generatedCode = code.ToString();
-
-            Console.WriteLine(generatedCode);
-
-            TextCopy.ClipboardService.SetText(generatedCode);
-            var oldColor = Console.ForegroundColor;
-            Console.ForegroundColor = ConsoleColor.Green;
-            Console.WriteLine("Code has copied to clipboard!");
-            Console.ForegroundColor = oldColor;
-        }
-    }
-}
diff --git a/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj b/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
deleted file mode 100644
index c8eb97f3..00000000
--- a/Timeline.ErrorCodes.CodeGenerator/Timeline.ErrorCodes.CodeGenerator.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-﻿<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="TextCopy" Version="4.2.0" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\Timeline.ErrorCodes\Timeline.ErrorCodes.csproj" />
-  </ItemGroup>
-
-</Project>
diff --git a/Timeline.ErrorCodes.CodeGenerator/packages.lock.json b/Timeline.ErrorCodes.CodeGenerator/packages.lock.json
deleted file mode 100644
index 69cfee1e..00000000
--- a/Timeline.ErrorCodes.CodeGenerator/packages.lock.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "version": 1,
-  "dependencies": {
-    ".NETCoreApp,Version=v3.1": {
-      "TextCopy": {
-        "type": "Direct",
-        "requested": "[4.2.0, )",
-        "resolved": "4.2.0",
-        "contentHash": "NY2UAFIjBJj+3aABP5tyO6ooEdkJxIGtwRNqvMQKLmyIeZiyGvM4XYbkKNntyQlhyFhhfBww05C3D/0DdimfaQ==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.4"
-        }
-      },
-      "Microsoft.Extensions.DependencyInjection.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.4",
-        "contentHash": "AceHamXNKDMDwIoZqEoApLp8s3935wSC3VXrPaRWa0wWOaEcYdDlo1nWQ1zLiezoDmpJzV7FqDm53E0Ty/hEMg=="
-      },
-      "timeline.errorcodes": {
-        "type": "Project"
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/Timeline.ErrorCodes/ErrorCodes.cs b/Timeline.ErrorCodes/ErrorCodes.cs
deleted file mode 100644
index 91e0c1fd..00000000
--- a/Timeline.ErrorCodes/ErrorCodes.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-﻿namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// All error code constants.
-    /// </summary>
-    /// <remarks>
-    /// Format: 1bbbccdd
-    /// </remarks>
-    public static class ErrorCodes
-    {
-        public static class Common
-        {
-            public const int InvalidModel = 1_000_0001;
-            public const int Forbid = 1_000_0002;
-            public const int UnknownEndpoint = 1_000_0003;
-
-            public static class Header
-            {
-                public const int IfNonMatch_BadFormat = 1_000_01_01;
-            }
-
-            public static class Content
-            {
-                public const int TooBig = 1_000_11_01;
-            }
-        }
-
-        public static class UserCommon
-        {
-            public const int NotExist = 1_001_0001;
-        }
-
-        public static class TokenController
-        {
-            public const int Create_BadCredential = 1_101_01_01;
-            public const int Verify_BadFormat = 1_101_02_01;
-            public const int Verify_UserNotExist = 1_101_02_02;
-            public const int Verify_OldVersion = 1_101_02_03;
-            public const int Verify_TimeExpired = 1_101_02_04;
-        }
-
-        public static class UserController
-        {
-            public const int UsernameConflict = 1_102_01_01;
-            public const int ChangePassword_BadOldPassword = 1_102_02_01;
-        }
-
-        public static class UserAvatar
-        {
-            public const int BadFormat_CantDecode = 1_103_00_01;
-            public const int BadFormat_UnmatchedFormat = 1_103_00_02;
-            public const int BadFormat_BadSize = 1_103_00_03;
-        }
-
-        public static class TimelineController
-        {
-            public const int NameConflict = 1_104_01_01;
-            public const int NotExist = 1_104_02_01;
-            public const int MemberPut_NotExist = 1_104_03_01;
-            public const int QueryRelateNotExist = 1_104_04_01;
-            public const int PostNotExist = 1_104_05_01;
-            public const int PostNoData = 1_104_05_02;
-        }
-    }
-}
-
diff --git a/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj b/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
deleted file mode 100644
index 01ca2568..00000000
--- a/Timeline.ErrorCodes/Timeline.ErrorCodes.csproj
+++ /dev/null
@@ -1,7 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
-  </PropertyGroup>
-
-</Project>
diff --git a/Timeline.ErrorCodes/packages.lock.json b/Timeline.ErrorCodes/packages.lock.json
deleted file mode 100644
index dabf86bc..00000000
--- a/Timeline.ErrorCodes/packages.lock.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "version": 1,
-  "dependencies": {
-    ".NETCoreApp,Version=v3.1": {}
-  }
-}
\ No newline at end of file
diff --git a/Timeline.Tests/ErrorCodeTest.cs b/Timeline.Tests/ErrorCodeTest.cs
deleted file mode 100644
index 258ebf4e..00000000
--- a/Timeline.Tests/ErrorCodeTest.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-﻿using FluentAssertions;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using Timeline.Models.Http;
-using Xunit;
-using Xunit.Abstractions;
-
-namespace Timeline.Tests
-{
-    public class ErrorCodeTest
-    {
-        private readonly ITestOutputHelper _output;
-
-        public ErrorCodeTest(ITestOutputHelper output)
-        {
-            _output = output;
-        }
-
-        [Fact]
-        public void ShouldWork()
-        {
-            var errorCodes = new Dictionary<int, string>();
-
-            void RecursiveCheckErrorCode(Type type)
-            {
-                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
-                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
-                {
-                    var name = type.FullName + "." + field.Name;
-                    var value = (int)field.GetRawConstantValue();
-                    _output.WriteLine($"Find error code {name} , value is {value}.");
-
-                    value.Should().BeInRange(1000_0000, 9999_9999, "Error code should have exactly 8 digits.");
-
-                    errorCodes.Should().NotContainKey(value,
-                        "identical error codes are found and conflict paths are {0} and {1}",
-                        name, errorCodes.GetValueOrDefault(value));
-
-                    errorCodes.Add(value, name);
-                }
-
-                foreach (var nestedType in type.GetNestedTypes())
-                {
-                    RecursiveCheckErrorCode(nestedType);
-                }
-            }
-
-            RecursiveCheckErrorCode(typeof(ErrorCodes));
-        }
-    }
-}
diff --git a/Timeline.Tests/GlobalSuppressions.cs b/Timeline.Tests/GlobalSuppressions.cs
deleted file mode 100644
index 0f873033..00000000
--- a/Timeline.Tests/GlobalSuppressions.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-﻿// This file is used by Code Analysis to maintain SuppressMessage
-// attributes that are applied to this project.
-// Project-level suppressions either have no target or are given
-// a specific target and scoped to a namespace, type, member, etc.
-
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "This is not a UI application.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Tests name have underscores.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "Test may catch all exceptions.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1034:Nested types should not be visible", Justification = "Test classes can be nested.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "This is redundant.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1063:Implement IDisposable Correctly", Justification = "Test classes do not need to implement it that way.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA1816:Dispose methods should call SuppressFinalize", Justification = "Test classes do not need to implement it that way.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2234:Pass system uri objects instead of strings", Justification = "I really don't understand this rule.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Globalization", "CA1303:Do not pass literals as localized parameters", Justification = "Tests do not need make strings resources.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1054:Uri parameters should not be strings", Justification = "That's unnecessary.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Uri properties should not be strings", Justification = "That's unnecessary.")]
diff --git a/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs b/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
deleted file mode 100644
index b78309c0..00000000
--- a/Timeline.Tests/Helpers/AsyncFunctionAssertionsExtensions.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-﻿using FluentAssertions;
-using FluentAssertions.Primitives;
-using FluentAssertions.Specialized;
-using System;
-using System.Threading.Tasks;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class AsyncFunctionAssertionsExtensions
-    {
-        public static async Task<AndConstraint<ObjectAssertions>> ThrowAsync(this AsyncFunctionAssertions assertions, Type exceptionType, string because = "", params object[] becauseArgs)
-        {
-            return (await assertions.ThrowAsync<Exception>(because, becauseArgs)).Which.Should().BeAssignableTo(exceptionType);
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/CacheTestHelper.cs b/Timeline.Tests/Helpers/CacheTestHelper.cs
deleted file mode 100644
index b3709a28..00000000
--- a/Timeline.Tests/Helpers/CacheTestHelper.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-﻿using FluentAssertions;
-using System;
-using System.Net;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class CacheTestHelper
-    {
-        public static async Task TestCache(HttpClient client, string getUrl)
-        {
-            EntityTagHeaderValue eTag;
-            {
-                var res = await client.GetAsync(getUrl);
-                res.Should().HaveStatusCode(200);
-                var cacheControlHeader = res.Headers.CacheControl;
-                cacheControlHeader.NoCache.Should().BeTrue();
-                cacheControlHeader.NoStore.Should().BeFalse();
-                cacheControlHeader.Private.Should().BeTrue();
-                cacheControlHeader.Public.Should().BeFalse();
-                cacheControlHeader.MustRevalidate.Should().BeTrue();
-                cacheControlHeader.MaxAge.Should().NotBeNull().And.Be(TimeSpan.FromDays(14));
-                eTag = res.Headers.ETag;
-            }
-
-            {
-                using var request = new HttpRequestMessage()
-                {
-                    RequestUri = new Uri(client.BaseAddress, getUrl),
-                    Method = HttpMethod.Get,
-                };
-                request.Headers.TryAddWithoutValidation("If-None-Match", "\"dsdfd");
-                var res = await client.SendAsync(request);
-                res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
-                    .And.HaveCommonBody(ErrorCodes.Common.Header.IfNonMatch_BadFormat);
-            }
-
-            {
-                using var request = new HttpRequestMessage()
-                {
-                    RequestUri = new Uri(client.BaseAddress, getUrl),
-                    Method = HttpMethod.Get,
-                };
-                request.Headers.TryAddWithoutValidation("If-None-Match", "\"aaa\"");
-                var res = await client.SendAsync(request);
-                res.Should().HaveStatusCode(HttpStatusCode.OK);
-            }
-
-            {
-                using var request = new HttpRequestMessage()
-                {
-                    RequestUri = new Uri(client.BaseAddress, getUrl),
-                    Method = HttpMethod.Get,
-                };
-                request.Headers.Add("If-None-Match", eTag.ToString());
-                var res = await client.SendAsync(request);
-                res.Should().HaveStatusCode(HttpStatusCode.NotModified);
-            }
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/HttpClientExtensions.cs b/Timeline.Tests/Helpers/HttpClientExtensions.cs
deleted file mode 100644
index 6513bbe7..00000000
--- a/Timeline.Tests/Helpers/HttpClientExtensions.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-﻿using Newtonsoft.Json;
-using System;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Net.Mime;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class HttpClientExtensions
-    {
-        public static Task<HttpResponseMessage> PatchAsJsonAsync<T>(this HttpClient client, string url, T body)
-        {
-            return client.PatchAsJsonAsync(new Uri(url, UriKind.RelativeOrAbsolute), body);
-        }
-
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
-        public static Task<HttpResponseMessage> PatchAsJsonAsync<T>(this HttpClient client, Uri url, T body)
-        {
-            return client.PatchAsync(url, new StringContent(
-                JsonConvert.SerializeObject(body), Encoding.UTF8, MediaTypeNames.Application.Json));
-        }
-
-        public static Task<HttpResponseMessage> PutByteArrayAsync(this HttpClient client, string url, byte[] body, string mimeType)
-        {
-            return client.PutByteArrayAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType);
-        }
-
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
-        public static Task<HttpResponseMessage> PutByteArrayAsync(this HttpClient client, Uri url, byte[] body, string mimeType)
-        {
-            var content = new ByteArrayContent(body);
-            content.Headers.ContentLength = body.Length;
-            content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
-            return client.PutAsync(url, content);
-        }
-
-        public static Task<HttpResponseMessage> PutStringAsync(this HttpClient client, string url, string body, string mimeType = null)
-        {
-            return client.PutStringAsync(new Uri(url, UriKind.RelativeOrAbsolute), body, mimeType);
-        }
-
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")]
-        public static Task<HttpResponseMessage> PutStringAsync(this HttpClient client, Uri url, string body, string mimeType = null)
-        {
-            var content = new StringContent(body, Encoding.UTF8, mimeType ?? MediaTypeNames.Text.Plain);
-            return client.PutAsync(url, content);
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/HttpResponseExtensions.cs b/Timeline.Tests/Helpers/HttpResponseExtensions.cs
deleted file mode 100644
index 2bd497f1..00000000
--- a/Timeline.Tests/Helpers/HttpResponseExtensions.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-﻿using System.Net.Http;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using System.Threading.Tasks;
-using Timeline.Models.Converters;
-using Timeline.Models.Http;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class HttpResponseExtensions
-    {
-        public static JsonSerializerOptions JsonSerializerOptions { get; }
-
-        static HttpResponseExtensions()
-        {
-            JsonSerializerOptions = new JsonSerializerOptions
-            {
-                PropertyNamingPolicy = JsonNamingPolicy.CamelCase
-            };
-            JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
-            JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
-        }
-
-        public static async Task<T> ReadBodyAsJsonAsync<T>(this HttpResponseMessage response)
-        {
-            var stream = await response.Content.ReadAsStreamAsync();
-            return await JsonSerializer.DeserializeAsync<T>(stream, JsonSerializerOptions);
-        }
-
-        public static Task<CommonResponse> ReadBodyAsCommonResponseAsync(this HttpResponseMessage response)
-        {
-            return response.ReadBodyAsJsonAsync<CommonResponse>();
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/ImageHelper.cs b/Timeline.Tests/Helpers/ImageHelper.cs
deleted file mode 100644
index 9bed0917..00000000
--- a/Timeline.Tests/Helpers/ImageHelper.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-﻿using SixLabors.ImageSharp;
-using SixLabors.ImageSharp.Formats;
-using SixLabors.ImageSharp.PixelFormats;
-using System.IO;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class ImageHelper
-    {
-        public static byte[] CreatePngWithSize(int width, int height)
-        {
-            using var image = new Image<Rgba32>(width, height);
-            using var stream = new MemoryStream();
-            image.SaveAsPng(stream);
-            return stream.ToArray();
-        }
-
-        public static byte[] CreateImageWithSize(int width, int height, IImageFormat format)
-        {
-            using var image = new Image<Rgba32>(width, height);
-            using var stream = new MemoryStream();
-            image.Save(stream, format);
-            return stream.ToArray();
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/ParameterInfoAssertions.cs b/Timeline.Tests/Helpers/ParameterInfoAssertions.cs
deleted file mode 100644
index d3e5a41e..00000000
--- a/Timeline.Tests/Helpers/ParameterInfoAssertions.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-﻿using FluentAssertions;
-using FluentAssertions.Execution;
-using FluentAssertions.Formatting;
-using FluentAssertions.Primitives;
-using System;
-using System.Reflection;
-
-namespace Timeline.Tests.Helpers
-{
-    public class ParameterInfoValueFormatter : IValueFormatter
-    {
-        public bool CanHandle(object value)
-        {
-            return value is ParameterInfo;
-        }
-
-        public string Format(object value, FormattingContext context, FormatChild formatChild)
-        {
-            var param = (ParameterInfo)value;
-            return $"{param.Member.DeclaringType.FullName}.{param.Member.Name}#{param.Name}";
-        }
-    }
-
-    public class ParameterInfoAssertions : ReferenceTypeAssertions<ParameterInfo, ParameterInfoAssertions>
-    {
-        static ParameterInfoAssertions()
-        {
-            Formatter.AddFormatter(new ParameterInfoValueFormatter());
-        }
-
-        public ParameterInfoAssertions(ParameterInfo parameterInfo)
-        {
-            Subject = parameterInfo;
-        }
-
-        protected override string Identifier => "parameter";
-
-        public AndWhichConstraint<ParameterInfoAssertions, TAttribute> BeDecoratedWith<TAttribute>(string because = "", params object[] becauseArgs)
-            where TAttribute : Attribute
-        {
-            var attribute = Subject.GetCustomAttribute<TAttribute>(false);
-
-            Execute.Assertion
-                .BecauseOf(because, becauseArgs)
-                .ForCondition(attribute != null)
-                .FailWith("Expected {0} {1} to be decorated with {2}{reason}, but that attribute was not found.",
-                Identifier, Subject, typeof(TAttribute).FullName);
-
-            return new AndWhichConstraint<ParameterInfoAssertions, TAttribute>(this, attribute);
-        }
-    }
-
-    public static class ParameterInfoAssertionExtensions
-    {
-        public static ParameterInfoAssertions Should(this ParameterInfo parameterInfo)
-        {
-            return new ParameterInfoAssertions(parameterInfo);
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/ReflectionHelper.cs b/Timeline.Tests/Helpers/ReflectionHelper.cs
deleted file mode 100644
index 3f6036e3..00000000
--- a/Timeline.Tests/Helpers/ReflectionHelper.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-﻿using System.Linq;
-using System.Reflection;
-
-namespace Timeline.Tests.Helpers
-{
-    public static class ReflectionHelper
-    {
-        public static ParameterInfo GetParameter(this MethodInfo methodInfo, string name)
-        {
-            return methodInfo.GetParameters().Where(p => p.Name == name).Single();
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/ResponseAssertions.cs b/Timeline.Tests/Helpers/ResponseAssertions.cs
deleted file mode 100644
index 024732f5..00000000
--- a/Timeline.Tests/Helpers/ResponseAssertions.cs
+++ /dev/null
@@ -1,172 +0,0 @@
-﻿using FluentAssertions;
-using FluentAssertions.Execution;
-using FluentAssertions.Formatting;
-using FluentAssertions.Primitives;
-using System;
-using System.Globalization;
-using System.Net;
-using System.Net.Http;
-using System.Text;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using Timeline.Models.Converters;
-using Timeline.Models.Http;
-
-namespace Timeline.Tests.Helpers
-{
-    public class HttpResponseMessageValueFormatter : IValueFormatter
-    {
-        public bool CanHandle(object value)
-        {
-            return value is HttpResponseMessage;
-        }
-
-        public string Format(object value, FormattingContext context, FormatChild formatChild)
-        {
-            string newline = context.UseLineBreaks ? Environment.NewLine : "";
-            string padding = new string('\t', context.Depth);
-
-            var res = (HttpResponseMessage)value;
-
-            var builder = new StringBuilder();
-            builder.Append($"{newline}{padding} Status Code: {res.StatusCode} ; Body: ");
-
-            try
-            {
-                var task = res.Content.ReadAsStringAsync();
-                task.Wait();
-                var body = task.Result;
-                if (body.Length > 40)
-                {
-                    body = body[0..40] + " ...";
-                }
-                builder.Append(body);
-            }
-            catch (AggregateException)
-            {
-                builder.Append("NOT A STRING.");
-            }
-
-            return builder.ToString();
-        }
-    }
-
-    public class HttpResponseMessageAssertions
-            : ReferenceTypeAssertions<HttpResponseMessage, HttpResponseMessageAssertions>
-    {
-        static HttpResponseMessageAssertions()
-        {
-            Formatter.AddFormatter(new HttpResponseMessageValueFormatter());
-        }
-
-        public HttpResponseMessageAssertions(HttpResponseMessage instance)
-        {
-            Subject = instance;
-        }
-
-        protected override string Identifier => "HttpResponseMessage";
-
-        public AndConstraint<HttpResponseMessageAssertions> HaveStatusCode(int expected, string because = "", params object[] becauseArgs)
-        {
-            return HaveStatusCode((HttpStatusCode)expected, because, becauseArgs);
-        }
-
-        public AndConstraint<HttpResponseMessageAssertions> HaveStatusCode(HttpStatusCode expected, string because = "", params object[] becauseArgs)
-        {
-            Execute.Assertion.BecauseOf(because, becauseArgs)
-                .ForCondition(Subject.StatusCode == expected)
-                .FailWith("Expected status code of {context:HttpResponseMessage} to be {0}{reason}, but found {1}.", expected, Subject.StatusCode);
-            return new AndConstraint<HttpResponseMessageAssertions>(this);
-        }
-
-        public AndWhichConstraint<HttpResponseMessageAssertions, T> HaveJsonBody<T>(string because = "", params object[] becauseArgs)
-        {
-            var a = Execute.Assertion.BecauseOf(because, becauseArgs);
-            string body;
-            try
-            {
-                var task = Subject.Content.ReadAsStringAsync();
-                task.Wait();
-                body = task.Result;
-            }
-            catch (AggregateException e)
-            {
-                a.FailWith("Expected response body of {context:HttpResponseMessage} to be json string{reason}, but failed to read it or it was not a string. Exception is {0}.", e.InnerExceptions);
-                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
-            }
-
-
-            try
-            {
-                var options = new JsonSerializerOptions
-                {
-                    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
-                };
-                options.Converters.Add(new JsonStringEnumConverter());
-                options.Converters.Add(new JsonDateTimeConverter());
-
-                var result = JsonSerializer.Deserialize<T>(body, options);
-
-                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, result);
-            }
-            catch (JsonException e)
-            {
-                a.FailWith("Expected response body of {context:HttpResponseMessage} to be json string{reason}, but failed to deserialize it. Exception is {0}.", e);
-                return new AndWhichConstraint<HttpResponseMessageAssertions, T>(this, null);
-            }
-        }
-    }
-
-    public static class AssertionResponseExtensions
-    {
-        public static HttpResponseMessageAssertions Should(this HttpResponseMessage instance)
-        {
-            return new HttpResponseMessageAssertions(instance);
-        }
-
-        public static AndWhichConstraint<HttpResponseMessageAssertions, CommonResponse> HaveCommonBody(this HttpResponseMessageAssertions assertions, string because = "", params object[] becauseArgs)
-        {
-            return assertions.HaveJsonBody<CommonResponse>(because, becauseArgs);
-        }
-
-        public static void HaveCommonBody(this HttpResponseMessageAssertions assertions, int code, string message = null, params object[] messageArgs)
-        {
-            message = string.IsNullOrEmpty(message) ? "" : ", " + string.Format(CultureInfo.CurrentCulture, message, messageArgs);
-            var body = assertions.HaveCommonBody("Response body should be CommonResponse{0}", message).Which;
-            body.Code.Should().Be(code, "Response body code is not the specified one{0}", message);
-        }
-
-        public static AndWhichConstraint<HttpResponseMessageAssertions, CommonDataResponse<TData>> HaveCommonDataBody<TData>(this HttpResponseMessageAssertions assertions, string because = "", params object[] becauseArgs)
-        {
-            return assertions.HaveJsonBody<CommonDataResponse<TData>>(because, becauseArgs);
-        }
-
-        public static void BePut(this HttpResponseMessageAssertions assertions, bool create, string because = "", params object[] becauseArgs)
-        {
-            var body = assertions.HaveStatusCode(create ? 201 : 200, because, becauseArgs)
-                .And.HaveJsonBody<CommonPutResponse>(because, becauseArgs)
-                .Which;
-            body.Code.Should().Be(0);
-            body.Data.Create.Should().Be(create);
-        }
-
-        public static void BeDelete(this HttpResponseMessageAssertions assertions, bool delete, string because = "", params object[] becauseArgs)
-        {
-            var body = assertions.HaveStatusCode(200, because, becauseArgs)
-                .And.HaveJsonBody<CommonDeleteResponse>(because, becauseArgs)
-                .Which;
-            body.Code.Should().Be(0);
-            body.Data.Delete.Should().Be(delete);
-        }
-
-        public static void BeInvalidModel(this HttpResponseMessageAssertions assertions, string message = null)
-        {
-            message = string.IsNullOrEmpty(message) ? "" : ", " + message;
-            assertions.HaveStatusCode(400, "Invalid Model Error must have 400 status code{0}", message)
-                .And.HaveCommonBody("Invalid Model Error must have CommonResponse body{0}", message)
-                .Which.Code.Should().Be(ErrorCodes.Common.InvalidModel,
-                "Invalid Model Error must have code {0} in body{1}",
-                ErrorCodes.Common.InvalidModel, message);
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/TestApplication.cs b/Timeline.Tests/Helpers/TestApplication.cs
deleted file mode 100644
index 684ffe2c..00000000
--- a/Timeline.Tests/Helpers/TestApplication.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.TestHost;
-using Microsoft.Data.Sqlite;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using System.Collections.Generic;
-using System.IO;
-using System.Threading.Tasks;
-using Timeline.Configs;
-using Timeline.Entities;
-using Xunit;
-
-namespace Timeline.Tests.Helpers
-{
-    public class TestApplication : IAsyncLifetime
-    {
-        public TestDatabase Database { get; }
-
-        public IHost Host { get; private set; }
-
-        public string WorkDir { get; private set; }
-
-        public TestApplication()
-        {
-            Database = new TestDatabase(false);
-        }
-
-        public async Task InitializeAsync()
-        {
-            await Database.InitializeAsync();
-
-            WorkDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
-            Directory.CreateDirectory(WorkDir);
-
-            Host = await Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
-                .ConfigureAppConfiguration((context, config) =>
-                {
-                    config.AddInMemoryCollection(new Dictionary<string, string>
-                    {
-                        [ApplicationConfiguration.UseMockFrontEndKey] = "true",
-                        ["WorkDir"] = WorkDir
-                    });
-                })
-                .ConfigureServices(services =>
-                {
-                    services.AddDbContext<DatabaseContext>(options =>
-                    {
-                        options.UseSqlite(Database.Connection);
-                    });
-                })
-                .ConfigureWebHost(webBuilder =>
-                {
-                    webBuilder
-                        .UseTestServer()
-                        .UseStartup<Startup>();
-                })
-                .StartAsync();
-        }
-
-        public async Task DisposeAsync()
-        {
-            await Host.StopAsync();
-            Host.Dispose();
-
-            Directory.Delete(WorkDir, true);
-
-            await Database.DisposeAsync();
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/TestClock.cs b/Timeline.Tests/Helpers/TestClock.cs
deleted file mode 100644
index 34adb245..00000000
--- a/Timeline.Tests/Helpers/TestClock.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Services;
-
-namespace Timeline.Tests.Helpers
-{
-    public class TestClock : IClock
-    {
-        private DateTime? _currentTime;
-
-        public DateTime GetCurrentTime()
-        {
-            return _currentTime ?? DateTime.UtcNow;
-        }
-
-        public void SetCurrentTime(DateTime? mockTime)
-        {
-            _currentTime = mockTime;
-        }
-
-        public DateTime SetMockCurrentTime()
-        {
-            var time = new DateTime(3000, 1, 1, 1, 1, 1, DateTimeKind.Utc);
-            _currentTime = time;
-            return time;
-        }
-
-        public DateTime ForwardCurrentTime()
-        {
-            return ForwardCurrentTime(TimeSpan.FromDays(1));
-        }
-
-        public DateTime ForwardCurrentTime(TimeSpan timeSpan)
-        {
-            if (_currentTime == null)
-                return SetMockCurrentTime();
-            _currentTime += timeSpan;
-            return _currentTime.Value;
-        }
-    }
-}
diff --git a/Timeline.Tests/Helpers/TestDatabase.cs b/Timeline.Tests/Helpers/TestDatabase.cs
deleted file mode 100644
index f0c26180..00000000
--- a/Timeline.Tests/Helpers/TestDatabase.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-﻿using Microsoft.Data.Sqlite;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Logging.Abstractions;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Migrations;
-using Timeline.Models;
-using Timeline.Services;
-using Xunit;
-
-namespace Timeline.Tests.Helpers
-{
-    public class TestDatabase : IAsyncLifetime
-    {
-        private readonly bool _createUser;
-
-        public TestDatabase(bool createUser = true)
-        {
-            _createUser = createUser;
-            Connection = new SqliteConnection("Data Source=:memory:;");
-        }
-
-        public async Task InitializeAsync()
-        {
-            await Connection.OpenAsync();
-
-            using (var context = CreateContext())
-            {
-                await context.Database.EnsureCreatedAsync();
-                context.JwtToken.Add(new JwtTokenEntity
-                {
-                    Key = JwtTokenGenerateHelper.GenerateKey()
-                });
-                await context.SaveChangesAsync();
-
-                if (_createUser)
-                {
-                    var passwordService = new PasswordService();
-                    var userService = new UserService(NullLogger<UserService>.Instance, context, passwordService, new Clock());
-
-                    await userService.CreateUser(new User
-                    {
-                        Username = "admin",
-                        Password = "adminpw",
-                        Administrator = true,
-                        Nickname = "administrator"
-                    });
-
-                    await userService.CreateUser(new User
-                    {
-                        Username = "user",
-                        Password = "userpw",
-                        Administrator = false,
-                        Nickname = "imuser"
-                    });
-                }
-            }
-        }
-
-        public async Task DisposeAsync()
-        {
-            await Connection.CloseAsync();
-            await Connection.DisposeAsync();
-        }
-
-        public SqliteConnection Connection { get; }
-
-        public DatabaseContext CreateContext()
-        {
-            var options = new DbContextOptionsBuilder<DatabaseContext>()
-                .UseSqlite(Connection).Options;
-
-            return new DatabaseContext(options);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/AuthorizationTest.cs b/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
deleted file mode 100644
index 38071394..00000000
--- a/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using FluentAssertions;
-using System.Net;
-using System.Threading.Tasks;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class AuthorizationTest : IntegratedTestBase
-    {
-        private const string BaseUrl = "testing/auth/";
-        private const string AuthorizeUrl = BaseUrl + "Authorize";
-        private const string UserUrl = BaseUrl + "User";
-        private const string AdminUrl = BaseUrl + "Admin";
-
-        [Fact]
-        public async Task UnauthenticationTest()
-        {
-            using var client = await CreateDefaultClient();
-            var response = await client.GetAsync(AuthorizeUrl);
-            response.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-        }
-
-        [Fact]
-        public async Task AuthenticationTest()
-        {
-            using var client = await CreateClientAsUser();
-            var response = await client.GetAsync(AuthorizeUrl);
-            response.Should().HaveStatusCode(HttpStatusCode.OK);
-        }
-
-        [Fact]
-        public async Task UserAuthorizationTest()
-        {
-            using var client = await CreateClientAsUser();
-            var response1 = await client.GetAsync(UserUrl);
-            response1.Should().HaveStatusCode(HttpStatusCode.OK);
-            var response2 = await client.GetAsync(AdminUrl);
-            response2.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        [Fact]
-        public async Task AdminAuthorizationTest()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var response1 = await client.GetAsync(UserUrl);
-            response1.Should().HaveStatusCode(HttpStatusCode.OK);
-            var response2 = await client.GetAsync(AdminUrl);
-            response2.Should().HaveStatusCode(HttpStatusCode.OK);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/FrontEndTest.cs b/Timeline.Tests/IntegratedTests/FrontEndTest.cs
deleted file mode 100644
index 39a6e545..00000000
--- a/Timeline.Tests/IntegratedTests/FrontEndTest.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-﻿using FluentAssertions;
-using System.Net.Mime;
-using System.Threading.Tasks;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class FrontEndTest : IntegratedTestBase
-    {
-        [Fact]
-        public async Task Index()
-        {
-            using var client = await CreateDefaultClient(false);
-            var res = await client.GetAsync("index.html");
-            res.Should().HaveStatusCode(200);
-            res.Content.Headers.ContentType.MediaType.Should().Be(MediaTypeNames.Text.Html);
-        }
-
-        [Fact]
-        public async Task Fallback()
-        {
-            using var client = await CreateDefaultClient(false);
-            var res = await client.GetAsync("aaaaaaaaaaaaaaa");
-            res.Should().HaveStatusCode(200);
-            res.Content.Headers.ContentType.MediaType.Should().Be(MediaTypeNames.Text.Html);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs b/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
deleted file mode 100644
index 7cf27297..00000000
--- a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
+++ /dev/null
@@ -1,164 +0,0 @@
-﻿using FluentAssertions;
-using Microsoft.AspNetCore.TestHost;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Net.Http;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using System.Threading.Tasks;
-using Timeline.Models;
-using Timeline.Models.Converters;
-using Timeline.Models.Http;
-using Timeline.Services;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public abstract class IntegratedTestBase : IAsyncLifetime
-    {
-        protected TestApplication TestApp { get; }
-
-        public IReadOnlyList<UserInfo> UserInfos { get; private set; }
-
-        private readonly int _userCount;
-
-        public IntegratedTestBase() : this(1)
-        {
-
-        }
-
-        public IntegratedTestBase(int userCount)
-        {
-            if (userCount < 0)
-                throw new ArgumentOutOfRangeException(nameof(userCount), userCount, "User count can't be negative.");
-
-            _userCount = userCount;
-
-            TestApp = new TestApplication();
-        }
-
-        protected virtual Task OnInitializeAsync()
-        {
-            return Task.CompletedTask;
-        }
-
-        protected virtual Task OnDisposeAsync()
-        {
-            return Task.CompletedTask;
-        }
-
-        protected virtual void OnDispose()
-        {
-
-        }
-
-        public async Task InitializeAsync()
-        {
-            await TestApp.InitializeAsync();
-
-            using (var scope = TestApp.Host.Services.CreateScope())
-            {
-                var users = new List<User>()
-                {
-                    new User
-                    {
-                        Username = "admin",
-                        Password = "adminpw",
-                        Administrator = true,
-                        Nickname = "administrator"
-                    }
-                };
-
-                for (int i = 1; i <= _userCount; i++)
-                {
-                    users.Add(new User
-                    {
-                        Username = $"user{i}",
-                        Password = $"user{i}pw",
-                        Administrator = false,
-                        Nickname = $"imuser{i}"
-                    });
-                }
-
-                var userInfoList = new List<UserInfo>();
-
-                var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
-                foreach (var user in users)
-                {
-                    await userService.CreateUser(user);
-                }
-
-                using var client = await CreateDefaultClient();
-                var options = new JsonSerializerOptions
-                {
-                    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
-                };
-                options.Converters.Add(new JsonStringEnumConverter());
-                options.Converters.Add(new JsonDateTimeConverter());
-                foreach (var user in users)
-                {
-                    var s = await client.GetStringAsync($"users/{user.Username}");
-                    userInfoList.Add(JsonSerializer.Deserialize<UserInfo>(s, options));
-                }
-
-                UserInfos = userInfoList;
-            }
-
-            await OnInitializeAsync();
-        }
-
-        public async Task DisposeAsync()
-        {
-            await OnDisposeAsync();
-            OnDispose();
-            await TestApp.DisposeAsync();
-        }
-
-        public Task<HttpClient> CreateDefaultClient(bool setApiBase = true)
-        {
-            var client = TestApp.Host.GetTestServer().CreateClient();
-            if (setApiBase)
-            {
-                client.BaseAddress = new Uri(client.BaseAddress, "api/");
-            }
-            return Task.FromResult(client);
-        }
-
-        public async Task<HttpClient> CreateClientWithCredential(string username, string password, bool setApiBase = true)
-        {
-            var client = TestApp.Host.GetTestServer().CreateClient();
-            if (setApiBase)
-            {
-                client.BaseAddress = new Uri(client.BaseAddress, "api/");
-            }
-            var response = await client.PostAsJsonAsync("token/create",
-                new CreateTokenRequest { Username = username, Password = password });
-            var token = response.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<CreateTokenResponse>().Which.Token;
-            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
-            return client;
-        }
-
-        public Task<HttpClient> CreateClientAs(int userNumber, bool setApiBase = true)
-        {
-            if (userNumber < 0)
-                return CreateDefaultClient(setApiBase);
-            if (userNumber == 0)
-                return CreateClientWithCredential("admin", "adminpw", setApiBase);
-            else
-                return CreateClientWithCredential($"user{userNumber}", $"user{userNumber}pw", setApiBase);
-        }
-
-        public Task<HttpClient> CreateClientAsAdministrator(bool setApiBase = true)
-        {
-            return CreateClientAs(0, setApiBase);
-        }
-
-        public Task<HttpClient> CreateClientAsUser(bool setApiBase = true)
-        {
-            return CreateClientAs(1, setApiBase);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/TimelineTest.cs b/Timeline.Tests/IntegratedTests/TimelineTest.cs
deleted file mode 100644
index ec46b96a..00000000
--- a/Timeline.Tests/IntegratedTests/TimelineTest.cs
+++ /dev/null
@@ -1,1523 +0,0 @@
-﻿using FluentAssertions;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.DependencyInjection;
-using SixLabors.ImageSharp;
-using SixLabors.ImageSharp.Formats.Png;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Text;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Models;
-using Timeline.Models.Http;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public static class TimelineHelper
-    {
-        public static TimelinePostContentInfo TextPostContent(string text)
-        {
-            return new TimelinePostContentInfo
-            {
-                Type = "text",
-                Text = text
-            };
-        }
-
-        public static TimelinePostCreateRequest TextPostCreateRequest(string text, DateTime? time = null)
-        {
-            return new TimelinePostCreateRequest
-            {
-                Content = new TimelinePostCreateRequestContent
-                {
-                    Type = "text",
-                    Text = text
-                },
-                Time = time
-            };
-        }
-    }
-
-    public class TimelineTest : IntegratedTestBase
-    {
-        public TimelineTest() : base(3)
-        {
-        }
-
-        protected override async Task OnInitializeAsync()
-        {
-            await CreateTestTimelines();
-        }
-
-        private List<TimelineInfo> _testTimelines;
-
-        private async Task CreateTestTimelines()
-        {
-            _testTimelines = new List<TimelineInfo>();
-            for (int i = 0; i <= 3; i++)
-            {
-                var client = await CreateClientAs(i);
-                var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = $"t{i}" });
-                var timelineInfo = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which;
-                _testTimelines.Add(timelineInfo);
-            }
-        }
-
-        private static string CalculateUrlTail(string subpath, ICollection<KeyValuePair<string, string>> query)
-        {
-            StringBuilder result = new StringBuilder();
-            if (subpath != null)
-            {
-                if (!subpath.StartsWith("/", StringComparison.OrdinalIgnoreCase))
-                    result.Append('/');
-                result.Append(subpath);
-            }
-
-            if (query != null && query.Count != 0)
-            {
-                result.Append('?');
-                foreach (var (key, value, index) in query.Select((pair, index) => (pair.Key, pair.Value, index)))
-                {
-                    result.Append(WebUtility.UrlEncode(key));
-                    result.Append('=');
-                    result.Append(WebUtility.UrlEncode(value));
-                    if (index != query.Count - 1)
-                        result.Append('&');
-                }
-            }
-
-            return result.ToString();
-        }
-
-        private static string GeneratePersonalTimelineUrl(int id, string subpath = null, ICollection<KeyValuePair<string, string>> query = null)
-        {
-            return $"timelines/@{(id == 0 ? "admin" : ("user" + id))}{CalculateUrlTail(subpath, query)}";
-        }
-
-        private static string GenerateOrdinaryTimelineUrl(int id, string subpath = null, ICollection<KeyValuePair<string, string>> query = null)
-        {
-            return $"timelines/t{id}{CalculateUrlTail(subpath, query)}";
-        }
-
-        public delegate string TimelineUrlGenerator(int userId, string subpath = null, ICollection<KeyValuePair<string, string>> query = null);
-
-        public static IEnumerable<object[]> TimelineUrlGeneratorData()
-        {
-            yield return new[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl) };
-            yield return new[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl) };
-        }
-
-        private static string GeneratePersonalTimelineUrlByName(string name, string subpath = null)
-        {
-            return $"timelines/@{name}{(subpath == null ? "" : "/" + subpath)}";
-        }
-
-        private static string GenerateOrdinaryTimelineUrlByName(string name, string subpath = null)
-        {
-            return $"timelines/{name}{(subpath == null ? "" : "/" + subpath)}";
-        }
-
-        public static IEnumerable<object[]> TimelineUrlByNameGeneratorData()
-        {
-            yield return new[] { new Func<string, string, string>(GeneratePersonalTimelineUrlByName) };
-            yield return new[] { new Func<string, string, string>(GenerateOrdinaryTimelineUrlByName) };
-        }
-
-        [Fact]
-        public async Task TimelineGet_Should_Work()
-        {
-            using var client = await CreateDefaultClient();
-            {
-                var res = await client.GetAsync("timelines/@user1");
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which;
-                body.Owner.Should().BeEquivalentTo(UserInfos[1]);
-                body.Visibility.Should().Be(TimelineVisibility.Register);
-                body.Description.Should().Be("");
-                body.Members.Should().NotBeNull().And.BeEmpty();
-                var links = body._links;
-                links.Should().NotBeNull();
-                links.Self.Should().EndWith("timelines/@user1");
-                links.Posts.Should().EndWith("timelines/@user1/posts");
-            }
-
-            {
-                var res = await client.GetAsync("timelines/t1");
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which;
-                body.Owner.Should().BeEquivalentTo(UserInfos[1]);
-                body.Visibility.Should().Be(TimelineVisibility.Register);
-                body.Description.Should().Be("");
-                body.Members.Should().NotBeNull().And.BeEmpty();
-                var links = body._links;
-                links.Should().NotBeNull();
-                links.Self.Should().EndWith("timelines/t1");
-                links.Posts.Should().EndWith("timelines/t1/posts");
-            }
-        }
-
-        [Fact]
-        public async Task TimelineList()
-        {
-            TimelineInfo user1Timeline;
-
-            var client = await CreateDefaultClient();
-
-            {
-                var res = await client.GetAsync("timelines/@user1");
-                user1Timeline = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which;
-            }
-
-            {
-                var testResult = new List<TimelineInfo>();
-                testResult.Add(user1Timeline);
-                testResult.AddRange(_testTimelines);
-
-                var res = await client.GetAsync("timelines");
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<List<TimelineInfo>>()
-                    .Which.Should().BeEquivalentTo(testResult);
-            }
-        }
-
-        [Fact]
-        public async Task TimelineList_WithQuery()
-        {
-            var testResultRelate = new List<TimelineInfo>();
-            var testResultOwn = new List<TimelineInfo>();
-            var testResultJoin = new List<TimelineInfo>();
-            var testResultOwnPrivate = new List<TimelineInfo>();
-            var testResultRelatePublic = new List<TimelineInfo>();
-            var testResultRelateRegister = new List<TimelineInfo>();
-            var testResultJoinPrivate = new List<TimelineInfo>();
-            var testResultPublic = new List<TimelineInfo>();
-
-            {
-                var client = await CreateClientAsUser();
-
-                {
-                    var res = await client.PutAsync("timelines/@user1/members/user3", null);
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PutAsync("timelines/t1/members/user3", null);
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/@user1", new TimelinePatchRequest { Visibility = TimelineVisibility.Public });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/t1", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/@user1");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultJoin.Add(timeline);
-                    testResultRelatePublic.Add(timeline);
-                    testResultPublic.Add(timeline);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/t1");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultJoin.Add(timeline);
-                    testResultRelateRegister.Add(timeline);
-                }
-            }
-
-            {
-                var client = await CreateClientAs(2);
-
-                {
-                    var res = await client.PutAsync("timelines/@user2/members/user3", null);
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PutAsync("timelines/t2/members/user3", null);
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/@user2", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/t2", new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/@user2");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultJoin.Add(timeline);
-                    testResultRelateRegister.Add(timeline);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/t2");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultJoin.Add(timeline);
-                    testResultJoinPrivate.Add(timeline);
-                }
-            }
-
-            {
-                var client = await CreateClientAs(3);
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/@user3", new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.PatchAsJsonAsync("timelines/t3", new TimelinePatchRequest { Visibility = TimelineVisibility.Register });
-                    res.Should().HaveStatusCode(200);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/@user3");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultOwn.Add(timeline);
-                    testResultOwnPrivate.Add(timeline);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/t3");
-                    var timeline = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                    testResultRelate.Add(timeline);
-                    testResultOwn.Add(timeline);
-                    testResultRelateRegister.Add(timeline);
-                }
-            }
-
-            {
-                var client = await CreateClientAs(3);
-                {
-                    var res = await client.GetAsync("timelines?relate=user3");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultRelate);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines?relate=user3&relateType=own");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultOwn);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines?relate=user3&visibility=public");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultRelatePublic);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines?relate=user3&visibility=register");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultRelateRegister);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines?relate=user3&relateType=join&visibility=private");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultJoinPrivate);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines?relate=user3&relateType=own&visibility=private");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultOwnPrivate);
-                }
-            }
-
-            {
-                var client = await CreateDefaultClient();
-                {
-                    var res = await client.GetAsync("timelines?visibility=public");
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<List<TimelineInfo>>()
-                        .Which;
-                    body.Should().BeEquivalentTo(testResultPublic);
-                }
-            }
-        }
-
-        [Fact]
-        public async Task TimelineList_InvalidModel()
-        {
-            var client = await CreateClientAsUser();
-
-            {
-                var res = await client.GetAsync("timelines?relate=us!!");
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.GetAsync("timelines?relateType=aaa");
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.GetAsync("timelines?visibility=aaa");
-                res.Should().BeInvalidModel();
-            }
-        }
-
-        [Fact]
-        public async Task TimelineCreate_Should_Work()
-        {
-            {
-                using var client = await CreateDefaultClient();
-                var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
-                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-            }
-
-            using (var client = await CreateClientAsUser())
-            {
-                {
-                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "!!!" });
-                    res.Should().BeInvalidModel();
-                }
-
-                TimelineInfo timelineInfo;
-                {
-                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
-                    timelineInfo = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>().Which;
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/aaa");
-                    res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelineInfo>()
-                        .Which.Should().BeEquivalentTo(timelineInfo);
-                }
-
-                {
-                    var res = await client.PostAsJsonAsync("timelines", new TimelineCreateRequest { Name = "aaa" });
-                    res.Should().HaveStatusCode(400)
-                        .And.HaveCommonBody(ErrorCodes.TimelineController.NameConflict);
-                }
-            }
-        }
-
-        [Fact]
-        public async Task TimelineDelete_Should_Work()
-        {
-            {
-                using var client = await CreateDefaultClient();
-                var res = await client.DeleteAsync("timelines/t1");
-                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-            }
-
-            {
-                using var client = await CreateClientAs(2);
-                var res = await client.DeleteAsync("timelines/t1");
-                res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-            }
-
-            {
-                using var client = await CreateClientAsAdministrator();
-
-                {
-                    var res = await client.DeleteAsync("timelines/!!!");
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.DeleteAsync("timelines/t2");
-                    res.Should().BeDelete(true);
-                }
-
-                {
-                    var res = await client.DeleteAsync("timelines/t2");
-                    res.Should().BeDelete(false);
-                }
-            }
-
-            {
-                using var client = await CreateClientAs(1);
-
-                {
-                    var res = await client.DeleteAsync("timelines/!!!");
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.DeleteAsync("timelines/t1");
-                    res.Should().BeDelete(true);
-                }
-
-                {
-                    var res = await client.DeleteAsync("timelines/t1");
-                    res.Should().HaveStatusCode(400);
-                }
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlByNameGeneratorData))]
-        public async Task InvalidModel_BadName(Func<string, string, string> generator)
-        {
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.GetAsync(generator("aaa!!!", null));
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.PatchAsJsonAsync(generator("aaa!!!", null), new TimelinePatchRequest { });
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.PutAsync(generator("aaa!!!", "members/user1"), null);
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.DeleteAsync(generator("aaa!!!", "members/user1"));
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.GetAsync(generator("aaa!!!", "posts"));
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.PostAsJsonAsync(generator("aaa!!!", "posts"), TimelineHelper.TextPostCreateRequest("aaa"));
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.DeleteAsync(generator("aaa!!!", "posts/123"));
-                res.Should().BeInvalidModel();
-            }
-            {
-                var res = await client.GetAsync(generator("aaa!!!", "posts/123/data"));
-                res.Should().BeInvalidModel();
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlByNameGeneratorData))]
-        public async Task Ordinary_NotFound(Func<string, string, string> generator)
-        {
-            var errorCode = generator == GenerateOrdinaryTimelineUrlByName ? ErrorCodes.TimelineController.NotExist : ErrorCodes.UserCommon.NotExist;
-
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.GetAsync(generator("notexist", null));
-                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.PatchAsJsonAsync(generator("notexist", null), new TimelinePatchRequest { });
-                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.PutAsync(generator("notexist", "members/user1"), null);
-                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.DeleteAsync(generator("notexist", "members/user1"));
-                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.GetAsync(generator("notexist", "posts"));
-                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.PostAsJsonAsync(generator("notexist", "posts"), TimelineHelper.TextPostCreateRequest("aaa"));
-                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.DeleteAsync(generator("notexist", "posts/123"));
-                res.Should().HaveStatusCode(400).And.HaveCommonBody(errorCode);
-            }
-            {
-                var res = await client.GetAsync(generator("notexist", "posts/123/data"));
-                res.Should().HaveStatusCode(404).And.HaveCommonBody(errorCode);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Description_Should_Work(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            async Task AssertDescription(string description)
-            {
-                var res = await client.GetAsync(generator(1, null));
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Description.Should().Be(description);
-            }
-
-            const string mockDescription = "haha";
-
-            await AssertDescription("");
-            {
-                var res = await client.PatchAsJsonAsync(generator(1, null),
-                    new TimelinePatchRequest { Description = mockDescription });
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be(mockDescription);
-                await AssertDescription(mockDescription);
-            }
-            {
-                var res = await client.PatchAsJsonAsync(generator(1, null),
-                    new TimelinePatchRequest { Description = null });
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be(mockDescription);
-                await AssertDescription(mockDescription);
-            }
-            {
-                var res = await client.PatchAsJsonAsync(generator(1, null),
-                    new TimelinePatchRequest { Description = "" });
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which.Description.Should().Be("");
-                await AssertDescription("");
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Member_Should_Work(TimelineUrlGenerator generator)
-        {
-            var getUrl = generator(1, null);
-            using var client = await CreateClientAsUser();
-
-            async Task AssertMembers(IList<UserInfo> members)
-            {
-                var res = await client.GetAsync(getUrl);
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Members.Should().NotBeNull().And.BeEquivalentTo(members);
-            }
-
-            async Task AssertEmptyMembers()
-            {
-                var res = await client.GetAsync(getUrl);
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Members.Should().NotBeNull().And.BeEmpty();
-            }
-
-            await AssertEmptyMembers();
-            {
-                var res = await client.PutAsync(generator(1, "members/usernotexist"), null);
-                res.Should().HaveStatusCode(400)
-                    .And.HaveCommonBody(ErrorCodes.TimelineController.MemberPut_NotExist);
-            }
-            await AssertEmptyMembers();
-            {
-                var res = await client.PutAsync(generator(1, "members/user2"), null);
-                res.Should().HaveStatusCode(200);
-            }
-            await AssertMembers(new List<UserInfo> { UserInfos[2] });
-            {
-                var res = await client.DeleteAsync(generator(1, "members/user2"));
-                res.Should().BeDelete(true);
-            }
-            await AssertEmptyMembers();
-            {
-                var res = await client.DeleteAsync(generator(1, "members/aaa"));
-                res.Should().BeDelete(false);
-            }
-            await AssertEmptyMembers();
-        }
-
-        public static IEnumerable<object[]> Permission_Timeline_Data()
-        {
-            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), -1, 200, 401, 401, 401, 401 };
-            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), 1, 200, 200, 403, 200, 403 };
-            yield return new object[] { new TimelineUrlGenerator(GenerateOrdinaryTimelineUrl), 0, 200, 200, 200, 200, 200 };
-            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), -1, 200, 401, 401, 401, 401 };
-            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), 1, 200, 200, 403, 200, 403 };
-            yield return new object[] { new TimelineUrlGenerator(GeneratePersonalTimelineUrl), 0, 200, 200, 200, 200, 200 };
-        }
-
-        [Theory]
-        [MemberData(nameof(Permission_Timeline_Data))]
-        public async Task Permission_Timeline(TimelineUrlGenerator generator, int userNumber, int get, int opPatchUser, int opPatchAdmin, int opMemberUser, int opMemberAdmin)
-        {
-            using var client = await CreateClientAs(userNumber);
-            {
-                var res = await client.GetAsync("timelines/t1");
-                res.Should().HaveStatusCode(get);
-            }
-
-            {
-                var res = await client.PatchAsJsonAsync(generator(1, null), new TimelinePatchRequest { Description = "hahaha" });
-                res.Should().HaveStatusCode(opPatchUser);
-            }
-
-            {
-                var res = await client.PatchAsJsonAsync(generator(0, null), new TimelinePatchRequest { Description = "hahaha" });
-                res.Should().HaveStatusCode(opPatchAdmin);
-            }
-
-            {
-                var res = await client.PutAsync(generator(1, "members/user2"), null);
-                res.Should().HaveStatusCode(opMemberUser);
-            }
-
-            {
-                var res = await client.DeleteAsync(generator(1, "members/user2"));
-                res.Should().HaveStatusCode(opMemberUser);
-            }
-
-            {
-                var res = await client.PutAsync(generator(0, "members/user2"), null);
-                res.Should().HaveStatusCode(opMemberAdmin);
-            }
-
-            {
-                var res = await client.DeleteAsync(generator(0, "members/user2"));
-                res.Should().HaveStatusCode(opMemberAdmin);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Visibility_Test(TimelineUrlGenerator generator)
-        {
-            var userUrl = generator(1, "posts");
-            var adminUrl = generator(0, "posts");
-            {
-
-                using var client = await CreateClientAsUser();
-                using var content = new StringContent(@"{""visibility"":""abcdefg""}", System.Text.Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json);
-                var res = await client.PatchAsync(generator(1, null), content);
-                res.Should().BeInvalidModel();
-            }
-            { // default visibility is registered
-                {
-                    using var client = await CreateDefaultClient();
-                    var res = await client.GetAsync(userUrl);
-                    res.Should().HaveStatusCode(403);
-                }
-
-                {
-                    using var client = await CreateClientAsUser();
-                    var res = await client.GetAsync(adminUrl);
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-
-            { // change visibility to public
-                {
-                    using var client = await CreateClientAsUser();
-                    var res = await client.PatchAsJsonAsync(generator(1, null),
-                        new TimelinePatchRequest { Visibility = TimelineVisibility.Public });
-                    res.Should().HaveStatusCode(200);
-                }
-                {
-                    using var client = await CreateDefaultClient();
-                    var res = await client.GetAsync(userUrl);
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-
-            { // change visibility to private
-                {
-                    using var client = await CreateClientAsAdministrator();
-                    {
-                        var res = await client.PatchAsJsonAsync(generator(1, null),
-                        new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
-                        res.Should().HaveStatusCode(200);
-                    }
-                    {
-                        var res = await client.PatchAsJsonAsync(generator(0, null),
-                            new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
-                        res.Should().HaveStatusCode(200);
-                    }
-                }
-                {
-                    using var client = await CreateDefaultClient();
-                    var res = await client.GetAsync(userUrl);
-                    res.Should().HaveStatusCode(403);
-                }
-                { // user can't read admin's
-                    using var client = await CreateClientAsUser();
-                    var res = await client.GetAsync(adminUrl);
-                    res.Should().HaveStatusCode(403);
-                }
-                { // admin can read user's
-                    using var client = await CreateClientAsAdministrator();
-                    var res = await client.GetAsync(userUrl);
-                    res.Should().HaveStatusCode(200);
-                }
-                { // add member
-                    using var client = await CreateClientAsAdministrator();
-                    var res = await client.PutAsync(generator(0, "members/user1"), null);
-                    res.Should().HaveStatusCode(200);
-                }
-                { // now user can read admin's
-                    using var client = await CreateClientAsUser();
-                    var res = await client.GetAsync(adminUrl);
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Permission_Post_Create(TimelineUrlGenerator generator)
-        {
-            using (var client = await CreateClientAsUser())
-            {
-                var res = await client.PutAsync(generator(1, "members/user2"), null);
-                res.Should().HaveStatusCode(200);
-            }
-
-            using (var client = await CreateDefaultClient())
-            {
-                { // no auth should get 401
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest("aaa"));
-                    res.Should().HaveStatusCode(401);
-                }
-            }
-
-            using (var client = await CreateClientAsUser())
-            {
-                { // post self's
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest("aaa"));
-                    res.Should().HaveStatusCode(200);
-                }
-                { // post other not as a member should get 403
-                    var res = await client.PostAsJsonAsync(generator(0, "posts"),
-                        TimelineHelper.TextPostCreateRequest("aaa"));
-                    res.Should().HaveStatusCode(403);
-                }
-            }
-
-            using (var client = await CreateClientAsAdministrator())
-            {
-                { // post as admin
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest("aaa"));
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-
-            using (var client = await CreateClientAs(2))
-            {
-                { // post as member
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest("aaa"));
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Permission_Post_Delete(TimelineUrlGenerator generator)
-        {
-            async Task<long> CreatePost(int userNumber)
-            {
-                using var client = await CreateClientAs(userNumber);
-                var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                    TimelineHelper.TextPostCreateRequest("aaa"));
-                return res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>()
-                    .Which.Id;
-            }
-
-            using (var client = await CreateClientAsUser())
-            {
-                {
-                    var res = await client.PutAsync(generator(1, "members/user2"), null);
-                    res.Should().HaveStatusCode(200);
-                }
-                {
-                    var res = await client.PutAsync(generator(1, "members/user3"), null);
-                    res.Should().HaveStatusCode(200);
-                }
-            }
-
-            { // no auth should get 401
-                using var client = await CreateDefaultClient();
-                var res = await client.DeleteAsync(generator(1, "posts/12"));
-                res.Should().HaveStatusCode(401);
-            }
-
-            { // self can delete self
-                var postId = await CreatePost(1);
-                using var client = await CreateClientAsUser();
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().HaveStatusCode(200);
-            }
-
-            { // admin can delete any
-                var postId = await CreatePost(1);
-                using var client = await CreateClientAsAdministrator();
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().HaveStatusCode(200);
-            }
-
-            { // owner can delete other
-                var postId = await CreatePost(2);
-                using var client = await CreateClientAsUser();
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().HaveStatusCode(200);
-            }
-
-            { // author can delete self
-                var postId = await CreatePost(2);
-                using var client = await CreateClientAs(2);
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().HaveStatusCode(200);
-            }
-
-            { // otherwise is forbidden
-                var postId = await CreatePost(2);
-                using var client = await CreateClientAs(3);
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().HaveStatusCode(403);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task TextPost_ShouldWork(TimelineUrlGenerator generator)
-        {
-            {
-                using var client = await CreateClientAsUser();
-                {
-                    var res = await client.GetAsync(generator(1, "posts"));
-                    res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo[]>()
-                        .Which.Should().NotBeNull().And.BeEmpty();
-                }
-                {
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest(null));
-                    res.Should().BeInvalidModel();
-                }
-                const string mockContent = "aaa";
-                TimelinePostInfo createRes;
-                {
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest(mockContent));
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo>()
-                        .Which;
-                    body.Should().NotBeNull();
-                    body.Content.Should().BeEquivalentTo(TimelineHelper.TextPostContent(mockContent));
-                    body.Author.Should().BeEquivalentTo(UserInfos[1]);
-                    body.Deleted.Should().BeFalse();
-                    createRes = body;
-                }
-                {
-                    var res = await client.GetAsync(generator(1, "posts"));
-                    res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo[]>()
-                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes);
-                }
-                const string mockContent2 = "bbb";
-                var mockTime2 = DateTime.UtcNow.AddDays(-1);
-                TimelinePostInfo createRes2;
-                {
-                    var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                        TimelineHelper.TextPostCreateRequest(mockContent2, mockTime2));
-                    var body = res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo>()
-                        .Which;
-                    body.Should().NotBeNull();
-                    body.Content.Should().BeEquivalentTo(TimelineHelper.TextPostContent(mockContent2));
-                    body.Author.Should().BeEquivalentTo(UserInfos[1]);
-                    body.Time.Should().BeCloseTo(mockTime2, 1000);
-                    body.Deleted.Should().BeFalse();
-                    createRes2 = body;
-                }
-                {
-                    var res = await client.GetAsync(generator(1, "posts"));
-                    res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo[]>()
-                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes, createRes2);
-                }
-                {
-                    var res = await client.DeleteAsync(generator(1, $"posts/{createRes.Id}"));
-                    res.Should().BeDelete(true);
-                }
-                {
-                    var res = await client.DeleteAsync(generator(1, $"posts/{createRes.Id}"));
-                    res.Should().BeDelete(false);
-                }
-                {
-                    var res = await client.DeleteAsync(generator(1, "posts/30000"));
-                    res.Should().BeDelete(false);
-                }
-                {
-                    var res = await client.GetAsync(generator(1, "posts"));
-                    res.Should().HaveStatusCode(200)
-                        .And.HaveJsonBody<TimelinePostInfo[]>()
-                        .Which.Should().NotBeNull().And.BeEquivalentTo(createRes2);
-                }
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task GetPost_Should_Ordered(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            async Task<long> CreatePost(DateTime time)
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                    TimelineHelper.TextPostCreateRequest("aaa", time));
-                return res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>()
-                    .Which.Id;
-            }
-
-            var now = DateTime.UtcNow;
-            var id0 = await CreatePost(now.AddDays(1));
-            var id1 = await CreatePost(now.AddDays(-1));
-            var id2 = await CreatePost(now);
-
-            {
-                var res = await client.GetAsync(generator(1, "posts"));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo[]>()
-                    .Which.Select(p => p.Id).Should().Equal(id1, id2, id0);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task CreatePost_InvalidModel(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = null });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = null } });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "hahaha" } });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "text", Text = null } });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = null } });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                // image not base64
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = "!!!" } });
-                res.Should().BeInvalidModel();
-            }
-
-            {
-                // image base64 not image
-                var res = await client.PostAsJsonAsync(generator(1, "posts"), new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Type = "image", Data = Convert.ToBase64String(new byte[] { 0x01, 0x02, 0x03 }) } });
-                res.Should().BeInvalidModel();
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task ImagePost_ShouldWork(TimelineUrlGenerator generator)
-        {
-            var imageData = ImageHelper.CreatePngWithSize(100, 200);
-
-            long postId;
-            string postImageUrl;
-
-            void AssertPostContent(TimelinePostContentInfo content)
-            {
-                content.Type.Should().Be(TimelinePostContentTypes.Image);
-                content.Url.Should().EndWith(generator(1, $"posts/{postId}/data"));
-                content.Text.Should().Be(null);
-            }
-
-            using var client = await CreateClientAsUser();
-
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                    new TimelinePostCreateRequest
-                    {
-                        Content = new TimelinePostCreateRequestContent
-                        {
-                            Type = TimelinePostContentTypes.Image,
-                            Data = Convert.ToBase64String(imageData)
-                        }
-                    });
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>().Which;
-                postId = body.Id;
-                postImageUrl = body.Content.Url;
-                AssertPostContent(body.Content);
-            }
-
-            {
-                var res = await client.GetAsync(generator(1, "posts"));
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo[]>().Which;
-                body.Should().HaveCount(1);
-                var post = body[0];
-                post.Id.Should().Be(postId);
-                AssertPostContent(post.Content);
-            }
-
-            {
-                var res = await client.GetAsync(generator(1, $"posts/{postId}/data"));
-                res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
-                var data = await res.Content.ReadAsByteArrayAsync();
-                var image = Image.Load(data, out var format);
-                image.Width.Should().Be(100);
-                image.Height.Should().Be(200);
-                format.Name.Should().Be(PngFormat.Instance.Name);
-            }
-
-            {
-                await CacheTestHelper.TestCache(client, generator(1, $"posts/{postId}/data"));
-            }
-
-            {
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().BeDelete(true);
-            }
-
-            {
-                var res = await client.DeleteAsync(generator(1, $"posts/{postId}"));
-                res.Should().BeDelete(false);
-            }
-
-            {
-                var res = await client.GetAsync(generator(1, "posts"));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo[]>()
-                    .Which.Should().BeEmpty();
-            }
-
-            {
-                using var scope = TestApp.Host.Services.CreateScope();
-                var database = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
-                var count = await database.Data.CountAsync();
-                count.Should().Be(0);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task ImagePost_400(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            {
-                var res = await client.GetAsync(generator(1, "posts/11234/data"));
-                res.Should().HaveStatusCode(404)
-                    .And.HaveCommonBody(ErrorCodes.TimelineController.PostNotExist);
-            }
-
-            long postId;
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                    TimelineHelper.TextPostCreateRequest("aaa"));
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>()
-                    .Which;
-                postId = body.Id;
-            }
-
-            {
-                var res = await client.GetAsync(generator(1, $"posts/{postId}/data"));
-                res.Should().HaveStatusCode(400)
-                    .And.HaveCommonBody(ErrorCodes.TimelineController.PostNoData);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Timeline_LastModified(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            DateTime lastModified;
-
-            {
-                var res = await client.GetAsync(generator(1));
-                lastModified = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.LastModified;
-            }
-
-            await Task.Delay(1000);
-
-            {
-                var res = await client.PatchAsJsonAsync(generator(1), new TimelinePatchRequest { Description = "123" });
-                lastModified = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.LastModified.Should().BeAfter(lastModified).And.Subject.Value;
-            }
-
-            {
-                var res = await client.GetAsync(generator(1));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.LastModified.Should().Be(lastModified);
-            }
-
-            await Task.Delay(1000);
-
-            {
-                var res = await client.PutAsync(generator(1, "members/user2"), null);
-                res.Should().HaveStatusCode(200);
-            }
-
-            {
-                var res = await client.GetAsync(generator(1));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.LastModified.Should().BeAfter(lastModified);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Post_ModifiedSince(TimelineUrlGenerator generator)
-        {
-            using var client = await CreateClientAsUser();
-
-            var postContentList = new List<string> { "a", "b", "c", "d" };
-            var posts = new List<TimelinePostInfo>();
-
-            foreach (var content in postContentList)
-            {
-                var res = await client.PostAsJsonAsync(generator(1, "posts"),
-                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
-                var post = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>().Which;
-                posts.Add(post);
-                await Task.Delay(1000);
-            }
-
-            {
-                var res = await client.DeleteAsync(generator(1, $"posts/{posts[2].Id}"));
-                res.Should().BeDelete(true);
-            }
-
-            {
-                var res = await client.GetAsync(generator(1, "posts",
-                    new Dictionary<string, string> { { "modifiedSince", posts[1].LastUpdated.ToString("s", CultureInfo.InvariantCulture) } }));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<List<TimelinePostInfo>>()
-                    .Which.Should().HaveCount(2)
-                    .And.Subject.Select(p => p.Content.Text).Should().Equal("b", "d");
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task PostList_IncludeDeleted(TimelineUrlGenerator urlGenerator)
-        {
-            using var client = await CreateClientAsUser();
-
-            var postContentList = new List<string> { "a", "b", "c", "d" };
-            var posts = new List<TimelinePostInfo>();
-
-            foreach (var content in postContentList)
-            {
-                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"),
-                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
-                posts.Add(res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>().Which);
-            }
-
-            foreach (var id in new long[] { posts[0].Id, posts[2].Id })
-            {
-                var res = await client.DeleteAsync(urlGenerator(1, $"posts/{id}"));
-                res.Should().BeDelete(true);
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1, "posts", new Dictionary<string, string> { ["includeDeleted"] = "true" }));
-                posts = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<List<TimelinePostInfo>>()
-                    .Which;
-                posts.Should().HaveCount(4);
-                posts.Select(p => p.Deleted).Should().Equal(true, false, true, false);
-                posts.Select(p => p.Content == null).Should().Equal(true, false, true, false);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Post_ModifiedSince_And_IncludeDeleted(TimelineUrlGenerator urlGenerator)
-        {
-            using var client = await CreateClientAsUser();
-
-            var postContentList = new List<string> { "a", "b", "c", "d" };
-            var posts = new List<TimelinePostInfo>();
-
-            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
-            {
-                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"),
-                    new TimelinePostCreateRequest { Content = new TimelinePostCreateRequestContent { Text = content, Type = TimelinePostContentTypes.Text } });
-                var post = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelinePostInfo>().Which;
-                posts.Add(post);
-                await Task.Delay(1000);
-            }
-
-            {
-                var res = await client.DeleteAsync(urlGenerator(1, $"posts/{posts[2].Id}"));
-                res.Should().BeDelete(true);
-            }
-
-            {
-
-                var res = await client.GetAsync(urlGenerator(1, "posts",
-                    new Dictionary<string, string> {
-                        { "modifiedSince", posts[1].LastUpdated.ToString("s", CultureInfo.InvariantCulture) },
-                        { "includeDeleted", "true" }
-                    }));
-                posts = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<List<TimelinePostInfo>>()
-                    .Which;
-                posts.Should().HaveCount(3);
-                posts.Select(p => p.Deleted).Should().Equal(false, true, false);
-                posts.Select(p => p.Content == null).Should().Equal(false, true, false);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Timeline_Get_IfModifiedSince_And_CheckUniqueId(TimelineUrlGenerator urlGenerator)
-        {
-            using var client = await CreateClientAsUser();
-
-            DateTime lastModifiedTime;
-            TimelineInfo timeline;
-            string uniqueId;
-
-            {
-                var res = await client.GetAsync(urlGenerator(1));
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>().Which;
-                timeline = body;
-                lastModifiedTime = body.LastModified;
-                uniqueId = body.UniqueId;
-            }
-
-            {
-                using var req = new HttpRequestMessage
-                {
-                    RequestUri = new Uri(client.BaseAddress, urlGenerator(1)),
-                    Method = HttpMethod.Get,
-                };
-                req.Headers.IfModifiedSince = lastModifiedTime.AddSeconds(1);
-                var res = await client.SendAsync(req);
-                res.Should().HaveStatusCode(304);
-            }
-
-            {
-                using var req = new HttpRequestMessage
-                {
-                    RequestUri = new Uri(client.BaseAddress, urlGenerator(1)),
-                    Method = HttpMethod.Get,
-                };
-                req.Headers.IfModifiedSince = lastModifiedTime.AddSeconds(-1);
-                var res = await client.SendAsync(req);
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Should().BeEquivalentTo(timeline);
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1, null,
-                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) } }));
-                res.Should().HaveStatusCode(304);
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1, null,
-                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(-1).ToString("s", CultureInfo.InvariantCulture) } }));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Should().BeEquivalentTo(timeline);
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1, null,
-                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) },
-                        {"checkUniqueId", uniqueId } }));
-                res.Should().HaveStatusCode(304);
-            }
-
-            {
-                var testUniqueId = (uniqueId[0] == 'a' ? "b" : "a") + uniqueId[1..];
-                var res = await client.GetAsync(urlGenerator(1, null,
-                    new Dictionary<string, string> { { "ifModifiedSince", lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) },
-                        {"checkUniqueId", testUniqueId } }));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Should().BeEquivalentTo(timeline);
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task Title(TimelineUrlGenerator urlGenerator)
-        {
-            using var client = await CreateClientAsUser();
-
-            {
-                var res = await client.GetAsync(urlGenerator(1));
-                var timeline = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which;
-                timeline.Title.Should().Be(timeline.Name);
-            }
-
-            {
-                var res = await client.PatchAsJsonAsync(urlGenerator(1), new TimelinePatchRequest { Title = "atitle" });
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Title.Should().Be("atitle");
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1));
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<TimelineInfo>()
-                    .Which.Title.Should().Be("atitle");
-            }
-        }
-
-        [Fact]
-        public async Task ChangeName()
-        {
-            {
-                using var client = await CreateDefaultClient();
-                var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "tttttttt" });
-                res.Should().HaveStatusCode(401);
-            }
-
-            {
-                using var client = await CreateClientAs(2);
-                var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "tttttttt" });
-                res.Should().HaveStatusCode(403);
-            }
-
-            using (var client = await CreateClientAsUser())
-            {
-                {
-                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "!!!", NewName = "tttttttt" });
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttt", NewName = "!!!!" });
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttttt", NewName = "tttttttt" });
-                    res.Should().HaveStatusCode(400).And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.TimelineController.NotExist);
-                }
-
-                {
-                    var res = await client.PostAsJsonAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "newt" });
-                    res.Should().HaveStatusCode(200).And.HaveJsonBody<TimelineInfo>().Which.Name.Should().Be("newt");
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/t1");
-                    res.Should().HaveStatusCode(404);
-                }
-
-                {
-                    var res = await client.GetAsync("timelines/newt");
-                    res.Should().HaveStatusCode(200).And.HaveJsonBody<TimelineInfo>().Which.Name.Should().Be("newt");
-                }
-            }
-        }
-
-        [Theory]
-        [MemberData(nameof(TimelineUrlGeneratorData))]
-        public async Task PostDataETag(TimelineUrlGenerator urlGenerator)
-        {
-            using var client = await CreateClientAsUser();
-
-            long id;
-            string etag;
-
-            {
-                var res = await client.PostAsJsonAsync(urlGenerator(1, "posts"), new TimelinePostCreateRequest
-                {
-                    Content = new TimelinePostCreateRequestContent
-                    {
-                        Type = TimelinePostContentTypes.Image,
-                        Data = Convert.ToBase64String(ImageHelper.CreatePngWithSize(100, 50))
-                    }
-                });
-                res.Should().HaveStatusCode(200);
-                var body = await res.ReadBodyAsJsonAsync<TimelinePostInfo>();
-                body.Content.ETag.Should().NotBeNullOrEmpty();
-
-                id = body.Id;
-                etag = body.Content.ETag;
-            }
-
-            {
-                var res = await client.GetAsync(urlGenerator(1, $"posts/{id}/data"));
-                res.Should().HaveStatusCode(200);
-                res.Headers.ETag.Should().NotBeNull();
-                res.Headers.ETag.ToString().Should().Be(etag);
-            }
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/TokenTest.cs b/Timeline.Tests/IntegratedTests/TokenTest.cs
deleted file mode 100644
index 480d66cd..00000000
--- a/Timeline.Tests/IntegratedTests/TokenTest.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-using FluentAssertions;
-using Microsoft.Extensions.DependencyInjection;
-using System.Collections.Generic;
-using System.Net.Http;
-using System.Threading.Tasks;
-using Timeline.Models;
-using Timeline.Models.Http;
-using Timeline.Services;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class TokenTest : IntegratedTestBase
-    {
-        private const string CreateTokenUrl = "token/create";
-        private const string VerifyTokenUrl = "token/verify";
-
-        private static async Task<CreateTokenResponse> CreateUserTokenAsync(HttpClient client, string username, string password, int? expireOffset = null)
-        {
-            var response = await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest { Username = username, Password = password, Expire = expireOffset });
-            return response.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<CreateTokenResponse>().Which;
-        }
-
-        public static IEnumerable<object[]> CreateToken_InvalidModel_Data()
-        {
-            yield return new[] { null, "p", null };
-            yield return new[] { "u", null, null };
-            yield return new object[] { "u", "p", 2000 };
-            yield return new object[] { "u", "p", -1 };
-        }
-
-        [Theory]
-        [MemberData(nameof(CreateToken_InvalidModel_Data))]
-        public async Task CreateToken_InvalidModel(string username, string password, int expire)
-        {
-            using var client = await CreateDefaultClient();
-            (await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest
-            {
-                Username = username,
-                Password = password,
-                Expire = expire
-            })).Should().BeInvalidModel();
-        }
-
-        public static IEnumerable<object[]> CreateToken_UserCredential_Data()
-        {
-            yield return new[] { "usernotexist", "p" };
-            yield return new[] { "user1", "???" };
-        }
-
-        [Theory]
-        [MemberData(nameof(CreateToken_UserCredential_Data))]
-        public async void CreateToken_UserCredential(string username, string password)
-        {
-            using var client = await CreateDefaultClient();
-            var response = await client.PostAsJsonAsync(CreateTokenUrl,
-                new CreateTokenRequest { Username = username, Password = password });
-            response.Should().HaveStatusCode(400)
-                .And.HaveCommonBody()
-                .Which.Code.Should().Be(ErrorCodes.TokenController.Create_BadCredential);
-        }
-
-        [Fact]
-        public async Task CreateToken_Success()
-        {
-            using var client = await CreateDefaultClient();
-            var response = await client.PostAsJsonAsync(CreateTokenUrl,
-                new CreateTokenRequest { Username = "user1", Password = "user1pw" });
-            var body = response.Should().HaveStatusCode(200)
-               .And.HaveJsonBody<CreateTokenResponse>().Which;
-            body.Token.Should().NotBeNullOrWhiteSpace();
-            body.User.Should().BeEquivalentTo(UserInfos[1]);
-        }
-
-        [Fact]
-        public async Task VerifyToken_InvalidModel()
-        {
-            using var client = await CreateDefaultClient();
-            (await client.PostAsJsonAsync(VerifyTokenUrl,
-                new VerifyTokenRequest { Token = null })).Should().BeInvalidModel();
-        }
-
-        [Fact]
-        public async Task VerifyToken_BadFormat()
-        {
-            using var client = await CreateDefaultClient();
-            var response = await client.PostAsJsonAsync(VerifyTokenUrl,
-                new VerifyTokenRequest { Token = "bad token hahaha" });
-            response.Should().HaveStatusCode(400)
-                 .And.HaveCommonBody()
-                 .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_BadFormat);
-        }
-
-        [Fact]
-        public async Task VerifyToken_OldVersion()
-        {
-            using var client = await CreateDefaultClient();
-            var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
-
-            using (var scope = TestApp.Host.Services.CreateScope()) // UserService is scoped.
-            {
-                // create a user for test
-                var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
-                await userService.ModifyUser("user1", new User { Password = "user1pw" });
-            }
-
-            (await client.PostAsJsonAsync(VerifyTokenUrl,
-                new VerifyTokenRequest { Token = token }))
-                .Should().HaveStatusCode(400)
-                .And.HaveCommonBody()
-                .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_OldVersion);
-        }
-
-        [Fact]
-        public async Task VerifyToken_UserNotExist()
-        {
-            using var client = await CreateDefaultClient();
-            var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
-
-            using (var scope = TestApp.Host.Services.CreateScope()) // UserDeleteService is scoped.
-            {
-                var userService = scope.ServiceProvider.GetRequiredService<IUserDeleteService>();
-                await userService.DeleteUser("user1");
-            }
-
-            (await client.PostAsJsonAsync(VerifyTokenUrl,
-                new VerifyTokenRequest { Token = token }))
-                .Should().HaveStatusCode(400)
-                .And.HaveCommonBody()
-                .Which.Code.Should().Be(ErrorCodes.TokenController.Verify_UserNotExist);
-        }
-
-        //[Fact]
-        //public async Task VerifyToken_Expired()
-        //{
-        //    using (var client = await CreateClientWithNoAuth())
-        //    {
-        //        // I can only control the token expired time but not current time
-        //        // because verify logic is encapsuled in other library.
-        //        var mockClock = _factory.GetTestClock();
-        //        mockClock.MockCurrentTime = DateTime.Now - TimeSpan.FromDays(2);
-        //        var token = (await client.CreateUserTokenAsync(MockUsers.UserUsername, MockUsers.UserPassword, 1)).Token;
-        //        var response = await client.PostAsJsonAsync(VerifyTokenUrl,
-        //            new VerifyTokenRequest { Token = token });
-        //        response.Should().HaveStatusCodeBadRequest()
-        //            .And.Should().HaveBodyAsCommonResponseWithCode(TokenController.ErrorCodes.Verify_Expired);
-        //        mockClock.MockCurrentTime = null;
-        //    }
-        //}
-
-        [Fact]
-        public async Task VerifyToken_Success()
-        {
-            using var client = await CreateDefaultClient();
-            var createTokenResult = await CreateUserTokenAsync(client, "user1", "user1pw");
-            var response = await client.PostAsJsonAsync(VerifyTokenUrl,
-                new VerifyTokenRequest { Token = createTokenResult.Token });
-            response.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<VerifyTokenResponse>()
-                .Which.User.Should().BeEquivalentTo(UserInfos[1]);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs b/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
deleted file mode 100644
index 732232e2..00000000
--- a/Timeline.Tests/IntegratedTests/UnknownEndpointTest.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-﻿using FluentAssertions;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class UnknownEndpointTest : IntegratedTestBase
-    {
-        [Fact]
-        public async Task UnknownEndpoint()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.GetAsync("unknownEndpoint");
-            res.Should().HaveStatusCode(400)
-                .And.HaveCommonBody()
-                .Which.Code.Should().Be(ErrorCodes.Common.UnknownEndpoint);
-        }
-    }
-}
diff --git a/Timeline.Tests/IntegratedTests/UserAvatarTest.cs b/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
deleted file mode 100644
index f2796005..00000000
--- a/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-﻿using FluentAssertions;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.DependencyInjection;
-using SixLabors.ImageSharp.Formats;
-using SixLabors.ImageSharp.Formats.Gif;
-using SixLabors.ImageSharp.Formats.Jpeg;
-using SixLabors.ImageSharp.Formats.Png;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Net.Mime;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-using Timeline.Services;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class UserAvatarTest : IntegratedTestBase
-    {
-        [Fact]
-        public async Task Test()
-        {
-            Avatar mockAvatar = new Avatar
-            {
-                Data = ImageHelper.CreatePngWithSize(100, 100),
-                Type = PngFormat.Instance.DefaultMimeType
-            };
-
-            using (var client = await CreateClientAsUser())
-            {
-                {
-                    var res = await client.GetAsync("users/usernotexist/avatar");
-                    res.Should().HaveStatusCode(404)
-                        .And.HaveCommonBody()
-                        .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
-                }
-
-                var env = TestApp.Host.Services.GetRequiredService<IWebHostEnvironment>();
-                var defaultAvatarData = await File.ReadAllBytesAsync(Path.Combine(env.ContentRootPath, "default-avatar.png"));
-
-                async Task GetReturnDefault(string username = "user1")
-                {
-                    var res = await client.GetAsync($"users/{username}/avatar");
-                    res.Should().HaveStatusCode(200);
-                    res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
-                    var body = await res.Content.ReadAsByteArrayAsync();
-                    body.Should().Equal(defaultAvatarData);
-                }
-
-                {
-                    var res = await client.GetAsync("users/user1/avatar");
-                    res.Should().HaveStatusCode(200);
-                    res.Content.Headers.ContentType.MediaType.Should().Be("image/png");
-                    var body = await res.Content.ReadAsByteArrayAsync();
-                    body.Should().Equal(defaultAvatarData);
-                }
-
-                await CacheTestHelper.TestCache(client, "users/user1/avatar");
-
-                await GetReturnDefault("admin");
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
-                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
-                    content.Headers.ContentLength = 1;
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
-                    content.Headers.ContentLength = 0;
-                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", new[] { (byte)0x00 }, "image/notaccept");
-                    res.Should().HaveStatusCode(HttpStatusCode.UnsupportedMediaType);
-                }
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
-                    content.Headers.ContentLength = 1000 * 1000 * 11;
-                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Content.TooBig);
-                }
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00 });
-                    content.Headers.ContentLength = 2;
-                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    using var content = new ByteArrayContent(new[] { (byte)0x00, (byte)0x01 });
-                    content.Headers.ContentLength = 1;
-                    content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
-                    var res = await client.PutAsync("users/user1/avatar", content);
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", new[] { (byte)0x00 }, "image/png");
-                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_CantDecode);
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, "image/jpeg");
-                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat);
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", ImageHelper.CreatePngWithSize(100, 200), "image/png");
-                    res.Should().HaveStatusCode(HttpStatusCode.BadRequest)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserAvatar.BadFormat_BadSize);
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, mockAvatar.Type);
-                    res.Should().HaveStatusCode(HttpStatusCode.OK);
-
-                    var res2 = await client.GetAsync("users/user1/avatar");
-                    res2.Should().HaveStatusCode(200);
-                    res2.Content.Headers.ContentType.MediaType.Should().Be(mockAvatar.Type);
-                    var body = await res2.Content.ReadAsByteArrayAsync();
-                    body.Should().Equal(mockAvatar.Data);
-                }
-
-                IEnumerable<(string, IImageFormat)> formats = new (string, IImageFormat)[]
-                {
-                    ("image/jpeg", JpegFormat.Instance),
-                    ("image/gif", GifFormat.Instance),
-                    ("image/png", PngFormat.Instance),
-                };
-
-                foreach ((var mimeType, var format) in formats)
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", ImageHelper.CreateImageWithSize(100, 100, format), mimeType);
-                    res.Should().HaveStatusCode(HttpStatusCode.OK);
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/admin/avatar", new[] { (byte)0x00 }, "image/png");
-                    res.Should().HaveStatusCode(HttpStatusCode.Forbidden)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Forbid);
-                }
-
-                {
-                    var res = await client.DeleteAsync("users/admin/avatar");
-                    res.Should().HaveStatusCode(HttpStatusCode.Forbidden)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.Common.Forbid);
-                }
-
-                for (int i = 0; i < 2; i++) // double delete should work.
-                {
-                    var res = await client.DeleteAsync("users/user1/avatar");
-                    res.Should().HaveStatusCode(200);
-                    await GetReturnDefault();
-                }
-            }
-
-            // Authorization check.
-            using (var client = await CreateClientAsAdministrator())
-            {
-                {
-                    var res = await client.PutByteArrayAsync("users/user1/avatar", mockAvatar.Data, mockAvatar.Type);
-                    res.Should().HaveStatusCode(HttpStatusCode.OK);
-                }
-
-                {
-                    var res = await client.DeleteAsync("users/user1/avatar");
-                    res.Should().HaveStatusCode(HttpStatusCode.OK);
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/usernotexist/avatar", new[] { (byte)0x00 }, "image/png");
-                    res.Should().HaveStatusCode(400)
-                        .And.HaveCommonBody()
-                        .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
-                }
-
-                {
-                    var res = await client.DeleteAsync("users/usernotexist/avatar");
-                    res.Should().HaveStatusCode(400)
-                        .And.HaveCommonBody().Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
-                }
-            }
-
-            // bad username check
-            using (var client = await CreateClientAsAdministrator())
-            {
-                {
-                    var res = await client.GetAsync("users/u!ser/avatar");
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.PutByteArrayAsync("users/u!ser/avatar", ImageHelper.CreatePngWithSize(100, 100), "image/png");
-                    res.Should().BeInvalidModel();
-                }
-
-                {
-                    var res = await client.DeleteAsync("users/u!ser/avatar");
-                    res.Should().BeInvalidModel();
-                }
-            }
-        }
-
-        [Fact]
-        public async Task AvatarPutReturnETag()
-        {
-            using var client = await CreateClientAsUser();
-
-            EntityTagHeaderValue etag;
-
-            {
-                var image = ImageHelper.CreatePngWithSize(100, 100);
-                var res = await client.PutByteArrayAsync("users/user1/avatar", image, PngFormat.Instance.DefaultMimeType);
-                res.Should().HaveStatusCode(200);
-                etag = res.Headers.ETag;
-                etag.Should().NotBeNull();
-                etag.Tag.Should().NotBeNullOrEmpty();
-            }
-
-            {
-                var res = await client.GetAsync("users/user1/avatar");
-                res.Should().HaveStatusCode(200);
-                res.Headers.ETag.Should().Be(etag);
-                res.Headers.ETag.Tag.Should().Be(etag.Tag);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/Timeline.Tests/IntegratedTests/UserTest.cs b/Timeline.Tests/IntegratedTests/UserTest.cs
deleted file mode 100644
index 9dfcc6a5..00000000
--- a/Timeline.Tests/IntegratedTests/UserTest.cs
+++ /dev/null
@@ -1,447 +0,0 @@
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Net;
-using System.Net.Http;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.IntegratedTests
-{
-    public class UserTest : IntegratedTestBase
-    {
-        [Fact]
-        public void UserListShouldHaveUniqueId()
-        {
-            foreach (var user in UserInfos)
-            {
-                user.UniqueId.Should().NotBeNullOrWhiteSpace();
-            }
-        }
-
-        [Fact]
-        public async Task GetList_NoAuth()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.GetAsync("users");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo[]>()
-                .Which.Should().BeEquivalentTo(UserInfos);
-        }
-
-        [Fact]
-        public async Task GetList_User()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.GetAsync("users");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo[]>()
-                .Which.Should().BeEquivalentTo(UserInfos);
-        }
-
-        [Fact]
-        public async Task GetList_Admin()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.GetAsync("users");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo[]>()
-                .Which.Should().BeEquivalentTo(UserInfos);
-        }
-
-        [Fact]
-        public async Task Get_NoAuth()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.GetAsync($"users/admin");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo>()
-                .Which.Should().BeEquivalentTo(UserInfos[0]);
-        }
-
-        [Fact]
-        public async Task Get_User()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.GetAsync($"users/admin");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo>()
-                .Which.Should().BeEquivalentTo(UserInfos[0]);
-        }
-
-        [Fact]
-        public async Task Get_Admin()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.GetAsync($"users/user1");
-            res.Should().HaveStatusCode(200)
-                .And.HaveJsonBody<UserInfo>()
-                .Which.Should().BeEquivalentTo(UserInfos[1]);
-        }
-
-        [Fact]
-        public async Task Get_InvalidModel()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.GetAsync("users/aaa!a");
-            res.Should().BeInvalidModel();
-        }
-
-        [Fact]
-        public async Task Get_404()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.GetAsync("users/usernotexist");
-            res.Should().HaveStatusCode(404)
-                .And.HaveCommonBody(ErrorCodes.UserCommon.NotExist);
-        }
-
-        [Fact]
-        public async Task Patch_User()
-        {
-            using var client = await CreateClientAsUser();
-            {
-                var res = await client.PatchAsJsonAsync("users/user1",
-                    new UserPatchRequest { Nickname = "aaa" });
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>()
-                    .Which.Nickname.Should().Be("aaa");
-            }
-
-            {
-                var res = await client.GetAsync("users/user1");
-                res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>()
-                    .Which.Nickname.Should().Be("aaa");
-            }
-        }
-
-        [Fact]
-        public async Task Patch_Admin()
-        {
-            using var client = await CreateClientAsAdministrator();
-            using var userClient = await CreateClientAsUser();
-
-            {
-                var res = await client.PatchAsJsonAsync("users/user1",
-                    new UserPatchRequest
-                    {
-                        Username = "newuser",
-                        Password = "newpw",
-                        Administrator = true,
-                        Nickname = "aaa"
-                    });
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>()
-                    .Which;
-                body.Administrator.Should().Be(true);
-                body.Nickname.Should().Be("aaa");
-            }
-
-            {
-                var res = await client.GetAsync("users/newuser");
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>()
-                    .Which;
-                body.Administrator.Should().Be(true);
-                body.Nickname.Should().Be("aaa");
-            }
-
-            {
-                // Token should expire.
-                var res = await userClient.GetAsync("testing/auth/Authorize");
-                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-            }
-
-            {
-                // Check password.
-                (await CreateClientWithCredential("newuser", "newpw")).Dispose();
-            }
-        }
-
-        [Fact]
-        public async Task Patch_NotExist()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.PatchAsJsonAsync("users/usernotexist", new UserPatchRequest { });
-            res.Should().HaveStatusCode(404)
-                .And.HaveCommonBody()
-                .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
-        }
-
-        [Fact]
-        public async Task Patch_InvalidModel()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.PatchAsJsonAsync("users/aaa!a", new UserPatchRequest { });
-            res.Should().BeInvalidModel();
-        }
-
-        public static IEnumerable<object[]> Patch_InvalidModel_Body_Data()
-        {
-            yield return new[] { new UserPatchRequest { Username = "aaa!a" } };
-            yield return new[] { new UserPatchRequest { Password = "" } };
-            yield return new[] { new UserPatchRequest { Nickname = new string('a', 50) } };
-        }
-
-        [Theory]
-        [MemberData(nameof(Patch_InvalidModel_Body_Data))]
-        public async Task Patch_InvalidModel_Body(UserPatchRequest body)
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.PatchAsJsonAsync("users/user1", body);
-            res.Should().BeInvalidModel();
-        }
-
-        [Fact]
-        public async Task Patch_UsernameConflict()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Username = "admin" });
-            res.Should().HaveStatusCode(400)
-                .And.HaveCommonBody(ErrorCodes.UserController.UsernameConflict);
-        }
-
-        [Fact]
-        public async Task Patch_NoAuth_Unauthorized()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Nickname = "aaa" });
-            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-        }
-
-        [Fact]
-        public async Task Patch_User_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PatchAsJsonAsync("users/admin", new UserPatchRequest { Nickname = "aaa" });
-            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        [Fact]
-        public async Task Patch_Username_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Username = "aaa" });
-            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        [Fact]
-        public async Task Patch_Password_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Password = "aaa" });
-            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        [Fact]
-        public async Task Patch_Administrator_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { Administrator = true });
-            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        [Fact]
-        public async Task Delete_Deleted()
-        {
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.DeleteAsync("users/user1");
-                res.Should().BeDelete(true);
-            }
-
-            {
-                var res = await client.GetAsync("users/user1");
-                res.Should().HaveStatusCode(404);
-            }
-        }
-
-        [Fact]
-        public async Task Delete_NotExist()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.DeleteAsync("users/usernotexist");
-            res.Should().BeDelete(false);
-        }
-
-        [Fact]
-        public async Task Delete_InvalidModel()
-        {
-            using var client = await CreateClientAsAdministrator();
-            var res = await client.DeleteAsync("users/aaa!a");
-            res.Should().BeInvalidModel();
-        }
-
-        [Fact]
-        public async Task Delete_NoAuth_Unauthorized()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.DeleteAsync("users/aaa!a");
-            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-        }
-
-        [Fact]
-        public async Task Delete_User_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.DeleteAsync("users/aaa!a");
-            res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-        }
-
-        private const string createUserUrl = "userop/createuser";
-
-        [Fact]
-        public async Task Op_CreateUser()
-        {
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
-                {
-                    Username = "aaa",
-                    Password = "bbb",
-                    Administrator = true,
-                    Nickname = "ccc"
-                });
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>().Which;
-                body.Username.Should().Be("aaa");
-                body.Nickname.Should().Be("ccc");
-                body.Administrator.Should().BeTrue();
-            }
-            {
-                var res = await client.GetAsync("users/aaa");
-                var body = res.Should().HaveStatusCode(200)
-                    .And.HaveJsonBody<UserInfo>().Which;
-                body.Username.Should().Be("aaa");
-                body.Nickname.Should().Be("ccc");
-                body.Administrator.Should().BeTrue();
-            }
-            {
-                // Test password.
-                (await CreateClientWithCredential("aaa", "bbb")).Dispose();
-            }
-        }
-
-        public static IEnumerable<object[]> Op_CreateUser_InvalidModel_Data()
-        {
-            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "bbb" } };
-            yield return new[] { new CreateUserRequest { Username = "aaa", Administrator = true } };
-            yield return new[] { new CreateUserRequest { Password = "bbb", Administrator = true } };
-            yield return new[] { new CreateUserRequest { Username = "a!a", Password = "bbb", Administrator = true } };
-            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "", Administrator = true } };
-            yield return new[] { new CreateUserRequest { Username = "aaa", Password = "bbb", Administrator = true, Nickname = new string('a', 40) } };
-        }
-
-        [Theory]
-        [MemberData(nameof(Op_CreateUser_InvalidModel_Data))]
-        public async Task Op_CreateUser_InvalidModel(CreateUserRequest body)
-        {
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.PostAsJsonAsync(createUserUrl, body);
-                res.Should().BeInvalidModel();
-            }
-        }
-
-        [Fact]
-        public async Task Op_CreateUser_UsernameConflict()
-        {
-            using var client = await CreateClientAsAdministrator();
-            {
-                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
-                {
-                    Username = "user1",
-                    Password = "bbb",
-                    Administrator = false
-                });
-                res.Should().HaveStatusCode(400)
-                    .And.HaveCommonBody(ErrorCodes.UserController.UsernameConflict);
-            }
-        }
-
-        [Fact]
-        public async Task Op_CreateUser_NoAuth_Unauthorized()
-        {
-            using var client = await CreateDefaultClient();
-            {
-                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
-                {
-                    Username = "aaa",
-                    Password = "bbb",
-                    Administrator = false
-                });
-                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-            }
-        }
-
-        [Fact]
-        public async Task Op_CreateUser_User_Forbid()
-        {
-            using var client = await CreateClientAsUser();
-            {
-                var res = await client.PostAsJsonAsync(createUserUrl, new CreateUserRequest
-                {
-                    Username = "aaa",
-                    Password = "bbb",
-                    Administrator = false
-                });
-                res.Should().HaveStatusCode(HttpStatusCode.Forbidden);
-            }
-        }
-
-        private const string changePasswordUrl = "userop/changepassword";
-
-        [Fact]
-        public async Task Op_ChangePassword()
-        {
-            using var client = await CreateClientAsUser();
-            {
-                var res = await client.PostAsJsonAsync(changePasswordUrl,
-                    new ChangePasswordRequest { OldPassword = "user1pw", NewPassword = "newpw" });
-                res.Should().HaveStatusCode(200);
-            }
-            {
-                var res = await client.PatchAsJsonAsync("users/user1", new UserPatchRequest { });
-                res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-            }
-            {
-                (await CreateClientWithCredential("user1", "newpw")).Dispose();
-            }
-        }
-
-        public static IEnumerable<object[]> Op_ChangePassword_InvalidModel_Data()
-        {
-            yield return new[] { null, "ppp" };
-            yield return new[] { "ppp", null };
-        }
-
-        [Theory]
-        [MemberData(nameof(Op_ChangePassword_InvalidModel_Data))]
-        public async Task Op_ChangePassword_InvalidModel(string oldPassword, string newPassword)
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PostAsJsonAsync(changePasswordUrl,
-                new ChangePasswordRequest { OldPassword = oldPassword, NewPassword = newPassword });
-            res.Should().BeInvalidModel();
-        }
-
-        [Fact]
-        public async Task Op_ChangePassword_BadOldPassword()
-        {
-            using var client = await CreateClientAsUser();
-            var res = await client.PostAsJsonAsync(changePasswordUrl, new ChangePasswordRequest { OldPassword = "???", NewPassword = "???" });
-            res.Should().HaveStatusCode(400)
-                .And.HaveCommonBody(ErrorCodes.UserController.ChangePassword_BadOldPassword);
-        }
-
-        [Fact]
-        public async Task Op_ChangePassword_NoAuth_Unauthorized()
-        {
-            using var client = await CreateDefaultClient();
-            var res = await client.PostAsJsonAsync(changePasswordUrl, new ChangePasswordRequest { OldPassword = "???", NewPassword = "???" });
-            res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
-        }
-    }
-}
diff --git a/Timeline.Tests/PasswordGenerator.cs b/Timeline.Tests/PasswordGenerator.cs
deleted file mode 100644
index 863439b5..00000000
--- a/Timeline.Tests/PasswordGenerator.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿using Timeline.Services;
-using Xunit;
-using Xunit.Abstractions;
-
-namespace Timeline.Tests
-{
-    public class PasswordGenerator
-    {
-        private readonly ITestOutputHelper _output;
-
-        public PasswordGenerator(ITestOutputHelper output)
-        {
-            _output = output;
-        }
-
-        [Fact]
-        public void Generate()
-        {
-            var service = new PasswordService();
-            _output.WriteLine(service.HashPassword("crupest"));
-        }
-    }
-}
diff --git a/Timeline.Tests/Properties/launchSettings.json b/Timeline.Tests/Properties/launchSettings.json
deleted file mode 100644
index f3ee419d..00000000
--- a/Timeline.Tests/Properties/launchSettings.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{
-}
diff --git a/Timeline.Tests/Services/TimelineServiceTest.cs b/Timeline.Tests/Services/TimelineServiceTest.cs
deleted file mode 100644
index 5a774b78..00000000
--- a/Timeline.Tests/Services/TimelineServiceTest.cs
+++ /dev/null
@@ -1,329 +0,0 @@
-﻿using FluentAssertions;
-using Microsoft.Extensions.Logging.Abstractions;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Models;
-using Timeline.Services;
-using Timeline.Services.Exceptions;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests.Services
-{
-    public class TimelineServiceTest : IAsyncLifetime, IDisposable
-    {
-        private readonly TestDatabase _testDatabase = new TestDatabase();
-
-        private DatabaseContext _databaseContext;
-
-        private readonly PasswordService _passwordService = new PasswordService();
-
-        private readonly ETagGenerator _eTagGenerator = new ETagGenerator();
-
-        private readonly ImageValidator _imageValidator = new ImageValidator();
-
-        private readonly TestClock _clock = new TestClock();
-
-        private DataManager _dataManager;
-
-        private UserService _userService;
-
-        private TimelineService _timelineService;
-
-        private UserDeleteService _userDeleteService;
-
-        public TimelineServiceTest()
-        {
-        }
-
-        public async Task InitializeAsync()
-        {
-            await _testDatabase.InitializeAsync();
-            _databaseContext = _testDatabase.CreateContext();
-            _dataManager = new DataManager(_databaseContext, _eTagGenerator);
-            _userService = new UserService(NullLogger<UserService>.Instance, _databaseContext, _passwordService, _clock);
-            _timelineService = new TimelineService(NullLogger<TimelineService>.Instance, _databaseContext, _dataManager, _userService, _imageValidator, _clock);
-            _userDeleteService = new UserDeleteService(NullLogger<UserDeleteService>.Instance, _databaseContext, _timelineService);
-        }
-
-        public async Task DisposeAsync()
-        {
-            await _testDatabase.DisposeAsync();
-            await _databaseContext.DisposeAsync();
-        }
-
-        public void Dispose()
-        {
-            _eTagGenerator.Dispose();
-        }
-
-        [Theory]
-        [InlineData("@user")]
-        [InlineData("tl")]
-        public async Task Timeline_GetLastModified(string timelineName)
-        {
-            var time = _clock.ForwardCurrentTime();
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
-
-            var t = await _timelineService.GetTimelineLastModifiedTime(timelineName);
-
-            t.Should().Be(time);
-        }
-
-        [Theory]
-        [InlineData("@user")]
-        [InlineData("tl")]
-        public async Task Timeline_GetUnqiueId(string timelineName)
-        {
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
-
-            var uniqueId = await _timelineService.GetTimelineUniqueId(timelineName);
-
-            uniqueId.Should().NotBeNullOrEmpty();
-        }
-
-        [Theory]
-        [InlineData("@user")]
-        [InlineData("tl")]
-        public async Task Timeline_LastModified(string timelineName)
-        {
-            var initTime = _clock.ForwardCurrentTime();
-
-            void Check(Models.Timeline timeline)
-            {
-                timeline.NameLastModified.Should().Be(initTime);
-                timeline.LastModified.Should().Be(_clock.GetCurrentTime());
-            }
-
-            async Task GetAndCheck()
-            {
-                Check(await _timelineService.GetTimeline(timelineName));
-            }
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                Check(await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user")));
-
-            await GetAndCheck();
-
-            _clock.ForwardCurrentTime();
-            await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Visibility = TimelineVisibility.Public });
-            await GetAndCheck();
-
-            _clock.ForwardCurrentTime();
-            await _timelineService.ChangeMember(timelineName, new List<string> { "admin" }, null);
-            await GetAndCheck();
-        }
-
-        [Theory]
-        [InlineData("@user")]
-        [InlineData("tl")]
-        public async Task GetPosts_ModifiedSince(string timelineName)
-        {
-            _clock.ForwardCurrentTime();
-
-            var userId = await _userService.GetUserIdByUsername("user");
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, userId);
-
-            var postContentList = new string[] { "a", "b", "c", "d" };
-
-            DateTime testPoint = new DateTime();
-
-            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
-            {
-                var t = _clock.ForwardCurrentTime();
-                if (index == 1)
-                    testPoint = t;
-                await _timelineService.CreateTextPost(timelineName, userId, content, null);
-            }
-
-            var posts = await _timelineService.GetPosts(timelineName, testPoint);
-            posts.Should().HaveCount(3)
-                .And.Subject.Select(p => (p.Content as TextTimelinePostContent).Text).Should().Equal(postContentList.Skip(1));
-        }
-
-        [Theory]
-        [InlineData("@user")]
-        [InlineData("tl")]
-        public async Task GetPosts_IncludeDeleted(string timelineName)
-        {
-            var userId = await _userService.GetUserIdByUsername("user");
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, userId);
-
-            var postContentList = new string[] { "a", "b", "c", "d" };
-
-            foreach (var content in postContentList)
-            {
-                await _timelineService.CreateTextPost(timelineName, userId, content, null);
-            }
-
-            var posts = await _timelineService.GetPosts(timelineName);
-            posts.Should().HaveCount(4);
-            posts.Select(p => p.Deleted).Should().Equal(Enumerable.Repeat(false, posts.Count));
-            posts.Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(postContentList);
-
-            foreach (var id in new long[] { posts[0].Id, posts[2].Id })
-            {
-                await _timelineService.DeletePost(timelineName, id);
-            }
-
-            posts = await _timelineService.GetPosts(timelineName);
-            posts.Should().HaveCount(2);
-            posts.Select(p => p.Deleted).Should().Equal(Enumerable.Repeat(false, posts.Count));
-            posts.Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(new string[] { "b", "d" });
-
-            posts = await _timelineService.GetPosts(timelineName, includeDeleted: true);
-            posts.Should().HaveCount(4);
-            posts.Select(p => p.Deleted).Should().Equal(new bool[] { true, false, true, false });
-            posts.Where(p => !p.Deleted).Select(p => ((TextTimelinePostContent)p.Content).Text).Should().Equal(new string[] { "b", "d" });
-        }
-
-        [Theory]
-        [InlineData("@admin")]
-        [InlineData("tl")]
-        public async Task GetPosts_ModifiedSince_UsernameChange(string timelineName)
-        {
-            var time1 = _clock.ForwardCurrentTime();
-
-            var userId = await _userService.GetUserIdByUsername("user");
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, userId);
-
-            var postContentList = new string[] { "a", "b", "c", "d" };
-
-            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
-            {
-                await _timelineService.CreateTextPost(timelineName, userId, content, null);
-            }
-
-            var time2 = _clock.ForwardCurrentTime();
-
-            {
-                var posts = await _timelineService.GetPosts(timelineName, time2);
-                posts.Should().HaveCount(0);
-            }
-
-            {
-                await _userService.ModifyUser(userId, new User { Nickname = "haha" });
-                var posts = await _timelineService.GetPosts(timelineName, time2);
-                posts.Should().HaveCount(0);
-            }
-
-            {
-                await _userService.ModifyUser(userId, new User { Username = "haha" });
-                var posts = await _timelineService.GetPosts(timelineName, time2);
-                posts.Should().HaveCount(4);
-            }
-        }
-
-        [Theory]
-        [InlineData("@admin")]
-        [InlineData("tl")]
-        public async Task GetPosts_ModifiedSince_UserDelete(string timelineName)
-        {
-            var time1 = _clock.ForwardCurrentTime();
-
-            var userId = await _userService.GetUserIdByUsername("user");
-            var adminId = await _userService.GetUserIdByUsername("admin");
-
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, adminId);
-
-            var postContentList = new string[] { "a", "b", "c", "d" };
-
-            foreach (var (content, index) in postContentList.Select((v, i) => (v, i)))
-            {
-                await _timelineService.CreateTextPost(timelineName, userId, content, null);
-            }
-
-            var time2 = _clock.ForwardCurrentTime();
-
-            {
-                var posts = await _timelineService.GetPosts(timelineName, time2);
-                posts.Should().HaveCount(0);
-            }
-
-            await _userDeleteService.DeleteUser("user");
-
-            {
-                var posts = await _timelineService.GetPosts(timelineName, time2);
-                posts.Should().HaveCount(0);
-            }
-
-            {
-                var posts = await _timelineService.GetPosts(timelineName, time2, true);
-                posts.Should().HaveCount(4);
-            }
-        }
-
-        [Theory]
-        [InlineData("@admin")]
-        [InlineData("tl")]
-        public async Task Title(string timelineName)
-        {
-            var _ = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-            if (!isPersonal)
-                await _timelineService.CreateTimeline(timelineName, await _userService.GetUserIdByUsername("user"));
-
-            {
-                var timeline = await _timelineService.GetTimeline(timelineName);
-                timeline.Title.Should().Be(timelineName);
-            }
-
-            {
-                await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Title = null });
-                var timeline = await _timelineService.GetTimeline(timelineName);
-                timeline.Title.Should().Be(timelineName);
-            }
-
-            {
-                await _timelineService.ChangeProperty(timelineName, new TimelineChangePropertyRequest { Title = "atitle" });
-                var timeline = await _timelineService.GetTimeline(timelineName);
-                timeline.Title.Should().Be("atitle");
-            }
-        }
-
-        [Fact]
-        public async Task ChangeName()
-        {
-            _clock.ForwardCurrentTime();
-
-            await _timelineService.Awaiting(s => s.ChangeTimelineName("!!!", "newtl")).Should().ThrowAsync<ArgumentException>();
-            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "!!!")).Should().ThrowAsync<ArgumentException>();
-            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "newtl")).Should().ThrowAsync<TimelineNotExistException>();
-
-            await _timelineService.CreateTimeline("tl", await _userService.GetUserIdByUsername("user"));
-            await _timelineService.CreateTimeline("tl2", await _userService.GetUserIdByUsername("user"));
-
-            await _timelineService.Awaiting(s => s.ChangeTimelineName("tl", "tl2")).Should().ThrowAsync<EntityAlreadyExistException>();
-
-            var time = _clock.ForwardCurrentTime();
-
-            await _timelineService.ChangeTimelineName("tl", "newtl");
-
-            {
-                var timeline = await _timelineService.GetTimeline("newtl");
-                timeline.Name.Should().Be("newtl");
-                timeline.LastModified.Should().Be(time);
-                timeline.NameLastModified.Should().Be(time);
-            }
-        }
-    }
-}
diff --git a/Timeline.Tests/Timeline.Tests.csproj b/Timeline.Tests/Timeline.Tests.csproj
deleted file mode 100644
index 973e0fc0..00000000
--- a/Timeline.Tests/Timeline.Tests.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-﻿<Project Sdk="Microsoft.NET.Sdk.Web">
-
-    <PropertyGroup>
-        <TargetFramework>netcoreapp3.1</TargetFramework>
-
-        <LangVersion>8.0</LangVersion>
-    </PropertyGroup>
-
-    <ItemGroup>
-        <PackageReference Include="coverlet.collector" Version="1.3.0">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-        </PackageReference>
-        <PackageReference Include="FluentAssertions" Version="5.10.3" />
-        <PackageReference Include="JunitXml.TestLogger" Version="2.1.78" />
-        <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
-        <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.9" />
-        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-        </PackageReference>
-        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
-        <PackageReference Include="Moq" Version="4.14.7" />
-        <PackageReference Include="xunit" Version="2.4.1" />
-        <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
-        </PackageReference>
-    </ItemGroup>
-
-    <ItemGroup>
-      <ProjectReference Include="..\Timeline\Timeline.csproj" />
-    </ItemGroup>
-</Project>
diff --git a/Timeline.Tests/UsernameValidatorUnitTest.cs b/Timeline.Tests/UsernameValidatorUnitTest.cs
deleted file mode 100644
index 5b568adf..00000000
--- a/Timeline.Tests/UsernameValidatorUnitTest.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-﻿using FluentAssertions;
-using Timeline.Models.Validation;
-using Timeline.Tests.Helpers;
-using Xunit;
-
-namespace Timeline.Tests
-{
-    public class UsernameValidatorUnitTest : IClassFixture<UsernameValidator>
-    {
-        private readonly UsernameValidator _validator;
-
-        public UsernameValidatorUnitTest(UsernameValidator validator)
-        {
-            _validator = validator;
-        }
-
-        private string FailAndMessage(string username)
-        {
-            var (result, message) = _validator.Validate(username);
-            result.Should().BeFalse();
-            return message;
-        }
-
-        [Fact]
-        public void NotString()
-        {
-            var (result, message) = _validator.Validate(123);
-            result.Should().BeFalse();
-            message.Should().ContainEquivalentOf("type");
-        }
-
-        [Fact]
-        public void Empty()
-        {
-            FailAndMessage("").Should().ContainEquivalentOf("empty");
-        }
-
-        [Theory]
-        [InlineData("!")]
-        [InlineData("!abc")]
-        [InlineData("ab c")]
-        [InlineData("ab c！")] // This is a chinese ! .
-        public void BadCharactor(string value)
-        {
-            FailAndMessage(value).Should().ContainEquivalentOf("invalid")
-                .And.ContainEquivalentOf("character");
-        }
-
-        [Fact]
-        public void TooLong()
-        {
-            FailAndMessage(new string('a', 40)).Should().ContainEquivalentOf("long");
-        }
-
-        [Fact(Skip = "Currently name can't be longer than 26. So this will print message of too long.")]
-        public void UniqueId()
-        {
-            FailAndMessage("e4c80127d092d9b2fc19c5e04612d4c0").Should().ContainEquivalentOf("unique id");
-        }
-
-        [Theory]
-        [InlineData(null)]
-        [InlineData("abc")]
-        [InlineData("-abc")]
-        [InlineData("_abc")]
-        [InlineData("abc-")]
-        [InlineData("abc_")]
-        [InlineData("a-bc")]
-        [InlineData("a-b-c")]
-        [InlineData("a-b_c")]
-        [InlineData("a-你好_c")]
-        public void Success(string value)
-        {
-            var (result, _) = _validator.Validate(value);
-            result.Should().BeTrue();
-        }
-    }
-}
diff --git a/Timeline.Tests/coverletArgs.runsettings b/Timeline.Tests/coverletArgs.runsettings
deleted file mode 100644
index 24cd1822..00000000
--- a/Timeline.Tests/coverletArgs.runsettings
+++ /dev/null
@@ -1,13 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8" ?>
-<RunSettings>
-    <DataCollectionRunSettings>
-        <DataCollectors>
-            <DataCollector friendlyName="XPlat code coverage">
-                <Configuration>
-                    <!-- [Assembly-Filter]Type-Filter -->
-                    <Exclude>[xunit.*]*,[Timeline]Timeline.Migrations.*</Exclude>
-                </Configuration>
-            </DataCollector>
-        </DataCollectors>
-    </DataCollectionRunSettings>
-</RunSettings>
diff --git a/Timeline.Tests/packages.lock.json b/Timeline.Tests/packages.lock.json
deleted file mode 100644
index 7150a222..00000000
--- a/Timeline.Tests/packages.lock.json
+++ /dev/null
@@ -1,2040 +0,0 @@
-{
-  "version": 1,
-  "dependencies": {
-    ".NETCoreApp,Version=v3.1": {
-      "coverlet.collector": {
-        "type": "Direct",
-        "requested": "[1.3.0, )",
-        "resolved": "1.3.0",
-        "contentHash": "t8pnf5SX2ya0RX4vjoxsbhDMQCZJcpPun2neHKJ4FouMmObylo25FvoOydvf3Bl+l+IzWw7u2vjEeCBHnleB9g=="
-      },
-      "FluentAssertions": {
-        "type": "Direct",
-        "requested": "[5.10.3, )",
-        "resolved": "5.10.3",
-        "contentHash": "gVPEVp1hLVqcv+7Q2wiDf7kqCNn7+bQcQ0jbJ2mcRT6CeRoZl1tNkqvzSIhvekyldDptk77j1b03MXTTRIqqpg==",
-        "dependencies": {
-          "System.Configuration.ConfigurationManager": "4.4.0"
-        }
-      },
-      "JunitXml.TestLogger": {
-        "type": "Direct",
-        "requested": "[2.1.78, )",
-        "resolved": "2.1.78",
-        "contentHash": "4y4FSfKWxlked8ilQdqBBSeRMf5jD/Hkvyp744hc54yQcABLt4rR2Q+4hNqAqrSo+mhwAlusj2rpXpN/5TICCA=="
-      },
-      "Microsoft.AspNet.WebApi.Client": {
-        "type": "Direct",
-        "requested": "[5.2.7, )",
-        "resolved": "5.2.7",
-        "contentHash": "/76fAHknzvFqbznS6Uj2sOyE9rJB3PltY+f53TH8dX9RiGhk02EhuFCWljSj5nnqKaTsmma8DFR50OGyQ4yJ1g==",
-        "dependencies": {
-          "Newtonsoft.Json": "10.0.1",
-          "Newtonsoft.Json.Bson": "1.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.TestHost": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "0DBtfgmM2yS4h0v+gS4JHRX4nuyQmW7Yi5/G4yB5KelA2dDXPsAiipw9z47B1jVEs9QZdOwSqPQm2R/owl2TnA==",
-        "dependencies": {
-          "System.IO.Pipelines": "4.7.3"
-        }
-      },
-      "Microsoft.CodeAnalysis.FxCopAnalyzers": {
-        "type": "Direct",
-        "requested": "[3.3.0, )",
-        "resolved": "3.3.0",
-        "contentHash": "k3Icqx8kc+NrHImuiB8Jc/wd32Xeyd2B/7HOR5Qu9pyKzXQ4ikPeBAwzG2FSTuYhyIuNWvwL5k9yYBbbVz6w9w==",
-        "dependencies": {
-          "Microsoft.CodeAnalysis.VersionCheckAnalyzer": "[3.3.0]",
-          "Microsoft.CodeQuality.Analyzers": "[3.3.0]",
-          "Microsoft.NetCore.Analyzers": "[3.3.0]",
-          "Microsoft.NetFramework.Analyzers": "[3.3.0]"
-        }
-      },
-      "Microsoft.NET.Test.Sdk": {
-        "type": "Direct",
-        "requested": "[16.7.1, )",
-        "resolved": "16.7.1",
-        "contentHash": "7T3XYuLT2CRMZXwlp8p4cEEf6y7VifxTdKwYNzCYp31CN4iyrcDKneIJvNTo0YVnTxJn+CSlGVlUnZHUlAwt9A==",
-        "dependencies": {
-          "Microsoft.CodeCoverage": "16.7.1",
-          "Microsoft.TestPlatform.TestHost": "16.7.1"
-        }
-      },
-      "Moq": {
-        "type": "Direct",
-        "requested": "[4.14.7, )",
-        "resolved": "4.14.7",
-        "contentHash": "z1jwY3lL3d4l+92cdSnhRDUUco68HiRNfLKB9r9/PLP5lrN+ZL1Qtt3brVGVB8iY+ioBXhlFue2JtycBczE8Pw==",
-        "dependencies": {
-          "Castle.Core": "4.4.0",
-          "System.Threading.Tasks.Extensions": "4.5.1"
-        }
-      },
-      "xunit": {
-        "type": "Direct",
-        "requested": "[2.4.1, )",
-        "resolved": "2.4.1",
-        "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==",
-        "dependencies": {
-          "xunit.analyzers": "0.10.0",
-          "xunit.assert": "[2.4.1]",
-          "xunit.core": "[2.4.1]"
-        }
-      },
-      "xunit.runner.visualstudio": {
-        "type": "Direct",
-        "requested": "[2.4.3, )",
-        "resolved": "2.4.3",
-        "contentHash": "kZZSmOmKA8OBlAJaquPXnJJLM9RwQ27H7BMVqfMLUcTi9xHinWGJiWksa3D4NEtz0wZ/nxd2mogObvBgJKCRhQ=="
-      },
-      "AutoMapper": {
-        "type": "Transitive",
-        "resolved": "10.1.1",
-        "contentHash": "uMgbqOdu9ZG5cIOty0C85hzzayBH2i9BthnS5FlMqKtMSHDv4ts81a2jS1VFaDBVhlBeIqJ/kQKjQY95BZde9w==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.7.0",
-          "System.Reflection.Emit": "4.7.0"
-        }
-      },
-      "AutoMapper.Extensions.Microsoft.DependencyInjection": {
-        "type": "Transitive",
-        "resolved": "8.1.0",
-        "contentHash": "dQyGCAYcHbGuimVvCMu4Ea2S1oYOlgO9XfVdClmY5wgygJMZoS57emPzH0qNfknmtzMm4QbDO9i237W5IDjU1A==",
-        "dependencies": {
-          "AutoMapper": "[10.1.0, 11.0.0)",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.0.0",
-          "Microsoft.Extensions.Options": "3.0.0"
-        }
-      },
-      "Castle.Core": {
-        "type": "Transitive",
-        "resolved": "4.4.0",
-        "contentHash": "b5rRL5zeaau1y/5hIbI+6mGw3cwun16YjkHZnV9RRT5UyUIFsgLmNXJ0YnIN9p8Hw7K7AbG1q1UclQVU3DinAQ==",
-        "dependencies": {
-          "NETStandard.Library": "1.6.1",
-          "System.Collections.Specialized": "4.3.0",
-          "System.ComponentModel": "4.3.0",
-          "System.ComponentModel.TypeConverter": "4.3.0",
-          "System.Diagnostics.TraceSource": "4.3.0",
-          "System.Dynamic.Runtime": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Emit": "4.3.0",
-          "System.Reflection.TypeExtensions": "4.3.0",
-          "System.Xml.XmlDocument": "4.3.0"
-        }
-      },
-      "Microsoft.AspNetCore.Authorization": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "cN2KJkfHcKwh82c9WGx4Tqfd2h5HflU/Mu5vYLMHON8WahHU9hE32ciIXcEIoKLNpu+zs1u1cN/qxcKTdqu89w==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Security.Claims": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Hosting.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "ybY8FOkdNfBPB5PLv1JO+It/94ftBzGUI1WqU4XySbIWyhw2TPmmKAUuO9uvJoR0qpsFup8FJz6trsBcBITg9w==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "XUiQPe/CflK1i0Voo9S6/G1iQh00gQ6sMqi3LRtKeceBbO6AOostaAUdhjyME92MapI4VFNl+Z+/KXUlMAExJQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Features": "1.0.3",
-          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Http": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "kfNOIGGgVtMzsSWZzXBqz5zsdo8ssBa90YHzZt95N8ARGXoolSaBHy6yBoMm/XcpbXM+m/x1fixTTMIWMgzJdQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.AspNetCore.WebUtilities": "1.0.3",
-          "Microsoft.Extensions.ObjectPool": "1.0.1",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.Buffers": "4.0.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "nnjvAf7ag6P0DyD/0nhRGjLpv+3DkPU0juF8aQh46X8uF4kzjJdrh65oL+4PVOu3K6BgSg6OVUs0QC0SE0FRtg==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Features": "1.0.3",
-          "System.Globalization.Extensions": "4.0.1",
-          "System.Linq.Expressions": "4.1.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Extensions": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "+7Sd+14nexIJqcB4S1Eur9kzeMZ5CBtrxkei+PNbD78fg8vO3+TcCgrl5SBNTsUB/VJAfD/s0fgs5t+hHRj2Pg==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.Buffers": "4.0.0",
-          "System.IO.FileSystem": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Features": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "Ihq57tseNyPbJTmFXY4jQ4JkxLP0lh45VRwocQci/sFx+qcJGvWB+sJJ2/YPLy/qTWFAEfNAcswuY3OsNH9Gwg==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "1.0.1",
-          "System.Collections": "4.0.11",
-          "System.ComponentModel": "4.0.1",
-          "System.Linq": "4.1.0",
-          "System.Net.Primitives": "4.0.11",
-          "System.Net.WebSockets": "4.0.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Security.Claims": "4.0.1",
-          "System.Security.Cryptography.X509Certificates": "4.1.0",
-          "System.Security.Principal": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.JsonPatch": {
-        "type": "Transitive",
-        "resolved": "1.0.0",
-        "contentHash": "WVaSVS+dDlWCR/qerHnBxU9tIeJ9GMA3M5tg4cxH7/cJYZZLnr2zvaFHGB+cRRNCKKTJ0pFRxT7ES8knhgAAaA==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.0.1",
-          "Newtonsoft.Json": "9.0.1",
-          "System.Collections.Concurrent": "4.0.12",
-          "System.ComponentModel.TypeConverter": "4.1.0",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Serialization.Primitives": "4.1.1",
-          "System.Text.Encoding.Extensions": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "Isqgif1nuB+um86cEkpL8KnoxFCUCXBsbs9PuiuzElvlSiv4Ek3LvtrSUcbivekDDfys8CDbJhxwEI7WKJieAQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
-          "Microsoft.CSharp": "4.0.1",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.ComponentModel.TypeConverter": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Text.Encoding.Extensions": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.ApiExplorer": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "ujCFTM42U2WKUBhdaoLoiI+wVHgYhrmDrkl5+hWJ7EJW4fhp42w4cRZ97tjuveWr+M6JZjpS0q+7PVofQzFUiw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Core": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "1ukcttN1+T82hWXE8WS5kawkruolKI6LPVqVI4rTzN16kFszS/UqTrcwSUEnmTRpmWgFo665V3c2GpdQ9B6znw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Authorization": "1.0.3",
-          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.3",
-          "Microsoft.AspNetCore.Http": "1.0.3",
-          "Microsoft.AspNetCore.Mvc.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Routing": "1.0.4",
-          "Microsoft.Extensions.DependencyModel": "1.0.0",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.PlatformAbstractions": "1.0.0",
-          "System.Buffers": "4.0.0",
-          "System.Diagnostics.DiagnosticSource": "4.0.0",
-          "System.Text.Encoding": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Formatters.Json": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "i8WWK2GwlBHfOL+d+kknJWPks6DS9tbN6nfJZU4yb+/wfUAYd311B2CIHzdat3IewubnK1TYONwrhQcs2FbLeA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.JsonPatch": "1.0.0",
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
-        }
-      },
-      "Microsoft.AspNetCore.NodeServices": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "bbd3FlSPWiRQrIcBLa5TaOvo4gjmmiNMkxA8VmZ6u0eIpS0Yj35/eTopaGdtzqwlqj5jXbdRoib1MruXuPaW8A==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging.Console": "3.1.9",
-          "Newtonsoft.Json": "12.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Routing": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "mdIF3ckRothHWuCSFkk6YXACj5zxi5qM+cEAHjcpP04/wCHUoV0gGVnW+HI+LyFXE6JUwu2zXn5tfsCpW0U+SA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
-          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.ObjectPool": "1.0.1",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Collections": "4.0.11",
-          "System.Text.RegularExpressions": "4.1.0"
-        }
-      },
-      "Microsoft.AspNetCore.Routing.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "GHxVt6LlXHFsCUd2Un+/vY1tBTXxnogfbDO0b8G5EGmkapSK+dOGOLJviscxQkp338Uabs081JEIdkRymI5GXA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "System.Collections.Concurrent": "4.0.12",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.SpaServices": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Fb+N2ZyF1wNrGeWggT+Ovv6W8AAVxfi4V/SnuEsBOR+nmkFhty9zyh6IDRRS98GJK6OE3adqqPbWMtJqbxYnNA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.NodeServices": "3.1.9"
-        }
-      },
-      "Microsoft.AspNetCore.SpaServices.Extensions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "ciy2GCvRnh9C22laArLsaItS+72U6Hqf4nDYShdvFgcen2ZV+NNSitb/B3vsmFfIPM8m4mf2x4T+vZ6OlI5XaA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.SpaServices": "3.1.9",
-          "Microsoft.Extensions.FileProviders.Physical": "3.1.9"
-        }
-      },
-      "Microsoft.AspNetCore.StaticFiles": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "2pNvwewAazhaaCdw2CGUvIcDrNQMlqP57JgBDf3v+pRj1rZ29HVnpvkX6a+TrmRYlJNmmxHOKEt468uE/gDcFw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.WebEncoders": "1.0.3"
-        }
-      },
-      "Microsoft.AspNetCore.WebUtilities": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "snSGNs5EEisqivDjDiskFkFyu+DV2Ib9sMPOBQKtoFwI5H1W5YNB/rIVqDZQL16zj/uzdwwxrdE/5xhkVyf6gQ==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "1.0.1",
-          "System.Buffers": "4.0.0",
-          "System.Collections": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.IO.FileSystem": "4.0.1",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.Bcl.AsyncInterfaces": {
-        "type": "Transitive",
-        "resolved": "1.1.1",
-        "contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
-      },
-      "Microsoft.Bcl.HashCode": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "J2G1k+u5unBV+aYcwxo94ip16Rkp65pgWFb0R6zwJipzWNMgvqlWeuI7/+R+e8bob66LnSG+llLJ+z8wI94cHg=="
-      },
-      "Microsoft.CodeAnalysis.VersionCheckAnalyzer": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "xjLM3DRFZMan3nQyBQEM1mBw6VqQybi4iMJhMFW6Ic1E1GCvqJR3ABOwEL7WtQjDUzxyrGld9bASnAos7G/Xyg=="
-      },
-      "Microsoft.CodeCoverage": {
-        "type": "Transitive",
-        "resolved": "16.7.1",
-        "contentHash": "PhSppbk+kvAyD9yGJIcBRJ/XYwY+21YK88l22PGTtixaxNdjnx1idVKh88LCGwKaTL8HhlnQ41VmBiBdZJzIQw=="
-      },
-      "Microsoft.CodeQuality.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "zZ3miq6u22UFQKhfJyLnVEJ+DgeOopLh3eKJnKAcOetPP2hiv3wa7kHZlBDeTvtqJQiAQhAVbttket8XxjN1zw=="
-      },
-      "Microsoft.CSharp": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
-      },
-      "Microsoft.Data.Sqlite.Core": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "+u4PeT1npi2EzhxGc5r1Z2z73zuXw+TlKVZm44WQhNCUw4LtUVDaxGSpUhrjW+X4snBCBfr4kT/uJyKnL4R4og==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2"
-        }
-      },
-      "Microsoft.DotNet.PlatformAbstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.6",
-        "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
-      },
-      "Microsoft.EntityFrameworkCore": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "u3A2W0BvAuAF2jgW+WX+C+Sh8sMGX5Kl1hdA0gu6A/XSrZQoW/BUP4a/q2n3iitDGndaorqjAKx+Spb9gBto+w==",
-        "dependencies": {
-          "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
-          "Microsoft.Bcl.HashCode": "1.1.0",
-          "Microsoft.EntityFrameworkCore.Abstractions": "3.1.9",
-          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
-          "Microsoft.Extensions.Caching.Memory": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection": "3.1.9",
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "System.Collections.Immutable": "1.7.1",
-          "System.ComponentModel.Annotations": "4.7.0",
-          "System.Diagnostics.DiagnosticSource": "4.7.1"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "IR6Y4RJVlw0QXdWXjF3Kx9s1QLiicJus+BFBKr43lBtriV20j3yrWMoaZ9W1AUUgnicZXpXVcNfklqtmwb9Sxw=="
-      },
-      "Microsoft.EntityFrameworkCore.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "eXGyx/Lb1fiiKtnIStdxGrfBSSQg8oZytE10f1T/2xAx12W9dKB9U9fg05cwNCDC0S2CXILsmZHYaGqCSXVAqQ=="
-      },
-      "Microsoft.EntityFrameworkCore.Relational": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "7fhWuSfrCYlv/hvOX5OhbFJF/G9f8sifqTrJiYnAYLDOvNizwv7t9tFPD8JwaF3zM2S54O5/Vni2NxvwzSaW2w==",
-        "dependencies": {
-          "Microsoft.EntityFrameworkCore": "3.1.9"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Sqlite": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "sMFCWv/1UcsFQZeGQcbfPbEZKZ1oKZqWZXTbc7PEZVMIXu82nbavstdNQ84x5IBXJkxl8iW3zjChb/FRBr5uLQ==",
-        "dependencies": {
-          "Microsoft.EntityFrameworkCore.Sqlite.Core": "3.1.9",
-          "SQLitePCLRaw.bundle_e_sqlite3": "2.0.2"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Sqlite.Core": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Da6h8LdpJwKc1az9DMWt2Mt6gHXPRZqwiumV1Zx0AuM3EThyokVDzBGy2sti0AcBhcQMLJHPEr5R9xuiWvaYYQ==",
-        "dependencies": {
-          "Microsoft.Data.Sqlite.Core": "3.1.9",
-          "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
-          "Microsoft.EntityFrameworkCore.Relational": "3.1.9",
-          "Microsoft.Extensions.DependencyModel": "3.1.6"
-        }
-      },
-      "Microsoft.Extensions.ApiDescription.Server": {
-        "type": "Transitive",
-        "resolved": "3.0.0",
-        "contentHash": "LH4OE/76F6sOCslif7+Xh3fS/wUUrE5ryeXAMcoCnuwOQGT5Smw0p57IgDh/pHgHaGz/e+AmEQb7pRgb++wt0w=="
-      },
-      "Microsoft.Extensions.Caching.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "/2QsPAsUZD4qvftZkUKHRRRryPDXWh606/iNXPLrulwHLMr9JNsKBJWVqylT3qU92nJok5VoqSblkY9mSyxFyg==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Caching.Memory": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "/JrVMVetX/kpJQUIlJ6NLQ3zbF0yyryXpo4+uFCqYIUZzgmWk8DS/zSKcyj1tQ3410+vhDEAPngxC+hg0IlJeg==",
-        "dependencies": {
-          "Microsoft.Extensions.Caching.Abstractions": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "lqdkOGNeTMKG981Q7yWGlRiFbIlsRwTlMMiybT+WOzUCFBS/wc25tZgh7Wm/uRoBbWefgvokzmnea7ZjmFedmA==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "vOJxPKczaHpXeZFrxARxYwsEulhEouXc5aZGgMdkhV/iEXX9/pfjqKk76rTG+4CsJjHV+G/4eMhvOIaQMHENNA==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration.Binder": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "BG6HcT7tARYakftqfQu+cLksgIWG1NdxMY+igI12hdZrUK+WjS973NiRyuao/U9yyTeM9NPwRnC61hCmG3G3jg==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.DependencyInjection": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "ORqfrAACcvTInie1oGola5uky344/PiNfgayTPuZWV4WnSfIQZJQm/ZLpGshJE3h7TqwYaYElGazK/yaM2bFLA==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.DependencyInjection.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "8PkcaPwiTPOhqshoY4+rQUbz86X6YpLDLUqXOezh7L2A3pgpBmeBBByYIffofBlvQxDdQ0zB2DkWjbZWyCxRWg=="
-      },
-      "Microsoft.Extensions.DependencyModel": {
-        "type": "Transitive",
-        "resolved": "3.1.6",
-        "contentHash": "/UlDKULIVkLQYn1BaHcy/rc91ApDxJb7T75HcCbGdqwvxhnRQRKM2di1E70iCPMF9zsr6f4EgQTotBGxFIfXmw==",
-        "dependencies": {
-          "System.Text.Json": "4.7.2"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Q4SGwEFZKiZbpzPgdGbQUULxtcH1zXMOwCPKSm6QwVcOCGshf3QLfBh+O/GyFH4B0RfZ16nKyeW1mMONlRyjUw==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Embedded": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "nSEa8bH3fVdTYGqK4twOKLxxgKIW3cz9g9mrzhPh/CmdvGJWKRTIlBIZi7lz+lqNQpxean5vbAo84R/mU+JpGA==",
-        "dependencies": {
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Physical": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "HWDSsblTCQp7EEJJmnLzttIhFGzDu+DGqBbOvGCdFT0+pkCuBkn3EiWpEEcm5WMTO5njmsbLSK9ZuUUf2zPsFg==",
-        "dependencies": {
-          "Microsoft.Extensions.FileProviders.Abstractions": "3.1.9",
-          "Microsoft.Extensions.FileSystemGlobbing": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.FileSystemGlobbing": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "5bnewG1aBiSESPNwcXGIxDDRN95uqdy+fqZZ8Z63Et5rRNlAwAfXHOrg+FTht7UjHobjvtjzquMCbAWhWEPHIw=="
-      },
-      "Microsoft.Extensions.Logging": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "+V3i0jCQCO6IIOf6e+fL0SqrZd2x/Krug9EEL1JHa9R03RsbEpltCtjVY5hxedyuyuQKwvLoR12sCfu/9XEUAw==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection": "3.1.9",
-          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Logging.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "W5fbF8qVR9SMVVJqDQLIR7meWbev6Pu/lbrm7LDNr4Sp7HOotr4k2UULTdFSXOi5aoDdkQZpWnq0ZSpjrR3tjg=="
-      },
-      "Microsoft.Extensions.Logging.Configuration": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "hv6XsGgikrbkolBJdF1usl9R/nrliC5mifMqHMEY9zWcCLwNkXMJiS8p0lbosrnpVAMi4PbNx39DB51Dqscd0w==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "Microsoft.Extensions.Options.ConfigurationExtensions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Logging.Console": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "8Dusl1rkDivmvLrwj6QAo917xMHPiDBzG3IG3agiyDdtsC/fRp+1VN5iIN+O09PtEaMged2OLA6wCDwfSTSTZw==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "Microsoft.Extensions.Logging.Configuration": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.ObjectPool": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "pJMOnxuqmG37OjccfvtqVoo3bQGoN+0EJUzzp7+2uxSdioER82caAk6Yi/z5aysapn5XENNIIa7SaYnYKSS69A==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "Microsoft.Extensions.Options": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "EIb3G1DL+Rl9MvJR7LjI1wCy2nfTN4y8MflbOftn1HLYQBj/Rwl8kUbGTrSFE01c99Wm4ETjWVsjqKcpFvhPng==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Options.ConfigurationExtensions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "u5jh7RW+Ev81YqK1ZoBG0lftp2MA9xqXiTiRL46XzaPj2ScNUyiVbzcVY0fPbE27UOpT2hj+yPzRSOMIIo55UA==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.PlatformAbstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.0",
-        "contentHash": "zyjUzrOmuevOAJpIo3Mt5GmpALVYCVdLZ99keMbmCxxgQH7oxzU58kGHzE6hAgYEiWsdfMJLjVR7r+vSmaJmtg==",
-        "dependencies": {
-          "System.AppContext": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "Microsoft.Extensions.Primitives": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "IrHecH0eGG7/XoeEtv++oLg/sJHRNyeCqlA9RhAo6ig4GpOTjtDr32sBMYuuLtUq8ALahneWkrOzoBAwJ4L4iA=="
-      },
-      "Microsoft.Extensions.WebEncoders": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "TClNvczWRxF6bVPhn5EK3Y3QNi5jTP68Qur+5Fk+MQLPeBI18WN7X145DDJ6bFeNOwgdCHl73lHs5uZp9ish1A==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.IdentityModel.JsonWebTokens": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==",
-        "dependencies": {
-          "Microsoft.IdentityModel.Tokens": "6.8.0"
-        }
-      },
-      "Microsoft.IdentityModel.Logging": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg=="
-      },
-      "Microsoft.IdentityModel.Tokens": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.5.0",
-          "Microsoft.IdentityModel.Logging": "6.8.0",
-          "System.Security.Cryptography.Cng": "4.5.0"
-        }
-      },
-      "Microsoft.Net.Http.Headers": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "2F8USh4hR5xppvaxtw2EStX74Ih+HhRj7aQD1uaB9JmTGy478F7t4VU+IdZXauEDrvS7LYAyyhmOExsUFK3PAw==",
-        "dependencies": {
-          "System.Buffers": "4.0.0",
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Contracts": "4.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Text.Encoding": "4.0.11"
-        }
-      },
-      "Microsoft.NetCore.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "6qptTHUu1Wfszuf83NhU0IoAb4j7YWOpJs6oc6S4G/nI6aGGWKH/Xi5Vs9L/8lrI74ijEEzPcIwafSQW5ASHtA=="
-      },
-      "Microsoft.NETCore.Platforms": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
-      },
-      "Microsoft.NETCore.Targets": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
-      },
-      "Microsoft.NetFramework.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "JTfMic5fEFWICePbr7GXOGPranqS9Qxu2U/BZEcnnGbK1SFW8TxRyGp6O1L52xsbfOdqmzjc0t5ubhDrjj+Xpg=="
-      },
-      "Microsoft.TestPlatform.ObjectModel": {
-        "type": "Transitive",
-        "resolved": "16.7.1",
-        "contentHash": "FL+VpAC/nCCzj80MwX6L8gJD06u2m1SKcQQLAymDLFqNtgtI9h3J5n0mVN+s18qcMzybsmO9GK7rMuHYx11KMg==",
-        "dependencies": {
-          "NuGet.Frameworks": "5.0.0"
-        }
-      },
-      "Microsoft.TestPlatform.TestHost": {
-        "type": "Transitive",
-        "resolved": "16.7.1",
-        "contentHash": "mv7MnBDtqwQAjoH+AphE+Tu0dsF6x/c7Zs8umkb2McbvNALJdfBuWJQbiXGWqhNq7k8eMmnkNO6klJz4pkgekw==",
-        "dependencies": {
-          "Microsoft.TestPlatform.ObjectModel": "16.7.1",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "Microsoft.Win32.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "Namotion.Reflection": {
-        "type": "Transitive",
-        "resolved": "1.0.14",
-        "contentHash": "wuJGiFvGfehH2w7jAhMbCJt0/rvUuHyqSZn0sMhNTviDfBZRyX8LFlR/ndQcofkGWulPDfH5nKYTeGXE8xBHPA==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.3.0"
-        }
-      },
-      "NETStandard.Library": {
-        "type": "Transitive",
-        "resolved": "1.6.1",
-        "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.Win32.Primitives": "4.3.0",
-          "System.AppContext": "4.3.0",
-          "System.Collections": "4.3.0",
-          "System.Collections.Concurrent": "4.3.0",
-          "System.Console": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Diagnostics.Tools": "4.3.0",
-          "System.Diagnostics.Tracing": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Globalization.Calendars": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.Compression": "4.3.0",
-          "System.IO.Compression.ZipFile": "4.3.0",
-          "System.IO.FileSystem": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.Linq.Expressions": "4.3.0",
-          "System.Net.Http": "4.3.0",
-          "System.Net.Primitives": "4.3.0",
-          "System.Net.Sockets": "4.3.0",
-          "System.ObjectModel": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Extensions": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
-          "System.Runtime.Numerics": "4.3.0",
-          "System.Security.Cryptography.Algorithms": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Security.Cryptography.X509Certificates": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Text.Encoding.Extensions": "4.3.0",
-          "System.Text.RegularExpressions": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Threading.Tasks": "4.3.0",
-          "System.Threading.Timer": "4.3.0",
-          "System.Xml.ReaderWriter": "4.3.0",
-          "System.Xml.XDocument": "4.3.0"
-        }
-      },
-      "Newtonsoft.Json": {
-        "type": "Transitive",
-        "resolved": "12.0.2",
-        "contentHash": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA=="
-      },
-      "Newtonsoft.Json.Bson": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "5PYT/IqQ+UK31AmZiSS102R6EsTo+LGTSI8bp7WAUqDKaF4wHXD8U9u4WxTI1vc64tYi++8p3dk3WWNqPFgldw==",
-        "dependencies": {
-          "NETStandard.Library": "1.6.1",
-          "Newtonsoft.Json": "10.0.1"
-        }
-      },
-      "NJsonSchema": {
-        "type": "Transitive",
-        "resolved": "10.2.1",
-        "contentHash": "/BtWbYTusyoSgQkCB4eYijMfZotB/rfASDsl1k9evlkm5vlOP4s4Y09TOzBChU77d/qUABVYL1Xf+TB8E0Wfpw==",
-        "dependencies": {
-          "Namotion.Reflection": "1.0.14",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Annotations": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "/GO+35CjPYQTPS5/Q8udM5JAMEWVo8JsrkV2Uw3OW4/AJU9iOS7t6WJid6ZlkpLMjnW7oex9mvJ2EZNE4eOG/Q=="
-      },
-      "NSwag.AspNetCore": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "SNGlVSZoMyywBWueZBxl3B/nfaIM0fAcuNhTD/cfMKUn3Cn/Oi8d45HZY5vAPqczvppTbk4cZXyVwWDOfgiPbA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
-          "Microsoft.AspNetCore.StaticFiles": "1.0.4",
-          "Microsoft.Extensions.ApiDescription.Server": "3.0.0",
-          "Microsoft.Extensions.FileProviders.Embedded": "1.0.1",
-          "NSwag.Annotations": "13.8.2",
-          "NSwag.Core": "13.8.2",
-          "NSwag.Generation": "13.8.2",
-          "NSwag.Generation.AspNetCore": "13.8.2",
-          "System.IO.FileSystem": "4.3.0",
-          "System.Xml.XPath.XDocument": "4.0.1"
-        }
-      },
-      "NSwag.Core": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "Hm6pU9qFJuXLo3b27+JTXztfeuI/15Ob1sDsfUu4rchN0+bMogtn8Lia8KVbcalw/M+hXc0rWTFp5ueP23e+iA==",
-        "dependencies": {
-          "NJsonSchema": "10.2.1",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Generation": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "LBIrpHFRZeMMbqL1hdyGb7r8v+T52aOCARxwfAmzE+MlOHVpjsIxyNSXht9EzBFMbSH0tj7CK2Ugo7bm+zUssg==",
-        "dependencies": {
-          "NJsonSchema": "10.2.1",
-          "NSwag.Core": "13.8.2",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Generation.AspNetCore": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "0ydVv6OidspZ/MS6qmU8hswGtXwq5YZPg+2a2PHGD6jNp2Fef4j1wC3xa3hplDAq7cK+BgpyDKtvj9+X01+P5g==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.ApiExplorer": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
-          "NJsonSchema": "10.2.1",
-          "NSwag.Generation": "13.8.2"
-        }
-      },
-      "NuGet.Frameworks": {
-        "type": "Transitive",
-        "resolved": "5.0.0",
-        "contentHash": "c5JVjuVAm4f7E9Vj+v09Z9s2ZsqFDjBpcsyS3M9xRo0bEdm/LVZSzLxxNvfvAwRiiE8nwe1h2G4OwiwlzFKXlA=="
-      },
-      "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
-      },
-      "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
-      },
-      "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
-      },
-      "runtime.native.System": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0"
-        }
-      },
-      "runtime.native.System.IO.Compression": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0"
-        }
-      },
-      "runtime.native.System.Net.Http": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0"
-        }
-      },
-      "runtime.native.System.Security.Cryptography.Apple": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
-        "dependencies": {
-          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
-        }
-      },
-      "runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
-        "dependencies": {
-          "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
-          "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
-      },
-      "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
-      },
-      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
-      },
-      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
-      },
-      "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
-      },
-      "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
-      },
-      "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
-      },
-      "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
-      },
-      "SixLabors.ImageSharp": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "DjLoFNdUfsDP7RhPpr5hcUhl1XiejqBML9uDWuOUwCkc0Y+sG9IJLLbqSOi9XeoWqPviwdcDm1F8nKdF0qTYIQ=="
-      },
-      "SQLitePCLRaw.bundle_e_sqlite3": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "OVPI/nh5AqfLCIKhAYqjCa6AHhc7oKApGcGM3UhMRSerFiBx58nSpGwxVFdMgjOCWZR+fA49nzsnKlWp5hFo8w==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2",
-          "SQLitePCLRaw.lib.e_sqlite3": "2.0.2",
-          "SQLitePCLRaw.provider.dynamic_cdecl": "2.0.2"
-        }
-      },
-      "SQLitePCLRaw.core": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "TFSBX426OelS1tkaVC254NVVlrJIe9YLhWPkEvuqJj2104QpmDmEYOhfdfDJD1E/2SmqDhoRw1ek5cQHj8olcQ==",
-        "dependencies": {
-          "System.Memory": "4.5.3"
-        }
-      },
-      "SQLitePCLRaw.lib.e_sqlite3": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "S+Tsqe/M7wsc+9HeediI6UHtBKf2X586aRwhi1aBVLGe0WxkAo52O9ZxwEy/v8XMLefcrEMupd2e9CDlIT6QCw=="
-      },
-      "SQLitePCLRaw.provider.dynamic_cdecl": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "ZSwacbKJUsxJEZxwT23uZVrGbaIvXcADZDz5Sr66fikO5eehdcceDncjzwzTzWfW13di8gpTpstx3WJSt/Ci5Q==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2"
-        }
-      },
-      "System.AppContext": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
-        "dependencies": {
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Buffers": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Diagnostics.Tracing": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Collections": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Collections.Concurrent": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Diagnostics.Tracing": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.Collections.Immutable": {
-        "type": "Transitive",
-        "resolved": "1.7.1",
-        "contentHash": "B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q=="
-      },
-      "System.Collections.NonGeneric": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Collections.Specialized": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
-        "dependencies": {
-          "System.Collections.NonGeneric": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Globalization.Extensions": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.ComponentModel": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
-        "dependencies": {
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.ComponentModel.Annotations": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ=="
-      },
-      "System.ComponentModel.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
-        "dependencies": {
-          "System.ComponentModel": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.ComponentModel.TypeConverter": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Collections.NonGeneric": "4.3.0",
-          "System.Collections.Specialized": "4.3.0",
-          "System.ComponentModel": "4.3.0",
-          "System.ComponentModel.Primitives": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Extensions": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Reflection.TypeExtensions": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Configuration.ConfigurationManager": {
-        "type": "Transitive",
-        "resolved": "4.4.0",
-        "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==",
-        "dependencies": {
-          "System.Security.Cryptography.ProtectedData": "4.4.0"
-        }
-      },
-      "System.Console": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Text.Encoding": "4.3.0"
-        }
-      },
-      "System.Diagnostics.Contracts": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "HvQQjy712vnlpPxaloZYkuE78Gn353L0SJLJVeLcNASeg9c4qla2a1Xq8I7B3jZoDzKPtHTkyVO7AZ5tpeQGuA==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Diagnostics.Debug": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Diagnostics.DiagnosticSource": {
-        "type": "Transitive",
-        "resolved": "4.7.1",
-        "contentHash": "j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw=="
-      },
-      "System.Diagnostics.Tools": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Diagnostics.TraceSource": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0",
-          "runtime.native.System": "4.3.0"
-        }
-      },
-      "System.Diagnostics.Tracing": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Dynamic.Runtime": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.Linq.Expressions": "4.3.0",
-          "System.ObjectModel": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Emit": "4.3.0",
-          "System.Reflection.Emit.ILGeneration": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Reflection.TypeExtensions": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Globalization": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Globalization.Calendars": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Globalization": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Globalization.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Globalization": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0"
-        }
-      },
-      "System.IdentityModel.Tokens.Jwt": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==",
-        "dependencies": {
-          "Microsoft.IdentityModel.JsonWebTokens": "6.8.0",
-          "Microsoft.IdentityModel.Tokens": "6.8.0"
-        }
-      },
-      "System.IO": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.IO.Compression": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Buffers": "4.3.0",
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Threading.Tasks": "4.3.0",
-          "runtime.native.System": "4.3.0",
-          "runtime.native.System.IO.Compression": "4.3.0"
-        }
-      },
-      "System.IO.Compression.ZipFile": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
-        "dependencies": {
-          "System.Buffers": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.Compression": "4.3.0",
-          "System.IO.FileSystem": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Text.Encoding": "4.3.0"
-        }
-      },
-      "System.IO.FileSystem": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.IO.FileSystem.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
-        "dependencies": {
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.IO.Pipelines": {
-        "type": "Transitive",
-        "resolved": "4.7.3",
-        "contentHash": "zykThu9scJyg2Yeg27GMZCbjzniIsmjtNP5x6kQCd/8rEeKXRy20fP2NOMS7xQ+0pS/E85LZQA+K1aoQLxiUdw=="
-      },
-      "System.Linq": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0"
-        }
-      },
-      "System.Linq.Expressions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.ObjectModel": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Emit": "4.3.0",
-          "System.Reflection.Emit.ILGeneration": "4.3.0",
-          "System.Reflection.Emit.Lightweight": "4.3.0",
-          "System.Reflection.Extensions": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Reflection.TypeExtensions": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Memory": {
-        "type": "Transitive",
-        "resolved": "4.5.3",
-        "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
-      },
-      "System.Net.Http": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Diagnostics.DiagnosticSource": "4.3.0",
-          "System.Diagnostics.Tracing": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Globalization.Extensions": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.FileSystem": "4.3.0",
-          "System.Net.Primitives": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Security.Cryptography.Algorithms": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.OpenSsl": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Security.Cryptography.X509Certificates": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Threading.Tasks": "4.3.0",
-          "runtime.native.System": "4.3.0",
-          "runtime.native.System.Net.Http": "4.3.0",
-          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "System.Net.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Handles": "4.3.0"
-        }
-      },
-      "System.Net.Sockets": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.Net.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.Net.WebSockets": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "2KJo8hir6Edi9jnMDAMhiJoI691xRBmKcbNpwjrvpIMOCTYOtBpSsSEGBxBDV7PKbasJNaFp1+PZz1D7xS41Hg==",
-        "dependencies": {
-          "Microsoft.Win32.Primitives": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.ObjectModel": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Reflection": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Reflection.Emit": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
-      },
-      "System.Reflection.Emit.ILGeneration": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
-        "dependencies": {
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Reflection.Emit.Lightweight": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
-        "dependencies": {
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Emit.ILGeneration": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Reflection.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Reflection": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Reflection.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Reflection.TypeExtensions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
-        "dependencies": {
-          "System.Reflection": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Resources.ResourceManager": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Globalization": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Runtime": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0"
-        }
-      },
-      "System.Runtime.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Runtime.Handles": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Runtime.InteropServices": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Handles": "4.3.0"
-        }
-      },
-      "System.Runtime.InteropServices.RuntimeInformation": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
-        "dependencies": {
-          "System.Reflection": "4.3.0",
-          "System.Reflection.Extensions": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Threading": "4.3.0",
-          "runtime.native.System": "4.3.0"
-        }
-      },
-      "System.Runtime.Numerics": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
-        "dependencies": {
-          "System.Globalization": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0"
-        }
-      },
-      "System.Runtime.Serialization.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.1.1",
-        "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
-        "dependencies": {
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Security.Claims": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "4Jlp0OgJLS/Voj1kyFP6MJlIYp3crgfH8kNQk2p7+4JYfc1aAmh9PZyAMMbDhuoolGNtux9HqSOazsioRiDvCw==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Security.Principal": "4.0.1"
-        }
-      },
-      "System.Security.Cryptography.Algorithms": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Collections": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Runtime.Numerics": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
-          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "System.Security.Cryptography.Cng": {
-        "type": "Transitive",
-        "resolved": "4.5.0",
-        "contentHash": "WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A=="
-      },
-      "System.Security.Cryptography.Csp": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Security.Cryptography.Algorithms": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0"
-        }
-      },
-      "System.Security.Cryptography.Encoding": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Collections": "4.3.0",
-          "System.Collections.Concurrent": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Runtime.Numerics": "4.3.0",
-          "System.Security.Cryptography.Algorithms": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "System.Security.Cryptography.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.Security.Cryptography.ProtectedData": {
-        "type": "Transitive",
-        "resolved": "4.4.0",
-        "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
-      },
-      "System.Security.Cryptography.X509Certificates": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Globalization.Calendars": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.FileSystem": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Runtime.Numerics": "4.3.0",
-          "System.Security.Cryptography.Algorithms": "4.3.0",
-          "System.Security.Cryptography.Cng": "4.3.0",
-          "System.Security.Cryptography.Csp": "4.3.0",
-          "System.Security.Cryptography.Encoding": "4.3.0",
-          "System.Security.Cryptography.OpenSsl": "4.3.0",
-          "System.Security.Cryptography.Primitives": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0",
-          "runtime.native.System": "4.3.0",
-          "runtime.native.System.Net.Http": "4.3.0",
-          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
-        }
-      },
-      "System.Security.Principal": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "On+SKhXY5rzxh/S8wlH1Rm0ogBlu7zyHNxeNBiXauNrhHRXAe9EuX8Yl5IOzLPGU5Z4kLWHMvORDOCG8iu9hww==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Text.Encoding": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Text.Encoding.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0",
-          "System.Text.Encoding": "4.3.0"
-        }
-      },
-      "System.Text.Encodings.Web": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "GgJDO6/1bW6kkttxIiPK2jsqllQ3ifaeeBAJJrcoJq0lAclIZsAZZdEqi6JHq+QLZXL2UsjyWb8K8EOH7nOSPw==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Text.Json": {
-        "type": "Transitive",
-        "resolved": "4.7.2",
-        "contentHash": "TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg=="
-      },
-      "System.Text.RegularExpressions": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
-        "dependencies": {
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Threading": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
-        "dependencies": {
-          "System.Runtime": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.Threading.Tasks": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Threading.Tasks.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.5.1",
-        "contentHash": "WSKUTtLhPR8gllzIWO2x6l4lmAIfbyMAiTlyXAis4QBDonXK4b4S6F8zGARX4/P8wH3DH+sLdhamCiHn+fTU1A=="
-      },
-      "System.Threading.Timer": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Xml.ReaderWriter": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.FileSystem": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Runtime.InteropServices": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Text.Encoding.Extensions": "4.3.0",
-          "System.Text.RegularExpressions": "4.3.0",
-          "System.Threading.Tasks": "4.3.0",
-          "System.Threading.Tasks.Extensions": "4.3.0"
-        }
-      },
-      "System.Xml.XDocument": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Diagnostics.Tools": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Reflection": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Xml.ReaderWriter": "4.3.0"
-        }
-      },
-      "System.Xml.XmlDocument": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading": "4.3.0",
-          "System.Xml.ReaderWriter": "4.3.0"
-        }
-      },
-      "System.Xml.XPath": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Xml.ReaderWriter": "4.0.11"
-        }
-      },
-      "System.Xml.XPath.XDocument": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Xml.ReaderWriter": "4.0.11",
-          "System.Xml.XDocument": "4.0.11",
-          "System.Xml.XPath": "4.0.1"
-        }
-      },
-      "xunit.abstractions": {
-        "type": "Transitive",
-        "resolved": "2.0.3",
-        "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
-      },
-      "xunit.analyzers": {
-        "type": "Transitive",
-        "resolved": "0.10.0",
-        "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg=="
-      },
-      "xunit.assert": {
-        "type": "Transitive",
-        "resolved": "2.4.1",
-        "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==",
-        "dependencies": {
-          "NETStandard.Library": "1.6.1"
-        }
-      },
-      "xunit.core": {
-        "type": "Transitive",
-        "resolved": "2.4.1",
-        "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==",
-        "dependencies": {
-          "xunit.extensibility.core": "[2.4.1]",
-          "xunit.extensibility.execution": "[2.4.1]"
-        }
-      },
-      "xunit.extensibility.core": {
-        "type": "Transitive",
-        "resolved": "2.4.1",
-        "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==",
-        "dependencies": {
-          "NETStandard.Library": "1.6.1",
-          "xunit.abstractions": "2.0.3"
-        }
-      },
-      "xunit.extensibility.execution": {
-        "type": "Transitive",
-        "resolved": "2.4.1",
-        "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==",
-        "dependencies": {
-          "NETStandard.Library": "1.6.1",
-          "xunit.extensibility.core": "[2.4.1]"
-        }
-      },
-      "timeline": {
-        "type": "Project",
-        "dependencies": {
-          "AutoMapper": "10.1.1",
-          "AutoMapper.Extensions.Microsoft.DependencyInjection": "8.1.0",
-          "Microsoft.AspNetCore.SpaServices.Extensions": "3.1.9",
-          "Microsoft.EntityFrameworkCore": "3.1.9",
-          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
-          "Microsoft.EntityFrameworkCore.Sqlite": "3.1.9",
-          "NSwag.AspNetCore": "13.8.2",
-          "SixLabors.ImageSharp": "1.0.1",
-          "System.IdentityModel.Tokens.Jwt": "6.8.0",
-          "Timeline.ErrorCodes": "1.0.0"
-        }
-      },
-      "timeline.errorcodes": {
-        "type": "Project"
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/Timeline.sln b/Timeline.sln
deleted file mode 100644
index 40a32ee9..00000000
--- a/Timeline.sln
+++ /dev/null
@@ -1,42 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29709.97
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline", "Timeline\Timeline.csproj", "{A34D323C-5233-4754-B14F-4819CE9C27CA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.Tests", "Timeline.Tests\Timeline.Tests.csproj", "{3D76D578-37BC-43C2-97BF-9C6DD3825F10}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.ErrorCodes", "Timeline.ErrorCodes\Timeline.ErrorCodes.csproj", "{1044E3B0-1010-47CA-956E-B6E8FE87055B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Timeline.ErrorCodes.CodeGenerator", "Timeline.ErrorCodes.CodeGenerator\Timeline.ErrorCodes.CodeGenerator.csproj", "{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A34D323C-5233-4754-B14F-4819CE9C27CA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{3D76D578-37BC-43C2-97BF-9C6DD3825F10}.Release|Any CPU.Build.0 = Release|Any CPU
-		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{1044E3B0-1010-47CA-956E-B6E8FE87055B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D0263FD3-DC6A-4676-A746-FDAFCDACC5F2}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {9A7526E5-E68F-465C-9E0F-88BF6E040F14}
-	EndGlobalSection
-EndGlobal
diff --git a/Timeline/Auth/Attribute.cs b/Timeline/Auth/Attribute.cs
deleted file mode 100644
index 86d0109b..00000000
--- a/Timeline/Auth/Attribute.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Microsoft.AspNetCore.Authorization;
-using Timeline.Entities;
-
-namespace Timeline.Auth
-{
-    public class AdminAuthorizeAttribute : AuthorizeAttribute
-    {
-        public AdminAuthorizeAttribute()
-        {
-            Roles = UserRoles.Admin;
-        }
-    }
-
-    public class UserAuthorizeAttribute : AuthorizeAttribute
-    {
-        public UserAuthorizeAttribute()
-        {
-            Roles = UserRoles.User;
-        }
-    }
-}
diff --git a/Timeline/Auth/MyAuthenticationHandler.cs b/Timeline/Auth/MyAuthenticationHandler.cs
deleted file mode 100644
index 3c97c329..00000000
--- a/Timeline/Auth/MyAuthenticationHandler.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-using Microsoft.AspNetCore.Authentication;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Options;
-using Microsoft.Net.Http.Headers;
-using System;
-using System.Globalization;
-using System.Linq;
-using System.Security.Claims;
-using System.Text.Encodings.Web;
-using System.Threading.Tasks;
-using Timeline.Services;
-using static Timeline.Resources.Authentication.AuthHandler;
-
-namespace Timeline.Auth
-{
-    public static class AuthenticationConstants
-    {
-        public const string Scheme = "Bearer";
-        public const string DisplayName = "My Jwt Auth Scheme";
-    }
-
-    public class MyAuthenticationOptions : AuthenticationSchemeOptions
-    {
-        /// <summary>
-        /// The query param key to search for token. If null then query params are not searched for token. Default to <c>"token"</c>.
-        /// </summary>
-        public string TokenQueryParamKey { get; set; } = "token";
-    }
-
-    public class MyAuthenticationHandler : AuthenticationHandler<MyAuthenticationOptions>
-    {
-        private readonly ILogger<MyAuthenticationHandler> _logger;
-        private readonly IUserTokenManager _userTokenManager;
-
-        public MyAuthenticationHandler(IOptionsMonitor<MyAuthenticationOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, IUserTokenManager userTokenManager)
-            : base(options, logger, encoder, clock)
-        {
-            _logger = logger.CreateLogger<MyAuthenticationHandler>();
-            _userTokenManager = userTokenManager;
-        }
-
-        // return null if no token is found
-        private string? ExtractToken()
-        {
-            // check the authorization header
-            string header = Request.Headers[HeaderNames.Authorization];
-            if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.InvariantCultureIgnoreCase))
-            {
-                var token = header.Substring("Bearer ".Length).Trim();
-                _logger.LogInformation(LogTokenFoundInHeader, token);
-                return token;
-            }
-
-            // check the query params
-            var paramQueryKey = Options.TokenQueryParamKey;
-            if (!string.IsNullOrEmpty(paramQueryKey))
-            {
-                string token = Request.Query[paramQueryKey];
-                if (!string.IsNullOrEmpty(token))
-                {
-                    _logger.LogInformation(LogTokenFoundInQuery, paramQueryKey, token);
-                    return token;
-                }
-            }
-
-            // not found anywhere then return null
-            return null;
-        }
-
-        protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
-        {
-            var token = ExtractToken();
-            if (string.IsNullOrEmpty(token))
-            {
-                _logger.LogInformation(LogTokenNotFound);
-                return AuthenticateResult.NoResult();
-            }
-
-            try
-            {
-                var userInfo = await _userTokenManager.VerifyToken(token);
-
-                var identity = new ClaimsIdentity(AuthenticationConstants.Scheme);
-                identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userInfo.Id!.Value.ToString(CultureInfo.InvariantCulture), ClaimValueTypes.Integer64));
-                identity.AddClaim(new Claim(identity.NameClaimType, userInfo.Username, ClaimValueTypes.String));
-                identity.AddClaims(UserRoleConvert.ToArray(userInfo.Administrator!.Value).Select(role => new Claim(identity.RoleClaimType, role, ClaimValueTypes.String)));
-
-                var principal = new ClaimsPrincipal();
-                principal.AddIdentity(identity);
-
-                return AuthenticateResult.Success(new AuthenticationTicket(principal, AuthenticationConstants.Scheme));
-            }
-            catch (Exception e) when (!(e is ArgumentException))
-            {
-                _logger.LogInformation(e, LogTokenValidationFail);
-                return AuthenticateResult.Fail(e);
-            }
-        }
-    }
-}
diff --git a/Timeline/Auth/PrincipalExtensions.cs b/Timeline/Auth/PrincipalExtensions.cs
deleted file mode 100644
index ad7a887f..00000000
--- a/Timeline/Auth/PrincipalExtensions.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-﻿using System.Security.Principal;
-using Timeline.Entities;
-
-namespace Timeline.Auth
-{
-    internal static class PrincipalExtensions
-    {
-        internal static bool IsAdministrator(this IPrincipal principal)
-        {
-            return principal.IsInRole(UserRoles.Admin);
-        }
-    }
-}
diff --git a/Timeline/ClientApp/.babelrc b/Timeline/ClientApp/.babelrc
deleted file mode 100644
index 092f2f73..00000000
--- a/Timeline/ClientApp/.babelrc
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "presets": [
-    "@babel/env",
-    "@babel/preset-react"
-  ],
-  "plugins": [
-    "@babel/plugin-syntax-dynamic-import",
-    "@babel/plugin-proposal-class-properties",
-    "@babel/plugin-proposal-optional-chaining",
-    "@babel/plugin-proposal-nullish-coalescing-operator",
-    [
-      "@babel/plugin-proposal-decorators",
-      {
-        "decoratorsBeforeExport": true
-      }
-    ],
-    [
-      "babel-plugin-transform-builtin-extend",
-      {
-        "globals": [
-          "Error",
-          "Array"
-        ]
-      }
-    ]
-  ]
-}
\ No newline at end of file
diff --git a/Timeline/ClientApp/.editorconfig b/Timeline/ClientApp/.editorconfig
deleted file mode 100644
index 779719e0..00000000
--- a/Timeline/ClientApp/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-root = true
-end_of_line = lf
-
-[*.ts]
-tab_width = 2
-
-[*.tsx]
-tab_width = 2
-
-[*.css]
-tab_width = 2
-
-[*.sass]
-tab_width = 2
diff --git a/Timeline/ClientApp/.eslintignore b/Timeline/ClientApp/.eslintignore
deleted file mode 100644
index f29f7466..00000000
--- a/Timeline/ClientApp/.eslintignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.yarn
-node_modules
-dist
-webpack.*.js
-.eslintrc.js
-postcss.config.js
diff --git a/Timeline/ClientApp/.eslintrc.js b/Timeline/ClientApp/.eslintrc.js
deleted file mode 100644
index 900489ed..00000000
--- a/Timeline/ClientApp/.eslintrc.js
+++ /dev/null
@@ -1,47 +0,0 @@
-module.exports = {
-  env: {
-    browser: true,
-    es2020: true,
-  },
-  extends: [
-    "eslint:recommended",
-    "plugin:react/recommended",
-    "plugin:@typescript-eslint/eslint-recommended",
-    "plugin:@typescript-eslint/recommended",
-    "plugin:@typescript-eslint/recommended-requiring-type-checking",
-    "plugin:prettier/recommended",
-    "prettier/react",
-    "prettier/@typescript-eslint",
-    "plugin:react-hooks/recommended",
-  ],
-  globals: {
-    Atomics: "readonly",
-    SharedArrayBuffer: "readonly",
-  },
-  parser: "@typescript-eslint/parser",
-  parserOptions: {
-    project: ["./src/app/tsconfig.json", "./src/sw/tsconfig.json"],
-    ecmaFeatures: {
-      jsx: true,
-    },
-    sourceType: "module",
-  },
-  plugins: ["react", "@typescript-eslint", "react-hooks"],
-  settings: {
-    react: {
-      version: "detect",
-    },
-  },
-  rules: {
-    "react/prop-types": "off",
-    "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
-    "@typescript-eslint/explicit-function-return-type": [
-      "warn",
-      {
-        allowExpressions: true,
-        allowTypedFunctionExpressions: true,
-        allowHigherOrderFunctions: true,
-      },
-    ],
-  },
-};
diff --git a/Timeline/ClientApp/.gitattributes b/Timeline/ClientApp/.gitattributes
deleted file mode 100644
index c1aa21ac..00000000
--- a/Timeline/ClientApp/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-.yarn/** linguist-vendored
\ No newline at end of file
diff --git a/Timeline/ClientApp/.gitignore b/Timeline/ClientApp/.gitignore
deleted file mode 100644
index 1de0b58f..00000000
--- a/Timeline/ClientApp/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-
-.yarn/*
-!.yarn/cache
-!.yarn/releases
-!.yarn/plugins
-!.yarn/sdks
-!.yarn/versions
-
-# testing
-/coverage
-
-# production
-/build
-
-# misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-.vscode/launch.json
-
-/dist
\ No newline at end of file
diff --git a/Timeline/ClientApp/.pnp.js b/Timeline/ClientApp/.pnp.js
deleted file mode 100644
index af643e73..00000000
--- a/Timeline/ClientApp/.pnp.js
+++ /dev/null
@@ -1,24623 +0,0 @@
-#!/usr/bin/env node
-/* eslint-disable */
-
-try {
-  Object.freeze({}).detectStrictMode = true;
-} catch (error) {
-  throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);
-}
-
-var __non_webpack_module__ = module;
-
-function $$SETUP_STATE(hydrateRuntimeState, basePath) {
-  return hydrateRuntimeState({
-    "__info": [
-      "This file is automatically generated. Do not touch it, or risk",
-      "your modifications being lost. We also recommend you not to read",
-      "it either without using the @yarnpkg/pnp package, as the data layout",
-      "is entirely unspecified and WILL change from a version to another."
-    ],
-    "dependencyTreeRoots": [
-      {
-        "name": "timeline",
-        "reference": "workspace:."
-      }
-    ],
-    "enableTopLevelFallback": true,
-    "ignorePatternData": "(^(?:\\.yarn\\/sdks(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)|$))$)",
-    "fallbackExclusionList": [
-      ["timeline", ["workspace:."]]
-    ],
-    "fallbackPool": [
-      [
-        "@babel/core",
-        "npm:7.12.3"
-      ],
-      [
-        "@babel/plugin-proposal-class-properties",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/plugin-proposal-decorators",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/plugin-proposal-nullish-coalescing-operator",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/plugin-proposal-optional-chaining",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/plugin-syntax-dynamic-import",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"
-      ],
-      [
-        "@babel/preset-env",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/preset-react",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@babel/preset-typescript",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"
-      ],
-      [
-        "@hot-loader/react-dom",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"
-      ],
-      [
-        "@types/classnames",
-        "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"
-      ],
-      [
-        "@types/lodash",
-        "npm:4.14.162"
-      ],
-      [
-        "@types/node",
-        "npm:14.14.5"
-      ],
-      [
-        "@types/react",
-        "npm:16.9.53"
-      ],
-      [
-        "@types/react-dom",
-        "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"
-      ],
-      [
-        "@types/react-responsive",
-        "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"
-      ],
-      [
-        "@types/react-router",
-        "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"
-      ],
-      [
-        "@types/react-router-bootstrap",
-        "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"
-      ],
-      [
-        "@types/react-router-dom",
-        "npm:5.1.6"
-      ],
-      [
-        "@types/webpack-env",
-        "npm:1.15.3"
-      ],
-      [
-        "@types/xregexp",
-        "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"
-      ],
-      [
-        "@typescript-eslint/eslint-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"
-      ],
-      [
-        "@typescript-eslint/parser",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"
-      ],
-      [
-        "@yarnpkg/pnpify",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"
-      ],
-      [
-        "axios",
-        "npm:0.21.0"
-      ],
-      [
-        "babel-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"
-      ],
-      [
-        "babel-plugin-transform-builtin-extend",
-        "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"
-      ],
-      [
-        "bootstrap",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"
-      ],
-      [
-        "bootstrap-icons",
-        "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"
-      ],
-      [
-        "classnames",
-        "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"
-      ],
-      [
-        "clean-webpack-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"
-      ],
-      [
-        "clsx",
-        "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"
-      ],
-      [
-        "copy-webpack-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"
-      ],
-      [
-        "core-js",
-        "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"
-      ],
-      [
-        "css-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"
-      ],
-      [
-        "eslint",
-        "npm:7.12.1"
-      ],
-      [
-        "eslint-config-prettier",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"
-      ],
-      [
-        "eslint-plugin-import",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"
-      ],
-      [
-        "eslint-plugin-prettier",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"
-      ],
-      [
-        "eslint-plugin-react",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"
-      ],
-      [
-        "eslint-plugin-react-hooks",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"
-      ],
-      [
-        "file-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"
-      ],
-      [
-        "html-webpack-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"
-      ],
-      [
-        "http-server",
-        "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"
-      ],
-      [
-        "i18next",
-        "npm:19.8.3"
-      ],
-      [
-        "i18next-browser-languagedetector",
-        "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"
-      ],
-      [
-        "localforage",
-        "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"
-      ],
-      [
-        "lodash",
-        "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"
-      ],
-      [
-        "mini-css-extract-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"
-      ],
-      [
-        "pepjs",
-        "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"
-      ],
-      [
-        "postcss",
-        "npm:8.1.4"
-      ],
-      [
-        "postcss-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"
-      ],
-      [
-        "postcss-preset-env",
-        "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"
-      ],
-      [
-        "prettier",
-        "npm:2.1.2"
-      ],
-      [
-        "react",
-        "npm:17.0.1"
-      ],
-      [
-        "react-bootstrap",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"
-      ],
-      [
-        "react-dom",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"
-      ],
-      [
-        "react-hot-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"
-      ],
-      [
-        "react-i18next",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"
-      ],
-      [
-        "react-inlinesvg",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"
-      ],
-      [
-        "react-responsive",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
-      ],
-      [
-        "react-router",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"
-      ],
-      [
-        "react-router-bootstrap",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"
-      ],
-      [
-        "react-router-dom",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"
-      ],
-      [
-        "regenerator-runtime",
-        "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"
-      ],
-      [
-        "rxjs",
-        "npm:6.6.3"
-      ],
-      [
-        "sass",
-        "npm:1.27.0"
-      ],
-      [
-        "sass-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"
-      ],
-      [
-        "style-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"
-      ],
-      [
-        "ts-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"
-      ],
-      [
-        "typescript",
-        "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"
-      ],
-      [
-        "url-loader",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"
-      ],
-      [
-        "webpack",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"
-      ],
-      [
-        "webpack-chain",
-        "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"
-      ],
-      [
-        "webpack-cli",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"
-      ],
-      [
-        "webpack-dev-server",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"
-      ],
-      [
-        "workbox-precaching",
-        "npm:5.1.4"
-      ],
-      [
-        "workbox-routing",
-        "npm:5.1.4"
-      ],
-      [
-        "workbox-strategies",
-        "npm:5.1.4"
-      ],
-      [
-        "workbox-webpack-plugin",
-        "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"
-      ],
-      [
-        "workbox-window",
-        "npm:5.1.4"
-      ],
-      [
-        "xregexp",
-        "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"
-      ]
-    ],
-    "locationBlacklistData": [
-    ],
-    "packageRegistryData": [
-      [null, [
-        [null, {
-          "packageLocation": "./",
-          "packageDependencies": [
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
-            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
-            ["@types/lodash", "npm:4.14.162"],
-            ["@types/node", "npm:14.14.5"],
-            ["@types/react", "npm:16.9.53"],
-            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
-            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
-            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
-            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
-            ["@types/react-router-dom", "npm:5.1.6"],
-            ["@types/webpack-env", "npm:1.15.3"],
-            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"],
-            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
-            ["axios", "npm:0.21.0"],
-            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
-            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
-            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
-            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"],
-            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
-            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
-            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"],
-            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
-            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"],
-            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
-            ["eslint", "npm:7.12.1"],
-            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
-            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
-            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
-            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
-            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
-            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
-            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
-            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
-            ["i18next", "npm:19.8.3"],
-            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
-            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
-            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"],
-            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
-            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"],
-            ["postcss", "npm:8.1.4"],
-            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
-            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
-            ["prettier", "npm:2.1.2"],
-            ["react", "npm:17.0.1"],
-            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
-            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
-            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
-            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
-            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
-            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
-            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
-            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"],
-            ["rxjs", "npm:6.6.3"],
-            ["sass", "npm:1.27.0"],
-            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
-            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
-            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
-            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
-            ["workbox-precaching", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"],
-            ["workbox-strategies", "npm:5.1.4"],
-            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
-            ["workbox-window", "npm:5.1.4"],
-            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"]
-          ],
-          "linkType": "SOFT",
-        }]
-      ]],
-      ["@arcanis/slice-ansi", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/@arcanis-slice-ansi-npm-1.0.2-3399f11032-1b45393630.zip/node_modules/@arcanis/slice-ansi/",
-          "packageDependencies": [
-            ["@arcanis/slice-ansi", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"],
-            ["grapheme-splitter", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/code-frame", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.10.4-d60353f0ee-05245d3b22.zip/node_modules/@babel/code-frame/",
-          "packageDependencies": [
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/highlight", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/compat-data", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.10.5-db91396185-788af12585.zip/node_modules/@babel/compat-data/",
-          "packageDependencies": [
-            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.12.1-ff8fb4ad3c-07bc6cfe7c.zip/node_modules/@babel/compat-data/",
-          "packageDependencies": [
-            ["@babel/compat-data", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/core", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-core-npm-7.10.5-043d657282-1b7ddcb578.zip/node_modules/@babel/core/",
-          "packageDependencies": [
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helpers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"],
-            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"],
-            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.3", {
-          "packageLocation": "./.yarn/cache/@babel-core-npm-7.12.3-209b619ca0-110eb092da.zip/node_modules/@babel/core/",
-          "packageDependencies": [
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/generator", "npm:7.12.1"],
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helpers", "npm:7.12.1"],
-            ["@babel/parser", "npm:7.12.3"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"],
-            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"],
-            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/generator", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-generator-npm-7.10.5-71f4e9529f-6e3fd80652.zip/node_modules/@babel/generator/",
-          "packageDependencies": [
-            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"],
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-generator-npm-7.12.1-0393b23d99-e0f5f9af4f.zip/node_modules/@babel/generator/",
-          "packageDependencies": [
-            ["@babel/generator", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"],
-            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"],
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-annotate-as-pure", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.10.4-5e73462a5b-535cdf631e.zip/node_modules/@babel/helper-annotate-as-pure/",
-          "packageDependencies": [
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-builder-binary-assignment-operator-visitor", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.10.4-3a79b20e7c-369530a197.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/",
-          "packageDependencies": [
-            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
-            ["@babel/helper-explode-assignable-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-builder-react-jsx", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-npm-7.10.4-cd8f2b293a-f14f786b5e.zip/node_modules/@babel/helper-builder-react-jsx/",
-          "packageDependencies": [
-            ["@babel/helper-builder-react-jsx", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-builder-react-jsx-experimental", [
-        ["npm:7.12.4", {
-          "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-experimental-npm-7.12.4-306a4f5134-246b77aedf.zip/node_modules/@babel/helper-builder-react-jsx-experimental/",
-          "packageDependencies": [
-            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-module-imports", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-compilation-targets", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-5494b19fb6/0/cache/@babel-helper-compilation-targets-npm-7.10.4-a08cf328fe-7603388e45.zip/node_modules/@babel/helper-compilation-targets/",
-          "packageDependencies": [
-            ["@babel/helper-compilation-targets", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"],
-            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-29b8888832/0/cache/@babel-helper-compilation-targets-npm-7.12.1-e64d3ac038-a1b750f327.zip/node_modules/@babel/helper-compilation-targets/",
-          "packageDependencies": [
-            ["@babel/helper-compilation-targets", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/compat-data", "npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-validator-option", "npm:7.12.1"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-create-class-features-plugin", [
-        ["virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-a0ec9b69e6/0/cache/@babel-helper-create-class-features-plugin-npm-7.12.1-fc3d37998d-d686eae70d.zip/node_modules/@babel/helper-create-class-features-plugin/",
-          "packageDependencies": [
-            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.12.1"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-5cd799b4bc/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-80d2a751d6-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/",
-          "packageDependencies": [
-            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-create-regexp-features-plugin", [
-        ["virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-8e53062a5c/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-286ead1d54-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
-          "packageDependencies": [
-            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
-            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-d5d39da724/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-286ead1d54-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
-          "packageDependencies": [
-            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
-            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-71fb705426/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.12.1-ad23561fb3-bf4b72eaed.zip/node_modules/@babel/helper-create-regexp-features-plugin/",
-          "packageDependencies": [
-            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
-            ["regexpu-core", "npm:4.7.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-define-map", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-define-map-npm-7.10.5-5a5c5cfe1a-964cab640d.zip/node_modules/@babel/helper-define-map/",
-          "packageDependencies": [
-            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-explode-assignable-expression", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.10.4-35cfe3b5dc-3348549a83.zip/node_modules/@babel/helper-explode-assignable-expression/",
-          "packageDependencies": [
-            ["@babel/helper-explode-assignable-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-function-name", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.10.4-ff6a6b30cc-41ab8f48bb.zip/node_modules/@babel/helper-function-name/",
-          "packageDependencies": [
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-get-function-arity", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-get-function-arity-npm-7.10.4-4a5869df9b-4f0ddd4340.zip/node_modules/@babel/helper-get-function-arity/",
-          "packageDependencies": [
-            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-hoist-variables", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.10.4-6ecc145822-0bc1976366.zip/node_modules/@babel/helper-hoist-variables/",
-          "packageDependencies": [
-            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-member-expression-to-functions", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.10.5-bc2b927e68-f239d2dfdb.zip/node_modules/@babel/helper-member-expression-to-functions/",
-          "packageDependencies": [
-            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.12.1-cae2fe0eb8-ae0cd0594b.zip/node_modules/@babel/helper-member-expression-to-functions/",
-          "packageDependencies": [
-            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-module-imports", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.10.4-6285a48cf9-84d03b58e7.zip/node_modules/@babel/helper-module-imports/",
-          "packageDependencies": [
-            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.12.1-05e0e0f572-261205f2e2.zip/node_modules/@babel/helper-module-imports/",
-          "packageDependencies": [
-            ["@babel/helper-module-imports", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-module-transforms", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.10.5-670b9a032e-02a2b60705.zip/node_modules/@babel/helper-module-transforms/",
-          "packageDependencies": [
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
-            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.12.1-c42d2455d3-902ed2b8e9.zip/node_modules/@babel/helper-module-transforms/",
-          "packageDependencies": [
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helper-module-imports", "npm:7.12.1"],
-            ["@babel/helper-replace-supers", "npm:7.12.1"],
-            ["@babel/helper-simple-access", "npm:7.12.1"],
-            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-optimise-call-expression", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.10.4-b0f3f8cb59-70dd5a6daf.zip/node_modules/@babel/helper-optimise-call-expression/",
-          "packageDependencies": [
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-plugin-utils", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.10.4-cf0f7602ce-9f617e619a.zip/node_modules/@babel/helper-plugin-utils/",
-          "packageDependencies": [
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-regex", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-regex-npm-7.10.5-224e7c8b7c-956b9f22da.zip/node_modules/@babel/helper-regex/",
-          "packageDependencies": [
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-remap-async-to-generator", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.10.4-d52ad69f4b-258395dbab.zip/node_modules/@babel/helper-remap-async-to-generator/",
-          "packageDependencies": [
-            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.12.1-ed3338b613-8bc24e91f1.zip/node_modules/@babel/helper-remap-async-to-generator/",
-          "packageDependencies": [
-            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-replace-supers", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.10.4-e79f3d5cdf-2d7e0627cd.zip/node_modules/@babel/helper-replace-supers/",
-          "packageDependencies": [
-            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
-            ["@babel/helper-member-expression-to-functions", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.12.1-59788d975f-e745f78b48.zip/node_modules/@babel/helper-replace-supers/",
-          "packageDependencies": [
-            ["@babel/helper-replace-supers", "npm:7.12.1"],
-            ["@babel/helper-member-expression-to-functions", "npm:7.12.1"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-simple-access", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.10.4-1efd2d09c0-a7ce52a229.zip/node_modules/@babel/helper-simple-access/",
-          "packageDependencies": [
-            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.12.1-18caff947e-ca44e3f694.zip/node_modules/@babel/helper-simple-access/",
-          "packageDependencies": [
-            ["@babel/helper-simple-access", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-skip-transparent-expression-wrappers", [
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-skip-transparent-expression-wrappers-npm-7.12.1-115c18dee8-2e690ed565.zip/node_modules/@babel/helper-skip-transparent-expression-wrappers/",
-          "packageDependencies": [
-            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-split-export-declaration", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.10.4-6e04a73c77-d8536faa40.zip/node_modules/@babel/helper-split-export-declaration/",
-          "packageDependencies": [
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.11.0-dfda667eda-ddfc44d0cf.zip/node_modules/@babel/helper-split-export-declaration/",
-          "packageDependencies": [
-            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
-            ["@babel/types", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-validator-identifier", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.10.4-48880862ef-25098ef842.zip/node_modules/@babel/helper-validator-identifier/",
-          "packageDependencies": [
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-validator-option", [
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.12.1-617a30f6da-5d9a8f6750.zip/node_modules/@babel/helper-validator-option/",
-          "packageDependencies": [
-            ["@babel/helper-validator-option", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helper-wrap-function", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.10.4-aeb6ce7009-4d5fe2db33.zip/node_modules/@babel/helper-wrap-function/",
-          "packageDependencies": [
-            ["@babel/helper-wrap-function", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/helpers", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.10.4-98f0263df3-96859c490a.zip/node_modules/@babel/helpers/",
-          "packageDependencies": [
-            ["@babel/helpers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.12.1-f49f1f0987-bbea976e69.zip/node_modules/@babel/helpers/",
-          "packageDependencies": [
-            ["@babel/helpers", "npm:7.12.1"],
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/traverse", "npm:7.12.1"],
-            ["@babel/types", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/highlight", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.10.4-e797e1614e-c167b938af.zip/node_modules/@babel/highlight/",
-          "packageDependencies": [
-            ["@babel/highlight", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
-            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/parser", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-parser-npm-7.10.5-59b0f0dded-c7b4d7183f.zip/node_modules/@babel/parser/",
-          "packageDependencies": [
-            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.3", {
-          "packageLocation": "./.yarn/cache/@babel-parser-npm-7.12.3-31a5d8fff8-3605bcf97e.zip/node_modules/@babel/parser/",
-          "packageDependencies": [
-            ["@babel/parser", "npm:7.12.3"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-async-generator-functions", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-9e7a4e72f2/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-a4d63fbc72-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-async-generator-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"],
-            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-8d6b6c4afa/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.12.1-f71278c3bd-59f8c4e469.zip/node_modules/@babel/plugin-proposal-async-generator-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-async-generator-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"],
-            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-class-properties", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-f86dc02741/0/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-169fe0dcbf-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-c7aa0eaea9/0/cache/@babel-plugin-proposal-class-properties-npm-7.12.1-002e18ae19-690cbec3df.zip/node_modules/@babel/plugin-proposal-class-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-decorators", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-decorators-virtual-85e0b790d9/0/cache/@babel-plugin-proposal-decorators-npm-7.12.1-ea39b1910c-148c01c4ce.zip/node_modules/@babel/plugin-proposal-decorators/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-decorators", "virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-dynamic-import", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-13103e6b04/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-6fba0608fa-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-717437757a/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.12.1-b81c2ca860-4428439b48.zip/node_modules/@babel/plugin-proposal-dynamic-import/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-dynamic-import", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-export-namespace-from", [
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-export-namespace-from-virtual-3dc7646931/0/cache/@babel-plugin-proposal-export-namespace-from-npm-7.12.1-5532ca81a9-ae5317ca00.zip/node_modules/@babel/plugin-proposal-export-namespace-from/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-json-strings", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-bbf573c5ac/0/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-57f37b8a72-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-2a3f7d2cee/0/cache/@babel-plugin-proposal-json-strings-npm-7.12.1-92e281e511-fbe4f3241c.zip/node_modules/@babel/plugin-proposal-json-strings/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-logical-assignment-operators", [
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-logical-assignment-operators-virtual-b4842b313b/0/cache/@babel-plugin-proposal-logical-assignment-operators-npm-7.12.1-5403a64ecb-08af656aaa.zip/node_modules/@babel/plugin-proposal-logical-assignment-operators/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-nullish-coalescing-operator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-33fc9053a8/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-de1cff6588-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-ea79097dbe/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.12.1-6c48e82bfa-9c825901a1.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-numeric-separator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-71cfec60f9/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-4723c89d30-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-0a758764ae/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.12.1-b49ab1b6bd-7c825cc903.zip/node_modules/@babel/plugin-proposal-numeric-separator/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-object-rest-spread", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-7e4ca44892/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-bbab266965-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-84320d11a8/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.12.1-23ec83a49a-d14fc95dad.zip/node_modules/@babel/plugin-proposal-object-rest-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-optional-catch-binding", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-f2408c9714/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-7e0f318dfc-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-cda3c55273/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.12.1-c517c19ef1-ca8c20fb73.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-optional-chaining", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-aef3f0fb00/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-24a040b446-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-4c9e5cb020/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.12.1-14658e6b1e-3cca1bf3b3.zip/node_modules/@babel/plugin-proposal-optional-chaining/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"],
-            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-private-methods", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-methods-virtual-414f967c01/0/cache/@babel-plugin-proposal-private-methods-npm-7.10.4-5b2cb8662f-7a29e63aaf.zip/node_modules/@babel/plugin-proposal-private-methods/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-private-methods", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-class-features-plugin", "virtual:f86dc02741052381c865edd5d1265fe9dd76215e13218d29f77662ffd26df65ad688bd4fdb778bc269c58c87ac8b65bdc8db29ea304643b527832f88cd6f92b8#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-private-methods-virtual-4a7a02e044/0/cache/@babel-plugin-proposal-private-methods-npm-7.12.1-da0018e1a0-350a1a8c3d.zip/node_modules/@babel/plugin-proposal-private-methods/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-private-methods", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-proposal-unicode-property-regex", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-4a3f57e5a3/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-eff001b998-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-a37f57cc26/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.12.1-bc433228ec-b960b8c1af.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-2274684372/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-eff001b998-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-async-generators", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-36ca23c90c/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-149971faf5-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-592a421f97/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-149971faf5-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-class-properties", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-3ab028612c/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-33690cde9b-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-38b6c3e57e/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.1-4ba7624aa7-b5e354a0cd.zip/node_modules/@babel/plugin-syntax-class-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-class-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-decorators", [
-        ["virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-decorators-virtual-bc3faec312/0/cache/@babel-plugin-syntax-decorators-npm-7.12.1-cea73d51f1-c64b9eedfd.zip/node_modules/@babel/plugin-syntax-decorators/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-decorators", "virtual:85e0b790d9882b278a3130cb9a920c3c5a2776fb5fae141167bf5a388cfede06ea7d1ed8f5130257130f2850df1794da1ab9a18d1bc0626dd62232fb2401dd20#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-dynamic-import", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-fa1d7a7023/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-d93fc82802-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-2e0c56d63e/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-d93fc82802-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-export-namespace-from", [
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-export-namespace-from-virtual-bbff9bcfc2/0/cache/@babel-plugin-syntax-export-namespace-from-npm-7.8.3-4b4610d529-832e007319.zip/node_modules/@babel/plugin-syntax-export-namespace-from/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-json-strings", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-c69dc7670a/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-ce7987f347-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-9625486ddb/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-ce7987f347-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-jsx", [
-        ["virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-40c32ad61e/0/cache/@babel-plugin-syntax-jsx-npm-7.12.1-fec38141bc-2f0314608b.zip/node_modules/@babel/plugin-syntax-jsx/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-logical-assignment-operators", [
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-bce9a0915e/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-35a8612a0a-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-nullish-coalescing-operator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-9479fd2254/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-5740884dde-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-8c906b14cd/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-5740884dde-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-numeric-separator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-2e5c89cfb7/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-1c8f950eaa-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-0a46ec027d/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-1c8f950eaa-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-object-rest-spread", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-b592738781/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-1c6d3f0524-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-757d59f5a3/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-1c6d3f0524-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-optional-catch-binding", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-9487dfa1f5/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-6a0d3e7565-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-af7d8dde38/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-6a0d3e7565-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-optional-chaining", [
-        ["virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-45c27d2c35/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-62970aee46-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-9645b05e35/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-62970aee46-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-top-level-await", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-84c67015da/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e4c4166480-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-top-level-await", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-5d16bec83c/0/cache/@babel-plugin-syntax-top-level-await-npm-7.12.1-d8555be35e-9767e46ddc.zip/node_modules/@babel/plugin-syntax-top-level-await/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-top-level-await", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-syntax-typescript", [
-        ["virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-f8eb80ff61/0/cache/@babel-plugin-syntax-typescript-npm-7.12.1-5cfe86494a-37bdb82891.zip/node_modules/@babel/plugin-syntax-typescript/",
-          "packageDependencies": [
-            ["@babel/plugin-syntax-typescript", "virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-arrow-functions", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-810d5d032a/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-dcee1b623d-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-arrow-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-51fe467ba2/0/cache/@babel-plugin-transform-arrow-functions-npm-7.12.1-559a4078ed-602be39f30.zip/node_modules/@babel/plugin-transform-arrow-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-arrow-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-async-to-generator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-a88d55e9ca/0/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-5de1d3a103-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-async-to-generator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-remap-async-to-generator", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-8be17a0daa/0/cache/@babel-plugin-transform-async-to-generator-npm-7.12.1-a5107a2a59-96a48e5cbf.zip/node_modules/@babel/plugin-transform-async-to-generator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-async-to-generator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-module-imports", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-remap-async-to-generator", "npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-block-scoped-functions", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-fe31826fb8/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-6787915d0b-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-block-scoped-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-20db75b1b8/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.12.1-4ddf1c64a0-2da63c6b92.zip/node_modules/@babel/plugin-transform-block-scoped-functions/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-block-scoped-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-block-scoping", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-5f56674e24/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-85771bcdae-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-block-scoping", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-52f95ea93a/0/cache/@babel-plugin-transform-block-scoping-npm-7.12.1-d0c7a9d5f7-067f8b55a3.zip/node_modules/@babel/plugin-transform-block-scoping/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-block-scoping", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-classes", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-80380fe738/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d22e940336-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-classes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
-            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-de86d3ba12/0/cache/@babel-plugin-transform-classes-npm-7.12.1-fc8ee4e566-ae895d1a20.zip/node_modules/@babel/plugin-transform-classes/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-classes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-define-map", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-optimise-call-expression", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.12.1"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
-            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-computed-properties", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-386e362640/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-5acbc51c51-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-computed-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-1fe9232d9e/0/cache/@babel-plugin-transform-computed-properties-npm-7.12.1-322012d191-b3680b9c03.zip/node_modules/@babel/plugin-transform-computed-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-computed-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-destructuring", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-ff19e6c20a/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-ef79524275-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-destructuring", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-38dee94864/0/cache/@babel-plugin-transform-destructuring-npm-7.12.1-fa3ad97f82-704057fa7c.zip/node_modules/@babel/plugin-transform-destructuring/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-destructuring", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-dotall-regex", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-cffbcf96d2/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-0168d189ac-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-221ee6abfa/0/cache/@babel-plugin-transform-dotall-regex-npm-7.12.1-57f977d6c3-dd522110c9.zip/node_modules/@babel/plugin-transform-dotall-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-dotall-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-473e6d20c4/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-0168d189ac-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-dotall-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:2274684372e86dba1d964eb42128b5a2cafde58d42c5840015eec9e8ae4510f5df8d1f69c53cf48133420dc9afac833716ef0acb6ed28449d2d86763725cd750#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-duplicate-keys", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-57861e327c/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-cea8ef411f-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-duplicate-keys", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-8dfd176e4a/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.12.1-2ee786bbf3-a8c45815fb.zip/node_modules/@babel/plugin-transform-duplicate-keys/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-duplicate-keys", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-exponentiation-operator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-5fb544c7a7/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-9862c4be23-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-exponentiation-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-2742ba5e14/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.12.1-271f649ee1-9a01b93506.zip/node_modules/@babel/plugin-transform-exponentiation-operator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-exponentiation-operator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-for-of", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-ad4cd59b90/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-552f4d0a73-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-for-of", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-ae3edc0804/0/cache/@babel-plugin-transform-for-of-npm-7.12.1-93111bd158-d51761cecb.zip/node_modules/@babel/plugin-transform-for-of/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-for-of", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-function-name", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-95c25fc2ab/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-3d9bd4cc22-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-function-name", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-a1f5df4630/0/cache/@babel-plugin-transform-function-name-npm-7.12.1-6ce3ca221a-7dff23e9b5.zip/node_modules/@babel/plugin-transform-function-name/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-function-name", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-literals", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-7132ebaa96/0/cache/@babel-plugin-transform-literals-npm-7.10.4-a34bf6f972-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-ed7e17bd1b/0/cache/@babel-plugin-transform-literals-npm-7.12.1-6660b188a4-1bc7a828e0.zip/node_modules/@babel/plugin-transform-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-member-expression-literals", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-15493dd866/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-ec6b2ea122-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-member-expression-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-c334bf6788/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.12.1-c5b80ce730-2a216ee882.zip/node_modules/@babel/plugin-transform-member-expression-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-member-expression-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-modules-amd", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-a241436ea0/0/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-8b6244dc4f-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-amd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-6548f16ce3/0/cache/@babel-plugin-transform-modules-amd-npm-7.12.1-8fe2fb8398-0b22d7ccf3.zip/node_modules/@babel/plugin-transform-modules-amd/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-amd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-modules-commonjs", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-07d0f35dbd/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-3e7497f7dd-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-commonjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-simple-access", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-9408b98e95/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.12.1-ccf6f4a926-7201ad5f82.zip/node_modules/@babel/plugin-transform-modules-commonjs/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-commonjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-simple-access", "npm:7.12.1"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-modules-systemjs", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-f83ef5a9f7/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-1a8c89fe70-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-systemjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-c5fbb9f0ee/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.12.1-c1130bdc6f-f47d070eda.zip/node_modules/@babel/plugin-transform-modules-systemjs/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-systemjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-hoist-variables", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-modules-umd", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-09f344f76d/0/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-285f5a9cb0-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-umd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-module-transforms", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-4d681bc4c2/0/cache/@babel-plugin-transform-modules-umd-npm-7.12.1-dde38f73c4-9998266d1e.zip/node_modules/@babel/plugin-transform-modules-umd/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-modules-umd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-module-transforms", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-named-capturing-groups-regex", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-9aa7abc24e/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-1a1a108814-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-b2b97ecfdc/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.12.1-a248616e23-96eb5b3587.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-new-target", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-7ef8b9b62f/0/cache/@babel-plugin-transform-new-target-npm-7.10.4-10b38ec6b0-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-new-target", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-7457cb5111/0/cache/@babel-plugin-transform-new-target-npm-7.12.1-4c61f9b33d-d3b9f4f0c2.zip/node_modules/@babel/plugin-transform-new-target/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-new-target", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-object-super", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-1fdc543532/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-9ec43ad72e-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-object-super", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-f573e2d75a/0/cache/@babel-plugin-transform-object-super-npm-7.12.1-5cfdb6a439-36cc06f539.zip/node_modules/@babel/plugin-transform-object-super/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-object-super", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-replace-supers", "npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-parameters", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-dd71392a6b/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-da0bd6bad6-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-get-function-arity", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-23e059dc6a/0/cache/@babel-plugin-transform-parameters-npm-7.12.1-1fa4e26d98-a968ef99b6.zip/node_modules/@babel/plugin-transform-parameters/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-property-literals", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-7dd9b39b01/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-6b2de658db-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-property-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-bd1e7ac6d9/0/cache/@babel-plugin-transform-property-literals-npm-7.12.1-e86a3c4f5d-dff34b03d8.zip/node_modules/@babel/plugin-transform-property-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-property-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-display-name", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-3e43f8c9d2/0/cache/@babel-plugin-transform-react-display-name-npm-7.12.1-f87cd6aece-88d6819169.zip/node_modules/@babel/plugin-transform-react-display-name/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-display-name", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-jsx", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-2ad6e3f2dc/0/cache/@babel-plugin-transform-react-jsx-npm-7.12.1-245cf38589-58dbb169e2.zip/node_modules/@babel/plugin-transform-react-jsx/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-jsx", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-builder-react-jsx", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"],
-            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-jsx-development", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-development-virtual-b5a3a18da0/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.12.1-6051c97a60-2af1228b5e.zip/node_modules/@babel/plugin-transform-react-jsx-development/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-jsx-development", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-builder-react-jsx-experimental", "npm:7.12.4"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-jsx", "virtual:2ad6e3f2dcc8946bea2c18a7b2ed3f1b19f646d49bce9b48fad845f4c211043cf87f3bf32fedd3e2393d5f81bb6f80c74daf4841c2f1128a657cce39a5c6c792#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-jsx-self", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-fb3c49a51c/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.12.1-2ae86fea23-89401f14f3.zip/node_modules/@babel/plugin-transform-react-jsx-self/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-jsx-self", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-jsx-source", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-4335c185b6/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.12.1-9cda868b67-d5fd8818ad.zip/node_modules/@babel/plugin-transform-react-jsx-source/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-jsx-source", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-react-pure-annotations", [
-        ["virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-pure-annotations-virtual-6077971575/0/cache/@babel-plugin-transform-react-pure-annotations-npm-7.12.1-6f59dfc11e-b1984954da.zip/node_modules/@babel/plugin-transform-react-pure-annotations/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-react-pure-annotations", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-regenerator", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-4b38f49099/0/cache/@babel-plugin-transform-regenerator-npm-7.10.4-3592e1fe8d-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-regenerator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-a5173b0d4c/0/cache/@babel-plugin-transform-regenerator-npm-7.12.1-aba30ba094-a1722c2847.zip/node_modules/@babel/plugin-transform-regenerator/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-regenerator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-reserved-words", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-d75bb5ef70/0/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-c2a9152983-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-reserved-words", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-6d3529435c/0/cache/@babel-plugin-transform-reserved-words-npm-7.12.1-7930992fe4-41f589086b.zip/node_modules/@babel/plugin-transform-reserved-words/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-reserved-words", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-shorthand-properties", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-6de49b55da/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-9adc4ae66c-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-shorthand-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-9e1d64242e/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.12.1-e012360208-36cd37c9dd.zip/node_modules/@babel/plugin-transform-shorthand-properties/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-shorthand-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-spread", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-629a5cb18c/0/cache/@babel-plugin-transform-spread-npm-7.10.4-04602f43c6-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-86b994248f/0/cache/@babel-plugin-transform-spread-npm-7.12.1-35eddf11b1-905e1872e3.zip/node_modules/@babel/plugin-transform-spread/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-skip-transparent-expression-wrappers", "npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-sticky-regex", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-52fcf1735a/0/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-18c5345a64-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-sticky-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-704be710c9/0/cache/@babel-plugin-transform-sticky-regex-npm-7.12.1-c9b73885f9-c7d0f39481.zip/node_modules/@babel/plugin-transform-sticky-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-sticky-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-regex", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-template-literals", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-53bbecc802/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-c2c3a22f4a-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-template-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-annotate-as-pure", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-a42c71bea2/0/cache/@babel-plugin-transform-template-literals-npm-7.12.1-a0bc53e621-2e37a8efa3.zip/node_modules/@babel/plugin-transform-template-literals/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-template-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-typeof-symbol", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-f5cf9a9616/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-d111400431-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-typeof-symbol", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-5ef9a68f13/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.12.1-66419b0948-73bb34cb44.zip/node_modules/@babel/plugin-transform-typeof-symbol/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-typeof-symbol", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-typescript", [
-        ["virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-a44f545bbc/0/cache/@babel-plugin-transform-typescript-npm-7.12.1-65fd903ac4-d93737e235.zip/node_modules/@babel/plugin-transform-typescript/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-typescript", "virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-class-features-plugin", "virtual:c7aa0eaea9999ea53c8a02eb695e3906ed7b5738d5d1940ad65e96b32454df35bec425d4f4590e99ab96d0b669a46fc82ef73bee2a0e01254342fe16e3822458#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-syntax-typescript", "virtual:a44f545bbc9473afcb074b876294499f904cd40d0bce43bdc59d98449cdb34e305dd54621fe44c22f7acd250cff01e75b88abdf3eaf2f94b14a8382db44fe423#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-unicode-escapes", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-escapes-virtual-7c5ad4e09c/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.10.4-e9c8ca4a01-c7467a508f.zip/node_modules/@babel/plugin-transform-unicode-escapes/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-unicode-escapes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-escapes-virtual-42f9337b0c/0/cache/@babel-plugin-transform-unicode-escapes-npm-7.12.1-bacb2035a1-40f57b173a.zip/node_modules/@babel/plugin-transform-unicode-escapes/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-unicode-escapes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/plugin-transform-unicode-regex", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-6325de4acc/0/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-9982080bf3-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-unicode-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:4a3f57e5a300c25d8f549d2f98af386a74b1e8cc08f1ca043691e8434032f43e42061eaa83956bbe891080d9e083445dcfbbb5a6f860df3e147f0616a1ec490e#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-798aee163a/0/cache/@babel-plugin-transform-unicode-regex-npm-7.12.1-99d75a41c7-411ddc96ef.zip/node_modules/@babel/plugin-transform-unicode-regex/",
-          "packageDependencies": [
-            ["@babel/plugin-transform-unicode-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-create-regexp-features-plugin", "virtual:a37f57cc262a1b159e9ad8863ea8db0be161808ef00444e52bb16b9eb73d452ea3fe801a484440f4bca0ff856759c436298119b952c8e8c74ae42e38fe4c3ce6#npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/preset-env", [
-        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-627fc4c24d/0/cache/@babel-preset-env-npm-7.10.4-2e0b9e093e-c13fe3c2c4.zip/node_modules/@babel/preset-env/",
-          "packageDependencies": [
-            ["@babel/preset-env", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"],
-            ["@babel/compat-data", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-compilation-targets", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"],
-            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-proposal-async-generator-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"],
-            ["@babel/plugin-proposal-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"],
-            ["@babel/plugin-proposal-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"],
-            ["@babel/plugin-proposal-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"],
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"],
-            ["@babel/plugin-proposal-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"],
-            ["@babel/plugin-proposal-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"],
-            ["@babel/plugin-proposal-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"],
-            ["@babel/plugin-proposal-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"],
-            ["@babel/plugin-proposal-private-methods", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"],
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
-            ["@babel/plugin-syntax-async-generators", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
-            ["@babel/plugin-syntax-class-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/plugin-syntax-json-strings", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
-            ["@babel/plugin-syntax-numeric-separator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
-            ["@babel/plugin-syntax-optional-chaining", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
-            ["@babel/plugin-syntax-top-level-await", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"],
-            ["@babel/plugin-transform-arrow-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"],
-            ["@babel/plugin-transform-async-to-generator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"],
-            ["@babel/plugin-transform-block-scoped-functions", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"],
-            ["@babel/plugin-transform-block-scoping", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"],
-            ["@babel/plugin-transform-classes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"],
-            ["@babel/plugin-transform-computed-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"],
-            ["@babel/plugin-transform-destructuring", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"],
-            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
-            ["@babel/plugin-transform-duplicate-keys", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"],
-            ["@babel/plugin-transform-exponentiation-operator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"],
-            ["@babel/plugin-transform-for-of", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"],
-            ["@babel/plugin-transform-function-name", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"],
-            ["@babel/plugin-transform-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"],
-            ["@babel/plugin-transform-member-expression-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"],
-            ["@babel/plugin-transform-modules-amd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"],
-            ["@babel/plugin-transform-modules-commonjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"],
-            ["@babel/plugin-transform-modules-systemjs", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"],
-            ["@babel/plugin-transform-modules-umd", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"],
-            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"],
-            ["@babel/plugin-transform-new-target", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"],
-            ["@babel/plugin-transform-object-super", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"],
-            ["@babel/plugin-transform-parameters", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"],
-            ["@babel/plugin-transform-property-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"],
-            ["@babel/plugin-transform-regenerator", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"],
-            ["@babel/plugin-transform-reserved-words", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"],
-            ["@babel/plugin-transform-shorthand-properties", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"],
-            ["@babel/plugin-transform-spread", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"],
-            ["@babel/plugin-transform-sticky-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"],
-            ["@babel/plugin-transform-template-literals", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"],
-            ["@babel/plugin-transform-typeof-symbol", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"],
-            ["@babel/plugin-transform-unicode-escapes", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"],
-            ["@babel/plugin-transform-unicode-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"],
-            ["@babel/preset-modules", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-8425be2ae1/0/cache/@babel-preset-env-npm-7.12.1-650243ace6-32a9f56fc4.zip/node_modules/@babel/preset-env/",
-          "packageDependencies": [
-            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/compat-data", "npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-compilation-targets", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/helper-module-imports", "npm:7.12.1"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/helper-validator-option", "npm:7.12.1"],
-            ["@babel/plugin-proposal-async-generator-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-dynamic-import", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-private-methods", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-syntax-async-generators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"],
-            ["@babel/plugin-syntax-class-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/plugin-syntax-export-namespace-from", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"],
-            ["@babel/plugin-syntax-json-strings", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"],
-            ["@babel/plugin-syntax-logical-assignment-operators", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"],
-            ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:ea79097dbee8bd31f4e5b1a12a1922b690542eb938a1681b92407b51575b7dd6260026e695f876637123f2b3cedf9272d8366642e060708be7c03fe98a99e3cc#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"],
-            ["@babel/plugin-syntax-numeric-separator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"],
-            ["@babel/plugin-syntax-object-rest-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"],
-            ["@babel/plugin-syntax-optional-catch-binding", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"],
-            ["@babel/plugin-syntax-optional-chaining", "virtual:4c9e5cb02068eb695daf95a2002f6f68563c96ba03eb62b10552749486b0754852e1115d9425e09f3cdd1a78235713a3ac7cf0fc01f4ae97cd7be10c7461a02e#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"],
-            ["@babel/plugin-syntax-top-level-await", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-arrow-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-async-to-generator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-block-scoped-functions", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-block-scoping", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-classes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-computed-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-destructuring", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-dotall-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-duplicate-keys", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-exponentiation-operator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-for-of", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-function-name", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-member-expression-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-modules-amd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-modules-commonjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-modules-systemjs", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-modules-umd", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-new-target", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-object-super", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-parameters", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-property-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-regenerator", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-reserved-words", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-shorthand-properties", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-spread", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-sticky-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-template-literals", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-typeof-symbol", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-unicode-escapes", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/plugin-transform-unicode-regex", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:7.12.1"],
-            ["@babel/preset-modules", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
-            ["@babel/types", "npm:7.12.1"],
-            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/preset-modules", [
-        ["virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-2af56730b5/0/cache/@babel-preset-modules-npm-0.1.3-291f9bf1e6-341c13de18.zip/node_modules/@babel/preset-modules/",
-          "packageDependencies": [
-            ["@babel/preset-modules", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
-            ["@babel/plugin-transform-dotall-regex", "virtual:627fc4c24d62c2e5a9320ed25326b19fe2350bac795d7f1d26b9f1746fc42551ff5390780ced6ef1c52f43b4ab7cf2247ddd4d106c4b5fb56b3a715e063f5019#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-930582beed/0/cache/@babel-preset-modules-npm-0.1.3-291f9bf1e6-341c13de18.zip/node_modules/@babel/preset-modules/",
-          "packageDependencies": [
-            ["@babel/preset-modules", "virtual:8425be2ae194c127907dd32d16bce257613f105a0eaed97fb24749c22e515da64367dc8f228cdb272d640893ecf5091ba63d33129c53db903366d321ac3aa9e9#npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-proposal-unicode-property-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"],
-            ["@babel/plugin-transform-dotall-regex", "virtual:930582beed1f0badd82f6d74470164593cbfb693445a98fff9e22bb6e39998ac4b19e321ed468469b93a5435a19581fe3147e8e26e77f3f8949af6fdc3c8e05a#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/preset-react", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-react-virtual-fd3ed4c28c/0/cache/@babel-preset-react-npm-7.12.1-6e115c578f-67219d3311.zip/node_modules/@babel/preset-react/",
-          "packageDependencies": [
-            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-transform-react-display-name", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/plugin-transform-react-jsx", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/plugin-transform-react-jsx-development", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/plugin-transform-react-jsx-self", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/plugin-transform-react-jsx-source", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"],
-            ["@babel/plugin-transform-react-pure-annotations", "virtual:fd3ed4c28caccfe1d9a46ecff5c415631c5b8829224401ab00ad105f40b37e25b9e7779b9e27e28eeb7d40162d7eecc4b3caa9990a61909b90bf04006baeccef#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/preset-typescript", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1", {
-          "packageLocation": "./.yarn/$$virtual/@babel-preset-typescript-virtual-f41acb257a/0/cache/@babel-preset-typescript-npm-7.12.1-92b86dd2dd-730eb743a4.zip/node_modules/@babel/preset-typescript/",
-          "packageDependencies": [
-            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/helper-plugin-utils", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"],
-            ["@babel/plugin-transform-typescript", "virtual:f41acb257acd6fcdba9daa7a13a93f0166eff7fc33934c2404f41a92f9c1a496623edf90de223e570f9e9760092e3b50b61cc6590dd5e84dea477ec4743f8026#npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "@babel/core"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/runtime", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.10.5-31abd4e536-222bc7c75b.zip/node_modules/@babel/runtime/",
-          "packageDependencies": [
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.11.2-84d52b99b9-2f127ad60a.zip/node_modules/@babel/runtime/",
-          "packageDependencies": [
-            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
-            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.12.1-b069f70b16-979d1c099c.zip/node_modules/@babel/runtime/",
-          "packageDependencies": [
-            ["@babel/runtime", "npm:7.12.1"],
-            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/runtime-corejs3", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-runtime-corejs3-npm-7.10.5-15dc49d6b2-fc1caee034.zip/node_modules/@babel/runtime-corejs3/",
-          "packageDependencies": [
-            ["@babel/runtime-corejs3", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"],
-            ["core-js-pure", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"],
-            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/template", [
-        ["npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-template-npm-7.10.4-766bb21b38-23a5c4f7ab.zip/node_modules/@babel/template/",
-          "packageDependencies": [
-            ["@babel/template", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/traverse", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.10.5-1e7fd7cbf4-4292255a99.zip/node_modules/@babel/traverse/",
-          "packageDependencies": [
-            ["@babel/traverse", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/generator", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-split-export-declaration", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"],
-            ["@babel/parser", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"],
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.12.1-69ebf4b2f2-a3040d94b7.zip/node_modules/@babel/traverse/",
-          "packageDependencies": [
-            ["@babel/traverse", "npm:7.12.1"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@babel/generator", "npm:7.12.1"],
-            ["@babel/helper-function-name", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"],
-            ["@babel/helper-split-export-declaration", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"],
-            ["@babel/parser", "npm:7.12.3"],
-            ["@babel/types", "npm:7.12.1"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@babel/types", [
-        ["npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-types-npm-7.10.5-afbaf89018-00bdeb6f46.zip/node_modules/@babel/types/",
-          "packageDependencies": [
-            ["@babel/types", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz", {
-          "packageLocation": "./.yarn/cache/@babel-types-npm-7.11.0-b26eec3349-46e2fcd49d.zip/node_modules/@babel/types/",
-          "packageDependencies": [
-            ["@babel/types", "npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/@babel-types-npm-7.12.1-f7897b9d9a-0747b06409.zip/node_modules/@babel/types/",
-          "packageDependencies": [
-            ["@babel/types", "npm:7.12.1"],
-            ["@babel/helper-validator-identifier", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@csstools/convert-colors", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/@csstools-convert-colors-npm-1.4.0-28a30cc14e-c8c8e6b5b3.zip/node_modules/@csstools/convert-colors/",
-          "packageDependencies": [
-            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@eslint/eslintrc", [
-        ["npm:0.2.1", {
-          "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-0.2.1-88318143fb-99310cddf0.zip/node_modules/@eslint/eslintrc/",
-          "packageDependencies": [
-            ["@eslint/eslintrc", "npm:0.2.1"],
-            ["ajv", "npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["espree", "npm:7.3.0"],
-            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
-            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"],
-            ["import-fresh", "npm:3.2.1"],
-            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
-            ["strip-json-comments", "npm:3.1.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hapi/address", [
-        ["npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/@hapi-address-npm-2.1.4-171a7634b6-5dc5d0d3d6.zip/node_modules/@hapi/address/",
-          "packageDependencies": [
-            ["@hapi/address", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hapi/bourne", [
-        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/@hapi-bourne-npm-1.3.2-f59e8a33a7-bc23796d94.zip/node_modules/@hapi/bourne/",
-          "packageDependencies": [
-            ["@hapi/bourne", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hapi/hoek", [
-        ["npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", {
-          "packageLocation": "./.yarn/cache/@hapi-hoek-npm-8.5.1-3e448b81f9-17bf9a0b6f.zip/node_modules/@hapi/hoek/",
-          "packageDependencies": [
-            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hapi/joi", [
-        ["npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/@hapi-joi-npm-15.1.1-c15180a459-7edbb0d5a5.zip/node_modules/@hapi/joi/",
-          "packageDependencies": [
-            ["@hapi/joi", "npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"],
-            ["@hapi/address", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"],
-            ["@hapi/bourne", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"],
-            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"],
-            ["@hapi/topo", "npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hapi/topo", [
-        ["npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/@hapi-topo-npm-3.1.6-78977fb8a8-4550d3d749.zip/node_modules/@hapi/topo/",
-          "packageDependencies": [
-            ["@hapi/topo", "npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"],
-            ["@hapi/hoek", "npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@hot-loader/react-dom", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0", {
-          "packageLocation": "./.yarn/$$virtual/@hot-loader-react-dom-virtual-b4bf4ff7ed/0/cache/@hot-loader-react-dom-npm-17.0.0-666159a93b-9d2b060e88.zip/node_modules/@hot-loader/react-dom/",
-          "packageDependencies": [
-            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
-            ["react", "npm:17.0.1"],
-            ["scheduler", "npm:0.20.1"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@nodelib/fs.scandir", [
-        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.3-d37148b991-1f100655dd.zip/node_modules/@nodelib/fs.scandir/",
-          "packageDependencies": [
-            ["@nodelib/fs.scandir", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"],
-            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"],
-            ["run-parallel", "npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@nodelib/fs.stat", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.3-92c59c34ca-1bfdb2f419.zip/node_modules/@nodelib/fs.stat/",
-          "packageDependencies": [
-            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@nodelib/fs.walk", [
-        ["npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.4-0119094fd0-f4bffba16c.zip/node_modules/@nodelib/fs.walk/",
-          "packageDependencies": [
-            ["@nodelib/fs.walk", "npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"],
-            ["@nodelib/fs.scandir", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"],
-            ["fastq", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@npmcli/move-file", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/@npmcli-move-file-npm-1.0.1-a68fefe016-ed2cb75eef.zip/node_modules/@npmcli/move-file/",
-          "packageDependencies": [
-            ["@npmcli/move-file", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"],
-            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@popperjs/core", [
-        ["npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz", {
-          "packageLocation": "./.yarn/cache/@popperjs-core-npm-2.4.4-0690f2896b-49a1e6cfa2.zip/node_modules/@popperjs/core/",
-          "packageDependencies": [
-            ["@popperjs/core", "npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@restart/context", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@restart-context-virtual-7af705ac81/0/cache/@restart-context-npm-2.1.4-ad630f5721-f9dd1416c1.zip/node_modules/@restart/context/",
-          "packageDependencies": [
-            ["@restart/context", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"],
-            ["react", "npm:17.0.1"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@restart/hooks", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@restart-hooks-virtual-d6f29f378e/0/cache/@restart-hooks-npm-0.3.25-f85d375986-08aefc359f.zip/node_modules/@restart/hooks/",
-          "packageDependencies": [
-            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["lodash-es", "npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"],
-            ["react", "npm:17.0.1"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@rollup/plugin-node-resolve", [
-        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@rollup-plugin-node-resolve-virtual-b9d59f5e4f/0/cache/@rollup-plugin-node-resolve-npm-7.1.3-07432edf25-4d751a407f.zip/node_modules/@rollup/plugin-node-resolve/",
-          "packageDependencies": [
-            ["@rollup/plugin-node-resolve", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"],
-            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
-            ["@types/resolve", "npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"],
-            ["builtin-modules", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"],
-            ["is-module", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
-          ],
-          "packagePeers": [
-            "rollup"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@rollup/plugin-replace", [
-        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@rollup-plugin-replace-virtual-1117b8d26d/0/cache/@rollup-plugin-replace-npm-2.3.3-39207fa404-d08a514b8f.zip/node_modules/@rollup/plugin-replace/",
-          "packageDependencies": [
-            ["@rollup/plugin-replace", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"],
-            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
-            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
-          ],
-          "packagePeers": [
-            "rollup"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@rollup/pluginutils", [
-        ["virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/@rollup-pluginutils-virtual-616f52b257/0/cache/@rollup-pluginutils-npm-3.1.0-d04a8aa7ff-45da6411e0.zip/node_modules/@rollup/pluginutils/",
-          "packageDependencies": [
-            ["@rollup/pluginutils", "virtual:b9d59f5e4f1d5deefe729c1c1cc90ca9145ee6b134064ed418f7a8baa39882dce5b0821d97a360045b6add786b0a050da727233624333fc04f9ee94529f20f41#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"],
-            ["@types/estree", "npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"],
-            ["estree-walker", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"],
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"]
-          ],
-          "packagePeers": [
-            "rollup"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@sindresorhus/is", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-3.0.0-85341af72d-77cdb08542.zip/node_modules/@sindresorhus/is/",
-          "packageDependencies": [
-            ["@sindresorhus/is", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@surma/rollup-plugin-off-main-thread", [
-        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/@surma-rollup-plugin-off-main-thread-npm-1.4.1-093a2a1130-4f91dc8b39.zip/node_modules/@surma/rollup-plugin-off-main-thread/",
-          "packageDependencies": [
-            ["@surma/rollup-plugin-off-main-thread", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"],
-            ["ejs", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"],
-            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@szmarczak/http-timer", [
-        ["npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-4.0.5-468246dcc4-13d8f71dbd.zip/node_modules/@szmarczak/http-timer/",
-          "packageDependencies": [
-            ["@szmarczak/http-timer", "npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"],
-            ["defer-to-connect", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/anymatch", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/@types-anymatch-npm-1.3.1-a80df92ca5-1647865e52.zip/node_modules/@types/anymatch/",
-          "packageDependencies": [
-            ["@types/anymatch", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/cacheable-request", [
-        ["npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/@types-cacheable-request-npm-6.0.1-bb69b1f94f-3dae802a08.zip/node_modules/@types/cacheable-request/",
-          "packageDependencies": [
-            ["@types/cacheable-request", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"],
-            ["@types/http-cache-semantics", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"],
-            ["@types/keyv", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
-            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/classnames", [
-        ["npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz", {
-          "packageLocation": "./.yarn/cache/@types-classnames-npm-2.2.10-42fcf9fdfd-31b6380183.zip/node_modules/@types/classnames/",
-          "packageDependencies": [
-            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/color-name", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/@types-color-name-npm-1.1.1-e09b256b16-8311db94a9.zip/node_modules/@types/color-name/",
-          "packageDependencies": [
-            ["@types/color-name", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/emscripten", [
-        ["npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz", {
-          "packageLocation": "./.yarn/cache/@types-emscripten-npm-1.39.4-9fa9d5794b-b848421e25.zip/node_modules/@types/emscripten/",
-          "packageDependencies": [
-            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/eslint", [
-        ["npm:7.2.4", {
-          "packageLocation": "./.yarn/cache/@types-eslint-npm-7.2.4-6b24a0c08f-281fbca931.zip/node_modules/@types/eslint/",
-          "packageDependencies": [
-            ["@types/eslint", "npm:7.2.4"],
-            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"],
-            ["@types/json-schema", "npm:7.0.6"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/eslint-scope", [
-        ["npm:3.7.0", {
-          "packageLocation": "./.yarn/cache/@types-eslint-scope-npm-3.7.0-7c68026d97-1ee912a956.zip/node_modules/@types/eslint-scope/",
-          "packageDependencies": [
-            ["@types/eslint-scope", "npm:3.7.0"],
-            ["@types/eslint", "npm:7.2.4"],
-            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/estree", [
-        ["npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz", {
-          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.39-db58f9afdf-43e5361de3.zip/node_modules/@types/estree/",
-          "packageDependencies": [
-            ["@types/estree", "npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.0.45", {
-          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.45-71d6bd2510-9d339cbcf2.zip/node_modules/@types/estree/",
-          "packageDependencies": [
-            ["@types/estree", "npm:0.0.45"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz", {
-          "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.45-e2040977a6-9d339cbcf2.zip/node_modules/@types/estree/",
-          "packageDependencies": [
-            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/glob", [
-        ["npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/@types-glob-npm-7.1.3-f32554af4e-633bf1dda9.zip/node_modules/@types/glob/",
-          "packageDependencies": [
-            ["@types/glob", "npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"],
-            ["@types/minimatch", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/history", [
-        ["npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz", {
-          "packageLocation": "./.yarn/cache/@types-history-npm-4.7.6-c7379e4282-8782d92953.zip/node_modules/@types/history/",
-          "packageDependencies": [
-            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/html-minifier-terser", [
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-html-minifier-terser-npm-5.1.0-6fb2bf10b0-e07f30cf9b.zip/node_modules/@types/html-minifier-terser/",
-          "packageDependencies": [
-            ["@types/html-minifier-terser", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/http-cache-semantics", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-http-cache-semantics-npm-4.0.0-c054c89f34-e16fae56d4.zip/node_modules/@types/http-cache-semantics/",
-          "packageDependencies": [
-            ["@types/http-cache-semantics", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/invariant", [
-        ["npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz", {
-          "packageLocation": "./.yarn/cache/@types-invariant-npm-2.2.34-dc486af7a1-d0ecc665e5.zip/node_modules/@types/invariant/",
-          "packageDependencies": [
-            ["@types/invariant", "npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/json-schema", [
-        ["npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.5-8c7a0ff5b6-6290f9fe93.zip/node_modules/@types/json-schema/",
-          "packageDependencies": [
-            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.6", {
-          "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.6-b307979e18-820cabe35a.zip/node_modules/@types/json-schema/",
-          "packageDependencies": [
-            ["@types/json-schema", "npm:7.0.6"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/json5", [
-        ["npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz", {
-          "packageLocation": "./.yarn/cache/@types-json5-npm-0.0.29-663cfa6df5-66e9ac0143.zip/node_modules/@types/json5/",
-          "packageDependencies": [
-            ["@types/json5", "npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/keyv", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/@types-keyv-npm-3.1.1-f9769fb0ae-3aaf557d5b.zip/node_modules/@types/keyv/",
-          "packageDependencies": [
-            ["@types/keyv", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/lodash", [
-        ["npm:4.14.162", {
-          "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.162-154c620b3b-16205a1299.zip/node_modules/@types/lodash/",
-          "packageDependencies": [
-            ["@types/lodash", "npm:4.14.162"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/minimatch", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/@types-minimatch-npm-3.0.3-adfb38a286-672ccdac19.zip/node_modules/@types/minimatch/",
-          "packageDependencies": [
-            ["@types/minimatch", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/node", [
-        ["npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz", {
-          "packageLocation": "./.yarn/cache/@types-node-npm-13.13.14-ab75d26b18-b2fa516374.zip/node_modules/@types/node/",
-          "packageDependencies": [
-            ["@types/node", "npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz", {
-          "packageLocation": "./.yarn/cache/@types-node-npm-14.0.23-73b1b435b9-35415a294f.zip/node_modules/@types/node/",
-          "packageDependencies": [
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:14.14.5", {
-          "packageLocation": "./.yarn/cache/@types-node-npm-14.14.5-0bf1b63d5b-4916d5c46e.zip/node_modules/@types/node/",
-          "packageDependencies": [
-            ["@types/node", "npm:14.14.5"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/parse-json", [
-        ["npm:4.0.0", {
-          "packageLocation": "./.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4a8f720afa.zip/node_modules/@types/parse-json/",
-          "packageDependencies": [
-            ["@types/parse-json", "npm:4.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/prop-types", [
-        ["npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz", {
-          "packageLocation": "./.yarn/cache/@types-prop-types-npm-15.7.3-744156ad22-bd0eab69d5.zip/node_modules/@types/prop-types/",
-          "packageDependencies": [
-            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react", [
-        ["npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.43-6282703b2a-b9d4491463.zip/node_modules/@types/react/",
-          "packageDependencies": [
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
-            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
-            ["csstype", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.49-eebeaec305-cf5dabe1e9.zip/node_modules/@types/react/",
-          "packageDependencies": [
-            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
-            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
-            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:16.9.53", {
-          "packageLocation": "./.yarn/cache/@types-react-npm-16.9.53-db05adb28b-01c646c8f0.zip/node_modules/@types/react/",
-          "packageDependencies": [
-            ["@types/react", "npm:16.9.53"],
-            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
-            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-dom", [
-        ["npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-dom-npm-16.9.8-a074150aea-53a223c026.zip/node_modules/@types/react-dom/",
-          "packageDependencies": [
-            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-responsive", [
-        ["npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-responsive-npm-8.0.2-e6a680cdf1-48bc498859.zip/node_modules/@types/react-responsive/",
-          "packageDependencies": [
-            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-router", [
-        ["npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-router-npm-5.1.8-9a4fe7a936-8b4c8fefdb.zip/node_modules/@types/react-router/",
-          "packageDependencies": [
-            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
-            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-router-bootstrap", [
-        ["npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-router-bootstrap-npm-0.24.5-e11aa3d45e-08b8ed99b7.zip/node_modules/@types/react-router-bootstrap/",
-          "packageDependencies": [
-            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
-            ["@types/react-router-dom", "npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-router-dom", [
-        ["npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-router-dom-npm-5.1.5-bb10e455cb-d25c11cb71.zip/node_modules/@types/react-router-dom/",
-          "packageDependencies": [
-            ["@types/react-router-dom", "npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"],
-            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
-            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.6", {
-          "packageLocation": "./.yarn/cache/@types-react-router-dom-npm-5.1.6-d10d920490-dcff1d6138.zip/node_modules/@types/react-router-dom/",
-          "packageDependencies": [
-            ["@types/react-router-dom", "npm:5.1.6"],
-            ["@types/history", "npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"],
-            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/react-transition-group", [
-        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-react-transition-group-npm-4.4.0-44ecca32b5-b761f70623.zip/node_modules/@types/react-transition-group/",
-          "packageDependencies": [
-            ["@types/react-transition-group", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"],
-            ["@types/react", "npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/resolve", [
-        ["npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz", {
-          "packageLocation": "./.yarn/cache/@types-resolve-npm-0.0.8-86c1fa5722-f54f13e4b6.zip/node_modules/@types/resolve/",
-          "packageDependencies": [
-            ["@types/resolve", "npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/responselike", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-responselike-npm-1.0.0-f55b3c33b1-e6e6613c80.zip/node_modules/@types/responselike/",
-          "packageDependencies": [
-            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/semver", [
-        ["npm:7.3.4", {
-          "packageLocation": "./.yarn/cache/@types-semver-npm-7.3.4-96fde085ea-7e8588aa55.zip/node_modules/@types/semver/",
-          "packageDependencies": [
-            ["@types/semver", "npm:7.3.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/source-list-map", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/@types-source-list-map-npm-0.1.2-e10905c8ed-191f0e3b05.zip/node_modules/@types/source-list-map/",
-          "packageDependencies": [
-            ["@types/source-list-map", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/tapable", [
-        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/@types-tapable-npm-1.0.6-a018099971-01709a2f8d.zip/node_modules/@types/tapable/",
-          "packageDependencies": [
-            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/treeify", [
-        ["npm:1.0.0", {
-          "packageLocation": "./.yarn/cache/@types-treeify-npm-1.0.0-b5e04e9cd3-f7b82d91a4.zip/node_modules/@types/treeify/",
-          "packageDependencies": [
-            ["@types/treeify", "npm:1.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/uglify-js", [
-        ["npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz", {
-          "packageLocation": "./.yarn/cache/@types-uglify-js-npm-3.9.3-b25b745c08-b12ae05d8f.zip/node_modules/@types/uglify-js/",
-          "packageDependencies": [
-            ["@types/uglify-js", "npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/warning", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-warning-npm-3.0.0-32d6269905-cb7a16aa88.zip/node_modules/@types/warning/",
-          "packageDependencies": [
-            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/webpack", [
-        ["npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz", {
-          "packageLocation": "./.yarn/cache/@types-webpack-npm-4.41.21-bf9d77607b-3a02667221.zip/node_modules/@types/webpack/",
-          "packageDependencies": [
-            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
-            ["@types/anymatch", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
-            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"],
-            ["@types/uglify-js", "npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"],
-            ["@types/webpack-sources", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/webpack-env", [
-        ["npm:1.15.3", {
-          "packageLocation": "./.yarn/cache/@types-webpack-env-npm-1.15.3-0c9f4ea68e-e37909d70e.zip/node_modules/@types/webpack-env/",
-          "packageDependencies": [
-            ["@types/webpack-env", "npm:1.15.3"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/webpack-sources", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-webpack-sources-npm-1.4.0-53063c900c-fc237a6e8b.zip/node_modules/@types/webpack-sources/",
-          "packageDependencies": [
-            ["@types/webpack-sources", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
-            ["@types/source-list-map", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"],
-            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@types/xregexp", [
-        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/@types-xregexp-npm-4.3.0-d0b9c67f46-a25f5cc1e7.zip/node_modules/@types/xregexp/",
-          "packageDependencies": [
-            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/eslint-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0", {
-          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-eslint-plugin-virtual-ec995a9505/0/cache/@typescript-eslint-eslint-plugin-npm-4.6.0-be3312b4c2-7bf5bb6a0c.zip/node_modules/@typescript-eslint/eslint-plugin/",
-          "packageDependencies": [
-            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@typescript-eslint/experimental-utils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0"],
-            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"],
-            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "eslint",
-            "@typescript-eslint/parser",
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/experimental-utils", [
-        ["virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0", {
-          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-experimental-utils-virtual-034578a2e7/0/cache/@typescript-eslint-experimental-utils-npm-4.6.0-8b5fc950f7-ca0fdd7e51.zip/node_modules/@typescript-eslint/experimental-utils/",
-          "packageDependencies": [
-            ["@typescript-eslint/experimental-utils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:4.6.0"],
-            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"],
-            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["@typescript-eslint/typescript-estree", "virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0"],
-            ["eslint", "npm:7.12.1"],
-            ["eslint-scope", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"],
-            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"]
-          ],
-          "packagePeers": [
-            "eslint"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/parser", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0", {
-          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-parser-virtual-d686870f74/0/cache/@typescript-eslint-parser-npm-4.6.0-d78e9442ad-ada5fea21c.zip/node_modules/@typescript-eslint/parser/",
-          "packageDependencies": [
-            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["@typescript-eslint/typescript-estree", "virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "eslint",
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/scope-manager", [
-        ["npm:4.6.0", {
-          "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-4.6.0-65347ba2dc-8bf4f4646e.zip/node_modules/@typescript-eslint/scope-manager/",
-          "packageDependencies": [
-            ["@typescript-eslint/scope-manager", "npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["@typescript-eslint/visitor-keys", "npm:4.6.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/types", [
-        ["npm:4.6.0", {
-          "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-4.6.0-c11f936a0d-c136ebe791.zip/node_modules/@typescript-eslint/types/",
-          "packageDependencies": [
-            ["@typescript-eslint/types", "npm:4.6.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/typescript-estree", [
-        ["virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0", {
-          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-92cd152243/0/cache/@typescript-eslint-typescript-estree-npm-4.6.0-3c95b33160-27d35ac3c4.zip/node_modules/@typescript-eslint/typescript-estree/",
-          "packageDependencies": [
-            ["@typescript-eslint/typescript-estree", "virtual:034578a2e7bf4d012ce7b8dec4c169ba3e4f524d9352aeac349c6e538deaa8a0e10e340cb92468d84acd698b3a11e142760dc2339861dbba2b421f0b62f61a78#npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["tsutils", "virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
-            ["typescript", null]
-          ],
-          "packagePeers": [
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0", {
-          "packageLocation": "./.yarn/$$virtual/@typescript-eslint-typescript-estree-virtual-56821c47e7/0/cache/@typescript-eslint-typescript-estree-npm-4.6.0-3c95b33160-27d35ac3c4.zip/node_modules/@typescript-eslint/typescript-estree/",
-          "packageDependencies": [
-            ["@typescript-eslint/typescript-estree", "virtual:d686870f74f56408abbdb0ebb41cc028dcecf949adf093fe038c38bc6c71d300934a9620031e98d65c5086381656df57451bafa48e855ea539624e2b348f4415#npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@typescript-eslint/visitor-keys", [
-        ["npm:4.6.0", {
-          "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-4.6.0-5240fa58b1-ea1a701501.zip/node_modules/@typescript-eslint/visitor-keys/",
-          "packageDependencies": [
-            ["@typescript-eslint/visitor-keys", "npm:4.6.0"],
-            ["@typescript-eslint/types", "npm:4.6.0"],
-            ["eslint-visitor-keys", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/ast", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.9.0-84da1f7aeb-25d93900cc.zip/node_modules/@webassemblyjs/ast/",
-          "packageDependencies": [
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
-            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/floating-point-hex-parser", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.9.0-144f0e3881-af9e11a688.zip/node_modules/@webassemblyjs/floating-point-hex-parser/",
-          "packageDependencies": [
-            ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-api-error", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-api-error-npm-1.9.0-2ae5cde80d-ae7b9703ec.zip/node_modules/@webassemblyjs/helper-api-error/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-buffer", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-buffer-npm-1.9.0-62689e6c43-94bcf27ccf.zip/node_modules/@webassemblyjs/helper-buffer/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-code-frame", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-code-frame-npm-1.9.0-e72b43e293-008fc534f2.zip/node_modules/@webassemblyjs/helper-code-frame/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-code-frame", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"],
-            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-fsm", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-fsm-npm-1.9.0-3a1e65f581-3181e69c16.zip/node_modules/@webassemblyjs/helper-fsm/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-fsm", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-module-context", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-module-context-npm-1.9.0-9a8321b3f5-9aa715a8d0.zip/node_modules/@webassemblyjs/helper-module-context/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-wasm-bytecode", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.9.0-2ba0f0cbdb-27ba07f495.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/helper-wasm-section", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.9.0-ae2f9c5910-0e2957efc4.zip/node_modules/@webassemblyjs/helper-wasm-section/",
-          "packageDependencies": [
-            ["@webassemblyjs/helper-wasm-section", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/ieee754", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-ieee754-npm-1.9.0-5791347b77-1474a87d86.zip/node_modules/@webassemblyjs/ieee754/",
-          "packageDependencies": [
-            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
-            ["@xtuc/ieee754", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/leb128", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-leb128-npm-1.9.0-1d6c48e4f5-af49765d06.zip/node_modules/@webassemblyjs/leb128/",
-          "packageDependencies": [
-            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
-            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/utf8", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-utf8-npm-1.9.0-130731a2d4-172fd362aa.zip/node_modules/@webassemblyjs/utf8/",
-          "packageDependencies": [
-            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wasm-edit", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-edit-npm-1.9.0-e31033e984-16016c9ef5.zip/node_modules/@webassemblyjs/wasm-edit/",
-          "packageDependencies": [
-            ["@webassemblyjs/wasm-edit", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-section", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-opt", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
-            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wasm-gen", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-gen-npm-1.9.0-e8ba1a3123-1afcebfd12.zip/node_modules/@webassemblyjs/wasm-gen/",
-          "packageDependencies": [
-            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
-            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
-            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
-            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wasm-opt", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-opt-npm-1.9.0-afcb86d1d6-2ce89f206e.zip/node_modules/@webassemblyjs/wasm-opt/",
-          "packageDependencies": [
-            ["@webassemblyjs/wasm-opt", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-buffer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-gen", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wasm-parser", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-parser-npm-1.9.0-908dd76282-b8cb346c9b.zip/node_modules/@webassemblyjs/wasm-parser/",
-          "packageDependencies": [
-            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"],
-            ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"],
-            ["@webassemblyjs/ieee754", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"],
-            ["@webassemblyjs/leb128", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"],
-            ["@webassemblyjs/utf8", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wast-parser", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wast-parser-npm-1.9.0-73effa0b70-eaa0140a44.zip/node_modules/@webassemblyjs/wast-parser/",
-          "packageDependencies": [
-            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"],
-            ["@webassemblyjs/helper-api-error", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"],
-            ["@webassemblyjs/helper-code-frame", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"],
-            ["@webassemblyjs/helper-fsm", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"],
-            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webassemblyjs/wast-printer", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/@webassemblyjs-wast-printer-npm-1.9.0-086ae21aa7-9f013b27e2.zip/node_modules/@webassemblyjs/wast-printer/",
-          "packageDependencies": [
-            ["@webassemblyjs/wast-printer", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/wast-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"],
-            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webpack-cli/info", [
-        ["virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2", {
-          "packageLocation": "./.yarn/$$virtual/@webpack-cli-info-virtual-f6a57c425b/0/cache/@webpack-cli-info-npm-1.0.2-2aa189629b-a961e982fb.zip/node_modules/@webpack-cli/info/",
-          "packageDependencies": [
-            ["@webpack-cli/info", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2"],
-            ["envinfo", "npm:7.7.3"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"]
-          ],
-          "packagePeers": [
-            "webpack-cli"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@webpack-cli/serve", [
-        ["virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1", {
-          "packageLocation": "./.yarn/$$virtual/@webpack-cli-serve-virtual-23791f685d/0/cache/@webpack-cli-serve-npm-1.0.1-d23cc6c68b-d1dd4fb204.zip/node_modules/@webpack-cli/serve/",
-          "packageDependencies": [
-            ["@webpack-cli/serve", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"]
-          ],
-          "packagePeers": [
-            "webpack-cli",
-            "webpack-dev-server"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@xtuc/ieee754", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/@xtuc-ieee754-npm-1.2.0-1f11bd4484-65bb9c55a0.zip/node_modules/@xtuc/ieee754/",
-          "packageDependencies": [
-            ["@xtuc/ieee754", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@xtuc/long", [
-        ["npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/@xtuc-long-npm-4.2.2-5c7b6be565-ec09a359f9.zip/node_modules/@xtuc/long/",
-          "packageDependencies": [
-            ["@xtuc/long", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/core", [
-        ["npm:2.3.1", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-core-npm-2.3.1-2d9d12b9ec-d2236acac2.zip/node_modules/@yarnpkg/core/",
-          "packageDependencies": [
-            ["@yarnpkg/core", "npm:2.3.1"],
-            ["@arcanis/slice-ansi", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"],
-            ["@types/semver", "npm:7.3.4"],
-            ["@types/treeify", "npm:1.0.0"],
-            ["@yarnpkg/fslib", "npm:2.3.0"],
-            ["@yarnpkg/json-proxy", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"],
-            ["@yarnpkg/libzip", "npm:2.2.1"],
-            ["@yarnpkg/parsers", "npm:2.3.0"],
-            ["@yarnpkg/pnp", "npm:2.3.1"],
-            ["@yarnpkg/shell", "npm:2.4.0"],
-            ["binjumper", "npm:0.1.3"],
-            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"],
-            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
-            ["ci-info", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"],
-            ["clipanion", "npm:2.6.2"],
-            ["cross-spawn", "npm:7.0.3"],
-            ["diff", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"],
-            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
-            ["got", "npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"],
-            ["json-file-plus", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["logic-solver", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"],
-            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
-            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"],
-            ["pluralize", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"],
-            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["stream-to-promise", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"],
-            ["tar-stream", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"],
-            ["treeify", "npm:1.1.0"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
-            ["tunnel", "npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/fslib", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-fslib-npm-2.1.0-2d08287c42-5a77427f2b.zip/node_modules/@yarnpkg/fslib/",
-          "packageDependencies": [
-            ["@yarnpkg/fslib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"],
-            ["@yarnpkg/libzip", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.3.0", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-fslib-npm-2.3.0-177ea80af4-0969bd6b12.zip/node_modules/@yarnpkg/fslib/",
-          "packageDependencies": [
-            ["@yarnpkg/fslib", "npm:2.3.0"],
-            ["@yarnpkg/libzip", "npm:2.2.1"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/json-proxy", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-json-proxy-npm-2.1.0-4a57c7610a-9c3877ca03.zip/node_modules/@yarnpkg/json-proxy/",
-          "packageDependencies": [
-            ["@yarnpkg/json-proxy", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"],
-            ["@yarnpkg/fslib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/libzip", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-libzip-npm-2.1.0-803ea34c94-886d4a269a.zip/node_modules/@yarnpkg/libzip/",
-          "packageDependencies": [
-            ["@yarnpkg/libzip", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"],
-            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.2.1", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-libzip-npm-2.2.1-8ad75a808a-75813c2dbe.zip/node_modules/@yarnpkg/libzip/",
-          "packageDependencies": [
-            ["@yarnpkg/libzip", "npm:2.2.1"],
-            ["@types/emscripten", "npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/parsers", [
-        ["npm:2.3.0", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-parsers-npm-2.3.0-0fc08d0fb0-3c221fe5e2.zip/node_modules/@yarnpkg/parsers/",
-          "packageDependencies": [
-            ["@yarnpkg/parsers", "npm:2.3.0"],
-            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/pnp", [
-        ["npm:2.3.1", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-pnp-npm-2.3.1-29e8efeb8a-b04da36672.zip/node_modules/@yarnpkg/pnp/",
-          "packageDependencies": [
-            ["@yarnpkg/pnp", "npm:2.3.1"],
-            ["@types/node", "npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"],
-            ["@yarnpkg/fslib", "npm:2.3.0"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/pnpify", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3", {
-          "packageLocation": "./.yarn/$$virtual/@yarnpkg-pnpify-virtual-239268ef3d/0/cache/@yarnpkg-pnpify-npm-2.3.3-d139ee88e8-80ccd1a560.zip/node_modules/@yarnpkg/pnpify/",
-          "packageDependencies": [
-            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
-            ["@yarnpkg/core", "npm:2.3.1"],
-            ["@yarnpkg/fslib", "npm:2.3.0"],
-            ["@yarnpkg/parsers", "npm:2.3.0"],
-            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
-            ["clipanion", "npm:2.6.2"],
-            ["comment-json", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "eslint",
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["@yarnpkg/shell", [
-        ["npm:2.4.0", {
-          "packageLocation": "./.yarn/cache/@yarnpkg-shell-npm-2.4.0-fc56c5c75a-fd09d872d5.zip/node_modules/@yarnpkg/shell/",
-          "packageDependencies": [
-            ["@yarnpkg/shell", "npm:2.4.0"],
-            ["@yarnpkg/fslib", "npm:2.3.0"],
-            ["@yarnpkg/parsers", "npm:2.3.0"],
-            ["clipanion", "npm:2.6.2"],
-            ["cross-spawn", "npm:7.0.3"],
-            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
-            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
-            ["stream-buffers", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["abbrev", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/abbrev-npm-1.1.1-45768b3970-9f9236a3cc.zip/node_modules/abbrev/",
-          "packageDependencies": [
-            ["abbrev", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["accepts", [
-        ["npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz", {
-          "packageLocation": "./.yarn/cache/accepts-npm-1.3.7-6f43068745-2686fa30db.zip/node_modules/accepts/",
-          "packageDependencies": [
-            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
-            ["negotiator", "npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["acorn", [
-        ["npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/acorn-npm-7.3.1-66f98debe7-3fa7039384.zip/node_modules/acorn/",
-          "packageDependencies": [
-            ["acorn", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.4.1", {
-          "packageLocation": "./.yarn/cache/acorn-npm-7.4.1-f450b4646c-2bde98c28c.zip/node_modules/acorn/",
-          "packageDependencies": [
-            ["acorn", "npm:7.4.1"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:8.0.4", {
-          "packageLocation": "./.yarn/cache/acorn-npm-8.0.4-03d9a92fbf-d23a2df6c6.zip/node_modules/acorn/",
-          "packageDependencies": [
-            ["acorn", "npm:8.0.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["acorn-jsx", [
-        ["virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/acorn-jsx-virtual-897634baa5/0/cache/acorn-jsx-npm-5.2.0-df860d7479-1247cc4b32.zip/node_modules/acorn-jsx/",
-          "packageDependencies": [
-            ["acorn-jsx", "virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"],
-            ["acorn", "npm:7.4.1"]
-          ],
-          "packagePeers": [
-            "acorn"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["aggregate-error", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/aggregate-error-npm-3.0.1-78932e7896-aee96f00c2.zip/node_modules/aggregate-error/",
-          "packageDependencies": [
-            ["aggregate-error", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"],
-            ["clean-stack", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"],
-            ["indent-string", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ajv", [
-        ["npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz", {
-          "packageLocation": "./.yarn/cache/ajv-npm-6.12.3-05d0eeb9b8-b20a171bf3.zip/node_modules/ajv/",
-          "packageDependencies": [
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
-            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
-            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz", {
-          "packageLocation": "./.yarn/cache/ajv-npm-6.12.4-1badbf9de4-50d72b0a10.zip/node_modules/ajv/",
-          "packageDependencies": [
-            ["ajv", "npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"],
-            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
-            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
-            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.12.6", {
-          "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-19a8f3b0a0.zip/node_modules/ajv/",
-          "packageDependencies": [
-            ["ajv", "npm:6.12.6"],
-            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"],
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
-            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"],
-            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ajv-errors", [
-        ["virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/ajv-errors-virtual-72d38507e4/0/cache/ajv-errors-npm-1.0.1-39ff2ef93e-d8356aadcb.zip/node_modules/ajv-errors/",
-          "packageDependencies": [
-            ["ajv-errors", "virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"]
-          ],
-          "packagePeers": [
-            "ajv"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ajv-keywords", [
-        ["virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-f99cb7f4e6/0/cache/ajv-keywords-npm-3.5.1-3ebb430a3f-f91a8a5304.zip/node_modules/ajv-keywords/",
-          "packageDependencies": [
-            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"]
-          ],
-          "packagePeers": [
-            "ajv"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", {
-          "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-16dbd3e692/0/cache/ajv-keywords-npm-3.5.2-c36e2f7ee0-01f26c2923.zip/node_modules/ajv-keywords/",
-          "packageDependencies": [
-            ["ajv-keywords", "virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"],
-            ["ajv", "npm:6.12.6"]
-          ],
-          "packagePeers": [
-            "ajv"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ansi-colors", [
-        ["npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-colors-npm-3.2.4-03ff0de307-86ec4a476a.zip/node_modules/ansi-colors/",
-          "packageDependencies": [
-            ["ansi-colors", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-colors-npm-4.1.1-44a0da1f80-50d8dfbce2.zip/node_modules/ansi-colors/",
-          "packageDependencies": [
-            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ansi-escapes", [
-        ["npm:4.3.1", {
-          "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.1-f4aad61b5b-bcb39e57bd.zip/node_modules/ansi-escapes/",
-          "packageDependencies": [
-            ["ansi-escapes", "npm:4.3.1"],
-            ["type-fest", "npm:0.11.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ansi-html", [
-        ["npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-html-npm-0.0.7-7ee0b8d117-1178680548.zip/node_modules/ansi-html/",
-          "packageDependencies": [
-            ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ansi-regex", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-regex-npm-2.1.1-a70b16d58b-93a53c923f.zip/node_modules/ansi-regex/",
-          "packageDependencies": [
-            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-regex-npm-4.1.0-7f6fd6def0-53b6fe447c.zip/node_modules/ansi-regex/",
-          "packageDependencies": [
-            ["ansi-regex", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.0-3d04060839-cbd9b5c9db.zip/node_modules/ansi-regex/",
-          "packageDependencies": [
-            ["ansi-regex", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ansi-styles", [
-        ["npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-styles-npm-2.2.1-b68231dfb7-108c749637.zip/node_modules/ansi-styles/",
-          "packageDependencies": [
-            ["ansi-styles", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-4ec9c0bba3-456e1c23d9.zip/node_modules/ansi-styles/",
-          "packageDependencies": [
-            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
-            ["color-convert", "npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/ansi-styles-npm-4.2.1-45b5c3d4c4-c8c007d5da.zip/node_modules/ansi-styles/",
-          "packageDependencies": [
-            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
-            ["@types/color-name", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"],
-            ["color-convert", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["any-promise", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/any-promise-npm-1.3.0-2a8c20cb4b-e829425e4a.zip/node_modules/any-promise/",
-          "packageDependencies": [
-            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["anymatch", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/anymatch-npm-2.0.0-6a80540af9-9e495910cc.zip/node_modules/anymatch/",
-          "packageDependencies": [
-            ["anymatch", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"],
-            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
-            ["normalize-path", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/anymatch-npm-3.1.1-c11e735ce5-cf61bbaf7f.zip/node_modules/anymatch/",
-          "packageDependencies": [
-            ["anymatch", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"],
-            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["aproba", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/aproba-npm-1.2.0-7ec70d8ce8-d4bac3e640.zip/node_modules/aproba/",
-          "packageDependencies": [
-            ["aproba", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["are-we-there-yet", [
-        ["npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz", {
-          "packageLocation": "./.yarn/cache/are-we-there-yet-npm-1.1.5-66966c80fa-2d6fdb0ddd.zip/node_modules/are-we-there-yet/",
-          "packageDependencies": [
-            ["are-we-there-yet", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"],
-            ["delegates", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"],
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["argparse", [
-        ["npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", {
-          "packageLocation": "./.yarn/cache/argparse-npm-1.0.10-3e4b745921-435adaef5f.zip/node_modules/argparse/",
-          "packageDependencies": [
-            ["argparse", "npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"],
-            ["sprintf-js", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["arr-diff", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/arr-diff-npm-4.0.0-23b33727de-cbdff67cf5.zip/node_modules/arr-diff/",
-          "packageDependencies": [
-            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["arr-flatten", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/arr-flatten-npm-1.1.0-2ccfeccce2-564dc9c32c.zip/node_modules/arr-flatten/",
-          "packageDependencies": [
-            ["arr-flatten", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["arr-union", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/arr-union-npm-3.1.0-5fec769033-78f0f75c47.zip/node_modules/arr-union/",
-          "packageDependencies": [
-            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-back", [
-        ["npm:4.0.1", {
-          "packageLocation": "./.yarn/cache/array-back-npm-4.0.1-e3efcb9aa9-611f95e039.zip/node_modules/array-back/",
-          "packageDependencies": [
-            ["array-back", "npm:4.0.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-flatten", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/array-flatten-npm-1.1.1-612a788b2c-de7a056451.zip/node_modules/array-flatten/",
-          "packageDependencies": [
-            ["array-flatten", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/array-flatten-npm-2.1.2-a9c3b9f324-46bfb198da.zip/node_modules/array-flatten/",
-          "packageDependencies": [
-            ["array-flatten", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-includes", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/array-includes-npm-3.1.1-8165aebb2e-9fa86fdad9.zip/node_modules/array-includes/",
-          "packageDependencies": [
-            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["is-string", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-union", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/array-union-npm-1.0.2-1c06919f13-5be2568acc.zip/node_modules/array-union/",
-          "packageDependencies": [
-            ["array-union", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"],
-            ["array-uniq", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/array-union-npm-2.1.0-b0d3f09bc8-93af542eb8.zip/node_modules/array-union/",
-          "packageDependencies": [
-            ["array-union", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-uniq", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/array-uniq-npm-1.0.3-d03e47af2a-ae11b7fc1e.zip/node_modules/array-uniq/",
-          "packageDependencies": [
-            ["array-uniq", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array-unique", [
-        ["npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/array-unique-npm-0.3.2-a2433ae70c-7139dbbcaf.zip/node_modules/array-unique/",
-          "packageDependencies": [
-            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array.prototype.flat", [
-        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/array.prototype.flat-npm-1.2.3-d28d243808-f88a474d1c.zip/node_modules/array.prototype.flat/",
-          "packageDependencies": [
-            ["array.prototype.flat", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["array.prototype.flatmap", [
-        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.2.3-fddf0cc1de-adbf30f271.zip/node_modules/array.prototype.flatmap/",
-          "packageDependencies": [
-            ["array.prototype.flatmap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["asap", [
-        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/asap-npm-2.0.6-8b712bb60f-3d314f8c59.zip/node_modules/asap/",
-          "packageDependencies": [
-            ["asap", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["asn1", [
-        ["npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/asn1-npm-0.2.4-0c406a7c58-5743ace942.zip/node_modules/asn1/",
-          "packageDependencies": [
-            ["asn1", "npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"],
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["assert-plus", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/assert-plus-npm-1.0.0-2a5298a110-1bda24f673.zip/node_modules/assert-plus/",
-          "packageDependencies": [
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["assign-symbols", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/assign-symbols-npm-1.0.0-10c1236af8-893e9389a5.zip/node_modules/assign-symbols/",
-          "packageDependencies": [
-            ["assign-symbols", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["astral-regex", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/astral-regex-npm-1.0.0-a1db7fe71d-08e37f5996.zip/node_modules/astral-regex/",
-          "packageDependencies": [
-            ["astral-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["async", [
-        ["npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz", {
-          "packageLocation": "./.yarn/cache/async-npm-2.6.3-9a394ca422-5c30ec6f3d.zip/node_modules/async/",
-          "packageDependencies": [
-            ["async", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["async-each", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/async-each-npm-1.0.3-b43586a972-0cf01982ae.zip/node_modules/async-each/",
-          "packageDependencies": [
-            ["async-each", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["async-limiter", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/async-limiter-npm-1.0.1-cbc5273635-d123312ace.zip/node_modules/async-limiter/",
-          "packageDependencies": [
-            ["async-limiter", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["asynckit", [
-        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-4cc878e332-a024000b9d.zip/node_modules/asynckit/",
-          "packageDependencies": [
-            ["asynckit", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["atob", [
-        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/atob-npm-2.1.2-8ff4b41199-597c0d1a74.zip/node_modules/atob/",
-          "packageDependencies": [
-            ["atob", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["autoprefixer", [
-        ["npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", {
-          "packageLocation": "./.yarn/cache/autoprefixer-npm-9.8.6-930909eb64-b406d8047a.zip/node_modules/autoprefixer/",
-          "packageDependencies": [
-            ["autoprefixer", "npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
-            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
-            ["normalize-range", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"],
-            ["num2fraction", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["aws-sign2", [
-        ["npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/aws-sign2-npm-0.7.0-0b8ffdeda1-7162b9b8fb.zip/node_modules/aws-sign2/",
-          "packageDependencies": [
-            ["aws-sign2", "npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["aws4", [
-        ["npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz", {
-          "packageLocation": "./.yarn/cache/aws4-npm-1.10.0-edf6b6c462-f8c20a0031.zip/node_modules/aws4/",
-          "packageDependencies": [
-            ["aws4", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["axios", [
-        ["npm:0.21.0", {
-          "packageLocation": "./.yarn/cache/axios-npm-0.21.0-9223cb0552-4b08ecab39.zip/node_modules/axios/",
-          "packageDependencies": [
-            ["axios", "npm:0.21.0"],
-            ["follow-redirects", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-code-frame", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-code-frame-npm-6.26.0-37bb59b027-cc2a799ccc.zip/node_modules/babel-code-frame/",
-          "packageDependencies": [
-            ["babel-code-frame", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"],
-            ["chalk", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
-            ["js-tokens", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-extract-comments", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-extract-comments-npm-1.0.0-6952c6a616-2a291f1a3a.zip/node_modules/babel-extract-comments/",
-          "packageDependencies": [
-            ["babel-extract-comments", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"],
-            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/babel-loader-virtual-e211b20a54/0/cache/babel-loader-npm-8.1.0-367cb3ea01-f7b236a5f7.zip/node_modules/babel-loader/",
-          "packageDependencies": [
-            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
-            ["@babel/core", "npm:7.12.3"],
-            ["find-cache-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"],
-            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
-            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
-            ["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "@babel/core",
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-messages", [
-        ["npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-messages-npm-6.23.0-50eff89869-9a04e1b86b.zip/node_modules/babel-messages/",
-          "packageDependencies": [
-            ["babel-messages", "npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-plugin-dynamic-import-node", [
-        ["npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", {
-          "packageLocation": "./.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-435aac031f-6745b8edca.zip/node_modules/babel-plugin-dynamic-import-node/",
-          "packageDependencies": [
-            ["babel-plugin-dynamic-import-node", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"],
-            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-plugin-syntax-object-rest-spread", [
-        ["npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-plugin-syntax-object-rest-spread-npm-6.13.0-48b5f8e7f6-459844d1a8.zip/node_modules/babel-plugin-syntax-object-rest-spread/",
-          "packageDependencies": [
-            ["babel-plugin-syntax-object-rest-spread", "npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-plugin-transform-builtin-extend", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/babel-plugin-transform-builtin-extend-npm-1.1.2-b11417fb96-29040a2217.zip/node_modules/babel-plugin-transform-builtin-extend/",
-          "packageDependencies": [
-            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
-            ["babel-template", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-plugin-transform-object-rest-spread", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-plugin-transform-object-rest-spread-npm-6.26.0-2be1b5ea2f-1d8ff82057.zip/node_modules/babel-plugin-transform-object-rest-spread/",
-          "packageDependencies": [
-            ["babel-plugin-transform-object-rest-spread", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"],
-            ["babel-plugin-syntax-object-rest-spread", "npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-runtime", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-runtime-npm-6.26.0-0058de2c6b-5010bf1d81.zip/node_modules/babel-runtime/",
-          "packageDependencies": [
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
-            ["core-js", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"],
-            ["regenerator-runtime", "npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-template", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-template-npm-6.26.0-a7bf41e5e3-3c76998a19.zip/node_modules/babel-template/",
-          "packageDependencies": [
-            ["babel-template", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
-            ["babel-traverse", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"],
-            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
-            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-traverse", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-traverse-npm-6.26.0-8c8a8763bc-05030a5152.zip/node_modules/babel-traverse/",
-          "packageDependencies": [
-            ["babel-traverse", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"],
-            ["babel-code-frame", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"],
-            ["babel-messages", "npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
-            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
-            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["globals", "npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babel-types", [
-        ["npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz", {
-          "packageLocation": "./.yarn/cache/babel-types-npm-6.26.0-c0bd393443-9fb4b712af.zip/node_modules/babel-types/",
-          "packageDependencies": [
-            ["babel-types", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"],
-            ["babel-runtime", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["to-fast-properties", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["babylon", [
-        ["npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz", {
-          "packageLocation": "./.yarn/cache/babylon-npm-6.18.0-e3afa4fc93-af38302e3f.zip/node_modules/babylon/",
-          "packageDependencies": [
-            ["babylon", "npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["balanced-match", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.0-c3ed29b6d4-f515a605fe.zip/node_modules/balanced-match/",
-          "packageDependencies": [
-            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["base", [
-        ["npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz", {
-          "packageLocation": "./.yarn/cache/base-npm-0.11.2-fca2af58ba-84e30392fd.zip/node_modules/base/",
-          "packageDependencies": [
-            ["base", "npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"],
-            ["cache-base", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"],
-            ["class-utils", "npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"],
-            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"],
-            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
-            ["mixin-deep", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"],
-            ["pascalcase", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["base64-js", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/base64-js-npm-1.3.1-bf8d08cf84-8a0cc69d7c.zip/node_modules/base64-js/",
-          "packageDependencies": [
-            ["base64-js", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["basic-auth", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/basic-auth-npm-1.1.0-25c93ba045-dd75a3730b.zip/node_modules/basic-auth/",
-          "packageDependencies": [
-            ["basic-auth", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["batch", [
-        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz", {
-          "packageLocation": "./.yarn/cache/batch-npm-0.6.1-d08233db8c-4ec2d961e6.zip/node_modules/batch/",
-          "packageDependencies": [
-            ["batch", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bcrypt-pbkdf", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/bcrypt-pbkdf-npm-1.0.2-d44b9e6c84-3f57eb99bb.zip/node_modules/bcrypt-pbkdf/",
-          "packageDependencies": [
-            ["bcrypt-pbkdf", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"],
-            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["big.js", [
-        ["npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/big.js-npm-5.2.2-5ae2b6c67c-ea33d7d256.zip/node_modules/big.js/",
-          "packageDependencies": [
-            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["binary-extensions", [
-        ["npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", {
-          "packageLocation": "./.yarn/cache/binary-extensions-npm-1.13.1-015e160c9e-7cdacc6dad.zip/node_modules/binary-extensions/",
-          "packageDependencies": [
-            ["binary-extensions", "npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/binary-extensions-npm-2.1.0-42807b699d-12bee28179.zip/node_modules/binary-extensions/",
-          "packageDependencies": [
-            ["binary-extensions", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bindings", [
-        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/bindings-npm-1.5.0-c72f8f2b49-bd623dec58.zip/node_modules/bindings/",
-          "packageDependencies": [
-            ["bindings", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"],
-            ["file-uri-to-path", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["binjumper", [
-        ["npm:0.1.3", {
-          "packageLocation": "./.yarn/cache/binjumper-npm-0.1.3-160b213eed-660000e5a5.zip/node_modules/binjumper/",
-          "packageDependencies": [
-            ["binjumper", "npm:0.1.3"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bl", [
-        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/bl-npm-4.0.3-01d162e53b-1f33c5a3da.zip/node_modules/bl/",
-          "packageDependencies": [
-            ["bl", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"],
-            ["buffer", "npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["body-parser", [
-        ["npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz", {
-          "packageLocation": "./.yarn/cache/body-parser-npm-1.19.0-26ceae3d2a-18c2a81df5.zip/node_modules/body-parser/",
-          "packageDependencies": [
-            ["body-parser", "npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"],
-            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"],
-            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
-            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
-            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
-            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"],
-            ["raw-body", "npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"],
-            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bonjour", [
-        ["npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/bonjour-npm-3.5.0-aa8cd2567e-b6c49714a3.zip/node_modules/bonjour/",
-          "packageDependencies": [
-            ["bonjour", "npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"],
-            ["array-flatten", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"],
-            ["deep-equal", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"],
-            ["dns-equal", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"],
-            ["dns-txt", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"],
-            ["multicast-dns", "npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"],
-            ["multicast-dns-service-types", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["boolbase", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/boolbase-npm-1.0.0-ee5fa28926-e827963c41.zip/node_modules/boolbase/",
-          "packageDependencies": [
-            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bootstrap", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3", {
-          "packageLocation": "./.yarn/$$virtual/bootstrap-virtual-82a35168cd/0/cache/bootstrap-npm-4.5.3-8fe04d4444-8c8850152f.zip/node_modules/bootstrap/",
-          "packageDependencies": [
-            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
-            ["jquery", null],
-            ["popper.js", null]
-          ],
-          "packagePeers": [
-            "jquery",
-            "popper.js"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bootstrap-icons", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/bootstrap-icons-npm-1.0.0-b1f8003214-082d8d2aff.zip/node_modules/bootstrap-icons/",
-          "packageDependencies": [
-            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["brace-expansion", [
-        ["npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", {
-          "packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-b9835edbf2-4c878e25e4.zip/node_modules/brace-expansion/",
-          "packageDependencies": [
-            ["brace-expansion", "npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"],
-            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
-            ["concat-map", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["braces", [
-        ["npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/braces-npm-2.3.2-22286581f5-5f2d5ae262.zip/node_modules/braces/",
-          "packageDependencies": [
-            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
-            ["arr-flatten", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"],
-            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["fill-range", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
-            ["repeat-element", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"],
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["snapdragon-node", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"],
-            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"],
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/braces-npm-3.0.2-520c7ed914-f3493181c3.zip/node_modules/braces/",
-          "packageDependencies": [
-            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
-            ["fill-range", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["browserslist", [
-        ["npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz", {
-          "packageLocation": "./.yarn/cache/browserslist-npm-4.13.0-7f55da350c-91657dcc02.zip/node_modules/browserslist/",
-          "packageDependencies": [
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["caniuse-lite", "npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"],
-            ["electron-to-chromium", "npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"],
-            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"],
-            ["node-releases", "npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz", {
-          "packageLocation": "./.yarn/cache/browserslist-npm-4.14.0-fa981c9b43-1ca4d424ae.zip/node_modules/browserslist/",
-          "packageDependencies": [
-            ["browserslist", "npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"],
-            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
-            ["electron-to-chromium", "npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"],
-            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"],
-            ["node-releases", "npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.14.5", {
-          "packageLocation": "./.yarn/cache/browserslist-npm-4.14.5-9f4c5b58ce-18261764bd.zip/node_modules/browserslist/",
-          "packageDependencies": [
-            ["browserslist", "npm:4.14.5"],
-            ["caniuse-lite", "npm:1.0.30001151"],
-            ["electron-to-chromium", "npm:1.3.583"],
-            ["escalade", "npm:3.1.1"],
-            ["node-releases", "npm:1.1.64"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["buffer", [
-        ["npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/buffer-npm-5.6.0-48010737b7-e18fdf099c.zip/node_modules/buffer/",
-          "packageDependencies": [
-            ["buffer", "npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"],
-            ["base64-js", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"],
-            ["ieee754", "npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["buffer-from", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.1-6ae17298ef-540ceb79c4.zip/node_modules/buffer-from/",
-          "packageDependencies": [
-            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["buffer-indexof", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/buffer-indexof-npm-1.1.1-f2a58116e6-f711418567.zip/node_modules/buffer-indexof/",
-          "packageDependencies": [
-            ["buffer-indexof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["builtin-modules", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/builtin-modules-npm-3.1.0-11a728777f-54f062393c.zip/node_modules/builtin-modules/",
-          "packageDependencies": [
-            ["builtin-modules", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["bytes", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/bytes-npm-3.0.0-72e85efcd7-98d6c0ab36.zip/node_modules/bytes/",
-          "packageDependencies": [
-            ["bytes", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/bytes-npm-3.1.0-5ba1e8cbb8-c3f64645ef.zip/node_modules/bytes/",
-          "packageDependencies": [
-            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cacache", [
-        ["npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/cacache-npm-15.0.5-f324357b55-8e371cbf3c.zip/node_modules/cacache/",
-          "packageDependencies": [
-            ["cacache", "npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"],
-            ["@npmcli/move-file", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"],
-            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"],
-            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
-            ["infer-owner", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"],
-            ["lru-cache", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
-            ["minipass-collect", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"],
-            ["minipass-flush", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"],
-            ["minipass-pipeline", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"],
-            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"],
-            ["p-map", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"],
-            ["promise-inflight", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"],
-            ["rimraf", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"],
-            ["ssri", "npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"],
-            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
-            ["unique-filename", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cache-base", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/cache-base-npm-1.0.1-94c04d4f71-3f362ba824.zip/node_modules/cache-base/",
-          "packageDependencies": [
-            ["cache-base", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"],
-            ["collection-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"],
-            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"],
-            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
-            ["has-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
-            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"],
-            ["to-object-path", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"],
-            ["union-value", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"],
-            ["unset-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cacheable-lookup", [
-        ["npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.3-285cb52f4f-a51e3ddb82.zip/node_modules/cacheable-lookup/",
-          "packageDependencies": [
-            ["cacheable-lookup", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cacheable-request", [
-        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/cacheable-request-npm-7.0.1-8d81f09261-fe0b6f3b8a.zip/node_modules/cacheable-request/",
-          "packageDependencies": [
-            ["cacheable-request", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"],
-            ["clone-response", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"],
-            ["get-stream", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"],
-            ["http-cache-semantics", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"],
-            ["keyv", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"],
-            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"],
-            ["normalize-url", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"],
-            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["callsites", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/callsites-npm-3.1.0-9eb8c274fc-f726bf10d7.zip/node_modules/callsites/",
-          "packageDependencies": [
-            ["callsites", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["camel-case", [
-        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/camel-case-npm-4.1.1-12765494f7-c202f62a74.zip/node_modules/camel-case/",
-          "packageDependencies": [
-            ["camel-case", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"],
-            ["pascal-case", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["camelcase", [
-        ["npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-c4a14b435b-6a3350c4ea.zip/node_modules/camelcase/",
-          "packageDependencies": [
-            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.1.0", {
-          "packageLocation": "./.yarn/cache/camelcase-npm-6.1.0-d0e05be5f0-3e968d5efb.zip/node_modules/camelcase/",
-          "packageDependencies": [
-            ["camelcase", "npm:6.1.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["caniuse-lite", [
-        ["npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz", {
-          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001104-7c7a30129a-fdaf22cc7d.zip/node_modules/caniuse-lite/",
-          "packageDependencies": [
-            ["caniuse-lite", "npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz", {
-          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001117-130f4ae236-1e662b5508.zip/node_modules/caniuse-lite/",
-          "packageDependencies": [
-            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.30001151", {
-          "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001151-29bf83e412-3acb52ac17.zip/node_modules/caniuse-lite/",
-          "packageDependencies": [
-            ["caniuse-lite", "npm:1.0.30001151"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["caseless", [
-        ["npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz", {
-          "packageLocation": "./.yarn/cache/caseless-npm-0.12.0-d000fe9455-147f48bff9.zip/node_modules/caseless/",
-          "packageDependencies": [
-            ["caseless", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["chalk", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/chalk-npm-1.1.3-415cd93d89-bc2df54f6d.zip/node_modules/chalk/",
-          "packageDependencies": [
-            ["chalk", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"],
-            ["ansi-styles", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"],
-            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"],
-            ["has-ansi", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"],
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
-            ["supports-color", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", {
-          "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-83e0619898-22c7b7b5bc.zip/node_modules/chalk/",
-          "packageDependencies": [
-            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
-            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
-            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"],
-            ["supports-color", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/chalk-npm-3.0.0-f81cdc94b3-4018b0c812.zip/node_modules/chalk/",
-          "packageDependencies": [
-            ["chalk", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"],
-            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
-            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/chalk-npm-4.1.0-bcc07ea531-f860285b41.zip/node_modules/chalk/",
-          "packageDependencies": [
-            ["chalk", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"],
-            ["ansi-styles", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"],
-            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["chokidar", [
-        ["npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", {
-          "packageLocation": "./.yarn/cache/chokidar-npm-2.1.8-7b1ceeb46a-0758dcc7c6.zip/node_modules/chokidar/",
-          "packageDependencies": [
-            ["chokidar", "npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"],
-            ["anymatch", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"],
-            ["async-each", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"],
-            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
-            ["fsevents", "patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"],
-            ["glob-parent", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["is-binary-path", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
-            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"],
-            ["readdirp", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"],
-            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/chokidar-npm-3.4.1-5798e5a2ae-fdbeae89bd.zip/node_modules/chokidar/",
-          "packageDependencies": [
-            ["chokidar", "npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"],
-            ["anymatch", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"],
-            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
-            ["fsevents", "patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"],
-            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
-            ["is-binary-path", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
-            ["readdirp", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["chownr", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-38c4955116-b06ba0bf42.zip/node_modules/chownr/",
-          "packageDependencies": [
-            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["chrome-trace-event", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/chrome-trace-event-npm-1.0.2-e0d70573de-926fe23bc9.zip/node_modules/chrome-trace-event/",
-          "packageDependencies": [
-            ["chrome-trace-event", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ci-info", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/ci-info-npm-2.0.0-a7f4417c5b-553fe83c08.zip/node_modules/ci-info/",
-          "packageDependencies": [
-            ["ci-info", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["class-utils", [
-        ["npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz", {
-          "packageLocation": "./.yarn/cache/class-utils-npm-0.3.6-fb58ffcbad-6411679ad4.zip/node_modules/class-utils/",
-          "packageDependencies": [
-            ["class-utils", "npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"],
-            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"],
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
-            ["static-extend", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["classnames", [
-        ["npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz", {
-          "packageLocation": "./.yarn/cache/classnames-npm-2.2.6-55c23d3002-490eaeca59.zip/node_modules/classnames/",
-          "packageDependencies": [
-            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clean-css", [
-        ["npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/clean-css-npm-4.2.3-38b477ba36-a60f780082.zip/node_modules/clean-css/",
-          "packageDependencies": [
-            ["clean-css", "npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clean-stack", [
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-51ff747d05-e291ce2b8c.zip/node_modules/clean-stack/",
-          "packageDependencies": [
-            ["clean-stack", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clean-webpack-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/clean-webpack-plugin-virtual-e6fa6b2371/0/cache/clean-webpack-plugin-npm-3.0.0-d41cd9b41c-fc0fbd1c8e.zip/node_modules/clean-webpack-plugin/",
-          "packageDependencies": [
-            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
-            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
-            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clipanion", [
-        ["npm:2.6.2", {
-          "packageLocation": "./.yarn/cache/clipanion-npm-2.6.2-65049fe240-d162deedd0.zip/node_modules/clipanion/",
-          "packageDependencies": [
-            ["clipanion", "npm:2.6.2"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cliui", [
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/cliui-npm-5.0.0-fb4a0d5115-25e61dc985.zip/node_modules/cliui/",
-          "packageDependencies": [
-            ["cliui", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"],
-            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
-            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"],
-            ["wrap-ansi", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clone-response", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/clone-response-npm-1.0.2-4ecad846bc-71832f9219.zip/node_modules/clone-response/",
-          "packageDependencies": [
-            ["clone-response", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"],
-            ["mimic-response", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["clsx", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/clsx-npm-1.1.1-5f08b5303b-d8ae10ac05.zip/node_modules/clsx/",
-          "packageDependencies": [
-            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["code-point-at", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/code-point-at-npm-1.1.0-be657e74ad-7d9837296e.zip/node_modules/code-point-at/",
-          "packageDependencies": [
-            ["code-point-at", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["collection-visit", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/collection-visit-npm-1.0.0-f8de38dbca-c73cb1316c.zip/node_modules/collection-visit/",
-          "packageDependencies": [
-            ["collection-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"],
-            ["map-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"],
-            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["color-convert", [
-        ["npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz", {
-          "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-cb1b00346d-5f244daa3d.zip/node_modules/color-convert/",
-          "packageDependencies": [
-            ["color-convert", "npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"],
-            ["color-name", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/color-convert-npm-2.0.1-a468729ddc-3d5d8a011a.zip/node_modules/color-convert/",
-          "packageDependencies": [
-            ["color-convert", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"],
-            ["color-name", "npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["color-name", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/color-name-npm-1.1.3-b81b7d7714-d8b91bb90a.zip/node_modules/color-name/",
-          "packageDependencies": [
-            ["color-name", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/color-name-npm-1.1.4-569c622302-3e1c9a4dee.zip/node_modules/color-name/",
-          "packageDependencies": [
-            ["color-name", "npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["colorette", [
-        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/colorette-npm-1.2.1-19948a09a4-1cc21ad4b8.zip/node_modules/colorette/",
-          "packageDependencies": [
-            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["colors", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/colors-npm-1.4.0-d9ee0d7834-a0f266ac04.zip/node_modules/colors/",
-          "packageDependencies": [
-            ["colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["combined-stream", [
-        ["npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz", {
-          "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-7ee0df0b52-5791ce7944.zip/node_modules/combined-stream/",
-          "packageDependencies": [
-            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
-            ["delayed-stream", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["command-line-usage", [
-        ["npm:6.1.0", {
-          "packageLocation": "./.yarn/cache/command-line-usage-npm-6.1.0-061ea2a282-c49e5f4a67.zip/node_modules/command-line-usage/",
-          "packageDependencies": [
-            ["command-line-usage", "npm:6.1.0"],
-            ["array-back", "npm:4.0.1"],
-            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
-            ["table-layout", "npm:1.0.1"],
-            ["typical", "npm:5.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["commander", [
-        ["npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", {
-          "packageLocation": "./.yarn/cache/commander-npm-2.20.3-ae9b12bcd9-b73428e97d.zip/node_modules/commander/",
-          "packageDependencies": [
-            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/commander-npm-4.1.1-69c282739d-448585071b.zip/node_modules/commander/",
-          "packageDependencies": [
-            ["commander", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.2.0", {
-          "packageLocation": "./.yarn/cache/commander-npm-6.2.0-5c82761f33-c78501cd98.zip/node_modules/commander/",
-          "packageDependencies": [
-            ["commander", "npm:6.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["comment-json", [
-        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz", {
-          "packageLocation": "./.yarn/cache/comment-json-npm-2.4.2-4e3a863c29-80bc181741.zip/node_modules/comment-json/",
-          "packageDependencies": [
-            ["comment-json", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"],
-            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
-            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"],
-            ["has-own-prop", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"],
-            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["common-tags", [
-        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/common-tags-npm-1.8.0-8dc0c707f8-f37a868d86.zip/node_modules/common-tags/",
-          "packageDependencies": [
-            ["common-tags", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["commondir", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/commondir-npm-1.0.1-2f30185445-98f18ad14f.zip/node_modules/commondir/",
-          "packageDependencies": [
-            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["component-emitter", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/component-emitter-npm-1.3.0-2819e3f4af-fc4edbf101.zip/node_modules/component-emitter/",
-          "packageDependencies": [
-            ["component-emitter", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["compressible", [
-        ["npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", {
-          "packageLocation": "./.yarn/cache/compressible-npm-2.0.18-4a85912421-8ac178b6ef.zip/node_modules/compressible/",
-          "packageDependencies": [
-            ["compressible", "npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"],
-            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["compression", [
-        ["npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", {
-          "packageLocation": "./.yarn/cache/compression-npm-1.7.4-091cebef94-8f53567770.zip/node_modules/compression/",
-          "packageDependencies": [
-            ["compression", "npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"],
-            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
-            ["bytes", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"],
-            ["compressible", "npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["on-headers", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
-            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["concat-map", [
-        ["npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-5f3d48b8de-554e28d9ee.zip/node_modules/concat-map/",
-          "packageDependencies": [
-            ["concat-map", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["connect-history-api-fallback", [
-        ["npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/connect-history-api-fallback-npm-1.6.0-62edf2c17a-298f60415d.zip/node_modules/connect-history-api-fallback/",
-          "packageDependencies": [
-            ["connect-history-api-fallback", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["console-control-strings", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-8bfaba6262-58a404d951.zip/node_modules/console-control-strings/",
-          "packageDependencies": [
-            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["contains-path", [
-        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/contains-path-npm-0.1.0-bf2953afcb-59920a59a0.zip/node_modules/contains-path/",
-          "packageDependencies": [
-            ["contains-path", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["content-disposition", [
-        ["npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", {
-          "packageLocation": "./.yarn/cache/content-disposition-npm-0.5.3-e98afeed39-8f1f235c04.zip/node_modules/content-disposition/",
-          "packageDependencies": [
-            ["content-disposition", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["content-type", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/content-type-npm-1.0.4-3c7f97e2a6-ff6e19cbf2.zip/node_modules/content-type/",
-          "packageDependencies": [
-            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["convert-source-map", [
-        ["npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/convert-source-map-npm-1.7.0-4e7b391f76-b10fbf041e.zip/node_modules/convert-source-map/",
-          "packageDependencies": [
-            ["convert-source-map", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cookie", [
-        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/cookie-npm-0.4.0-e8f5673c57-7aaef4b642.zip/node_modules/cookie/",
-          "packageDependencies": [
-            ["cookie", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cookie-signature", [
-        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/cookie-signature-npm-1.0.6-d0b3c28004-305054e102.zip/node_modules/cookie-signature/",
-          "packageDependencies": [
-            ["cookie-signature", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["copy-descriptor", [
-        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/copy-descriptor-npm-0.1.1-b3e517abb5-c052cf571f.zip/node_modules/copy-descriptor/",
-          "packageDependencies": [
-            ["copy-descriptor", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["copy-webpack-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1", {
-          "packageLocation": "./.yarn/$$virtual/copy-webpack-plugin-virtual-51fd9331f8/0/cache/copy-webpack-plugin-npm-6.2.1-297e10f806-99ef83b423.zip/node_modules/copy-webpack-plugin/",
-          "packageDependencies": [
-            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
-            ["cacache", "npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"],
-            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
-            ["find-cache-dir", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"],
-            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
-            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"],
-            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["serialize-javascript", "npm:5.0.1"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["core-js", [
-        ["npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", {
-          "packageLocation": "./.yarn/unplugged/core-js-npm-2.6.11-57e73666ba/node_modules/core-js/",
-          "packageDependencies": [
-            ["core-js", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz", {
-          "packageLocation": "./.yarn/unplugged/core-js-npm-3.6.5-166d65952e/node_modules/core-js/",
-          "packageDependencies": [
-            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["core-js-compat", [
-        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz", {
-          "packageLocation": "./.yarn/cache/core-js-compat-npm-3.6.5-f1cca24989-b263b5313f.zip/node_modules/core-js-compat/",
-          "packageDependencies": [
-            ["core-js-compat", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"],
-            ["browserslist", "npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"],
-            ["semver", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["core-js-pure", [
-        ["npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz", {
-          "packageLocation": "./.yarn/unplugged/core-js-pure-npm-3.6.5-7b291ad14f/node_modules/core-js-pure/",
-          "packageDependencies": [
-            ["core-js-pure", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["core-util-is", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/core-util-is-npm-1.0.2-373a1c9021-089015ee3c.zip/node_modules/core-util-is/",
-          "packageDependencies": [
-            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["corser", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/corser-npm-2.0.1-b5c89e19be-5af366b3ea.zip/node_modules/corser/",
-          "packageDependencies": [
-            ["corser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cosmiconfig", [
-        ["npm:7.0.0", {
-          "packageLocation": "./.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-151fcb9177.zip/node_modules/cosmiconfig/",
-          "packageDependencies": [
-            ["cosmiconfig", "npm:7.0.0"],
-            ["@types/parse-json", "npm:4.0.0"],
-            ["import-fresh", "npm:3.2.1"],
-            ["parse-json", "npm:5.1.0"],
-            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"],
-            ["yaml", "npm:1.10.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cross-spawn", [
-        ["npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/cross-spawn-npm-6.0.5-b596e42a26-05fbbf957d.zip/node_modules/cross-spawn/",
-          "packageDependencies": [
-            ["cross-spawn", "npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"],
-            ["nice-try", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"],
-            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
-            ["shebang-command", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"],
-            ["which", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.3", {
-          "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-51f10036f5.zip/node_modules/cross-spawn/",
-          "packageDependencies": [
-            ["cross-spawn", "npm:7.0.3"],
-            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"],
-            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
-            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-07a9d8e991-51f10036f5.zip/node_modules/cross-spawn/",
-          "packageDependencies": [
-            ["cross-spawn", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"],
-            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"],
-            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
-            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["crypto-random-string", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/crypto-random-string-npm-1.0.0-ec63a18cda-0876b316cc.zip/node_modules/crypto-random-string/",
-          "packageDependencies": [
-            ["crypto-random-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-blank-pseudo", [
-        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/css-blank-pseudo-npm-0.1.4-72388a4168-605927ba91.zip/node_modules/css-blank-pseudo/",
-          "packageDependencies": [
-            ["css-blank-pseudo", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-has-pseudo", [
-        ["npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz", {
-          "packageLocation": "./.yarn/cache/css-has-pseudo-npm-0.10.0-e583e84c49-8bfb4c7d42.zip/node_modules/css-has-pseudo/",
-          "packageDependencies": [
-            ["css-has-pseudo", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0", {
-          "packageLocation": "./.yarn/$$virtual/css-loader-virtual-91fbdd3c05/0/cache/css-loader-npm-5.0.0-817f349654-8b0d45e201.zip/node_modules/css-loader/",
-          "packageDependencies": [
-            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
-            ["camelcase", "npm:6.1.0"],
-            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
-            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["postcss", "npm:8.1.4"],
-            ["postcss-modules-extract-imports", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
-            ["postcss-modules-local-by-default", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
-            ["postcss-modules-scope", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
-            ["postcss-modules-values", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
-            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-mediaquery", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/css-mediaquery-npm-0.1.2-1a2db1b6cd-571ab2efdb.zip/node_modules/css-mediaquery/",
-          "packageDependencies": [
-            ["css-mediaquery", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-prefers-color-scheme", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/css-prefers-color-scheme-npm-3.1.1-7913ab1ae8-3ef06a7a42.zip/node_modules/css-prefers-color-scheme/",
-          "packageDependencies": [
-            ["css-prefers-color-scheme", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-select", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/css-select-npm-1.2.0-6f504401a8-c1fdd9040c.zip/node_modules/css-select/",
-          "packageDependencies": [
-            ["css-select", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"],
-            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"],
-            ["css-what", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"],
-            ["domutils", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"],
-            ["nth-check", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["css-what", [
-        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/css-what-npm-2.1.3-27e407c1c1-732fcecfe3.zip/node_modules/css-what/",
-          "packageDependencies": [
-            ["css-what", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cssdb", [
-        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/cssdb-npm-4.4.0-a034581204-457af51749.zip/node_modules/cssdb/",
-          "packageDependencies": [
-            ["cssdb", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["cssesc", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/cssesc-npm-2.0.0-e8ee137bea-f32fabda44.zip/node_modules/cssesc/",
-          "packageDependencies": [
-            ["cssesc", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/cssesc-npm-3.0.0-16b37e2ed7-673783eda1.zip/node_modules/cssesc/",
-          "packageDependencies": [
-            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["csstype", [
-        ["npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz", {
-          "packageLocation": "./.yarn/cache/csstype-npm-2.6.11-b58edea390-b5de145e84.zip/node_modules/csstype/",
-          "packageDependencies": [
-            ["csstype", "npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/csstype-npm-3.0.2-653341ad2a-acf2852a3c.zip/node_modules/csstype/",
-          "packageDependencies": [
-            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dashdash", [
-        ["npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", {
-          "packageLocation": "./.yarn/cache/dashdash-npm-1.14.1-6622b50aa6-5959409ee4.zip/node_modules/dashdash/",
-          "packageDependencies": [
-            ["dashdash", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["debug", [
-        ["virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/debug-virtual-b31cd6dc94/0/cache/debug-npm-3.1.0-1eb0e42f93-1295acd5e0.zip/node_modules/debug/",
-          "packageDependencies": [
-            ["debug", "virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"],
-            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"],
-            ["supports-color", null]
-          ],
-          "packagePeers": [
-            "supports-color"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", {
-          "packageLocation": "./.yarn/$$virtual/debug-virtual-7896f62f01/0/cache/debug-npm-3.2.6-dc1603724a-619feb53b1.zip/node_modules/debug/",
-          "packageDependencies": [
-            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
-            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
-            ["supports-color", null]
-          ],
-          "packagePeers": [
-            "supports-color"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/debug-virtual-e772628d53/0/cache/debug-npm-4.2.0-9d7b0c952c-dcfb8ede26.zip/node_modules/debug/",
-          "packageDependencies": [
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
-            ["supports-color", null]
-          ],
-          "packagePeers": [
-            "supports-color"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", {
-          "packageLocation": "./.yarn/$$virtual/debug-virtual-8798b5e6a3/0/cache/debug-npm-2.6.9-9f555c9368-559f44f98c.zip/node_modules/debug/",
-          "packageDependencies": [
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"],
-            ["supports-color", null]
-          ],
-          "packagePeers": [
-            "supports-color"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/debug-virtual-63b898856e/0/cache/debug-npm-4.2.0-9d7b0c952c-dcfb8ede26.zip/node_modules/debug/",
-          "packageDependencies": [
-            ["debug", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"],
-            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
-          ],
-          "packagePeers": [
-            "supports-color"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["decamelize", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/decamelize-npm-1.2.0-c48553a177-8ca9d03ea8.zip/node_modules/decamelize/",
-          "packageDependencies": [
-            ["decamelize", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["decode-uri-component", [
-        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/decode-uri-component-npm-0.2.0-2fd6843a20-d8cb28c33f.zip/node_modules/decode-uri-component/",
-          "packageDependencies": [
-            ["decode-uri-component", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["decompress-response", [
-        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/decompress-response-npm-6.0.0-b8703fe293-bb8b8c42be.zip/node_modules/decompress-response/",
-          "packageDependencies": [
-            ["decompress-response", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"],
-            ["mimic-response", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["deep-equal", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/deep-equal-npm-1.1.1-a8a5dd071b-cc6a0009ce.zip/node_modules/deep-equal/",
-          "packageDependencies": [
-            ["deep-equal", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"],
-            ["is-arguments", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"],
-            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"],
-            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
-            ["object-is", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
-            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["deep-extend", [
-        ["npm:0.6.0", {
-          "packageLocation": "./.yarn/cache/deep-extend-npm-0.6.0-e182924219-856d7f52db.zip/node_modules/deep-extend/",
-          "packageDependencies": [
-            ["deep-extend", "npm:0.6.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["deep-is", [
-        ["npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/deep-is-npm-0.1.3-eac092c008-3de58f86af.zip/node_modules/deep-is/",
-          "packageDependencies": [
-            ["deep-is", "npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["deepmerge", [
-        ["npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/deepmerge-npm-1.5.2-cb53f920d1-5c44bd09ed.zip/node_modules/deepmerge/",
-          "packageDependencies": [
-            ["deepmerge", "npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["default-gateway", [
-        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/default-gateway-npm-4.2.0-882963c805-5d92439d57.zip/node_modules/default-gateway/",
-          "packageDependencies": [
-            ["default-gateway", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"],
-            ["execa", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"],
-            ["ip-regex", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["defer-to-connect", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.0-29869355b5-0453938bfc.zip/node_modules/defer-to-connect/",
-          "packageDependencies": [
-            ["defer-to-connect", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["define-properties", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/define-properties-npm-1.1.3-3a85be0cdd-b69c48c1b1.zip/node_modules/define-properties/",
-          "packageDependencies": [
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["define-property", [
-        ["npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz", {
-          "packageLocation": "./.yarn/cache/define-property-npm-0.2.5-ec12240ee1-6fed054072.zip/node_modules/define-property/",
-          "packageDependencies": [
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["is-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/define-property-npm-1.0.0-e588f614ef-9034f8f6f3.zip/node_modules/define-property/",
-          "packageDependencies": [
-            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
-            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/define-property-npm-2.0.2-a2692b51a8-00c7ec53b5.zip/node_modules/define-property/",
-          "packageDependencies": [
-            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
-            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["del", [
-        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/del-npm-4.1.1-1c907748da-87eecb2af5.zip/node_modules/del/",
-          "packageDependencies": [
-            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
-            ["@types/glob", "npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"],
-            ["globby", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"],
-            ["is-path-cwd", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"],
-            ["is-path-in-cwd", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"],
-            ["p-map", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"],
-            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
-            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["delayed-stream", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-b2fc5af4be-d9dfb0a7c7.zip/node_modules/delayed-stream/",
-          "packageDependencies": [
-            ["delayed-stream", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["delegates", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/delegates-npm-1.0.0-9728c29d49-7459e34d29.zip/node_modules/delegates/",
-          "packageDependencies": [
-            ["delegates", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["depd", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/depd-npm-1.1.2-2768b5622c-f45566ff70.zip/node_modules/depd/",
-          "packageDependencies": [
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["destroy", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/destroy-npm-1.0.4-c50a6bdecd-5a516fc5a8.zip/node_modules/destroy/",
-          "packageDependencies": [
-            ["destroy", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["detect-node", [
-        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/detect-node-npm-2.0.4-9d8bbd0551-e7648a5a91.zip/node_modules/detect-node/",
-          "packageDependencies": [
-            ["detect-node", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["diff", [
-        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/diff-npm-4.0.2-a13f8d6c8d-81b5cd7ddd.zip/node_modules/diff/",
-          "packageDependencies": [
-            ["diff", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dir-glob", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/dir-glob-npm-3.0.1-30965cf8c9-687fa3bd60.zip/node_modules/dir-glob/",
-          "packageDependencies": [
-            ["dir-glob", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"],
-            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dns-equal", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/dns-equal-npm-1.0.0-faddf7b972-096be3c1a7.zip/node_modules/dns-equal/",
-          "packageDependencies": [
-            ["dns-equal", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dns-packet", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/dns-packet-npm-1.3.1-83adee2150-cb7bb4e8fb.zip/node_modules/dns-packet/",
-          "packageDependencies": [
-            ["dns-packet", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"],
-            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"],
-            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dns-txt", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/dns-txt-npm-2.0.2-df14b932f8-62d4b87b09.zip/node_modules/dns-txt/",
-          "packageDependencies": [
-            ["dns-txt", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"],
-            ["buffer-indexof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["doctrine", [
-        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/doctrine-npm-1.5.0-53163999e1-aaffea02f9.zip/node_modules/doctrine/",
-          "packageDependencies": [
-            ["doctrine", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
-            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/doctrine-npm-2.1.0-4199f60fea-4aa55e4675.zip/node_modules/doctrine/",
-          "packageDependencies": [
-            ["doctrine", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-d6cc77244e-2eae469bd2.zip/node_modules/doctrine/",
-          "packageDependencies": [
-            ["doctrine", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dom-converter", [
-        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/dom-converter-npm-0.2.0-42db4cb7b3-437b4464bd.zip/node_modules/dom-converter/",
-          "packageDependencies": [
-            ["dom-converter", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"],
-            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dom-helpers", [
-        ["npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/dom-helpers-npm-5.2.0-50f26cbd58-9ef27628f4.zip/node_modules/dom-helpers/",
-          "packageDependencies": [
-            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
-            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
-            ["csstype", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dom-serializer", [
-        ["npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/dom-serializer-npm-0.2.2-c0a33ac98b-598e05e71b.zip/node_modules/dom-serializer/",
-          "packageDependencies": [
-            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
-            ["domelementtype", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"],
-            ["entities", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dom-walk", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/dom-walk-npm-0.1.2-dc50e0840a-948c7527f3.zip/node_modules/dom-walk/",
-          "packageDependencies": [
-            ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["domelementtype", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/domelementtype-npm-1.3.1-f26205e843-a4791788de.zip/node_modules/domelementtype/",
-          "packageDependencies": [
-            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/domelementtype-npm-2.0.1-07330e41a2-9ddda35625.zip/node_modules/domelementtype/",
-          "packageDependencies": [
-            ["domelementtype", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["domhandler", [
-        ["npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", {
-          "packageLocation": "./.yarn/cache/domhandler-npm-2.4.2-670cd2a8b8-dbe99b096a.zip/node_modules/domhandler/",
-          "packageDependencies": [
-            ["domhandler", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"],
-            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["domutils", [
-        ["npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz", {
-          "packageLocation": "./.yarn/cache/domutils-npm-1.5.1-070804a087-ffc578118d.zip/node_modules/domutils/",
-          "packageDependencies": [
-            ["domutils", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"],
-            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
-            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/domutils-npm-1.7.0-12cc334c58-a5b2f01fb3.zip/node_modules/domutils/",
-          "packageDependencies": [
-            ["domutils", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"],
-            ["dom-serializer", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"],
-            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["dot-case", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/dot-case-npm-3.0.3-54b8ad3b9a-31e5037039.zip/node_modules/dot-case/",
-          "packageDependencies": [
-            ["dot-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"],
-            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ecc-jsbn", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-5995706960-5b4dd05f24.zip/node_modules/ecc-jsbn/",
-          "packageDependencies": [
-            ["ecc-jsbn", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"],
-            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"],
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ecstatic", [
-        ["npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/ecstatic-npm-3.3.2-c769787e8f-a6185a71da.zip/node_modules/ecstatic/",
-          "packageDependencies": [
-            ["ecstatic", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"],
-            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"],
-            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
-            ["url-join", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ee-first", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/ee-first-npm-1.1.1-26f9185cbc-ba74f91398.zip/node_modules/ee-first/",
-          "packageDependencies": [
-            ["ee-first", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ejs", [
-        ["npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", {
-          "packageLocation": "./.yarn/unplugged/ejs-npm-2.7.4-34e822bf18/node_modules/ejs/",
-          "packageDependencies": [
-            ["ejs", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["electron-to-chromium", [
-        ["npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz", {
-          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.501-d86e88ac80-ec4408a085.zip/node_modules/electron-to-chromium/",
-          "packageDependencies": [
-            ["electron-to-chromium", "npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz", {
-          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.544-5114f33edf-bb86613254.zip/node_modules/electron-to-chromium/",
-          "packageDependencies": [
-            ["electron-to-chromium", "npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.3.583", {
-          "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.583-8057eacb5c-134710b06c.zip/node_modules/electron-to-chromium/",
-          "packageDependencies": [
-            ["electron-to-chromium", "npm:1.3.583"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["emoji-regex", [
-        ["npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/emoji-regex-npm-7.0.3-743eb02d8c-e3a504cf52.zip/node_modules/emoji-regex/",
-          "packageDependencies": [
-            ["emoji-regex", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["emojis-list", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/emojis-list-npm-3.0.0-54fce2c8ca-a79126b55b.zip/node_modules/emojis-list/",
-          "packageDependencies": [
-            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["encodeurl", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/encodeurl-npm-1.0.2-34208e38c7-6ee5fcbcd2.zip/node_modules/encodeurl/",
-          "packageDependencies": [
-            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["end-of-stream", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/end-of-stream-npm-1.1.0-9fbd8281f1-1a078bec4b.zip/node_modules/end-of-stream/",
-          "packageDependencies": [
-            ["end-of-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"],
-            ["once", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz", {
-          "packageLocation": "./.yarn/cache/end-of-stream-npm-1.4.4-76b4313cd7-7da60e458b.zip/node_modules/end-of-stream/",
-          "packageDependencies": [
-            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
-            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["enhanced-resolve", [
-        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/enhanced-resolve-npm-4.3.0-a66c6355f8-aecdc0b208.zip/node_modules/enhanced-resolve/",
-          "packageDependencies": [
-            ["enhanced-resolve", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
-            ["memory-fs", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"],
-            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.3.1", {
-          "packageLocation": "./.yarn/cache/enhanced-resolve-npm-5.3.1-c14cacac59-1689ec4347.zip/node_modules/enhanced-resolve/",
-          "packageDependencies": [
-            ["enhanced-resolve", "npm:5.3.1"],
-            ["graceful-fs", "npm:4.2.4"],
-            ["tapable", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["enquirer", [
-        ["npm:2.3.6", {
-          "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-7899175762-e249bb97bf.zip/node_modules/enquirer/",
-          "packageDependencies": [
-            ["enquirer", "npm:2.3.6"],
-            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz", {
-          "packageLocation": "./.yarn/cache/enquirer-npm-2.3.6-ba93cd9855-e249bb97bf.zip/node_modules/enquirer/",
-          "packageDependencies": [
-            ["enquirer", "npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"],
-            ["ansi-colors", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["entities", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/entities-npm-1.1.2-73ec85057a-3a4259db35.zip/node_modules/entities/",
-          "packageDependencies": [
-            ["entities", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/entities-npm-2.0.3-b9535456e1-02dfe1fbf5.zip/node_modules/entities/",
-          "packageDependencies": [
-            ["entities", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["env-paths", [
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/env-paths-npm-2.2.0-7263d8b905-09de4fd1c0.zip/node_modules/env-paths/",
-          "packageDependencies": [
-            ["env-paths", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["envinfo", [
-        ["npm:7.7.3", {
-          "packageLocation": "./.yarn/cache/envinfo-npm-7.7.3-2ae94ae21f-1372214a3f.zip/node_modules/envinfo/",
-          "packageDependencies": [
-            ["envinfo", "npm:7.7.3"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["errno", [
-        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz", {
-          "packageLocation": "./.yarn/cache/errno-npm-0.1.7-bdf8a81105-3d2da6fa1e.zip/node_modules/errno/",
-          "packageDependencies": [
-            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
-            ["prr", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["error-ex", [
-        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/error-ex-npm-1.3.2-26fb17efb9-6c6c918742.zip/node_modules/error-ex/",
-          "packageDependencies": [
-            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"],
-            ["is-arrayish", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["es-abstract", [
-        ["npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", {
-          "packageLocation": "./.yarn/cache/es-abstract-npm-1.17.6-7a254592ff-637ad488bd.zip/node_modules/es-abstract/",
-          "packageDependencies": [
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
-            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
-            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
-            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
-            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
-            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
-            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.18.0-next.1", {
-          "packageLocation": "./.yarn/cache/es-abstract-npm-1.18.0-next.1-12dd4b4b73-f1e37567e4.zip/node_modules/es-abstract/",
-          "packageDependencies": [
-            ["es-abstract", "npm:1.18.0-next.1"],
-            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
-            ["is-callable", "npm:1.2.2"],
-            ["is-negative-zero", "npm:2.0.0"],
-            ["is-regex", "npm:1.1.1"],
-            ["object-inspect", "npm:1.8.0"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"],
-            ["object.assign", "npm:4.1.1"],
-            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
-            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["es-to-primitive", [
-        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/es-to-primitive-npm-1.2.1-d9e5b57fd8-d20b7be268.zip/node_modules/es-to-primitive/",
-          "packageDependencies": [
-            ["es-to-primitive", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"],
-            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
-            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"],
-            ["is-symbol", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["escalade", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/escalade-npm-3.0.2-dc1b832525-30f45cb4db.zip/node_modules/escalade/",
-          "packageDependencies": [
-            ["escalade", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.1", {
-          "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-1e31ff50d6.zip/node_modules/escalade/",
-          "packageDependencies": [
-            ["escalade", "npm:3.1.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["escape-html", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/escape-html-npm-1.0.3-35da2231bd-900a7f2b80.zip/node_modules/escape-html/",
-          "packageDependencies": [
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["escape-string-regexp", [
-        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/escape-string-regexp-npm-1.0.5-79e51598af-f9484b8b4c.zip/node_modules/escape-string-regexp/",
-          "packageDependencies": [
-            ["escape-string-regexp", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint", [
-        ["npm:7.12.1", {
-          "packageLocation": "./.yarn/cache/eslint-npm-7.12.1-621bb6523c-b3d11ea516.zip/node_modules/eslint/",
-          "packageDependencies": [
-            ["eslint", "npm:7.12.1"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["@eslint/eslintrc", "npm:0.2.1"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["chalk", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"],
-            ["cross-spawn", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["doctrine", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"],
-            ["enquirer", "npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"],
-            ["eslint-scope", "npm:5.1.1"],
-            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"],
-            ["eslint-visitor-keys", "npm:2.0.0"],
-            ["espree", "npm:7.3.0"],
-            ["esquery", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"],
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"],
-            ["file-entry-cache", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"],
-            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"],
-            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
-            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
-            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"],
-            ["import-fresh", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"],
-            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
-            ["json-stable-stringify-without-jsonify", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"],
-            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
-            ["natural-compare", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"],
-            ["optionator", "npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"],
-            ["progress", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"],
-            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["strip-ansi", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"],
-            ["strip-json-comments", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"],
-            ["table", "npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"],
-            ["text-table", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"],
-            ["v8-compile-cache", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-config-prettier", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0", {
-          "packageLocation": "./.yarn/$$virtual/eslint-config-prettier-virtual-02c1fa6d09/0/cache/eslint-config-prettier-npm-6.14.0-10ad0a5650-8d478429bb.zip/node_modules/eslint-config-prettier/",
-          "packageDependencies": [
-            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
-            ["eslint", "npm:7.12.1"],
-            ["get-stdin", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"]
-          ],
-          "packagePeers": [
-            "eslint"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-import-resolver-node", [
-        ["npm:0.3.4", {
-          "packageLocation": "./.yarn/cache/eslint-import-resolver-node-npm-0.3.4-fa0173d267-825e34e662.zip/node_modules/eslint-import-resolver-node/",
-          "packageDependencies": [
-            ["eslint-import-resolver-node", "npm:0.3.4"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-module-utils", [
-        ["npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/eslint-module-utils-npm-2.6.0-57b7c7dc6a-f584af1764.zip/node_modules/eslint-module-utils/",
-          "packageDependencies": [
-            ["eslint-module-utils", "npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["pkg-dir", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-plugin-import", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1", {
-          "packageLocation": "./.yarn/$$virtual/eslint-plugin-import-virtual-61a46b7660/0/cache/eslint-plugin-import-npm-2.22.1-93ff619870-35ae09ceae.zip/node_modules/eslint-plugin-import/",
-          "packageDependencies": [
-            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
-            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
-            ["array.prototype.flat", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"],
-            ["contains-path", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["doctrine", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["eslint-import-resolver-node", "npm:0.3.4"],
-            ["eslint-module-utils", "npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
-            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
-            ["read-pkg-up", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["tsconfig-paths", "npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"]
-          ],
-          "packagePeers": [
-            "eslint"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-plugin-prettier", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz", {
-          "packageLocation": "./.yarn/$$virtual/eslint-plugin-prettier-virtual-b3c2338d79/0/cache/eslint-plugin-prettier-npm-3.1.4-d88d887708-4e4df15579.zip/node_modules/eslint-plugin-prettier/",
-          "packageDependencies": [
-            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["prettier", "npm:2.1.2"],
-            ["prettier-linter-helpers", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"]
-          ],
-          "packagePeers": [
-            "eslint",
-            "prettier"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-plugin-react", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5", {
-          "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-virtual-4ba4630528/0/cache/eslint-plugin-react-npm-7.21.5-5c7e9860b5-a7123f6feb.zip/node_modules/eslint-plugin-react/",
-          "packageDependencies": [
-            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
-            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
-            ["array.prototype.flatmap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"],
-            ["doctrine", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"],
-            ["eslint", "npm:7.12.1"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["jsx-ast-utils", "npm:3.1.0"],
-            ["object.entries", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"],
-            ["object.fromentries", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"],
-            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"],
-            ["string.prototype.matchall", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"]
-          ],
-          "packagePeers": [
-            "eslint"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-plugin-react-hooks", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0", {
-          "packageLocation": "./.yarn/$$virtual/eslint-plugin-react-hooks-virtual-d04211845d/0/cache/eslint-plugin-react-hooks-npm-4.2.0-e09b1ea4ce-5378d16b5a.zip/node_modules/eslint-plugin-react-hooks/",
-          "packageDependencies": [
-            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
-            ["eslint", "npm:7.12.1"]
-          ],
-          "packagePeers": [
-            "eslint"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-scope", [
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.0-4e73a1aa9d-4a0e97979a.zip/node_modules/eslint-scope/",
-          "packageDependencies": [
-            ["eslint-scope", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"],
-            ["esrecurse", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"],
-            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.1", {
-          "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-79465cf508.zip/node_modules/eslint-scope/",
-          "packageDependencies": [
-            ["eslint-scope", "npm:5.1.1"],
-            ["esrecurse", "npm:4.3.0"],
-            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-utils", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/eslint-utils-npm-2.1.0-e724695a27-a43892372a.zip/node_modules/eslint-utils/",
-          "packageDependencies": [
-            ["eslint-utils", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"],
-            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eslint-visitor-keys", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-1.3.0-a2f4280d26-58ab7a0107.zip/node_modules/eslint-visitor-keys/",
-          "packageDependencies": [
-            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-2.0.0-5c9523822c-429dabdcab.zip/node_modules/eslint-visitor-keys/",
-          "packageDependencies": [
-            ["eslint-visitor-keys", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["espree", [
-        ["npm:7.3.0", {
-          "packageLocation": "./.yarn/cache/espree-npm-7.3.0-d2b7d87b7d-dd2543c293.zip/node_modules/espree/",
-          "packageDependencies": [
-            ["espree", "npm:7.3.0"],
-            ["acorn", "npm:7.4.1"],
-            ["acorn-jsx", "virtual:d2b7d87b7d1b24ae28c976e6a4dd1f4502c0b4861c48ac890edb4bef9b304b0f14bb5b927b0e2264534c1a0de7bfcddcb87164733cca942d507282121e821e10#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"],
-            ["eslint-visitor-keys", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["esprima", [
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-65632031b3-5df45a3d9c.zip/node_modules/esprima/",
-          "packageDependencies": [
-            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["esquery", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/esquery-npm-1.3.1-241a24c409-0aac7572bc.zip/node_modules/esquery/",
-          "packageDependencies": [
-            ["esquery", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"],
-            ["estraverse", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["esrecurse", [
-        ["npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/esrecurse-npm-4.2.1-5cf44c1eba-9acfa28772.zip/node_modules/esrecurse/",
-          "packageDependencies": [
-            ["esrecurse", "npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"],
-            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.3.0", {
-          "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-2c96302dd5.zip/node_modules/esrecurse/",
-          "packageDependencies": [
-            ["esrecurse", "npm:4.3.0"],
-            ["estraverse", "npm:5.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["estraverse", [
-        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/estraverse-npm-4.3.0-2f210a1e50-1e4c627da9.zip/node_modules/estraverse/",
-          "packageDependencies": [
-            ["estraverse", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/estraverse-npm-5.1.0-47909d13a3-1b8a47cf7c.zip/node_modules/estraverse/",
-          "packageDependencies": [
-            ["estraverse", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.2.0", {
-          "packageLocation": "./.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-7dc1b027ae.zip/node_modules/estraverse/",
-          "packageDependencies": [
-            ["estraverse", "npm:5.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["estree-walker", [
-        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz", {
-          "packageLocation": "./.yarn/cache/estree-walker-npm-0.6.1-cc6859b52f-a63b94b841.zip/node_modules/estree-walker/",
-          "packageDependencies": [
-            ["estree-walker", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/estree-walker-npm-1.0.1-0345dd17e2-85e7cee763.zip/node_modules/estree-walker/",
-          "packageDependencies": [
-            ["estree-walker", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["esutils", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-ccb55971ac-590b045331.zip/node_modules/esutils/",
-          "packageDependencies": [
-            ["esutils", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["etag", [
-        ["npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz", {
-          "packageLocation": "./.yarn/cache/etag-npm-1.8.1-e3d8f00c80-f18341a3c1.zip/node_modules/etag/",
-          "packageDependencies": [
-            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eventemitter3", [
-        ["npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/eventemitter3-npm-4.0.4-036642d319-6693972304.zip/node_modules/eventemitter3/",
-          "packageDependencies": [
-            ["eventemitter3", "npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["events", [
-        ["npm:3.2.0", {
-          "packageLocation": "./.yarn/cache/events-npm-3.2.0-342ccffd74-6ea52b160c.zip/node_modules/events/",
-          "packageDependencies": [
-            ["events", "npm:3.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["eventsource", [
-        ["npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz", {
-          "packageLocation": "./.yarn/cache/eventsource-npm-1.0.7-cd167db542-0585067150.zip/node_modules/eventsource/",
-          "packageDependencies": [
-            ["eventsource", "npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"],
-            ["original", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["execa", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/execa-npm-1.0.0-bef4b21060-39714ea24e.zip/node_modules/execa/",
-          "packageDependencies": [
-            ["execa", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"],
-            ["cross-spawn", "npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"],
-            ["get-stream", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"],
-            ["is-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"],
-            ["npm-run-path", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"],
-            ["p-finally", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"],
-            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"],
-            ["strip-eof", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.3", {
-          "packageLocation": "./.yarn/cache/execa-npm-4.0.3-b70e1b2212-65b237d178.zip/node_modules/execa/",
-          "packageDependencies": [
-            ["execa", "npm:4.0.3"],
-            ["cross-spawn", "npm:7.0.3"],
-            ["get-stream", "npm:5.2.0"],
-            ["human-signals", "npm:1.1.1"],
-            ["is-stream", "npm:2.0.0"],
-            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
-            ["npm-run-path", "npm:4.0.1"],
-            ["onetime", "npm:5.1.2"],
-            ["signal-exit", "npm:3.0.3"],
-            ["strip-final-newline", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["exenv", [
-        ["npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/exenv-npm-1.2.2-360e34dccd-09fd080c04.zip/node_modules/exenv/",
-          "packageDependencies": [
-            ["exenv", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["expand-brackets", [
-        ["npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/expand-brackets-npm-2.1.4-cc72b0b1f9-9aadab00ff.zip/node_modules/expand-brackets/",
-          "packageDependencies": [
-            ["expand-brackets", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["posix-character-classes", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"],
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["express", [
-        ["npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", {
-          "packageLocation": "./.yarn/cache/express-npm-4.17.1-0488d22638-c4b470d623.zip/node_modules/express/",
-          "packageDependencies": [
-            ["express", "npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"],
-            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
-            ["array-flatten", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"],
-            ["body-parser", "npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"],
-            ["content-disposition", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"],
-            ["content-type", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"],
-            ["cookie", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"],
-            ["cookie-signature", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
-            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"],
-            ["finalhandler", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"],
-            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"],
-            ["merge-descriptors", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"],
-            ["methods", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"],
-            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
-            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
-            ["path-to-regexp", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"],
-            ["proxy-addr", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"],
-            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"],
-            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
-            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"],
-            ["serve-static", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"],
-            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
-            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"],
-            ["utils-merge", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"],
-            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["extend", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/extend-npm-3.0.2-e99dc88e3a-1406da1f0c.zip/node_modules/extend/",
-          "packageDependencies": [
-            ["extend", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["extend-shallow", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/extend-shallow-npm-2.0.1-c23f812022-03dbbba8b9.zip/node_modules/extend-shallow/",
-          "packageDependencies": [
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/extend-shallow-npm-3.0.2-ed2dc1f27b-5301c5070b.zip/node_modules/extend-shallow/",
-          "packageDependencies": [
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
-            ["assign-symbols", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"],
-            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["extglob", [
-        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/extglob-npm-2.0.4-9ae98a7689-ce23be772f.zip/node_modules/extglob/",
-          "packageDependencies": [
-            ["extglob", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"],
-            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
-            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
-            ["expand-brackets", "npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["extsprintf", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/extsprintf-npm-1.3.0-2de44c684a-892efd56aa.zip/node_modules/extsprintf/",
-          "packageDependencies": [
-            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fast-deep-equal", [
-        ["npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-ba49ffd546-451526766b.zip/node_modules/fast-deep-equal/",
-          "packageDependencies": [
-            ["fast-deep-equal", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fast-diff", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/fast-diff-npm-1.2.0-0fae179d67-9c5407d9c4.zip/node_modules/fast-diff/",
-          "packageDependencies": [
-            ["fast-diff", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fast-glob", [
-        ["npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.4-656ba6fd90-18f9eca898.zip/node_modules/fast-glob/",
-          "packageDependencies": [
-            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
-            ["@nodelib/fs.stat", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"],
-            ["@nodelib/fs.walk", "npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"],
-            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
-            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"],
-            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fast-json-stable-stringify", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-8aa96b5b64-7df3fabfe4.zip/node_modules/fast-json-stable-stringify/",
-          "packageDependencies": [
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fast-levenshtein", [
-        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/fast-levenshtein-npm-2.0.6-062d57f60d-a2d03af308.zip/node_modules/fast-levenshtein/",
-          "packageDependencies": [
-            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fastq", [
-        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/fastq-npm-1.8.0-0c733855c1-77d71545ba.zip/node_modules/fastq/",
-          "packageDependencies": [
-            ["fastq", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"],
-            ["reusify", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["faye-websocket", [
-        ["npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz", {
-          "packageLocation": "./.yarn/cache/faye-websocket-npm-0.10.0-53c11f370b-2a5823ddfb.zip/node_modules/faye-websocket/",
-          "packageDependencies": [
-            ["faye-websocket", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"],
-            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz", {
-          "packageLocation": "./.yarn/cache/faye-websocket-npm-0.11.3-eb51ff0e5b-94c48a5b4e.zip/node_modules/faye-websocket/",
-          "packageDependencies": [
-            ["faye-websocket", "npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"],
-            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["file-entry-cache", [
-        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/file-entry-cache-npm-5.0.1-11589af9cd-7140588bec.zip/node_modules/file-entry-cache/",
-          "packageDependencies": [
-            ["file-entry-cache", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"],
-            ["flat-cache", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["file-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1", {
-          "packageLocation": "./.yarn/$$virtual/file-loader-virtual-619388967e/0/cache/file-loader-npm-6.1.1-5d725ae767-0272335818.zip/node_modules/file-loader/",
-          "packageDependencies": [
-            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["file-uri-to-path", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/file-uri-to-path-npm-1.0.0-b540e3f7ca-5ddb9682f0.zip/node_modules/file-uri-to-path/",
-          "packageDependencies": [
-            ["file-uri-to-path", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fill-range", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/fill-range-npm-4.0.0-1f08f7498a-4a1491ee29.zip/node_modules/fill-range/",
-          "packageDependencies": [
-            ["fill-range", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
-            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"],
-            ["to-regex-range", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/fill-range-npm-7.0.1-3c245d50ed-efca43d59b.zip/node_modules/fill-range/",
-          "packageDependencies": [
-            ["fill-range", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"],
-            ["to-regex-range", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["finalhandler", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/finalhandler-npm-1.1.2-2ca88c8c97-f2e5b6bfe2.zip/node_modules/finalhandler/",
-          "packageDependencies": [
-            ["finalhandler", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
-            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
-            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
-            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["find-cache-dir", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/find-cache-dir-npm-2.1.0-4a51953487-6e99602656.zip/node_modules/find-cache-dir/",
-          "packageDependencies": [
-            ["find-cache-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"],
-            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"],
-            ["make-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"],
-            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/find-cache-dir-npm-3.3.1-95da170ee1-b1e23226ee.zip/node_modules/find-cache-dir/",
-          "packageDependencies": [
-            ["find-cache-dir", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"],
-            ["commondir", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"],
-            ["make-dir", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"],
-            ["pkg-dir", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["find-up", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/find-up-npm-2.1.0-cd7301714d-9dedb89f93.zip/node_modules/find-up/",
-          "packageDependencies": [
-            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"],
-            ["locate-path", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/find-up-npm-3.0.0-cee70ed7ef-c5422fc723.zip/node_modules/find-up/",
-          "packageDependencies": [
-            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"],
-            ["locate-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/find-up-npm-4.1.0-f2949ee8a7-d612d28e02.zip/node_modules/find-up/",
-          "packageDependencies": [
-            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"],
-            ["locate-path", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"],
-            ["path-exists", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["flat-cache", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/flat-cache-npm-2.0.1-528668493b-a36ba40755.zip/node_modules/flat-cache/",
-          "packageDependencies": [
-            ["flat-cache", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"],
-            ["flatted", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"],
-            ["rimraf", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"],
-            ["write", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["flatted", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/flatted-npm-2.0.2-e13b9c0965-a3e5fb71ad.zip/node_modules/flatted/",
-          "packageDependencies": [
-            ["flatted", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["flatten", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/flatten-npm-1.0.3-f07f24ec52-8a382594dc.zip/node_modules/flatten/",
-          "packageDependencies": [
-            ["flatten", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["follow-redirects", [
-        ["npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz", {
-          "packageLocation": "./.yarn/cache/follow-redirects-npm-1.13.0-d909d3d20e-f220828d3f.zip/node_modules/follow-redirects/",
-          "packageDependencies": [
-            ["follow-redirects", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz", {
-          "packageLocation": "./.yarn/cache/follow-redirects-npm-1.5.10-336c353792-6e58e02c31.zip/node_modules/follow-redirects/",
-          "packageDependencies": [
-            ["follow-redirects", "npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"],
-            ["debug", "virtual:336c3537928e7a1b40a83635667679863bd1fb9ea076a4d6687c8ceeb3b237d94ddcccc772792ba83f80a83f1d56b5a196c1b5c302387ce8c4eb6bf8ee108d49#npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["for-in", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/for-in-npm-1.0.2-c33ffcb8c8-e8d7280a65.zip/node_modules/for-in/",
-          "packageDependencies": [
-            ["for-in", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["forever-agent", [
-        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz", {
-          "packageLocation": "./.yarn/cache/forever-agent-npm-0.6.1-3f9a3a9029-9cc0054dd4.zip/node_modules/forever-agent/",
-          "packageDependencies": [
-            ["forever-agent", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["form-data", [
-        ["npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz", {
-          "packageLocation": "./.yarn/cache/form-data-npm-2.3.3-c97d042e88-862e686b10.zip/node_modules/form-data/",
-          "packageDependencies": [
-            ["form-data", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"],
-            ["asynckit", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"],
-            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["forwarded", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/forwarded-npm-0.1.2-f730da54ac-568d862ad1.zip/node_modules/forwarded/",
-          "packageDependencies": [
-            ["forwarded", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fragment-cache", [
-        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/fragment-cache-npm-0.2.1-f628e83fc8-f88983f4bf.zip/node_modules/fragment-cache/",
-          "packageDependencies": [
-            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
-            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fresh", [
-        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/fresh-npm-0.5.2-051f60a8c8-2f76c8505d.zip/node_modules/fresh/",
-          "packageDependencies": [
-            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fs-constants", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/fs-constants-npm-1.0.0-dd82a48008-b8382395f5.zip/node_modules/fs-constants/",
-          "packageDependencies": [
-            ["fs-constants", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fs-extra", [
-        ["npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/fs-extra-npm-8.1.0-9656618adb-056a96d4f5.zip/node_modules/fs-extra/",
-          "packageDependencies": [
-            ["fs-extra", "npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
-            ["jsonfile", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"],
-            ["universalify", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fs-minipass", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-b5d5a6c13e-e14a490658.zip/node_modules/fs-minipass/",
-          "packageDependencies": [
-            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fs.realpath", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c2cc0f91a5-698a91b169.zip/node_modules/fs.realpath/",
-          "packageDependencies": [
-            ["fs.realpath", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["fsevents", [
-        ["patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457", {
-          "packageLocation": "./.yarn/unplugged/fsevents-patch-9c6876b7f6/node_modules/fsevents/",
-          "packageDependencies": [
-            ["fsevents", "patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"],
-            ["bindings", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"],
-            ["nan", "npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457", {
-          "packageLocation": "./.yarn/unplugged/fsevents-patch-6de1c9c306/node_modules/fsevents/",
-          "packageDependencies": [
-            ["fsevents", "patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"],
-            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["function-bind", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-a8e6db9470-ffad86e7d2.zip/node_modules/function-bind/",
-          "packageDependencies": [
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["functional-red-black-tree", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/functional-red-black-tree-npm-1.0.1-bb1a78ccae-477ecaf62d.zip/node_modules/functional-red-black-tree/",
-          "packageDependencies": [
-            ["functional-red-black-tree", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["gauge", [
-        ["npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz", {
-          "packageLocation": "./.yarn/cache/gauge-npm-2.7.4-a6d905b578-b136dbeb8e.zip/node_modules/gauge/",
-          "packageDependencies": [
-            ["gauge", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"],
-            ["aproba", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"],
-            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"],
-            ["has-unicode", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
-            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"],
-            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"],
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
-            ["wide-align", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["gensync", [
-        ["npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz", {
-          "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.1-63333684c6-3d14f7c34f.zip/node_modules/gensync/",
-          "packageDependencies": [
-            ["gensync", "npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["get-caller-file", [
-        ["npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-3ebd8b16cc-9dd9e1e259.zip/node_modules/get-caller-file/",
-          "packageDependencies": [
-            ["get-caller-file", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["get-own-enumerable-property-symbols", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/get-own-enumerable-property-symbols-npm-3.0.2-6cad6324a7-23f13946c7.zip/node_modules/get-own-enumerable-property-symbols/",
-          "packageDependencies": [
-            ["get-own-enumerable-property-symbols", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["get-stdin", [
-        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/get-stdin-npm-6.0.0-cb618b0243-b51d664838.zip/node_modules/get-stdin/",
-          "packageDependencies": [
-            ["get-stdin", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["get-stream", [
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/get-stream-npm-4.1.0-bebe9944cd-f41bb3c74d.zip/node_modules/get-stream/",
-          "packageDependencies": [
-            ["get-stream", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"],
-            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/get-stream-npm-5.1.0-98f157a4ea-599dad0b6b.zip/node_modules/get-stream/",
-          "packageDependencies": [
-            ["get-stream", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"],
-            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.2.0", {
-          "packageLocation": "./.yarn/cache/get-stream-npm-5.2.0-2cfd3b452b-c71c5625f4.zip/node_modules/get-stream/",
-          "packageDependencies": [
-            ["get-stream", "npm:5.2.0"],
-            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["get-value", [
-        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/get-value-npm-2.0.6-3d6aa82ba5-f08da32627.zip/node_modules/get-value/",
-          "packageDependencies": [
-            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["getpass", [
-        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz", {
-          "packageLocation": "./.yarn/cache/getpass-npm-0.1.7-fad616be8d-2650725bc6.zip/node_modules/getpass/",
-          "packageDependencies": [
-            ["getpass", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["glob", [
-        ["npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/glob-npm-7.1.6-4cde37b744-789977b524.zip/node_modules/glob/",
-          "packageDependencies": [
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
-            ["fs.realpath", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"],
-            ["inflight", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
-            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
-            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["glob-parent", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/glob-parent-npm-3.1.0-d5d9d26182-2827ec4405.zip/node_modules/glob-parent/",
-          "packageDependencies": [
-            ["glob-parent", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"],
-            ["is-glob", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"],
-            ["path-dirname", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.1-ca4c9d4bf8-2af6e196fb.zip/node_modules/glob-parent/",
-          "packageDependencies": [
-            ["glob-parent", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["glob-to-regexp", [
-        ["npm:0.4.1", {
-          "packageLocation": "./.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-6093c15d9f.zip/node_modules/glob-to-regexp/",
-          "packageDependencies": [
-            ["glob-to-regexp", "npm:0.4.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["global", [
-        ["npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/global-npm-4.4.0-5e9e9c41f4-da0cf92ef0.zip/node_modules/global/",
-          "packageDependencies": [
-            ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
-            ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
-            ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["globals", [
-        ["npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", {
-          "packageLocation": "./.yarn/cache/globals-npm-11.12.0-3e7cfc1865-2563d3306a.zip/node_modules/globals/",
-          "packageDependencies": [
-            ["globals", "npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/globals-npm-12.4.0-43ecd7769b-0b9764bdea.zip/node_modules/globals/",
-          "packageDependencies": [
-            ["globals", "npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"],
-            ["type-fest", "npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz", {
-          "packageLocation": "./.yarn/cache/globals-npm-9.18.0-82f075d232-ad86a4b4d7.zip/node_modules/globals/",
-          "packageDependencies": [
-            ["globals", "npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["globby", [
-        ["npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/globby-npm-11.0.1-75d4900c36-e7239e9e46.zip/node_modules/globby/",
-          "packageDependencies": [
-            ["globby", "npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"],
-            ["array-union", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"],
-            ["dir-glob", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"],
-            ["fast-glob", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"],
-            ["ignore", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"],
-            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"],
-            ["slash", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/globby-npm-6.1.0-e6f8059c91-7acac93324.zip/node_modules/globby/",
-          "packageDependencies": [
-            ["globby", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"],
-            ["array-union", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
-            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"],
-            ["pinkie-promise", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["got", [
-        ["npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz", {
-          "packageLocation": "./.yarn/cache/got-npm-11.5.1-fdd869c8c0-a746db1245.zip/node_modules/got/",
-          "packageDependencies": [
-            ["got", "npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"],
-            ["@sindresorhus/is", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"],
-            ["@szmarczak/http-timer", "npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"],
-            ["@types/cacheable-request", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"],
-            ["@types/responselike", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"],
-            ["cacheable-lookup", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"],
-            ["cacheable-request", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"],
-            ["decompress-response", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"],
-            ["http2-wrapper", "npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"],
-            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"],
-            ["p-cancelable", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"],
-            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["graceful-fs", [
-        ["npm:4.2.4", {
-          "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.4-734467635f-d095ee4dc6.zip/node_modules/graceful-fs/",
-          "packageDependencies": [
-            ["graceful-fs", "npm:4.2.4"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.4-b72b1dfb8f-d095ee4dc6.zip/node_modules/graceful-fs/",
-          "packageDependencies": [
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["grapheme-splitter", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/grapheme-splitter-npm-1.0.4-c4dcc9cc38-6875e94add.zip/node_modules/grapheme-splitter/",
-          "packageDependencies": [
-            ["grapheme-splitter", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["handle-thing", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/handle-thing-npm-2.0.1-05158d71e6-7509fca9eb.zip/node_modules/handle-thing/",
-          "packageDependencies": [
-            ["handle-thing", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["har-schema", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/har-schema-npm-2.0.0-fb81d693ef-e27ac33a96.zip/node_modules/har-schema/",
-          "packageDependencies": [
-            ["har-schema", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["har-validator", [
-        ["npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/har-validator-npm-5.1.3-d43008afe8-64cb2294c1.zip/node_modules/har-validator/",
-          "packageDependencies": [
-            ["har-validator", "npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["har-schema", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/has-npm-1.0.3-f7064d10c2-c686e15300.zip/node_modules/has/",
-          "packageDependencies": [
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-ansi", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-ansi-npm-2.0.0-9c2c0889ab-c6805f5d01.zip/node_modules/has-ansi/",
-          "packageDependencies": [
-            ["has-ansi", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"],
-            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-flag", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-7af8bb5251-63aade480d.zip/node_modules/has-flag/",
-          "packageDependencies": [
-            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-flag-npm-4.0.0-b68e4e779d-2e5391139d.zip/node_modules/has-flag/",
-          "packageDependencies": [
-            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-own-prop", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-own-prop-npm-2.0.0-fda4570bc8-8513ff9052.zip/node_modules/has-own-prop/",
-          "packageDependencies": [
-            ["has-own-prop", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-symbols", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.1-e35e102032-84e2a03ada.zip/node_modules/has-symbols/",
-          "packageDependencies": [
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-unicode", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-8e56cda131-ed3719f95c.zip/node_modules/has-unicode/",
-          "packageDependencies": [
-            ["has-unicode", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-value", [
-        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/has-value-npm-0.3.1-77239b13c9-d78fab4523.zip/node_modules/has-value/",
-          "packageDependencies": [
-            ["has-value", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"],
-            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
-            ["has-values", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"],
-            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-value-npm-1.0.0-80982f18a0-e05422bce9.zip/node_modules/has-value/",
-          "packageDependencies": [
-            ["has-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"],
-            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
-            ["has-values", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["has-values", [
-        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/has-values-npm-0.1.4-33f631defb-df7ac830e4.zip/node_modules/has-values/",
-          "packageDependencies": [
-            ["has-values", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/has-values-npm-1.0.0-d17df2b3bd-b69c45d513.zip/node_modules/has-values/",
-          "packageDependencies": [
-            ["has-values", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"],
-            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
-            ["kind-of", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["he", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/he-npm-1.2.0-874b8c4af2-212122003c.zip/node_modules/he/",
-          "packageDependencies": [
-            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["history", [
-        ["npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz", {
-          "packageLocation": "./.yarn/cache/history-npm-4.10.1-8d081c387e-3b302b54c0.zip/node_modules/history/",
-          "packageDependencies": [
-            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["resolve-pathname", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"],
-            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
-            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"],
-            ["value-equal", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["hoist-non-react-statics", [
-        ["npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-2ce9940750-d3e3791d6e.zip/node_modules/hoist-non-react-statics/",
-          "packageDependencies": [
-            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
-            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["hosted-git-info", [
-        ["npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", {
-          "packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.8-7d1b32a089-3ecc389dc6.zip/node_modules/hosted-git-info/",
-          "packageDependencies": [
-            ["hosted-git-info", "npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["hpack.js", [
-        ["npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/hpack.js-npm-2.1.6-23e0bbd2b9-a22a28aa31.zip/node_modules/hpack.js/",
-          "packageDependencies": [
-            ["hpack.js", "npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"],
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"],
-            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["html-entities", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/html-entities-npm-1.3.1-2d9627a657-53d37e5161.zip/node_modules/html-entities/",
-          "packageDependencies": [
-            ["html-entities", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["html-minifier-terser", [
-        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/html-minifier-terser-npm-5.1.1-904e8f6ed0-d05dea891f.zip/node_modules/html-minifier-terser/",
-          "packageDependencies": [
-            ["html-minifier-terser", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"],
-            ["camel-case", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"],
-            ["clean-css", "npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"],
-            ["commander", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"],
-            ["he", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"],
-            ["param-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"],
-            ["relateurl", "npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"],
-            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["html-parse-stringify2", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/html-parse-stringify2-npm-2.0.1-a1a0c1c07d-71159c76d5.zip/node_modules/html-parse-stringify2/",
-          "packageDependencies": [
-            ["html-parse-stringify2", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"],
-            ["void-elements", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["html-webpack-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0", {
-          "packageLocation": "./.yarn/$$virtual/html-webpack-plugin-virtual-2b27d71d56/0/cache/html-webpack-plugin-npm-4.5.0-a74a71941d-df4dd38bd8.zip/node_modules/html-webpack-plugin/",
-          "packageDependencies": [
-            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
-            ["@types/html-minifier-terser", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"],
-            ["@types/tapable", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"],
-            ["@types/webpack", "npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"],
-            ["html-minifier-terser", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"],
-            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["pretty-error", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"],
-            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"],
-            ["util.promisify", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["htmlparser2", [
-        ["npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", {
-          "packageLocation": "./.yarn/cache/htmlparser2-npm-3.10.1-8b44da0721-94fa6312e6.zip/node_modules/htmlparser2/",
-          "packageDependencies": [
-            ["htmlparser2", "npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"],
-            ["domelementtype", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"],
-            ["domhandler", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"],
-            ["domutils", "npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"],
-            ["entities", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-cache-semantics", [
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-9e6cadf4b8-451df9784a.zip/node_modules/http-cache-semantics/",
-          "packageDependencies": [
-            ["http-cache-semantics", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-deceiver", [
-        ["npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz", {
-          "packageLocation": "./.yarn/cache/http-deceiver-npm-1.2.7-1fdf321b19-d0b10fce25.zip/node_modules/http-deceiver/",
-          "packageDependencies": [
-            ["http-deceiver", "npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-errors", [
-        ["npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", {
-          "packageLocation": "./.yarn/cache/http-errors-npm-1.6.3-0ec1466153-850a3bf69f.zip/node_modules/http-errors/",
-          "packageDependencies": [
-            ["http-errors", "npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"],
-            ["setprototypeof", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", {
-          "packageLocation": "./.yarn/cache/http-errors-npm-1.7.2-bf79cc2917-8ce4a4af05.zip/node_modules/http-errors/",
-          "packageDependencies": [
-            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"],
-            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
-            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz", {
-          "packageLocation": "./.yarn/cache/http-errors-npm-1.7.3-9276c5fd2a-563ae4a3f1.zip/node_modules/http-errors/",
-          "packageDependencies": [
-            ["http-errors", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"],
-            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-proxy", [
-        ["npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", {
-          "packageLocation": "./.yarn/cache/http-proxy-npm-1.18.1-d3bba4c2a7-fc2062718d.zip/node_modules/http-proxy/",
-          "packageDependencies": [
-            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
-            ["eventemitter3", "npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"],
-            ["follow-redirects", "npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"],
-            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-proxy-middleware", [
-        ["npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", {
-          "packageLocation": "./.yarn/cache/http-proxy-middleware-npm-0.19.1-122302d6da-30f6e99935.zip/node_modules/http-proxy-middleware/",
-          "packageDependencies": [
-            ["http-proxy-middleware", "npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"],
-            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-server", [
-        ["npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz", {
-          "packageLocation": "./.yarn/cache/http-server-npm-0.12.3-c68dbc0e34-cbb1f5b926.zip/node_modules/http-server/",
-          "packageDependencies": [
-            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
-            ["basic-auth", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"],
-            ["colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"],
-            ["corser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"],
-            ["ecstatic", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"],
-            ["http-proxy", "npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
-            ["opener", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"],
-            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
-            ["secure-compare", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"],
-            ["union", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http-signature", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/http-signature-npm-1.2.0-6cfced529e-d28227eed3.zip/node_modules/http-signature/",
-          "packageDependencies": [
-            ["http-signature", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
-            ["jsprim", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"],
-            ["sshpk", "npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["http2-wrapper", [
-        ["npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.0-beta.5.2-5da96150ac-74db457c83.zip/node_modules/http2-wrapper/",
-          "packageDependencies": [
-            ["http2-wrapper", "npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"],
-            ["quick-lru", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"],
-            ["resolve-alpn", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["human-signals", [
-        ["npm:1.1.1", {
-          "packageLocation": "./.yarn/cache/human-signals-npm-1.1.1-616b2586c2-cac115f635.zip/node_modules/human-signals/",
-          "packageDependencies": [
-            ["human-signals", "npm:1.1.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["hyphenate-style-name", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/hyphenate-style-name-npm-1.0.4-5e003eecbc-4cfeb47e98.zip/node_modules/hyphenate-style-name/",
-          "packageDependencies": [
-            ["hyphenate-style-name", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["i18next", [
-        ["npm:19.8.3", {
-          "packageLocation": "./.yarn/cache/i18next-npm-19.8.3-8a568c4add-0dd7b4a997.zip/node_modules/i18next/",
-          "packageDependencies": [
-            ["i18next", "npm:19.8.3"],
-            ["@babel/runtime", "npm:7.12.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["i18next-browser-languagedetector", [
-        ["npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/i18next-browser-languagedetector-npm-6.0.1-9d0cfe54e7-760bc83f3b.zip/node_modules/i18next-browser-languagedetector/",
-          "packageDependencies": [
-            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["iconv-lite", [
-        ["npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", {
-          "packageLocation": "./.yarn/cache/iconv-lite-npm-0.4.24-dc56eba358-a9b9521066.zip/node_modules/iconv-lite/",
-          "packageDependencies": [
-            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["icss-utils", [
-        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0", {
-          "packageLocation": "./.yarn/$$virtual/icss-utils-virtual-286c604c26/0/cache/icss-utils-npm-5.0.0-f378446fc0-c0f385f09d.zip/node_modules/icss-utils/",
-          "packageDependencies": [
-            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
-            ["postcss", "npm:8.1.4"]
-          ],
-          "packagePeers": [
-            "postcss"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ieee754", [
-        ["npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz", {
-          "packageLocation": "./.yarn/cache/ieee754-npm-1.1.13-3822eb0c4a-9ef12932e8.zip/node_modules/ieee754/",
-          "packageDependencies": [
-            ["ieee754", "npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ignore", [
-        ["npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/ignore-npm-4.0.6-a0c0abc151-8f7b7f7c26.zip/node_modules/ignore/",
-          "packageDependencies": [
-            ["ignore", "npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz", {
-          "packageLocation": "./.yarn/cache/ignore-npm-5.1.8-4e58c2e63b-b08e3d5b5d.zip/node_modules/ignore/",
-          "packageDependencies": [
-            ["ignore", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["immediate", [
-        ["npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/immediate-npm-3.0.6-13c0e8192f-e86d4d20e2.zip/node_modules/immediate/",
-          "packageDependencies": [
-            ["immediate", "npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["import-fresh", [
-        ["npm:3.2.1", {
-          "packageLocation": "./.yarn/cache/import-fresh-npm-3.2.1-b4f6711244-5ace950631.zip/node_modules/import-fresh/",
-          "packageDependencies": [
-            ["import-fresh", "npm:3.2.1"],
-            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
-            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/import-fresh-npm-3.2.1-6b85194501-5ace950631.zip/node_modules/import-fresh/",
-          "packageDependencies": [
-            ["import-fresh", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"],
-            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
-            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["import-local", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/import-local-npm-2.0.0-9de9bad399-4729bf153c.zip/node_modules/import-local/",
-          "packageDependencies": [
-            ["import-local", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"],
-            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"],
-            ["resolve-cwd", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2", {
-          "packageLocation": "./.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-9ba5f1697b.zip/node_modules/import-local/",
-          "packageDependencies": [
-            ["import-local", "npm:3.0.2"],
-            ["pkg-dir", "npm:4.2.0"],
-            ["resolve-cwd", "npm:3.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["imurmurhash", [
-        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/imurmurhash-npm-0.1.4-f3c73029a0-34d414d789.zip/node_modules/imurmurhash/",
-          "packageDependencies": [
-            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["indent-string", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-704d0b271e-3e54996c6e.zip/node_modules/indent-string/",
-          "packageDependencies": [
-            ["indent-string", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["indexes-of", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/indexes-of-npm-1.0.1-f7df404a30-e1c232a326.zip/node_modules/indexes-of/",
-          "packageDependencies": [
-            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["infer-owner", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/infer-owner-npm-1.0.4-31ffe59593-56aa1d87b0.zip/node_modules/infer-owner/",
-          "packageDependencies": [
-            ["infer-owner", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["inflight", [
-        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/inflight-npm-1.0.6-2e14bc55cc-17c53fc42c.zip/node_modules/inflight/",
-          "packageDependencies": [
-            ["inflight", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"],
-            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
-            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["inherits", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-b50ffdccd2-9488f9433e.zip/node_modules/inherits/",
-          "packageDependencies": [
-            ["inherits", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-2419743ae2-98426da247.zip/node_modules/inherits/",
-          "packageDependencies": [
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["internal-ip", [
-        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/internal-ip-npm-4.3.0-b5bdf019bf-2cf2248053.zip/node_modules/internal-ip/",
-          "packageDependencies": [
-            ["internal-ip", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"],
-            ["default-gateway", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"],
-            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["internal-slot", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.2-9ea7eefaba-02b2bcc612.zip/node_modules/internal-slot/",
-          "packageDependencies": [
-            ["internal-slot", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["interpret", [
-        ["npm:2.2.0", {
-          "packageLocation": "./.yarn/cache/interpret-npm-2.2.0-3603a544e1-c89b6aa67f.zip/node_modules/interpret/",
-          "packageDependencies": [
-            ["interpret", "npm:2.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["invariant", [
-        ["npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", {
-          "packageLocation": "./.yarn/cache/invariant-npm-2.2.4-0b853150c4-96d8a2a4f0.zip/node_modules/invariant/",
-          "packageDependencies": [
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ip", [
-        ["npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz", {
-          "packageLocation": "./.yarn/cache/ip-npm-1.1.5-238e8b918a-3ad007368c.zip/node_modules/ip/",
-          "packageDependencies": [
-            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ip-regex", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/ip-regex-npm-2.1.0-512f866245-2fd2190ada.zip/node_modules/ip-regex/",
-          "packageDependencies": [
-            ["ip-regex", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ipaddr.js", [
-        ["npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz", {
-          "packageLocation": "./.yarn/cache/ipaddr.js-npm-1.9.1-bdf666d42d-de15bc7e63.zip/node_modules/ipaddr.js/",
-          "packageDependencies": [
-            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is", [
-        ["npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-npm-3.3.0-d6d69493cb-191293ded7.zip/node_modules/is/",
-          "packageDependencies": [
-            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-absolute-url", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/is-absolute-url-npm-3.0.3-df8627c76a-1beac70046.zip/node_modules/is-absolute-url/",
-          "packageDependencies": [
-            ["is-absolute-url", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-accessor-descriptor", [
-        ["npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-0.1.6-f7538bedac-7a7fca2185.zip/node_modules/is-accessor-descriptor/",
-          "packageDependencies": [
-            ["is-accessor-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-1.0.0-dcc8b128c0-3973215c2e.zip/node_modules/is-accessor-descriptor/",
-          "packageDependencies": [
-            ["is-accessor-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"],
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-arguments", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/is-arguments-npm-1.0.4-30931ddeaa-a04bc21254.zip/node_modules/is-arguments/",
-          "packageDependencies": [
-            ["is-arguments", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-arrayish", [
-        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-53753b0ebc-fc2bbe14db.zip/node_modules/is-arrayish/",
-          "packageDependencies": [
-            ["is-arrayish", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-binary-path", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-binary-path-npm-1.0.1-bb57a87fe0-25a2cda1e5.zip/node_modules/is-binary-path/",
-          "packageDependencies": [
-            ["is-binary-path", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"],
-            ["binary-extensions", "npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-binary-path-npm-2.1.0-38e04eaf47-49a1446a3c.zip/node_modules/is-binary-path/",
-          "packageDependencies": [
-            ["is-binary-path", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"],
-            ["binary-extensions", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-buffer", [
-        ["npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-8848721d91-336ec78f00.zip/node_modules/is-buffer/",
-          "packageDependencies": [
-            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-callable", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-callable-npm-1.2.0-8de1776824-8a5e68b7c3.zip/node_modules/is-callable/",
-          "packageDependencies": [
-            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.2.2", {
-          "packageLocation": "./.yarn/cache/is-callable-npm-1.2.2-075940758b-c35d37cc46.zip/node_modules/is-callable/",
-          "packageDependencies": [
-            ["is-callable", "npm:1.2.2"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-core-module", [
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/is-core-module-npm-2.0.0-5ae474e0e9-de99dfbdf1.zip/node_modules/is-core-module/",
-          "packageDependencies": [
-            ["is-core-module", "npm:2.0.0"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-data-descriptor", [
-        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/is-data-descriptor-npm-0.1.4-757c5bbc46-51db89bb46.zip/node_modules/is-data-descriptor/",
-          "packageDependencies": [
-            ["is-data-descriptor", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-data-descriptor-npm-1.0.0-58b032f4bf-0297518899.zip/node_modules/is-data-descriptor/",
-          "packageDependencies": [
-            ["is-data-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"],
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-date-object", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.2-26173a2ef1-0e32269946.zip/node_modules/is-date-object/",
-          "packageDependencies": [
-            ["is-date-object", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-descriptor", [
-        ["npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz", {
-          "packageLocation": "./.yarn/cache/is-descriptor-npm-0.1.6-2304570d44-cab6979fb6.zip/node_modules/is-descriptor/",
-          "packageDependencies": [
-            ["is-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"],
-            ["is-accessor-descriptor", "npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"],
-            ["is-data-descriptor", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"],
-            ["kind-of", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/is-descriptor-npm-1.0.2-a58906611a-be8004010e.zip/node_modules/is-descriptor/",
-          "packageDependencies": [
-            ["is-descriptor", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"],
-            ["is-accessor-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"],
-            ["is-data-descriptor", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"],
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-extendable", [
-        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-extendable-npm-0.1.1-1f12d91b9b-9d051e68c3.zip/node_modules/is-extendable/",
-          "packageDependencies": [
-            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-extendable-npm-1.0.1-001b51c406-2bf711afe6.zip/node_modules/is-extendable/",
-          "packageDependencies": [
-            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"],
-            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-extglob", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-extglob-npm-2.1.1-0c8f89d20e-ca623e2c56.zip/node_modules/is-extglob/",
-          "packageDependencies": [
-            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-fullwidth-code-point", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-1.0.0-ae0237d603-fc3d51ef08.zip/node_modules/is-fullwidth-code-point/",
-          "packageDependencies": [
-            ["is-fullwidth-code-point", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"],
-            ["number-is-nan", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-2.0.0-fa7a938aa0-e1e5284f84.zip/node_modules/is-fullwidth-code-point/",
-          "packageDependencies": [
-            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-glob", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-glob-npm-3.1.0-f8518ed5b1-9911e04e28.zip/node_modules/is-glob/",
-          "packageDependencies": [
-            ["is-glob", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"],
-            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-glob-npm-4.0.1-fbfb31168d-98cd4f715f.zip/node_modules/is-glob/",
-          "packageDependencies": [
-            ["is-glob", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"],
-            ["is-extglob", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-module", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-module-npm-1.0.0-416d60ef09-2cbd41e276.zip/node_modules/is-module/",
-          "packageDependencies": [
-            ["is-module", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-negative-zero", [
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/is-negative-zero-npm-2.0.0-fd9b9ac0e5-87ddefbdf7.zip/node_modules/is-negative-zero/",
-          "packageDependencies": [
-            ["is-negative-zero", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-number", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-number-npm-3.0.0-01c139e8aa-ae03986ded.zip/node_modules/is-number/",
-          "packageDependencies": [
-            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-number-npm-7.0.0-ef33956bb7-eec6e506c6.zip/node_modules/is-number/",
-          "packageDependencies": [
-            ["is-number", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-obj", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/is-obj-npm-1.0.1-60c3c55fe0-0913a3bb64.zip/node_modules/is-obj/",
-          "packageDependencies": [
-            ["is-obj", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-path-cwd", [
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-path-cwd-npm-2.2.0-3f2b5c1572-900f6e8144.zip/node_modules/is-path-cwd/",
-          "packageDependencies": [
-            ["is-path-cwd", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-path-in-cwd", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-path-in-cwd-npm-2.1.0-a1dcd75667-d814427f4e.zip/node_modules/is-path-in-cwd/",
-          "packageDependencies": [
-            ["is-path-in-cwd", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"],
-            ["is-path-inside", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-path-inside", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-path-inside-npm-2.1.0-044840092c-e289fc4ec6.zip/node_modules/is-path-inside/",
-          "packageDependencies": [
-            ["is-path-inside", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"],
-            ["path-is-inside", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-plain-object", [
-        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/is-plain-object-npm-2.0.4-97e1efdf6c-2f32322673.zip/node_modules/is-plain-object/",
-          "packageDependencies": [
-            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-regex", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-regex-npm-1.1.0-069bd43192-8fe7ae8c06.zip/node_modules/is-regex/",
-          "packageDependencies": [
-            ["is-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.1.1", {
-          "packageLocation": "./.yarn/cache/is-regex-npm-1.1.1-6f4125c841-0c5b9d335c.zip/node_modules/is-regex/",
-          "packageDependencies": [
-            ["is-regex", "npm:1.1.1"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-regexp", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-regexp-npm-1.0.0-6d222b3ec3-b6c3ea4f40.zip/node_modules/is-regexp/",
-          "packageDependencies": [
-            ["is-regexp", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-stream", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-stream-npm-1.1.0-93f56a1539-39843ee9ff.zip/node_modules/is-stream/",
-          "packageDependencies": [
-            ["is-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-f92ba04a8b.zip/node_modules/is-stream/",
-          "packageDependencies": [
-            ["is-stream", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-string", [
-        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/is-string-npm-1.0.5-8d4b7bd9a0-c64c791eb7.zip/node_modules/is-string/",
-          "packageDependencies": [
-            ["is-string", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-symbol", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.3-180b522c4f-753aa0cf95.zip/node_modules/is-symbol/",
-          "packageDependencies": [
-            ["is-symbol", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-typedarray", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-typedarray-npm-1.0.0-5fb3c4c0c2-4e21156e73.zip/node_modules/is-typedarray/",
-          "packageDependencies": [
-            ["is-typedarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-windows", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/is-windows-npm-1.0.2-f4ae19c850-dd1ed8339a.zip/node_modules/is-windows/",
-          "packageDependencies": [
-            ["is-windows", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["is-wsl", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/is-wsl-npm-1.1.0-bfaf685a17-0f15cf5d5f.zip/node_modules/is-wsl/",
-          "packageDependencies": [
-            ["is-wsl", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["isarray", [
-        ["npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/isarray-npm-0.0.1-fd8b8c68e3-daeda3c236.zip/node_modules/isarray/",
-          "packageDependencies": [
-            ["isarray", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/isarray-npm-1.0.0-3aa7c881ea-b0ff31a290.zip/node_modules/isarray/",
-          "packageDependencies": [
-            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["isexe", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-802cfb8370-7b437980bb.zip/node_modules/isexe/",
-          "packageDependencies": [
-            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["isobject", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/isobject-npm-2.1.0-8e61738567-2e7d7dd8d5.zip/node_modules/isobject/",
-          "packageDependencies": [
-            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"],
-            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/isobject-npm-3.0.1-8b1c206b72-b537a9ccdd.zip/node_modules/isobject/",
-          "packageDependencies": [
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["isstream", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/isstream-npm-0.1.2-f6a3f4dd2b-8e6e5c4cf1.zip/node_modules/isstream/",
-          "packageDependencies": [
-            ["isstream", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["javascript-stringify", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/javascript-stringify-npm-2.0.1-c00dda829f-77e800e1b6.zip/node_modules/javascript-stringify/",
-          "packageDependencies": [
-            ["javascript-stringify", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jest-worker", [
-        ["npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/jest-worker-npm-24.9.0-72abd4ef37-9740355081.zip/node_modules/jest-worker/",
-          "packageDependencies": [
-            ["jest-worker", "npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"],
-            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
-            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:26.6.1", {
-          "packageLocation": "./.yarn/cache/jest-worker-npm-26.6.1-29bb728758-329b65b18b.zip/node_modules/jest-worker/",
-          "packageDependencies": [
-            ["jest-worker", "npm:26.6.1"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
-            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"],
-            ["supports-color", "npm:7.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["js-tokens", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/js-tokens-npm-3.0.2-77c79c08da-81e634d5a9.zip/node_modules/js-tokens/",
-          "packageDependencies": [
-            ["js-tokens", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-657e51f90d-1fc4e4667a.zip/node_modules/js-tokens/",
-          "packageDependencies": [
-            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["js-yaml", [
-        ["npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", {
-          "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.0-e2062559a2-2eb95464e5.zip/node_modules/js-yaml/",
-          "packageDependencies": [
-            ["js-yaml", "npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"],
-            ["argparse", "npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"],
-            ["esprima", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jsbn", [
-        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/jsbn-npm-0.1.1-a9f71f4221-b530d48a64.zip/node_modules/jsbn/",
-          "packageDependencies": [
-            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jsesc", [
-        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/jsesc-npm-0.5.0-5e585bbf4b-1e4574920d.zip/node_modules/jsesc/",
-          "packageDependencies": [
-            ["jsesc", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/jsesc-npm-2.5.2-ede0b16e39-ca91ec33d7.zip/node_modules/jsesc/",
-          "packageDependencies": [
-            ["jsesc", "npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-buffer", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/json-buffer-npm-3.0.1-0a6c88e1fe-78011309cb.zip/node_modules/json-buffer/",
-          "packageDependencies": [
-            ["json-buffer", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-file-plus", [
-        ["npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/json-file-plus-npm-3.3.1-75aded4631-91d5ea4871.zip/node_modules/json-file-plus/",
-          "packageDependencies": [
-            ["json-file-plus", "npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"],
-            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"],
-            ["node.extend", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"],
-            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
-            ["promiseback", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"],
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-parse-better-errors", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/json-parse-better-errors-npm-1.0.2-17bacecf64-b4c4f0e43b.zip/node_modules/json-parse-better-errors/",
-          "packageDependencies": [
-            ["json-parse-better-errors", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-parse-even-better-errors", [
-        ["npm:2.3.1", {
-          "packageLocation": "./.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-d89fa7fe57.zip/node_modules/json-parse-even-better-errors/",
-          "packageDependencies": [
-            ["json-parse-even-better-errors", "npm:2.3.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-schema", [
-        ["npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/json-schema-npm-0.2.3-9c1213ae80-d382ea841f.zip/node_modules/json-schema/",
-          "packageDependencies": [
-            ["json-schema", "npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-schema-traverse", [
-        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/json-schema-traverse-npm-0.4.1-6ea7142690-6f71bddba3.zip/node_modules/json-schema-traverse/",
-          "packageDependencies": [
-            ["json-schema-traverse", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-stable-stringify-without-jsonify", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-3c9885a5ea-a01b6c6541.zip/node_modules/json-stable-stringify-without-jsonify/",
-          "packageDependencies": [
-            ["json-stable-stringify-without-jsonify", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json-stringify-safe", [
-        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/json-stringify-safe-npm-5.0.1-49522c1d36-261dfb8eb3.zip/node_modules/json-stringify-safe/",
-          "packageDependencies": [
-            ["json-stringify-safe", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json3", [
-        ["npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz", {
-          "packageLocation": "./.yarn/cache/json3-npm-3.3.3-ef5020f593-f79831247f.zip/node_modules/json3/",
-          "packageDependencies": [
-            ["json3", "npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["json5", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/json5-npm-1.0.1-3cf74843da-df41624f9f.zip/node_modules/json5/",
-          "packageDependencies": [
-            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/json5-npm-2.1.3-066046353c-957e493710.zip/node_modules/json5/",
-          "packageDependencies": [
-            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jsonfile", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/jsonfile-npm-4.0.0-3c5fe82b90-a40b7b64da.zip/node_modules/jsonfile/",
-          "packageDependencies": [
-            ["jsonfile", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jsprim", [
-        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/jsprim-npm-1.4.1-f589600560-ee0177b7ef.zip/node_modules/jsprim/",
-          "packageDependencies": [
-            ["jsprim", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
-            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"],
-            ["json-schema", "npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"],
-            ["verror", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["jsx-ast-utils", [
-        ["npm:3.1.0", {
-          "packageLocation": "./.yarn/cache/jsx-ast-utils-npm-3.1.0-0ce367772e-189ef9aed8.zip/node_modules/jsx-ast-utils/",
-          "packageDependencies": [
-            ["jsx-ast-utils", "npm:3.1.0"],
-            ["array-includes", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"],
-            ["object.assign", "npm:4.1.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["keyv", [
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/keyv-npm-4.0.1-c3951054a0-f4e65024a7.zip/node_modules/keyv/",
-          "packageDependencies": [
-            ["keyv", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"],
-            ["json-buffer", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["killable", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/killable-npm-1.0.1-169bff5d99-397df2b8a7.zip/node_modules/killable/",
-          "packageDependencies": [
-            ["killable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["kind-of", [
-        ["npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/kind-of-npm-3.2.2-6034eef8bd-e8a1835c4b.zip/node_modules/kind-of/",
-          "packageDependencies": [
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"],
-            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/kind-of-npm-4.0.0-153e12316d-2e7296c614.zip/node_modules/kind-of/",
-          "packageDependencies": [
-            ["kind-of", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"],
-            ["is-buffer", "npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/kind-of-npm-5.1.0-5f1bb61127-c98cfe70c8.zip/node_modules/kind-of/",
-          "packageDependencies": [
-            ["kind-of", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/kind-of-npm-6.0.3-ab2af25b13-5de5d65777.zip/node_modules/kind-of/",
-          "packageDependencies": [
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["klona", [
-        ["npm:2.0.4", {
-          "packageLocation": "./.yarn/cache/klona-npm-2.0.4-6bc4e7cd86-be4a0c7841.zip/node_modules/klona/",
-          "packageDependencies": [
-            ["klona", "npm:2.0.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["leven", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/leven-npm-3.1.0-8f6b66d621-6ebca75298.zip/node_modules/leven/",
-          "packageDependencies": [
-            ["leven", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["levenary", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/levenary-npm-1.1.1-beabd2e2ba-6d3b78e395.zip/node_modules/levenary/",
-          "packageDependencies": [
-            ["levenary", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"],
-            ["leven", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["levn", [
-        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/levn-npm-0.4.1-07b195f2eb-2f6ddfb0b9.zip/node_modules/levn/",
-          "packageDependencies": [
-            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
-            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"],
-            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lie", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/lie-npm-3.1.1-1a97d51a5f-33a07ffeb7.zip/node_modules/lie/",
-          "packageDependencies": [
-            ["lie", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"],
-            ["immediate", "npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["line-column", [
-        ["npm:1.0.2", {
-          "packageLocation": "./.yarn/cache/line-column-npm-1.0.2-bdeb1193f9-e6fa785b0c.zip/node_modules/line-column/",
-          "packageDependencies": [
-            ["line-column", "npm:1.0.2"],
-            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"],
-            ["isobject", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lines-and-columns", [
-        ["npm:1.1.6", {
-          "packageLocation": "./.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-798b80ed7a.zip/node_modules/lines-and-columns/",
-          "packageDependencies": [
-            ["lines-and-columns", "npm:1.1.6"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["load-json-file", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/load-json-file-npm-2.0.0-6c4dbfa60e-c6ea93d360.zip/node_modules/load-json-file/",
-          "packageDependencies": [
-            ["load-json-file", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
-            ["parse-json", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"],
-            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"],
-            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["loader-runner", [
-        ["npm:4.1.0", {
-          "packageLocation": "./.yarn/cache/loader-runner-npm-4.1.0-5576b2bf07-2b964f3484.zip/node_modules/loader-runner/",
-          "packageDependencies": [
-            ["loader-runner", "npm:4.1.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["loader-utils", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/loader-utils-npm-1.4.0-24f50da64c-9fd690e57a.zip/node_modules/loader-utils/",
-          "packageDependencies": [
-            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
-            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"],
-            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"],
-            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/loader-utils-npm-2.0.0-bb7bf40a1d-a1c2e48781.zip/node_modules/loader-utils/",
-          "packageDependencies": [
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["big.js", "npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"],
-            ["emojis-list", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"],
-            ["json5", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["localforage", [
-        ["npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/localforage-npm-1.9.0-5007685607-0645f5ec6f.zip/node_modules/localforage/",
-          "packageDependencies": [
-            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
-            ["lie", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["locate-path", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/locate-path-npm-2.0.0-2561ff48c2-ee5a888d68.zip/node_modules/locate-path/",
-          "packageDependencies": [
-            ["locate-path", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"],
-            ["p-locate", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"],
-            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/locate-path-npm-3.0.0-05cc4c2e8a-0b6bf0c1bb.zip/node_modules/locate-path/",
-          "packageDependencies": [
-            ["locate-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"],
-            ["p-locate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"],
-            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/locate-path-npm-5.0.0-fb5746c0b5-c58f49d45c.zip/node_modules/locate-path/",
-          "packageDependencies": [
-            ["locate-path", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"],
-            ["p-locate", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lodash", [
-        ["npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz", {
-          "packageLocation": "./.yarn/cache/lodash-npm-4.17.19-7b31681a63-ff2b7a95f0.zip/node_modules/lodash/",
-          "packageDependencies": [
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", {
-          "packageLocation": "./.yarn/cache/lodash-npm-4.17.20-3d0d643e5a-c62101d250.zip/node_modules/lodash/",
-          "packageDependencies": [
-            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lodash-es", [
-        ["npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz", {
-          "packageLocation": "./.yarn/cache/lodash-es-npm-4.17.15-15cd80072f-ee2871b76d.zip/node_modules/lodash-es/",
-          "packageDependencies": [
-            ["lodash-es", "npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lodash._reinterpolate", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/lodash._reinterpolate-npm-3.0.0-7f339ed5b7-27513557d6.zip/node_modules/lodash._reinterpolate/",
-          "packageDependencies": [
-            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lodash.template", [
-        ["npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/lodash.template-npm-4.5.0-fd75b05508-e27068e20b.zip/node_modules/lodash.template/",
-          "packageDependencies": [
-            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
-            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"],
-            ["lodash.templatesettings", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lodash.templatesettings", [
-        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/lodash.templatesettings-npm-4.2.0-32ac60f82b-45546a5b76.zip/node_modules/lodash.templatesettings/",
-          "packageDependencies": [
-            ["lodash.templatesettings", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"],
-            ["lodash._reinterpolate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["logic-solver", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/logic-solver-npm-2.0.1-5ede74e2de-48458c6771.zip/node_modules/logic-solver/",
-          "packageDependencies": [
-            ["logic-solver", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"],
-            ["underscore", "npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["loglevel", [
-        ["npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz", {
-          "packageLocation": "./.yarn/cache/loglevel-npm-1.6.8-bbd72f4837-847939b085.zip/node_modules/loglevel/",
-          "packageDependencies": [
-            ["loglevel", "npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["loose-envify", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-470596de05-5c3b47bbe5.zip/node_modules/loose-envify/",
-          "packageDependencies": [
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["js-tokens", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lower-case", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/lower-case-npm-2.0.1-5e77048bd0-52a55327ea.zip/node_modules/lower-case/",
-          "packageDependencies": [
-            ["lower-case", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lowercase-keys", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/lowercase-keys-npm-2.0.0-58c5479381-4da67f4186.zip/node_modules/lowercase-keys/",
-          "packageDependencies": [
-            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["lru-cache", [
-        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-2534f00ab3-b8b78353d2.zip/node_modules/lru-cache/",
-          "packageDependencies": [
-            ["lru-cache", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"],
-            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["magic-string", [
-        ["npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz", {
-          "packageLocation": "./.yarn/cache/magic-string-npm-0.25.7-d1677ce708-4b70c13eb2.zip/node_modules/magic-string/",
-          "packageDependencies": [
-            ["magic-string", "npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"],
-            ["sourcemap-codec", "npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["make-dir", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/make-dir-npm-2.1.0-544abd4898-94e2ab9dda.zip/node_modules/make-dir/",
-          "packageDependencies": [
-            ["make-dir", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"],
-            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-6c0e97ae13-54b6f186c2.zip/node_modules/make-dir/",
-          "packageDependencies": [
-            ["make-dir", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"],
-            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["map-cache", [
-        ["npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/map-cache-npm-0.2.2-a13d8760c2-3d205d20e0.zip/node_modules/map-cache/",
-          "packageDependencies": [
-            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["map-visit", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/map-visit-npm-1.0.0-77671c7d3d-9e85e6d802.zip/node_modules/map-visit/",
-          "packageDependencies": [
-            ["map-visit", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"],
-            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["matchmediaquery", [
-        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/matchmediaquery-npm-0.3.1-4690c9049b-face426fe3.zip/node_modules/matchmediaquery/",
-          "packageDependencies": [
-            ["matchmediaquery", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"],
-            ["css-mediaquery", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["media-typer", [
-        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/media-typer-npm-0.3.0-5409539c00-be1c825782.zip/node_modules/media-typer/",
-          "packageDependencies": [
-            ["media-typer", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["memory-fs", [
-        ["npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/memory-fs-npm-0.4.1-75bd36d5b4-ba79207118.zip/node_modules/memory-fs/",
-          "packageDependencies": [
-            ["memory-fs", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"],
-            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/memory-fs-npm-0.5.0-3888b44baf-deb916f33c.zip/node_modules/memory-fs/",
-          "packageDependencies": [
-            ["memory-fs", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"],
-            ["errno", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"],
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["merge-descriptors", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/merge-descriptors-npm-1.0.1-bf56428fd4-2d2a09eaac.zip/node_modules/merge-descriptors/",
-          "packageDependencies": [
-            ["merge-descriptors", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["merge-stream", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-b9f38e4b22-cde834809a.zip/node_modules/merge-stream/",
-          "packageDependencies": [
-            ["merge-stream", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["merge2", [
-        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/merge2-npm-1.4.1-0734c1f279-7ad40d8b14.zip/node_modules/merge2/",
-          "packageDependencies": [
-            ["merge2", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["methods", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/methods-npm-1.1.2-d1ae4c2fb5-450e4ea0fd.zip/node_modules/methods/",
-          "packageDependencies": [
-            ["methods", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["micromatch", [
-        ["npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", {
-          "packageLocation": "./.yarn/cache/micromatch-npm-3.1.10-f817a61c82-a60e73539a.zip/node_modules/micromatch/",
-          "packageDependencies": [
-            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
-            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"],
-            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
-            ["braces", "npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"],
-            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
-            ["extglob", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"],
-            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"],
-            ["nanomatch", "npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"],
-            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/micromatch-npm-4.0.2-357c247757-0cb0e11d64.zip/node_modules/micromatch/",
-          "packageDependencies": [
-            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
-            ["braces", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"],
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mime", [
-        ["npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/mime-npm-1.6.0-79830f7bce-d540c24dd3.zip/node_modules/mime/",
-          "packageDependencies": [
-            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", {
-          "packageLocation": "./.yarn/cache/mime-npm-2.4.6-0dbb21ce6a-319ec38588.zip/node_modules/mime/",
-          "packageDependencies": [
-            ["mime", "npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mime-db", [
-        ["npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", {
-          "packageLocation": "./.yarn/cache/mime-db-npm-1.44.0-2393297dd7-b4e3b21414.zip/node_modules/mime-db/",
-          "packageDependencies": [
-            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mime-types", [
-        ["npm:2.1.27", {
-          "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-51fe2f2c08.zip/node_modules/mime-types/",
-          "packageDependencies": [
-            ["mime-types", "npm:2.1.27"],
-            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz", {
-          "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-3bb89ab787-51fe2f2c08.zip/node_modules/mime-types/",
-          "packageDependencies": [
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
-            ["mime-db", "npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mimic-fn", [
-        ["npm:2.1.0", {
-          "packageLocation": "./.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-f7d2d7febe.zip/node_modules/mimic-fn/",
-          "packageDependencies": [
-            ["mimic-fn", "npm:2.1.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mimic-response", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/mimic-response-npm-1.0.1-c2e0cc83f2-64b43c717e.zip/node_modules/mimic-response/",
-          "packageDependencies": [
-            ["mimic-response", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/mimic-response-npm-3.1.0-582b9e1b6e-cfbf19f66d.zip/node_modules/mimic-response/",
-          "packageDependencies": [
-            ["mimic-response", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["min-document", [
-        ["npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz", {
-          "packageLocation": "./.yarn/cache/min-document-npm-2.19.0-34f9b0e52c-8da883996e.zip/node_modules/min-document/",
-          "packageDependencies": [
-            ["min-document", "npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"],
-            ["dom-walk", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mini-create-react-context", [
-        ["virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/mini-create-react-context-virtual-2c58e95df5/0/cache/mini-create-react-context-npm-0.4.0-ce8c7252c0-51f07df1ed.zip/node_modules/mini-create-react-context/",
-          "packageDependencies": [
-            ["mini-create-react-context", "virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "prop-types",
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mini-css-extract-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0", {
-          "packageLocation": "./.yarn/$$virtual/mini-css-extract-plugin-virtual-5c184b300f/0/cache/mini-css-extract-plugin-npm-1.2.0-cd68fc20c6-e87cbebbcb.zip/node_modules/mini-css-extract-plugin/",
-          "packageDependencies": [
-            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minimalistic-assert", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/minimalistic-assert-npm-1.0.1-93f2a687dc-28f1de3cf9.zip/node_modules/minimalistic-assert/",
-          "packageDependencies": [
-            ["minimalistic-assert", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minimatch", [
-        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/minimatch-npm-3.0.4-1cf14e88a8-47eab92639.zip/node_modules/minimatch/",
-          "packageDependencies": [
-            ["minimatch", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"],
-            ["brace-expansion", "npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minimist", [
-        ["npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", {
-          "packageLocation": "./.yarn/cache/minimist-npm-1.2.5-3ea7dc5510-b77b859014.zip/node_modules/minimist/",
-          "packageDependencies": [
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minipass", [
-        ["npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/minipass-npm-3.1.3-eb45a369b1-d12b95a845.zip/node_modules/minipass/",
-          "packageDependencies": [
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
-            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minipass-collect", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/minipass-collect-npm-1.0.2-b2b0e9a8aa-529ef62123.zip/node_modules/minipass-collect/",
-          "packageDependencies": [
-            ["minipass-collect", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minipass-flush", [
-        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-2d1df1fc08-d354ca0da8.zip/node_modules/minipass-flush/",
-          "packageDependencies": [
-            ["minipass-flush", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minipass-pipeline", [
-        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/minipass-pipeline-npm-1.2.3-9a526bbb86-618713f98c.zip/node_modules/minipass-pipeline/",
-          "packageDependencies": [
-            ["minipass-pipeline", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["minizlib", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/minizlib-npm-2.1.0-0922541795-665346bad8.zip/node_modules/minizlib/",
-          "packageDependencies": [
-            ["minizlib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
-            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mixin-deep", [
-        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/mixin-deep-npm-1.3.2-7cb57856a3-68da98bc1a.zip/node_modules/mixin-deep/",
-          "packageDependencies": [
-            ["mixin-deep", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"],
-            ["for-in", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"],
-            ["is-extendable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["mkdirp", [
-        ["npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", {
-          "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.5-203efae148-9dd9792e89.zip/node_modules/mkdirp/",
-          "packageDependencies": [
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-8ad5b43a9f-1aa3a6a2d7.zip/node_modules/mkdirp/",
-          "packageDependencies": [
-            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ms", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/ms-npm-2.0.0-6af94e2745-1a230340cc.zip/node_modules/ms/",
-          "packageDependencies": [
-            ["ms", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/ms-npm-2.1.1-936b62be9b-81ad38c74d.zip/node_modules/ms/",
-          "packageDependencies": [
-            ["ms", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/ms-npm-2.1.2-b65f0bec4f-9b65fb709b.zip/node_modules/ms/",
-          "packageDependencies": [
-            ["ms", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["multicast-dns", [
-        ["npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/multicast-dns-npm-6.2.3-4dfad4a56f-3a67f9a155.zip/node_modules/multicast-dns/",
-          "packageDependencies": [
-            ["multicast-dns", "npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"],
-            ["dns-packet", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"],
-            ["thunky", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["multicast-dns-service-types", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/multicast-dns-service-types-npm-1.1.0-90c195ce06-de10f16134.zip/node_modules/multicast-dns-service-types/",
-          "packageDependencies": [
-            ["multicast-dns-service-types", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nan", [
-        ["npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz", {
-          "packageLocation": "./.yarn/unplugged/nan-npm-2.14.1-6b7103c9d4/node_modules/nan/",
-          "packageDependencies": [
-            ["nan", "npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"],
-            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nanoid", [
-        ["npm:3.1.16", {
-          "packageLocation": "./.yarn/cache/nanoid-npm-3.1.16-d6962d7364-1903aa0a76.zip/node_modules/nanoid/",
-          "packageDependencies": [
-            ["nanoid", "npm:3.1.16"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nanomatch", [
-        ["npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz", {
-          "packageLocation": "./.yarn/cache/nanomatch-npm-1.2.13-d8b8b8d0d0-2e1440c570.zip/node_modules/nanomatch/",
-          "packageDependencies": [
-            ["nanomatch", "npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"],
-            ["arr-diff", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"],
-            ["array-unique", "npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"],
-            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
-            ["fragment-cache", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"],
-            ["is-windows", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"],
-            ["kind-of", "npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"],
-            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["natural-compare", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-bb22abd68a-2daf93d9bb.zip/node_modules/natural-compare/",
-          "packageDependencies": [
-            ["natural-compare", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["negotiator", [
-        ["npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz", {
-          "packageLocation": "./.yarn/cache/negotiator-npm-0.6.2-fb945ca17e-4b230bd15f.zip/node_modules/negotiator/",
-          "packageDependencies": [
-            ["negotiator", "npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["neo-async", [
-        ["npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", {
-          "packageLocation": "./.yarn/cache/neo-async-npm-2.6.2-205849bb4e-34a8f53091.zip/node_modules/neo-async/",
-          "packageDependencies": [
-            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nice-try", [
-        ["npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/nice-try-npm-1.0.5-d9c04f9768-330f190bf6.zip/node_modules/nice-try/",
-          "packageDependencies": [
-            ["nice-try", "npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["no-case", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/no-case-npm-3.0.3-8458d9e79f-619e0bd00a.zip/node_modules/no-case/",
-          "packageDependencies": [
-            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
-            ["lower-case", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["node-forge", [
-        ["npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/node-forge-npm-0.9.0-0822411c39-901d6ab679.zip/node_modules/node-forge/",
-          "packageDependencies": [
-            ["node-forge", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["node-gyp", [
-        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz", {
-          "packageLocation": "./.yarn/unplugged/node-gyp-npm-7.0.0-1eaae03300/node_modules/node-gyp/",
-          "packageDependencies": [
-            ["node-gyp", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"],
-            ["env-paths", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
-            ["nopt", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"],
-            ["npmlog", "npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"],
-            ["request", "npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"],
-            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
-            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["node-releases", [
-        ["npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz", {
-          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.59-25d07777e1-35eb1c268b.zip/node_modules/node-releases/",
-          "packageDependencies": [
-            ["node-releases", "npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz", {
-          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.60-6691924d60-bed3480bd1.zip/node_modules/node-releases/",
-          "packageDependencies": [
-            ["node-releases", "npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.1.64", {
-          "packageLocation": "./.yarn/cache/node-releases-npm-1.1.64-171b1d9b08-09e85fd0ec.zip/node_modules/node-releases/",
-          "packageDependencies": [
-            ["node-releases", "npm:1.1.64"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["node.extend", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/node.extend-npm-2.0.2-54e7799b61-750516f66b.zip/node_modules/node.extend/",
-          "packageDependencies": [
-            ["node.extend", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"],
-            ["is", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nopt", [
-        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/nopt-npm-4.0.3-1930a338e4-bf7b8c15fd.zip/node_modules/nopt/",
-          "packageDependencies": [
-            ["nopt", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"],
-            ["abbrev", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"],
-            ["osenv", "npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["normalize-package-data", [
-        ["npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-4d392e3f0a-97d4d6b061.zip/node_modules/normalize-package-data/",
-          "packageDependencies": [
-            ["normalize-package-data", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"],
-            ["hosted-git-info", "npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"],
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"],
-            ["validate-npm-package-license", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["normalize-path", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/normalize-path-npm-2.1.1-0182e75f79-9eb82b2f6a.zip/node_modules/normalize-path/",
-          "packageDependencies": [
-            ["normalize-path", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"],
-            ["remove-trailing-separator", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/normalize-path-npm-3.0.0-b159881eab-215a701b47.zip/node_modules/normalize-path/",
-          "packageDependencies": [
-            ["normalize-path", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["normalize-range", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/normalize-range-npm-0.1.2-ca7f15bcec-bca997d800.zip/node_modules/normalize-range/",
-          "packageDependencies": [
-            ["normalize-range", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["normalize-url", [
-        ["npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/normalize-url-npm-4.5.0-2a9c31c2aa-09794941db.zip/node_modules/normalize-url/",
-          "packageDependencies": [
-            ["normalize-url", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["npm-run-path", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/npm-run-path-npm-2.0.2-0097cb79c9-0a1bc9a1e0.zip/node_modules/npm-run-path/",
-          "packageDependencies": [
-            ["npm-run-path", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"],
-            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.1", {
-          "packageLocation": "./.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-058fd06880.zip/node_modules/npm-run-path/",
-          "packageDependencies": [
-            ["npm-run-path", "npm:4.0.1"],
-            ["path-key", "npm:3.1.1"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["npmlog", [
-        ["npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/npmlog-npm-4.1.2-2cc85ef44d-0cd63f127c.zip/node_modules/npmlog/",
-          "packageDependencies": [
-            ["npmlog", "npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"],
-            ["are-we-there-yet", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"],
-            ["console-control-strings", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"],
-            ["gauge", "npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"],
-            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["nth-check", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/nth-check-npm-1.0.2-a1ea81a5a5-88a58b8b62.zip/node_modules/nth-check/",
-          "packageDependencies": [
-            ["nth-check", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"],
-            ["boolbase", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["num2fraction", [
-        ["npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/num2fraction-npm-1.2.2-ba9254e6b8-c9bb3e7c6d.zip/node_modules/num2fraction/",
-          "packageDependencies": [
-            ["num2fraction", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["number-is-nan", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/number-is-nan-npm-1.0.1-b209a09e41-42251b2653.zip/node_modules/number-is-nan/",
-          "packageDependencies": [
-            ["number-is-nan", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["oauth-sign", [
-        ["npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/oauth-sign-npm-0.9.0-37ace8aaa3-af1ab60297.zip/node_modules/oauth-sign/",
-          "packageDependencies": [
-            ["oauth-sign", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-assign", [
-        ["npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-8ceeb17134-66cf021898.zip/node_modules/object-assign/",
-          "packageDependencies": [
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-copy", [
-        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/object-copy-npm-0.1.0-38eb02d78b-d91d46e542.zip/node_modules/object-copy/",
-          "packageDependencies": [
-            ["object-copy", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"],
-            ["copy-descriptor", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"],
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-inspect", [
-        ["npm:1.8.0", {
-          "packageLocation": "./.yarn/cache/object-inspect-npm-1.8.0-81c2d7cdce-4da23a188b.zip/node_modules/object-inspect/",
-          "packageDependencies": [
-            ["object-inspect", "npm:1.8.0"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/object-inspect-npm-1.8.0-ba47e36e4d-4da23a188b.zip/node_modules/object-inspect/",
-          "packageDependencies": [
-            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-is", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/object-is-npm-1.1.2-085bef0859-9ea7df4475.zip/node_modules/object-is/",
-          "packageDependencies": [
-            ["object-is", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-keys", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/object-keys-npm-1.1.1-5d0bb0990f-30d72d768b.zip/node_modules/object-keys/",
-          "packageDependencies": [
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object-visit", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/object-visit-npm-1.0.1-e8feded7bd-8666727dbf.zip/node_modules/object-visit/",
-          "packageDependencies": [
-            ["object-visit", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.assign", [
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/object.assign-npm-4.1.0-b5f0345d8b-92e20891dd.zip/node_modules/object.assign/",
-          "packageDependencies": [
-            ["object.assign", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.1", {
-          "packageLocation": "./.yarn/cache/object.assign-npm-4.1.1-775388c06f-2038905bbf.zip/node_modules/object.assign/",
-          "packageDependencies": [
-            ["object.assign", "npm:4.1.1"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.18.0-next.1"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
-            ["object-keys", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.entries", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/object.entries-npm-1.1.2-e72d86e3f5-bcde47ee03.zip/node_modules/object.entries/",
-          "packageDependencies": [
-            ["object.entries", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.fromentries", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.2-a1b50ecae0-58fa9edab1.zip/node_modules/object.fromentries/",
-          "packageDependencies": [
-            ["object.fromentries", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.getownpropertydescriptors", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/object.getownpropertydescriptors-npm-2.1.0-ec838cd170-c33dcc3061.zip/node_modules/object.getownpropertydescriptors/",
-          "packageDependencies": [
-            ["object.getownpropertydescriptors", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.pick", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/object.pick-npm-1.3.0-7537a483ac-e22d555d3b.zip/node_modules/object.pick/",
-          "packageDependencies": [
-            ["object.pick", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["object.values", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/object.values-npm-1.1.1-b27726e454-33e99ceb5c.zip/node_modules/object.values/",
-          "packageDependencies": [
-            ["object.values", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["function-bind", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"],
-            ["has", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["obuf", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/obuf-npm-1.1.2-aa30b1cbce-aa741387b0.zip/node_modules/obuf/",
-          "packageDependencies": [
-            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["on-finished", [
-        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/on-finished-npm-2.3.0-da535fed17-362e646082.zip/node_modules/on-finished/",
-          "packageDependencies": [
-            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
-            ["ee-first", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["on-headers", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/on-headers-npm-1.0.2-001a5ad58c-51e75c8075.zip/node_modules/on-headers/",
-          "packageDependencies": [
-            ["on-headers", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["once", [
-        ["npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz", {
-          "packageLocation": "./.yarn/cache/once-npm-1.3.3-468c28d1e0-c68086bafe.zip/node_modules/once/",
-          "packageDependencies": [
-            ["once", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"],
-            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/once-npm-1.4.0-6edb11c97b-57afc24653.zip/node_modules/once/",
-          "packageDependencies": [
-            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"],
-            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["onetime", [
-        ["npm:5.1.2", {
-          "packageLocation": "./.yarn/cache/onetime-npm-5.1.2-3ed148fa42-e425f6caeb.zip/node_modules/onetime/",
-          "packageDependencies": [
-            ["onetime", "npm:5.1.2"],
-            ["mimic-fn", "npm:2.1.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["opener", [
-        ["npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz", {
-          "packageLocation": "./.yarn/cache/opener-npm-1.5.1-178cc6d146-055a1efdc2.zip/node_modules/opener/",
-          "packageDependencies": [
-            ["opener", "npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["opn", [
-        ["npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/opn-npm-5.5.0-1f44eaccf4-0ea3b6550f.zip/node_modules/opn/",
-          "packageDependencies": [
-            ["opn", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"],
-            ["is-wsl", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["optionator", [
-        ["npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz", {
-          "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-f7cdd561cb-bdf5683f98.zip/node_modules/optionator/",
-          "packageDependencies": [
-            ["optionator", "npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"],
-            ["deep-is", "npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"],
-            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"],
-            ["levn", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"],
-            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"],
-            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"],
-            ["word-wrap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["original", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/original-npm-1.0.2-c274bd9e5d-6918b9d454.zip/node_modules/original/",
-          "packageDependencies": [
-            ["original", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"],
-            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["os-homedir", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/os-homedir-npm-1.0.2-fdcdae83af-725256246b.zip/node_modules/os-homedir/",
-          "packageDependencies": [
-            ["os-homedir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["os-tmpdir", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/os-tmpdir-npm-1.0.2-15b203aafb-ca158a3c2e.zip/node_modules/os-tmpdir/",
-          "packageDependencies": [
-            ["os-tmpdir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["osenv", [
-        ["npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz", {
-          "packageLocation": "./.yarn/cache/osenv-npm-0.1.5-3bd00d1c66-1c7462808c.zip/node_modules/osenv/",
-          "packageDependencies": [
-            ["osenv", "npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"],
-            ["os-homedir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"],
-            ["os-tmpdir", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-cancelable", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-cancelable-npm-2.0.0-74da75cdca-966065f056.zip/node_modules/p-cancelable/",
-          "packageDependencies": [
-            ["p-cancelable", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-finally", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-finally-npm-1.0.0-0bd6687714-01f49b2d9c.zip/node_modules/p-finally/",
-          "packageDependencies": [
-            ["p-finally", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-limit", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-limit-npm-1.3.0-8733d5eba4-579cbd3d6c.zip/node_modules/p-limit/",
-          "packageDependencies": [
-            ["p-limit", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"],
-            ["p-try", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-1a838d725f-5f20492a25.zip/node_modules/p-limit/",
-          "packageDependencies": [
-            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"],
-            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/p-limit-npm-3.0.2-39d32193d2-1eb23d6ea7.zip/node_modules/p-limit/",
-          "packageDependencies": [
-            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
-            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-locate", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-locate-npm-2.0.0-d80a803b39-b6dabbd855.zip/node_modules/p-locate/",
-          "packageDependencies": [
-            ["p-locate", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"],
-            ["p-limit", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-locate-npm-3.0.0-e428a293a5-3ee9e3ed0b.zip/node_modules/p-locate/",
-          "packageDependencies": [
-            ["p-locate", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"],
-            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-locate-npm-4.1.0-15e74f2cc4-57f9abef0b.zip/node_modules/p-locate/",
-          "packageDependencies": [
-            ["p-locate", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"],
-            ["p-limit", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-map", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-map-npm-2.1.0-b2fa15cc31-8557e841ed.zip/node_modules/p-map/",
-          "packageDependencies": [
-            ["p-map", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-bead9768c8-d51e630d72.zip/node_modules/p-map/",
-          "packageDependencies": [
-            ["p-map", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"],
-            ["aggregate-error", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-retry", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/p-retry-npm-3.0.1-d871c6fe1b-26c888de4e.zip/node_modules/p-retry/",
-          "packageDependencies": [
-            ["p-retry", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"],
-            ["retry", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["p-try", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-try-npm-1.0.0-8c8e61438d-85739d77b3.zip/node_modules/p-try/",
-          "packageDependencies": [
-            ["p-try", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/p-try-npm-2.2.0-ed6cbde710-20983f3765.zip/node_modules/p-try/",
-          "packageDependencies": [
-            ["p-try", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["param-case", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/param-case-npm-3.0.3-84b1b78d85-ef57facfaf.zip/node_modules/param-case/",
-          "packageDependencies": [
-            ["param-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"],
-            ["dot-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["parent-module", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-d19ac229cd-58714b9699.zip/node_modules/parent-module/",
-          "packageDependencies": [
-            ["parent-module", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"],
-            ["callsites", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["parse-json", [
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/parse-json-npm-2.2.0-801beb0840-920582196a.zip/node_modules/parse-json/",
-          "packageDependencies": [
-            ["parse-json", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"],
-            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.1.0", {
-          "packageLocation": "./.yarn/cache/parse-json-npm-5.1.0-a83e3ab0f2-5e09955194.zip/node_modules/parse-json/",
-          "packageDependencies": [
-            ["parse-json", "npm:5.1.0"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["error-ex", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"],
-            ["json-parse-even-better-errors", "npm:2.3.1"],
-            ["lines-and-columns", "npm:1.1.6"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["parseurl", [
-        ["npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz", {
-          "packageLocation": "./.yarn/cache/parseurl-npm-1.3.3-93dc3a804c-52c9e86cb5.zip/node_modules/parseurl/",
-          "packageDependencies": [
-            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pascal-case", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/pascal-case-npm-3.1.1-ffa0435e29-56f66aea7f.zip/node_modules/pascal-case/",
-          "packageDependencies": [
-            ["pascal-case", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"],
-            ["no-case", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pascalcase", [
-        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/pascalcase-npm-0.1.1-9044796ab3-268a9dbf9c.zip/node_modules/pascalcase/",
-          "packageDependencies": [
-            ["pascalcase", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-dirname", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/path-dirname-npm-1.0.2-e724ca8701-4af73745fd.zip/node_modules/path-dirname/",
-          "packageDependencies": [
-            ["path-dirname", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-exists", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/path-exists-npm-3.0.0-fb07c7e0a9-09683e92ba.zip/node_modules/path-exists/",
-          "packageDependencies": [
-            ["path-exists", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/path-exists-npm-4.0.0-d9586cbac5-6ab15000c5.zip/node_modules/path-exists/",
-          "packageDependencies": [
-            ["path-exists", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-is-absolute", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/path-is-absolute-npm-1.0.1-995e44d2f4-907e1e3e6a.zip/node_modules/path-is-absolute/",
-          "packageDependencies": [
-            ["path-is-absolute", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-is-inside", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/path-is-inside-npm-1.0.2-b713bc149e-9c1841199d.zip/node_modules/path-is-inside/",
-          "packageDependencies": [
-            ["path-is-inside", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-key", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/path-key-npm-2.0.1-4e9a561e45-7dc807a2ba.zip/node_modules/path-key/",
-          "packageDependencies": [
-            ["path-key", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.1", {
-          "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-0e66ea8321-e44aa3ca9f.zip/node_modules/path-key/",
-          "packageDependencies": [
-            ["path-key", "npm:3.1.1"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-a27b0b0e02-e44aa3ca9f.zip/node_modules/path-key/",
-          "packageDependencies": [
-            ["path-key", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-parse", [
-        ["npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/path-parse-npm-1.0.6-173bb133b6-2eee4b93fb.zip/node_modules/path-parse/",
-          "packageDependencies": [
-            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-to-regexp", [
-        ["npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", {
-          "packageLocation": "./.yarn/cache/path-to-regexp-npm-0.1.7-338c0331e7-342fdb0ca4.zip/node_modules/path-to-regexp/",
-          "packageDependencies": [
-            ["path-to-regexp", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/path-to-regexp-npm-1.8.0-735e8244bc-4c0d9aaf3f.zip/node_modules/path-to-regexp/",
-          "packageDependencies": [
-            ["path-to-regexp", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"],
-            ["isarray", "npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["path-type", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/path-type-npm-2.0.0-59132af1ec-d028f828df.zip/node_modules/path-type/",
-          "packageDependencies": [
-            ["path-type", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"],
-            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/path-type-npm-4.0.0-307bedbdb8-ef5835f2eb.zip/node_modules/path-type/",
-          "packageDependencies": [
-            ["path-type", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pepjs", [
-        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/pepjs-npm-0.5.2-2521e6126a-bc44db87f7.zip/node_modules/pepjs/",
-          "packageDependencies": [
-            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["performance-now", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/performance-now-npm-2.1.0-c3b087506a-bb4ebed0b0.zip/node_modules/performance-now/",
-          "packageDependencies": [
-            ["performance-now", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["picomatch", [
-        ["npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/picomatch-npm-2.2.2-0163e38274-20fa75e0a5.zip/node_modules/picomatch/",
-          "packageDependencies": [
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pify", [
-        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/pify-npm-2.3.0-58f05c0274-d5758aa570.zip/node_modules/pify/",
-          "packageDependencies": [
-            ["pify", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/pify-npm-4.0.1-a7e05cc66d-786486a8c9.zip/node_modules/pify/",
-          "packageDependencies": [
-            ["pify", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pinkie", [
-        ["npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/pinkie-npm-2.0.4-522b6b3ab1-2cb484c9da.zip/node_modules/pinkie/",
-          "packageDependencies": [
-            ["pinkie", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pinkie-promise", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/pinkie-promise-npm-2.0.1-f6de399079-1e32e05ffd.zip/node_modules/pinkie-promise/",
-          "packageDependencies": [
-            ["pinkie-promise", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"],
-            ["pinkie", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pkg-dir", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/pkg-dir-npm-2.0.0-bed7e047e5-f8ae3a1517.zip/node_modules/pkg-dir/",
-          "packageDependencies": [
-            ["pkg-dir", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"],
-            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/pkg-dir-npm-3.0.0-0903fcee43-f29a7d0134.zip/node_modules/pkg-dir/",
-          "packageDependencies": [
-            ["pkg-dir", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"],
-            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.2.0", {
-          "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-1956ebf3cf.zip/node_modules/pkg-dir/",
-          "packageDependencies": [
-            ["pkg-dir", "npm:4.2.0"],
-            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-34e5df0823-1956ebf3cf.zip/node_modules/pkg-dir/",
-          "packageDependencies": [
-            ["pkg-dir", "npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"],
-            ["find-up", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pluralize", [
-        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/pluralize-npm-7.0.0-064327767f-d35d8aeda1.zip/node_modules/pluralize/",
-          "packageDependencies": [
-            ["pluralize", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["portfinder", [
-        ["npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz", {
-          "packageLocation": "./.yarn/cache/portfinder-npm-1.0.27-519aa211df-dfecedbaf8.zip/node_modules/portfinder/",
-          "packageDependencies": [
-            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
-            ["async", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"],
-            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["posix-character-classes", [
-        ["npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/posix-character-classes-npm-0.1.1-0eebf90c33-984f83c2d4.zip/node_modules/posix-character-classes/",
-          "packageDependencies": [
-            ["posix-character-classes", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss", [
-        ["npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-npm-7.0.32-88bddb9ad6-340f4f6ca6.zip/node_modules/postcss/",
-          "packageDependencies": [
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
-            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:8.1.4", {
-          "packageLocation": "./.yarn/cache/postcss-npm-8.1.4-d23d625804-b2bfa799c0.zip/node_modules/postcss/",
-          "packageDependencies": [
-            ["postcss", "npm:8.1.4"],
-            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
-            ["line-column", "npm:1.0.2"],
-            ["nanoid", "npm:3.1.16"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-attribute-case-insensitive", [
-        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-attribute-case-insensitive-npm-4.0.2-bd4a476e54-0de786320f.zip/node_modules/postcss-attribute-case-insensitive/",
-          "packageDependencies": [
-            ["postcss-attribute-case-insensitive", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-color-functional-notation", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-color-functional-notation-npm-2.0.1-0c9d26e19b-8f83bde47b.zip/node_modules/postcss-color-functional-notation/",
-          "packageDependencies": [
-            ["postcss-color-functional-notation", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-color-gray", [
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-color-gray-npm-5.0.0-d071a300bb-99c885049c.zip/node_modules/postcss-color-gray/",
-          "packageDependencies": [
-            ["postcss-color-gray", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"],
-            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-color-hex-alpha", [
-        ["npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-color-hex-alpha-npm-5.0.3-e060ae2969-99e8a9457c.zip/node_modules/postcss-color-hex-alpha/",
-          "packageDependencies": [
-            ["postcss-color-hex-alpha", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-color-mod-function", [
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-color-mod-function-npm-3.0.3-73563f8646-dd484df73c.zip/node_modules/postcss-color-mod-function/",
-          "packageDependencies": [
-            ["postcss-color-mod-function", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"],
-            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-color-rebeccapurple", [
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-color-rebeccapurple-npm-4.0.1-7fdd9ca1fe-a6fcc16f2a.zip/node_modules/postcss-color-rebeccapurple/",
-          "packageDependencies": [
-            ["postcss-color-rebeccapurple", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-custom-media", [
-        ["npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-custom-media-npm-7.0.8-33659cfc62-f0ac879d17.zip/node_modules/postcss-custom-media/",
-          "packageDependencies": [
-            ["postcss-custom-media", "npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-custom-properties", [
-        ["npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-custom-properties-npm-8.0.11-ed1178e664-2d3c11d4c9.zip/node_modules/postcss-custom-properties/",
-          "packageDependencies": [
-            ["postcss-custom-properties", "npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-custom-selectors", [
-        ["npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-custom-selectors-npm-5.1.2-57bf34f359-7d0d5f7751.zip/node_modules/postcss-custom-selectors/",
-          "packageDependencies": [
-            ["postcss-custom-selectors", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-dir-pseudo-class", [
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-dir-pseudo-class-npm-5.0.0-f92c89f60b-fc4f686058.zip/node_modules/postcss-dir-pseudo-class/",
-          "packageDependencies": [
-            ["postcss-dir-pseudo-class", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-double-position-gradients", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-double-position-gradients-npm-1.0.0-bac5e362a8-1511948165.zip/node_modules/postcss-double-position-gradients/",
-          "packageDependencies": [
-            ["postcss-double-position-gradients", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-env-function", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-env-function-npm-2.0.2-f7cec21d88-1cba45f90a.zip/node_modules/postcss-env-function/",
-          "packageDependencies": [
-            ["postcss-env-function", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-focus-visible", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-focus-visible-npm-4.0.0-d9e36401b8-df9f0b029c.zip/node_modules/postcss-focus-visible/",
-          "packageDependencies": [
-            ["postcss-focus-visible", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-focus-within", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-focus-within-npm-3.0.0-bb0e34a41f-9339299c41.zip/node_modules/postcss-focus-within/",
-          "packageDependencies": [
-            ["postcss-focus-within", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-font-variant", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-font-variant-npm-4.0.0-ad37a8ddd9-fe9f8f0124.zip/node_modules/postcss-font-variant/",
-          "packageDependencies": [
-            ["postcss-font-variant", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-gap-properties", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-gap-properties-npm-2.0.0-d4593559c8-fa8be8b253.zip/node_modules/postcss-gap-properties/",
-          "packageDependencies": [
-            ["postcss-gap-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-image-set-function", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-image-set-function-npm-3.0.1-48897f4817-e5612a6075.zip/node_modules/postcss-image-set-function/",
-          "packageDependencies": [
-            ["postcss-image-set-function", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-initial", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-initial-npm-3.0.2-8c7a5cad01-ec01ff4da6.zip/node_modules/postcss-initial/",
-          "packageDependencies": [
-            ["postcss-initial", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"],
-            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-lab-function", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-lab-function-npm-2.0.1-b1f3e97d22-034195cfd9.zip/node_modules/postcss-lab-function/",
-          "packageDependencies": [
-            ["postcss-lab-function", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"],
-            ["@csstools/convert-colors", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4", {
-          "packageLocation": "./.yarn/$$virtual/postcss-loader-virtual-33231c816b/0/cache/postcss-loader-npm-4.0.4-1d969435a3-f82028a03d.zip/node_modules/postcss-loader/",
-          "packageDependencies": [
-            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
-            ["cosmiconfig", "npm:7.0.0"],
-            ["klona", "npm:2.0.4"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["postcss", "npm:8.1.4"],
-            ["schema-utils", "npm:3.0.0"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "postcss",
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-logical", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-logical-npm-3.0.0-f07bc87169-fdd9f0519b.zip/node_modules/postcss-logical/",
-          "packageDependencies": [
-            ["postcss-logical", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-media-minmax", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-media-minmax-npm-4.0.0-adf8efd62c-9b4953f4a5.zip/node_modules/postcss-media-minmax/",
-          "packageDependencies": [
-            ["postcss-media-minmax", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-modules-extract-imports", [
-        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0", {
-          "packageLocation": "./.yarn/$$virtual/postcss-modules-extract-imports-virtual-7b154907a7/0/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-874b94fd94.zip/node_modules/postcss-modules-extract-imports/",
-          "packageDependencies": [
-            ["postcss-modules-extract-imports", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
-            ["postcss", "npm:8.1.4"]
-          ],
-          "packagePeers": [
-            "postcss"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-modules-local-by-default", [
-        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0", {
-          "packageLocation": "./.yarn/$$virtual/postcss-modules-local-by-default-virtual-bb39aeb2ec/0/cache/postcss-modules-local-by-default-npm-4.0.0-794014f0a5-c0331dbc56.zip/node_modules/postcss-modules-local-by-default/",
-          "packageDependencies": [
-            ["postcss-modules-local-by-default", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
-            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
-            ["postcss", "npm:8.1.4"],
-            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"],
-            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
-          ],
-          "packagePeers": [
-            "postcss"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-modules-scope", [
-        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0", {
-          "packageLocation": "./.yarn/$$virtual/postcss-modules-scope-virtual-b6e77caa84/0/cache/postcss-modules-scope-npm-3.0.0-0678040a26-0b30c7bd28.zip/node_modules/postcss-modules-scope/",
-          "packageDependencies": [
-            ["postcss-modules-scope", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:3.0.0"],
-            ["postcss", "npm:8.1.4"],
-            ["postcss-selector-parser", "npm:6.0.4"]
-          ],
-          "packagePeers": [
-            "postcss"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-modules-values", [
-        ["virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0", {
-          "packageLocation": "./.yarn/$$virtual/postcss-modules-values-virtual-6cecbd6eee/0/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-43fa6db334.zip/node_modules/postcss-modules-values/",
-          "packageDependencies": [
-            ["postcss-modules-values", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:4.0.0"],
-            ["icss-utils", "virtual:91fbdd3c05698db59720131843731cf745144fc76c7f7b1d6ff0991b47c7a1bc078af44970ad26cf346ec5cabe1a0f2a77bbc98c8f0917ffff276d1723a15f66#npm:5.0.0"],
-            ["postcss", "npm:8.1.4"]
-          ],
-          "packagePeers": [
-            "postcss"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-nesting", [
-        ["npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-nesting-npm-7.0.1-761ebc7ac7-ffc3c12f83.zip/node_modules/postcss-nesting/",
-          "packageDependencies": [
-            ["postcss-nesting", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-overflow-shorthand", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-overflow-shorthand-npm-2.0.0-2b2c646dee-4e47823ea0.zip/node_modules/postcss-overflow-shorthand/",
-          "packageDependencies": [
-            ["postcss-overflow-shorthand", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-page-break", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-page-break-npm-2.0.0-014087e6c2-6e8fcbad52.zip/node_modules/postcss-page-break/",
-          "packageDependencies": [
-            ["postcss-page-break", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-place", [
-        ["npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-place-npm-4.0.1-8fd2b9a1cb-db35406cb7.zip/node_modules/postcss-place/",
-          "packageDependencies": [
-            ["postcss-place", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-preset-env", [
-        ["npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-preset-env-npm-6.7.0-6a8abfa5d9-2867000f4d.zip/node_modules/postcss-preset-env/",
-          "packageDependencies": [
-            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
-            ["autoprefixer", "npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"],
-            ["browserslist", "npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"],
-            ["caniuse-lite", "npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"],
-            ["css-blank-pseudo", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"],
-            ["css-has-pseudo", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"],
-            ["css-prefers-color-scheme", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"],
-            ["cssdb", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-attribute-case-insensitive", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"],
-            ["postcss-color-functional-notation", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"],
-            ["postcss-color-gray", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"],
-            ["postcss-color-hex-alpha", "npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"],
-            ["postcss-color-mod-function", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"],
-            ["postcss-color-rebeccapurple", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"],
-            ["postcss-custom-media", "npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"],
-            ["postcss-custom-properties", "npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"],
-            ["postcss-custom-selectors", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"],
-            ["postcss-dir-pseudo-class", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"],
-            ["postcss-double-position-gradients", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"],
-            ["postcss-env-function", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"],
-            ["postcss-focus-visible", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"],
-            ["postcss-focus-within", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"],
-            ["postcss-font-variant", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"],
-            ["postcss-gap-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"],
-            ["postcss-image-set-function", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"],
-            ["postcss-initial", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"],
-            ["postcss-lab-function", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"],
-            ["postcss-logical", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"],
-            ["postcss-media-minmax", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"],
-            ["postcss-nesting", "npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"],
-            ["postcss-overflow-shorthand", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"],
-            ["postcss-page-break", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"],
-            ["postcss-place", "npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"],
-            ["postcss-pseudo-class-any-link", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"],
-            ["postcss-replace-overflow-wrap", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"],
-            ["postcss-selector-matches", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"],
-            ["postcss-selector-not", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-pseudo-class-any-link", [
-        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-pseudo-class-any-link-npm-6.0.0-7b316c9e7f-ee673573fb.zip/node_modules/postcss-pseudo-class-any-link/",
-          "packageDependencies": [
-            ["postcss-pseudo-class-any-link", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"],
-            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-replace-overflow-wrap", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-replace-overflow-wrap-npm-3.0.0-6003cd7d8c-b9b6f604b8.zip/node_modules/postcss-replace-overflow-wrap/",
-          "packageDependencies": [
-            ["postcss-replace-overflow-wrap", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-selector-matches", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-selector-matches-npm-4.0.0-5fc6fdefd2-8445f6453b.zip/node_modules/postcss-selector-matches/",
-          "packageDependencies": [
-            ["postcss-selector-matches", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"],
-            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-selector-not", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-selector-not-npm-4.0.0-efbb3e013e-7b3139dbe4.zip/node_modules/postcss-selector-not/",
-          "packageDependencies": [
-            ["postcss-selector-not", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"],
-            ["balanced-match", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"],
-            ["postcss", "npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-selector-parser", [
-        ["npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-5.0.0-0c8cb41c78-eabe69f66f.zip/node_modules/postcss-selector-parser/",
-          "packageDependencies": [
-            ["postcss-selector-parser", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"],
-            ["cssesc", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"],
-            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
-            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.2-efdf587495-0c8bec00e9.zip/node_modules/postcss-selector-parser/",
-          "packageDependencies": [
-            ["postcss-selector-parser", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"],
-            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
-            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
-            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.0.4", {
-          "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.4-0a01b64fe5-f6b6e30f51.zip/node_modules/postcss-selector-parser/",
-          "packageDependencies": [
-            ["postcss-selector-parser", "npm:6.0.4"],
-            ["cssesc", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"],
-            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
-            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"],
-            ["util-deprecate", "npm:1.0.2"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-value-parser", [
-        ["npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-value-parser-npm-4.1.0-3b2ebe4ea7-7083140388.zip/node_modules/postcss-value-parser/",
-          "packageDependencies": [
-            ["postcss-value-parser", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["postcss-values-parser", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/postcss-values-parser-npm-2.0.1-6e902a8f13-dfc25618be.zip/node_modules/postcss-values-parser/",
-          "packageDependencies": [
-            ["postcss-values-parser", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"],
-            ["flatten", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"],
-            ["indexes-of", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"],
-            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prelude-ls", [
-        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-e27305417d-bc1649f521.zip/node_modules/prelude-ls/",
-          "packageDependencies": [
-            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prettier", [
-        ["npm:2.1.2", {
-          "packageLocation": "./.yarn/cache/prettier-npm-2.1.2-9d456ef3cd-bedc24c568.zip/node_modules/prettier/",
-          "packageDependencies": [
-            ["prettier", "npm:2.1.2"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prettier-linter-helpers", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/prettier-linter-helpers-npm-1.0.0-d81e9133fb-6d698b9c8d.zip/node_modules/prettier-linter-helpers/",
-          "packageDependencies": [
-            ["prettier-linter-helpers", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"],
-            ["fast-diff", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pretty-bytes", [
-        ["npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/pretty-bytes-npm-5.3.0-7a61b0037a-ecc6b1670f.zip/node_modules/pretty-bytes/",
-          "packageDependencies": [
-            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pretty-error", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/pretty-error-npm-2.1.1-8e3aa45bec-dc2a92f598.zip/node_modules/pretty-error/",
-          "packageDependencies": [
-            ["pretty-error", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"],
-            ["renderkid", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"],
-            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["process", [
-        ["npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz", {
-          "packageLocation": "./.yarn/cache/process-npm-0.11.10-7d90e33373-ed93a85e91.zip/node_modules/process/",
-          "packageDependencies": [
-            ["process", "npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["process-nextick-args", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-d189bc3f5b-ddeb0f07d0.zip/node_modules/process-nextick-args/",
-          "packageDependencies": [
-            ["process-nextick-args", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["progress", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/progress-npm-2.0.3-5c2d9d3842-c46ef5a1de.zip/node_modules/progress/",
-          "packageDependencies": [
-            ["progress", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["promise", [
-        ["npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/promise-npm-7.3.1-7377a67bb2-23267a4b07.zip/node_modules/promise/",
-          "packageDependencies": [
-            ["promise", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"],
-            ["asap", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["promise-deferred", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/promise-deferred-npm-2.0.3-e19e8edfd1-3135c0fe22.zip/node_modules/promise-deferred/",
-          "packageDependencies": [
-            ["promise-deferred", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"],
-            ["promise", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["promise-inflight", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/promise-inflight-npm-1.0.1-157e6ab6b2-c06bce0fc6.zip/node_modules/promise-inflight/",
-          "packageDependencies": [
-            ["promise-inflight", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["promiseback", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/promiseback-npm-2.0.3-22491f3f23-3c405394a4.zip/node_modules/promiseback/",
-          "packageDependencies": [
-            ["promiseback", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"],
-            ["is-callable", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"],
-            ["promise-deferred", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prop-types", [
-        ["npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz", {
-          "packageLocation": "./.yarn/cache/prop-types-npm-15.7.2-e0673ab248-a440dd406c.zip/node_modules/prop-types/",
-          "packageDependencies": [
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
-            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prop-types-extra", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/prop-types-extra-virtual-d0b9d58233/0/cache/prop-types-extra-npm-1.1.1-20a8bf7d72-f1f1cc23b9.zip/node_modules/prop-types-extra/",
-          "packageDependencies": [
-            ["prop-types-extra", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"],
-            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["proxy-addr", [
-        ["npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/proxy-addr-npm-2.0.6-b18b3fba9e-a7dcfd7025.zip/node_modules/proxy-addr/",
-          "packageDependencies": [
-            ["proxy-addr", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"],
-            ["forwarded", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"],
-            ["ipaddr.js", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["prr", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/prr-npm-1.0.1-5388e83f25-ac5c0986b4.zip/node_modules/prr/",
-          "packageDependencies": [
-            ["prr", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["psl", [
-        ["npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/psl-npm-1.8.0-35b24832e8-92d47c6257.zip/node_modules/psl/",
-          "packageDependencies": [
-            ["psl", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["pump", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/pump-npm-3.0.0-d2cbad4f95-5464d5cf6c.zip/node_modules/pump/",
-          "packageDependencies": [
-            ["pump", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"],
-            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
-            ["once", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["punycode", [
-        ["npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/punycode-npm-1.3.2-888aa20550-e67fddacd8.zip/node_modules/punycode/",
-          "packageDependencies": [
-            ["punycode", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/punycode-npm-2.1.1-bcaefc3e1a-0202dc191c.zip/node_modules/punycode/",
-          "packageDependencies": [
-            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["qs", [
-        ["npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/qs-npm-6.5.2-1418a3532b-fa0410eff2.zip/node_modules/qs/",
-          "packageDependencies": [
-            ["qs", "npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/qs-npm-6.7.0-e39ef75ae7-8590470436.zip/node_modules/qs/",
-          "packageDependencies": [
-            ["qs", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz", {
-          "packageLocation": "./.yarn/cache/qs-npm-6.9.4-4fb4385158-beba62d1e1.zip/node_modules/qs/",
-          "packageDependencies": [
-            ["qs", "npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["querystring", [
-        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-e6c0a19fa3-1e76c51462.zip/node_modules/querystring/",
-          "packageDependencies": [
-            ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["querystringify", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/querystringify-npm-2.1.1-aa64f99700-35301cc744.zip/node_modules/querystringify/",
-          "packageDependencies": [
-            ["querystringify", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["quick-lru", [
-        ["npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/quick-lru-npm-5.1.1-270e0f54a1-fafb2b2fa1.zip/node_modules/quick-lru/",
-          "packageDependencies": [
-            ["quick-lru", "npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["randombytes", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/randombytes-npm-2.1.0-bca5441b67-ede2693af0.zip/node_modules/randombytes/",
-          "packageDependencies": [
-            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["range-parser", [
-        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/range-parser-npm-1.2.1-12bf302196-05074f5b23.zip/node_modules/range-parser/",
-          "packageDependencies": [
-            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["raw-body", [
-        ["npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/raw-body-npm-2.4.0-de3bb579cd-46dc02f8b4.zip/node_modules/raw-body/",
-          "packageDependencies": [
-            ["raw-body", "npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"],
-            ["bytes", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"],
-            ["http-errors", "npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"],
-            ["iconv-lite", "npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"],
-            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react", [
-        ["npm:17.0.1", {
-          "packageLocation": "./.yarn/cache/react-npm-17.0.1-98658812fc-a76d86ec97.zip/node_modules/react/",
-          "packageDependencies": [
-            ["react", "npm:17.0.1"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-bootstrap", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0", {
-          "packageLocation": "./.yarn/$$virtual/react-bootstrap-virtual-4b828bd79c/0/cache/react-bootstrap-npm-1.4.0-e1f4b40041-9ac160925e.zip/node_modules/react-bootstrap/",
-          "packageDependencies": [
-            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
-            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
-            ["@restart/context", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"],
-            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
-            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
-            ["@types/invariant", "npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"],
-            ["@types/prop-types", "npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"],
-            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
-            ["@types/react-transition-group", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"],
-            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"],
-            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
-            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["prop-types-extra", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["react-overlays", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"],
-            ["react-transition-group", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"],
-            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
-            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "react",
-            "react-dom"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-dom", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1", {
-          "packageLocation": "./.yarn/$$virtual/react-dom-virtual-a0772ec498/0/cache/react-dom-npm-17.0.1-588d0088ca-6a70028fbe.zip/node_modules/react-dom/",
-          "packageDependencies": [
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"],
-            ["react", "npm:17.0.1"],
-            ["scheduler", "npm:0.20.1"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-from-dom", [
-        ["virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0", {
-          "packageLocation": "./.yarn/$$virtual/react-from-dom-virtual-faf04b89e0/0/cache/react-from-dom-npm-0.5.0-e9d768d66e-a993221297.zip/node_modules/react-from-dom/",
-          "packageDependencies": [
-            ["react-from-dom", "virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0"],
-            ["react", "npm:17.0.1"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-hot-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0", {
-          "packageLocation": "./.yarn/$$virtual/react-hot-loader-virtual-9b6c66cb8a/0/cache/react-hot-loader-npm-4.13.0-ec29a44932-f1df03e932.zip/node_modules/react-hot-loader/",
-          "packageDependencies": [
-            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
-            ["@types/react", "npm:16.9.53"],
-            ["fast-levenshtein", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"],
-            ["global", "npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"],
-            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
-            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"],
-            ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"],
-            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
-          ],
-          "packagePeers": [
-            "@types/react",
-            "react",
-            "react-dom"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-i18next", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3", {
-          "packageLocation": "./.yarn/$$virtual/react-i18next-virtual-bd6e918979/0/cache/react-i18next-npm-11.7.3-30ee610170-7f0b0535bf.zip/node_modules/react-i18next/",
-          "packageDependencies": [
-            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["html-parse-stringify2", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"],
-            ["i18next", "npm:19.8.3"],
-            ["react", "npm:17.0.1"]
-          ],
-          "packagePeers": [
-            "i18next",
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-inlinesvg", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1", {
-          "packageLocation": "./.yarn/$$virtual/react-inlinesvg-virtual-c3a5196020/0/cache/react-inlinesvg-npm-2.1.1-75ae0bdf73-39de7b009a.zip/node_modules/react-inlinesvg/",
-          "packageDependencies": [
-            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
-            ["exenv", "npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-from-dom", "virtual:c3a51960209d3be9bf8b7e0ceda5b712398adcd057c3efde2b69d9c6f6d46cf028b9f7ed2fede752320a45e9da76a69cba698d2f9295f1f6c6a9342d6ead4328#npm:0.5.0"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-is", [
-        ["npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz", {
-          "packageLocation": "./.yarn/cache/react-is-npm-16.13.1-97d4b4d55d-11bcf1267a.zip/node_modules/react-is/",
-          "packageDependencies": [
-            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-lifecycles-compat", [
-        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/react-lifecycles-compat-npm-3.0.4-bcaf74926c-82176a55ef.zip/node_modules/react-lifecycles-compat/",
-          "packageDependencies": [
-            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-overlays", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-overlays-virtual-55719a42f3/0/cache/react-overlays-npm-4.1.0-8e31f6545e-64d46694be.zip/node_modules/react-overlays/",
-          "packageDependencies": [
-            ["react-overlays", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"],
-            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
-            ["@popperjs/core", "npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"],
-            ["@restart/hooks", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"],
-            ["@types/warning", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"],
-            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
-            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "react",
-            "react-dom"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-responsive", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-responsive-virtual-889e4c0da2/0/cache/react-responsive-npm-8.1.0-0c4689f9df-059c460fd4.zip/node_modules/react-responsive/",
-          "packageDependencies": [
-            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
-            ["hyphenate-style-name", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"],
-            ["matchmediaquery", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["shallow-equal", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-router", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-router-virtual-0218b2b499/0/cache/react-router-npm-5.2.0-c093299045-4437eaa9ba.zip/node_modules/react-router/",
-          "packageDependencies": [
-            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
-            ["hoist-non-react-statics", "npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["mini-create-react-context", "virtual:0218b2b49970ef26ee32bb7a2947da10cedb3799929c5397fcf0582a9103cd0038d0e0761c926815f4904b73a41e5a8049cfc801e2372a6acb427685c112c7d8#npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"],
-            ["path-to-regexp", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-is", "npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"],
-            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
-            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-router-bootstrap", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-router-bootstrap-virtual-2a8441681c/0/cache/react-router-bootstrap-npm-0.25.0-28ad5f848b-c9a66a8cc9.zip/node_modules/react-router-bootstrap/",
-          "packageDependencies": [
-            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"]
-          ],
-          "packagePeers": [
-            "react",
-            "react-router-dom"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-router-dom", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-router-dom-virtual-86c7a05f52/0/cache/react-router-dom-npm-5.2.0-8e78cd9ea8-9ad2d72630.zip/node_modules/react-router-dom/",
-          "packageDependencies": [
-            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["history", "npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
-            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"],
-            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["react-transition-group", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/react-transition-group-virtual-194db4d2db/0/cache/react-transition-group-npm-4.4.1-7d60c95184-e14446123f.zip/node_modules/react-transition-group/",
-          "packageDependencies": [
-            ["react-transition-group", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["dom-helpers", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["prop-types", "npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"]
-          ],
-          "packagePeers": [
-            "react",
-            "react-dom"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["read-pkg", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/read-pkg-npm-2.0.0-33997d44e1-ddf911317f.zip/node_modules/read-pkg/",
-          "packageDependencies": [
-            ["read-pkg", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"],
-            ["load-json-file", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"],
-            ["normalize-package-data", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"],
-            ["path-type", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["read-pkg-up", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/read-pkg-up-npm-2.0.0-bf8b4f9d8a-f35e4cb457.zip/node_modules/read-pkg-up/",
-          "packageDependencies": [
-            ["read-pkg-up", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"],
-            ["find-up", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"],
-            ["read-pkg", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["readable-stream", [
-        ["npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", {
-          "packageLocation": "./.yarn/cache/readable-stream-npm-2.3.7-f79a45df7e-6e38265606.zip/node_modules/readable-stream/",
-          "packageDependencies": [
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"],
-            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["isarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"],
-            ["process-nextick-args", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"],
-            ["string_decoder", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"],
-            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.0-77923e4148-f178b1daa8.zip/node_modules/readable-stream/",
-          "packageDependencies": [
-            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["string_decoder", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"],
-            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["readdirp", [
-        ["npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/readdirp-npm-2.2.1-0774507b36-00b5209ee5.zip/node_modules/readdirp/",
-          "packageDependencies": [
-            ["readdirp", "npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"],
-            ["micromatch", "npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"],
-            ["readable-stream", "npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/readdirp-npm-3.4.0-3aa89dcedb-0159f43eb0.zip/node_modules/readdirp/",
-          "packageDependencies": [
-            ["readdirp", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"],
-            ["picomatch", "npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rechoir", [
-        ["npm:0.7.0", {
-          "packageLocation": "./.yarn/cache/rechoir-npm-0.7.0-9bea79bab8-1d4cc8db1d.zip/node_modules/rechoir/",
-          "packageDependencies": [
-            ["rechoir", "npm:0.7.0"],
-            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["reduce-flatten", [
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/reduce-flatten-npm-2.0.0-01bd4936fa-216ce860c7.zip/node_modules/reduce-flatten/",
-          "packageDependencies": [
-            ["reduce-flatten", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regenerate", [
-        ["npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz", {
-          "packageLocation": "./.yarn/cache/regenerate-npm-1.4.1-1ecee62eb3-67fe7ea332.zip/node_modules/regenerate/",
-          "packageDependencies": [
-            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regenerate-unicode-properties", [
-        ["npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-8.2.0-b6818d06cf-afe83304fb.zip/node_modules/regenerate-unicode-properties/",
-          "packageDependencies": [
-            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
-            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regenerator-runtime", [
-        ["npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", {
-          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.11.1-3ec573d726-d98d44b9f5.zip/node_modules/regenerator-runtime/",
-          "packageDependencies": [
-            ["regenerator-runtime", "npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", {
-          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.5-248d9d221b-8d8ee0eca2.zip/node_modules/regenerator-runtime/",
-          "packageDependencies": [
-            ["regenerator-runtime", "npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz", {
-          "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.7-2b1c616ba8-6ef567c662.zip/node_modules/regenerator-runtime/",
-          "packageDependencies": [
-            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regenerator-transform", [
-        ["npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", {
-          "packageLocation": "./.yarn/cache/regenerator-transform-npm-0.14.5-bc292a67bb-ed07c2c1d0.zip/node_modules/regenerator-transform/",
-          "packageDependencies": [
-            ["regenerator-transform", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regex-not", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/regex-not-npm-1.0.2-343d566231-3d6d95b4fd.zip/node_modules/regex-not/",
-          "packageDependencies": [
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
-            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regexp.prototype.flags", [
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.3.0-cde70d964a-468e19b3ae.zip/node_modules/regexp.prototype.flags/",
-          "packageDependencies": [
-            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regexpp", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/regexpp-npm-3.1.0-3977647602-69d0ce6b44.zip/node_modules/regexpp/",
-          "packageDependencies": [
-            ["regexpp", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regexpu-core", [
-        ["npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.0-1580792b88-8947f4c4ac.zip/node_modules/regexpu-core/",
-          "packageDependencies": [
-            ["regexpu-core", "npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"],
-            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"],
-            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
-            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"],
-            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
-            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
-            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.7.1", {
-          "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.1-67fbfa97ed-a4d25a11cb.zip/node_modules/regexpu-core/",
-          "packageDependencies": [
-            ["regexpu-core", "npm:4.7.1"],
-            ["regenerate", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"],
-            ["regenerate-unicode-properties", "npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"],
-            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"],
-            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
-            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
-            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regjsgen", [
-        ["npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz", {
-          "packageLocation": "./.yarn/cache/regjsgen-npm-0.5.2-8dc0085cc4-629afab3d9.zip/node_modules/regjsgen/",
-          "packageDependencies": [
-            ["regjsgen", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["regjsparser", [
-        ["npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz", {
-          "packageLocation": "./.yarn/cache/regjsparser-npm-0.6.4-c7173ff3cc-cf7838462e.zip/node_modules/regjsparser/",
-          "packageDependencies": [
-            ["regjsparser", "npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"],
-            ["jsesc", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["relateurl", [
-        ["npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz", {
-          "packageLocation": "./.yarn/cache/relateurl-npm-0.2.7-8e6d0cf054-856db0385d.zip/node_modules/relateurl/",
-          "packageDependencies": [
-            ["relateurl", "npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["remove-trailing-separator", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/remove-trailing-separator-npm-1.1.0-03ba99b196-17dadf3d1f.zip/node_modules/remove-trailing-separator/",
-          "packageDependencies": [
-            ["remove-trailing-separator", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["renderkid", [
-        ["npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/renderkid-npm-2.0.3-3dfbb394e6-6520020e22.zip/node_modules/renderkid/",
-          "packageDependencies": [
-            ["renderkid", "npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"],
-            ["css-select", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"],
-            ["dom-converter", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"],
-            ["htmlparser2", "npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"],
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
-            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["repeat-element", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/repeat-element-npm-1.1.3-2294823d44-6a59b879ef.zip/node_modules/repeat-element/",
-          "packageDependencies": [
-            ["repeat-element", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["repeat-string", [
-        ["npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz", {
-          "packageLocation": "./.yarn/cache/repeat-string-npm-1.6.1-29d44b5d77-99c431ba7b.zip/node_modules/repeat-string/",
-          "packageDependencies": [
-            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["request", [
-        ["npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", {
-          "packageLocation": "./.yarn/cache/request-npm-2.88.2-cf64f16287-7a74841f30.zip/node_modules/request/",
-          "packageDependencies": [
-            ["request", "npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"],
-            ["aws-sign2", "npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"],
-            ["aws4", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"],
-            ["caseless", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"],
-            ["combined-stream", "npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"],
-            ["extend", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"],
-            ["forever-agent", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"],
-            ["form-data", "npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"],
-            ["har-validator", "npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"],
-            ["http-signature", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"],
-            ["is-typedarray", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"],
-            ["isstream", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"],
-            ["json-stringify-safe", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"],
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
-            ["oauth-sign", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"],
-            ["performance-now", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"],
-            ["qs", "npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"],
-            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"],
-            ["tough-cookie", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"],
-            ["tunnel-agent", "npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"],
-            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["require-directory", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-967578aa8b-f495d02d89.zip/node_modules/require-directory/",
-          "packageDependencies": [
-            ["require-directory", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["require-main-filename", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/require-main-filename-npm-2.0.0-bbc6aebacb-8d3633149a.zip/node_modules/require-main-filename/",
-          "packageDependencies": [
-            ["require-main-filename", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["requires-port", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/requires-port-npm-1.0.0-bfc9e1c0bb-0db25fb2ac.zip/node_modules/requires-port/",
-          "packageDependencies": [
-            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve", [
-        ["patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa", {
-          "packageLocation": "./.yarn/cache/resolve-patch-c252489bf9-4bcfb56886.zip/node_modules/resolve/",
-          "packageDependencies": [
-            ["resolve", "patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"],
-            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa", {
-          "packageLocation": "./.yarn/cache/resolve-patch-af4189aea7-9e62d2803a.zip/node_modules/resolve/",
-          "packageDependencies": [
-            ["resolve", "patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"],
-            ["is-core-module", "npm:2.0.0"],
-            ["path-parse", "npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve-alpn", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.0.0-0c262e3904-17baee01c0.zip/node_modules/resolve-alpn/",
-          "packageDependencies": [
-            ["resolve-alpn", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve-cwd", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-cwd-npm-2.0.0-0868e284c1-f5d5526526.zip/node_modules/resolve-cwd/",
-          "packageDependencies": [
-            ["resolve-cwd", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"],
-            ["resolve-from", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0", {
-          "packageLocation": "./.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-97edfbbf83.zip/node_modules/resolve-cwd/",
-          "packageDependencies": [
-            ["resolve-cwd", "npm:3.0.0"],
-            ["resolve-from", "npm:5.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve-from", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-from-npm-3.0.0-70e59f6eb1-dc0c83b3b8.zip/node_modules/resolve-from/",
-          "packageDependencies": [
-            ["resolve-from", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-from-npm-4.0.0-d867319aa7-87a4357c0c.zip/node_modules/resolve-from/",
-          "packageDependencies": [
-            ["resolve-from", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.0.0", {
-          "packageLocation": "./.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-0d29fc7012.zip/node_modules/resolve-from/",
-          "packageDependencies": [
-            ["resolve-from", "npm:5.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve-pathname", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-pathname-npm-3.0.0-a86f4ccfe8-88ed8b3dd2.zip/node_modules/resolve-pathname/",
-          "packageDependencies": [
-            ["resolve-pathname", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["resolve-url", [
-        ["npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/resolve-url-npm-0.2.1-92942fe0d1-9e1cd0028d.zip/node_modules/resolve-url/",
-          "packageDependencies": [
-            ["resolve-url", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["responselike", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/responselike-npm-2.0.0-0c409d386c-11d8225dd8.zip/node_modules/responselike/",
-          "packageDependencies": [
-            ["responselike", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"],
-            ["lowercase-keys", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ret", [
-        ["npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", {
-          "packageLocation": "./.yarn/cache/ret-npm-0.1.15-c9ad274c5c-749c2fcae7.zip/node_modules/ret/",
-          "packageDependencies": [
-            ["ret", "npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["retry", [
-        ["npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", {
-          "packageLocation": "./.yarn/cache/retry-npm-0.12.0-c886249d25-51f2fddddb.zip/node_modules/retry/",
-          "packageDependencies": [
-            ["retry", "npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["reusify", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-9edf20c681-08ef02ed05.zip/node_modules/reusify/",
-          "packageDependencies": [
-            ["reusify", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rimraf", [
-        ["npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", {
-          "packageLocation": "./.yarn/cache/rimraf-npm-2.6.3-972c571ec0-c9ce1854f1.zip/node_modules/rimraf/",
-          "packageDependencies": [
-            ["rimraf", "npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", {
-          "packageLocation": "./.yarn/cache/rimraf-npm-2.7.1-37c27764f2-059efac283.zip/node_modules/rimraf/",
-          "packageDependencies": [
-            ["rimraf", "npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-1ec7456598-f0de3e4455.zip/node_modules/rimraf/",
-          "packageDependencies": [
-            ["rimraf", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rollup", [
-        ["npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz", {
-          "packageLocation": "./.yarn/cache/rollup-npm-1.32.1-770bdc9924-fc59b8af48.zip/node_modules/rollup/",
-          "packageDependencies": [
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
-            ["@types/estree", "npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"],
-            ["@types/node", "npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"],
-            ["acorn", "npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rollup-plugin-babel", [
-        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/rollup-plugin-babel-virtual-97049223de/0/cache/rollup-plugin-babel-npm-4.4.0-6f9aff804c-9f82719d15.zip/node_modules/rollup-plugin-babel/",
-          "packageDependencies": [
-            ["rollup-plugin-babel", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/helper-module-imports", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
-            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"]
-          ],
-          "packagePeers": [
-            "@babel/core",
-            "rollup"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rollup-plugin-terser", [
-        ["virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1", {
-          "packageLocation": "./.yarn/$$virtual/rollup-plugin-terser-virtual-c68cfbd274/0/cache/rollup-plugin-terser-npm-5.3.1-825cbdcec7-18ebbdc41a.zip/node_modules/rollup-plugin-terser/",
-          "packageDependencies": [
-            ["rollup-plugin-terser", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1"],
-            ["@babel/code-frame", "npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"],
-            ["jest-worker", "npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
-            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"],
-            ["serialize-javascript", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"],
-            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"]
-          ],
-          "packagePeers": [
-            "rollup"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rollup-pluginutils", [
-        ["npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz", {
-          "packageLocation": "./.yarn/cache/rollup-pluginutils-npm-2.8.2-5d03aa1f3a-6922c1a26d.zip/node_modules/rollup-pluginutils/",
-          "packageDependencies": [
-            ["rollup-pluginutils", "npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"],
-            ["estree-walker", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["run-parallel", [
-        ["npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz", {
-          "packageLocation": "./.yarn/cache/run-parallel-npm-1.1.9-46d37c1c05-a05ca86e99.zip/node_modules/run-parallel/",
-          "packageDependencies": [
-            ["run-parallel", "npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["rxjs", [
-        ["npm:6.6.3", {
-          "packageLocation": "./.yarn/cache/rxjs-npm-6.6.3-a1e67d677b-61a3da6db9.zip/node_modules/rxjs/",
-          "packageDependencies": [
-            ["rxjs", "npm:6.6.3"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["safe-buffer", [
-        ["npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-cc2f76509a-2708587c1b.zip/node_modules/safe-buffer/",
-          "packageDependencies": [
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-b1d32d9f7a-0bb57f0d8f.zip/node_modules/safe-buffer/",
-          "packageDependencies": [
-            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["safe-regex", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/safe-regex-npm-1.1.0-8792dadac4-c355e3163f.zip/node_modules/safe-regex/",
-          "packageDependencies": [
-            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"],
-            ["ret", "npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["safer-buffer", [
-        ["npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-c3c575408e-549ba83f5b.zip/node_modules/safer-buffer/",
-          "packageDependencies": [
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sass", [
-        ["npm:1.27.0", {
-          "packageLocation": "./.yarn/cache/sass-npm-1.27.0-52525b4c60-db4342b13b.zip/node_modules/sass/",
-          "packageDependencies": [
-            ["sass", "npm:1.27.0"],
-            ["chokidar", "npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sass-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4", {
-          "packageLocation": "./.yarn/$$virtual/sass-loader-virtual-f0d3828a81/0/cache/sass-loader-npm-10.0.4-e2bd742c87-ec8e0b8a38.zip/node_modules/sass-loader/",
-          "packageDependencies": [
-            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
-            ["fibers", null],
-            ["klona", "npm:2.0.4"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"],
-            ["node-sass", null],
-            ["sass", "npm:1.27.0"],
-            ["schema-utils", "npm:3.0.0"],
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "fibers",
-            "node-sass",
-            "sass",
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["scheduler", [
-        ["npm:0.20.1", {
-          "packageLocation": "./.yarn/cache/scheduler-npm-0.20.1-db303b7f5c-377b4ad0d8.zip/node_modules/scheduler/",
-          "packageDependencies": [
-            ["scheduler", "npm:0.20.1"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"],
-            ["object-assign", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["schema-utils", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/schema-utils-npm-1.0.0-5a053ed7a5-d2f753e7a1.zip/node_modules/schema-utils/",
-          "packageDependencies": [
-            ["schema-utils", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["ajv-errors", "virtual:5a053ed7a5aaf24feb20a5f221f0cf99cd71c398eae5cd964b19ff1321e1f4b929d5643e1ddc2a0e5bf7584bf5da2ecbf8ea504506a83c90ac358cd78a8d6ec8#npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"],
-            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz", {
-          "packageLocation": "./.yarn/cache/schema-utils-npm-2.7.0-4bd159eb2f-5d3e7c9e53.zip/node_modules/schema-utils/",
-          "packageDependencies": [
-            ["schema-utils", "npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"],
-            ["@types/json-schema", "npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["ajv-keywords", "virtual:4bd159eb2fa57b708080b8da339463ac6da692420f6c1ba3dc93d2b8a9f21028d40894d9078674d3a7cf4e07a29b8924f745c98216701bf12c01bb0faa01f36b#npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0", {
-          "packageLocation": "./.yarn/cache/schema-utils-npm-3.0.0-e97702da81-a084f593f2.zip/node_modules/schema-utils/",
-          "packageDependencies": [
-            ["schema-utils", "npm:3.0.0"],
-            ["@types/json-schema", "npm:7.0.6"],
-            ["ajv", "npm:6.12.6"],
-            ["ajv-keywords", "virtual:e97702da819489f096a2f633012a8075909b2037311bea971ba30e003e897ee9522eb9bdac9a523ed06e2c6d6c2e297712663d12cde8819d988854e2ff4aebd9#npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["secure-compare", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/secure-compare-npm-3.0.1-c9353d9b27-6444a93f74.zip/node_modules/secure-compare/",
-          "packageDependencies": [
-            ["secure-compare", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["select-hose", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/select-hose-npm-2.0.0-ee6e100944-4da089c022.zip/node_modules/select-hose/",
-          "packageDependencies": [
-            ["select-hose", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["selfsigned", [
-        ["npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz", {
-          "packageLocation": "./.yarn/cache/selfsigned-npm-1.10.7-4928d51363-ef53d4801c.zip/node_modules/selfsigned/",
-          "packageDependencies": [
-            ["selfsigned", "npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"],
-            ["node-forge", "npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["semver", [
-        ["npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", {
-          "packageLocation": "./.yarn/cache/semver-npm-5.7.1-da2070833f-06ff0ed753.zip/node_modules/semver/",
-          "packageDependencies": [
-            ["semver", "npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/semver-npm-6.3.0-9fd285082e-f0d155c06a.zip/node_modules/semver/",
-          "packageDependencies": [
-            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/semver-npm-7.0.0-746fcb0f5c-5162b31e99.zip/node_modules/semver/",
-          "packageDependencies": [
-            ["semver", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/semver-npm-7.3.2-72893b2b46-bceb46d396.zip/node_modules/semver/",
-          "packageDependencies": [
-            ["semver", "npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["send", [
-        ["npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz", {
-          "packageLocation": "./.yarn/cache/send-npm-0.17.1-a7478e86fb-58e4ab2e07.zip/node_modules/send/",
-          "packageDependencies": [
-            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["depd", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"],
-            ["destroy", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"],
-            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
-            ["etag", "npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"],
-            ["fresh", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"],
-            ["http-errors", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"],
-            ["mime", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"],
-            ["ms", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"],
-            ["on-finished", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"],
-            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["serialize-javascript", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/serialize-javascript-npm-4.0.0-f3f043f975-f17305aaab.zip/node_modules/serialize-javascript/",
-          "packageDependencies": [
-            ["serialize-javascript", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"],
-            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.0.1", {
-          "packageLocation": "./.yarn/cache/serialize-javascript-npm-5.0.1-8ffc173f09-97eef70a33.zip/node_modules/serialize-javascript/",
-          "packageDependencies": [
-            ["serialize-javascript", "npm:5.0.1"],
-            ["randombytes", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["serve-index", [
-        ["npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz", {
-          "packageLocation": "./.yarn/cache/serve-index-npm-1.9.1-b6000b5ebc-035c0b7d5f.zip/node_modules/serve-index/",
-          "packageDependencies": [
-            ["serve-index", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"],
-            ["accepts", "npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"],
-            ["batch", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
-            ["http-errors", "npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"],
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"],
-            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["serve-static", [
-        ["npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz", {
-          "packageLocation": "./.yarn/cache/serve-static-npm-1.14.1-75acf87f3e-97e8c94ec0.zip/node_modules/serve-static/",
-          "packageDependencies": [
-            ["serve-static", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"],
-            ["encodeurl", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"],
-            ["escape-html", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"],
-            ["parseurl", "npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"],
-            ["send", "npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["set-blocking", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-308198d0a7-0ac2403b0c.zip/node_modules/set-blocking/",
-          "packageDependencies": [
-            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["set-value", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/set-value-npm-2.0.1-c520aa107e-a97a99a00c.zip/node_modules/set-value/",
-          "packageDependencies": [
-            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"],
-            ["is-plain-object", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"],
-            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["setprototypeof", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.0-432a7a7143-8a3fb2ff4b.zip/node_modules/setprototypeof/",
-          "packageDependencies": [
-            ["setprototypeof", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.1-e82c3bc38e-0efed4da5a.zip/node_modules/setprototypeof/",
-          "packageDependencies": [
-            ["setprototypeof", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["shallow-equal", [
-        ["npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/shallow-equal-npm-1.2.1-6792473789-5002ac4a36.zip/node_modules/shallow-equal/",
-          "packageDependencies": [
-            ["shallow-equal", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["shallowequal", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/shallowequal-npm-1.1.0-2c381f3031-15820dd544.zip/node_modules/shallowequal/",
-          "packageDependencies": [
-            ["shallowequal", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["shebang-command", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/shebang-command-npm-1.2.0-d9ffeb9731-2a1e0092a6.zip/node_modules/shebang-command/",
-          "packageDependencies": [
-            ["shebang-command", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"],
-            ["shebang-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-c5290507f0-85aa394d8c.zip/node_modules/shebang-command/",
-          "packageDependencies": [
-            ["shebang-command", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"],
-            ["shebang-regex", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["shebang-regex", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/shebang-regex-npm-1.0.0-dcb222eeca-cf1a41cb09.zip/node_modules/shebang-regex/",
-          "packageDependencies": [
-            ["shebang-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/shebang-regex-npm-3.0.0-1c402e8caa-ea18044ffa.zip/node_modules/shebang-regex/",
-          "packageDependencies": [
-            ["shebang-regex", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["side-channel", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/side-channel-npm-1.0.2-922f4c912e-cbac23d542.zip/node_modules/side-channel/",
-          "packageDependencies": [
-            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["object-inspect", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["signal-exit", [
-        ["npm:3.0.3", {
-          "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f8f3fec95c.zip/node_modules/signal-exit/",
-          "packageDependencies": [
-            ["signal-exit", "npm:3.0.3"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-0c9bcfc5db-f8f3fec95c.zip/node_modules/signal-exit/",
-          "packageDependencies": [
-            ["signal-exit", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["slash", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/slash-npm-3.0.0-cb773595d9-fc3e8597d8.zip/node_modules/slash/",
-          "packageDependencies": [
-            ["slash", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["slice-ansi", [
-        ["npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/slice-ansi-npm-2.1.0-74944f2412-7578393cac.zip/node_modules/slice-ansi/",
-          "packageDependencies": [
-            ["slice-ansi", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"],
-            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
-            ["astral-regex", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"],
-            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["snapdragon", [
-        ["npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz", {
-          "packageLocation": "./.yarn/cache/snapdragon-npm-0.8.2-540483f371-c30b63a732.zip/node_modules/snapdragon/",
-          "packageDependencies": [
-            ["snapdragon", "npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"],
-            ["base", "npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"],
-            ["debug", "virtual:8c8a8763bc4d11063ade310ae62bd0668563a9ee3e13ffce549c878905c5cfe13a5d3cbcb6ca33a1c75125112870784d9f483ab0575378e363fa1033ba794f97#npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"],
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["extend-shallow", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"],
-            ["map-cache", "npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"],
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"],
-            ["source-map-resolve", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"],
-            ["use", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["snapdragon-node", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/snapdragon-node-npm-2.1.1-029cc18e24-75918b0d60.zip/node_modules/snapdragon-node/",
-          "packageDependencies": [
-            ["snapdragon-node", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"],
-            ["define-property", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"],
-            ["snapdragon-util", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["snapdragon-util", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/snapdragon-util-npm-3.0.1-f44f09ca46-d1a7ab4171.zip/node_modules/snapdragon-util/",
-          "packageDependencies": [
-            ["snapdragon-util", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sockjs", [
-        ["npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz", {
-          "packageLocation": "./.yarn/cache/sockjs-npm-0.3.20-5145b12ae5-9a8596f800.zip/node_modules/sockjs/",
-          "packageDependencies": [
-            ["sockjs", "npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"],
-            ["faye-websocket", "npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"],
-            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"],
-            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sockjs-client", [
-        ["npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/sockjs-client-npm-1.4.0-ab2730346e-efe7e7bcf2.zip/node_modules/sockjs-client/",
-          "packageDependencies": [
-            ["sockjs-client", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"],
-            ["debug", "virtual:519aa211df00f88350d536fc65ff9dca866994ed77908f2e1bfa12b6d09486d81c83dd55a15e530362e2f397c83916d546e7d0f4dc01c5479d881c426c846f92#npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"],
-            ["eventsource", "npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"],
-            ["faye-websocket", "npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["json3", "npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"],
-            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["source-list-map", [
-        ["npm:2.0.1", {
-          "packageLocation": "./.yarn/cache/source-list-map-npm-2.0.1-625c551052-d8d45f2998.zip/node_modules/source-list-map/",
-          "packageDependencies": [
-            ["source-list-map", "npm:2.0.1"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/source-list-map-npm-2.0.1-f34aa02afc-d8d45f2998.zip/node_modules/source-list-map/",
-          "packageDependencies": [
-            ["source-list-map", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["source-map", [
-        ["npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-npm-0.5.7-9cd4d17475-737face965.zip/node_modules/source-map/",
-          "packageDependencies": [
-            ["source-map", "npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-npm-0.6.1-b037bddf2e-8647829a06.zip/node_modules/source-map/",
-          "packageDependencies": [
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.7.3", {
-          "packageLocation": "./.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-351ce26ffa.zip/node_modules/source-map/",
-          "packageDependencies": [
-            ["source-map", "npm:0.7.3"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-npm-0.7.3-862f0e3133-351ce26ffa.zip/node_modules/source-map/",
-          "packageDependencies": [
-            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["source-map-resolve", [
-        ["npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-resolve-npm-0.5.3-93f99dc7ea-042ad0c0ba.zip/node_modules/source-map-resolve/",
-          "packageDependencies": [
-            ["source-map-resolve", "npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"],
-            ["atob", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"],
-            ["decode-uri-component", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"],
-            ["resolve-url", "npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"],
-            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
-            ["urix", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["source-map-support", [
-        ["npm:0.5.19", {
-          "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-59d4efaae9.zip/node_modules/source-map-support/",
-          "packageDependencies": [
-            ["source-map-support", "npm:0.5.19"],
-            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.19-6160604513-59d4efaae9.zip/node_modules/source-map-support/",
-          "packageDependencies": [
-            ["source-map-support", "npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"],
-            ["buffer-from", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["source-map-url", [
-        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/source-map-url-npm-0.4.0-252eff568f-84d509cfa1.zip/node_modules/source-map-url/",
-          "packageDependencies": [
-            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sourcemap-codec", [
-        ["npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz", {
-          "packageLocation": "./.yarn/cache/sourcemap-codec-npm-1.4.8-d69e420ed4-4d56d1232a.zip/node_modules/sourcemap-codec/",
-          "packageDependencies": [
-            ["sourcemap-codec", "npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdx-correct", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/spdx-correct-npm-3.1.1-f3740410f8-f3413eb225.zip/node_modules/spdx-correct/",
-          "packageDependencies": [
-            ["spdx-correct", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"],
-            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"],
-            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdx-exceptions", [
-        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/spdx-exceptions-npm-2.3.0-b9d007563f-3cbd249889.zip/node_modules/spdx-exceptions/",
-          "packageDependencies": [
-            ["spdx-exceptions", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdx-expression-parse", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/spdx-expression-parse-npm-3.0.1-e386dadbb9-f0211cada3.zip/node_modules/spdx-expression-parse/",
-          "packageDependencies": [
-            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"],
-            ["spdx-exceptions", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"],
-            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdx-license-ids", [
-        ["npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/spdx-license-ids-npm-3.0.5-d72e7a737e-4ff7c0615a.zip/node_modules/spdx-license-ids/",
-          "packageDependencies": [
-            ["spdx-license-ids", "npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdy", [
-        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/spdy-npm-4.0.2-c75dcd93ce-388d39324d.zip/node_modules/spdy/",
-          "packageDependencies": [
-            ["spdy", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["handle-thing", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"],
-            ["http-deceiver", "npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"],
-            ["select-hose", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"],
-            ["spdy-transport", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["spdy-transport", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/spdy-transport-npm-3.0.0-8b3b071693-e717ce9d76.zip/node_modules/spdy-transport/",
-          "packageDependencies": [
-            ["spdy-transport", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"],
-            ["debug", "virtual:69ebf4b2f2a6ae92ba722666165dbb0b38081562997e675c019863f51052c6c7613726981d33d68737b81749f01c997e75770a7d53fb52cebaef995c113f82ed#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["detect-node", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"],
-            ["hpack.js", "npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"],
-            ["obuf", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"],
-            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"],
-            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["split-string", [
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/split-string-npm-3.1.0-56e463aa47-9b610d1509.zip/node_modules/split-string/",
-          "packageDependencies": [
-            ["split-string", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"],
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sprintf-js", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-fe48d344ae-51df1bce9e.zip/node_modules/sprintf-js/",
-          "packageDependencies": [
-            ["sprintf-js", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["sshpk", [
-        ["npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz", {
-          "packageLocation": "./.yarn/cache/sshpk-npm-1.16.1-0aafdb32a8-4bd7422634.zip/node_modules/sshpk/",
-          "packageDependencies": [
-            ["sshpk", "npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"],
-            ["asn1", "npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
-            ["bcrypt-pbkdf", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"],
-            ["dashdash", "npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"],
-            ["ecc-jsbn", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"],
-            ["getpass", "npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"],
-            ["jsbn", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"],
-            ["safer-buffer", "npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"],
-            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ssri", [
-        ["npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/ssri-npm-8.0.0-f340282146-97964745a8.zip/node_modules/ssri/",
-          "packageDependencies": [
-            ["ssri", "npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["static-extend", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/static-extend-npm-0.1.2-a36503dc55-c42052c352.zip/node_modules/static-extend/",
-          "packageDependencies": [
-            ["static-extend", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"],
-            ["define-property", "npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"],
-            ["object-copy", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["statuses", [
-        ["npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/statuses-npm-1.5.0-d5df314c0d-57735269bf.zip/node_modules/statuses/",
-          "packageDependencies": [
-            ["statuses", "npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["stream-buffers", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/stream-buffers-npm-3.0.2-6589b98b10-340a04fc13.zip/node_modules/stream-buffers/",
-          "packageDependencies": [
-            ["stream-buffers", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["stream-to-array", [
-        ["npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/stream-to-array-npm-2.3.0-530b745da2-b313d7dfa5.zip/node_modules/stream-to-array/",
-          "packageDependencies": [
-            ["stream-to-array", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"],
-            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["stream-to-promise", [
-        ["npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/stream-to-promise-npm-2.2.0-fb013312ed-1f26f85d57.zip/node_modules/stream-to-promise/",
-          "packageDependencies": [
-            ["stream-to-promise", "npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"],
-            ["any-promise", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"],
-            ["end-of-stream", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"],
-            ["stream-to-array", "npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["string-width", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/string-width-npm-1.0.2-93338da8af-b11745daa9.zip/node_modules/string-width/",
-          "packageDependencies": [
-            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"],
-            ["code-point-at", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"],
-            ["is-fullwidth-code-point", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"],
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/string-width-npm-3.1.0-876c30817a-54c5d1842d.zip/node_modules/string-width/",
-          "packageDependencies": [
-            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
-            ["emoji-regex", "npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"],
-            ["is-fullwidth-code-point", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"],
-            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["string.prototype.matchall", [
-        ["npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/string.prototype.matchall-npm-4.0.2-ad417a2d63-0ca2937d28.zip/node_modules/string.prototype.matchall/",
-          "packageDependencies": [
-            ["string.prototype.matchall", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"],
-            ["has-symbols", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"],
-            ["internal-slot", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"],
-            ["regexp.prototype.flags", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"],
-            ["side-channel", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["string.prototype.trimend", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.1-54a231bc5c-93046463de.zip/node_modules/string.prototype.trimend/",
-          "packageDependencies": [
-            ["string.prototype.trimend", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["string.prototype.trimstart", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.1-a8222b2c84-20c4a940f1.zip/node_modules/string.prototype.trimstart/",
-          "packageDependencies": [
-            ["string.prototype.trimstart", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["es-abstract", "npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["string_decoder", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/string_decoder-npm-1.1.1-aaf3877585-bc2dc169d8.zip/node_modules/string_decoder/",
-          "packageDependencies": [
-            ["string_decoder", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"],
-            ["safe-buffer", "npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/string_decoder-npm-1.3.0-5171e417be-0a09afb610.zip/node_modules/string_decoder/",
-          "packageDependencies": [
-            ["string_decoder", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"],
-            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["stringify-object", [
-        ["npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/stringify-object-npm-3.3.0-34d116d15e-4b0a6802f0.zip/node_modules/stringify-object/",
-          "packageDependencies": [
-            ["stringify-object", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"],
-            ["get-own-enumerable-property-symbols", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"],
-            ["is-obj", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"],
-            ["is-regexp", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-ansi", [
-        ["npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/strip-ansi-npm-3.0.1-261e00f26b-98772dcf44.zip/node_modules/strip-ansi/",
-          "packageDependencies": [
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
-            ["ansi-regex", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/strip-ansi-npm-5.2.0-3a9da5dcd0-44a0d0d354.zip/node_modules/strip-ansi/",
-          "packageDependencies": [
-            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"],
-            ["ansi-regex", "npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.0-ff0d94fc22-10568c91ca.zip/node_modules/strip-ansi/",
-          "packageDependencies": [
-            ["strip-ansi", "npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"],
-            ["ansi-regex", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-bom", [
-        ["npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/strip-bom-npm-3.0.0-ed0d0bfd30-361dd1dd08.zip/node_modules/strip-bom/",
-          "packageDependencies": [
-            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-comments", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/strip-comments-npm-1.0.2-f0a6d3bb12-21d667d3ba.zip/node_modules/strip-comments/",
-          "packageDependencies": [
-            ["strip-comments", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"],
-            ["babel-extract-comments", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"],
-            ["babel-plugin-transform-object-rest-spread", "npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-eof", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/strip-eof-npm-1.0.0-c1e0ee733b-905cd8718a.zip/node_modules/strip-eof/",
-          "packageDependencies": [
-            ["strip-eof", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-final-newline", [
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-74dbd8a602.zip/node_modules/strip-final-newline/",
-          "packageDependencies": [
-            ["strip-final-newline", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["strip-json-comments", [
-        ["npm:3.1.1", {
-          "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-f16719ce25.zip/node_modules/strip-json-comments/",
-          "packageDependencies": [
-            ["strip-json-comments", "npm:3.1.1"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-a2dc3f3262-f16719ce25.zip/node_modules/strip-json-comments/",
-          "packageDependencies": [
-            ["strip-json-comments", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["style-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0", {
-          "packageLocation": "./.yarn/$$virtual/style-loader-virtual-e1949e6a64/0/cache/style-loader-npm-2.0.0-b9a5c4a2aa-ffc3054882.zip/node_modules/style-loader/",
-          "packageDependencies": [
-            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["supports-color", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/supports-color-npm-2.0.0-75916659f1-5d6fb449e2.zip/node_modules/supports-color/",
-          "packageDependencies": [
-            ["supports-color", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-858a1bb480-edacee6425.zip/node_modules/supports-color/",
-          "packageDependencies": [
-            ["supports-color", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"],
-            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/supports-color-npm-6.1.0-07810ac034-8682157129.zip/node_modules/supports-color/",
-          "packageDependencies": [
-            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"],
-            ["has-flag", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/supports-color-npm-7.1.0-29ac10beda-6130f36b2a.zip/node_modules/supports-color/",
-          "packageDependencies": [
-            ["supports-color", "npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"],
-            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:7.2.0", {
-          "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-8e57067c39.zip/node_modules/supports-color/",
-          "packageDependencies": [
-            ["supports-color", "npm:7.2.0"],
-            ["has-flag", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["table", [
-        ["npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz", {
-          "packageLocation": "./.yarn/cache/table-npm-5.4.6-40372b1ef4-38877a196c.zip/node_modules/table/",
-          "packageDependencies": [
-            ["table", "npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"],
-            ["ajv", "npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"],
-            ["slice-ansi", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"],
-            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["table-layout", [
-        ["npm:1.0.1", {
-          "packageLocation": "./.yarn/cache/table-layout-npm-1.0.1-a14b2ef715-b2e899f60f.zip/node_modules/table-layout/",
-          "packageDependencies": [
-            ["table-layout", "npm:1.0.1"],
-            ["array-back", "npm:4.0.1"],
-            ["deep-extend", "npm:0.6.0"],
-            ["typical", "npm:5.2.0"],
-            ["wordwrapjs", "npm:4.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tapable", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/tapable-npm-1.1.3-5d1594602f-b2c2ab2026.zip/node_modules/tapable/",
-          "packageDependencies": [
-            ["tapable", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/tapable-npm-2.0.0-1b1ecde87d-e6321280f9.zip/node_modules/tapable/",
-          "packageDependencies": [
-            ["tapable", "npm:2.0.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tar", [
-        ["npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/tar-npm-6.0.2-c08102c075-7d28cc13d7.zip/node_modules/tar/",
-          "packageDependencies": [
-            ["tar", "npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"],
-            ["chownr", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"],
-            ["fs-minipass", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"],
-            ["minipass", "npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"],
-            ["minizlib", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"],
-            ["mkdirp", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"],
-            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tar-stream", [
-        ["npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/tar-stream-npm-2.1.3-d6be928e6e-57d2284615.zip/node_modules/tar-stream/",
-          "packageDependencies": [
-            ["tar-stream", "npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"],
-            ["bl", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"],
-            ["end-of-stream", "npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"],
-            ["fs-constants", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"],
-            ["inherits", "npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"],
-            ["readable-stream", "npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["temp-dir", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/temp-dir-npm-1.0.0-31731478b9-4cc703b6ac.zip/node_modules/temp-dir/",
-          "packageDependencies": [
-            ["temp-dir", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tempy", [
-        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/tempy-npm-0.3.0-6bb6a9b3ef-487b16624f.zip/node_modules/tempy/",
-          "packageDependencies": [
-            ["tempy", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"],
-            ["temp-dir", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"],
-            ["type-fest", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"],
-            ["unique-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["terser", [
-        ["npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", {
-          "packageLocation": "./.yarn/cache/terser-npm-4.8.0-fc316bfc83-d7ab95898b.zip/node_modules/terser/",
-          "packageDependencies": [
-            ["terser", "npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"],
-            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
-            ["source-map-support", "npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.3.8", {
-          "packageLocation": "./.yarn/cache/terser-npm-5.3.8-5c417c2e25-3fc070378b.zip/node_modules/terser/",
-          "packageDependencies": [
-            ["terser", "npm:5.3.8"],
-            ["commander", "npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"],
-            ["source-map", "npm:0.7.3"],
-            ["source-map-support", "npm:0.5.19"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["terser-webpack-plugin", [
-        ["virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1", {
-          "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-8a1d554d58/0/cache/terser-webpack-plugin-npm-5.0.1-e2259a3f81-23dfddfcba.zip/node_modules/terser-webpack-plugin/",
-          "packageDependencies": [
-            ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
-            ["jest-worker", "npm:26.6.1"],
-            ["p-limit", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"],
-            ["schema-utils", "npm:3.0.0"],
-            ["serialize-javascript", "npm:5.0.1"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"],
-            ["terser", "npm:5.3.8"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["text-table", [
-        ["npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-847bae3160-373904ce70.zip/node_modules/text-table/",
-          "packageDependencies": [
-            ["text-table", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["thunky", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/thunky-npm-1.1.0-2e03df1212-eceb856b64.zip/node_modules/thunky/",
-          "packageDependencies": [
-            ["thunky", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["timeline", [
-        ["workspace:.", {
-          "packageLocation": "./",
-          "packageDependencies": [
-            ["timeline", "workspace:."],
-            ["@babel/core", "npm:7.12.3"],
-            ["@babel/plugin-proposal-class-properties", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-decorators", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-proposal-optional-chaining", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/plugin-syntax-dynamic-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"],
-            ["@babel/preset-env", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/preset-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@babel/preset-typescript", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.12.1"],
-            ["@hot-loader/react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.0"],
-            ["@types/classnames", "npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"],
-            ["@types/lodash", "npm:4.14.162"],
-            ["@types/node", "npm:14.14.5"],
-            ["@types/react", "npm:16.9.53"],
-            ["@types/react-dom", "npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"],
-            ["@types/react-responsive", "npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"],
-            ["@types/react-router", "npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"],
-            ["@types/react-router-bootstrap", "npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"],
-            ["@types/react-router-dom", "npm:5.1.6"],
-            ["@types/webpack-env", "npm:1.15.3"],
-            ["@types/xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"],
-            ["@typescript-eslint/eslint-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@typescript-eslint/parser", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.6.0"],
-            ["@yarnpkg/pnpify", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.3.3"],
-            ["axios", "npm:0.21.0"],
-            ["babel-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"],
-            ["babel-plugin-transform-builtin-extend", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"],
-            ["bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.3"],
-            ["bootstrap-icons", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"],
-            ["classnames", "npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"],
-            ["clean-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"],
-            ["clsx", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"],
-            ["copy-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.2.1"],
-            ["core-js", "npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"],
-            ["css-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.0.0"],
-            ["eslint", "npm:7.12.1"],
-            ["eslint-config-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.14.0"],
-            ["eslint-plugin-import", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.22.1"],
-            ["eslint-plugin-prettier", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"],
-            ["eslint-plugin-react", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:7.21.5"],
-            ["eslint-plugin-react-hooks", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.2.0"],
-            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
-            ["html-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.5.0"],
-            ["http-server", "npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"],
-            ["i18next", "npm:19.8.3"],
-            ["i18next-browser-languagedetector", "npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"],
-            ["localforage", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"],
-            ["lodash", "npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"],
-            ["mini-css-extract-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.2.0"],
-            ["pepjs", "npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"],
-            ["postcss", "npm:8.1.4"],
-            ["postcss-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.0.4"],
-            ["postcss-preset-env", "npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"],
-            ["prettier", "npm:2.1.2"],
-            ["react", "npm:17.0.1"],
-            ["react-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:1.4.0"],
-            ["react-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:17.0.1"],
-            ["react-hot-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.13.0"],
-            ["react-i18next", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:11.7.3"],
-            ["react-inlinesvg", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.1.1"],
-            ["react-responsive", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"],
-            ["react-router", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"],
-            ["react-router-bootstrap", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"],
-            ["react-router-dom", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"],
-            ["regenerator-runtime", "npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"],
-            ["rxjs", "npm:6.6.3"],
-            ["sass", "npm:1.27.0"],
-            ["sass-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:10.0.4"],
-            ["style-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:2.0.0"],
-            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"],
-            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
-            ["workbox-precaching", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"],
-            ["workbox-strategies", "npm:5.1.4"],
-            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
-            ["workbox-window", "npm:5.1.4"],
-            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"]
-          ],
-          "linkType": "SOFT",
-        }]
-      ]],
-      ["tiny-invariant", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/tiny-invariant-npm-1.1.0-b1fc3471e7-64318fbd77.zip/node_modules/tiny-invariant/",
-          "packageDependencies": [
-            ["tiny-invariant", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tiny-warning", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/tiny-warning-npm-1.0.3-1d5479b67a-6cf9f66cb7.zip/node_modules/tiny-warning/",
-          "packageDependencies": [
-            ["tiny-warning", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["to-fast-properties", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/to-fast-properties-npm-1.0.3-4db318f804-bfe41c9367.zip/node_modules/to-fast-properties/",
-          "packageDependencies": [
-            ["to-fast-properties", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-df5ab2c333-40e6198424.zip/node_modules/to-fast-properties/",
-          "packageDependencies": [
-            ["to-fast-properties", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["to-object-path", [
-        ["npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/to-object-path-npm-0.3.0-5a713ccaf5-a6a5a50225.zip/node_modules/to-object-path/",
-          "packageDependencies": [
-            ["to-object-path", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"],
-            ["kind-of", "npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["to-regex", [
-        ["npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/to-regex-npm-3.0.2-a380ed7e87-ed733fdff8.zip/node_modules/to-regex/",
-          "packageDependencies": [
-            ["to-regex", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"],
-            ["define-property", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"],
-            ["extend-shallow", "npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"],
-            ["regex-not", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"],
-            ["safe-regex", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["to-regex-range", [
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/to-regex-range-npm-2.1.1-68ddc69671-801501b59d.zip/node_modules/to-regex-range/",
-          "packageDependencies": [
-            ["to-regex-range", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"],
-            ["is-number", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"],
-            ["repeat-string", "npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/to-regex-range-npm-5.0.1-b6ba8d220b-2b6001e314.zip/node_modules/to-regex-range/",
-          "packageDependencies": [
-            ["to-regex-range", "npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"],
-            ["is-number", "npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["toidentifier", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.0-cf9ef3320f-95720e8a0f.zip/node_modules/toidentifier/",
-          "packageDependencies": [
-            ["toidentifier", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tough-cookie", [
-        ["npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/tough-cookie-npm-2.5.0-8c306aca04-bf5d6fac5c.zip/node_modules/tough-cookie/",
-          "packageDependencies": [
-            ["tough-cookie", "npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"],
-            ["psl", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"],
-            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["treeify", [
-        ["npm:1.1.0", {
-          "packageLocation": "./.yarn/cache/treeify-npm-1.1.0-abf9292333-78db62f564.zip/node_modules/treeify/",
-          "packageDependencies": [
-            ["treeify", "npm:1.1.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ts-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7", {
-          "packageLocation": "./.yarn/$$virtual/ts-loader-virtual-4fd5d21677/0/cache/ts-loader-npm-8.0.7-dd473b9771-062143ef35.zip/node_modules/ts-loader/",
-          "packageDependencies": [
-            ["ts-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:8.0.7"],
-            ["chalk", "npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"],
-            ["enhanced-resolve", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"],
-            ["loader-utils", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"],
-            ["micromatch", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"],
-            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tsconfig-paths", [
-        ["npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz", {
-          "packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.9.0-39cafa29c9-5383ba626b.zip/node_modules/tsconfig-paths/",
-          "packageDependencies": [
-            ["tsconfig-paths", "npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"],
-            ["@types/json5", "npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"],
-            ["json5", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"],
-            ["minimist", "npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"],
-            ["strip-bom", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tslib", [
-        ["npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz", {
-          "packageLocation": "./.yarn/cache/tslib-npm-1.13.0-630f8c4e72-5dc3bdaea3.zip/node_modules/tslib/",
-          "packageDependencies": [
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tsutils", [
-        ["virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/tsutils-virtual-47afeaf7ca/0/cache/tsutils-npm-3.17.1-e58260689c-bed8ff7998.zip/node_modules/tsutils/",
-          "packageDependencies": [
-            ["tsutils", "virtual:92cd152243d81313d6dc49a6d5c1c08a9cbe74528d8534146428d19052a135c7d212d211b38f56ebca3fbcc5570bd914ce7b8f66c355b3f72fee2b811c7c271f#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
-            ["typescript", null]
-          ],
-          "packagePeers": [
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }],
-        ["virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/tsutils-virtual-54d64bec1a/0/cache/tsutils-npm-3.17.1-e58260689c-bed8ff7998.zip/node_modules/tsutils/",
-          "packageDependencies": [
-            ["tsutils", "virtual:ec995a95057702f32c458b5a9f080e3c355ce35766552d028f97b7618eee8f80f5bb6aeb2264e8046eda0d577f1e20ce7a42d743b939bd0fd059cc1478e314db#npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"],
-            ["tslib", "npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"],
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "packagePeers": [
-            "typescript"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tunnel", [
-        ["npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz", {
-          "packageLocation": "./.yarn/cache/tunnel-npm-0.0.6-f1eb5523cc-78fbb1a55a.zip/node_modules/tunnel/",
-          "packageDependencies": [
-            ["tunnel", "npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tunnel-agent", [
-        ["npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz", {
-          "packageLocation": "./.yarn/cache/tunnel-agent-npm-0.6.0-4b1625a04a-03db75a4f9.zip/node_modules/tunnel-agent/",
-          "packageDependencies": [
-            ["tunnel-agent", "npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"],
-            ["safe-buffer", "npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["tweetnacl", [
-        ["npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", {
-          "packageLocation": "./.yarn/cache/tweetnacl-npm-0.14.5-e7def9409b-e1c9d52e2e.zip/node_modules/tweetnacl/",
-          "packageDependencies": [
-            ["tweetnacl", "npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["type-check", [
-        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-6102abc42b-6c2e1ce339.zip/node_modules/type-check/",
-          "packageDependencies": [
-            ["type-check", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"],
-            ["prelude-ls", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["type-fest", [
-        ["npm:0.11.0", {
-          "packageLocation": "./.yarn/cache/type-fest-npm-0.11.0-81410fe889-02e5cadf13.zip/node_modules/type-fest/",
-          "packageDependencies": [
-            ["type-fest", "npm:0.11.0"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/type-fest-npm-0.3.1-96c1013afe-5089230611.zip/node_modules/type-fest/",
-          "packageDependencies": [
-            ["type-fest", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz", {
-          "packageLocation": "./.yarn/cache/type-fest-npm-0.8.1-ad1c16447d-f8c4b4249f.zip/node_modules/type-fest/",
-          "packageDependencies": [
-            ["type-fest", "npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["type-is", [
-        ["npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz", {
-          "packageLocation": "./.yarn/cache/type-is-npm-1.6.18-feafb86b19-20a3514f1d.zip/node_modules/type-is/",
-          "packageDependencies": [
-            ["type-is", "npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"],
-            ["media-typer", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"],
-            ["mime-types", "npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["typescript", [
-        ["patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2", {
-          "packageLocation": "./.yarn/cache/typescript-patch-f9a7df7dbb-d4be0bd2a2.zip/node_modules/typescript/",
-          "packageDependencies": [
-            ["typescript", "patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["typical", [
-        ["npm:5.2.0", {
-          "packageLocation": "./.yarn/cache/typical-npm-5.2.0-d4de46c932-f4af304978.zip/node_modules/typical/",
-          "packageDependencies": [
-            ["typical", "npm:5.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["uncontrollable", [
-        ["virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz", {
-          "packageLocation": "./.yarn/$$virtual/uncontrollable-virtual-231cace537/0/cache/uncontrollable-npm-7.1.1-26d270508f-208d397c41.zip/node_modules/uncontrollable/",
-          "packageDependencies": [
-            ["uncontrollable", "virtual:4b828bd79c8d8e0e87214c09b757d2d497384e46384c218f2143b8f0dd7311cd345842586131b2075d14258c95c7e93a30bf55b4757ff204ceb179cb1aa175e7#npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"],
-            ["@babel/runtime", "npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"],
-            ["@types/react", "npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"],
-            ["invariant", "npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"],
-            ["react", "npm:17.0.1"],
-            ["react-lifecycles-compat", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"]
-          ],
-          "packagePeers": [
-            "react"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["underscore", [
-        ["npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz", {
-          "packageLocation": "./.yarn/cache/underscore-npm-1.10.2-058b625a43-d49b87c03d.zip/node_modules/underscore/",
-          "packageDependencies": [
-            ["underscore", "npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unicode-canonical-property-names-ecmascript", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-307304fe5a-8b51950f8f.zip/node_modules/unicode-canonical-property-names-ecmascript/",
-          "packageDependencies": [
-            ["unicode-canonical-property-names-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unicode-match-property-ecmascript", [
-        ["npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-f3808527ff-481203b4b8.zip/node_modules/unicode-match-property-ecmascript/",
-          "packageDependencies": [
-            ["unicode-match-property-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"],
-            ["unicode-canonical-property-names-ecmascript", "npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"],
-            ["unicode-property-aliases-ecmascript", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unicode-match-property-value-ecmascript", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-4d3d9c8666-892ca39335.zip/node_modules/unicode-match-property-value-ecmascript/",
-          "packageDependencies": [
-            ["unicode-match-property-value-ecmascript", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unicode-property-aliases-ecmascript", [
-        ["npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-9e9de9dffa-2fa80e62a6.zip/node_modules/unicode-property-aliases-ecmascript/",
-          "packageDependencies": [
-            ["unicode-property-aliases-ecmascript", "npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["union", [
-        ["npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz", {
-          "packageLocation": "./.yarn/cache/union-npm-0.5.0-d0338661c6-38d86c00ee.zip/node_modules/union/",
-          "packageDependencies": [
-            ["union", "npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"],
-            ["qs", "npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["union-value", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/union-value-npm-1.0.1-b67db5c3da-bd6ae611f0.zip/node_modules/union-value/",
-          "packageDependencies": [
-            ["union-value", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"],
-            ["arr-union", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"],
-            ["get-value", "npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"],
-            ["is-extendable", "npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"],
-            ["set-value", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["uniq", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/uniq-npm-1.0.1-4e6b8e3131-a5603a5b31.zip/node_modules/uniq/",
-          "packageDependencies": [
-            ["uniq", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unique-filename", [
-        ["npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/unique-filename-npm-1.1.1-a2067b5b2e-0e674206bd.zip/node_modules/unique-filename/",
-          "packageDependencies": [
-            ["unique-filename", "npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"],
-            ["unique-slug", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unique-slug", [
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/unique-slug-npm-2.0.2-2b77a75e02-3b17dabc13.zip/node_modules/unique-slug/",
-          "packageDependencies": [
-            ["unique-slug", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"],
-            ["imurmurhash", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unique-string", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/unique-string-npm-1.0.0-f4dd1ca918-860f1ab835.zip/node_modules/unique-string/",
-          "packageDependencies": [
-            ["unique-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"],
-            ["crypto-random-string", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["universalify", [
-        ["npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/universalify-npm-0.1.2-d623b39c64-420fc65473.zip/node_modules/universalify/",
-          "packageDependencies": [
-            ["universalify", "npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unpipe", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/unpipe-npm-1.0.0-d6f27bd84a-ba244e8bf6.zip/node_modules/unpipe/",
-          "packageDependencies": [
-            ["unpipe", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["unset-value", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/unset-value-npm-1.0.0-9aee344620-b4c4853f27.zip/node_modules/unset-value/",
-          "packageDependencies": [
-            ["unset-value", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"],
-            ["has-value", "npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"],
-            ["isobject", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["upath", [
-        ["npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", {
-          "packageLocation": "./.yarn/cache/upath-npm-1.2.0-934902c124-ecb08ff3e7.zip/node_modules/upath/",
-          "packageDependencies": [
-            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["uri-js", [
-        ["npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz", {
-          "packageLocation": "./.yarn/cache/uri-js-npm-4.2.2-62eea54551-651a49f55d.zip/node_modules/uri-js/",
-          "packageDependencies": [
-            ["uri-js", "npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"],
-            ["punycode", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["urix", [
-        ["npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/urix-npm-0.1.0-315615cfa2-6bdfca4e7f.zip/node_modules/urix/",
-          "packageDependencies": [
-            ["urix", "npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["url", [
-        ["npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz", {
-          "packageLocation": "./.yarn/cache/url-npm-0.11.0-8259cfe04b-537f785b16.zip/node_modules/url/",
-          "packageDependencies": [
-            ["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
-            ["punycode", "npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"],
-            ["querystring", "npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["url-join", [
-        ["npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz", {
-          "packageLocation": "./.yarn/cache/url-join-npm-2.0.5-334c0209dd-142e04d81b.zip/node_modules/url-join/",
-          "packageDependencies": [
-            ["url-join", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["url-loader", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1", {
-          "packageLocation": "./.yarn/$$virtual/url-loader-virtual-d701e1899b/0/cache/url-loader-npm-4.1.1-568e22ebcb-871e8c8df2.zip/node_modules/url-loader/",
-          "packageDependencies": [
-            ["url-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.1"],
-            ["file-loader", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:6.1.1"],
-            ["loader-utils", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"],
-            ["mime-types", "npm:2.1.27"],
-            ["schema-utils", "npm:3.0.0"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"]
-          ],
-          "packagePeers": [
-            "file-loader",
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["url-parse", [
-        ["npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz", {
-          "packageLocation": "./.yarn/cache/url-parse-npm-1.4.7-8b0f9a3d76-33c44a24b9.zip/node_modules/url-parse/",
-          "packageDependencies": [
-            ["url-parse", "npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"],
-            ["querystringify", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"],
-            ["requires-port", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["use", [
-        ["npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/use-npm-3.1.1-4b1ecc7129-8dd3bdeeda.zip/node_modules/use/",
-          "packageDependencies": [
-            ["use", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["util-deprecate", [
-        ["npm:1.0.2", {
-          "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-73c2b1cf02.zip/node_modules/util-deprecate/",
-          "packageDependencies": [
-            ["util-deprecate", "npm:1.0.2"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-77cb133271-73c2b1cf02.zip/node_modules/util-deprecate/",
-          "packageDependencies": [
-            ["util-deprecate", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["util.promisify", [
-        ["npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/util.promisify-npm-1.0.0-5303b5a40d-0dffbe1af6.zip/node_modules/util.promisify/",
-          "packageDependencies": [
-            ["util.promisify", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"],
-            ["define-properties", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"],
-            ["object.getownpropertydescriptors", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["utila", [
-        ["npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/utila-npm-0.4.0-02d7c2417d-6799b0a566.zip/node_modules/utila/",
-          "packageDependencies": [
-            ["utila", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["utils-merge", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/utils-merge-npm-1.0.1-c9b1088485-a457956ebc.zip/node_modules/utils-merge/",
-          "packageDependencies": [
-            ["utils-merge", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["uuid", [
-        ["npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", {
-          "packageLocation": "./.yarn/cache/uuid-npm-3.4.0-b87400074c-1ce3f37e21.zip/node_modules/uuid/",
-          "packageDependencies": [
-            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["v8-compile-cache", [
-        ["npm:2.1.1", {
-          "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.1.1-efff1ef0a4-1290922fe1.zip/node_modules/v8-compile-cache/",
-          "packageDependencies": [
-            ["v8-compile-cache", "npm:2.1.1"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz", {
-          "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.1.1-f1fb30f3ee-1290922fe1.zip/node_modules/v8-compile-cache/",
-          "packageDependencies": [
-            ["v8-compile-cache", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["validate-npm-package-license", [
-        ["npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz", {
-          "packageLocation": "./.yarn/cache/validate-npm-package-license-npm-3.0.4-f515d7a10c-940899bd4e.zip/node_modules/validate-npm-package-license/",
-          "packageDependencies": [
-            ["validate-npm-package-license", "npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"],
-            ["spdx-correct", "npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"],
-            ["spdx-expression-parse", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["value-equal", [
-        ["npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/value-equal-npm-1.0.1-ce12345615-ae8cc7bbb2.zip/node_modules/value-equal/",
-          "packageDependencies": [
-            ["value-equal", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["vary", [
-        ["npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/vary-npm-1.1.2-6556205c46-591f059f72.zip/node_modules/vary/",
-          "packageDependencies": [
-            ["vary", "npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["verror", [
-        ["npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", {
-          "packageLocation": "./.yarn/cache/verror-npm-1.10.0-5878666681-38ea80312c.zip/node_modules/verror/",
-          "packageDependencies": [
-            ["verror", "npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"],
-            ["assert-plus", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"],
-            ["core-util-is", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"],
-            ["extsprintf", "npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["void-elements", [
-        ["npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz", {
-          "packageLocation": "./.yarn/cache/void-elements-npm-2.0.1-2286af2669-768d7e0853.zip/node_modules/void-elements/",
-          "packageDependencies": [
-            ["void-elements", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["warning", [
-        ["npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/warning-npm-4.0.3-8eb9b5a3ea-20ef5d29ff.zip/node_modules/warning/",
-          "packageDependencies": [
-            ["warning", "npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"],
-            ["loose-envify", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["watchpack", [
-        ["npm:2.0.0", {
-          "packageLocation": "./.yarn/cache/watchpack-npm-2.0.0-da98476fce-de23b15ad1.zip/node_modules/watchpack/",
-          "packageDependencies": [
-            ["watchpack", "npm:2.0.0"],
-            ["glob-to-regexp", "npm:0.4.1"],
-            ["graceful-fs", "npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["wbuf", [
-        ["npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz", {
-          "packageLocation": "./.yarn/cache/wbuf-npm-1.7.3-819c8cd6c3-5916a49cb2.zip/node_modules/wbuf/",
-          "packageDependencies": [
-            ["wbuf", "npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"],
-            ["minimalistic-assert", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0", {
-          "packageLocation": "./.yarn/$$virtual/webpack-virtual-da1918d5ae/0/cache/webpack-npm-5.2.0-128d7e3fc2-1f91563c25.zip/node_modules/webpack/",
-          "packageDependencies": [
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["@types/eslint-scope", "npm:3.7.0"],
-            ["@types/estree", "npm:0.0.45"],
-            ["@webassemblyjs/ast", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"],
-            ["@webassemblyjs/helper-module-context", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-edit", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"],
-            ["@webassemblyjs/wasm-parser", "npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"],
-            ["acorn", "npm:8.0.4"],
-            ["browserslist", "npm:4.14.5"],
-            ["chrome-trace-event", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"],
-            ["enhanced-resolve", "npm:5.3.1"],
-            ["eslint-scope", "npm:5.1.1"],
-            ["events", "npm:3.2.0"],
-            ["glob-to-regexp", "npm:0.4.1"],
-            ["graceful-fs", "npm:4.2.4"],
-            ["json-parse-better-errors", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"],
-            ["loader-runner", "npm:4.1.0"],
-            ["mime-types", "npm:2.1.27"],
-            ["neo-async", "npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"],
-            ["pkg-dir", "npm:4.2.0"],
-            ["schema-utils", "npm:3.0.0"],
-            ["tapable", "npm:2.0.0"],
-            ["terser-webpack-plugin", "virtual:da1918d5aef4b3f017250e626bcdf71c9210424aba35a828e9df5793e812bee0ca9643507b340f1722c72546fadacb741b6e9423e40b0e0605764717210cf76f#npm:5.0.1"],
-            ["watchpack", "npm:2.0.0"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["webpack-sources", "npm:2.1.0"]
-          ],
-          "packagePeers": [
-            "webpack-cli"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-chain", [
-        ["npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz", {
-          "packageLocation": "./.yarn/cache/webpack-chain-npm-6.5.1-77e5cfb864-56995e1899.zip/node_modules/webpack-chain/",
-          "packageDependencies": [
-            ["webpack-chain", "npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"],
-            ["deepmerge", "npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"],
-            ["javascript-stringify", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-cli", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0", {
-          "packageLocation": "./.yarn/$$virtual/webpack-cli-virtual-c460e9f85a/0/cache/webpack-cli-npm-4.1.0-fcae536f7b-70402fe84a.zip/node_modules/webpack-cli/",
-          "packageDependencies": [
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["@webpack-cli/generate-loader", null],
-            ["@webpack-cli/generate-plugin", null],
-            ["@webpack-cli/info", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.2"],
-            ["@webpack-cli/init", null],
-            ["@webpack-cli/migrate", null],
-            ["@webpack-cli/serve", "virtual:c460e9f85aa454dc1b9cf43954e250509701dbc5ded049dbe040bf6257f9cd93087be07d5933f92d8c21c813eba74d6287e09df2de8a98e2c5a42cbc160e16cd#npm:1.0.1"],
-            ["ansi-escapes", "npm:4.3.1"],
-            ["colorette", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"],
-            ["command-line-usage", "npm:6.1.0"],
-            ["commander", "npm:6.2.0"],
-            ["enquirer", "npm:2.3.6"],
-            ["execa", "npm:4.0.3"],
-            ["import-local", "npm:3.0.2"],
-            ["interpret", "npm:2.2.0"],
-            ["rechoir", "npm:0.7.0"],
-            ["v8-compile-cache", "npm:2.1.1"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-bundle-analyzer", null],
-            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
-            ["webpack-merge", "npm:4.2.2"]
-          ],
-          "packagePeers": [
-            "@webpack-cli/generate-loader",
-            "@webpack-cli/generate-plugin",
-            "@webpack-cli/init",
-            "@webpack-cli/migrate",
-            "webpack",
-            "webpack-bundle-analyzer",
-            "webpack-dev-server"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-dev-middleware", [
-        ["virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", {
-          "packageLocation": "./.yarn/$$virtual/webpack-dev-middleware-virtual-9add47b0ac/0/cache/webpack-dev-middleware-npm-3.7.2-a804badefa-88480e7d7f.zip/node_modules/webpack-dev-middleware/",
-          "packageDependencies": [
-            ["webpack-dev-middleware", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"],
-            ["memory-fs", "npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"],
-            ["mime", "npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"],
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"],
-            ["range-parser", "npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-dev-server", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", {
-          "packageLocation": "./.yarn/$$virtual/webpack-dev-server-virtual-dd7bf9071c/0/cache/webpack-dev-server-npm-3.11.0-6158244322-1d34457456.zip/node_modules/webpack-dev-server/",
-          "packageDependencies": [
-            ["webpack-dev-server", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"],
-            ["ansi-html", "npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"],
-            ["bonjour", "npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"],
-            ["chokidar", "npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"],
-            ["compression", "npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"],
-            ["connect-history-api-fallback", "npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"],
-            ["debug", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"],
-            ["del", "npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"],
-            ["express", "npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"],
-            ["html-entities", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"],
-            ["http-proxy-middleware", "npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"],
-            ["import-local", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"],
-            ["internal-ip", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"],
-            ["ip", "npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"],
-            ["is-absolute-url", "npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"],
-            ["killable", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"],
-            ["loglevel", "npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"],
-            ["opn", "npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"],
-            ["p-retry", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"],
-            ["portfinder", "npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"],
-            ["schema-utils", "npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"],
-            ["selfsigned", "npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"],
-            ["semver", "npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"],
-            ["serve-index", "npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"],
-            ["sockjs", "npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"],
-            ["sockjs-client", "npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"],
-            ["spdy", "npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"],
-            ["strip-ansi", "npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"],
-            ["supports-color", "npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"],
-            ["url", "npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-cli", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:4.1.0"],
-            ["webpack-dev-middleware", "virtual:dd7bf9071c15c1b7a313ecdd010711f705a91e516eac87ed27bf82d6945d9d7d9c5b82dec9391533d88e32ec8de8326d7c2bcbfc63ae4f43b290a451f472b891#npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"],
-            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"],
-            ["ws", "npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"],
-            ["yargs", "npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"]
-          ],
-          "packagePeers": [
-            "webpack",
-            "webpack-cli"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-log", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/webpack-log-npm-2.0.0-a052036a7a-250db04c41.zip/node_modules/webpack-log/",
-          "packageDependencies": [
-            ["webpack-log", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"],
-            ["ansi-colors", "npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"],
-            ["uuid", "npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-merge", [
-        ["npm:4.2.2", {
-          "packageLocation": "./.yarn/cache/webpack-merge-npm-4.2.2-f98139a8eb-038c6d8ba4.zip/node_modules/webpack-merge/",
-          "packageDependencies": [
-            ["webpack-merge", "npm:4.2.2"],
-            ["lodash", "npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["webpack-sources", [
-        ["npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", {
-          "packageLocation": "./.yarn/cache/webpack-sources-npm-1.4.3-9f2fb08694-2a753b36ad.zip/node_modules/webpack-sources/",
-          "packageDependencies": [
-            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"],
-            ["source-list-map", "npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.1.0", {
-          "packageLocation": "./.yarn/cache/webpack-sources-npm-2.1.0-569bf85c0f-3950d59661.zip/node_modules/webpack-sources/",
-          "packageDependencies": [
-            ["webpack-sources", "npm:2.1.0"],
-            ["source-list-map", "npm:2.0.1"],
-            ["source-map", "npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["websocket-driver", [
-        ["npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", {
-          "packageLocation": "./.yarn/cache/websocket-driver-npm-0.6.5-7a64ae7b58-1169a0eccc.zip/node_modules/websocket-driver/",
-          "packageDependencies": [
-            ["websocket-driver", "npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"],
-            ["websocket-extensions", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["websocket-extensions", [
-        ["npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz", {
-          "packageLocation": "./.yarn/cache/websocket-extensions-npm-0.1.4-4ad80c33db-bbafc0ffa1.zip/node_modules/websocket-extensions/",
-          "packageDependencies": [
-            ["websocket-extensions", "npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["which", [
-        ["npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", {
-          "packageLocation": "./.yarn/cache/which-npm-1.3.1-ba7a168732-298d95f9c1.zip/node_modules/which/",
-          "packageDependencies": [
-            ["which", "npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"],
-            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }],
-        ["npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/which-npm-2.0.2-06854d31f8-ea9b1db126.zip/node_modules/which/",
-          "packageDependencies": [
-            ["which", "npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"],
-            ["isexe", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["which-module", [
-        ["npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/which-module-npm-2.0.0-db3972df77-3d2107ab18.zip/node_modules/which-module/",
-          "packageDependencies": [
-            ["which-module", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["wide-align", [
-        ["npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz", {
-          "packageLocation": "./.yarn/cache/wide-align-npm-1.1.3-7300fca83c-4f850f84da.zip/node_modules/wide-align/",
-          "packageDependencies": [
-            ["wide-align", "npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"],
-            ["string-width", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["word-wrap", [
-        ["npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz", {
-          "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-0e2f95df51-6526abd75d.zip/node_modules/word-wrap/",
-          "packageDependencies": [
-            ["word-wrap", "npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["wordwrapjs", [
-        ["npm:4.0.0", {
-          "packageLocation": "./.yarn/cache/wordwrapjs-npm-4.0.0-35c37bc814-022dc1d1a3.zip/node_modules/wordwrapjs/",
-          "packageDependencies": [
-            ["wordwrapjs", "npm:4.0.0"],
-            ["reduce-flatten", "npm:2.0.0"],
-            ["typical", "npm:5.2.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-background-sync", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-background-sync-npm-5.1.4-7507648a4a-5e22713631.zip/node_modules/workbox-background-sync/",
-          "packageDependencies": [
-            ["workbox-background-sync", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-broadcast-update", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-broadcast-update-npm-5.1.4-96771b5403-580c0f56a7.zip/node_modules/workbox-broadcast-update/",
-          "packageDependencies": [
-            ["workbox-broadcast-update", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-build", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-build-npm-5.1.4-17c41a44ce-b20cb791a9.zip/node_modules/workbox-build/",
-          "packageDependencies": [
-            ["workbox-build", "npm:5.1.4"],
-            ["@babel/core", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"],
-            ["@babel/preset-env", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["@hapi/joi", "npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"],
-            ["@rollup/plugin-node-resolve", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"],
-            ["@rollup/plugin-replace", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"],
-            ["@surma/rollup-plugin-off-main-thread", "npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"],
-            ["common-tags", "npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"],
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
-            ["fs-extra", "npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"],
-            ["glob", "npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"],
-            ["lodash.template", "npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"],
-            ["pretty-bytes", "npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"],
-            ["rollup", "npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"],
-            ["rollup-plugin-babel", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"],
-            ["rollup-plugin-terser", "virtual:17c41a44cecfa3015f0bf4e6851979f369c429baf2b6ce72a98feeea42e4f874d0f9e7a59ac7d6418392f089dc8cc429372e4e28f5940c376526030361564eab#npm:5.3.1"],
-            ["source-map", "npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"],
-            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
-            ["stringify-object", "npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"],
-            ["strip-comments", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"],
-            ["tempy", "npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"],
-            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"],
-            ["workbox-background-sync", "npm:5.1.4"],
-            ["workbox-broadcast-update", "npm:5.1.4"],
-            ["workbox-cacheable-response", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"],
-            ["workbox-expiration", "npm:5.1.4"],
-            ["workbox-google-analytics", "npm:5.1.4"],
-            ["workbox-navigation-preload", "npm:5.1.4"],
-            ["workbox-precaching", "npm:5.1.4"],
-            ["workbox-range-requests", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"],
-            ["workbox-strategies", "npm:5.1.4"],
-            ["workbox-streams", "npm:5.1.4"],
-            ["workbox-sw", "npm:5.1.4"],
-            ["workbox-window", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-cacheable-response", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-cacheable-response-npm-5.1.4-89774929bd-1a7600120e.zip/node_modules/workbox-cacheable-response/",
-          "packageDependencies": [
-            ["workbox-cacheable-response", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-core", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-core-npm-5.1.4-a55e463fcd-eaa6021ef9.zip/node_modules/workbox-core/",
-          "packageDependencies": [
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-expiration", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-expiration-npm-5.1.4-a291f68bea-94bb79ca9e.zip/node_modules/workbox-expiration/",
-          "packageDependencies": [
-            ["workbox-expiration", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-google-analytics", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-google-analytics-npm-5.1.4-d1fb97c648-a533d05d07.zip/node_modules/workbox-google-analytics/",
-          "packageDependencies": [
-            ["workbox-google-analytics", "npm:5.1.4"],
-            ["workbox-background-sync", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"],
-            ["workbox-strategies", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-navigation-preload", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-navigation-preload-npm-5.1.4-313f8f1db0-1704ecaadb.zip/node_modules/workbox-navigation-preload/",
-          "packageDependencies": [
-            ["workbox-navigation-preload", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-precaching", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-precaching-npm-5.1.4-d35052cde8-a2add02126.zip/node_modules/workbox-precaching/",
-          "packageDependencies": [
-            ["workbox-precaching", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-range-requests", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-range-requests-npm-5.1.4-460454c038-3df8c87cd2.zip/node_modules/workbox-range-requests/",
-          "packageDependencies": [
-            ["workbox-range-requests", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-routing", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-routing-npm-5.1.4-a3a18707d8-46583ef2c4.zip/node_modules/workbox-routing/",
-          "packageDependencies": [
-            ["workbox-routing", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-strategies", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-strategies-npm-5.1.4-2d603fefe4-4db2d9c987.zip/node_modules/workbox-strategies/",
-          "packageDependencies": [
-            ["workbox-strategies", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-streams", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-streams-npm-5.1.4-3aabea1172-2f62067328.zip/node_modules/workbox-streams/",
-          "packageDependencies": [
-            ["workbox-streams", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"],
-            ["workbox-routing", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-sw", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-sw-npm-5.1.4-f4d0f45a9a-cff84bdecc.zip/node_modules/workbox-sw/",
-          "packageDependencies": [
-            ["workbox-sw", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-webpack-plugin", [
-        ["virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4", {
-          "packageLocation": "./.yarn/$$virtual/workbox-webpack-plugin-virtual-ba223001f6/0/cache/workbox-webpack-plugin-npm-5.1.4-18ef490932-27f7f59865.zip/node_modules/workbox-webpack-plugin/",
-          "packageDependencies": [
-            ["workbox-webpack-plugin", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.1.4"],
-            ["@babel/runtime", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"],
-            ["fast-json-stable-stringify", "npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"],
-            ["source-map-url", "npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"],
-            ["upath", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"],
-            ["webpack", "virtual:71f98ed0939a4e8e7ea376e302a494701bc5b6aa7a7eb81870139ee3950a7c417a3d13b346b5b526d93952a598dffe628a0fac2148047debade23536cb3d7957#npm:5.2.0"],
-            ["webpack-sources", "npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"],
-            ["workbox-build", "npm:5.1.4"]
-          ],
-          "packagePeers": [
-            "webpack"
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["workbox-window", [
-        ["npm:5.1.4", {
-          "packageLocation": "./.yarn/cache/workbox-window-npm-5.1.4-8aff2708db-1bbefb35ba.zip/node_modules/workbox-window/",
-          "packageDependencies": [
-            ["workbox-window", "npm:5.1.4"],
-            ["workbox-core", "npm:5.1.4"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["wrap-ansi", [
-        ["npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz", {
-          "packageLocation": "./.yarn/cache/wrap-ansi-npm-5.1.0-6be3606251-9622c3aa27.zip/node_modules/wrap-ansi/",
-          "packageDependencies": [
-            ["wrap-ansi", "npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"],
-            ["ansi-styles", "npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"],
-            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
-            ["strip-ansi", "npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["wrappy", [
-        ["npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", {
-          "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-cf0ddd0ba5-519fcda0fc.zip/node_modules/wrappy/",
-          "packageDependencies": [
-            ["wrappy", "npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["write", [
-        ["npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz", {
-          "packageLocation": "./.yarn/cache/write-npm-1.0.3-3c49e89d8a-e8f8fddefe.zip/node_modules/write/",
-          "packageDependencies": [
-            ["write", "npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"],
-            ["mkdirp", "npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["ws", [
-        ["npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", {
-          "packageLocation": "./.yarn/cache/ws-npm-6.2.1-f4612cd51f-35d32b09e2.zip/node_modules/ws/",
-          "packageDependencies": [
-            ["ws", "npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"],
-            ["async-limiter", "npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["xregexp", [
-        ["npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz", {
-          "packageLocation": "./.yarn/cache/xregexp-npm-4.3.0-19c70fe731-2dcef4888e.zip/node_modules/xregexp/",
-          "packageDependencies": [
-            ["xregexp", "npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"],
-            ["@babel/runtime-corejs3", "npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["y18n", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/y18n-npm-4.0.0-88f5897c04-5b7434c95d.zip/node_modules/y18n/",
-          "packageDependencies": [
-            ["y18n", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["yallist", [
-        ["npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz", {
-          "packageLocation": "./.yarn/cache/yallist-npm-4.0.0-8d2665448f-a2960ef879.zip/node_modules/yallist/",
-          "packageDependencies": [
-            ["yallist", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["yaml", [
-        ["npm:1.10.0", {
-          "packageLocation": "./.yarn/cache/yaml-npm-1.10.0-3e2d763b45-d4cc9f9724.zip/node_modules/yaml/",
-          "packageDependencies": [
-            ["yaml", "npm:1.10.0"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["yargs", [
-        ["npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", {
-          "packageLocation": "./.yarn/cache/yargs-npm-13.3.2-41c1b39fb8-92c612cd14.zip/node_modules/yargs/",
-          "packageDependencies": [
-            ["yargs", "npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"],
-            ["cliui", "npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"],
-            ["find-up", "npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"],
-            ["get-caller-file", "npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"],
-            ["require-directory", "npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"],
-            ["require-main-filename", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"],
-            ["set-blocking", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"],
-            ["string-width", "npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"],
-            ["which-module", "npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"],
-            ["y18n", "npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"],
-            ["yargs-parser", "npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]],
-      ["yargs-parser", [
-        ["npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", {
-          "packageLocation": "./.yarn/cache/yargs-parser-npm-13.1.2-d942f466fd-82d3b7ab99.zip/node_modules/yargs-parser/",
-          "packageDependencies": [
-            ["yargs-parser", "npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"],
-            ["camelcase", "npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"],
-            ["decamelize", "npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"]
-          ],
-          "linkType": "HARD",
-        }]
-      ]]
-    ]
-  }, {basePath: basePath || __dirname});
-  }
-
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(typeof exports === 'object' && typeof module === 'object')
-		module.exports = factory();
-	else if(typeof define === 'function' && define.amd)
-		define([], factory);
-	else if(typeof exports === 'object')
-		exports["pnpHook"] = factory();
-	else
-		root["pnpHook"] = factory();
-})(global, function() {
-return /******/ (() => { // webpackBootstrap
-/******/ 	var __webpack_modules__ = ({
-
-/***/ 398:
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, {
-  "uY": () => /* binding */ FakeFS,
-  "fS": () => /* binding */ BasePortableFakeFS
-});
-
-// UNUSED EXPORTS: normalizeLineEndings
-
-// EXTERNAL MODULE: external "os"
-var external_os_ = __webpack_require__(87);
-
-// EXTERNAL MODULE: external "fs"
-var external_fs_ = __webpack_require__(747);
-var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_);
-
-// EXTERNAL MODULE: ../yarnpkg-fslib/sources/path.ts
-var path = __webpack_require__(9);
-
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/copyPromise.ts
-
- // 1980-01-01, like Fedora
-
-const defaultTime = 315532800;
-async function copyPromise(destinationFs, destination, sourceFs, source, opts) {
-  const normalizedDestination = destinationFs.pathUtils.normalize(destination);
-  const normalizedSource = sourceFs.pathUtils.normalize(source);
-  const operations = [];
-  const lutimes = [];
-  await destinationFs.mkdirpPromise(destination);
-  await copyImpl(operations, lutimes, destinationFs, normalizedDestination, sourceFs, normalizedSource, opts);
-
-  for (const operation of operations) await operation();
-
-  const updateTime = typeof destinationFs.lutimesPromise === `function` ? destinationFs.lutimesPromise.bind(destinationFs) : destinationFs.utimesPromise.bind(destinationFs);
-
-  for (const [p, atime, mtime] of lutimes) {
-    await updateTime(p, atime, mtime);
-  }
-}
-
-async function copyImpl(operations, lutimes, destinationFs, destination, sourceFs, source, opts) {
-  const destinationStat = await maybeLStat(destinationFs, destination);
-  const sourceStat = await sourceFs.lstatPromise(source);
-  if (opts.stableTime) lutimes.push([destination, defaultTime, defaultTime]);else lutimes.push([destination, sourceStat.atime, sourceStat.mtime]);
-
-  switch (true) {
-    case sourceStat.isDirectory():
-      {
-        await copyFolder(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
-      }
-      break;
-
-    case sourceStat.isFile():
-      {
-        await copyFile(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
-      }
-      break;
-
-    case sourceStat.isSymbolicLink():
-      {
-        await copySymlink(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts);
-      }
-      break;
-
-    default:
-      {
-        throw new Error(`Unsupported file type (${sourceStat.mode})`);
-      }
-      break;
-  }
-
-  operations.push(async () => destinationFs.chmodPromise(destination, sourceStat.mode & 0o777));
-}
-
-async function maybeLStat(baseFs, p) {
-  try {
-    return await baseFs.lstatPromise(p);
-  } catch (e) {
-    return null;
-  }
-}
-
-async function copyFolder(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
-  if (destinationStat !== null && !destinationStat.isDirectory()) {
-    if (opts.overwrite) {
-      operations.push(async () => destinationFs.removePromise(destination));
-      destinationStat = null;
-    } else {
-      return;
-    }
-  }
-
-  if (destinationStat === null) operations.push(async () => destinationFs.mkdirPromise(destination, {
-    mode: sourceStat.mode
-  }));
-  const entries = await sourceFs.readdirPromise(source);
-
-  if (opts.stableSort) {
-    for (const entry of entries.sort()) {
-      await copyImpl(operations, lutimes, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts);
-    }
-  } else {
-    await Promise.all(entries.map(async entry => {
-      await copyImpl(operations, lutimes, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts);
-    }));
-  }
-}
-
-async function copyFile(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
-  if (destinationStat !== null) {
-    if (opts.overwrite) {
-      operations.push(async () => destinationFs.removePromise(destination));
-      destinationStat = null;
-    } else {
-      return;
-    }
-  }
-
-  if (destinationFs === sourceFs) {
-    operations.push(async () => destinationFs.copyFilePromise(source, destination, (external_fs_default()).constants.COPYFILE_FICLONE));
-  } else {
-    operations.push(async () => destinationFs.writeFilePromise(destination, await sourceFs.readFilePromise(source)));
-  }
-}
-
-async function copySymlink(operations, lutimes, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) {
-  if (destinationStat !== null) {
-    if (opts.overwrite) {
-      operations.push(async () => destinationFs.removePromise(destination));
-      destinationStat = null;
-    } else {
-      return;
-    }
-  }
-
-  const target = await sourceFs.readlinkPromise(source);
-  operations.push(async () => destinationFs.symlinkPromise((0,path/* convertPath */.CI)(destinationFs.pathUtils, target), destination));
-}
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/FakeFS.ts
-
-
-
-class FakeFS {
-  constructor(pathUtils) {
-    this.pathUtils = pathUtils;
-  }
-
-  async removePromise(p) {
-    let stat;
-
-    try {
-      stat = await this.lstatPromise(p);
-    } catch (error) {
-      if (error.code === `ENOENT`) {
-        return;
-      } else {
-        throw error;
-      }
-    }
-
-    if (stat.isDirectory()) {
-      for (const entry of await this.readdirPromise(p)) await this.removePromise(this.pathUtils.resolve(p, entry)); // 5 gives 1s worth of retries at worst
-
-
-      for (let t = 0; t < 5; ++t) {
-        try {
-          await this.rmdirPromise(p);
-          break;
-        } catch (error) {
-          if (error.code === `EBUSY` || error.code === `ENOTEMPTY`) {
-            await new Promise(resolve => setTimeout(resolve, t * 100));
-            continue;
-          } else {
-            throw error;
-          }
-        }
-      }
-    } else {
-      await this.unlinkPromise(p);
-    }
-  }
-
-  removeSync(p) {
-    let stat;
-
-    try {
-      stat = this.lstatSync(p);
-    } catch (error) {
-      if (error.code === `ENOENT`) {
-        return;
-      } else {
-        throw error;
-      }
-    }
-
-    if (stat.isDirectory()) {
-      for (const entry of this.readdirSync(p)) this.removeSync(this.pathUtils.resolve(p, entry));
-
-      this.rmdirSync(p);
-    } else {
-      this.unlinkSync(p);
-    }
-  }
-
-  async mkdirpPromise(p, {
-    chmod,
-    utimes
-  } = {}) {
-    p = this.resolve(p);
-    if (p === this.pathUtils.dirname(p)) return;
-    const parts = p.split(this.pathUtils.sep);
-
-    for (let u = 2; u <= parts.length; ++u) {
-      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
-
-      if (!this.existsSync(subPath)) {
-        try {
-          await this.mkdirPromise(subPath);
-        } catch (error) {
-          if (error.code === `EEXIST`) {
-            continue;
-          } else {
-            throw error;
-          }
-        }
-
-        if (chmod != null) await this.chmodPromise(subPath, chmod);
-
-        if (utimes != null) {
-          await this.utimesPromise(subPath, utimes[0], utimes[1]);
-        } else {
-          const parentStat = await this.statPromise(this.pathUtils.dirname(subPath));
-          await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime);
-        }
-      }
-    }
-  }
-
-  mkdirpSync(p, {
-    chmod,
-    utimes
-  } = {}) {
-    p = this.resolve(p);
-    if (p === this.pathUtils.dirname(p)) return;
-    const parts = p.split(this.pathUtils.sep);
-
-    for (let u = 2; u <= parts.length; ++u) {
-      const subPath = parts.slice(0, u).join(this.pathUtils.sep);
-
-      if (!this.existsSync(subPath)) {
-        try {
-          this.mkdirSync(subPath);
-        } catch (error) {
-          if (error.code === `EEXIST`) {
-            continue;
-          } else {
-            throw error;
-          }
-        }
-
-        if (chmod != null) this.chmodSync(subPath, chmod);
-
-        if (utimes != null) {
-          this.utimesSync(subPath, utimes[0], utimes[1]);
-        } else {
-          const parentStat = this.statSync(this.pathUtils.dirname(subPath));
-          this.utimesSync(subPath, parentStat.atime, parentStat.mtime);
-        }
-      }
-    }
-  }
-
-  async copyPromise(destination, source, {
-    baseFs = this,
-    overwrite = true,
-    stableSort = false,
-    stableTime = false
-  } = {}) {
-    return await copyPromise(this, destination, baseFs, source, {
-      overwrite,
-      stableSort,
-      stableTime
-    });
-  }
-
-  copySync(destination, source, {
-    baseFs = this,
-    overwrite = true
-  } = {}) {
-    const stat = baseFs.lstatSync(source);
-    const exists = this.existsSync(destination);
-
-    if (stat.isDirectory()) {
-      this.mkdirpSync(destination);
-      const directoryListing = baseFs.readdirSync(source);
-
-      for (const entry of directoryListing) {
-        this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), {
-          baseFs,
-          overwrite
-        });
-      }
-    } else if (stat.isFile()) {
-      if (!exists || overwrite) {
-        if (exists) this.removeSync(destination);
-        const content = baseFs.readFileSync(source);
-        this.writeFileSync(destination, content);
-      }
-    } else if (stat.isSymbolicLink()) {
-      if (!exists || overwrite) {
-        if (exists) this.removeSync(destination);
-        const target = baseFs.readlinkSync(source);
-        this.symlinkSync((0,path/* convertPath */.CI)(this.pathUtils, target), destination);
-      }
-    } else {
-      throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`);
-    }
-
-    const mode = stat.mode & 0o777;
-    this.chmodSync(destination, mode);
-  }
-
-  async changeFilePromise(p, content, {
-    automaticNewlines
-  } = {}) {
-    let current = ``;
-
-    try {
-      current = await this.readFilePromise(p, `utf8`);
-    } catch (error) {// ignore errors, no big deal
-    }
-
-    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
-    if (current === normalizedContent) return;
-    await this.writeFilePromise(p, normalizedContent);
-  }
-
-  changeFileSync(p, content, {
-    automaticNewlines = false
-  } = {}) {
-    let current = ``;
-
-    try {
-      current = this.readFileSync(p, `utf8`);
-    } catch (error) {// ignore errors, no big deal
-    }
-
-    const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content;
-    if (current === normalizedContent) return;
-    this.writeFileSync(p, normalizedContent);
-  }
-
-  async movePromise(fromP, toP) {
-    try {
-      await this.renamePromise(fromP, toP);
-    } catch (error) {
-      if (error.code === `EXDEV`) {
-        await this.copyPromise(toP, fromP);
-        await this.removePromise(fromP);
-      } else {
-        throw error;
-      }
-    }
-  }
-
-  moveSync(fromP, toP) {
-    try {
-      this.renameSync(fromP, toP);
-    } catch (error) {
-      if (error.code === `EXDEV`) {
-        this.copySync(toP, fromP);
-        this.removeSync(fromP);
-      } else {
-        throw error;
-      }
-    }
-  }
-
-  async lockPromise(affectedPath, callback) {
-    const lockPath = `${affectedPath}.flock`;
-    const interval = 1000 / 60;
-    const startTime = Date.now();
-    let fd = null; // Even when we detect that a lock file exists, we still look inside to see
-    // whether the pid that created it is still alive. It's not foolproof
-    // (there are false positive), but there are no false negative and that's
-    // all that matters in 99% of the cases.
-
-    const isAlive = async () => {
-      let pid;
-
-      try {
-        [pid] = await this.readJsonPromise(lockPath);
-      } catch (error) {
-        // If we can't read the file repeatedly, we assume the process was
-        // aborted before even writing finishing writing the payload.
-        return Date.now() - startTime < 500;
-      }
-
-      try {
-        // "As a special case, a signal of 0 can be used to test for the
-        // existence of a process" - so we check whether it's alive.
-        process.kill(pid, 0);
-        return true;
-      } catch (error) {
-        return false;
-      }
-    };
-
-    while (fd === null) {
-      try {
-        fd = await this.openPromise(lockPath, `wx`);
-      } catch (error) {
-        if (error.code === `EEXIST`) {
-          if (!(await isAlive())) {
-            try {
-              await this.unlinkPromise(lockPath);
-              continue;
-            } catch (error) {// No big deal if we can't remove it. Just fallback to wait for
-              // it to be eventually released by its owner.
-            }
-          }
-
-          if (Date.now() - startTime < 60 * 1000) {
-            await new Promise(resolve => setTimeout(resolve, interval));
-          } else {
-            throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`);
-          }
-        } else {
-          throw error;
-        }
-      }
-    }
-
-    await this.writePromise(fd, JSON.stringify([process.pid]));
-
-    try {
-      return await callback();
-    } finally {
-      try {
-        await this.unlinkPromise(lockPath);
-        await this.closePromise(fd);
-      } catch (error) {// noop
-      }
-    }
-  }
-
-  async readJsonPromise(p) {
-    const content = await this.readFilePromise(p, `utf8`);
-
-    try {
-      return JSON.parse(content);
-    } catch (error) {
-      error.message += ` (in ${p})`;
-      throw error;
-    }
-  }
-
-  async readJsonSync(p) {
-    const content = this.readFileSync(p, `utf8`);
-
-    try {
-      return JSON.parse(content);
-    } catch (error) {
-      error.message += ` (in ${p})`;
-      throw error;
-    }
-  }
-
-  async writeJsonPromise(p, data) {
-    return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)}\n`);
-  }
-
-  writeJsonSync(p, data) {
-    return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}\n`);
-  }
-
-  async preserveTimePromise(p, cb) {
-    const stat = await this.lstatPromise(p);
-    const result = await cb();
-    if (typeof result !== `undefined`) p = result;
-
-    if (this.lutimesPromise) {
-      await this.lutimesPromise(p, stat.atime, stat.mtime);
-    } else if (!stat.isSymbolicLink()) {
-      await this.utimesPromise(p, stat.atime, stat.mtime);
-    }
-  }
-
-  async preserveTimeSync(p, cb) {
-    const stat = this.lstatSync(p);
-    const result = cb();
-    if (typeof result !== `undefined`) p = result;
-
-    if (this.lutimesSync) {
-      this.lutimesSync(p, stat.atime, stat.mtime);
-    } else if (!stat.isSymbolicLink()) {
-      this.utimesSync(p, stat.atime, stat.mtime);
-    }
-  }
-
-}
-FakeFS.DEFAULT_TIME = 315532800;
-class BasePortableFakeFS extends FakeFS {
-  constructor() {
-    super(path/* ppath */.y1);
-  }
-
-}
-
-function getEndOfLine(content) {
-  const matches = content.match(/\r?\n/g);
-  if (matches === null) return external_os_.EOL;
-  const crlf = matches.filter(nl => nl === `\r\n`).length;
-  const lf = matches.length - crlf;
-  return crlf > lf ? `\r\n` : `\n`;
-}
-
-function normalizeLineEndings(originalContent, newContent) {
-  return newContent.replace(/\r?\n/g, getEndOfLine(originalContent));
-}
-
-/***/ }),
-
-/***/ 9:
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */   "LZ": () => /* binding */ PortablePath,
-/* harmony export */   "cS": () => /* binding */ npath,
-/* harmony export */   "y1": () => /* binding */ ppath,
-/* harmony export */   "CI": () => /* binding */ convertPath
-/* harmony export */ });
-/* unused harmony exports Filename, toFilename */
-/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(622);
-/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);
-
-var PathType;
-
-(function (PathType) {
-  PathType[PathType["File"] = 0] = "File";
-  PathType[PathType["Portable"] = 1] = "Portable";
-  PathType[PathType["Native"] = 2] = "Native";
-})(PathType || (PathType = {}));
-
-const PortablePath = {
-  root: `/`,
-  dot: `.`
-};
-const Filename = {
-  nodeModules: `node_modules`,
-  manifest: `package.json`,
-  lockfile: `yarn.lock`,
-  rc: `.yarnrc.yml`
-};
-const npath = Object.create((path__WEBPACK_IMPORTED_MODULE_0___default()));
-const ppath = Object.create((path__WEBPACK_IMPORTED_MODULE_0___default().posix));
-
-npath.cwd = () => process.cwd();
-
-ppath.cwd = () => toPortablePath(process.cwd());
-
-ppath.resolve = (...segments) => path__WEBPACK_IMPORTED_MODULE_0___default().posix.resolve(ppath.cwd(), ...segments);
-
-const contains = function (pathUtils, from, to) {
-  from = pathUtils.normalize(from);
-  to = pathUtils.normalize(to);
-  if (from === to) return `.`;
-  if (!from.endsWith(pathUtils.sep)) from = from + pathUtils.sep;
-
-  if (to.startsWith(from)) {
-    return to.slice(from.length);
-  } else {
-    return null;
-  }
-};
-
-npath.fromPortablePath = fromPortablePath;
-npath.toPortablePath = toPortablePath;
-
-npath.contains = (from, to) => contains(npath, from, to);
-
-ppath.contains = (from, to) => contains(ppath, from, to);
-
-const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
-const UNC_WINDOWS_PATH_REGEXP = /^\\\\(\.\\)?(.*)$/;
-const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
-const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; // Path should look like "/N:/berry/scripts/plugin-pack.js"
-// And transform to "N:\berry\scripts\plugin-pack.js"
-
-function fromPortablePath(p) {
-  if (process.platform !== `win32`) return p;
-  if (p.match(PORTABLE_PATH_REGEXP)) p = p.replace(PORTABLE_PATH_REGEXP, `$1`);else if (p.match(UNC_PORTABLE_PATH_REGEXP)) p = p.replace(UNC_PORTABLE_PATH_REGEXP, (match, p1, p2) => `\\\\${p1 ? `.\\` : ``}${p2}`);else return p;
-  return p.replace(/\//g, `\\`);
-} // Path should look like "N:/berry/scripts/plugin-pack.js"
-// And transform to "/N:/berry/scripts/plugin-pack.js"
-
-
-function toPortablePath(p) {
-  if (process.platform !== `win32`) return p;
-  if (p.match(WINDOWS_PATH_REGEXP)) p = p.replace(WINDOWS_PATH_REGEXP, `/$1`);else if (p.match(UNC_WINDOWS_PATH_REGEXP)) p = p.replace(UNC_WINDOWS_PATH_REGEXP, (match, p1, p2) => `/unc/${p1 ? `.dot/` : ``}${p2}`);
-  return p.replace(/\\/g, `/`);
-}
-
-function convertPath(targetPathUtils, sourcePath) {
-  return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath);
-}
-function toFilename(filename) {
-  if (npath.parse(filename).dir !== `` || ppath.parse(filename).dir !== ``) throw new Error(`Invalid filename: "${filename}"`);
-  return filename;
-}
-
-/***/ }),
-
-/***/ 936:
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, {
-  "default": () => /* default */ _entryPoint
-});
-
-// EXTERNAL MODULE: external "fs"
-var external_fs_ = __webpack_require__(747);
-var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_);
-
-// EXTERNAL MODULE: ../yarnpkg-fslib/sources/FakeFS.ts + 1 modules
-var FakeFS = __webpack_require__(398);
-
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/errors.ts
-function makeError(code, message) {
-  return Object.assign(new Error(`${code}: ${message}`), {
-    code
-  });
-}
-
-function EBUSY(message) {
-  return makeError(`EBUSY`, message);
-}
-function ENOSYS(message, reason) {
-  return makeError(`ENOSYS`, `${message}, ${reason}`);
-}
-function EINVAL(reason) {
-  return makeError(`EINVAL`, `invalid argument, ${reason}`);
-}
-function EBADF(reason) {
-  return makeError(`EBADF`, `bad file descriptor, ${reason}`);
-}
-function ENOENT(reason) {
-  return makeError(`ENOENT`, `no such file or directory, ${reason}`);
-}
-function ENOTDIR(reason) {
-  return makeError(`ENOTDIR`, `not a directory, ${reason}`);
-}
-function EISDIR(reason) {
-  return makeError(`EISDIR`, `illegal operation on a directory, ${reason}`);
-}
-function EEXIST(reason) {
-  return makeError(`EEXIST`, `file already exists, ${reason}`);
-}
-function EROFS(reason) {
-  return makeError(`EROFS`, `read-only filesystem, ${reason}`);
-}
-// EXTERNAL MODULE: ../yarnpkg-fslib/sources/path.ts
-var sources_path = __webpack_require__(9);
-
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/NodeFS.ts
-
-
-
-
-class NodeFS extends FakeFS/* BasePortableFakeFS */.fS {
-  constructor(realFs = (external_fs_default())) {
-    super();
-    this.realFs = realFs; // @ts-ignore
-
-    if (typeof this.realFs.lutimes !== `undefined`) {
-      this.lutimesPromise = this.lutimesPromiseImpl;
-      this.lutimesSync = this.lutimesSyncImpl;
-    }
-  }
-
-  getExtractHint() {
-    return false;
-  }
-
-  getRealPath() {
-    return sources_path/* PortablePath.root */.LZ.root;
-  }
-
-  resolve(p) {
-    return sources_path/* ppath.resolve */.y1.resolve(p);
-  }
-
-  async openPromise(p, flags, mode) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.open(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject));
-    });
-  }
-
-  openSync(p, flags, mode) {
-    return this.realFs.openSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), flags, mode);
-  }
-
-  async readPromise(fd, buffer, offset = 0, length = 0, position = -1) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => {
-        if (error) {
-          reject(error);
-        } else {
-          resolve(bytesRead);
-        }
-      });
-    });
-  }
-
-  readSync(fd, buffer, offset, length, position) {
-    return this.realFs.readSync(fd, buffer, offset, length, position);
-  }
-
-  async writePromise(fd, buffer, offset, length, position) {
-    return await new Promise((resolve, reject) => {
-      if (typeof buffer === `string`) {
-        return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject));
-      } else {
-        return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject));
-      }
-    });
-  }
-
-  writeSync(fd, buffer, offset, length, position) {
-    if (typeof buffer === `string`) {
-      return this.realFs.writeSync(fd, buffer, offset);
-    } else {
-      return this.realFs.writeSync(fd, buffer, offset, length, position);
-    }
-  }
-
-  async closePromise(fd) {
-    await new Promise((resolve, reject) => {
-      this.realFs.close(fd, this.makeCallback(resolve, reject));
-    });
-  }
-
-  closeSync(fd) {
-    this.realFs.closeSync(fd);
-  }
-
-  createReadStream(p, opts) {
-    const realPath = p !== null ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-    return this.realFs.createReadStream(realPath, opts);
-  }
-
-  createWriteStream(p, opts) {
-    const realPath = p !== null ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-    return this.realFs.createWriteStream(realPath, opts);
-  }
-
-  async realpathPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.realpath(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {}, this.makeCallback(resolve, reject));
-    }).then(path => {
-      return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
-    });
-  }
-
-  realpathSync(p) {
-    return sources_path/* npath.toPortablePath */.cS.toPortablePath(this.realFs.realpathSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {}));
-  }
-
-  async existsPromise(p) {
-    return await new Promise(resolve => {
-      this.realFs.exists(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), resolve);
-    });
-  }
-
-  accessSync(p, mode) {
-    return this.realFs.accessSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mode);
-  }
-
-  async accessPromise(p, mode) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.access(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mode, this.makeCallback(resolve, reject));
-    });
-  }
-
-  existsSync(p) {
-    return this.realFs.existsSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-  }
-
-  async statPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.stat(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
-    });
-  }
-
-  statSync(p) {
-    return this.realFs.statSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-  }
-
-  async lstatPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.lstat(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
-    });
-  }
-
-  lstatSync(p) {
-    return this.realFs.lstatSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-  }
-
-  async chmodPromise(p, mask) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.chmod(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mask, this.makeCallback(resolve, reject));
-    });
-  }
-
-  chmodSync(p, mask) {
-    return this.realFs.chmodSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), mask);
-  }
-
-  async renamePromise(oldP, newP) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.rename(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(oldP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(newP), this.makeCallback(resolve, reject));
-    });
-  }
-
-  renameSync(oldP, newP) {
-    return this.realFs.renameSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(oldP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(newP));
-  }
-
-  async copyFilePromise(sourceP, destP, flags = 0) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.copyFile(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(sourceP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(destP), flags, this.makeCallback(resolve, reject));
-    });
-  }
-
-  copyFileSync(sourceP, destP, flags = 0) {
-    return this.realFs.copyFileSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(sourceP), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(destP), flags);
-  }
-
-  async appendFilePromise(p, content, opts) {
-    return await new Promise((resolve, reject) => {
-      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-
-      if (opts) {
-        this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
-      } else {
-        this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject));
-      }
-    });
-  }
-
-  appendFileSync(p, content, opts) {
-    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-
-    if (opts) {
-      this.realFs.appendFileSync(fsNativePath, content, opts);
-    } else {
-      this.realFs.appendFileSync(fsNativePath, content);
-    }
-  }
-
-  async writeFilePromise(p, content, opts) {
-    return await new Promise((resolve, reject) => {
-      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-
-      if (opts) {
-        this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject));
-      } else {
-        this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject));
-      }
-    });
-  }
-
-  writeFileSync(p, content, opts) {
-    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-
-    if (opts) {
-      this.realFs.writeFileSync(fsNativePath, content, opts);
-    } else {
-      this.realFs.writeFileSync(fsNativePath, content);
-    }
-  }
-
-  async unlinkPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.unlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
-    });
-  }
-
-  unlinkSync(p) {
-    return this.realFs.unlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-  }
-
-  async utimesPromise(p, atime, mtime) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.utimes(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
-    });
-  }
-
-  utimesSync(p, atime, mtime) {
-    this.realFs.utimesSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime);
-  }
-
-  async lutimesPromiseImpl(p, atime, mtime) {
-    // @ts-ignore: Not yet in DefinitelyTyped
-    const lutimes = this.realFs.lutimes;
-    if (typeof lutimes === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`);
-    return await new Promise((resolve, reject) => {
-      lutimes.call(this.realFs, sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject));
-    });
-  }
-
-  lutimesSyncImpl(p, atime, mtime) {
-    // @ts-ignore: Not yet in DefinitelyTyped
-    const lutimesSync = this.realFs.lutimesSync;
-    if (typeof lutimesSync === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`);
-    lutimesSync.call(this.realFs, sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), atime, mtime);
-  }
-
-  async mkdirPromise(p, opts) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.mkdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
-    });
-  }
-
-  mkdirSync(p, opts) {
-    return this.realFs.mkdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), opts);
-  }
-
-  async rmdirPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.rmdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
-    });
-  }
-
-  rmdirSync(p) {
-    return this.realFs.rmdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-  }
-
-  async symlinkPromise(target, p, type) {
-    const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`);
-    return await new Promise((resolve, reject) => {
-      this.realFs.symlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(target.replace(/\/+$/, ``)), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), symlinkType, this.makeCallback(resolve, reject));
-    });
-  }
-
-  symlinkSync(target, p, type) {
-    const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`);
-    return this.realFs.symlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(target.replace(/\/+$/, ``)), sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), symlinkType);
-  }
-
-  async readFilePromise(p, encoding) {
-    return await new Promise((resolve, reject) => {
-      const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-      this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject));
-    });
-  }
-
-  readFileSync(p, encoding) {
-    const fsNativePath = typeof p === `string` ? sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p) : p;
-    return this.realFs.readFileSync(fsNativePath, encoding);
-  }
-
-  async readdirPromise(p, {
-    withFileTypes
-  } = {}) {
-    return await new Promise((resolve, reject) => {
-      if (withFileTypes) {
-        this.realFs.readdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {
-          withFileTypes: true
-        }, this.makeCallback(resolve, reject));
-      } else {
-        this.realFs.readdir(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(value => resolve(value), reject));
-      }
-    });
-  }
-
-  readdirSync(p, {
-    withFileTypes
-  } = {}) {
-    if (withFileTypes) {
-      return this.realFs.readdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), {
-        withFileTypes: true
-      });
-    } else {
-      return this.realFs.readdirSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p));
-    }
-  }
-
-  async readlinkPromise(p) {
-    return await new Promise((resolve, reject) => {
-      this.realFs.readlink(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), this.makeCallback(resolve, reject));
-    }).then(path => {
-      return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
-    });
-  }
-
-  readlinkSync(p) {
-    return sources_path/* npath.toPortablePath */.cS.toPortablePath(this.realFs.readlinkSync(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p)));
-  }
-
-  watch(p, a, b) {
-    return this.realFs.watch(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(p), // @ts-ignore
-    a, b);
-  }
-
-  makeCallback(resolve, reject) {
-    return (err, result) => {
-      if (err) {
-        reject(err);
-      } else {
-        resolve(result);
-      }
-    };
-  }
-
-}
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ProxiedFS.ts
-
-class ProxiedFS extends FakeFS/* FakeFS */.uY {
-  getExtractHint(hints) {
-    return this.baseFs.getExtractHint(hints);
-  }
-
-  resolve(path) {
-    return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path)));
-  }
-
-  getRealPath() {
-    return this.mapFromBase(this.baseFs.getRealPath());
-  }
-
-  openPromise(p, flags, mode) {
-    return this.baseFs.openPromise(this.mapToBase(p), flags, mode);
-  }
-
-  openSync(p, flags, mode) {
-    return this.baseFs.openSync(this.mapToBase(p), flags, mode);
-  }
-
-  async readPromise(fd, buffer, offset, length, position) {
-    return await this.baseFs.readPromise(fd, buffer, offset, length, position);
-  }
-
-  readSync(fd, buffer, offset, length, position) {
-    return this.baseFs.readSync(fd, buffer, offset, length, position);
-  }
-
-  async writePromise(fd, buffer, offset, length, position) {
-    if (typeof buffer === `string`) {
-      return await this.baseFs.writePromise(fd, buffer, offset);
-    } else {
-      return await this.baseFs.writePromise(fd, buffer, offset, length, position);
-    }
-  }
-
-  writeSync(fd, buffer, offset, length, position) {
-    if (typeof buffer === `string`) {
-      return this.baseFs.writeSync(fd, buffer, offset);
-    } else {
-      return this.baseFs.writeSync(fd, buffer, offset, length, position);
-    }
-  }
-
-  closePromise(fd) {
-    return this.baseFs.closePromise(fd);
-  }
-
-  closeSync(fd) {
-    this.baseFs.closeSync(fd);
-  }
-
-  createReadStream(p, opts) {
-    return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts);
-  }
-
-  createWriteStream(p, opts) {
-    return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts);
-  }
-
-  async realpathPromise(p) {
-    return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p)));
-  }
-
-  realpathSync(p) {
-    return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p)));
-  }
-
-  existsPromise(p) {
-    return this.baseFs.existsPromise(this.mapToBase(p));
-  }
-
-  existsSync(p) {
-    return this.baseFs.existsSync(this.mapToBase(p));
-  }
-
-  accessSync(p, mode) {
-    return this.baseFs.accessSync(this.mapToBase(p), mode);
-  }
-
-  accessPromise(p, mode) {
-    return this.baseFs.accessPromise(this.mapToBase(p), mode);
-  }
-
-  statPromise(p) {
-    return this.baseFs.statPromise(this.mapToBase(p));
-  }
-
-  statSync(p) {
-    return this.baseFs.statSync(this.mapToBase(p));
-  }
-
-  lstatPromise(p) {
-    return this.baseFs.lstatPromise(this.mapToBase(p));
-  }
-
-  lstatSync(p) {
-    return this.baseFs.lstatSync(this.mapToBase(p));
-  }
-
-  chmodPromise(p, mask) {
-    return this.baseFs.chmodPromise(this.mapToBase(p), mask);
-  }
-
-  chmodSync(p, mask) {
-    return this.baseFs.chmodSync(this.mapToBase(p), mask);
-  }
-
-  renamePromise(oldP, newP) {
-    return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP));
-  }
-
-  renameSync(oldP, newP) {
-    return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP));
-  }
-
-  copyFilePromise(sourceP, destP, flags = 0) {
-    return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags);
-  }
-
-  copyFileSync(sourceP, destP, flags = 0) {
-    return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags);
-  }
-
-  appendFilePromise(p, content, opts) {
-    return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts);
-  }
-
-  appendFileSync(p, content, opts) {
-    return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts);
-  }
-
-  writeFilePromise(p, content, opts) {
-    return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts);
-  }
-
-  writeFileSync(p, content, opts) {
-    return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts);
-  }
-
-  unlinkPromise(p) {
-    return this.baseFs.unlinkPromise(this.mapToBase(p));
-  }
-
-  unlinkSync(p) {
-    return this.baseFs.unlinkSync(this.mapToBase(p));
-  }
-
-  utimesPromise(p, atime, mtime) {
-    return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime);
-  }
-
-  utimesSync(p, atime, mtime) {
-    return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime);
-  }
-
-  mkdirPromise(p, opts) {
-    return this.baseFs.mkdirPromise(this.mapToBase(p), opts);
-  }
-
-  mkdirSync(p, opts) {
-    return this.baseFs.mkdirSync(this.mapToBase(p), opts);
-  }
-
-  rmdirPromise(p) {
-    return this.baseFs.rmdirPromise(this.mapToBase(p));
-  }
-
-  rmdirSync(p) {
-    return this.baseFs.rmdirSync(this.mapToBase(p));
-  }
-
-  symlinkPromise(target, p, type) {
-    return this.baseFs.symlinkPromise(this.mapToBase(target), this.mapToBase(p), type);
-  }
-
-  symlinkSync(target, p, type) {
-    return this.baseFs.symlinkSync(this.mapToBase(target), this.mapToBase(p), type);
-  }
-
-  readFilePromise(p, encoding) {
-    // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
-    if (encoding === `utf8`) {
-      return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding);
-    } else {
-      return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding);
-    }
-  }
-
-  readFileSync(p, encoding) {
-    // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
-    if (encoding === `utf8`) {
-      return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
-    } else {
-      return this.baseFs.readFileSync(this.fsMapToBase(p), encoding);
-    }
-  }
-
-  async readdirPromise(p, {
-    withFileTypes
-  } = {}) {
-    return this.baseFs.readdirPromise(this.mapToBase(p), {
-      withFileTypes: withFileTypes
-    });
-  }
-
-  readdirSync(p, {
-    withFileTypes
-  } = {}) {
-    return this.baseFs.readdirSync(this.mapToBase(p), {
-      withFileTypes: withFileTypes
-    });
-  }
-
-  async readlinkPromise(p) {
-    return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p)));
-  }
-
-  readlinkSync(p) {
-    return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p)));
-  }
-
-  watch(p, a, b) {
-    return this.baseFs.watch(this.mapToBase(p), // @ts-ignore
-    a, b);
-  }
-
-  fsMapToBase(p) {
-    if (typeof p === `number`) {
-      return p;
-    } else {
-      return this.mapToBase(p);
-    }
-  }
-
-}
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/VirtualFS.ts
-
-
-
-const NUMBER_REGEXP = /^[0-9]+$/; // $0: full path
-// $1: virtual folder
-// $2: virtual segment
-// $3: hash
-// $4: depth
-// $5: subpath
-
-const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/;
-const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/;
-class VirtualFS extends ProxiedFS {
-  constructor({
-    baseFs = new NodeFS()
-  } = {}) {
-    super(sources_path/* ppath */.y1);
-    this.baseFs = baseFs;
-  }
-
-  static makeVirtualPath(base, component, to) {
-    if (sources_path/* ppath.basename */.y1.basename(base) !== `$$virtual`) throw new Error(`Assertion failed: Virtual folders must be named "$$virtual"`);
-    if (!sources_path/* ppath.basename */.y1.basename(component).match(VALID_COMPONENT)) throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); // Obtains the relative distance between the virtual path and its actual target
-
-    const target = sources_path/* ppath.relative */.y1.relative(sources_path/* ppath.dirname */.y1.dirname(base), to);
-    const segments = target.split(`/`); // Counts how many levels we need to go back to start applying the rest of the path
-
-    let depth = 0;
-
-    while (depth < segments.length && segments[depth] === `..`) depth += 1;
-
-    const finalSegments = segments.slice(depth);
-    const fullVirtualPath = sources_path/* ppath.join */.y1.join(base, component, String(depth), ...finalSegments);
-    return fullVirtualPath;
-  }
-
-  static resolveVirtual(p) {
-    const match = p.match(VIRTUAL_REGEXP);
-    if (!match || !match[3] && match[5]) return p;
-    const target = sources_path/* ppath.dirname */.y1.dirname(match[1]);
-    if (!match[3] || !match[4]) return target;
-    const isnum = NUMBER_REGEXP.test(match[4]);
-    if (!isnum) return p;
-    const depth = Number(match[4]);
-    const backstep = `../`.repeat(depth);
-    const subpath = match[5] || `.`;
-    return VirtualFS.resolveVirtual(sources_path/* ppath.join */.y1.join(target, backstep, subpath));
-  }
-
-  getExtractHint(hints) {
-    return this.baseFs.getExtractHint(hints);
-  }
-
-  getRealPath() {
-    return this.baseFs.getRealPath();
-  }
-
-  realpathSync(p) {
-    const match = p.match(VIRTUAL_REGEXP);
-    if (!match) return this.baseFs.realpathSync(p);
-    if (!match[5]) return p;
-    const realpath = this.baseFs.realpathSync(this.mapToBase(p));
-    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
-  }
-
-  async realpathPromise(p) {
-    const match = p.match(VIRTUAL_REGEXP);
-    if (!match) return await this.baseFs.realpathPromise(p);
-    if (!match[5]) return p;
-    const realpath = await this.baseFs.realpathPromise(this.mapToBase(p));
-    return VirtualFS.makeVirtualPath(match[1], match[3], realpath);
-  }
-
-  mapToBase(p) {
-    return VirtualFS.resolveVirtual(p);
-  }
-
-  mapFromBase(p) {
-    return p;
-  }
-
-}
-// EXTERNAL MODULE: external "stream"
-var external_stream_ = __webpack_require__(413);
-
-// EXTERNAL MODULE: external "util"
-var external_util_ = __webpack_require__(669);
-
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipFS.ts
-
-
-
-
-
-
-
-const DEFAULT_COMPRESSION_LEVEL = `mixed`;
-const S_IFMT = 0o170000;
-const S_IFDIR = 0o040000;
-const S_IFREG = 0o100000;
-const S_IFLNK = 0o120000;
-
-class DirEntry {
-  constructor() {
-    this.name = ``;
-    this.mode = 0;
-  }
-
-  isBlockDevice() {
-    return false;
-  }
-
-  isCharacterDevice() {
-    return false;
-  }
-
-  isDirectory() {
-    return (this.mode & S_IFMT) === S_IFDIR;
-  }
-
-  isFIFO() {
-    return false;
-  }
-
-  isFile() {
-    return (this.mode & S_IFMT) === S_IFREG;
-  }
-
-  isSocket() {
-    return false;
-  }
-
-  isSymbolicLink() {
-    return (this.mode & S_IFMT) === S_IFLNK;
-  }
-
-}
-
-class StatEntry {
-  constructor() {
-    this.dev = 0;
-    this.ino = 0;
-    this.mode = 0;
-    this.nlink = 1;
-    this.rdev = 0;
-    this.blocks = 1;
-  }
-
-  isBlockDevice() {
-    return false;
-  }
-
-  isCharacterDevice() {
-    return false;
-  }
-
-  isDirectory() {
-    return (this.mode & S_IFMT) === S_IFDIR;
-  }
-
-  isFIFO() {
-    return false;
-  }
-
-  isFile() {
-    return (this.mode & S_IFMT) === S_IFREG;
-  }
-
-  isSocket() {
-    return false;
-  }
-
-  isSymbolicLink() {
-    return (this.mode & S_IFMT) === S_IFLNK;
-  }
-
-}
-
-function makeDefaultStats() {
-  return Object.assign(new StatEntry(), {
-    uid: 0,
-    gid: 0,
-    size: 0,
-    blksize: 0,
-    atimeMs: 0,
-    mtimeMs: 0,
-    ctimeMs: 0,
-    birthtimeMs: 0,
-    atime: new Date(0),
-    mtime: new Date(0),
-    ctime: new Date(0),
-    birthtime: new Date(0),
-    mode: S_IFREG | 0o644
-  });
-}
-
-function toUnixTimestamp(time) {
-  if (typeof time === `string` && String(+time) === time) return +time; // @ts-ignore
-
-  if (Number.isFinite(time)) {
-    if (time < 0) {
-      return Date.now() / 1000;
-    } else {
-      return time;
-    }
-  } // convert to 123.456 UNIX timestamp
-
-
-  if ((0,external_util_.isDate)(time)) return time.getTime() / 1000;
-  throw new Error(`Invalid time`);
-}
-
-class ZipFS extends FakeFS/* BasePortableFakeFS */.fS {
-  constructor(source, opts) {
-    super();
-    this.lzSource = null;
-    this.listings = new Map();
-    this.entries = new Map();
-    this.fds = new Map();
-    this.nextFd = 0;
-    this.ready = false;
-    this.readOnly = false;
-    this.libzip = opts.libzip;
-    const pathOptions = opts;
-    this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL;
-
-    if (source === null) {
-      source = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
-    }
-
-    if (typeof source === `string`) {
-      const {
-        baseFs = new NodeFS()
-      } = pathOptions;
-      this.baseFs = baseFs;
-      this.path = source;
-    } else {
-      this.path = null;
-      this.baseFs = null;
-    }
-
-    if (opts.stats) {
-      this.stats = opts.stats;
-    } else {
-      if (typeof source === `string`) {
-        try {
-          this.stats = this.baseFs.statSync(source);
-        } catch (error) {
-          if (error.code === `ENOENT` && pathOptions.create) {
-            this.stats = makeDefaultStats();
-          } else {
-            throw error;
-          }
-        }
-      } else {
-        this.stats = makeDefaultStats();
-      }
-    }
-
-    const errPtr = this.libzip.malloc(4);
-
-    try {
-      let flags = 0;
-      if (typeof source === `string` && pathOptions.create) flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE;
-
-      if (opts.readOnly) {
-        flags |= this.libzip.ZIP_RDONLY;
-        this.readOnly = true;
-      }
-
-      if (typeof source === `string`) {
-        this.zip = this.libzip.open(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(source), flags, errPtr);
-      } else {
-        const lzSource = this.allocateUnattachedSource(source);
-
-        try {
-          this.zip = this.libzip.openFromSource(lzSource, flags, errPtr);
-          this.lzSource = lzSource;
-        } catch (error) {
-          this.libzip.source.free(lzSource);
-          throw error;
-        }
-      }
-
-      if (this.zip === 0) {
-        const error = this.libzip.struct.errorS();
-        this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`));
-        throw new Error(this.libzip.error.strerror(error));
-      }
-    } finally {
-      this.libzip.free(errPtr);
-    }
-
-    this.listings.set(sources_path/* PortablePath.root */.LZ.root, new Set());
-    const entryCount = this.libzip.getNumEntries(this.zip, 0);
-
-    for (let t = 0; t < entryCount; ++t) {
-      const raw = this.libzip.getName(this.zip, t, 0);
-      if (sources_path/* ppath.isAbsolute */.y1.isAbsolute(raw)) continue;
-      const p = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, raw);
-      this.registerEntry(p, t); // If the raw path is a directory, register it
-      // to prevent empty folder being skipped
-
-      if (raw.endsWith(`/`)) {
-        this.registerListing(p);
-      }
-    }
-
-    this.symlinkCount = this.libzip.ext.countSymlinks(this.zip);
-    this.ready = true;
-  }
-
-  getExtractHint(hints) {
-    for (const fileName of this.entries.keys()) {
-      const ext = this.pathUtils.extname(fileName);
-
-      if (hints.relevantExtensions.has(ext)) {
-        return true;
-      }
-    }
-
-    return false;
-  }
-
-  getAllFiles() {
-    return Array.from(this.entries.keys());
-  }
-
-  getRealPath() {
-    if (!this.path) throw new Error(`ZipFS don't have real paths when loaded from a buffer`);
-    return this.path;
-  }
-
-  getBufferAndClose() {
-    if (!this.ready) throw EBUSY(`archive closed, close`);
-    if (!this.lzSource) throw new Error(`ZipFS was not created from a Buffer`);
-
-    try {
-      // Prevent close from cleaning up the source
-      this.libzip.source.keep(this.lzSource); // Close the zip archive
-
-      if (this.libzip.close(this.zip) === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip))); // Open the source for reading
-
-      if (this.libzip.source.open(this.lzSource) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource))); // Move to the end of source
-
-      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource))); // Get the size of source
-
-      const size = this.libzip.source.tell(this.lzSource); // Move to the start of source
-
-      if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));
-      const buffer = this.libzip.malloc(size);
-      if (!buffer) throw new Error(`Couldn't allocate enough memory`);
-
-      try {
-        const rc = this.libzip.source.read(this.lzSource, buffer, size);
-        if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`);
-        const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size);
-        return Buffer.from(memory);
-      } finally {
-        this.libzip.free(buffer);
-      }
-    } finally {
-      this.libzip.source.close(this.lzSource);
-      this.libzip.source.free(this.lzSource);
-      this.ready = false;
-    }
-  }
-
-  saveAndClose() {
-    if (!this.path || !this.baseFs) throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`);
-    if (!this.ready) throw EBUSY(`archive closed, close`);
-
-    if (this.readOnly) {
-      this.discardAndClose();
-      return;
-    }
-
-    const previousMod = this.baseFs.existsSync(this.path) ? this.baseFs.statSync(this.path).mode & 0o777 : null;
-    const rc = this.libzip.close(this.zip);
-    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip))); // this.libzip overrides the chmod when writing the archive, which is a weird
-    // behavior I don't totally understand (plus the umask seems bogus in some
-    // weird cases - maybe related to emscripten?)
-    //
-    // See also https://github.com/nih-at/libzip/issues/77
-
-    if (previousMod === null) this.baseFs.chmodSync(this.path, this.stats.mode);else if (previousMod !== (this.baseFs.statSync(this.path).mode & 0o777)) this.baseFs.chmodSync(this.path, previousMod);
-    this.ready = false;
-  }
-
-  discardAndClose() {
-    if (!this.ready) throw EBUSY(`archive closed, close`);
-    this.libzip.discard(this.zip);
-    this.ready = false;
-  }
-
-  resolve(p) {
-    return sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
-  }
-
-  async openPromise(p, flags, mode) {
-    return this.openSync(p, flags, mode);
-  }
-
-  openSync(p, flags, mode) {
-    const fd = this.nextFd++;
-    this.fds.set(fd, {
-      cursor: 0,
-      p
-    });
-    return fd;
-  }
-
-  async readPromise(fd, buffer, offset, length, position) {
-    return this.readSync(fd, buffer, offset, length, position);
-  }
-
-  readSync(fd, buffer, offset = 0, length = 0, position = -1) {
-    const entry = this.fds.get(fd);
-    if (typeof entry === `undefined`) throw EBADF(`read`);
-    let realPosition;
-    if (position === -1 || position === null) realPosition = entry.cursor;else realPosition = position;
-    const source = this.readFileSync(entry.p);
-    source.copy(buffer, offset, realPosition, realPosition + length);
-    const bytesRead = Math.max(0, Math.min(source.length - realPosition, length));
-    if (position === -1 || position === null) entry.cursor += bytesRead;
-    return bytesRead;
-  }
-
-  async writePromise(fd, buffer, offset, length, position) {
-    if (typeof buffer === `string`) {
-      return this.writeSync(fd, buffer, position);
-    } else {
-      return this.writeSync(fd, buffer, offset, length, position);
-    }
-  }
-
-  writeSync(fd, buffer, offset, length, position) {
-    const entry = this.fds.get(fd);
-    if (typeof entry === `undefined`) throw EBADF(`read`);
-    throw new Error(`Unimplemented`);
-  }
-
-  async closePromise(fd) {
-    return this.closeSync(fd);
-  }
-
-  closeSync(fd) {
-    const entry = this.fds.get(fd);
-    if (typeof entry === `undefined`) throw EBADF(`read`);
-    this.fds.delete(fd);
-  }
-
-  createReadStream(p, {
-    encoding
-  } = {}) {
-    if (p === null) throw new Error(`Unimplemented`);
-    const stream = Object.assign(new external_stream_.PassThrough(), {
-      bytesRead: 0,
-      path: p,
-      close: () => {
-        clearImmediate(immediate);
-      }
-    });
-    const immediate = setImmediate(() => {
-      try {
-        const data = this.readFileSync(p, encoding);
-        stream.bytesRead = data.length;
-        stream.write(data);
-        stream.end();
-      } catch (error) {
-        stream.emit(`error`, error);
-        stream.end();
-      }
-    });
-    return stream;
-  }
-
-  createWriteStream(p, {
-    encoding
-  } = {}) {
-    if (this.readOnly) throw EROFS(`open '${p}'`);
-    if (p === null) throw new Error(`Unimplemented`);
-    const stream = Object.assign(new external_stream_.PassThrough(), {
-      bytesWritten: 0,
-      path: p,
-      close: () => {
-        stream.end();
-      }
-    });
-    const chunks = [];
-    stream.on(`data`, chunk => {
-      const chunkBuffer = Buffer.from(chunk);
-      stream.bytesWritten += chunkBuffer.length;
-      chunks.push(chunkBuffer);
-    });
-    stream.on(`end`, () => {
-      this.writeFileSync(p, Buffer.concat(chunks), encoding);
-    });
-    return stream;
-  }
-
-  async realpathPromise(p) {
-    return this.realpathSync(p);
-  }
-
-  realpathSync(p) {
-    const resolvedP = this.resolveFilename(`lstat '${p}'`, p);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`);
-    return resolvedP;
-  }
-
-  async existsPromise(p) {
-    return this.existsSync(p);
-  }
-
-  existsSync(p) {
-    if (!this.ready) throw EBUSY(`archive closed, existsSync '${p}'`);
-
-    if (this.symlinkCount === 0) {
-      const resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
-      return this.entries.has(resolvedP) || this.listings.has(resolvedP);
-    }
-
-    let resolvedP;
-
-    try {
-      resolvedP = this.resolveFilename(`stat '${p}'`, p);
-    } catch (error) {
-      return false;
-    }
-
-    return this.entries.has(resolvedP) || this.listings.has(resolvedP);
-  }
-
-  async accessPromise(p, mode) {
-    return this.accessSync(p, mode);
-  }
-
-  accessSync(p, mode = external_fs_.constants.F_OK) {
-    const resolvedP = this.resolveFilename(`access '${p}'`, p);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`access '${p}'`);
-
-    if (this.readOnly && mode & external_fs_.constants.W_OK) {
-      throw EROFS(`access '${p}'`);
-    }
-  }
-
-  async statPromise(p) {
-    return this.statSync(p);
-  }
-
-  statSync(p) {
-    const resolvedP = this.resolveFilename(`stat '${p}'`, p);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`stat '${p}'`);
-    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`stat '${p}'`);
-    return this.statImpl(`stat '${p}'`, resolvedP);
-  }
-
-  async lstatPromise(p) {
-    return this.lstatSync(p);
-  }
-
-  lstatSync(p) {
-    const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`);
-    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`lstat '${p}'`);
-    return this.statImpl(`lstat '${p}'`, resolvedP);
-  }
-
-  statImpl(reason, p) {
-    const entry = this.entries.get(p); // File, or explicit directory
-
-    if (typeof entry !== `undefined`) {
-      const stat = this.libzip.struct.statS();
-      const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat);
-      if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-      const uid = this.stats.uid;
-      const gid = this.stats.gid;
-      const size = this.libzip.struct.statSize(stat) >>> 0;
-      const blksize = 512;
-      const blocks = Math.ceil(size / blksize);
-      const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1000;
-      const atimeMs = mtimeMs;
-      const birthtimeMs = mtimeMs;
-      const ctimeMs = mtimeMs;
-      const atime = new Date(atimeMs);
-      const birthtime = new Date(birthtimeMs);
-      const ctime = new Date(ctimeMs);
-      const mtime = new Date(mtimeMs);
-      const type = this.listings.has(p) ? S_IFDIR : this.isSymbolicLink(entry) ? S_IFLNK : S_IFREG;
-      const defaultMode = type === S_IFDIR ? 0o755 : 0o644;
-      const mode = type | this.getUnixMode(entry, defaultMode) & 0o777;
-      return Object.assign(new StatEntry(), {
-        uid,
-        gid,
-        size,
-        blksize,
-        blocks,
-        atime,
-        birthtime,
-        ctime,
-        mtime,
-        atimeMs,
-        birthtimeMs,
-        ctimeMs,
-        mtimeMs,
-        mode
-      });
-    } // Implicit directory
-
-
-    if (this.listings.has(p)) {
-      const uid = this.stats.uid;
-      const gid = this.stats.gid;
-      const size = 0;
-      const blksize = 512;
-      const blocks = 0;
-      const atimeMs = this.stats.mtimeMs;
-      const birthtimeMs = this.stats.mtimeMs;
-      const ctimeMs = this.stats.mtimeMs;
-      const mtimeMs = this.stats.mtimeMs;
-      const atime = new Date(atimeMs);
-      const birthtime = new Date(birthtimeMs);
-      const ctime = new Date(ctimeMs);
-      const mtime = new Date(mtimeMs);
-      const mode = S_IFDIR | 0o755;
-      return Object.assign(new StatEntry(), {
-        uid,
-        gid,
-        size,
-        blksize,
-        blocks,
-        atime,
-        birthtime,
-        ctime,
-        mtime,
-        atimeMs,
-        birthtimeMs,
-        ctimeMs,
-        mtimeMs,
-        mode
-      });
-    }
-
-    throw new Error(`Unreachable`);
-  }
-
-  getUnixMode(index, defaultMode) {
-    const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
-    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
-    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return defaultMode;
-    return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
-  }
-
-  registerListing(p) {
-    let listing = this.listings.get(p);
-    if (listing) return listing;
-    const parentListing = this.registerListing(sources_path/* ppath.dirname */.y1.dirname(p));
-    listing = new Set();
-    parentListing.add(sources_path/* ppath.basename */.y1.basename(p));
-    this.listings.set(p, listing);
-    return listing;
-  }
-
-  registerEntry(p, index) {
-    const parentListing = this.registerListing(sources_path/* ppath.dirname */.y1.dirname(p));
-    parentListing.add(sources_path/* ppath.basename */.y1.basename(p));
-    this.entries.set(p, index);
-  }
-
-  resolveFilename(reason, p, resolveLastComponent = true) {
-    if (!this.ready) throw EBUSY(`archive closed, ${reason}`);
-    let resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* PortablePath.root */.LZ.root, p);
-    if (resolvedP === `/`) return sources_path/* PortablePath.root */.LZ.root;
-    const fileIndex = this.entries.get(resolvedP);
-
-    if (resolveLastComponent && fileIndex !== undefined) {
-      if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) {
-        const target = this.getFileSource(fileIndex).toString();
-        return this.resolveFilename(reason, sources_path/* ppath.resolve */.y1.resolve(sources_path/* ppath.dirname */.y1.dirname(resolvedP), target), true);
-      } else {
-        return resolvedP;
-      }
-    }
-
-    while (true) {
-      const parentP = this.resolveFilename(reason, sources_path/* ppath.dirname */.y1.dirname(resolvedP), true);
-      const isDir = this.listings.has(parentP);
-      const doesExist = this.entries.has(parentP);
-      if (!isDir && !doesExist) throw ENOENT(reason);
-      if (!isDir) throw ENOTDIR(reason);
-      resolvedP = sources_path/* ppath.resolve */.y1.resolve(parentP, sources_path/* ppath.basename */.y1.basename(resolvedP));
-      if (!resolveLastComponent || this.symlinkCount === 0) break;
-      const index = this.libzip.name.locate(this.zip, resolvedP.slice(1));
-      if (index === -1) break;
-
-      if (this.isSymbolicLink(index)) {
-        const target = this.getFileSource(index).toString();
-        resolvedP = sources_path/* ppath.resolve */.y1.resolve(sources_path/* ppath.dirname */.y1.dirname(resolvedP), target);
-      } else {
-        break;
-      }
-    }
-
-    return resolvedP;
-  }
-
-  allocateBuffer(content) {
-    if (!Buffer.isBuffer(content)) content = Buffer.from(content);
-    const buffer = this.libzip.malloc(content.byteLength);
-    if (!buffer) throw new Error(`Couldn't allocate enough memory`); // Copy the file into the Emscripten heap
-
-    const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength);
-    heap.set(content);
-    return {
-      buffer,
-      byteLength: content.byteLength
-    };
-  }
-
-  allocateUnattachedSource(content) {
-    const error = this.libzip.struct.errorS();
-    const {
-      buffer,
-      byteLength
-    } = this.allocateBuffer(content);
-    const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, true, error);
-
-    if (source === 0) {
-      this.libzip.free(error);
-      throw new Error(this.libzip.error.strerror(error));
-    }
-
-    return source;
-  }
-
-  allocateSource(content) {
-    const {
-      buffer,
-      byteLength
-    } = this.allocateBuffer(content);
-    const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true);
-
-    if (source === 0) {
-      this.libzip.free(buffer);
-      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    }
-
-    return source;
-  }
-
-  setFileSource(p, content) {
-    const target = sources_path/* ppath.relative */.y1.relative(sources_path/* PortablePath.root */.LZ.root, p);
-    const lzSource = this.allocateSource(content);
-
-    try {
-      const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE);
-
-      if (this.level !== `mixed`) {
-        // Use store for level 0, and deflate for 1..9
-        let method;
-        if (this.level === 0) method = this.libzip.ZIP_CM_STORE;else method = this.libzip.ZIP_CM_DEFLATE;
-        const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level);
-
-        if (rc === -1) {
-          throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-        }
-      }
-
-      return newIndex;
-    } catch (error) {
-      this.libzip.source.free(lzSource);
-      throw error;
-    }
-  }
-
-  isSymbolicLink(index) {
-    if (this.symlinkCount === 0) return false;
-    const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
-    if (attrs === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
-    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return false;
-    const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
-    return (attributes & S_IFMT) === S_IFLNK;
-  }
-
-  getFileSource(index) {
-    const stat = this.libzip.struct.statS();
-    const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat);
-    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    const size = this.libzip.struct.statSize(stat);
-    const buffer = this.libzip.malloc(size);
-
-    try {
-      const file = this.libzip.fopenIndex(this.zip, index, 0, 0);
-      if (file === 0) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-
-      try {
-        const rc = this.libzip.fread(file, buffer, size, 0);
-        if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.file.getError(file)));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`);
-        const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size);
-        const data = Buffer.from(memory);
-        return data;
-      } finally {
-        this.libzip.fclose(file);
-      }
-    } finally {
-      this.libzip.free(buffer);
-    }
-  }
-
-  async chmodPromise(p, mask) {
-    return this.chmodSync(p, mask);
-  }
-
-  chmodSync(p, mask) {
-    if (this.readOnly) throw EROFS(`chmod '${p}'`); // We don't allow to make the extracted entries group-writable
-
-    mask &= 0o755;
-    const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false);
-    const entry = this.entries.get(resolvedP);
-    if (typeof entry === `undefined`) throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`);
-    const oldMod = this.getUnixMode(entry, S_IFREG | 0o000);
-    const newMod = oldMod & ~0o777 | mask;
-    const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16);
-
-    if (rc === -1) {
-      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    }
-  }
-
-  async renamePromise(oldP, newP) {
-    return this.renameSync(oldP, newP);
-  }
-
-  renameSync(oldP, newP) {
-    throw new Error(`Unimplemented`);
-  }
-
-  async copyFilePromise(sourceP, destP, flags) {
-    return this.copyFileSync(sourceP, destP, flags);
-  }
-
-  copyFileSync(sourceP, destP, flags = 0) {
-    if (this.readOnly) throw EROFS(`copyfile '${sourceP} -> '${destP}'`);
-    if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`);
-    const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP);
-    const indexSource = this.entries.get(resolvedSourceP);
-    if (typeof indexSource === `undefined`) throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`);
-    const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP);
-    const indexDest = this.entries.get(resolvedDestP);
-    if ((flags & (external_fs_.constants.COPYFILE_EXCL | external_fs_.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`);
-    const source = this.getFileSource(indexSource);
-    const newIndex = this.setFileSource(resolvedDestP, source);
-
-    if (newIndex !== indexDest) {
-      this.registerEntry(resolvedDestP, newIndex);
-    }
-  }
-
-  async appendFilePromise(p, content, opts) {
-    return this.appendFileSync(p, content, opts);
-  }
-
-  appendFileSync(p, content, opts = {}) {
-    if (this.readOnly) throw EROFS(`open '${p}'`);
-    if (typeof opts === `undefined`) opts = {
-      flag: `a`
-    };else if (typeof opts === `string`) opts = {
-      flag: `a`,
-      encoding: opts
-    };else if (typeof opts.flag === `undefined`) opts = {
-      flag: `a`,
-      ...opts
-    };
-    return this.writeFileSync(p, content, opts);
-  }
-
-  async writeFilePromise(p, content, opts) {
-    return this.writeFileSync(p, content, opts);
-  }
-
-  writeFileSync(p, content, opts) {
-    if (typeof p !== `string`) throw EBADF(`read`);
-    if (this.readOnly) throw EROFS(`open '${p}'`);
-    const resolvedP = this.resolveFilename(`open '${p}'`, p);
-    if (this.listings.has(resolvedP)) throw EISDIR(`open '${p}'`);
-    const index = this.entries.get(resolvedP);
-    if (index !== undefined && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]);
-    let encoding = null;
-    if (typeof opts === `string`) encoding = opts;else if (typeof opts === `object` && opts.encoding) encoding = opts.encoding;
-    if (encoding !== null) content = content.toString(encoding);
-    const newIndex = this.setFileSource(resolvedP, content);
-
-    if (newIndex !== index) {
-      this.registerEntry(resolvedP, newIndex);
-    }
-  }
-
-  async unlinkPromise(p) {
-    return this.unlinkSync(p);
-  }
-
-  unlinkSync(p) {
-    throw new Error(`Unimplemented`);
-  }
-
-  async utimesPromise(p, atime, mtime) {
-    return this.utimesSync(p, atime, mtime);
-  }
-
-  utimesSync(p, atime, mtime) {
-    if (this.readOnly) throw EROFS(`utimes '${p}'`);
-    const resolvedP = this.resolveFilename(`utimes '${p}'`, p);
-    this.utimesImpl(resolvedP, mtime);
-  }
-
-  async lutimesPromise(p, atime, mtime) {
-    return this.lutimesSync(p, atime, mtime);
-  }
-
-  lutimesSync(p, atime, mtime) {
-    if (this.readOnly) throw EROFS(`lutimes '${p}'`);
-    const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false);
-    this.utimesImpl(resolvedP, mtime);
-  }
-
-  utimesImpl(resolvedP, mtime) {
-    if (this.listings.has(resolvedP)) if (!this.entries.has(resolvedP)) this.hydrateDirectory(resolvedP);
-    const entry = this.entries.get(resolvedP);
-    if (entry === undefined) throw new Error(`Unreachable`);
-    const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0);
-
-    if (rc === -1) {
-      throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    }
-  }
-
-  async mkdirPromise(p, opts) {
-    return this.mkdirSync(p, opts);
-  }
-
-  mkdirSync(p, {
-    mode = 0o755,
-    recursive = false
-  } = {}) {
-    if (recursive) {
-      this.mkdirpSync(p, {
-        chmod: mode
-      });
-      return;
-    }
-
-    if (this.readOnly) throw EROFS(`mkdir '${p}'`);
-    const resolvedP = this.resolveFilename(`mkdir '${p}'`, p);
-    if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) throw EEXIST(`mkdir '${p}'`);
-    this.hydrateDirectory(resolvedP);
-    this.chmodSync(resolvedP, mode);
-  }
-
-  async rmdirPromise(p) {
-    return this.rmdirSync(p);
-  }
-
-  rmdirSync(p) {
-    throw new Error(`Unimplemented`);
-  }
-
-  hydrateDirectory(resolvedP) {
-    const index = this.libzip.dir.add(this.zip, sources_path/* ppath.relative */.y1.relative(sources_path/* PortablePath.root */.LZ.root, resolvedP));
-    if (index === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    this.registerListing(resolvedP);
-    this.registerEntry(resolvedP, index);
-    return index;
-  }
-
-  async symlinkPromise(target, p) {
-    return this.symlinkSync(target, p);
-  }
-
-  symlinkSync(target, p) {
-    if (this.readOnly) throw EROFS(`symlink '${target}' -> '${p}'`);
-    const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p);
-    if (this.listings.has(resolvedP)) throw EISDIR(`symlink '${target}' -> '${p}'`);
-    if (this.entries.has(resolvedP)) throw EEXIST(`symlink '${target}' -> '${p}'`);
-    const index = this.setFileSource(resolvedP, target);
-    this.registerEntry(resolvedP, index);
-    const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (0o120000 | 0o777) << 16);
-    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    this.symlinkCount += 1;
-  }
-
-  async readFilePromise(p, encoding) {
-    // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
-    switch (encoding) {
-      case `utf8`:
-        return this.readFileSync(p, encoding);
-
-      default:
-        return this.readFileSync(p, encoding);
-    }
-  }
-
-  readFileSync(p, encoding) {
-    if (typeof p !== `string`) throw EBADF(`read`); // This is messed up regarding the TS signatures
-
-    if (typeof encoding === `object`) // @ts-ignore
-      encoding = encoding ? encoding.encoding : undefined;
-    const resolvedP = this.resolveFilename(`open '${p}'`, p);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`open '${p}'`); // Ensures that the last component is a directory, if the user said so (even if it is we'll throw right after with EISDIR anyway)
-
-    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`);
-    if (this.listings.has(resolvedP)) throw EISDIR(`read`);
-    const entry = this.entries.get(resolvedP);
-    if (entry === undefined) throw new Error(`Unreachable`);
-    const data = this.getFileSource(entry);
-    return encoding ? data.toString(encoding) : data;
-  }
-
-  async readdirPromise(p, {
-    withFileTypes
-  } = {}) {
-    return this.readdirSync(p, {
-      withFileTypes: withFileTypes
-    });
-  }
-
-  readdirSync(p, {
-    withFileTypes
-  } = {}) {
-    const resolvedP = this.resolveFilename(`scandir '${p}'`, p);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`scandir '${p}'`);
-    const directoryListing = this.listings.get(resolvedP);
-    if (!directoryListing) throw ENOTDIR(`scandir '${p}'`);
-    const entries = [...directoryListing];
-    if (!withFileTypes) return entries;
-    return entries.map(name => {
-      return Object.assign(this.statImpl(`lstat`, sources_path/* ppath.join */.y1.join(p, name)), {
-        name
-      });
-    });
-  }
-
-  async readlinkPromise(p) {
-    return this.readlinkSync(p);
-  }
-
-  readlinkSync(p) {
-    const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false);
-    if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`readlink '${p}'`); // Ensure that the last component is a directory (if it is we'll throw right after with EISDIR anyway)
-
-    if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`);
-    if (this.listings.has(resolvedP)) throw EINVAL(`readlink '${p}'`);
-    const entry = this.entries.get(resolvedP);
-    if (entry === undefined) throw new Error(`Unreachable`);
-    const rc = this.libzip.file.getExternalAttributes(this.zip, entry, 0, 0, this.libzip.uint08S, this.libzip.uint32S);
-    if (rc === -1) throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));
-    const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0;
-    if (opsys !== this.libzip.ZIP_OPSYS_UNIX) throw EINVAL(`readlink '${p}'`);
-    const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16;
-    if ((attributes & 0o170000) !== 0o120000) throw EINVAL(`readlink '${p}'`);
-    return this.getFileSource(entry).toString();
-  }
-
-  watch(p, a, b) {
-    let persistent;
-
-    switch (typeof a) {
-      case `function`:
-      case `string`:
-      case `undefined`:
-        {
-          persistent = true;
-        }
-        break;
-
-      default:
-        {
-          // @ts-ignore
-          ({
-            persistent = true
-          } = a);
-        }
-        break;
-    }
-
-    if (!persistent) return {
-      on: () => {},
-      close: () => {}
-    };
-    const interval = setInterval(() => {}, 24 * 60 * 60 * 1000);
-    return {
-      on: () => {},
-      close: () => {
-        clearInterval(interval);
-      }
-    };
-  }
-
-}
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipOpenFS.ts
-
-
-
-
-
-const ZIP_FD = 0x80000000;
-const FILE_PARTS_REGEX = /.*?(?<!\/)\.zip(?=\/|$)/;
-class ZipOpenFS extends FakeFS/* BasePortableFakeFS */.fS {
-  constructor({
-    libzip,
-    baseFs = new NodeFS(),
-    filter = null,
-    maxOpenFiles = Infinity,
-    readOnlyArchives = false,
-    useCache = true
-  }) {
-    super();
-    this.fdMap = new Map();
-    this.nextFd = 3;
-    this.isZip = new Set();
-    this.notZip = new Set();
-    this.libzip = libzip;
-    this.baseFs = baseFs;
-    this.zipInstances = useCache ? new Map() : null;
-    this.filter = filter;
-    this.maxOpenFiles = maxOpenFiles;
-    this.readOnlyArchives = readOnlyArchives;
-  }
-
-  static async openPromise(fn, opts) {
-    const zipOpenFs = new ZipOpenFS(opts);
-
-    try {
-      return await fn(zipOpenFs);
-    } finally {
-      zipOpenFs.saveAndClose();
-    }
-  }
-
-  getExtractHint(hints) {
-    return this.baseFs.getExtractHint(hints);
-  }
-
-  getRealPath() {
-    return this.baseFs.getRealPath();
-  }
-
-  saveAndClose() {
-    if (this.zipInstances) {
-      for (const [path, zipFs] of this.zipInstances.entries()) {
-        zipFs.saveAndClose();
-        this.zipInstances.delete(path);
-      }
-    }
-  }
-
-  discardAndClose() {
-    if (this.zipInstances) {
-      for (const [path, zipFs] of this.zipInstances.entries()) {
-        zipFs.discardAndClose();
-        this.zipInstances.delete(path);
-      }
-    }
-  }
-
-  resolve(p) {
-    return this.baseFs.resolve(p);
-  }
-
-  remapFd(zipFs, fd) {
-    const remappedFd = this.nextFd++ | ZIP_FD;
-    this.fdMap.set(remappedFd, [zipFs, fd]);
-    return remappedFd;
-  }
-
-  async openPromise(p, flags, mode) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.openPromise(p, flags, mode);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return this.remapFd(zipFs, await zipFs.openPromise(subPath, flags, mode));
-    });
-  }
-
-  openSync(p, flags, mode) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.openSync(p, flags, mode);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return this.remapFd(zipFs, zipFs.openSync(subPath, flags, mode));
-    });
-  }
-
-  async readPromise(fd, buffer, offset, length, position) {
-    if ((fd & ZIP_FD) === 0) return await this.baseFs.readPromise(fd, buffer, offset, length, position);
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), {
-      code: `EBADF`
-    });
-    const [zipFs, realFd] = entry;
-    return await zipFs.readPromise(realFd, buffer, offset, length, position);
-  }
-
-  readSync(fd, buffer, offset, length, position) {
-    if ((fd & ZIP_FD) === 0) return this.baseFs.readSync(fd, buffer, offset, length, position);
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), {
-      code: `EBADF`
-    });
-    const [zipFs, realFd] = entry;
-    return zipFs.readSync(realFd, buffer, offset, length, position);
-  }
-
-  async writePromise(fd, buffer, offset, length, position) {
-    if ((fd & ZIP_FD) === 0) {
-      if (typeof buffer === `string`) {
-        return await this.baseFs.writePromise(fd, buffer, offset);
-      } else {
-        return await this.baseFs.writePromise(fd, buffer, offset, length, position);
-      }
-    }
-
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), {
-      code: `EBADF`
-    });
-    const [zipFs, realFd] = entry;
-
-    if (typeof buffer === `string`) {
-      return await zipFs.writePromise(realFd, buffer, offset);
-    } else {
-      return await zipFs.writePromise(realFd, buffer, offset, length, position);
-    }
-  }
-
-  writeSync(fd, buffer, offset, length, position) {
-    if ((fd & ZIP_FD) === 0) {
-      if (typeof buffer === `string`) {
-        return this.baseFs.writeSync(fd, buffer, offset);
-      } else {
-        return this.baseFs.writeSync(fd, buffer, offset, length, position);
-      }
-    }
-
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), {
-      code: `EBADF`
-    });
-    const [zipFs, realFd] = entry;
-
-    if (typeof buffer === `string`) {
-      return zipFs.writeSync(realFd, buffer, offset);
-    } else {
-      return zipFs.writeSync(realFd, buffer, offset, length, position);
-    }
-  }
-
-  async closePromise(fd) {
-    if ((fd & ZIP_FD) === 0) return await this.baseFs.closePromise(fd);
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), {
-      code: `EBADF`
-    });
-    this.fdMap.delete(fd);
-    const [zipFs, realFd] = entry;
-    return await zipFs.closePromise(realFd);
-  }
-
-  closeSync(fd) {
-    if ((fd & ZIP_FD) === 0) return this.baseFs.closeSync(fd);
-    const entry = this.fdMap.get(fd);
-    if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), {
-      code: `EBADF`
-    });
-    this.fdMap.delete(fd);
-    const [zipFs, realFd] = entry;
-    return zipFs.closeSync(realFd);
-  }
-
-  createReadStream(p, opts) {
-    if (p === null) return this.baseFs.createReadStream(p, opts);
-    return this.makeCallSync(p, () => {
-      return this.baseFs.createReadStream(p, opts);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.createReadStream(subPath, opts);
-    });
-  }
-
-  createWriteStream(p, opts) {
-    if (p === null) return this.baseFs.createWriteStream(p, opts);
-    return this.makeCallSync(p, () => {
-      return this.baseFs.createWriteStream(p, opts);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.createWriteStream(subPath, opts);
-    });
-  }
-
-  async realpathPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.realpathPromise(p);
-    }, async (zipFs, {
-      archivePath,
-      subPath
-    }) => {
-      return this.pathUtils.resolve(await this.baseFs.realpathPromise(archivePath), this.pathUtils.relative(sources_path/* PortablePath.root */.LZ.root, await zipFs.realpathPromise(subPath)));
-    });
-  }
-
-  realpathSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.realpathSync(p);
-    }, (zipFs, {
-      archivePath,
-      subPath
-    }) => {
-      return this.pathUtils.resolve(this.baseFs.realpathSync(archivePath), this.pathUtils.relative(sources_path/* PortablePath.root */.LZ.root, zipFs.realpathSync(subPath)));
-    });
-  }
-
-  async existsPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.existsPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.existsPromise(subPath);
-    });
-  }
-
-  existsSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.existsSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.existsSync(subPath);
-    });
-  }
-
-  async accessPromise(p, mode) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.accessPromise(p, mode);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.accessPromise(subPath, mode);
-    });
-  }
-
-  accessSync(p, mode) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.accessSync(p, mode);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.accessSync(subPath, mode);
-    });
-  }
-
-  async statPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.statPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.statPromise(subPath);
-    });
-  }
-
-  statSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.statSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.statSync(subPath);
-    });
-  }
-
-  async lstatPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.lstatPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.lstatPromise(subPath);
-    });
-  }
-
-  lstatSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.lstatSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.lstatSync(subPath);
-    });
-  }
-
-  async chmodPromise(p, mask) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.chmodPromise(p, mask);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.chmodPromise(subPath, mask);
-    });
-  }
-
-  chmodSync(p, mask) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.chmodSync(p, mask);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.chmodSync(subPath, mask);
-    });
-  }
-
-  async renamePromise(oldP, newP) {
-    return await this.makeCallPromise(oldP, async () => {
-      return await this.makeCallPromise(newP, async () => {
-        return await this.baseFs.renamePromise(oldP, newP);
-      }, async () => {
-        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-          code: `EEXDEV`
-        });
-      });
-    }, async (zipFsO, {
-      subPath: subPathO
-    }) => {
-      return await this.makeCallPromise(newP, async () => {
-        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-          code: `EEXDEV`
-        });
-      }, async (zipFsN, {
-        subPath: subPathN
-      }) => {
-        if (zipFsO !== zipFsN) {
-          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-            code: `EEXDEV`
-          });
-        } else {
-          return await zipFsO.renamePromise(subPathO, subPathN);
-        }
-      });
-    });
-  }
-
-  renameSync(oldP, newP) {
-    return this.makeCallSync(oldP, () => {
-      return this.makeCallSync(newP, () => {
-        return this.baseFs.renameSync(oldP, newP);
-      }, async () => {
-        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-          code: `EEXDEV`
-        });
-      });
-    }, (zipFsO, {
-      subPath: subPathO
-    }) => {
-      return this.makeCallSync(newP, () => {
-        throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-          code: `EEXDEV`
-        });
-      }, (zipFsN, {
-        subPath: subPathN
-      }) => {
-        if (zipFsO !== zipFsN) {
-          throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), {
-            code: `EEXDEV`
-          });
-        } else {
-          return zipFsO.renameSync(subPathO, subPathN);
-        }
-      });
-    });
-  }
-
-  async copyFilePromise(sourceP, destP, flags = 0) {
-    const fallback = async (sourceFs, sourceP, destFs, destP) => {
-      if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), {
-        code: `EXDEV`
-      });
-      if (flags & external_fs_.constants.COPYFILE_EXCL && (await this.existsPromise(sourceP))) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), {
-        code: `EEXIST`
-      });
-      let content;
-
-      try {
-        content = await sourceFs.readFilePromise(sourceP);
-      } catch (error) {
-        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), {
-          code: `EINVAL`
-        });
-      }
-
-      await destFs.writeFilePromise(destP, content);
-    };
-
-    return await this.makeCallPromise(sourceP, async () => {
-      return await this.makeCallPromise(destP, async () => {
-        return await this.baseFs.copyFilePromise(sourceP, destP, flags);
-      }, async (zipFsD, {
-        subPath: subPathD
-      }) => {
-        return await fallback(this.baseFs, sourceP, zipFsD, subPathD);
-      });
-    }, async (zipFsS, {
-      subPath: subPathS
-    }) => {
-      return await this.makeCallPromise(destP, async () => {
-        return await fallback(zipFsS, subPathS, this.baseFs, destP);
-      }, async (zipFsD, {
-        subPath: subPathD
-      }) => {
-        if (zipFsS !== zipFsD) {
-          return await fallback(zipFsS, subPathS, zipFsD, subPathD);
-        } else {
-          return await zipFsS.copyFilePromise(subPathS, subPathD, flags);
-        }
-      });
-    });
-  }
-
-  copyFileSync(sourceP, destP, flags = 0) {
-    const fallback = (sourceFs, sourceP, destFs, destP) => {
-      if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), {
-        code: `EXDEV`
-      });
-      if (flags & external_fs_.constants.COPYFILE_EXCL && this.existsSync(sourceP)) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), {
-        code: `EEXIST`
-      });
-      let content;
-
-      try {
-        content = sourceFs.readFileSync(sourceP);
-      } catch (error) {
-        throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), {
-          code: `EINVAL`
-        });
-      }
-
-      destFs.writeFileSync(destP, content);
-    };
-
-    return this.makeCallSync(sourceP, () => {
-      return this.makeCallSync(destP, () => {
-        return this.baseFs.copyFileSync(sourceP, destP, flags);
-      }, (zipFsD, {
-        subPath: subPathD
-      }) => {
-        return fallback(this.baseFs, sourceP, zipFsD, subPathD);
-      });
-    }, (zipFsS, {
-      subPath: subPathS
-    }) => {
-      return this.makeCallSync(destP, () => {
-        return fallback(zipFsS, subPathS, this.baseFs, destP);
-      }, (zipFsD, {
-        subPath: subPathD
-      }) => {
-        if (zipFsS !== zipFsD) {
-          return fallback(zipFsS, subPathS, zipFsD, subPathD);
-        } else {
-          return zipFsS.copyFileSync(subPathS, subPathD, flags);
-        }
-      });
-    });
-  }
-
-  async appendFilePromise(p, content, opts) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.appendFilePromise(p, content, opts);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.appendFilePromise(subPath, content, opts);
-    });
-  }
-
-  appendFileSync(p, content, opts) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.appendFileSync(p, content, opts);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.appendFileSync(subPath, content, opts);
-    });
-  }
-
-  async writeFilePromise(p, content, opts) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.writeFilePromise(p, content, opts);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.writeFilePromise(subPath, content, opts);
-    });
-  }
-
-  writeFileSync(p, content, opts) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.writeFileSync(p, content, opts);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.writeFileSync(subPath, content, opts);
-    });
-  }
-
-  async unlinkPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.unlinkPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.unlinkPromise(subPath);
-    });
-  }
-
-  unlinkSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.unlinkSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.unlinkSync(subPath);
-    });
-  }
-
-  async utimesPromise(p, atime, mtime) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.utimesPromise(p, atime, mtime);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.utimesPromise(subPath, atime, mtime);
-    });
-  }
-
-  utimesSync(p, atime, mtime) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.utimesSync(p, atime, mtime);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.utimesSync(subPath, atime, mtime);
-    });
-  }
-
-  async mkdirPromise(p, opts) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.mkdirPromise(p, opts);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.mkdirPromise(subPath, opts);
-    });
-  }
-
-  mkdirSync(p, opts) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.mkdirSync(p, opts);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.mkdirSync(subPath, opts);
-    });
-  }
-
-  async rmdirPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.rmdirPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.rmdirPromise(subPath);
-    });
-  }
-
-  rmdirSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.rmdirSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.rmdirSync(subPath);
-    });
-  }
-
-  async symlinkPromise(target, p, type) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.symlinkPromise(target, p, type);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.symlinkPromise(target, subPath);
-    });
-  }
-
-  symlinkSync(target, p, type) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.symlinkSync(target, p, type);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.symlinkSync(target, subPath);
-    });
-  }
-
-  async readFilePromise(p, encoding) {
-    return this.makeCallPromise(p, async () => {
-      // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
-      switch (encoding) {
-        case `utf8`:
-          return await this.baseFs.readFilePromise(p, encoding);
-
-        default:
-          return await this.baseFs.readFilePromise(p, encoding);
-      }
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.readFilePromise(subPath, encoding);
-    });
-  }
-
-  readFileSync(p, encoding) {
-    return this.makeCallSync(p, () => {
-      // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered)
-      switch (encoding) {
-        case `utf8`:
-          return this.baseFs.readFileSync(p, encoding);
-
-        default:
-          return this.baseFs.readFileSync(p, encoding);
-      }
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.readFileSync(subPath, encoding);
-    });
-  }
-
-  async readdirPromise(p, {
-    withFileTypes
-  } = {}) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.readdirPromise(p, {
-        withFileTypes: withFileTypes
-      });
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.readdirPromise(subPath, {
-        withFileTypes: withFileTypes
-      });
-    }, {
-      requireSubpath: false
-    });
-  }
-
-  readdirSync(p, {
-    withFileTypes
-  } = {}) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.readdirSync(p, {
-        withFileTypes: withFileTypes
-      });
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.readdirSync(subPath, {
-        withFileTypes: withFileTypes
-      });
-    }, {
-      requireSubpath: false
-    });
-  }
-
-  async readlinkPromise(p) {
-    return await this.makeCallPromise(p, async () => {
-      return await this.baseFs.readlinkPromise(p);
-    }, async (zipFs, {
-      subPath
-    }) => {
-      return await zipFs.readlinkPromise(subPath);
-    });
-  }
-
-  readlinkSync(p) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.readlinkSync(p);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.readlinkSync(subPath);
-    });
-  }
-
-  watch(p, a, b) {
-    return this.makeCallSync(p, () => {
-      return this.baseFs.watch(p, // @ts-ignore
-      a, b);
-    }, (zipFs, {
-      subPath
-    }) => {
-      return zipFs.watch(subPath, // @ts-ignore
-      a, b);
-    });
-  }
-
-  async makeCallPromise(p, discard, accept, {
-    requireSubpath = true
-  } = {}) {
-    if (typeof p !== `string`) return await discard();
-    const normalizedP = this.resolve(p);
-    const zipInfo = this.findZip(normalizedP);
-    if (!zipInfo) return await discard();
-    if (requireSubpath && zipInfo.subPath === `/`) return await discard();
-    return await this.getZipPromise(zipInfo.archivePath, async zipFs => await accept(zipFs, zipInfo));
-  }
-
-  makeCallSync(p, discard, accept, {
-    requireSubpath = true
-  } = {}) {
-    if (typeof p !== `string`) return discard();
-    const normalizedP = this.resolve(p);
-    const zipInfo = this.findZip(normalizedP);
-    if (!zipInfo) return discard();
-    if (requireSubpath && zipInfo.subPath === `/`) return discard();
-    return this.getZipSync(zipInfo.archivePath, zipFs => accept(zipFs, zipInfo));
-  }
-
-  findZip(p) {
-    if (this.filter && !this.filter.test(p)) return null;
-    let filePath = ``;
-
-    while (true) {
-      const parts = FILE_PARTS_REGEX.exec(p.substr(filePath.length));
-      if (!parts) return null;
-      filePath = this.pathUtils.join(filePath, parts[0]);
-
-      if (this.isZip.has(filePath) === false) {
-        if (this.notZip.has(filePath)) continue;
-
-        try {
-          if (!this.baseFs.lstatSync(filePath).isFile()) {
-            this.notZip.add(filePath);
-            continue;
-          }
-        } catch (_a) {
-          return null;
-        }
-
-        this.isZip.add(filePath);
-      }
-
-      return {
-        archivePath: filePath,
-        subPath: this.pathUtils.resolve(sources_path/* PortablePath.root */.LZ.root, p.substr(filePath.length))
-      };
-    }
-  }
-
-  limitOpenFiles(max) {
-    if (this.zipInstances === null) return;
-    let closeCount = this.zipInstances.size - max;
-
-    for (const [path, zipFs] of this.zipInstances.entries()) {
-      if (closeCount <= 0) break;
-      zipFs.saveAndClose();
-      this.zipInstances.delete(path);
-      closeCount -= 1;
-    }
-  }
-
-  async getZipPromise(p, accept) {
-    const getZipOptions = async () => ({
-      baseFs: this.baseFs,
-      libzip: this.libzip,
-      readOnly: this.readOnlyArchives,
-      stats: await this.baseFs.statPromise(p)
-    });
-
-    if (this.zipInstances) {
-      let zipFs = this.zipInstances.get(p);
-
-      if (!zipFs) {
-        const zipOptions = await getZipOptions(); // We need to recheck because concurrent getZipPromise calls may
-        // have instantiated the zip archive while we were waiting
-
-        zipFs = this.zipInstances.get(p);
-
-        if (!zipFs) {
-          zipFs = new ZipFS(p, zipOptions);
-        }
-      } // Removing then re-adding the field allows us to easily implement
-      // a basic LRU garbage collection strategy
-
-
-      this.zipInstances.delete(p);
-      this.zipInstances.set(p, zipFs);
-      this.limitOpenFiles(this.maxOpenFiles);
-      return await accept(zipFs);
-    } else {
-      const zipFs = new ZipFS(p, await getZipOptions());
-
-      try {
-        return await accept(zipFs);
-      } finally {
-        zipFs.saveAndClose();
-      }
-    }
-  }
-
-  getZipSync(p, accept) {
-    const getZipOptions = () => ({
-      baseFs: this.baseFs,
-      libzip: this.libzip,
-      readOnly: this.readOnlyArchives,
-      stats: this.baseFs.statSync(p)
-    });
-
-    if (this.zipInstances) {
-      let zipFs = this.zipInstances.get(p);
-      if (!zipFs) zipFs = new ZipFS(p, getZipOptions()); // Removing then re-adding the field allows us to easily implement
-      // a basic LRU garbage collection strategy
-
-      this.zipInstances.delete(p);
-      this.zipInstances.set(p, zipFs);
-      this.limitOpenFiles(this.maxOpenFiles);
-      return accept(zipFs);
-    } else {
-      const zipFs = new ZipFS(p, getZipOptions());
-
-      try {
-        return accept(zipFs);
-      } finally {
-        zipFs.saveAndClose();
-      }
-    }
-  }
-
-}
-// CONCATENATED MODULE: ../yarnpkg-libzip/sources/makeInterface.ts
-const number64 = [`number`, `number`];
-const makeInterface = libzip => ({
-  // Those are getters because they can change after memory growth
-  get HEAP8() {
-    return libzip.HEAP8;
-  },
-
-  get HEAPU8() {
-    return libzip.HEAPU8;
-  },
-
-  SEEK_SET: 0,
-  SEEK_CUR: 1,
-  SEEK_END: 2,
-  ZIP_CHECKCONS: 4,
-  ZIP_CREATE: 1,
-  ZIP_EXCL: 2,
-  ZIP_TRUNCATE: 8,
-  ZIP_RDONLY: 16,
-  ZIP_FL_OVERWRITE: 8192,
-  ZIP_OPSYS_DOS: 0x00,
-  ZIP_OPSYS_AMIGA: 0x01,
-  ZIP_OPSYS_OPENVMS: 0x02,
-  ZIP_OPSYS_UNIX: 0x03,
-  ZIP_OPSYS_VM_CMS: 0x04,
-  ZIP_OPSYS_ATARI_ST: 0x05,
-  ZIP_OPSYS_OS_2: 0x06,
-  ZIP_OPSYS_MACINTOSH: 0x07,
-  ZIP_OPSYS_Z_SYSTEM: 0x08,
-  ZIP_OPSYS_CPM: 0x09,
-  ZIP_OPSYS_WINDOWS_NTFS: 0x0a,
-  ZIP_OPSYS_MVS: 0x0b,
-  ZIP_OPSYS_VSE: 0x0c,
-  ZIP_OPSYS_ACORN_RISC: 0x0d,
-  ZIP_OPSYS_VFAT: 0x0e,
-  ZIP_OPSYS_ALTERNATE_MVS: 0x0f,
-  ZIP_OPSYS_BEOS: 0x10,
-  ZIP_OPSYS_TANDEM: 0x11,
-  ZIP_OPSYS_OS_400: 0x12,
-  ZIP_OPSYS_OS_X: 0x13,
-  ZIP_CM_DEFAULT: -1,
-  ZIP_CM_STORE: 0,
-  ZIP_CM_DEFLATE: 8,
-  uint08S: libzip._malloc(1),
-  uint16S: libzip._malloc(2),
-  uint32S: libzip._malloc(4),
-  uint64S: libzip._malloc(8),
-  malloc: libzip._malloc,
-  free: libzip._free,
-  getValue: libzip.getValue,
-  open: libzip.cwrap(`zip_open`, `number`, [`string`, `number`, `number`]),
-  openFromSource: libzip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]),
-  close: libzip.cwrap(`zip_close`, `number`, [`number`]),
-  discard: libzip.cwrap(`zip_discard`, null, [`number`]),
-  getError: libzip.cwrap(`zip_get_error`, `number`, [`number`]),
-  getName: libzip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]),
-  getNumEntries: libzip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]),
-  stat: libzip.cwrap(`zip_stat`, `number`, [`number`, `string`, `number`, `number`]),
-  statIndex: libzip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]),
-  fopen: libzip.cwrap(`zip_fopen`, `number`, [`number`, `string`, `number`]),
-  fopenIndex: libzip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]),
-  fread: libzip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]),
-  fclose: libzip.cwrap(`zip_fclose`, `number`, [`number`]),
-  dir: {
-    add: libzip.cwrap(`zip_dir_add`, `number`, [`number`, `string`])
-  },
-  file: {
-    add: libzip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]),
-    getError: libzip.cwrap(`zip_file_get_error`, `number`, [`number`]),
-    getExternalAttributes: libzip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
-    setExternalAttributes: libzip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]),
-    setMtime: libzip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]),
-    setCompression: libzip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`])
-  },
-  ext: {
-    countSymlinks: libzip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`])
-  },
-  error: {
-    initWithCode: libzip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]),
-    strerror: libzip.cwrap(`zip_error_strerror`, `string`, [`number`])
-  },
-  name: {
-    locate: libzip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`])
-  },
-  source: {
-    fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, `number`, `number`, `number`]),
-    fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]),
-    free: libzip.cwrap(`zip_source_free`, null, [`number`]),
-    keep: libzip.cwrap(`zip_source_keep`, null, [`number`]),
-    open: libzip.cwrap(`zip_source_open`, `number`, [`number`]),
-    close: libzip.cwrap(`zip_source_close`, `number`, [`number`]),
-    seek: libzip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]),
-    tell: libzip.cwrap(`zip_source_tell`, `number`, [`number`]),
-    read: libzip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]),
-    error: libzip.cwrap(`zip_source_error`, `number`, [`number`]),
-    setMtime: libzip.cwrap(`zip_source_set_mtime`, `number`, [`number`, `number`])
-  },
-  struct: {
-    stat: libzip.cwrap(`zipstruct_stat`, `number`, []),
-    statS: libzip.cwrap(`zipstruct_statS`, `number`, []),
-    statName: libzip.cwrap(`zipstruct_stat_name`, `string`, [`number`]),
-    statIndex: libzip.cwrap(`zipstruct_stat_index`, `number`, [`number`]),
-    statSize: libzip.cwrap(`zipstruct_stat_size`, `number`, [`number`]),
-    statMtime: libzip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]),
-    error: libzip.cwrap(`zipstruct_error`, `number`, []),
-    errorS: libzip.cwrap(`zipstruct_errorS`, `number`, [])
-  }
-});
-// CONCATENATED MODULE: ../yarnpkg-libzip/sources/sync.ts
-
-let mod = null;
-function getLibzipSync() {
-  if (mod === null) mod = makeInterface(__webpack_require__(368));
-  return mod;
-}
-async function getLibzipPromise() {
-  return getLibzipSync();
-}
-// EXTERNAL MODULE: external "module"
-var external_module_ = __webpack_require__(282);
-var external_module_default = /*#__PURE__*/__webpack_require__.n(external_module_);
-
-// EXTERNAL MODULE: external "string_decoder"
-var external_string_decoder_ = __webpack_require__(304);
-var external_string_decoder_default = /*#__PURE__*/__webpack_require__.n(external_string_decoder_);
-
-// EXTERNAL MODULE: external "os"
-var external_os_ = __webpack_require__(87);
-var external_os_default = /*#__PURE__*/__webpack_require__.n(external_os_);
-
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/index.ts
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-function getTempName(prefix) {
-  const tmpdir = sources_path/* npath.toPortablePath */.cS.toPortablePath(external_os_default().tmpdir());
-  const hash = Math.ceil(Math.random() * 0x100000000).toString(16).padStart(8, `0`);
-  return sources_path/* ppath.join */.y1.join(tmpdir, `${prefix}${hash}`);
-}
-
-function patchFs(patchedFs, fakeFs) {
-  const SYNC_IMPLEMENTATIONS = new Set([`accessSync`, `appendFileSync`, `createReadStream`, `chmodSync`, `closeSync`, `copyFileSync`, `lstatSync`, `lutimesSync`, `mkdirSync`, `openSync`, `readSync`, `readlinkSync`, `readFileSync`, `readdirSync`, `readlinkSync`, `realpathSync`, `renameSync`, `rmdirSync`, `statSync`, `symlinkSync`, `unlinkSync`, `utimesSync`, `watch`, `writeFileSync`, `writeSync`]);
-  const ASYNC_IMPLEMENTATIONS = new Set([`accessPromise`, `appendFilePromise`, `chmodPromise`, `closePromise`, `copyFilePromise`, `lstatPromise`, `lutimesPromise`, `mkdirPromise`, `openPromise`, `readdirPromise`, `realpathPromise`, `readFilePromise`, `readdirPromise`, `readlinkPromise`, `renamePromise`, `rmdirPromise`, `statPromise`, `symlinkPromise`, `unlinkPromise`, `utimesPromise`, `writeFilePromise`, `writeSync`]);
-
-  const setupFn = (target, name, replacement) => {
-    const orig = target[name];
-    target[name] = replacement;
-
-    if (typeof orig[external_util_.promisify.custom] !== `undefined`) {
-      replacement[external_util_.promisify.custom] = orig[external_util_.promisify.custom];
-    }
-  };
-  /** Callback implementations */
-
-
-  {
-    setupFn(patchedFs, `exists`, (p, ...args) => {
-      const hasCallback = typeof args[args.length - 1] === `function`;
-      const callback = hasCallback ? args.pop() : () => {};
-      process.nextTick(() => {
-        fakeFs.existsPromise(p).then(exists => {
-          callback(exists);
-        }, () => {
-          callback(false);
-        });
-      });
-    });
-    setupFn(patchedFs, `read`, (p, buffer, ...args) => {
-      const hasCallback = typeof args[args.length - 1] === `function`;
-      const callback = hasCallback ? args.pop() : () => {};
-      process.nextTick(() => {
-        fakeFs.readPromise(p, buffer, ...args).then(bytesRead => {
-          callback(null, bytesRead, buffer);
-        }, error => {
-          callback(error);
-        });
-      });
-    });
-
-    for (const fnName of ASYNC_IMPLEMENTATIONS) {
-      const origName = fnName.replace(/Promise$/, ``);
-      if (typeof patchedFs[origName] === `undefined`) continue;
-      const fakeImpl = fakeFs[fnName];
-      if (typeof fakeImpl === `undefined`) continue;
-
-      const wrapper = (...args) => {
-        const hasCallback = typeof args[args.length - 1] === `function`;
-        const callback = hasCallback ? args.pop() : () => {};
-        process.nextTick(() => {
-          fakeImpl.apply(fakeFs, args).then(result => {
-            callback(null, result);
-          }, error => {
-            callback(error);
-          });
-        });
-      };
-
-      setupFn(patchedFs, origName, wrapper);
-    }
-
-    patchedFs.realpath.native = patchedFs.realpath;
-  }
-  /** Sync implementations */
-
-  {
-    setupFn(patchedFs, `existsSync`, p => {
-      try {
-        return fakeFs.existsSync(p);
-      } catch (error) {
-        return false;
-      }
-    });
-
-    for (const fnName of SYNC_IMPLEMENTATIONS) {
-      const origName = fnName;
-      if (typeof patchedFs[origName] === `undefined`) continue;
-      const fakeImpl = fakeFs[fnName];
-      if (typeof fakeImpl === `undefined`) continue;
-      setupFn(patchedFs, origName, fakeImpl.bind(fakeFs));
-    }
-
-    patchedFs.realpathSync.native = patchedFs.realpathSync;
-  }
-  /** Promise implementations */
-
-  {
-    // `fs.promises` is a getter that returns a reference to require(`fs/promises`),
-    // so we can just patch `fs.promises` and both will be updated
-    const patchedFsPromises = patchedFs.promises;
-
-    if (typeof patchedFsPromises !== `undefined`) {
-      // `fs.promises.exists` doesn't exist
-      for (const fnName of ASYNC_IMPLEMENTATIONS) {
-        const origName = fnName.replace(/Promise$/, ``);
-        if (typeof patchedFsPromises[origName] === `undefined`) continue;
-        const fakeImpl = fakeFs[fnName];
-        if (typeof fakeImpl === `undefined`) continue;
-        setupFn(patchedFsPromises, origName, fakeImpl.bind(fakeFs));
-      } // `fs.promises.realpath` doesn't have a `native` property
-
-    }
-  }
-}
-function extendFs(realFs, fakeFs) {
-  const patchedFs = Object.create(realFs);
-  patchFs(patchedFs, fakeFs);
-  return patchedFs;
-}
-const tmpdirs = new Set();
-let cleanExitRegistered = false;
-
-function registerCleanExit() {
-  if (!cleanExitRegistered) cleanExitRegistered = true;else return;
-
-  const cleanExit = () => {
-    process.off(`exit`, cleanExit);
-
-    for (const p of tmpdirs) {
-      tmpdirs.delete(p);
-
-      try {
-        xfs.removeSync(p);
-      } catch (_a) {// Too bad if there's an error
-      }
-    }
-  };
-
-  process.on(`exit`, cleanExit);
-}
-
-const xfs = Object.assign(new NodeFS(), {
-  detachTemp(p) {
-    tmpdirs.delete(p);
-  },
-
-  mktempSync(cb) {
-    registerCleanExit();
-
-    while (true) {
-      const p = getTempName(`xfs-`);
-
-      try {
-        this.mkdirSync(p);
-      } catch (error) {
-        if (error.code === `EEXIST`) {
-          continue;
-        } else {
-          throw error;
-        }
-      }
-
-      const realP = this.realpathSync(p);
-      tmpdirs.add(realP);
-
-      if (typeof cb !== `undefined`) {
-        try {
-          return cb(realP);
-        } finally {
-          if (tmpdirs.has(realP)) {
-            tmpdirs.delete(realP);
-
-            try {
-              this.removeSync(realP);
-            } catch (_a) {// Too bad if there's an error
-            }
-          }
-        }
-      } else {
-        return p;
-      }
-    }
-  },
-
-  async mktempPromise(cb) {
-    registerCleanExit();
-
-    while (true) {
-      const p = getTempName(`xfs-`);
-
-      try {
-        await this.mkdirPromise(p);
-      } catch (error) {
-        if (error.code === `EEXIST`) {
-          continue;
-        } else {
-          throw error;
-        }
-      }
-
-      const realP = await this.realpathPromise(p);
-      tmpdirs.add(realP);
-
-      if (typeof cb !== `undefined`) {
-        try {
-          return await cb(realP);
-        } finally {
-          if (tmpdirs.has(realP)) {
-            tmpdirs.delete(realP);
-
-            try {
-              await this.removePromise(realP);
-            } catch (_a) {// Too bad if there's an error
-            }
-          }
-        }
-      } else {
-        return realP;
-      }
-    }
-  }
-
-});
-// CONCATENATED MODULE: ../yarnpkg-fslib/sources/PosixFS.ts
-
-
-class PosixFS extends ProxiedFS {
-  constructor(baseFs) {
-    super(sources_path/* npath */.cS);
-    this.baseFs = baseFs;
-  }
-
-  mapFromBase(path) {
-    return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(path);
-  }
-
-  mapToBase(path) {
-    return sources_path/* npath.toPortablePath */.cS.toPortablePath(path);
-  }
-
-}
-// EXTERNAL MODULE: external "url"
-var external_url_ = __webpack_require__(835);
-
-// CONCATENATED MODULE: ./sources/loader/internalTools.ts
-var ErrorCode;
-
-(function (ErrorCode) {
-  ErrorCode["API_ERROR"] = "API_ERROR";
-  ErrorCode["BLACKLISTED"] = "BLACKLISTED";
-  ErrorCode["BUILTIN_NODE_RESOLUTION_FAILED"] = "BUILTIN_NODE_RESOLUTION_FAILED";
-  ErrorCode["MISSING_DEPENDENCY"] = "MISSING_DEPENDENCY";
-  ErrorCode["MISSING_PEER_DEPENDENCY"] = "MISSING_PEER_DEPENDENCY";
-  ErrorCode["QUALIFIED_PATH_RESOLUTION_FAILED"] = "QUALIFIED_PATH_RESOLUTION_FAILED";
-  ErrorCode["INTERNAL"] = "INTERNAL";
-  ErrorCode["UNDECLARED_DEPENDENCY"] = "UNDECLARED_DEPENDENCY";
-  ErrorCode["UNSUPPORTED"] = "UNSUPPORTED";
-})(ErrorCode || (ErrorCode = {})); // Some errors are exposed as MODULE_NOT_FOUND for compatibility with packages
-// that expect this umbrella error when the resolution fails
-
-
-const MODULE_NOT_FOUND_ERRORS = new Set([ErrorCode.BLACKLISTED, ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, ErrorCode.MISSING_DEPENDENCY, ErrorCode.MISSING_PEER_DEPENDENCY, ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, ErrorCode.UNDECLARED_DEPENDENCY]);
-/**
- * Simple helper function that assign an error code to an error, so that it can more easily be caught and used
- * by third-parties.
- */
-
-function internalTools_makeError(pnpCode, message, data = {}) {
-  const code = MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode;
-  const propertySpec = {
-    configurable: true,
-    writable: true,
-    enumerable: false
-  };
-  return Object.defineProperties(new Error(message), {
-    code: { ...propertySpec,
-      value: code
-    },
-    pnpCode: { ...propertySpec,
-      value: pnpCode
-    },
-    data: { ...propertySpec,
-      value: data
-    }
-  });
-}
-/**
- * Returns the module that should be used to resolve require calls. It's usually the direct parent, except if we're
- * inside an eval expression.
- */
-
-function getIssuerModule(parent) {
-  let issuer = parent;
-
-  while (issuer && (issuer.id === `[eval]` || issuer.id === `<repl>` || !issuer.filename)) issuer = issuer.parent;
-
-  return issuer || null;
-}
-// CONCATENATED MODULE: ./sources/loader/applyPatch.ts
-
-
-
-
-
-function applyPatch(pnpapi, opts) {
-  // @ts-ignore
-  const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`)));
-  /**
-   * The cache that will be used for all accesses occuring outside of a PnP context.
-   */
-
-  const defaultCache = {};
-  /**
-   * Used to disable the resolution hooks (for when we want to fallback to the previous resolution - we then need
-   * a way to "reset" the environment temporarily)
-   */
-
-  let enableNativeHooks = true; // @ts-ignore
-
-  process.versions.pnp = String(pnpapi.VERSIONS.std); // @ts-ignore
-
-  const moduleExports = __webpack_require__(282); // @ts-ignore
-
-
-  moduleExports.findPnpApi = lookupSource => {
-    const lookupPath = lookupSource instanceof external_url_.URL ? (0,external_url_.fileURLToPath)(lookupSource) : lookupSource;
-    const apiPath = opts.manager.findApiPathFor(lookupPath);
-    if (apiPath === null) return null;
-    const apiEntry = opts.manager.getApiEntry(apiPath, true);
-    return apiEntry.instance;
-  };
-
-  function getRequireStack(parent) {
-    const requireStack = [];
-
-    for (let cursor = parent; cursor; cursor = cursor.parent) requireStack.push(cursor.filename || cursor.id);
-
-    return requireStack;
-  } // A small note: we don't replace the cache here (and instead use the native one). This is an effort to not
-  // break code similar to "delete require.cache[require.resolve(FOO)]", where FOO is a package located outside
-  // of the Yarn dependency tree. In this case, we defer the load to the native loader. If we were to replace the
-  // cache by our own, the native loader would populate its own cache, which wouldn't be exposed anymore, so the
-  // delete call would be broken.
-
-
-  const originalModuleLoad = external_module_.Module._load;
-
-  external_module_.Module._load = function (request, parent, isMain) {
-    if (!enableNativeHooks) return originalModuleLoad.call(external_module_.Module, request, parent, isMain); // Builtins are managed by the regular Node loader
-
-    if (builtinModules.has(request)) {
-      try {
-        enableNativeHooks = false;
-        return originalModuleLoad.call(external_module_.Module, request, parent, isMain);
-      } finally {
-        enableNativeHooks = true;
-      }
-    }
-
-    const parentApiPath = opts.manager.getApiPathFromParent(parent);
-    const parentApi = parentApiPath !== null ? opts.manager.getApiEntry(parentApiPath, true).instance : null; // Requests that aren't covered by the PnP runtime goes through the
-    // parent `_load` implementation. This is required for VSCode, for example,
-    // which override `_load` to provide additional builtins to its extensions.
-
-    if (parentApi === null) return originalModuleLoad(request, parent, isMain); // The 'pnpapi' name is reserved to return the PnP api currently in use
-    // by the program
-
-    if (request === `pnpapi`) return parentApi; // Request `Module._resolveFilename` (ie. `resolveRequest`) to tell us
-    // which file we should load
-
-    const modulePath = external_module_.Module._resolveFilename(request, parent, isMain); // We check whether the module is owned by the dependency tree of the
-    // module that required it. If it isn't, then we need to create a new
-    // store and possibly load its sandboxed PnP runtime.
-
-
-    const isOwnedByRuntime = parentApi !== null ? parentApi.findPackageLocator(modulePath) !== null : false;
-    const moduleApiPath = isOwnedByRuntime ? parentApiPath : opts.manager.findApiPathFor(sources_path/* npath.dirname */.cS.dirname(modulePath));
-    const entry = moduleApiPath !== null ? opts.manager.getApiEntry(moduleApiPath) : {
-      instance: null,
-      cache: defaultCache
-    }; // Check if the module has already been created for the given file
-
-    const cacheEntry = entry.cache[modulePath];
-    if (cacheEntry) return cacheEntry.exports; // Create a new module and store it into the cache
-    // @ts-ignore
-
-    const module = new external_module_.Module(modulePath, parent); // @ts-ignore
-
-    module.pnpApiPath = moduleApiPath;
-    entry.cache[modulePath] = module; // The main module is exposed as global variable
-
-    if (isMain) {
-      // @ts-ignore
-      process.mainModule = module;
-      module.id = `.`;
-    } // Try to load the module, and remove it from the cache if it fails
-
-
-    let hasThrown = true;
-
-    try {
-      // @ts-ignore
-      module.load(modulePath);
-      hasThrown = false;
-    } finally {
-      if (hasThrown) {
-        delete external_module_.Module._cache[modulePath];
-      }
-    }
-
-    return module.exports;
-  };
-
-  function getIssuerSpecsFromPaths(paths) {
-    return paths.map(path => ({
-      apiPath: opts.manager.findApiPathFor(path),
-      path,
-      module: null
-    }));
-  }
-
-  function getIssuerSpecsFromModule(module) {
-    const issuer = getIssuerModule(module);
-    const issuerPath = issuer !== null ? sources_path/* npath.dirname */.cS.dirname(issuer.filename) : process.cwd();
-    return [{
-      apiPath: opts.manager.getApiPathFromParent(issuer),
-      path: issuerPath,
-      module
-    }];
-  }
-
-  function makeFakeParent(path) {
-    const fakeParent = new external_module_.Module(``);
-    const fakeFilePath = sources_path/* npath.join */.cS.join(path, `[file]`);
-    fakeParent.paths = external_module_.Module._nodeModulePaths(fakeFilePath);
-    return fakeParent;
-  } // Splits a require request into its components, or return null if the request is a file path
-
-
-  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
-  const originalModuleResolveFilename = external_module_.Module._resolveFilename;
-
-  external_module_.Module._resolveFilename = function (request, parent, isMain, options) {
-    if (builtinModules.has(request)) return request;
-    if (!enableNativeHooks) return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, options);
-
-    if (options && options.plugnplay === false) {
-      const {
-        plugnplay,
-        ...rest
-      } = options; // Workaround a bug present in some version of Node (now fixed)
-      // https://github.com/nodejs/node/pull/28078
-
-      const forwardedOptions = Object.keys(rest).length > 0 ? rest : undefined;
-
-      try {
-        enableNativeHooks = false;
-        return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, forwardedOptions);
-      } finally {
-        enableNativeHooks = true;
-      }
-    } // We check that all the options present here are supported; better
-    // to fail fast than to introduce subtle bugs in the runtime.
-
-
-    if (options) {
-      const optionNames = new Set(Object.keys(options));
-      optionNames.delete(`paths`);
-      optionNames.delete(`plugnplay`);
-
-      if (optionNames.size > 0) {
-        throw internalTools_makeError(ErrorCode.UNSUPPORTED, `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})`);
-      }
-    }
-
-    const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent);
-
-    if (request.match(pathRegExp) === null) {
-      const parentDirectory = (parent === null || parent === void 0 ? void 0 : parent.filename) != null ? sources_path/* npath.dirname */.cS.dirname(parent.filename) : null;
-      const absoluteRequest = sources_path/* npath.isAbsolute */.cS.isAbsolute(request) ? request : parentDirectory !== null ? sources_path/* npath.resolve */.cS.resolve(parentDirectory, request) : null;
-
-      if (absoluteRequest !== null) {
-        const apiPath = parentDirectory === sources_path/* npath.dirname */.cS.dirname(absoluteRequest) && (parent === null || parent === void 0 ? void 0 : parent.pnpApiPath) ? parent.pnpApiPath : opts.manager.findApiPathFor(absoluteRequest);
-
-        if (apiPath !== null) {
-          issuerSpecs.unshift({
-            apiPath,
-            path: parentDirectory,
-            module: null
-          });
-        }
-      }
-    }
-
-    let firstError;
-
-    for (const {
-      apiPath,
-      path,
-      module
-    } of issuerSpecs) {
-      let resolution;
-      const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null;
-
-      try {
-        if (issuerApi !== null) {
-          resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null);
-        } else {
-          if (path === null) throw new Error(`Assertion failed: Expected the path to be set`);
-          resolution = originalModuleResolveFilename.call(external_module_.Module, request, module || makeFakeParent(path), isMain);
-        }
-      } catch (error) {
-        firstError = firstError || error;
-        continue;
-      }
-
-      if (resolution !== null) {
-        return resolution;
-      }
-    }
-
-    const requireStack = getRequireStack(parent);
-    Object.defineProperty(firstError, `requireStack`, {
-      configurable: true,
-      writable: true,
-      enumerable: false,
-      value: requireStack
-    });
-    if (requireStack.length > 0) firstError.message += `\nRequire stack:\n- ${requireStack.join(`\n- `)}`;
-    throw firstError;
-  };
-
-  const originalFindPath = external_module_.Module._findPath;
-
-  external_module_.Module._findPath = function (request, paths, isMain) {
-    if (request === `pnpapi`) return false;
-    if (!enableNativeHooks) return originalFindPath.call(external_module_.Module, request, paths, isMain);
-
-    for (const path of paths || []) {
-      let resolution;
-
-      try {
-        const pnpApiPath = opts.manager.findApiPathFor(path);
-
-        if (pnpApiPath !== null) {
-          const api = opts.manager.getApiEntry(pnpApiPath, true).instance;
-          resolution = api.resolveRequest(request, path) || false;
-        } else {
-          resolution = originalFindPath.call(external_module_.Module, request, [path], isMain);
-        }
-      } catch (error) {
-        continue;
-      }
-
-      if (resolution) {
-        return resolution;
-      }
-    }
-
-    return false;
-  };
-
-  patchFs((external_fs_default()), new PosixFS(opts.fakeFs));
-}
-// CONCATENATED MODULE: ./sources/loader/hydrateRuntimeState.ts
-
-function hydrateRuntimeState(data, {
-  basePath
-}) {
-  const portablePath = sources_path/* npath.toPortablePath */.cS.toPortablePath(basePath);
-  const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null;
-  const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => {
-    return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => {
-      return [packageReference, {
-        packageLocation: sources_path/* ppath.resolve */.y1.resolve(portablePath, packageInformationData.packageLocation),
-        packageDependencies: new Map(packageInformationData.packageDependencies),
-        packagePeers: new Set(packageInformationData.packagePeers),
-        linkType: packageInformationData.linkType,
-        discardFromLookup: packageInformationData.discardFromLookup || false
-      }];
-    }))];
-  }));
-  const packageLocatorsByLocations = new Map();
-  const packageLocationLengths = new Set();
-
-  for (const [packageName, storeData] of data.packageRegistryData) {
-    for (const [packageReference, packageInformationData] of storeData) {
-      if (packageName === null !== (packageReference === null)) throw new Error(`Assertion failed: The name and reference should be null, or neither should`);
-      if (packageInformationData.discardFromLookup) continue; // @ts-ignore: TypeScript isn't smart enough to understand the type assertion
-
-      const packageLocator = {
-        name: packageName,
-        reference: packageReference
-      };
-      packageLocatorsByLocations.set(packageInformationData.packageLocation, packageLocator);
-      packageLocationLengths.add(packageInformationData.packageLocation.length);
-    }
-  }
-
-  for (const location of data.locationBlacklistData) packageLocatorsByLocations.set(location, null);
-
-  const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => {
-    return [packageName, new Set(packageReferences)];
-  }));
-  const fallbackPool = new Map(data.fallbackPool);
-  const dependencyTreeRoots = data.dependencyTreeRoots;
-  const enableTopLevelFallback = data.enableTopLevelFallback;
-  return {
-    basePath: portablePath,
-    dependencyTreeRoots,
-    enableTopLevelFallback,
-    fallbackExclusionList,
-    fallbackPool,
-    ignorePattern,
-    packageLocationLengths: [...packageLocationLengths].sort((a, b) => b - a),
-    packageLocatorsByLocations,
-    packageRegistry
-  };
-}
-// CONCATENATED MODULE: ./sources/loader/makeApi.ts
-
-
-
-
-function makeApi(runtimeState, opts) {
-  const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0;
-  const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); // @ts-ignore
-
-  const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`))); // Splits a require request into its components, or return null if the request is a file path
-
-  const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; // Matches if the path starts with a valid path qualifier (./, ../, /)
-  // eslint-disable-next-line no-unused-vars
-
-  const isStrictRegExp = /^\.{0,2}\//; // Matches if the path must point to a directory (ie ends with /)
-
-  const isDirRegExp = /\/$/; // We only instantiate one of those so that we can use strict-equal comparisons
-
-  const topLevelLocator = {
-    name: null,
-    reference: null
-  }; // Used for compatibility purposes - cf setupCompatibilityLayer
-
-  const fallbackLocators = []; // To avoid emitting the same warning multiple times
-
-  const emittedWarnings = new Set();
-
-  if (opts.compatibilityMode !== false) {
-    // ESLint currently doesn't have any portable way for shared configs to
-    // specify their own plugins that should be used (cf issue #10125). This
-    // will likely get fixed at some point but it'll take time, so in the
-    // meantime we'll just add additional fallback entries for common shared
-    // configs.
-    // Similarly, Gatsby generates files within the `public` folder located
-    // within the project, but doesn't pre-resolve the `require` calls to use
-    // its own dependencies. Meaning that when PnP see a file from the `public`
-    // folder making a require, it thinks that your project forgot to list one
-    // of your dependencies.
-    for (const name of [`react-scripts`, `gatsby`]) {
-      const packageStore = runtimeState.packageRegistry.get(name);
-
-      if (packageStore) {
-        for (const reference of packageStore.keys()) {
-          if (reference === null) {
-            throw new Error(`Assertion failed: This reference shouldn't be null`);
-          } else {
-            fallbackLocators.push({
-              name,
-              reference
-            });
-          }
-        }
-      }
-    }
-  }
-  /**
-   * The setup code will be injected here. The tables listed below are guaranteed to be filled after the call to
-   * the $$DYNAMICALLY_GENERATED_CODE function.
-   */
-
-
-  const {
-    ignorePattern,
-    packageRegistry,
-    packageLocatorsByLocations,
-    packageLocationLengths
-  } = runtimeState;
-  /**
-   * Allows to print useful logs just be setting a value in the environment
-   */
-
-  function makeLogEntry(name, args) {
-    return {
-      fn: name,
-      args,
-      error: null,
-      result: null
-    };
-  }
-
-  function maybeLog(name, fn) {
-    if (opts.allowDebug === false) return fn;
-
-    if (Number.isFinite(debugLevel)) {
-      if (debugLevel >= 2) {
-        return (...args) => {
-          const logEntry = makeLogEntry(name, args);
-
-          try {
-            return logEntry.result = fn(...args);
-          } catch (error) {
-            throw logEntry.error = error;
-          } finally {
-            console.trace(logEntry);
-          }
-        };
-      } else if (debugLevel >= 1) {
-        return (...args) => {
-          try {
-            return fn(...args);
-          } catch (error) {
-            const logEntry = makeLogEntry(name, args);
-            logEntry.error = error;
-            console.trace(logEntry);
-            throw error;
-          }
-        };
-      }
-    }
-
-    return fn;
-  }
-  /**
-   * Returns information about a package in a safe way (will throw if they cannot be retrieved)
-   */
-
-
-  function getPackageInformationSafe(packageLocator) {
-    const packageInformation = getPackageInformation(packageLocator);
-
-    if (!packageInformation) {
-      throw internalTools_makeError(ErrorCode.INTERNAL, `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)`);
-    }
-
-    return packageInformation;
-  }
-  /**
-   * Returns whether the specified locator is a dependency tree root (in which case it's part of the project) or not
-   */
-
-
-  function isDependencyTreeRoot(packageLocator) {
-    if (packageLocator.name === null) return true;
-
-    for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) return true;
-
-    return false;
-  }
-  /**
-   * Implements the node resolution for folder access and extension selection
-   */
-
-
-  function applyNodeExtensionResolution(unqualifiedPath, candidates, {
-    extensions
-  }) {
-    let stat;
-
-    try {
-      candidates.push(unqualifiedPath);
-      stat = opts.fakeFs.statSync(unqualifiedPath);
-    } catch (error) {} // If the file exists and is a file, we can stop right there
-
-
-    if (stat && !stat.isDirectory()) return opts.fakeFs.realpathSync(unqualifiedPath); // If the file is a directory, we must check if it contains a package.json with a "main" entry
-
-    if (stat && stat.isDirectory()) {
-      let pkgJson;
-
-      try {
-        pkgJson = JSON.parse(opts.fakeFs.readFileSync(sources_path/* ppath.join */.y1.join(unqualifiedPath, `package.json`), `utf8`));
-      } catch (error) {}
-
-      let nextUnqualifiedPath;
-      if (pkgJson && pkgJson.main) nextUnqualifiedPath = sources_path/* ppath.resolve */.y1.resolve(unqualifiedPath, pkgJson.main); // If the "main" field changed the path, we start again from this new location
-
-      if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) {
-        const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, {
-          extensions
-        });
-
-        if (resolution !== null) {
-          return resolution;
-        }
-      }
-    } // Otherwise we check if we find a file that match one of the supported extensions
-
-
-    for (let i = 0, length = extensions.length; i < length; i++) {
-      const candidateFile = `${unqualifiedPath}${extensions[i]}`;
-      candidates.push(candidateFile);
-
-      if (opts.fakeFs.existsSync(candidateFile)) {
-        return candidateFile;
-      }
-    } // Otherwise, we check if the path is a folder - in such a case, we try to use its index
-
-
-    if (stat && stat.isDirectory()) {
-      for (let i = 0, length = extensions.length; i < length; i++) {
-        const candidateFile = sources_path/* ppath.format */.y1.format({
-          dir: unqualifiedPath,
-          name: `index`,
-          ext: extensions[i]
-        });
-        candidates.push(candidateFile);
-
-        if (opts.fakeFs.existsSync(candidateFile)) {
-          return candidateFile;
-        }
-      }
-    } // Otherwise there's nothing else we can do :(
-
-
-    return null;
-  }
-  /**
-   * This function creates fake modules that can be used with the _resolveFilename function.
-   * Ideally it would be nice to be able to avoid this, since it causes useless allocations
-   * and cannot be cached efficiently (we recompute the nodeModulePaths every time).
-   *
-   * Fortunately, this should only affect the fallback, and there hopefully shouldn't have a
-   * lot of them.
-   */
-
-
-  function makeFakeModule(path) {
-    // @ts-ignore
-    const fakeModule = new external_module_.Module(path, null);
-    fakeModule.filename = path;
-    fakeModule.paths = external_module_.Module._nodeModulePaths(path);
-    return fakeModule;
-  }
-  /**
-   * Normalize path to posix format.
-   */
-
-
-  function normalizePath(p) {
-    return sources_path/* npath.toPortablePath */.cS.toPortablePath(p);
-  }
-  /**
-   * Forward the resolution to the next resolver (usually the native one)
-   */
-
-
-  function callNativeResolution(request, issuer) {
-    if (issuer.endsWith(`/`)) issuer = sources_path/* ppath.join */.y1.join(issuer, `internal.js`); // Since we would need to create a fake module anyway (to call _resolveLookupPath that
-    // would give us the paths to give to _resolveFilename), we can as well not use
-    // the {paths} option at all, since it internally makes _resolveFilename create another
-    // fake module anyway.
-
-    return external_module_.Module._resolveFilename(request, makeFakeModule(sources_path/* npath.fromPortablePath */.cS.fromPortablePath(issuer)), false, {
-      plugnplay: false
-    });
-  }
-  /**
-   *
-   */
-
-
-  function isPathIgnored(path) {
-    if (ignorePattern === null) return false;
-    const subPath = sources_path/* ppath.contains */.y1.contains(runtimeState.basePath, path);
-    if (subPath === null) return false;
-
-    if (ignorePattern.test(subPath.replace(/\/$/, ``))) {
-      return true;
-    } else {
-      return false;
-    }
-  }
-  /**
-   * This key indicates which version of the standard is implemented by this resolver. The `std` key is the
-   * Plug'n'Play standard, and any other key are third-party extensions. Third-party extensions are not allowed
-   * to override the standard, and can only offer new methods.
-   *
-   * If a new version of the Plug'n'Play standard is released and some extensions conflict with newly added
-   * functions, they'll just have to fix the conflicts and bump their own version number.
-   */
-
-
-  const VERSIONS = {
-    std: 3,
-    resolveVirtual: 1
-  };
-  /**
-   * We export a special symbol for easy access to the top level locator.
-   */
-
-  const topLevel = topLevelLocator;
-  /**
-   * Gets the package information for a given locator. Returns null if they cannot be retrieved.
-   */
-
-  function getPackageInformation({
-    name,
-    reference
-  }) {
-    const packageInformationStore = packageRegistry.get(name);
-    if (!packageInformationStore) return null;
-    const packageInformation = packageInformationStore.get(reference);
-    if (!packageInformation) return null;
-    return packageInformation;
-  }
-  /**
-   * Find all packages that depend on the specified one.
-   *
-   * Note: This is a private function; we expect consumers to implement it
-   * themselves. We keep it that way because this implementation isn't
-   * optimized at all, since we only need it when printing errors.
-   */
-
-
-  function findPackageDependents({
-    name,
-    reference
-  }) {
-    const dependents = [];
-
-    for (const [dependentName, packageInformationStore] of packageRegistry) {
-      if (dependentName === null) continue;
-
-      for (const [dependentReference, packageInformation] of packageInformationStore) {
-        if (dependentReference === null) continue;
-        const dependencyReference = packageInformation.packageDependencies.get(name);
-        if (dependencyReference !== reference) continue; // Don't forget that all packages depend on themselves
-
-        if (dependentName === name && dependentReference === reference) continue;
-        dependents.push({
-          name: dependentName,
-          reference: dependentReference
-        });
-      }
-    }
-
-    return dependents;
-  }
-  /**
-   * Find all packages that broke the peer dependency on X, starting from Y.
-   *
-   * Note: This is a private function; we expect consumers to implement it
-   * themselves. We keep it that way because this implementation isn't
-   * optimized at all, since we only need it when printing errors.
-   */
-
-
-  function findBrokenPeerDependencies(dependency, initialPackage) {
-    const brokenPackages = new Map();
-    const alreadyVisited = new Set();
-
-    const traversal = currentPackage => {
-      const identifier = JSON.stringify(currentPackage.name);
-      if (alreadyVisited.has(identifier)) return;
-      alreadyVisited.add(identifier);
-      const dependents = findPackageDependents(currentPackage);
-
-      for (const dependent of dependents) {
-        const dependentInformation = getPackageInformationSafe(dependent);
-
-        if (dependentInformation.packagePeers.has(dependency)) {
-          traversal(dependent);
-        } else {
-          let brokenSet = brokenPackages.get(dependent.name);
-          if (typeof brokenSet === `undefined`) brokenPackages.set(dependent.name, brokenSet = new Set());
-          brokenSet.add(dependent.reference);
-        }
-      }
-    };
-
-    traversal(initialPackage);
-    const brokenList = [];
-
-    for (const name of [...brokenPackages.keys()].sort()) for (const reference of [...brokenPackages.get(name)].sort()) brokenList.push({
-      name,
-      reference
-    });
-
-    return brokenList;
-  }
-  /**
-   * Finds the package locator that owns the specified path. If none is found, returns null instead.
-   */
-
-
-  function findPackageLocator(location) {
-    let relativeLocation = normalizePath(sources_path/* ppath.relative */.y1.relative(runtimeState.basePath, location));
-    if (!relativeLocation.match(isStrictRegExp)) relativeLocation = `./${relativeLocation}`;
-    if (location.match(isDirRegExp) && !relativeLocation.endsWith(`/`)) relativeLocation = `${relativeLocation}/`;
-    let from = 0; // If someone wants to use a binary search to go from O(n) to O(log n), be my guest
-
-    while (from < packageLocationLengths.length && packageLocationLengths[from] > relativeLocation.length) from += 1;
-
-    for (let t = from; t < packageLocationLengths.length; ++t) {
-      const locator = packageLocatorsByLocations.get(relativeLocation.substr(0, packageLocationLengths[t]));
-      if (typeof locator === `undefined`) continue; // Ensures that the returned locator isn't a blacklisted one.
-      //
-      // Blacklisted packages are packages that cannot be used because their dependencies cannot be deduced. This only
-      // happens with peer dependencies, which effectively have different sets of dependencies depending on their
-      // parents.
-      //
-      // In order to deambiguate those different sets of dependencies, the Yarn implementation of PnP will generate a
-      // symlink for each combination of <package name>/<package version>/<dependent package> it will find, and will
-      // blacklist the target of those symlinks. By doing this, we ensure that files loaded through a specific path
-      // will always have the same set of dependencies, provided the symlinks are correctly preserved.
-      //
-      // Unfortunately, some tools do not preserve them, and when it happens PnP isn't able anymore to deduce the set of
-      // dependencies based on the path of the file that makes the require calls. But since we've blacklisted those
-      // paths, we're able to print a more helpful error message that points out that a third-party package is doing
-      // something incompatible!
-
-      if (locator === null) {
-        throw internalTools_makeError(ErrorCode.BLACKLISTED, `A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: ${location}`, {
-          location
-        });
-      }
-
-      return locator;
-    }
-
-    return null;
-  }
-  /**
-   * Transforms a request (what's typically passed as argument to the require function) into an unqualified path.
-   * This path is called "unqualified" because it only changes the package name to the package location on the disk,
-   * which means that the end result still cannot be directly accessed (for example, it doesn't try to resolve the
-   * file extension, or to resolve directories to their "index.js" content). Use the "resolveUnqualified" function
-   * to convert them to fully-qualified paths, or just use "resolveRequest" that do both operations in one go.
-   *
-   * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be
-   * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative
-   * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/").
-   */
-
-
-  function resolveToUnqualified(request, issuer, {
-    considerBuiltins = true
-  } = {}) {
-    // The 'pnpapi' request is reserved and will always return the path to the PnP file, from everywhere
-    if (request === `pnpapi`) return sources_path/* npath.toPortablePath */.cS.toPortablePath(opts.pnpapiResolution); // Bailout if the request is a native module
-
-    if (considerBuiltins && builtinModules.has(request)) return null; // We allow disabling the pnp resolution for some subpaths.
-    // This is because some projects, often legacy, contain multiple
-    // levels of dependencies (ie. a yarn.lock inside a subfolder of
-    // a yarn.lock). This is typically solved using workspaces, but
-    // not all of them have been converted already.
-
-    if (issuer && isPathIgnored(issuer)) {
-      // Absolute paths that seem to belong to a PnP tree are still
-      // handled by our runtime even if the issuer isn't. This is
-      // because the native Node resolution uses a special version
-      // of the `stat` syscall which would otherwise bypass the
-      // filesystem layer we require to access the files.
-      if (!sources_path/* ppath.isAbsolute */.y1.isAbsolute(request) || findPackageLocator(request) === null) {
-        const result = callNativeResolution(request, issuer);
-
-        if (result === false) {
-          throw internalTools_makeError(ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${request}"\nRequired by: ${issuer}\n`, {
-            request,
-            issuer
-          });
-        }
-
-        return sources_path/* npath.toPortablePath */.cS.toPortablePath(result);
-      }
-    }
-
-    let unqualifiedPath; // If the request is a relative or absolute path, we just return it normalized
-
-    const dependencyNameMatch = request.match(pathRegExp);
-
-    if (!dependencyNameMatch) {
-      if (sources_path/* ppath.isAbsolute */.y1.isAbsolute(request)) {
-        unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(request);
-      } else {
-        if (!issuer) {
-          throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, {
-            request,
-            issuer
-          });
-        } // We use ppath.join instead of ppath.resolve because:
-        // 1) The request is a relative path in this branch
-        // 2) ppath.join preserves trailing slashes
-
-
-        const absoluteIssuer = sources_path/* ppath.resolve */.y1.resolve(issuer);
-
-        if (issuer.match(isDirRegExp)) {
-          unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(sources_path/* ppath.join */.y1.join(absoluteIssuer, request));
-        } else {
-          unqualifiedPath = sources_path/* ppath.normalize */.y1.normalize(sources_path/* ppath.join */.y1.join(sources_path/* ppath.dirname */.y1.dirname(absoluteIssuer), request));
-        }
-      } // No need to use the return value; we just want to check the blacklist status
-
-
-      findPackageLocator(unqualifiedPath);
-    } // Things are more hairy if it's a package require - we then need to figure out which package is needed, and in
-    // particular the exact version for the given location on the dependency tree
-    else {
-        if (!issuer) {
-          throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, {
-            request,
-            issuer
-          });
-        }
-
-        const [, dependencyName, subPath] = dependencyNameMatch;
-        const issuerLocator = findPackageLocator(issuer); // If the issuer file doesn't seem to be owned by a package managed through pnp, then we resort to using the next
-        // resolution algorithm in the chain, usually the native Node resolution one
-
-        if (!issuerLocator) {
-          const result = callNativeResolution(request, issuer);
-
-          if (result === false) {
-            throw internalTools_makeError(ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: "${request}"\nRequired by: ${issuer}\n`, {
-              request,
-              issuer
-            });
-          }
-
-          return sources_path/* npath.toPortablePath */.cS.toPortablePath(result);
-        }
-
-        const issuerInformation = getPackageInformationSafe(issuerLocator); // We obtain the dependency reference in regard to the package that request it
-
-        let dependencyReference = issuerInformation.packageDependencies.get(dependencyName);
-        let fallbackReference = null; // If we can't find it, we check if we can potentially load it from the packages that have been defined as potential fallbacks.
-        // It's a bit of a hack, but it improves compatibility with the existing Node ecosystem. Hopefully we should eventually be able
-        // to kill this logic and become stricter once pnp gets enough traction and the affected packages fix themselves.
-
-        if (dependencyReference == null) {
-          if (issuerLocator.name !== null) {
-            // To allow programs to become gradually stricter, starting from the v2 we enforce that workspaces cannot depend on fallbacks.
-            // This works by having a list containing all their locators, and checking when a fallback is required whether it's one of them.
-            const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name);
-            const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference);
-
-            if (canUseFallbacks) {
-              for (let t = 0, T = fallbackLocators.length; t < T; ++t) {
-                const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]);
-                const reference = fallbackInformation.packageDependencies.get(dependencyName);
-                if (reference == null) continue;
-                if (alwaysWarnOnFallback) fallbackReference = reference;else dependencyReference = reference;
-                break;
-              }
-
-              if (runtimeState.enableTopLevelFallback) {
-                if (dependencyReference == null && fallbackReference === null) {
-                  const reference = runtimeState.fallbackPool.get(dependencyName);
-
-                  if (reference != null) {
-                    fallbackReference = reference;
-                  }
-                }
-              }
-            }
-          }
-        } // If we can't find the path, and if the package making the request is the top-level, we can offer nicer error messages
-
-
-        let error = null;
-
-        if (dependencyReference === null) {
-          if (isDependencyTreeRoot(issuerLocator)) {
-            error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuer}\n`, {
-              request,
-              issuer,
-              dependencyName
-            });
-          } else {
-            const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator);
-
-            if (brokenAncestors.every(ancestor => isDependencyTreeRoot(ancestor))) {
-              error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, {
-                request,
-                issuer,
-                issuerLocator: Object.assign({}, issuerLocator),
-                dependencyName,
-                brokenAncestors
-              });
-            } else {
-              error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, {
-                request,
-                issuer,
-                issuerLocator: Object.assign({}, issuerLocator),
-                dependencyName,
-                brokenAncestors
-              });
-            }
-          }
-        } else if (dependencyReference === undefined) {
-          if (isDependencyTreeRoot(issuerLocator)) {
-            error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuer}\n`, {
-              request,
-              issuer,
-              dependencyName
-            });
-          } else {
-            error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n`, {
-              request,
-              issuer,
-              issuerLocator: Object.assign({}, issuerLocator),
-              dependencyName
-            });
-          }
-        }
-
-        if (dependencyReference == null) {
-          if (fallbackReference === null || error === null) throw error || new Error(`Assertion failed: Expected an error to have been set`);
-          dependencyReference = fallbackReference;
-          const message = error.message.replace(/\n.*/g, ``);
-          error.message = message;
-
-          if (!emittedWarnings.has(message)) {
-            emittedWarnings.add(message);
-            process.emitWarning(error);
-          }
-        } // We need to check that the package exists on the filesystem, because it might not have been installed
-
-
-        const dependencyLocator = Array.isArray(dependencyReference) ? {
-          name: dependencyReference[0],
-          reference: dependencyReference[1]
-        } : {
-          name: dependencyName,
-          reference: dependencyReference
-        };
-        const dependencyInformation = getPackageInformationSafe(dependencyLocator);
-
-        if (!dependencyInformation.packageLocation) {
-          throw internalTools_makeError(ErrorCode.MISSING_DEPENDENCY, `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${dependencyLocator.name}@${dependencyLocator.reference} (via "${request}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuer})\n`, {
-            request,
-            issuer,
-            dependencyLocator: Object.assign({}, dependencyLocator)
-          });
-        } // Now that we know which package we should resolve to, we only have to find out the file location
-
-
-        const dependencyLocation = sources_path/* ppath.resolve */.y1.resolve(runtimeState.basePath, dependencyInformation.packageLocation);
-
-        if (subPath) {
-          unqualifiedPath = sources_path/* ppath.resolve */.y1.resolve(dependencyLocation, subPath);
-        } else {
-          unqualifiedPath = dependencyLocation;
-        }
-      }
-
-    return sources_path/* ppath.normalize */.y1.normalize(unqualifiedPath);
-  }
-  /**
-   * Transforms an unqualified path into a qualified path by using the Node resolution algorithm (which automatically
-   * appends ".js" / ".json", and transforms directory accesses into "index.js").
-   */
-
-
-  function resolveUnqualified(unqualifiedPath, {
-    extensions = Object.keys(external_module_.Module._extensions)
-  } = {}) {
-    const candidates = [];
-    const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, {
-      extensions
-    });
-
-    if (qualifiedPath) {
-      return sources_path/* ppath.normalize */.y1.normalize(qualifiedPath);
-    } else {
-      throw internalTools_makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${unqualifiedPath}\n${candidates.map(candidate => `Rejected candidate: ${candidate}\n`).join(``)}`, {
-        unqualifiedPath
-      });
-    }
-  }
-  /**
-   * Transforms a request into a fully qualified path.
-   *
-   * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be
-   * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative
-   * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/").
-   */
-
-
-  function resolveRequest(request, issuer, {
-    considerBuiltins,
-    extensions
-  } = {}) {
-    const unqualifiedPath = resolveToUnqualified(request, issuer, {
-      considerBuiltins
-    });
-    if (unqualifiedPath === null) return null;
-
-    try {
-      return resolveUnqualified(unqualifiedPath, {
-        extensions
-      });
-    } catch (resolutionError) {
-      if (resolutionError.pnpCode === `QUALIFIED_PATH_RESOLUTION_FAILED`) Object.assign(resolutionError.data, {
-        request,
-        issuer
-      });
-      throw resolutionError;
-    }
-  }
-
-  function resolveVirtual(request) {
-    const normalized = sources_path/* ppath.normalize */.y1.normalize(request);
-    const resolved = VirtualFS.resolveVirtual(normalized);
-    return resolved !== normalized ? resolved : null;
-  }
-
-  return {
-    VERSIONS,
-    topLevel,
-    getLocator: (name, referencish) => {
-      if (Array.isArray(referencish)) {
-        return {
-          name: referencish[0],
-          reference: referencish[1]
-        };
-      } else {
-        return {
-          name,
-          reference: referencish
-        };
-      }
-    },
-    getDependencyTreeRoots: () => {
-      return [...runtimeState.dependencyTreeRoots];
-    },
-    getPackageInformation: locator => {
-      const info = getPackageInformation(locator);
-      if (info === null) return null;
-      const packageLocation = sources_path/* npath.fromPortablePath */.cS.fromPortablePath(info.packageLocation);
-      const nativeInfo = { ...info,
-        packageLocation
-      };
-      return nativeInfo;
-    },
-    findPackageLocator: path => {
-      return findPackageLocator(sources_path/* npath.toPortablePath */.cS.toPortablePath(path));
-    },
-    resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts) => {
-      const portableIssuer = issuer !== null ? sources_path/* npath.toPortablePath */.cS.toPortablePath(issuer) : null;
-      const resolution = resolveToUnqualified(sources_path/* npath.toPortablePath */.cS.toPortablePath(request), portableIssuer, opts);
-      if (resolution === null) return null;
-      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolution);
-    }),
-    resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts) => {
-      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolveUnqualified(sources_path/* npath.toPortablePath */.cS.toPortablePath(unqualifiedPath), opts));
-    }),
-    resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts) => {
-      const portableIssuer = issuer !== null ? sources_path/* npath.toPortablePath */.cS.toPortablePath(issuer) : null;
-      const resolution = resolveRequest(sources_path/* npath.toPortablePath */.cS.toPortablePath(request), portableIssuer, opts);
-      if (resolution === null) return null;
-      return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(resolution);
-    }),
-    resolveVirtual: maybeLog(`resolveVirtual`, path => {
-      const result = resolveVirtual(sources_path/* npath.toPortablePath */.cS.toPortablePath(path));
-
-      if (result !== null) {
-        return sources_path/* npath.fromPortablePath */.cS.fromPortablePath(result);
-      } else {
-        return null;
-      }
-    })
-  };
-}
-// CONCATENATED MODULE: ./sources/loader/makeManager.ts
-
-
-function makeManager(pnpapi, opts) {
-  const initialApiPath = sources_path/* npath.toPortablePath */.cS.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null));
-  const initialApiStats = opts.fakeFs.statSync(sources_path/* npath.toPortablePath */.cS.toPortablePath(initialApiPath));
-  const apiMetadata = new Map([[initialApiPath, {
-    cache: external_module_.Module._cache,
-    instance: pnpapi,
-    stats: initialApiStats
-  }]]);
-
-  function loadApiInstance(pnpApiPath) {
-    const nativePath = sources_path/* npath.fromPortablePath */.cS.fromPortablePath(pnpApiPath); // @ts-ignore
-
-    const module = new external_module_.Module(nativePath, null); // @ts-ignore
-
-    module.load(nativePath);
-    return module.exports;
-  }
-
-  function refreshApiEntry(pnpApiPath, apiEntry) {
-    const stats = opts.fakeFs.statSync(pnpApiPath);
-
-    if (stats.mtime > apiEntry.stats.mtime) {
-      console.warn(`[Warning] The runtime detected new informations in a PnP file; reloading the API instance (${pnpApiPath})`);
-      apiEntry.instance = loadApiInstance(pnpApiPath);
-      apiEntry.stats = stats;
-    }
-  }
-
-  function getApiEntry(pnpApiPath, refresh = false) {
-    let apiEntry = apiMetadata.get(pnpApiPath);
-
-    if (typeof apiEntry !== `undefined`) {
-      if (refresh) {
-        refreshApiEntry(pnpApiPath, apiEntry);
-      }
-    } else {
-      apiMetadata.set(pnpApiPath, apiEntry = {
-        cache: {},
-        instance: loadApiInstance(pnpApiPath),
-        stats: opts.fakeFs.statSync(pnpApiPath)
-      });
-    }
-
-    return apiEntry;
-  }
-
-  const findApiPathCache = new Map();
-
-  function addToCache(start, end, target) {
-    let curr;
-    let next = start;
-
-    do {
-      curr = next;
-      findApiPathCache.set(curr, target);
-      next = sources_path/* ppath.dirname */.y1.dirname(curr);
-    } while (curr !== end);
-  }
-
-  function findApiPathFor(modulePath) {
-    const start = VirtualFS.resolveVirtual(sources_path/* ppath.resolve */.y1.resolve(sources_path/* npath.toPortablePath */.cS.toPortablePath(modulePath)));
-    let curr;
-    let next = start;
-
-    do {
-      curr = next;
-      const cached = findApiPathCache.get(curr);
-
-      if (cached !== undefined) {
-        addToCache(start, curr, cached);
-        return cached;
-      }
-
-      const candidate = sources_path/* ppath.join */.y1.join(curr, `.pnp.js`);
-
-      if (xfs.existsSync(candidate) && xfs.statSync(candidate).isFile()) {
-        addToCache(start, curr, candidate);
-        return candidate;
-      }
-
-      const cjsCandidate = sources_path/* ppath.join */.y1.join(curr, `.pnp.cjs`);
-
-      if (xfs.existsSync(cjsCandidate) && xfs.statSync(cjsCandidate).isFile()) {
-        addToCache(start, curr, cjsCandidate);
-        return cjsCandidate;
-      }
-
-      next = sources_path/* ppath.dirname */.y1.dirname(curr);
-    } while (curr !== sources_path/* PortablePath.root */.LZ.root);
-
-    addToCache(start, curr, null);
-    return null;
-  }
-
-  function getApiPathFromParent(parent) {
-    if (parent == null) return initialApiPath;
-
-    if (typeof parent.pnpApiPath === `undefined`) {
-      if (parent.filename !== null) {
-        return parent.pnpApiPath = findApiPathFor(parent.filename);
-      } else {
-        return initialApiPath;
-      }
-    }
-
-    if (parent.pnpApiPath !== null) return parent.pnpApiPath;
-    return null;
-  }
-
-  return {
-    getApiPathFromParent,
-    findApiPathFor,
-    getApiEntry
-  };
-}
-// CONCATENATED MODULE: ./sources/loader/_entryPoint.ts
-
-
-
-
-
-
-
-
- // We must copy the fs into a local, because otherwise
-// 1. we would make the NodeFS instance use the function that we patched (infinite loop)
-// 2. Object.create(fs) isn't enough, since it won't prevent the proto from being modified
-
-const localFs = { ...(external_fs_default())
-};
-const nodeFs = new NodeFS(localFs);
-const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState);
-const defaultPnpapiResolution = __filename; // We create a virtual filesystem that will do three things:
-// 1. all requests inside a folder named "$$virtual" will be remapped according the virtual folder rules
-// 2. all requests going inside a Zip archive will be handled by the Zip fs implementation
-// 3. any remaining request will be forwarded to Node as-is
-
-const defaultFsLayer = new VirtualFS({
-  baseFs: new ZipOpenFS({
-    baseFs: nodeFs,
-    libzip: getLibzipSync(),
-    maxOpenFiles: 80,
-    readOnlyArchives: true
-  })
-});
-let manager;
-const defaultApi = Object.assign(makeApi(defaultRuntimeState, {
-  fakeFs: defaultFsLayer,
-  pnpapiResolution: defaultPnpapiResolution
-}), {
-  /**
-   * Can be used to generate a different API than the default one (for example
-   * to map it on `/` rather than the local directory path, or to use a
-   * different FS layer than the default one).
-   */
-  makeApi: ({
-    basePath = undefined,
-    fakeFs = defaultFsLayer,
-    pnpapiResolution = defaultPnpapiResolution,
-    ...rest
-  }) => {
-    const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState;
-    return makeApi(apiRuntimeState, {
-      fakeFs,
-      pnpapiResolution,
-      ...rest
-    });
-  },
-
-  /**
-   * Will inject the specified API into the environment, monkey-patching FS. Is
-   * automatically called when the hook is loaded through `--require`.
-   */
-  setup: api => {
-    applyPatch(api || defaultApi, {
-      fakeFs: defaultFsLayer,
-      manager
-    });
-  }
-});
-manager = makeManager(defaultApi, {
-  fakeFs: defaultFsLayer
-}); // eslint-disable-next-line arca/no-default-export
-
-/* harmony default export */ const _entryPoint = (defaultApi);
-
-if (__non_webpack_module__.parent && __non_webpack_module__.parent.id === `internal/preload`) {
-  defaultApi.setup();
-
-  if (__non_webpack_module__.filename) {
-    // We delete it from the cache in order to support the case where the CLI resolver is invoked from "yarn run"
-    // It's annoying because it might cause some issues when the file is multiple times in NODE_OPTIONS, but it shouldn't happen anyway.
-    // @ts-ignore
-    delete (external_module_default())._cache[__non_webpack_module__.filename];
-  }
-} // @ts-ignore
-
-
-if (process.mainModule === __non_webpack_module__) {
-  const reportError = (code, message, data) => {
-    process.stdout.write(`${JSON.stringify([{
-      code,
-      message,
-      data
-    }, null])}\n`);
-  };
-
-  const reportSuccess = resolution => {
-    process.stdout.write(`${JSON.stringify([null, resolution])}\n`);
-  };
-
-  const processResolution = (request, issuer) => {
-    try {
-      reportSuccess(defaultApi.resolveRequest(request, issuer));
-    } catch (error) {
-      reportError(error.code, error.message, error.data);
-    }
-  };
-
-  const processRequest = data => {
-    try {
-      const [request, issuer] = JSON.parse(data);
-      processResolution(request, issuer);
-    } catch (error) {
-      reportError(`INVALID_JSON`, error.message, error.data);
-    }
-  };
-
-  if (process.argv.length > 2) {
-    if (process.argv.length !== 4) {
-      process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} <request> <issuer>\n`);
-      process.exitCode = 64;
-      /* EX_USAGE */
-    } else {
-      processResolution(process.argv[2], process.argv[3]);
-    }
-  } else {
-    let buffer = ``;
-    const decoder = new (external_string_decoder_default()).StringDecoder();
-    process.stdin.on(`data`, chunk => {
-      buffer += decoder.write(chunk);
-
-      do {
-        const index = buffer.indexOf(`\n`);
-        if (index === -1) break;
-        const line = buffer.slice(0, index);
-        buffer = buffer.slice(index + 1);
-        processRequest(line);
-      } while (true);
-    });
-  }
-}
-
-/***/ }),
-
-/***/ 368:
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-var frozenFs = Object.assign({}, __webpack_require__(747));
-var Module = typeof Module !== "undefined" ? Module : {};
-var moduleOverrides = {};
-var key;
-for (key in Module) {
-  if (Module.hasOwnProperty(key)) {
-    moduleOverrides[key] = Module[key];
-  }
-}
-var arguments_ = [];
-var thisProgram = "./this.program";
-var quit_ = function(status, toThrow) {
-  throw toThrow;
-};
-var ENVIRONMENT_IS_WORKER = false;
-var ENVIRONMENT_IS_NODE = true;
-var scriptDirectory = "";
-function locateFile(path) {
-  if (Module["locateFile"]) {
-    return Module["locateFile"](path, scriptDirectory);
-  }
-  return scriptDirectory + path;
-}
-var read_, readBinary;
-var nodeFS;
-var nodePath;
-if (ENVIRONMENT_IS_NODE) {
-  if (ENVIRONMENT_IS_WORKER) {
-    scriptDirectory = __webpack_require__(622).dirname(scriptDirectory) + "/";
-  } else {
-    scriptDirectory = __dirname + "/";
-  }
-  read_ = function shell_read(filename, binary) {
-    var ret = tryParseAsDataURI(filename);
-    if (ret) {
-      return binary ? ret : ret.toString();
-    }
-    if (!nodeFS) nodeFS = frozenFs;
-    if (!nodePath) nodePath = __webpack_require__(622);
-    filename = nodePath["normalize"](filename);
-    return nodeFS["readFileSync"](filename, binary ? null : "utf8");
-  };
-  readBinary = function readBinary(filename) {
-    var ret = read_(filename, true);
-    if (!ret.buffer) {
-      ret = new Uint8Array(ret);
-    }
-    assert(ret.buffer);
-    return ret;
-  };
-  if (process["argv"].length > 1) {
-    thisProgram = process["argv"][1].replace(/\\/g, "/");
-  }
-  arguments_ = process["argv"].slice(2);
-  if (true) {
-    module["exports"] = Module;
-  }
-  (function() {})("uncaughtException", function(ex) {
-    if (!(ex instanceof ExitStatus)) {
-      throw ex;
-    }
-  });
-  (function() {})("unhandledRejection", abort);
-  quit_ = function(status) {
-    process["exit"](status);
-  };
-  Module["inspect"] = function() {
-    return "[Emscripten Module object]";
-  };
-} else {
-}
-var out = Module["print"] || console.log.bind(console);
-var err = Module["printErr"] || console.warn.bind(console);
-for (key in moduleOverrides) {
-  if (moduleOverrides.hasOwnProperty(key)) {
-    Module[key] = moduleOverrides[key];
-  }
-}
-moduleOverrides = null;
-if (Module["arguments"]) arguments_ = Module["arguments"];
-if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
-if (Module["quit"]) quit_ = Module["quit"];
-var tempRet0 = 0;
-var setTempRet0 = function(value) {
-  tempRet0 = value;
-};
-var wasmBinary;
-if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
-var noExitRuntime;
-if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
-if (typeof WebAssembly !== "object") {
-  err("no native wasm support detected");
-}
-function getValue(ptr, type, noSafe) {
-  type = type || "i8";
-  if (type.charAt(type.length - 1) === "*") type = "i32";
-  switch (type) {
-    case "i1":
-      return HEAP8[ptr >> 0];
-    case "i8":
-      return HEAP8[ptr >> 0];
-    case "i16":
-      return HEAP16[ptr >> 1];
-    case "i32":
-      return HEAP32[ptr >> 2];
-    case "i64":
-      return HEAP32[ptr >> 2];
-    case "float":
-      return HEAPF32[ptr >> 2];
-    case "double":
-      return HEAPF64[ptr >> 3];
-    default:
-      abort("invalid type for getValue: " + type);
-  }
-  return null;
-}
-var wasmMemory;
-var wasmTable = new WebAssembly.Table({
-  initial: 31,
-  maximum: 31 + 0,
-  element: "anyfunc"
-});
-var ABORT = false;
-var EXITSTATUS = 0;
-function assert(condition, text) {
-  if (!condition) {
-    abort("Assertion failed: " + text);
-  }
-}
-function getCFunc(ident) {
-  var func = Module["_" + ident];
-  assert(
-    func,
-    "Cannot call unknown function " + ident + ", make sure it is exported"
-  );
-  return func;
-}
-function ccall(ident, returnType, argTypes, args, opts) {
-  var toC = {
-    string: function(str) {
-      var ret = 0;
-      if (str !== null && str !== undefined && str !== 0) {
-        var len = (str.length << 2) + 1;
-        ret = stackAlloc(len);
-        stringToUTF8(str, ret, len);
-      }
-      return ret;
-    },
-    array: function(arr) {
-      var ret = stackAlloc(arr.length);
-      writeArrayToMemory(arr, ret);
-      return ret;
-    }
-  };
-  function convertReturnValue(ret) {
-    if (returnType === "string") return UTF8ToString(ret);
-    if (returnType === "boolean") return Boolean(ret);
-    return ret;
-  }
-  var func = getCFunc(ident);
-  var cArgs = [];
-  var stack = 0;
-  if (args) {
-    for (var i = 0; i < args.length; i++) {
-      var converter = toC[argTypes[i]];
-      if (converter) {
-        if (stack === 0) stack = stackSave();
-        cArgs[i] = converter(args[i]);
-      } else {
-        cArgs[i] = args[i];
-      }
-    }
-  }
-  var ret = func.apply(null, cArgs);
-  ret = convertReturnValue(ret);
-  if (stack !== 0) stackRestore(stack);
-  return ret;
-}
-function cwrap(ident, returnType, argTypes, opts) {
-  argTypes = argTypes || [];
-  var numericArgs = argTypes.every(function(type) {
-    return type === "number";
-  });
-  var numericRet = returnType !== "string";
-  if (numericRet && numericArgs && !opts) {
-    return getCFunc(ident);
-  }
-  return function() {
-    return ccall(ident, returnType, argTypes, arguments, opts);
-  };
-}
-var UTF8Decoder =
-  typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;
-function UTF8ArrayToString(heap, idx, maxBytesToRead) {
-  var endIdx = idx + maxBytesToRead;
-  var endPtr = idx;
-  while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;
-  if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {
-    return UTF8Decoder.decode(heap.subarray(idx, endPtr));
-  } else {
-    var str = "";
-    while (idx < endPtr) {
-      var u0 = heap[idx++];
-      if (!(u0 & 128)) {
-        str += String.fromCharCode(u0);
-        continue;
-      }
-      var u1 = heap[idx++] & 63;
-      if ((u0 & 224) == 192) {
-        str += String.fromCharCode(((u0 & 31) << 6) | u1);
-        continue;
-      }
-      var u2 = heap[idx++] & 63;
-      if ((u0 & 240) == 224) {
-        u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;
-      } else {
-        u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63);
-      }
-      if (u0 < 65536) {
-        str += String.fromCharCode(u0);
-      } else {
-        var ch = u0 - 65536;
-        str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));
-      }
-    }
-  }
-  return str;
-}
-function UTF8ToString(ptr, maxBytesToRead) {
-  return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
-}
-function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
-  if (!(maxBytesToWrite > 0)) return 0;
-  var startIdx = outIdx;
-  var endIdx = outIdx + maxBytesToWrite - 1;
-  for (var i = 0; i < str.length; ++i) {
-    var u = str.charCodeAt(i);
-    if (u >= 55296 && u <= 57343) {
-      var u1 = str.charCodeAt(++i);
-      u = (65536 + ((u & 1023) << 10)) | (u1 & 1023);
-    }
-    if (u <= 127) {
-      if (outIdx >= endIdx) break;
-      heap[outIdx++] = u;
-    } else if (u <= 2047) {
-      if (outIdx + 1 >= endIdx) break;
-      heap[outIdx++] = 192 | (u >> 6);
-      heap[outIdx++] = 128 | (u & 63);
-    } else if (u <= 65535) {
-      if (outIdx + 2 >= endIdx) break;
-      heap[outIdx++] = 224 | (u >> 12);
-      heap[outIdx++] = 128 | ((u >> 6) & 63);
-      heap[outIdx++] = 128 | (u & 63);
-    } else {
-      if (outIdx + 3 >= endIdx) break;
-      heap[outIdx++] = 240 | (u >> 18);
-      heap[outIdx++] = 128 | ((u >> 12) & 63);
-      heap[outIdx++] = 128 | ((u >> 6) & 63);
-      heap[outIdx++] = 128 | (u & 63);
-    }
-  }
-  heap[outIdx] = 0;
-  return outIdx - startIdx;
-}
-function stringToUTF8(str, outPtr, maxBytesToWrite) {
-  return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
-}
-function lengthBytesUTF8(str) {
-  var len = 0;
-  for (var i = 0; i < str.length; ++i) {
-    var u = str.charCodeAt(i);
-    if (u >= 55296 && u <= 57343)
-      u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023);
-    if (u <= 127) ++len;
-    else if (u <= 2047) len += 2;
-    else if (u <= 65535) len += 3;
-    else len += 4;
-  }
-  return len;
-}
-function allocateUTF8(str) {
-  var size = lengthBytesUTF8(str) + 1;
-  var ret = _malloc(size);
-  if (ret) stringToUTF8Array(str, HEAP8, ret, size);
-  return ret;
-}
-function writeArrayToMemory(array, buffer) {
-  HEAP8.set(array, buffer);
-}
-var WASM_PAGE_SIZE = 65536;
-function alignUp(x, multiple) {
-  if (x % multiple > 0) {
-    x += multiple - (x % multiple);
-  }
-  return x;
-}
-var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
-function updateGlobalBufferAndViews(buf) {
-  buffer = buf;
-  Module["HEAP8"] = HEAP8 = new Int8Array(buf);
-  Module["HEAP16"] = HEAP16 = new Int16Array(buf);
-  Module["HEAP32"] = HEAP32 = new Int32Array(buf);
-  Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
-  Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf);
-  Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
-  Module["HEAPF32"] = HEAPF32 = new Float32Array(buf);
-  Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
-}
-var DYNAMIC_BASE = 5263680,
-  DYNAMICTOP_PTR = 20640;
-var INITIAL_INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
-if (Module["wasmMemory"]) {
-  wasmMemory = Module["wasmMemory"];
-} else {
-  wasmMemory = new WebAssembly.Memory({
-    initial: INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE,
-    maximum: 2147483648 / WASM_PAGE_SIZE
-  });
-}
-if (wasmMemory) {
-  buffer = wasmMemory.buffer;
-}
-INITIAL_INITIAL_MEMORY = buffer.byteLength;
-updateGlobalBufferAndViews(buffer);
-HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;
-function callRuntimeCallbacks(callbacks) {
-  while (callbacks.length > 0) {
-    var callback = callbacks.shift();
-    if (typeof callback == "function") {
-      callback(Module);
-      continue;
-    }
-    var func = callback.func;
-    if (typeof func === "number") {
-      if (callback.arg === undefined) {
-        Module["dynCall_v"](func);
-      } else {
-        Module["dynCall_vi"](func, callback.arg);
-      }
-    } else {
-      func(callback.arg === undefined ? null : callback.arg);
-    }
-  }
-}
-var __ATPRERUN__ = [];
-var __ATINIT__ = [];
-var __ATMAIN__ = [];
-var __ATPOSTRUN__ = [];
-var runtimeInitialized = false;
-function preRun() {
-  if (Module["preRun"]) {
-    if (typeof Module["preRun"] == "function")
-      Module["preRun"] = [Module["preRun"]];
-    while (Module["preRun"].length) {
-      addOnPreRun(Module["preRun"].shift());
-    }
-  }
-  callRuntimeCallbacks(__ATPRERUN__);
-}
-function initRuntime() {
-  runtimeInitialized = true;
-  if (!Module["noFSInit"] && !FS.init.initialized) FS.init();
-  TTY.init();
-  callRuntimeCallbacks(__ATINIT__);
-}
-function preMain() {
-  FS.ignorePermissions = false;
-  callRuntimeCallbacks(__ATMAIN__);
-}
-function postRun() {
-  if (Module["postRun"]) {
-    if (typeof Module["postRun"] == "function")
-      Module["postRun"] = [Module["postRun"]];
-    while (Module["postRun"].length) {
-      addOnPostRun(Module["postRun"].shift());
-    }
-  }
-  callRuntimeCallbacks(__ATPOSTRUN__);
-}
-function addOnPreRun(cb) {
-  __ATPRERUN__.unshift(cb);
-}
-function addOnPostRun(cb) {
-  __ATPOSTRUN__.unshift(cb);
-}
-var Math_abs = Math.abs;
-var Math_ceil = Math.ceil;
-var Math_floor = Math.floor;
-var Math_min = Math.min;
-var runDependencies = 0;
-var runDependencyWatcher = null;
-var dependenciesFulfilled = null;
-function getUniqueRunDependency(id) {
-  return id;
-}
-function addRunDependency(id) {
-  runDependencies++;
-  if (Module["monitorRunDependencies"]) {
-    Module["monitorRunDependencies"](runDependencies);
-  }
-}
-function removeRunDependency(id) {
-  runDependencies--;
-  if (Module["monitorRunDependencies"]) {
-    Module["monitorRunDependencies"](runDependencies);
-  }
-  if (runDependencies == 0) {
-    if (runDependencyWatcher !== null) {
-      clearInterval(runDependencyWatcher);
-      runDependencyWatcher = null;
-    }
-    if (dependenciesFulfilled) {
-      var callback = dependenciesFulfilled;
-      dependenciesFulfilled = null;
-      callback();
-    }
-  }
-}
-Module["preloadedImages"] = {};
-Module["preloadedAudios"] = {};
-function abort(what) {
-  if (Module["onAbort"]) {
-    Module["onAbort"](what);
-  }
-  what += "";
-  out(what);
-  err(what);
-  ABORT = true;
-  EXITSTATUS = 1;
-  what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info.";
-  throw new WebAssembly.RuntimeError(what);
-}
-function hasPrefix(str, prefix) {
-  return String.prototype.startsWith
-    ? str.startsWith(prefix)
-    : str.indexOf(prefix) === 0;
-}
-var dataURIPrefix = "data:application/octet-stream;base64,";
-function isDataURI(filename) {
-  return hasPrefix(filename, dataURIPrefix);
-}
-var wasmBinaryFile =
-  "data:application/octet-stream;base64,AGFzbQEAAAAB0QIwYAF/AX9gA39/fwF/YAJ/fwF/YAF/AGACf38AYAR/f39/AX9gBX9/f39/AX9gA39/fwBgBH9+f38Bf2AAAX9gAn9+AX9gA39+fwF/YAF/AX5gBX9/f35/AX5gA39/fgF+YAR/f35/AX5gA39+fwF+YAN/f34Bf2AEf39+fwF/YAR/f39/AX5gBH9/f38AYAZ/f39/f38Bf2AFf39+f38Bf2ACfn8Bf2ADf39/AX5gAn9+AGAEf35+fwBgA398fwBgBX9+f39/AX9gBn98f39/fwF/YAJ/fwF+YAAAYAV/f39/fwBgBX9/f35/AGADf35/AGACf3wAYAN/fHwAYAR/f35+AX9gBH9+fn8Bf2AIf35+f39/fn8Bf2ABfgF/YAN+f38Bf2AFf39/f38BfmAEf39/fgF+YAJ/fgF+YAV+fn9+fwF+YAJ+fgF8YAJ8fwF8ApsBFwFhAWEAAwFhAWIAAAFhAWMAAgFhAWQABQFhAWUAAQFhAWYAAAFhAWcAAAFhAWgAAgFhAWkAAgFhAWoAAgFhAWsAAAFhAWwABgFhAW0AAAFhAW4ABQFhAW8AAQFhAXAAAgFhAXEAAQFhAXIAAQFhAXMAAAFhAXQAAQFhAXUAAAFhBm1lbW9yeQIBgAKAgAIBYQV0YWJsZQFwAB8D/gL8AgcDAwQAAQEDAwAKBAQPBwMDAyALFAoAAAoZDgwMAAcDDBEeAwIDAgMBAAMHCBcOBAgABQAADAAECAgCBQUAAQATAxQjAQECAwMBBgYSAwMFGAEIAwEAAAIDGAcGARUBAAcEAiESCAAWAicQAgsXAQIABgICAgAGBAADLQUAAQQAAQsLAgIBDAwAAggcHBMHAC8CAQoWAQEDBgIBAAICAAcHBwMDAwMsEgsICAQLASoHAQ4KCQIJDgMJAAoCAAUAAQEBAAYABQUGBgYBAgUFBQYVFQUBBAADAwkABQgCCBYSAgoBAgEAAgAADyYAAQEQAgIJAAkDAQACBAAAHg4LAQAAAAgAABMAGBkKCAwCAgQAAgEHBB0XKQcBAAkJCS4aGgIREQoBAgAAAA0rDQUFAAEBAxEAAAADAQABAwAAAgAABAQCAgICCQIDAwAAAgACBwQUAAADAwMBBAECDQYPDgsPAAokAwIDAygiEwMDAAQDAgINJRAEAgICCQkfBgkBfwFBwKLBAgsHnQI2AXYAkAMBdwCPAwF4ANsCAXkAlgIBegDXAQFBANMBAUIAzgEBQwDNAQFEAMoBAUUAuwIBRgDoAQFHAD8BSADVAgFJAJkCAUoAmAIBSwCkAgFMAJsCAU0A5wEBTgDmAQFPAOUBAVAA5AEBUQCTAgFSAOMBAVMA4gEBVADhAQFVAOABAVYA3wEBVwD5AQFYAJIBAVkA3gEBWgDdAQFfANwBASQAMgJhYQDiAgJiYQAcAmNhAOwBAmRhAEkCZWEA2wECZmEA2gECZ2EAbAJoYQDZAQJpYQDvAQJqYQDYAQJrYQDuAQJsYQDIAQJtYQCxAgJuYQCwAgJvYQCvAgJwYQDtAQJxYQDrAQJyYQDqAQJzYQAZAnRhABYCdWEA6QEJQQEAQQELHocD9QLwAvEC7gLtArIB2ALXAswCywLKAskCyALHAsYCxQLEAsACvgKpAqgCpgKiAluDAoICgQKAAv4BCqqaCfwCQAEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAgwEQCADKAIMIAMoAgg2AgAgAygCDCADKAIENgIECwuqDQEHfwJAIABFDQAgAEF4aiIDIABBfGooAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAyADKAIAIgJrIgNByJwBKAIAIgRJDQEgACACaiEAIANBzJwBKAIARwRAIAJB/wFNBEAgAygCCCIEIAJBA3YiAkEDdEHgnAFqRxogBCADKAIMIgFGBEBBuJwBQbicASgCAEF+IAJ3cTYCAAwDCyAEIAE2AgwgASAENgIIDAILIAMoAhghBgJAIAMgAygCDCIBRwRAIAQgAygCCCICTQRAIAIoAgwaCyACIAE2AgwgASACNgIIDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQECQCADIAMoAhwiAkECdEHongFqIgQoAgBGBEAgBCABNgIAIAENAUG8nAFBvJwBKAIAQX4gAndxNgIADAMLIAZBEEEUIAYoAhAgA0YbaiABNgIAIAFFDQILIAEgBjYCGCADKAIQIgIEQCABIAI2AhAgAiABNgIYCyADKAIUIgJFDQEgASACNgIUIAIgATYCGAwBCyAFKAIEIgFBA3FBA0cNAEHAnAEgADYCACAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAUgA00NACAFKAIEIgFBAXFFDQACQCABQQJxRQRAIAVB0JwBKAIARgRAQdCcASADNgIAQcScAUHEnAEoAgAgAGoiADYCACADIABBAXI2AgQgA0HMnAEoAgBHDQNBwJwBQQA2AgBBzJwBQQA2AgAPCyAFQcycASgCAEYEQEHMnAEgAzYCAEHAnAFBwJwBKAIAIABqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAFBeHEgAGohAAJAIAFB/wFNBEAgBSgCDCECIAUoAggiBCABQQN2IgFBA3RB4JwBaiIHRwRAQcicASgCABoLIAIgBEYEQEG4nAFBuJwBKAIAQX4gAXdxNgIADAILIAIgB0cEQEHInAEoAgAaCyAEIAI2AgwgAiAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIBRwRAQcicASgCACAFKAIIIgJNBEAgAigCDBoLIAIgATYCDCABIAI2AggMAQsCQCAFQRRqIgIoAgAiBA0AIAVBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCICQQJ0QeieAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbycAUG8nAEoAgBBfiACd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANBzJwBKAIARw0BQcCcASAANgIADwsgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgALIABB/wFNBEAgAEEDdiIBQQN0QeCcAWohAAJ/QbicASgCACICQQEgAXQiAXFFBEBBuJwBIAEgAnI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCA8LIANCADcCECADAn9BACAAQQh2IgFFDQAaQR8gAEH///8HSw0AGiABIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIEIARBgIAPakEQdkECcSIEdEEPdiABIAJyIARyayIBQQF0IAAgAUEVanZBAXFyQRxqCyICNgIcIAJBAnRB6J4BaiEBAkACQAJAQbycASgCACIEQQEgAnQiB3FFBEBBvJwBIAQgB3I2AgAgASADNgIAIAMgATYCGAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiACQR12IQEgAkEBdCECIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAzYCECADIAQ2AhgLIAMgAzYCDCADIAM2AggMAQsgBCgCCCIAIAM2AgwgBCADNgIIIANBADYCGCADIAQ2AgwgAyAANgIIC0HYnAFB2JwBKAIAQX9qIgA2AgAgAA0AQYCgASEDA0AgAygCACIAQQhqIQMgAA0AC0HYnAFBfzYCAAsLQgEBfyMAQRBrIgEkACABIAA2AgwgASgCDARAIAEoAgwtAAFBAXEEQCABKAIMKAIEEBYLIAEoAgwQFgsgAUEQaiQAC0MBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMAn8jAEEQayIAIAIoAgg2AgwgACgCDEEMagsQRCACQRBqJAALzS4BC38jAEEQayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBuJwBKAIAIgZBECAAQQtqQXhxIABBC0kbIgVBA3YiAHYiAUEDcQRAIAFBf3NBAXEgAGoiAkEDdCIEQeicAWooAgAiAUEIaiEAAkAgASgCCCIDIARB4JwBaiIERgRAQbicASAGQX4gAndxNgIADAELQcicASgCABogAyAENgIMIAQgAzYCCAsgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBUHAnAEoAgAiCE0NASABBEACQEECIAB0IgJBACACa3IgASAAdHEiAEEAIABrcUF/aiIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgJBA3QiA0HonAFqKAIAIgEoAggiACADQeCcAWoiA0YEQEG4nAEgBkF+IAJ3cSIGNgIADAELQcicASgCABogACADNgIMIAMgADYCCAsgAUEIaiEAIAEgBUEDcjYCBCABIAVqIgcgAkEDdCICIAVrIgNBAXI2AgQgASACaiADNgIAIAgEQCAIQQN2IgRBA3RB4JwBaiEBQcycASgCACECAn8gBkEBIAR0IgRxRQRAQbicASAEIAZyNgIAIAEMAQsgASgCCAshBCABIAI2AgggBCACNgIMIAIgATYCDCACIAQ2AggLQcycASAHNgIAQcCcASADNgIADAwLQbycASgCACIKRQ0BIApBACAKa3FBf2oiACAAQQx2QRBxIgB2IgFBBXZBCHEiAiAAciABIAJ2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2akECdEHongFqKAIAIgEoAgRBeHEgBWshAyABIQIDQAJAIAIoAhAiAEUEQCACKAIUIgBFDQELIAAoAgRBeHEgBWsiAiADIAIgA0kiAhshAyAAIAEgAhshASAAIQIMAQsLIAEoAhghCSABIAEoAgwiBEcEQEHInAEoAgAgASgCCCIATQRAIAAoAgwaCyAAIAQ2AgwgBCAANgIIDAsLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNAyABQRBqIQILA0AgAiEHIAAiBEEUaiICKAIAIgANACAEQRBqIQIgBCgCECIADQALIAdBADYCAAwKC0F/IQUgAEG/f0sNACAAQQtqIgBBeHEhBUG8nAEoAgAiB0UNAEEAIAVrIQICQAJAAkACf0EAIABBCHYiAEUNABpBHyAFQf///wdLDQAaIAAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgMgA0GAgA9qQRB2QQJxIgN0QQ92IAAgAXIgA3JrIgBBAXQgBSAAQRVqdkEBcXJBHGoLIghBAnRB6J4BaigCACIDRQRAQQAhAAwBCyAFQQBBGSAIQQF2ayAIQR9GG3QhAUEAIQADQAJAIAMoAgRBeHEgBWsiBiACTw0AIAMhBCAGIgINAEEAIQIgAyEADAMLIAAgAygCFCIGIAYgAyABQR12QQRxaigCECIDRhsgACAGGyEAIAEgA0EAR3QhASADDQALCyAAIARyRQRAQQIgCHQiAEEAIABrciAHcSIARQ0DIABBACAAa3FBf2oiACAAQQx2QRBxIgB2IgFBBXZBCHEiAyAAciABIAN2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2akECdEHongFqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayIDIAJJIQEgAyACIAEbIQIgACAEIAEbIQQgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBEUNACACQcCcASgCACAFa08NACAEKAIYIQggBCAEKAIMIgFHBEBByJwBKAIAIAQoAggiAE0EQCAAKAIMGgsgACABNgIMIAEgADYCCAwJCyAEQRRqIgMoAgAiAEUEQCAEKAIQIgBFDQMgBEEQaiEDCwNAIAMhBiAAIgFBFGoiAygCACIADQAgAUEQaiEDIAEoAhAiAA0ACyAGQQA2AgAMCAtBwJwBKAIAIgEgBU8EQEHMnAEoAgAhAAJAIAEgBWsiAkEQTwRAQcCcASACNgIAQcycASAAIAVqIgM2AgAgAyACQQFyNgIEIAAgAWogAjYCACAAIAVBA3I2AgQMAQtBzJwBQQA2AgBBwJwBQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIECyAAQQhqIQAMCgtBxJwBKAIAIgEgBUsEQEHEnAEgASAFayIBNgIAQdCcAUHQnAEoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAoLQQAhACAFQS9qIgQCf0GQoAEoAgAEQEGYoAEoAgAMAQtBnKABQn83AgBBlKABQoCggICAgAQ3AgBBkKABIAtBDGpBcHFB2KrVqgVzNgIAQaSgAUEANgIAQfSfAUEANgIAQYAgCyICaiIGQQAgAmsiB3EiAiAFTQ0JQfCfASgCACIDBEBB6J8BKAIAIgggAmoiCSAITQ0KIAkgA0sNCgtB9J8BLQAAQQRxDQQCQAJAQdCcASgCACIDBEBB+J8BIQADQCAAKAIAIgggA00EQCAIIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABA+IgFBf0YNBSACIQZBlKABKAIAIgBBf2oiAyABcQRAIAIgAWsgASADakEAIABrcWohBgsgBiAFTQ0FIAZB/v///wdLDQVB8J8BKAIAIgAEQEHonwEoAgAiAyAGaiIHIANNDQYgByAASw0GCyAGED4iACABRw0BDAcLIAYgAWsgB3EiBkH+////B0sNBCAGED4iASAAKAIAIAAoAgRqRg0DIAEhAAsCQCAFQTBqIAZNDQAgAEF/Rg0AQZigASgCACIBIAQgBmtqQQAgAWtxIgFB/v///wdLBEAgACEBDAcLIAEQPkF/RwRAIAEgBmohBiAAIQEMBwtBACAGaxA+GgwECyAAIgFBf0cNBQwDC0EAIQQMBwtBACEBDAULIAFBf0cNAgtB9J8BQfSfASgCAEEEcjYCAAsgAkH+////B0sNASACED4iAUEAED4iAE8NASABQX9GDQEgAEF/Rg0BIAAgAWsiBiAFQShqTQ0BC0HonwFB6J8BKAIAIAZqIgA2AgAgAEHsnwEoAgBLBEBB7J8BIAA2AgALAkACQAJAQdCcASgCACIDBEBB+J8BIQADQCABIAAoAgAiAiAAKAIEIgRqRg0CIAAoAggiAA0ACwwCC0HInAEoAgAiAEEAIAEgAE8bRQRAQcicASABNgIAC0EAIQBB/J8BIAY2AgBB+J8BIAE2AgBB2JwBQX82AgBB3JwBQZCgASgCADYCAEGEoAFBADYCAANAIABBA3QiAkHonAFqIAJB4JwBaiIDNgIAIAJB7JwBaiADNgIAIABBAWoiAEEgRw0AC0HEnAEgBkFYaiIAQXggAWtBB3FBACABQQhqQQdxGyICayIDNgIAQdCcASABIAJqIgI2AgAgAiADQQFyNgIEIAAgAWpBKDYCBEHUnAFBoKABKAIANgIADAILIAAtAAxBCHENACABIANNDQAgAiADSw0AIAAgBCAGajYCBEHQnAEgA0F4IANrQQdxQQAgA0EIakEHcRsiAGoiATYCAEHEnAFBxJwBKAIAIAZqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQdScAUGgoAEoAgA2AgAMAQsgAUHInAEoAgAiBEkEQEHInAEgATYCACABIQQLIAEgBmohAkH4nwEhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB+J8BIQADQCAAKAIAIgIgA00EQCACIAAoAgRqIgQgA0sNAwsgACgCCCEADAAACwALIAAgATYCACAAIAAoAgQgBmo2AgQgAUF4IAFrQQdxQQAgAUEIakEHcRtqIgkgBUEDcjYCBCACQXggAmtBB3FBACACQQhqQQdxG2oiASAJayAFayEAIAUgCWohByABIANGBEBB0JwBIAc2AgBBxJwBQcScASgCACAAaiIANgIAIAcgAEEBcjYCBAwDCyABQcycASgCAEYEQEHMnAEgBzYCAEHAnAFBwJwBKAIAIABqIgA2AgAgByAAQQFyNgIEIAAgB2ogADYCAAwDCyABKAIEIgJBA3FBAUYEQCACQXhxIQoCQCACQf8BTQRAIAEoAggiAyACQQN2IgRBA3RB4JwBakcaIAMgASgCDCICRgRAQbicAUG4nAEoAgBBfiAEd3E2AgAMAgsgAyACNgIMIAIgAzYCCAwBCyABKAIYIQgCQCABIAEoAgwiBkcEQCAEIAEoAggiAk0EQCACKAIMGgsgAiAGNgIMIAYgAjYCCAwBCwJAIAFBFGoiAygCACIFDQAgAUEQaiIDKAIAIgUNAEEAIQYMAQsDQCADIQIgBSIGQRRqIgMoAgAiBQ0AIAZBEGohAyAGKAIQIgUNAAsgAkEANgIACyAIRQ0AAkAgASABKAIcIgJBAnRB6J4BaiIDKAIARgRAIAMgBjYCACAGDQFBvJwBQbycASgCAEF+IAJ3cTYCAAwCCyAIQRBBFCAIKAIQIAFGG2ogBjYCACAGRQ0BCyAGIAg2AhggASgCECICBEAgBiACNgIQIAIgBjYCGAsgASgCFCICRQ0AIAYgAjYCFCACIAY2AhgLIAEgCmohASAAIApqIQALIAEgASgCBEF+cTYCBCAHIABBAXI2AgQgACAHaiAANgIAIABB/wFNBEAgAEEDdiIBQQN0QeCcAWohAAJ/QbicASgCACICQQEgAXQiAXFFBEBBuJwBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBzYCCCABIAc2AgwgByAANgIMIAcgATYCCAwDCyAHAn9BACAAQQh2IgFFDQAaQR8gAEH///8HSw0AGiABIAFBgP4/akEQdkEIcSIBdCICIAJBgOAfakEQdkEEcSICdCIDIANBgIAPakEQdkECcSIDdEEPdiABIAJyIANyayIBQQF0IAAgAUEVanZBAXFyQRxqCyIBNgIcIAdCADcCECABQQJ0QeieAWohAgJAQbycASgCACIDQQEgAXQiBHFFBEBBvJwBIAMgBHI2AgAgAiAHNgIADAELIABBAEEZIAFBAXZrIAFBH0YbdCEDIAIoAgAhAQNAIAEiAigCBEF4cSAARg0DIANBHXYhASADQQF0IQMgAiABQQRxaiIEKAIQIgENAAsgBCAHNgIQCyAHIAI2AhggByAHNgIMIAcgBzYCCAwCC0HEnAEgBkFYaiIAQXggAWtBB3FBACABQQhqQQdxGyICayIHNgIAQdCcASABIAJqIgI2AgAgAiAHQQFyNgIEIAAgAWpBKDYCBEHUnAFBoKABKAIANgIAIAMgBEEnIARrQQdxQQAgBEFZakEHcRtqQVFqIgAgACADQRBqSRsiAkEbNgIEIAJBgKABKQIANwIQIAJB+J8BKQIANwIIQYCgASACQQhqNgIAQfyfASAGNgIAQfifASABNgIAQYSgAUEANgIAIAJBGGohAANAIABBBzYCBCAAQQhqIQEgAEEEaiEAIAQgAUsNAAsgAiADRg0DIAIgAigCBEF+cTYCBCADIAIgA2siBEEBcjYCBCACIAQ2AgAgBEH/AU0EQCAEQQN2IgFBA3RB4JwBaiEAAn9BuJwBKAIAIgJBASABdCIBcUUEQEG4nAEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAQLIANCADcCECADAn9BACAEQQh2IgBFDQAaQR8gBEH///8HSw0AGiAAIABBgP4/akEQdkEIcSIAdCIBIAFBgOAfakEQdkEEcSIBdCICIAJBgIAPakEQdkECcSICdEEPdiAAIAFyIAJyayIAQQF0IAQgAEEVanZBAXFyQRxqCyIANgIcIABBAnRB6J4BaiEBAkBBvJwBKAIAIgJBASAAdCIGcUUEQEG8nAEgAiAGcjYCACABIAM2AgAgAyABNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIGKAIQIgENAAsgBiADNgIQIAMgAjYCGAsgAyADNgIMIAMgAzYCCAwDCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLIAlBCGohAAwFCyACKAIIIgAgAzYCDCACIAM2AgggA0EANgIYIAMgAjYCDCADIAA2AggLQcScASgCACIAIAVNDQBBxJwBIAAgBWsiATYCAEHQnAFB0JwBKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwDC0G0nAFBMDYCAEEAIQAMAgsCQCAIRQ0AAkAgBCgCHCIAQQJ0QeieAWoiAygCACAERgRAIAMgATYCACABDQFBvJwBIAdBfiAAd3EiBzYCAAwCCyAIQRBBFCAIKAIQIARGG2ogATYCACABRQ0BCyABIAg2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgAkEPTQRAIAQgAiAFaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgBUEDcjYCBCAEIAVqIgMgAkEBcjYCBCACIANqIAI2AgAgAkH/AU0EQCACQQN2IgFBA3RB4JwBaiEAAn9BuJwBKAIAIgJBASABdCIBcUUEQEG4nAEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAELIAMCf0EAIAJBCHYiAEUNABpBHyACQf///wdLDQAaIAAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgUgBUGAgA9qQRB2QQJxIgV0QQ92IAAgAXIgBXJrIgBBAXQgAiAAQRVqdkEBcXJBHGoLIgA2AhwgA0IANwIQIABBAnRB6J4BaiEBAkACQCAHQQEgAHQiBXFFBEBBvJwBIAUgB3I2AgAgASADNgIADAELIAJBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSACRg0CIABBHXYhBSAAQQF0IQAgASAFQQRxaiIGKAIQIgUNAAsgBiADNgIQCyADIAE2AhggAyADNgIMIAMgAzYCCAwBCyABKAIIIgAgAzYCDCABIAM2AgggA0EANgIYIAMgATYCDCADIAA2AggLIARBCGohAAwBCwJAIAlFDQACQCABKAIcIgBBAnRB6J4BaiICKAIAIAFGBEAgAiAENgIAIAQNAUG8nAEgCkF+IAB3cTYCAAwCCyAJQRBBFCAJKAIQIAFGG2ogBDYCACAERQ0BCyAEIAk2AhggASgCECIABEAgBCAANgIQIAAgBDYCGAsgASgCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAEgAyAFaiIAQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIEDAELIAEgBUEDcjYCBCABIAVqIgQgA0EBcjYCBCADIARqIAM2AgAgCARAIAhBA3YiBUEDdEHgnAFqIQBBzJwBKAIAIQICf0EBIAV0IgUgBnFFBEBBuJwBIAUgBnI2AgAgAAwBCyAAKAIICyEFIAAgAjYCCCAFIAI2AgwgAiAANgIMIAIgBTYCCAtBzJwBIAQ2AgBBwJwBIAM2AgALIAFBCGohAAsgC0EQaiQAIAALggQBA38gAkGABE8EQCAAIAEgAhATGiAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIAJBAUgEQCAAIQIMAQsgAEEDcUUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA08NASACQQNxDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIANBfGoiBCAASQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALPwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBBDWASEAIANBEGokACAAC90BAQF/IwBBEGsiASQAIAEgADYCDAJAIAEoAgxFDQAgASgCDCgCMEEASwRAIAEoAgwiACAAKAIwQX9qNgIwCyABKAIMKAIwQQBLDQAgASgCDCgCIEEASwRAIAEoAgxBATYCICABKAIMEDIaCyABKAIMKAIkQQFGBEAgASgCDBBtCwJAIAEoAgwoAixFDQAgASgCDC0AKEEBcQ0AIAEoAgwoAiwgASgCDBCDAwsgASgCDEEAQgBBBRAiGiABKAIMKAIABEAgASgCDCgCABAcCyABKAIMEBYLIAFBEGokAAuBAgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMKAIcNgIEIAEoAgQQ6gIgASABKAIEKAIUNgIIIAEoAgggASgCDCgCEEsEQCABIAEoAgwoAhA2AggLAkAgASgCCEUNACABKAIMKAIMIAEoAgQoAhAgASgCCBAaGiABKAIMIgAgASgCCCAAKAIMajYCDCABKAIEIgAgASgCCCAAKAIQajYCECABKAIMIgAgASgCCCAAKAIUajYCFCABKAIMIgAgACgCECABKAIIazYCECABKAIEIgAgACgCFCABKAIIazYCFCABKAIEKAIUDQAgASgCBCABKAIEKAIINgIQCyABQRBqJAALYAEBfyMAQRBrIgEkACABIAA2AgggASABKAIIQgIQHzYCBAJAIAEoAgRFBEAgAUEAOwEODAELIAEgASgCBC0AACABKAIELQABQQh0ajsBDgsgAS8BDiEAIAFBEGokACAAC1oBAX8jAEEgayICJAAgAiAANgIcIAIgATcDECACIAIoAhwgAikDEBDPATYCDCACKAIMBEAgAigCHCIAIAIpAxAgACkDEHw3AxALIAIoAgwhACACQSBqJAAgAAtvAQF/IwBBEGsiAiQAIAIgADYCCCACIAE7AQYgAiACKAIIQgIQHzYCAAJAIAIoAgBFBEAgAkF/NgIMDAELIAIoAgAgAi8BBjoAACACKAIAIAIvAQZBCHU6AAEgAkEANgIMCyACKAIMGiACQRBqJAALjwEBAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAghCBBAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACKAIEOgAAIAIoAgAgAigCBEEIdjoAASACKAIAIAIoAgRBEHY6AAIgAigCACACKAIEQRh2OgADIAJBADYCDAsgAigCDBogAkEQaiQAC7YCAQF/IwBBMGsiBCQAIAQgADYCJCAEIAE2AiAgBCACNwMYIAQgAzYCFAJAIAQoAiQpAxhCASAEKAIUrYaDUARAIAQoAiRBDGpBHEEAEBUgBEJ/NwMoDAELAkAgBCgCJCgCAEUEQCAEIAQoAiQoAgggBCgCICAEKQMYIAQoAhQgBCgCJCgCBBEPADcDCAwBCyAEIAQoAiQoAgAg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BCgCLEGUAWogBCgCLEGIE2oQtgELCyAEKAIsELkBIAQoAiAEQCAEKAIsELgBCyAEQTBqJAAL1AEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhFOgAPAkAgAigCGEUEQCACIAIpAxCnEBkiADYCGCAARQRAIAJBADYCHAwCCwsgAkEYEBkiADYCCCAARQRAIAItAA9BAXEEQCACKAIYEBYLIAJBADYCHAwBCyACKAIIQQE6AAAgAigCCCACKAIYNgIEIAIoAgggAikDEDcDCCACKAIIQgA3AxAgAigCCCACLQAPQQFxOgABIAIgAigCCDYCHAsgAigCHCEAIAJBIGokACAAC3gBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIEEB82AgQCQCABKAIERQRAIAFBADYCDAwBCyABIAEoAgQtAAAgASgCBC0AASABKAIELQACIAEoAgQtAANBCHRqQQh0akEIdGo2AgwLIAEoAgwhACABQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQf/9+3dqcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAfNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMg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KAIUIANBngFqIANBnAFqEMQBIAMoAkwgAy8BngEQICADKAJMIAMvAZwBECACQAJAIAMtAIUBQQFxRQ0AIAMoAqQBKQMoQhRaDQAgAygCTEEAECEMAQsgAygCTCADKAKkASgCGBAhCwJAAkAgAygCoAFBgAJxQYACRw0AIAMoAqQBKQMgQv////8PVARAIAMoAqQBKQMoQv////8PVA0BCyADKAJMQX8QISADKAJMQX8QIQwBCwJAIAMoAqQBKQMgQv////8PVARAIAMoAkwgAygCpAEpAyCnECEMAQsgAygCTEF/ECELAkAgAygCpAEpAyhC/////w9UBEAgAygCTCADKAKkASkDKKcQIQwBCyADKAJMQX8QIQsLIAMoAkwgAygCpAEoAjAQUkH//wNxECAgAyADKAKkASgCNCADKAKgARCEAUH//wNxIAMoApABQYAGEIQBQf//A3FqNgKIASADKAJMIAMoAogBQf//A3EQICADKAKgAUGAAnFFBEAgAygCTCADKAKkASgCOBBSQf//A3EQICADKAJMIAMoAqQBKAI8Qf//A3EQICADKAJMIAMoAqQBLwFAECAgAygCTCADKAKkASgCRBAhAkAgAygCpAEpA0hC/////w9UBEAgAygCTCADKAKkASkDSKcQIQwBCyADKAJMQX8QIQsLAn8jAEEQayIAIAMoAkw2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCTBAXIAMoApABECQgA0F/NgKsAQwBCyADKAKoASADQdAAagJ+IwBBEGsiACADKAJMNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAkwQFyADKAKkASgCMARAIAMoAqgBIAMoAqQBKAIwEIgBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQAQRAIAMoAqgBIAMoApABQYAGEIMBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQARAkIAMoAqQBKAI0BEAgAygCqAEgAygCpAEoAjQgAygCoAEQgwFBAEgEQCADQX82AqwBDAILCyADKAKgAUGAAnFFBEAgAygCpAEoAjgEQCADKAKoASADKAKkASgCOBCIAUEASARAIANBfzYC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AygCgAEoAgAgAykDcKdBBHRqKAIAKAI0IAMoAjQQhwEhACADKAKAASgCACADKQNwp0EEdGooAgAgADYCNCADKAKAASgCACADKQNwp0EEdGooAgBBAToABCADQQA2AjQgAxBcIAMgAykDcEIBfDcDcAwCCwALCyADAn4gAykDYCADKQNofUL///////////8AVARAIAMpA2AgAykDaH0MAQtC////////////AAs3A4gBCyADKQOIASEEIANBkAFqJAAgBAumAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhAQ+gEiADYCDAJAIABFBEAgA0EANgIcDAELIAMoAgwgAygCGDYCACADKAIMIAMoAhQ2AgQgAygCFEEQcQRAIAMoAgwiACAAKAIUQQJyNgIUIAMoAgwiACAAKAIYQQJyNgIYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvVAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQAJAIAQpAxBC////////////AFcEQCAEKQMQQoCAgICAgICAgH9ZDQELIAQoAghBBEE9EBUgBEF/NgIcDAELAn8gBCkDECEBIAQoAgwhACAEKAIYIgIoAkxBf0wEQCACIAEgABCXAQwBCyACIAEgABCXAQtBAEgEQCAEKAIIQQRBtJwBKAIAEBUgBEF/NgIcDAELIARBADYCHAsgBCgCHCEAIARBIGokACAACycAAn9BAEEAIAAQBSIAIABBG0YbIgBFDQAaQbScASAANgIAQQALGgteAQF/IwBBEGsiAyQAIAMgAUHAgIACcQR/IAMgAkEEajYCDCACKAIABUEACzYCACAAIAFBgIACciADEBEiAEGBYE8EQEG0nAFBACAAazYCAEF/IQALIANBEGokACAACzMBAX8CfyAAEAYiAUFhRgRAIAAQEiEBCyABQYFgTwsEf0G0nAFBACABazYCAEF/BSABCwtpAQJ/AkAgACgCFCAAKAIcTQ0AIABBAEEAIAAoAiQRAQAaIAAoAhQNAEF/DwsgACgCBCIBIAAoAggiAkkEQCAAIAEgAmusQQEgACgCKBEQABoLIABBADYCHCAAQgA3AxAgAEIANwIEQQALpgEBAX8jAEEQayICJAAgAiAANgIIIAIgATYC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AX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC7QCAQF/IwBBMGsiAyQAIAMgADYCKCADIAE3AyAgAyACNgIcAkAgAykDIFAEQCADQQE6AC8MAQsgAyADKAIoKQMQIAMpAyB8NwMIAkAgAykDCCADKQMgWgRAIAMpAwhC/////wBYDQELIAMoAhxBDkEAEBUgA0EAOgAvDAELIAMgAygCKCgCACADKQMIp0EEdBBPIgA2AgQgAEUEQCADKAIcQQ5BABAVIANBADoALwwBCyADKAIoIAMoAgQ2AgAgAyADKAIoKQMINwMQA0AgAykDECADKQMIWkUEQCADKAIoKAIAIAMpAxCnQQR0ahCOASADIAMpAxBCAXw3AxAMAQsLIAMoAiggAykDCCIBNwMQIAMoAiggATcDCCADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAvMAQEBfyMAQSBrIgIkACACIAA3AxAgAiABNgIMIAJBMBAZIgE2AggCQCABRQRAIAIoAgxBDkEAEBUgAkEANgIcDAELIAIoAghBADYCACACKAIIQgA3AxAgAigCCEIANwMIIAIoAghCADcDICACKAIIQgA3AxggAigCCEEANgIoIAIoAghBADoALCACKAIIIAIpAxAgAigCDBCBAUEBcUUEQCACKAIIECUgAkEANgIcDAELIAIgAigCCDYCHAsgAigCHCEBIAJBIGokACABC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMo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AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC4IFAQF/IwBB4ABrIgMkACADIAA2AlggAyABNgJUIAMgAjYCUAJAAkAgAygCVEEATgRAIAMoAlgNAQsgAygCUEESQQAQFSADQQA2AlwMAQsgAyADKAJUNgJMIwBBEGsiACADKAJYNgIMIAMgACgCDCkDGDcDQEHgmwEpAwBCf1EEQCADQX82AhQgA0EDNgIQIANBBzYCDCADQQY2AgggA0ECNgIEIANBATYCAEHgmwFBACADEDc3AwAgA0F/NgI0IANBDzYCMCADQQ02AiwgA0EMNgIoIANBCjYCJCADQQk2AiBB6JsBQQggA0EgahA3NwMAC0HgmwEpAwAgAykDQEHgmwEpAwCDUgRAIAMoAlBBHEEAEBUgA0EANgJcDAELQeibASkDACADKQNAQeibASkDAINSBEAgAyADKAJMQRByNgJMCyADKAJMQRhxQRhGBEAgAygCUEEZQQAQFSADQQA2AlwMAQsgAyADKAJYIAMoAlAQ+AE2AjwCQAJAAkAgAygCPEEBag4CAAECCyADQQA2AlwMAgsgAygCTEEBcUUEQCADKAJQQQlBABAVIANBADYCXAwCCyADIAMoAlggAygCTCADKAJQEGY2AlwMAQsgAygCTEECcQRAIAMoAlBBCkEAEBUgA0EANgJcDAELIAMoAlgQSUEASARAIAMoAlAgAygCWBAYIANBADYCXAwBCwJAIAMoAkxBCHEEQCADIAMoAlggAygCTCADKAJQEGY2AjgMAQsgAyADKAJYIAMoAkwgAygCUBD3ATYCOAsgAygCOEUEQCADKAJYEDIaIANBADYCXAwBCyADIAMoAjg2AlwLIAMoAlwhACADQeAAaiQAIAALjgEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQgAigCCARAIwBBEGsiACACKAIINgIMIAIgACgCDCgCADYCBCACKAIIELABQQFGBEAjAEEQayIAIAIoAgg2AgxBtJwBIAAoAgwoAgQ2AgALCyACKAIMBEAgAigCDCACKAIENgIACyACQRBqJAALlQEBAX8jAEEQayIBJAAgASAANgIIAkACfyMAQRBrIgAgASgCCDYCDCAAKAIMKQMYQoCAEINQCwRAIAEoAggoAgAEQCABIAEoAggoAgAQlAFBAXE6AA8MAgsgAUEBOgAPDAELIAEgASgCCEEAQgBBEhAiPgIEIAEgASgCBEEARzoADwsgAS0AD0EBcSEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEJEBIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAt/AQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgA0EANgIMIAMgAjYCCAJAIAMpAxBC////////////AFYEQCADKAIIQQRBPRAVIANBfzYCHAwBCyADIAMoAhggAykDECADKAIMIAMoAggQZzYCHAsgAygCHCEAIANBIGokACAAC30AIAJBAUYEQCABIAAoAgggACgCBGusfSEBCwJAIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQEAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigREABCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C+ICAQJ/IwBBIGsiAyQAAn8CQAJAQfSXASABLAAAEJkBRQRAQbScAUEcNgIADAELQZgJEBkiAg0BC0EADAELIAJBAEGQARAzIAFBKxCZAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02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GCACKAIoKAIAKAIEaksEQCACIAIoAhggAigCKCgCACgCBGo2AhwLIAIoAhwgAigCFEsEQCACIAIoAhQ2AhwLAkAgAigCHCACKAIgTw0AAkAgAigCHEUEQCACKAIkQQRHDQELIAIoAiRFDQAgAigCHCACKAIYIAIoAigoAgAoAgRqRg0BCwwBC0EAIQAgAkEBQQAgAigCJEEERgR/IAIoAhwgAigCGCACKAIoKAIAKAIEakYFQQALQQFxGzYCECACKAIoQQBBACACKAIQEFcgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHSACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGhogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQcxogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGhogAigCKCACKAIoKAIsNgJsDAELIAIoAigoAjwgAigCKCgCbGsgAigCDE0EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAaGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAg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akECdGovAQI2AhQgAyADKAIQQQFqIgA2AhACQAJAIAAgAygCDE4NACADKAIYIAMoAhRHDQAMAQsCQCADKAIQIAMoAghIBEAgAygCLEH8FGogAygCGEECdGoiACADKAIQIAAvAQBqOwEADAELAkAgAygCGARAIAMoAhggAygCHEcEQCADKAIsIAMoAhhBAnRqQfwUaiIAIAAvAQBBAWo7AQALIAMoAiwiACAAQbwVai8BAEEBajsBvBUMAQsCQCADKAIQQQpMBEAgAygCLCIAIABBwBVqLwEAQQFqOwHAFQwBCyADKAIsIgAgAEHEFWovAQBBAWo7AcQVCwsLIANBADYCECADIAMoAhg2AhwCQCADKAIURQRAIANBigE2AgwgA0EDNgIIDAELAkAgAygCGCADKAIURgRAIANBBjYCDCADQQM2AggMAQsgA0EHNgIMIANBBDYCCAsLCyADIAMoAiBBAWo2AiAMAQsLC6cSAQJ/IwBB0ABrIgMgADYCTCADIAE2AkggAyACNgJEIANBADYCOCADKAJMKAKgLQRAA0AgAyADKAJMKAKkLSADKAI4QQF0ai8BADYCQCADKAJMKAKYLSEAIAMgAygCOCIBQQFqNgI4IAMgACABai0AADYCPAJAIAMoAkBFBEAgAyADKAJIIAMoAjxBAnRqLwECNgIsAkAgAygCTCgCvC1BECADKAIsa0oEQCADIAMoAkggAygCPEECdGovAQA2AiggAygCTCIAIAAvAbgtIAMoAihB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCKEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAixBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI8QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCLCAAKAK8LWo2ArwtCwwBCyADIAMoAjwtAIBZNgI0IAMgAygCSCADKAI0QYECakECdGovAQI2AiQCQCADKAJMKAK8LUEQIAMoAiRrSgRAIAMgAygCSCADKAI0QYECakECdGovAQA2AiAgAygCTCIAIAAvAbgtIAMoAiBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCIEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAiRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI0QYECakECdGovAQAgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAiQgACgCvC1qNgK8LQsgAyADKAI0QQJ0QcDlAGooAgA2AjAgAygCMARAIAMgAygCPCADKAI0QQJ0QbDoAGooAgBrNgI8IAMgAygCMDYCHAJAIAMoAkwoArwtQRAgAygCHGtKBEAgAyADKAI8NgIYIAMoAkwiACAALwG4LSADKAIYQf//A3EgAygCTCgCvC10cjsBuC0gAygCTC8BuC1B/wFxIQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTC8BuC1BCHUhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMIAMoAhhB//8DcUEQIAMoAkwoArwta3U7AbgtIAMoAkwiACAAKAK8LSADKAIcQRBrajYCvC0MAQsgAygCTCIAIAAvAbgtIAMoAjxB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCHCAAKAK8LWo2ArwtCwsgAyADKAJAQX9qNgJAIAMCfyADKAJAQYACSQRAIAMoAkAtAIBVDAELIAMoAkBBB3ZBgAJqLQCAVQs2AjQgAyADKAJEIAMoAjRBAnRqLwECNgIUAkAgAygCTCgCvC1BECADKAIUa0oEQCADIAMoAkQgAygCNEECdGovAQA2AhAgAygCTCIAIAAvAbgtIAMoAhBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCEEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCRCADKAI0QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCFCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBwOYAaigCADYCMCADKAIwBEAgAyADKAJAIAMoAjRBAnRBsOkAaigCAGs2AkAgAyADKAIwNgIMAkAgAygCTCgCvC1BECADKAIMa0oEQCADIAMoAkA2AgggAygCTCIAIAAvAbgtIAMoAghB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCCEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAgxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCQEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIMIAAoArwtajYCvC0LCwsgAygCOCADKAJMKAKgLUkNAAsLIAMgAygCSC8Bggg2AgQCQCADKAJMKAK8LUEQIAMoAgRrSgRAIAMgAygCSC8BgAg2AgAgAygCTCIAIAAvAbgtIAMoAgBB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCAEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAgRBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSC8BgAggAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgQgACgCvC1qNgK8LQsLlwIBBH8jAEEQayIBIAA2AgwCQCABKAIMKAK8LUEQRgRAIAEoAgwvAbgtQf8BcSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwvAbgtQQh1IQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDEEAOwG4LSABKAIMQQA2ArwtDAELIAEoAgwoArwtQQhOBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMIgAgAC8BuC1BCHU7AbgtIAEoAgwiACAAKAK8LUEIazYCvC0LCwvvAQEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQQhKBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHUhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAwBCyABKAIMKAK8LUEASgRAIAEoAgwvAbgtIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAALCyABKAIMQQA7AbgtIAEoAgxBADYCvC0L/AEBAX8jAEEQayIBIAA2AgwgAUEANgIIA0AgASgCCEGeAk5FBEAgASgCDEGUAWogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAFBADYCCANAIAEoAghBHk5FBEAgASgCDEGIE2ogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAFBADYCCANAIAEoAghBE05FBEAgASgCDEH8FGogASgCCEECdGpBADsBACABIAEoAghBAWo2AggMAQsLIAEoAgxBATsBlAkgASgCDEEANgKsLSABKAIMQQA2AqgtIAEoAgxBADYCsC0gASgCDEEANgKgLQsiAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEBYgAUEQaiQAC+kBAQF/IwBBMGsiAiAANgIkIAIgATcDGCACQgA3AxAgAiACKAIkKQMIQgF9NwMIAkADQCACKQMQIAIpAwhUBEAgAiACKQMQIAIpAwggAikDEH1CAYh8NwMAAkAgAigCJCgCBCACKQMAp0EDdGopAwAgAikDGFYEQCACIAIpAwBCAX03AwgMAQsCQCACKQMAIAIoAiQpAwhSBEAgAigCJCgCBCACKQMAQgF8p0EDdGopAwAgAikDGFgNAQsgAiACKQMANwMoDAQLIAIgAikDAEIBfDcDEAsMAQsLIAIgAikDEDcDKAsgAikDKAunAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNgIkIAQgAjcDGCAEIAM2AhQgBCAEKAIoKQM4IAQoAigpAzAgBCgCJCAEKQMYIAQoAhQQjwE3AwgCQCAEKQMIQgBTBEAgBEF/NgIsDAELIAQoAiggBCkDCDcDOCAEKAIoIAQoAigpAzgQuwEhAiAEKAIoIAI3A0AgBEEANgIsCyAEKAIsIQAgBEEwaiQAIAAL6wEBAX8jAEEgayIDJAAgAyAANgIYIAMgATcDECADIAI2AgwCQCADKQMQIAMoAhgpAxBUBEAgA0EBOgAfDAELIAMgAygCGCgCACADKQMQQgSGpxBPIgA2AgggAEUEQCADKAIMQQ5BABAVIANBADoAHwwBCyADKAIYIAMoAgg2AgAgAyADKAIYKAIEIAMpAxBCAXxCA4anEE8iADYCBCAARQRAIAMoAgxBDkEAEBUgA0EAOgAfDAELIAMoAhggAygCBDYCBCADKAIYIAMpAxA3AxAgA0EBOgAfCyADLQAfQQFxIQAgA0EgaiQAIAAL0AIBAX8jAEEwayIEJAAgBCAANgIoIAQgATcDICAEIAI2AhwgBCADNgIYAkACQCAEKAIoDQAgBCkDIEIAWA0AIAQoAhhBEkEAEBUgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBNIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBkiADYCFCAARQRAIAQoAhhBDkEAEBUgBCgCDBA0IARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEJUBIgA2AhAgAEUEQCAEKAIUKAIQEDQgBCgCFBAWIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFYEQCAEKAIYQRJBABAVIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQvgE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQvgE2AiwLIAQoAiwhACAEQTBqJAAgAAuqDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACIDIAFqIQEgACADayIAQcycASgCAEcEQEHInAEoAgAhBCADQf8BTQRAIAAoAggiBCADQQN2IgNBA3RB4JwBakcaIAQgACgCDCICRgRAQbicAUG4nAEoAgBBfiADd3E2AgAMAwsgBCACNgIMIAIgBDYCCAwCCyAAKAIYIQYCQCAAIAAoAgwiAkcEQCAEIAAoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIABBFGoiAygCACIEDQAgAEEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgACAAKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwDCyAGQRBBFCAGKAIQIABGG2ogAjYCACACRQ0CCyACIAY2AhggACgCECIDBEAgAiADNgIQIAMgAjYCGAsgACgCFCIDRQ0BIAIgAzYCFCADIAI2AhgMAQsgBSgCBCICQQNxQQNHDQBBwJwBIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCwJAIAUoAgQiAkECcUUEQCAFQdCcASgCAEYEQEHQnAEgADYCAEHEnAFBxJwBKAIAIAFqIgE2AgAgACABQQFyNgIEIABBzJwBKAIARw0DQcCcAUEANgIAQcycAUEANgIADwsgBUHMnAEoAgBGBEBBzJwBIAA2AgBBwJwBQcCcASgCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPC0HInAEoAgAhAyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgJBA3RB4JwBakcaIAQgBSgCDCIDRgRAQbicAUG4nAEoAgBBfiACd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAkcEQCADIAUoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIAVBFGoiAygCACIEDQAgBUEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAjYCACACRQ0BCyACIAY2AhggBSgCECIDBEAgAiADNgIQIAMgAjYCGAsgBSgCFCIDRQ0AIAIgAzYCFCADIAI2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHMnAEoAgBHDQFBwJwBIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQQN2IgJBA3RB4JwBaiEBAn9BuJwBKAIAIgNBASACdCICcUUEQEG4nAEgAiADcjYCACABDAELIAEoAggLIQMgASAANgIIIAMgADYCDCAAIAE2AgwgACADNgIIDwsgAEIANwIQIAACf0EAIAFBCHYiAkUNABpBHyABQf///wdLDQAaIAIgAkGA/j9qQRB2QQhxIgJ0IgMgA0GA4B9qQRB2QQRxIgN0IgQgBEGAgA9qQRB2QQJxIgR0QQ92IAIgA3IgBHJrIgJBAXQgASACQRVqdkEBcXJBHGoLIgM2AhwgA0ECdEHongFqIQICQAJAQbycASgCACIEQQEgA3QiB3FFBEBBvJwBIAQgB3I2AgAgAiAANgIAIAAgAjYCGAwBCyABQQBBGSADQQF2ayADQR9GG3QhAyACKAIAIQIDQCACIgQoAgRBeHEgAUYNAiADQR12IQIgA0EBdCEDIAQgAkEEcWoiB0EQaigCACICDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC0YBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHEEIahBOIQAgA0EgaiQAIAALjQIBAX8jAEEwayIDJAAgAyAANgIoIAMgATsBJiADIAI2AiAgAyADKAIoKAI0IANBHmogAy8BJkGABkEAEF82AhACQCADKAIQRQ0AIAMvAR5BBUgNAAJAIAMoAhAtAABBAUYNAAwBCyADIAMoAhAgAy8BHq0QKiIANgIUIABFBEAMAQsgAygCFBCNARogAyADKAIUECs2AhggAygCIBCKASADKAIYRgRAIAMgAygCFBAwPQEOIAMgAygCFCADLwEOrRAfIAMvAQ5BgBBBABBRNgIIIAMoAggEQCADKAIgECYgAyADKAIINgIgCwsgAygCFBAXCyADIAMoAiA2AiwgAygCLCEAIANBMGokACAAC7kRAgF/AX4jAEGAAWsiBSQAIAUgADYCdCAFIAE2AnAgBSACNgJsIAUgAzoAayAFIAQ2AmQgBSAFKAJsQQBHOgAdIAVBHkEuIAUtAGtBAXEbNgIoAkACQCAFKAJsBEAgBSgCbBAwIAUoAiitVARAIAUoAmRBE0EAEBUgBUJ/NwN4DAMLDAELIAUgBSgCcCAFKAIorSAFQTBqIAUoAmQQQSIANgJsIABFBEAgBUJ/NwN4DAILCyAFKAJsQgQQHyEAQcXTAEHK0wAgBS0Aa0EBcRsoAAAgACgAAEcEQCAFKAJkQRNBABAVIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAQsgBSgCdBBdAkAgBS0Aa0EBcUUEQCAFKAJsEB4hACAFKAJ0IAA7AQgMAQsgBSgCdEEAOwEICyAFKAJsEB4hACAFKAJ0IAA7AQogBSgCbBAeIQAgBSgCdCAAOwEMIAUoAmwQHkH//wNxIQAgBSgCdCAANgIQIAUgBSgCbBAeOwEuIAUgBSgCbBAeOwEsIAUvAS4gBS8BLBCNAyEAIAUoAnQgADYCFCAFKAJsECshACAFKAJ0IAA2AhggBSgCbBArrSEGIAUoAnQgBjcDICAFKAJsECutIQYgBSgCdCAGNwMoIAUgBSgCbBAeOwEiIAUgBSgCbBAeOwEeAkAgBS0Aa0EBcQRAIAVBADsBICAFKAJ0QQA2AjwgBSgCdEEAOwFAIAUoAnRBADYCRCAFKAJ0QgA3A0gMAQsgBSAFKAJsEB47ASAgBSgCbBAeQf//A3EhACAFKAJ0IAA2AjwgBSgCbBAeIQAgBSgCdCAAOwFAIAUoAmwQKyEAIAUoAnQgADYCRCAFKAJsECutIQYgBSgCdCAGNwNICwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwBCwJAIAUoAnQvAQxBAXEEQCAFKAJ0LwEMQcAAcQRAIAUoAnRB//8DOwFSDAILIAUoAnRBATsBUgwBCyAFKAJ0QQA7AVILIAUoAnRBADYCMCAFKAJ0QQA2AjQgBSgCdEEANgI4IAUgBS8BICAFLwEiIAUvAR5qajYCJAJAIAUtAB1BAXEEQCAFKAJsEDAgBSgCJK1UBEAgBSgCZEEVQQAQFSAFQn83A3gMAwsMAQsgBSgCbBAXIAUgBSgCcCAFKAIkrUEAIAUoAmQQQSIANgJsIABFBEAgBUJ/NwN4DAILCyAFLwEiBEAgBSgCbCAFKAJwIAUvASJBASAFKAJkEIsBIQAgBSgCdCAANgIwIAUoAnQoAjBFBEACfyMAQRBrIgAgBSgCZDYCDCAAKAIMKAIAQRFGCwRAIAUoAmRBFUEAEBULIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAIwQQIQO0EFRgRAIAUoAmRBFUEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwDCwsLIAUvAR4EQCAFIAUoAmwgBSgCcCAFLwEeQQAgBSgCZBBgNgIYIAUoAhhFBEAgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFKAIYIAUvAR5BgAJBgAQgBS0Aa0EBcRsgBSgCdEE0aiAFKAJkEIYBQQFxRQRAIAUoAhgQFiAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILIAUoAhgQFiAFLQBrQQFxBEAgBSgCdEEBOgAECwsgBS8BIARAIAUoAmwgBSgCcCAFLwEgQQAgBSgCZBCLASEAIAUoAnQgADYCOCAFKAJ0KAI4RQRAIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAI4QQIQO0EFRgRAIAUoAmRBFUEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwDCwsLIAUoAnRB9eABIAUoAnQoAjAQwgEhACAFKAJ0IAA2AjAgBSgCdEH1xgEgBSgCdCgCOBDCASEAIAUoAnQgADYCOAJAAkAgBSgCdCkDKEL/////D1ENACAFKAJ0KQMgQv////8PUQ0AIAUoAnQpA0hC/////w9SDQELIAUgBSgCdCgCNCAFQRZqQQFBgAJBgAQgBS0Aa0EBcRsgBSgCZBBfNgIMIAUoAgxFBEAgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFIAUoAgwgBS8BFq0QKiIANgIQIABFBEAgBSgCZEEOQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILAkAgBSgCdCkDKEL/////D1EEQCAFKAIQEDEhBiAFKAJ0IAY3AygMAQsgBS0Aa0EBcQRAIAUoAhAQzAELCyAFKAJ0KQMgQv////8PUQRAIAUoAhAQMSEGIAUoAnQgBjcDIAsgBS0Aa0EBcUUEQCAFKAJ0KQNIQv////8PUQRAIAUoAhAQMSEGIAUoAnQgBjcDSAsgBSgCdCgCPEH//wNGBEAgBSgCEBArIQAgBSgCdCAANgI8CwsgBSgCEBBIQQFxRQRAIAUoAmRBFUEAEBUgBSgCEBAXIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCEBAXCwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwBCyAFLQAdQQFxRQRAIAUoAmwQFwsgBSgCdCkDSEL///////////8AVgRAIAUoAmRBBEEWEBUgBUJ/NwN4DAELIAUoAnQgBSgCZBCMA0EBcUUEQCAFQn83A3gMAQsgBSgCdCgCNBCFASEAIAUoAnQgADYCNCAFIAUoAiggBSgCJGqtNwN4CyAFKQN4IQYgBUGAAWokACAGC8kBAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMgA0EMahAKNgIAAkAgAygCAEUEQCADKAIEQSE7AQAgAygCCEEAOwEADAELIAMoAgAoAhRB0ABIBEAgAygCAEHQADYCFAsgAygCBCADKAIAKAIMIAMoAgAoAhRBCXQgAygCACgCEEEFdGpBoMB9amo7AQAgAygCCCADKAIAKAIIQQt0IAMoAgAoAgRBBXRqIAMoAgAoAgBBAXVqOwEACyADQRBqJAALgwMBAX8jAEEgayIDJAAgAyAAOwEaIAMgATYCFCADIAI2AhAgAyADKAIUIANBCGpBwABBABBHIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIIQQVqQf//A0sEQCADKAIQQRJBABAVIANBADYCHAwBCyADQQAgAygCCEEFaq0QKiIANgIEIABFBEAgAygCEEEOQQAQFSADQQA2AhwMAQsgAygCBEEBEIwBIAMoAgQgAygCFBCKARAhIAMoAgQgAygCDCADKAIIEEACfyMAQRBrIgAgAygCBDYCDCAAKAIMLQAAQQFxRQsEQCADKAIQQRRBABAVIAMoAgQQFyADQQA2AhwMAQsgAyADLwEaAn8jAEEQayIAIAMoAgQ2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IAC6dB//8DcQsCfyMAQRBrIgAgAygCBDYCDCAAKAIMKAIEC0GABhBQNgIAIAMoAgQQFyADIAMoAgA2AhwLIAMoAhwhACADQSBqJAAgAAvgCAEBfyMAQcABayIDJAAgAyAANgK0ASADIAE2ArABIAMgAjcDqAEgAyADKAK0ASgCABA1IgI3AyACQCACQgBTBEAgAygCtAFBCGogAygCtAEoAgAQGCADQn83A7gBDAELIAMgAykDIDcDoAEgA0EAOgAXIANCADcDGANAIAMpAxggAykDqAFUBEAgAyADKAK0ASgCQCADKAKwASADKQMYp0EDdGopAwCnQQR0ajYCDCADIAMoArQBAn8gAygCDCgCBARAIAMoAgwoAgQMAQsgAygCDCgCAAtBgAQQXiIANgIQIABBAEgEQCADQn83A7gBDAMLIAMoAhAEQCADQQE6ABcLIAMgAykDGEIBfDcDGAwBCwsgAyADKAK0ASgCABA1IgI3AyAgAkIAUwRAIAMoArQBQQhqIAMoArQBKAIAEBggA0J/NwO4AQwBCyADIAMpAyAgAykDoAF9NwOYAQJAIAMpA6ABQv////8PWARAIAMpA6gBQv//A1gNAQsgA0EBOgAXCyADIANBMGpC4gAQKiIANgIsIABFBEAgAygCtAFBCGpBDkEAEBUgA0J/NwO4AQwBCyADLQAXQQFxBEAgAygCLEG20wBBBBBAIAMoAixCLBAuIAMoAixBLRAgIAMoAixBLRAgIAMoAixBABAhIAMoAixBABAhIAMoAiwgAykDqAEQLiADKAIsIAMpA6gBEC4gAygCLCADKQOYARAuIAMoAiwgAykDoAEQLiADKAIsQbvTAEEEEEAgAygCLEEAECEgAygCLCADKQOgASADKQOYAXwQLiADKAIsQQEQIQsgAygCLEHA0wBBBBBAIAMoAixBABAhIAMoAiwCfkL//wMgAykDqAFC//8DWg0AGiADKQOoAQunQf//A3EQICADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ/QX8gAykDmAFC/////w9aDQAaIAMpA5gBpwsQISADKAIsAn9BfyADKQOgAUL/////D1oNABogAykDoAGnCxAhIAMCfyADKAK0AS0AKEEBcQRAIAMoArQBKAIkDAELIAMoArQBKAIgCzYClAEgAygCLAJ/IAMoApQBBEAgAygClAEvAQQMAQtBAAtB//8DcRAgAn8jAEEQayIAIAMoAiw2AgwgACgCDC0AAEEBcUULBEAgAygCtAFBCGpBFEEAEBUgAygCLBAXIANCfzcDuAEMAQsgAygCtAECfyMAQRBrIgAgAygCLDYCDCAAKAIMKAIECwJ+IwBBEGsiACADKAIsNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAIsEBcgA0J/NwO4AQwBCyADKAIsEBcgAygClAEEQCADKAK0ASADKAKUASgCACADKAKUAS8BBK0QNkEASARAIANCfzcDuAEMAgsLIAMgAykDmAE3A7gBCyADKQO4ASECIANBwAFqJAAgAgu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhgFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCFATYCDCACKAIcKAIAKAI0IAIoAgwQhwEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsGAEG0nAELjAEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACQQA2AhACQCACKAIURQRAIAJBADYCHAwBCyACIAIoAhQQGTYCDCACKAIMRQRAIAIoAhBBDkEAEBUgAkEANgIcDAELIAIoAgwgAigCGCACKAIUEBoaIAIgAigCDDYCHAsgAigCHCEAIAJBIGokACAACxgAQaicAUIANwIAQbCcAUEANgIAQaicAQuIAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCAJAAkAgAygCFCgCJEEBRgRAIAMpAwhC////////////AFgNAQsgAygCFEEMakESQQAQFSADQn83AxgMAQsgAyADKAIUIAMoAhAgAykDCEELECI3AxgLIAMpAxghAiADQSBqJAAgAgtzAQF/IwBBIGsiASQAIAEgADYCGCABQgg3AxAgASABKAIYKQMQIAEpAxB8NwMIAkAgASkDCCABKAIYKQMQVARAIAEoAhhBADoAACABQX82AhwMAQsgASABKAIYIAEpAwgQLTYCHAsgASgCHBogAUEgaiQACwgAQQFBDBB9CwcAIAAoAigLlgEBAX8jAEEgayICIAA2Ahgg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QRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIIDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwh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AUEJSyEEIAMhASAEDQALDwsgA0EwOgAAIABBADoADws3AQF/IwBBIGsiASQAAn9BASAAIAFBCGoQCCIARQ0AGkG0nAEgADYCAEEACyEAIAFBIGokACAACyABAn8gABAsQQFqIgEQGSICRQRAQQAPCyACIAAgARAaC6UBAQF/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQEEAIQAgAikDCEIAVgR/IAIoAhQoAkAgAikDCEIBfadBBHRqKAIARQVBAAtBAXEEQCACIAIpAwhCf3w3AwgMAQsLIAIgAikDCDcDGAwBCyACIAIoAhQpAzA3AxgLIAIpAxgL8gEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQCADKAIURQRAIANCfzcDGAwBCyADKAIUKAIEBEAgA0J/NwMYDAELIAMpAwhC////////////AFYEQCADKAIUQQRqQRJBABAVIANCfzcDGAwBCwJAIAMoAhQtABBBAXFFBEAgAykDCFBFDQELIANCADcDGAwBCyADIAMoAhQoAhQgAygCECADKQMIEC8iAjcDACACQgBTBEAgAygCFEEEaiADKAIUKAIUEBggA0J/NwMYDAELIAMgAykDADcDGAsgAykDGCECIANBIGokACACC0cBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHCgCHBCfASEAIANBIGokACAAC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEG4iBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEJ8BNgIcCyADKAIcIQAgA0EgaiQAIAALqgEBAX8jAEEQayIBJAAgASAANgIIIAFBGBAZIgA2AgQCQCAARQRAIAEoAghBCGpBDkEAEBUgAUEANgIMDAELIAEoAgQgASgCCDYCACMAQRBrIgAgASgCBEEEajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ABAgASgCBEEANgIUIAEgASgCBDYCDAsgASgCDCEAIAFBEGok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QdAAaiADQaABahBwIARFDQAaIABBAEEAIAAoAiQRAQAaIABBADYCMCAAIAQ2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAFcjYCACACRQ0ACyADQdABaiQACy8AIAECfyACKAJMQX9MBEAgACABIAIQcQwBCyAAIAEgAhBxCyIARgRAIAEPCyAAC1kBAX8gACAALQBKIgFBf2ogAXI6AEogACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQfSgAQsGAEHwoAELBgBB6KABC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELQCIAIgACAEQYH4ACADaxCzAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBDGASICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtgI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQvAIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsg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BEAgASgCGEEGNgIkCyABIAEoAhgoAihBAUHQNyABKAIYKAIgEQEANgIEIAEoAgRFBEAgAUF8NgIcDAELIAEoAhggASgCBDYCHCABKAIEIAEoAhg2AgAgASgCBEEANgI4IAEoAgRBtP4ANgIEIAEgASgCGCABKAIUENICNgIIIAEoAggEQCABKAIYKAIoIAEoAgQgASgCGCgCJBEEACABKAIYQQA2AhwLIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC60CAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYEEsEQCACQX42AhwMAQsgAiACKAIYKAIcNgIMAkAgAigCFEEASARAIAJBADYCECACQQAgAigCFGs2AhQMAQsgAiACKAIUQQR1QQVqNgIQIAIoAhRBMEgEQCACIAIoAhRBD3E2AhQLCwJAIAIoAhRFDQAgAigCFEEITgRAIAIoAhRBD0wNAQsgAkF+NgIcDAELAkAgAigCDCgCOEUNACACKAIMKAIoIAIoAhRGDQAgAigCGCgCKCACKAIMKAI4IAIoAhgoAiQRBAAgAigCDEEANgI4CyACKAIMIAIoAhA2AgwgAigCDCACKAIUNgIoIAIgAigCGBDTAjYCHAsgAigCHCEAIAJBIGokACAAC3IBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCBBLBEAgAUF+NgIMDAELIAEgASgCCCgCHDYCBCABKAIEQQA2AiwgASgCBEEANgIwIAEoAgRBADYCNCABIAEoAggQ1AI2AgwLIAEoAgwhACABQRBqJAAgAAubAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEEsEQCABQX42AgwMAQsgASABKAIIKAIcNgIEIAEoAgRBADYCICABKAIIQQA2AhQgASgCCEEANgIIIAEoAghBADYCGCABKAIEKAIMBEAgASgCCCABKAIEKAIMQQFxNgIwCyABKAIEQbT+ADYCBCABKAIEQQA2AgggASgCBEEANgIQIAEoAgRBgIACNgIYIAEoAgRBADYCJCABKAIEQQA2AjwgASgCBEEANgJAIAEoAgQgASgCBEG0CmoiADYCcCABKAIEIAA2AlQgASgCBCAANgJQIAEoAgRBATYCxDcgASgCBEF/NgLINyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAuI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AgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsLCwNAIAIoAghBAk1FBEAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIDAELCwwBCyACIAIoAkggAigCBGs2AgADQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAghBA2s2AgggAigCCEECSw0ACwsgAigCCARAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAigCCEEBSwRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAALCwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiAgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAlxBzu0ANgIYIAIoAlRB0f4ANgIEDAQLDAILIAIoAgxBwABxRQRAIAJBEGogAigCJCACLwESIAIoAixBASACKAIMdEEBa3FqQQJ0aigBADYBAAwBCwsgAigCDEEgcQRAIAIoAlRBv/4ANgIEDAILIAIoAlxB5O0ANgIYIAIoAlRB0f4ANgIEDAELQQAhACACKAJQIAIoAkxJBH8gAigCSCACKAJASQVBAAtBAXENAQsLIAIgAigCKEEDdjYCCCACIAIoAlAgAigCCGs2AlAgAiACKAIoIAIoAghBA3RrNgIoIAIgAigCLEEBIAIoAih0QQFrcTYCLCACKAJcIAIoAlA2AgAgAigCXCAC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AghBASACKAIIKAIwdDYCLCACKAIIIAIoAggoAixBAWs2AjQgAigCCCACKAIYQQdqNgJQIAIoAghBASACKAIIKAJQdDYCTCACKAIIIAIoAggoAkxBAWs2AlQgAigCCCACKAIIKAJQQQJqQQNuNgJYIAIoAigoAiggAigCCCgCLEECIAIoAigoAiARAQAhACACKAIIIAA2AjggAigCKCgCKCACKAIIKAIsQQIgAigCKCgCIBEBACEAIAIoAgggADYCQCACKAIoKAIoIAIoAggoAkxBAiACKAIoKAIgEQEAIQAgAigCCCAANgJEIAIoAghBADYCwC0gAigCCEEBIAIoAhhBBmp0NgKcLSACIAIoAigoAiggAigCCCgCnC1BBCACKAIoKAIgEQEANgIAIAIoAgggAigCADYCCCACKAIIIAIoAggoApwtQQJ0NgIMAkACQCACKAIIKAI4RQ0AIAIoAggoAkBFDQAgAigCCCgCREUNACACKAIIKAIIDQELIAIoAghBmgU2AgQgAigCKEHo1AAoAgA2AhggAigCKBCzARogAkF8NgIsDAELIAIoAgggAigCACACKAIIKAKcLUEBdkEBdGo2AqQtIAIoAgggAigCCCgCCCACKAIIKAKcLUEDbGo2ApgtIAIoAgggAigCJDYChAEgAigCCCACKAIUNgKIASACKAIIIAIoAiA6ACQgAiACKAIoEOACNgIsCyACKAIsIQAgAkEwaiQAIAALGAEBfyMAQRBrIgEgADYCDCABKAIMQQxqC2wBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBANAIAIgAigCBCACKAIMQQFxcjYCBCACIAIoAgxBAXY2AgwgAiACKAIEQQF0NgIEIAIgAigCCEF/aiIANgIIIABBAEoNAAsgAigCBEEBdguVAgEBfyMAQUBqIgMkACADIAA2AjwgAyABNgI4IAMgAjYCNCADQQA2AgwgA0EBNgIIA0AgAygCCEEPSkUEQCADIAMoAgwgAygCNCADKAIIQQFrQQF0ai8BAGpBAXQ2AgwgA0EQaiADKAIIQQF0aiADKAIMOwEAIAMgAygCCEEBajYCCAwBCwsgA0EANgIEA0AgAygCBCADKAI4TARAIAMgAygCPCADKAIEQQJ0ai8BAjYCACADKAIABEAgA0EQaiADKAIAQQF0aiIBLwEAIQAg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ACAALwG4LUHA4wAvAQAgASgCHCgCvC10cjsBuC0gASgCHCIAIAEoAhAgACgCvC1qNgK8LQsgASgCHBC3ASABQSBqJAALIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBC3ASABQRBqJAALlgEBAX8jAEEQayIBJAAgASAANgIMIAEoAgwgASgCDEGUAWo2ApgWIAEoAgxBgNsANgKgFiABKAIMIAEoAgxBiBNqNgKkFiABKAIMQZTbADYCrBYgASgCDCABKAIMQfwUajYCsBYgASgCDEGo2wA2ArgWIAEoAgxBADsBuC0gASgCDEEANgK8LSABKAIMELkBIAFBEGokAAvXDQEBfyMAQSBrIgMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGEEQdjYCDCADIAMoAhhB//8DcTYCGAJAIAMoAhBBAUYEQCADIAMoAhQtAAAgAygCGGo2AhggAygCGEHx/wNPBEAgAyADKAIYQfH/A2s2AhgLIAMgAygCGCADKAIMajYCDCADKAIMQfH/A08EQCADIAMoAgxB8f8DazYCDAsgAyADKAIYIAMoAgxBEHRyNgIcDAELIAMoAhRFBEAgA0EBNgIcDAELIAMoAhBBEEkEQANAIAMgAygCECIAQX9qNgIQIAAEQCADIAMoAhQiAEEBajYCFCADIAAtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMDAELCyADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIMQfH/A3A2AgwgAyADKAIYIAMoAgxBEHRyNgIcDAELA0AgAygCEEGwK0lFBEAgAyADKAIQQbArazYCECADQdsCNgIIA0AgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAPIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhRBEGo2AhQgAyADKAIIQX9qIgA2AgggAA0ACyADIAMoAhhB8f8DcDYCGCADIAMoAgxB8f8DcDYCDAwBCwsgAygCEARAA0AgAygCEEEQSUUEQCADIAMoAhBBEGs2AhAgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygC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JCADIAE3AxggAyACNgIUIAMgAygCJCADKQMYIAMoAhQQfyIBNwMIAkAgAVAEQCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCADYCBAJAIAMpAwggAygCBCkDIHwgAykDCFoEQCADKQMIIAMoAgQpAyB8Qv///////////wBYDQELIAMoAhRBBEEWEBUgA0IANwMoDAELIAMgAygCBCkDICADKQMIfDcDCCADKAIELwEMQQhxBEAgAygCJCgCACADKQMIQQAQKEEASARAIAMoAhQgAygCJCgCABAYIANCADcDKAwCCyADKAIkKAIAIANCBBAvQgRSBEAgAygCFCADKAIkKAIAEBggA0IANwMoDAILIAMoAABB0JadwABGBEAgAyADKQMIQgR8NwMICyADIAMpAwhCDHw3AwggAygCBEEAEIABQQFxBEAgAyADKQMIQgh8NwMICyADKQMIQv///////////wBWBEAgAygCFEEEQRYQFSADQgA3AygMAgsLIAMgAykDCDcDKAsgAykDKCEBIANBMGokACABC/8BAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABCAAUEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBSIgA7AQggAEH//wNxQQBKBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAALwAIBAX8jAEEwayICJAAgAiAANgIoIAJBgAI7ASYgAiABNgIgIAIgAi8BJkGAAnFBAEc6ABsgAkEeQS4gAi0AG0EBcRs2AhwCQCACKAIoQRpBHCACLQAbQQFxG6xBARAoQQBIBEAgAigCICACKAIoEBggAkF/NgIsDAELIAIgAigCKEEEQQYgAi0AG0EBcRusIAJBDmogAigCIBBBIgA2AgggAEUEQCACQX82AiwMAQsgAkEANgIUA0AgAigCFEECQQMgAi0AG0EBcRtIBEAgAiACKAIIEB5B//8DcSACKAIcajYCHCACIAIoAhRBAWo2AhQMAQsLIAIoAggQSEEBcUUEQCACKAIgQRRBABAVIAIoAggQFyACQX82AiwMAQsgAigCCBAXIAIgAigCHDYCLAsgAigCLCEAIAJBMGokACAAC/8DAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYKAIQQeMARwRAIAJBAToAHwwBCyACIAIoAhgoAjQgAkESakGBsgJBgAZBABBfNgIIAkAgAigCCARAIAIvARJBB04NAQsgAigCFEEVQQAQFSACQQA6AB8MAQsgAiACKAIIIAIvARKtECoiADYCDCAARQRAIAIoAhRBFEEAEBUgAkEAOgAfDAELIAJBAToABwJAAkACQCACKAIMEB5Bf2oOAgIAAQsgAigCGCkDKEIUVARAIAJBADoABwsMAQsgAigCFEEYQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAgxCAhAfLwAAQcGKAUcEQCACKAIUQRhBABAVIAIoAgwQFyACQQA6AB8MAQsCQAJAAkACQAJAIAIoAgwQjQFBf2oOAwABAgMLIAJBgQI7AQQMAwsgAkGCAjsBBAwCCyACQYMCOwEEDAELIAIoAhRBGEEAEBUgAigCDBAXIAJBADoAHwwBCyACLwESQQdHBEAgAigCFEEVQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAhggAi0AB0EBcToABiACKAIYIAIvAQQ7AVIgAigCDBAeQf//A3EhACACKAIYIAA2AhAgAigCDBAXIAJBAToAHwsgAi0AH0EBcSEAIAJBIGokACAAC7kBAQF/IwBBMGsiAiQAIAIgADsBLiACIAE7ASwgAkIANwIAIAJBADYCKCACQgA3AiAgAkIANwIYIAJCADcCECACQgA3AgggAkEANgIgIAIgAi8BLEEJdUHQAGo2AhQgAiACLwEsQQV1QQ9xQQFrNgIQIAIgAi8BLEEfcTYCDCACIAIvAS5BC3U2AgggAiACLwEuQQV1QT9xNgIEIAIgAi8BLkEBdEE+cTYCACACEAwhACACQTBqJAAgAAtMAQJ/IwBBEGsiACQAIABB2AAQGSIBNgIIAkAgAUUEQCAAQQA2AgwMAQsgACgCCBBdIAAgACgCCDYCDAsgACgCDCEBIABBEGokACABCwgAQQFBOBB9CwMAAQsL8o0BJwBBgAgLlAVObyBlcnJvcgBNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABTZWVrIGVycm9yAFJlYWQgZXJyb3IAV3JpdGUgZXJyb3IAQ1JDIGVycm9yAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABObyBzdWNoIGZpbGUARmlsZSBhbHJlYWR5IGV4aXN0cwBDYW4ndCBvcGVuIGZpbGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAWmxpYiBlcnJvcgBNYWxsb2MgZmFpbHVyZQBFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBJbnZhbGlkIGFyZ3VtZW50AE5vdCBhIHppcCBhcmNoaXZlAEludGVybmFsIGVycm9yAFppcCBhcmNoaXZlIGluY29uc2lzdGVudABDYW4ndCByZW1vdmUgZmlsZQBFbnRyeSBoYXMgYmVlbiBkZWxldGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAUmVhZC1vbmx5IGFyY2hpdmUATm8gcGFzc3dvcmQgcHJvdmlkZWQAV3JvbmcgcGFzc3dvcmQgcHJvdmlkZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAFRlbGwgZXJyb3IAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQAQaENC4ABBAAACQQAAC8EAABOBAAAaQQAAHQEAAB/BAAAiwQAAJUEAAC3BAAAxAQAANgEAADoBAAACQUAABQFAAAjBQAAOgUAAFsFAABxBQAAggUAAJQFAACjBQAAvAUAAM4FAADlBQAABQYAABcGAAAsBgAARAYAAFwGAAByBgAAfQYAACAAQbgOCxEBAAAAAQAAAAEAAAABAAAAAQBB3A4LCQEAAAABAAAAAgBBiA8LAQEAQagPCwEBAEG0DwuSRZYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2Cb18sX4HLbjnkR2/kGQQtx3yILBqSHG5895BvoR91Noa6+TdbVG11PTHhdODVphsE8Coa2R6+WL97Mllik9cARTZbAZjYz0P+vUNCI3IIG47XhBpTORBYNVycWei0eQDPEfUBEv9hQ3Sa7UKpfqotTVsmLJC1sm720D5vKzjbNgydVzfRc8N1txZPdGrrDDZJjoA3lGAUdfIFmHQv7X0tCEjxLNWmZW6zw+lvbieuAIoCIgFX7LZDMYk6Quxh3xvLxFMaFirHWHBPS1mtpBB3HYGcdsBvCDSmCoQ1e+JhbFxH7W2BqXkv58z1LjooskHeDT5AA+OqAmWGJgO4bsNan8tPW0Il2xkkQFcY+b0UWtrYmFsHNgwZYVOAGLy7ZUGbHulARvB9AiCV8QP9cbZsGVQ6bcS6ri+i3yIufzfHd1iSS3aFfN804xlTNT7WGGyTc5RtTp0ALyj4jC71EGl30rXldg9bcTRpPv01tNq6WlD/NluNEaIZ63QuGDacy0EROUdAzNfTAqqyXwN3TxxBVCqQQInEBALvoYgDMkltWhXs4VvIAnUZrmf5GHODvneXpjJ2SkimNCwtKjXxxc9s1mBDbQuO1y9t61susAgg7jttrO/mgzitgOa0rF0OUfV6q930p0VJtsEgxbccxILY+OEO2SUPmptDahaanoLzw7knf8JkyeuAAqxngd9RJMP8NKjCIdo8gEe/sIGaV1XYvfLZ2WAcTZsGecGa252G9T+4CvTiVp62hDMSt1nb9+5+fnvvo5DvrcX1Y6wYOij1tZ+k9GhxMLYOFLy30/xZ7vRZ1e8pt0GtT9LNrJI2isN2EwbCq/2SgM2YHoEQcPvYN9V32eo745uMXm+aUaMs2HLGoNmvKDSbyU24mhSlXcMzANHC7u5FgIiLyYFVb47usUoC72yklq0KwRqs1yn/9fCMc/QtYue2Swdrt5bsMJkmybyY+yco2p1CpNtAqkGCZw/Ng7rhWcHchNXAAWCSr+VFHq44q4rsXs4G7YMm47Skg2+1eW379x8Id/bC9TS04ZC4tTx+LPdaG6D2h/NFr6BWya59uF3sG93R7cY5loIiHBqD//KOwZmXAsBEf+eZY9prmL40/9rYUXPbBZ44gqg7tIN11SDBE7CswM5YSZnp/cWYNBNR2lJ23duPkpq0a7cWtbZZgvfQPA72DdTrrypxZ673n/Pskfp/7UwHPK9vYrCusowk7NTpqO0JAU20LqTBtfNKVfeVL9n2SMuemazuEphxAIbaF2UK28qN74LtKGODMMb3wVaje8CLQAAAABBMRsZgmI2MsNTLSsExWxkRfR3fYanWlbHlkFPCIrZyEm7wtGK6O/6y9n04wxPtaxNfq61ji2Dns8cmIdREsJKECPZU9Nw9HiSQe9hVdeuLhTmtTfXtZgcloSDBVmYG4IYqQCb2/otsJrLNqldXXfmHGxs/98/QdSeDlrNoiSEleMVn4wgRrKnYXepvqbh6PHn0PPoJIPew2Wyxdqqrl1d659GRCjMa29p/XB2rmsxOe9aKiAsCQcLbTgcEvM2Rt+yB13GcVRw7TBla/T38yq7tsIxonWRHIk0oAeQ+7yfF7qNhA553qklOO+yPP9583O+SOhqfRvFQTwq3lgFT3nwRH5i6YctT8LGHFTbAYoVlEC7Do2D6COmwtk4vw3FoDhM9Lshj6eWCs6WjRMJAMxcSDHXRYti+m7KU+F3VF27uhVsoKPWP42Ilw6WkVCY194RqczH0vrh7JPL+vVc12JyHeZ5a961VECfhE9ZWBIOFhkjFQ/acDgkm0EjPadr/WXmWuZ8JQnLV2Q40E6jrpEB4p+KGCHMpzNg/bwqr+Ekre7QP7QtgxKfbLIJhqskSMnqFVPQKUZ++2h3ZeL2eT8vt0gkNnQbCR01KhIE8rxTS7ONSFJw3mV5Me9+YP7z5ue/wv3+fJHQ1T2gy8z6NoqDuweRmnhUvLE5ZaeoS5iDOwqpmCLJ+rUJiMuuEE9d718ObPRGzT/ZbYwOwnRDElrzAiNB6sFwbMGAQXfYR9c2lwbmLY7FtQClhIQbvBqKQXFbu1pomOh3Q9nZbFoeTy0VX342DJwtGyfdHAA+EgCYuVMxg6CQYq6L0VO1khbF9N1X9O/ElKfC79WW2fbpvAeuqI0ct2veMZwq7yqF7XlryqxIcNNvG134LipG4eE23magB8V/Y1ToVCJl803l87ICpMKpG2eRhDAmoJ8puK7F5Pmf3v06zPPWe/3oz7xrqYD9WrKZPgmfsn84hKuwJBws8RUHNTJGKh5zdzEHtOFwSPXQa1E2g0Z6d7JdY07X+ssP5uHSzLXM+Y2E1+BKEpavCyONtshwoJ2JQbuERl0jAwdsOBrEPxUxhQ4OKEKYT2cDqVR+wPp5VYHLYkwfxTiBXvQjmJ2nDrPclhWqGwBU5VoxT/yZYmLX2FN5zhdP4UlWfvpQlS3Xe9QczGITio0tUruWNJHoux/Q2aAG7PN+Xq3CZUdukUhsL6BTdeg2EjqpBwkjalQkCCtlPxHkeaeWpUi8j2YbkaQnKoq94LzL8qGN0Oti3v3AI+/m2b3hvBT80KcNP4OKJn6ykT+5JNBw+BXLaTtG5kJ6d/1btWtl3PRafsU3CVPudjhI97GuCbjwnxKhM8w/inL9JJMAAAAAN2rCAW7UhANZvkYC3KgJB+vCywayfI0EhRZPBbhREw6PO9EP1oWXDeHvVQxk+RoJU5PYCAotngo9R1wLcKMmHEfJ5B0ed6IfKR1gHqwLLxubYe0awt+rGPW1aRnI8jUS/5j3E6YmsRGRTHMQFFo8FSMw/hR6jrgWTeR6F+BGTTjXLI85jpLJO7n4Czo87kQ/C4SGPlI6wDxlUAI9WBdeNm99nDc2w9o1AakYNIS/VzGz1ZUw6mvTMt0BETOQ5Wskp4+pJf4x7yfJWy0mTE1iI3snoCIimeYgFfMkISi0eCof3rorRmD8KXEKPij0HHEtw3azLJrI9S6tojcvwI2acPfnWHGuWR5zmTPcchwlk3crT1F2cvEXdEWb1XV43Il+T7ZLfxYIDX0hYs98pHSAeZMeQnjKoAR6/crGe7AuvGyHRH5t3vo4b+mQ+m5shrVrW+x3agJSMWg1OPNpCH+vYj8VbWNmqythUcHpYNTXpmXjvWRkugMiZo1p4Gcgy9dIF6EVSU4fU0t5dZFK/GPeT8sJHE6St1pMpd2YTZiaxEav8AZH9k5ARcEkgkREMs1Bc1gPQCrmSUIdjItDUGjxVGcCM1U+vHVXCda3VozA+FO7qjpS4hR8UNV+vlHoOeJa31MgW4btZlmxh6RYNJHrXQP7KVxaRW9ebS+tX4AbNeG3cffg7s+x4tmlc+Ncszzma9n+5zJnuOUFDXrkOEom7w8g5O5WnqLsYfRg7eTiL+jTiO3pijar671caerwuBP9x9LR/J5sl/6pBlX/LBAa+ht62PtCxJ75da5c+EjpAPN/g8LyJj2E8BFXRvGUQQn0oyvL9fqVjffN/0/2YF142Vc3utgOifzaOeM+27z1cd6Ln7Pf0iH13eVLN9zYDGvX72ap1rbY79SBsi3VBKRi0DPOoNFqcObTXRok0hD+XsUnlJzEfiraxklAGMfMVlfC+zyVw6KC08GV6BHAqK9Ny5/Fj8rGe8nI8RELyXQHRMxDbYbNGtPAzy25As5Alq+Rd/xtkC5CK5IZKOmTnD6mlqtUZJfy6iKVxYDglPjHvJ/PrX6elhM4nKF5+p0kb7WYEwV3mUq7MZt90fOaMDWJjQdfS4xe4Q2OaYvPj+ydgIrb90KLgkkEibUjxoiIZJqDvw5YguawHoDR2tyBVMyThGOmUYU6GBeHDXLVhqDQ4qmXuiCozgRmqvlupKt8eOuuSxIprxKsb60lxq2sGIHxpy/rM6Z2VXWkQT+3pcQp+KDzQzqhqv18o52XvqLQc8S15xkGtL6nQLaJzYK3DNvNsjuxD7NiD0mxVWWLsGgi17tfSBW6BvZTuDGckbm0it68g+AcvdpeWr/tNJi+AAAAAGVnvLiLyAmq7q+1EleXYo8y8N433F9rJbk4153vKLTFik8IfWTgvW8BhwHXuL/WSt3YavIzd9/gVhBjWJ9XGVD6MKXoFJ8Q+nH4rELIwHvfrafHZ0MIcnUmb87NcH+tlRUYES37t6Q/ntAYhyfozxpCj3OirCDGsMlHegg+rzKgW8iOGLVnOwrQAIeyaThQLwxf7Jfi8FmFh5flPdGHhmW04DrdWk+Pzz8oM3eGEOTq43dYUg3Y7UBov1H4ofgr8MSfl0gqMCJaT1ee4vZvSX+TCPXHfadA1RjA/G1O0J81K7cjjcUYlp+gfyonGUf9unwgQQKSj/QQ9+hIqD1YFJtYP6gjtpAdMdP3oYlqz3YUD6jKrOEHf76EYMMG0nCgXrcXHOZZuKn0PN8VTIXnwtHggH5pDi/Le2tId8OiDw3Lx2ixcynHBGFMoLjZ9ZhvRJD/0/x+UGbuGzfaVk0nuQ4oQAW2xu+wpKOIDBwasNuBf9dnOZF40iv0H26TA/cmO2aQmoOIPy+R7ViTKVRgRLQxB/gM36hNHrrP8abs35L+ibguRmcXm1QCcCfsu0jwcd4vTMkwgPnbVedFY5ygP2v5x4PTF2g2wXIPinnLN13krlDhXED/VE4lmOj2c4iLrhbvNxb4QIIEnSc+vCQf6SFBeFWZr9fgi8qwXDM7tlntXtHlVbB+UEfVGez/bCE7YglGh9rn6TLIgo6OcNSe7Six+VGQX1bkgjoxWDqDCY+n5m4zHwjBhg1tpjq1pOFAvcGG/AUvKUkXSk71r/N2IjKWEZ6KeL4rmB3ZlyBLyfR4Lq5IwMAB/dKlZkFqHF6W93k5Kk+Xlp9d8vEj5QUZa01gftf1jtFi5+u23l9SjgnCN+m1etlGAGi8IbzQ6jHfiI9WYzBh+dYiBJ5qmr2mvQfYwQG/Nm60rVMJCBWaTnId/ynOpRGGe7d04ccPzdkQkqi+rCpGERk4I3algHVmxtgQAXpg/q7PcpvJc8oi8aRXR5YY76k5rf3MXhFFBu5NdmOJ8c6NJkTc6EH4ZFF5L/k0HpNB2rEmU7/WmuvpxvmzjKFFC2IO8BkHaUyhvlGbPNs2J4Q1mZKWUP4uLpm5VCb83uieEnFdjHcW4TTOLjapq0mKEUXmPwMggYO7dpHg4xP2XFv9WelJmD5V8SEGgmxEYT7Uqs6Lxs+pN344QX/WXSbDbrOJdnzW7srEb9YdWQqxoeHkHhTzgXmoS9dpyxOyDnerXKHCuTnGfgGA/qmc5ZkVJAs2oDZuURyOpxZmhsJx2j4s3m8sSbnTlPCBBAmV5rixe0kNox4usRtIPtJDLVlu+8P22+mmkWdRH6mwzHrODHSUYblm8QYF3gAAAAB3BzCW7g5hLJkJUboHbcQZcGr0j+ljpTWeZJWjDtuIMnncuKTg1ekel9LZiAm2TCt+sXy957gtB5C/HZEdtxBkarAg8vO5cUiEvkHeGtrUfW3d5Ov01LVRg9OFxxNsmFZka6jA/WL5eoplyewUAVxPYwZs2foPPWONCA31O24gyExpEF7VYEHkomdxcjwD5NFLBNRH0g2F/aUKtWs1taj6QrKYbNu7ydasvPlAMths40XfXHXc1g3Pq9E9WSbZMKxR3gA6yNdRgL/QYRYhtPS1VrPEI8+6lZm4vaUPKAK4nl8FiAjGDNmysQvpJC9vfIdYaEwRwWEdq7ZmLT123EGQAdtxBpjSILzv1RAqcbGFiQa2tR+fv+Sl6LjUM3gHyaIPAPk0lgmojuEOmBh/ag27CG09LZFkbJfmY1wBa2tR9BxsYWKFZTDY8mIATmwGle0bAaV7ggj0wfUPxFdlsNnGErfpUIu+uOr8uYh8Yt0d3xXaLUmM03zz+9RMZU2yYVg6tVHOo7wAdNS7MOJK36VBPdiV16TRxG3T1vT7Q2npajRu2fytZ4hG2mC40EQELXMzAx3lqgpMX90NfMlQBXE8JwJBqr4LEBDJDCCGV2i1JSBvhbO5ZtQJzmHkn17e+Q4p2cmYsNCYIsfXqLRZsz0XLrQNgbe9XDvAumyt7biDIJq/s7YDtuIMdLHSmurVRzmd0nevBNsmFXPcFoPjYwsSlGQ7hA1taj56alqo5A7PC5MJ/50KAK4nfQeesfAPk0SHCKPSHgHyaGkGwv73YlddgGVnyxlsNnFuawbn/tQbdonTK+AQ2npaZ91KzPm532+Ovu/5F7e+Q2CwjtXW1qPoodGTfjjYwsRP3/JS0btn8aa8V2c/tQbdSLI2S9gNK9qvChtMNgNK9kEEemDfYO/DqGffVTFuju9Gab55y2GzjLxmgxolb9KgUmjiNswMd5W7C0cDIgIWuVUFJi/Fuju+sr0LKCu0WpJcs2oEwtf/p7XQzzEs2Z6LW96uHZtkwrDsY/ImdWqjnAJtkwqcCQap6w42P3IHZ4UFAFcTlb9KguK4ehR7sSuuDLYbOJLSjpvl1b4NfNzvtwvb3yGG09LU8dTiQmjds/gf2oNugb4Wzfa5JltvsHfhGLdHd4gIWub/D2pwZgY7yhEBC1yPZZ7/+GKuaWFr/9MWbM9FoArieNcN0u5OBINUOQOzwqdnJmHQYBb3SWlHTT5ud9uu0WpK2dZa3EDfC2Y32DvwqbyuU967nsVHss9/MLX/6b298hzKusKKU7OTMCS0o6a60DYFzdcGk1TeVykj2We/s2Z6LsRhSrhdaBsCKm8rlLQLvjfDDI6hWgXfGy0C740AAAAAGRsxQTI2YoIrLVPDZGzFBH139EVWWqeGT0GWx8jZigjRwrtJ+u/oiuP02custU8Mta5+TZ6DLY6HmBzPSsISUVPZIxB49HDTYe9Bki6u11U3teYUHJi11wWDhJaCG5hZmwCpGLAt+tupNsua5nddXf9sbBzUQT/fzVoOnpWEJKKMnxXjp7JGIL6pd2Hx6OGm6PPQ58PegyTaxbJlXV2uqkRGn+tva8wodnD9aTkxa64gKlrvCwcJLBIcOG3fRjbzxl0Hsu1wVHH0a2Uwuyrz96IxwraJHJF1kAegNBefvPsOhI26JaneeTyy7zhz83n/auhIvkHFG31Y3io88HlPBelifkTCTy2H21QcxpQVigGNDrtApiPog7842cI4oMUNIbv0TAqWp48TjZbOXMwACUXXMUhu+mKLd+FTyrq7XVSjoGwViI0/1pGWDpfe15hQx8ypEezh+tL1+suTcmLXXGt55h1AVLXeWU+EnxYOElgPFSMZJDhw2j0jQZtl/WunfOZa5lfLCSVO0DhkAZGuoxiKn+Izp8whKrz9YK0k4a+0P9DunxKDLYYJsmzJSCSr0FMV6vt+RiniZXdoLz959jYkSLcdCRt0BBIqNUtTvPJSSI2zeWXecGB+7zHn5vP+/v3Cv9XQkXzMy6A9g4o2+pqRB7uxvFR4qKdlOTuDmEsimKkKCbX6yRCuy4hf711PRvRsDm3ZP810wg6M81oSQ+pBIwLBbHDB2HdBgJc210eOLeYGpQC1xbwbhIRxQYoaaFq7W0N36JhabNnZFS1PHgw2fl8nGy2cPgAc3bmYABKggzFTi65ikJK1U9Hd9MUWxO/0V+/Cp5T22ZbVrge86bccjaicMd5rhSrvKspree3TcEis+F0bb+FGKi5m3jbhf8UHoFToVGNN82UiArLz5RupwqQwhJFnKZ+gJuTFrrj93p/51vPMOs/o/XuAqWu8mbJa/bKfCT6rhDh/LBwksDUHFfEeKkYyBzF3c0hw4bRRa9D1ekaDNmNdsnfL+tdO0uHmD/nMtczg14SNr5YSSraNIwudoHDIhLtBiQMjXUYaOGwHMRU/xCgODoVnT5hCflSpA1V5+sBMYsuBgTjFH5gj9F6zDqedqhWW3OVUABv8TzFa12Jimc55U9hJ4U8XUPp+VnvXLZVizBzULY2KEzSWu1Ifu+iRBqDZ0F5+8+xHZcKtbEiRbnVToC86EjboIwkHqQgkVGoRP2Urlqd55I+8SKWkkRtmvYoqJ/LLvODr0I2hwP3eYtnm7yMUvOG9DafQ/CaKgz8/kbJ+cNAkuWnLFfhC5kY7W/13etxla7XFflr07lMJN/dIOHa4Ca6xoRKf8Io/zDOTJP1yAAAAAAHCajcDhNRuAka+WQcJqNwGy8LrBI18sgVPFoUOE1G4D9E7jw2XhdYMVe/hCRr5ZAjYk1MKni0KC1xHPRwmo3Ad5MlHH6J3Hh5gHSkbLwusGu1hmxir38IZabX1EjXyyBP3mP8RsSamEHNMkRU8WhQU/jAjFriOehd65E04TUbgOY8s1zvJko46C/i5P0TuPD6GhAs8wDpSPQJQZTZeF1g3nH1vNdrDNjQYqQExV7+EMJXVszLTa+ozEQHdJGvlkCWpj6cn7zH+Ji1bySNiTUwioCd7IOaZIiEk8xUqeLQoK7reHyn8YEYoPgpxLXEc9CyzdsMu9ciaLzeirXCajcBxWOf3cx5ZrnLcM5l3kyUcdlFPK3QX8XJ11ZtFfonceH9Ltk99DQgWfM9iIXmAdKR4Qh6TegSgynvGyv1svC6wbX5Eh284+t5u+pDpa7WGbGp37FtoMVICafM4NWKvfwhjbRU/YSurZmDpwVFlptfUZGS942YiA7pn4GmNSNfLIEkVoRdLUx9OSpF1eU/eY/xOHAnLTFq3kk2Y3aVGxJqYRwbwr0VATvZEgiTBQc0yREAPWHNCSeYqQ4uMHVTxaFBVMwJnV3W8Pla31glT+MCMUjqqu1B8FOJRvn7VWuI56FsgU99ZZu2GWKSHsV3rkTRcKfsDXm9FWl+tL23hNRuA4Pdxt+Kxz+7jc6XZ5jyzXOf+2WvluGcy5HoNBe8mSjju5CAP7KKeVu1g9GHoL+Lk6e2I0+urNorqaVy9/RO48PzR0sf+l2ye/1UGqfoaECz72Hob+Z7EQvhcrnXzAOlI8sKDf/CEPSbxRlcR9AlBlPXLK6P3jZX69k//zdl4XWDYujdX2vyJDts+4znecfW837Ofi931IdLcN0vl12sM2NapZu/U79i21S2ygdBipATRoM4z0+ZwatIkGl3FXv4QxJyUJ8baKn7HGEBJwldWzMOVPPvB04KiwBHolctNr6jKj8WfyMl7xskLEfHMRAd0zYZtQ8/A0xrOArktka+WQJBt/HeSK0Iuk+koGZamPpyXZFSrlSLq8pTggMWfvMf4nn6tz5w4E5ad+nmhmLVvJJl3BRObMbtKmvPRfY2JNTCMS18Hjg3hXo/Pi2mKgJ3si0L324kESYKIxiO1g5pkiIJYDr+AHrDmgdza0YSTzFSFUaZjhxcYOobVcg2p4tCgqCC6l6pmBM6rpG75rut4fK8pEkutb6wSrK3GJafxgRimM+svpHVVdqW3P0Gg+CnEoTpD86N8/aqivpedtcRz0LQGGee2QKe+t4LNibLN2wyzD7E7sUkPYrCLZVW71yJouhVIX7hT9ga5kZwxvN6KtL0c4IO/Wl7avpg07QAAAAC4vGdlqgnIixK1r+6PYpdXN97wMiVrX9yd1zi5xbQo730IT4pvveBk1wGHAUrWv7jyatjd4N93M1hjEFZQGVef6KUw+voQnxRCrPhx33vAyGfHp611cghDzc5vJpWtf3AtERgVP6S3+4cY0J4az+gnonOPQrDGIKwIekfJoDKvPhiOyFsKO2e1socA0C9QOGmX7F8MhVnw4j3ll4dlhofR3TrgtM+PT1p3Myg/6uQQhlJYd+NA7dgN+FG/aPAr+KFIl5/EWiIwKuKeV09/SW/2x/UIk9VAp31t/MAYNZ/QTo0jtyuflhjFJyp/oLr9RxkCQSB8EPSPkqhI6PebFFg9I6g/WDEdkLaJoffTFHbPaqzKqA++fwfhBsNghF6gcNLmHBe39Km4WUwV3zzRwueFaX6A4HvLLw7Dd0hryw0PonOxaMdhBMcp2bigTERvmPX80/+Q7mZQflbaNxsOuSdNtgVAKKSw78YcDIijgduwGjln138r0niRk24f9Dsm9wODmpBmkS8/iCmTWO20RGBUDPgHMR5NqN+m8c+6/pLf7EYuuIlUmxdn7CdwAnHwSLvJTC/e2/mAMGNF51VrP6Cc04PH+cE2aBd5ig9y5F03y1zhUK5OVP9A9uiYJa6LiHMWN+8WBIJA+Lw+J50h6R8kmVV4QYvg168zXLDK7Vm2O1Xl0V5HUH6w/+wZ1WI7IWzah0YJyDLp53COjoIo7Z7UkFH5sYLkVl86WDE6p48Jgx8zbuYNhsEItTqmbb1A4aQF/IbBF0kpL6/1TkoyInbzip4Rlpgrvnggl9kdePTJS8BIri7S/QHAakFmpfeWXhxPKjl5XZ+Wl+Uj8fJNaxkF9dd+YOdi0Y5f3rbrwgmOUnq16TdoAEbZ0LwhvIjfMeowY1aPItb5YZpqngQHvaa9vwHB2K20bjYVCAlTHXJOmqXOKf+3e4YRD8fhdJIQ2c0qrL6oOBkRRoCldiPYxmZ1YHoBEHLPrv7Kc8mbV6TxIu8Ylkf9rTmpRRFezHZN7gbO8Ylj3EQmjWT4Qej5L3lRQZMeNFMmsdrrmta/s/nG6QtFoYwZ8A5ioUxpBzybUb6EJzbblpKZNS4u/lAmVLmZnuje/IxdcRI04RZ3qTYuzhGKSasDP+ZFu4OBIOPgkXZbXPYTSelZ/fFVPphsggYh1D5hRMaLzqp+N6nP1n9BOG7DJl18domzxMru1lkd1m/hobEK8xQe5EuoeYETy2nXq3cOsrnCoVwBfsY5nKn+gCQVmeU2oDYLjhxRboZmFqc+2nHCLG/eLJTTuUkJBIHwsbjmlaMNSXsbsS4eQ9I+SPtuWS3p2/bDUWeRpsywqR90DM56ZrlhlN4FBvEAADomOyZlJmYmYyZgJiIg2CXLJdklQiZAJmomayY8JrolxCWVITwgtgCnAKwlqCGRIZMhkiGQIR8ilCGyJbwlIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AAIjxwD8AOkA4gDkAOAA5QDnAOoA6wDoAO8A7gDsAMQAxQDJAOYAxgD0APYA8gD7APkA/wDWANwAogCjAKUApyCSAeEA7QDzAPoA8QDRAKoAugC/ABAjrAC9ALwAoQCrALsAkSWSJZMlAiUkJWElYiVWJVUlYyVRJVclXSVcJVslECUUJTQlLCUcJQAlPCVeJV8lWiVUJWklZiVgJVAlbCVnJWglZCVlJVklWCVSJVMlayVqJRglDCWIJYQljCWQJYAlsQPfAJMDwAOjA8MDtQDEA6YDmAOpA7QDHiLGA7UDKSJhIrEAZSJkIiAjISP3AEgisAAZIrcAGiJ/ILIAoCWgAAAAAAAAAFBLBgYAUEsGBwBQSwUGAFBLAwQAUEsBAgBBRQBuZWVkIGRpY3Rpb25hcnkAc3RyZWFtIGVuZAAAZmlsZSBlcnJvcgBzdHJlYW0gZXJyb3IAZGF0YSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBpbmNvbXBhdGlibGUgdmVyc2lvbgBB0NQACybSKQAA4ikAAO0pAADuKQAA+SkAAAYqAAARKgAAJSoAADIqAADtKQBBgdUAC7YQAQIDBAQFBQYGBgYHBwcHCAgICAgICAgJCQkJCQkJCQoKCgoKCgoKCgoKCgoKCgoLCwsLCwsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PAAAQERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxscHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQABAgMEBQYHCAgJCQoKCwsMDAwMDQ0NDQ4ODg4PDw8PEBAQEBAQEBARERERERERERISEhISEhISExMTExMTExMUFBQUFBQUFBQUFBQUFBQUFRUVFRUVFRUVFRUVFRUVFRYWFhYWFhYWFhYWFhYWFhYXFxcXFxcXFxcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxzALQAAwDIAAAEBAAAeAQAADwAAAEAyAABAMwAAAAAAAB4AAAAPAAAAAAAAAMAzAAAAAAAAEwAAAAcAAAAAAAAADAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0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AAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAMS4yLjExAC0rICAgMFgweAAobnVsbCkAQbCDAQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQtLDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAEHchwELARcAQYOIAQsF//////8AQdCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGwiQEL3Q5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAVW5rbm93biBlcnJvciAlZAAlcyVzJXMAADogAC9wcm9jL3NlbGYvZmQvAC9kZXYvdXJhbmRvbQByd2EAJXMuWFhYWFhYAHIrYgByYgBQSwUGAEGQmAELTgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAABAAAACAAAABBMAAAwTABBkJoBCwJQUABByJoBCwkfAAAAZE0AAAMAQeSaAQuMAS30UVjPjLHARva1yykxA8cEW3AwtF39IHh/i5rYWSlQaEiJq6dWA2z/t82IP9R3tCulo3DxuuSo/EGD/dlv4Yp6Ly10lgcfDQleA3YscPdApSynb1dBqKp036BYZANKx8Q8U66vXxgEFbHjbSiGqwykv0Pw6VCBOVcWUjf/////////////////////";
-if (!isDataURI(wasmBinaryFile)) {
-  wasmBinaryFile = locateFile(wasmBinaryFile);
-}
-function getBinary() {
-  try {
-    if (wasmBinary) {
-      return new Uint8Array(wasmBinary);
-    }
-    var binary = tryParseAsDataURI(wasmBinaryFile);
-    if (binary) {
-      return binary;
-    }
-    if (readBinary) {
-      return readBinary(wasmBinaryFile);
-    } else {
-      throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";
-    }
-  } catch (err) {
-    abort(err);
-  }
-}
-function createWasm() {
-  var info = { a: asmLibraryArg };
-  function receiveInstance(instance, module) {
-    var exports = instance.exports;
-    Module["asm"] = exports;
-    removeRunDependency("wasm-instantiate");
-  }
-  addRunDependency("wasm-instantiate");
-  function instantiateSync() {
-    var instance;
-    var module;
-    var binary;
-    try {
-      binary = getBinary();
-      module = new WebAssembly.Module(binary);
-      instance = new WebAssembly.Instance(module, info);
-    } catch (e) {
-      var str = e.toString();
-      err("failed to compile wasm module: " + str);
-      if (
-        str.indexOf("imported Memory") >= 0 ||
-        str.indexOf("memory import") >= 0
-      ) {
-        err(
-          "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."
-        );
-      }
-      throw e;
-    }
-    receiveInstance(instance, module);
-  }
-  if (Module["instantiateWasm"]) {
-    try {
-      var exports = Module["instantiateWasm"](info, receiveInstance);
-      return exports;
-    } catch (e) {
-      err("Module.instantiateWasm callback failed with error: " + e);
-      return false;
-    }
-  }
-  instantiateSync();
-  return Module["asm"];
-}
-var tempDouble;
-var tempI64;
-__ATINIT__.push({
-  func: function() {
-    ___wasm_call_ctors();
-  }
-});
-function demangle(func) {
-  return func;
-}
-function demangleAll(text) {
-  var regex = /\b_Z[\w\d_]+/g;
-  return text.replace(regex, function(x) {
-    var y = demangle(x);
-    return x === y ? x : y + " [" + x + "]";
-  });
-}
-function jsStackTrace() {
-  var err = new Error();
-  if (!err.stack) {
-    try {
-      throw new Error();
-    } catch (e) {
-      err = e;
-    }
-    if (!err.stack) {
-      return "(no stack trace available)";
-    }
-  }
-  return err.stack.toString();
-}
-function stackTrace() {
-  var js = jsStackTrace();
-  if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"]();
-  return demangleAll(js);
-}
-var PATH = {
-  splitPath: function(filename) {
-    var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
-    return splitPathRe.exec(filename).slice(1);
-  },
-  normalizeArray: function(parts, allowAboveRoot) {
-    var up = 0;
-    for (var i = parts.length - 1; i >= 0; i--) {
-      var last = parts[i];
-      if (last === ".") {
-        parts.splice(i, 1);
-      } else if (last === "..") {
-        parts.splice(i, 1);
-        up++;
-      } else if (up) {
-        parts.splice(i, 1);
-        up--;
-      }
-    }
-    if (allowAboveRoot) {
-      for (; up; up--) {
-        parts.unshift("..");
-      }
-    }
-    return parts;
-  },
-  normalize: function(path) {
-    var isAbsolute = path.charAt(0) === "/",
-      trailingSlash = path.substr(-1) === "/";
-    path = PATH.normalizeArray(
-      path.split("/").filter(function(p) {
-        return !!p;
-      }),
-      !isAbsolute
-    ).join("/");
-    if (!path && !isAbsolute) {
-      path = ".";
-    }
-    if (path && trailingSlash) {
-      path += "/";
-    }
-    return (isAbsolute ? "/" : "") + path;
-  },
-  dirname: function(path) {
-    var result = PATH.splitPath(path),
-      root = result[0],
-      dir = result[1];
-    if (!root && !dir) {
-      return ".";
-    }
-    if (dir) {
-      dir = dir.substr(0, dir.length - 1);
-    }
-    return root + dir;
-  },
-  basename: function(path) {
-    if (path === "/") return "/";
-    var lastSlash = path.lastIndexOf("/");
-    if (lastSlash === -1) return path;
-    return path.substr(lastSlash + 1);
-  },
-  extname: function(path) {
-    return PATH.splitPath(path)[3];
-  },
-  join: function() {
-    var paths = Array.prototype.slice.call(arguments, 0);
-    return PATH.normalize(paths.join("/"));
-  },
-  join2: function(l, r) {
-    return PATH.normalize(l + "/" + r);
-  }
-};
-function setErrNo(value) {
-  HEAP32[___errno_location() >> 2] = value;
-  return value;
-}
-var PATH_FS = {
-  resolve: function() {
-    var resolvedPath = "",
-      resolvedAbsolute = false;
-    for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
-      var path = i >= 0 ? arguments[i] : FS.cwd();
-      if (typeof path !== "string") {
-        throw new TypeError("Arguments to path.resolve must be strings");
-      } else if (!path) {
-        return "";
-      }
-      resolvedPath = path + "/" + resolvedPath;
-      resolvedAbsolute = path.charAt(0) === "/";
-    }
-    resolvedPath = PATH.normalizeArray(
-      resolvedPath.split("/").filter(function(p) {
-        return !!p;
-      }),
-      !resolvedAbsolute
-    ).join("/");
-    return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
-  },
-  relative: function(from, to) {
-    from = PATH_FS.resolve(from).substr(1);
-    to = PATH_FS.resolve(to).substr(1);
-    function trim(arr) {
-      var start = 0;
-      for (; start < arr.length; start++) {
-        if (arr[start] !== "") break;
-      }
-      var end = arr.length - 1;
-      for (; end >= 0; end--) {
-        if (arr[end] !== "") break;
-      }
-      if (start > end) return [];
-      return arr.slice(start, end - start + 1);
-    }
-    var fromParts = trim(from.split("/"));
-    var toParts = trim(to.split("/"));
-    var length = Math.min(fromParts.length, toParts.length);
-    var samePartsLength = length;
-    for (var i = 0; i < length; i++) {
-      if (fromParts[i] !== toParts[i]) {
-        samePartsLength = i;
-        break;
-      }
-    }
-    var outputParts = [];
-    for (var i = samePartsLength; i < fromParts.length; i++) {
-      outputParts.push("..");
-    }
-    outputParts = outputParts.concat(toParts.slice(samePartsLength));
-    return outputParts.join("/");
-  }
-};
-var TTY = {
-  ttys: [],
-  init: function() {},
-  shutdown: function() {},
-  register: function(dev, ops) {
-    TTY.ttys[dev] = { input: [], output: [], ops: ops };
-    FS.registerDevice(dev, TTY.stream_ops);
-  },
-  stream_ops: {
-    open: function(stream) {
-      var tty = TTY.ttys[stream.node.rdev];
-      if (!tty) {
-        throw new FS.ErrnoError(43);
-      }
-      stream.tty = tty;
-      stream.seekable = false;
-    },
-    close: function(stream) {
-      stream.tty.ops.flush(stream.tty);
-    },
-    flush: function(stream) {
-      stream.tty.ops.flush(stream.tty);
-    },
-    read: function(stream, buffer, offset, length, pos) {
-      if (!stream.tty || !stream.tty.ops.get_char) {
-        throw new FS.ErrnoError(60);
-      }
-      var bytesRead = 0;
-      for (var i = 0; i < length; i++) {
-        var result;
-        try {
-          result = stream.tty.ops.get_char(stream.tty);
-        } catch (e) {
-          throw new FS.ErrnoError(29);
-        }
-        if (result === undefined && bytesRead === 0) {
-          throw new FS.ErrnoError(6);
-        }
-        if (result === null || result === undefined) break;
-        bytesRead++;
-        buffer[offset + i] = result;
-      }
-      if (bytesRead) {
-        stream.node.timestamp = Date.now();
-      }
-      return bytesRead;
-    },
-    write: function(stream, buffer, offset, length, pos) {
-      if (!stream.tty || !stream.tty.ops.put_char) {
-        throw new FS.ErrnoError(60);
-      }
-      try {
-        for (var i = 0; i < length; i++) {
-          stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
-        }
-      } catch (e) {
-        throw new FS.ErrnoError(29);
-      }
-      if (length) {
-        stream.node.timestamp = Date.now();
-      }
-      return i;
-    }
-  },
-  default_tty_ops: {
-    get_char: function(tty) {
-      if (!tty.input.length) {
-        var result = null;
-        if (ENVIRONMENT_IS_NODE) {
-          var BUFSIZE = 256;
-          var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);
-          var bytesRead = 0;
-          try {
-            bytesRead = nodeFS.readSync(
-              process.stdin.fd,
-              buf,
-              0,
-              BUFSIZE,
-              null
-            );
-          } catch (e) {
-            if (e.toString().indexOf("EOF") != -1) bytesRead = 0;
-            else throw e;
-          }
-          if (bytesRead > 0) {
-            result = buf.slice(0, bytesRead).toString("utf-8");
-          } else {
-            result = null;
-          }
-        } else if (
-          typeof window != "undefined" &&
-          typeof window.prompt == "function"
-        ) {
-          result = window.prompt("Input: ");
-          if (result !== null) {
-            result += "\n";
-          }
-        } else if (typeof readline == "function") {
-          result = readline();
-          if (result !== null) {
-            result += "\n";
-          }
-        }
-        if (!result) {
-          return null;
-        }
-        tty.input = intArrayFromString(result, true);
-      }
-      return tty.input.shift();
-    },
-    put_char: function(tty, val) {
-      if (val === null || val === 10) {
-        out(UTF8ArrayToString(tty.output, 0));
-        tty.output = [];
-      } else {
-        if (val != 0) tty.output.push(val);
-      }
-    },
-    flush: function(tty) {
-      if (tty.output && tty.output.length > 0) {
-        out(UTF8ArrayToString(tty.output, 0));
-        tty.output = [];
-      }
-    }
-  },
-  default_tty1_ops: {
-    put_char: function(tty, val) {
-      if (val === null || val === 10) {
-        err(UTF8ArrayToString(tty.output, 0));
-        tty.output = [];
-      } else {
-        if (val != 0) tty.output.push(val);
-      }
-    },
-    flush: function(tty) {
-      if (tty.output && tty.output.length > 0) {
-        err(UTF8ArrayToString(tty.output, 0));
-        tty.output = [];
-      }
-    }
-  }
-};
-var MEMFS = {
-  ops_table: null,
-  mount: function(mount) {
-    return MEMFS.createNode(null, "/", 16384 | 511, 0);
-  },
-  createNode: function(parent, name, mode, dev) {
-    if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
-      throw new FS.ErrnoError(63);
-    }
-    if (!MEMFS.ops_table) {
-      MEMFS.ops_table = {
-        dir: {
-          node: {
-            getattr: MEMFS.node_ops.getattr,
-            setattr: MEMFS.node_ops.setattr,
-            lookup: MEMFS.node_ops.lookup,
-            mknod: MEMFS.node_ops.mknod,
-            rename: MEMFS.node_ops.rename,
-            unlink: MEMFS.node_ops.unlink,
-            rmdir: MEMFS.node_ops.rmdir,
-            readdir: MEMFS.node_ops.readdir,
-            symlink: MEMFS.node_ops.symlink
-          },
-          stream: { llseek: MEMFS.stream_ops.llseek }
-        },
-        file: {
-          node: {
-            getattr: MEMFS.node_ops.getattr,
-            setattr: MEMFS.node_ops.setattr
-          },
-          stream: {
-            llseek: MEMFS.stream_ops.llseek,
-            read: MEMFS.stream_ops.read,
-            write: MEMFS.stream_ops.write,
-            allocate: MEMFS.stream_ops.allocate,
-            mmap: MEMFS.stream_ops.mmap,
-            msync: MEMFS.stream_ops.msync
-          }
-        },
-        link: {
-          node: {
-            getattr: MEMFS.node_ops.getattr,
-            setattr: MEMFS.node_ops.setattr,
-            readlink: MEMFS.node_ops.readlink
-          },
-          stream: {}
-        },
-        chrdev: {
-          node: {
-            getattr: MEMFS.node_ops.getattr,
-            setattr: MEMFS.node_ops.setattr
-          },
-          stream: FS.chrdev_stream_ops
-        }
-      };
-    }
-    var node = FS.createNode(parent, name, mode, dev);
-    if (FS.isDir(node.mode)) {
-      node.node_ops = MEMFS.ops_table.dir.node;
-      node.stream_ops = MEMFS.ops_table.dir.stream;
-      node.contents = {};
-    } else if (FS.isFile(node.mode)) {
-      node.node_ops = MEMFS.ops_table.file.node;
-      node.stream_ops = MEMFS.ops_table.file.stream;
-      node.usedBytes = 0;
-      node.contents = null;
-    } else if (FS.isLink(node.mode)) {
-      node.node_ops = MEMFS.ops_table.link.node;
-      node.stream_ops = MEMFS.ops_table.link.stream;
-    } else if (FS.isChrdev(node.mode)) {
-      node.node_ops = MEMFS.ops_table.chrdev.node;
-      node.stream_ops = MEMFS.ops_table.chrdev.stream;
-    }
-    node.timestamp = Date.now();
-    if (parent) {
-      parent.contents[name] = node;
-    }
-    return node;
-  },
-  getFileDataAsRegularArray: function(node) {
-    if (node.contents && node.contents.subarray) {
-      var arr = [];
-      for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);
-      return arr;
-    }
-    return node.contents;
-  },
-  getFileDataAsTypedArray: function(node) {
-    if (!node.contents) return new Uint8Array(0);
-    if (node.contents.subarray)
-      return node.contents.subarray(0, node.usedBytes);
-    return new Uint8Array(node.contents);
-  },
-  expandFileStorage: function(node, newCapacity) {
-    var prevCapacity = node.contents ? node.contents.length : 0;
-    if (prevCapacity >= newCapacity) return;
-    var CAPACITY_DOUBLING_MAX = 1024 * 1024;
-    newCapacity = Math.max(
-      newCapacity,
-      (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0
-    );
-    if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);
-    var oldContents = node.contents;
-    node.contents = new Uint8Array(newCapacity);
-    if (node.usedBytes > 0)
-      node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
-    return;
-  },
-  resizeFileStorage: function(node, newSize) {
-    if (node.usedBytes == newSize) return;
-    if (newSize == 0) {
-      node.contents = null;
-      node.usedBytes = 0;
-      return;
-    }
-    if (!node.contents || node.contents.subarray) {
-      var oldContents = node.contents;
-      node.contents = new Uint8Array(newSize);
-      if (oldContents) {
-        node.contents.set(
-          oldContents.subarray(0, Math.min(newSize, node.usedBytes))
-        );
-      }
-      node.usedBytes = newSize;
-      return;
-    }
-    if (!node.contents) node.contents = [];
-    if (node.contents.length > newSize) node.contents.length = newSize;
-    else while (node.contents.length < newSize) node.contents.push(0);
-    node.usedBytes = newSize;
-  },
-  node_ops: {
-    getattr: function(node) {
-      var attr = {};
-      attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
-      attr.ino = node.id;
-      attr.mode = node.mode;
-      attr.nlink = 1;
-      attr.uid = 0;
-      attr.gid = 0;
-      attr.rdev = node.rdev;
-      if (FS.isDir(node.mode)) {
-        attr.size = 4096;
-      } else if (FS.isFile(node.mode)) {
-        attr.size = node.usedBytes;
-      } else if (FS.isLink(node.mode)) {
-        attr.size = node.link.length;
-      } else {
-        attr.size = 0;
-      }
-      attr.atime = new Date(node.timestamp);
-      attr.mtime = new Date(node.timestamp);
-      attr.ctime = new Date(node.timestamp);
-      attr.blksize = 4096;
-      attr.blocks = Math.ceil(attr.size / attr.blksize);
-      return attr;
-    },
-    setattr: function(node, attr) {
-      if (attr.mode !== undefined) {
-        node.mode = attr.mode;
-      }
-      if (attr.timestamp !== undefined) {
-        node.timestamp = attr.timestamp;
-      }
-      if (attr.size !== undefined) {
-        MEMFS.resizeFileStorage(node, attr.size);
-      }
-    },
-    lookup: function(parent, name) {
-      throw FS.genericErrors[44];
-    },
-    mknod: function(parent, name, mode, dev) {
-      return MEMFS.createNode(parent, name, mode, dev);
-    },
-    rename: function(old_node, new_dir, new_name) {
-      if (FS.isDir(old_node.mode)) {
-        var new_node;
-        try {
-          new_node = FS.lookupNode(new_dir, new_name);
-        } catch (e) {}
-        if (new_node) {
-          for (var i in new_node.contents) {
-            throw new FS.ErrnoError(55);
-          }
-        }
-      }
-      delete old_node.parent.contents[old_node.name];
-      old_node.name = new_name;
-      new_dir.contents[new_name] = old_node;
-      old_node.parent = new_dir;
-    },
-    unlink: function(parent, name) {
-      delete parent.contents[name];
-    },
-    rmdir: function(parent, name) {
-      var node = FS.lookupNode(parent, name);
-      for (var i in node.contents) {
-        throw new FS.ErrnoError(55);
-      }
-      delete parent.contents[name];
-    },
-    readdir: function(node) {
-      var entries = [".", ".."];
-      for (var key in node.contents) {
-        if (!node.contents.hasOwnProperty(key)) {
-          continue;
-        }
-        entries.push(key);
-      }
-      return entries;
-    },
-    symlink: function(parent, newname, oldpath) {
-      var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
-      node.link = oldpath;
-      return node;
-    },
-    readlink: function(node) {
-      if (!FS.isLink(node.mode)) {
-        throw new FS.ErrnoError(28);
-      }
-      return node.link;
-    }
-  },
-  stream_ops: {
-    read: function(stream, buffer, offset, length, position) {
-      var contents = stream.node.contents;
-      if (position >= stream.node.usedBytes) return 0;
-      var size = Math.min(stream.node.usedBytes - position, length);
-      if (size > 8 && contents.subarray) {
-        buffer.set(contents.subarray(position, position + size), offset);
-      } else {
-        for (var i = 0; i < size; i++)
-          buffer[offset + i] = contents[position + i];
-      }
-      return size;
-    },
-    write: function(stream, buffer, offset, length, position, canOwn) {
-      if (buffer.buffer === HEAP8.buffer) {
-        canOwn = false;
-      }
-      if (!length) return 0;
-      var node = stream.node;
-      node.timestamp = Date.now();
-      if (buffer.subarray && (!node.contents || node.contents.subarray)) {
-        if (canOwn) {
-          node.contents = buffer.subarray(offset, offset + length);
-          node.usedBytes = length;
-          return length;
-        } else if (node.usedBytes === 0 && position === 0) {
-          node.contents = buffer.slice(offset, offset + length);
-          node.usedBytes = length;
-          return length;
-        } else if (position + length <= node.usedBytes) {
-          node.contents.set(buffer.subarray(offset, offset + length), position);
-          return length;
-        }
-      }
-      MEMFS.expandFileStorage(node, position + length);
-      if (node.contents.subarray && buffer.subarray)
-        node.contents.set(buffer.subarray(offset, offset + length), position);
-      else {
-        for (var i = 0; i < length; i++) {
-          node.contents[position + i] = buffer[offset + i];
-        }
-      }
-      node.usedBytes = Math.max(node.usedBytes, position + length);
-      return length;
-    },
-    llseek: function(stream, offset, whence) {
-      var position = offset;
-      if (whence === 1) {
-        position += stream.position;
-      } else if (whence === 2) {
-        if (FS.isFile(stream.node.mode)) {
-          position += stream.node.usedBytes;
-        }
-      }
-      if (position < 0) {
-        throw new FS.ErrnoError(28);
-      }
-      return position;
-    },
-    allocate: function(stream, offset, length) {
-      MEMFS.expandFileStorage(stream.node, offset + length);
-      stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
-    },
-    mmap: function(stream, address, length, position, prot, flags) {
-      assert(address === 0);
-      if (!FS.isFile(stream.node.mode)) {
-        throw new FS.ErrnoError(43);
-      }
-      var ptr;
-      var allocated;
-      var contents = stream.node.contents;
-      if (!(flags & 2) && contents.buffer === buffer) {
-        allocated = false;
-        ptr = contents.byteOffset;
-      } else {
-        if (position > 0 || position + length < contents.length) {
-          if (contents.subarray) {
-            contents = contents.subarray(position, position + length);
-          } else {
-            contents = Array.prototype.slice.call(
-              contents,
-              position,
-              position + length
-            );
-          }
-        }
-        allocated = true;
-        ptr = _malloc(length);
-        if (!ptr) {
-          throw new FS.ErrnoError(48);
-        }
-        HEAP8.set(contents, ptr);
-      }
-      return { ptr: ptr, allocated: allocated };
-    },
-    msync: function(stream, buffer, offset, length, mmapFlags) {
-      if (!FS.isFile(stream.node.mode)) {
-        throw new FS.ErrnoError(43);
-      }
-      if (mmapFlags & 2) {
-        return 0;
-      }
-      var bytesWritten = MEMFS.stream_ops.write(
-        stream,
-        buffer,
-        0,
-        length,
-        offset,
-        false
-      );
-      return 0;
-    }
-  }
-};
-var ERRNO_CODES = {
-  EPERM: 63,
-  ENOENT: 44,
-  ESRCH: 71,
-  EINTR: 27,
-  EIO: 29,
-  ENXIO: 60,
-  E2BIG: 1,
-  ENOEXEC: 45,
-  EBADF: 8,
-  ECHILD: 12,
-  EAGAIN: 6,
-  EWOULDBLOCK: 6,
-  ENOMEM: 48,
-  EACCES: 2,
-  EFAULT: 21,
-  ENOTBLK: 105,
-  EBUSY: 10,
-  EEXIST: 20,
-  EXDEV: 75,
-  ENODEV: 43,
-  ENOTDIR: 54,
-  EISDIR: 31,
-  EINVAL: 28,
-  ENFILE: 41,
-  EMFILE: 33,
-  ENOTTY: 59,
-  ETXTBSY: 74,
-  EFBIG: 22,
-  ENOSPC: 51,
-  ESPIPE: 70,
-  EROFS: 69,
-  EMLINK: 34,
-  EPIPE: 64,
-  EDOM: 18,
-  ERANGE: 68,
-  ENOMSG: 49,
-  EIDRM: 24,
-  ECHRNG: 106,
-  EL2NSYNC: 156,
-  EL3HLT: 107,
-  EL3RST: 108,
-  ELNRNG: 109,
-  EUNATCH: 110,
-  ENOCSI: 111,
-  EL2HLT: 112,
-  EDEADLK: 16,
-  ENOLCK: 46,
-  EBADE: 113,
-  EBADR: 114,
-  EXFULL: 115,
-  ENOANO: 104,
-  EBADRQC: 103,
-  EBADSLT: 102,
-  EDEADLOCK: 16,
-  EBFONT: 101,
-  ENOSTR: 100,
-  ENODATA: 116,
-  ETIME: 117,
-  ENOSR: 118,
-  ENONET: 119,
-  ENOPKG: 120,
-  EREMOTE: 121,
-  ENOLINK: 47,
-  EADV: 122,
-  ESRMNT: 123,
-  ECOMM: 124,
-  EPROTO: 65,
-  EMULTIHOP: 36,
-  EDOTDOT: 125,
-  EBADMSG: 9,
-  ENOTUNIQ: 126,
-  EBADFD: 127,
-  EREMCHG: 128,
-  ELIBACC: 129,
-  ELIBBAD: 130,
-  ELIBSCN: 131,
-  ELIBMAX: 132,
-  ELIBEXEC: 133,
-  ENOSYS: 52,
-  ENOTEMPTY: 55,
-  ENAMETOOLONG: 37,
-  ELOOP: 32,
-  EOPNOTSUPP: 138,
-  EPFNOSUPPORT: 139,
-  ECONNRESET: 15,
-  ENOBUFS: 42,
-  EAFNOSUPPORT: 5,
-  EPROTOTYPE: 67,
-  ENOTSOCK: 57,
-  ENOPROTOOPT: 50,
-  ESHUTDOWN: 140,
-  ECONNREFUSED: 14,
-  EADDRINUSE: 3,
-  ECONNABORTED: 13,
-  ENETUNREACH: 40,
-  ENETDOWN: 38,
-  ETIMEDOUT: 73,
-  EHOSTDOWN: 142,
-  EHOSTUNREACH: 23,
-  EINPROGRESS: 26,
-  EALREADY: 7,
-  EDESTADDRREQ: 17,
-  EMSGSIZE: 35,
-  EPROTONOSUPPORT: 66,
-  ESOCKTNOSUPPORT: 137,
-  EADDRNOTAVAIL: 4,
-  ENETRESET: 39,
-  EISCONN: 30,
-  ENOTCONN: 53,
-  ETOOMANYREFS: 141,
-  EUSERS: 136,
-  EDQUOT: 19,
-  ESTALE: 72,
-  ENOTSUP: 138,
-  ENOMEDIUM: 148,
-  EILSEQ: 25,
-  EOVERFLOW: 61,
-  ECANCELED: 11,
-  ENOTRECOVERABLE: 56,
-  EOWNERDEAD: 62,
-  ESTRPIPE: 135
-};
-var NODEFS = {
-  isWindows: false,
-  staticInit: function() {
-    NODEFS.isWindows = !!process.platform.match(/^win/);
-    var flags = { fs: fs.constants };
-    if (flags["fs"]) {
-      flags = flags["fs"];
-    }
-    NODEFS.flagsForNodeMap = {
-      1024: flags["O_APPEND"],
-      64: flags["O_CREAT"],
-      128: flags["O_EXCL"],
-      0: flags["O_RDONLY"],
-      2: flags["O_RDWR"],
-      4096: flags["O_SYNC"],
-      512: flags["O_TRUNC"],
-      1: flags["O_WRONLY"]
-    };
-  },
-  bufferFrom: function(arrayBuffer) {
-    return Buffer["alloc"] ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer);
-  },
-  convertNodeCode: function(e) {
-    var code = e.code;
-    return ERRNO_CODES[code];
-  },
-  mount: function(mount) {
-    return NODEFS.createNode(null, "/", NODEFS.getMode(mount.opts.root), 0);
-  },
-  createNode: function(parent, name, mode, dev) {
-    if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
-      throw new FS.ErrnoError(28);
-    }
-    var node = FS.createNode(parent, name, mode);
-    node.node_ops = NODEFS.node_ops;
-    node.stream_ops = NODEFS.stream_ops;
-    return node;
-  },
-  getMode: function(path) {
-    var stat;
-    try {
-      stat = fs.lstatSync(path);
-      if (NODEFS.isWindows) {
-        stat.mode = stat.mode | ((stat.mode & 292) >> 2);
-      }
-    } catch (e) {
-      if (!e.code) throw e;
-      throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-    }
-    return stat.mode;
-  },
-  realPath: function(node) {
-    var parts = [];
-    while (node.parent !== node) {
-      parts.push(node.name);
-      node = node.parent;
-    }
-    parts.push(node.mount.opts.root);
-    parts.reverse();
-    return PATH.join.apply(null, parts);
-  },
-  flagsForNode: function(flags) {
-    flags &= ~2097152;
-    flags &= ~2048;
-    flags &= ~32768;
-    flags &= ~524288;
-    var newFlags = 0;
-    for (var k in NODEFS.flagsForNodeMap) {
-      if (flags & k) {
-        newFlags |= NODEFS.flagsForNodeMap[k];
-        flags ^= k;
-      }
-    }
-    if (!flags) {
-      return newFlags;
-    } else {
-      throw new FS.ErrnoError(28);
-    }
-  },
-  node_ops: {
-    getattr: function(node) {
-      var path = NODEFS.realPath(node);
-      var stat;
-      try {
-        stat = fs.lstatSync(path);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-      if (NODEFS.isWindows && !stat.blksize) {
-        stat.blksize = 4096;
-      }
-      if (NODEFS.isWindows && !stat.blocks) {
-        stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0;
-      }
-      return {
-        dev: stat.dev,
-        ino: stat.ino,
-        mode: stat.mode,
-        nlink: stat.nlink,
-        uid: stat.uid,
-        gid: stat.gid,
-        rdev: stat.rdev,
-        size: stat.size,
-        atime: stat.atime,
-        mtime: stat.mtime,
-        ctime: stat.ctime,
-        blksize: stat.blksize,
-        blocks: stat.blocks
-      };
-    },
-    setattr: function(node, attr) {
-      var path = NODEFS.realPath(node);
-      try {
-        if (attr.mode !== undefined) {
-          fs.chmodSync(path, attr.mode);
-          node.mode = attr.mode;
-        }
-        if (attr.timestamp !== undefined) {
-          var date = new Date(attr.timestamp);
-          fs.utimesSync(path, date, date);
-        }
-        if (attr.size !== undefined) {
-          fs.truncateSync(path, attr.size);
-        }
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    lookup: function(parent, name) {
-      var path = PATH.join2(NODEFS.realPath(parent), name);
-      var mode = NODEFS.getMode(path);
-      return NODEFS.createNode(parent, name, mode);
-    },
-    mknod: function(parent, name, mode, dev) {
-      var node = NODEFS.createNode(parent, name, mode, dev);
-      var path = NODEFS.realPath(node);
-      try {
-        if (FS.isDir(node.mode)) {
-          fs.mkdirSync(path, node.mode);
-        } else {
-          fs.writeFileSync(path, "", { mode: node.mode });
-        }
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-      return node;
-    },
-    rename: function(oldNode, newDir, newName) {
-      var oldPath = NODEFS.realPath(oldNode);
-      var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
-      try {
-        fs.renameSync(oldPath, newPath);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-      oldNode.name = newName;
-    },
-    unlink: function(parent, name) {
-      var path = PATH.join2(NODEFS.realPath(parent), name);
-      try {
-        fs.unlinkSync(path);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    rmdir: function(parent, name) {
-      var path = PATH.join2(NODEFS.realPath(parent), name);
-      try {
-        fs.rmdirSync(path);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    readdir: function(node) {
-      var path = NODEFS.realPath(node);
-      try {
-        return fs.readdirSync(path);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    symlink: function(parent, newName, oldPath) {
-      var newPath = PATH.join2(NODEFS.realPath(parent), newName);
-      try {
-        fs.symlinkSync(oldPath, newPath);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    readlink: function(node) {
-      var path = NODEFS.realPath(node);
-      try {
-        path = fs.readlinkSync(path);
-        path = NODEJS_PATH.relative(
-          NODEJS_PATH.resolve(node.mount.opts.root),
-          path
-        );
-        return path;
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    }
-  },
-  stream_ops: {
-    open: function(stream) {
-      var path = NODEFS.realPath(stream.node);
-      try {
-        if (FS.isFile(stream.node.mode)) {
-          stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags));
-        }
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    close: function(stream) {
-      try {
-        if (FS.isFile(stream.node.mode) && stream.nfd) {
-          fs.closeSync(stream.nfd);
-        }
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    read: function(stream, buffer, offset, length, position) {
-      if (length === 0) return 0;
-      try {
-        return fs.readSync(
-          stream.nfd,
-          NODEFS.bufferFrom(buffer.buffer),
-          offset,
-          length,
-          position
-        );
-      } catch (e) {
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    write: function(stream, buffer, offset, length, position) {
-      try {
-        return fs.writeSync(
-          stream.nfd,
-          NODEFS.bufferFrom(buffer.buffer),
-          offset,
-          length,
-          position
-        );
-      } catch (e) {
-        throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-      }
-    },
-    llseek: function(stream, offset, whence) {
-      var position = offset;
-      if (whence === 1) {
-        position += stream.position;
-      } else if (whence === 2) {
-        if (FS.isFile(stream.node.mode)) {
-          try {
-            var stat = fs.fstatSync(stream.nfd);
-            position += stat.size;
-          } catch (e) {
-            throw new FS.ErrnoError(NODEFS.convertNodeCode(e));
-          }
-        }
-      }
-      if (position < 0) {
-        throw new FS.ErrnoError(28);
-      }
-      return position;
-    },
-    mmap: function(stream, address, length, position, prot, flags) {
-      assert(address === 0);
-      if (!FS.isFile(stream.node.mode)) {
-        throw new FS.ErrnoError(43);
-      }
-      var ptr = _malloc(length);
-      NODEFS.stream_ops.read(stream, HEAP8, ptr, length, position);
-      return { ptr: ptr, allocated: true };
-    },
-    msync: function(stream, buffer, offset, length, mmapFlags) {
-      if (!FS.isFile(stream.node.mode)) {
-        throw new FS.ErrnoError(43);
-      }
-      if (mmapFlags & 2) {
-        return 0;
-      }
-      var bytesWritten = NODEFS.stream_ops.write(
-        stream,
-        buffer,
-        0,
-        length,
-        offset,
-        false
-      );
-      return 0;
-    }
-  }
-};
-var NODERAWFS = {
-  lookupPath: function(path) {
-    return { path: path, node: { mode: NODEFS.getMode(path) } };
-  },
-  createStandardStreams: function() {
-    FS.streams[0] = {
-      fd: 0,
-      nfd: 0,
-      position: 0,
-      path: "",
-      flags: 0,
-      tty: true,
-      seekable: false
-    };
-    for (var i = 1; i < 3; i++) {
-      FS.streams[i] = {
-        fd: i,
-        nfd: i,
-        position: 0,
-        path: "",
-        flags: 577,
-        tty: true,
-        seekable: false
-      };
-    }
-  },
-  cwd: function() {
-    return process.cwd();
-  },
-  chdir: function() {
-    process.chdir.apply(void 0, arguments);
-  },
-  mknod: function(path, mode) {
-    if (FS.isDir(path)) {
-      fs.mkdirSync(path, mode);
-    } else {
-      fs.writeFileSync(path, "", { mode: mode });
-    }
-  },
-  mkdir: function() {
-    fs.mkdirSync.apply(void 0, arguments);
-  },
-  symlink: function() {
-    fs.symlinkSync.apply(void 0, arguments);
-  },
-  rename: function() {
-    fs.renameSync.apply(void 0, arguments);
-  },
-  rmdir: function() {
-    fs.rmdirSync.apply(void 0, arguments);
-  },
-  readdir: function() {
-    fs.readdirSync.apply(void 0, arguments);
-  },
-  unlink: function() {
-    fs.unlinkSync.apply(void 0, arguments);
-  },
-  readlink: function() {
-    return fs.readlinkSync.apply(void 0, arguments);
-  },
-  stat: function() {
-    return fs.statSync.apply(void 0, arguments);
-  },
-  lstat: function() {
-    return fs.lstatSync.apply(void 0, arguments);
-  },
-  chmod: function() {
-    fs.chmodSync.apply(void 0, arguments);
-  },
-  fchmod: function() {
-    fs.fchmodSync.apply(void 0, arguments);
-  },
-  chown: function() {
-    fs.chownSync.apply(void 0, arguments);
-  },
-  fchown: function() {
-    fs.fchownSync.apply(void 0, arguments);
-  },
-  truncate: function() {
-    fs.truncateSync.apply(void 0, arguments);
-  },
-  ftruncate: function() {
-    fs.ftruncateSync.apply(void 0, arguments);
-  },
-  utime: function() {
-    fs.utimesSync.apply(void 0, arguments);
-  },
-  open: function(path, flags, mode, suggestFD) {
-    if (typeof flags === "string") {
-      flags = VFS.modeStringToFlags(flags);
-    }
-    var nfd = fs.openSync(path, NODEFS.flagsForNode(flags), mode);
-    var fd = suggestFD != null ? suggestFD : FS.nextfd(nfd);
-    var stream = {
-      fd: fd,
-      nfd: nfd,
-      position: 0,
-      path: path,
-      flags: flags,
-      seekable: true
-    };
-    FS.streams[fd] = stream;
-    return stream;
-  },
-  close: function(stream) {
-    if (!stream.stream_ops) {
-      fs.closeSync(stream.nfd);
-    }
-    FS.closeStream(stream.fd);
-  },
-  llseek: function(stream, offset, whence) {
-    if (stream.stream_ops) {
-      return VFS.llseek(stream, offset, whence);
-    }
-    var position = offset;
-    if (whence === 1) {
-      position += stream.position;
-    } else if (whence === 2) {
-      position += fs.fstatSync(stream.nfd).size;
-    } else if (whence !== 0) {
-      throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
-    }
-    if (position < 0) {
-      throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
-    }
-    stream.position = position;
-    return position;
-  },
-  read: function(stream, buffer, offset, length, position) {
-    if (stream.stream_ops) {
-      return VFS.read(stream, buffer, offset, length, position);
-    }
-    var seeking = typeof position !== "undefined";
-    if (!seeking && stream.seekable) position = stream.position;
-    var bytesRead = fs.readSync(
-      stream.nfd,
-      NODEFS.bufferFrom(buffer.buffer),
-      offset,
-      length,
-      position
-    );
-    if (!seeking) stream.position += bytesRead;
-    return bytesRead;
-  },
-  write: function(stream, buffer, offset, length, position) {
-    if (stream.stream_ops) {
-      return VFS.write(stream, buffer, offset, length, position);
-    }
-    if (stream.flags & +"1024") {
-      FS.llseek(stream, 0, +"2");
-    }
-    var seeking = typeof position !== "undefined";
-    if (!seeking && stream.seekable) position = stream.position;
-    var bytesWritten = fs.writeSync(
-      stream.nfd,
-      NODEFS.bufferFrom(buffer.buffer),
-      offset,
-      length,
-      position
-    );
-    if (!seeking) stream.position += bytesWritten;
-    return bytesWritten;
-  },
-  allocate: function() {
-    throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
-  },
-  mmap: function() {
-    throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
-  },
-  msync: function() {
-    return 0;
-  },
-  munmap: function() {
-    return 0;
-  },
-  ioctl: function() {
-    throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
-  }
-};
-var FS = {
-  root: null,
-  mounts: [],
-  devices: {},
-  streams: [],
-  nextInode: 1,
-  nameTable: null,
-  currentPath: "/",
-  initialized: false,
-  ignorePermissions: true,
-  trackingDelegate: {},
-  tracking: { openFlags: { READ: 1, WRITE: 2 } },
-  ErrnoError: null,
-  genericErrors: {},
-  filesystems: null,
-  syncFSRequests: 0,
-  handleFSError: function(e) {
-    if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
-    return setErrNo(e.errno);
-  },
-  lookupPath: function(path, opts) {
-    path = PATH_FS.resolve(FS.cwd(), path);
-    opts = opts || {};
-    if (!path) return { path: "", node: null };
-    var defaults = { follow_mount: true, recurse_count: 0 };
-    for (var key in defaults) {
-      if (opts[key] === undefined) {
-        opts[key] = defaults[key];
-      }
-    }
-    if (opts.recurse_count > 8) {
-      throw new FS.ErrnoError(32);
-    }
-    var parts = PATH.normalizeArray(
-      path.split("/").filter(function(p) {
-        return !!p;
-      }),
-      false
-    );
-    var current = FS.root;
-    var current_path = "/";
-    for (var i = 0; i < parts.length; i++) {
-      var islast = i === parts.length - 1;
-      if (islast && opts.parent) {
-        break;
-      }
-      current = FS.lookupNode(current, parts[i]);
-      current_path = PATH.join2(current_path, parts[i]);
-      if (FS.isMountpoint(current)) {
-        if (!islast || (islast && opts.follow_mount)) {
-          current = current.mounted.root;
-        }
-      }
-      if (!islast || opts.follow) {
-        var count = 0;
-        while (FS.isLink(current.mode)) {
-          var link = FS.readlink(current_path);
-          current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
-          var lookup = FS.lookupPath(current_path, {
-            recurse_count: opts.recurse_count
-          });
-          current = lookup.node;
-          if (count++ > 40) {
-            throw new FS.ErrnoError(32);
-          }
-        }
-      }
-    }
-    return { path: current_path, node: current };
-  },
-  getPath: function(node) {
-    var path;
-    while (true) {
-      if (FS.isRoot(node)) {
-        var mount = node.mount.mountpoint;
-        if (!path) return mount;
-        return mount[mount.length - 1] !== "/"
-          ? mount + "/" + path
-          : mount + path;
-      }
-      path = path ? node.name + "/" + path : node.name;
-      node = node.parent;
-    }
-  },
-  hashName: function(parentid, name) {
-    var hash = 0;
-    for (var i = 0; i < name.length; i++) {
-      hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
-    }
-    return ((parentid + hash) >>> 0) % FS.nameTable.length;
-  },
-  hashAddNode: function(node) {
-    var hash = FS.hashName(node.parent.id, node.name);
-    node.name_next = FS.nameTable[hash];
-    FS.nameTable[hash] = node;
-  },
-  hashRemoveNode: function(node) {
-    var hash = FS.hashName(node.parent.id, node.name);
-    if (FS.nameTable[hash] === node) {
-      FS.nameTable[hash] = node.name_next;
-    } else {
-      var current = FS.nameTable[hash];
-      while (current) {
-        if (current.name_next === node) {
-          current.name_next = node.name_next;
-          break;
-        }
-        current = current.name_next;
-      }
-    }
-  },
-  lookupNode: function(parent, name) {
-    var errCode = FS.mayLookup(parent);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode, parent);
-    }
-    var hash = FS.hashName(parent.id, name);
-    for (var node = FS.nameTable[hash]; node; node = node.name_next) {
-      var nodeName = node.name;
-      if (node.parent.id === parent.id && nodeName === name) {
-        return node;
-      }
-    }
-    return FS.lookup(parent, name);
-  },
-  createNode: function(parent, name, mode, rdev) {
-    var node = new FS.FSNode(parent, name, mode, rdev);
-    FS.hashAddNode(node);
-    return node;
-  },
-  destroyNode: function(node) {
-    FS.hashRemoveNode(node);
-  },
-  isRoot: function(node) {
-    return node === node.parent;
-  },
-  isMountpoint: function(node) {
-    return !!node.mounted;
-  },
-  isFile: function(mode) {
-    return (mode & 61440) === 32768;
-  },
-  isDir: function(mode) {
-    return (mode & 61440) === 16384;
-  },
-  isLink: function(mode) {
-    return (mode & 61440) === 40960;
-  },
-  isChrdev: function(mode) {
-    return (mode & 61440) === 8192;
-  },
-  isBlkdev: function(mode) {
-    return (mode & 61440) === 24576;
-  },
-  isFIFO: function(mode) {
-    return (mode & 61440) === 4096;
-  },
-  isSocket: function(mode) {
-    return (mode & 49152) === 49152;
-  },
-  flagModes: {
-    r: 0,
-    rs: 1052672,
-    "r+": 2,
-    w: 577,
-    wx: 705,
-    xw: 705,
-    "w+": 578,
-    "wx+": 706,
-    "xw+": 706,
-    a: 1089,
-    ax: 1217,
-    xa: 1217,
-    "a+": 1090,
-    "ax+": 1218,
-    "xa+": 1218
-  },
-  modeStringToFlags: function(str) {
-    var flags = FS.flagModes[str];
-    if (typeof flags === "undefined") {
-      throw new Error("Unknown file open mode: " + str);
-    }
-    return flags;
-  },
-  flagsToPermissionString: function(flag) {
-    var perms = ["r", "w", "rw"][flag & 3];
-    if (flag & 512) {
-      perms += "w";
-    }
-    return perms;
-  },
-  nodePermissions: function(node, perms) {
-    if (FS.ignorePermissions) {
-      return 0;
-    }
-    if (perms.indexOf("r") !== -1 && !(node.mode & 292)) {
-      return 2;
-    } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) {
-      return 2;
-    } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) {
-      return 2;
-    }
-    return 0;
-  },
-  mayLookup: function(dir) {
-    var errCode = FS.nodePermissions(dir, "x");
-    if (errCode) return errCode;
-    if (!dir.node_ops.lookup) return 2;
-    return 0;
-  },
-  mayCreate: function(dir, name) {
-    try {
-      var node = FS.lookupNode(dir, name);
-      return 20;
-    } catch (e) {}
-    return FS.nodePermissions(dir, "wx");
-  },
-  mayDelete: function(dir, name, isdir) {
-    var node;
-    try {
-      node = FS.lookupNode(dir, name);
-    } catch (e) {
-      return e.errno;
-    }
-    var errCode = FS.nodePermissions(dir, "wx");
-    if (errCode) {
-      return errCode;
-    }
-    if (isdir) {
-      if (!FS.isDir(node.mode)) {
-        return 54;
-      }
-      if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
-        return 10;
-      }
-    } else {
-      if (FS.isDir(node.mode)) {
-        return 31;
-      }
-    }
-    return 0;
-  },
-  mayOpen: function(node, flags) {
-    if (!node) {
-      return 44;
-    }
-    if (FS.isLink(node.mode)) {
-      return 32;
-    } else if (FS.isDir(node.mode)) {
-      if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
-        return 31;
-      }
-    }
-    return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
-  },
-  MAX_OPEN_FDS: 4096,
-  nextfd: function(fd_start, fd_end) {
-    fd_start = fd_start || 0;
-    fd_end = fd_end || FS.MAX_OPEN_FDS;
-    for (var fd = fd_start; fd <= fd_end; fd++) {
-      if (!FS.streams[fd]) {
-        return fd;
-      }
-    }
-    throw new FS.ErrnoError(33);
-  },
-  getStream: function(fd) {
-    return FS.streams[fd];
-  },
-  createStream: function(stream, fd_start, fd_end) {
-    if (!FS.FSStream) {
-      FS.FSStream = function() {};
-      FS.FSStream.prototype = {
-        object: {
-          get: function() {
-            return this.node;
-          },
-          set: function(val) {
-            this.node = val;
-          }
-        },
-        isRead: {
-          get: function() {
-            return (this.flags & 2097155) !== 1;
-          }
-        },
-        isWrite: {
-          get: function() {
-            return (this.flags & 2097155) !== 0;
-          }
-        },
-        isAppend: {
-          get: function() {
-            return this.flags & 1024;
-          }
-        }
-      };
-    }
-    var newStream = new FS.FSStream();
-    for (var p in stream) {
-      newStream[p] = stream[p];
-    }
-    stream = newStream;
-    var fd = FS.nextfd(fd_start, fd_end);
-    stream.fd = fd;
-    FS.streams[fd] = stream;
-    return stream;
-  },
-  closeStream: function(fd) {
-    FS.streams[fd] = null;
-  },
-  chrdev_stream_ops: {
-    open: function(stream) {
-      var device = FS.getDevice(stream.node.rdev);
-      stream.stream_ops = device.stream_ops;
-      if (stream.stream_ops.open) {
-        stream.stream_ops.open(stream);
-      }
-    },
-    llseek: function() {
-      throw new FS.ErrnoError(70);
-    }
-  },
-  major: function(dev) {
-    return dev >> 8;
-  },
-  minor: function(dev) {
-    return dev & 255;
-  },
-  makedev: function(ma, mi) {
-    return (ma << 8) | mi;
-  },
-  registerDevice: function(dev, ops) {
-    FS.devices[dev] = { stream_ops: ops };
-  },
-  getDevice: function(dev) {
-    return FS.devices[dev];
-  },
-  getMounts: function(mount) {
-    var mounts = [];
-    var check = [mount];
-    while (check.length) {
-      var m = check.pop();
-      mounts.push(m);
-      check.push.apply(check, m.mounts);
-    }
-    return mounts;
-  },
-  syncfs: function(populate, callback) {
-    if (typeof populate === "function") {
-      callback = populate;
-      populate = false;
-    }
-    FS.syncFSRequests++;
-    if (FS.syncFSRequests > 1) {
-      err(
-        "warning: " +
-          FS.syncFSRequests +
-          " FS.syncfs operations in flight at once, probably just doing extra work"
-      );
-    }
-    var mounts = FS.getMounts(FS.root.mount);
-    var completed = 0;
-    function doCallback(errCode) {
-      FS.syncFSRequests--;
-      return callback(errCode);
-    }
-    function done(errCode) {
-      if (errCode) {
-        if (!done.errored) {
-          done.errored = true;
-          return doCallback(errCode);
-        }
-        return;
-      }
-      if (++completed >= mounts.length) {
-        doCallback(null);
-      }
-    }
-    mounts.forEach(function(mount) {
-      if (!mount.type.syncfs) {
-        return done(null);
-      }
-      mount.type.syncfs(mount, populate, done);
-    });
-  },
-  mount: function(type, opts, mountpoint) {
-    var root = mountpoint === "/";
-    var pseudo = !mountpoint;
-    var node;
-    if (root && FS.root) {
-      throw new FS.ErrnoError(10);
-    } else if (!root && !pseudo) {
-      var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
-      mountpoint = lookup.path;
-      node = lookup.node;
-      if (FS.isMountpoint(node)) {
-        throw new FS.ErrnoError(10);
-      }
-      if (!FS.isDir(node.mode)) {
-        throw new FS.ErrnoError(54);
-      }
-    }
-    var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] };
-    var mountRoot = type.mount(mount);
-    mountRoot.mount = mount;
-    mount.root = mountRoot;
-    if (root) {
-      FS.root = mountRoot;
-    } else if (node) {
-      node.mounted = mount;
-      if (node.mount) {
-        node.mount.mounts.push(mount);
-      }
-    }
-    return mountRoot;
-  },
-  unmount: function(mountpoint) {
-    var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
-    if (!FS.isMountpoint(lookup.node)) {
-      throw new FS.ErrnoError(28);
-    }
-    var node = lookup.node;
-    var mount = node.mounted;
-    var mounts = FS.getMounts(mount);
-    Object.keys(FS.nameTable).forEach(function(hash) {
-      var current = FS.nameTable[hash];
-      while (current) {
-        var next = current.name_next;
-        if (mounts.indexOf(current.mount) !== -1) {
-          FS.destroyNode(current);
-        }
-        current = next;
-      }
-    });
-    node.mounted = null;
-    var idx = node.mount.mounts.indexOf(mount);
-    node.mount.mounts.splice(idx, 1);
-  },
-  lookup: function(parent, name) {
-    return parent.node_ops.lookup(parent, name);
-  },
-  mknod: function(path, mode, dev) {
-    var lookup = FS.lookupPath(path, { parent: true });
-    var parent = lookup.node;
-    var name = PATH.basename(path);
-    if (!name || name === "." || name === "..") {
-      throw new FS.ErrnoError(28);
-    }
-    var errCode = FS.mayCreate(parent, name);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    if (!parent.node_ops.mknod) {
-      throw new FS.ErrnoError(63);
-    }
-    return parent.node_ops.mknod(parent, name, mode, dev);
-  },
-  create: function(path, mode) {
-    mode = mode !== undefined ? mode : 438;
-    mode &= 4095;
-    mode |= 32768;
-    return FS.mknod(path, mode, 0);
-  },
-  mkdir: function(path, mode) {
-    mode = mode !== undefined ? mode : 511;
-    mode &= 511 | 512;
-    mode |= 16384;
-    return FS.mknod(path, mode, 0);
-  },
-  mkdirTree: function(path, mode) {
-    var dirs = path.split("/");
-    var d = "";
-    for (var i = 0; i < dirs.length; ++i) {
-      if (!dirs[i]) continue;
-      d += "/" + dirs[i];
-      try {
-        FS.mkdir(d, mode);
-      } catch (e) {
-        if (e.errno != 20) throw e;
-      }
-    }
-  },
-  mkdev: function(path, mode, dev) {
-    if (typeof dev === "undefined") {
-      dev = mode;
-      mode = 438;
-    }
-    mode |= 8192;
-    return FS.mknod(path, mode, dev);
-  },
-  symlink: function(oldpath, newpath) {
-    if (!PATH_FS.resolve(oldpath)) {
-      throw new FS.ErrnoError(44);
-    }
-    var lookup = FS.lookupPath(newpath, { parent: true });
-    var parent = lookup.node;
-    if (!parent) {
-      throw new FS.ErrnoError(44);
-    }
-    var newname = PATH.basename(newpath);
-    var errCode = FS.mayCreate(parent, newname);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    if (!parent.node_ops.symlink) {
-      throw new FS.ErrnoError(63);
-    }
-    return parent.node_ops.symlink(parent, newname, oldpath);
-  },
-  rename: function(old_path, new_path) {
-    var old_dirname = PATH.dirname(old_path);
-    var new_dirname = PATH.dirname(new_path);
-    var old_name = PATH.basename(old_path);
-    var new_name = PATH.basename(new_path);
-    var lookup, old_dir, new_dir;
-    try {
-      lookup = FS.lookupPath(old_path, { parent: true });
-      old_dir = lookup.node;
-      lookup = FS.lookupPath(new_path, { parent: true });
-      new_dir = lookup.node;
-    } catch (e) {
-      throw new FS.ErrnoError(10);
-    }
-    if (!old_dir || !new_dir) throw new FS.ErrnoError(44);
-    if (old_dir.mount !== new_dir.mount) {
-      throw new FS.ErrnoError(75);
-    }
-    var old_node = FS.lookupNode(old_dir, old_name);
-    var relative = PATH_FS.relative(old_path, new_dirname);
-    if (relative.charAt(0) !== ".") {
-      throw new FS.ErrnoError(28);
-    }
-    relative = PATH_FS.relative(new_path, old_dirname);
-    if (relative.charAt(0) !== ".") {
-      throw new FS.ErrnoError(55);
-    }
-    var new_node;
-    try {
-      new_node = FS.lookupNode(new_dir, new_name);
-    } catch (e) {}
-    if (old_node === new_node) {
-      return;
-    }
-    var isdir = FS.isDir(old_node.mode);
-    var errCode = FS.mayDelete(old_dir, old_name, isdir);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    errCode = new_node
-      ? FS.mayDelete(new_dir, new_name, isdir)
-      : FS.mayCreate(new_dir, new_name);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    if (!old_dir.node_ops.rename) {
-      throw new FS.ErrnoError(63);
-    }
-    if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
-      throw new FS.ErrnoError(10);
-    }
-    if (new_dir !== old_dir) {
-      errCode = FS.nodePermissions(old_dir, "w");
-      if (errCode) {
-        throw new FS.ErrnoError(errCode);
-      }
-    }
-    try {
-      if (FS.trackingDelegate["willMovePath"]) {
-        FS.trackingDelegate["willMovePath"](old_path, new_path);
-      }
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['willMovePath']('" +
-          old_path +
-          "', '" +
-          new_path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-    FS.hashRemoveNode(old_node);
-    try {
-      old_dir.node_ops.rename(old_node, new_dir, new_name);
-    } catch (e) {
-      throw e;
-    } finally {
-      FS.hashAddNode(old_node);
-    }
-    try {
-      if (FS.trackingDelegate["onMovePath"])
-        FS.trackingDelegate["onMovePath"](old_path, new_path);
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['onMovePath']('" +
-          old_path +
-          "', '" +
-          new_path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-  },
-  rmdir: function(path) {
-    var lookup = FS.lookupPath(path, { parent: true });
-    var parent = lookup.node;
-    var name = PATH.basename(path);
-    var node = FS.lookupNode(parent, name);
-    var errCode = FS.mayDelete(parent, name, true);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    if (!parent.node_ops.rmdir) {
-      throw new FS.ErrnoError(63);
-    }
-    if (FS.isMountpoint(node)) {
-      throw new FS.ErrnoError(10);
-    }
-    try {
-      if (FS.trackingDelegate["willDeletePath"]) {
-        FS.trackingDelegate["willDeletePath"](path);
-      }
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['willDeletePath']('" +
-          path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-    parent.node_ops.rmdir(parent, name);
-    FS.destroyNode(node);
-    try {
-      if (FS.trackingDelegate["onDeletePath"])
-        FS.trackingDelegate["onDeletePath"](path);
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['onDeletePath']('" +
-          path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-  },
-  readdir: function(path) {
-    var lookup = FS.lookupPath(path, { follow: true });
-    var node = lookup.node;
-    if (!node.node_ops.readdir) {
-      throw new FS.ErrnoError(54);
-    }
-    return node.node_ops.readdir(node);
-  },
-  unlink: function(path) {
-    var lookup = FS.lookupPath(path, { parent: true });
-    var parent = lookup.node;
-    var name = PATH.basename(path);
-    var node = FS.lookupNode(parent, name);
-    var errCode = FS.mayDelete(parent, name, false);
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    if (!parent.node_ops.unlink) {
-      throw new FS.ErrnoError(63);
-    }
-    if (FS.isMountpoint(node)) {
-      throw new FS.ErrnoError(10);
-    }
-    try {
-      if (FS.trackingDelegate["willDeletePath"]) {
-        FS.trackingDelegate["willDeletePath"](path);
-      }
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['willDeletePath']('" +
-          path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-    parent.node_ops.unlink(parent, name);
-    FS.destroyNode(node);
-    try {
-      if (FS.trackingDelegate["onDeletePath"])
-        FS.trackingDelegate["onDeletePath"](path);
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['onDeletePath']('" +
-          path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-  },
-  readlink: function(path) {
-    var lookup = FS.lookupPath(path);
-    var link = lookup.node;
-    if (!link) {
-      throw new FS.ErrnoError(44);
-    }
-    if (!link.node_ops.readlink) {
-      throw new FS.ErrnoError(28);
-    }
-    return PATH_FS.resolve(
-      FS.getPath(link.parent),
-      link.node_ops.readlink(link)
-    );
-  },
-  stat: function(path, dontFollow) {
-    var lookup = FS.lookupPath(path, { follow: !dontFollow });
-    var node = lookup.node;
-    if (!node) {
-      throw new FS.ErrnoError(44);
-    }
-    if (!node.node_ops.getattr) {
-      throw new FS.ErrnoError(63);
-    }
-    return node.node_ops.getattr(node);
-  },
-  lstat: function(path) {
-    return FS.stat(path, true);
-  },
-  chmod: function(path, mode, dontFollow) {
-    var node;
-    if (typeof path === "string") {
-      var lookup = FS.lookupPath(path, { follow: !dontFollow });
-      node = lookup.node;
-    } else {
-      node = path;
-    }
-    if (!node.node_ops.setattr) {
-      throw new FS.ErrnoError(63);
-    }
-    node.node_ops.setattr(node, {
-      mode: (mode & 4095) | (node.mode & ~4095),
-      timestamp: Date.now()
-    });
-  },
-  lchmod: function(path, mode) {
-    FS.chmod(path, mode, true);
-  },
-  fchmod: function(fd, mode) {
-    var stream = FS.getStream(fd);
-    if (!stream) {
-      throw new FS.ErrnoError(8);
-    }
-    FS.chmod(stream.node, mode);
-  },
-  chown: function(path, uid, gid, dontFollow) {
-    var node;
-    if (typeof path === "string") {
-      var lookup = FS.lookupPath(path, { follow: !dontFollow });
-      node = lookup.node;
-    } else {
-      node = path;
-    }
-    if (!node.node_ops.setattr) {
-      throw new FS.ErrnoError(63);
-    }
-    node.node_ops.setattr(node, { timestamp: Date.now() });
-  },
-  lchown: function(path, uid, gid) {
-    FS.chown(path, uid, gid, true);
-  },
-  fchown: function(fd, uid, gid) {
-    var stream = FS.getStream(fd);
-    if (!stream) {
-      throw new FS.ErrnoError(8);
-    }
-    FS.chown(stream.node, uid, gid);
-  },
-  truncate: function(path, len) {
-    if (len < 0) {
-      throw new FS.ErrnoError(28);
-    }
-    var node;
-    if (typeof path === "string") {
-      var lookup = FS.lookupPath(path, { follow: true });
-      node = lookup.node;
-    } else {
-      node = path;
-    }
-    if (!node.node_ops.setattr) {
-      throw new FS.ErrnoError(63);
-    }
-    if (FS.isDir(node.mode)) {
-      throw new FS.ErrnoError(31);
-    }
-    if (!FS.isFile(node.mode)) {
-      throw new FS.ErrnoError(28);
-    }
-    var errCode = FS.nodePermissions(node, "w");
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    node.node_ops.setattr(node, { size: len, timestamp: Date.now() });
-  },
-  ftruncate: function(fd, len) {
-    var stream = FS.getStream(fd);
-    if (!stream) {
-      throw new FS.ErrnoError(8);
-    }
-    if ((stream.flags & 2097155) === 0) {
-      throw new FS.ErrnoError(28);
-    }
-    FS.truncate(stream.node, len);
-  },
-  utime: function(path, atime, mtime) {
-    var lookup = FS.lookupPath(path, { follow: true });
-    var node = lookup.node;
-    node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
-  },
-  open: function(path, flags, mode, fd_start, fd_end) {
-    if (path === "") {
-      throw new FS.ErrnoError(44);
-    }
-    flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags;
-    mode = typeof mode === "undefined" ? 438 : mode;
-    if (flags & 64) {
-      mode = (mode & 4095) | 32768;
-    } else {
-      mode = 0;
-    }
-    var node;
-    if (typeof path === "object") {
-      node = path;
-    } else {
-      path = PATH.normalize(path);
-      try {
-        var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
-        node = lookup.node;
-      } catch (e) {}
-    }
-    var created = false;
-    if (flags & 64) {
-      if (node) {
-        if (flags & 128) {
-          throw new FS.ErrnoError(20);
-        }
-      } else {
-        node = FS.mknod(path, mode, 0);
-        created = true;
-      }
-    }
-    if (!node) {
-      throw new FS.ErrnoError(44);
-    }
-    if (FS.isChrdev(node.mode)) {
-      flags &= ~512;
-    }
-    if (flags & 65536 && !FS.isDir(node.mode)) {
-      throw new FS.ErrnoError(54);
-    }
-    if (!created) {
-      var errCode = FS.mayOpen(node, flags);
-      if (errCode) {
-        throw new FS.ErrnoError(errCode);
-      }
-    }
-    if (flags & 512) {
-      FS.truncate(node, 0);
-    }
-    flags &= ~(128 | 512 | 131072);
-    var stream = FS.createStream(
-      {
-        node: node,
-        path: FS.getPath(node),
-        flags: flags,
-        seekable: true,
-        position: 0,
-        stream_ops: node.stream_ops,
-        ungotten: [],
-        error: false
-      },
-      fd_start,
-      fd_end
-    );
-    if (stream.stream_ops.open) {
-      stream.stream_ops.open(stream);
-    }
-    if (Module["logReadFiles"] && !(flags & 1)) {
-      if (!FS.readFiles) FS.readFiles = {};
-      if (!(path in FS.readFiles)) {
-        FS.readFiles[path] = 1;
-        err("FS.trackingDelegate error on read file: " + path);
-      }
-    }
-    try {
-      if (FS.trackingDelegate["onOpenFile"]) {
-        var trackingFlags = 0;
-        if ((flags & 2097155) !== 1) {
-          trackingFlags |= FS.tracking.openFlags.READ;
-        }
-        if ((flags & 2097155) !== 0) {
-          trackingFlags |= FS.tracking.openFlags.WRITE;
-        }
-        FS.trackingDelegate["onOpenFile"](path, trackingFlags);
-      }
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['onOpenFile']('" +
-          path +
-          "', flags) threw an exception: " +
-          e.message
-      );
-    }
-    return stream;
-  },
-  close: function(stream) {
-    if (FS.isClosed(stream)) {
-      throw new FS.ErrnoError(8);
-    }
-    if (stream.getdents) stream.getdents = null;
-    try {
-      if (stream.stream_ops.close) {
-        stream.stream_ops.close(stream);
-      }
-    } catch (e) {
-      throw e;
-    } finally {
-      FS.closeStream(stream.fd);
-    }
-    stream.fd = null;
-  },
-  isClosed: function(stream) {
-    return stream.fd === null;
-  },
-  llseek: function(stream, offset, whence) {
-    if (FS.isClosed(stream)) {
-      throw new FS.ErrnoError(8);
-    }
-    if (!stream.seekable || !stream.stream_ops.llseek) {
-      throw new FS.ErrnoError(70);
-    }
-    if (whence != 0 && whence != 1 && whence != 2) {
-      throw new FS.ErrnoError(28);
-    }
-    stream.position = stream.stream_ops.llseek(stream, offset, whence);
-    stream.ungotten = [];
-    return stream.position;
-  },
-  read: function(stream, buffer, offset, length, position) {
-    if (length < 0 || position < 0) {
-      throw new FS.ErrnoError(28);
-    }
-    if (FS.isClosed(stream)) {
-      throw new FS.ErrnoError(8);
-    }
-    if ((stream.flags & 2097155) === 1) {
-      throw new FS.ErrnoError(8);
-    }
-    if (FS.isDir(stream.node.mode)) {
-      throw new FS.ErrnoError(31);
-    }
-    if (!stream.stream_ops.read) {
-      throw new FS.ErrnoError(28);
-    }
-    var seeking = typeof position !== "undefined";
-    if (!seeking) {
-      position = stream.position;
-    } else if (!stream.seekable) {
-      throw new FS.ErrnoError(70);
-    }
-    var bytesRead = stream.stream_ops.read(
-      stream,
-      buffer,
-      offset,
-      length,
-      position
-    );
-    if (!seeking) stream.position += bytesRead;
-    return bytesRead;
-  },
-  write: function(stream, buffer, offset, length, position, canOwn) {
-    if (length < 0 || position < 0) {
-      throw new FS.ErrnoError(28);
-    }
-    if (FS.isClosed(stream)) {
-      throw new FS.ErrnoError(8);
-    }
-    if ((stream.flags & 2097155) === 0) {
-      throw new FS.ErrnoError(8);
-    }
-    if (FS.isDir(stream.node.mode)) {
-      throw new FS.ErrnoError(31);
-    }
-    if (!stream.stream_ops.write) {
-      throw new FS.ErrnoError(28);
-    }
-    if (stream.seekable && stream.flags & 1024) {
-      FS.llseek(stream, 0, 2);
-    }
-    var seeking = typeof position !== "undefined";
-    if (!seeking) {
-      position = stream.position;
-    } else if (!stream.seekable) {
-      throw new FS.ErrnoError(70);
-    }
-    var bytesWritten = stream.stream_ops.write(
-      stream,
-      buffer,
-      offset,
-      length,
-      position,
-      canOwn
-    );
-    if (!seeking) stream.position += bytesWritten;
-    try {
-      if (stream.path && FS.trackingDelegate["onWriteToFile"])
-        FS.trackingDelegate["onWriteToFile"](stream.path);
-    } catch (e) {
-      err(
-        "FS.trackingDelegate['onWriteToFile']('" +
-          stream.path +
-          "') threw an exception: " +
-          e.message
-      );
-    }
-    return bytesWritten;
-  },
-  allocate: function(stream, offset, length) {
-    if (FS.isClosed(stream)) {
-      throw new FS.ErrnoError(8);
-    }
-    if (offset < 0 || length <= 0) {
-      throw new FS.ErrnoError(28);
-    }
-    if ((stream.flags & 2097155) === 0) {
-      throw new FS.ErrnoError(8);
-    }
-    if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
-      throw new FS.ErrnoError(43);
-    }
-    if (!stream.stream_ops.allocate) {
-      throw new FS.ErrnoError(138);
-    }
-    stream.stream_ops.allocate(stream, offset, length);
-  },
-  mmap: function(stream, address, length, position, prot, flags) {
-    if (
-      (prot & 2) !== 0 &&
-      (flags & 2) === 0 &&
-      (stream.flags & 2097155) !== 2
-    ) {
-      throw new FS.ErrnoError(2);
-    }
-    if ((stream.flags & 2097155) === 1) {
-      throw new FS.ErrnoError(2);
-    }
-    if (!stream.stream_ops.mmap) {
-      throw new FS.ErrnoError(43);
-    }
-    return stream.stream_ops.mmap(
-      stream,
-      address,
-      length,
-      position,
-      prot,
-      flags
-    );
-  },
-  msync: function(stream, buffer, offset, length, mmapFlags) {
-    if (!stream || !stream.stream_ops.msync) {
-      return 0;
-    }
-    return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
-  },
-  munmap: function(stream) {
-    return 0;
-  },
-  ioctl: function(stream, cmd, arg) {
-    if (!stream.stream_ops.ioctl) {
-      throw new FS.ErrnoError(59);
-    }
-    return stream.stream_ops.ioctl(stream, cmd, arg);
-  },
-  readFile: function(path, opts) {
-    opts = opts || {};
-    opts.flags = opts.flags || "r";
-    opts.encoding = opts.encoding || "binary";
-    if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
-      throw new Error('Invalid encoding type "' + opts.encoding + '"');
-    }
-    var ret;
-    var stream = FS.open(path, opts.flags);
-    var stat = FS.stat(path);
-    var length = stat.size;
-    var buf = new Uint8Array(length);
-    FS.read(stream, buf, 0, length, 0);
-    if (opts.encoding === "utf8") {
-      ret = UTF8ArrayToString(buf, 0);
-    } else if (opts.encoding === "binary") {
-      ret = buf;
-    }
-    FS.close(stream);
-    return ret;
-  },
-  writeFile: function(path, data, opts) {
-    opts = opts || {};
-    opts.flags = opts.flags || "w";
-    var stream = FS.open(path, opts.flags, opts.mode);
-    if (typeof data === "string") {
-      var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
-      var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
-      FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);
-    } else if (ArrayBuffer.isView(data)) {
-      FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);
-    } else {
-      throw new Error("Unsupported data type");
-    }
-    FS.close(stream);
-  },
-  cwd: function() {
-    return FS.currentPath;
-  },
-  chdir: function(path) {
-    var lookup = FS.lookupPath(path, { follow: true });
-    if (lookup.node === null) {
-      throw new FS.ErrnoError(44);
-    }
-    if (!FS.isDir(lookup.node.mode)) {
-      throw new FS.ErrnoError(54);
-    }
-    var errCode = FS.nodePermissions(lookup.node, "x");
-    if (errCode) {
-      throw new FS.ErrnoError(errCode);
-    }
-    FS.currentPath = lookup.path;
-  },
-  createDefaultDirectories: function() {
-    FS.mkdir("/tmp");
-    FS.mkdir("/home");
-    FS.mkdir("/home/web_user");
-  },
-  createDefaultDevices: function() {
-    FS.mkdir("/dev");
-    FS.registerDevice(FS.makedev(1, 3), {
-      read: function() {
-        return 0;
-      },
-      write: function(stream, buffer, offset, length, pos) {
-        return length;
-      }
-    });
-    FS.mkdev("/dev/null", FS.makedev(1, 3));
-    TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
-    TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
-    FS.mkdev("/dev/tty", FS.makedev(5, 0));
-    FS.mkdev("/dev/tty1", FS.makedev(6, 0));
-    var random_device;
-    if (
-      typeof crypto === "object" &&
-      typeof crypto["getRandomValues"] === "function"
-    ) {
-      var randomBuffer = new Uint8Array(1);
-      random_device = function() {
-        crypto.getRandomValues(randomBuffer);
-        return randomBuffer[0];
-      };
-    } else if (ENVIRONMENT_IS_NODE) {
-      try {
-        var crypto_module = __webpack_require__(417);
-        random_device = function() {
-          return crypto_module["randomBytes"](1)[0];
-        };
-      } catch (e) {}
-    } else {
-    }
-    if (!random_device) {
-      random_device = function() {
-        abort("random_device");
-      };
-    }
-    FS.createDevice("/dev", "random", random_device);
-    FS.createDevice("/dev", "urandom", random_device);
-    FS.mkdir("/dev/shm");
-    FS.mkdir("/dev/shm/tmp");
-  },
-  createSpecialDirectories: function() {
-    FS.mkdir("/proc");
-    FS.mkdir("/proc/self");
-    FS.mkdir("/proc/self/fd");
-    FS.mount(
-      {
-        mount: function() {
-          var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73);
-          node.node_ops = {
-            lookup: function(parent, name) {
-              var fd = +name;
-              var stream = FS.getStream(fd);
-              if (!stream) throw new FS.ErrnoError(8);
-              var ret = {
-                parent: null,
-                mount: { mountpoint: "fake" },
-                node_ops: {
-                  readlink: function() {
-                    return stream.path;
-                  }
-                }
-              };
-              ret.parent = ret;
-              return ret;
-            }
-          };
-          return node;
-        }
-      },
-      {},
-      "/proc/self/fd"
-    );
-  },
-  createStandardStreams: function() {
-    if (Module["stdin"]) {
-      FS.createDevice("/dev", "stdin", Module["stdin"]);
-    } else {
-      FS.symlink("/dev/tty", "/dev/stdin");
-    }
-    if (Module["stdout"]) {
-      FS.createDevice("/dev", "stdout", null, Module["stdout"]);
-    } else {
-      FS.symlink("/dev/tty", "/dev/stdout");
-    }
-    if (Module["stderr"]) {
-      FS.createDevice("/dev", "stderr", null, Module["stderr"]);
-    } else {
-      FS.symlink("/dev/tty1", "/dev/stderr");
-    }
-    var stdin = FS.open("/dev/stdin", "r");
-    var stdout = FS.open("/dev/stdout", "w");
-    var stderr = FS.open("/dev/stderr", "w");
-  },
-  ensureErrnoError: function() {
-    if (FS.ErrnoError) return;
-    FS.ErrnoError = function ErrnoError(errno, node) {
-      this.node = node;
-      this.setErrno = function(errno) {
-        this.errno = errno;
-      };
-      this.setErrno(errno);
-      this.message = "FS error";
-    };
-    FS.ErrnoError.prototype = new Error();
-    FS.ErrnoError.prototype.constructor = FS.ErrnoError;
-    [44].forEach(function(code) {
-      FS.genericErrors[code] = new FS.ErrnoError(code);
-      FS.genericErrors[code].stack = "<generic error, no stack>";
-    });
-  },
-  staticInit: function() {
-    FS.ensureErrnoError();
-    FS.nameTable = new Array(4096);
-    FS.mount(MEMFS, {}, "/");
-    FS.createDefaultDirectories();
-    FS.createDefaultDevices();
-    FS.createSpecialDirectories();
-    FS.filesystems = { MEMFS: MEMFS, NODEFS: NODEFS };
-  },
-  init: function(input, output, error) {
-    FS.init.initialized = true;
-    FS.ensureErrnoError();
-    Module["stdin"] = input || Module["stdin"];
-    Module["stdout"] = output || Module["stdout"];
-    Module["stderr"] = error || Module["stderr"];
-    FS.createStandardStreams();
-  },
-  quit: function() {
-    FS.init.initialized = false;
-    var fflush = Module["_fflush"];
-    if (fflush) fflush(0);
-    for (var i = 0; i < FS.streams.length; i++) {
-      var stream = FS.streams[i];
-      if (!stream) {
-        continue;
-      }
-      FS.close(stream);
-    }
-  },
-  getMode: function(canRead, canWrite) {
-    var mode = 0;
-    if (canRead) mode |= 292 | 73;
-    if (canWrite) mode |= 146;
-    return mode;
-  },
-  joinPath: function(parts, forceRelative) {
-    var path = PATH.join.apply(null, parts);
-    if (forceRelative && path[0] == "/") path = path.substr(1);
-    return path;
-  },
-  absolutePath: function(relative, base) {
-    return PATH_FS.resolve(base, relative);
-  },
-  standardizePath: function(path) {
-    return PATH.normalize(path);
-  },
-  findObject: function(path, dontResolveLastLink) {
-    var ret = FS.analyzePath(path, dontResolveLastLink);
-    if (ret.exists) {
-      return ret.object;
-    } else {
-      setErrNo(ret.error);
-      return null;
-    }
-  },
-  analyzePath: function(path, dontResolveLastLink) {
-    try {
-      var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
-      path = lookup.path;
-    } catch (e) {}
-    var ret = {
-      isRoot: false,
-      exists: false,
-      error: 0,
-      name: null,
-      path: null,
-      object: null,
-      parentExists: false,
-      parentPath: null,
-      parentObject: null
-    };
-    try {
-      var lookup = FS.lookupPath(path, { parent: true });
-      ret.parentExists = true;
-      ret.parentPath = lookup.path;
-      ret.parentObject = lookup.node;
-      ret.name = PATH.basename(path);
-      lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
-      ret.exists = true;
-      ret.path = lookup.path;
-      ret.object = lookup.node;
-      ret.name = lookup.node.name;
-      ret.isRoot = lookup.path === "/";
-    } catch (e) {
-      ret.error = e.errno;
-    }
-    return ret;
-  },
-  createFolder: function(parent, name, canRead, canWrite) {
-    var path = PATH.join2(
-      typeof parent === "string" ? parent : FS.getPath(parent),
-      name
-    );
-    var mode = FS.getMode(canRead, canWrite);
-    return FS.mkdir(path, mode);
-  },
-  createPath: function(parent, path, canRead, canWrite) {
-    parent = typeof parent === "string" ? parent : FS.getPath(parent);
-    var parts = path.split("/").reverse();
-    while (parts.length) {
-      var part = parts.pop();
-      if (!part) continue;
-      var current = PATH.join2(parent, part);
-      try {
-        FS.mkdir(current);
-      } catch (e) {}
-      parent = current;
-    }
-    return current;
-  },
-  createFile: function(parent, name, properties, canRead, canWrite) {
-    var path = PATH.join2(
-      typeof parent === "string" ? parent : FS.getPath(parent),
-      name
-    );
-    var mode = FS.getMode(canRead, canWrite);
-    return FS.create(path, mode);
-  },
-  createDataFile: function(parent, name, data, canRead, canWrite, canOwn) {
-    var path = name
-      ? PATH.join2(
-          typeof parent === "string" ? parent : FS.getPath(parent),
-          name
-        )
-      : parent;
-    var mode = FS.getMode(canRead, canWrite);
-    var node = FS.create(path, mode);
-    if (data) {
-      if (typeof data === "string") {
-        var arr = new Array(data.length);
-        for (var i = 0, len = data.length; i < len; ++i)
-          arr[i] = data.charCodeAt(i);
-        data = arr;
-      }
-      FS.chmod(node, mode | 146);
-      var stream = FS.open(node, "w");
-      FS.write(stream, data, 0, data.length, 0, canOwn);
-      FS.close(stream);
-      FS.chmod(node, mode);
-    }
-    return node;
-  },
-  createDevice: function(parent, name, input, output) {
-    var path = PATH.join2(
-      typeof parent === "string" ? parent : FS.getPath(parent),
-      name
-    );
-    var mode = FS.getMode(!!input, !!output);
-    if (!FS.createDevice.major) FS.createDevice.major = 64;
-    var dev = FS.makedev(FS.createDevice.major++, 0);
-    FS.registerDevice(dev, {
-      open: function(stream) {
-        stream.seekable = false;
-      },
-      close: function(stream) {
-        if (output && output.buffer && output.buffer.length) {
-          output(10);
-        }
-      },
-      read: function(stream, buffer, offset, length, pos) {
-        var bytesRead = 0;
-        for (var i = 0; i < length; i++) {
-          var result;
-          try {
-            result = input();
-          } catch (e) {
-            throw new FS.ErrnoError(29);
-          }
-          if (result === undefined && bytesRead === 0) {
-            throw new FS.ErrnoError(6);
-          }
-          if (result === null || result === undefined) break;
-          bytesRead++;
-          buffer[offset + i] = result;
-        }
-        if (bytesRead) {
-          stream.node.timestamp = Date.now();
-        }
-        return bytesRead;
-      },
-      write: function(stream, buffer, offset, length, pos) {
-        for (var i = 0; i < length; i++) {
-          try {
-            output(buffer[offset + i]);
-          } catch (e) {
-            throw new FS.ErrnoError(29);
-          }
-        }
-        if (length) {
-          stream.node.timestamp = Date.now();
-        }
-        return i;
-      }
-    });
-    return FS.mkdev(path, mode, dev);
-  },
-  createLink: function(parent, name, target, canRead, canWrite) {
-    var path = PATH.join2(
-      typeof parent === "string" ? parent : FS.getPath(parent),
-      name
-    );
-    return FS.symlink(target, path);
-  },
-  forceLoadFile: function(obj) {
-    if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
-    var success = true;
-    if (typeof XMLHttpRequest !== "undefined") {
-      throw new Error(
-        "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."
-      );
-    } else if (read_) {
-      try {
-        obj.contents = intArrayFromString(read_(obj.url), true);
-        obj.usedBytes = obj.contents.length;
-      } catch (e) {
-        success = false;
-      }
-    } else {
-      throw new Error("Cannot load without read() or XMLHttpRequest.");
-    }
-    if (!success) setErrNo(29);
-    return success;
-  },
-  createLazyFile: function(parent, name, url, canRead, canWrite) {
-    function LazyUint8Array() {
-      this.lengthKnown = false;
-      this.chunks = [];
-    }
-    LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
-      if (idx > this.length - 1 || idx < 0) {
-        return undefined;
-      }
-      var chunkOffset = idx % this.chunkSize;
-      var chunkNum = (idx / this.chunkSize) | 0;
-      return this.getter(chunkNum)[chunkOffset];
-    };
-    LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(
-      getter
-    ) {
-      this.getter = getter;
-    };
-    LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
-      var xhr = new XMLHttpRequest();
-      xhr.open("HEAD", url, false);
-      xhr.send(null);
-      if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304))
-        throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
-      var datalength = Number(xhr.getResponseHeader("Content-length"));
-      var header;
-      var hasByteServing =
-        (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
-      var usesGzip =
-        (header = xhr.getResponseHeader("Content-Encoding")) &&
-        header === "gzip";
-      var chunkSize = 1024 * 1024;
-      if (!hasByteServing) chunkSize = datalength;
-      var doXHR = function(from, to) {
-        if (from > to)
-          throw new Error(
-            "invalid range (" + from + ", " + to + ") or no bytes requested!"
-          );
-        if (to > datalength - 1)
-          throw new Error(
-            "only " + datalength + " bytes available! programmer error!"
-          );
-        var xhr = new XMLHttpRequest();
-        xhr.open("GET", url, false);
-        if (datalength !== chunkSize)
-          xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
-        if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer";
-        if (xhr.overrideMimeType) {
-          xhr.overrideMimeType("text/plain; charset=x-user-defined");
-        }
-        xhr.send(null);
-        if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304))
-          throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
-        if (xhr.response !== undefined) {
-          return new Uint8Array(xhr.response || []);
-        } else {
-          return intArrayFromString(xhr.responseText || "", true);
-        }
-      };
-      var lazyArray = this;
-      lazyArray.setDataGetter(function(chunkNum) {
-        var start = chunkNum * chunkSize;
-        var end = (chunkNum + 1) * chunkSize - 1;
-        end = Math.min(end, datalength - 1);
-        if (typeof lazyArray.chunks[chunkNum] === "undefined") {
-          lazyArray.chunks[chunkNum] = doXHR(start, end);
-        }
-        if (typeof lazyArray.chunks[chunkNum] === "undefined")
-          throw new Error("doXHR failed!");
-        return lazyArray.chunks[chunkNum];
-      });
-      if (usesGzip || !datalength) {
-        chunkSize = datalength = 1;
-        datalength = this.getter(0).length;
-        chunkSize = datalength;
-        out(
-          "LazyFiles on gzip forces download of the whole file when length is accessed"
-        );
-      }
-      this._length = datalength;
-      this._chunkSize = chunkSize;
-      this.lengthKnown = true;
-    };
-    if (typeof XMLHttpRequest !== "undefined") {
-      if (!ENVIRONMENT_IS_WORKER)
-        throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
-      var lazyArray = new LazyUint8Array();
-      Object.defineProperties(lazyArray, {
-        length: {
-          get: function() {
-            if (!this.lengthKnown) {
-              this.cacheLength();
-            }
-            return this._length;
-          }
-        },
-        chunkSize: {
-          get: function() {
-            if (!this.lengthKnown) {
-              this.cacheLength();
-            }
-            return this._chunkSize;
-          }
-        }
-      });
-      var properties = { isDevice: false, contents: lazyArray };
-    } else {
-      var properties = { isDevice: false, url: url };
-    }
-    var node = FS.createFile(parent, name, properties, canRead, canWrite);
-    if (properties.contents) {
-      node.contents = properties.contents;
-    } else if (properties.url) {
-      node.contents = null;
-      node.url = properties.url;
-    }
-    Object.defineProperties(node, {
-      usedBytes: {
-        get: function() {
-          return this.contents.length;
-        }
-      }
-    });
-    var stream_ops = {};
-    var keys = Object.keys(node.stream_ops);
-    keys.forEach(function(key) {
-      var fn = node.stream_ops[key];
-      stream_ops[key] = function forceLoadLazyFile() {
-        if (!FS.forceLoadFile(node)) {
-          throw new FS.ErrnoError(29);
-        }
-        return fn.apply(null, arguments);
-      };
-    });
-    stream_ops.read = function stream_ops_read(
-      stream,
-      buffer,
-      offset,
-      length,
-      position
-    ) {
-      if (!FS.forceLoadFile(node)) {
-        throw new FS.ErrnoError(29);
-      }
-      var contents = stream.node.contents;
-      if (position >= contents.length) return 0;
-      var size = Math.min(contents.length - position, length);
-      if (contents.slice) {
-        for (var i = 0; i < size; i++) {
-          buffer[offset + i] = contents[position + i];
-        }
-      } else {
-        for (var i = 0; i < size; i++) {
-          buffer[offset + i] = contents.get(position + i);
-        }
-      }
-      return size;
-    };
-    node.stream_ops = stream_ops;
-    return node;
-  },
-  createPreloadedFile: function(
-    parent,
-    name,
-    url,
-    canRead,
-    canWrite,
-    onload,
-    onerror,
-    dontCreateFile,
-    canOwn,
-    preFinish
-  ) {
-    Browser.init();
-    var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
-    var dep = getUniqueRunDependency("cp " + fullname);
-    function processData(byteArray) {
-      function finish(byteArray) {
-        if (preFinish) preFinish();
-        if (!dontCreateFile) {
-          FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
-        }
-        if (onload) onload();
-        removeRunDependency(dep);
-      }
-      var handled = false;
-      Module["preloadPlugins"].forEach(function(plugin) {
-        if (handled) return;
-        if (plugin["canHandle"](fullname)) {
-          plugin["handle"](byteArray, fullname, finish, function() {
-            if (onerror) onerror();
-            removeRunDependency(dep);
-          });
-          handled = true;
-        }
-      });
-      if (!handled) finish(byteArray);
-    }
-    addRunDependency(dep);
-    if (typeof url == "string") {
-      Browser.asyncLoad(
-        url,
-        function(byteArray) {
-          processData(byteArray);
-        },
-        onerror
-      );
-    } else {
-      processData(url);
-    }
-  },
-  indexedDB: function() {
-    return (
-      window.indexedDB ||
-      window.mozIndexedDB ||
-      window.webkitIndexedDB ||
-      window.msIndexedDB
-    );
-  },
-  DB_NAME: function() {
-    return "EM_FS_" + window.location.pathname;
-  },
-  DB_VERSION: 20,
-  DB_STORE_NAME: "FILE_DATA",
-  saveFilesToDB: function(paths, onload, onerror) {
-    onload = onload || function() {};
-    onerror = onerror || function() {};
-    var indexedDB = FS.indexedDB();
-    try {
-      var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
-    } catch (e) {
-      return onerror(e);
-    }
-    openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
-      out("creating db");
-      var db = openRequest.result;
-      db.createObjectStore(FS.DB_STORE_NAME);
-    };
-    openRequest.onsuccess = function openRequest_onsuccess() {
-      var db = openRequest.result;
-      var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite");
-      var files = transaction.objectStore(FS.DB_STORE_NAME);
-      var ok = 0,
-        fail = 0,
-        total = paths.length;
-      function finish() {
-        if (fail == 0) onload();
-        else onerror();
-      }
-      paths.forEach(function(path) {
-        var putRequest = files.put(FS.analyzePath(path).object.contents, path);
-        putRequest.onsuccess = function putRequest_onsuccess() {
-          ok++;
-          if (ok + fail == total) finish();
-        };
-        putRequest.onerror = function putRequest_onerror() {
-          fail++;
-          if (ok + fail == total) finish();
-        };
-      });
-      transaction.onerror = onerror;
-    };
-    openRequest.onerror = onerror;
-  },
-  loadFilesFromDB: function(paths, onload, onerror) {
-    onload = onload || function() {};
-    onerror = onerror || function() {};
-    var indexedDB = FS.indexedDB();
-    try {
-      var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
-    } catch (e) {
-      return onerror(e);
-    }
-    openRequest.onupgradeneeded = onerror;
-    openRequest.onsuccess = function openRequest_onsuccess() {
-      var db = openRequest.result;
-      try {
-        var transaction = db.transaction([FS.DB_STORE_NAME], "readonly");
-      } catch (e) {
-        onerror(e);
-        return;
-      }
-      var files = transaction.objectStore(FS.DB_STORE_NAME);
-      var ok = 0,
-        fail = 0,
-        total = paths.length;
-      function finish() {
-        if (fail == 0) onload();
-        else onerror();
-      }
-      paths.forEach(function(path) {
-        var getRequest = files.get(path);
-        getRequest.onsuccess = function getRequest_onsuccess() {
-          if (FS.analyzePath(path).exists) {
-            FS.unlink(path);
-          }
-          FS.createDataFile(
-            PATH.dirname(path),
-            PATH.basename(path),
-            getRequest.result,
-            true,
-            true,
-            true
-          );
-          ok++;
-          if (ok + fail == total) finish();
-        };
-        getRequest.onerror = function getRequest_onerror() {
-          fail++;
-          if (ok + fail == total) finish();
-        };
-      });
-      transaction.onerror = onerror;
-    };
-    openRequest.onerror = onerror;
-  }
-};
-var SYSCALLS = {
-  mappings: {},
-  DEFAULT_POLLMASK: 5,
-  umask: 511,
-  calculateAt: function(dirfd, path) {
-    if (path[0] !== "/") {
-      var dir;
-      if (dirfd === -100) {
-        dir = FS.cwd();
-      } else {
-        var dirstream = FS.getStream(dirfd);
-        if (!dirstream) throw new FS.ErrnoError(8);
-        dir = dirstream.path;
-      }
-      path = PATH.join2(dir, path);
-    }
-    return path;
-  },
-  doStat: function(func, path, buf) {
-    try {
-      var stat = func(path);
-    } catch (e) {
-      if (
-        e &&
-        e.node &&
-        PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))
-      ) {
-        return -54;
-      }
-      throw e;
-    }
-    HEAP32[buf >> 2] = stat.dev;
-    HEAP32[(buf + 4) >> 2] = 0;
-    HEAP32[(buf + 8) >> 2] = stat.ino;
-    HEAP32[(buf + 12) >> 2] = stat.mode;
-    HEAP32[(buf + 16) >> 2] = stat.nlink;
-    HEAP32[(buf + 20) >> 2] = stat.uid;
-    HEAP32[(buf + 24) >> 2] = stat.gid;
-    HEAP32[(buf + 28) >> 2] = stat.rdev;
-    HEAP32[(buf + 32) >> 2] = 0;
-    (tempI64 = [
-      stat.size >>> 0,
-      ((tempDouble = stat.size),
-      +Math_abs(tempDouble) >= 1
-        ? tempDouble > 0
-          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
-            0
-          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
-            0
-        : 0)
-    ]),
-      (HEAP32[(buf + 40) >> 2] = tempI64[0]),
-      (HEAP32[(buf + 44) >> 2] = tempI64[1]);
-    HEAP32[(buf + 48) >> 2] = 4096;
-    HEAP32[(buf + 52) >> 2] = stat.blocks;
-    HEAP32[(buf + 56) >> 2] = (stat.atime.getTime() / 1e3) | 0;
-    HEAP32[(buf + 60) >> 2] = 0;
-    HEAP32[(buf + 64) >> 2] = (stat.mtime.getTime() / 1e3) | 0;
-    HEAP32[(buf + 68) >> 2] = 0;
-    HEAP32[(buf + 72) >> 2] = (stat.ctime.getTime() / 1e3) | 0;
-    HEAP32[(buf + 76) >> 2] = 0;
-    (tempI64 = [
-      stat.ino >>> 0,
-      ((tempDouble = stat.ino),
-      +Math_abs(tempDouble) >= 1
-        ? tempDouble > 0
-          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
-            0
-          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
-            0
-        : 0)
-    ]),
-      (HEAP32[(buf + 80) >> 2] = tempI64[0]),
-      (HEAP32[(buf + 84) >> 2] = tempI64[1]);
-    return 0;
-  },
-  doMsync: function(addr, stream, len, flags, offset) {
-    var buffer = HEAPU8.slice(addr, addr + len);
-    FS.msync(stream, buffer, offset, len, flags);
-  },
-  doMkdir: function(path, mode) {
-    path = PATH.normalize(path);
-    if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1);
-    FS.mkdir(path, mode, 0);
-    return 0;
-  },
-  doMknod: function(path, mode, dev) {
-    switch (mode & 61440) {
-      case 32768:
-      case 8192:
-      case 24576:
-      case 4096:
-      case 49152:
-        break;
-      default:
-        return -28;
-    }
-    FS.mknod(path, mode, dev);
-    return 0;
-  },
-  doReadlink: function(path, buf, bufsize) {
-    if (bufsize <= 0) return -28;
-    var ret = FS.readlink(path);
-    var len = Math.min(bufsize, lengthBytesUTF8(ret));
-    var endChar = HEAP8[buf + len];
-    stringToUTF8(ret, buf, bufsize + 1);
-    HEAP8[buf + len] = endChar;
-    return len;
-  },
-  doAccess: function(path, amode) {
-    if (amode & ~7) {
-      return -28;
-    }
-    var node;
-    var lookup = FS.lookupPath(path, { follow: true });
-    node = lookup.node;
-    if (!node) {
-      return -44;
-    }
-    var perms = "";
-    if (amode & 4) perms += "r";
-    if (amode & 2) perms += "w";
-    if (amode & 1) perms += "x";
-    if (perms && FS.nodePermissions(node, perms)) {
-      return -2;
-    }
-    return 0;
-  },
-  doDup: function(path, flags, suggestFD) {
-    var suggest = FS.getStream(suggestFD);
-    if (suggest) FS.close(suggest);
-    return FS.open(path, flags, 0, suggestFD, suggestFD).fd;
-  },
-  doReadv: function(stream, iov, iovcnt, offset) {
-    var ret = 0;
-    for (var i = 0; i < iovcnt; i++) {
-      var ptr = HEAP32[(iov + i * 8) >> 2];
-      var len = HEAP32[(iov + (i * 8 + 4)) >> 2];
-      var curr = FS.read(stream, HEAP8, ptr, len, offset);
-      if (curr < 0) return -1;
-      ret += curr;
-      if (curr < len) break;
-    }
-    return ret;
-  },
-  doWritev: function(stream, iov, iovcnt, offset) {
-    var ret = 0;
-    for (var i = 0; i < iovcnt; i++) {
-      var ptr = HEAP32[(iov + i * 8) >> 2];
-      var len = HEAP32[(iov + (i * 8 + 4)) >> 2];
-      var curr = FS.write(stream, HEAP8, ptr, len, offset);
-      if (curr < 0) return -1;
-      ret += curr;
-    }
-    return ret;
-  },
-  varargs: undefined,
-  get: function() {
-    SYSCALLS.varargs += 4;
-    var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2];
-    return ret;
-  },
-  getStr: function(ptr) {
-    var ret = UTF8ToString(ptr);
-    return ret;
-  },
-  getStreamFromFD: function(fd) {
-    var stream = FS.getStream(fd);
-    if (!stream) throw new FS.ErrnoError(8);
-    return stream;
-  },
-  get64: function(low, high) {
-    return low;
-  }
-};
-function ___sys_chmod(path, mode) {
-  try {
-    path = SYSCALLS.getStr(path);
-    FS.chmod(path, mode);
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_fcntl64(fd, cmd, varargs) {
-  SYSCALLS.varargs = varargs;
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    switch (cmd) {
-      case 0: {
-        var arg = SYSCALLS.get();
-        if (arg < 0) {
-          return -28;
-        }
-        var newStream;
-        newStream = FS.open(stream.path, stream.flags, 0, arg);
-        return newStream.fd;
-      }
-      case 1:
-      case 2:
-        return 0;
-      case 3:
-        return stream.flags;
-      case 4: {
-        var arg = SYSCALLS.get();
-        stream.flags |= arg;
-        return 0;
-      }
-      case 12: {
-        var arg = SYSCALLS.get();
-        var offset = 0;
-        HEAP16[(arg + offset) >> 1] = 2;
-        return 0;
-      }
-      case 13:
-      case 14:
-        return 0;
-      case 16:
-      case 8:
-        return -28;
-      case 9:
-        setErrNo(28);
-        return -1;
-      default: {
-        return -28;
-      }
-    }
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_fstat64(fd, buf) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    return SYSCALLS.doStat(FS.stat, stream.path, buf);
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_ioctl(fd, op, varargs) {
-  SYSCALLS.varargs = varargs;
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    switch (op) {
-      case 21509:
-      case 21505: {
-        if (!stream.tty) return -59;
-        return 0;
-      }
-      case 21510:
-      case 21511:
-      case 21512:
-      case 21506:
-      case 21507:
-      case 21508: {
-        if (!stream.tty) return -59;
-        return 0;
-      }
-      case 21519: {
-        if (!stream.tty) return -59;
-        var argp = SYSCALLS.get();
-        HEAP32[argp >> 2] = 0;
-        return 0;
-      }
-      case 21520: {
-        if (!stream.tty) return -59;
-        return -28;
-      }
-      case 21531: {
-        var argp = SYSCALLS.get();
-        return FS.ioctl(stream, op, argp);
-      }
-      case 21523: {
-        if (!stream.tty) return -59;
-        return 0;
-      }
-      case 21524: {
-        if (!stream.tty) return -59;
-        return 0;
-      }
-      default:
-        abort("bad ioctl syscall " + op);
-    }
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_open(path, flags, varargs) {
-  SYSCALLS.varargs = varargs;
-  try {
-    var pathname = SYSCALLS.getStr(path);
-    var mode = SYSCALLS.get();
-    var stream = FS.open(pathname, flags, mode);
-    return stream.fd;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_read(fd, buf, count) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    return FS.read(stream, HEAP8, buf, count);
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_rename(old_path, new_path) {
-  try {
-    old_path = SYSCALLS.getStr(old_path);
-    new_path = SYSCALLS.getStr(new_path);
-    FS.rename(old_path, new_path);
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_rmdir(path) {
-  try {
-    path = SYSCALLS.getStr(path);
-    FS.rmdir(path);
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_stat64(path, buf) {
-  try {
-    path = SYSCALLS.getStr(path);
-    return SYSCALLS.doStat(FS.stat, path, buf);
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function ___sys_unlink(path) {
-  try {
-    path = SYSCALLS.getStr(path);
-    FS.unlink(path);
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return -e.errno;
-  }
-}
-function _emscripten_memcpy_big(dest, src, num) {
-  HEAPU8.copyWithin(dest, src, src + num);
-}
-function _emscripten_get_heap_size() {
-  return HEAPU8.length;
-}
-function emscripten_realloc_buffer(size) {
-  try {
-    wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);
-    updateGlobalBufferAndViews(wasmMemory.buffer);
-    return 1;
-  } catch (e) {}
-}
-function _emscripten_resize_heap(requestedSize) {
-  requestedSize = requestedSize >>> 0;
-  var oldSize = _emscripten_get_heap_size();
-  var PAGE_MULTIPLE = 65536;
-  var maxHeapSize = 2147483648;
-  if (requestedSize > maxHeapSize) {
-    return false;
-  }
-  var minHeapSize = 16777216;
-  for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
-    var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
-    overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
-    var newSize = Math.min(
-      maxHeapSize,
-      alignUp(
-        Math.max(minHeapSize, requestedSize, overGrownHeapSize),
-        PAGE_MULTIPLE
-      )
-    );
-    var replacement = emscripten_realloc_buffer(newSize);
-    if (replacement) {
-      return true;
-    }
-  }
-  return false;
-}
-function _fd_close(fd) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    FS.close(stream);
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return e.errno;
-  }
-}
-function _fd_fdstat_get(fd, pbuf) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    var type = stream.tty
-      ? 2
-      : FS.isDir(stream.mode)
-      ? 3
-      : FS.isLink(stream.mode)
-      ? 7
-      : 4;
-    HEAP8[pbuf >> 0] = type;
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return e.errno;
-  }
-}
-function _fd_read(fd, iov, iovcnt, pnum) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    var num = SYSCALLS.doReadv(stream, iov, iovcnt);
-    HEAP32[pnum >> 2] = num;
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return e.errno;
-  }
-}
-function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    var HIGH_OFFSET = 4294967296;
-    var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);
-    var DOUBLE_LIMIT = 9007199254740992;
-    if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {
-      return -61;
-    }
-    FS.llseek(stream, offset, whence);
-    (tempI64 = [
-      stream.position >>> 0,
-      ((tempDouble = stream.position),
-      +Math_abs(tempDouble) >= 1
-        ? tempDouble > 0
-          ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>>
-            0
-          : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>>
-            0
-        : 0)
-    ]),
-      (HEAP32[newOffset >> 2] = tempI64[0]),
-      (HEAP32[(newOffset + 4) >> 2] = tempI64[1]);
-    if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return e.errno;
-  }
-}
-function _fd_write(fd, iov, iovcnt, pnum) {
-  try {
-    var stream = SYSCALLS.getStreamFromFD(fd);
-    var num = SYSCALLS.doWritev(stream, iov, iovcnt);
-    HEAP32[pnum >> 2] = num;
-    return 0;
-  } catch (e) {
-    if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e);
-    return e.errno;
-  }
-}
-var ___tm_current = 20656;
-var ___tm_timezone = (stringToUTF8("GMT", 20704, 4), 20704);
-function _gmtime_r(time, tmPtr) {
-  var date = new Date(HEAP32[time >> 2] * 1e3);
-  HEAP32[tmPtr >> 2] = date.getUTCSeconds();
-  HEAP32[(tmPtr + 4) >> 2] = date.getUTCMinutes();
-  HEAP32[(tmPtr + 8) >> 2] = date.getUTCHours();
-  HEAP32[(tmPtr + 12) >> 2] = date.getUTCDate();
-  HEAP32[(tmPtr + 16) >> 2] = date.getUTCMonth();
-  HEAP32[(tmPtr + 20) >> 2] = date.getUTCFullYear() - 1900;
-  HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay();
-  HEAP32[(tmPtr + 36) >> 2] = 0;
-  HEAP32[(tmPtr + 32) >> 2] = 0;
-  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
-  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
-  HEAP32[(tmPtr + 28) >> 2] = yday;
-  HEAP32[(tmPtr + 40) >> 2] = ___tm_timezone;
-  return tmPtr;
-}
-function _gmtime(time) {
-  return _gmtime_r(time, ___tm_current);
-}
-function _setTempRet0($i) {
-  setTempRet0($i | 0);
-}
-function _time(ptr) {
-  var ret = (Date.now() / 1e3) | 0;
-  if (ptr) {
-    HEAP32[ptr >> 2] = ret;
-  }
-  return ret;
-}
-function _tzset() {
-  if (_tzset.called) return;
-  _tzset.called = true;
-  HEAP32[__get_timezone() >> 2] = new Date().getTimezoneOffset() * 60;
-  var currentYear = new Date().getFullYear();
-  var winter = new Date(currentYear, 0, 1);
-  var summer = new Date(currentYear, 6, 1);
-  HEAP32[__get_daylight() >> 2] = Number(
-    winter.getTimezoneOffset() != summer.getTimezoneOffset()
-  );
-  function extractZone(date) {
-    var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/);
-    return match ? match[1] : "GMT";
-  }
-  var winterName = extractZone(winter);
-  var summerName = extractZone(summer);
-  var winterNamePtr = allocateUTF8(winterName);
-  var summerNamePtr = allocateUTF8(summerName);
-  if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) {
-    HEAP32[__get_tzname() >> 2] = winterNamePtr;
-    HEAP32[(__get_tzname() + 4) >> 2] = summerNamePtr;
-  } else {
-    HEAP32[__get_tzname() >> 2] = summerNamePtr;
-    HEAP32[(__get_tzname() + 4) >> 2] = winterNamePtr;
-  }
-}
-function _timegm(tmPtr) {
-  _tzset();
-  var time = Date.UTC(
-    HEAP32[(tmPtr + 20) >> 2] + 1900,
-    HEAP32[(tmPtr + 16) >> 2],
-    HEAP32[(tmPtr + 12) >> 2],
-    HEAP32[(tmPtr + 8) >> 2],
-    HEAP32[(tmPtr + 4) >> 2],
-    HEAP32[tmPtr >> 2],
-    0
-  );
-  var date = new Date(time);
-  HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay();
-  var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
-  var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0;
-  HEAP32[(tmPtr + 28) >> 2] = yday;
-  return (date.getTime() / 1e3) | 0;
-}
-var FSNode = function(parent, name, mode, rdev) {
-  if (!parent) {
-    parent = this;
-  }
-  this.parent = parent;
-  this.mount = parent.mount;
-  this.mounted = null;
-  this.id = FS.nextInode++;
-  this.name = name;
-  this.mode = mode;
-  this.node_ops = {};
-  this.stream_ops = {};
-  this.rdev = rdev;
-};
-var readMode = 292 | 73;
-var writeMode = 146;
-Object.defineProperties(FSNode.prototype, {
-  read: {
-    get: function() {
-      return (this.mode & readMode) === readMode;
-    },
-    set: function(val) {
-      val ? (this.mode |= readMode) : (this.mode &= ~readMode);
-    }
-  },
-  write: {
-    get: function() {
-      return (this.mode & writeMode) === writeMode;
-    },
-    set: function(val) {
-      val ? (this.mode |= writeMode) : (this.mode &= ~writeMode);
-    }
-  },
-  isFolder: {
-    get: function() {
-      return FS.isDir(this.mode);
-    }
-  },
-  isDevice: {
-    get: function() {
-      return FS.isChrdev(this.mode);
-    }
-  }
-});
-FS.FSNode = FSNode;
-FS.staticInit();
-if (ENVIRONMENT_IS_NODE) {
-  var fs = frozenFs;
-  var NODEJS_PATH = __webpack_require__(622);
-  NODEFS.staticInit();
-}
-if (ENVIRONMENT_IS_NODE) {
-  var _wrapNodeError = function(func) {
-    return function() {
-      try {
-        return func.apply(this, arguments);
-      } catch (e) {
-        if (!e.code) throw e;
-        throw new FS.ErrnoError(ERRNO_CODES[e.code]);
-      }
-    };
-  };
-  var VFS = Object.assign({}, FS);
-  for (var _key in NODERAWFS) FS[_key] = _wrapNodeError(NODERAWFS[_key]);
-} else {
-  throw new Error(
-    "NODERAWFS is currently only supported on Node.js environment."
-  );
-}
-function intArrayFromString(stringy, dontAddNull, length) {
-  var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
-  var u8array = new Array(len);
-  var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
-  if (dontAddNull) u8array.length = numBytesWritten;
-  return u8array;
-}
-var decodeBase64 =
-  typeof atob === "function"
-    ? atob
-    : function(input) {
-        var keyStr =
-          "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-        var output = "";
-        var chr1, chr2, chr3;
-        var enc1, enc2, enc3, enc4;
-        var i = 0;
-        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
-        do {
-          enc1 = keyStr.indexOf(input.charAt(i++));
-          enc2 = keyStr.indexOf(input.charAt(i++));
-          enc3 = keyStr.indexOf(input.charAt(i++));
-          enc4 = keyStr.indexOf(input.charAt(i++));
-          chr1 = (enc1 << 2) | (enc2 >> 4);
-          chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
-          chr3 = ((enc3 & 3) << 6) | enc4;
-          output = output + String.fromCharCode(chr1);
-          if (enc3 !== 64) {
-            output = output + String.fromCharCode(chr2);
-          }
-          if (enc4 !== 64) {
-            output = output + String.fromCharCode(chr3);
-          }
-        } while (i < input.length);
-        return output;
-      };
-function intArrayFromBase64(s) {
-  if (typeof ENVIRONMENT_IS_NODE === "boolean" && ENVIRONMENT_IS_NODE) {
-    var buf;
-    try {
-      buf = Buffer.from(s, "base64");
-    } catch (_) {
-      buf = new Buffer(s, "base64");
-    }
-    return new Uint8Array(buf["buffer"], buf["byteOffset"], buf["byteLength"]);
-  }
-  try {
-    var decoded = decodeBase64(s);
-    var bytes = new Uint8Array(decoded.length);
-    for (var i = 0; i < decoded.length; ++i) {
-      bytes[i] = decoded.charCodeAt(i);
-    }
-    return bytes;
-  } catch (_) {
-    throw new Error("Converting base64 string to bytes failed.");
-  }
-}
-function tryParseAsDataURI(filename) {
-  if (!isDataURI(filename)) {
-    return;
-  }
-  return intArrayFromBase64(filename.slice(dataURIPrefix.length));
-}
-var asmLibraryArg = {
-  p: ___sys_chmod,
-  e: ___sys_fcntl64,
-  j: ___sys_fstat64,
-  o: ___sys_ioctl,
-  r: ___sys_open,
-  q: ___sys_read,
-  h: ___sys_rename,
-  s: ___sys_rmdir,
-  c: ___sys_stat64,
-  g: ___sys_unlink,
-  t: _emscripten_memcpy_big,
-  u: _emscripten_resize_heap,
-  f: _fd_close,
-  i: _fd_fdstat_get,
-  n: _fd_read,
-  l: _fd_seek,
-  d: _fd_write,
-  k: _gmtime,
-  memory: wasmMemory,
-  a: _setTempRet0,
-  table: wasmTable,
-  b: _time,
-  m: _timegm
-};
-var asm = createWasm();
-var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = asm["v"]);
-var _zipstruct_stat = (Module["_zipstruct_stat"] = asm["w"]);
-var _zipstruct_statS = (Module["_zipstruct_statS"] = asm["x"]);
-var _zipstruct_stat_name = (Module["_zipstruct_stat_name"] = asm["y"]);
-var _zipstruct_stat_index = (Module["_zipstruct_stat_index"] = asm["z"]);
-var _zipstruct_stat_size = (Module["_zipstruct_stat_size"] = asm["A"]);
-var _zipstruct_stat_mtime = (Module["_zipstruct_stat_mtime"] = asm["B"]);
-var _zipstruct_error = (Module["_zipstruct_error"] = asm["C"]);
-var _zipstruct_errorS = (Module["_zipstruct_errorS"] = asm["D"]);
-var _zip_close = (Module["_zip_close"] = asm["E"]);
-var _zip_dir_add = (Module["_zip_dir_add"] = asm["F"]);
-var _zip_discard = (Module["_zip_discard"] = asm["G"]);
-var _zip_error_init_with_code = (Module["_zip_error_init_with_code"] =
-  asm["H"]);
-var _zip_get_error = (Module["_zip_get_error"] = asm["I"]);
-var _zip_file_get_error = (Module["_zip_file_get_error"] = asm["J"]);
-var _zip_error_strerror = (Module["_zip_error_strerror"] = asm["K"]);
-var _zip_fclose = (Module["_zip_fclose"] = asm["L"]);
-var _zip_file_add = (Module["_zip_file_add"] = asm["M"]);
-var _zip_file_get_external_attributes = (Module[
-  "_zip_file_get_external_attributes"
-] = asm["N"]);
-var _zip_file_set_external_attributes = (Module[
-  "_zip_file_set_external_attributes"
-] = asm["O"]);
-var _zip_file_set_mtime = (Module["_zip_file_set_mtime"] = asm["P"]);
-var _zip_fopen = (Module["_zip_fopen"] = asm["Q"]);
-var _zip_fopen_index = (Module["_zip_fopen_index"] = asm["R"]);
-var _zip_fread = (Module["_zip_fread"] = asm["S"]);
-var _zip_get_name = (Module["_zip_get_name"] = asm["T"]);
-var _zip_get_num_entries = (Module["_zip_get_num_entries"] = asm["U"]);
-var _zip_name_locate = (Module["_zip_name_locate"] = asm["V"]);
-var _zip_open = (Module["_zip_open"] = asm["W"]);
-var _zip_open_from_source = (Module["_zip_open_from_source"] = asm["X"]);
-var _zip_set_file_compression = (Module["_zip_set_file_compression"] =
-  asm["Y"]);
-var _zip_source_buffer = (Module["_zip_source_buffer"] = asm["Z"]);
-var _zip_source_buffer_create = (Module["_zip_source_buffer_create"] =
-  asm["_"]);
-var _zip_source_close = (Module["_zip_source_close"] = asm["$"]);
-var _zip_source_error = (Module["_zip_source_error"] = asm["aa"]);
-var _zip_source_free = (Module["_zip_source_free"] = asm["ba"]);
-var _zip_source_keep = (Module["_zip_source_keep"] = asm["ca"]);
-var _zip_source_open = (Module["_zip_source_open"] = asm["da"]);
-var _zip_source_read = (Module["_zip_source_read"] = asm["ea"]);
-var _zip_source_seek = (Module["_zip_source_seek"] = asm["fa"]);
-var _zip_source_set_mtime = (Module["_zip_source_set_mtime"] = asm["ga"]);
-var _zip_source_tell = (Module["_zip_source_tell"] = asm["ha"]);
-var _zip_stat = (Module["_zip_stat"] = asm["ia"]);
-var _zip_stat_index = (Module["_zip_stat_index"] = asm["ja"]);
-var _zip_ext_count_symlinks = (Module["_zip_ext_count_symlinks"] = asm["ka"]);
-var ___errno_location = (Module["___errno_location"] = asm["la"]);
-var __get_tzname = (Module["__get_tzname"] = asm["ma"]);
-var __get_daylight = (Module["__get_daylight"] = asm["na"]);
-var __get_timezone = (Module["__get_timezone"] = asm["oa"]);
-var stackSave = (Module["stackSave"] = asm["pa"]);
-var stackRestore = (Module["stackRestore"] = asm["qa"]);
-var stackAlloc = (Module["stackAlloc"] = asm["ra"]);
-var _malloc = (Module["_malloc"] = asm["sa"]);
-var _free = (Module["_free"] = asm["ta"]);
-var dynCall_vi = (Module["dynCall_vi"] = asm["ua"]);
-Module["cwrap"] = cwrap;
-Module["getValue"] = getValue;
-var calledRun;
-function ExitStatus(status) {
-  this.name = "ExitStatus";
-  this.message = "Program terminated with exit(" + status + ")";
-  this.status = status;
-}
-dependenciesFulfilled = function runCaller() {
-  if (!calledRun) run();
-  if (!calledRun) dependenciesFulfilled = runCaller;
-};
-function run(args) {
-  args = args || arguments_;
-  if (runDependencies > 0) {
-    return;
-  }
-  preRun();
-  if (runDependencies > 0) return;
-  function doRun() {
-    if (calledRun) return;
-    calledRun = true;
-    Module["calledRun"] = true;
-    if (ABORT) return;
-    initRuntime();
-    preMain();
-    if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"]();
-    postRun();
-  }
-  if (Module["setStatus"]) {
-    Module["setStatus"]("Running...");
-    setTimeout(function() {
-      setTimeout(function() {
-        Module["setStatus"]("");
-      }, 1);
-      doRun();
-    }, 1);
-  } else {
-    doRun();
-  }
-}
-Module["run"] = run;
-if (Module["preInit"]) {
-  if (typeof Module["preInit"] == "function")
-    Module["preInit"] = [Module["preInit"]];
-  while (Module["preInit"].length > 0) {
-    Module["preInit"].pop()();
-  }
-}
-noExitRuntime = true;
-run();
-
-
-/***/ }),
-
-/***/ 417:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("crypto");
-
-/***/ }),
-
-/***/ 747:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("fs");
-
-/***/ }),
-
-/***/ 282:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("module");
-
-/***/ }),
-
-/***/ 87:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("os");
-
-/***/ }),
-
-/***/ 622:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("path");
-
-/***/ }),
-
-/***/ 413:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("stream");
-
-/***/ }),
-
-/***/ 304:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("string_decoder");
-
-/***/ }),
-
-/***/ 835:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("url");
-
-/***/ }),
-
-/***/ 669:
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("util");
-
-/***/ })
-
-/******/ 	});
-/************************************************************************/
-/******/ 	// The module cache
-/******/ 	var __webpack_module_cache__ = {};
-/******/ 	
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/ 		// Check if module is in cache
-/******/ 		if(__webpack_module_cache__[moduleId]) {
-/******/ 			return __webpack_module_cache__[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = __webpack_module_cache__[moduleId] = {
-/******/ 			// no module.id needed
-/******/ 			// no module.loaded needed
-/******/ 			exports: {}
-/******/ 		};
-/******/ 	
-/******/ 		// Execute the module function
-/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
-/******/ 	
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/ 	
-/************************************************************************/
-/******/ 	/* webpack/runtime/compat get default export */
-/******/ 	(() => {
-/******/ 		// getDefaultExport function for compatibility with non-harmony modules
-/******/ 		__webpack_require__.n = (module) => {
-/******/ 			var getter = module && module.__esModule ?
-/******/ 				() => module['default'] :
-/******/ 				() => module;
-/******/ 			__webpack_require__.d(getter, { a: getter });
-/******/ 			return getter;
-/******/ 		};
-/******/ 	})();
-/******/ 	
-/******/ 	/* webpack/runtime/define property getters */
-/******/ 	(() => {
-/******/ 		// define getter functions for harmony exports
-/******/ 		__webpack_require__.d = (exports, definition) => {
-/******/ 			for(var key in definition) {
-/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
-/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
-/******/ 				}
-/******/ 			}
-/******/ 		};
-/******/ 	})();
-/******/ 	
-/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
-/******/ 	(() => {
-/******/ 		__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
-/******/ 	})();
-/******/ 	
-/************************************************************************/
-/******/ 	// module exports must be returned from runtime so entry inlining is disabled
-/******/ 	// startup
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(936);
-/******/ })()
-.default;
-});
\ No newline at end of file
diff --git a/Timeline/ClientApp/.vscode/extensions.json b/Timeline/ClientApp/.vscode/extensions.json
deleted file mode 100644
index be640996..00000000
--- a/Timeline/ClientApp/.vscode/extensions.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "recommendations": [
-    "dbaeumer.vscode-eslint",
-    "esbenp.prettier-vscode",
-    "arcanis.vscode-zipfs",
-    "syler.sass-indented",
-    "editorconfig.editorconfig"
-  ]
-}
diff --git a/Timeline/ClientApp/.vscode/preview.yml b/Timeline/ClientApp/.vscode/preview.yml
deleted file mode 100644
index eb5e452c..00000000
--- a/Timeline/ClientApp/.vscode/preview.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# .vscode/preview.yml
-autoOpen: false # 打开工作空间时是否自动开启所有应用的预览
-apps:
-  - port: 3000 # 应用的端口
-    run: yarn start:mock # 应用的启动命令
-    root: . # 应用的启动目录
-    name: timeline # 应用名称
-    description: Timeline App # 应用描述
-    autoOpen: false # 打开工作空间时是否自动开启预览（优先级高于根级 autoOpen）
diff --git a/Timeline/ClientApp/.vscode/settings.json b/Timeline/ClientApp/.vscode/settings.json
deleted file mode 100644
index 3db658ba..00000000
--- a/Timeline/ClientApp/.vscode/settings.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "eslint.nodePath": ".yarn/sdks",
-  "prettier.prettierPath": ".yarn/sdks/prettier/index.js",
-  "typescript.tsdk": ".yarn/sdks/typescript/lib",
-  "typescript.enablePromptUseWorkspaceTsdk": true
-}
diff --git a/Timeline/ClientApp/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs b/Timeline/ClientApp/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
deleted file mode 100644
index 3e64b4b3..00000000
--- a/Timeline/ClientApp/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
+++ /dev/null
@@ -1,38 +0,0 @@
-/* eslint-disable */
-module.exports = {
-name: "@yarnpkg/plugin-interactive-tools",
-factory: function (require) {
-var plugin;plugin=(()=>{var __webpack_modules__={120:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>H});function r(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}var i,o=n(2594),u=n(966),a=n(4930),l=n(7382),s=n.n(l);!function(e){e.BEFORE="before",e.AFTER="after"}(i||(i={}));const c=function(e,t,{active:n,minus:r,plus:i,set:o,loop:u=!0}){const{stdin:s}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!n)return;const a=(n,a)=>{const l=t.indexOf(e);switch(a.name){case r:{const e=l-1;if(u)return void o(t[(t.length+e)%t.length]);if(e<0)return;o(t[e])}break;case i:{const e=l+1;if(u)return void o(t[e%t.length]);if(e>=t.length)return;o(t[e])}}};return s.on("keypress",a),()=>{s.off("keypress",a)}},[t,e,n])},f=({active:e=!0,children:t=[],radius:n=10,size:r=1,loop:o=!0,onFocusRequest:u,willReachEnd:f})=>{const d=s().Children.map(t,e=>(e=>{if(null===e.key)throw new Error("Expected all children to have a key");return e.key})(e)),p=d[0],[h,m]=(0,l.useState)(p),v=d.indexOf(h);(0,l.useEffect)(()=>{d.includes(h)||m(p)},[t]),(0,l.useEffect)(()=>{f&&v>=d.length-2&&f()},[v]),function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e||void 0===t)return;const r=(e,n)=>{"tab"===n.name&&(n.shift?t(i.BEFORE):t(i.AFTER))};return n.on("keypress",r),()=>{n.off("keypress",r)}},[e,t])}({active:e,handler:u}),c(h,d,{active:e,minus:"up",plus:"down",set:m,loop:o});let b=v-n,g=v+n;g>d.length&&(b-=g-d.length,g=d.length),b<0&&(g+=-b,b=0),g>=d.length&&(g=d.length-1);const _=[];for(let n=b;n<=g;++n){const i=d[n],o=e&&i===h;_.push(s().createElement(a.Box,{key:i,height:r},s().createElement(a.Box,{marginLeft:1,marginRight:1},o?s().createElement(a.Color,{cyan:!0,bold:!0},">"):" "),s().createElement(a.Box,null,s().cloneElement(t[n],{active:o}))))}return s().createElement(a.Box,{flexDirection:"column",width:"100%"},_)},d=s().createContext(null),p=function({children:e}){const{setRawMode:t}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{t&&t(!0)},[]);const[n,r]=(0,l.useState)(new Map),i=(0,l.useMemo)(()=>({getAll:()=>n,get:e=>n.get(e),set:(e,t)=>r(new Map([...n,[e,t]]))}),[n,r]);return s().createElement(d.Provider,{value:i,children:e})};function h(e,t){const n=(0,l.useContext)(d);if(null===n)throw new Error("Expected this hook to run with a ministore context attached");if(void 0===e)return n.getAll();const r=(0,l.useCallback)(t=>{n.set(e,t)},[e,n.set]);let i=n.get(e);return void 0===i&&(i=t),[i,r]}async function m(e,t){let n;const{waitUntilExit:r}=(0,a.render)(s().createElement(p,null,s().createElement(e,Object.assign({},t,{useSubmit:e=>{const{exit:t}=(0,l.useContext)(a.AppContext),{stdin:r}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{const i=(r,i)=>{"return"===i.name&&(n=e,t())};return r.on("keypress",i),()=>{r.off("keypress",i)}},[r,t,e])}}))));return await r(),n}var v=n(8042),b=n(9645),g=n(4410);const _={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},y=n.n(g)()(_.appId,_.apiKey).initIndex(_.indexName),D=async(e,t=0)=>await y.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10}),w=["regular","dev","peer"];class E extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),t=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:48},s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<up>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<down>")," to move between packages."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<space>")," to select a package."),s().createElement(a.Box,null,"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<space>")," again to change the target.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<enter>")," to install the selected packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<ctrl+c>")," to abort."))),n=()=>s().createElement(s().Fragment,null,s().createElement(a.Box,{width:15},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Owner")),s().createElement(a.Box,{width:11},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Version")),s().createElement(a.Box,{width:10},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Downloads"))),r=()=>s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Target")),i=({hit:t,active:n})=>{const[r,i]=h(t.name,null);!function({active:e,handler:t}){const{stdin:n}=(0,l.useContext)(a.StdinContext);(0,l.useEffect)(()=>{if(!e)return;const r=(e,n)=>{"space"===n.name&&t()};return n.on("keypress",r),()=>{n.off("keypress",r)}},[t])}({active:n,handler:()=>{if(!r)return void i(w[0]);const e=w.indexOf(r)+1;e===w.length?i(null):i(w[e])}});const o=u.structUtils.parseIdent(t.name),c=u.structUtils.prettyIdent(e,o);return s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},c)),s().createElement(a.Box,{width:14,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{bold:!0},t.owner.name)),s().createElement(a.Box,{width:10,textWrap:"truncate",marginLeft:1},s().createElement(a.Text,{italic:!0},t.version)),s().createElement(a.Box,{width:16,textWrap:"truncate",marginLeft:1},t.humanDownloadsLast30Days))},o=({name:t,active:n})=>{const[r]=h(t,null),i=u.structUtils.parseIdent(t);return s().createElement(a.Box,null,s().createElement(a.Box,{width:47},s().createElement(a.Text,{bold:!0}," - ",u.structUtils.prettyIdent(e,i))),w.map(e=>s().createElement(a.Box,{key:e,width:14,marginLeft:1},r===e?s().createElement(a.Color,{green:!0}," ◉ "):s().createElement(a.Color,{yellow:!0}," ◯ "),s().createElement(a.Text,{bold:!0},e))))},c=()=>s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,null,"Powered by Algolia.")),d=await m(({useSubmit:e})=>{const u=h();e(u);const d=Array.from(u.keys()).filter(e=>null!==u.get(e)),[p,m]=(0,l.useState)(""),[v,g]=(0,l.useState)(0),[_,y]=(0,l.useState)([]);(0,l.useEffect)(()=>{p?(async()=>{g(0);const e=await D(p);e.query===p&&y(e.hits)})():y([])},[p]);const w=b.ZP;return s().createElement(a.Box,{flexDirection:"column"},s().createElement(t,null),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Text,{bold:!0},"Search: "),s().createElement(a.Box,{width:41},s().createElement(w,{value:p,onChange:e=>{e.match(/\t| /)||m(e)},placeholder:"i.e. babel, webpack, react...",showCursor:!1})),s().createElement(n,null)),_.length?s().createElement(f,{radius:2,loop:!1,children:_.map(e=>s().createElement(i,{key:e.name,hit:e,active:!1})),willReachEnd:async()=>{const e=await D(p,v+1);e.query===p&&e.page-1===v&&(g(e.page),y([..._,...e.hits]))}}):s().createElement(a.Color,{gray:!0},"Start typing..."),s().createElement(a.Box,{flexDirection:"row",marginTop:1},s().createElement(a.Box,{width:49},s().createElement(a.Text,{bold:!0},"Selected:")),s().createElement(r,null)),d.length?d.map(e=>s().createElement(o,{key:e,name:e,active:!1})):s().createElement(a.Color,{gray:!0},"No selected packages..."),s().createElement(c,null))},{});if(void 0===d)return 1;const p=Array.from(d.keys()).filter(e=>"regular"===d.get(e)),v=Array.from(d.keys()).filter(e=>"dev"===d.get(e)),g=Array.from(d.keys()).filter(e=>"peer"===d.get(e));return p.length&&await this.cli.run(["add",...p]),v.length&&await this.cli.run(["add","--dev",...v]),g&&await this.cli.run(["add","--peer",...g]),0}}E.usage=v.Command.Usage({category:"Interactive commands",description:"open the search interface",details:"\n    This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.\n    ",examples:[["Open the search window","yarn search"]]}),r([v.Command.Path("search")],E.prototype,"execute",null);const C=function({active:e,options:t,value:n,onChange:r,sizes:i=[]}){const o=t.map(({value:e})=>e),u=o.indexOf(n);return c(n,o,{active:e,minus:"left",plus:"right",set:r}),s().createElement(s().Fragment,null,t.map(({label:e},t)=>t===u?s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{green:!0}," ◉ ")," ",s().createElement(a.Text,{bold:!0},e)):s().createElement(a.Box,{key:e,width:i[t]-1||0,marginLeft:1,textWrap:"truncate"},s().createElement(a.Color,{yellow:!0}," ◯ ")," ",s().createElement(a.Text,{bold:!0},e))))};var T=n(4850);function k(){}function S(e,t,n,r,i){for(var o=0,u=t.length,a=0,l=0;o<u;o++){var s=t[o];if(s.removed){if(s.value=e.join(r.slice(l,l+s.count)),l+=s.count,o&&t[o-1].added){var c=t[o-1];t[o-1]=t[o],t[o]=c}}else{if(!s.added&&i){var f=n.slice(a,a+s.count);f=f.map((function(e,t){var n=r[l+t];return n.length>e.length?n:e})),s.value=e.join(f)}else s.value=e.join(n.slice(a,a+s.count));a+=s.count,s.added||(l+=s.count)}}var d=t[u-1];return u>1&&"string"==typeof d.value&&(d.added||d.removed)&&e.equals("",d.value)&&(t[u-2].value+=d.value,t.pop()),t}function M(e){return{newPos:e.newPos,components:e.components.slice(0)}}k.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var i=this;function o(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var u=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,l=1,s=u+a,c=[{newPos:-1,components:[]}],f=this.extractCommon(c[0],t,e,0);if(c[0].newPos+1>=u&&f+1>=a)return o([{value:this.join(t),count:t.length}]);function d(){for(var n=-1*l;n<=l;n+=2){var r=void 0,s=c[n-1],f=c[n+1],d=(f?f.newPos:0)-n;s&&(c[n-1]=void 0);var p=s&&s.newPos+1<u,h=f&&0<=d&&d<a;if(p||h){if(!p||h&&s.newPos<f.newPos?(r=M(f),i.pushComponent(r.components,void 0,!0)):((r=s).newPos++,i.pushComponent(r.components,!0,void 0)),d=i.extractCommon(r,t,e,n),r.newPos+1>=u&&d+1>=a)return o(S(i,r.components,t,e,i.useLongestToken));c[n]=r}else c[n]=void 0}l++}if(r)!function e(){setTimeout((function(){if(l>s)return r();d()||e()}),0)}();else for(;l<=s;){var p=d();if(p)return p}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var i=t.length,o=n.length,u=e.newPos,a=u-r,l=0;u+1<i&&a+1<o&&this.equals(t[u+1],n[a+1]);)u++,a++,l++;return l&&e.components.push({count:l}),e.newPos=u,a},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};new k;function x(e,t){if("function"==typeof e)t.callback=e;else if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var A=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,P=/\S/,O=new k;O.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!P.test(e)&&!P.test(t)},O.tokenize=function(e){for(var t=e.split(/(\s+|[()[\]{}'"]|\b)/),n=0;n<t.length-1;n++)!t[n+1]&&t[n+2]&&A.test(t[n])&&A.test(t[n+2])&&(t[n]+=t[n+2],t.splice(n+1,2),n--);return t};var R=new k;R.tokenize=function(e){var t=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var N=new k;N.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var I=new k;function F(e){return(F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}I.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var B=Object.prototype.toString,L=new k;L.useLongestToken=!0,L.tokenize=R.tokenize,L.castInput=function(e){var t=this.options,n=t.undefinedReplacement,r=t.stringifyReplacer,i=void 0===r?function(e,t){return void 0===t?n:t}:r;return"string"==typeof e?e:JSON.stringify(function e(t,n,r,i,o){n=n||[],r=r||[],i&&(t=i(o,t));var u,a;for(u=0;u<n.length;u+=1)if(n[u]===t)return r[u];if("[object Array]"===B.call(t)){for(n.push(t),a=new Array(t.length),r.push(a),u=0;u<t.length;u+=1)a[u]=e(t[u],n,r,i,o);return n.pop(),r.pop(),a}t&&t.toJSON&&(t=t.toJSON());if("object"===F(t)&&null!==t){n.push(t),a={},r.push(a);var l,s=[];for(l in t)t.hasOwnProperty(l)&&s.push(l);for(s.sort(),u=0;u<s.length;u+=1)l=s[u],a[l]=e(t[l],n,r,i,l);n.pop(),r.pop()}else a=t;return a}(e,null,null,i),i,"  ")},L.equals=function(e,t){return k.prototype.equals.call(L,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))};var U=new k;U.tokenize=function(e){return e.slice()},U.join=U.removeEmpty=function(e){return e};var j=n(9513),W=n.n(j);const z=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;class q extends o.BaseCommand{async execute(){const e=await u.Configuration.find(this.context.cwd,this.context.plugins),{project:t,workspace:n}=await u.Project.find(e,this.context.cwd),r=await u.Cache.find(e);if(!n)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=(t,n)=>{const r=(i=t,o=n,u=x(u,{ignoreWhitespace:!0}),O.diff(i,o,u));var i,o,u;let a="";for(const t of r)t.added?a+=e.format(t.value,"green"):t.removed||(a+=t.value);return a},c=(t,n)=>{if(t===n)return n;const r=u.structUtils.parseRange(t),o=u.structUtils.parseRange(n),a=r.selector.match(z),l=o.selector.match(z);if(!a||!l)return i(t,n);const s=["gray","red","yellow","green","magenta"];let c=null,f="";for(let t=1;t<s.length;++t)null!==c||a[t]!==l[t]?(null===c&&(c=s[t-1]),f+=e.format(l[t],c)):f+=l[t];return f},d=async(e,n,i)=>{const o=await T.suggestUtils.fetchDescriptorFrom(e,i,{project:t,cache:r,preserveModifier:n});return null!==o?o.range:e.range},p=()=>s().createElement(a.Box,{flexDirection:"row"},s().createElement(a.Box,{flexDirection:"column",width:49},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<up>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<down>")," to select packages."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<left>"),"/",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<right>")," to select versions.")),s().createElement(a.Box,{flexDirection:"column"},s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<enter>")," to install."),s().createElement(a.Box,{marginLeft:1},"Press ",s().createElement(a.Color,{bold:!0,cyanBright:!0},"<ctrl+c>")," to abort."))),v=()=>s().createElement(a.Box,{flexDirection:"row",paddingTop:1,paddingBottom:1},s().createElement(a.Box,{width:50},s().createElement(a.Text,{bold:!0},s().createElement(a.Color,{greenBright:!0},"?")," Pick the packages you want to upgrade.")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Current")),s().createElement(a.Box,{width:17},s().createElement(a.Color,{bold:!0,underline:!0,gray:!0},"Range/Latest"))),b=({active:t,descriptor:n})=>{const[r,i]=h(n.descriptorHash,null),[o,f]=(0,l.useState)(null),p=(0,l.useRef)(!0);return(0,l.useEffect)(()=>()=>{p.current=!1},[]),(0,l.useEffect)(()=>{(async e=>{const t=W().valid(e.range)?"^"+e.range:e.range,[n,r]=await Promise.all([d(e,e.range,t),d(e,e.range,"latest")]),i=[{value:null,label:e.range}];return n!==e.range&&i.push({value:n,label:c(e.range,n)}),r!==n&&r!==e.range&&i.push({value:r,label:c(e.range,r)}),i})(n).then(e=>{p.current&&f(e)})},[n.descriptorHash]),s().createElement(a.Box,null,s().createElement(a.Box,{width:45,textWrap:"wrap"},s().createElement(a.Text,{bold:!0},u.structUtils.prettyIdent(e,n))),null!==o?s().createElement(C,{active:t,options:o,value:r,onChange:i,sizes:[17,17,17]}):s().createElement(a.Box,{marginLeft:2},s().createElement(a.Color,{gray:!0},"Fetching suggestions...")))},g=await m(({useSubmit:e})=>{e(h());const n=new Map;for(const e of t.workspaces)for(const r of["dependencies","devDependencies"])for(const i of e.manifest[r].values())null===t.tryWorkspaceByDescriptor(i)&&n.set(i.descriptorHash,i);const r=u.miscUtils.sortMap(n.values(),e=>u.structUtils.stringifyDescriptor(e));return s().createElement(s().Fragment,null,s().createElement(a.Box,{flexDirection:"column"},s().createElement(p,null),s().createElement(v,null),s().createElement(f,{radius:10,children:r.map(e=>s().createElement(b,{key:e.descriptorHash,active:!1,descriptor:e}))})))},{});if(void 0===g)return 1;let _=!1;for(const e of t.workspaces)for(const t of["dependencies","devDependencies"]){const n=e.manifest[t];for(const e of n.values()){const t=g.get(e.descriptorHash);null!=t&&(n.set(e.identHash,u.structUtils.makeDescriptor(e,t)),_=!0)}}if(!_)return 0;return(await u.StreamReport.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:r,report:e})})).exitCode()}}q.usage=v.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n      This command opens a fullscreen terminal interface where you can see the packages used by your application, their status compared to the latest versions available on the remote registry, and let you upgrade.\n    ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]}),r([v.Command.Path("upgrade-interactive")],q.prototype,"execute",null);const H={commands:[E,q]}},9645:(e,t,n)=>{"use strict";t.ZP=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var o=r?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(7382)),i=a(n(6271)),o=n(4930),u=a(n(5882));function a(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class f extends r.PureComponent{constructor(...e){super(...e),c(this,"state",{cursorOffset:(this.props.value||"").length,cursorWidth:0}),c(this,"isMounted",!1),c(this,"handleInput",e=>{const{value:t,focus:n,showCursor:r,mask:i,onChange:o,onSubmit:u}=this.props,{cursorOffset:a}=this.state;if(!1===n||!1===this.isMounted)return;const l=String(e);if("[A"===l||"[B"===l||""===l)return;if("\r"===l)return void(u&&u(t));let s=a,c=t,f=0;"[D"===l?r&&!i&&s--:"[C"===l?r&&!i&&s++:"\b"===l||""===l?(c=c.slice(0,s-1)+c.slice(s,c.length),s--):(c=c.slice(0,s)+l+c.slice(s,c.length),s+=l.length,l.length>1&&(f=l.length)),s<0&&(s=0),s>c.length&&(s=c.length),this.setState({cursorOffset:s,cursorWidth:f}),c!==t&&o(c)})}render(){const{value:e,placeholder:t,showCursor:n,focus:i,mask:a,highlightPastedText:l}=this.props,{cursorOffset:s,cursorWidth:c}=this.state,f=e.length>0;let d=e;const p=l?c:0;if(n&&!a&&i){d=e.length>0?"":u.default.inverse(" ");let t=0;for(const n of e)d+=t>=s-p&&t<=s?u.default.inverse(n):n,t++;e.length>0&&s===e.length&&(d+=u.default.inverse(" "))}return a&&(d=a.repeat(d.length)),r.default.createElement(o.Color,{dim:!f&&t},t?f?d:t:d)}componentDidMount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!0,t(!0),e.on("data",this.handleInput)}componentWillUnmount(){const{stdin:e,setRawMode:t}=this.props;this.isMounted=!1,e.removeListener("data",this.handleInput),t(!1)}}c(f,"propTypes",{value:i.default.string.isRequired,placeholder:i.default.string,focus:i.default.bool,mask:i.default.string,highlightPastedText:i.default.bool,showCursor:i.default.bool,stdin:i.default.object.isRequired,setRawMode:i.default.func.isRequired,onChange:i.default.func.isRequired,onSubmit:i.default.func}),c(f,"defaultProps",{placeholder:"",showCursor:!0,focus:!0,mask:void 0,highlightPastedText:!1,onSubmit:void 0});class d extends r.PureComponent{render(){return r.default.createElement(o.StdinContext.Consumer,null,({stdin:e,setRawMode:t})=>r.default.createElement(f,s({},this.props,{stdin:e,setRawMode:t})))}}t.ZP=d;class p extends r.PureComponent{constructor(...e){super(...e),c(this,"state",{value:""}),c(this,"setValue",this.setValue.bind(this))}setValue(e){this.setState({value:e})}render(){return r.default.createElement(d,s({},this.props,{value:this.state.value,onChange:this.setValue}))}}},9043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(2821))&&r.__esModule?r:{default:r};const o=(e,t)=>({}.hasOwnProperty.call(e,t));t.default=(e,t={})=>{((e,t)=>{t.margin&&(e.setMargin(i.default.EDGE_TOP,t.margin),e.setMargin(i.default.EDGE_BOTTOM,t.margin),e.setMargin(i.default.EDGE_START,t.margin),e.setMargin(i.default.EDGE_END,t.margin)),t.marginX&&(e.setMargin(i.default.EDGE_START,t.marginX),e.setMargin(i.default.EDGE_END,t.marginX)),t.marginY&&(e.setMargin(i.default.EDGE_TOP,t.marginY),e.setMargin(i.default.EDGE_BOTTOM,t.marginY)),t.marginTop&&e.setMargin(i.default.EDGE_TOP,t.marginTop),t.marginBottom&&e.setMargin(i.default.EDGE_BOTTOM,t.marginBottom),t.marginLeft&&e.setMargin(i.default.EDGE_START,t.marginLeft),t.marginRight&&e.setMargin(i.default.EDGE_END,t.marginRight)})(e,t),((e,t)=>{t.padding&&(e.setPadding(i.default.EDGE_TOP,t.padding),e.setPadding(i.default.EDGE_BOTTOM,t.padding),e.setPadding(i.default.EDGE_LEFT,t.padding),e.setPadding(i.default.EDGE_RIGHT,t.padding)),t.paddingX&&(e.setPadding(i.default.EDGE_LEFT,t.paddingX),e.setPadding(i.default.EDGE_RIGHT,t.paddingX)),t.paddingY&&(e.setPadding(i.default.EDGE_TOP,t.paddingY),e.setPadding(i.default.EDGE_BOTTOM,t.paddingY)),t.paddingTop&&e.setPadding(i.default.EDGE_TOP,t.paddingTop),t.paddingBottom&&e.setPadding(i.default.EDGE_BOTTOM,t.paddingBottom),t.paddingLeft&&e.setPadding(i.default.EDGE_LEFT,t.paddingLeft),t.paddingRight&&e.setPadding(i.default.EDGE_RIGHT,t.paddingRight)})(e,t),((e,t)=>{t.flexGrow&&e.setFlexGrow(t.flexGrow),t.flexShrink&&e.setFlexShrink(t.flexShrink),t.flexDirection&&("row"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW),"row-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_ROW_REVERSE),"column"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN),"column-reverse"===t.flexDirection&&e.setFlexDirection(i.default.FLEX_DIRECTION_COLUMN_REVERSE)),o(t,"flexBasis")&&e.setFlexBasis(t.flexBasis),t.alignItems&&("flex-start"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_START),"center"===t.alignItems&&e.setAlignItems(i.default.ALIGN_CENTER),"flex-end"===t.alignItems&&e.setAlignItems(i.default.ALIGN_FLEX_END)),t.justifyContent&&("flex-start"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_START),"center"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_CENTER),"flex-end"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_FLEX_END),"space-between"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_BETWEEN),"space-around"===t.justifyContent&&e.setJustifyContent(i.default.JUSTIFY_SPACE_AROUND))})(e,t),((e,t)=>{o(t,"width")&&e.setWidth(t.width),o(t,"height")&&e.setHeight(t.height),o(t,"minWidth")&&e.setMinWidth(t.minWidth),o(t,"minHeight")&&e.setMinHeight(t.minHeight)})(e,t)}},1:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(2821)),i=u(n(9043)),o=u(n(3425));function u(e){return e&&e.__esModule?e:{default:e}}const a=(e,t)=>{const{config:n,terminalWidth:u,skipStaticElements:l}=t,s=r.default.Node.create(n);e.yogaNode=s;const c=e.style||{};if("ROOT"===e.nodeName){if(s.setWidth(u||100),e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const n=a(r,t).yogaNode;s.insertChild(n,e)}}return e}if((0,i.default)(s,c),e.textContent||e.nodeValue){const{width:t,height:n}=(0,o.default)(e.textContent||e.nodeValue);return s.setWidth(c.width||t),s.setHeight(c.height||n),e}if(Array.isArray(e.childNodes)&&e.childNodes.length>0){const n=e.childNodes.filter(e=>!l||!e.unstable__static);for(const[e,r]of Object.entries(n)){const{yogaNode:n}=a(r,t);s.insertChild(n,e)}}return e};var l=a;t.default=l},1752:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(1058)),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=c(n(6271)),u=c(n(1305)),a=c(n(4974)),l=c(n(7454)),s=c(n(3742));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class d extends i.PureComponent{isRawModeSupported(){return this.props.stdin.isTTY}constructor(){super(),f(this,"handleSetRawMode",e=>{const{stdin:t}=this.props;if(!this.isRawModeSupported())throw t===process.stdin?new Error("Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported"):new Error("Raw mode is not supported on the stdin provided to Ink.\nRead about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported");if(t.setEncoding("utf8"),e)return 0===this.rawModeEnabledCount&&(t.addListener("data",this.handleInput),t.resume(),t.setRawMode(!0),r.default.emitKeypressEvents(t)),void this.rawModeEnabledCount++;0==--this.rawModeEnabledCount&&(t.setRawMode(!1),t.removeListener("data",this.handleInput),t.pause())}),f(this,"handleInput",e=>{""===e&&this.props.exitOnCtrlC&&this.handleExit()}),f(this,"handleExit",e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)}),this.rawModeEnabledCount=0}render(){return i.default.createElement(a.default.Provider,{value:{exit:this.handleExit}},i.default.createElement(l.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported()}},i.default.createElement(s.default.Provider,{value:{stdout:this.props.stdout}},this.props.children)))}componentDidMount(){u.default.hide(this.props.stdout)}componentWillUnmount(){u.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}}t.default=d,f(d,"propTypes",{children:o.default.node.isRequired,stdin:o.default.object.isRequired,stdout:o.default.object.isRequired,exitOnCtrlC:o.default.bool.isRequired,onExit:o.default.func.isRequired})},4974:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({exit(){}});t.default=i},522:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l extends i.PureComponent{constructor(){super(),this.nodeRef=i.default.createRef()}render(){const e=this.props,{children:t,unstable__transformChildren:n}=e,r=u(e,["children","unstable__transformChildren"]);return i.default.createElement("div",{ref:this.nodeRef,style:r,unstable__transformChildren:n},t)}unstable__getComputedWidth(){return this.nodeRef.current.yogaNode.getComputedWidth()}}t.default=l,a(l,"propTypes",{margin:o.default.number,marginX:o.default.number,marginY:o.default.number,marginTop:o.default.number,marginBottom:o.default.number,marginLeft:o.default.number,marginRight:o.default.number,padding:o.default.number,paddingX:o.default.number,paddingY:o.default.number,paddingTop:o.default.number,paddingBottom:o.default.number,paddingLeft:o.default.number,paddingRight:o.default.number,width:o.default.oneOfType([o.default.number,o.default.string]),minWidth:o.default.number,height:o.default.oneOfType([o.default.number,o.default.string]),minHeight:o.default.number,flexGrow:o.default.number,flexShrink:o.default.number,flexDirection:o.default.oneOf(["row","row-reverse","column","column-reverse"]),flexBasis:o.default.oneOfType([o.default.number,o.default.string]),alignItems:o.default.oneOf(["flex-start","center","flex-end"]),justifyContent:o.default.oneOf(["flex-start","center","flex-end","space-between","space-around"]),textWrap:o.default.oneOf(["wrap","truncate","truncate-start","truncate-middle","truncate-end"]),unstable__transformChildren:o.default.func,children:o.default.node}),a(l,"defaultProps",{flexDirection:"row",flexGrow:0,flexShrink:1})},3862:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7382)),i=a(n(6271)),o=a(n(3810)),u=a(n(9244));function a(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}const s=["hex","hsl","hsv","hwb","rgb","keyword","bgHex","bgHsl","bgHsv","bgHwb","bgRgb","bgKeyword"],c=e=>{let{children:t}=e,n=l(e,["children"]);return r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:e=>(Object.keys(n).forEach(t=>{n[t]&&(s.includes(t)?e=u.default[t](...(0,o.default)(n[t]))(e):"function"==typeof u.default[t]&&(e=u.default[t](e)))}),e)},t)};c.propTypes={children:i.default.node.isRequired};var f=c;t.default=f},8075:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}(n(7382)),o=(r=n(6271))&&r.__esModule?r:{default:r};function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=e=>Array.isArray(e)?e:[e];class s extends i.Component{constructor(...e){super(...e),a(this,"state",{lastIndex:null})}render(){const e=this.props,{children:t}=e,n=u(e,["children"]),{lastIndex:r}=this.state;let o=t;return"number"==typeof r&&(o=l(t).slice(r)),i.default.createElement("div",{unstable__static:!0,style:n},o)}componentDidMount(){this.saveLastIndex(this.props.children)}componentDidUpdate(e,t){t.lastIndex===this.state.lastIndex&&this.saveLastIndex(this.props.children)}saveLastIndex(e){const t=l(e).length;this.state.lastIndex!==t&&this.setState({lastIndex:t})}}t.default=s,a(s,"propTypes",{children:o.default.node})},7454:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdin:void 0,setRawMode:void 0});t.default=i},3742:(e,t,n)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=((r=n(7382))&&r.__esModule?r:{default:r}).default.createContext({stdout:void 0});t.default=i},4127:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(7382)),i=u(n(6271)),o=u(n(9244));function u(e){return e&&e.__esModule?e:{default:e}}const a=({bold:e,italic:t,underline:n,strikethrough:i,children:u,unstable__transformChildren:a})=>r.default.createElement("span",{style:{flexDirection:"row"},unstable__transformChildren:r=>(e&&(r=o.default.bold(r)),t&&(r=o.default.italic(r)),n&&(r=o.default.underline(r)),i&&(r=o.default.strikethrough(r)),a&&(r=a(r)),r)},u);a.propTypes={bold:i.default.bool,italic:i.default.bool,underline:i.default.bool,strikethrough:i.default.bool,children:i.default.node.isRequired,unstable__transformChildren:i.default.func},a.defaultProps={bold:!1,italic:!1,underline:!1,strikethrough:!1,unstable__transformChildren:void 0};var l=a;t.default=l},3976:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createTextNode=t.setAttribute=t.removeChildNode=t.insertBeforeNode=t.appendStaticNode=t.appendChildNode=t.createNode=void 0;t.createNode=e=>({nodeName:e.toUpperCase(),style:{},attributes:{},childNodes:[],parentNode:null});t.appendChildNode=(e,t)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e,e.childNodes.push(t)};t.appendStaticNode=(e,t)=>{e.childNodes.push(t)};t.insertBeforeNode=(e,t,r)=>{t.parentNode&&n(t.parentNode,t),t.parentNode=e;const i=e.childNodes.indexOf(r);i>=0?e.childNodes.splice(i,0,t):e.childNodes.push(t)};const n=(e,t)=>{t.parentNode=null;const n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1)};t.removeChildNode=n;t.setAttribute=(e,t,n)=>{e.attributes[t]=n};t.createTextNode=e=>({nodeName:"#text",nodeValue:e})},4431:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.getComputedWidth()-2*e.getComputedPadding()},4930:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"render",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"Box",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"Text",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"Color",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"AppContext",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"StdinContext",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"StdoutContext",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"Static",{enumerable:!0,get:function(){return c.default}});var r=f(n(4763)),i=f(n(522)),o=f(n(4127)),u=f(n(3862)),a=f(n(4974)),l=f(n(7454)),s=f(n(3742)),c=f(n(8075));function f(e){return e&&e.__esModule?e:{default:e}}},7018:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(7382)),i=h(n(4623)),o=h(n(2939)),u=h(n(4046)),a=h(n(2738)),l=h(n(6458)),s=h(n(7190)),c=h(n(9646)),f=n(3976),d=h(n(4455)),p=h(n(1752));function h(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){(0,o.default)(this),this.options=e,this.rootNode=(0,f.createNode)("root"),this.rootNode.onRender=this.onRender,this.renderer=(0,c.default)({terminalWidth:e.stdout.columns}),this.log=u.default.create(e.stdout),this.throttledLog=e.debug?this.log:(0,i.default)(this.log,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=s.default.createContainer(this.rootNode,!1,!1),this.exitPromise=new Promise((e,t)=>{this.resolveExitPromise=e,this.rejectExitPromise=t}),this.unsubscribeExit=(0,l.default)(this.unmount,{alwaysLast:!1})}onRender(){if(this.isUnmounted)return;const{output:e,staticOutput:t}=this.renderer(this.rootNode),n=t&&"\n"!==t;if(this.options.debug)return n&&(this.fullStaticOutput+=t),void this.options.stdout.write(this.fullStaticOutput+e);n&&(a.default||this.log.clear(),this.options.stdout.write(t),a.default||this.log(e)),e!==this.lastOutput&&(a.default||this.throttledLog(e),this.lastOutput=e)}render(e){const t=r.default.createElement(p.default,{stdin:this.options.stdin,stdout:this.options.stdout,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);s.default.updateContainer(t,this.container)}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),a.default?this.options.stdout.write(this.lastOutput+"\n"):this.options.debug||this.log.done(),this.isUnmounted=!0,s.default.updateContainer(null,this.container),d.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise}}},4455:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new WeakMap;t.default=n},3425:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(128))&&r.__esModule?r:{default:r};t.default=e=>({width:(0,i.default)(e),height:e.split("\n").length})},6734:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(2989)),i=o(n(7498));function o(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor({width:e,height:t}){const n=[];for(let r=0;r<t;r++)n.push(" ".repeat(e));this.output=n}write(e,t,n,{transformers:o}){if(!n)return;const u=n.split("\n");let a=0;for(let n of u){const u=(0,r.default)(n),l=this.output[t+a];if(l){for(const e of o)n=e(n);this.output[t+a]=(0,i.default)(l,0,e)+n+(0,i.default)(l,e+u),a++}}}get(){return this.output.map(e=>e.trimRight()).join("\n")}}},7190:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=n(5201),o=(r=n(9437))&&r.__esModule?r:{default:r},u=n(3976);const a={schedulePassiveEffects:i.unstable_scheduleCallback,cancelPassiveEffects:i.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>!0,prepareForCommit:()=>{},resetAfterCommit:e=>{e.onRender()},getChildHostContext:()=>!0,shouldSetTextContent:(e,t)=>"string"==typeof t.children||"number"==typeof t.children,createInstance:(e,t)=>{const n=(0,u.createNode)(e);for(const[r,i]of Object.entries(t))if("children"===r){if("string"==typeof i||"number"==typeof i){if("div"===e){const e=(0,u.createNode)("div");e.textContent=String(i),(0,u.appendChildNode)(n,e)}"span"===e&&(n.textContent=String(i))}}else"style"===r?Object.assign(n.style,i):"unstable__transformChildren"===r?n.unstable__transformChildren=i:"unstable__static"===r?n.unstable__static=!0:(0,u.setAttribute)(n,r,i);return n},createTextInstance:u.createTextNode,resetTextContent:e=>{if(e.textContent&&(e.textContent=""),e.childNodes.length>0)for(const t of e.childNodes)t.yogaNode.free(),(0,u.removeChildNode)(e,t)},getPublicInstance:e=>e,appendInitialChild:u.appendChildNode,appendChild:u.appendChildNode,insertBefore:u.insertBeforeNode,finalizeInitialChildren:()=>{},supportsMutation:!0,appendChildToContainer:u.appendChildNode,insertInContainerBefore:u.insertBeforeNode,removeChildFromContainer:u.removeChildNode,prepareUpdate:()=>!0,commitUpdate:(e,t,n,r,i)=>{for(const[t,r]of Object.entries(i))if("children"===t){if("string"==typeof r||"number"==typeof r){if("div"===n)if(0===e.childNodes.length){const t=(0,u.createNode)("div");t.textContent=String(r),(0,u.appendChildNode)(e,t)}else e.childNodes[0].textContent=String(r);"span"===n&&(e.textContent=String(r))}}else"style"===t?Object.assign(e.style,r):"unstable__transformChildren"===t?e.unstable__transformChildren=r:"unstable__static"===t?e.unstable__static=!0:(0,u.setAttribute)(e,t,r)},commitTextUpdate:(e,t,n)=>{"#text"===e.nodeName?e.nodeValue=n:e.textContent=n},removeChild:u.removeChildNode};var l=(0,o.default)(a);t.default=l},3496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(128)),i=u(n(335)),o=u(n(4431));function u(e){return e&&e.__esModule?e:{default:e}}const a=e=>{if("#text"===e.nodeName)return!0;if("SPAN"===e.nodeName){if(e.textContent)return!0;if(Array.isArray(e.childNodes))return e.childNodes.every(a)}return!1},l=e=>{let t="";for(const n of e.childNodes){let e;"#text"===n.nodeName&&(e=n.nodeValue),"SPAN"===n.nodeName&&(e=n.textContent||l(n)),n.unstable__transformChildren&&(e=n.unstable__transformChildren(e)),t+=e}return t},s=(e,t,{offsetX:n=0,offsetY:u=0,transformers:c=[],skipStaticElements:f})=>{if(e.unstable__static&&f)return;const{yogaNode:d}=e,p=n+d.getComputedLeft(),h=u+d.getComputedTop();let m=c;if(e.unstable__transformChildren&&(m=[e.unstable__transformChildren,...c]),e.textContent){let n=e.textContent;if(e.parentNode.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(e.parentNode.yogaNode);t>u&&(n=(0,i.default)(n,u,{textWrap:e.parentNode.style.textWrap}))}t.write(p,h,n,{transformers:m})}else if("#text"!==e.nodeName){if(Array.isArray(e.childNodes)&&e.childNodes.length>0){if("row"===e.style.flexDirection&&e.childNodes.every(a)){let n=l(e);if(e.style.textWrap){const t=(0,r.default)(n),u=(0,o.default)(d);t>u&&(n=(0,i.default)(n,u,{textWrap:e.style.textWrap}))}return void t.write(p,h,n,{transformers:m})}for(const n of e.childNodes)s(n,t,{offsetX:p,offsetY:h,transformers:m,skipStaticElements:f})}}else t.write(p,h,e.nodeValue,{transformers:m})};var c=s;t.default=c},4763:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(7018)),i=o(n(4455));function o(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=(e,t={})=>{let n;return"function"==typeof t.write&&(t={stdout:t,stdin:process.stdin}),t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){u(e,t,n[t])}))}return e}({stdout:process.stdout,stdin:process.stdin,debug:!1,exitOnCtrlC:!0},t),i.default.has(t.stdout)?n=i.default.get(t.stdout):(n=new r.default(t),i.default.set(t.stdout,n)),n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>i.default.delete(t.stdout)}}},9646:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=f(n(2821)),i=f(n(6734)),o=n(3976),u=f(n(1)),a=f(n(3496)),l=f(n(3425)),s=f(n(335)),c=f(n(4431));function f(e){return e&&e.__esModule?e:{default:e}}const d=e=>{if(e.textContent&&"string"==typeof e.parentNode.style.textWrap){const{yogaNode:t}=e,n=e.parentNode.yogaNode,r=(0,c.default)(n);if(t.getComputedWidth()>r){const{textWrap:n}=e.parentNode.style,i=(0,s.default)(e.textContent,r,{textWrap:n}),{width:o,height:u}=(0,l.default)(i);t.setWidth(o),t.setHeight(u)}}else if(Array.isArray(e.childNodes)&&e.childNodes.length>0)for(const t of e.childNodes)d(t)},p=e=>{const t=[];for(const n of e.childNodes)n.unstable__static&&t.push(n),Array.isArray(n.childNodes)&&n.childNodes.length>0&&t.push(...p(n));return t};t.default=({terminalWidth:e})=>{const t=r.default.Config.create();let n,l;return s=>{n&&n.freeRecursive(),l&&l.freeRecursive();const c=p(s);let f;if(c.length,1===c.length){const n=(0,o.createNode)("root");(0,o.appendStaticNode)(n,c[0]);const{yogaNode:s}=(0,u.default)(n,{config:t,terminalWidth:e,skipStaticElements:!1});s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(n),s.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),l=s,f=new i.default({width:s.getComputedWidth(),height:s.getComputedHeight()}),(0,a.default)(n,f,{skipStaticElements:!1})}const{yogaNode:h}=(0,u.default)(s,{config:t,terminalWidth:e,skipStaticElements:!0});h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),d(s),h.calculateLayout(r.default.UNDEFINED,r.default.UNDEFINED,r.default.DIRECTION_LTR),n=h;const m=new i.default({width:h.getComputedWidth(),height:h.getComputedHeight()});return(0,a.default)(s,m,{skipStaticElements:!0}),{output:m.get(),staticOutput:f?f.get()+"\n":void 0}}}},335:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(5449)),i=o(n(4093));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,{textWrap:n}={})=>{if("wrap"===n)return(0,r.default)(e,t,{trim:!1,hard:!0});if(String(n).startsWith("truncate")){let r;return"truncate"!==n&&"truncate-end"!==n||(r="end"),"truncate-middle"===n&&(r="middle"),"truncate-start"===n&&(r="start"),(0,i.default)(e,t,{position:r})}return e}},5591:(e,t,n)=>{
-/** @license React v0.20.4
- * react-reconciler.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-e.exports=function t(r){"use strict";var i=n(9381),o=n(7382),u=n(5201);function a(e,t,n,r,i,o,u,a){if(!e){if(e=void 0,void 0===t)e=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,o,u,a],s=0;(e=Error(t.replace(/%s/g,(function(){return l[s++]})))).name="Invariant Violation"}throw e.framesToPop=1,e}}function l(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);a(!1,"Minified React error #"+e+"; visit %s for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",n)}var s=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;s.hasOwnProperty("ReactCurrentDispatcher")||(s.ReactCurrentDispatcher={current:null});var c="function"==typeof Symbol&&Symbol.for,f=c?Symbol.for("react.element"):60103,d=c?Symbol.for("react.portal"):60106,p=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,m=c?Symbol.for("react.profiler"):60114,v=c?Symbol.for("react.provider"):60109,b=c?Symbol.for("react.context"):60110,g=c?Symbol.for("react.concurrent_mode"):60111,_=c?Symbol.for("react.forward_ref"):60112,y=c?Symbol.for("react.suspense"):60113,D=c?Symbol.for("react.memo"):60115,w=c?Symbol.for("react.lazy"):60116,E="function"==typeof Symbol&&Symbol.iterator;function C(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=E&&e[E]||e["@@iterator"])?e:null}function T(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"ConcurrentMode";case p:return"Fragment";case d:return"Portal";case m:return"Profiler";case h:return"StrictMode";case y:return"Suspense"}if("object"==typeof e)switch(e.$$typeof){case b:return"Context.Consumer";case v:return"Context.Provider";case _:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case D:return T(e.type);case w:if(e=1===e._status?e._result:null)return T(e)}return null}function k(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function S(e){2!==k(e)&&l("188")}function M(e){var t=e.alternate;if(!t)return 3===(t=k(e))&&l("188"),1===t?null:e;for(var n=e,r=t;;){var i=n.return,o=i?i.alternate:null;if(!i||!o)break;if(i.child===o.child){for(var u=i.child;u;){if(u===n)return S(i),e;if(u===r)return S(i),t;u=u.sibling}l("188")}if(n.return!==r.return)n=i,r=o;else{u=!1;for(var a=i.child;a;){if(a===n){u=!0,n=i,r=o;break}if(a===r){u=!0,r=i,n=o;break}a=a.sibling}if(!u){for(a=o.child;a;){if(a===n){u=!0,n=o,r=i;break}if(a===r){u=!0,r=o,n=i;break}a=a.sibling}u||l("189")}}n.alternate!==r&&l("190")}return 3!==n.tag&&l("188"),n.stateNode.current===n?e:t}function x(e){if(!(e=M(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var A=r.getPublicInstance,P=r.getRootHostContext,O=r.getChildHostContext,R=r.prepareForCommit,N=r.resetAfterCommit,I=r.createInstance,F=r.appendInitialChild,B=r.finalizeInitialChildren,L=r.prepareUpdate,U=r.shouldSetTextContent,j=r.shouldDeprioritizeSubtree,W=r.createTextInstance,z=r.scheduleDeferredCallback,q=r.cancelDeferredCallback,H=r.shouldYield,G=r.setTimeout,V=r.clearTimeout,Y=r.noTimeout,K=r.schedulePassiveEffects,$=r.cancelPassiveEffects,X=r.now,J=r.isPrimaryRenderer,Q=r.supportsMutation,Z=r.supportsPersistence,ee=r.supportsHydration,te=r.appendChild,ne=r.appendChildToContainer,re=r.commitTextUpdate,ie=r.commitMount,oe=r.commitUpdate,ue=r.insertBefore,ae=r.insertInContainerBefore,le=r.removeChild,se=r.removeChildFromContainer,ce=r.resetTextContent,fe=r.hideInstance,de=r.hideTextInstance,pe=r.unhideInstance,he=r.unhideTextInstance,me=r.cloneInstance,ve=r.createContainerChildSet,be=r.appendChildToContainerChildSet,ge=r.finalizeContainerChildren,_e=r.replaceContainerChildren,ye=r.cloneHiddenInstance,De=r.cloneUnhiddenInstance,we=r.createHiddenTextInstance,Ee=r.canHydrateInstance,Ce=r.canHydrateTextInstance,Te=r.getNextHydratableSibling,ke=r.getFirstHydratableChild,Se=r.hydrateInstance,Me=r.hydrateTextInstance,xe=/^(.*)[\\\/]/;function Ae(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,i=e._debugSource,o=T(e.type);n=null,r&&(n=T(r.type)),r=o,o="",i?o=" (at "+i.fileName.replace(xe,"")+":"+i.lineNumber+")":n&&(o=" (created by "+n+")"),n="\n    in "+(r||"Unknown")+o}t+=n,e=e.return}while(e);return t}new Set;var Pe=[],Oe=-1;function Re(e){0>Oe||(e.current=Pe[Oe],Pe[Oe]=null,Oe--)}function Ne(e,t){Oe++,Pe[Oe]=e.current,e.current=t}var Ie={},Fe={current:Ie},Be={current:!1},Le=Ie;function Ue(e,t){var n=e.type.contextTypes;if(!n)return Ie;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function je(e){return null!=(e=e.childContextTypes)}function We(e){Re(Be),Re(Fe)}function ze(e){Re(Be),Re(Fe)}function qe(e,t,n){Fe.current!==Ie&&l("168"),Ne(Fe,t),Ne(Be,n)}function He(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())o in e||l("108",T(t)||"Unknown",o);return i({},n,r)}function Ge(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Ie,Le=Fe.current,Ne(Fe,t),Ne(Be,Be.current),!0}function Ve(e,t,n){var r=e.stateNode;r||l("169"),n?(t=He(e,t,Le),r.__reactInternalMemoizedMergedChildContext=t,Re(Be),Re(Fe),Ne(Fe,t)):Re(Be),Ne(Be,n)}var Ye=null,Ke=null;function $e(e){return function(t){try{return e(t)}catch(e){}}}function Xe(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.contextDependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Je(e,t,n,r){return new Xe(e,t,n,r)}function Qe(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ze(e,t){var n=e.alternate;return null===n?((n=Je(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.contextDependencies=e.contextDependencies,n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function et(e,t,n,r,i,o){var u=2;if(r=e,"function"==typeof e)Qe(e)&&(u=1);else if("string"==typeof e)u=5;else e:switch(e){case p:return tt(n.children,i,o,t);case g:return nt(n,3|i,o,t);case h:return nt(n,2|i,o,t);case m:return(e=Je(12,n,t,4|i)).elementType=m,e.type=m,e.expirationTime=o,e;case y:return(e=Je(13,n,t,i)).elementType=y,e.type=y,e.expirationTime=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case v:u=10;break e;case b:u=9;break e;case _:u=11;break e;case D:u=14;break e;case w:u=16,r=null;break e}l("130",null==e?e:typeof e,"")}return(t=Je(u,n,t,i)).elementType=e,t.type=r,t.expirationTime=o,t}function tt(e,t,n,r){return(e=Je(7,e,r,t)).expirationTime=n,e}function nt(e,t,n,r){return e=Je(8,e,r,t),t=0==(1&t)?h:g,e.elementType=t,e.type=t,e.expirationTime=n,e}function rt(e,t,n){return(e=Je(6,e,null,t)).expirationTime=n,e}function it(e,t,n){return(t=Je(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ot(e,t){e.didError=!1;var n=e.earliestPendingTime;0===n?e.earliestPendingTime=e.latestPendingTime=t:n<t?e.earliestPendingTime=t:e.latestPendingTime>t&&(e.latestPendingTime=t),lt(t,e)}function ut(e,t){e.didError=!1,e.latestPingedTime>=t&&(e.latestPingedTime=0);var n=e.earliestPendingTime,r=e.latestPendingTime;n===t?e.earliestPendingTime=r===t?e.latestPendingTime=0:r:r===t&&(e.latestPendingTime=n),n=e.earliestSuspendedTime,r=e.latestSuspendedTime,0===n?e.earliestSuspendedTime=e.latestSuspendedTime=t:n<t?e.earliestSuspendedTime=t:r>t&&(e.latestSuspendedTime=t),lt(t,e)}function at(e,t){var n=e.earliestPendingTime;return n>t&&(t=n),(e=e.earliestSuspendedTime)>t&&(t=e),t}function lt(e,t){var n=t.earliestSuspendedTime,r=t.latestSuspendedTime,i=t.earliestPendingTime,o=t.latestPingedTime;0===(i=0!==i?i:o)&&(0===e||r<e)&&(i=r),0!==(e=i)&&n>e&&(e=n),t.nextExpirationTimeToWorkOn=i,t.expirationTime=e}function st(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var ct=Object.prototype.hasOwnProperty;function ft(e,t){if(st(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ct.call(t,n[r])||!st(e[n[r]],t[n[r]]))return!1;return!0}function dt(e,t){if(e&&e.defaultProps)for(var n in t=i({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var pt=(new o.Component).refs;function ht(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:i({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var mt={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===k(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=Si(),i=Xn(r=Qr(r,e));i.payload=t,null!=n&&(i.callback=n),Vr(),Qn(e,i),ni(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=Si(),i=Xn(r=Qr(r,e));i.tag=Gn,i.payload=t,null!=n&&(i.callback=n),Vr(),Qn(e,i),ni(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=Si(),r=Xn(n=Qr(n,e));r.tag=Vn,null!=t&&(r.callback=t),Vr(),Qn(e,r),ni(e,n)}};function vt(e,t,n,r,i,o,u){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,u):!t.prototype||!t.prototype.isPureReactComponent||(!ft(n,r)||!ft(i,o))}function bt(e,t,n){var r=!1,i=Ie,o=t.contextType;return"object"==typeof o&&null!==o?o=Hn(o):(i=je(t)?Le:Fe.current,o=(r=null!=(r=t.contextTypes))?Ue(e,i):Ie),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mt,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function gt(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&mt.enqueueReplaceState(t,t.state,null)}function _t(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs=pt;var o=t.contextType;"object"==typeof o&&null!==o?i.context=Hn(o):(o=je(t)?Le:Fe.current,i.context=Ue(e,o)),null!==(o=e.updateQueue)&&(nr(e,o,n,i,r),i.state=e.memoizedState),"function"==typeof(o=t.getDerivedStateFromProps)&&(ht(e,t,o,n),i.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof i.getSnapshotBeforeUpdate||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||(t=i.state,"function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&mt.enqueueReplaceState(i,i.state,null),null!==(o=e.updateQueue)&&(nr(e,o,n,i,r),i.state=e.memoizedState)),"function"==typeof i.componentDidMount&&(e.effectTag|=4)}var yt=Array.isArray;function Dt(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;n&&(1!==n.tag&&l("309"),r=n.stateNode),r||l("147",e);var i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:((t=function(e){var t=r.refs;t===pt&&(t=r.refs={}),null===e?delete t[i]:t[i]=e})._stringRef=i,t)}"string"!=typeof e&&l("284"),n._owner||l("290",e)}return e}function wt(e,t){"textarea"!==e.type&&l("31","[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function Et(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t,n){return(e=Ze(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function u(t){return e&&null===t.alternate&&(t.effectTag=2),t}function a(e,t,n,r){return null===t||6!==t.tag?((t=rt(n,e.mode,r)).return=e,t):((t=i(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=i(t,n.props)).ref=Dt(e,t,n),r.return=e,r):((r=et(n.type,n.key,n.props,null,e.mode,r)).ref=Dt(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=it(n,e.mode,r)).return=e,t):((t=i(t,n.children||[])).return=e,t)}function h(e,t,n,r,o){return null===t||7!==t.tag?((t=tt(n,e.mode,r,o)).return=e,t):((t=i(t,n)).return=e,t)}function m(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=rt(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case f:return(n=et(t.type,t.key,t.props,null,e.mode,n)).ref=Dt(e,null,t),n.return=e,n;case d:return(t=it(t,e.mode,n)).return=e,t}if(yt(t)||C(t))return(t=tt(t,e.mode,n,null)).return=e,t;wt(e,t)}return null}function v(e,t,n,r){var i=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==i?null:a(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case f:return n.key===i?n.type===p?h(e,t,n.props.children,r,i):s(e,t,n,r):null;case d:return n.key===i?c(e,t,n,r):null}if(yt(n)||C(n))return null!==i?null:h(e,t,n,r,null);wt(e,n)}return null}function b(e,t,n,r,i){if("string"==typeof r||"number"==typeof r)return a(t,e=e.get(n)||null,""+r,i);if("object"==typeof r&&null!==r){switch(r.$$typeof){case f:return e=e.get(null===r.key?n:r.key)||null,r.type===p?h(t,e,r.props.children,i,r.key):s(t,e,r,i);case d:return c(t,e=e.get(null===r.key?n:r.key)||null,r,i)}if(yt(r)||C(r))return h(t,e=e.get(n)||null,r,i,null);wt(t,r)}return null}function g(i,u,a,l){for(var s=null,c=null,f=u,d=u=0,p=null;null!==f&&d<a.length;d++){f.index>d?(p=f,f=null):p=f.sibling;var h=v(i,f,a[d],l);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&t(i,f),u=o(h,u,d),null===c?s=h:c.sibling=h,c=h,f=p}if(d===a.length)return n(i,f),s;if(null===f){for(;d<a.length;d++)(f=m(i,a[d],l))&&(u=o(f,u,d),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(i,f);d<a.length;d++)(p=b(f,i,d,a[d],l))&&(e&&null!==p.alternate&&f.delete(null===p.key?d:p.key),u=o(p,u,d),null===c?s=p:c.sibling=p,c=p);return e&&f.forEach((function(e){return t(i,e)})),s}function _(i,u,a,s){var c=C(a);"function"!=typeof c&&l("150"),null==(a=c.call(a))&&l("151");for(var f=c=null,d=u,p=u=0,h=null,g=a.next();null!==d&&!g.done;p++,g=a.next()){d.index>p?(h=d,d=null):h=d.sibling;var _=v(i,d,g.value,s);if(null===_){d||(d=h);break}e&&d&&null===_.alternate&&t(i,d),u=o(_,u,p),null===f?c=_:f.sibling=_,f=_,d=h}if(g.done)return n(i,d),c;if(null===d){for(;!g.done;p++,g=a.next())null!==(g=m(i,g.value,s))&&(u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return c}for(d=r(i,d);!g.done;p++,g=a.next())null!==(g=b(d,i,p,g.value,s))&&(e&&null!==g.alternate&&d.delete(null===g.key?p:g.key),u=o(g,u,p),null===f?c=g:f.sibling=g,f=g);return e&&d.forEach((function(e){return t(i,e)})),c}return function(e,r,o,a){var s="object"==typeof o&&null!==o&&o.type===p&&null===o.key;s&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case f:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?o.type===p:s.elementType===o.type){n(e,s.sibling),(r=i(s,o.type===p?o.props.children:o.props)).ref=Dt(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===p?((r=tt(o.props.children,e.mode,a,o.key)).return=e,e=r):((a=et(o.type,o.key,o.props,null,e.mode,a)).ref=Dt(e,r,o),a.return=e,e=a)}return u(e);case d:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=it(o,e.mode,a)).return=e,e=r}return u(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=rt(o,e.mode,a)).return=e,e=r),u(e);if(yt(o))return g(e,r,o,a);if(C(o))return _(e,r,o,a);if(c&&wt(e,o),void 0===o&&!s)switch(e.tag){case 1:case 0:l("152",(a=e.type).displayName||a.name||"Component")}return n(e,r)}}var Ct=Et(!0),Tt=Et(!1),kt={},St={current:kt},Mt={current:kt},xt={current:kt};function At(e){return e===kt&&l("174"),e}function Pt(e,t){Ne(xt,t),Ne(Mt,e),Ne(St,kt),t=P(t),Re(St),Ne(St,t)}function Ot(e){Re(St),Re(Mt),Re(xt)}function Rt(){return At(St.current)}function Nt(e){var t=At(xt.current),n=At(St.current);n!==(t=O(n,e.type,t))&&(Ne(Mt,e),Ne(St,t))}function It(e){Mt.current===e&&(Re(St),Re(Mt))}var Ft=s.ReactCurrentDispatcher,Bt=0,Lt=null,Ut=null,jt=null,Wt=null,zt=null,qt=null,Ht=0,Gt=null,Vt=0,Yt=!1,Kt=null,$t=0;function Xt(){l("321")}function Jt(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!st(e[n],t[n]))return!1;return!0}function Qt(e,t,n,r,i,o){if(Bt=o,Lt=t,jt=null!==e?e.memoizedState:null,Ft.current=null===jt?dn:pn,t=n(r,i),Yt){do{Yt=!1,$t+=1,jt=null!==e?e.memoizedState:null,qt=Wt,Gt=zt=Ut=null,Ft.current=pn,t=n(r,i)}while(Yt);Kt=null,$t=0}return Ft.current=fn,(e=Lt).memoizedState=Wt,e.expirationTime=Ht,e.updateQueue=Gt,e.effectTag|=Vt,e=null!==Ut&&null!==Ut.next,Bt=0,qt=zt=Wt=jt=Ut=Lt=null,Ht=0,Gt=null,Vt=0,e&&l("300"),t}function Zt(){Ft.current=fn,Bt=0,qt=zt=Wt=jt=Ut=Lt=null,Ht=0,Gt=null,Vt=0,Yt=!1,Kt=null,$t=0}function en(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===zt?Wt=zt=e:zt=zt.next=e,zt}function tn(){if(null!==qt)qt=(zt=qt).next,jt=null!==(Ut=jt)?Ut.next:null;else{null===jt&&l("310");var e={memoizedState:(Ut=jt).memoizedState,baseState:Ut.baseState,queue:Ut.queue,baseUpdate:Ut.baseUpdate,next:null};zt=null===zt?Wt=e:zt.next=e,jt=Ut.next}return zt}function nn(e,t){return"function"==typeof t?t(e):t}function rn(e){var t=tn(),n=t.queue;if(null===n&&l("311"),n.lastRenderedReducer=e,0<$t){var r=n.dispatch;if(null!==Kt){var i=Kt.get(n);if(void 0!==i){Kt.delete(n);var o=t.memoizedState;do{o=e(o,i.action),i=i.next}while(null!==i);return st(o,t.memoizedState)||(Cn=!0),t.memoizedState=o,t.baseUpdate===n.last&&(t.baseState=o),n.lastRenderedState=o,[o,r]}}return[t.memoizedState,r]}r=n.last;var u=t.baseUpdate;if(o=t.baseState,null!==u?(null!==r&&(r.next=null),r=u.next):r=null!==r?r.next:null,null!==r){var a=i=null,s=r,c=!1;do{var f=s.expirationTime;f<Bt?(c||(c=!0,a=u,i=o),f>Ht&&(Ht=f)):o=s.eagerReducer===e?s.eagerState:e(o,s.action),u=s,s=s.next}while(null!==s&&s!==r);c||(a=u,i=o),st(o,t.memoizedState)||(Cn=!0),t.memoizedState=o,t.baseUpdate=a,t.baseState=i,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function on(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Gt?(Gt={lastEffect:null}).lastEffect=e.next=e:null===(t=Gt.lastEffect)?Gt.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Gt.lastEffect=e),e}function un(e,t,n,r){var i=en();Vt|=e,i.memoizedState=on(t,n,void 0,void 0===r?null:r)}function an(e,t,n,r){var i=tn();r=void 0===r?null:r;var o=void 0;if(null!==Ut){var u=Ut.memoizedState;if(o=u.destroy,null!==r&&Jt(r,u.deps))return void on(0,n,o,r)}Vt|=e,i.memoizedState=on(t,n,o,r)}function ln(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function sn(){}function cn(e,t,n){25>$t||l("301");var r=e.alternate;if(e===Lt||null!==r&&r===Lt)if(Yt=!0,e={expirationTime:Bt,action:n,eagerReducer:null,eagerState:null,next:null},null===Kt&&(Kt=new Map),void 0===(n=Kt.get(t)))Kt.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{Vr();var i=Si(),o={expirationTime:i=Qr(i,e),action:n,eagerReducer:null,eagerState:null,next:null},u=t.last;if(null===u)o.next=o;else{var a=u.next;null!==a&&(o.next=a),u.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(o.eagerReducer=r,o.eagerState=c,st(c,s))return}catch(e){}ni(e,i)}}var fn={readContext:Hn,useCallback:Xt,useContext:Xt,useEffect:Xt,useImperativeHandle:Xt,useLayoutEffect:Xt,useMemo:Xt,useReducer:Xt,useRef:Xt,useState:Xt,useDebugValue:Xt},dn={readContext:Hn,useCallback:function(e,t){return en().memoizedState=[e,void 0===t?null:t],e},useContext:Hn,useEffect:function(e,t){return un(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,un(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return un(4,36,e,t)},useMemo:function(e,t){var n=en();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=en();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=cn.bind(null,Lt,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},en().memoizedState=e},useState:function(e){var t=en();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:nn,lastRenderedState:e}).dispatch=cn.bind(null,Lt,e),[t.memoizedState,e]},useDebugValue:sn},pn={readContext:Hn,useCallback:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Hn,useEffect:function(e,t){return an(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,an(4,36,ln.bind(null,t,e),n)},useLayoutEffect:function(e,t){return an(4,36,e,t)},useMemo:function(e,t){var n=tn();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Jt(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:rn,useRef:function(){return tn().memoizedState},useState:function(e){return rn(nn)},useDebugValue:sn},hn=null,mn=null,vn=!1;function bn(e,t){var n=Je(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function gn(e,t){switch(e.tag){case 5:return null!==(t=Ee(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Ce(t,e.pendingProps))&&(e.stateNode=t,!0);case 13:default:return!1}}function _n(e){if(vn){var t=mn;if(t){var n=t;if(!gn(e,t)){if(!(t=Te(n))||!gn(e,t))return e.effectTag|=2,vn=!1,void(hn=e);bn(hn,n)}hn=e,mn=ke(t)}else e.effectTag|=2,vn=!1,hn=e}}function yn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;hn=e}function Dn(e){if(!ee||e!==hn)return!1;if(!vn)return yn(e),vn=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!U(t,e.memoizedProps))for(t=mn;t;)bn(e,t),t=Te(t);return yn(e),mn=hn?Te(e.stateNode):null,!0}function wn(){ee&&(mn=hn=null,vn=!1)}var En=s.ReactCurrentOwner,Cn=!1;function Tn(e,t,n,r){t.child=null===e?Tt(t,null,n,r):Ct(t,e.child,n,r)}function kn(e,t,n,r,i){n=n.render;var o=t.ref;return qn(t,i),r=Qt(e,t,n,r,o,i),null===e||Cn?(t.effectTag|=1,Tn(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),In(e,t,i))}function Sn(e,t,n,r,i,o){if(null===e){var u=n.type;return"function"!=typeof u||Qe(u)||void 0!==u.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=et(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=u,Mn(e,t,u,r,i,o))}return u=e.child,i<o&&(i=u.memoizedProps,(n=null!==(n=n.compare)?n:ft)(i,r)&&e.ref===t.ref)?In(e,t,o):(t.effectTag|=1,(e=Ze(u,r)).ref=t.ref,e.return=t,t.child=e)}function Mn(e,t,n,r,i,o){return null!==e&&ft(e.memoizedProps,r)&&e.ref===t.ref&&(Cn=!1,i<o)?In(e,t,o):An(e,t,n,r,o)}function xn(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function An(e,t,n,r,i){var o=je(n)?Le:Fe.current;return o=Ue(t,o),qn(t,i),n=Qt(e,t,n,r,o,i),null===e||Cn?(t.effectTag|=1,Tn(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),In(e,t,i))}function Pn(e,t,n,r,i){if(je(n)){var o=!0;Ge(t)}else o=!1;if(qn(t,i),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),bt(t,n,r),_t(t,n,r,i),r=!0;else if(null===e){var u=t.stateNode,a=t.memoizedProps;u.props=a;var l=u.context,s=n.contextType;"object"==typeof s&&null!==s?s=Hn(s):s=Ue(t,s=je(n)?Le:Fe.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof u.getSnapshotBeforeUpdate;f||"function"!=typeof u.UNSAFE_componentWillReceiveProps&&"function"!=typeof u.componentWillReceiveProps||(a!==r||l!==s)&&gt(t,u,r,s),Yn=!1;var d=t.memoizedState;l=u.state=d;var p=t.updateQueue;null!==p&&(nr(t,p,r,u,i),l=t.memoizedState),a!==r||d!==l||Be.current||Yn?("function"==typeof c&&(ht(t,n,c,r),l=t.memoizedState),(a=Yn||vt(t,n,a,r,d,l,s))?(f||"function"!=typeof u.UNSAFE_componentWillMount&&"function"!=typeof u.componentWillMount||("function"==typeof u.componentWillMount&&u.componentWillMount(),"function"==typeof u.UNSAFE_componentWillMount&&u.UNSAFE_componentWillMount()),"function"==typeof u.componentDidMount&&(t.effectTag|=4)):("function"==typeof u.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=l),u.props=r,u.state=l,u.context=s,r=a):("function"==typeof u.componentDidMount&&(t.effectTag|=4),r=!1)}else u=t.stateNode,a=t.memoizedProps,u.props=t.type===t.elementType?a:dt(t.type,a),l=u.context,"object"==typeof(s=n.contextType)&&null!==s?s=Hn(s):s=Ue(t,s=je(n)?Le:Fe.current),(f="function"==typeof(c=n.getDerivedStateFromProps)||"function"==typeof u.getSnapshotBeforeUpdate)||"function"!=typeof u.UNSAFE_componentWillReceiveProps&&"function"!=typeof u.componentWillReceiveProps||(a!==r||l!==s)&&gt(t,u,r,s),Yn=!1,l=t.memoizedState,d=u.state=l,null!==(p=t.updateQueue)&&(nr(t,p,r,u,i),d=t.memoizedState),a!==r||l!==d||Be.current||Yn?("function"==typeof c&&(ht(t,n,c,r),d=t.memoizedState),(c=Yn||vt(t,n,a,r,l,d,s))?(f||"function"!=typeof u.UNSAFE_componentWillUpdate&&"function"!=typeof u.componentWillUpdate||("function"==typeof u.componentWillUpdate&&u.componentWillUpdate(r,d,s),"function"==typeof u.UNSAFE_componentWillUpdate&&u.UNSAFE_componentWillUpdate(r,d,s)),"function"==typeof u.componentDidUpdate&&(t.effectTag|=4),"function"==typeof u.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof u.componentDidUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof u.getSnapshotBeforeUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),u.props=r,u.state=d,u.context=s,r=c):("function"!=typeof u.componentDidUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=4),"function"!=typeof u.getSnapshotBeforeUpdate||a===e.memoizedProps&&l===e.memoizedState||(t.effectTag|=256),r=!1);return On(e,t,n,r,o,i)}function On(e,t,n,r,i,o){xn(e,t);var u=0!=(64&t.effectTag);if(!r&&!u)return i&&Ve(t,n,!1),In(e,t,o);r=t.stateNode,En.current=t;var a=u&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&u?(t.child=Ct(t,e.child,null,o),t.child=Ct(t,null,a,o)):Tn(e,t,a,o),t.memoizedState=r.state,i&&Ve(t,n,!0),t.child}function Rn(e){var t=e.stateNode;t.pendingContext?qe(0,t.pendingContext,t.pendingContext!==t.context):t.context&&qe(0,t.context,!1),Pt(e,t.containerInfo)}function Nn(e,t,n){var r=t.mode,i=t.pendingProps,o=t.memoizedState;if(0==(64&t.effectTag)){o=null;var u=!1}else o={timedOutAt:null!==o?o.timedOutAt:0},u=!0,t.effectTag&=-65;if(null===e)if(u){var a=i.fallback;e=tt(null,r,0,null),0==(1&t.mode)&&(e.child=null!==t.memoizedState?t.child.child:t.child),r=tt(a,r,n,null),e.sibling=r,(n=e).return=r.return=t}else n=r=Tt(t,null,i.children,n);else null!==e.memoizedState?(a=(r=e.child).sibling,u?(n=i.fallback,i=Ze(r,r.pendingProps),0==(1&t.mode)&&((u=null!==t.memoizedState?t.child.child:t.child)!==r.child&&(i.child=u)),r=i.sibling=Ze(a,n,a.expirationTime),n=i,i.childExpirationTime=0,n.return=r.return=t):n=r=Ct(t,r.child,i.children,n)):(a=e.child,u?(u=i.fallback,(i=tt(null,r,0,null)).child=a,0==(1&t.mode)&&(i.child=null!==t.memoizedState?t.child.child:t.child),(r=i.sibling=tt(u,r,n,null)).effectTag|=2,n=i,i.childExpirationTime=0,n.return=r.return=t):r=n=Ct(t,a,i.children,n)),t.stateNode=e.stateNode;return t.memoizedState=o,t.child=n,r}function In(e,t,n){if(null!==e&&(t.contextDependencies=e.contextDependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child&&l("153"),null!==t.child){for(n=Ze(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ze(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function Fn(e,t,n){var r=t.expirationTime;if(null!==e){if(e.memoizedProps!==t.pendingProps||Be.current)Cn=!0;else if(r<n){switch(Cn=!1,t.tag){case 3:Rn(t),wn();break;case 5:Nt(t);break;case 1:je(t.type)&&Ge(t);break;case 4:Pt(t,t.stateNode.containerInfo);break;case 10:Wn(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?Nn(e,t,n):null!==(t=In(e,t,n))?t.sibling:null}return In(e,t,n)}}else Cn=!1;switch(t.expirationTime=0,t.tag){case 2:r=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps;var i=Ue(t,Fe.current);if(qn(t,n),i=Qt(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,Zt(),je(r)){var o=!0;Ge(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var u=r.getDerivedStateFromProps;"function"==typeof u&&ht(t,r,u,e),i.updater=mt,t.stateNode=i,i._reactInternalFiber=t,_t(t,r,e,n),t=On(null,t,r,!0,o,n)}else t.tag=0,Tn(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),o=t.pendingProps,e=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(i),t.type=e,i=t.tag=function(e){if("function"==typeof e)return Qe(e)?1:0;if(null!=e){if((e=e.$$typeof)===_)return 11;if(e===D)return 14}return 2}(e),o=dt(e,o),u=void 0,i){case 0:u=An(null,t,e,o,n);break;case 1:u=Pn(null,t,e,o,n);break;case 11:u=kn(null,t,e,o,n);break;case 14:u=Sn(null,t,e,dt(e.type,o),r,n);break;default:l("306",e,"")}return u;case 0:return r=t.type,i=t.pendingProps,An(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 1:return r=t.type,i=t.pendingProps,Pn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 3:return Rn(t),null===(r=t.updateQueue)&&l("282"),i=null!==(i=t.memoizedState)?i.element:null,nr(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?(wn(),t=In(e,t,n)):(i=t.stateNode,(i=(null===e||null===e.child)&&i.hydrate)&&(ee?(mn=ke(t.stateNode.containerInfo),hn=t,i=vn=!0):i=!1),i?(t.effectTag|=2,t.child=Tt(t,null,r,n)):(Tn(e,t,r,n),wn()),t=t.child),t;case 5:return Nt(t),null===e&&_n(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,u=i.children,U(r,i)?u=null:null!==o&&U(r,o)&&(t.effectTag|=16),xn(e,t),1!==n&&1&t.mode&&j(r,i)?(t.expirationTime=t.childExpirationTime=1,t=null):(Tn(e,t,u,n),t=t.child),t;case 6:return null===e&&_n(t),null;case 13:return Nn(e,t,n);case 4:return Pt(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ct(t,null,r,n):Tn(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,kn(e,t,r,i=t.elementType===r?i:dt(r,i),n);case 7:return Tn(e,t,t.pendingProps,n),t.child;case 8:case 12:return Tn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,u=t.memoizedProps,Wn(t,o=i.value),null!==u){var a=u.value;if(0===(o=st(a,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(a,o):1073741823))){if(u.children===i.children&&!Be.current){t=In(e,t,n);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var s=a.contextDependencies;if(null!==s){u=a.child;for(var c=s.first;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===a.tag&&((c=Xn(n)).tag=Vn,Qn(a,c)),a.expirationTime<n&&(a.expirationTime=n),null!==(c=a.alternate)&&c.expirationTime<n&&(c.expirationTime=n),c=n;for(var f=a.return;null!==f;){var d=f.alternate;if(f.childExpirationTime<c)f.childExpirationTime=c,null!==d&&d.childExpirationTime<c&&(d.childExpirationTime=c);else{if(!(null!==d&&d.childExpirationTime<c))break;d.childExpirationTime=c}f=f.return}s.expirationTime<n&&(s.expirationTime=n);break}c=c.next}}else u=10===a.tag&&a.type===t.type?null:a.child;if(null!==u)u.return=a;else for(u=a;null!==u;){if(u===t){u=null;break}if(null!==(a=u.sibling)){a.return=u.return,u=a;break}u=u.return}a=u}}Tn(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=(o=t.pendingProps).children,qn(t,n),r=r(i=Hn(i,o.unstable_observedBits)),t.effectTag|=1,Tn(e,t,r,n),t.child;case 14:return o=dt(i=t.type,t.pendingProps),Sn(e,t,i,o=dt(i.type,o),r,n);case 15:return Mn(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:dt(r,i),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,je(r)?(e=!0,Ge(t)):e=!1,qn(t,n),bt(t,r,i),_t(t,r,i,n),On(null,t,r,!0,e,n)}l("156")}var Bn={current:null},Ln=null,Un=null,jn=null;function Wn(e,t){var n=e.type._context;J?(Ne(Bn,n._currentValue),n._currentValue=t):(Ne(Bn,n._currentValue2),n._currentValue2=t)}function zn(e){var t=Bn.current;Re(Bn),e=e.type._context,J?e._currentValue=t:e._currentValue2=t}function qn(e,t){Ln=e,jn=Un=null;var n=e.contextDependencies;null!==n&&n.expirationTime>=t&&(Cn=!0),e.contextDependencies=null}function Hn(e,t){return jn!==e&&!1!==t&&0!==t&&("number"==typeof t&&1073741823!==t||(jn=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Un?(null===Ln&&l("308"),Un=t,Ln.contextDependencies={first:t,expirationTime:0}):Un=Un.next=t),J?e._currentValue:e._currentValue2}var Gn=1,Vn=2,Yn=!1;function Kn(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $n(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Xn(e){return{expirationTime:e,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Jn(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Qn(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=Kn(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=Kn(e.memoizedState),i=n.updateQueue=Kn(n.memoizedState)):r=e.updateQueue=$n(i):null===i&&(i=n.updateQueue=$n(r));null===i||r===i?Jn(r,t):null===r.lastUpdate||null===i.lastUpdate?(Jn(r,t),Jn(i,t)):(Jn(r,t),i.lastUpdate=t)}function Zn(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=Kn(e.memoizedState):er(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function er(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=$n(t)),t}function tr(e,t,n,r,o,u){switch(n.tag){case Gn:return"function"==typeof(e=n.payload)?e.call(u,r,o):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(o="function"==typeof(e=n.payload)?e.call(u,r,o):e))break;return i({},r,o);case Vn:Yn=!0}return r}function nr(e,t,n,r,i){Yn=!1;for(var o=(t=er(e,t)).baseState,u=null,a=0,l=t.firstUpdate,s=o;null!==l;){var c=l.expirationTime;c<i?(null===u&&(u=l,o=s),a<c&&(a=c)):(s=tr(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=l:(t.lastEffect.nextEffect=l,t.lastEffect=l))),l=l.next}for(c=null,l=t.firstCapturedUpdate;null!==l;){var f=l.expirationTime;f<i?(null===c&&(c=l,null===u&&(o=s)),a<f&&(a=f)):(s=tr(e,0,l,s,n,r),null!==l.callback&&(e.effectTag|=32,l.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=l:(t.lastCapturedEffect.nextEffect=l,t.lastCapturedEffect=l))),l=l.next}null===u&&(t.lastUpdate=null),null===c?t.lastCapturedUpdate=null:e.effectTag|=32,null===u&&null===c&&(o=s),t.baseState=o,t.firstUpdate=u,t.firstCapturedUpdate=c,e.expirationTime=a,e.memoizedState=s}function rr(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),ir(t.firstEffect,n),t.firstEffect=t.lastEffect=null,ir(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function ir(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;"function"!=typeof n&&l("191",n),n.call(r)}e=e.nextEffect}}function or(e,t){return{value:e,source:t,stack:Ae(t)}}function ur(e){e.effectTag|=4}var ar=void 0,lr=void 0,sr=void 0,cr=void 0;if(Q)ar=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)F(e,n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},lr=function(){},sr=function(e,t,n,r,i){if((e=e.memoizedProps)!==r){var o=t.stateNode,u=Rt();n=L(o,n,e,r,i,u),(t.updateQueue=n)&&ur(t)}},cr=function(e,t,n,r){n!==r&&ur(t)};else if(Z){ar=function(e,t,n,r){for(var i=t.child;null!==i;){e:if(5===i.tag){var o=i.stateNode;if(n){var u=i.memoizedProps,a=i.type;o=r?ye(o,a,u,i):De(o,a,u,i),i.stateNode=o}F(e,o)}else if(6===i.tag)o=i.stateNode,n&&(o=i.memoizedProps,u=At(xt.current),a=Rt(),o=r?we(o,u,a,t):W(o,u,a,t),i.stateNode=o),F(e,o);else if(4!==i.tag){if(13===i.tag&&(null!==(u=i.alternate)&&(o=null!==i.memoizedState,null!==u.memoizedState!==o))){null!==(u=o?i.child:i)&&ar(e,u,!0,o);break e}if(null!==i.child){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}};var fr=function(e,t,n,r){for(var i=t.child;null!==i;){e:if(5===i.tag){var o=i.stateNode;if(n){var u=i.memoizedProps,a=i.type;o=r?ye(o,a,u,i):De(o,a,u,i),i.stateNode=o}be(e,o)}else if(6===i.tag)o=i.stateNode,n&&(o=i.memoizedProps,u=At(xt.current),a=Rt(),o=r?we(o,u,a,t):W(o,u,a,t),i.stateNode=o),be(e,o);else if(4!==i.tag){if(13===i.tag&&(null!==(u=i.alternate)&&(o=null!==i.memoizedState,null!==u.memoizedState!==o))){null!==(u=o?i.child:i)&&fr(e,u,!0,o);break e}if(null!==i.child){i.child.return=i,i=i.child;continue}}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}};lr=function(e){var t=e.stateNode;if(null!==e.firstEffect){var n=t.containerInfo,r=ve(n);fr(r,e,!1,!1),t.pendingChildren=r,ur(e),ge(n,r)}},sr=function(e,t,n,r,i){var o=e.stateNode,u=e.memoizedProps;if((e=null===t.firstEffect)&&u===r)t.stateNode=o;else{var a=t.stateNode,l=Rt(),s=null;u!==r&&(s=L(a,n,u,r,i,l)),e&&null===s?t.stateNode=o:(o=me(o,s,n,u,r,t,e,a),B(o,n,r,i,l)&&ur(t),t.stateNode=o,e?ur(t):ar(o,t,!1,!1))}},cr=function(e,t,n,r){n!==r&&(e=At(xt.current),n=Rt(),t.stateNode=W(r,e,n,t),ur(t))}}else lr=function(){},sr=function(){},cr=function(){};var dr="function"==typeof WeakSet?WeakSet:Set;function pr(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=Ae(n)),null!==n&&T(n.type),t=t.value,null!==e&&1===e.tag&&T(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function hr(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Jr(e,t)}else t.current=null}function mr(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var i=r.destroy;r.destroy=void 0,void 0!==i&&i()}0!=(r.tag&t)&&(i=r.create,r.destroy=i()),r=r.next}while(r!==n)}}function vr(e){switch("function"==typeof Ke&&Ke(e),e.tag){case 0:case 11:case 14:case 15:var t=e.updateQueue;if(null!==t&&null!==(t=t.lastEffect)){var n=t=t.next;do{var r=n.destroy;if(void 0!==r){var i=e;try{r()}catch(e){Jr(i,e)}}n=n.next}while(n!==t)}break;case 1:if(hr(e),"function"==typeof(t=e.stateNode).componentWillUnmount)try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Jr(e,t)}break;case 5:hr(e);break;case 4:Q?yr(e):Z&&Z&&(e=e.stateNode.containerInfo,t=ve(e),_e(e,t))}}function br(e){for(var t=e;;)if(vr(t),null===t.child||Q&&4===t.tag){if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function gr(e){return 5===e.tag||3===e.tag||4===e.tag}function _r(e){if(Q){e:{for(var t=e.return;null!==t;){if(gr(t)){var n=t;break e}t=t.return}l("160"),n=void 0}var r=t=void 0;switch(n.tag){case 5:t=n.stateNode,r=!1;break;case 3:case 4:t=n.stateNode.containerInfo,r=!0;break;default:l("161")}16&n.effectTag&&(ce(t),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||gr(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var i=e;;){if(5===i.tag||6===i.tag)n?r?ae(t,i.stateNode,n):ue(t,i.stateNode,n):r?ne(t,i.stateNode):te(t,i.stateNode);else if(4!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===e)break;for(;null===i.sibling;){if(null===i.return||i.return===e)return;i=i.return}i.sibling.return=i.return,i=i.sibling}}}function yr(e){for(var t=e,n=!1,r=void 0,i=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&l("160"),n.tag){case 5:r=n.stateNode,i=!1;break e;case 3:case 4:r=n.stateNode.containerInfo,i=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag)br(t),i?se(r,t.stateNode):le(r,t.stateNode);else if(4===t.tag){if(null!==t.child){r=t.stateNode.containerInfo,i=!0,t.child.return=t,t=t.child;continue}}else if(vr(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;4===(t=t.return).tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}function Dr(e,t){if(Q)switch(t.tag){case 0:case 11:case 14:case 15:mr(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,o=t.updateQueue;t.updateQueue=null,null!==o&&oe(n,o,i,e,r,t)}break;case 6:null===t.stateNode&&l("162"),n=t.memoizedProps,re(t.stateNode,null!==e?e.memoizedProps:n,n);break;case 3:case 12:break;case 13:if(n=t.memoizedState,r=void 0,e=t,null===n?r=!1:(r=!0,e=t.child,0===n.timedOutAt&&(n.timedOutAt=Si())),null!==e&&function(e,t){if(Q)for(var n=e;;){if(5===n.tag){var r=n.stateNode;t?fe(r):pe(n.stateNode,n.memoizedProps)}else if(6===n.tag)r=n.stateNode,t?de(r):he(r,n.memoizedProps);else{if(13===n.tag&&null!==n.memoizedState){(r=n.child.sibling).return=n,n=r;continue}if(null!==n.child){n.child.return=n,n=n.child;continue}}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}(e,r),null!==(n=t.updateQueue)){t.updateQueue=null;var u=t.stateNode;null===u&&(u=t.stateNode=new dr),n.forEach((function(e){var n=ei.bind(null,t,e);u.has(e)||(u.add(e),e.then(n,n))}))}break;case 17:break;default:l("163")}else{switch(t.tag){case 0:case 11:case 14:case 15:return void mr(4,8,t)}!function(e){if(Z)switch(e.tag){case 1:case 5:case 6:break;case 3:case 4:e=e.stateNode,_e(e.containerInfo,e.pendingChildren);break;default:l("163")}}(t)}}var wr="function"==typeof WeakMap?WeakMap:Map;function Er(e,t,n){(n=Xn(n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Bi(r),pr(e,t)},n}function Cr(e,t,n){(n=Xn(n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return r(i)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===jr?jr=new Set([this]):jr.add(this));var n=t.value,i=t.stack;pr(e,t),this.componentDidCatch(n,{componentStack:null!==i?i:""})}),n}function Tr(e){switch(e.tag){case 1:je(e.type)&&We();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:return Ot(),ze(),0!=(64&(t=e.effectTag))&&l("285"),e.effectTag=-2049&t|64,e;case 5:return It(e),null;case 13:return 2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 4:return Ot(),null;case 10:return zn(e),null;default:return null}}var kr=s.ReactCurrentDispatcher,Sr=s.ReactCurrentOwner,Mr=1073741822,xr=!1,Ar=null,Pr=null,Or=0,Rr=-1,Nr=!1,Ir=null,Fr=!1,Br=null,Lr=null,Ur=null,jr=null;function Wr(){if(null!==Ar)for(var e=Ar.return;null!==e;){var t=e;switch(t.tag){case 1:var n=t.type.childContextTypes;null!=n&&We();break;case 3:Ot(),ze();break;case 5:It(t);break;case 4:Ot();break;case 10:zn(t)}e=e.return}Pr=null,Or=0,Rr=-1,Nr=!1,Ar=null}function zr(){for(;null!==Ir;){var e=Ir.effectTag;if(16&e&&Q&&ce(Ir.stateNode),128&e){var t=Ir.alternate;null!==t&&(null!==(t=t.ref)&&("function"==typeof t?t(null):t.current=null))}switch(14&e){case 2:_r(Ir),Ir.effectTag&=-3;break;case 6:_r(Ir),Ir.effectTag&=-3,Dr(Ir.alternate,Ir);break;case 4:Dr(Ir.alternate,Ir);break;case 8:e=Ir,Q?yr(e):br(e),e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,null!==(e=e.alternate)&&(e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null)}Ir=Ir.nextEffect}}function qr(){for(;null!==Ir;){if(256&Ir.effectTag)e:{var e=Ir.alternate,t=Ir;switch(t.tag){case 0:case 11:case 15:mr(2,0,t);break e;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:dt(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break e;case 3:case 5:case 6:case 4:case 17:break e;default:l("163")}}Ir=Ir.nextEffect}}function Hr(e,t){for(;null!==Ir;){var n=Ir.effectTag;if(36&n){var r=Ir.alternate,i=Ir,o=t;switch(i.tag){case 0:case 11:case 15:mr(16,32,i);break;case 1:var u=i.stateNode;if(4&i.effectTag)if(null===r)u.componentDidMount();else{var a=i.elementType===i.type?r.memoizedProps:dt(i.type,r.memoizedProps);u.componentDidUpdate(a,r.memoizedState,u.__reactInternalSnapshotBeforeUpdate)}null!==(r=i.updateQueue)&&rr(0,r,u);break;case 3:if(null!==(r=i.updateQueue)){if(u=null,null!==i.child)switch(i.child.tag){case 5:u=A(i.child.stateNode);break;case 1:u=i.child.stateNode}rr(0,r,u)}break;case 5:o=i.stateNode,null===r&&4&i.effectTag&&ie(o,i.type,i.memoizedProps,i);break;case 6:case 4:case 12:case 13:case 17:break;default:l("163")}}if(128&n&&null!==(i=Ir.ref)){switch(o=Ir.stateNode,Ir.tag){case 5:o=A(o)}"function"==typeof i?i(o):i.current=o}512&n&&(Br=e),Ir=Ir.nextEffect}}function Gr(e,t){Ur=Lr=Br=null;var n=li;li=!0;do{if(512&t.effectTag){var r=!1,i=void 0;try{var o=t;mr(128,0,o),mr(0,64,o)}catch(e){r=!0,i=e}r&&Jr(t,i)}t=t.nextEffect}while(null!==t);li=n,0!==(n=e.expirationTime)&&Mi(e,n),hi||li||Ri(1073741823,!1)}function Vr(){null!==Lr&&$(Lr),null!==Ur&&Ur()}function Yr(e,t){Fr=xr=!0,e.current===t&&l("177");var n=e.pendingCommitExpirationTime;0===n&&l("261"),e.pendingCommitExpirationTime=0;var r=t.expirationTime,i=t.childExpirationTime;for(function(e,t){if(e.didError=!1,0===t)e.earliestPendingTime=0,e.latestPendingTime=0,e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0;else{t<e.latestPingedTime&&(e.latestPingedTime=0);var n=e.latestPendingTime;0!==n&&(n>t?e.earliestPendingTime=e.latestPendingTime=0:e.earliestPendingTime>t&&(e.earliestPendingTime=e.latestPendingTime)),0===(n=e.earliestSuspendedTime)?ot(e,t):t<e.latestSuspendedTime?(e.earliestSuspendedTime=0,e.latestSuspendedTime=0,e.latestPingedTime=0,ot(e,t)):t>n&&ot(e,t)}lt(0,e)}(e,i>r?i:r),Sr.current=null,r=void 0,1<t.effectTag?null!==t.lastEffect?(t.lastEffect.nextEffect=t,r=t.firstEffect):r=t:r=t.firstEffect,R(e.containerInfo),Ir=r;null!==Ir;){i=!1;var o=void 0;try{qr()}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}for(Ir=r;null!==Ir;){i=!1,o=void 0;try{zr()}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}for(N(e.containerInfo),e.current=t,Ir=r;null!==Ir;){i=!1,o=void 0;try{Hr(e,n)}catch(e){i=!0,o=e}i&&(null===Ir&&l("178"),Jr(Ir,o),null!==Ir&&(Ir=Ir.nextEffect))}if(null!==r&&null!==Br){var a=Gr.bind(null,e,r);Lr=u.unstable_runWithPriority(u.unstable_NormalPriority,(function(){return K(a)})),Ur=a}xr=Fr=!1,"function"==typeof Ye&&Ye(t.stateNode),n=t.expirationTime,0===(t=(t=t.childExpirationTime)>n?t:n)&&(jr=null),function(e,t){e.expirationTime=t,e.finishedWork=null}(e,t)}function Kr(e){for(;;){var t=e.alternate,n=e.return,r=e.sibling;if(0==(1024&e.effectTag)){Ar=e;e:{var i=t,o=Or,u=(t=e).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:je(t.type)&&We();break;case 3:Ot(),ze(),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),null!==i&&null!==i.child||(Dn(t),t.effectTag&=-3),lr(t);break;case 5:It(t),o=At(xt.current);var a=t.type;if(null!==i&&null!=t.stateNode)sr(i,t,a,u,o),i.ref!==t.ref&&(t.effectTag|=128);else if(u){if(i=Rt(),Dn(t))u=t,ee||l("175"),i=Se(u.stateNode,u.type,u.memoizedProps,o,i,u),u.updateQueue=i,(i=null!==i)&&ur(t);else{var s=I(a,u,o,i,t);ar(s,t,!1,!1),B(s,a,u,o,i)&&ur(t),t.stateNode=s}null!==t.ref&&(t.effectTag|=128)}else null===t.stateNode&&l("166");break;case 6:i&&null!=t.stateNode?cr(i,t,i.memoizedProps,u):("string"!=typeof u&&(null===t.stateNode&&l("166")),i=At(xt.current),o=Rt(),Dn(t)?(i=t,ee||l("176"),(i=Me(i.stateNode,i.memoizedProps,i))&&ur(t)):t.stateNode=W(u,i,o,t));break;case 11:break;case 13:if(u=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=o,Ar=t;break e}u=null!==u,o=null!==i&&null!==i.memoizedState,null!==i&&!u&&o&&(null!==(i=i.child.sibling)&&(null!==(a=t.firstEffect)?(t.firstEffect=i,i.nextEffect=a):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),(u||o)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:Ot(),lr(t);break;case 10:zn(t);break;case 9:case 14:break;case 17:je(t.type)&&We();break;case 18:break;default:l("156")}Ar=null}if(t=e,1===Or||1!==t.childExpirationTime){for(i=0,u=t.child;null!==u;)(o=u.expirationTime)>i&&(i=o),(a=u.childExpirationTime)>i&&(i=a),u=u.sibling;t.childExpirationTime=i}if(null!==Ar)return Ar;null!==n&&0==(1024&n.effectTag)&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1<e.effectTag&&(null!==n.lastEffect?n.lastEffect.nextEffect=e:n.firstEffect=e,n.lastEffect=e))}else{if(null!==(e=Tr(e)))return e.effectTag&=1023,e;null!==n&&(n.firstEffect=n.lastEffect=null,n.effectTag|=1024)}if(null!==r)return r;if(null===n)break;e=n}return null}function $r(e){var t=Fn(e.alternate,e,Or);return e.memoizedProps=e.pendingProps,null===t&&(t=Kr(e)),Sr.current=null,t}function Xr(e,t){xr&&l("243"),Vr(),xr=!0;var n=kr.current;kr.current=fn;var r=e.nextExpirationTimeToWorkOn;r===Or&&e===Pr&&null!==Ar||(Wr(),Or=r,Ar=Ze((Pr=e).current,null),e.pendingCommitExpirationTime=0);for(var i=!1;;){try{if(t)for(;null!==Ar&&!Pi();)Ar=$r(Ar);else for(;null!==Ar;)Ar=$r(Ar)}catch(t){if(jn=Un=Ln=null,Zt(),null===Ar)i=!0,Bi(t);else{null===Ar&&l("271");var o=Ar,u=o.return;if(null!==u){e:{var a=e,s=u,c=o,f=t;if(u=Or,c.effectTag|=1024,c.firstEffect=c.lastEffect=null,null!==f&&"object"==typeof f&&"function"==typeof f.then){var d=f;f=s;var p=-1,h=-1;do{if(13===f.tag){var m=f.alternate;if(null!==m&&null!==(m=m.memoizedState)){h=10*(1073741822-m.timedOutAt);break}"number"==typeof(m=f.pendingProps.maxDuration)&&(0>=m?p=0:(-1===p||m<p)&&(p=m))}f=f.return}while(null!==f);f=s;do{if((m=13===f.tag)&&(m=void 0!==f.memoizedProps.fallback&&null===f.memoizedState),m){if(null===(s=f.updateQueue)?((s=new Set).add(d),f.updateQueue=s):s.add(d),0==(1&f.mode)){f.effectTag|=64,c.effectTag&=-1957,1===c.tag&&(null===c.alternate?c.tag=17:((u=Xn(1073741823)).tag=Vn,Qn(c,u))),c.expirationTime=1073741823;break e}s=u;var v=(c=a).pingCache;null===v?(v=c.pingCache=new wr,m=new Set,v.set(d,m)):void 0===(m=v.get(d))&&(m=new Set,v.set(d,m)),m.has(s)||(m.add(s),c=Zr.bind(null,c,d,s),d.then(c,c)),-1===p?a=1073741823:(-1===h&&(h=10*(1073741822-at(a,u))-5e3),a=h+p),0<=a&&Rr<a&&(Rr=a),f.effectTag|=2048,f.expirationTime=u;break e}f=f.return}while(null!==f);f=Error((T(c.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+Ae(c))}Nr=!0,f=or(f,c),a=s;do{switch(a.tag){case 3:a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Er(a,f,u));break e;case 1:if(p=f,h=a.type,c=a.stateNode,0==(64&a.effectTag)&&("function"==typeof h.getDerivedStateFromError||null!==c&&"function"==typeof c.componentDidCatch&&(null===jr||!jr.has(c)))){a.effectTag|=2048,a.expirationTime=u,Zn(a,u=Cr(a,p,u));break e}}a=a.return}while(null!==a)}Ar=Kr(o);continue}i=!0,Bi(t)}}break}if(xr=!1,kr.current=n,jn=Un=Ln=null,Zt(),i)Pr=null,e.finishedWork=null;else if(null!==Ar)e.finishedWork=null;else{if(null===(n=e.current.alternate)&&l("281"),Pr=null,Nr){if(i=e.latestPendingTime,o=e.latestSuspendedTime,u=e.latestPingedTime,0!==i&&i<r||0!==o&&o<r||0!==u&&u<r)return ut(e,r),void Ti(e,n,r,e.expirationTime,-1);if(!e.didError&&t)return e.didError=!0,r=e.nextExpirationTimeToWorkOn=r,t=e.expirationTime=1073741823,void Ti(e,n,r,t,-1)}t&&-1!==Rr?(ut(e,r),(t=10*(1073741822-at(e,r)))<Rr&&(Rr=t),t=10*(1073741822-Si()),t=Rr-t,Ti(e,n,r,e.expirationTime,0>t?0:t)):(e.pendingCommitExpirationTime=r,e.finishedWork=n)}}function Jr(e,t){for(var n=e.return;null!==n;){switch(n.tag){case 1:var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===jr||!jr.has(r)))return Qn(n,e=Cr(n,e=or(t,e),1073741823)),void ni(n,1073741823);break;case 3:return Qn(n,e=Er(n,e=or(t,e),1073741823)),void ni(n,1073741823)}n=n.return}3===e.tag&&(Qn(e,n=Er(e,n=or(t,e),1073741823)),ni(e,1073741823))}function Qr(e,t){var n=u.unstable_getCurrentPriorityLevel(),r=void 0;if(0==(1&t.mode))r=1073741823;else if(xr&&!Fr)r=Or;else{switch(n){case u.unstable_ImmediatePriority:r=1073741823;break;case u.unstable_UserBlockingPriority:r=1073741822-10*(1+((1073741822-e+15)/10|0));break;case u.unstable_NormalPriority:r=1073741822-25*(1+((1073741822-e+500)/25|0));break;case u.unstable_LowPriority:case u.unstable_IdlePriority:r=1;break;default:l("313")}null!==Pr&&r===Or&&--r}return n===u.unstable_UserBlockingPriority&&(0===fi||r<fi)&&(fi=r),r}function Zr(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),null!==Pr&&Or===n?Pr=null:(t=e.earliestSuspendedTime,r=e.latestSuspendedTime,0!==t&&n<=t&&n>=r&&(e.didError=!1,(0===(t=e.latestPingedTime)||t>n)&&(e.latestPingedTime=n),lt(n,e),0!==(n=e.expirationTime)&&Mi(e,n)))}function ei(e,t){var n=e.stateNode;null!==n&&n.delete(t),null!==(e=ti(e,t=Qr(t=Si(),e)))&&(ot(e,t),0!==(t=e.expirationTime)&&Mi(e,t))}function ti(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,i=null;if(null===r&&3===e.tag)i=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){i=r.stateNode;break}r=r.return}return i}function ni(e,t){null!==(e=ti(e,t))&&(!xr&&0!==Or&&t>Or&&Wr(),ot(e,t),xr&&!Fr&&Pr===e||Mi(e,e.expirationTime),Di>yi&&(Di=0,l("185")))}function ri(e,t,n,r,i){return u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){return e(t,n,r,i)}))}var ii=null,oi=null,ui=0,ai=void 0,li=!1,si=null,ci=0,fi=0,di=!1,pi=null,hi=!1,mi=!1,vi=null,bi=X(),gi=1073741822-(bi/10|0),_i=gi,yi=50,Di=0,wi=null;function Ei(){gi=1073741822-((X()-bi)/10|0)}function Ci(e,t){if(0!==ui){if(t<ui)return;null!==ai&&q(ai)}ui=t,e=X()-bi,ai=z(Oi,{timeout:10*(1073741822-t)-e})}function Ti(e,t,n,r,i){e.expirationTime=r,0!==i||Pi()?0<i&&(e.timeoutHandle=G(ki.bind(null,e,t,n),i)):(e.pendingCommitExpirationTime=n,e.finishedWork=t)}function ki(e,t,n){e.pendingCommitExpirationTime=n,e.finishedWork=t,Ei(),_i=gi,Ni(e,n)}function Si(){return li||(xi(),0!==ci&&1!==ci||(Ei(),_i=gi)),_i}function Mi(e,t){null===e.nextScheduledRoot?(e.expirationTime=t,null===oi?(ii=oi=e,e.nextScheduledRoot=e):(oi=oi.nextScheduledRoot=e).nextScheduledRoot=ii):t>e.expirationTime&&(e.expirationTime=t),li||(hi?mi&&(si=e,ci=1073741823,Ii(e,1073741823,!1)):1073741823===t?Ri(1073741823,!1):Ci(e,t))}function xi(){var e=0,t=null;if(null!==oi)for(var n=oi,r=ii;null!==r;){var i=r.expirationTime;if(0===i){if((null===n||null===oi)&&l("244"),r===r.nextScheduledRoot){ii=oi=r.nextScheduledRoot=null;break}if(r===ii)ii=i=r.nextScheduledRoot,oi.nextScheduledRoot=i,r.nextScheduledRoot=null;else{if(r===oi){(oi=n).nextScheduledRoot=ii,r.nextScheduledRoot=null;break}n.nextScheduledRoot=r.nextScheduledRoot,r.nextScheduledRoot=null}r=n.nextScheduledRoot}else{if(i>e&&(e=i,t=r),r===oi)break;if(1073741823===e)break;n=r,r=r.nextScheduledRoot}}si=t,ci=e}var Ai=!1;function Pi(){return!!Ai||!!H()&&(Ai=!0)}function Oi(){try{if(!Pi()&&null!==ii){Ei();var e=ii;do{var t=e.expirationTime;0!==t&&gi<=t&&(e.nextExpirationTimeToWorkOn=gi),e=e.nextScheduledRoot}while(e!==ii)}Ri(0,!0)}finally{Ai=!1}}function Ri(e,t){if(xi(),t)for(Ei(),_i=gi;null!==si&&0!==ci&&e<=ci&&!(Ai&&gi>ci);)Ii(si,ci,gi>ci),xi(),Ei(),_i=gi;else for(;null!==si&&0!==ci&&e<=ci;)Ii(si,ci,!1),xi();if(t&&(ui=0,ai=null),0!==ci&&Ci(si,ci),Di=0,wi=null,null!==vi)for(e=vi,vi=null,t=0;t<e.length;t++){var n=e[t];try{n._onComplete()}catch(e){di||(di=!0,pi=e)}}if(di)throw e=pi,pi=null,di=!1,e}function Ni(e,t){li&&l("253"),si=e,ci=t,Ii(e,t,!1),Ri(1073741823,!1)}function Ii(e,t,n){if(li&&l("245"),li=!0,n){var r=e.finishedWork;null!==r?Fi(e,r,t):(e.finishedWork=null,(r=e.timeoutHandle)!==Y&&(e.timeoutHandle=Y,V(r)),Xr(e,n),null!==(r=e.finishedWork)&&(Pi()?e.finishedWork=r:Fi(e,r,t)))}else null!==(r=e.finishedWork)?Fi(e,r,t):(e.finishedWork=null,(r=e.timeoutHandle)!==Y&&(e.timeoutHandle=Y,V(r)),Xr(e,n),null!==(r=e.finishedWork)&&Fi(e,r,t));li=!1}function Fi(e,t,n){var r=e.firstBatch;if(null!==r&&r._expirationTime>=n&&(null===vi?vi=[r]:vi.push(r),r._defer))return e.finishedWork=t,void(e.expirationTime=0);e.finishedWork=null,e===wi?Di++:(wi=e,Di=0),u.unstable_runWithPriority(u.unstable_ImmediatePriority,(function(){Yr(e,t)}))}function Bi(e){null===si&&l("246"),si.expirationTime=0,di||(di=!0,pi=e)}function Li(e,t,n,r,i){var o=t.current;e:if(n){t:{2===k(n=n._reactInternalFiber)&&1===n.tag||l("170");var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(je(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);l("171"),u=void 0}if(1===n.tag){var a=n.type;if(je(a)){n=He(n,a,u);break e}}n=u}else n=Ie;return null===t.context?t.context=n:t.pendingContext=n,t=i,(i=Xn(r)).payload={element:e},null!==(t=void 0===t?null:t)&&(i.callback=t),Vr(),Qn(o,i),ni(o,r),r}function Ui(e){var t=e._reactInternalFiber;return void 0===t&&("function"==typeof e.render?l("188"):l("268",Object.keys(e))),null===(e=x(t))?null:e.stateNode}var ji={updateContainerAtExpirationTime:Li,createContainer:function(e,t,n){return e={current:t=Je(3,null,null,t?3:0),containerInfo:e,pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:Y,context:null,pendingContext:null,hydrate:n,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null},t.stateNode=e},updateContainer:function(e,t,n,r){var i=t.current;return Li(e,t,n,i=Qr(Si(),i),r)},flushRoot:Ni,requestWork:Mi,computeUniqueAsyncExpiration:function(){var e=1073741822-25*(1+((1073741822-Si()+500)/25|0));return e>=Mr&&(e=Mr-1),Mr=e},batchedUpdates:function(e,t){var n=hi;hi=!0;try{return e(t)}finally{(hi=n)||li||Ri(1073741823,!1)}},unbatchedUpdates:function(e,t){if(hi&&!mi){mi=!0;try{return e(t)}finally{mi=!1}}return e(t)},deferredUpdates:u.unstable_next,syncUpdates:ri,interactiveUpdates:function(e,t,n){hi||li||0===fi||(Ri(fi,!1),fi=0);var r=hi;hi=!0;try{return u.unstable_runWithPriority(u.unstable_UserBlockingPriority,(function(){return e(t,n)}))}finally{(hi=r)||li||Ri(1073741823,!1)}},flushInteractiveUpdates:function(){li||0===fi||(Ri(fi,!1),fi=0)},flushControlled:function(e){var t=hi;hi=!0;try{ri(e)}finally{(hi=t)||li||Ri(1073741823,!1)}},flushSync:function(e,t){li&&l("187");var n=hi;hi=!0;try{return ri(e,t)}finally{hi=n,Ri(1073741823,!1)}},getPublicRootInstance:function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:return A(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:Ui,findHostInstanceWithWarning:function(e){return Ui(e)},findHostInstanceWithNoPortals:function(e){return null===(e=function(e){if(!(e=M(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child&&4!==t.tag)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}(e))?null:e.stateNode},injectIntoDevTools:function(e){var t=e.findFiberByHostInstance;return function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ye=$e((function(e){return t.onCommitFiberRoot(n,e)})),Ke=$e((function(e){return t.onCommitFiberUnmount(n,e)}))}catch(e){}return!0}(i({},e,{overrideProps:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=x(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null}}))}};e.exports=ji.default||ji;var Wi=e.exports;return e.exports=t,Wi}},9437:(e,t,n)=>{"use strict";e.exports=n(5591)},469:(e,t,n)=>{"use strict";function r(e){const t=[...e.caches],n=t.shift();return void 0===n?i():{get:(e,i,o={miss:()=>Promise.resolve()})=>n.get(e,i,o).catch(()=>r({caches:t}).get(e,i,o)),set:(e,i)=>n.set(e,i).catch(()=>r({caches:t}).set(e,i)),delete:e=>n.delete(e).catch(()=>r({caches:t}).delete(e)),clear:()=>n.clear().catch(()=>r({caches:t}).clear())}}function i(){return{get:(e,t,n={miss:()=>Promise.resolve()})=>t().then(e=>Promise.all([e,n.miss(e)])).then(([e])=>e),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}}n.r(t),n.d(t,{createFallbackableCache:()=>r,createNullCache:()=>i})},6712:(e,t,n)=>{"use strict";function r(e={serializable:!0}){let t={};return{get(n,r,i={miss:()=>Promise.resolve()}){const o=JSON.stringify(n);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);const u=r(),a=i&&i.miss||(()=>Promise.resolve());return u.then(e=>a(e)).then(()=>u)},set:(n,r)=>(t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}n.r(t),n.d(t,{createInMemoryCache:()=>r})},2223:(e,t,n)=>{"use strict";n.r(t),n.d(t,{addABTest:()=>a,createAnalyticsClient:()=>u,deleteABTest:()=>l,getABTest:()=>s,getABTests:()=>c,stopABTest:()=>f});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u=e.appId;return(0,r.addMethods)({appId:u,transporter:o},e.methods)},a=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"2/abtests",data:t},n),l=e=>(t,n)=>e.transporter.write({method:o.N.Delete,path:(0,r.encode)("2/abtests/%s",t)},n),s=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("2/abtests/%s",t)},n),c=e=>t=>e.transporter.read({method:o.N.Get,path:"2/abtests"},t),f=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:(0,r.encode)("2/abtests/%s/stop",t)},n)},1757:(e,t,n)=>{"use strict";function r(e,t,n){const r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:()=>e===f.WithinHeaders?r:{},queryParameters:()=>e===f.WithinQueryParameters?r:{}}}function i(e){let t=0;const n=()=>(t++,new Promise(r=>{setTimeout(()=>{r(e(n))},Math.min(100*t,1e3))}));return e(n)}function o(e,t=((e,t)=>Promise.resolve())){return Object.assign(e,{wait:n=>o(e.then(e=>Promise.all([t(e,n),e])).then(e=>e[1]))})}function u(e){let t=e.length-1;for(;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function a(e,t){return Object.keys(void 0!==t?t:{}).forEach(n=>{e[n]=t[n](e)}),e}function l(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}n.r(t),n.d(t,{AuthMode:()=>f,addMethods:()=>a,createAuth:()=>r,createRetryablePromise:()=>i,createWaitablePromise:()=>o,destroy:()=>c,encode:()=>l,shuffle:()=>u,version:()=>s});const s="4.2.0",c=e=>()=>e.transporter.requester.destroy(),f={WithinQueryParameters:0,WithinHeaders:1}},103:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createRecommendationClient:()=>u,getPersonalizationStrategy:()=>a,setPersonalizationStrategy:()=>l});var r=n(1757),i=n(7858),o=n(5541);const u=e=>{const t=e.region||"us",n=(0,r.createAuth)(r.AuthMode.WithinHeaders,e.appId,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:`recommendation.${t}.algolia.com`}],...e,headers:{...n.headers(),"content-type":"application/json",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}});return(0,r.addMethods)({appId:e.appId,transporter:o},e.methods)},a=e=>t=>e.transporter.read({method:o.N.Get,path:"1/strategies/personalization"},t),l=e=>(t,n)=>e.transporter.write({method:o.N.Post,path:"1/strategies/personalization",data:t},n)},6586:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ApiKeyACLEnum:()=>Se,BatchActionEnum:()=>Me,ScopeEnum:()=>xe,StrategyEnum:()=>Ae,SynonymEnum:()=>Pe,addApiKey:()=>d,assignUserID:()=>p,assignUserIDs:()=>h,batch:()=>W,browseObjects:()=>z,browseRules:()=>q,browseSynonyms:()=>H,chunkedBatch:()=>G,clearObjects:()=>V,clearRules:()=>Y,clearSynonyms:()=>K,copyIndex:()=>m,copyRules:()=>v,copySettings:()=>b,copySynonyms:()=>g,createBrowsablePromise:()=>a,createMissingObjectIDError:()=>s,createObjectNotFoundError:()=>c,createSearchClient:()=>l,createValidUntilNotFoundError:()=>f,deleteApiKey:()=>_,deleteBy:()=>$,deleteIndex:()=>X,deleteObject:()=>J,deleteObjects:()=>Q,deleteRule:()=>Z,deleteSynonym:()=>ee,exists:()=>te,findObject:()=>ne,generateSecuredApiKey:()=>y,getApiKey:()=>D,getLogs:()=>w,getObject:()=>re,getObjectPosition:()=>ie,getObjects:()=>oe,getRule:()=>ue,getSecuredApiKeyRemainingValidity:()=>E,getSettings:()=>ae,getSynonym:()=>le,getTask:()=>se,getTopUserIDs:()=>C,getUserID:()=>T,hasPendingMappings:()=>k,initIndex:()=>S,listApiKeys:()=>M,listClusters:()=>x,listIndices:()=>A,listUserIDs:()=>P,moveIndex:()=>O,multipleBatch:()=>R,multipleGetObjects:()=>N,multipleQueries:()=>I,multipleSearchForFacetValues:()=>F,partialUpdateObject:()=>ce,partialUpdateObjects:()=>fe,removeUserID:()=>B,replaceAllObjects:()=>de,replaceAllRules:()=>pe,replaceAllSynonyms:()=>he,restoreApiKey:()=>L,saveObject:()=>me,saveObjects:()=>ve,saveRule:()=>be,saveRules:()=>ge,saveSynonym:()=>_e,saveSynonyms:()=>ye,search:()=>De,searchForFacetValues:()=>we,searchRules:()=>Ee,searchSynonyms:()=>Ce,searchUserIDs:()=>U,setSettings:()=>Te,updateApiKey:()=>j,waitTask:()=>ke});var r=n(1757),i=n(7858),o=n(5541),u=n(6417);function a(e){const t=n=>e.request(n).then(r=>{if(void 0!==e.batch&&e.batch(r.hits),!e.shouldStop(r))return r.cursor?t({cursor:r.cursor}):t({page:(n.page||0)+1})});return t({})}const l=e=>{const t=e.appId,n=(0,r.createAuth)(void 0!==e.authMode?e.authMode:r.AuthMode.WithinHeaders,t,e.apiKey),o=(0,i.createTransporter)({hosts:[{url:t+"-dsn.algolia.net",accept:i.CallEnum.Read},{url:t+".algolia.net",accept:i.CallEnum.Write}].concat((0,r.shuffle)([{url:t+"-1.algolianet.com"},{url:t+"-2.algolianet.com"},{url:t+"-3.algolianet.com"}])),...e,headers:{...n.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),u={transporter:o,appId:t,addAlgoliaAgent(e,t){o.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})};return(0,r.addMethods)(u,e.methods)};function s(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function c(){return{name:"ObjectNotFoundError",message:"Object not found."}}function f(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}const d=e=>(t,n)=>{const{queryParameters:i,...u}=n||{},a={acl:t,...void 0!==i?{queryParameters:i}:{}};return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/keys",data:a},u),(t,n)=>(0,r.createRetryablePromise)(r=>D(e)(t.key,n).catch(e=>{if(404!==e.status)throw e;return r()})))},p=e=>(t,n,r)=>{const u=(0,i.createMappedRequestOptions)(r);return u.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Post,path:"1/clusters/mapping",data:{cluster:n}},u)},h=e=>(t,n,r)=>e.transporter.write({method:o.N.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:n}},r),m=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"copy",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),v=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Rules]}),b=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Settings]}),g=e=>(t,n,r)=>m(e)(t,n,{...r,scope:[xe.Synonyms]}),_=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/keys/%s",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).then(n).catch(e=>{if(404!==e.status)throw e}))),y=()=>(e,t)=>{const n=(0,i.serializeQueryParameters)(t),r=(0,u.createHmac)("sha256",e).update(n).digest("hex");return Buffer.from(r+n).toString("base64")},D=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/keys/%s",t)},n),w=e=>t=>e.transporter.read({method:o.N.Get,path:"1/logs"},t),E=()=>e=>{const t=Buffer.from(e,"base64").toString("ascii").match(/validUntil=(\d+)/);if(null===t)throw{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."};return parseInt(t[1],10)-Math.round((new Date).getTime()/1e3)},C=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/top"},t),T=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/clusters/mapping/%s",t)},n),k=e=>t=>{const{retrieveMappings:n,...r}=t||{};return!0===n&&(r.getClusters=!0),e.transporter.read({method:o.N.Get,path:"1/clusters/mapping/pending"},r)},S=e=>(t,n={})=>{const i={transporter:e.transporter,appId:e.appId,indexName:t};return(0,r.addMethods)(i,n.methods)},M=e=>t=>e.transporter.read({method:o.N.Get,path:"1/keys"},t),x=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters"},t),A=e=>t=>e.transporter.read({method:o.N.Get,path:"1/indexes"},t),P=e=>t=>e.transporter.read({method:o.N.Get,path:"1/clusters/mapping"},t),O=e=>(t,n,i)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:"move",destination:n}},i),(n,r)=>S(e)(t,{methods:{waitTask:ke}}).waitTask(n.taskID,r)),R=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:"1/indexes/*/batch",data:{requests:t}},n),(t,n)=>Promise.all(Object.keys(t.taskID).map(r=>S(e)(r,{methods:{waitTask:ke}}).waitTask(t.taskID[r],n)))),N=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:t}},n),I=e=>(t,n)=>{const r=t.map(e=>({...e,params:(0,i.serializeQueryParameters)(e.params||{})}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)},F=e=>(t,n)=>Promise.all(t.map(t=>{const{facetName:r,facetQuery:i,...o}=t.params;return S(e)(t.indexName,{methods:{searchForFacetValues:we}}).searchForFacetValues(r,i,{...n,...o})})),B=e=>(t,n)=>{const r=(0,i.createMappedRequestOptions)(n);return r.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:o.N.Delete,path:"1/clusters/mapping"},r)},L=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/keys/%s/restore",t)},n),(n,i)=>(0,r.createRetryablePromise)(n=>D(e)(t,i).catch(e=>{if(404!==e.status)throw e;return n()}))),U=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:"1/clusters/mapping/search",data:{query:t}},n),j=e=>(t,n)=>{const i=Object.assign({},n),{queryParameters:u,...a}=n||{},l=u?{queryParameters:u}:{},s=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/keys/%s",t),data:l},a),(n,o)=>(0,r.createRetryablePromise)(n=>D(e)(t,o).then(e=>(e=>Object.keys(i).filter(e=>-1!==s.indexOf(e)).every(t=>e[t]===i[t]))(e)?Promise.resolve():n())))},W=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/batch",e.indexName),data:{requests:t}},n),(t,n)=>ke(e)(t.taskID,n)),z=e=>t=>a({...t,shouldStop:e=>void 0===e.cursor,request:n=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/browse",e.indexName),data:n},t)}),q=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.length<n.hitsPerPage,request:t=>Ee(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},H=e=>t=>{const n={hitsPerPage:1e3,...t};return a({...n,shouldStop:e=>e.hits.length<n.hitsPerPage,request:t=>Ce(e)("",{...n,...t}).then(e=>({...e,hits:e.hits.map(e=>(delete e._highlightResult,e))}))})},G=e=>(t,n,i)=>{const{batchSize:o,...u}=i||{},a={taskIDs:[],objectIDs:[]},l=(r=0)=>{const i=[];let s;for(s=r;s<t.length&&(i.push(t[s]),i.length!==(o||1e3));s++);return 0===i.length?Promise.resolve(a):W(e)(i.map(e=>({action:n,body:e})),u).then(e=>(a.objectIDs=a.objectIDs.concat(e.objectIDs),a.taskIDs.push(e.taskID),s++,l(s)))};return(0,r.createWaitablePromise)(l(),(t,n)=>Promise.all(t.taskIDs.map(t=>ke(e)(t,n))))},V=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/clear",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),Y=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},K=e=>t=>{const{forwardToReplicas:n,...u}=t||{},a=(0,i.createMappedRequestOptions)(u);return n&&(a.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/clear",e.indexName)},a),(t,n)=>ke(e)(t.taskID,n))},$=e=>(t,n)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/deleteByQuery",e.indexName),data:t},n),(t,n)=>ke(e)(t.taskID,n)),X=e=>t=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s",e.indexName)},t),(t,n)=>ke(e)(t.taskID,n)),J=e=>(t,n)=>(0,r.createWaitablePromise)(Q(e)([t],n).then(e=>({taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),Q=e=>(t,n)=>{const r=t.map(e=>({objectID:e}));return G(e)(r,Me.DeleteObject,n)},Z=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},ee=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Delete,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},l),(t,n)=>ke(e)(t.taskID,n))},te=e=>t=>ae(e)(t).then(()=>!0).catch(e=>{if(404!==e.status)throw e;return!1}),ne=e=>(t,n)=>{const{query:r,paginate:i,...o}=n||{};let u=0;const a=()=>De(e)(r||"",{...o,page:u}).then(e=>{for(const[n,r]of Object.entries(e.hits))if(t(r))return{object:r,position:parseInt(n,10),page:u};if(u++,!1===i||u>=e.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return a()});return a()},re=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/%s",e.indexName,t)},n),ie=()=>(e,t)=>{for(const[n,r]of Object.entries(e.hits))if(r.objectID===t)return parseInt(n,10);return-1},oe=e=>(t,n)=>{const{attributesToRetrieve:r,...i}=n||{},u=t.map(t=>({indexName:e.indexName,objectID:t,...r?{attributesToRetrieve:r}:{}}));return e.transporter.read({method:o.N.Post,path:"1/indexes/*/objects",data:{requests:u}},i)},ue=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/rules/%s",e.indexName,t)},n),ae=e=>t=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),le=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/synonyms/%s",e.indexName,t)},n),se=e=>(t,n)=>e.transporter.read({method:o.N.Get,path:(0,r.encode)("1/indexes/%s/task/%s",e.indexName,t.toString())},n),ce=e=>(t,n)=>(0,r.createWaitablePromise)(fe(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),fe=e=>(t,n)=>{const{createIfNotExists:r,...i}=n||{},o=r?Me.PartialUpdateObject:Me.PartialUpdateObjectNoCreate;return G(e)(t,o,i)},de=e=>(t,n)=>{const{safe:i,autoGenerateObjectIDIfNotExist:u,batchSize:a,...l}=n||{},s=(t,n,i,u)=>(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/operation",t),data:{operation:i,destination:n}},u),(t,n)=>ke(e)(t.taskID,n)),c=Math.random().toString(36).substring(7),f=`${e.indexName}_tmp_${c}`,d=ve({appId:e.appId,transporter:e.transporter,indexName:f});let p=[];const h=s(e.indexName,f,"copy",{...l,scope:["settings","synonyms","rules"]});p.push(h);const m=(i?h.wait(l):h).then(()=>{const e=d(t,{...l,autoGenerateObjectIDIfNotExist:u,batchSize:a});return p.push(e),i?e.wait(l):e}).then(()=>{const t=s(f,e.indexName,"move",l);return p.push(t),i?t.wait(l):t}).then(()=>Promise.all(p)).then(([e,t,n])=>({objectIDs:t.objectIDs,taskIDs:[e.taskID,...t.taskIDs,n.taskID]}));return(0,r.createWaitablePromise)(m,(e,t)=>Promise.all(p.map(e=>e.wait(t))))},pe=e=>(t,n)=>ge(e)(t,{...n,clearExistingRules:!0}),he=e=>(t,n)=>ye(e)(t,{...n,replaceExistingSynonyms:!0}),me=e=>(t,n)=>(0,r.createWaitablePromise)(ve(e)([t],n).then(e=>({objectID:e.objectIDs[0],taskID:e.taskIDs[0]})),(t,n)=>ke(e)(t.taskID,n)),ve=e=>(t,n)=>{const{autoGenerateObjectIDIfNotExist:i,...o}=n||{},u=i?Me.AddObject:Me.UpdateObject;if(u===Me.UpdateObject)for(const e of t)if(void 0===e.objectID)return(0,r.createWaitablePromise)(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}));return G(e)(t,u,o)},be=e=>(t,n)=>ge(e)([t],n),ge=e=>(t,n)=>{const{forwardToReplicas:u,clearExistingRules:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.clearExistingRules=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},_e=e=>(t,n)=>ye(e)([t],n),ye=e=>(t,n)=>{const{forwardToReplicas:u,replaceExistingSynonyms:a,...l}=n||{},s=(0,i.createMappedRequestOptions)(l);return u&&(s.queryParameters.forwardToReplicas=1),a&&(s.queryParameters.replaceExistingSynonyms=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/batch",e.indexName),data:t},s),(t,n)=>ke(e)(t.taskID,n))},De=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n),we=e=>(t,n,i)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},i),Ee=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/rules/search",e.indexName),data:{query:t}},n),Ce=e=>(t,n)=>e.transporter.read({method:o.N.Post,path:(0,r.encode)("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},n),Te=e=>(t,n)=>{const{forwardToReplicas:u,...a}=n||{},l=(0,i.createMappedRequestOptions)(a);return u&&(l.queryParameters.forwardToReplicas=1),(0,r.createWaitablePromise)(e.transporter.write({method:o.N.Put,path:(0,r.encode)("1/indexes/%s/settings",e.indexName),data:t},l),(t,n)=>ke(e)(t.taskID,n))},ke=e=>(t,n)=>(0,r.createRetryablePromise)(r=>se(e)(t,n).then(e=>"published"!==e.status?r():void 0)),Se={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Me={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},xe={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ae={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Pe={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"}},8045:(e,t,n)=>{"use strict";function r(){return{debug:(e,t)=>Promise.resolve(),info:(e,t)=>Promise.resolve(),error:(e,t)=>Promise.resolve()}}n.r(t),n.d(t,{LogLevelEnum:()=>i,createNullLogger:()=>r});const i={Debug:1,Info:2,Error:3}},5541:(e,t,n)=>{"use strict";n.d(t,{N:()=>r});const r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"}},9178:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createNodeHttpRequester:()=>u});var r=n(8605),i=n(7211),o=n(8835);function u(){const e={keepAlive:!0},t=new r.Agent(e),n=new i.Agent(e);return{send:e=>new Promise(u=>{const a=(0,o.parse)(e.url),l=null===a.query?a.pathname:`${a.pathname}?${a.query}`,s={agent:"https:"===a.protocol?n:t,hostname:a.hostname,path:l,method:e.method,headers:e.headers,...void 0!==a.port?{port:a.port||""}:{}},c=("https:"===a.protocol?i:r).request(s,e=>{let t="";e.on("data",e=>t+=e),e.on("end",()=>{clearTimeout(d),clearTimeout(p),u({status:e.statusCode||0,content:t,isTimedOut:!1})})}),f=(e,t)=>setTimeout(()=>{c.abort(),u({status:0,content:t,isTimedOut:!0})},1e3*e),d=f(e.connectTimeout,"Connection timeout");let p;c.on("error",e=>{clearTimeout(d),clearTimeout(p),u({status:0,content:e.message,isTimedOut:!1})}),c.once("response",()=>{clearTimeout(d),p=f(e.responseTimeout,"Socket timeout")}),void 0!==e.data&&c.write(e.data),c.end()}),destroy:()=>(t.destroy(),n.destroy(),Promise.resolve())}}},7858:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CallEnum:()=>o,HostStatusEnum:()=>u,createApiError:()=>w,createDeserializationError:()=>E,createMappedRequestOptions:()=>i,createRetryError:()=>C,createStatefulHost:()=>a,createStatelessHost:()=>c,createTransporter:()=>d,createUserAgent:()=>p,deserializeFailure:()=>m,deserializeSuccess:()=>h,isStatefulHostTimeouted:()=>s,isStatefulHostUp:()=>l,serializeData:()=>g,serializeHeaders:()=>_,serializeQueryParameters:()=>b,serializeUrl:()=>v,stackFrameWithoutCredentials:()=>D,stackTraceWithoutCredentials:()=>y});var r=n(5541);function i(e,t){const n=e||{},r=n.data||{};return Object.keys(n).forEach(e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(r[e]=n[e])}),{data:Object.entries(r).length>0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}const o={Read:1,Write:2,Any:3},u={Up:1,Down:2,Timeouted:3};function a(e,t=u.Up){return{...e,status:t,lastUpdate:Date.now()}}function l(e){return e.status===u.Up||Date.now()-e.lastUpdate>12e4}function s(e){return e.status===u.Timeouted&&Date.now()-e.lastUpdate<=12e4}function c(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||o.Any}}function f(e,t,n,i){const o=[],f=g(n,i),d=_(e,i),p=n.method,b=n.method!==r.N.Get?{}:{...n.data,...i.data},w={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...b,...i.queryParameters};let E=0;const T=(t,r)=>{const l=t.pop();if(void 0===l)throw C(y(o));const s={data:f,headers:d,method:p,url:v(l,n.path,w),connectTimeout:r(E,e.timeouts.connect),responseTimeout:r(E,i.timeout)},c=e=>{const n={request:s,response:e,host:l,triesLeft:t.length};return o.push(n),n},b={onSucess:e=>h(e),onRetry(n){const i=c(n);return n.isTimedOut&&E++,Promise.all([e.logger.info("Retryable failure",D(i)),e.hostsCache.set(l,a(l,n.isTimedOut?u.Timeouted:u.Down))]).then(()=>T(t,r))},onFail(e){throw c(e),m(e,y(o))}};return e.requester.send(s).then(e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSucess(e):t.onFail(e))(e,b))};return function(e,t){return Promise.all(t.map(t=>e.get(t,()=>Promise.resolve(a(t))))).then(e=>{const n=e.filter(e=>l(e)),r=e.filter(e=>s(e)),i=[...n,...r];return{getTimeout:(e,t)=>(0===r.length&&0===e?1:r.length+3+e)*t,statelessHosts:i.length>0?i.map(e=>c(e)):t}})}(e.hostsCache,t).then(e=>T([...e.statelessHosts].reverse(),e.getTimeout))}function d(e){const{hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,hosts:d,queryParameters:p,headers:h}=e,m={hostsCache:t,logger:n,requester:r,requestsCache:u,responsesCache:a,timeouts:l,userAgent:s,headers:h,queryParameters:p,hosts:d.map(e=>c(e)),read(e,t){const n=i(t,m.timeouts.read),r=()=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Read)),e,n);if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();const u={request:e,mappedRequestOptions:n,transporter:{queryParameters:m.queryParameters,headers:m.headers}};return m.responsesCache.get(u,()=>m.requestsCache.get(u,()=>m.requestsCache.set(u,r()).then(e=>Promise.all([m.requestsCache.delete(u),e]),e=>Promise.all([m.requestsCache.delete(u),Promise.reject(e)])).then(([e,t])=>t)),{miss:e=>m.responsesCache.set(u,e)})},write:(e,t)=>f(m,m.hosts.filter(e=>0!=(e.accept&o.Write)),e,i(t,m.timeouts.write))};return m}function p(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const n=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(n)&&(t.value=`${t.value}${n}`),t}};return t}function h(e){try{return JSON.parse(e.content)}catch(t){throw E(t.message,e)}}function m({content:e,status:t},n){let r=e;try{r=JSON.parse(e).message}catch(e){}return w(r,t,n)}function v(e,t,n){const r=b(n);let i=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return r.length&&(i+="?"+r),i}function b(e){return Object.keys(e).map(t=>{return function(e,...t){let n=0;return e.replace(/%s/g,()=>encodeURIComponent(t[n++]))}("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n}).join("&")}function g(e,t){if(e.method===r.N.Get||void 0===e.data&&void 0===t.data)return;const n=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(n)}function _(e,t){const n={...e.headers,...t.headers},r={};return Object.keys(n).forEach(e=>{const t=n[e];r[e.toLowerCase()]=t}),r}function y(e){return e.map(e=>D(e))}function D(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function w(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}function E(e,t){return{name:"DeserializationError",message:e,response:t}}function C(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}},8774:(e,t,n)=>{"use strict";var r=n(469),i=n(6712),o=n(2223),u=n(1757),a=n(103),l=n(6586),s=n(8045),c=n(9178),f=n(7858);function d(e,t,n){const d={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:c.createNodeHttpRequester(),logger:s.createNullLogger(),responsesCache:r.createNullCache(),requestsCache:r.createNullCache(),hostsCache:i.createInMemoryCache(),userAgent:f.createUserAgent(u.version).add({segment:"Node.js",version:process.versions.node})};return l.createSearchClient({...d,...n,methods:{search:l.multipleQueries,searchForFacetValues:l.multipleSearchForFacetValues,multipleBatch:l.multipleBatch,multipleGetObjects:l.multipleGetObjects,multipleQueries:l.multipleQueries,copyIndex:l.copyIndex,copySettings:l.copySettings,copyRules:l.copyRules,copySynonyms:l.copySynonyms,moveIndex:l.moveIndex,listIndices:l.listIndices,getLogs:l.getLogs,listClusters:l.listClusters,multipleSearchForFacetValues:l.multipleSearchForFacetValues,getApiKey:l.getApiKey,addApiKey:l.addApiKey,listApiKeys:l.listApiKeys,updateApiKey:l.updateApiKey,deleteApiKey:l.deleteApiKey,restoreApiKey:l.restoreApiKey,assignUserID:l.assignUserID,assignUserIDs:l.assignUserIDs,getUserID:l.getUserID,searchUserIDs:l.searchUserIDs,listUserIDs:l.listUserIDs,getTopUserIDs:l.getTopUserIDs,removeUserID:l.removeUserID,hasPendingMappings:l.hasPendingMappings,generateSecuredApiKey:l.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:l.getSecuredApiKeyRemainingValidity,destroy:u.destroy,initIndex:e=>t=>l.initIndex(e)(t,{methods:{batch:l.batch,delete:l.deleteIndex,getObject:l.getObject,getObjects:l.getObjects,saveObject:l.saveObject,saveObjects:l.saveObjects,search:l.search,searchForFacetValues:l.searchForFacetValues,waitTask:l.waitTask,setSettings:l.setSettings,getSettings:l.getSettings,partialUpdateObject:l.partialUpdateObject,partialUpdateObjects:l.partialUpdateObjects,deleteObject:l.deleteObject,deleteObjects:l.deleteObjects,deleteBy:l.deleteBy,clearObjects:l.clearObjects,browseObjects:l.browseObjects,getObjectPosition:l.getObjectPosition,findObject:l.findObject,exists:l.exists,saveSynonym:l.saveSynonym,saveSynonyms:l.saveSynonyms,getSynonym:l.getSynonym,searchSynonyms:l.searchSynonyms,browseSynonyms:l.browseSynonyms,deleteSynonym:l.deleteSynonym,clearSynonyms:l.clearSynonyms,replaceAllObjects:l.replaceAllObjects,replaceAllSynonyms:l.replaceAllSynonyms,searchRules:l.searchRules,getRule:l.getRule,deleteRule:l.deleteRule,saveRule:l.saveRule,saveRules:l.saveRules,replaceAllRules:l.replaceAllRules,browseRules:l.browseRules,clearRules:l.clearRules}}),initAnalytics:()=>e=>o.createAnalyticsClient({...d,...e,methods:{addABTest:o.addABTest,getABTest:o.getABTest,getABTests:o.getABTests,stopABTest:o.stopABTest,deleteABTest:o.deleteABTest}}),initRecommendation:()=>e=>a.createRecommendationClient({...d,...e,methods:{getPersonalizationStrategy:a.getPersonalizationStrategy,setPersonalizationStrategy:a.setPersonalizationStrategy}})}})}d.version=u.version,e.exports=d},4410:(e,t,n)=>{const r=n(8774);e.exports=r,e.exports.default=r},327:e=>{"use strict";const t=e.exports,n="[",r="]",i="",o=";",u="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?n+(e+1)+"G":n+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let r="";return e<0?r+=n+-e+"D":e>0&&(r+=n+e+"C"),t<0?r+=n+-t+"A":t>0&&(r+=n+t+"B"),r},t.cursorUp=e=>n+("number"==typeof e?e:1)+"A",t.cursorDown=e=>n+("number"==typeof e?e:1)+"B",t.cursorForward=e=>n+("number"==typeof e?e:1)+"C",t.cursorBackward=e=>n+("number"==typeof e?e:1)+"D",t.cursorLeft="[G",t.cursorSavePosition=n+(u?"7":"s"),t.cursorRestorePosition=n+(u?"8":"u"),t.cursorGetPosition="[6n",t.cursorNextLine="[E",t.cursorPrevLine="[F",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let n="";for(let r=0;r<e;r++)n+=t.eraseLine+(r<e-1?t.cursorUp():"");return e&&(n+=t.cursorLeft),n},t.eraseEndLine="[K",t.eraseStartLine="[1K",t.eraseLine="[2K",t.eraseDown="[J",t.eraseUp="[1J",t.eraseScreen="[2J",t.scrollUp="[S",t.scrollDown="[T",t.clearScreen="c",t.clearTerminal="win32"===process.platform?t.eraseScreen+"[0f":t.eraseScreen+"[3J[H",t.beep=i,t.link=(e,t)=>[r,"8",o,o,t,i,e,r,"8",o,o,i].join(""),t.image=(e,t)=>{let n=r+"1337;File=inline=1";return(t=t||{}).width&&(n+=";width="+t.width),t.height&&(n+=";height="+t.height),!1===t.preserveAspectRatio&&(n+=";preserveAspectRatio=0"),n+":"+e.toString("base64")+i},t.iTerm={},t.iTerm.setCwd=e=>r+"50;CurrentDir="+(e||process.cwd())+i},7788:e=>{"use strict";e.exports=()=>{const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|");return new RegExp(e,"g")}},5378:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},5256:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(7410),i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},o=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},u=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const i=r[n];t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,a=(e,t,n)=>[e,t,n];t.color.close="[39m",t.bgColor.close="[49m",t.color.ansi={ansi:i(n,0)},t.color.ansi256={ansi256:o(n,0)},t.color.ansi16m={rgb:u(a,0)},t.bgColor.ansi={ansi:i(n,10)},t.bgColor.ansi256={ansi256:o(n,10)},t.bgColor.ansi16m={rgb:u(a,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=i(n.ansi16,0),t.bgColor.ansi[e]=i(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=o(n.ansi256,0),t.bgColor.ansi256[e]=o(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=u(n.rgb,0),t.bgColor.ansi16m[e]=u(n.rgb,10))}return t}})},8483:(e,t,n)=>{"use strict";e=n.nmd(e);const r=(e,t)=>(...n)=>`[${e(...n)+t}m`,i=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};5;${r}m`},o=(e,t)=>(...n)=>{const r=e(...n);return`[${38+t};2;${r[0]};${r[1]};${r[2]}m`},u=e=>e,a=(e,t,n)=>[e,t,n],l=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{const r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})};let s;const c=(e,t,r,i)=>{void 0===s&&(s=n(2744));const o=i?10:0,u={};for(const[n,i]of Object.entries(s)){const a="ansi16"===n?"ansi":n;n===t?u[a]=e(r,o):"object"==typeof i&&(u[a]=e(i[t],o))}return u};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[n,r]of Object.entries(t)){for(const[n,i]of Object.entries(r))t[n]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[n]=t[n],e.set(i[0],i[1]);Object.defineProperty(t,n,{value:r,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="[39m",t.bgColor.close="[49m",l(t.color,"ansi",()=>c(r,"ansi16",u,!1)),l(t.color,"ansi256",()=>c(i,"ansi256",u,!1)),l(t.color,"ansi16m",()=>c(o,"rgb",a,!1)),l(t.bgColor,"ansi",()=>c(r,"ansi16",u,!0)),l(t.bgColor,"ansi256",()=>c(i,"ansi256",u,!0)),l(t.bgColor,"ansi16m",()=>c(o,"rgb",a,!0)),t}})},3810:e=>{"use strict";e.exports=function(e){return null==e?[]:Array.isArray(e)?e:[e]}},5640:e=>{"use strict";e.exports=e=>e&&e.exact?new RegExp("^[\ud800-\udbff][\udc00-\udfff]$"):new RegExp("[\ud800-\udbff][\udc00-\udfff]","g")},2939:(e,t,n)=>{"use strict";e=n.nmd(e);e.exports=(e,t)=>{t=Object.assign({},t);const n=e=>{const n=t=>"string"==typeof t?e===t:t.test(e);return t.include?t.include.some(n):!t.exclude||!t.exclude.some(n)};for(const[t,r]of(e=>{const t=new Set;do{for(const n of Reflect.ownKeys(e))t.add([e,n])}while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t})(e.constructor.prototype)){if("constructor"===r||!n(r))continue;const i=Reflect.getOwnPropertyDescriptor(t,r);i&&"function"==typeof i.value&&(e[r]=e[r].bind(e))}return e};const r=["componentWillMount","UNSAFE_componentWillMount","render","getSnapshotBeforeUpdate","componentDidMount","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","componentDidUpdate","componentWillUnmount","componentDidCatch","setState","forceUpdate"];e.exports.react=(t,n)=>((n=Object.assign({},n)).exclude=(n.exclude||[]).concat(r),e.exports(t,n))},9244:(e,t,n)=>{"use strict";const r=n(6349),i=n(5256),o=n(5180).stdout,u=n(2831),a="win32"===process.platform&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),l=["ansi","ansi","ansi256","ansi16m"],s=new Set(["gray"]),c=Object.create(null);function f(e,t){t=t||{};const n=o?o.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function d(e){if(!this||!(this instanceof d)||this.template){const t={};return f(t,e),t.template=function(){const e=[].slice.call(arguments);return v.apply(null,[t.template].concat(e))},Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=d,t.template}f(this,e)}a&&(i.blue.open="[94m");for(const e of Object.keys(i))i[e].closeRe=new RegExp(r(i[e].close),"g"),c[e]={get(){const t=i[e];return h.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};c.visible={get(){return h.call(this,this._styles||[],!0,"visible")}},i.color.closeRe=new RegExp(r(i.color.close),"g");for(const e of Object.keys(i.color.ansi))s.has(e)||(c[e]={get(){const t=this.level;return function(){const n=i.color[l[t]][e].apply(null,arguments),r={open:n,close:i.color.close,closeRe:i.color.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}});i.bgColor.closeRe=new RegExp(r(i.bgColor.close),"g");for(const e of Object.keys(i.bgColor.ansi)){if(s.has(e))continue;c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const t=this.level;return function(){const n=i.bgColor[l[t]][e].apply(null,arguments),r={open:n,close:i.bgColor.close,closeRe:i.bgColor.closeRe};return h.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}}}const p=Object.defineProperties(()=>{},c);function h(e,t,n){const r=function(){return m.apply(r,arguments)};r._styles=e,r._empty=t;const i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:()=>i.level,set(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>i.enabled,set(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=p,r}function m(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;r<t;r++)n+=" "+e[r];if(!this.enabled||this.level<=0||!n)return this._empty?"":n;const r=i.dim.open;a&&this.hasGrey&&(i.dim.open="");for(const e of this._styles.slice().reverse())n=e.open+n.replace(e.closeRe,e.open)+e.close,n=n.replace(/\r?\n/g,`${e.close}$&${e.open}`);return i.dim.open=r,n}function v(e,t){if(!Array.isArray(t))return[].slice.call(arguments,1).join(" ");const n=[].slice.call(arguments,2),r=[t.raw[0]];for(let e=1;e<t.length;e++)r.push(String(n[e-1]).replace(/[{}\\]/g,"\\$&")),r.push(String(t.raw[e]));return u(e,r.join(""))}Object.defineProperties(d.prototype,c),e.exports=d(),e.exports.supportsColor=o,e.exports.default=e.exports},2831:e=>{"use strict";const t=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o)if(isNaN(t)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(Number(t));return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},5882:(e,t,n)=>{"use strict";const r=n(8483),{stdout:i,stderr:o}=n(9428),{stringReplaceAll:u,stringEncaseCRLFWithFirstIndex:a}=n(3327),l=["ansi","ansi","ansi256","ansi16m"],s=Object.create(null);class c{constructor(e){return f(e)}}const f=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const n=i?i.level:0;e.level=void 0===t.level?n:t.level})(t,e),t.template=(...e)=>_(t.template,...e),Object.setPrototypeOf(t,d.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=c,t.template};function d(e){return f(e)}for(const[e,t]of Object.entries(r))s[e]={get(){const n=v(this,m(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};s.visible={get(){const e=v(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const p=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of p)s[e]={get(){const{level:t}=this;return function(...n){const i=m(r.color[l[t]][e](...n),r.color.close,this._styler);return v(this,i,this._isEmpty)}}};for(const e of p){s["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...n){const i=m(r.bgColor[l[t]][e](...n),r.bgColor.close,this._styler);return v(this,i,this._isEmpty)}}}}const h=Object.defineProperties(()=>{},{...s,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),m=(e,t,n)=>{let r,i;return void 0===n?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},v=(e,t,n)=>{const r=(...e)=>b(r,1===e.length?""+e[0]:e.join(" "));return r.__proto__=h,r._generator=e,r._styler=t,r._isEmpty=n,r},b=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(void 0===n)return t;const{openAll:r,closeAll:i}=n;if(-1!==t.indexOf(""))for(;void 0!==n;)t=u(t,n.close,n.open),n=n.parent;const o=t.indexOf("\n");return-1!==o&&(t=a(t,i,r,o)),r+t+i};let g;const _=(e,...t)=>{const[r]=t;if(!Array.isArray(r))return t.join(" ");const i=t.slice(1),o=[r.raw[0]];for(let e=1;e<r.length;e++)o.push(String(i[e-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[e]));return void 0===g&&(g=n(690)),g(e,o.join(""))};Object.defineProperties(d.prototype,s);const y=d();y.supportsColor=i,y.stderr=d({level:o?o.level:0}),y.stderr.supportsColor=o,y.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"},e.exports=y},690:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,r=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){const t="u"===e[0],n="{"===e[1];return t&&!n&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function a(e,t){const n=[],o=t.trim().split(/\s*,\s*/g);let a;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(a=t.match(r)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(a[2].replace(i,(e,t,n)=>t?u(t):n))}else n.push(o)}return n}function l(e){n.lastIndex=0;const t=[];let r;for(;null!==(r=n.exec(e));){const e=r[1];if(r[2]){const n=a(e,r[2]);t.push([e].concat(n))}else t.push([e])}return t}function s(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw new Error("Unknown Chalk style: "+e);r=t.length>0?r[e](...t):r[e]}return r}e.exports=(e,n)=>{const r=[],i=[];let o=[];if(n.replace(t,(t,n,a,c,f,d)=>{if(n)o.push(u(n));else if(c){const t=o.join("");o=[],i.push(0===r.length?t:s(e,r)(t)),r.push({inverse:a,styles:l(c)})}else if(f){if(0===r.length)throw new Error("Found extraneous } in Chalk template literal");i.push(s(e,r)(o.join(""))),o=[],r.pop()}else o.push(d)}),i.push(o.join("")),r.length>0){const e=`Chalk template literal is missing ${r.length} closing bracket${1===r.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},3327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,n)=>{let r=e.indexOf(t);if(-1===r)return e;const i=t.length;let o=0,u="";do{u+=e.substr(o,r-o)+t+n,o=r+i,r=e.indexOf(t,o)}while(-1!==r);return u+=e.substr(o),u},stringEncaseCRLFWithFirstIndex:(e,t,n,r)=>{let i=0,o="";do{const u="\r"===e[r-1];o+=e.substr(i,(u?r-1:r)-i)+t+(u?"\r\n":"\n")+n,i=r+1,r=e.indexOf("\n",i)}while(-1!==r);return o+=e.substr(i),o}}},5864:(e,t,n)=>{"use strict";var r=n(5832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:r.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,r.forEach((function(e){var n=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=n,n)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},5832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},1305:(e,t,n)=>{"use strict";const r=n(2428);let i=!1;t.show=e=>{const t=e||process.stderr;t.isTTY&&(i=!1,t.write("[?25h"))},t.hide=e=>{const t=e||process.stderr;t.isTTY&&(r(),i=!0,t.write("[?25l"))},t.toggle=(e,n)=>{void 0!==e&&(i=e),i?t.show(n):t.hide(n)}},4093:(e,t,n)=>{"use strict";const r=n(7498),i=n(5478);e.exports=(e,t,n)=>{const o=(n=Object.assign({position:"end"},n)).position;if("string"!=typeof e)throw new TypeError("Expected `input` to be a string, got "+typeof e);if("number"!=typeof t)throw new TypeError("Expected `columns` to be a number, got "+typeof t);if(t<1)return"";if(1===t)return"…";const u=i(e);if(u<=t)return e;if("start"===o)return"…"+r(e,u-t+1,u);if("middle"===o){const n=Math.floor(t/2);return r(e,0,n)+"…"+r(e,u-(t-n)+1,u)}if("end"===o)return r(e,0,t-1)+"…";throw new Error("Expected `options.position` to be either `start`, `middle` or `end`, got "+o)}},9486:(e,t,n)=>{var r=n(3110),i={};for(var o in r)r.hasOwnProperty(o)&&(i[r[o]]=o);var u=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var a in u)if(u.hasOwnProperty(a)){if(!("channels"in u[a]))throw new Error("missing channels property: "+a);if(!("labels"in u[a]))throw new Error("missing channel labels property: "+a);if(u[a].labels.length!==u[a].channels)throw new Error("channel and label counts mismatch: "+a);var l=u[a].channels,s=u[a].labels;delete u[a].channels,delete u[a].labels,Object.defineProperty(u[a],"channels",{value:l}),Object.defineProperty(u[a],"labels",{value:s})}u.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,u=Math.min(r,i,o),a=Math.max(r,i,o),l=a-u;return a===u?t=0:r===a?t=(i-o)/l:i===a?t=2+(o-r)/l:o===a&&(t=4+(r-i)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(u+a)/2,[t,100*(a===u?0:n<=.5?l/(a+u):l/(2-a-u)),100*n]},u.rgb.hsv=function(e){var t,n,r,i,o,u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?i=o=0:(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},u.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[u.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},u.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},u.rgb.keyword=function(e){var t=i[e];if(t)return t;var n,o,u,a=1/0;for(var l in r)if(r.hasOwnProperty(l)){var s=r[l],c=(o=e,u=s,Math.pow(o[0]-u[0],2)+Math.pow(o[1]-u[1],2)+Math.pow(o[2]-u[2],2));c<a&&(a=c,n=l)}return n},u.keyword.rgb=function(e){return r[e]},u.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},u.rgb.lab=function(e){var t=u.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},u.hsl.rgb=function(e){var t,n,r,i,o,u=e[0]/360,a=e[1]/100,l=e[2]/100;if(0===a)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+a):l+a-l*a),i=[0,0,0];for(var s=0;s<3;s++)(r=u+1/3*-(s-1))<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[s]=255*o;return i},u.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=o<=1?o:2-o,[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},u.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},u.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,u=e[2]/100,a=Math.max(u,.01);return r=(2-o)*u,n=o*a,[i,100*(n=(n/=(t=(2-o)*a)<=1?t:2-t)||0),100*(r/=2)]},u.hwb.rgb=function(e){var t,n,r,i,o,u,a,l=e[0]/360,s=e[1]/100,c=e[2]/100,f=s+c;switch(f>1&&(s/=f,c/=f),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),i=s+r*((n=1-c)-s),t){default:case 6:case 0:o=n,u=i,a=s;break;case 1:o=i,u=n,a=s;break;case 2:o=s,u=n,a=i;break;case 3:o=s,u=i,a=n;break;case 4:o=i,u=s,a=n;break;case 5:o=n,u=s,a=i}return[255*o,255*u,255*a]},u.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},u.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,u=e[2]/100;return n=-.9689*i+1.8758*o+.0415*u,r=.0557*i+-.204*o+1.057*u,t=(t=3.2406*i+-1.5372*o+-.4986*u)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},u.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},u.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var o=Math.pow(n,3),u=Math.pow(t,3),a=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},u.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},u.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},u.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:u.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},u.hsv.ansi16=function(e){return u.rgb.ansi16(u.hsv.rgb(e),e[2])},u.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},u.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},u.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},u.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},u.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},u.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,o=Math.max(Math.max(n,r),i),u=Math.min(Math.min(n,r),i),a=o-u;return t=a<=0?0:o===n?(r-i)/a%6:o===r?2+(i-n)/a:4+(n-r)/a+4,t/=6,[360*(t%=1),100*a,100*(a<1?u/(1-a):0)]},u.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},u.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,o=[0,0,0],u=t%1*6,a=u%1,l=1-a;switch(Math.floor(u)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return i=(1-n)*r,[255*(n*o[0]+i),255*(n*o[1]+i),255*(n*o[2]+i)]},u.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},u.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},u.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},u.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},u.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},u.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},u.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},u.gray.hsl=u.gray.hsv=function(e){return[0,0,e[0]]},u.gray.hwb=function(e){return[0,100,e[0]]},u.gray.cmyk=function(e){return[0,0,0,e[0]]},u.gray.lab=function(e){return[e[0],0,0]},u.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},u.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},7410:(e,t,n)=>{var r=n(9486),i=n(9445),o={};Object.keys(r).forEach((function(e){o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});var t=i(e);Object.keys(t).forEach((function(n){var r=t[n];o[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i<r;i++)n[i]=Math.round(n[i]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(r),o[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=o},9445:(e,t,n)=>{var r=n(9486);function i(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,i=0;i<n;i++)e[t[i]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;)for(var i=n.pop(),o=Object.keys(r[i]),u=o.length,a=0;a<u;a++){var l=o[a],s=t[l];-1===s.distance&&(s.distance=t[i].distance+1,s.parent=i,n.unshift(l))}return t}function o(e,t){return function(n){return t(e(n))}}function u(e,t){for(var n=[t[e].parent,e],i=r[t[e].parent][e],u=t[e].parent;t[u].parent;)n.unshift(t[u].parent),i=o(r[t[u].parent][u],i),u=t[u].parent;return i.conversion=n,i}e.exports=function(e){for(var t=i(e),n={},r=Object.keys(t),o=r.length,a=0;a<o;a++){var l=r[a];null!==t[l].parent&&(n[l]=u(l,t))}return n}},5311:(e,t,n)=>{const r=n(3300),i={};for(const e of Object.keys(r))i[r[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:n}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:n})}o.rgb.hsl=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),o=Math.max(t,n,r),u=o-i;let a,l;o===i?a=0:t===o?a=(n-r)/u:n===o?a=2+(r-t)/u:r===o&&(a=4+(t-n)/u),a=Math.min(60*a,360),a<0&&(a+=360);const s=(i+o)/2;return l=o===i?0:s<=.5?u/(o+i):u/(2-o-i),[a,100*l,100*s]},o.rgb.hsv=function(e){let t,n,r,i,o;const u=e[0]/255,a=e[1]/255,l=e[2]/255,s=Math.max(u,a,l),c=s-Math.min(u,a,l),f=function(e){return(s-e)/6/c+.5};return 0===c?(i=0,o=0):(o=c/s,t=f(u),n=f(a),r=f(l),u===s?i=r-n:a===s?i=1/3+t-r:l===s&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*s]},o.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const i=o.rgb.hsl(e)[0],u=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*u,100*r]},o.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r);return[100*((1-t-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let n,o=1/0;for(const t of Object.keys(r)){const i=r[t],l=(a=i,((u=e)[0]-a[0])**2+(u[1]-a[1])**2+(u[2]-a[2])**2);l<o&&(o=l,n=t)}var u,a;return n},o.keyword.rgb=function(e){return r[e]},o.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;return[100*(.4124*t+.3576*n+.1805*r),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let n=t[0],r=t[1],i=t[2];n/=95.047,r/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*r-16,500*(n-r),200*(r-i)]},o.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let i,o,u;if(0===n)return u=255*r,[u,u,u];i=r<.5?r*(1+n):r+n-r*n;const a=2*r-i,l=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,u=6*o<1?a+6*(i-a)*o:2*o<1?i:3*o<2?a+(i-a)*(2/3-o)*6:a,l[e]=255*u;return l},o.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,i=n;const o=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=o<=1?o:2-o;return[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),u=255*r*(1-n),a=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,u];case 1:return[a,r,u];case 2:return[u,r,l];case 3:return[u,a,r];case 4:return[l,u,r];case 5:return[r,u,a]}},o.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01);let o,u;u=(2-n)*r;const a=(2-n)*i;return o=n*i,o/=a<=1?a:2-a,o=o||0,u/=2,[t,100*o,100*u]},o.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const i=n+r;let o;i>1&&(n/=i,r/=i);const u=Math.floor(6*t),a=1-r;o=6*t-u,0!=(1&u)&&(o=1-o);const l=n+o*(a-n);let s,c,f;switch(u){default:case 6:case 0:s=a,c=l,f=n;break;case 1:s=l,c=a,f=n;break;case 2:s=n,c=a,f=l;break;case 3:s=n,c=l,f=a;break;case 4:s=l,c=n,f=a;break;case 5:s=a,c=n,f=l}return[255*s,255*c,255*f]},o.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let i,o,u;return i=3.2406*t+-1.5372*n+-.4986*r,o=-.9689*t+1.8758*n+.0415*r,u=.0557*t+-.204*n+1.057*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),u=Math.min(Math.max(0,u),1),[255*i,255*o,255*u]},o.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*n-16,500*(t-n),200*(n-r)]},o.lab.xyz=function(e){let t,n,r;n=(e[0]+16)/116,t=e[1]/500+n,r=n-e[2]/200;const i=n**3,o=t**3,u=r**3;return n=i>.008856?i:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,r=u>.008856?u:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},o.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let i;i=360*Math.atan2(r,n)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(n*n+r*r),i]},o.lch.lab=function(e){const t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},o.rgb.ansi16=function(e,t=null){const[n,r,i]=e;let u=null===t?o.rgb.hsv(e)[2]:t;if(u=Math.round(u/50),0===u)return 30;let a=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return 2===u&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];3===t[0].length&&(n=n.split("").map(e=>e+e).join(""));const r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},o.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),o=Math.min(Math.min(t,n),r),u=i-o;let a,l;return a=u<1?o/(1-u):0,l=u<=0?0:i===t?(n-r)/u%6:i===n?2+(r-t)/u:4+(t-n)/u,l/=6,l%=1,[360*l,100*u,100*a]},o.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];const i=[0,0,0],o=t%1*6,u=o%1,a=1-u;let l=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=u,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=u;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=u,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return l=(1-n)*r,[255*(n*i[0]+l),255*(n*i[1]+l),255*(n*i[2]+l)]},o.hcg.hsv=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);let r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},o.hcg.hsl=function(e){const t=e[1]/100,n=e[2]/100*(1-t)+.5*t;let r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},o.hcg.hwb=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){const t=e[1]/100,n=1-e[2]/100,r=n-t;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,n)=>{const r=n(5311),i=n(8577),o={};Object.keys(r).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:r[e].channels}),Object.defineProperty(o[e],"labels",{value:r[e].labels});const t=i(e);Object.keys(t).forEach(n=>{const r=t[n];o[e][n]=function(e){const t=function(...t){const n=t[0];if(null==n)return n;n.length>1&&(t=n);const r=e(t);if("object"==typeof r)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return"conversion"in e&&(t.conversion=e.conversion),t}(r),o[e][n].raw=function(e){const t=function(...t){const n=t[0];return null==n?n:(n.length>1&&(t=n),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=o},8577:(e,t,n)=>{const r=n(5311);function i(e){const t=function(){const e={},t=Object.keys(r);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;){const e=n.pop(),i=Object.keys(r[e]);for(let r=i.length,o=0;o<r;o++){const r=i[o],u=t[r];-1===u.distance&&(u.distance=t[e].distance+1,u.parent=e,n.unshift(r))}}return t}function o(e,t){return function(n){return t(e(n))}}function u(e,t){const n=[t[e].parent,e];let i=r[t[e].parent][e],u=t[e].parent;for(;t[u].parent;)n.unshift(t[u].parent),i=o(r[t[u].parent][u],i),u=t[u].parent;return i.conversion=n,i}e.exports=function(e){const t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){const e=r[i];null!==t[e].parent&&(n[e]=u(e,t))}return n}},3110:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},3300:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},2517:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},6349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},6591:e=>{"use strict";e.exports=(e,t)=>{t=t||process.argv;const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r<i)}},2918:e=>{"use strict";e.exports=(e,t=process.argv)=>{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r<i)}},2738:(e,t,n)=>{"use strict";e.exports=n(5864).isCI},703:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141))},4623:e=>{var t=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,u="object"==typeof global&&global&&global.Object===Object&&global,a="object"==typeof self&&self&&self.Object===Object&&self,l=u||a||Function("return this")(),s=Object.prototype.toString,c=Math.max,f=Math.min,d=function(){return l.Date.now()};function p(e,t,n){var r,i,o,u,a,l,s=0,p=!1,v=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,o=i;return r=i=void 0,s=t,u=e.apply(o,n)}function _(e){return s=e,a=setTimeout(D,t),p?g(e):u}function y(e){var n=e-l;return void 0===l||n>=t||n<0||v&&e-s>=o}function D(){var e=d();if(y(e))return w(e);a=setTimeout(D,function(e){var n=t-(e-l);return v?f(n,o-(e-s)):n}(e))}function w(e){return a=void 0,b&&r?g(e):(r=i=void 0,u)}function E(){var e=d(),n=y(e);if(r=arguments,i=this,l=e,n){if(void 0===a)return _(l);if(v)return a=setTimeout(D,t),g(l)}return void 0===a&&(a=setTimeout(D,t)),u}return t=m(t)||0,h(n)&&(p=!!n.leading,o=(v="maxWait"in n)?c(m(n.maxWait)||0,t):o,b="trailing"in n?!!n.trailing:b),E.cancel=function(){void 0!==a&&clearTimeout(a),s=0,r=l=i=a=void 0},E.flush=function(){return void 0===a?u:w(d())},E}function h(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function m(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==s.call(e)}(e))return NaN;if(h(e)){var u="function"==typeof e.valueOf?e.valueOf():e;e=h(u)?u+"":u}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(t,"");var a=r.test(e);return a||i.test(e)?o(e.slice(2),a?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return h(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),p(e,t,{leading:r,maxWait:t,trailing:i})}},4046:(e,t,n)=>{"use strict";const r=n(327),i=n(1305),o=n(5449),u=(e,t)=>{t=Object.assign({showCursor:!1},t);let n=0;const u=(...u)=>{t.showCursor||i.hide();let a=u.join(" ")+"\n";a=o(a,(e=>{const{columns:t}=e;return t?"win32"===process.platform?t-1:t:80})(e),{trim:!1,hard:!0,wordWrap:!1}),e.write(r.eraseLines(n)+a),n=a.split("\n").length};return u.clear=()=>{e.write(r.eraseLines(n)),n=0},u.done=()=>{n=0,t.showCursor||i.show()},u};e.exports=u(process.stdout),e.exports.default=e.exports,e.exports.stderr=u(process.stderr),e.exports.create=u},2658:e=>{"use strict";e.exports=(e,t)=>{for(const n of Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)))Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n));return e}},9381:e=>{"use strict";
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var u,a,l=i(e),s=1;s<arguments.length;s++){for(var c in u=Object(arguments[s]))n.call(u,c)&&(l[c]=u[c]);if(t){a=t(u);for(var f=0;f<a.length;f++)r.call(u,a[f])&&(l[a[f]]=u[a[f]])}}return l}},4767:(e,t,n)=>{"use strict";const r=n(2658);e.exports=(e,t)=>{if(!0===t)throw new TypeError("The second argument is now an options object");if("function"!=typeof e)throw new TypeError("Expected a function");let n;t=t||{};let i=!1;const o=e.displayName||e.name||"<anonymous>",u=function(){if(i){if(!0===t.throw)throw new Error(`Function \`${o}\` can only be called once`);return n}return i=!0,n=e.apply(this,arguments),e=null,n};return r(u,e),u}},6976:(e,t,n)=>{"use strict";var r=n(9090);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},6271:(e,t,n)=>{e.exports=n(6976)()},9090:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6099:(e,t,n)=>{"use strict";
-/** @license React v16.13.1
- * react.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */var r=n(9381),i="function"==typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,u=i?Symbol.for("react.portal"):60106,a=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,s=i?Symbol.for("react.profiler"):60114,c=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,h=i?Symbol.for("react.memo"):60115,m=i?Symbol.for("react.lazy"):60116,v="function"==typeof Symbol&&Symbol.iterator;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function y(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||g}function D(){}function w(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(b(85));this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},D.prototype=y.prototype;var E=w.prototype=new D;E.constructor=w,r(E,y.prototype),E.isPureReactComponent=!0;var C={current:null},T=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,i={},u=null,a=null;if(null!=t)for(r in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(u=""+t.key),t)T.call(t,r)&&!k.hasOwnProperty(r)&&(i[r]=t[r]);var l=arguments.length-2;if(1===l)i.children=n;else if(1<l){for(var s=Array(l),c=0;c<l;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===i[r]&&(i[r]=l[r]);return{$$typeof:o,type:e,key:u,ref:a,props:i,_owner:C.current}}function M(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var x=/\/+/g,A=[];function P(e,t,n,r){if(A.length){var i=A.pop();return i.result=e,i.keyPrefix=t,i.func=n,i.context=r,i.count=0,i}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function O(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>A.length&&A.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,i){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var l=!1;if(null===t)l=!0;else switch(a){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case u:l=!0}}if(l)return r(i,t,""===n?"."+N(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s<t.length;s++){var c=n+N(a=t[s],s);l+=e(a,c,r,i)}else if(null===t||"object"!=typeof t?c=null:c="function"==typeof(c=v&&t[v]||t["@@iterator"])?c:null,"function"==typeof c)for(t=c.call(t),s=0;!(a=t.next()).done;)l+=e(a=a.value,c=n+N(a,s++),r,i);else if("object"===a)throw r=""+t,Error(b(31,"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return l}(e,"",t,n)}function N(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function I(e,t){e.func.call(e.context,t,e.count++)}function F(e,t,n){var r=e.result,i=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?B(e,r,n,(function(e){return e})):null!=e&&(M(e)&&(e=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,i+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(x,"$&/")+"/")+n)),r.push(e))}function B(e,t,n,r,i){var o="";null!=n&&(o=(""+n).replace(x,"$&/")+"/"),R(e,F,t=P(t,o,r,i)),O(t)}var L={current:null};function U(){var e=L.current;if(null===e)throw Error(b(321));return e}var j={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:C,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:function(e,t,n){if(null==e)return e;var r=[];return B(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;R(e,I,t=P(null,null,t,n)),O(t)},count:function(e){return R(e,(function(){return null}),null)},toArray:function(e){var t=[];return B(e,t,null,(function(e){return e})),t},only:function(e){if(!M(e))throw Error(b(143));return e}},t.Component=y,t.Fragment=a,t.Profiler=s,t.PureComponent=w,t.StrictMode=l,t.Suspense=p,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=j,t.cloneElement=function(e,t,n){if(null==e)throw Error(b(267,e));var i=r({},e.props),u=e.key,a=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,l=C.current),void 0!==t.key&&(u=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)T.call(t,c)&&!k.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];i.children=s}return{$$typeof:o,type:e.type,key:u,ref:a,props:i,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:c,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:d,render:e}},t.isValidElement=M,t.lazy=function(e){return{$$typeof:m,_ctor:e,_status:-1,_result:null}},t.memo=function(e,t){return{$$typeof:h,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return U().useCallback(e,t)},t.useContext=function(e,t){return U().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return U().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return U().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return U().useLayoutEffect(e,t)},t.useMemo=function(e,t){return U().useMemo(e,t)},t.useReducer=function(e,t,n){return U().useReducer(e,t,n)},t.useRef=function(e){return U().useRef(e)},t.useState=function(e){return U().useState(e)},t.version="16.13.1"},7382:(e,t,n)=>{"use strict";e.exports=n(6099)},2428:(e,t,n)=>{"use strict";const r=n(4767),i=n(6458);e.exports=r(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},8992:(e,t)=>{"use strict";
-/** @license React v0.13.6
- * scheduler.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,i=3,o=-1,u=-1,a=!1,l=!1;function s(){if(!a){var e=n.expirationTime;l?E():l=!0,w(d,e)}}function c(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var o=i,a=u;i=e,u=t;try{var l=r()}finally{i=o,u=a}if("function"==typeof l)if(l={callback:l,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=l.next=l.previous=l;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=l,s()),(t=r.previous).next=r.previous=l,l.next=r,l.previous=t}}function f(){if(-1===o&&null!==n&&1===n.priorityLevel){a=!0;try{do{c()}while(null!==n&&1===n.priorityLevel)}finally{a=!1,null!==n?s():l=!1}}}function d(e){a=!0;var i=r;r=e;try{if(e)for(;null!==n;){var o=t.unstable_now();if(!(n.expirationTime<=o))break;do{c()}while(null!==n&&n.expirationTime<=o)}else if(null!==n)do{c()}while(null!==n&&!C())}finally{a=!1,r=i,null!==n?s():l=!1,f()}}var p,h,m=Date,v="function"==typeof setTimeout?setTimeout:void 0,b="function"==typeof clearTimeout?clearTimeout:void 0,g="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,_="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function y(e){p=g((function(t){b(h),e(t)})),h=v((function(){_(p),e(t.unstable_now())}),100)}if("object"==typeof performance&&"function"==typeof performance.now){var D=performance;t.unstable_now=function(){return D.now()}}else t.unstable_now=function(){return m.now()};var w,E,C,T=null;if("undefined"!=typeof window?T=window:"undefined"!=typeof global&&(T=global),T&&T._schedMock){var k=T._schedMock;w=k[0],E=k[1],C=k[2],t.unstable_now=k[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var S=null,M=function(e){if(null!==S)try{S(e)}finally{S=null}};w=function(e){null!==S?setTimeout(w,0,e):(S=e,setTimeout(M,0,!1))},E=function(){S=null},C=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof g&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof _&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var x=null,A=!1,P=-1,O=!1,R=!1,N=0,I=33,F=33;C=function(){return N<=t.unstable_now()};var B=new MessageChannel,L=B.port2;B.port1.onmessage=function(){A=!1;var e=x,n=P;x=null,P=-1;var r=t.unstable_now(),i=!1;if(0>=N-r){if(!(-1!==n&&n<=r))return O||(O=!0,y(U)),x=e,void(P=n);i=!0}if(null!==e){R=!0;try{e(i)}finally{R=!1}}};var U=function(e){if(null!==x){y(U);var t=e-N+F;t<F&&I<F?(8>t&&(t=8),F=t<I?I:t):I=t,N=e+F,A||(A=!0,L.postMessage(void 0))}else O=!1};w=function(e,t){x=e,P=t,R||0>t?L.postMessage(void 0):O||(O=!0,y(U))},E=function(){x=null,A=!1,P=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=i,u=o;i=e,o=t.unstable_now();try{return n()}finally{i=r,o=u,f()}},t.unstable_next=function(e){switch(i){case 1:case 2:case 3:var n=3;break;default:n=i}var r=i,u=o;i=n,o=t.unstable_now();try{return e()}finally{i=r,o=u,f()}},t.unstable_scheduleCallback=function(e,r){var u=-1!==o?o:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=u+r.timeout;else switch(i){case 1:r=u+-1;break;case 2:r=u+250;break;case 5:r=u+1073741823;break;case 4:r=u+1e4;break;default:r=u+5e3}if(e={callback:e,priorityLevel:i,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,s();else{u=null;var a=n;do{if(a.expirationTime>r){u=a;break}a=a.next}while(a!==n);null===u?u=n:u===n&&(n=e,s()),(r=u.previous).next=u.previous=e,e.next=u,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=i;return function(){var r=i,u=o;i=n,o=t.unstable_now();try{return e.apply(this,arguments)}finally{i=r,o=u,f()}}},t.unstable_getCurrentPriorityLevel=function(){return i},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime<u||C())},t.unstable_continueExecution=function(){null!==n&&s()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return n}},5201:(e,t,n)=>{"use strict";e.exports=n(8992)},6458:(e,t,n)=>{var r,i=n(2357),o=n(8082),u=n(8614);function a(){c&&(c=!1,o.forEach((function(e){try{process.removeListener(e,s[e])}catch(e){}})),process.emit=h,process.reallyExit=d,r.count-=1)}function l(e,t,n){r.emitted[e]||(r.emitted[e]=!0,r.emit(e,t,n))}"function"!=typeof u&&(u=u.EventEmitter),process.__signal_exit_emitter__?r=process.__signal_exit_emitter__:((r=process.__signal_exit_emitter__=new u).count=0,r.emitted={}),r.infinite||(r.setMaxListeners(1/0),r.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===c&&f();var n="exit";t&&t.alwaysLast&&(n="afterexit");return r.on(n,e),function(){r.removeListener(n,e),0===r.listeners("exit").length&&0===r.listeners("afterexit").length&&a()}},e.exports.unload=a;var s={};o.forEach((function(e){s[e]=function(){process.listeners(e).length===r.count&&(a(),l("exit",null,e),l("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=f;var c=!1;function f(){c||(c=!0,r.count+=1,o=o.filter((function(e){try{return process.on(e,s[e]),!0}catch(e){return!1}})),process.emit=m,process.reallyExit=p)}var d=process.reallyExit;function p(e){process.exitCode=e||0,l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),d.call(process,process.exitCode)}var h=process.emit;function m(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var n=h.apply(this,arguments);return l("exit",process.exitCode,null),l("afterexit",process.exitCode,null),n}return h.apply(this,arguments)}},8082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},7498:(e,t,n)=>{"use strict";const r=n(703),i=["",""],o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,u=new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[90,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49]]),a=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=Array.from(e.normalize());n="number"==typeof n?n:l.length;let s,c=!1,f=0,d="";for(const p of l.entries()){const l=p[0],h=p[1];let m=!1;if(-1!==i.indexOf(h)){c=!0;const t=/\d[^m]*/.exec(e.slice(l,l+4));s=39===t?null:t}else c&&"m"===h&&(c=!1,m=!0);if(c||m||++f,!o.test(h)&&r(h.codePointAt())&&++f,f>t&&f<=n)d+=h;else if(f!==t||c||void 0===s||39===s){if(f>=n){void 0!==s&&(d+=a(u.get(parseInt(s,10))||39));break}}else d+=a(s)}return d}},2989:(e,t,n)=>{"use strict";const r=n(3455),i=n(5640);e.exports=e=>r(e).replace(i()," ").length},5478:(e,t,n)=>{"use strict";const r=n(3455),i=n(703);e.exports=e=>{if("string"!=typeof e||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n<e.length;n++){const r=e.codePointAt(n);r<=31||r>=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},5554:(e,t,n)=>{"use strict";const r=n(7402),i=n(703),o=n(2517)();e.exports=e=>{if("string"!=typeof(e=e.replace(o,"  "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n<e.length;n++){const r=e.codePointAt(n);r<=31||r>=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=i(r)?2:1))}return t}},3455:(e,t,n)=>{"use strict";const r=n(7788);e.exports=e=>"string"==typeof e?e.replace(r(),""):e},7402:(e,t,n)=>{"use strict";const r=n(5378),i=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=i,e.exports.default=i},5180:(e,t,n)=>{"use strict";const r=n(2087),i=n(6591),o=process.env;let u;function a(e){return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(function(e){if(!1===u)return 0;if(i("color=16m")||i("color=full")||i("color=truecolor"))return 3;if(i("color=256"))return 2;if(e&&!e.isTTY&&!0!==u)return 0;const t=u?1:0;if("win32"===process.platform){const e=r.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:t;if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0;if("truecolor"===o.COLORTERM)return 3;if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)||"COLORTERM"in o?1:(o.TERM,t)}(e))}i("no-color")||i("no-colors")||i("color=false")?u=!1:(i("color")||i("colors")||i("color=true")||i("color=always"))&&(u=!0),"FORCE_COLOR"in o&&(u=0===o.FORCE_COLOR.length||0!==parseInt(o.FORCE_COLOR,10)),e.exports={supportsColor:a,stdout:a(process.stdout),stderr:a(process.stderr)}},9428:(e,t,n)=>{"use strict";const r=n(2087),i=n(3867),o=n(2918),{env:u}=process;let a;function l(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function s(e,t){if(0===a)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===a)return 0;const n=a||0;if("dumb"===u.TERM)return n;if("win32"===process.platform){const e=r.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in u)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in u)||"codeship"===u.CI_NAME?1:n;if("TEAMCITY_VERSION"in u)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(u.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in u)return 1;if("truecolor"===u.COLORTERM)return 3;if("TERM_PROGRAM"in u){const e=parseInt((u.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(u.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(u.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(u.TERM)||"COLORTERM"in u?1:n}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?a=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(a=1),"FORCE_COLOR"in u&&(a="true"===u.FORCE_COLOR?1:"false"===u.FORCE_COLOR?0:0===u.FORCE_COLOR.length?1:Math.min(parseInt(u.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return l(s(e,e&&e.isTTY))},stdout:l(s(!0,i.isatty(1))),stderr:l(s(!0,i.isatty(2)))}},128:(e,t,n)=>{"use strict";const r=n(5478);e.exports=e=>{let t=0;for(const n of e.split("\n"))t=Math.max(t,r(n));return t}},5449:(e,t,n)=>{"use strict";const r=n(5554),i=n(7402),o=n(5256),u=new Set(["",""]),a=e=>`${u.values().next().value}[${e}m`,l=(e,t,n)=>{const o=[...t];let a=!1,l=r(i(e[e.length-1]));for(const[t,i]of o.entries()){const s=r(i);if(l+s<=n?e[e.length-1]+=i:(e.push(i),l=0),u.has(i))a=!0;else if(a&&"m"===i){a=!1;continue}a||(l+=s,l===n&&t<o.length-1&&(e.push(""),l=0))}!l&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},s=e=>{const t=e.split(" ");let n=t.length;for(;n>0&&!(r(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(" ")+t.slice(n).join("")},c=(e,t,n={})=>{if(!1!==n.trim&&""===e.trim())return"";let i,c="",f="";const d=(e=>e.split(" ").map(e=>r(e)))(e);let p=[""];for(const[i,o]of e.split(" ").entries()){!1!==n.trim&&(p[p.length-1]=p[p.length-1].trimLeft());let e=r(p[p.length-1]);if(0!==i&&(e>=t&&(!1===n.wordWrap||!1===n.trim)&&(p.push(""),e=0),(e>0||!1===n.trim)&&(p[p.length-1]+=" ",e++)),n.hard&&d[i]>t){const n=t-e,r=1+Math.floor((d[i]-n-1)/t);Math.floor((d[i]-1)/t)<r&&p.push(""),l(p,o,t)}else{if(e+d[i]>t&&e>0&&d[i]>0){if(!1===n.wordWrap&&e<t){l(p,o,t);continue}p.push("")}e+d[i]>t&&!1===n.wordWrap?l(p,o,t):p[p.length-1]+=o}}!1!==n.trim&&(p=p.map(s)),c=p.join("\n");for(const[e,t]of[...c].entries()){if(f+=t,u.has(t)){const t=parseFloat(/\d[^m]*/.exec(c.slice(e,e+4)));i=39===t?null:t}const n=o.codes.get(Number(i));i&&n&&("\n"===c[e+1]?f+=a(n):"\n"===t&&(f+=a(i)))}return f};e.exports=(e,t,n)=>String(e).normalize().split("\n").map(e=>c(e,t,n)).join("\n")},7356:function(module,exports){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,wrapper;wrapper=function(Module,cb){var Module;"function"==typeof Module&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(e){return void t(e)}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb),Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,nodeFS,nodePath;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE)Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn),Module.read=function(e,t){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return t?n:n.toString()},Module.readBinary=function(e){var t=Module.read(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),module.exports=Module,process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e})),Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,t){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Module.readAsync=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):n()},r.onerror=n,r.send(null)},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return"double"===t||"i64"===t?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,t,n){return n||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,n){return n&&n.length?Module["dynCall_"+e].apply(null,[t].concat(n)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){if(e){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var n=Runtime.funcWrappers[t];return n[e]||(1===t.length?n[e]=function(){return Runtime.dynCall(t,e)}:2===t.length?n[e]=function(n){return Runtime.dynCall(t,e,[n])}:n[e]=function(){return Runtime.dynCall(t,e,Array.prototype.slice.call(arguments))}),n[e]}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=15+(STACKTOP=STACKTOP+e|0)&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=15+(STATICTOP=STATICTOP+e|0)&-16,t},dynamicAlloc:function(e){var t=HEAP32[DYNAMICTOP_PTR>>2],n=-16&(t+e+15|0);return HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY&&!enlargeMemory()?(HEAP32[DYNAMICTOP_PTR>>2]=t,0):t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,n){return n?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(null!=e&&0!==e){var n=1+(e.length<<2);stringToUTF8(e,t=Runtime.stackAlloc(n),n)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,n,r,i){var o=getCFunc(e),u=[],a=0;if(r)for(var l=0;l<r.length;l++){var s=toC[n[l]];s?(0===a&&(a=Runtime.stackSave()),u[l]=s(r[l])):u[l]=r[l]}var c=o.apply(null,u);if("string"===t&&(c=Pointer_stringify(c)),0!==a){if(i&&i.async)return void EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(a)}));Runtime.stackRestore(a)}return c};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource)for(var e in JSsource={},JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every((function(e){return"number"===e})),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map((function(e,t){return"$"+t})),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,t,n,r){var i,o;"number"==typeof e?(i=!0,o=e):(i=!1,o=e.length);var u,a="string"==typeof t?t:null;if(u=n==ALLOC_NONE?r:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(o,a?1:t.length)),i){var l;for(r=u,assert(0==(3&u)),l=u+(-4&o);r<l;r+=4)HEAP32[r>>2]=0;for(l=u+o;r<l;)HEAP8[r++>>0]=0;return u}if("i8"===a)return e.subarray||e.slice?HEAPU8.set(e,u):HEAPU8.set(new Uint8Array(e),u),u;for(var s,c,f,d=0;d<o;){var p=e[d];"function"==typeof p&&(p=Runtime.getFunctionIndex(p)),0!==(s=a||t[d])?("i64"==s&&(s="i32"),setValue(u+d,p,s),f!==s&&(c=Runtime.getNativeTypeSize(s),f=s),d+=c):d++}return u}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var n,r=0,i=0;r|=n=HEAPU8[e+i>>0],(0!=n||t)&&(i++,!t||i!=t););t||(t=i);var o="";if(r<128){for(var u;t>0;)u=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+u:u,e+=1024,t-=1024;return o}return Module.UTF8ToString(e)}function AsciiToString(e){for(var t="";;){var n=HEAP8[e++>>0];if(!n)return t;t+=String.fromCharCode(n)}}function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var n=t;e[n];)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var r,i,o,u,a,l="";;){if(!(r=e[t++]))return l;if(128&r)if(i=63&e[t++],192!=(224&r))if(o=63&e[t++],224==(240&r)?r=(15&r)<<12|i<<6|o:(u=63&e[t++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|u:(a=63&e[t++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|u<<6|a:(1&r)<<30|i<<24|o<<18|u<<12|a<<6|63&e[t++])),r<65536)l+=String.fromCharCode(r);else{var s=r-65536;l+=String.fromCharCode(55296|s>>10,56320|1023&s)}else l+=String.fromCharCode((31&r)<<6|i);else l+=String.fromCharCode(r)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,t,n,r){if(!(r>0))return 0;for(var i=n,o=n+r-1,u=0;u<e.length;++u){var a=e.charCodeAt(u);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++u)),a<=127){if(n>=o)break;t[n++]=a}else if(a<=2047){if(n+1>=o)break;t[n++]=192|a>>6,t[n++]=128|63&a}else if(a<=65535){if(n+2>=o)break;t[n++]=224|a>>12,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=2097151){if(n+3>=o)break;t[n++]=240|a>>18,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else if(a<=67108863){if(n+4>=o)break;t[n++]=248|a>>24,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}else{if(n+5>=o)break;t[n++]=252|a>>30,t[n++]=128|a>>24&63,t[n++]=128|a>>18&63,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}}return t[n]=0,n-i}function stringToUTF8(e,t,n){return stringToUTF8Array(e,HEAPU8,t,n)}function lengthBytesUTF8(e){for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r>=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++n)),r<=127?++t:t+=r<=2047?2:r<=65535?3:r<=2097151?4:r<=67108863?5:6}return t}Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var n=e.substr(1),r=lengthBytesUTF8(n)+1,i=_malloc(r);stringToUTF8(n,i,r);var o=_malloc(4),u=t(i,0,0,o);if(0===getValue(o,"i32")&&u)return Pointer_stringify(u)}catch(e){}finally{i&&_free(i),o&&_free(o),u&&_free(u)}return e}return Runtime.warnOnce("warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}Module.stackTrace=stackTrace,STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;function getTotalMemory(){return TOTAL_MEMORY}if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?Module.dynCall_v(n):Module.dynCall_vi(n,t.arg):n(void 0===t.arg?null:t.arg)}else t()}}Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,n){var r=n>0?n:lengthBytesUTF8(e)+1,i=new Array(r),o=stringToUTF8Array(e,i,0,i.length);return t&&(i.length=o),i}function intArrayToString(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];r>255&&(r&=255),t.push(String.fromCharCode(r))}return t.join("")}function writeStringToMemory(e,t,n){var r,i;Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),n&&(i=t+lengthBytesUTF8(e),r=HEAP8[i]),stringToUTF8(e,t,1/0),n&&(HEAP8[i]=r)}function writeArrayToMemory(e,t){HEAP8.set(e,t)}function writeAsciiToMemory(e,t,n){for(var r=0;r<e.length;++r)HEAP8[t++>>0]=e.charCodeAt(r);n||(HEAP8[t>>0]=0)}if(Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(e,t,n,r,i,o,u,a){return _nbind.callbackSignatureList[e].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(e,t,n,r,i,o,u,a){return ASM_CONSTS[e](t,n,r,i,o,u,a)}function _emscripten_asm_const_iiiii(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiidddddd(e,t,n,r,i,o,u,a,l){return ASM_CONSTS[e](t,n,r,i,o,u,a,l)}function _emscripten_asm_const_iiididi(e,t,n,r,i,o,u){return ASM_CONSTS[e](t,n,r,i,o,u)}function _emscripten_asm_const_iiii(e,t,n,r){return ASM_CONSTS[e](t,n,r)}function _emscripten_asm_const_iiiid(e,t,n,r,i){return ASM_CONSTS[e](t,n,r,i)}function _emscripten_asm_const_iiiiii(e,t,n,r,i,o){return ASM_CONSTS[e](t,n,r,i,o)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(e,t,n,r){var i,o=arguments.length,u=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(u=(o<3?i(u):o>3?i(t,n,u):i(t,n))||u);return o>3&&u&&Object.defineProperty(t,n,u),u}function _defineHidden(e){return function(t,n){Object.defineProperty(t,n,{configurable:!1,enumerable:!1,value:e,writable:!0})}}STATICTOP+=16;var _nbind={};function __nbind_free_external(e){_nbind.externalList[e].dereference(e)}function __nbind_reference_external(e){_nbind.externalList[e].reference()}function _llvm_stackrestore(e){var t=_llvm_stacksave,n=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(n)}function __nbind_register_pool(e,t,n,r){_nbind.Pool.pageSize=e,_nbind.Pool.usedPtr=t/4,_nbind.Pool.rootPtr=n,_nbind.Pool.pagePtr=r/4,HEAP32[t/4]=16909060,1==HEAP8[t]&&(_nbind.bigEndian=!0),HEAP32[t/4]=0,_nbind.makeTypeKindTbl=((i={})[1024]=_nbind.PrimitiveType,i[64]=_nbind.Int64Type,i[2048]=_nbind.BindClass,i[3072]=_nbind.BindClassPtr,i[4096]=_nbind.SharedClassPtr,i[5120]=_nbind.ArrayType,i[6144]=_nbind.ArrayType,i[7168]=_nbind.CStringType,i[9216]=_nbind.CallbackType,i[10240]=_nbind.BindType,i),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var i,o=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});o.proto=Module,_nbind.BindClass.list.push(o)}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(0==e)Browser.mainLoop.scheduler=function(){var e=0|Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now());setTimeout(Browser.mainLoop.runner,e)},Browser.mainLoop.method="timeout";else if(1==e)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(2==e){if(!window.setImmediate){var n=[];window.addEventListener("message",(function(e){e.source===window&&"setimmediate"===e.data&&(e.stopPropagation(),n.shift()())}),!0),window.setImmediate=function(e){n.push(e),ENVIRONMENT_IS_WORKER?(void 0===Module.setImmediates&&(Module.setImmediates=[]),Module.setImmediates.push(e),window.postMessage({target:"setimmediate"})):window.postMessage("setimmediate","*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(e,t,n,r,i){var o;Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=r,o=void 0!==r?function(){Module.dynCall_vi(e,r)}:function(){Module.dynCall_v(e)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT)if(Browser.mainLoop.queue.length>0){var e=Date.now(),t=Browser.mainLoop.queue.shift();if(t.func(t.arg),Browser.mainLoop.remainingBlockers){var n=Browser.mainLoop.remainingBlockers,r=n%1==0?n-1:Math.floor(n);t.counted?Browser.mainLoop.remainingBlockers=r:(r+=.5,Browser.mainLoop.remainingBlockers=(8*n+r)/9)}if(console.log('main loop blocker "'+t.name+'" took '+(Date.now()-e)+" ms"),Browser.mainLoop.updateStatus(),u<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0)}else u<Browser.mainLoop.currentlyRunningMainloop||(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,1==Browser.mainLoop.timingMode&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0?Browser.mainLoop.scheduler():(0==Browser.mainLoop.timingMode&&(Browser.mainLoop.tickStartTime=_emscripten_get_now()),"timeout"===Browser.mainLoop.method&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(o),u<Browser.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())))},i||(t&&t>0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),n)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,n=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(n,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,n=Browser.mainLoop.expectedBlockers;t?t<n?Module.setStatus(e+" ("+(n-t)+"/"+n+")"):Module.setStatus(e):Module.setStatus("")}},runIter:function(e){if(!ABORT){if(Module.preMainLoop&&!1===Module.preMainLoop())return;try{e()}catch(e){if(e instanceof ExitStatus)return;throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),!Browser.initted){Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch(e){Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,Module.noImageDecoding||void 0!==Browser.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={canHandle:function(e){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,n,r){var i=null;if(Browser.hasBlobConstructor)try{(i=new Blob([e],{type:Browser.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Browser.getMimetype(t)}))}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var o=new Browser.BlobBuilder;o.append(new Uint8Array(e).buffer),i=o.getBlob()}var u=Browser.URLObject.createObjectURL(i),a=new Image;a.onload=function(){assert(a.complete,"Image "+t+" could not be decoded");var r=document.createElement("canvas");r.width=a.width,r.height=a.height,r.getContext("2d").drawImage(a,0,0),Module.preloadedImages[t]=r,Browser.URLObject.revokeObjectURL(u),n&&n(e)},a.onerror=function(e){console.log("Image "+u+" could not be decoded"),r&&r()},a.src=u}};Module.preloadPlugins.push(e);var t={canHandle:function(e){return!Module.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,n,r){var i=!1;function o(r){i||(i=!0,Module.preloadedAudios[t]=r,n&&n(e))}function u(){i||(i=!0,Module.preloadedAudios[t]=new Audio,r&&r())}if(!Browser.hasBlobConstructor)return u();try{var a=new Blob([e],{type:Browser.getMimetype(t)})}catch(e){return u()}var l=Browser.URLObject.createObjectURL(a),s=new Audio;s.addEventListener("canplaythrough",(function(){o(s)}),!1),s.onerror=function(n){i||(console.log("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),s.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="",r=0,i=0,o=0;o<e.length;o++)for(r=r<<8|e[o],i+=8;i>=6;){var u=r>>i-6&63;i-=6,n+=t[u]}return 2==i?(n+=t[(3&r)<<4],n+="=="):4==i&&(n+=t[(15&r)<<2],n+="="),n}(e),o(s))},s.src=l,Browser.safeSetTimeout((function(){o(s)}),1e4)}};Module.preloadPlugins.push(t);var n=Module.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&n.addEventListener("click",(function(e){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),e.preventDefault())}),!1))}function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}},createContext:function(e,t,n,r){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var i,o;if(t){var u={antialias:!1,alpha:!1};if(r)for(var a in r)u[a]=r[a];(o=GL.createContext(e,u))&&(i=GL.getContext(o).GLctx)}else i=e.getContext("2d");return i?(n&&(t||assert("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=i,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach((function(e){e()})),Browser.init()),i):null},destroyContext:function(e,t,n){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t,n){Browser.lockPointer=e,Browser.resizeCanvas=t,Browser.vrDevice=n,void 0===Browser.lockPointer&&(Browser.lockPointer=!0),void 0===Browser.resizeCanvas&&(Browser.resizeCanvas=!1),void 0===Browser.vrDevice&&(Browser.vrDevice=null);var r=Module.canvas;function i(){Browser.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},r.exitFullscreen=r.exitFullscreen.bind(document),Browser.lockPointer&&r.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(r)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1),document.addEventListener("MSFullscreenChange",i,!1));var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),n?o.requestFullscreen({vrDisplay:n}):o.requestFullscreen()},requestFullScreen:function(e,t,n){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(e,t,n){return Browser.requestFullscreen(e,t,n)},Browser.requestFullscreen(e,t,n)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===Browser.nextRAF)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var n=Math.max(Browser.nextRAF-t,0);setTimeout(e,n)},requestAnimationFrame:function(e){"undefined"==typeof window?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach((function(e){e()}))}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}))},safeSetTimeout:function(e,t){return Module.noExitRuntime=!0,setTimeout((function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))}),t)},safeSetInterval:function(e,t){return Module.noExitRuntime=!0,setInterval((function(){ABORT||Browser.allowAsyncCallbacks&&e()}),t)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail;break;case"mousewheel":t=e.wheelDelta;break;case"wheel":t=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),"undefined"!=typeof SDL?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),n=Module.canvas.width,r=Module.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,o=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var u=e.touch;if(void 0===u)return;var a=u.pageX-(i+t.left),l=u.pageY-(o+t.top),s={x:a*=n/t.width,y:l*=r/t.height};if("touchstart"===e.type)Browser.lastTouches[u.identifier]=s,Browser.touches[u.identifier]=s;else if("touchend"===e.type||"touchmove"===e.type){var c=Browser.touches[u.identifier];c||(c=s),Browser.lastTouches[u.identifier]=c,Browser.touches[u.identifier]=s}return}var f=e.pageX-(i+t.left),d=e.pageY-(o+t.top);f*=n/t.width,d*=r/t.height,Browser.mouseMovementX=f-Browser.mouseX,Browser.mouseMovementY=d-Browser.mouseY,Browser.mouseX=f,Browser.mouseY=d}},asyncLoad:function(e,t,n,r){var i=r?"":getUniqueRunDependency("al "+e);Module.readAsync(e,(function(n){assert(n,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(n)),i&&removeRunDependency(i)}),(function(t){if(!n)throw'Loading data file "'+e+'" failed.';n()})),i&&addRunDependency(i)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,n){var r=Module.canvas;Browser.updateCanvasDimensions(r,e,t),n||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e|=8388608,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=HEAPU32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2];e&=-8388609,HEAP32[SDL.screen+0*Runtime.QUANTUM_SIZE>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,n){t&&n?(e.widthNative=t,e.heightNative=n):(t=e.widthNative,n=e.heightNative);var r=t,i=n;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(r/i<Module.forcedAspectRatio?r=Math.round(i*Module.forcedAspectRatio):i=Math.round(r/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var o=Math.min(screen.width/r,screen.height/i);r=Math.round(r*o),i=Math.round(i*o)}Browser.resizeCanvas?(e.width!=r&&(e.width=r),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=n&&(e.height=n),void 0!==e.style&&(r!=t||i!=n?(e.style.setProperty("width",r+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var e=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,e}},SYSCALLS={varargs:0,get:function(e){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return assert(e>=0?0===t:-1===t),e},getZero:function(){assert(0===SYSCALLS.get())}};function ___syscall6(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD();return FS.close(n),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _typeModule(e){var t=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function n(e,t,n,r,i,o){if(1==t){var u=896&r;128!=u&&256!=u&&384!=u||(e="X const")}return(o?n.replace("X",e).replace("Y",i):e.replace("X",n).replace("Y",i)).replace(/([*&]) (?=[*&])/g,"$1")}function r(e,t){var n=t.flags,r=896&n,i=15360&n;return t.name||1024!=i||(1==t.ptrSize?t.name=(16&n?"":(8&n?"un":"")+"signed ")+"char":t.name=(8&n?"u":"")+(32&n?"float":"int")+8*t.ptrSize+"_t"),8!=t.ptrSize||32&n||(i=64),2048==i&&(512==r||640==r?i=4096:r&&(i=3072)),e(i,t)}var i={Type:function(){function e(e){this.id=e.id,this.name=e.name,this.flags=e.flags,this.spec=e}return e.prototype.toString=function(){return this.name},e}(),getComplexType:function e(i,o,u,a,l,s,c,f){void 0===s&&(s="X"),void 0===f&&(f=1);var d=u(i);if(d)return d;var p,h=a(i),m=h.placeholderFlag,v=t[m];c&&v&&(s=n(c[2],c[0],s,v[0],"?",!0)),0==m&&(p="Unbound"),m>=10&&(p="Corrupt"),f>20&&(p="Deeply nested"),p&&function(e,t,n,r,i){throw new Error(e+" type "+n.replace("X",t+"?")+(r?" with flag "+r:"")+" in "+i)}(p,i,s,m,l||"?");var b,g=e(h.paramList[0],o,u,a,l,s,v,f+1),_={flags:v[0],id:i,name:"",paramList:[g]},y=[],D="?";switch(h.placeholderFlag){case 1:b=g.spec;break;case 2:if(1024==(15360&g.flags)&&1==g.spec.ptrSize){_.flags=7168;break}case 3:case 6:case 5:b=g.spec,g.flags;break;case 8:D=""+h.paramList[1],_.paramList.push(h.paramList[1]);break;case 9:for(var w=0,E=h.paramList[1];w<E.length;w++){var C=e(E[w],o,u,a,l,s,v,f+1);y.push(C.name),_.paramList.push(C)}D=y.join(", ")}if(_.name=n(v[2],v[0],g.name,g.flags,D),b){for(var T=0,k=Object.keys(b);T<k.length;T++){var S=k[T];_[S]=_[S]||b[S]}_.flags|=b.flags}return r(o,_)},makeType:r,structureList:t};return e.output=i,e.output||i}function __nbind_register_type(e,t){var n={flags:10240,id:e,name:_nbind.readAsciiString(t)};_nbind.makeType(_nbind.constructType,n)}function __nbind_register_callback_signature(e,t){var n=_nbind.readTypeIdList(e,t),r=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[r]=_nbind.makeJSCaller(n),r}function __extends(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function __nbind_register_class(e,t,n,r,i,o,u){var a=_nbind.readAsciiString(u),l=_nbind.readPolicyList(t),s=HEAPU32.subarray(e/4,e/4+2),c={flags:2048|(l.Value?2:0),id:s[0],name:a},f=_nbind.makeType(_nbind.constructType,c);f.ptrType=_nbind.getComplexType(s[1],_nbind.constructType,_nbind.getType,_nbind.queryType),f.destroy=_nbind.makeMethodCaller(f.ptrType,{boundID:c.id,flags:0,name:"destroy",num:0,ptr:o,title:f.name+".free",typeList:["void","uint32_t","uint32_t"]}),i&&(f.superIdList=Array.prototype.slice.call(HEAPU32.subarray(n/4,n/4+i)),f.upcastList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+i))),Module[f.name]=f.makeBound(l),_nbind.BindClass.list.push(f)}function _removeAccessorPrefix(e){return e.replace(/^[Gg]et_?([A-Z]?([A-Z]?))/,(function(e,t,n){return n?t:t.toLowerCase()}))}function __nbind_register_function(e,t,n,r,i,o,u,a,l,s){var c,f=_nbind.getType(e),d=_nbind.readPolicyList(t),p=_nbind.readTypeIdList(n,r);if(5==u)c=[{direct:i,name:"__nbindConstructor",ptr:0,title:f.name+" constructor",typeList:["uint32_t"].concat(p.slice(1))},{direct:o,name:"__nbindValueConstructor",ptr:0,title:f.name+" value constructor",typeList:["void","uint32_t"].concat(p.slice(1))}];else{var h=_nbind.readAsciiString(a),m=(f.name&&f.name+".")+h;3!=u&&4!=u||(h=_removeAccessorPrefix(h)),c=[{boundID:e,direct:o,name:h,ptr:i,title:m,typeList:p}]}for(var v=0,b=c;v<b.length;v++){var g=b[v];g.signatureType=u,g.policyTbl=d,g.num=l,g.flags=s,f.addMethod(g)}}function _nbind_value(e,t){_nbind.typeNameTbl[e]||_nbind.throwError("Unknown value type "+e),Module.NBind.bind_value(e,t),_defineHidden(_nbind.typeNameTbl[e].proto.prototype.__nbindValueConstructor)(t.prototype,"__nbindValueConstructor")}function __nbind_get_value_object(e,t){var n=_nbind.popValue(e);if(!n.fromJS)throw new Error("Object "+n+" has no fromJS function");n.fromJS((function(){n.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([t],arguments))}))}function _emscripten_memcpy_big(e,t,n){return HEAPU8.set(HEAPU8.subarray(t,t+n),e),e}function __nbind_register_primitive(e,t,n){var r={flags:1024|n,id:e,ptrSize:t};_nbind.makeType(_nbind.constructType,r)}Module._nbind_value=_nbind_value;var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.getStreamFromFD(),r=(SYSCALLS.get(),SYSCALLS.get()),i=SYSCALLS.get(),o=SYSCALLS.get(),u=r;return FS.llseek(n,u,o),HEAP32[i>>2]=n.position,n.getdents&&0===u&&0===o&&(n.getdents=null),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var n=SYSCALLS.get(),r=SYSCALLS.get(),i=SYSCALLS.get(),o=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(e,t){var n=___syscall146.buffers[e];assert(n),0===t||10===t?((1===e?Module.print:Module.printErr)(UTF8ArrayToString(n,0)),n.length=0):n.push(t)});for(var u=0;u<i;u++){for(var a=HEAP32[r+8*u>>2],l=HEAP32[r+(8*u+4)>>2],s=0;s<l;s++)___syscall146.printChar(n,HEAPU8[a+s]);o+=l}return o}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function __nbind_finish(){for(var e=0,t=_nbind.BindClass.list;e<t.length;e++)t[e].finish()}var ___dso_handle=STATICTOP;function invoke_viiiii(e,t,n,r,i,o){try{Module.dynCall_viiiii(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vif(e,t,n){try{Module.dynCall_vif(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vid(e,t,n){try{Module.dynCall_vid(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_fiff(e,t,n,r){try{return Module.dynCall_fiff(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vii(e,t,n){try{Module.dynCall_vii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viddi(e,t,n,r,i){try{Module.dynCall_viddi(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vidd(e,t,n,r){try{Module.dynCall_vidd(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iiii(e,t,n,r){try{return Module.dynCall_iiii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_diii(e,t,n,r){try{return Module.dynCall_diii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_di(e,t){try{return Module.dynCall_di(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iid(e,t,n){try{return Module.dynCall_iid(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iii(e,t,n){try{return Module.dynCall_iii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiddi(e,t,n,r,i,o){try{Module.dynCall_viiddi(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiiiii(e,t,n,r,i,o,u){try{Module.dynCall_viiiiii(e,t,n,r,i,o,u)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_dii(e,t,n){try{return Module.dynCall_dii(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_i(e){try{return Module.dynCall_i(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,n,r,i,o){try{return Module.dynCall_iiiiii(e,t,n,r,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiid(e,t,n,r,i){try{Module.dynCall_viiid(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viififi(e,t,n,r,i,o,u){try{Module.dynCall_viififi(e,t,n,r,i,o,u)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viii(e,t,n,r){try{Module.dynCall_viii(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viid(e,t,n,r){try{Module.dynCall_viid(e,t,n,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_idd(e,t,n){try{return Module.dynCall_idd(e,t,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiii(e,t,n,r,i){try{Module.dynCall_viiii(e,t,n,r,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function e(){}return e.lalloc=function(t){t=t+7&-8;var n=HEAPU32[e.usedPtr];return t>e.pageSize/2||t>e.pageSize-n?_nbind.typeNameTbl.NBind.proto.lalloc(t):(HEAPU32[e.usedPtr]=n+t,e.rootPtr+n)},e.lreset=function(t,n){HEAPU32[e.pagePtr]?_nbind.typeNameTbl.NBind.proto.lreset(t,n):HEAPU32[e.usedPtr]=t},e}();function constructType(e,t){var n=new(10240==e?_nbind.makeTypeNameTbl[t.name]||_nbind.BindType:_nbind.makeTypeKindTbl[e])(t);return typeIdTbl[t.id]=n,_nbind.typeNameTbl[t.name]=n,n}function getType(e){return typeIdTbl[e]}function queryType(e){var t=HEAPU8[e],n=_nbind.structureList[t][1];e/=4,n<0&&(++e,n=HEAPU32[e]+1);var r=Array.prototype.slice.call(HEAPU32.subarray(e+1,e+1+n));return 9==t&&(r=[r[0],r.slice(1)]),{paramList:r,placeholderFlag:t}}function getTypes(e,t){return e.map((function(e){return"number"==typeof e?_nbind.getComplexType(e,constructType,getType,queryType,t):_nbind.typeNameTbl[e]}))}function readTypeIdList(e,t){return Array.prototype.slice.call(HEAPU32,e/4,e/4+t)}function readAsciiString(e){for(var t=e;HEAPU8[t++];);return String.fromCharCode.apply("",HEAPU8.subarray(e,t-1))}function readPolicyList(e){var t={};if(e)for(;;){var n=HEAPU32[e/4];if(!n)break;t[readAsciiString(n)]=!0,e+=4}return t}function getDynCall(e,t){var n={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},r=e.map((function(e){return n[e.name]||"i"})).join(""),i=Module["dynCall_"+r];if(!i)throw new Error("dynCall_"+r+" not found for "+t+"("+e.map((function(e){return e.name})).join(", ")+")");return i}function addMethod(e,t,n,r){var i=e[t];e.hasOwnProperty(t)&&i?((i.arity||0===i.arity)&&(i=_nbind.makeOverloader(i,i.arity),e[t]=i),i.addMethod(n,r)):(n.arity=r,e[t]=n)}function throwError(e){throw new Error(e)}_nbind.Pool=Pool,_nbind.constructType=constructType,_nbind.getType=getType,_nbind.queryType=queryType,_nbind.getTypes=getTypes,_nbind.readTypeIdList=readTypeIdList,_nbind.readAsciiString=readAsciiString,_nbind.readPolicyList=readPolicyList,_nbind.getDynCall=getDynCall,_nbind.addMethod=addMethod,_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.heap=HEAPU32,t.ptrSize=4,t}return __extends(t,e),t.prototype.needsWireRead=function(e){return!!this.wireRead||!!this.makeWireRead},t.prototype.needsWireWrite=function(e){return!!this.wireWrite||!!this.makeWireWrite},t}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(e){function t(t){var n=e.call(this,t)||this,r=32&t.flags?{32:HEAPF32,64:HEAPF64}:8&t.flags?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return n.heap=r[8*t.ptrSize],n.ptrSize=t.ptrSize,n}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("number"==typeof e)return e;throw new Error("Type mismatch")}},t}(BindType);function pushCString(e,t){if(null==e){if(t&&t.Nullable)return 0;throw new Error("Type mismatch")}if(t&&t.Strict){if("string"!=typeof e)throw new Error("Type mismatch")}else e=e.toString();var n=Module.lengthBytesUTF8(e)+1,r=_nbind.Pool.lalloc(n);return Module.stringToUTF8Array(e,HEAPU8,r,n),r}function popCString(e){return 0===e?null:Module.Pointer_stringify(e)}_nbind.PrimitiveType=PrimitiveType,_nbind.pushCString=pushCString,_nbind.popCString=popCString;var CStringType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popCString,t.wireWrite=pushCString,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushCString(e,t)}},t}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=function(e){return!!e},t}return __extends(t,e),t.prototype.needsWireWrite=function(e){return!!e&&!!e.Strict},t.prototype.makeWireRead=function(e){return"!!("+e+")"},t.prototype.makeWireWrite=function(e,t){return t&&t.Strict&&function(e){if("boolean"==typeof e)return e;throw new Error("Type mismatch")}||e},t}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function e(){}return e.prototype.persist=function(){this.__nbindState|=1},e}();function makeBound(e,t){var n=function(e){function n(t,r,i,o){var u=e.call(this)||this;if(!(u instanceof n))return new(Function.prototype.bind.apply(n,Array.prototype.concat.apply([null],arguments)));var a=r,l=i,s=o;if(t!==_nbind.ptrMarker){var c=u.__nbindConstructor.apply(u,arguments);a=4608,s=HEAPU32[c/4],l=HEAPU32[c/4+1]}var f={configurable:!0,enumerable:!1,value:null,writable:!1},d={__nbindFlags:a,__nbindPtr:l};s&&(d.__nbindShared=s,_nbind.mark(u));for(var p=0,h=Object.keys(d);p<h.length;p++){var m=h[p];f.value=d[m],Object.defineProperty(u,m,f)}return _defineHidden(0)(u,"__nbindState"),u}return __extends(n,e),n.prototype.free=function(){t.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},n}(Wrapper);return __decorate([_defineHidden()],n.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],n.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(e)],n.prototype,"__nbindPolicies",void 0),n}function disableMember(e,t){function n(){throw new Error("Accessing deleted object")}Object.defineProperty(e,t,{configurable:!1,enumerable:!1,get:n,set:n})}_nbind.Wrapper=Wrapper,_nbind.makeBound=makeBound,_nbind.ptrMarker={};var BindClass=function(e){function t(t){var n=e.call(this,t)||this;return n.wireRead=function(e){return _nbind.popValue(e,n.ptrType)},n.wireWrite=function(e){return pushPointer(e,n.ptrType,!0)},n.pendingSuperCount=0,n.ready=!1,n.methodTbl={},t.paramList?(n.classType=t.paramList[0].classType,n.proto=n.classType.proto):n.classType=n,n}return __extends(t,e),t.prototype.makeBound=function(e){var t=_nbind.makeBound(e,this);return this.proto=t,this.ptrType.proto=t,t},t.prototype.addMethod=function(e){var t=this.methodTbl[e.name]||[];t.push(e),this.methodTbl[e.name]=t},t.prototype.registerMethods=function(e,t){for(var n,r=0,i=Object.keys(e.methodTbl);r<i.length;r++)for(var o=i[r],u=0,a=e.methodTbl[o];u<a.length;u++){var l=a[u],s=void 0,c=void 0;if(s=this.proto.prototype,!t||1==l.signatureType)switch(l.signatureType){case 1:s=this.proto;case 5:c=_nbind.makeCaller(l),_nbind.addMethod(s,l.name,c,l.typeList.length-1);break;case 4:n=_nbind.makeMethodCaller(e.ptrType,l);break;case 3:Object.defineProperty(s,l.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(e.ptrType,l),set:n});break;case 2:c=_nbind.makeMethodCaller(e.ptrType,l),_nbind.addMethod(s,l.name,c,l.typeList.length-1)}}},t.prototype.registerSuperMethods=function(e,t,n){if(!n[e.name]){n[e.name]=!0;for(var r,i=0,o=0,u=e.superIdList||[];o<u.length;o++){var a=u[o],l=_nbind.getType(a);r=i++<t||t<0?-1:0,this.registerSuperMethods(l,r,n)}this.registerMethods(e,t<0)}},t.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map((function(e){return _nbind.getType(e).finish()}));var e=this.proto;if(this.superList.length){var t=function(){this.constructor=e};t.prototype=this.superList[0].proto.prototype,e.prototype=new t}return e!=Module&&(e.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},t.prototype.upcastStep=function(e,t){if(e==this)return t;for(var n=0;n<this.superList.length;++n){var r=this.superList[n].upcastStep(e,_nbind.callUpcast(this.upcastList[n],t));if(r)return r}return 0},t}(_nbind.BindType);function popPointer(e,t){return e?new t.proto(_nbind.ptrMarker,t.flags,e):null}function pushPointer(e,t,n){if(!(e instanceof _nbind.Wrapper)){if(n)return _nbind.pushValue(e);throw new Error("Type mismatch")}var r=e.__nbindPtr,i=e.__nbindType.classType,o=t.classType;if(e instanceof t.proto)for(;i!=o;)r=_nbind.callUpcast(i.upcastList[0],r),i=i.superList[0];else if(!(r=i.upcastStep(o,r)))throw new Error("Type mismatch");return r}function pushMutablePointer(e,t){var n=pushPointer(e,t);if(1&e.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return n}BindClass.list=[],_nbind.BindClass=BindClass,_nbind.popPointer=popPointer,_nbind.pushPointer=pushPointer;var BindClassPtr=function(e){function t(t){var n=e.call(this,t)||this;n.classType=t.paramList[0].classType,n.proto=n.classType.proto;var r=1&t.flags,i=256==(896&n.flags)&&2&t.flags,o=r?pushPointer:pushMutablePointer,u=i?_nbind.popValue:popPointer;return n.makeWireWrite=function(e,t){return t.Nullable?function(e){return e?o(e,n):0}:function(e){return o(e,n)}},n.wireRead=function(e){return u(e,n)},n.wireWrite=function(e){return o(e,n)},n}return __extends(t,e),t}(_nbind.BindType);function popShared(e,t){var n=HEAPU32[e/4],r=HEAPU32[e/4+1];return r?new t.proto(_nbind.ptrMarker,t.flags,r,n):null}function pushShared(e,t){if(!(e instanceof t.proto))throw new Error("Type mismatch");return e.__nbindShared}function pushMutableShared(e,t){if(!(e instanceof t.proto))throw new Error("Type mismatch");if(1&e.__nbindFlags)throw new Error("Passing a const value as a non-const argument");return e.__nbindShared}_nbind.BindClassPtr=BindClassPtr,_nbind.popShared=popShared;var SharedClassPtr=function(e){function t(t){var n=e.call(this,t)||this;n.readResources=[_nbind.resources.pool],n.classType=t.paramList[0].classType,n.proto=n.classType.proto;var r=1&t.flags?pushShared:pushMutableShared;return n.wireRead=function(e){return popShared(e,n)},n.wireWrite=function(e){return r(e,n)},n}return __extends(t,e),t}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function e(e){this.refCount=1,this.data=e}return e.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},e.prototype.reference=function(){++this.refCount},e.prototype.dereference=function(e){0==--this.refCount&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},e}();function popExternal(e){var t=_nbind.externalList[e];return t.dereference(e),t.data}function pushExternal(e){var t=new External(e);return t.reference(),t.register()}_nbind.External=External;var ExternalType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popExternal,t.wireWrite=pushExternal,t}return __extends(t,e),t}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=function(e){return"function"!=typeof e&&_nbind.throwError("Type mismatch"),new _nbind.External(e).register()},t}return __extends(t,e),t}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(e){var t=firstFreeValue;return t?firstFreeValue=_nbind.valueList[t]:t=_nbind.valueList.length,_nbind.valueList[t]=e,2*t+1}function popValue(e,t){if(e||_nbind.throwError("Value type JavaScript class is missing or not registered"),1&e){e>>=1;var n=_nbind.valueList[e];return _nbind.valueList[e]=firstFreeValue,firstFreeValue=e,n}if(t)return _nbind.popShared(e,t);throw new Error("Invalid value slot "+e)}_nbind.pushValue=pushValue,_nbind.popValue=popValue;var valueBase=0x10000000000000000;function push64(e){return"number"==typeof e?e:4096*pushValue(e)+valueBase}function pop64(e){return e<valueBase?e:popValue((e-valueBase)/4096)}var CreateValueType=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.makeWireWrite=function(e){return"(_nbind.pushValue(new "+e+"))"},t}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=push64,t.wireRead=pop64,t}return __extends(t,e),t}(_nbind.BindType);function pushArray(e,t){if(!e)return 0;var n=e.length;if((t.size||0===t.size)&&n<t.size)throw new Error("Type mismatch");var r=t.memberType.ptrSize,i=_nbind.Pool.lalloc(4+n*r);HEAPU32[i/4]=n;var o=t.memberType.heap,u=(i+4)/r,a=t.memberType.wireWrite,l=0;if(a)for(;l<n;)o[u++]=a(e[l++]);else for(;l<n;)o[u++]=e[l++];return i}function popArray(e,t){if(0===e)return null;var n=HEAPU32[e/4],r=new Array(n),i=t.memberType.heap;e=(e+4)/t.memberType.ptrSize;var o=t.memberType.wireRead,u=0;if(o)for(;u<n;)r[u++]=o(i[e++]);else for(;u<n;)r[u++]=i[e++];return r}_nbind.Int64Type=Int64Type,_nbind.pushArray=pushArray,_nbind.popArray=popArray;var ArrayType=function(e){function t(t){var n=e.call(this,t)||this;return n.wireRead=function(e){return popArray(e,n)},n.wireWrite=function(e){return pushArray(e,n)},n.readResources=[_nbind.resources.pool],n.writeResources=[_nbind.resources.pool],n.memberType=t.paramList[0],t.paramList[1]&&(n.size=t.paramList[1]),n}return __extends(t,e),t}(_nbind.BindType);function pushString(e,t){if(null==e){if(!t||!t.Nullable)throw new Error("Type mismatch");e=""}if(t&&t.Strict){if("string"!=typeof e)throw new Error("Type mismatch")}else e=e.toString();var n=Module.lengthBytesUTF8(e),r=_nbind.Pool.lalloc(4+n+1);return HEAPU32[r/4]=n,Module.stringToUTF8Array(e,HEAPU8,r+4,n+1),r}function popString(e){if(0===e)return null;var t=HEAPU32[e/4];return Module.Pointer_stringify(e+4,t)}_nbind.ArrayType=ArrayType,_nbind.pushString=pushString,_nbind.popString=popString;var StringType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireRead=popString,t.wireWrite=pushString,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushString(e,t)}},t}(_nbind.BindType);function makeArgList(e){return Array.apply(null,Array(e)).map((function(e,t){return"a"+(t+1)}))}function anyNeedsWireWrite(e,t){return e.reduce((function(e,n){return e||n.needsWireWrite(t)}),!1)}function anyNeedsWireRead(e,t){return e.reduce((function(e,n){return e||!!n.needsWireRead(t)}),!1)}function makeWireRead(e,t,n,r){var i=e.length;return n.makeWireRead?n.makeWireRead(r,e,i):n.wireRead?(e[i]=n.wireRead,"(convertParamList["+i+"]("+r+"))"):r}function makeWireWrite(e,t,n,r){var i,o=e.length;return(i=n.makeWireWrite?n.makeWireWrite(r,t,e,o):n.wireWrite)?"string"==typeof i?i:(e[o]=i,"(convertParamList["+o+"]("+r+"))"):r}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map((function(e,t){return makeWireWrite(convertParamList,policyTbl,argTypeList[t],e)}))).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map((function(e,t){return makeWireRead(convertParamList,null,argTypeList[t],e)})).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function makeJSCaller(e){var t=e.length-1,n=_nbind.getTypes(e,"callback"),r=n[0],i=n.slice(1),o=anyNeedsWireRead(i,null);if(!r.needsWireWrite(null)&&!o)switch(t){case 0:return function(e,t){return _nbind.externalList[t].data()};case 1:return function(e,t,n){return _nbind.externalList[t].data(n)};case 2:return function(e,t,n,r){return _nbind.externalList[t].data(n,r)};case 3:return function(e,t,n,r,i){return _nbind.externalList[t].data(n,r,i)}}return buildJSCallerFunction(r,i)}function makeMethodCaller(e,t){var n=t.typeList.length-1,r=t.typeList.slice(0);r.splice(1,0,"uint32_t",t.boundID);var i=_nbind.getTypes(r,t.title),o=i[0],u=i.slice(3),a=o.needsWireRead(t.policyTbl),l=anyNeedsWireWrite(u,t.policyTbl),s=t.ptr,c=t.num,f=_nbind.getDynCall(i,t.title),d=1&~t.flags;function p(){throw new Error("Calling a non-const method on a const object")}if(!a&&!l)switch(n){case 0:return function(){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e))};case 1:return function(t){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t)};case 2:return function(t,n){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t,n)};case 3:return function(t,n,r){return this.__nbindFlags&d?p():f(s,c,_nbind.pushPointer(this,e),t,n,r)}}return buildCallerFunction(f,e,s,c,t.policyTbl,l,"ptr,num,pushPointer(this,ptrType)",o,u,d,p)}function makeCaller(e){var t,n=e.typeList.length-1,r=_nbind.getTypes(e.typeList,e.title),i=r[0],o=r.slice(1),u=i.needsWireRead(e.policyTbl),a=anyNeedsWireWrite(o,e.policyTbl),l=e.direct,s=e.ptr;if(e.direct&&!u&&!a){var c=_nbind.getDynCall(r,e.title);switch(n){case 0:return function(){return c(l)};case 1:return function(e){return c(l,e)};case 2:return function(e,t){return c(l,e,t)};case 3:return function(e,t,n){return c(l,e,t,n)}}s=0}if(s){var f=e.typeList.slice(0);f.splice(1,0,"uint32_t"),r=_nbind.getTypes(f,e.title),t="ptr,num"}else s=l,t="ptr";return buildCallerFunction(_nbind.getDynCall(r,e.title),null,s,e.num,e.policyTbl,a,t,i,o)}function makeOverloader(e,t){var n=[];function r(){return n[arguments.length].apply(this,arguments)}return r.addMethod=function(e,t){n[t]=e},r.addMethod(e,t),r}_nbind.StringType=StringType,_nbind.buildJSCallerFunction=buildJSCallerFunction,_nbind.makeJSCaller=makeJSCaller,_nbind.makeMethodCaller=makeMethodCaller,_nbind.makeCaller=makeCaller,_nbind.makeOverloader=makeOverloader;var Resource=function(){function e(e,t){var n=this;this.makeOpen=function(){return Object.keys(n.openTbl).join("")},this.makeClose=function(){return Object.keys(n.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),t&&(this.closeTbl[t]=!0)}return e.prototype.add=function(e){for(var t=0,n=Object.keys(e.openTbl);t<n.length;t++){var r=n[t];this.openTbl[r]=!0}for(var i=0,o=Object.keys(e.closeTbl);i<o.length;i++)r=o[i],this.closeTbl[r]=!0},e.prototype.remove=function(e){for(var t=0,n=Object.keys(e.openTbl);t<n.length;t++){var r=n[t];delete this.openTbl[r]}for(var i=0,o=Object.keys(e.closeTbl);i<o.length;i++)r=o[i],delete this.closeTbl[r]},e}();function listResources(e,t){for(var n=new Resource,r=0,i=e;r<i.length;r++)for(var o=0,u=i[r].readResources||[];o<u.length;o++){var a=u[o];n.add(a)}for(var l=0,s=t;l<s.length;l++)for(var c=0,f=s[l].writeResources||[];c<f.length;c++)a=f[c],n.add(a);return n}_nbind.Resource=Resource,_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(e){function t(t,n){var r=e.call(this,t)||this;return r.ptr=n,r}return __extends(t,e),t.prototype.free=function(){_free(this.ptr)},t}(_nbind.External);function getBuffer(e){return e instanceof ArrayBuffer?new Uint8Array(e):e instanceof DataView?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function pushBuffer(e,t){if(null==e&&t&&t.Nullable&&(e=[]),"object"!=typeof e)throw new Error("Type mismatch");var n=e,r=n.byteLength||n.length;if(!r&&0!==r&&0!==n.byteLength)throw new Error("Type mismatch");var i=_nbind.Pool.lalloc(8),o=_malloc(r),u=i/4;return HEAPU32[u++]=r,HEAPU32[u++]=o,HEAPU32[u++]=new ExternalBuffer(e,o).register(),HEAPU8.set(getBuffer(e),o),i}var BufferType=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.wireWrite=pushBuffer,t.readResources=[_nbind.resources.pool],t.writeResources=[_nbind.resources.pool],t}return __extends(t,e),t.prototype.makeWireWrite=function(e,t){return function(e){return pushBuffer(e,t)}},t}(_nbind.BindType);function commitBuffer(e,t,n){var r=_nbind.externalList[e].data,i=Buffer;if("function"!=typeof Buffer&&(i=function(){}),r instanceof Array);else{var o=HEAPU8.subarray(t,t+n);r instanceof i?("function"==typeof Buffer.from&&Buffer.from.length>=3?Buffer.from(o):new Buffer(o)).copy(r):getBuffer(r).set(o)}}_nbind.BufferType=BufferType,_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var e=0,t=dirtyList;e<t.length;e++){var n=t[e];3&n.__nbindState||n.free()}dirtyList=[],gcTimer=0}function toggleLightGC(e){_nbind.mark=e?function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:function(e){}}_nbind.mark=function(e){},_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function(e,t,n){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,t,n)},Module.requestFullscreen=function(e,t,n){Browser.requestFullscreen(e,t,n)},Module.requestAnimationFrame=function(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function(e,t,n){Browser.setCanvasSize(e,t,n)},Module.pauseMainLoop=function(){Browser.mainLoop.pause()},Module.resumeMainLoop=function(){Browser.mainLoop.resume()},Module.getUserMedia=function(){Browser.getUserMedia()},Module.createContext=function(e,t,n,r){return Browser.createContext(e,t,n,r)},_emscripten_get_now=ENVIRONMENT_IS_NODE?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:"object"==typeof self&&self.performance&&"function"==typeof self.performance.now?function(){return self.performance.now()}:"object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:Date.now,__ATEXIT__.push((function(){var e=Module._fflush;e&&e(0);var t=___syscall146.printChar;if(t){var n=___syscall146.buffers;n[1].length&&t(1,10),n[2].length&&t(2,10)}})),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(e,t,n){"use asm";var r=new e.Int8Array(n);var i=new e.Int16Array(n);var o=new e.Int32Array(n);var u=new e.Uint8Array(n);var a=new e.Uint16Array(n);var l=new e.Uint32Array(n);var s=new e.Float32Array(n);var c=new e.Float64Array(n);var f=t.DYNAMICTOP_PTR|0;var d=t.tempDoublePtr|0;var p=t.ABORT|0;var h=t.STACKTOP|0;var m=t.STACK_MAX|0;var v=t.cttz_i8|0;var b=t.___dso_handle|0;var g=0;var _=0;var y=0;var D=0;var w=e.NaN,E=e.Infinity;var C=0,T=0,k=0,S=0,M=0.0;var x=0;var A=e.Math.floor;var P=e.Math.abs;var O=e.Math.sqrt;var R=e.Math.pow;var N=e.Math.cos;var I=e.Math.sin;var F=e.Math.tan;var B=e.Math.acos;var L=e.Math.asin;var U=e.Math.atan;var j=e.Math.atan2;var W=e.Math.exp;var z=e.Math.log;var q=e.Math.ceil;var H=e.Math.imul;var G=e.Math.min;var V=e.Math.max;var Y=e.Math.clz32;var K=e.Math.fround;var $=t.abort;var X=t.assert;var J=t.enlargeMemory;var Q=t.getTotalMemory;var Z=t.abortOnCannotGrowMemory;var ee=t.invoke_viiiii;var te=t.invoke_vif;var ne=t.invoke_vid;var re=t.invoke_fiff;var ie=t.invoke_vi;var oe=t.invoke_vii;var ue=t.invoke_ii;var ae=t.invoke_viddi;var le=t.invoke_vidd;var se=t.invoke_iiii;var ce=t.invoke_diii;var fe=t.invoke_di;var de=t.invoke_iid;var pe=t.invoke_iii;var he=t.invoke_viiddi;var me=t.invoke_viiiiii;var ve=t.invoke_dii;var be=t.invoke_i;var ge=t.invoke_iiiiii;var _e=t.invoke_viiid;var ye=t.invoke_viififi;var De=t.invoke_viii;var we=t.invoke_v;var Ee=t.invoke_viid;var Ce=t.invoke_idd;var Te=t.invoke_viiii;var ke=t._emscripten_asm_const_iiiii;var Se=t._emscripten_asm_const_iiidddddd;var Me=t._emscripten_asm_const_iiiid;var xe=t.__nbind_reference_external;var Ae=t._emscripten_asm_const_iiiiiiii;var Pe=t._removeAccessorPrefix;var Oe=t._typeModule;var Re=t.__nbind_register_pool;var Ne=t.__decorate;var Ie=t._llvm_stackrestore;var Fe=t.___cxa_atexit;var Be=t.__extends;var Le=t.__nbind_get_value_object;var Ue=t.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj;var je=t._emscripten_set_main_loop_timing;var We=t.__nbind_register_primitive;var ze=t.__nbind_register_type;var qe=t._emscripten_memcpy_big;var He=t.__nbind_register_function;var Ge=t.___setErrNo;var Ve=t.__nbind_register_class;var Ye=t.__nbind_finish;var Ke=t._abort;var $e=t._nbind_value;var Xe=t._llvm_stacksave;var Je=t.___syscall54;var Qe=t._defineHidden;var Ze=t._emscripten_set_main_loop;var et=t._emscripten_get_now;var tt=t.__nbind_register_callback_signature;var nt=t._emscripten_asm_const_iiiiii;var rt=t.__nbind_free_external;var it=t._emscripten_asm_const_iiii;var ot=t._emscripten_asm_const_iiididi;var ut=t.___syscall6;var at=t._atexit;var lt=t.___syscall140;var st=t.___syscall146;var ct=K(0);const ft=K(0);function dt(e){e=e|0;var t=0;t=h;h=h+e|0;h=h+15&-16;return t|0}function pt(){return h|0}function ht(e){e=e|0;h=e}function mt(e,t){e=e|0;t=t|0;h=e;m=t}function vt(e,t){e=e|0;t=t|0;if(!g){g=e;_=t}}function bt(e){e=e|0;x=e}function gt(){return x|0}function _t(){var e=0,t=0;iM(8104,8,400)|0;iM(8504,408,540)|0;e=9044;t=e+44|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));r[9088]=0;r[9089]=1;o[2273]=0;o[2274]=948;o[2275]=948;Fe(17,8104,b|0)|0;return}function yt(e){e=e|0;Gt(e+948|0);return}function Dt(e){e=K(e);return((Oi(e)|0)&2147483647)>>>0>2139095040|0}function wt(e,t,n){e=e|0;t=t|0;n=n|0;e:do{if(!(o[e+(t<<3)+4>>2]|0)){if((t|2|0)==3?o[e+60>>2]|0:0){e=e+56|0;break}switch(t|0){case 0:case 2:case 4:case 5:{if(o[e+52>>2]|0){e=e+48|0;break e}break}default:{}}if(!(o[e+68>>2]|0)){e=(t|1|0)==5?948:n;break}else{e=e+64|0;break}}else e=e+(t<<3)|0}while(0);return e|0}function Et(e){e=e|0;var t=0;t=Gk(1e3)|0;Ct(e,(t|0)!=0,2456);o[2276]=(o[2276]|0)+1;iM(t|0,8104,1e3)|0;if(r[e+2>>0]|0){o[t+4>>2]=2;o[t+12>>2]=4}o[t+976>>2]=e;return t|0}function Ct(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Br(e,5,3197,r)}h=i;return}function Tt(){return Et(956)|0}function kt(e){e=e|0;var t=0;t=YS(1e3)|0;St(t,e);Ct(o[e+976>>2]|0,1,2456);o[2276]=(o[2276]|0)+1;o[t+944>>2]=0;return t|0}function St(e,t){e=e|0;t=t|0;var n=0;iM(e|0,t|0,948)|0;jr(e+948|0,t+948|0);n=e+960|0;e=t+960|0;t=n+40|0;do{o[n>>2]=o[e>>2];n=n+4|0;e=e+4|0}while((n|0)<(t|0));return}function Mt(e){e=e|0;var t=0,n=0,r=0,i=0;t=e+944|0;n=o[t>>2]|0;if(n|0){xt(n+948|0,e)|0;o[t>>2]=0}n=At(e)|0;if(n|0){t=0;do{o[(Pt(e,t)|0)+944>>2]=0;t=t+1|0}while((t|0)!=(n|0))}n=e+948|0;r=o[n>>2]|0;i=e+952|0;t=o[i>>2]|0;if((t|0)!=(r|0))o[i>>2]=t+(~((t+-4-r|0)>>>2)<<2);Ot(n);Vk(e);o[2276]=(o[2276]|0)+-1;return}function xt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0;r=o[e>>2]|0;l=e+4|0;n=o[l>>2]|0;u=n;e:do{if((r|0)==(n|0)){i=r;a=4}else{e=r;while(1){if((o[e>>2]|0)==(t|0)){i=e;a=4;break e}e=e+4|0;if((e|0)==(n|0)){e=0;break}}}}while(0);if((a|0)==4)if((i|0)!=(n|0)){r=i+4|0;e=u-r|0;t=e>>2;if(t){sM(i|0,r|0,e|0)|0;n=o[l>>2]|0}e=i+(t<<2)|0;if((n|0)==(e|0))e=1;else{o[l>>2]=n+(~((n+-4-e|0)>>>2)<<2);e=1}}else e=0;return e|0}function At(e){e=e|0;return(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2|0}function Pt(e,t){e=e|0;t=t|0;var n=0;n=o[e+948>>2]|0;if((o[e+952>>2]|0)-n>>2>>>0>t>>>0)e=o[n+(t<<2)>>2]|0;else e=0;return e|0}function Ot(e){e=e|0;var t=0,n=0,r=0,i=0;r=h;h=h+32|0;t=r;i=o[e>>2]|0;n=(o[e+4>>2]|0)-i|0;if(((o[e+8>>2]|0)-i|0)>>>0>n>>>0){i=n>>2;Ri(t,i,i,e+8|0);Ni(e,t);Ii(t)}h=r;return}function Rt(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;c=At(e)|0;do{if(c|0){if((o[(Pt(e,0)|0)+944>>2]|0)==(e|0)){if(!(xt(e+948|0,t)|0))break;iM(t+400|0,8504,540)|0;o[t+944>>2]=0;Ht(e);break}a=o[(o[e+976>>2]|0)+12>>2]|0;l=e+948|0;s=(a|0)==0;n=0;u=0;do{r=o[(o[l>>2]|0)+(u<<2)>>2]|0;if((r|0)==(t|0))Ht(e);else{i=kt(r)|0;o[(o[l>>2]|0)+(n<<2)>>2]=i;o[i+944>>2]=e;if(!s)Ix[a&15](r,i,e,n);n=n+1|0}u=u+1|0}while((u|0)!=(c|0));if(n>>>0<c>>>0){s=e+948|0;l=e+952|0;a=n;n=o[l>>2]|0;do{u=(o[s>>2]|0)+(a<<2)|0;r=u+4|0;i=n-r|0;t=i>>2;if(!t)i=n;else{sM(u|0,r|0,i|0)|0;n=o[l>>2]|0;i=n}r=u+(t<<2)|0;if((i|0)!=(r|0)){n=i+(~((i+-4-r|0)>>>2)<<2)|0;o[l>>2]=n}a=a+1|0}while((a|0)!=(c|0))}}}while(0);return}function Nt(e){e=e|0;var t=0,n=0,i=0,u=0;It(e,(At(e)|0)==0,2491);It(e,(o[e+944>>2]|0)==0,2545);t=e+948|0;n=o[t>>2]|0;i=e+952|0;u=o[i>>2]|0;if((u|0)!=(n|0))o[i>>2]=u+(~((u+-4-n|0)>>>2)<<2);Ot(t);t=e+976|0;n=o[t>>2]|0;iM(e|0,8104,1e3)|0;if(r[n+2>>0]|0){o[e+4>>2]=2;o[e+12>>2]=4}o[t>>2]=n;return}function It(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;i=h;h=h+16|0;r=i;if(!t){o[r>>2]=n;Tr(e,5,3197,r)}h=i;return}function Ft(){return o[2276]|0}function Bt(){var e=0;e=Gk(20)|0;Lt((e|0)!=0,2592);o[2277]=(o[2277]|0)+1;o[e>>2]=o[239];o[e+4>>2]=o[240];o[e+8>>2]=o[241];o[e+12>>2]=o[242];o[e+16>>2]=o[243];return e|0}function Lt(e,t){e=e|0;t=t|0;var n=0,r=0;r=h;h=h+16|0;n=r;if(!e){o[n>>2]=t;Tr(0,5,3197,n)}h=r;return}function Ut(e){e=e|0;Vk(e);o[2277]=(o[2277]|0)+-1;return}function jt(e,t){e=e|0;t=t|0;var n=0;if(!t){n=0;t=0}else{It(e,(At(e)|0)==0,2629);n=1}o[e+964>>2]=t;o[e+988>>2]=n;return}function Wt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+8|0;i=r+4|0;a=r;o[i>>2]=t;It(e,(o[t+944>>2]|0)==0,2709);It(e,(o[e+964>>2]|0)==0,2763);zt(e);t=e+948|0;o[a>>2]=(o[t>>2]|0)+(n<<2);o[u>>2]=o[a>>2];qt(t,u,i)|0;o[(o[i>>2]|0)+944>>2]=e;Ht(e);h=r;return}function zt(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=At(e)|0;if(n|0?(o[(Pt(e,0)|0)+944>>2]|0)!=(e|0):0){r=o[(o[e+976>>2]|0)+12>>2]|0;i=e+948|0;u=(r|0)==0;t=0;do{a=o[(o[i>>2]|0)+(t<<2)>>2]|0;l=kt(a)|0;o[(o[i>>2]|0)+(t<<2)>>2]=l;o[l+944>>2]=e;if(!u)Ix[r&15](a,l,e,t);t=t+1|0}while((t|0)!=(n|0))}return}function qt(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+64|0;d=g+52|0;l=g+48|0;p=g+28|0;m=g+24|0;v=g+20|0;b=g;r=o[e>>2]|0;u=r;t=r+((o[t>>2]|0)-u>>2<<2)|0;r=e+4|0;i=o[r>>2]|0;a=e+8|0;do{if(i>>>0<(o[a>>2]|0)>>>0){if((t|0)==(i|0)){o[t>>2]=o[n>>2];o[r>>2]=(o[r>>2]|0)+4;break}Fi(e,t,i,t+4|0);if(t>>>0<=n>>>0)n=(o[r>>2]|0)>>>0>n>>>0?n+4|0:n;o[t>>2]=o[n>>2]}else{r=(i-u>>2)+1|0;i=qr(e)|0;if(i>>>0<r>>>0)jS(e);f=o[e>>2]|0;c=(o[a>>2]|0)-f|0;u=c>>1;Ri(b,c>>2>>>0<i>>>1>>>0?u>>>0<r>>>0?r:u:i,t-f>>2,e+8|0);f=b+8|0;r=o[f>>2]|0;u=b+12|0;c=o[u>>2]|0;a=c;s=r;do{if((r|0)==(c|0)){c=b+4|0;r=o[c>>2]|0;_=o[b>>2]|0;i=_;if(r>>>0<=_>>>0){r=a-i>>1;r=(r|0)==0?1:r;Ri(p,r,r>>>2,o[b+16>>2]|0);o[m>>2]=o[c>>2];o[v>>2]=o[f>>2];o[l>>2]=o[m>>2];o[d>>2]=o[v>>2];Li(p,l,d);r=o[b>>2]|0;o[b>>2]=o[p>>2];o[p>>2]=r;r=p+4|0;_=o[c>>2]|0;o[c>>2]=o[r>>2];o[r>>2]=_;r=p+8|0;_=o[f>>2]|0;o[f>>2]=o[r>>2];o[r>>2]=_;r=p+12|0;_=o[u>>2]|0;o[u>>2]=o[r>>2];o[r>>2]=_;Ii(p);r=o[f>>2]|0;break}u=r;a=((u-i>>2)+1|0)/-2|0;l=r+(a<<2)|0;i=s-u|0;u=i>>2;if(u){sM(l|0,r|0,i|0)|0;r=o[c>>2]|0}_=l+(u<<2)|0;o[f>>2]=_;o[c>>2]=r+(a<<2);r=_}}while(0);o[r>>2]=o[n>>2];o[f>>2]=(o[f>>2]|0)+4;t=Bi(e,b,t)|0;Ii(b)}}while(0);h=g;return t|0}function Ht(e){e=e|0;var t=0;do{t=e+984|0;if(r[t>>0]|0)break;r[t>>0]=1;s[e+504>>2]=K(w);e=o[e+944>>2]|0}while((e|0)!=0);return}function Gt(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function Vt(e){e=e|0;return o[e+944>>2]|0}function Yt(e){e=e|0;It(e,(o[e+964>>2]|0)!=0,2832);Ht(e);return}function Kt(e){e=e|0;return(r[e+984>>0]|0)!=0|0}function $t(e,t){e=e|0;t=t|0;if(iS(e,t,400)|0){iM(e|0,t|0,400)|0;Ht(e)}return}function Xt(e){e=e|0;var t=ft;t=K(s[e+44>>2]);e=Dt(t)|0;return K(e?K(0.0):t)}function Jt(e){e=e|0;var t=ft;t=K(s[e+48>>2]);if(Dt(t)|0)t=r[(o[e+976>>2]|0)+2>>0]|0?K(1.0):K(0.0);return K(t)}function Qt(e,t){e=e|0;t=t|0;o[e+980>>2]=t;return}function Zt(e){e=e|0;return o[e+980>>2]|0}function en(e,t){e=e|0;t=t|0;var n=0;n=e+4|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function tn(e){e=e|0;return o[e+4>>2]|0}function nn(e,t){e=e|0;t=t|0;var n=0;n=e+8|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function rn(e){e=e|0;return o[e+8>>2]|0}function on(e,t){e=e|0;t=t|0;var n=0;n=e+12|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function un(e){e=e|0;return o[e+12>>2]|0}function an(e,t){e=e|0;t=t|0;var n=0;n=e+16|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function ln(e){e=e|0;return o[e+16>>2]|0}function sn(e,t){e=e|0;t=t|0;var n=0;n=e+20|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function cn(e){e=e|0;return o[e+20>>2]|0}function fn(e,t){e=e|0;t=t|0;var n=0;n=e+24|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function dn(e){e=e|0;return o[e+24>>2]|0}function pn(e,t){e=e|0;t=t|0;var n=0;n=e+28|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function hn(e){e=e|0;return o[e+28>>2]|0}function mn(e,t){e=e|0;t=t|0;var n=0;n=e+32|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function vn(e){e=e|0;return o[e+32>>2]|0}function bn(e,t){e=e|0;t=t|0;var n=0;n=e+36|0;if((o[n>>2]|0)!=(t|0)){o[n>>2]=t;Ht(e)}return}function gn(e){e=e|0;return o[e+36>>2]|0}function _n(e,t){e=e|0;t=K(t);var n=0;n=e+40|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function yn(e,t){e=e|0;t=K(t);var n=0;n=e+44|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function Dn(e,t){e=e|0;t=K(t);var n=0;n=e+48|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+52|0;i=e+56|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function En(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+52|0;n=e+56|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Cn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+52|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Tn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function kn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+132+(t<<3)|0;t=e+132+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Sn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+132+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Mn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function xn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+60+(t<<3)|0;t=e+60+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function An(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+60+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function Pn(e,t){e=e|0;t=t|0;var n=0;n=e+60+(t<<3)+4|0;if((o[n>>2]|0)!=3){s[e+60+(t<<3)>>2]=K(w);o[n>>2]=3;Ht(e)}return}function On(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Rn(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=u?0:2;i=e+204+(t<<3)|0;t=e+204+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Nn(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=t+204+(n<<3)|0;t=o[r+4>>2]|0;n=e;o[n>>2]=o[r>>2];o[n+4>>2]=t;return}function In(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0,u=0;u=Dt(n)|0;r=(u^1)&1;i=e+276+(t<<3)|0;t=e+276+(t<<3)+4|0;if(!(u|K(s[i>>2])==n?(o[t>>2]|0)==(r|0):0)){s[i>>2]=n;o[t>>2]=r;Ht(e)}return}function Fn(e,t){e=e|0;t=t|0;return K(s[e+276+(t<<3)>>2])}function Bn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+348|0;i=e+352|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Ln(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+348|0;n=e+352|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function Un(e){e=e|0;var t=0;t=e+352|0;if((o[t>>2]|0)!=3){s[e+348>>2]=K(w);o[t>>2]=3;Ht(e)}return}function jn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+348|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Wn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+356|0;i=e+360|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function zn(e,t){e=e|0;t=K(t);var n=0,r=0;r=e+356|0;n=e+360|0;if(!(!(K(s[r>>2])!=t)?(o[n>>2]|0)==2:0)){s[r>>2]=t;r=Dt(t)|0;o[n>>2]=r?3:2;Ht(e)}return}function qn(e){e=e|0;var t=0;t=e+360|0;if((o[t>>2]|0)!=3){s[e+356>>2]=K(w);o[t>>2]=3;Ht(e)}return}function Hn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+356|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Gn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Vn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+364|0;i=e+368|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Yn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+364|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Kn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function $n(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+372|0;i=e+376|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Xn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+372|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function Jn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Qn(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+380|0;i=e+384|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function Zn(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+380|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function er(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=(u^1)&1;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function tr(e,t){e=e|0;t=K(t);var n=0,r=0,i=0,u=0;u=Dt(t)|0;n=u?0:2;r=e+388|0;i=e+392|0;if(!(u|K(s[r>>2])==t?(o[i>>2]|0)==(n|0):0)){s[r>>2]=t;o[i>>2]=n;Ht(e)}return}function nr(e,t){e=e|0;t=t|0;var n=0,r=0;r=t+388|0;n=o[r+4>>2]|0;t=e;o[t>>2]=o[r>>2];o[t+4>>2]=n;return}function rr(e,t){e=e|0;t=K(t);var n=0;n=e+396|0;if(K(s[n>>2])!=t){s[n>>2]=t;Ht(e)}return}function ir(e){e=e|0;return K(s[e+396>>2])}function or(e){e=e|0;return K(s[e+400>>2])}function ur(e){e=e|0;return K(s[e+404>>2])}function ar(e){e=e|0;return K(s[e+408>>2])}function lr(e){e=e|0;return K(s[e+412>>2])}function sr(e){e=e|0;return K(s[e+416>>2])}function cr(e){e=e|0;return K(s[e+420>>2])}function fr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+424+(t<<2)>>2])}function dr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+448+(t<<2)>>2])}function pr(e,t){e=e|0;t=t|0;It(e,(t|0)<6,2918);switch(t|0){case 0:{t=(o[e+496>>2]|0)==2?5:4;break}case 2:{t=(o[e+496>>2]|0)==2?4:5;break}default:{}}return K(s[e+472+(t<<2)>>2])}function hr(e,t){e=e|0;t=t|0;var n=0,r=ft;n=o[e+4>>2]|0;if((n|0)==(o[t+4>>2]|0)){if(!n)e=1;else{r=K(s[e>>2]);e=K(P(K(r-K(s[t>>2]))))<K(.0000999999974)}}else e=0;return e|0}function mr(e,t){e=K(e);t=K(t);var n=0;if(Dt(e)|0)n=Dt(t)|0;else n=K(P(K(e-t)))<K(.0000999999974);return n|0}function vr(e,t){e=e|0;t=t|0;br(e,t);return}function br(e,t){e=e|0;t=t|0;var n=0,i=0;n=h;h=h+16|0;i=n+4|0;o[i>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;Ue(i|0,e|0,t|0,0);Tr(e,3,(r[i+11>>0]|0)<0?o[i>>2]|0:i,n);XS(i);h=n;return}function gr(e,t,n,r){e=K(e);t=K(t);n=n|0;r=r|0;var i=ft;e=K(e*t);i=K(BS(e,K(1.0)));do{if(!(mr(i,K(0.0))|0)){e=K(e-i);if(mr(i,K(1.0))|0){e=K(e+K(1.0));break}if(n){e=K(e+K(1.0));break}if(!r){if(i>K(.5))i=K(1.0);else{r=mr(i,K(.5))|0;i=r?K(1.0):K(0.0)}e=K(e+i)}}else e=K(e-i)}while(0);return K(e/t)}function _r(e,t,n,r,i,o,u,a,l,c,f,d,p){e=e|0;t=K(t);n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;a=K(a);l=K(l);c=K(c);f=K(f);d=K(d);p=p|0;var h=0,m=ft,v=ft,b=ft,g=ft,_=ft,y=ft;if(l<K(0.0)|c<K(0.0))p=0;else{if((p|0)!=0?(m=K(s[p+4>>2]),m!=K(0.0)):0){b=K(gr(t,m,0,0));g=K(gr(r,m,0,0));v=K(gr(o,m,0,0));m=K(gr(a,m,0,0))}else{v=o;b=t;m=a;g=r}if((i|0)==(e|0))h=mr(v,b)|0;else h=0;if((u|0)==(n|0))p=mr(m,g)|0;else p=0;if((!h?(_=K(t-f),!(yr(e,_,l)|0)):0)?!(Dr(e,_,i,l)|0):0)h=wr(e,_,i,o,l)|0;else h=1;if((!p?(y=K(r-d),!(yr(n,y,c)|0)):0)?!(Dr(n,y,u,c)|0):0)p=wr(n,y,u,a,c)|0;else p=1;p=h&p}return p|0}function yr(e,t,n){e=e|0;t=K(t);n=K(n);if((e|0)==1)e=mr(t,n)|0;else e=0;return e|0}function Dr(e,t,n,r){e=e|0;t=K(t);n=n|0;r=K(r);if((e|0)==2&(n|0)==0){if(!(t>=r))e=mr(t,r)|0;else e=1}else e=0;return e|0}function wr(e,t,n,r,i){e=e|0;t=K(t);n=n|0;r=K(r);i=K(i);if((e|0)==2&(n|0)==2&r>t){if(!(i<=t))e=mr(t,i)|0;else e=1}else e=0;return e|0}function Er(e,t,n,i,u,a,l,f,d,p,m){e=e|0;t=K(t);n=K(n);i=i|0;u=u|0;a=a|0;l=K(l);f=K(f);d=d|0;p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=ft,N=ft,I=ft,F=0.0,B=0.0;O=h;h=h+160|0;x=O+152|0;M=O+120|0;S=O+104|0;C=O+72|0;_=O+56|0;k=O+8|0;E=O;T=(o[2279]|0)+1|0;o[2279]=T;A=e+984|0;if((r[A>>0]|0)!=0?(o[e+512>>2]|0)!=(o[2278]|0):0)w=4;else if((o[e+516>>2]|0)==(i|0))P=0;else w=4;if((w|0)==4){o[e+520>>2]=0;o[e+924>>2]=-1;o[e+928>>2]=-1;s[e+932>>2]=K(-1.0);s[e+936>>2]=K(-1.0);P=1}e:do{if(!(o[e+964>>2]|0)){if(d){v=e+916|0;if(!(mr(K(s[v>>2]),t)|0)){w=21;break}if(!(mr(K(s[e+920>>2]),n)|0)){w=21;break}if((o[e+924>>2]|0)!=(u|0)){w=21;break}v=(o[e+928>>2]|0)==(a|0)?v:0;w=22;break}g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;if(((mr(K(s[v>>2]),t)|0?mr(K(s[e+524+(b*24|0)+4>>2]),n)|0:0)?(o[e+524+(b*24|0)+8>>2]|0)==(u|0):0)?(o[e+524+(b*24|0)+12>>2]|0)==(a|0):0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else{y=K(Cr(e,2,l));D=K(Cr(e,0,l));v=e+916|0;I=K(s[v>>2]);N=K(s[e+920>>2]);R=K(s[e+932>>2]);if(!(_r(u,t,a,n,o[e+924>>2]|0,I,o[e+928>>2]|0,N,R,K(s[e+936>>2]),y,D,m)|0)){g=o[e+520>>2]|0;if(!g)w=21;else{b=0;while(1){v=e+524+(b*24|0)|0;R=K(s[v>>2]);N=K(s[e+524+(b*24|0)+4>>2]);I=K(s[e+524+(b*24|0)+16>>2]);if(_r(u,t,a,n,o[e+524+(b*24|0)+8>>2]|0,R,o[e+524+(b*24|0)+12>>2]|0,N,I,K(s[e+524+(b*24|0)+20>>2]),y,D,m)|0){w=22;break e}b=b+1|0;if(b>>>0>=g>>>0){w=21;break}}}}else w=22}}while(0);do{if((w|0)==21){if(!(r[11697]|0)){v=0;w=31}else{v=0;w=28}}else if((w|0)==22){b=(r[11697]|0)!=0;if(!((v|0)!=0&(P^1)))if(b){w=28;break}else{w=31;break}_=v+16|0;o[e+908>>2]=o[_>>2];g=v+20|0;o[e+912>>2]=o[g>>2];if(!((r[11698]|0)==0|b^1)){o[E>>2]=kr(T)|0;o[E+4>>2]=T;Tr(e,4,2972,E);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);u=Sr(u,d)|0;a=Sr(a,d)|0;B=+K(s[_>>2]);F=+K(s[g>>2]);o[k>>2]=u;o[k+4>>2]=a;c[k+8>>3]=+t;c[k+16>>3]=+n;c[k+24>>3]=B;c[k+32>>3]=F;o[k+40>>2]=p;Tr(e,4,2989,k)}}}while(0);if((w|0)==28){b=kr(T)|0;o[_>>2]=b;o[_+4>>2]=T;o[_+8>>2]=P?3047:11699;Tr(e,4,3038,_);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;w=Sr(a,d)|0;o[C>>2]=k;o[C+4>>2]=w;c[C+8>>3]=+t;c[C+16>>3]=+n;o[C+24>>2]=p;Tr(e,4,3049,C);w=31}if((w|0)==31){Mr(e,t,n,i,u,a,l,f,d,m);if(r[11697]|0){b=o[2279]|0;k=kr(b)|0;o[S>>2]=k;o[S+4>>2]=b;o[S+8>>2]=P?3047:11699;Tr(e,4,3083,S);b=o[e+972>>2]|0;if(b|0)hx[b&127](e);k=Sr(u,d)|0;S=Sr(a,d)|0;F=+K(s[e+908>>2]);B=+K(s[e+912>>2]);o[M>>2]=k;o[M+4>>2]=S;c[M+8>>3]=F;c[M+16>>3]=B;o[M+24>>2]=p;Tr(e,4,3092,M)}o[e+516>>2]=i;if(!v){b=e+520|0;v=o[b>>2]|0;if((v|0)==16){if(r[11697]|0)Tr(e,4,3124,x);o[b>>2]=0;v=0}if(d)v=e+916|0;else{o[b>>2]=v+1;v=e+524+(v*24|0)|0}s[v>>2]=t;s[v+4>>2]=n;o[v+8>>2]=u;o[v+12>>2]=a;o[v+16>>2]=o[e+908>>2];o[v+20>>2]=o[e+912>>2];v=0}}if(d){o[e+416>>2]=o[e+908>>2];o[e+420>>2]=o[e+912>>2];r[e+985>>0]=1;r[A>>0]=0}o[2279]=(o[2279]|0)+-1;o[e+512>>2]=o[2278];h=O;return P|(v|0)==0|0}function Cr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(Hr(e,t,n));return K(r+K(Gr(e,t,n)))}function Tr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u;o[i>>2]=r;if(!e)r=0;else r=o[e+976>>2]|0;Lr(r,e,t,n,i);h=u;return}function kr(e){e=e|0;return(e>>>0>60?3201:3201+(60-e)|0)|0}function Sr(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i+12|0;r=i;o[n>>2]=o[254];o[n+4>>2]=o[255];o[n+8>>2]=o[256];o[r>>2]=o[257];o[r+4>>2]=o[258];o[r+8>>2]=o[259];if((e|0)>2)e=11699;else e=o[(t?r:n)+(e<<2)>>2]|0;h=i;return e|0}function Mr(e,t,n,i,a,l,c,f,p,m){e=e|0;t=K(t);n=K(n);i=i|0;a=a|0;l=l|0;c=K(c);f=K(f);p=p|0;m=m|0;var v=0,b=0,g=0,_=0,y=ft,D=ft,w=ft,E=ft,C=ft,T=ft,k=ft,S=0,M=0,x=0,A=ft,P=ft,O=0,R=ft,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,$=0,X=0,J=0,Q=0,Z=ft,ee=ft,te=ft,ne=ft,re=ft,ie=0,oe=0,ue=0,ae=0,le=0,se=ft,ce=ft,fe=ft,de=ft,pe=ft,he=ft,me=0,ve=ft,be=ft,ge=ft,_e=ft,ye=ft,De=ft,we=0,Ee=0,Ce=ft,Te=ft,ke=0,Se=0,Me=0,xe=0,Ae=ft,Pe=0,Oe=0,Re=0,Ne=0,Ie=0,Fe=0,Be=0,Le=ft,Ue=0,je=0;Be=h;h=h+16|0;ie=Be+12|0;oe=Be+8|0;ue=Be+4|0;ae=Be;It(e,(a|0)==0|(Dt(t)|0)^1,3326);It(e,(l|0)==0|(Dt(n)|0)^1,3406);Oe=Kr(e,i)|0;o[e+496>>2]=Oe;Ie=$r(2,Oe)|0;Fe=$r(0,Oe)|0;s[e+440>>2]=K(Hr(e,Ie,c));s[e+444>>2]=K(Gr(e,Ie,c));s[e+428>>2]=K(Hr(e,Fe,c));s[e+436>>2]=K(Gr(e,Fe,c));s[e+464>>2]=K(Xr(e,Ie));s[e+468>>2]=K(Jr(e,Ie));s[e+452>>2]=K(Xr(e,Fe));s[e+460>>2]=K(Jr(e,Fe));s[e+488>>2]=K(Qr(e,Ie,c));s[e+492>>2]=K(Zr(e,Ie,c));s[e+476>>2]=K(Qr(e,Fe,c));s[e+484>>2]=K(Zr(e,Fe,c));do{if(!(o[e+964>>2]|0)){Re=e+948|0;Ne=(o[e+952>>2]|0)-(o[Re>>2]|0)>>2;if(!Ne){ti(e,t,n,a,l,c,f);break}if(!p?ni(e,t,n,a,l,c,f)|0:0)break;zt(e);X=e+508|0;r[X>>0]=0;Ie=$r(o[e+4>>2]|0,Oe)|0;Fe=ri(Ie,Oe)|0;Pe=Vr(Ie)|0;J=o[e+8>>2]|0;Se=e+28|0;Q=(o[Se>>2]|0)!=0;ye=Pe?c:f;Ce=Pe?f:c;Z=K(ii(e,Ie,c));ee=K(oi(e,Ie,c));y=K(ii(e,Fe,c));De=K(ui(e,Ie,c));Te=K(ui(e,Fe,c));x=Pe?a:l;ke=Pe?l:a;Ae=Pe?De:Te;C=Pe?Te:De;_e=K(Cr(e,2,c));E=K(Cr(e,0,c));D=K(K(Rr(e+364|0,c))-Ae);w=K(K(Rr(e+380|0,c))-Ae);T=K(K(Rr(e+372|0,f))-C);k=K(K(Rr(e+388|0,f))-C);te=Pe?D:T;ne=Pe?w:k;_e=K(t-_e);t=K(_e-Ae);if(Dt(t)|0)Ae=t;else Ae=K(RS(K(IS(t,w)),D));be=K(n-E);t=K(be-C);if(Dt(t)|0)ge=t;else ge=K(RS(K(IS(t,k)),T));D=Pe?Ae:ge;ve=Pe?ge:Ae;e:do{if((x|0)==1){i=0;b=0;while(1){v=Pt(e,b)|0;if(!i){if(K(li(v))>K(0.0)?K(si(v))>K(0.0):0)i=v;else i=0}else if(ai(v)|0){_=0;break e}b=b+1|0;if(b>>>0>=Ne>>>0){_=i;break}}}else _=0}while(0);S=_+500|0;M=_+504|0;i=0;v=0;t=K(0.0);g=0;do{b=o[(o[Re>>2]|0)+(g<<2)>>2]|0;if((o[b+36>>2]|0)==1){ci(b);r[b+985>>0]=1;r[b+984>>0]=0}else{Pr(b);if(p)Nr(b,Kr(b,Oe)|0,D,ve,Ae);do{if((o[b+24>>2]|0)!=1){if((b|0)==(_|0)){o[S>>2]=o[2278];s[M>>2]=K(0.0);break}else{fi(e,b,Ae,a,ge,Ae,ge,l,Oe,m);break}}else{if(v|0)o[v+960>>2]=b;o[b+960>>2]=0;v=b;i=(i|0)==0?b:i}}while(0);he=K(s[b+504>>2]);t=K(t+K(he+K(Cr(b,Ie,Ae))))}g=g+1|0}while((g|0)!=(Ne|0));F=t>D;me=Q&((x|0)==2&F)?1:x;N=(ke|0)==1;L=N&(p^1);U=(me|0)==1;j=(me|0)==2;W=976+(Ie<<2)|0;z=(ke|2|0)==2;Y=N&(Q^1);q=1040+(Fe<<2)|0;H=1040+(Ie<<2)|0;G=976+(Fe<<2)|0;V=(ke|0)!=1;F=Q&((x|0)!=0&F);I=e+976|0;N=N^1;t=D;O=0;B=0;he=K(0.0);re=K(0.0);while(1){e:do{if(O>>>0<Ne>>>0){M=o[Re>>2]|0;g=0;k=K(0.0);T=K(0.0);w=K(0.0);D=K(0.0);b=0;v=0;_=O;while(1){S=o[M+(_<<2)>>2]|0;if((o[S+36>>2]|0)!=1?(o[S+940>>2]=B,(o[S+24>>2]|0)!=1):0){E=K(Cr(S,Ie,Ae));$=o[W>>2]|0;n=K(Rr(S+380+($<<3)|0,ye));C=K(s[S+504>>2]);n=K(IS(n,C));n=K(RS(K(Rr(S+364+($<<3)|0,ye)),n));if(Q&(g|0)!=0&K(E+K(T+n))>t){l=g;E=k;x=_;break e}E=K(E+n);n=K(T+E);E=K(k+E);if(ai(S)|0){w=K(w+K(li(S)));D=K(D-K(C*K(si(S))))}if(v|0)o[v+960>>2]=S;o[S+960>>2]=0;g=g+1|0;v=S;b=(b|0)==0?S:b}else{E=k;n=T}_=_+1|0;if(_>>>0<Ne>>>0){k=E;T=n}else{l=g;x=_;break}}}else{l=0;E=K(0.0);w=K(0.0);D=K(0.0);b=0;x=O}}while(0);$=w>K(0.0)&w<K(1.0);A=$?K(1.0):w;$=D>K(0.0)&D<K(1.0);k=$?K(1.0):D;do{if(!U){if(!(E<te&((Dt(te)|0)^1))){if(!(E>ne&((Dt(ne)|0)^1))){if(!(r[(o[I>>2]|0)+3>>0]|0)){if(!(A==K(0.0))?!(K(li(e))==K(0.0)):0){$=53;break}t=E;$=53}else $=51}else{t=ne;$=51}}else{t=te;$=51}}else $=51}while(0);if(($|0)==51){$=0;if(Dt(t)|0)$=53;else{P=K(t-E);R=t}}if(($|0)==53){$=0;if(E<K(0.0)){P=K(-E);R=t}else{P=K(0.0);R=t}}if(!L?(le=(b|0)==0,!le):0){g=o[W>>2]|0;_=P<K(0.0);C=K(P/k);S=P>K(0.0);T=K(P/A);w=K(0.0);E=K(0.0);t=K(0.0);v=b;do{n=K(Rr(v+380+(g<<3)|0,ye));D=K(Rr(v+364+(g<<3)|0,ye));D=K(IS(n,K(RS(D,K(s[v+504>>2])))));if(_){n=K(D*K(si(v)));if(n!=K(-0.0)?(Le=K(D-K(C*n)),se=K(di(v,Ie,Le,R,Ae)),Le!=se):0){w=K(w-K(se-D));t=K(t+n)}}else if((S?(ce=K(li(v)),ce!=K(0.0)):0)?(Le=K(D+K(T*ce)),fe=K(di(v,Ie,Le,R,Ae)),Le!=fe):0){w=K(w-K(fe-D));E=K(E-ce)}v=o[v+960>>2]|0}while((v|0)!=0);t=K(k+t);D=K(P+w);if(!le){C=K(A+E);_=o[W>>2]|0;S=D<K(0.0);M=t==K(0.0);T=K(D/t);g=D>K(0.0);C=K(D/C);t=K(0.0);do{Le=K(Rr(b+380+(_<<3)|0,ye));w=K(Rr(b+364+(_<<3)|0,ye));w=K(IS(Le,K(RS(w,K(s[b+504>>2])))));if(S){Le=K(w*K(si(b)));D=K(-Le);if(Le!=K(-0.0)){Le=K(T*D);D=K(di(b,Ie,K(w+(M?D:Le)),R,Ae))}else D=w}else if(g?(de=K(li(b)),de!=K(0.0)):0)D=K(di(b,Ie,K(w+K(C*de)),R,Ae));else D=w;t=K(t-K(D-w));E=K(Cr(b,Ie,Ae));n=K(Cr(b,Fe,Ae));D=K(D+E);s[oe>>2]=D;o[ae>>2]=1;w=K(s[b+396>>2]);e:do{if(Dt(w)|0){v=Dt(ve)|0;do{if(!v){if(F|(Or(b,Fe,ve)|0|N))break;if((pi(e,b)|0)!=4)break;if((o[(hi(b,Fe)|0)+4>>2]|0)==3)break;if((o[(mi(b,Fe)|0)+4>>2]|0)==3)break;s[ie>>2]=ve;o[ue>>2]=1;break e}}while(0);if(Or(b,Fe,ve)|0){v=o[b+992+(o[G>>2]<<2)>>2]|0;Le=K(n+K(Rr(v,ve)));s[ie>>2]=Le;v=V&(o[v+4>>2]|0)==2;o[ue>>2]=((Dt(Le)|0|v)^1)&1;break}else{s[ie>>2]=ve;o[ue>>2]=v?0:2;break}}else{Le=K(D-E);A=K(Le/w);Le=K(w*Le);o[ue>>2]=1;s[ie>>2]=K(n+(Pe?A:Le))}}while(0);vi(b,Ie,R,Ae,ae,oe);vi(b,Fe,ve,Ae,ue,ie);do{if(!(Or(b,Fe,ve)|0)?(pi(e,b)|0)==4:0){if((o[(hi(b,Fe)|0)+4>>2]|0)==3){v=0;break}v=(o[(mi(b,Fe)|0)+4>>2]|0)!=3}else v=0}while(0);Le=K(s[oe>>2]);A=K(s[ie>>2]);Ue=o[ae>>2]|0;je=o[ue>>2]|0;Er(b,Pe?Le:A,Pe?A:Le,Oe,Pe?Ue:je,Pe?je:Ue,Ae,ge,p&(v^1),3488,m)|0;r[X>>0]=r[X>>0]|r[b+508>>0];b=o[b+960>>2]|0}while((b|0)!=0)}else t=K(0.0)}else t=K(0.0);t=K(P+t);je=t<K(0.0)&1;r[X>>0]=je|u[X>>0];if(j&t>K(0.0)){v=o[W>>2]|0;if((o[e+364+(v<<3)+4>>2]|0)!=0?(pe=K(Rr(e+364+(v<<3)|0,ye)),pe>=K(0.0)):0)D=K(RS(K(0.0),K(pe-K(R-t))));else D=K(0.0)}else D=t;S=O>>>0<x>>>0;if(S){_=o[Re>>2]|0;g=O;v=0;do{b=o[_+(g<<2)>>2]|0;if(!(o[b+24>>2]|0)){v=((o[(hi(b,Ie)|0)+4>>2]|0)==3&1)+v|0;v=v+((o[(mi(b,Ie)|0)+4>>2]|0)==3&1)|0}g=g+1|0}while((g|0)!=(x|0));if(v){E=K(0.0);n=K(0.0)}else $=101}else $=101;e:do{if(($|0)==101){$=0;switch(J|0){case 1:{v=0;E=K(D*K(.5));n=K(0.0);break e}case 2:{v=0;E=D;n=K(0.0);break e}case 3:{if(l>>>0<=1){v=0;E=K(0.0);n=K(0.0);break e}n=K((l+-1|0)>>>0);v=0;E=K(0.0);n=K(K(RS(D,K(0.0)))/n);break e}case 5:{n=K(D/K((l+1|0)>>>0));v=0;E=n;break e}case 4:{n=K(D/K(l>>>0));v=0;E=K(n*K(.5));break e}default:{v=0;E=K(0.0);n=K(0.0);break e}}}}while(0);t=K(Z+E);if(S){w=K(D/K(v|0));g=o[Re>>2]|0;b=O;D=K(0.0);do{v=o[g+(b<<2)>>2]|0;e:do{if((o[v+36>>2]|0)!=1){switch(o[v+24>>2]|0){case 1:{if(bi(v,Ie)|0){if(!p)break e;Le=K(gi(v,Ie,R));Le=K(Le+K(Xr(e,Ie)));Le=K(Le+K(Hr(v,Ie,Ae)));s[v+400+(o[H>>2]<<2)>>2]=Le;break e}break}case 0:{je=(o[(hi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(p){je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(t+K(s[je>>2]))}je=(o[(mi(v,Ie)|0)+4>>2]|0)==3;Le=K(w+t);t=je?Le:t;if(L){Le=K(n+K(Cr(v,Ie,Ae)));D=ve;t=K(t+K(Le+K(s[v+504>>2])));break e}else{t=K(t+K(n+K(_i(v,Ie,Ae))));D=K(RS(D,K(_i(v,Fe,Ae))));break e}}default:{}}if(p){Le=K(E+K(Xr(e,Ie)));je=v+400+(o[H>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}}while(0);b=b+1|0}while((b|0)!=(x|0))}else D=K(0.0);n=K(ee+t);if(z)E=K(K(di(e,Fe,K(Te+D),Ce,c))-Te);else E=ve;w=K(K(di(e,Fe,K(Te+(Y?ve:D)),Ce,c))-Te);if(S&p){b=O;do{g=o[(o[Re>>2]|0)+(b<<2)>>2]|0;do{if((o[g+36>>2]|0)!=1){if((o[g+24>>2]|0)==1){if(bi(g,Fe)|0){Le=K(gi(g,Fe,ve));Le=K(Le+K(Xr(e,Fe)));Le=K(Le+K(Hr(g,Fe,Ae)));v=o[q>>2]|0;s[g+400+(v<<2)>>2]=Le;if(!(Dt(Le)|0))break}else v=o[q>>2]|0;Le=K(Xr(e,Fe));s[g+400+(v<<2)>>2]=K(Le+K(Hr(g,Fe,Ae)));break}v=pi(e,g)|0;do{if((v|0)==4){if((o[(hi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if((o[(mi(g,Fe)|0)+4>>2]|0)==3){$=139;break}if(Or(g,Fe,ve)|0){t=y;break}Ue=o[g+908+(o[W>>2]<<2)>>2]|0;o[ie>>2]=Ue;t=K(s[g+396>>2]);je=Dt(t)|0;D=(o[d>>2]=Ue,K(s[d>>2]));if(je)t=w;else{P=K(Cr(g,Fe,Ae));Le=K(D/t);t=K(t*D);t=K(P+(Pe?Le:t))}s[oe>>2]=t;s[ie>>2]=K(K(Cr(g,Ie,Ae))+D);o[ue>>2]=1;o[ae>>2]=1;vi(g,Ie,R,Ae,ue,ie);vi(g,Fe,ve,Ae,ae,oe);t=K(s[ie>>2]);P=K(s[oe>>2]);Le=Pe?t:P;t=Pe?P:t;je=((Dt(Le)|0)^1)&1;Er(g,Le,t,Oe,je,((Dt(t)|0)^1)&1,Ae,ge,1,3493,m)|0;t=y}else $=139}while(0);e:do{if(($|0)==139){$=0;t=K(E-K(_i(g,Fe,Ae)));do{if((o[(hi(g,Fe)|0)+4>>2]|0)==3){if((o[(mi(g,Fe)|0)+4>>2]|0)!=3)break;t=K(y+K(RS(K(0.0),K(t*K(.5)))));break e}}while(0);if((o[(mi(g,Fe)|0)+4>>2]|0)==3){t=y;break}if((o[(hi(g,Fe)|0)+4>>2]|0)==3){t=K(y+K(RS(K(0.0),t)));break}switch(v|0){case 1:{t=y;break e}case 2:{t=K(y+K(t*K(.5)));break e}default:{t=K(y+t);break e}}}}while(0);Le=K(he+t);je=g+400+(o[q>>2]<<2)|0;s[je>>2]=K(Le+K(s[je>>2]))}}while(0);b=b+1|0}while((b|0)!=(x|0))}he=K(he+w);re=K(RS(re,n));l=B+1|0;if(x>>>0>=Ne>>>0)break;else{t=R;O=x;B=l}}do{if(p){v=l>>>0>1;if(!v?!(yi(e)|0):0)break;if(!(Dt(ve)|0)){t=K(ve-he);e:do{switch(o[e+12>>2]|0){case 3:{y=K(y+t);T=K(0.0);break}case 2:{y=K(y+K(t*K(.5)));T=K(0.0);break}case 4:{if(ve>he)T=K(t/K(l>>>0));else T=K(0.0);break}case 7:if(ve>he){y=K(y+K(t/K(l<<1>>>0)));T=K(t/K(l>>>0));T=v?T:K(0.0);break e}else{y=K(y+K(t*K(.5)));T=K(0.0);break e}case 6:{T=K(t/K(B>>>0));T=ve>he&v?T:K(0.0);break}default:T=K(0.0)}}while(0);if(l|0){S=1040+(Fe<<2)|0;M=976+(Fe<<2)|0;_=0;b=0;while(1){e:do{if(b>>>0<Ne>>>0){D=K(0.0);w=K(0.0);t=K(0.0);g=b;while(1){v=o[(o[Re>>2]|0)+(g<<2)>>2]|0;do{if((o[v+36>>2]|0)!=1?(o[v+24>>2]|0)==0:0){if((o[v+940>>2]|0)!=(_|0))break e;if(Di(v,Fe)|0){Le=K(s[v+908+(o[M>>2]<<2)>>2]);t=K(RS(t,K(Le+K(Cr(v,Fe,Ae)))))}if((pi(e,v)|0)!=5)break;pe=K(wi(v));pe=K(pe+K(Hr(v,0,Ae)));Le=K(s[v+912>>2]);Le=K(K(Le+K(Cr(v,0,Ae)))-pe);pe=K(RS(w,pe));Le=K(RS(D,Le));D=Le;w=pe;t=K(RS(t,K(pe+Le)))}}while(0);v=g+1|0;if(v>>>0<Ne>>>0)g=v;else{g=v;break}}}else{w=K(0.0);t=K(0.0);g=b}}while(0);C=K(T+t);n=y;y=K(y+C);if(b>>>0<g>>>0){E=K(n+w);v=b;do{b=o[(o[Re>>2]|0)+(v<<2)>>2]|0;e:do{if((o[b+36>>2]|0)!=1?(o[b+24>>2]|0)==0:0)switch(pi(e,b)|0){case 1:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 3:{Le=K(K(y-K(Gr(b,Fe,Ae)))-K(s[b+908+(o[M>>2]<<2)>>2]));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 2:{Le=K(n+K(K(C-K(s[b+908+(o[M>>2]<<2)>>2]))*K(.5)));s[b+400+(o[S>>2]<<2)>>2]=Le;break e}case 4:{Le=K(n+K(Hr(b,Fe,Ae)));s[b+400+(o[S>>2]<<2)>>2]=Le;if(Or(b,Fe,ve)|0)break e;if(Pe){D=K(s[b+908>>2]);t=K(D+K(Cr(b,Ie,Ae)));w=C}else{w=K(s[b+912>>2]);w=K(w+K(Cr(b,Fe,Ae)));t=C;D=K(s[b+908>>2])}if(mr(t,D)|0?mr(w,K(s[b+912>>2]))|0:0)break e;Er(b,t,w,Oe,1,1,Ae,ge,1,3501,m)|0;break e}case 5:{s[b+404>>2]=K(K(E-K(wi(b)))+K(gi(b,0,ve)));break e}default:break e}}while(0);v=v+1|0}while((v|0)!=(g|0))}_=_+1|0;if((_|0)==(l|0))break;else b=g}}}}}while(0);s[e+908>>2]=K(di(e,2,_e,c,c));s[e+912>>2]=K(di(e,0,be,f,c));if((me|0)!=0?(we=o[e+32>>2]|0,Ee=(me|0)==2,!(Ee&(we|0)!=2)):0){if(Ee&(we|0)==2){t=K(De+R);t=K(RS(K(IS(t,K(Ei(e,Ie,re,ye)))),De));$=198}}else{t=K(di(e,Ie,re,ye,c));$=198}if(($|0)==198)s[e+908+(o[976+(Ie<<2)>>2]<<2)>>2]=t;if((ke|0)!=0?(Me=o[e+32>>2]|0,xe=(ke|0)==2,!(xe&(Me|0)!=2)):0){if(xe&(Me|0)==2){t=K(Te+ve);t=K(RS(K(IS(t,K(Ei(e,Fe,K(Te+he),Ce)))),Te));$=204}}else{t=K(di(e,Fe,K(Te+he),Ce,c));$=204}if(($|0)==204)s[e+908+(o[976+(Fe<<2)>>2]<<2)>>2]=t;if(p){if((o[Se>>2]|0)==2){b=976+(Fe<<2)|0;g=1040+(Fe<<2)|0;v=0;do{_=Pt(e,v)|0;if(!(o[_+24>>2]|0)){Ue=o[b>>2]|0;Le=K(s[e+908+(Ue<<2)>>2]);je=_+400+(o[g>>2]<<2)|0;Le=K(Le-K(s[je>>2]));s[je>>2]=K(Le-K(s[_+908+(Ue<<2)>>2]))}v=v+1|0}while((v|0)!=(Ne|0))}if(i|0){v=Pe?me:a;do{Ci(e,i,Ae,v,ge,Oe,m);i=o[i+960>>2]|0}while((i|0)!=0)}v=(Ie|2|0)==3;b=(Fe|2|0)==3;if(v|b){i=0;do{g=o[(o[Re>>2]|0)+(i<<2)>>2]|0;if((o[g+36>>2]|0)!=1){if(v)Ti(e,g,Ie);if(b)Ti(e,g,Fe)}i=i+1|0}while((i|0)!=(Ne|0))}}}else ei(e,t,n,a,l,c,f)}while(0);h=Be;return}function xr(e,t){e=e|0;t=K(t);var n=0;Ct(e,t>=K(0.0),3147);n=t==K(0.0);s[e+4>>2]=n?K(0.0):t;return}function Ar(e,t,n,i){e=e|0;t=K(t);n=K(n);i=i|0;var u=ft,a=ft,l=0,c=0,f=0;o[2278]=(o[2278]|0)+1;Pr(e);if(!(Or(e,2,t)|0)){u=K(Rr(e+380|0,t));if(!(u>=K(0.0))){f=((Dt(t)|0)^1)&1;u=t}else f=2}else{u=K(Rr(o[e+992>>2]|0,t));f=1;u=K(u+K(Cr(e,2,t)))}if(!(Or(e,0,n)|0)){a=K(Rr(e+388|0,n));if(!(a>=K(0.0))){c=((Dt(n)|0)^1)&1;a=n}else c=2}else{a=K(Rr(o[e+996>>2]|0,n));c=1;a=K(a+K(Cr(e,0,t)))}l=e+976|0;if(Er(e,u,a,i,f,c,t,n,1,3189,o[l>>2]|0)|0?(Nr(e,o[e+496>>2]|0,t,n,t),Ir(e,K(s[(o[l>>2]|0)+4>>2]),K(0.0),K(0.0)),r[11696]|0):0)vr(e,7);return}function Pr(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;a=l+24|0;u=l+16|0;r=l+8|0;i=l;n=0;do{t=e+380+(n<<3)|0;if(!((o[e+380+(n<<3)+4>>2]|0)!=0?(s=t,c=o[s+4>>2]|0,f=r,o[f>>2]=o[s>>2],o[f+4>>2]=c,f=e+364+(n<<3)|0,c=o[f+4>>2]|0,s=i,o[s>>2]=o[f>>2],o[s+4>>2]=c,o[u>>2]=o[r>>2],o[u+4>>2]=o[r+4>>2],o[a>>2]=o[i>>2],o[a+4>>2]=o[i+4>>2],hr(u,a)|0):0))t=e+348+(n<<3)|0;o[e+992+(n<<2)>>2]=t;n=n+1|0}while((n|0)!=2);h=l;return}function Or(e,t,n){e=e|0;t=t|0;n=K(n);var r=0;e=o[e+992+(o[976+(t<<2)>>2]<<2)>>2]|0;switch(o[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{if(K(s[e>>2])<K(0.0))e=0;else r=5;break}case 2:{if(K(s[e>>2])<K(0.0))e=0;else e=(Dt(n)|0)^1;break}default:r=5}if((r|0)==5)e=1;return e|0}function Rr(e,t){e=e|0;t=K(t);switch(o[e+4>>2]|0){case 2:{t=K(K(K(s[e>>2])*t)/K(100.0));break}case 1:{t=K(s[e>>2]);break}default:t=K(w)}return K(t)}function Nr(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);var u=0,a=ft;t=o[e+944>>2]|0?t:1;u=$r(o[e+4>>2]|0,t)|0;t=ri(u,t)|0;n=K(Pi(e,u,n));r=K(Pi(e,t,r));a=K(n+K(Hr(e,u,i)));s[e+400+(o[1040+(u<<2)>>2]<<2)>>2]=a;n=K(n+K(Gr(e,u,i)));s[e+400+(o[1e3+(u<<2)>>2]<<2)>>2]=n;n=K(r+K(Hr(e,t,i)));s[e+400+(o[1040+(t<<2)>>2]<<2)>>2]=n;i=K(r+K(Gr(e,t,i)));s[e+400+(o[1e3+(t<<2)>>2]<<2)>>2]=i;return}function Ir(e,t,n,r){e=e|0;t=K(t);n=K(n);r=K(r);var i=0,u=0,a=ft,l=ft,c=0,f=0,d=ft,p=0,h=ft,m=ft,v=ft,b=ft;if(!(t==K(0.0))){i=e+400|0;b=K(s[i>>2]);u=e+404|0;v=K(s[u>>2]);p=e+416|0;m=K(s[p>>2]);f=e+420|0;a=K(s[f>>2]);h=K(b+n);d=K(v+r);r=K(h+m);l=K(d+a);c=(o[e+988>>2]|0)==1;s[i>>2]=K(gr(b,t,0,c));s[u>>2]=K(gr(v,t,0,c));n=K(BS(K(m*t),K(1.0)));if(mr(n,K(0.0))|0)u=0;else u=(mr(n,K(1.0))|0)^1;n=K(BS(K(a*t),K(1.0)));if(mr(n,K(0.0))|0)i=0;else i=(mr(n,K(1.0))|0)^1;b=K(gr(r,t,c&u,c&(u^1)));s[p>>2]=K(b-K(gr(h,t,0,c)));b=K(gr(l,t,c&i,c&(i^1)));s[f>>2]=K(b-K(gr(d,t,0,c)));u=(o[e+952>>2]|0)-(o[e+948>>2]|0)>>2;if(u|0){i=0;do{Ir(Pt(e,i)|0,t,h,d);i=i+1|0}while((i|0)!=(u|0))}}return}function Fr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;switch(n|0){case 5:case 0:{e=oS(o[489]|0,r,i)|0;break}default:e=US(r,i)|0}return e|0}function Br(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;i=h;h=h+16|0;u=i;o[u>>2]=r;Lr(e,0,t,n,u);h=i;return}function Lr(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;e=e|0?e:956;Mx[o[e+8>>2]&1](e,t,n,r,i)|0;if((n|0)==5)Ke();else return}function Ur(e,t,n){e=e|0;t=t|0;n=n|0;r[e+t>>0]=n&1;return}function jr(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){Wr(e,r);zr(e,o[t>>2]|0,o[n>>2]|0,r)}return}function Wr(e,t){e=e|0;t=t|0;var n=0;if((qr(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function zr(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function qr(e){e=e|0;return 1073741823}function Hr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)e=e+92|0;else e=wt(e+60|0,o[1040+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Gr(e,t,n){e=e|0;t=t|0;n=K(n);if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)e=e+100|0;else e=wt(e+60|0,o[1e3+(t<<2)>>2]|0,992)|0;return K(Yr(e,n))}function Vr(e){e=e|0;return(e|1|0)==3|0}function Yr(e,t){e=e|0;t=K(t);if((o[e+4>>2]|0)==3)t=K(0.0);else t=K(Rr(e,t));return K(t)}function Kr(e,t){e=e|0;t=t|0;e=o[e>>2]|0;return((e|0)==0?(t|0)>1?t:1:e)|0}function $r(e,t){e=e|0;t=t|0;var n=0;e:do{if((t|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{n=4;break e}}e=2}else n=4}while(0);return e|0}function Xr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+312>>2]|0)!=0:0)?(n=K(s[e+308>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1040+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Jr(e,t){e=e|0;t=t|0;var n=ft;if(!((Vr(t)|0?(o[e+320>>2]|0)!=0:0)?(n=K(s[e+316>>2]),n>=K(0.0)):0))n=K(RS(K(s[(wt(e+276|0,o[1e3+(t<<2)>>2]|0,992)|0)>>2]),K(0.0)));return K(n)}function Qr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+240>>2]|0)!=0:0)?(r=K(Rr(e+236|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1040+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function Zr(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;if(!((Vr(t)|0?(o[e+248>>2]|0)!=0:0)?(r=K(Rr(e+244|0,n)),r>=K(0.0)):0))r=K(RS(K(Rr(wt(e+204|0,o[1e3+(t<<2)>>2]|0,992)|0,n)),K(0.0)));return K(r)}function ei(e,t,n,r,i,u,a){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;u=K(u);a=K(a);var l=ft,c=ft,f=ft,d=ft,p=ft,m=ft,v=0,b=0,g=0;g=h;h=h+16|0;v=g;b=e+964|0;It(e,(o[b>>2]|0)!=0,3519);l=K(ui(e,2,t));c=K(ui(e,0,t));f=K(Cr(e,2,t));d=K(Cr(e,0,t));if(Dt(t)|0)p=t;else p=K(RS(K(0.0),K(K(t-f)-l)));if(Dt(n)|0)m=n;else m=K(RS(K(0.0),K(K(n-d)-c)));if((r|0)==1&(i|0)==1){s[e+908>>2]=K(di(e,2,K(t-f),u,u));t=K(di(e,0,K(n-d),a,u))}else{Ax[o[b>>2]&1](v,e,p,r,m,i);p=K(l+K(s[v>>2]));m=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?p:m,u,u));m=K(c+K(s[v+4>>2]));t=K(n-d);t=K(di(e,0,(i|2|0)==2?m:t,a,u))}s[e+912>>2]=t;h=g;return}function ti(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=ft,l=ft,c=ft,f=ft;c=K(ui(e,2,o));a=K(ui(e,0,o));f=K(Cr(e,2,o));l=K(Cr(e,0,o));t=K(t-f);s[e+908>>2]=K(di(e,2,(r|2|0)==2?c:t,o,o));n=K(n-l);s[e+912>>2]=K(di(e,0,(i|2|0)==2?a:n,u,o));return}function ni(e,t,n,r,i,o,u){e=e|0;t=K(t);n=K(n);r=r|0;i=i|0;o=K(o);u=K(u);var a=0,l=ft,c=ft;a=(r|0)==2;if((!(t<=K(0.0)&a)?!(n<=K(0.0)&(i|0)==2):0)?!((r|0)==1&(i|0)==1):0)e=0;else{l=K(Cr(e,0,o));c=K(Cr(e,2,o));a=t<K(0.0)&a|(Dt(t)|0);t=K(t-c);s[e+908>>2]=K(di(e,2,a?K(0.0):t,o,o));t=K(n-l);a=n<K(0.0)&(i|0)==2|(Dt(n)|0);s[e+912>>2]=K(di(e,0,a?K(0.0):t,u,o));e=1}return e|0}function ri(e,t){e=e|0;t=t|0;if(ki(e)|0)e=$r(2,t)|0;else e=0;return e|0}function ii(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Qr(e,t,n));return K(n+K(Xr(e,t)))}function oi(e,t,n){e=e|0;t=t|0;n=K(n);n=K(Zr(e,t,n));return K(n+K(Jr(e,t)))}function ui(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(ii(e,t,n));return K(r+K(oi(e,t,n)))}function ai(e){e=e|0;if(!(o[e+24>>2]|0)){if(K(li(e))!=K(0.0))e=1;else e=K(si(e))!=K(0.0)}else e=0;return e|0}function li(e){e=e|0;var t=ft;if(o[e+944>>2]|0){t=K(s[e+44>>2]);if(Dt(t)|0){t=K(s[e+40>>2]);e=t>K(0.0)&((Dt(t)|0)^1);return K(e?t:K(0.0))}}else t=K(0.0);return K(t)}function si(e){e=e|0;var t=ft,n=0,i=ft;do{if(o[e+944>>2]|0){t=K(s[e+48>>2]);if(Dt(t)|0){n=r[(o[e+976>>2]|0)+2>>0]|0;if(n<<24>>24==0?(i=K(s[e+40>>2]),i<K(0.0)&((Dt(i)|0)^1)):0){t=K(-i);break}t=n<<24>>24?K(1.0):K(0.0)}}else t=K(0.0)}while(0);return K(t)}function ci(e){e=e|0;var t=0,n=0;tM(e+400|0,0,540)|0;r[e+985>>0]=1;zt(e);n=At(e)|0;if(n|0){t=e+948|0;e=0;do{ci(o[(o[t>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)!=(n|0))}return}function fi(e,t,n,r,i,u,a,l,c,f){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);u=K(u);a=K(a);l=l|0;c=c|0;f=f|0;var d=0,p=ft,m=0,v=0,b=ft,g=ft,_=0,y=ft,D=0,E=ft,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0;O=h;h=h+16|0;k=O+12|0;S=O+8|0;M=O+4|0;x=O;P=$r(o[e+4>>2]|0,c)|0;C=Vr(P)|0;p=K(Rr(Si(t)|0,C?u:a));T=Or(t,2,u)|0;A=Or(t,0,a)|0;do{if(!(Dt(p)|0)?!(Dt(C?n:i)|0):0){d=t+504|0;if(!(Dt(K(s[d>>2]))|0)){if(!(Mi(o[t+976>>2]|0,0)|0))break;if((o[t+500>>2]|0)==(o[2278]|0))break}s[d>>2]=K(RS(p,K(ui(t,P,u))))}else m=7}while(0);do{if((m|0)==7){D=C^1;if(!(D|T^1)){a=K(Rr(o[t+992>>2]|0,u));s[t+504>>2]=K(RS(a,K(ui(t,2,u))));break}if(!(C|A^1)){a=K(Rr(o[t+996>>2]|0,a));s[t+504>>2]=K(RS(a,K(ui(t,0,u))));break}s[k>>2]=K(w);s[S>>2]=K(w);o[M>>2]=0;o[x>>2]=0;y=K(Cr(t,2,u));E=K(Cr(t,0,u));if(T){b=K(y+K(Rr(o[t+992>>2]|0,u)));s[k>>2]=b;o[M>>2]=1;v=1}else{v=0;b=K(w)}if(A){p=K(E+K(Rr(o[t+996>>2]|0,a)));s[S>>2]=p;o[x>>2]=1;d=1}else{d=0;p=K(w)}m=o[e+32>>2]|0;if(!(C&(m|0)==2)){if(Dt(b)|0?!(Dt(n)|0):0){s[k>>2]=n;o[M>>2]=2;v=2;b=n}}else m=2;if((!((m|0)==2&D)?Dt(p)|0:0)?!(Dt(i)|0):0){s[S>>2]=i;o[x>>2]=2;d=2;p=i}g=K(s[t+396>>2]);_=Dt(g)|0;do{if(!_){if((v|0)==1&D){s[S>>2]=K(K(b-y)/g);o[x>>2]=1;d=1;m=1;break}if(C&(d|0)==1){s[k>>2]=K(g*K(p-E));o[M>>2]=1;d=1;m=1}else m=v}else m=v}while(0);R=Dt(n)|0;v=(pi(e,t)|0)!=4;if(!(C|T|((r|0)!=1|R)|(v|(m|0)==1))?(s[k>>2]=n,o[M>>2]=1,!_):0){s[S>>2]=K(K(n-y)/g);o[x>>2]=1;d=1}if(!(A|D|((l|0)!=1|(Dt(i)|0))|(v|(d|0)==1))?(s[S>>2]=i,o[x>>2]=1,!_):0){s[k>>2]=K(g*K(i-E));o[M>>2]=1}vi(t,2,u,u,M,k);vi(t,0,a,u,x,S);n=K(s[k>>2]);i=K(s[S>>2]);Er(t,n,i,c,o[M>>2]|0,o[x>>2]|0,u,a,0,3565,f)|0;a=K(s[t+908+(o[976+(P<<2)>>2]<<2)>>2]);s[t+504>>2]=K(RS(a,K(ui(t,P,u))))}}while(0);o[t+500>>2]=o[2278];h=O;return}function di(e,t,n,r,i){e=e|0;t=t|0;n=K(n);r=K(r);i=K(i);r=K(Ei(e,t,n,r));return K(RS(r,K(ui(e,t,i))))}function pi(e,t){e=e|0;t=t|0;t=t+20|0;t=o[((o[t>>2]|0)==0?e+16|0:t)>>2]|0;if((t|0)==5?ki(o[e+4>>2]|0)|0:0)t=1;return t|0}function hi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+96>>2]|0)!=0:0)t=4;else t=o[1040+(t<<2)>>2]|0;return e+60+(t<<3)|0}function mi(e,t){e=e|0;t=t|0;if(Vr(t)|0?(o[e+104>>2]|0)!=0:0)t=5;else t=o[1e3+(t<<2)>>2]|0;return e+60+(t<<3)|0}function vi(e,t,n,r,i,u){e=e|0;t=t|0;n=K(n);r=K(r);i=i|0;u=u|0;n=K(Rr(e+380+(o[976+(t<<2)>>2]<<3)|0,n));n=K(n+K(Cr(e,t,r)));switch(o[i>>2]|0){case 2:case 1:{i=Dt(n)|0;r=K(s[u>>2]);s[u>>2]=i|r<n?r:n;break}case 0:{if(!(Dt(n)|0)){o[i>>2]=2;s[u>>2]=n}break}default:{}}return}function bi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,4,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1040+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function gi(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,4,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1040+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function _i(e,t,n){e=e|0;t=t|0;n=K(n);var r=ft;r=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);r=K(r+K(Hr(e,t,n)));return K(r+K(Gr(e,t,n)))}function yi(e){e=e|0;var t=0,n=0,r=0;e:do{if(!(ki(o[e+4>>2]|0)|0)){if((o[e+16>>2]|0)!=5){n=At(e)|0;if(!n)t=0;else{t=0;while(1){r=Pt(e,t)|0;if((o[r+24>>2]|0)==0?(o[r+20>>2]|0)==5:0){t=1;break e}t=t+1|0;if(t>>>0>=n>>>0){t=0;break}}}}else t=1}else t=0}while(0);return t|0}function Di(e,t){e=e|0;t=t|0;var n=ft;n=K(s[e+908+(o[976+(t<<2)>>2]<<2)>>2]);return n>=K(0.0)&((Dt(n)|0)^1)|0}function wi(e){e=e|0;var t=ft,n=0,r=0,i=0,u=0,a=0,l=0,c=ft;n=o[e+968>>2]|0;if(!n){u=At(e)|0;do{if(u|0){n=0;i=0;while(1){r=Pt(e,i)|0;if(o[r+940>>2]|0){a=8;break}if((o[r+24>>2]|0)!=1){l=(pi(e,r)|0)==5;if(l){n=r;break}else n=(n|0)==0?r:n}i=i+1|0;if(i>>>0>=u>>>0){a=8;break}}if((a|0)==8)if(!n)break;t=K(wi(n));return K(t+K(s[n+404>>2]))}}while(0);t=K(s[e+912>>2])}else{c=K(s[e+908>>2]);t=K(s[e+912>>2]);t=K(px[n&0](e,c,t));It(e,(Dt(t)|0)^1,3573)}return K(t)}function Ei(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);var i=ft,o=0;if(!(ki(t)|0)){if(Vr(t)|0){t=0;o=3}else{r=K(w);i=K(w)}}else{t=1;o=3}if((o|0)==3){i=K(Rr(e+364+(t<<3)|0,r));r=K(Rr(e+380+(t<<3)|0,r))}o=r<n&(r>=K(0.0)&((Dt(r)|0)^1));n=o?r:n;o=i>=K(0.0)&((Dt(i)|0)^1)&n<i;return K(o?i:n)}function Ci(e,t,n,r,i,u,a){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);u=u|0;a=a|0;var l=ft,c=ft,f=0,d=0,p=ft,h=ft,m=ft,v=0,b=0,g=0,_=0,y=ft,D=0;g=$r(o[e+4>>2]|0,u)|0;v=ri(g,u)|0;b=Vr(g)|0;p=K(Cr(t,2,n));h=K(Cr(t,0,n));if(!(Or(t,2,n)|0)){if(bi(t,2)|0?xi(t,2)|0:0){l=K(s[e+908>>2]);c=K(Xr(e,2));c=K(l-K(c+K(Jr(e,2))));l=K(gi(t,2,n));l=K(di(t,2,K(c-K(l+K(Ai(t,2,n)))),n,n))}else l=K(w)}else l=K(p+K(Rr(o[t+992>>2]|0,n)));if(!(Or(t,0,i)|0)){if(bi(t,0)|0?xi(t,0)|0:0){c=K(s[e+912>>2]);y=K(Xr(e,0));y=K(c-K(y+K(Jr(e,0))));c=K(gi(t,0,i));c=K(di(t,0,K(y-K(c+K(Ai(t,0,i)))),i,n))}else c=K(w)}else c=K(h+K(Rr(o[t+996>>2]|0,i)));f=Dt(l)|0;d=Dt(c)|0;do{if(f^d?(m=K(s[t+396>>2]),!(Dt(m)|0)):0)if(f){l=K(p+K(K(c-h)*m));break}else{y=K(h+K(K(l-p)/m));c=d?y:c;break}}while(0);d=Dt(l)|0;f=Dt(c)|0;if(d|f){D=(d^1)&1;r=n>K(0.0)&((r|0)!=0&d);l=b?l:r?n:l;Er(t,l,c,u,b?D:r?2:D,d&(f^1)&1,l,c,0,3623,a)|0;l=K(s[t+908>>2]);l=K(l+K(Cr(t,2,n)));c=K(s[t+912>>2]);c=K(c+K(Cr(t,0,n)))}Er(t,l,c,u,1,1,l,c,1,3635,a)|0;if(xi(t,g)|0?!(bi(t,g)|0):0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,g)));y=K(y-K(Gr(t,g,n)));y=K(y-K(Ai(t,g,b?n:i)));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}else _=21;do{if((_|0)==21){if(!(bi(t,g)|0)?(o[e+8>>2]|0)==1:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y;break}if(!(bi(t,g)|0)?(o[e+8>>2]|0)==2:0){D=o[976+(g<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(g<<2)>>2]<<2)>>2]=y}}}while(0);if(xi(t,v)|0?!(bi(t,v)|0):0){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));y=K(y-K(Jr(e,v)));y=K(y-K(Gr(t,v,n)));y=K(y-K(Ai(t,v,b?i:n)));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}else _=30;do{if((_|0)==30?!(bi(t,v)|0):0){if((pi(e,t)|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(K(y-K(s[t+908+(D<<2)>>2]))*K(.5));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y;break}D=(pi(e,t)|0)==3;if(D^(o[e+28>>2]|0)==2){D=o[976+(v<<2)>>2]|0;y=K(s[e+908+(D<<2)>>2]);y=K(y-K(s[t+908+(D<<2)>>2]));s[t+400+(o[1040+(v<<2)>>2]<<2)>>2]=y}}}while(0);return}function Ti(e,t,n){e=e|0;t=t|0;n=n|0;var r=ft,i=0;i=o[976+(n<<2)>>2]|0;r=K(s[t+908+(i<<2)>>2]);r=K(K(s[e+908+(i<<2)>>2])-r);r=K(r-K(s[t+400+(o[1040+(n<<2)>>2]<<2)>>2]));s[t+400+(o[1e3+(n<<2)>>2]<<2)>>2]=r;return}function ki(e){e=e|0;return(e|1|0)==1|0}function Si(e){e=e|0;var t=ft;switch(o[e+56>>2]|0){case 0:case 3:{t=K(s[e+40>>2]);if(t>K(0.0)&((Dt(t)|0)^1))e=r[(o[e+976>>2]|0)+2>>0]|0?1056:992;else e=1056;break}default:e=e+52|0}return e|0}function Mi(e,t){e=e|0;t=t|0;return(r[e+t>>0]|0)!=0|0}function xi(e,t){e=e|0;t=t|0;e=e+132|0;if(Vr(t)|0?(o[(wt(e,5,948)|0)+4>>2]|0)!=0:0)e=1;else e=(o[(wt(e,o[1e3+(t<<2)>>2]|0,948)|0)+4>>2]|0)!=0;return e|0}function Ai(e,t,n){e=e|0;t=t|0;n=K(n);var r=0,i=0;e=e+132|0;if(Vr(t)|0?(r=wt(e,5,948)|0,(o[r+4>>2]|0)!=0):0)i=4;else{r=wt(e,o[1e3+(t<<2)>>2]|0,948)|0;if(!(o[r+4>>2]|0))n=K(0.0);else i=4}if((i|0)==4)n=K(Rr(r,n));return K(n)}function Pi(e,t,n){e=e|0;t=t|0;n=K(n);if(bi(e,t)|0)n=K(gi(e,t,n));else n=K(-K(Ai(e,t,n)));return K(n)}function Oi(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function Ri(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Ni(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ii(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Fi(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;a=e+4|0;l=o[a>>2]|0;i=l-r|0;u=i>>2;e=t+(u<<2)|0;if(e>>>0<n>>>0){r=l;do{o[r>>2]=o[e>>2];e=e+4|0;r=(o[a>>2]|0)+4|0;o[a>>2]=r}while(e>>>0<n>>>0)}if(u|0)sM(l+(0-u<<2)|0,t|0,i|0)|0;return}function Bi(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;l=t+4|0;s=o[l>>2]|0;i=o[e>>2]|0;a=n;u=a-i|0;r=s+(0-(u>>2)<<2)|0;o[l>>2]=r;if((u|0)>0)iM(r|0,i|0,u|0)|0;i=e+4|0;u=t+8|0;r=(o[i>>2]|0)-a|0;if((r|0)>0){iM(o[u>>2]|0,n|0,r|0)|0;o[u>>2]=(o[u>>2]|0)+(r>>>2<<2)}a=o[e>>2]|0;o[e>>2]=o[l>>2];o[l>>2]=a;a=o[i>>2]|0;o[i>>2]=o[u>>2];o[u>>2]=a;a=e+8|0;n=t+12|0;e=o[a>>2]|0;o[a>>2]=o[n>>2];o[n>>2]=e;o[t>>2]=o[l>>2];return s|0}function Li(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=o[t>>2]|0;u=o[n>>2]|0;if((a|0)!=(u|0)){i=e+8|0;n=((u+-4-a|0)>>>2)+1|0;e=a;r=o[i>>2]|0;do{o[r>>2]=o[e>>2];r=(o[i>>2]|0)+4|0;o[i>>2]=r;e=e+4|0}while((e|0)!=(u|0));o[t>>2]=a+(n<<2)}return}function Ui(){_t();return}function ji(){var e=0;e=YS(4)|0;Wi(e);return e|0}function Wi(e){e=e|0;o[e>>2]=Bt()|0;return}function zi(e){e=e|0;if(e|0){qi(e);$S(e)}return}function qi(e){e=e|0;Ut(o[e>>2]|0);return}function Hi(e,t,n){e=e|0;t=t|0;n=n|0;Ur(o[e>>2]|0,t,n);return}function Gi(e,t){e=e|0;t=K(t);xr(o[e>>2]|0,t);return}function Vi(e,t){e=e|0;t=t|0;return Mi(o[e>>2]|0,t)|0}function Yi(){var e=0;e=YS(8)|0;Ki(e,0);return e|0}function Ki(e,t){e=e|0;t=t|0;if(!t)t=Tt()|0;else t=Et(o[t>>2]|0)|0;o[e>>2]=t;o[e+4>>2]=0;Qt(t,e);return}function $i(e){e=e|0;var t=0;t=YS(8)|0;Ki(t,e);return t|0}function Xi(e){e=e|0;if(e|0){Ji(e);$S(e)}return}function Ji(e){e=e|0;var t=0;Mt(o[e>>2]|0);t=e+4|0;e=o[t>>2]|0;o[t>>2]=0;if(e|0){Qi(e);$S(e)}return}function Qi(e){e=e|0;Zi(e);return}function Zi(e){e=e|0;e=o[e>>2]|0;if(e|0)rt(e|0);return}function eo(e){e=e|0;return Zt(e)|0}function to(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}Nt(o[e>>2]|0);return}function no(e,t){e=e|0;t=t|0;$t(o[e>>2]|0,o[t>>2]|0);return}function ro(e,t){e=e|0;t=t|0;fn(o[e>>2]|0,t);return}function io(e,t,n){e=e|0;t=t|0;n=+n;Tn(o[e>>2]|0,t,K(n));return}function oo(e,t,n){e=e|0;t=t|0;n=+n;kn(o[e>>2]|0,t,K(n));return}function uo(e,t){e=e|0;t=t|0;on(o[e>>2]|0,t);return}function ao(e,t){e=e|0;t=t|0;an(o[e>>2]|0,t);return}function lo(e,t){e=e|0;t=t|0;sn(o[e>>2]|0,t);return}function so(e,t){e=e|0;t=t|0;en(o[e>>2]|0,t);return}function co(e,t){e=e|0;t=t|0;pn(o[e>>2]|0,t);return}function fo(e,t){e=e|0;t=t|0;nn(o[e>>2]|0,t);return}function po(e,t,n){e=e|0;t=t|0;n=+n;Mn(o[e>>2]|0,t,K(n));return}function ho(e,t,n){e=e|0;t=t|0;n=+n;xn(o[e>>2]|0,t,K(n));return}function mo(e,t){e=e|0;t=t|0;Pn(o[e>>2]|0,t);return}function vo(e,t){e=e|0;t=t|0;mn(o[e>>2]|0,t);return}function bo(e,t){e=e|0;t=t|0;bn(o[e>>2]|0,t);return}function go(e,t){e=e|0;t=+t;_n(o[e>>2]|0,K(t));return}function _o(e,t){e=e|0;t=+t;wn(o[e>>2]|0,K(t));return}function yo(e,t){e=e|0;t=+t;En(o[e>>2]|0,K(t));return}function Do(e,t){e=e|0;t=+t;yn(o[e>>2]|0,K(t));return}function wo(e,t){e=e|0;t=+t;Dn(o[e>>2]|0,K(t));return}function Eo(e,t){e=e|0;t=+t;Bn(o[e>>2]|0,K(t));return}function Co(e,t){e=e|0;t=+t;Ln(o[e>>2]|0,K(t));return}function To(e){e=e|0;Un(o[e>>2]|0);return}function ko(e,t){e=e|0;t=+t;Wn(o[e>>2]|0,K(t));return}function So(e,t){e=e|0;t=+t;zn(o[e>>2]|0,K(t));return}function Mo(e){e=e|0;qn(o[e>>2]|0);return}function xo(e,t){e=e|0;t=+t;Gn(o[e>>2]|0,K(t));return}function Ao(e,t){e=e|0;t=+t;Vn(o[e>>2]|0,K(t));return}function Po(e,t){e=e|0;t=+t;Kn(o[e>>2]|0,K(t));return}function Oo(e,t){e=e|0;t=+t;$n(o[e>>2]|0,K(t));return}function Ro(e,t){e=e|0;t=+t;Jn(o[e>>2]|0,K(t));return}function No(e,t){e=e|0;t=+t;Qn(o[e>>2]|0,K(t));return}function Io(e,t){e=e|0;t=+t;er(o[e>>2]|0,K(t));return}function Fo(e,t){e=e|0;t=+t;tr(o[e>>2]|0,K(t));return}function Bo(e,t){e=e|0;t=+t;rr(o[e>>2]|0,K(t));return}function Lo(e,t,n){e=e|0;t=t|0;n=+n;In(o[e>>2]|0,t,K(n));return}function Uo(e,t,n){e=e|0;t=t|0;n=+n;On(o[e>>2]|0,t,K(n));return}function jo(e,t,n){e=e|0;t=t|0;n=+n;Rn(o[e>>2]|0,t,K(n));return}function Wo(e){e=e|0;return dn(o[e>>2]|0)|0}function zo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Sn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function qo(e,t){e=e|0;t=t|0;Ho(e,o[t+4>>2]|0,+K(s[t>>2]));return}function Ho(e,t,n){e=e|0;t=t|0;n=+n;o[e>>2]=t;c[e+8>>3]=n;return}function Go(e){e=e|0;return un(o[e>>2]|0)|0}function Vo(e){e=e|0;return ln(o[e>>2]|0)|0}function Yo(e){e=e|0;return cn(o[e>>2]|0)|0}function Ko(e){e=e|0;return tn(o[e>>2]|0)|0}function $o(e){e=e|0;return hn(o[e>>2]|0)|0}function Xo(e){e=e|0;return rn(o[e>>2]|0)|0}function Jo(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;An(i,o[t>>2]|0,n);qo(e,i);h=r;return}function Qo(e){e=e|0;return vn(o[e>>2]|0)|0}function Zo(e){e=e|0;return gn(o[e>>2]|0)|0}function eu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Cn(r,o[t>>2]|0);qo(e,r);h=n;return}function tu(e){e=e|0;return+ +K(Xt(o[e>>2]|0))}function nu(e){e=e|0;return+ +K(Jt(o[e>>2]|0))}function ru(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;jn(r,o[t>>2]|0);qo(e,r);h=n;return}function iu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Hn(r,o[t>>2]|0);qo(e,r);h=n;return}function ou(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Yn(r,o[t>>2]|0);qo(e,r);h=n;return}function uu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Xn(r,o[t>>2]|0);qo(e,r);h=n;return}function au(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Zn(r,o[t>>2]|0);qo(e,r);h=n;return}function lu(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;nr(r,o[t>>2]|0);qo(e,r);h=n;return}function su(e){e=e|0;return+ +K(ir(o[e>>2]|0))}function cu(e,t){e=e|0;t=t|0;return+ +K(Fn(o[e>>2]|0,t))}function fu(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Nn(i,o[t>>2]|0,n);qo(e,i);h=r;return}function du(e,t,n){e=e|0;t=t|0;n=n|0;Wt(o[e>>2]|0,o[t>>2]|0,n);return}function pu(e,t){e=e|0;t=t|0;Rt(o[e>>2]|0,o[t>>2]|0);return}function hu(e){e=e|0;return At(o[e>>2]|0)|0}function mu(e){e=e|0;e=Vt(o[e>>2]|0)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function vu(e,t){e=e|0;t=t|0;e=Pt(o[e>>2]|0,t)|0;if(!e)e=0;else e=eo(e)|0;return e|0}function bu(e,t){e=e|0;t=t|0;var n=0,r=0;r=YS(4)|0;gu(r,t);n=e+4|0;t=o[n>>2]|0;o[n>>2]=r;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,1);return}function gu(e,t){e=e|0;t=t|0;Lu(e,t);return}function _u(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;var u=0,a=0;u=h;h=h+16|0;a=u;yu(a,Zt(t)|0,+n,r,+i,o);s[e>>2]=K(+c[a>>3]);s[e+4>>2]=K(+c[a+8>>3]);h=u;return}function yu(e,t,n,r,i,u){e=e|0;t=t|0;n=+n;r=r|0;i=+i;u=u|0;var a=0,l=0,s=0,f=0,d=0;a=h;h=h+32|0;d=a+8|0;f=a+20|0;s=a;l=a+16|0;c[d>>3]=n;o[f>>2]=r;c[s>>3]=i;o[l>>2]=u;Du(e,o[t+4>>2]|0,d,f,s,l);h=a;return}function Du(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);t=wu(t)|0;Eu(e,t,+c[n>>3],o[r>>2]|0,+c[i>>3],o[u>>2]|0);Tk(l);h=a;return}function wu(e){e=e|0;return o[e>>2]|0}function Eu(e,t,n,r,i,o){e=e|0;t=t|0;n=+n;r=r|0;i=+i;o=o|0;var u=0;u=Tu(Cu()|0)|0;n=+ku(n);r=Su(r)|0;i=+ku(i);Mu(e,ot(0,u|0,t|0,+n,r|0,+i,Su(o)|0)|0);return}function Cu(){var e=0;if(!(r[7608]|0)){Iu(9120);e=7608;o[e>>2]=1;o[e+4>>2]=0}return 9120}function Tu(e){e=e|0;return o[e+8>>2]|0}function ku(e){e=+e;return+ +Nu(e)}function Su(e){e=e|0;return Ru(e)|0}function Mu(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=t;if(!(r&1)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2]}else{xu(n,0);Le(r|0,n|0)|0;Au(e,n);Pu(n)}h=i;return}function xu(e,t){e=e|0;t=t|0;Ou(e,t);o[e+8>>2]=0;r[e+24>>0]=0;return}function Au(e,t){e=e|0;t=t|0;t=t+8|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];return}function Pu(e){e=e|0;r[e+24>>0]=0;return}function Ou(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Ru(e){e=e|0;return e|0}function Nu(e){e=+e;return+e}function Iu(e){e=e|0;Bu(e,Fu()|0,4);return}function Fu(){return 1064}function Bu(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=tt(t|0,n+1|0)|0;return}function Lu(e,t){e=e|0;t=t|0;t=o[t>>2]|0;o[e>>2]=t;xe(t|0);return}function Uu(e){e=e|0;var t=0,n=0;n=e+4|0;t=o[n>>2]|0;o[n>>2]=0;if(t|0){Qi(t);$S(t)}jt(o[e>>2]|0,0);return}function ju(e){e=e|0;Yt(o[e>>2]|0);return}function Wu(e){e=e|0;return Kt(o[e>>2]|0)|0}function zu(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;Ar(o[e>>2]|0,K(t),K(n),r);return}function qu(e){e=e|0;return+ +K(or(o[e>>2]|0))}function Hu(e){e=e|0;return+ +K(ar(o[e>>2]|0))}function Gu(e){e=e|0;return+ +K(ur(o[e>>2]|0))}function Vu(e){e=e|0;return+ +K(lr(o[e>>2]|0))}function Yu(e){e=e|0;return+ +K(sr(o[e>>2]|0))}function Ku(e){e=e|0;return+ +K(cr(o[e>>2]|0))}function $u(e,t){e=e|0;t=t|0;c[e>>3]=+K(or(o[t>>2]|0));c[e+8>>3]=+K(ar(o[t>>2]|0));c[e+16>>3]=+K(ur(o[t>>2]|0));c[e+24>>3]=+K(lr(o[t>>2]|0));c[e+32>>3]=+K(sr(o[t>>2]|0));c[e+40>>3]=+K(cr(o[t>>2]|0));return}function Xu(e,t){e=e|0;t=t|0;return+ +K(fr(o[e>>2]|0,t))}function Ju(e,t){e=e|0;t=t|0;return+ +K(dr(o[e>>2]|0,t))}function Qu(e,t){e=e|0;t=t|0;return+ +K(pr(o[e>>2]|0,t))}function Zu(){return Ft()|0}function ea(){ta();na();ra();ia();oa();ua();return}function ta(){Wy(11713,4938,1);return}function na(){ty(10448);return}function ra(){I_(10408);return}function ia(){Qg(10324);return}function oa(){Gv(10096);return}function ua(){aa(9132);return}function aa(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,x=0,A=0,P=0,O=0,R=0,N=0,I=0,F=0,B=0,L=0,U=0,j=0,W=0,z=0,q=0,H=0,G=0,V=0,Y=0,K=0,$=0,X=0,J=0,Q=0,Z=0,ee=0,te=0,ne=0,re=0,ie=0,oe=0,ue=0,ae=0,le=0,se=0,ce=0,fe=0,de=0,pe=0,he=0,me=0,ve=0,be=0,ge=0,_e=0,ye=0,De=0,we=0,Ee=0,Ce=0,Te=0,ke=0,Se=0,Me=0,xe=0,Ae=0,Pe=0,Oe=0;t=h;h=h+672|0;n=t+656|0;Oe=t+648|0;Pe=t+640|0;Ae=t+632|0;xe=t+624|0;Me=t+616|0;Se=t+608|0;ke=t+600|0;Te=t+592|0;Ce=t+584|0;Ee=t+576|0;we=t+568|0;De=t+560|0;ye=t+552|0;_e=t+544|0;ge=t+536|0;be=t+528|0;ve=t+520|0;me=t+512|0;he=t+504|0;pe=t+496|0;de=t+488|0;fe=t+480|0;ce=t+472|0;se=t+464|0;le=t+456|0;ae=t+448|0;ue=t+440|0;oe=t+432|0;ie=t+424|0;re=t+416|0;ne=t+408|0;te=t+400|0;ee=t+392|0;Z=t+384|0;Q=t+376|0;J=t+368|0;X=t+360|0;$=t+352|0;K=t+344|0;Y=t+336|0;V=t+328|0;G=t+320|0;H=t+312|0;q=t+304|0;z=t+296|0;W=t+288|0;j=t+280|0;U=t+272|0;L=t+264|0;B=t+256|0;F=t+248|0;I=t+240|0;N=t+232|0;R=t+224|0;O=t+216|0;P=t+208|0;A=t+200|0;x=t+192|0;M=t+184|0;S=t+176|0;k=t+168|0;T=t+160|0;C=t+152|0;E=t+144|0;w=t+136|0;D=t+128|0;y=t+120|0;_=t+112|0;g=t+104|0;b=t+96|0;v=t+88|0;m=t+80|0;p=t+72|0;d=t+64|0;f=t+56|0;c=t+48|0;s=t+40|0;l=t+32|0;a=t+24|0;u=t+16|0;i=t+8|0;r=t;la(e,3646);sa(e,3651,2)|0;ca(e,3665,2)|0;fa(e,3682,18)|0;o[Oe>>2]=19;o[Oe+4>>2]=0;o[n>>2]=o[Oe>>2];o[n+4>>2]=o[Oe+4>>2];da(e,3690,n)|0;o[Pe>>2]=1;o[Pe+4>>2]=0;o[n>>2]=o[Pe>>2];o[n+4>>2]=o[Pe+4>>2];pa(e,3696,n)|0;o[Ae>>2]=2;o[Ae+4>>2]=0;o[n>>2]=o[Ae>>2];o[n+4>>2]=o[Ae+4>>2];ha(e,3706,n)|0;o[xe>>2]=1;o[xe+4>>2]=0;o[n>>2]=o[xe>>2];o[n+4>>2]=o[xe+4>>2];ma(e,3722,n)|0;o[Me>>2]=2;o[Me+4>>2]=0;o[n>>2]=o[Me>>2];o[n+4>>2]=o[Me+4>>2];ma(e,3734,n)|0;o[Se>>2]=3;o[Se+4>>2]=0;o[n>>2]=o[Se>>2];o[n+4>>2]=o[Se+4>>2];ha(e,3753,n)|0;o[ke>>2]=4;o[ke+4>>2]=0;o[n>>2]=o[ke>>2];o[n+4>>2]=o[ke+4>>2];ha(e,3769,n)|0;o[Te>>2]=5;o[Te+4>>2]=0;o[n>>2]=o[Te>>2];o[n+4>>2]=o[Te+4>>2];ha(e,3783,n)|0;o[Ce>>2]=6;o[Ce+4>>2]=0;o[n>>2]=o[Ce>>2];o[n+4>>2]=o[Ce+4>>2];ha(e,3796,n)|0;o[Ee>>2]=7;o[Ee+4>>2]=0;o[n>>2]=o[Ee>>2];o[n+4>>2]=o[Ee+4>>2];ha(e,3813,n)|0;o[we>>2]=8;o[we+4>>2]=0;o[n>>2]=o[we>>2];o[n+4>>2]=o[we+4>>2];ha(e,3825,n)|0;o[De>>2]=3;o[De+4>>2]=0;o[n>>2]=o[De>>2];o[n+4>>2]=o[De+4>>2];ma(e,3843,n)|0;o[ye>>2]=4;o[ye+4>>2]=0;o[n>>2]=o[ye>>2];o[n+4>>2]=o[ye+4>>2];ma(e,3853,n)|0;o[_e>>2]=9;o[_e+4>>2]=0;o[n>>2]=o[_e>>2];o[n+4>>2]=o[_e+4>>2];ha(e,3870,n)|0;o[ge>>2]=10;o[ge+4>>2]=0;o[n>>2]=o[ge>>2];o[n+4>>2]=o[ge+4>>2];ha(e,3884,n)|0;o[be>>2]=11;o[be+4>>2]=0;o[n>>2]=o[be>>2];o[n+4>>2]=o[be+4>>2];ha(e,3896,n)|0;o[ve>>2]=1;o[ve+4>>2]=0;o[n>>2]=o[ve>>2];o[n+4>>2]=o[ve+4>>2];va(e,3907,n)|0;o[me>>2]=2;o[me+4>>2]=0;o[n>>2]=o[me>>2];o[n+4>>2]=o[me+4>>2];va(e,3915,n)|0;o[he>>2]=3;o[he+4>>2]=0;o[n>>2]=o[he>>2];o[n+4>>2]=o[he+4>>2];va(e,3928,n)|0;o[pe>>2]=4;o[pe+4>>2]=0;o[n>>2]=o[pe>>2];o[n+4>>2]=o[pe+4>>2];va(e,3948,n)|0;o[de>>2]=5;o[de+4>>2]=0;o[n>>2]=o[de>>2];o[n+4>>2]=o[de+4>>2];va(e,3960,n)|0;o[fe>>2]=6;o[fe+4>>2]=0;o[n>>2]=o[fe>>2];o[n+4>>2]=o[fe+4>>2];va(e,3974,n)|0;o[ce>>2]=7;o[ce+4>>2]=0;o[n>>2]=o[ce>>2];o[n+4>>2]=o[ce+4>>2];va(e,3983,n)|0;o[se>>2]=20;o[se+4>>2]=0;o[n>>2]=o[se>>2];o[n+4>>2]=o[se+4>>2];da(e,3999,n)|0;o[le>>2]=8;o[le+4>>2]=0;o[n>>2]=o[le>>2];o[n+4>>2]=o[le+4>>2];va(e,4012,n)|0;o[ae>>2]=9;o[ae+4>>2]=0;o[n>>2]=o[ae>>2];o[n+4>>2]=o[ae+4>>2];va(e,4022,n)|0;o[ue>>2]=21;o[ue+4>>2]=0;o[n>>2]=o[ue>>2];o[n+4>>2]=o[ue+4>>2];da(e,4039,n)|0;o[oe>>2]=10;o[oe+4>>2]=0;o[n>>2]=o[oe>>2];o[n+4>>2]=o[oe+4>>2];va(e,4053,n)|0;o[ie>>2]=11;o[ie+4>>2]=0;o[n>>2]=o[ie>>2];o[n+4>>2]=o[ie+4>>2];va(e,4065,n)|0;o[re>>2]=12;o[re+4>>2]=0;o[n>>2]=o[re>>2];o[n+4>>2]=o[re+4>>2];va(e,4084,n)|0;o[ne>>2]=13;o[ne+4>>2]=0;o[n>>2]=o[ne>>2];o[n+4>>2]=o[ne+4>>2];va(e,4097,n)|0;o[te>>2]=14;o[te+4>>2]=0;o[n>>2]=o[te>>2];o[n+4>>2]=o[te+4>>2];va(e,4117,n)|0;o[ee>>2]=15;o[ee+4>>2]=0;o[n>>2]=o[ee>>2];o[n+4>>2]=o[ee+4>>2];va(e,4129,n)|0;o[Z>>2]=16;o[Z+4>>2]=0;o[n>>2]=o[Z>>2];o[n+4>>2]=o[Z+4>>2];va(e,4148,n)|0;o[Q>>2]=17;o[Q+4>>2]=0;o[n>>2]=o[Q>>2];o[n+4>>2]=o[Q+4>>2];va(e,4161,n)|0;o[J>>2]=18;o[J+4>>2]=0;o[n>>2]=o[J>>2];o[n+4>>2]=o[J+4>>2];va(e,4181,n)|0;o[X>>2]=5;o[X+4>>2]=0;o[n>>2]=o[X>>2];o[n+4>>2]=o[X+4>>2];ma(e,4196,n)|0;o[$>>2]=6;o[$+4>>2]=0;o[n>>2]=o[$>>2];o[n+4>>2]=o[$+4>>2];ma(e,4206,n)|0;o[K>>2]=7;o[K+4>>2]=0;o[n>>2]=o[K>>2];o[n+4>>2]=o[K+4>>2];ma(e,4217,n)|0;o[Y>>2]=3;o[Y+4>>2]=0;o[n>>2]=o[Y>>2];o[n+4>>2]=o[Y+4>>2];ba(e,4235,n)|0;o[V>>2]=1;o[V+4>>2]=0;o[n>>2]=o[V>>2];o[n+4>>2]=o[V+4>>2];ga(e,4251,n)|0;o[G>>2]=4;o[G+4>>2]=0;o[n>>2]=o[G>>2];o[n+4>>2]=o[G+4>>2];ba(e,4263,n)|0;o[H>>2]=5;o[H+4>>2]=0;o[n>>2]=o[H>>2];o[n+4>>2]=o[H+4>>2];ba(e,4279,n)|0;o[q>>2]=6;o[q+4>>2]=0;o[n>>2]=o[q>>2];o[n+4>>2]=o[q+4>>2];ba(e,4293,n)|0;o[z>>2]=7;o[z+4>>2]=0;o[n>>2]=o[z>>2];o[n+4>>2]=o[z+4>>2];ba(e,4306,n)|0;o[W>>2]=8;o[W+4>>2]=0;o[n>>2]=o[W>>2];o[n+4>>2]=o[W+4>>2];ba(e,4323,n)|0;o[j>>2]=9;o[j+4>>2]=0;o[n>>2]=o[j>>2];o[n+4>>2]=o[j+4>>2];ba(e,4335,n)|0;o[U>>2]=2;o[U+4>>2]=0;o[n>>2]=o[U>>2];o[n+4>>2]=o[U+4>>2];ga(e,4353,n)|0;o[L>>2]=12;o[L+4>>2]=0;o[n>>2]=o[L>>2];o[n+4>>2]=o[L+4>>2];_a(e,4363,n)|0;o[B>>2]=1;o[B+4>>2]=0;o[n>>2]=o[B>>2];o[n+4>>2]=o[B+4>>2];ya(e,4376,n)|0;o[F>>2]=2;o[F+4>>2]=0;o[n>>2]=o[F>>2];o[n+4>>2]=o[F+4>>2];ya(e,4388,n)|0;o[I>>2]=13;o[I+4>>2]=0;o[n>>2]=o[I>>2];o[n+4>>2]=o[I+4>>2];_a(e,4402,n)|0;o[N>>2]=14;o[N+4>>2]=0;o[n>>2]=o[N>>2];o[n+4>>2]=o[N+4>>2];_a(e,4411,n)|0;o[R>>2]=15;o[R+4>>2]=0;o[n>>2]=o[R>>2];o[n+4>>2]=o[R+4>>2];_a(e,4421,n)|0;o[O>>2]=16;o[O+4>>2]=0;o[n>>2]=o[O>>2];o[n+4>>2]=o[O+4>>2];_a(e,4433,n)|0;o[P>>2]=17;o[P+4>>2]=0;o[n>>2]=o[P>>2];o[n+4>>2]=o[P+4>>2];_a(e,4446,n)|0;o[A>>2]=18;o[A+4>>2]=0;o[n>>2]=o[A>>2];o[n+4>>2]=o[A+4>>2];_a(e,4458,n)|0;o[x>>2]=3;o[x+4>>2]=0;o[n>>2]=o[x>>2];o[n+4>>2]=o[x+4>>2];ya(e,4471,n)|0;o[M>>2]=1;o[M+4>>2]=0;o[n>>2]=o[M>>2];o[n+4>>2]=o[M+4>>2];Da(e,4486,n)|0;o[S>>2]=10;o[S+4>>2]=0;o[n>>2]=o[S>>2];o[n+4>>2]=o[S+4>>2];ba(e,4496,n)|0;o[k>>2]=11;o[k+4>>2]=0;o[n>>2]=o[k>>2];o[n+4>>2]=o[k+4>>2];ba(e,4508,n)|0;o[T>>2]=3;o[T+4>>2]=0;o[n>>2]=o[T>>2];o[n+4>>2]=o[T+4>>2];ga(e,4519,n)|0;o[C>>2]=4;o[C+4>>2]=0;o[n>>2]=o[C>>2];o[n+4>>2]=o[C+4>>2];wa(e,4530,n)|0;o[E>>2]=19;o[E+4>>2]=0;o[n>>2]=o[E>>2];o[n+4>>2]=o[E+4>>2];Ea(e,4542,n)|0;o[w>>2]=12;o[w+4>>2]=0;o[n>>2]=o[w>>2];o[n+4>>2]=o[w+4>>2];Ca(e,4554,n)|0;o[D>>2]=13;o[D+4>>2]=0;o[n>>2]=o[D>>2];o[n+4>>2]=o[D+4>>2];Ta(e,4568,n)|0;o[y>>2]=2;o[y+4>>2]=0;o[n>>2]=o[y>>2];o[n+4>>2]=o[y+4>>2];ka(e,4578,n)|0;o[_>>2]=20;o[_+4>>2]=0;o[n>>2]=o[_>>2];o[n+4>>2]=o[_+4>>2];Sa(e,4587,n)|0;o[g>>2]=22;o[g+4>>2]=0;o[n>>2]=o[g>>2];o[n+4>>2]=o[g+4>>2];da(e,4602,n)|0;o[b>>2]=23;o[b+4>>2]=0;o[n>>2]=o[b>>2];o[n+4>>2]=o[b+4>>2];da(e,4619,n)|0;o[v>>2]=14;o[v+4>>2]=0;o[n>>2]=o[v>>2];o[n+4>>2]=o[v+4>>2];Ma(e,4629,n)|0;o[m>>2]=1;o[m+4>>2]=0;o[n>>2]=o[m>>2];o[n+4>>2]=o[m+4>>2];xa(e,4637,n)|0;o[p>>2]=4;o[p+4>>2]=0;o[n>>2]=o[p>>2];o[n+4>>2]=o[p+4>>2];ya(e,4653,n)|0;o[d>>2]=5;o[d+4>>2]=0;o[n>>2]=o[d>>2];o[n+4>>2]=o[d+4>>2];ya(e,4669,n)|0;o[f>>2]=6;o[f+4>>2]=0;o[n>>2]=o[f>>2];o[n+4>>2]=o[f+4>>2];ya(e,4686,n)|0;o[c>>2]=7;o[c+4>>2]=0;o[n>>2]=o[c>>2];o[n+4>>2]=o[c+4>>2];ya(e,4701,n)|0;o[s>>2]=8;o[s+4>>2]=0;o[n>>2]=o[s>>2];o[n+4>>2]=o[s+4>>2];ya(e,4719,n)|0;o[l>>2]=9;o[l+4>>2]=0;o[n>>2]=o[l>>2];o[n+4>>2]=o[l+4>>2];ya(e,4736,n)|0;o[a>>2]=21;o[a+4>>2]=0;o[n>>2]=o[a>>2];o[n+4>>2]=o[a+4>>2];Aa(e,4754,n)|0;o[u>>2]=2;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];Da(e,4772,n)|0;o[i>>2]=3;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Da(e,4790,n)|0;o[r>>2]=4;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Da(e,4808,n)|0;h=t;return}function la(e,t){e=e|0;t=t|0;var n=0;n=Nv()|0;o[e>>2]=n;Iv(n,t);cD(o[e>>2]|0);return}function sa(e,t,n){e=e|0;t=t|0;n=n|0;bv(e,Oa(t)|0,n,0);return e|0}function ca(e,t,n){e=e|0;t=t|0;n=n|0;Xm(e,Oa(t)|0,n,0);return e|0}function fa(e,t,n){e=e|0;t=t|0;n=n|0;Rm(e,Oa(t)|0,n,0);return e|0}function da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hm(e,t,i);h=r;return e|0}function pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vh(e,t,i);h=r;return e|0}function ha(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Sh(e,t,i);h=r;return e|0}function ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];lh(e,t,i);h=r;return e|0}function va(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];qp(e,t,i);h=r;return e|0}function ba(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Cp(e,t,i);h=r;return e|0}function ga(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];op(e,t,i);h=r;return e|0}function _a(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Td(e,t,i);h=r;return e|0}function ya(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ud(e,t,i);h=r;return e|0}function Da(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Wf(e,t,i);h=r;return e|0}function wa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];wf(e,t,i);h=r;return e|0}function Ea(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zc(e,t,i);h=r;return e|0}function Ca(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Rc(e,t,i);h=r;return e|0}function Ta(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];hc(e,t,i);h=r;return e|0}function ka(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gs(e,t,i);h=r;return e|0}function Sa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ds(e,t,i);h=r;return e|0}function Ma(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ts(e,t,i);h=r;return e|0}function xa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Al(e,t,i);h=r;return e|0}function Aa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pa(e,t,i);h=r;return e|0}function Pa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ra(e,n,i,1);h=r;return}function Oa(e){e=e|0;return e|0}function Ra(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Na()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ia(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Fa(u,r)|0,r);h=i;return}function Na(){var e=0,t=0;if(!(r[7616]|0)){Ka(9136);Fe(24,9136,b|0)|0;t=7616;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9136)|0)){e=9136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ka(9136)}return 9136}function Ia(e){e=e|0;return 0}function Fa(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Na()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];za(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{qa(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ba(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;a=h;h=h+32|0;p=a+24|0;d=a+20|0;s=a+16|0;f=a+12|0;c=a+8|0;l=a+4|0;m=a;o[d>>2]=t;o[s>>2]=n;o[f>>2]=r;o[c>>2]=i;o[l>>2]=u;u=e+28|0;o[m>>2]=o[u>>2];o[p>>2]=o[m>>2];La(e+24|0,p,d,f,c,s,l)|0;o[u>>2]=o[o[u>>2]>>2];h=a;return}function La(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;e=Ua(t)|0;t=YS(24)|0;ja(t+4|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0,o[a>>2]|0);o[t>>2]=o[e>>2];o[e>>2]=t;return t|0}function Ua(e){e=e|0;return o[e>>2]|0}function ja(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function Wa(e,t){e=e|0;t=t|0;return t|e|0}function za(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function qa(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ha(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ga(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];za(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Va(e,l);Ya(l);h=c;return}}function Ha(e){e=e|0;return 357913941}function Ga(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Va(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ya(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ka(e){e=e|0;Qa(e);return}function $a(e){e=e|0;Ja(e+24|0);return}function Xa(e){e=e|0;return o[e>>2]|0}function Ja(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Qa(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,el()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Za(){return 9228}function el(){return 1140}function tl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=rl(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=il(t,r)|0;h=n;return t|0}function nl(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;o[e>>2]=t;o[e+4>>2]=n;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=u;return}function rl(e){e=e|0;return(o[(Na()|0)+24>>2]|0)+(e*12|0)|0}function il(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+48|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=ol(r)|0;h=i;return r|0}function ol(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(ul()|0)|0;if(!r)e=dl(e)|0;else{ll(t,r);sl(n,t);cl(e,n);e=fl(t)|0}h=i;return e|0}function ul(){var e=0;if(!(r[7632]|0)){El(9184);Fe(25,9184,b|0)|0;e=7632;o[e>>2]=1;o[e+4>>2]=0}return 9184}function al(e){e=e|0;return o[e+36>>2]|0}function ll(e,t){e=e|0;t=t|0;o[e>>2]=t;o[e+4>>2]=e;o[e+8>>2]=0;return}function sl(e,t){e=e|0;t=t|0;o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=0;return}function cl(e,t){e=e|0;t=t|0;bl(t,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0;return}function fl(e){e=e|0;return o[(o[e+4>>2]|0)+8>>2]|0}function dl(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;s=h;h=h+16|0;n=s+4|0;r=s;i=jE(8)|0;u=i;a=YS(48)|0;l=a;t=l+48|0;do{o[l>>2]=o[e>>2];l=l+4|0;e=e+4|0}while((l|0)<(t|0));t=u+4|0;o[t>>2]=a;l=YS(8)|0;a=o[t>>2]|0;o[r>>2]=0;o[n>>2]=o[r>>2];pl(l,a,n);o[i>>2]=l;h=s;return u|0}function pl(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1092;o[n+12>>2]=t;o[e+4>>2]=n;return}function hl(e){e=e|0;WS(e);$S(e);return}function ml(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function vl(e){e=e|0;$S(e);return}function bl(e,t,n,r,i,u,a){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;a=a|0;u=gl(o[e>>2]|0,t,n,r,i,u,a)|0;a=e+4|0;o[(o[a>>2]|0)+8>>2]=u;return o[(o[a>>2]|0)+8>>2]|0}function gl(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;var a=0,l=0;a=h;h=h+16|0;l=a;Ek(l);e=wu(e)|0;u=_l(e,+c[t>>3],+c[n>>3],+c[r>>3],+c[i>>3],+c[o>>3],+c[u>>3])|0;Tk(l);h=a;return u|0}function _l(e,t,n,r,i,o,u){e=e|0;t=+t;n=+n;r=+r;i=+i;o=+o;u=+u;var a=0;a=Tu(yl()|0)|0;t=+ku(t);n=+ku(n);r=+ku(r);i=+ku(i);o=+ku(o);return Se(0,a|0,e|0,+t,+n,+r,+i,+o,+ +ku(u))|0}function yl(){var e=0;if(!(r[7624]|0)){Dl(9172);e=7624;o[e>>2]=1;o[e+4>>2]=0}return 9172}function Dl(e){e=e|0;Bu(e,wl()|0,6);return}function wl(){return 1112}function El(e){e=e|0;xl(e);return}function Cl(e){e=e|0;Tl(e+24|0);kl(e+16|0);return}function Tl(e){e=e|0;Ml(e);return}function kl(e){e=e|0;Sl(e);return}function Sl(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function Ml(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function xl(e){e=e|0;var t=0;o[e+16>>2]=0;o[e+20>>2]=0;t=e+24|0;o[t>>2]=0;o[e+28>>2]=t;o[e+36>>2]=0;r[e+40>>0]=0;r[e+41>>0]=0;return}function Al(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Pl(e,n,i,0);h=r;return}function Pl(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ol()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Rl(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Nl(u,r)|0,r);h=i;return}function Ol(){var e=0,t=0;if(!(r[7640]|0)){Wl(9232);Fe(26,9232,b|0)|0;t=7640;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9232)|0)){e=9232;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Wl(9232)}return 9232}function Rl(e){e=e|0;return 0}function Nl(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ol()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Il(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Fl(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Il(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Fl(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Bl(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ll(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Il(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ul(e,l);jl(l);h=c;return}}function Bl(e){e=e|0;return 357913941}function Ll(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ul(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function jl(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Wl(e){e=e|0;Hl(e);return}function zl(e){e=e|0;ql(e+24|0);return}function ql(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Hl(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Gl()|0,3);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Gl(){return 1144}function Vl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;a=u+8|0;l=u;s=Yl(e)|0;e=o[s+4>>2]|0;o[l>>2]=o[s>>2];o[l+4>>2]=e;o[a>>2]=o[l>>2];o[a+4>>2]=o[l+4>>2];Kl(t,a,n,r,i);h=u;return}function Yl(e){e=e|0;return(o[(Ol()|0)+24>>2]|0)+(e*12|0)|0}function Kl(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;var u=0,a=0,l=0,s=0,c=0;c=h;h=h+16|0;a=c+2|0;l=c+1|0;s=c;u=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)u=o[(o[e>>2]|0)+u>>2]|0;$l(a,n);n=+Xl(a,n);$l(l,r);r=+Xl(l,r);Jl(s,i);s=Ql(s,i)|0;bx[u&1](e,n,r,s);h=c;return}function $l(e,t){e=e|0;t=+t;return}function Xl(e,t){e=e|0;t=+t;return+ +es(t)}function Jl(e,t){e=e|0;t=t|0;return}function Ql(e,t){e=e|0;t=t|0;return Zl(t)|0}function Zl(e){e=e|0;return e|0}function es(e){e=+e;return+e}function ts(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ns(e,n,i,1);h=r;return}function ns(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=rs()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=is(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,os(u,r)|0,r);h=i;return}function rs(){var e=0,t=0;if(!(r[7648]|0)){ds(9268);Fe(27,9268,b|0)|0;t=7648;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9268)|0)){e=9268;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ds(9268)}return 9268}function is(e){e=e|0;return 0}function os(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=rs()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];us(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{as(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function as(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ls(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ss(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];us(u,r,n);o[s>>2]=(o[s>>2]|0)+12;cs(e,l);fs(l);h=c;return}}function ls(e){e=e|0;return 357913941}function ss(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function cs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fs(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ds(e){e=e|0;ms(e);return}function ps(e){e=e|0;hs(e+24|0);return}function hs(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function ms(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,vs()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vs(){return 1160}function bs(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=gs(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=_s(t,r)|0;h=n;return t|0}function gs(e){e=e|0;return(o[(rs()|0)+24>>2]|0)+(e*12|0)|0}function _s(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return ys(vx[n&31](e)|0)|0}function ys(e){e=e|0;return e&1|0}function Ds(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ws(e,n,i,0);h=r;return}function ws(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Es()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Cs(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ts(u,r)|0,r);h=i;return}function Es(){var e=0,t=0;if(!(r[7656]|0)){Os(9304);Fe(28,9304,b|0)|0;t=7656;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9304)|0)){e=9304;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Os(9304)}return 9304}function Cs(e){e=e|0;return 0}function Ts(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Es()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ks(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ss(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ks(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ss(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Ms(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;xs(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ks(u,r,n);o[s>>2]=(o[s>>2]|0)+12;As(e,l);Ps(l);h=c;return}}function Ms(e){e=e|0;return 357913941}function xs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function As(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ps(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Os(e){e=e|0;Is(e);return}function Rs(e){e=e|0;Ns(e+24|0);return}function Ns(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Is(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Fs()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Fs(){return 1164}function Bs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ls(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Us(t,i,n);h=r;return}function Ls(e){e=e|0;return(o[(Es()|0)+24>>2]|0)+(e*12|0)|0}function Us(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;js(i,n);n=Ws(i,n)|0;mx[r&31](e,n);zs(i);h=u;return}function js(e,t){e=e|0;t=t|0;qs(e,t);return}function Ws(e,t){e=e|0;t=t|0;return e|0}function zs(e){e=e|0;Qi(e);return}function qs(e,t){e=e|0;t=t|0;Hs(e,t);return}function Hs(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function Gs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Vs(e,n,i,0);h=r;return}function Vs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ys()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ks(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,$s(u,r)|0,r);h=i;return}function Ys(){var e=0,t=0;if(!(r[7664]|0)){nc(9340);Fe(29,9340,b|0)|0;t=7664;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9340)|0)){e=9340;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));nc(9340)}return 9340}function Ks(e){e=e|0;return 0}function $s(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ys()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Xs(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Js(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Xs(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Js(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Qs(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Zs(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Xs(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ec(e,l);tc(l);h=c;return}}function Qs(e){e=e|0;return 357913941}function Zs(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function tc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function nc(e){e=e|0;oc(e);return}function rc(e){e=e|0;ic(e+24|0);return}function ic(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function oc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,4,t,uc()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function uc(){return 1180}function ac(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=lc(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=sc(t,i,n)|0;h=r;return n|0}function lc(e){e=e|0;return(o[(Ys()|0)+24>>2]|0)+(e*12|0)|0}function sc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;cc(i,n);i=fc(i,n)|0;i=dc(Ex[r&15](e,i)|0)|0;h=u;return i|0}function cc(e,t){e=e|0;t=t|0;return}function fc(e,t){e=e|0;t=t|0;return pc(t)|0}function dc(e){e=e|0;return e|0}function pc(e){e=e|0;return e|0}function hc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mc(e,n,i,0);h=r;return}function mc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vc()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gc(u,r)|0,r);h=i;return}function vc(){var e=0,t=0;if(!(r[7672]|0)){Tc(9376);Fe(30,9376,b|0)|0;t=7672;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9376)|0)){e=9376;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tc(9376)}return 9376}function bc(e){e=e|0;return 0}function gc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vc()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_c(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{yc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _c(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function yc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dc(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wc(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_c(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Ec(e,l);Cc(l);h=c;return}}function Dc(e){e=e|0;return 357913941}function wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Ec(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tc(e){e=e|0;Mc(e);return}function kc(e){e=e|0;Sc(e+24|0);return}function Sc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xc(){return 1196}function Ac(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Oc(t,r)|0;h=n;return t|0}function Pc(e){e=e|0;return(o[(vc()|0)+24>>2]|0)+(e*12|0)|0}function Oc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return dc(vx[n&31](e)|0)|0}function Rc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Nc(e,n,i,1);h=r;return}function Nc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Ic()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Fc(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Bc(u,r)|0,r);h=i;return}function Ic(){var e=0,t=0;if(!(r[7680]|0)){Hc(9412);Fe(31,9412,b|0)|0;t=7680;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9412)|0)){e=9412;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Hc(9412)}return 9412}function Fc(e){e=e|0;return 0}function Bc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Ic()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Lc(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Uc(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Lc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Uc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=jc(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Wc(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Lc(u,r,n);o[s>>2]=(o[s>>2]|0)+12;zc(e,l);qc(l);h=c;return}}function jc(e){e=e|0;return 357913941}function Wc(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function zc(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function qc(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Hc(e){e=e|0;Yc(e);return}function Gc(e){e=e|0;Vc(e+24|0);return}function Vc(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Yc(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Kc(){return 1200}function $c(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Xc(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=Jc(t,r)|0;h=n;return t|0}function Xc(e){e=e|0;return(o[(Ic()|0)+24>>2]|0)+(e*12|0)|0}function Jc(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Qc(vx[n&31](e)|0)|0}function Qc(e){e=e|0;return e|0}function Zc(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ef(e,n,i,0);h=r;return}function ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=tf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=nf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,rf(u,r)|0,r);h=i;return}function tf(){var e=0,t=0;if(!(r[7688]|0)){ff(9448);Fe(32,9448,b|0)|0;t=7688;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9448)|0)){e=9448;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));ff(9448)}return 9448}function nf(e){e=e|0;return 0}function rf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=tf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];of(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{uf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function of(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function uf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=af(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;lf(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];of(u,r,n);o[s>>2]=(o[s>>2]|0)+12;sf(e,l);cf(l);h=c;return}}function af(e){e=e|0;return 357913941}function lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function sf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function cf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function ff(e){e=e|0;hf(e);return}function df(e){e=e|0;pf(e+24|0);return}function pf(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function hf(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function mf(){return 1204}function vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=bf(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gf(t,i,n);h=r;return}function bf(e){e=e|0;return(o[(tf()|0)+24>>2]|0)+(e*12|0)|0}function gf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;_f(i,n);i=yf(i,n)|0;mx[r&31](e,i);h=u;return}function _f(e,t){e=e|0;t=t|0;return}function yf(e,t){e=e|0;t=t|0;return Df(t)|0}function Df(e){e=e|0;return e|0}function wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ef(e,n,i,0);h=r;return}function Ef(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Cf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Tf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,kf(u,r)|0,r);h=i;return}function Cf(){var e=0,t=0;if(!(r[7696]|0)){Rf(9484);Fe(33,9484,b|0)|0;t=7696;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9484)|0)){e=9484;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Rf(9484)}return 9484}function Tf(e){e=e|0;return 0}function kf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Cf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Sf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Mf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Sf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Mf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=xf(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Af(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Sf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Pf(e,l);Of(l);h=c;return}}function xf(e){e=e|0;return 357913941}function Af(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Pf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Of(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Rf(e){e=e|0;Ff(e);return}function Nf(e){e=e|0;If(e+24|0);return}function If(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ff(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Bf()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Bf(){return 1212}function Lf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Uf(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];jf(t,u,n,r);h=i;return}function Uf(e){e=e|0;return(o[(Cf()|0)+24>>2]|0)+(e*12|0)|0}function jf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;_f(u,n);u=yf(u,n)|0;cc(a,r);a=fc(a,r)|0;Px[i&15](e,u,a);h=l;return}function Wf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];zf(e,n,i,1);h=r;return}function zf(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=qf()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Hf(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Gf(u,r)|0,r);h=i;return}function qf(){var e=0,t=0;if(!(r[7704]|0)){Qf(9520);Fe(34,9520,b|0)|0;t=7704;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9520)|0)){e=9520;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Qf(9520)}return 9520}function Hf(e){e=e|0;return 0}function Gf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=qf()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Vf(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Yf(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Vf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Yf(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Kf(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;$f(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Vf(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Xf(e,l);Jf(l);h=c;return}}function Kf(e){e=e|0;return 357913941}function $f(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Xf(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Jf(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Qf(e){e=e|0;td(e);return}function Zf(e){e=e|0;ed(e+24|0);return}function ed(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function td(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,nd()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function nd(){return 1224}function rd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0.0,i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=id(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];r=+od(t,u,n);h=i;return+r}function id(e){e=e|0;return(o[(qf()|0)+24>>2]|0)+(e*12|0)|0}function od(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0.0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;a=+Nu(+kx[r&7](e,i));h=u;return+a}function ud(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ad(e,n,i,1);h=r;return}function ad(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ld()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=sd(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,cd(u,r)|0,r);h=i;return}function ld(){var e=0,t=0;if(!(r[7712]|0)){bd(9556);Fe(35,9556,b|0)|0;t=7712;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9556)|0)){e=9556;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bd(9556)}return 9556}function sd(e){e=e|0;return 0}function cd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ld()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];fd(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{dd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function fd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function dd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=pd(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;hd(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];fd(u,r,n);o[s>>2]=(o[s>>2]|0)+12;md(e,l);vd(l);h=c;return}}function pd(e){e=e|0;return 357913941}function hd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function md(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vd(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function bd(e){e=e|0;yd(e);return}function gd(e){e=e|0;_d(e+24|0);return}function _d(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function yd(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,Dd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dd(){return 1232}function wd(e,t){e=e|0;t=t|0;var n=0.0,r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Ed(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=+Cd(t,i);h=r;return+n}function Ed(e){e=e|0;return(o[(ld()|0)+24>>2]|0)+(e*12|0)|0}function Cd(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return+ +Nu(+Dx[n&15](e))}function Td(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];kd(e,n,i,1);h=r;return}function kd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Sd()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Md(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,xd(u,r)|0,r);h=i;return}function Sd(){var e=0,t=0;if(!(r[7720]|0)){Fd(9592);Fe(36,9592,b|0)|0;t=7720;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9592)|0)){e=9592;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Fd(9592)}return 9592}function Md(e){e=e|0;return 0}function xd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Sd()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Ad(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Pd(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Ad(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Pd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Od(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Rd(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Ad(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Nd(e,l);Id(l);h=c;return}}function Od(e){e=e|0;return 357913941}function Rd(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Nd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Id(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Fd(e){e=e|0;Ud(e);return}function Bd(e){e=e|0;Ld(e+24|0);return}function Ld(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Ud(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,jd()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function jd(){return 1276}function Wd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=zd(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=qd(t,r)|0;h=n;return t|0}function zd(e){e=e|0;return(o[(Sd()|0)+24>>2]|0)+(e*12|0)|0}function qd(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;r=i;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;mx[n&31](r,e);r=Hd(r)|0;h=i;return r|0}function Hd(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(Gd()|0)|0;if(!r)e=Yd(e)|0;else{ll(t,r);sl(n,t);Vd(e,n);e=fl(t)|0}h=i;return e|0}function Gd(){var e=0;if(!(r[7736]|0)){ip(9640);Fe(25,9640,b|0)|0;e=7736;o[e>>2]=1;o[e+4>>2]=0}return 9640}function Vd(e,t){e=e|0;t=t|0;Qd(t,e,e+8|0)|0;return}function Yd(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(16)|0;o[l>>2]=o[e>>2];o[l+4>>2]=o[e+4>>2];o[l+8>>2]=o[e+8>>2];o[l+12>>2]=o[e+12>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(e,u,i);o[r>>2]=e;h=n;return t|0}function Kd(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1244;o[n+12>>2]=t;o[e+4>>2]=n;return}function $d(e){e=e|0;WS(e);$S(e);return}function Xd(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function Jd(e){e=e|0;$S(e);return}function Qd(e,t,n){e=e|0;t=t|0;n=n|0;t=Zd(o[e>>2]|0,t,n)|0;n=e+4|0;o[(o[n>>2]|0)+8>>2]=t;return o[(o[n>>2]|0)+8>>2]|0}function Zd(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0;r=h;h=h+16|0;i=r;Ek(i);e=wu(e)|0;n=ep(e,o[t>>2]|0,+c[n>>3])|0;Tk(i);h=r;return n|0}function ep(e,t,n){e=e|0;t=t|0;n=+n;var r=0;r=Tu(tp()|0)|0;t=Su(t)|0;return Me(0,r|0,e|0,t|0,+ +ku(n))|0}function tp(){var e=0;if(!(r[7728]|0)){np(9628);e=7728;o[e>>2]=1;o[e+4>>2]=0}return 9628}function np(e){e=e|0;Bu(e,rp()|0,2);return}function rp(){return 1264}function ip(e){e=e|0;xl(e);return}function op(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];up(e,n,i,1);h=r;return}function up(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ap()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=lp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,sp(u,r)|0,r);h=i;return}function ap(){var e=0,t=0;if(!(r[7744]|0)){vp(9684);Fe(37,9684,b|0)|0;t=7744;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9684)|0)){e=9684;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));vp(9684)}return 9684}function lp(e){e=e|0;return 0}function sp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ap()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];cp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{fp(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function fp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=dp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;pp(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];cp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;hp(e,l);mp(l);h=c;return}}function dp(e){e=e|0;return 357913941}function pp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function hp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function mp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function vp(e){e=e|0;_p(e);return}function bp(e){e=e|0;gp(e+24|0);return}function gp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function _p(e){e=e|0;var t=0;t=Za()|0;nl(e,2,5,t,yp()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function yp(){return 1280}function Dp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=wp(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=Ep(t,i,n)|0;h=r;return n|0}function wp(e){e=e|0;return(o[(ap()|0)+24>>2]|0)+(e*12|0)|0}function Ep(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;a=h;h=h+32|0;i=a;u=a+16|0;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(u,n);u=Ql(u,n)|0;Px[r&15](i,e,u);u=Hd(i)|0;h=a;return u|0}function Cp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Tp(e,n,i,1);h=r;return}function Tp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=kp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Sp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Mp(u,r)|0,r);h=i;return}function kp(){var e=0,t=0;if(!(r[7752]|0)){Ip(9720);Fe(38,9720,b|0)|0;t=7752;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9720)|0)){e=9720;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ip(9720)}return 9720}function Sp(e){e=e|0;return 0}function Mp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=kp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];xp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Ap(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function xp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Ap(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Pp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Op(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];xp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Rp(e,l);Np(l);h=c;return}}function Pp(e){e=e|0;return 357913941}function Op(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Rp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Np(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Ip(e){e=e|0;Lp(e);return}function Fp(e){e=e|0;Bp(e+24|0);return}function Bp(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Lp(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,Up()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Up(){return 1288}function jp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Wp(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];t=zp(t,r)|0;h=n;return t|0}function Wp(e){e=e|0;return(o[(kp()|0)+24>>2]|0)+(e*12|0)|0}function zp(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;return Ru(vx[n&31](e)|0)|0}function qp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Hp(e,n,i,0);h=r;return}function Hp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Gp()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Vp(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Yp(u,r)|0,r);h=i;return}function Gp(){var e=0,t=0;if(!(r[7760]|0)){eh(9756);Fe(39,9756,b|0)|0;t=7760;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9756)|0)){e=9756;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));eh(9756)}return 9756}function Vp(e){e=e|0;return 0}function Yp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Gp()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Kp(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{$p(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Kp(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function $p(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Xp(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Jp(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Kp(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Qp(e,l);Zp(l);h=c;return}}function Xp(e){e=e|0;return 357913941}function Jp(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Qp(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Zp(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function eh(e){e=e|0;rh(e);return}function th(e){e=e|0;nh(e+24|0);return}function nh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function rh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,ih()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ih(){return 1292}function oh(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=uh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];ah(t,i,n);h=r;return}function uh(e){e=e|0;return(o[(Gp()|0)+24>>2]|0)+(e*12|0)|0}function ah(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;$l(i,n);n=+Xl(i,n);dx[r&31](e,n);h=u;return}function lh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];sh(e,n,i,0);h=r;return}function sh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=ch()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=fh(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,dh(u,r)|0,r);h=i;return}function ch(){var e=0,t=0;if(!(r[7768]|0)){_h(9792);Fe(40,9792,b|0)|0;t=7768;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9792)|0)){e=9792;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_h(9792)}return 9792}function fh(e){e=e|0;return 0}function dh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=ch()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];ph(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{hh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function ph(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function hh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=mh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;vh(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];ph(u,r,n);o[s>>2]=(o[s>>2]|0)+12;bh(e,l);gh(l);h=c;return}}function mh(e){e=e|0;return 357913941}function vh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function bh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function _h(e){e=e|0;wh(e);return}function yh(e){e=e|0;Dh(e+24|0);return}function Dh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,1,t,Eh()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Eh(){return 1300}function Ch(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=Th(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];kh(t,u,n,r);h=i;return}function Th(e){e=e|0;return(o[(ch()|0)+24>>2]|0)+(e*12|0)|0}function kh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;$l(a,r);r=+Xl(a,r);Rx[i&15](e,u,r);h=l;return}function Sh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Mh(e,n,i,0);h=r;return}function Mh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=xh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=Ah(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Ph(u,r)|0,r);h=i;return}function xh(){var e=0,t=0;if(!(r[7776]|0)){Lh(9828);Fe(41,9828,b|0)|0;t=7776;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9828)|0)){e=9828;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Lh(9828)}return 9828}function Ah(e){e=e|0;return 0}function Ph(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=xh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Oh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Rh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Oh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Rh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Nh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Ih(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Oh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Fh(e,l);Bh(l);h=c;return}}function Nh(e){e=e|0;return 357913941}function Ih(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Fh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Bh(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Lh(e){e=e|0;Wh(e);return}function Uh(e){e=e|0;jh(e+24|0);return}function jh(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Wh(e){e=e|0;var t=0;t=Za()|0;nl(e,2,7,t,zh()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function zh(){return 1312}function qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Hh(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Gh(t,i,n);h=r;return}function Hh(e){e=e|0;return(o[(xh()|0)+24>>2]|0)+(e*12|0)|0}function Gh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;mx[r&31](e,i);h=u;return}function Vh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Yh(e,n,i,0);h=r;return}function Yh(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Kh()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=$h(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Xh(u,r)|0,r);h=i;return}function Kh(){var e=0,t=0;if(!(r[7784]|0)){rm(9864);Fe(42,9864,b|0)|0;t=7784;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9864)|0)){e=9864;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));rm(9864)}return 9864}function $h(e){e=e|0;return 0}function Xh(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Kh()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Jh(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Qh(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Jh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Qh(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Zh(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;em(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Jh(u,r,n);o[s>>2]=(o[s>>2]|0)+12;tm(e,l);nm(l);h=c;return}}function Zh(e){e=e|0;return 357913941}function em(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function tm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function nm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function rm(e){e=e|0;um(e);return}function im(e){e=e|0;om(e+24|0);return}function om(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function um(e){e=e|0;var t=0;t=Za()|0;nl(e,2,8,t,am()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function am(){return 1320}function lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=sm(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];cm(t,i,n);h=r;return}function sm(e){e=e|0;return(o[(Kh()|0)+24>>2]|0)+(e*12|0)|0}function cm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;fm(i,n);i=dm(i,n)|0;mx[r&31](e,i);h=u;return}function fm(e,t){e=e|0;t=t|0;return}function dm(e,t){e=e|0;t=t|0;return pm(t)|0}function pm(e){e=e|0;return e|0}function hm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];mm(e,n,i,0);h=r;return}function mm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=vm()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=bm(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,gm(u,r)|0,r);h=i;return}function vm(){var e=0,t=0;if(!(r[7792]|0)){Tm(9900);Fe(43,9900,b|0)|0;t=7792;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9900)|0)){e=9900;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Tm(9900)}return 9900}function bm(e){e=e|0;return 0}function gm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=vm()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];_m(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ym(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function _m(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ym(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Dm(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;wm(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];_m(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Em(e,l);Cm(l);h=c;return}}function Dm(e){e=e|0;return 357913941}function wm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Em(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Cm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Tm(e){e=e|0;Mm(e);return}function km(e){e=e|0;Sm(e+24|0);return}function Sm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Mm(e){e=e|0;var t=0;t=Za()|0;nl(e,2,22,t,xm()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function xm(){return 1344}function Am(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0;n=h;h=h+16|0;r=n+8|0;i=n;u=Pm(e)|0;e=o[u+4>>2]|0;o[i>>2]=o[u>>2];o[i+4>>2]=e;o[r>>2]=o[i>>2];o[r+4>>2]=o[i+4>>2];Om(t,r);h=n;return}function Pm(e){e=e|0;return(o[(vm()|0)+24>>2]|0)+(e*12|0)|0}function Om(e,t){e=e|0;t=t|0;var n=0;n=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)n=o[(o[e>>2]|0)+n>>2]|0;hx[n&127](e);return}function Rm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Nm()|0;e=Im(n)|0;Ba(u,t,i,e,Fm(n,r)|0,r);return}function Nm(){var e=0,t=0;if(!(r[7800]|0)){qm(9936);Fe(44,9936,b|0)|0;t=7800;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9936)|0)){e=9936;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));qm(9936)}return 9936}function Im(e){e=e|0;return e|0}function Fm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Nm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Bm(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Lm(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Bm(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Lm(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Um(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;jm(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Bm(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Wm(e,i);zm(i);h=l;return}}function Um(e){e=e|0;return 536870911}function jm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Wm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function zm(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function qm(e){e=e|0;Vm(e);return}function Hm(e){e=e|0;Gm(e+24|0);return}function Gm(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Vm(e){e=e|0;var t=0;t=Za()|0;nl(e,1,23,t,mf()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ym(e,t){e=e|0;t=t|0;$m(o[(Km(e)|0)>>2]|0,t);return}function Km(e){e=e|0;return(o[(Nm()|0)+24>>2]|0)+(e<<3)|0}function $m(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;_f(r,t);t=yf(r,t)|0;hx[e&127](t);h=n;return}function Xm(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=Jm()|0;e=Qm(n)|0;Ba(u,t,i,e,Zm(n,r)|0,r);return}function Jm(){var e=0,t=0;if(!(r[7808]|0)){uv(9972);Fe(45,9972,b|0)|0;t=7808;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(9972)|0)){e=9972;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));uv(9972)}return 9972}function Qm(e){e=e|0;return e|0}function Zm(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Jm()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){ev(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{tv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function ev(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function tv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=nv(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;rv(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;ev(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;iv(e,i);ov(i);h=l;return}}function nv(e){e=e|0;return 536870911}function rv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function iv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ov(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function uv(e){e=e|0;sv(e);return}function av(e){e=e|0;lv(e+24|0);return}function lv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sv(e){e=e|0;var t=0;t=Za()|0;nl(e,1,9,t,cv()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cv(){return 1348}function fv(e,t){e=e|0;t=t|0;return pv(o[(dv(e)|0)>>2]|0,t)|0}function dv(e){e=e|0;return(o[(Jm()|0)+24>>2]|0)+(e<<3)|0}function pv(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;t=dc(vx[e&31](t)|0)|0;h=n;return t|0}function hv(e,t){e=e|0;t=t|0;return}function mv(e,t){e=e|0;t=t|0;return vv(t)|0}function vv(e){e=e|0;return e|0}function bv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=gv()|0;e=_v(n)|0;Ba(u,t,i,e,yv(n,r)|0,r);return}function gv(){var e=0,t=0;if(!(r[7816]|0)){Sv(10008);Fe(46,10008,b|0)|0;t=7816;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10008)|0)){e=10008;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Sv(10008)}return 10008}function _v(e){e=e|0;return e|0}function yv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=gv()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Dv(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{wv(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Dv(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function wv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Ev(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Cv(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Dv(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Tv(e,i);kv(i);h=l;return}}function Ev(e){e=e|0;return 536870911}function Cv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Tv(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function kv(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Sv(e){e=e|0;Av(e);return}function Mv(e){e=e|0;xv(e+24|0);return}function xv(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Av(e){e=e|0;var t=0;t=Za()|0;nl(e,1,15,t,xc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Pv(e){e=e|0;return Rv(o[(Ov(e)|0)>>2]|0)|0}function Ov(e){e=e|0;return(o[(gv()|0)+24>>2]|0)+(e<<3)|0}function Rv(e){e=e|0;return dc(Sx[e&7]()|0)|0}function Nv(){var e=0;if(!(r[7832]|0)){Hv(10052);Fe(25,10052,b|0)|0;e=7832;o[e>>2]=1;o[e+4>>2]=0}return 10052}function Iv(e,t){e=e|0;t=t|0;o[e>>2]=Fv()|0;o[e+4>>2]=Bv()|0;o[e+12>>2]=t;o[e+8>>2]=Lv()|0;o[e+32>>2]=2;return}function Fv(){return 11709}function Bv(){return 1188}function Lv(){return zv()|0}function Uv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Wv(n);$S(n)}}else if(t|0){Ji(t);$S(t)}return}function jv(e,t){e=e|0;t=t|0;return t&e|0}function Wv(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function zv(){var e=0;if(!(r[7824]|0)){o[2511]=qv()|0;o[2512]=0;e=7824;o[e>>2]=1;o[e+4>>2]=0}return 10044}function qv(){return 0}function Hv(e){e=e|0;xl(e);return}function Gv(e){e=e|0;var t=0,n=0,r=0,i=0,u=0;t=h;h=h+32|0;n=t+24|0;u=t+16|0;i=t+8|0;r=t;Vv(e,4827);Yv(e,4834,3)|0;Kv(e,3682,47)|0;o[u>>2]=9;o[u+4>>2]=0;o[n>>2]=o[u>>2];o[n+4>>2]=o[u+4>>2];$v(e,4841,n)|0;o[i>>2]=1;o[i+4>>2]=0;o[n>>2]=o[i>>2];o[n+4>>2]=o[i+4>>2];Xv(e,4871,n)|0;o[r>>2]=10;o[r+4>>2]=0;o[n>>2]=o[r>>2];o[n+4>>2]=o[r+4>>2];Jv(e,4891,n)|0;h=t;return}function Vv(e,t){e=e|0;t=t|0;var n=0;n=Hg()|0;o[e>>2]=n;Gg(n,t);cD(o[e>>2]|0);return}function Yv(e,t,n){e=e|0;t=t|0;n=n|0;Tg(e,Oa(t)|0,n,0);return e|0}function Kv(e,t,n){e=e|0;t=t|0;n=n|0;ag(e,Oa(t)|0,n,0);return e|0}function $v(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ub(e,t,i);h=r;return e|0}function Xv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];bb(e,t,i);h=r;return e|0}function Jv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=o[n+4>>2]|0;o[u>>2]=o[n>>2];o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Qv(e,t,i);h=r;return e|0}function Qv(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Zv(e,n,i,1);h=r;return}function Zv(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=eb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=tb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,nb(u,r)|0,r);h=i;return}function eb(){var e=0,t=0;if(!(r[7840]|0)){sb(10100);Fe(48,10100,b|0)|0;t=7840;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10100)|0)){e=10100;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));sb(10100)}return 10100}function tb(e){e=e|0;return 0}function nb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=eb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];rb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{ib(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function rb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function ib(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=ob(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;ub(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];rb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;ab(e,l);lb(l);h=c;return}}function ob(e){e=e|0;return 357913941}function ub(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function ab(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function lb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function sb(e){e=e|0;db(e);return}function cb(e){e=e|0;fb(e+24|0);return}function fb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function db(e){e=e|0;var t=0;t=Za()|0;nl(e,2,6,t,pb()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function pb(){return 1364}function hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=mb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];n=vb(t,i,n)|0;h=r;return n|0}function mb(e){e=e|0;return(o[(eb()|0)+24>>2]|0)+(e*12|0)|0}function vb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Jl(i,n);i=Ql(i,n)|0;i=ys(Ex[r&15](e,i)|0)|0;h=u;return i|0}function bb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];gb(e,n,i,0);h=r;return}function gb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=_b()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=yb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,Db(u,r)|0,r);h=i;return}function _b(){var e=0,t=0;if(!(r[7848]|0)){Mb(10136);Fe(49,10136,b|0)|0;t=7848;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10136)|0)){e=10136;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Mb(10136)}return 10136}function yb(e){e=e|0;return 0}function Db(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=_b()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];wb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Eb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function wb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Eb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Cb(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Tb(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];wb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;kb(e,l);Sb(l);h=c;return}}function Cb(e){e=e|0;return 357913941}function Tb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Sb(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Mb(e){e=e|0;Pb(e);return}function xb(e){e=e|0;Ab(e+24|0);return}function Ab(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Pb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,9,t,Ob()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ob(){return 1372}function Rb(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;i=r+8|0;u=r;a=Nb(e)|0;e=o[a+4>>2]|0;o[u>>2]=o[a>>2];o[u+4>>2]=e;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];Ib(t,i,n);h=r;return}function Nb(e){e=e|0;return(o[(_b()|0)+24>>2]|0)+(e*12|0)|0}function Ib(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=ft;u=h;h=h+16|0;i=u;r=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)r=o[(o[e>>2]|0)+r>>2]|0;Fb(i,n);a=K(Bb(i,n));fx[r&1](e,a);h=u;return}function Fb(e,t){e=e|0;t=+t;return}function Bb(e,t){e=e|0;t=+t;return K(Lb(t))}function Lb(e){e=+e;return K(e)}function Ub(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;i=r+8|0;u=r;l=o[n>>2]|0;a=o[n+4>>2]|0;n=Oa(t)|0;o[u>>2]=l;o[u+4>>2]=a;o[i>>2]=o[u>>2];o[i+4>>2]=o[u+4>>2];jb(e,n,i,0);h=r;return}function jb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0;i=h;h=h+32|0;u=i+16|0;f=i+8|0;l=i;c=o[n>>2]|0;s=o[n+4>>2]|0;a=o[e>>2]|0;e=Wb()|0;o[f>>2]=c;o[f+4>>2]=s;o[u>>2]=o[f>>2];o[u+4>>2]=o[f+4>>2];n=zb(u)|0;o[l>>2]=c;o[l+4>>2]=s;o[u>>2]=o[l>>2];o[u+4>>2]=o[l+4>>2];Ba(a,t,e,n,qb(u,r)|0,r);h=i;return}function Wb(){var e=0,t=0;if(!(r[7856]|0)){Xb(10172);Fe(50,10172,b|0)|0;t=7856;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10172)|0)){e=10172;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Xb(10172)}return 10172}function zb(e){e=e|0;return 0}function qb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0;f=h;h=h+32|0;i=f+24|0;a=f+16|0;l=f;s=f+8|0;u=o[e>>2]|0;r=o[e+4>>2]|0;o[l>>2]=u;o[l+4>>2]=r;d=Wb()|0;c=d+24|0;e=Wa(t,4)|0;o[s>>2]=e;t=d+28|0;n=o[t>>2]|0;if(n>>>0<(o[d+32>>2]|0)>>>0){o[a>>2]=u;o[a+4>>2]=r;o[i>>2]=o[a>>2];o[i+4>>2]=o[a+4>>2];Hb(n,i,e);e=(o[t>>2]|0)+12|0;o[t>>2]=e}else{Gb(c,l,s);e=o[t>>2]|0}h=f;return((e-(o[c>>2]|0)|0)/12|0)+-1|0}function Hb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=o[t+4>>2]|0;o[e>>2]=o[t>>2];o[e+4>>2]=r;o[e+8>>2]=n;return}function Gb(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0;c=h;h=h+48|0;r=c+32|0;a=c+24|0;l=c;s=e+4|0;i=(((o[s>>2]|0)-(o[e>>2]|0)|0)/12|0)+1|0;u=Vb(e)|0;if(u>>>0<i>>>0)jS(e);else{f=o[e>>2]|0;p=((o[e+8>>2]|0)-f|0)/12|0;d=p<<1;Yb(l,p>>>0<u>>>1>>>0?d>>>0<i>>>0?i:d:u,((o[s>>2]|0)-f|0)/12|0,e+8|0);s=l+8|0;u=o[s>>2]|0;i=o[t+4>>2]|0;n=o[n>>2]|0;o[a>>2]=o[t>>2];o[a+4>>2]=i;o[r>>2]=o[a>>2];o[r+4>>2]=o[a+4>>2];Hb(u,r,n);o[s>>2]=(o[s>>2]|0)+12;Kb(e,l);$b(l);h=c;return}}function Vb(e){e=e|0;return 357913941}function Yb(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>357913941)Ke();else{i=YS(t*12|0)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n*12|0)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t*12|0);return}function Kb(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(((i|0)/-12|0)*12|0)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function $b(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~(((r+-12-t|0)>>>0)/12|0)*12|0);e=o[e>>2]|0;if(e|0)$S(e);return}function Xb(e){e=e|0;Zb(e);return}function Jb(e){e=e|0;Qb(e+24|0);return}function Qb(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~(((t+-12-r|0)>>>0)/12|0)*12|0);$S(n)}return}function Zb(e){e=e|0;var t=0;t=Za()|0;nl(e,2,3,t,eg()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function eg(){return 1380}function tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+8|0;a=i;l=ng(e)|0;e=o[l+4>>2]|0;o[a>>2]=o[l>>2];o[a+4>>2]=e;o[u>>2]=o[a>>2];o[u+4>>2]=o[a+4>>2];rg(t,u,n,r);h=i;return}function ng(e){e=e|0;return(o[(Wb()|0)+24>>2]|0)+(e*12|0)|0}function rg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;l=h;h=h+16|0;u=l+1|0;a=l;i=o[t>>2]|0;t=o[t+4>>2]|0;e=e+(t>>1)|0;if(t&1)i=o[(o[e>>2]|0)+i>>2]|0;Jl(u,n);u=Ql(u,n)|0;ig(a,r);a=og(a,r)|0;Px[i&15](e,u,a);h=l;return}function ig(e,t){e=e|0;t=t|0;return}function og(e,t){e=e|0;t=t|0;return ug(t)|0}function ug(e){e=e|0;return(e|0)!=0|0}function ag(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=lg()|0;e=sg(n)|0;Ba(u,t,i,e,cg(n,r)|0,r);return}function lg(){var e=0,t=0;if(!(r[7864]|0)){bg(10208);Fe(51,10208,b|0)|0;t=7864;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10208)|0)){e=10208;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));bg(10208)}return 10208}function sg(e){e=e|0;return e|0}function cg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=lg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){fg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{dg(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function fg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function dg(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=pg(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;hg(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;fg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;mg(e,i);vg(i);h=l;return}}function pg(e){e=e|0;return 536870911}function hg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function vg(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function bg(e){e=e|0;yg(e);return}function gg(e){e=e|0;_g(e+24|0);return}function _g(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function yg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,24,t,Dg()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Dg(){return 1392}function wg(e,t){e=e|0;t=t|0;Cg(o[(Eg(e)|0)>>2]|0,t);return}function Eg(e){e=e|0;return(o[(lg()|0)+24>>2]|0)+(e<<3)|0}function Cg(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;hv(r,t);t=mv(r,t)|0;hx[e&127](t);h=n;return}function Tg(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=kg()|0;e=Sg(n)|0;Ba(u,t,i,e,Mg(n,r)|0,r);return}function kg(){var e=0,t=0;if(!(r[7872]|0)){Ig(10244);Fe(52,10244,b|0)|0;t=7872;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10244)|0)){e=10244;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Ig(10244)}return 10244}function Sg(e){e=e|0;return e|0}function Mg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=kg()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){xg(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Ag(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function xg(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Ag(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=Pg(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;Og(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;xg(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;Rg(e,i);Ng(i);h=l;return}}function Pg(e){e=e|0;return 536870911}function Og(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function Rg(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function Ng(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function Ig(e){e=e|0;Lg(e);return}function Fg(e){e=e|0;Bg(e+24|0);return}function Bg(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Lg(e){e=e|0;var t=0;t=Za()|0;nl(e,1,16,t,Ug()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function Ug(){return 1400}function jg(e){e=e|0;return zg(o[(Wg(e)|0)>>2]|0)|0}function Wg(e){e=e|0;return(o[(kg()|0)+24>>2]|0)+(e<<3)|0}function zg(e){e=e|0;return qg(Sx[e&7]()|0)|0}function qg(e){e=e|0;return e|0}function Hg(){var e=0;if(!(r[7880]|0)){Jg(10280);Fe(25,10280,b|0)|0;e=7880;o[e>>2]=1;o[e+4>>2]=0}return 10280}function Gg(e,t){e=e|0;t=t|0;o[e>>2]=Vg()|0;o[e+4>>2]=Yg()|0;o[e+12>>2]=t;o[e+8>>2]=Kg()|0;o[e+32>>2]=4;return}function Vg(){return 11711}function Yg(){return 1356}function Kg(){return zv()|0}function $g(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Xg(n);$S(n)}}else if(t|0){qi(t);$S(t)}return}function Xg(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function Jg(e){e=e|0;xl(e);return}function Qg(e){e=e|0;Zg(e,4920);e_(e)|0;t_(e)|0;return}function Zg(e,t){e=e|0;t=t|0;var n=0;n=Gd()|0;o[e>>2]=n;S_(n,t);cD(o[e>>2]|0);return}function e_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,m_()|0);return e|0}function t_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,n_()|0);return e|0}function n_(){var e=0;if(!(r[7888]|0)){i_(10328);Fe(53,10328,b|0)|0;e=7888;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10328)|0))i_(10328);return 10328}function r_(e,t){e=e|0;t=t|0;Ba(e,0,t,0,0,0);return}function i_(e){e=e|0;a_(e);s_(e,10);return}function o_(e){e=e|0;u_(e+24|0);return}function u_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function a_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,d_()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function l_(e,t,n){e=e|0;t=t|0;n=+n;c_(e,t,n);return}function s_(e,t){e=e|0;t=t|0;o[e+20>>2]=t;return}function c_(e,t,n){e=e|0;t=t|0;n=+n;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+16|0;u=r+8|0;l=r+13|0;i=r;a=r+12|0;Jl(l,t);o[u>>2]=Ql(l,t)|0;$l(a,n);c[i>>3]=+Xl(a,n);f_(e,u,i);h=r;return}function f_(e,t,n){e=e|0;t=t|0;n=n|0;Ho(e+8|0,o[t>>2]|0,+c[n>>3]);r[e+24>>0]=1;return}function d_(){return 1404}function p_(e,t){e=e|0;t=+t;return h_(e,t)|0}function h_(e,t){e=e|0;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;u=r+4|0;a=r+8|0;l=r;i=jE(8)|0;n=i;s=YS(16)|0;Jl(u,e);e=Ql(u,e)|0;$l(a,t);Ho(s,e,+Xl(a,t));a=n+4|0;o[a>>2]=s;e=YS(8)|0;a=o[a>>2]|0;o[l>>2]=0;o[u>>2]=o[l>>2];Kd(e,a,u);o[i>>2]=e;h=r;return n|0}function m_(){var e=0;if(!(r[7896]|0)){v_(10364);Fe(54,10364,b|0)|0;e=7896;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10364)|0))v_(10364);return 10364}function v_(e){e=e|0;__(e);s_(e,55);return}function b_(e){e=e|0;g_(e+24|0);return}function g_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function __(e){e=e|0;var t=0;t=Za()|0;nl(e,5,4,t,C_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function y_(e){e=e|0;D_(e);return}function D_(e){e=e|0;w_(e);return}function w_(e){e=e|0;E_(e+8|0);r[e+24>>0]=1;return}function E_(e){e=e|0;o[e>>2]=0;c[e+8>>3]=0.0;return}function C_(){return 1424}function T_(){return k_()|0}function k_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;E_(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];Kd(r,u,i);o[n>>2]=r;h=t;return e|0}function S_(e,t){e=e|0;t=t|0;o[e>>2]=M_()|0;o[e+4>>2]=x_()|0;o[e+12>>2]=t;o[e+8>>2]=A_()|0;o[e+32>>2]=5;return}function M_(){return 11710}function x_(){return 1416}function A_(){return R_()|0}function P_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){O_(n);$S(n)}}else if(t|0)$S(t);return}function O_(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function R_(){var e=0;if(!(r[7904]|0)){o[2600]=N_()|0;o[2601]=0;e=7904;o[e>>2]=1;o[e+4>>2]=0}return 10400}function N_(){return o[357]|0}function I_(e){e=e|0;F_(e,4926);B_(e)|0;return}function F_(e,t){e=e|0;t=t|0;var n=0;n=ul()|0;o[e>>2]=n;$_(n,t);cD(o[e>>2]|0);return}function B_(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,L_()|0);return e|0}function L_(){var e=0;if(!(r[7912]|0)){U_(10412);Fe(56,10412,b|0)|0;e=7912;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10412)|0))U_(10412);return 10412}function U_(e){e=e|0;z_(e);s_(e,57);return}function j_(e){e=e|0;W_(e+24|0);return}function W_(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function z_(e){e=e|0;var t=0;t=Za()|0;nl(e,5,5,t,V_()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function q_(e){e=e|0;H_(e);return}function H_(e){e=e|0;G_(e);return}function G_(e){e=e|0;var t=0,n=0;t=e+8|0;n=t+48|0;do{o[t>>2]=0;t=t+4|0}while((t|0)<(n|0));r[e+56>>0]=1;return}function V_(){return 1432}function Y_(){return K_()|0}function K_(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0,l=0;a=h;h=h+16|0;e=a+4|0;t=a;n=jE(8)|0;r=n;i=YS(48)|0;u=i;l=u+48|0;do{o[u>>2]=0;u=u+4|0}while((u|0)<(l|0));u=r+4|0;o[u>>2]=i;l=YS(8)|0;u=o[u>>2]|0;o[t>>2]=0;o[e>>2]=o[t>>2];pl(l,u,e);o[n>>2]=l;h=a;return r|0}function $_(e,t){e=e|0;t=t|0;o[e>>2]=X_()|0;o[e+4>>2]=J_()|0;o[e+12>>2]=t;o[e+8>>2]=Q_()|0;o[e+32>>2]=6;return}function X_(){return 11704}function J_(){return 1436}function Q_(){return R_()|0}function Z_(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){ey(n);$S(n)}}else if(t|0)$S(t);return}function ey(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function ty(e){e=e|0;ny(e,4933);ry(e)|0;iy(e)|0;return}function ny(e,t){e=e|0;t=t|0;var n=0;n=Ry()|0;o[e>>2]=n;Ny(n,t);cD(o[e>>2]|0);return}function ry(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,Dy()|0);return e|0}function iy(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,oy()|0);return e|0}function oy(){var e=0;if(!(r[7920]|0)){uy(10452);Fe(58,10452,b|0)|0;e=7920;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10452)|0))uy(10452);return 10452}function uy(e){e=e|0;sy(e);s_(e,1);return}function ay(e){e=e|0;ly(e+24|0);return}function ly(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function sy(e){e=e|0;var t=0;t=Za()|0;nl(e,5,1,t,hy()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function cy(e,t,n){e=e|0;t=+t;n=+n;fy(e,t,n);return}function fy(e,t,n){e=e|0;t=+t;n=+n;var r=0,i=0,o=0,u=0,a=0;r=h;h=h+32|0;o=r+8|0;a=r+17|0;i=r;u=r+16|0;$l(a,t);c[o>>3]=+Xl(a,t);$l(u,n);c[i>>3]=+Xl(u,n);dy(e,o,i);h=r;return}function dy(e,t,n){e=e|0;t=t|0;n=n|0;py(e+8|0,+c[t>>3],+c[n>>3]);r[e+24>>0]=1;return}function py(e,t,n){e=e|0;t=+t;n=+n;c[e>>3]=t;c[e+8>>3]=n;return}function hy(){return 1472}function my(e,t){e=+e;t=+t;return vy(e,t)|0}function vy(e,t){e=+e;t=+t;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+16|0;a=r+4|0;l=r+8|0;s=r;i=jE(8)|0;n=i;u=YS(16)|0;$l(a,e);e=+Xl(a,e);$l(l,t);py(u,e,+Xl(l,t));l=n+4|0;o[l>>2]=u;u=YS(8)|0;l=o[l>>2]|0;o[s>>2]=0;o[a>>2]=o[s>>2];by(u,l,a);o[i>>2]=u;h=r;return n|0}function by(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1452;o[n+12>>2]=t;o[e+4>>2]=n;return}function gy(e){e=e|0;WS(e);$S(e);return}function _y(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function yy(e){e=e|0;$S(e);return}function Dy(){var e=0;if(!(r[7928]|0)){wy(10488);Fe(59,10488,b|0)|0;e=7928;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10488)|0))wy(10488);return 10488}function wy(e){e=e|0;Ty(e);s_(e,60);return}function Ey(e){e=e|0;Cy(e+24|0);return}function Cy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ty(e){e=e|0;var t=0;t=Za()|0;nl(e,5,6,t,Ay()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ky(e){e=e|0;Sy(e);return}function Sy(e){e=e|0;My(e);return}function My(e){e=e|0;xy(e+8|0);r[e+24>>0]=1;return}function xy(e){e=e|0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;o[e+12>>2]=0;return}function Ay(){return 1492}function Py(){return Oy()|0}function Oy(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;r=YS(16)|0;xy(r);u=e+4|0;o[u>>2]=r;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];by(r,u,i);o[n>>2]=r;h=t;return e|0}function Ry(){var e=0;if(!(r[7936]|0)){jy(10524);Fe(25,10524,b|0)|0;e=7936;o[e>>2]=1;o[e+4>>2]=0}return 10524}function Ny(e,t){e=e|0;t=t|0;o[e>>2]=Iy()|0;o[e+4>>2]=Fy()|0;o[e+12>>2]=t;o[e+8>>2]=By()|0;o[e+32>>2]=7;return}function Iy(){return 11700}function Fy(){return 1484}function By(){return R_()|0}function Ly(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){Uy(n);$S(n)}}else if(t|0)$S(t);return}function Uy(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function jy(e){e=e|0;xl(e);return}function Wy(e,t,n){e=e|0;t=t|0;n=n|0;e=Oa(t)|0;t=zy(n)|0;n=qy(n,0)|0;MD(e,t,n,Hy()|0,0);return}function zy(e){e=e|0;return e|0}function qy(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=Hy()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){Qy(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{Zy(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function Hy(){var e=0,t=0;if(!(r[7944]|0)){Gy(10568);Fe(61,10568,b|0)|0;t=7944;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10568)|0)){e=10568;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));Gy(10568)}return 10568}function Gy(e){e=e|0;Ky(e);return}function Vy(e){e=e|0;Yy(e+24|0);return}function Yy(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function Ky(e){e=e|0;var t=0;t=Za()|0;nl(e,1,17,t,Kc()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function $y(e){e=e|0;return Jy(o[(Xy(e)|0)>>2]|0)|0}function Xy(e){e=e|0;return(o[(Hy()|0)+24>>2]|0)+(e<<3)|0}function Jy(e){e=e|0;return Qc(Sx[e&7]()|0)|0}function Qy(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function Zy(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=eD(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;tD(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;Qy(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;nD(e,i);rD(i);h=l;return}}function eD(e){e=e|0;return 536870911}function tD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function nD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function rD(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function iD(){oD();return}function oD(){uD(10604);return}function uD(e){e=e|0;aD(e,4955);return}function aD(e,t){e=e|0;t=t|0;var n=0;n=lD()|0;o[e>>2]=n;sD(n,t);cD(o[e>>2]|0);return}function lD(){var e=0;if(!(r[7952]|0)){yD(10612);Fe(25,10612,b|0)|0;e=7952;o[e>>2]=1;o[e+4>>2]=0}return 10612}function sD(e,t){e=e|0;t=t|0;o[e>>2]=mD()|0;o[e+4>>2]=vD()|0;o[e+12>>2]=t;o[e+8>>2]=bD()|0;o[e+32>>2]=8;return}function cD(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;fD()|0;o[n>>2]=e;dD(10608,n);h=t;return}function fD(){if(!(r[11714]|0)){o[2652]=0;Fe(62,10608,b|0)|0;r[11714]=1}return 10608}function dD(e,t){e=e|0;t=t|0;var n=0;n=YS(8)|0;o[n+4>>2]=o[t>>2];o[n>>2]=o[e>>2];o[e>>2]=n;return}function pD(e){e=e|0;hD(e);return}function hD(e){e=e|0;var t=0,n=0;t=o[e>>2]|0;if(t|0)do{n=t;t=o[t>>2]|0;$S(n)}while((t|0)!=0);o[e>>2]=0;return}function mD(){return 11715}function vD(){return 1496}function bD(){return zv()|0}function gD(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){_D(n);$S(n)}}else if(t|0)$S(t);return}function _D(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function yD(e){e=e|0;xl(e);return}function DD(e,t){e=e|0;t=t|0;var n=0,r=0;fD()|0;n=o[2652]|0;e:do{if(n|0){while(1){r=o[n+4>>2]|0;if(r|0?(rS(wD(r)|0,e)|0)==0:0)break;n=o[n>>2]|0;if(!n)break e}ED(r,t)}}while(0);return}function wD(e){e=e|0;return o[e+12>>2]|0}function ED(e,t){e=e|0;t=t|0;var n=0;e=e+36|0;n=o[e>>2]|0;if(n|0){Qi(n);$S(n)}n=YS(4)|0;gu(n,t);o[e>>2]=n;return}function CD(){if(!(r[11716]|0)){o[2664]=0;Fe(63,10656,b|0)|0;r[11716]=1}return 10656}function TD(){var e=0;if(!(r[11717]|0)){kD();o[2665]=1504;r[11717]=1;e=1504}else e=o[2665]|0;return e|0}function kD(){if(!(r[11740]|0)){r[11718]=Wa(Wa(8,0)|0,0)|0;r[11719]=Wa(Wa(0,0)|0,0)|0;r[11720]=Wa(Wa(0,16)|0,0)|0;r[11721]=Wa(Wa(8,0)|0,0)|0;r[11722]=Wa(Wa(0,0)|0,0)|0;r[11723]=Wa(Wa(8,0)|0,0)|0;r[11724]=Wa(Wa(0,0)|0,0)|0;r[11725]=Wa(Wa(8,0)|0,0)|0;r[11726]=Wa(Wa(0,0)|0,0)|0;r[11727]=Wa(Wa(8,0)|0,0)|0;r[11728]=Wa(Wa(0,0)|0,0)|0;r[11729]=Wa(Wa(0,0)|0,32)|0;r[11730]=Wa(Wa(0,0)|0,32)|0;r[11740]=1}return}function SD(){return 1572}function MD(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;f=u+16|0;c=u+12|0;s=u+8|0;l=u+4|0;a=u;o[f>>2]=e;o[c>>2]=t;o[s>>2]=n;o[l>>2]=r;o[a>>2]=i;CD()|0;xD(10656,f,c,s,l,a);h=u;return}function xD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0;a=YS(24)|0;ja(a+4|0,o[t>>2]|0,o[n>>2]|0,o[r>>2]|0,o[i>>2]|0,o[u>>2]|0);o[a>>2]=o[e>>2];o[e>>2]=a;return}function AD(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0;y=h;h=h+32|0;v=y+20|0;b=y+8|0;g=y+4|0;_=y;t=o[t>>2]|0;if(t|0){m=v+4|0;s=v+8|0;c=b+4|0;f=b+8|0;d=b+8|0;p=v+8|0;do{a=t+4|0;l=PD(a)|0;if(l|0){i=OD(l)|0;o[v>>2]=0;o[m>>2]=0;o[s>>2]=0;r=(RD(l)|0)+1|0;ND(v,r);if(r|0)while(1){r=r+-1|0;bk(b,o[i>>2]|0);u=o[m>>2]|0;if(u>>>0<(o[p>>2]|0)>>>0){o[u>>2]=o[b>>2];o[m>>2]=(o[m>>2]|0)+4}else ID(v,b);if(!r)break;else i=i+4|0}r=FD(l)|0;o[b>>2]=0;o[c>>2]=0;o[f>>2]=0;e:do{if(o[r>>2]|0){i=0;u=0;while(1){if((i|0)==(u|0))BD(b,r);else{o[i>>2]=o[r>>2];o[c>>2]=(o[c>>2]|0)+4}r=r+4|0;if(!(o[r>>2]|0))break e;i=o[c>>2]|0;u=o[d>>2]|0}}}while(0);o[g>>2]=LD(a)|0;o[_>>2]=Xa(l)|0;UD(n,e,g,_,v,b);jD(b);WD(v)}t=o[t>>2]|0}while((t|0)!=0)}h=y;return}function PD(e){e=e|0;return o[e+12>>2]|0}function OD(e){e=e|0;return o[e+12>>2]|0}function RD(e){e=e|0;return o[e+16>>2]|0}function ND(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+32|0;n=i;r=o[e>>2]|0;if((o[e+8>>2]|0)-r>>2>>>0<t>>>0){yw(n,t,(o[e+4>>2]|0)-r>>2,e+8|0);Dw(e,n);ww(n)}h=i;return}function ID(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=vw(e)|0;if(u>>>0<i>>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;yw(n,c>>2>>>0<u>>>1>>>0?s>>>0<i>>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;Dw(e,n);ww(n);h=a;return}}function FD(e){e=e|0;return o[e+8>>2]|0}function BD(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0;a=h;h=h+32|0;n=a;r=e+4|0;i=((o[r>>2]|0)-(o[e>>2]|0)>>2)+1|0;u=pw(e)|0;if(u>>>0<i>>>0)jS(e);else{l=o[e>>2]|0;c=(o[e+8>>2]|0)-l|0;s=c>>1;bw(n,c>>2>>>0<u>>>1>>>0?s>>>0<i>>>0?i:s:u,(o[r>>2]|0)-l>>2,e+8|0);u=n+8|0;o[o[u>>2]>>2]=o[t>>2];o[u>>2]=(o[u>>2]|0)+4;gw(e,n);_w(n);h=a;return}}function LD(e){e=e|0;return o[e>>2]|0}function UD(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;zD(e,t,n,r,i,o);return}function jD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function WD(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-4-r|0)>>>2)<<2);$S(n)}return}function zD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+48|0;f=a+40|0;l=a+32|0;d=a+24|0;s=a+12|0;c=a;Ek(l);e=wu(e)|0;o[d>>2]=o[t>>2];n=o[n>>2]|0;r=o[r>>2]|0;qD(s,i);HD(c,u);o[f>>2]=o[d>>2];GD(e,f,n,r,s,c);jD(c);WD(s);Tk(l);h=a;return}function qD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){hw(e,r);mw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function HD(e,t){e=e|0;t=t|0;var n=0,r=0;o[e>>2]=0;o[e+4>>2]=0;o[e+8>>2]=0;n=t+4|0;r=(o[n>>2]|0)-(o[t>>2]|0)>>2;if(r|0){fw(e,r);dw(e,o[t>>2]|0,o[n>>2]|0,r)}return}function GD(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0,d=0;a=h;h=h+32|0;f=a+28|0;d=a+24|0;l=a+12|0;s=a;c=Tu(VD()|0)|0;o[d>>2]=o[t>>2];o[f>>2]=o[d>>2];t=YD(f)|0;n=KD(n)|0;r=$D(r)|0;o[l>>2]=o[i>>2];f=i+4|0;o[l+4>>2]=o[f>>2];d=i+8|0;o[l+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[i>>2]=0;i=XD(l)|0;o[s>>2]=o[u>>2];f=u+4|0;o[s+4>>2]=o[f>>2];d=u+8|0;o[s+8>>2]=o[d>>2];o[d>>2]=0;o[f>>2]=0;o[u>>2]=0;Ae(0,c|0,e|0,t|0,n|0,r|0,i|0,JD(s)|0)|0;jD(s);WD(l);h=a;return}function VD(){var e=0;if(!(r[7968]|0)){sw(10708);e=7968;o[e>>2]=1;o[e+4>>2]=0}return 10708}function YD(e){e=e|0;return tw(e)|0}function KD(e){e=e|0;return ZD(e)|0}function $D(e){e=e|0;return Qc(e)|0}function XD(e){e=e|0;return ew(e)|0}function JD(e){e=e|0;return QD(e)|0}function QD(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=ZD(o[(o[e>>2]|0)+(t<<2)>>2]|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function ZD(e){e=e|0;return e|0}function ew(e){e=e|0;var t=0,n=0,r=0;r=(o[e+4>>2]|0)-(o[e>>2]|0)|0;n=r>>2;r=jE(r+4|0)|0;o[r>>2]=n;if(n|0){t=0;do{o[r+4+(t<<2)>>2]=tw((o[e>>2]|0)+(t<<2)|0)|0;t=t+1|0}while((t|0)!=(n|0))}return r|0}function tw(e){e=e|0;var t=0,n=0,r=0,i=0;i=h;h=h+32|0;t=i+12|0;n=i;r=al(nw()|0)|0;if(!r)e=rw(e)|0;else{ll(t,r);sl(n,t);yk(e,n);e=fl(t)|0}h=i;return e|0}function nw(){var e=0;if(!(r[7960]|0)){lw(10664);Fe(25,10664,b|0)|0;e=7960;o[e>>2]=1;o[e+4>>2]=0}return 10664}function rw(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;o[l>>2]=o[e>>2];u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function iw(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1656;o[n+12>>2]=t;o[e+4>>2]=n;return}function ow(e){e=e|0;WS(e);$S(e);return}function uw(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function aw(e){e=e|0;$S(e);return}function lw(e){e=e|0;xl(e);return}function sw(e){e=e|0;Bu(e,cw()|0,5);return}function cw(){return 1676}function fw(e,t){e=e|0;t=t|0;var n=0;if((pw(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function dw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function pw(e){e=e|0;return 1073741823}function hw(e,t){e=e|0;t=t|0;var n=0;if((vw(e)|0)>>>0<t>>>0)jS(e);if(t>>>0>1073741823)Ke();else{n=YS(t<<2)|0;o[e+4>>2]=n;o[e>>2]=n;o[e+8>>2]=n+(t<<2);return}}function mw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=e+4|0;e=n-t|0;if((e|0)>0){iM(o[r>>2]|0,t|0,e|0)|0;o[r>>2]=(o[r>>2]|0)+(e>>>2<<2)}return}function vw(e){e=e|0;return 1073741823}function bw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function gw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function _w(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function yw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>1073741823)Ke();else{i=YS(t<<2)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<2)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<2);return}function Dw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>2)<<2)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function ww(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-4-t|0)>>>2)<<2);e=o[e>>2]|0;if(e|0)$S(e);return}function Ew(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0;b=h;h=h+32|0;f=b+20|0;d=b+12|0;c=b+16|0;p=b+4|0;m=b;v=b+8|0;l=TD()|0;u=o[l>>2]|0;a=o[u>>2]|0;if(a|0){s=o[l+8>>2]|0;l=o[l+4>>2]|0;while(1){bk(f,a);Cw(e,f,l,s);u=u+4|0;a=o[u>>2]|0;if(!a)break;else{s=s+1|0;l=l+1|0}}}u=SD()|0;a=o[u>>2]|0;if(a|0)do{bk(f,a);o[d>>2]=o[u+4>>2];Tw(t,f,d);u=u+8|0;a=o[u>>2]|0}while((a|0)!=0);u=o[(fD()|0)>>2]|0;if(u|0)do{t=o[u+4>>2]|0;bk(f,o[(kw(t)|0)>>2]|0);o[d>>2]=wD(t)|0;Sw(n,f,d);u=o[u>>2]|0}while((u|0)!=0);bk(c,0);u=CD()|0;o[f>>2]=o[c>>2];AD(f,u,i);u=o[(fD()|0)>>2]|0;if(u|0){e=f+4|0;t=f+8|0;n=f+8|0;do{s=o[u+4>>2]|0;bk(d,o[(kw(s)|0)>>2]|0);xw(p,Mw(s)|0);a=o[p>>2]|0;if(a|0){o[f>>2]=0;o[e>>2]=0;o[t>>2]=0;do{bk(m,o[(kw(o[a+4>>2]|0)|0)>>2]|0);l=o[e>>2]|0;if(l>>>0<(o[n>>2]|0)>>>0){o[l>>2]=o[m>>2];o[e>>2]=(o[e>>2]|0)+4}else ID(f,m);a=o[a>>2]|0}while((a|0)!=0);Aw(r,d,f);WD(f)}o[v>>2]=o[d>>2];c=Pw(s)|0;o[f>>2]=o[v>>2];AD(f,c,i);kl(p);u=o[u>>2]|0}while((u|0)!=0)}h=b;return}function Cw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Gw(e,t,n,r);return}function Tw(e,t,n){e=e|0;t=t|0;n=n|0;Hw(e,t,n);return}function kw(e){e=e|0;return e|0}function Sw(e,t,n){e=e|0;t=t|0;n=n|0;Uw(e,t,n);return}function Mw(e){e=e|0;return e+16|0}function xw(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;u=h;h=h+16|0;i=u+8|0;n=u;o[e>>2]=0;r=o[t>>2]|0;o[i>>2]=r;o[n>>2]=e;n=Bw(n)|0;if(r|0){r=YS(12)|0;a=(Lw(i)|0)+4|0;e=o[a+4>>2]|0;t=r+4|0;o[t>>2]=o[a>>2];o[t+4>>2]=e;t=o[o[i>>2]>>2]|0;o[i>>2]=t;if(!t)e=r;else{t=r;while(1){e=YS(12)|0;s=(Lw(i)|0)+4|0;l=o[s+4>>2]|0;a=e+4|0;o[a>>2]=o[s>>2];o[a+4>>2]=l;o[t>>2]=e;a=o[o[i>>2]>>2]|0;o[i>>2]=a;if(!a)break;else t=e}}o[e>>2]=o[n>>2];o[n>>2]=r}h=u;return}function Aw(e,t,n){e=e|0;t=t|0;n=n|0;Ow(e,t,n);return}function Pw(e){e=e|0;return e+24|0}function Ow(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+24|0;i=r+16|0;l=r+12|0;u=r;Ek(i);e=wu(e)|0;o[l>>2]=o[t>>2];qD(u,n);o[a>>2]=o[l>>2];Rw(e,a,u);WD(u);Tk(i);h=r;return}function Rw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0;r=h;h=h+32|0;a=r+16|0;l=r+12|0;i=r;u=Tu(Nw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;o[i>>2]=o[n>>2];a=n+4|0;o[i+4>>2]=o[a>>2];l=n+8|0;o[i+8>>2]=o[l>>2];o[l>>2]=0;o[a>>2]=0;o[n>>2]=0;ke(0,u|0,e|0,t|0,XD(i)|0)|0;WD(i);h=r;return}function Nw(){var e=0;if(!(r[7976]|0)){Iw(10720);e=7976;o[e>>2]=1;o[e+4>>2]=0}return 10720}function Iw(e){e=e|0;Bu(e,Fw()|0,2);return}function Fw(){return 1732}function Bw(e){e=e|0;return o[e>>2]|0}function Lw(e){e=e|0;return o[e>>2]|0}function Uw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function jw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+16|0;u=r+4|0;a=r;i=Tu(Ww()|0)|0;o[a>>2]=o[t>>2];o[u>>2]=o[a>>2];t=YD(u)|0;ke(0,i|0,e|0,t|0,KD(n)|0)|0;h=r;return}function Ww(){var e=0;if(!(r[7984]|0)){zw(10732);e=7984;o[e>>2]=1;o[e+4>>2]=0}return 10732}function zw(e){e=e|0;Bu(e,qw()|0,2);return}function qw(){return 1744}function Hw(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0;r=h;h=h+32|0;u=r+16|0;i=r+8|0;a=r;Ek(i);e=wu(e)|0;o[a>>2]=o[t>>2];n=o[n>>2]|0;o[u>>2]=o[a>>2];jw(e,u,n);Tk(i);h=r;return}function Gw(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);e=wu(e)|0;o[s>>2]=o[t>>2];n=r[n>>0]|0;i=r[i>>0]|0;o[l>>2]=o[s>>2];Vw(e,l,n,i);Tk(a);h=u;return}function Vw(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;a=i+4|0;l=i;u=Tu(Yw()|0)|0;o[l>>2]=o[t>>2];o[a>>2]=o[l>>2];t=YD(a)|0;n=Kw(n)|0;nt(0,u|0,e|0,t|0,n|0,Kw(r)|0)|0;h=i;return}function Yw(){var e=0;if(!(r[7992]|0)){Xw(10744);e=7992;o[e>>2]=1;o[e+4>>2]=0}return 10744}function Kw(e){e=e|0;return $w(e)|0}function $w(e){e=e|0;return e&255|0}function Xw(e){e=e|0;Bu(e,Jw()|0,3);return}function Jw(){return 1756}function Qw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;m=h;h=h+32|0;s=m+8|0;c=m+4|0;f=m+20|0;d=m;Hs(e,0);i=_k(t)|0;o[s>>2]=0;p=s+4|0;o[p>>2]=0;o[s+8>>2]=0;switch(i<<24>>24){case 0:{r[f>>0]=0;Zw(c,n,f);eE(e,c)|0;Zi(c);break}case 8:{p=gk(t)|0;r[f>>0]=8;bk(d,o[p+4>>2]|0);tE(c,n,f,d,p+8|0);eE(e,c)|0;Zi(c);break}case 9:{a=gk(t)|0;t=o[a+4>>2]|0;if(t|0){l=s+8|0;u=a+12|0;while(1){t=t+-1|0;bk(c,o[u>>2]|0);i=o[p>>2]|0;if(i>>>0<(o[l>>2]|0)>>>0){o[i>>2]=o[c>>2];o[p>>2]=(o[p>>2]|0)+4}else ID(s,c);if(!t)break;else u=u+4|0}}r[f>>0]=9;bk(d,o[a+8>>2]|0);nE(c,n,f,d,s);eE(e,c)|0;Zi(c);break}default:{p=gk(t)|0;r[f>>0]=i;bk(d,o[p+4>>2]|0);rE(c,n,f,d);eE(e,c)|0;Zi(c)}}WD(s);h=m;return}function Zw(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;i=h;h=h+16|0;o=i;Ek(o);t=wu(t)|0;bE(e,t,r[n>>0]|0);Tk(o);h=i;return}function eE(e,t){e=e|0;t=t|0;var n=0;n=o[e>>2]|0;if(n|0)rt(n|0);o[e>>2]=o[t>>2];o[t>>2]=0;return e|0}function tE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0;a=h;h=h+32|0;s=a+16|0;l=a+8|0;c=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[c>>2]=o[i>>2];u=o[u>>2]|0;o[s>>2]=o[c>>2];pE(e,t,n,s,u);Tk(l);h=a;return}function nE(e,t,n,i,u){e=e|0;t=t|0;n=n|0;i=i|0;u=u|0;var a=0,l=0,s=0,c=0,f=0;a=h;h=h+32|0;c=a+24|0;l=a+16|0;f=a+12|0;s=a;Ek(l);t=wu(t)|0;n=r[n>>0]|0;o[f>>2]=o[i>>2];qD(s,u);o[c>>2]=o[f>>2];sE(e,t,n,c,s);WD(s);Tk(l);h=a;return}function rE(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+32|0;l=u+16|0;a=u+8|0;s=u;Ek(a);t=wu(t)|0;n=r[n>>0]|0;o[s>>2]=o[i>>2];o[l>>2]=o[s>>2];iE(e,t,n,l);Tk(a);h=u;return}function iE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0,a=0,l=0;i=h;h=h+16|0;u=i+4|0;l=i;a=Tu(oE()|0)|0;n=Kw(n)|0;o[l>>2]=o[r>>2];o[u>>2]=o[l>>2];uE(e,ke(0,a|0,t|0,n|0,YD(u)|0)|0);h=i;return}function oE(){var e=0;if(!(r[8e3]|0)){aE(10756);e=8e3;o[e>>2]=1;o[e+4>>2]=0}return 10756}function uE(e,t){e=e|0;t=t|0;Hs(e,t);return}function aE(e){e=e|0;Bu(e,lE()|0,2);return}function lE(){return 1772}function sE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0;u=h;h=h+32|0;s=u+16|0;c=u+12|0;a=u;l=Tu(cE()|0)|0;n=Kw(n)|0;o[c>>2]=o[r>>2];o[s>>2]=o[c>>2];r=YD(s)|0;o[a>>2]=o[i>>2];s=i+4|0;o[a+4>>2]=o[s>>2];c=i+8|0;o[a+8>>2]=o[c>>2];o[c>>2]=0;o[s>>2]=0;o[i>>2]=0;uE(e,nt(0,l|0,t|0,n|0,r|0,XD(a)|0)|0);WD(a);h=u;return}function cE(){var e=0;if(!(r[8008]|0)){fE(10768);e=8008;o[e>>2]=1;o[e+4>>2]=0}return 10768}function fE(e){e=e|0;Bu(e,dE()|0,3);return}function dE(){return 1784}function pE(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0;u=h;h=h+16|0;l=u+4|0;s=u;a=Tu(hE()|0)|0;n=Kw(n)|0;o[s>>2]=o[r>>2];o[l>>2]=o[s>>2];r=YD(l)|0;uE(e,nt(0,a|0,t|0,n|0,r|0,$D(i)|0)|0);h=u;return}function hE(){var e=0;if(!(r[8016]|0)){mE(10780);e=8016;o[e>>2]=1;o[e+4>>2]=0}return 10780}function mE(e){e=e|0;Bu(e,vE()|0,3);return}function vE(){return 1800}function bE(e,t,n){e=e|0;t=t|0;n=n|0;var r=0;r=Tu(gE()|0)|0;uE(e,it(0,r|0,t|0,Kw(n)|0)|0);return}function gE(){var e=0;if(!(r[8024]|0)){_E(10792);e=8024;o[e>>2]=1;o[e+4>>2]=0}return 10792}function _E(e){e=e|0;Bu(e,yE()|0,1);return}function yE(){return 1816}function DE(){wE();EE();CE();return}function wE(){o[2702]=KS(65536)|0;return}function EE(){YE(10856);return}function CE(){TE(10816);return}function TE(e){e=e|0;kE(e,5044);SE(e)|0;return}function kE(e,t){e=e|0;t=t|0;var n=0;n=nw()|0;o[e>>2]=n;WE(n,t);cD(o[e>>2]|0);return}function SE(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,ME()|0);return e|0}function ME(){var e=0;if(!(r[8032]|0)){xE(10820);Fe(64,10820,b|0)|0;e=8032;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(10820)|0))xE(10820);return 10820}function xE(e){e=e|0;OE(e);s_(e,25);return}function AE(e){e=e|0;PE(e+24|0);return}function PE(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function OE(e){e=e|0;var t=0;t=Za()|0;nl(e,5,18,t,BE()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function RE(e,t){e=e|0;t=t|0;NE(e,t);return}function NE(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;n=h;h=h+16|0;r=n;i=n+4|0;cc(i,t);o[r>>2]=fc(i,t)|0;IE(e,r);h=n;return}function IE(e,t){e=e|0;t=t|0;FE(e+4|0,o[t>>2]|0);r[e+8>>0]=1;return}function FE(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function BE(){return 1824}function LE(e){e=e|0;return UE(e)|0}function UE(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0;n=h;h=h+16|0;i=n+4|0;a=n;r=jE(8)|0;t=r;l=YS(4)|0;cc(i,e);FE(l,fc(i,e)|0);u=t+4|0;o[u>>2]=l;e=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];iw(e,u,i);o[r>>2]=e;h=n;return t|0}function jE(e){e=e|0;var t=0,n=0;e=e+7&-8;if(e>>>0<=32768?(t=o[2701]|0,e>>>0<=(65536-t|0)>>>0):0){n=(o[2702]|0)+t|0;o[2701]=t+e;e=n}else{e=KS(e+8|0)|0;o[e>>2]=o[2703];o[2703]=e;e=e+8|0}return e|0}function WE(e,t){e=e|0;t=t|0;o[e>>2]=zE()|0;o[e+4>>2]=qE()|0;o[e+12>>2]=t;o[e+8>>2]=HE()|0;o[e+32>>2]=9;return}function zE(){return 11744}function qE(){return 1832}function HE(){return R_()|0}function GE(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){VE(n);$S(n)}}else if(t|0)$S(t);return}function VE(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function YE(e){e=e|0;KE(e,5052);$E(e)|0;XE(e,5058,26)|0;JE(e,5069,1)|0;QE(e,5077,10)|0;ZE(e,5087,19)|0;tC(e,5094,27)|0;return}function KE(e,t){e=e|0;t=t|0;var n=0;n=sk()|0;o[e>>2]=n;ck(n,t);cD(o[e>>2]|0);return}function $E(e){e=e|0;var t=0;t=o[e>>2]|0;r_(t,KT()|0);return e|0}function XE(e,t,n){e=e|0;t=t|0;n=n|0;ST(e,Oa(t)|0,n,0);return e|0}function JE(e,t,n){e=e|0;t=t|0;n=n|0;sT(e,Oa(t)|0,n,0);return e|0}function QE(e,t,n){e=e|0;t=t|0;n=n|0;LC(e,Oa(t)|0,n,0);return e|0}function ZE(e,t,n){e=e|0;t=t|0;n=n|0;yC(e,Oa(t)|0,n,0);return e|0}function eC(e,t){e=e|0;t=t|0;var n=0,r=0;e:while(1){n=o[2703]|0;while(1){if((n|0)==(t|0))break e;r=o[n>>2]|0;o[2703]=r;if(!n)n=r;else break}$S(n)}o[2701]=e;return}function tC(e,t,n){e=e|0;t=t|0;n=n|0;nC(e,Oa(t)|0,n,0);return e|0}function nC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=rC()|0;e=iC(n)|0;Ba(u,t,i,e,oC(n,r)|0,r);return}function rC(){var e=0,t=0;if(!(r[8040]|0)){dC(10860);Fe(65,10860,b|0)|0;t=8040;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10860)|0)){e=10860;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));dC(10860)}return 10860}function iC(e){e=e|0;return e|0}function oC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=rC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){uC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{aC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function uC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function aC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=lC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;sC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;uC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;cC(e,i);fC(i);h=l;return}}function lC(e){e=e|0;return 536870911}function sC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function cC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function fC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function dC(e){e=e|0;mC(e);return}function pC(e){e=e|0;hC(e+24|0);return}function hC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function mC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,vC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function vC(){return 1840}function bC(e,t,n){e=e|0;t=t|0;n=n|0;_C(o[(gC(e)|0)>>2]|0,t,n);return}function gC(e){e=e|0;return(o[(rC()|0)+24>>2]|0)+(e<<3)|0}function _C(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+1|0;i=r;cc(o,t);t=fc(o,t)|0;cc(i,n);n=fc(i,n)|0;mx[e&31](t,n);h=r;return}function yC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=DC()|0;e=wC(n)|0;Ba(u,t,i,e,EC(n,r)|0,r);return}function DC(){var e=0,t=0;if(!(r[8048]|0)){AC(10896);Fe(66,10896,b|0)|0;t=8048;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10896)|0)){e=10896;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));AC(10896)}return 10896}function wC(e){e=e|0;return e|0}function EC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=DC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){CC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{TC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function CC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function TC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=kC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;SC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;CC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;MC(e,i);xC(i);h=l;return}}function kC(e){e=e|0;return 536870911}function SC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function MC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function xC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function AC(e){e=e|0;RC(e);return}function PC(e){e=e|0;OC(e+24|0);return}function OC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function RC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,11,t,NC()|0,1);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function NC(){return 1852}function IC(e,t){e=e|0;t=t|0;return BC(o[(FC(e)|0)>>2]|0,t)|0}function FC(e){e=e|0;return(o[(DC()|0)+24>>2]|0)+(e<<3)|0}function BC(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;cc(r,t);t=fc(r,t)|0;t=Qc(vx[e&31](t)|0)|0;h=n;return t|0}function LC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=UC()|0;e=jC(n)|0;Ba(u,t,i,e,WC(n,r)|0,r);return}function UC(){var e=0,t=0;if(!(r[8056]|0)){KC(10932);Fe(67,10932,b|0)|0;t=8056;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10932)|0)){e=10932;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));KC(10932)}return 10932}function jC(e){e=e|0;return e|0}function WC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=UC()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){zC(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{qC(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function zC(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function qC(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=HC(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;GC(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;zC(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;VC(e,i);YC(i);h=l;return}}function HC(e){e=e|0;return 536870911}function GC(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function VC(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function YC(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function KC(e){e=e|0;JC(e);return}function $C(e){e=e|0;XC(e+24|0);return}function XC(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function JC(e){e=e|0;var t=0;t=Za()|0;nl(e,1,7,t,QC()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function QC(){return 1860}function ZC(e,t,n){e=e|0;t=t|0;n=n|0;return tT(o[(eT(e)|0)>>2]|0,t,n)|0}function eT(e){e=e|0;return(o[(UC()|0)+24>>2]|0)+(e<<3)|0}function tT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0;r=h;h=h+32|0;a=r+12|0;u=r+8|0;l=r;s=r+16|0;i=r+4|0;nT(s,t);rT(l,s,t);js(i,n);n=Ws(i,n)|0;o[a>>2]=o[l>>2];Px[e&15](u,a,n);n=iT(u)|0;Zi(u);zs(i);h=r;return n|0}function nT(e,t){e=e|0;t=t|0;return}function rT(e,t,n){e=e|0;t=t|0;n=n|0;oT(e,n);return}function iT(e){e=e|0;return wu(e)|0}function oT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0;i=h;h=h+16|0;n=i;r=t;if(!(r&1))o[e>>2]=o[t>>2];else{uT(n,0);Le(r|0,n|0)|0;aT(e,n);lT(n)}h=i;return}function uT(e,t){e=e|0;t=t|0;Ou(e,t);o[e+4>>2]=0;r[e+8>>0]=0;return}function aT(e,t){e=e|0;t=t|0;o[e>>2]=o[t+4>>2];return}function lT(e){e=e|0;r[e+8>>0]=0;return}function sT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=cT()|0;e=fT(n)|0;Ba(u,t,i,e,dT(n,r)|0,r);return}function cT(){var e=0,t=0;if(!(r[8064]|0)){_T(10968);Fe(68,10968,b|0)|0;t=8064;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(10968)|0)){e=10968;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));_T(10968)}return 10968}function fT(e){e=e|0;return e|0}function dT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=cT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){pT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{hT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function pT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function hT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=mT(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;vT(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;pT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;bT(e,i);gT(i);h=l;return}}function mT(e){e=e|0;return 536870911}function vT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function bT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function gT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function _T(e){e=e|0;wT(e);return}function yT(e){e=e|0;DT(e+24|0);return}function DT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function wT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,1,t,ET()|0,5);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ET(){return 1872}function CT(e,t,n,r,i,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;u=u|0;kT(o[(TT(e)|0)>>2]|0,t,n,r,i,u);return}function TT(e){e=e|0;return(o[(cT()|0)+24>>2]|0)+(e<<3)|0}function kT(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;var u=0,a=0,l=0,s=0,c=0,f=0;u=h;h=h+32|0;a=u+16|0;l=u+12|0;s=u+8|0;c=u+4|0;f=u;js(a,t);t=Ws(a,t)|0;js(l,n);n=Ws(l,n)|0;js(s,r);r=Ws(s,r)|0;js(c,i);i=Ws(c,i)|0;js(f,o);o=Ws(f,o)|0;cx[e&1](t,n,r,i,o);zs(f);zs(c);zs(s);zs(l);zs(a);h=u;return}function ST(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=o[e>>2]|0;i=MT()|0;e=xT(n)|0;Ba(u,t,i,e,AT(n,r)|0,r);return}function MT(){var e=0,t=0;if(!(r[8072]|0)){BT(11004);Fe(69,11004,b|0)|0;t=8072;o[t>>2]=1;o[t+4>>2]=0}if(!(Xa(11004)|0)){e=11004;t=e+36|0;do{o[e>>2]=0;e=e+4|0}while((e|0)<(t|0));BT(11004)}return 11004}function xT(e){e=e|0;return e|0}function AT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0,l=0,s=0;l=h;h=h+16|0;i=l;u=l+4|0;o[i>>2]=e;s=MT()|0;a=s+24|0;t=Wa(t,4)|0;o[u>>2]=t;n=s+28|0;r=o[n>>2]|0;if(r>>>0<(o[s+32>>2]|0)>>>0){PT(r,e,t);t=(o[n>>2]|0)+8|0;o[n>>2]=t}else{OT(a,i,u);t=o[n>>2]|0}h=l;return(t-(o[a>>2]|0)>>3)+-1|0}function PT(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;o[e+4>>2]=n;return}function OT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0;l=h;h=h+32|0;i=l;u=e+4|0;a=((o[u>>2]|0)-(o[e>>2]|0)>>3)+1|0;r=RT(e)|0;if(r>>>0<a>>>0)jS(e);else{s=o[e>>2]|0;f=(o[e+8>>2]|0)-s|0;c=f>>2;NT(i,f>>3>>>0<r>>>1>>>0?c>>>0<a>>>0?a:c:r,(o[u>>2]|0)-s>>3,e+8|0);a=i+8|0;PT(o[a>>2]|0,o[t>>2]|0,o[n>>2]|0);o[a>>2]=(o[a>>2]|0)+8;IT(e,i);FT(i);h=l;return}}function RT(e){e=e|0;return 536870911}function NT(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0;o[e+12>>2]=0;o[e+16>>2]=r;do{if(t){if(t>>>0>536870911)Ke();else{i=YS(t<<3)|0;break}}else i=0}while(0);o[e>>2]=i;r=i+(n<<3)|0;o[e+8>>2]=r;o[e+4>>2]=r;o[e+12>>2]=i+(t<<3);return}function IT(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,u=0,a=0;r=o[e>>2]|0;a=e+4|0;u=t+4|0;i=(o[a>>2]|0)-r|0;n=(o[u>>2]|0)+(0-(i>>3)<<3)|0;o[u>>2]=n;if((i|0)>0){iM(n|0,r|0,i|0)|0;r=u;n=o[u>>2]|0}else r=u;u=o[e>>2]|0;o[e>>2]=n;o[r>>2]=u;u=t+8|0;i=o[a>>2]|0;o[a>>2]=o[u>>2];o[u>>2]=i;u=e+8|0;a=t+12|0;e=o[u>>2]|0;o[u>>2]=o[a>>2];o[a>>2]=e;o[t>>2]=o[r>>2];return}function FT(e){e=e|0;var t=0,n=0,r=0;t=o[e+4>>2]|0;n=e+8|0;r=o[n>>2]|0;if((r|0)!=(t|0))o[n>>2]=r+(~((r+-8-t|0)>>>3)<<3);e=o[e>>2]|0;if(e|0)$S(e);return}function BT(e){e=e|0;jT(e);return}function LT(e){e=e|0;UT(e+24|0);return}function UT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function jT(e){e=e|0;var t=0;t=Za()|0;nl(e,1,12,t,WT()|0,2);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function WT(){return 1896}function zT(e,t,n){e=e|0;t=t|0;n=n|0;HT(o[(qT(e)|0)>>2]|0,t,n);return}function qT(e){e=e|0;return(o[(MT()|0)+24>>2]|0)+(e<<3)|0}function HT(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,o=0;r=h;h=h+16|0;o=r+4|0;i=r;GT(o,t);t=VT(o,t)|0;js(i,n);n=Ws(i,n)|0;mx[e&31](t,n);zs(i);h=r;return}function GT(e,t){e=e|0;t=t|0;return}function VT(e,t){e=e|0;t=t|0;return YT(t)|0}function YT(e){e=e|0;return e|0}function KT(){var e=0;if(!(r[8080]|0)){$T(11040);Fe(70,11040,b|0)|0;e=8080;o[e>>2]=1;o[e+4>>2]=0}if(!(Xa(11040)|0))$T(11040);return 11040}function $T(e){e=e|0;QT(e);s_(e,71);return}function XT(e){e=e|0;JT(e+24|0);return}function JT(e){e=e|0;var t=0,n=0,r=0;n=o[e>>2]|0;r=n;if(n|0){e=e+4|0;t=o[e>>2]|0;if((t|0)!=(n|0))o[e>>2]=t+(~((t+-8-r|0)>>>3)<<3);$S(n)}return}function QT(e){e=e|0;var t=0;t=Za()|0;nl(e,5,7,t,nk()|0,0);o[e+24>>2]=0;o[e+28>>2]=0;o[e+32>>2]=0;return}function ZT(e){e=e|0;ek(e);return}function ek(e){e=e|0;tk(e);return}function tk(e){e=e|0;r[e+8>>0]=1;return}function nk(){return 1936}function rk(){return ik()|0}function ik(){var e=0,t=0,n=0,r=0,i=0,u=0,a=0;t=h;h=h+16|0;i=t+4|0;a=t;n=jE(8)|0;e=n;u=e+4|0;o[u>>2]=YS(1)|0;r=YS(8)|0;u=o[u>>2]|0;o[a>>2]=0;o[i>>2]=o[a>>2];ok(r,u,i);o[n>>2]=r;h=t;return e|0}function ok(e,t,n){e=e|0;t=t|0;n=n|0;o[e>>2]=t;n=YS(16)|0;o[n+4>>2]=0;o[n+8>>2]=0;o[n>>2]=1916;o[n+12>>2]=t;o[e+4>>2]=n;return}function uk(e){e=e|0;WS(e);$S(e);return}function ak(e){e=e|0;e=o[e+12>>2]|0;if(e|0)$S(e);return}function lk(e){e=e|0;$S(e);return}function sk(){var e=0;if(!(r[8088]|0)){vk(11076);Fe(25,11076,b|0)|0;e=8088;o[e>>2]=1;o[e+4>>2]=0}return 11076}function ck(e,t){e=e|0;t=t|0;o[e>>2]=fk()|0;o[e+4>>2]=dk()|0;o[e+12>>2]=t;o[e+8>>2]=pk()|0;o[e+32>>2]=10;return}function fk(){return 11745}function dk(){return 1940}function pk(){return zv()|0}function hk(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;if((jv(r,896)|0)==512){if(n|0){mk(n);$S(n)}}else if(t|0)$S(t);return}function mk(e){e=e|0;e=o[e+4>>2]|0;if(e|0)GS(e);return}function vk(e){e=e|0;xl(e);return}function bk(e,t){e=e|0;t=t|0;o[e>>2]=t;return}function gk(e){e=e|0;return o[e>>2]|0}function _k(e){e=e|0;return r[o[e>>2]>>0]|0}function yk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;o[r>>2]=o[e>>2];Dk(t,r)|0;h=n;return}function Dk(e,t){e=e|0;t=t|0;var n=0;n=wk(o[e>>2]|0,t)|0;t=e+4|0;o[(o[t>>2]|0)+8>>2]=n;return o[(o[t>>2]|0)+8>>2]|0}function wk(e,t){e=e|0;t=t|0;var n=0,r=0;n=h;h=h+16|0;r=n;Ek(r);e=wu(e)|0;t=Ck(e,o[t>>2]|0)|0;Tk(r);h=n;return t|0}function Ek(e){e=e|0;o[e>>2]=o[2701];o[e+4>>2]=o[2703];return}function Ck(e,t){e=e|0;t=t|0;var n=0;n=Tu(kk()|0)|0;return it(0,n|0,e|0,$D(t)|0)|0}function Tk(e){e=e|0;eC(o[e>>2]|0,o[e+4>>2]|0);return}function kk(){var e=0;if(!(r[8096]|0)){Sk(11120);e=8096;o[e>>2]=1;o[e+4>>2]=0}return 11120}function Sk(e){e=e|0;Bu(e,Mk()|0,1);return}function Mk(){return 1948}function xk(){Ak();return}function Ak(){var e=0,t=0,n=0,i=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0;g=h;h=h+16|0;p=g+4|0;m=g;Re(65536,10804,o[2702]|0,10812);n=TD()|0;t=o[n>>2]|0;e=o[t>>2]|0;if(e|0){i=o[n+8>>2]|0;n=o[n+4>>2]|0;while(1){We(e|0,u[n>>0]|0|0,r[i>>0]|0);t=t+4|0;e=o[t>>2]|0;if(!e)break;else{i=i+1|0;n=n+1|0}}}e=SD()|0;t=o[e>>2]|0;if(t|0)do{ze(t|0,o[e+4>>2]|0);e=e+8|0;t=o[e>>2]|0}while((t|0)!=0);ze(Pk()|0,5167);d=fD()|0;e=o[d>>2]|0;e:do{if(e|0){do{Ok(o[e+4>>2]|0);e=o[e>>2]|0}while((e|0)!=0);e=o[d>>2]|0;if(e|0){f=d;do{while(1){a=e;e=o[e>>2]|0;a=o[a+4>>2]|0;if(!(Rk(a)|0))break;o[m>>2]=f;o[p>>2]=o[m>>2];Nk(d,p)|0;if(!e)break e}Ik(a);f=o[f>>2]|0;t=Fk(a)|0;l=Xe()|0;s=h;h=h+((1*(t<<2)|0)+15&-16)|0;c=h;h=h+((1*(t<<2)|0)+15&-16)|0;t=o[(Mw(a)|0)>>2]|0;if(t|0){n=s;i=c;while(1){o[n>>2]=o[(kw(o[t+4>>2]|0)|0)>>2];o[i>>2]=o[t+8>>2];t=o[t>>2]|0;if(!t)break;else{n=n+4|0;i=i+4|0}}}_=kw(a)|0;t=Bk(a)|0;n=Fk(a)|0;i=Lk(a)|0;Ve(_|0,t|0,s|0,c|0,n|0,i|0,wD(a)|0);Ie(l|0)}while((e|0)!=0)}}}while(0);e=o[(CD()|0)>>2]|0;if(e|0)do{_=e+4|0;d=PD(_)|0;a=FD(d)|0;l=OD(d)|0;s=(RD(d)|0)+1|0;c=Uk(d)|0;f=jk(_)|0;d=Xa(d)|0;p=LD(_)|0;m=Wk(_)|0;He(0,a|0,l|0,s|0,c|0,f|0,d|0,p|0,m|0,zk(_)|0);e=o[e>>2]|0}while((e|0)!=0);e=o[(fD()|0)>>2]|0;e:do{if(e|0){t:while(1){t=o[e+4>>2]|0;if(t|0?(v=o[(kw(t)|0)>>2]|0,b=o[(Pw(t)|0)>>2]|0,b|0):0){n=b;do{t=n+4|0;i=PD(t)|0;n:do{if(i|0)switch(Xa(i)|0){case 0:break t;case 4:case 3:case 2:{c=FD(i)|0;f=OD(i)|0;d=(RD(i)|0)+1|0;p=Uk(i)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,c|0,f|0,d|0,p|0,0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 1:{s=FD(i)|0;c=OD(i)|0;f=(RD(i)|0)+1|0;d=Uk(i)|0;p=jk(t)|0;m=Xa(i)|0;_=LD(t)|0;He(v|0,s|0,c|0,f|0,d|0,p|0,m|0,_|0,Wk(t)|0,zk(t)|0);break n}case 5:{d=FD(i)|0;p=OD(i)|0;m=(RD(i)|0)+1|0;_=Uk(i)|0;He(v|0,d|0,p|0,m|0,_|0,qk(i)|0,Xa(i)|0,0,0,0);break n}default:break n}}while(0);n=o[n>>2]|0}while((n|0)!=0)}e=o[e>>2]|0;if(!e)break e}Ke()}}while(0);Ye();h=g;return}function Pk(){return 11703}function Ok(e){e=e|0;r[e+40>>0]=0;return}function Rk(e){e=e|0;return(r[e+40>>0]|0)!=0|0}function Nk(e,t){e=e|0;t=t|0;t=Hk(t)|0;e=o[t>>2]|0;o[t>>2]=o[e>>2];$S(e);return o[t>>2]|0}function Ik(e){e=e|0;r[e+40>>0]=1;return}function Fk(e){e=e|0;return o[e+20>>2]|0}function Bk(e){e=e|0;return o[e+8>>2]|0}function Lk(e){e=e|0;return o[e+32>>2]|0}function Uk(e){e=e|0;return o[e+4>>2]|0}function jk(e){e=e|0;return o[e+4>>2]|0}function Wk(e){e=e|0;return o[e+8>>2]|0}function zk(e){e=e|0;return o[e+16>>2]|0}function qk(e){e=e|0;return o[e+20>>2]|0}function Hk(e){e=e|0;return o[e>>2]|0}function Gk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0;E=h;h=h+16|0;p=E;do{if(e>>>0<245){c=e>>>0<11?16:e+11&-8;e=c>>>3;d=o[2783]|0;n=d>>>e;if(n&3|0){t=(n&1^1)+e|0;e=11172+(t<<1<<2)|0;n=e+8|0;r=o[n>>2]|0;i=r+8|0;u=o[i>>2]|0;if((e|0)==(u|0))o[2783]=d&~(1<<t);else{o[u+12>>2]=e;o[n>>2]=u}w=t<<3;o[r+4>>2]=w|3;w=r+w+4|0;o[w>>2]=o[w>>2]|1;w=i;h=E;return w|0}f=o[2785]|0;if(c>>>0>f>>>0){if(n|0){t=2<<e;t=n<<e&(t|0-t);t=(t&0-t)+-1|0;a=t>>>12&16;t=t>>>a;n=t>>>5&8;t=t>>>n;i=t>>>2&4;t=t>>>i;e=t>>>1&2;t=t>>>e;r=t>>>1&1;r=(n|a|i|e|r)+(t>>>r)|0;t=11172+(r<<1<<2)|0;e=t+8|0;i=o[e>>2]|0;a=i+8|0;n=o[a>>2]|0;if((t|0)==(n|0)){e=d&~(1<<r);o[2783]=e}else{o[n+12>>2]=t;o[e>>2]=n;e=d}u=(r<<3)-c|0;o[i+4>>2]=c|3;r=i+c|0;o[r+4>>2]=u|1;o[r+u>>2]=u;if(f|0){i=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=i;o[t+12>>2]=i;o[i+8>>2]=t;o[i+12>>2]=n}o[2785]=u;o[2788]=r;w=a;h=E;return w|0}l=o[2784]|0;if(l){n=(l&0-l)+-1|0;a=n>>>12&16;n=n>>>a;u=n>>>5&8;n=n>>>u;s=n>>>2&4;n=n>>>s;r=n>>>1&2;n=n>>>r;e=n>>>1&1;e=o[11436+((u|a|s|r|e)+(n>>>e)<<2)>>2]|0;n=(o[e+4>>2]&-8)-c|0;r=o[e+16+(((o[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!r){s=e;u=n}else{do{a=(o[r+4>>2]&-8)-c|0;s=a>>>0<n>>>0;n=s?a:n;e=s?r:e;r=o[r+16+(((o[r+16>>2]|0)==0&1)<<2)>>2]|0}while((r|0)!=0);s=e;u=n}a=s+c|0;if(s>>>0<a>>>0){i=o[s+24>>2]|0;t=o[s+12>>2]|0;do{if((t|0)==(s|0)){e=s+20|0;t=o[e>>2]|0;if(!t){e=s+16|0;t=o[e>>2]|0;if(!t){n=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0;n=t}else{n=o[s+8>>2]|0;o[n+12>>2]=t;o[t+8>>2]=n;n=t}}while(0);do{if(i|0){t=o[s+28>>2]|0;e=11436+(t<<2)|0;if((s|0)==(o[e>>2]|0)){o[e>>2]=n;if(!n){o[2784]=l&~(1<<t);break}}else{o[i+16+(((o[i+16>>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=i;t=o[s+16>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}t=o[s+20>>2]|0;if(t|0){o[n+20>>2]=t;o[t+24>>2]=n}}}while(0);if(u>>>0<16){w=u+c|0;o[s+4>>2]=w|3;w=s+w+4|0;o[w>>2]=o[w>>2]|1}else{o[s+4>>2]=c|3;o[a+4>>2]=u|1;o[a+u>>2]=u;if(f|0){r=o[2788]|0;t=f>>>3;n=11172+(t<<1<<2)|0;t=1<<t;if(!(d&t)){o[2783]=d|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=r;o[t+12>>2]=r;o[r+8>>2]=t;o[r+12>>2]=n}o[2785]=u;o[2788]=a}w=s+8|0;h=E;return w|0}else d=c}else d=c}else d=c}else if(e>>>0<=4294967231){e=e+11|0;c=e&-8;s=o[2784]|0;if(s){r=0-c|0;e=e>>>8;if(e){if(c>>>0>16777215)l=31;else{d=(e+1048320|0)>>>16&8;D=e<<d;f=(D+520192|0)>>>16&4;D=D<<f;l=(D+245760|0)>>>16&2;l=14-(f|d|l)+(D<<l>>>15)|0;l=c>>>(l+7|0)&1|l<<1}}else l=0;n=o[11436+(l<<2)>>2]|0;e:do{if(!n){n=0;e=0;D=57}else{e=0;a=c<<((l|0)==31?0:25-(l>>>1)|0);u=0;while(1){i=(o[n+4>>2]&-8)-c|0;if(i>>>0<r>>>0)if(!i){e=n;r=0;i=n;D=61;break e}else{e=n;r=i}i=o[n+20>>2]|0;n=o[n+16+(a>>>31<<2)>>2]|0;u=(i|0)==0|(i|0)==(n|0)?u:i;i=(n|0)==0;if(i){n=u;D=57;break}else a=a<<((i^1)&1)}}}while(0);if((D|0)==57){if((n|0)==0&(e|0)==0){e=2<<l;e=s&(e|0-e);if(!e){d=c;break}d=(e&0-e)+-1|0;a=d>>>12&16;d=d>>>a;u=d>>>5&8;d=d>>>u;l=d>>>2&4;d=d>>>l;f=d>>>1&2;d=d>>>f;n=d>>>1&1;e=0;n=o[11436+((u|a|l|f|n)+(d>>>n)<<2)>>2]|0}if(!n){l=e;a=r}else{i=n;D=61}}if((D|0)==61)while(1){D=0;n=(o[i+4>>2]&-8)-c|0;d=n>>>0<r>>>0;n=d?n:r;e=d?i:e;i=o[i+16+(((o[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){l=e;a=n;break}else{r=n;D=61}}if((l|0)!=0?a>>>0<((o[2785]|0)-c|0)>>>0:0){u=l+c|0;if(l>>>0>=u>>>0){w=0;h=E;return w|0}i=o[l+24>>2]|0;t=o[l+12>>2]|0;do{if((t|0)==(l|0)){e=l+20|0;t=o[e>>2]|0;if(!t){e=l+16|0;t=o[e>>2]|0;if(!t){t=0;break}}while(1){n=t+20|0;r=o[n>>2]|0;if(r|0){t=r;e=n;continue}n=t+16|0;r=o[n>>2]|0;if(!r)break;else{t=r;e=n}}o[e>>2]=0}else{w=o[l+8>>2]|0;o[w+12>>2]=t;o[t+8>>2]=w}}while(0);do{if(i){e=o[l+28>>2]|0;n=11436+(e<<2)|0;if((l|0)==(o[n>>2]|0)){o[n>>2]=t;if(!t){r=s&~(1<<e);o[2784]=r;break}}else{o[i+16+(((o[i+16>>2]|0)!=(l|0)&1)<<2)>>2]=t;if(!t){r=s;break}}o[t+24>>2]=i;e=o[l+16>>2]|0;if(e|0){o[t+16>>2]=e;o[e+24>>2]=t}e=o[l+20>>2]|0;if(e){o[t+20>>2]=e;o[e+24>>2]=t;r=s}else r=s}else r=s}while(0);do{if(a>>>0>=16){o[l+4>>2]=c|3;o[u+4>>2]=a|1;o[u+a>>2]=a;t=a>>>3;if(a>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=u;o[t+12>>2]=u;o[u+8>>2]=t;o[u+12>>2]=n;break}t=a>>>8;if(t){if(a>>>0>16777215)t=31;else{D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;t=(w+245760|0)>>>16&2;t=14-(y|D|t)+(w<<t>>>15)|0;t=a>>>(t+7|0)&1|t<<1}}else t=0;n=11436+(t<<2)|0;o[u+28>>2]=t;e=u+16|0;o[e+4>>2]=0;o[e>>2]=0;e=1<<t;if(!(r&e)){o[2784]=r|e;o[n>>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}e=a<<((t|0)==31?0:25-(t>>>1)|0);n=o[n>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(a|0)){D=97;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=96;break}else{e=e<<1;n=t}}if((D|0)==96){o[r>>2]=u;o[u+24>>2]=n;o[u+12>>2]=u;o[u+8>>2]=u;break}else if((D|0)==97){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=u;o[D>>2]=u;o[u+8>>2]=w;o[u+12>>2]=n;o[u+24>>2]=0;break}}else{w=a+c|0;o[l+4>>2]=w|3;w=l+w+4|0;o[w>>2]=o[w>>2]|1}}while(0);w=l+8|0;h=E;return w|0}else d=c}else d=c}else d=-1}while(0);n=o[2785]|0;if(n>>>0>=d>>>0){t=n-d|0;e=o[2788]|0;if(t>>>0>15){w=e+d|0;o[2788]=w;o[2785]=t;o[w+4>>2]=t|1;o[w+t>>2]=t;o[e+4>>2]=d|3}else{o[2785]=0;o[2788]=0;o[e+4>>2]=n|3;w=e+n+4|0;o[w>>2]=o[w>>2]|1}w=e+8|0;h=E;return w|0}a=o[2786]|0;if(a>>>0>d>>>0){y=a-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}if(!(o[2901]|0)){o[2903]=4096;o[2902]=4096;o[2904]=-1;o[2905]=-1;o[2906]=0;o[2894]=0;e=p&-16^1431655768;o[p>>2]=e;o[2901]=e;e=4096}else e=o[2903]|0;l=d+48|0;s=d+47|0;u=e+s|0;i=0-e|0;c=u&i;if(c>>>0<=d>>>0){w=0;h=E;return w|0}e=o[2893]|0;if(e|0?(f=o[2891]|0,p=f+c|0,p>>>0<=f>>>0|p>>>0>e>>>0):0){w=0;h=E;return w|0}e:do{if(!(o[2894]&4)){n=o[2789]|0;t:do{if(n){r=11580;while(1){e=o[r>>2]|0;if(e>>>0<=n>>>0?(b=r+4|0,(e+(o[b>>2]|0)|0)>>>0>n>>>0):0)break;e=o[r+8>>2]|0;if(!e){D=118;break t}else r=e}t=u-a&i;if(t>>>0<2147483647){e=lM(t|0)|0;if((e|0)==((o[r>>2]|0)+(o[b>>2]|0)|0)){if((e|0)!=(-1|0)){a=t;u=e;D=135;break e}}else{r=e;D=126}}else t=0}else D=118}while(0);do{if((D|0)==118){n=lM(0)|0;if((n|0)!=(-1|0)?(t=n,m=o[2902]|0,v=m+-1|0,t=((v&t|0)==0?0:(v+t&0-m)-t|0)+c|0,m=o[2891]|0,v=t+m|0,t>>>0>d>>>0&t>>>0<2147483647):0){b=o[2893]|0;if(b|0?v>>>0<=m>>>0|v>>>0>b>>>0:0){t=0;break}e=lM(t|0)|0;if((e|0)==(n|0)){a=t;u=n;D=135;break e}else{r=e;D=126}}else t=0}}while(0);do{if((D|0)==126){n=0-t|0;if(!(l>>>0>t>>>0&(t>>>0<2147483647&(r|0)!=(-1|0))))if((r|0)==(-1|0)){t=0;break}else{a=t;u=r;D=135;break e}e=o[2903]|0;e=s-t+e&0-e;if(e>>>0>=2147483647){a=t;u=r;D=135;break e}if((lM(e|0)|0)==(-1|0)){lM(n|0)|0;t=0;break}else{a=e+t|0;u=r;D=135;break e}}}while(0);o[2894]=o[2894]|4;D=133}else{t=0;D=133}}while(0);if(((D|0)==133?c>>>0<2147483647:0)?(y=lM(c|0)|0,b=lM(0)|0,g=b-y|0,_=g>>>0>(d+40|0)>>>0,!((y|0)==(-1|0)|_^1|y>>>0<b>>>0&((y|0)!=(-1|0)&(b|0)!=(-1|0))^1)):0){a=_?g:t;u=y;D=135}if((D|0)==135){t=(o[2891]|0)+a|0;o[2891]=t;if(t>>>0>(o[2892]|0)>>>0)o[2892]=t;s=o[2789]|0;do{if(s){t=11580;while(1){e=o[t>>2]|0;n=t+4|0;r=o[n>>2]|0;if((u|0)==(e+r|0)){D=145;break}i=o[t+8>>2]|0;if(!i)break;else t=i}if(((D|0)==145?(o[t+12>>2]&8|0)==0:0)?s>>>0<u>>>0&s>>>0>=e>>>0:0){o[n>>2]=r+a;w=s+8|0;w=(w&7|0)==0?0:0-w&7;D=s+w|0;w=(o[2786]|0)+(a-w)|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905];break}if(u>>>0<(o[2787]|0)>>>0)o[2787]=u;n=u+a|0;t=11580;while(1){if((o[t>>2]|0)==(n|0)){D=153;break}e=o[t+8>>2]|0;if(!e)break;else t=e}if((D|0)==153?(o[t+12>>2]&8|0)==0:0){o[t>>2]=u;f=t+4|0;o[f>>2]=(o[f>>2]|0)+a;f=u+8|0;f=u+((f&7|0)==0?0:0-f&7)|0;t=n+8|0;t=n+((t&7|0)==0?0:0-t&7)|0;c=f+d|0;l=t-f-d|0;o[f+4>>2]=d|3;do{if((t|0)!=(s|0)){if((t|0)==(o[2788]|0)){w=(o[2785]|0)+l|0;o[2785]=w;o[2788]=c;o[c+4>>2]=w|1;o[c+w>>2]=w;break}e=o[t+4>>2]|0;if((e&3|0)==1){a=e&-8;r=e>>>3;e:do{if(e>>>0<256){e=o[t+8>>2]|0;n=o[t+12>>2]|0;if((n|0)==(e|0)){o[2783]=o[2783]&~(1<<r);break}else{o[e+12>>2]=n;o[n+8>>2]=e;break}}else{u=o[t+24>>2]|0;e=o[t+12>>2]|0;do{if((e|0)==(t|0)){r=t+16|0;n=r+4|0;e=o[n>>2]|0;if(!e){e=o[r>>2]|0;if(!e){e=0;break}else n=r}while(1){r=e+20|0;i=o[r>>2]|0;if(i|0){e=i;n=r;continue}r=e+16|0;i=o[r>>2]|0;if(!i)break;else{e=i;n=r}}o[n>>2]=0}else{w=o[t+8>>2]|0;o[w+12>>2]=e;o[e+8>>2]=w}}while(0);if(!u)break;n=o[t+28>>2]|0;r=11436+(n<<2)|0;do{if((t|0)!=(o[r>>2]|0)){o[u+16+(((o[u+16>>2]|0)!=(t|0)&1)<<2)>>2]=e;if(!e)break e}else{o[r>>2]=e;if(e|0)break;o[2784]=o[2784]&~(1<<n);break e}}while(0);o[e+24>>2]=u;n=t+16|0;r=o[n>>2]|0;if(r|0){o[e+16>>2]=r;o[r+24>>2]=e}n=o[n+4>>2]|0;if(!n)break;o[e+20>>2]=n;o[n+24>>2]=e}}while(0);t=t+a|0;i=a+l|0}else i=l;t=t+4|0;o[t>>2]=o[t>>2]&-2;o[c+4>>2]=i|1;o[c+i>>2]=i;t=i>>>3;if(i>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=c;o[t+12>>2]=c;o[c+8>>2]=t;o[c+12>>2]=n;break}t=i>>>8;do{if(!t)t=0;else{if(i>>>0>16777215){t=31;break}D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;t=(w+245760|0)>>>16&2;t=14-(y|D|t)+(w<<t>>>15)|0;t=i>>>(t+7|0)&1|t<<1}}while(0);r=11436+(t<<2)|0;o[c+28>>2]=t;e=c+16|0;o[e+4>>2]=0;o[e>>2]=0;e=o[2784]|0;n=1<<t;if(!(e&n)){o[2784]=e|n;o[r>>2]=c;o[c+24>>2]=r;o[c+12>>2]=c;o[c+8>>2]=c;break}e=i<<((t|0)==31?0:25-(t>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){D=194;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=193;break}else{e=e<<1;n=t}}if((D|0)==193){o[r>>2]=c;o[c+24>>2]=n;o[c+12>>2]=c;o[c+8>>2]=c;break}else if((D|0)==194){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=c;o[D>>2]=c;o[c+8>>2]=w;o[c+12>>2]=n;o[c+24>>2]=0;break}}else{w=(o[2786]|0)+l|0;o[2786]=w;o[2789]=c;o[c+4>>2]=w|1}}while(0);w=f+8|0;h=E;return w|0}t=11580;while(1){e=o[t>>2]|0;if(e>>>0<=s>>>0?(w=e+(o[t+4>>2]|0)|0,w>>>0>s>>>0):0)break;t=o[t+8>>2]|0}i=w+-47|0;e=i+8|0;e=i+((e&7|0)==0?0:0-e&7)|0;i=s+16|0;e=e>>>0<i>>>0?s:e;t=e+8|0;n=u+8|0;n=(n&7|0)==0?0:0-n&7;D=u+n|0;n=a+-40-n|0;o[2789]=D;o[2786]=n;o[D+4>>2]=n|1;o[D+n+4>>2]=40;o[2790]=o[2905];n=e+4|0;o[n>>2]=27;o[t>>2]=o[2895];o[t+4>>2]=o[2896];o[t+8>>2]=o[2897];o[t+12>>2]=o[2898];o[2895]=u;o[2896]=a;o[2898]=0;o[2897]=t;t=e+24|0;do{D=t;t=t+4|0;o[t>>2]=7}while((D+8|0)>>>0<w>>>0);if((e|0)!=(s|0)){u=e-s|0;o[n>>2]=o[n>>2]&-2;o[s+4>>2]=u|1;o[e>>2]=u;t=u>>>3;if(u>>>0<256){n=11172+(t<<1<<2)|0;e=o[2783]|0;t=1<<t;if(!(e&t)){o[2783]=e|t;t=n;e=n+8|0}else{e=n+8|0;t=o[e>>2]|0}o[e>>2]=s;o[t+12>>2]=s;o[s+8>>2]=t;o[s+12>>2]=n;break}t=u>>>8;if(t){if(u>>>0>16777215)n=31;else{D=(t+1048320|0)>>>16&8;w=t<<D;y=(w+520192|0)>>>16&4;w=w<<y;n=(w+245760|0)>>>16&2;n=14-(y|D|n)+(w<<n>>>15)|0;n=u>>>(n+7|0)&1|n<<1}}else n=0;r=11436+(n<<2)|0;o[s+28>>2]=n;o[s+20>>2]=0;o[i>>2]=0;t=o[2784]|0;e=1<<n;if(!(t&e)){o[2784]=t|e;o[r>>2]=s;o[s+24>>2]=r;o[s+12>>2]=s;o[s+8>>2]=s;break}e=u<<((n|0)==31?0:25-(n>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(u|0)){D=216;break}r=n+16+(e>>>31<<2)|0;t=o[r>>2]|0;if(!t){D=215;break}else{e=e<<1;n=t}}if((D|0)==215){o[r>>2]=s;o[s+24>>2]=n;o[s+12>>2]=s;o[s+8>>2]=s;break}else if((D|0)==216){D=n+8|0;w=o[D>>2]|0;o[w+12>>2]=s;o[D>>2]=s;o[s+8>>2]=w;o[s+12>>2]=n;o[s+24>>2]=0;break}}}else{w=o[2787]|0;if((w|0)==0|u>>>0<w>>>0)o[2787]=u;o[2895]=u;o[2896]=a;o[2898]=0;o[2792]=o[2901];o[2791]=-1;t=0;do{w=11172+(t<<1<<2)|0;o[w+12>>2]=w;o[w+8>>2]=w;t=t+1|0}while((t|0)!=32);w=u+8|0;w=(w&7|0)==0?0:0-w&7;D=u+w|0;w=a+-40-w|0;o[2789]=D;o[2786]=w;o[D+4>>2]=w|1;o[D+w+4>>2]=40;o[2790]=o[2905]}}while(0);t=o[2786]|0;if(t>>>0>d>>>0){y=t-d|0;o[2786]=y;w=o[2789]|0;D=w+d|0;o[2789]=D;o[D+4>>2]=y|1;o[w+4>>2]=d|3;w=w+8|0;h=E;return w|0}}o[(Qk()|0)>>2]=12;w=0;h=E;return w|0}function Vk(e){e=e|0;var t=0,n=0,r=0,i=0,u=0,a=0,l=0,s=0;if(!e)return;n=e+-8|0;i=o[2787]|0;e=o[e+-4>>2]|0;t=e&-8;s=n+t|0;do{if(!(e&1)){r=o[n>>2]|0;if(!(e&3))return;a=n+(0-r)|0;u=r+t|0;if(a>>>0<i>>>0)return;if((a|0)==(o[2788]|0)){e=s+4|0;t=o[e>>2]|0;if((t&3|0)!=3){l=a;t=u;break}o[2785]=u;o[e>>2]=t&-2;o[a+4>>2]=u|1;o[a+u>>2]=u;return}n=r>>>3;if(r>>>0<256){e=o[a+8>>2]|0;t=o[a+12>>2]|0;if((t|0)==(e|0)){o[2783]=o[2783]&~(1<<n);l=a;t=u;break}else{o[e+12>>2]=t;o[t+8>>2]=e;l=a;t=u;break}}i=o[a+24>>2]|0;e=o[a+12>>2]|0;do{if((e|0)==(a|0)){n=a+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){e=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0}else{l=o[a+8>>2]|0;o[l+12>>2]=e;o[e+8>>2]=l}}while(0);if(i){t=o[a+28>>2]|0;n=11436+(t<<2)|0;if((a|0)==(o[n>>2]|0)){o[n>>2]=e;if(!e){o[2784]=o[2784]&~(1<<t);l=a;t=u;break}}else{o[i+16+(((o[i+16>>2]|0)!=(a|0)&1)<<2)>>2]=e;if(!e){l=a;t=u;break}}o[e+24>>2]=i;t=a+16|0;n=o[t>>2]|0;if(n|0){o[e+16>>2]=n;o[n+24>>2]=e}t=o[t+4>>2]|0;if(t){o[e+20>>2]=t;o[t+24>>2]=e;l=a;t=u}else{l=a;t=u}}else{l=a;t=u}}else{l=n;a=n}}while(0);if(a>>>0>=s>>>0)return;e=s+4|0;r=o[e>>2]|0;if(!(r&1))return;if(!(r&2)){e=o[2788]|0;if((s|0)==(o[2789]|0)){s=(o[2786]|0)+t|0;o[2786]=s;o[2789]=l;o[l+4>>2]=s|1;if((l|0)!=(e|0))return;o[2788]=0;o[2785]=0;return}if((s|0)==(e|0)){s=(o[2785]|0)+t|0;o[2785]=s;o[2788]=a;o[l+4>>2]=s|1;o[a+s>>2]=s;return}i=(r&-8)+t|0;n=r>>>3;do{if(r>>>0<256){t=o[s+8>>2]|0;e=o[s+12>>2]|0;if((e|0)==(t|0)){o[2783]=o[2783]&~(1<<n);break}else{o[t+12>>2]=e;o[e+8>>2]=t;break}}else{u=o[s+24>>2]|0;e=o[s+12>>2]|0;do{if((e|0)==(s|0)){n=s+16|0;t=n+4|0;e=o[t>>2]|0;if(!e){e=o[n>>2]|0;if(!e){n=0;break}else t=n}while(1){n=e+20|0;r=o[n>>2]|0;if(r|0){e=r;t=n;continue}n=e+16|0;r=o[n>>2]|0;if(!r)break;else{e=r;t=n}}o[t>>2]=0;n=e}else{n=o[s+8>>2]|0;o[n+12>>2]=e;o[e+8>>2]=n;n=e}}while(0);if(u|0){e=o[s+28>>2]|0;t=11436+(e<<2)|0;if((s|0)==(o[t>>2]|0)){o[t>>2]=n;if(!n){o[2784]=o[2784]&~(1<<e);break}}else{o[u+16+(((o[u+16>>2]|0)!=(s|0)&1)<<2)>>2]=n;if(!n)break}o[n+24>>2]=u;e=s+16|0;t=o[e>>2]|0;if(t|0){o[n+16>>2]=t;o[t+24>>2]=n}e=o[e+4>>2]|0;if(e|0){o[n+20>>2]=e;o[e+24>>2]=n}}}}while(0);o[l+4>>2]=i|1;o[a+i>>2]=i;if((l|0)==(o[2788]|0)){o[2785]=i;return}}else{o[e>>2]=r&-2;o[l+4>>2]=t|1;o[a+t>>2]=t;i=t}e=i>>>3;if(i>>>0<256){n=11172+(e<<1<<2)|0;t=o[2783]|0;e=1<<e;if(!(t&e)){o[2783]=t|e;e=n;t=n+8|0}else{t=n+8|0;e=o[t>>2]|0}o[t>>2]=l;o[e+12>>2]=l;o[l+8>>2]=e;o[l+12>>2]=n;return}e=i>>>8;if(e){if(i>>>0>16777215)e=31;else{a=(e+1048320|0)>>>16&8;s=e<<a;u=(s+520192|0)>>>16&4;s=s<<u;e=(s+245760|0)>>>16&2;e=14-(u|a|e)+(s<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}}else e=0;r=11436+(e<<2)|0;o[l+28>>2]=e;o[l+20>>2]=0;o[l+16>>2]=0;t=o[2784]|0;n=1<<e;do{if(t&n){t=i<<((e|0)==31?0:25-(e>>>1)|0);n=o[r>>2]|0;while(1){if((o[n+4>>2]&-8|0)==(i|0)){e=73;break}r=n+16+(t>>>31<<2)|0;e=o[r>>2]|0;if(!e){e=72;break}else{t=t<<1;n=e}}if((e|0)==72){o[r>>2]=l;o[l+24>>2]=n;o[l+12>>2]=l;o[l+8>>2]=l;break}else if((e|0)==73){a=n+8|0;s=o[a>>2]|0;o[s+12>>2]=l;o[a>>2]=l;o[l+8>>2]=s;o[l+12>>2]=n;o[l+24>>2]=0;break}}else{o[2784]=t|n;o[r>>2]=l;o[l+24>>2]=r;o[l+12>>2]=l;o[l+8>>2]=l}}while(0);s=(o[2791]|0)+-1|0;o[2791]=s;if(!s)e=11588;else return;while(1){e=o[e>>2]|0;if(!e)break;else e=e+8|0}o[2791]=-1;return}function Yk(){return 11628}function Kk(e){e=e|0;var t=0,n=0;t=h;h=h+16|0;n=t;o[n>>2]=tS(o[e+60>>2]|0)|0;e=Jk(ut(6,n|0)|0)|0;h=t;return e|0}function $k(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0;d=h;h=h+48|0;c=d+16|0;u=d;i=d+32|0;l=e+28|0;r=o[l>>2]|0;o[i>>2]=r;s=e+20|0;r=(o[s>>2]|0)-r|0;o[i+4>>2]=r;o[i+8>>2]=t;o[i+12>>2]=n;r=r+n|0;a=e+60|0;o[u>>2]=o[a>>2];o[u+4>>2]=i;o[u+8>>2]=2;u=Jk(st(146,u|0)|0)|0;e:do{if((r|0)!=(u|0)){t=2;while(1){if((u|0)<0)break;r=r-u|0;m=o[i+4>>2]|0;p=u>>>0>m>>>0;i=p?i+8|0:i;t=(p<<31>>31)+t|0;m=u-(p?m:0)|0;o[i>>2]=(o[i>>2]|0)+m;p=i+4|0;o[p>>2]=(o[p>>2]|0)-m;o[c>>2]=o[a>>2];o[c+4>>2]=i;o[c+8>>2]=t;u=Jk(st(146,c|0)|0)|0;if((r|0)==(u|0)){f=3;break e}}o[e+16>>2]=0;o[l>>2]=0;o[s>>2]=0;o[e>>2]=o[e>>2]|32;if((t|0)==2)n=0;else n=n-(o[i+4>>2]|0)|0}else f=3}while(0);if((f|0)==3){m=o[e+44>>2]|0;o[e+16>>2]=m+(o[e+48>>2]|0);o[l>>2]=m;o[s>>2]=m}h=d;return n|0}function Xk(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0;i=h;h=h+32|0;u=i;r=i+20|0;o[u>>2]=o[e+60>>2];o[u+4>>2]=0;o[u+8>>2]=t;o[u+12>>2]=r;o[u+16>>2]=n;if((Jk(lt(140,u|0)|0)|0)<0){o[r>>2]=-1;e=-1}else e=o[r>>2]|0;h=i;return e|0}function Jk(e){e=e|0;if(e>>>0>4294963200){o[(Qk()|0)>>2]=0-e;e=-1}return e|0}function Qk(){return(Zk()|0)+64|0}function Zk(){return eS()|0}function eS(){return 2084}function tS(e){e=e|0;return e|0}function nS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0;u=h;h=h+32|0;i=u;o[e+36>>2]=1;if((o[e>>2]&64|0)==0?(o[i>>2]=o[e+60>>2],o[i+4>>2]=21523,o[i+8>>2]=u+16,Je(54,i|0)|0):0)r[e+75>>0]=-1;i=$k(e,t,n)|0;h=u;return i|0}function rS(e,t){e=e|0;t=t|0;var n=0,i=0;n=r[e>>0]|0;i=r[t>>0]|0;if(n<<24>>24==0?1:n<<24>>24!=i<<24>>24)e=i;else{do{e=e+1|0;t=t+1|0;n=r[e>>0]|0;i=r[t>>0]|0}while(!(n<<24>>24==0?1:n<<24>>24!=i<<24>>24));e=i}return(n&255)-(e&255)|0}function iS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,o=0;e:do{if(!n)e=0;else{while(1){i=r[e>>0]|0;o=r[t>>0]|0;if(i<<24>>24!=o<<24>>24)break;n=n+-1|0;if(!n){e=0;break e}else{e=e+1|0;t=t+1|0}}e=(i&255)-(o&255)|0}}while(0);return e|0}function oS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0;g=h;h=h+224|0;d=g+120|0;p=g+80|0;v=g;b=g+136|0;i=p;u=i+40|0;do{o[i>>2]=0;i=i+4|0}while((i|0)<(u|0));o[d>>2]=o[n>>2];if((uS(0,t,d,v,p)|0)<0)n=-1;else{if((o[e+76>>2]|0)>-1)m=aS(e)|0;else m=0;n=o[e>>2]|0;f=n&32;if((r[e+74>>0]|0)<1)o[e>>2]=n&-33;i=e+48|0;if(!(o[i>>2]|0)){u=e+44|0;a=o[u>>2]|0;o[u>>2]=b;l=e+28|0;o[l>>2]=b;s=e+20|0;o[s>>2]=b;o[i>>2]=80;c=e+16|0;o[c>>2]=b+80;n=uS(e,t,d,v,p)|0;if(a){_x[o[e+36>>2]&7](e,0,0)|0;n=(o[s>>2]|0)==0?-1:n;o[u>>2]=a;o[i>>2]=0;o[c>>2]=0;o[l>>2]=0;o[s>>2]=0}}else n=uS(e,t,d,v,p)|0;i=o[e>>2]|0;o[e>>2]=i|f;if(m|0)lS(e);n=(i&32|0)==0?n:-1}h=g;return n|0}function uS(e,t,n,u,a){e=e|0;t=t|0;n=n|0;u=u|0;a=a|0;var l=0,s=0,f=0,d=0,p=0,m=0,v=0,b=0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+64|0;M=R+16|0;A=R;k=R+24|0;P=R+8|0;O=R+20|0;o[M>>2]=t;E=(e|0)!=0;C=k+40|0;T=C;k=k+39|0;S=P+4|0;s=0;l=0;m=0;e:while(1){do{if((l|0)>-1)if((s|0)>(2147483647-l|0)){o[(Qk()|0)>>2]=75;l=-1;break}else{l=s+l|0;break}}while(0);s=r[t>>0]|0;if(!(s<<24>>24)){w=87;break}else f=t;t:while(1){switch(s<<24>>24){case 37:{s=f;w=9;break t}case 0:{s=f;break t}default:{}}D=f+1|0;o[M>>2]=D;s=r[D>>0]|0;f=D}t:do{if((w|0)==9)while(1){w=0;if((r[f+1>>0]|0)!=37)break t;s=s+1|0;f=f+2|0;o[M>>2]=f;if((r[f>>0]|0)==37)w=9;else break}}while(0);s=s-t|0;if(E)sS(e,t,s);if(s|0){t=f;continue}d=f+1|0;s=(r[d>>0]|0)+-48|0;if(s>>>0<10){D=(r[f+2>>0]|0)==36;y=D?s:-1;m=D?1:m;d=D?f+3|0:d}else y=-1;o[M>>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;t:do{if(f>>>0<32){p=0;v=s;while(1){s=1<<f;if(!(s&75913)){s=v;break t}p=s|p;d=d+1|0;o[M>>2]=d;s=r[d>>0]|0;f=(s<<24>>24)+-32|0;if(f>>>0>=32)break;else v=s}}else p=0}while(0);if(s<<24>>24==42){f=d+1|0;s=(r[f>>0]|0)+-48|0;if(s>>>0<10?(r[d+2>>0]|0)==36:0){o[a+(s<<2)>>2]=10;s=o[u+((r[f>>0]|0)+-48<<3)>>2]|0;m=1;d=d+3|0}else{if(m|0){l=-1;break}if(E){m=(o[n>>2]|0)+(4-1)&~(4-1);s=o[m>>2]|0;o[n>>2]=m+4;m=0;d=f}else{s=0;m=0;d=f}}o[M>>2]=d;D=(s|0)<0;s=D?0-s|0:s;p=D?p|8192:p}else{s=cS(M)|0;if((s|0)<0){l=-1;break}d=o[M>>2]|0}do{if((r[d>>0]|0)==46){if((r[d+1>>0]|0)!=42){o[M>>2]=d+1;f=cS(M)|0;d=o[M>>2]|0;break}v=d+2|0;f=(r[v>>0]|0)+-48|0;if(f>>>0<10?(r[d+3>>0]|0)==36:0){o[a+(f<<2)>>2]=10;f=o[u+((r[v>>0]|0)+-48<<3)>>2]|0;d=d+4|0;o[M>>2]=d;break}if(m|0){l=-1;break e}if(E){D=(o[n>>2]|0)+(4-1)&~(4-1);f=o[D>>2]|0;o[n>>2]=D+4}else f=0;o[M>>2]=v;d=v}else f=-1}while(0);_=0;while(1){if(((r[d>>0]|0)+-65|0)>>>0>57){l=-1;break e}D=d+1|0;o[M>>2]=D;v=r[(r[d>>0]|0)+-65+(5178+(_*58|0))>>0]|0;b=v&255;if((b+-1|0)>>>0<8){_=b;d=D}else break}if(!(v<<24>>24)){l=-1;break}g=(y|0)>-1;do{if(v<<24>>24==19){if(g){l=-1;break e}else w=49}else{if(g){o[a+(y<<2)>>2]=b;g=u+(y<<3)|0;y=o[g+4>>2]|0;w=A;o[w>>2]=o[g>>2];o[w+4>>2]=y;w=49;break}if(!E){l=0;break e}fS(A,b,n)}}while(0);if((w|0)==49?(w=0,!E):0){s=0;t=D;continue}d=r[d>>0]|0;d=(_|0)!=0&(d&15|0)==3?d&-33:d;g=p&-65537;y=(p&8192|0)==0?p:g;t:do{switch(d|0){case 110:switch((_&255)<<24>>24){case 0:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 1:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 2:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}case 3:{i[o[A>>2]>>1]=l;s=0;t=D;continue e}case 4:{r[o[A>>2]>>0]=l;s=0;t=D;continue e}case 6:{o[o[A>>2]>>2]=l;s=0;t=D;continue e}case 7:{s=o[A>>2]|0;o[s>>2]=l;o[s+4>>2]=((l|0)<0)<<31>>31;s=0;t=D;continue e}default:{s=0;t=D;continue e}}case 112:{d=120;f=f>>>0>8?f:8;t=y|8;w=61;break}case 88:case 120:{t=y;w=61;break}case 111:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;b=pS(t,d,C)|0;g=T-b|0;p=0;v=5642;f=(y&8|0)==0|(f|0)>(g|0)?f:g+1|0;g=y;w=67;break}case 105:case 100:{d=A;t=o[d>>2]|0;d=o[d+4>>2]|0;if((d|0)<0){t=ZS(0,0,t|0,d|0)|0;d=x;p=A;o[p>>2]=t;o[p+4>>2]=d;p=1;v=5642;w=66;break t}else{p=(y&2049|0)!=0&1;v=(y&2048|0)==0?(y&1|0)==0?5642:5644:5643;w=66;break t}}case 117:{d=A;p=0;v=5642;t=o[d>>2]|0;d=o[d+4>>2]|0;w=66;break}case 99:{r[k>>0]=o[A>>2];t=k;p=0;v=5642;b=C;d=1;f=g;break}case 109:{d=mS(o[(Qk()|0)>>2]|0)|0;w=71;break}case 115:{d=o[A>>2]|0;d=d|0?d:5652;w=71;break}case 67:{o[P>>2]=o[A>>2];o[S>>2]=0;o[A>>2]=P;b=-1;d=P;w=75;break}case 83:{t=o[A>>2]|0;if(!f){bS(e,32,s,0,y);t=0;w=84}else{b=f;d=t;w=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{s=_S(e,+c[A>>3],s,f,y,d)|0;t=D;continue e}default:{p=0;v=5642;b=C;d=f;f=y}}}while(0);t:do{if((w|0)==61){y=A;_=o[y>>2]|0;y=o[y+4>>2]|0;b=dS(_,y,C,d&32)|0;v=(t&8|0)==0|(_|0)==0&(y|0)==0;p=v?0:2;v=v?5642:5642+(d>>4)|0;g=t;t=_;d=y;w=67}else if((w|0)==66){b=hS(t,d,C)|0;g=y;w=67}else if((w|0)==71){w=0;y=vS(d,0,f)|0;_=(y|0)==0;t=d;p=0;v=5642;b=_?d+f|0:y;d=_?f:y-d|0;f=g}else if((w|0)==75){w=0;v=d;t=0;f=0;while(1){p=o[v>>2]|0;if(!p)break;f=gS(O,p)|0;if((f|0)<0|f>>>0>(b-t|0)>>>0)break;t=f+t|0;if(b>>>0>t>>>0)v=v+4|0;else break}if((f|0)<0){l=-1;break e}bS(e,32,s,t,y);if(!t){t=0;w=84}else{p=0;while(1){f=o[d>>2]|0;if(!f){w=84;break t}f=gS(O,f)|0;p=f+p|0;if((p|0)>(t|0)){w=84;break t}sS(e,O,f);if(p>>>0>=t>>>0){w=84;break}else d=d+4|0}}}}while(0);if((w|0)==67){w=0;d=(t|0)!=0|(d|0)!=0;y=(f|0)!=0|d;d=((d^1)&1)+(T-b)|0;t=y?b:C;b=C;d=y?(f|0)>(d|0)?f:d:f;f=(f|0)>-1?g&-65537:g}else if((w|0)==84){w=0;bS(e,32,s,t,y^8192);s=(s|0)>(t|0)?s:t;t=D;continue}_=b-t|0;g=(d|0)<(_|0)?_:d;y=g+p|0;s=(s|0)<(y|0)?y:s;bS(e,32,s,y,f);sS(e,v,p);bS(e,48,s,y,f^65536);bS(e,48,g,_,0);sS(e,t,_);bS(e,32,s,y,f^8192);t=D}e:do{if((w|0)==87)if(!e)if(!m)l=0;else{l=1;while(1){t=o[a+(l<<2)>>2]|0;if(!t)break;fS(u+(l<<3)|0,t,n);l=l+1|0;if((l|0)>=10){l=1;break e}}while(1){if(o[a+(l<<2)>>2]|0){l=-1;break e}l=l+1|0;if((l|0)>=10){l=1;break}}}}while(0);h=R;return l|0}function aS(e){e=e|0;return 0}function lS(e){e=e|0;return}function sS(e,t,n){e=e|0;t=t|0;n=n|0;if(!(o[e>>2]&32))PS(t,n,e)|0;return}function cS(e){e=e|0;var t=0,n=0,i=0;n=o[e>>2]|0;i=(r[n>>0]|0)+-48|0;if(i>>>0<10){t=0;do{t=i+(t*10|0)|0;n=n+1|0;o[e>>2]=n;i=(r[n>>0]|0)+-48|0}while(i>>>0<10)}else t=0;return t|0}function fS(e,t,n){e=e|0;t=t|0;n=n|0;var r=0,i=0,u=0.0;e:do{if(t>>>0<=20)do{switch(t|0){case 9:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;o[e>>2]=t;break e}case 10:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=((t|0)<0)<<31>>31;break e}case 11:{r=(o[n>>2]|0)+(4-1)&~(4-1);t=o[r>>2]|0;o[n>>2]=r+4;r=e;o[r>>2]=t;o[r+4>>2]=0;break e}case 12:{r=(o[n>>2]|0)+(8-1)&~(8-1);t=r;i=o[t>>2]|0;t=o[t+4>>2]|0;o[n>>2]=r+8;r=e;o[r>>2]=i;o[r+4>>2]=t;break e}case 13:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&65535)<<16>>16;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 14:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&65535;o[i+4>>2]=0;break e}case 15:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;r=(r&255)<<24>>24;i=e;o[i>>2]=r;o[i+4>>2]=((r|0)<0)<<31>>31;break e}case 16:{i=(o[n>>2]|0)+(4-1)&~(4-1);r=o[i>>2]|0;o[n>>2]=i+4;i=e;o[i>>2]=r&255;o[i+4>>2]=0;break e}case 17:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}case 18:{i=(o[n>>2]|0)+(8-1)&~(8-1);u=+c[i>>3];o[n>>2]=i+8;c[e>>3]=u;break e}default:break e}}while(0)}while(0);return}function dS(e,t,n,i){e=e|0;t=t|0;n=n|0;i=i|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=u[5694+(e&15)>>0]|0|i;e=rM(e|0,t|0,4)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function pS(e,t,n){e=e|0;t=t|0;n=n|0;if(!((e|0)==0&(t|0)==0))do{n=n+-1|0;r[n>>0]=e&7|48;e=rM(e|0,t|0,3)|0;t=x}while(!((e|0)==0&(t|0)==0));return n|0}function hS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if(t>>>0>0|(t|0)==0&e>>>0>4294967295){while(1){i=cM(e|0,t|0,10,0)|0;n=n+-1|0;r[n>>0]=i&255|48;i=e;e=aM(e|0,t|0,10,0)|0;if(!(t>>>0>9|(t|0)==9&i>>>0>4294967295))break;else t=x}t=e}else t=e;if(t)while(1){n=n+-1|0;r[n>>0]=(t>>>0)%10|0|48;if(t>>>0<10)break;else t=(t>>>0)/10|0}return n|0}function mS(e){e=e|0;return kS(e,o[(TS()|0)+188>>2]|0)|0}function vS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=t&255;i=(n|0)!=0;e:do{if(i&(e&3|0)!=0){u=t&255;while(1){if((r[e>>0]|0)==u<<24>>24){l=6;break e}e=e+1|0;n=n+-1|0;i=(n|0)!=0;if(!(i&(e&3|0)!=0)){l=5;break}}}else l=5}while(0);if((l|0)==5)if(i)l=6;else n=0;e:do{if((l|0)==6){u=t&255;if((r[e>>0]|0)!=u<<24>>24){i=H(a,16843009)|0;t:do{if(n>>>0>3)while(1){a=o[e>>2]^i;if((a&-2139062144^-2139062144)&a+-16843009|0)break;e=e+4|0;n=n+-4|0;if(n>>>0<=3){l=11;break t}}else l=11}while(0);if((l|0)==11)if(!n){n=0;break}while(1){if((r[e>>0]|0)==u<<24>>24)break e;e=e+1|0;n=n+-1|0;if(!n){n=0;break}}}}}while(0);return(n|0?e:0)|0}function bS(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var o=0,u=0;u=h;h=h+256|0;o=u;if((n|0)>(r|0)&(i&73728|0)==0){i=n-r|0;tM(o|0,t|0,(i>>>0<256?i:256)|0)|0;if(i>>>0>255){t=n-r|0;do{sS(e,o,256);i=i+-256|0}while(i>>>0>255);i=t&255}sS(e,o,i)}h=u;return}function gS(e,t){e=e|0;t=t|0;if(!e)e=0;else e=ES(e,t,0)|0;return e|0}function _S(e,t,n,i,a,l){e=e|0;t=+t;n=n|0;i=i|0;a=a|0;l=l|0;var s=0,c=0,f=0,d=0,p=0,m=0,v=0,b=0.0,g=0,_=0,y=0,D=0,w=0,E=0,C=0,T=0,k=0,S=0,M=0,A=0,P=0,O=0,R=0;R=h;h=h+560|0;f=R+8|0;y=R;O=R+524|0;P=O;d=R+512|0;o[y>>2]=0;A=d+12|0;yS(t)|0;if((x|0)<0){t=-t;S=1;k=5659}else{S=(a&2049|0)!=0&1;k=(a&2048|0)==0?(a&1|0)==0?5660:5665:5662}yS(t)|0;M=x&2146435072;do{if(M>>>0<2146435072|(M|0)==2146435072&0<0){b=+DS(t,y)*2.0;s=b!=0.0;if(s)o[y>>2]=(o[y>>2]|0)+-1;w=l|32;if((w|0)==97){g=l&32;v=(g|0)==0?k:k+9|0;m=S|2;s=12-i|0;do{if(!(i>>>0>11|(s|0)==0)){t=8.0;do{s=s+-1|0;t=t*16.0}while((s|0)!=0);if((r[v>>0]|0)==45){t=-(t+(-b-t));break}else{t=b+t-t;break}}else t=b}while(0);c=o[y>>2]|0;s=(c|0)<0?0-c|0:c;s=hS(s,((s|0)<0)<<31>>31,A)|0;if((s|0)==(A|0)){s=d+11|0;r[s>>0]=48}r[s+-1>>0]=(c>>31&2)+43;p=s+-2|0;r[p>>0]=l+15;d=(i|0)<1;f=(a&8|0)==0;s=O;do{M=~~t;c=s+1|0;r[s>>0]=u[5694+M>>0]|g;t=(t-+(M|0))*16.0;if((c-P|0)==1?!(f&(d&t==0.0)):0){r[c>>0]=46;s=s+2|0}else s=c}while(t!=0.0);M=s-P|0;P=A-p|0;A=(i|0)!=0&(M+-2|0)<(i|0)?i+2|0:M;s=P+m+A|0;bS(e,32,n,s,a);sS(e,v,m);bS(e,48,n,s,a^65536);sS(e,O,M);bS(e,48,A-M|0,0,0);sS(e,p,P);bS(e,32,n,s,a^8192);break}c=(i|0)<0?6:i;if(s){s=(o[y>>2]|0)+-28|0;o[y>>2]=s;t=b*268435456.0}else{t=b;s=o[y>>2]|0}M=(s|0)<0?f:f+288|0;f=M;do{C=~~t>>>0;o[f>>2]=C;f=f+4|0;t=(t-+(C>>>0))*1.0e9}while(t!=0.0);if((s|0)>0){d=M;m=f;while(1){p=(s|0)<29?s:29;s=m+-4|0;if(s>>>0>=d>>>0){f=0;do{E=nM(o[s>>2]|0,0,p|0)|0;E=eM(E|0,x|0,f|0,0)|0;C=x;D=cM(E|0,C|0,1e9,0)|0;o[s>>2]=D;f=aM(E|0,C|0,1e9,0)|0;s=s+-4|0}while(s>>>0>=d>>>0);if(f){d=d+-4|0;o[d>>2]=f}}f=m;while(1){if(f>>>0<=d>>>0)break;s=f+-4|0;if(!(o[s>>2]|0))f=s;else break}s=(o[y>>2]|0)-p|0;o[y>>2]=s;if((s|0)>0)m=f;else break}}else d=M;if((s|0)<0){i=((c+25|0)/9|0)+1|0;_=(w|0)==102;do{g=0-s|0;g=(g|0)<9?g:9;if(d>>>0<f>>>0){p=(1<<g)+-1|0;m=1e9>>>g;v=0;s=d;do{C=o[s>>2]|0;o[s>>2]=(C>>>g)+v;v=H(C&p,m)|0;s=s+4|0}while(s>>>0<f>>>0);s=(o[d>>2]|0)==0?d+4|0:d;if(!v){d=s;s=f}else{o[f>>2]=v;d=s;s=f+4|0}}else{d=(o[d>>2]|0)==0?d+4|0:d;s=f}f=_?M:d;f=(s-f>>2|0)>(i|0)?f+(i<<2)|0:s;s=(o[y>>2]|0)+g|0;o[y>>2]=s}while((s|0)<0);s=d;i=f}else{s=d;i=f}C=M;if(s>>>0<i>>>0){f=(C-s>>2)*9|0;p=o[s>>2]|0;if(p>>>0>=10){d=10;do{d=d*10|0;f=f+1|0}while(p>>>0>=d>>>0)}}else f=0;_=(w|0)==103;D=(c|0)!=0;d=c-((w|0)!=102?f:0)+((D&_)<<31>>31)|0;if((d|0)<(((i-C>>2)*9|0)+-9|0)){d=d+9216|0;g=M+4+(((d|0)/9|0)+-1024<<2)|0;d=((d|0)%9|0)+1|0;if((d|0)<9){p=10;do{p=p*10|0;d=d+1|0}while((d|0)!=9)}else p=10;m=o[g>>2]|0;v=(m>>>0)%(p>>>0)|0;d=(g+4|0)==(i|0);if(!(d&(v|0)==0)){b=(((m>>>0)/(p>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;E=(p|0)/2|0;t=v>>>0<E>>>0?.5:d&(v|0)==(E|0)?1.0:1.5;if(S){E=(r[k>>0]|0)==45;t=E?-t:t;b=E?-b:b}d=m-v|0;o[g>>2]=d;if(b+t!=b){E=d+p|0;o[g>>2]=E;if(E>>>0>999999999){f=g;while(1){d=f+-4|0;o[f>>2]=0;if(d>>>0<s>>>0){s=s+-4|0;o[s>>2]=0}E=(o[d>>2]|0)+1|0;o[d>>2]=E;if(E>>>0>999999999)f=d;else break}}else d=g;f=(C-s>>2)*9|0;m=o[s>>2]|0;if(m>>>0>=10){p=10;do{p=p*10|0;f=f+1|0}while(m>>>0>=p>>>0)}}else d=g}else d=g;d=d+4|0;d=i>>>0>d>>>0?d:i;E=s}else{d=i;E=s}w=d;while(1){if(w>>>0<=E>>>0){y=0;break}s=w+-4|0;if(!(o[s>>2]|0))w=s;else{y=1;break}}i=0-f|0;do{if(_){s=((D^1)&1)+c|0;if((s|0)>(f|0)&(f|0)>-5){p=l+-1|0;c=s+-1-f|0}else{p=l+-2|0;c=s+-1|0}s=a&8;if(!s){if(y?(T=o[w+-4>>2]|0,(T|0)!=0):0){if(!((T>>>0)%10|0)){d=0;s=10;do{s=s*10|0;d=d+1|0}while(!((T>>>0)%(s>>>0)|0|0))}else d=0}else d=9;s=((w-C>>2)*9|0)+-9|0;if((p|32|0)==102){g=s-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}else{g=s+f-d|0;g=(g|0)>0?g:0;c=(c|0)<(g|0)?c:g;g=0;break}}else g=s}else{p=l;g=a&8}}while(0);_=c|g;m=(_|0)!=0&1;v=(p|32|0)==102;if(v){D=0;s=(f|0)>0?f:0}else{s=(f|0)<0?i:f;s=hS(s,((s|0)<0)<<31>>31,A)|0;d=A;if((d-s|0)<2)do{s=s+-1|0;r[s>>0]=48}while((d-s|0)<2);r[s+-1>>0]=(f>>31&2)+43;s=s+-2|0;r[s>>0]=p;D=s;s=d-s|0}s=S+1+c+m+s|0;bS(e,32,n,s,a);sS(e,k,S);bS(e,48,n,s,a^65536);if(v){p=E>>>0>M>>>0?M:E;g=O+9|0;m=g;v=O+8|0;d=p;do{f=hS(o[d>>2]|0,0,g)|0;if((d|0)==(p|0)){if((f|0)==(g|0)){r[v>>0]=48;f=v}}else if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,m-f|0);d=d+4|0}while(d>>>0<=M>>>0);if(_|0)sS(e,5710,1);if(d>>>0<w>>>0&(c|0)>0)while(1){f=hS(o[d>>2]|0,0,g)|0;if(f>>>0>O>>>0){tM(O|0,48,f-P|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}sS(e,f,(c|0)<9?c:9);d=d+4|0;f=c+-9|0;if(!(d>>>0<w>>>0&(c|0)>9)){c=f;break}else c=f}bS(e,48,c+9|0,9,0)}else{_=y?w:E+4|0;if((c|0)>-1){y=O+9|0;g=(g|0)==0;i=y;m=0-P|0;v=O+8|0;p=E;do{f=hS(o[p>>2]|0,0,y)|0;if((f|0)==(y|0)){r[v>>0]=48;f=v}do{if((p|0)==(E|0)){d=f+1|0;sS(e,f,1);if(g&(c|0)<1){f=d;break}sS(e,5710,1);f=d}else{if(f>>>0<=O>>>0)break;tM(O|0,48,f+m|0)|0;do{f=f+-1|0}while(f>>>0>O>>>0)}}while(0);P=i-f|0;sS(e,f,(c|0)>(P|0)?P:c);c=c-P|0;p=p+4|0}while(p>>>0<_>>>0&(c|0)>-1)}bS(e,48,c+18|0,18,0);sS(e,D,A-D|0)}bS(e,32,n,s,a^8192)}else{O=(l&32|0)!=0;s=S+3|0;bS(e,32,n,s,a&-65537);sS(e,k,S);sS(e,t!=t|0.0!=0.0?O?5686:5690:O?5678:5682,3);bS(e,32,n,s,a^8192)}}while(0);h=R;return((s|0)<(n|0)?n:s)|0}function yS(e){e=+e;var t=0;c[d>>3]=e;t=o[d>>2]|0;x=o[d+4>>2]|0;return t|0}function DS(e,t){e=+e;t=t|0;return+ +wS(e,t)}function wS(e,t){e=+e;t=t|0;var n=0,r=0,i=0;c[d>>3]=e;n=o[d>>2]|0;r=o[d+4>>2]|0;i=rM(n|0,r|0,52)|0;switch(i&2047){case 0:{if(e!=0.0){e=+wS(e*18446744073709551616.0,t);n=(o[t>>2]|0)+-64|0}else n=0;o[t>>2]=n;break}case 2047:break;default:{o[t>>2]=(i&2047)+-1022;o[d>>2]=n;o[d+4>>2]=r&-2146435073|1071644672;e=+c[d>>3]}}return+e}function ES(e,t,n){e=e|0;t=t|0;n=n|0;do{if(e){if(t>>>0<128){r[e>>0]=t;e=1;break}if(!(o[o[(CS()|0)+188>>2]>>2]|0))if((t&-128|0)==57216){r[e>>0]=t;e=1;break}else{o[(Qk()|0)>>2]=84;e=-1;break}if(t>>>0<2048){r[e>>0]=t>>>6|192;r[e+1>>0]=t&63|128;e=2;break}if(t>>>0<55296|(t&-8192|0)==57344){r[e>>0]=t>>>12|224;r[e+1>>0]=t>>>6&63|128;r[e+2>>0]=t&63|128;e=3;break}if((t+-65536|0)>>>0<1048576){r[e>>0]=t>>>18|240;r[e+1>>0]=t>>>12&63|128;r[e+2>>0]=t>>>6&63|128;r[e+3>>0]=t&63|128;e=4;break}else{o[(Qk()|0)>>2]=84;e=-1;break}}else e=1}while(0);return e|0}function CS(){return eS()|0}function TS(){return eS()|0}function kS(e,t){e=e|0;t=t|0;var n=0,i=0;i=0;while(1){if((u[5712+i>>0]|0)==(e|0)){e=2;break}n=i+1|0;if((n|0)==87){n=5800;i=87;e=5;break}else i=n}if((e|0)==2)if(!i)n=5800;else{n=5800;e=5}if((e|0)==5)while(1){do{e=n;n=n+1|0}while((r[e>>0]|0)!=0);i=i+-1|0;if(!i)break;else e=5}return SS(n,o[t+20>>2]|0)|0}function SS(e,t){e=e|0;t=t|0;return MS(e,t)|0}function MS(e,t){e=e|0;t=t|0;if(!t)t=0;else t=xS(o[t>>2]|0,o[t+4>>2]|0,e)|0;return(t|0?t:e)|0}function xS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0;h=(o[e>>2]|0)+1794895138|0;a=AS(o[e+8>>2]|0,h)|0;i=AS(o[e+12>>2]|0,h)|0;u=AS(o[e+16>>2]|0,h)|0;e:do{if((a>>>0<t>>>2>>>0?(p=t-(a<<2)|0,i>>>0<p>>>0&u>>>0<p>>>0):0)?((u|i)&3|0)==0:0){p=i>>>2;d=u>>>2;f=0;while(1){s=a>>>1;c=f+s|0;l=c<<1;u=l+p|0;i=AS(o[e+(u<<2)>>2]|0,h)|0;u=AS(o[e+(u+1<<2)>>2]|0,h)|0;if(!(u>>>0<t>>>0&i>>>0<(t-u|0)>>>0)){i=0;break e}if(r[e+(u+i)>>0]|0){i=0;break e}i=rS(n,e+u|0)|0;if(!i)break;i=(i|0)<0;if((a|0)==1){i=0;break e}else{f=i?f:c;a=i?s:a-s|0}}i=l+d|0;u=AS(o[e+(i<<2)>>2]|0,h)|0;i=AS(o[e+(i+1<<2)>>2]|0,h)|0;if(i>>>0<t>>>0&u>>>0<(t-i|0)>>>0)i=(r[e+(i+u)>>0]|0)==0?e+i|0:0;else i=0}else i=0}while(0);return i|0}function AS(e,t){e=e|0;t=t|0;var n=0;n=fM(e|0)|0;return((t|0)==0?e:n)|0}function PS(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0,s=0;i=n+16|0;u=o[i>>2]|0;if(!u){if(!(OS(n)|0)){u=o[i>>2]|0;a=5}else i=0}else a=5;e:do{if((a|0)==5){s=n+20|0;l=o[s>>2]|0;i=l;if((u-l|0)>>>0<t>>>0){i=_x[o[n+36>>2]&7](n,e,t)|0;break}t:do{if((r[n+75>>0]|0)>-1){l=t;while(1){if(!l){a=0;u=e;break t}u=l+-1|0;if((r[e+u>>0]|0)==10)break;else l=u}i=_x[o[n+36>>2]&7](n,e,l)|0;if(i>>>0<l>>>0)break e;a=l;u=e+l|0;t=t-l|0;i=o[s>>2]|0}else{a=0;u=e}}while(0);iM(i|0,u|0,t|0)|0;o[s>>2]=(o[s>>2]|0)+t;i=a+t|0}}while(0);return i|0}function OS(e){e=e|0;var t=0,n=0;t=e+74|0;n=r[t>>0]|0;r[t>>0]=n+255|n;t=o[e>>2]|0;if(!(t&8)){o[e+8>>2]=0;o[e+4>>2]=0;n=o[e+44>>2]|0;o[e+28>>2]=n;o[e+20>>2]=n;o[e+16>>2]=n+(o[e+48>>2]|0);e=0}else{o[e>>2]=t|32;e=-1}return e|0}function RS(e,t){e=K(e);t=K(t);var n=0,r=0;n=NS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=NS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?t:e;break}else{e=e<t?t:e;break}}else e=t}while(0);return K(e)}function NS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function IS(e,t){e=K(e);t=K(t);var n=0,r=0;n=FS(e)|0;do{if((n&2147483647)>>>0<=2139095040){r=FS(t)|0;if((r&2147483647)>>>0<=2139095040)if((r^n|0)<0){e=(n|0)<0?e:t;break}else{e=e<t?e:t;break}}else e=t}while(0);return K(e)}function FS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function BS(e,t){e=K(e);t=K(t);var n=0,r=0,i=0,u=0,a=0,l=0,c=0,f=0;u=(s[d>>2]=e,o[d>>2]|0);l=(s[d>>2]=t,o[d>>2]|0);n=u>>>23&255;a=l>>>23&255;c=u&-2147483648;i=l<<1;e:do{if((i|0)!=0?!((n|0)==255|((LS(t)|0)&2147483647)>>>0>2139095040):0){r=u<<1;if(r>>>0<=i>>>0){t=K(e*K(0.0));return K((r|0)==(i|0)?t:e)}if(!n){n=u<<9;if((n|0)>-1){r=n;n=0;do{n=n+-1|0;r=r<<1}while((r|0)>-1)}else n=0;r=u<<1-n}else r=u&8388607|8388608;if(!a){u=l<<9;if((u|0)>-1){i=0;do{i=i+-1|0;u=u<<1}while((u|0)>-1)}else i=0;a=i;l=l<<1-i}else l=l&8388607|8388608;i=r-l|0;u=(i|0)>-1;t:do{if((n|0)>(a|0)){while(1){if(u)if(!i)break;else r=i;r=r<<1;n=n+-1|0;i=r-l|0;u=(i|0)>-1;if((n|0)<=(a|0))break t}t=K(e*K(0.0));break e}}while(0);if(u)if(!i){t=K(e*K(0.0));break}else r=i;if(r>>>0<8388608)do{r=r<<1;n=n+-1|0}while(r>>>0<8388608);if((n|0)>0)n=r+-8388608|n<<23;else n=r>>>(1-n|0);t=(o[d>>2]=n|c,K(s[d>>2]))}else f=3}while(0);if((f|0)==3){t=K(e*t);t=K(t/t)}return K(t)}function LS(e){e=K(e);return(s[d>>2]=e,o[d>>2]|0)|0}function US(e,t){e=e|0;t=t|0;return oS(o[582]|0,e,t)|0}function jS(e){e=e|0;Ke()}function WS(e){e=e|0;return}function zS(e,t){e=e|0;t=t|0;return 0}function qS(e){e=e|0;if((HS(e+4|0)|0)==-1){hx[o[(o[e>>2]|0)+8>>2]&127](e);e=1}else e=0;return e|0}function HS(e){e=e|0;var t=0;t=o[e>>2]|0;o[e>>2]=t+-1;return t+-1|0}function GS(e){e=e|0;if(qS(e)|0)VS(e);return}function VS(e){e=e|0;var t=0;t=e+8|0;if(!((o[t>>2]|0)!=0?(HS(t)|0)!=-1:0))hx[o[(o[e>>2]|0)+16>>2]&127](e);return}function YS(e){e=e|0;var t=0;t=(e|0)==0?1:e;while(1){e=Gk(t)|0;if(e|0)break;e=JS()|0;if(!e){e=0;break}Ox[e&0]()}return e|0}function KS(e){e=e|0;return YS(e)|0}function $S(e){e=e|0;Vk(e);return}function XS(e){e=e|0;if((r[e+11>>0]|0)<0)$S(o[e>>2]|0);return}function JS(){var e=0;e=o[2923]|0;o[2923]=e+0;return e|0}function QS(){}function ZS(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;r=t-r-(n>>>0>e>>>0|0)>>>0;return(x=r,e-n>>>0|0)|0}function eM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;n=e+n>>>0;return(x=t+r+(n>>>0<e>>>0|0)>>>0,n|0)|0}function tM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0,l=0;a=e+n|0;t=t&255;if((n|0)>=67){while(e&3){r[e>>0]=t;e=e+1|0}i=a&-4|0;u=i-64|0;l=t|t<<8|t<<16|t<<24;while((e|0)<=(u|0)){o[e>>2]=l;o[e+4>>2]=l;o[e+8>>2]=l;o[e+12>>2]=l;o[e+16>>2]=l;o[e+20>>2]=l;o[e+24>>2]=l;o[e+28>>2]=l;o[e+32>>2]=l;o[e+36>>2]=l;o[e+40>>2]=l;o[e+44>>2]=l;o[e+48>>2]=l;o[e+52>>2]=l;o[e+56>>2]=l;o[e+60>>2]=l;e=e+64|0}while((e|0)<(i|0)){o[e>>2]=l;e=e+4|0}}while((e|0)<(a|0)){r[e>>0]=t;e=e+1|0}return a-n|0}function nM(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t<<n|(e&(1<<n)-1<<32-n)>>>32-n;return e<<n}x=e<<n-32;return 0}function rM(e,t,n){e=e|0;t=t|0;n=n|0;if((n|0)<32){x=t>>>n;return e>>>n|(t&(1<<n)-1)<<32-n}x=0;return t>>>n-32|0}function iM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0,u=0,a=0;if((n|0)>=8192)return qe(e|0,t|0,n|0)|0;a=e|0;u=e+n|0;if((e&3)==(t&3)){while(e&3){if(!n)return a|0;r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0;n=n-1|0}n=u&-4|0;i=n-64|0;while((e|0)<=(i|0)){o[e>>2]=o[t>>2];o[e+4>>2]=o[t+4>>2];o[e+8>>2]=o[t+8>>2];o[e+12>>2]=o[t+12>>2];o[e+16>>2]=o[t+16>>2];o[e+20>>2]=o[t+20>>2];o[e+24>>2]=o[t+24>>2];o[e+28>>2]=o[t+28>>2];o[e+32>>2]=o[t+32>>2];o[e+36>>2]=o[t+36>>2];o[e+40>>2]=o[t+40>>2];o[e+44>>2]=o[t+44>>2];o[e+48>>2]=o[t+48>>2];o[e+52>>2]=o[t+52>>2];o[e+56>>2]=o[t+56>>2];o[e+60>>2]=o[t+60>>2];e=e+64|0;t=t+64|0}while((e|0)<(n|0)){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0}}else{n=u-4|0;while((e|0)<(n|0)){r[e>>0]=r[t>>0]|0;r[e+1>>0]=r[t+1>>0]|0;r[e+2>>0]=r[t+2>>0]|0;r[e+3>>0]=r[t+3>>0]|0;e=e+4|0;t=t+4|0}}while((e|0)<(u|0)){r[e>>0]=r[t>>0]|0;e=e+1|0;t=t+1|0}return a|0}function oM(e){e=e|0;var t=0;t=r[v+(e&255)>>0]|0;if((t|0)<8)return t|0;t=r[v+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=r[v+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(r[v+(e>>>24)>>0]|0)+24|0}function uM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;var u=0,a=0,l=0,s=0,c=0,f=0,d=0,p=0,h=0,m=0;f=e;s=t;c=s;a=n;p=r;l=p;if(!c){u=(i|0)!=0;if(!l){if(u){o[i>>2]=(f>>>0)%(a>>>0);o[i+4>>2]=0}p=0;i=(f>>>0)/(a>>>0)>>>0;return(x=p,i)|0}else{if(!u){p=0;i=0;return(x=p,i)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;p=0;i=0;return(x=p,i)|0}}u=(l|0)==0;do{if(a){if(!u){u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=31){d=u+1|0;l=31-u|0;t=u-31>>31;a=d;e=f>>>(d>>>0)&t|c<<l;t=c>>>(d>>>0)&t;u=0;l=f<<l;break}if(!i){p=0;i=0;return(x=p,i)|0}o[i>>2]=e|0;o[i+4>>2]=s|t&0;p=0;i=0;return(x=p,i)|0}u=a-1|0;if(u&a|0){l=(Y(a|0)|0)+33-(Y(c|0)|0)|0;m=64-l|0;d=32-l|0;s=d>>31;h=l-32|0;t=h>>31;a=l;e=d-1>>31&c>>>(h>>>0)|(c<<d|f>>>(l>>>0))&t;t=t&c>>>(l>>>0);u=f<<m&s;l=(c<<m|f>>>(h>>>0))&s|f<<d&l-33>>31;break}if(i|0){o[i>>2]=u&f;o[i+4>>2]=0}if((a|0)==1){h=s|t&0;m=e|0|0;return(x=h,m)|0}else{m=oM(a|0)|0;h=c>>>(m>>>0)|0;m=c<<32-m|f>>>(m>>>0)|0;return(x=h,m)|0}}else{if(u){if(i|0){o[i>>2]=(c>>>0)%(a>>>0);o[i+4>>2]=0}h=0;m=(c>>>0)/(a>>>0)>>>0;return(x=h,m)|0}if(!f){if(i|0){o[i>>2]=0;o[i+4>>2]=(c>>>0)%(l>>>0)}h=0;m=(c>>>0)/(l>>>0)>>>0;return(x=h,m)|0}u=l-1|0;if(!(u&l)){if(i|0){o[i>>2]=e|0;o[i+4>>2]=u&c|t&0}h=0;m=c>>>((oM(l|0)|0)>>>0);return(x=h,m)|0}u=(Y(l|0)|0)-(Y(c|0)|0)|0;if(u>>>0<=30){t=u+1|0;l=31-u|0;a=t;e=c<<l|f>>>(t>>>0);t=c>>>(t>>>0);u=0;l=f<<l;break}if(!i){h=0;m=0;return(x=h,m)|0}o[i>>2]=e|0;o[i+4>>2]=s|t&0;h=0;m=0;return(x=h,m)|0}}while(0);if(!a){c=l;s=0;l=0}else{d=n|0|0;f=p|r&0;c=eM(d|0,f|0,-1,-1)|0;n=x;s=l;l=0;do{r=s;s=u>>>31|s<<1;u=l|u<<1;r=e<<1|r>>>31|0;p=e>>>31|t<<1|0;ZS(c|0,n|0,r|0,p|0)|0;m=x;h=m>>31|((m|0)<0?-1:0)<<1;l=h&1;e=ZS(r|0,p|0,h&d|0,(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&f|0)|0;t=x;a=a-1|0}while((a|0)!=0);c=s;s=0}a=0;if(i|0){o[i>>2]=e;o[i+4>>2]=t}h=(u|0)>>>31|(c|a)<<1|(a<<1|u>>>31)&0|s;m=(u<<1|0>>>31)&-2|l;return(x=h,m)|0}function aM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return uM(e,t,n,r,0)|0}function lM(e){e=e|0;var t=0,n=0;n=e+15&-16|0;t=o[f>>2]|0;e=t+n|0;if((n|0)>0&(e|0)<(t|0)|(e|0)<0){Z()|0;Ge(12);return-1}o[f>>2]=e;if((e|0)>(Q()|0)?(J()|0)==0:0){o[f>>2]=t;Ge(12);return-1}return t|0}function sM(e,t,n){e=e|0;t=t|0;n=n|0;var i=0;if((t|0)<(e|0)&(e|0)<(t+n|0)){i=e;t=t+n|0;e=e+n|0;while((n|0)>0){e=e-1|0;t=t-1|0;n=n-1|0;r[e>>0]=r[t>>0]|0}e=i}else iM(e,t,n)|0;return e|0}function cM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;var i=0,u=0;u=h;h=h+16|0;i=u|0;uM(e,t,n,r,i)|0;h=u;return(x=o[i+4>>2]|0,o[i>>2]|0)|0}function fM(e){e=e|0;return(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function dM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;cx[e&1](t|0,n|0,r|0,i|0,o|0)}function pM(e,t,n){e=e|0;t=t|0;n=K(n);fx[e&1](t|0,K(n))}function hM(e,t,n){e=e|0;t=t|0;n=+n;dx[e&31](t|0,+n)}function mM(e,t,n,r){e=e|0;t=t|0;n=K(n);r=K(r);return K(px[e&0](t|0,K(n),K(r)))}function vM(e,t){e=e|0;t=t|0;hx[e&127](t|0)}function bM(e,t,n){e=e|0;t=t|0;n=n|0;mx[e&31](t|0,n|0)}function gM(e,t){e=e|0;t=t|0;return vx[e&31](t|0)|0}function _M(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;bx[e&1](t|0,+n,+r,i|0)}function yM(e,t,n,r){e=e|0;t=t|0;n=+n;r=+r;gx[e&1](t|0,+n,+r)}function DM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return _x[e&7](t|0,n|0,r|0)|0}function wM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;return+yx[e&1](t|0,n|0,r|0)}function EM(e,t){e=e|0;t=t|0;return+Dx[e&15](t|0)}function CM(e,t,n){e=e|0;t=t|0;n=+n;return wx[e&1](t|0,+n)|0}function TM(e,t,n){e=e|0;t=t|0;n=n|0;return Ex[e&15](t|0,n|0)|0}function kM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=+r;i=+i;o=o|0;Cx[e&1](t|0,n|0,+r,+i,o|0)}function SM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;u=u|0;Tx[e&1](t|0,n|0,r|0,i|0,o|0,u|0)}function MM(e,t,n){e=e|0;t=t|0;n=n|0;return+kx[e&7](t|0,n|0)}function xM(e){e=e|0;return Sx[e&7]()|0}function AM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;return Mx[e&1](t|0,n|0,r|0,i|0,o|0)|0}function PM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=+i;xx[e&1](t|0,n|0,r|0,+i)}function OM(e,t,n,r,i,o,u){e=e|0;t=t|0;n=n|0;r=K(r);i=i|0;o=K(o);u=u|0;Ax[e&1](t|0,n|0,K(r),i|0,K(o),u|0)}function RM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;Px[e&15](t|0,n|0,r|0)}function NM(e){e=e|0;Ox[e&0]()}function IM(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;Rx[e&15](t|0,n|0,+r)}function FM(e,t,n){e=e|0;t=+t;n=+n;return Nx[e&1](+t,+n)|0}function BM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;Ix[e&15](t|0,n|0,r|0,i|0)}function LM(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(0)}function UM(e,t){e=e|0;t=K(t);$(1)}function jM(e,t){e=e|0;t=+t;$(2)}function WM(e,t,n){e=e|0;t=K(t);n=K(n);$(3);return ft}function zM(e){e=e|0;$(4)}function qM(e,t){e=e|0;t=t|0;$(5)}function HM(e){e=e|0;$(6);return 0}function GM(e,t,n,r){e=e|0;t=+t;n=+n;r=r|0;$(7)}function VM(e,t,n){e=e|0;t=+t;n=+n;$(8)}function YM(e,t,n){e=e|0;t=t|0;n=n|0;$(9);return 0}function KM(e,t,n){e=e|0;t=t|0;n=n|0;$(10);return 0.0}function $M(e){e=e|0;$(11);return 0.0}function XM(e,t){e=e|0;t=+t;$(12);return 0}function JM(e,t){e=e|0;t=t|0;$(13);return 0}function QM(e,t,n,r,i){e=e|0;t=t|0;n=+n;r=+r;i=i|0;$(14)}function ZM(e,t,n,r,i,o){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;o=o|0;$(15)}function ex(e,t){e=e|0;t=t|0;$(16);return 0.0}function tx(){$(17);return 0}function nx(e,t,n,r,i){e=e|0;t=t|0;n=n|0;r=r|0;i=i|0;$(18);return 0}function rx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=+r;$(19)}function ix(e,t,n,r,i,o){e=e|0;t=t|0;n=K(n);r=r|0;i=K(i);o=o|0;$(20)}function ox(e,t,n){e=e|0;t=t|0;n=n|0;$(21)}function ux(){$(22)}function ax(e,t,n){e=e|0;t=t|0;n=+n;$(23)}function lx(e,t){e=+e;t=+t;$(24);return 0}function sx(e,t,n,r){e=e|0;t=t|0;n=n|0;r=r|0;$(25)}var cx=[LM,Ew];var fx=[UM,Gi];var dx=[jM,go,_o,yo,Do,wo,Eo,Co,ko,So,xo,Ao,Po,Oo,Ro,No,Io,Fo,Bo,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM,jM];var px=[WM];var hx=[zM,WS,hl,ml,vl,$d,Xd,Jd,gy,_y,yy,ow,uw,aw,uk,ak,lk,yt,Xi,to,To,Mo,Uu,ju,$a,Cl,zl,ps,Rs,rc,kc,Gc,df,Nf,Zf,gd,Bd,bp,Fp,th,yh,Uh,im,km,Hm,av,Mv,zi,cb,xb,Jb,gg,Fg,o_,b_,y_,j_,q_,ay,Ey,ky,Vy,pD,Tl,AE,pC,PC,$C,yT,LT,XT,ZT,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM,zM];var mx=[qM,no,ro,uo,ao,lo,so,co,fo,mo,vo,bo,eu,ru,iu,ou,uu,au,lu,pu,bu,$u,Am,Ym,wg,RE,DD,eC,qM,qM,qM,qM];var vx=[HM,Kk,$i,Wo,Go,Vo,Yo,Ko,$o,Xo,Qo,Zo,hu,mu,Wu,Pv,jg,$y,LE,jE,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM,HM];var bx=[GM,zu];var gx=[VM,cy];var _x=[YM,$k,Xk,nS,ac,Dp,hb,ZC];var yx=[KM,rd];var Dx=[$M,tu,nu,su,qu,Hu,Gu,Vu,Yu,Ku,$M,$M,$M,$M,$M,$M];var wx=[XM,p_];var Ex=[JM,zS,vu,tl,bs,Ac,$c,Wd,jp,fv,Vi,IC,JM,JM,JM,JM];var Cx=[QM,Vl];var Tx=[ZM,CT];var kx=[ex,cu,Xu,Ju,Qu,wd,ex,ex];var Sx=[tx,Zu,Yi,ji,T_,Y_,Py,rk];var Mx=[nx,Fr];var xx=[rx,Ch];var Ax=[ix,_u];var Px=[ox,zo,Jo,fu,du,Bs,vf,qh,lm,Hi,Qw,bC,zT,ox,ox,ox];var Ox=[ux];var Rx=[ax,io,oo,po,ho,Lo,Uo,jo,oh,Rb,l_,ax,ax,ax,ax,ax];var Nx=[lx,my];var Ix=[sx,Lf,Uv,tg,$g,P_,Z_,Ly,gD,GE,hk,sx,sx,sx,sx,sx];return{_llvm_bswap_i32:fM,dynCall_idd:FM,dynCall_i:xM,_i64Subtract:ZS,___udivdi3:aM,dynCall_vif:pM,setThrew:vt,dynCall_viii:RM,_bitshift64Lshr:rM,_bitshift64Shl:nM,dynCall_vi:vM,dynCall_viiddi:kM,dynCall_diii:wM,dynCall_iii:TM,_memset:tM,_sbrk:lM,_memcpy:iM,__GLOBAL__sub_I_Yoga_cpp:Ui,dynCall_vii:bM,___uremdi3:cM,dynCall_vid:hM,stackAlloc:dt,_nbind_init:xk,getTempRet0:gt,dynCall_di:EM,dynCall_iid:CM,setTempRet0:bt,_i64Add:eM,dynCall_fiff:mM,dynCall_iiii:DM,_emscripten_get_global_libc:Yk,dynCall_viid:IM,dynCall_viiid:PM,dynCall_viififi:OM,dynCall_ii:gM,__GLOBAL__sub_I_Binding_cc:DE,dynCall_viiii:BM,dynCall_iiiiii:AM,stackSave:pt,dynCall_viiiii:dM,__GLOBAL__sub_I_nbind_cc:ea,dynCall_vidd:yM,_free:Vk,runPostSets:QS,dynCall_viiiiii:SM,establishStackSpace:mt,_memmove:sM,stackRestore:ht,_malloc:Gk,__GLOBAL__sub_I_common_cc:iD,dynCall_viddi:_M,dynCall_dii:MM,dynCall_v:NM}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii,initialStackTop;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){e=e||[],ensureInitRuntime();var t=e.length+1;function n(){for(var e=0;e<3;e++)r.push(0)}var r=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];n();for(var i=0;i<t-1;i+=1)r.push(allocate(intArrayFromString(e[i]),"i8",ALLOC_NORMAL)),n();r.push(0),r=allocate(r,"i32",ALLOC_NORMAL);try{exit(Module._main(t,r,0),!0)}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);var o=e;e&&"object"==typeof e&&e.stack&&(o=[e,e.stack]),Module.printErr("exception thrown: "+o),Module.quit(1,e)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];function abort(e){Module.onAbort&&Module.onAbort(e),void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t="abort("+e+") at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw abortDecorators&&abortDecorators.forEach((function(n){t=n(t,e)})),t}if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()},void 0===(__WEBPACK_AMD_DEFINE_RESULT__=function(){return wrapper}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__=[]))||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},9532:e=>{"use strict";e.exports={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2}},2821:(e,t,n)=>{"use strict";var r=n(6863),i=n(7356),o=!1,u=null;if(i({},(function(e,t){if(!o){if(o=!0,e)throw e;u=t}})),!o)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");e.exports=r(u.bind,u.lib)},6863:(e,t,n)=>{"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=n(9532),l=function(){function e(t,n,r,i,o,a){u(this,e),this.left=t,this.right=n,this.top=r,this.bottom=i,this.width=o,this.height=a}return i(e,[{key:"fromJS",value:function(e){e(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),e}(),s=function(){function e(t,n){u(this,e),this.width=t,this.height=n}return i(e,null,[{key:"fromJS",value:function(t){return new e(t.width,t.height)}}]),i(e,[{key:"fromJS",value:function(e){e(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),e}(),c=function(){function e(t,n){u(this,e),this.unit=t,this.value=n}return i(e,[{key:"fromJS",value:function(e){e(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case a.UNIT_POINT:return String(this.value);case a.UNIT_PERCENT:return this.value+"%";case a.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();e.exports=function(e,t){function n(e,t,n){var r=e[t];e[t]=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return n.call.apply(n,[this,r].concat(t))}}for(var i=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],u=function(){var e,r=i[f],u=(o(e={},a.UNIT_POINT,t.Node.prototype[r]),o(e,a.UNIT_PERCENT,t.Node.prototype[r+"Percent"]),o(e,a.UNIT_AUTO,t.Node.prototype[r+"Auto"]),e);n(t.Node.prototype,r,(function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var o,l,s=n.pop(),f=void 0,d=void 0;if("auto"===s)f=a.UNIT_AUTO,d=void 0;else if(s instanceof c)f=s.unit,d=s.valueOf();else if(f="string"==typeof s&&s.endsWith("%")?a.UNIT_PERCENT:a.UNIT_POINT,d=parseFloat(s),!Number.isNaN(s)&&Number.isNaN(d))throw new Error("Invalid value "+s+" for "+r);if(!u[f])throw new Error('Failed to execute "'+r+"\": Unsupported unit '"+s+"'");return void 0!==d?(o=u[f]).call.apply(o,[this].concat(n,[d])):(l=u[f]).call.apply(l,[this].concat(n))}))},f=0;f<i.length;f++)u();return n(t.Config.prototype,"free",(function(){t.Config.destroy(this)})),n(t.Node,"create",(function(e,n){return n?t.Node.createWithConfig(n):t.Node.createDefault()})),n(t.Node.prototype,"free",(function(){t.Node.destroy(this)})),n(t.Node.prototype,"freeRecursive",(function(){for(var e=0,t=this.getChildCount();e<t;++e)this.getChild(0).freeRecursive();this.free()})),n(t.Node.prototype,"setMeasureFunc",(function(e,t){return t?e.call(this,(function(){return s.fromJS(t.apply(void 0,arguments))})):this.unsetMeasureFunc()})),n(t.Node.prototype,"calculateLayout",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:a.DIRECTION_LTR;return e.call(this,t,n,r)})),r({Config:t.Config,Node:t.Node,Layout:e("Layout",l),Size:e("Size",s),Value:e("Value",c),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},a)}},2594:e=>{"use strict";e.exports=require("@yarnpkg/cli")},966:e=>{"use strict";e.exports=require("@yarnpkg/core")},4850:e=>{"use strict";e.exports=require("@yarnpkg/plugin-essentials")},2357:e=>{"use strict";e.exports=require("assert")},8042:e=>{"use strict";e.exports=require("clipanion")},6417:e=>{"use strict";e.exports=require("crypto")},8614:e=>{"use strict";e.exports=require("events")},8605:e=>{"use strict";e.exports=require("http")},7211:e=>{"use strict";e.exports=require("https")},2087:e=>{"use strict";e.exports=require("os")},1058:e=>{"use strict";e.exports=require("readline")},9513:e=>{"use strict";e.exports=require("semver")},3867:e=>{"use strict";e.exports=require("tty")},8835:e=>{"use strict";e.exports=require("url")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(120)})();
-return plugin;
-}
-};
\ No newline at end of file
diff --git a/Timeline/ClientApp/.yarn/releases/yarn-2.1.1.cjs b/Timeline/ClientApp/.yarn/releases/yarn-2.1.1.cjs
deleted file mode 100644
index 5b20eeea..00000000
--- a/Timeline/ClientApp/.yarn/releases/yarn-2.1.1.cjs
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/env node
-module.exports=(()=>{var __webpack_modules__={49775:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-compat"}')},35729:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-dlx"}')},37904:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-essentials"}')},17508:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-file"}')},84779:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-git"}')},88454:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-github"}')},91953:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-http"}')},63756:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-init"}')},23100:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-link"}')},47047:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-node-modules"}')},31880:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm-cli"}')},67310:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-npm"}')},74617:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pack"}')},12437:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-patch"}')},8211:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/plugin-pnp"}')},80150:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132);const i={optional:!0},o=[["@samverschueren/stream-to-observable@*",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:i,zenObservable:i}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@*",{peerDependenciesMeta:{"supports-color":i}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":i,"postcss-jsx":i,"postcss-less":i,"postcss-markdown":i,"postcss-scss":i}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}]],s=r(78761).brotliDecompressSync(Buffer.from("G8EIABwHuTnyDkxeQiomXep01zJ90cJ3iFSgGcnN+dVTE5YC1CBsZn0bRMFnq2+/bPJOWLRlcCblbWaytN6yn94lDuHQVXEMzob/mhDOafB/uXcOjPnzEX5TF8I/4H+A7n4PCzSY0xTuWjDfxxV8F1neM4x7jymltl+dnYEp13SxCOpkQxUClagaNItavHVUdwD73pT3+c52oJFtOTmagkX/GAaKFyr1bLfAnKMY+OZmY+0YsC6Sci7AJQI2zADQHhdIcc03Dz+GOC05kpj3M0kiNKsdFu1U3ornmwco/hOeYDp3IUlCIQqaE6eg8ho+SQaBwAeE4PktvsKmDJJy8fXAx0jTz4Oj2wWKVgNnuMz/CR5AZNuo2eZk0HwujkkFQBytGPu+p1RoCpRBYVcTf7REjfuVBUIa+MgTpb+ZaKgASLlmw2dFNlIsdYEsSntc1vhEJfQLSkVdBXXK67OUoZjcjVu8DPd8oSwu1vK52tVmsLNeekvJW3ss4Z1+thxuul1A0bzLBLT7MQMQxaGNFQUpvaAsmmOVo1hZFKHViytsKRvkULx6+VpOghLO9W/tHqSTQkqQkLWIKtzBlsPNUviOym6eOz3jjDM43Jfi2pXbla5apaLf+jR3njZPcG1zp9bxgi6Acg2V4n8rU8+1ANM2CXkW5tkqS6QfhnL1z8/s5G8r/f4omOaXOkzbHh9HdPhfxz9Tftr698n6L7UYF/L089Ch+9QgeDSlUXdaBAyLU3G6bkC5ygWmNqZMBYJHB6iFj4uo0iI9yR5r3KUooI0Zg1IkiYsgqxR8jMug6VgwtyIaxNxP30CqZH3zo/g16/wof1VdCLhd+YIOeBHFhA/D2eAvyld7FIAT8EiOA1Msg41mq8UNYCwZt2Pc519uZYhp9gP6kOwhcU+Ydc0CsPIqfy0ZGgbIKNYGZ+RP4ESfRzdDW6vhSsXuu2VB29YEdri/7CbQ7XCsVevHtY2mms7dVEMb6Wa/Ln6ZokATZTjZ/kMMNoWEp0AqBKG0DaCyBxlBsylqymr/6xM+mxOAAVREIXXGnW4IXuQ5oSGimw0C7BKZb3ZDLEWtkWXM5FB7jjp37QA=","base64")).toString(),A=r(78761).brotliDecompressSync(Buffer.from("G1QTIIzURnVBnGa0VPvr81orV8AFIqdU0sqrdcVgCdukgAZwi8a50gLk9+19Z2NcUILjmzXkzt4dzm5a6Yoys+/9qnKiaApXukOiuoyUaMcynG4X7X4vBaIE/PL30gwG6HSGJkLxb9PnLjfMr+748n7sM6C/NycK6ber/bX1reVVxta6W/31tZIhfrS+upoE/TPRHj0S/l0T59gTGdtKOp1OmMOJt9rhfucDdLJ2tgyfnO+u4YMkQAcYq/nebTcDmbXhqhgo6iQA4M3m4xya4Cos3p6klmkmQT+S4DLDZfwfMF+sUCx36KleOtaHLQfEIz0Bmncj/Ngi3lqOl4391EWEfIss6gVp3oDUGwsSZJKeOVONJWZg+Mue3KUMV3aMqYJ+7b2219D+GFDi8EV5y/Y+5J+He0oNjKAgqLsJziEsS9uIaCu3BHBKSXxNKKa2ShbfglcWoiiVT2kfGI7Gw+YJ/Sqy1H6wdFWtyVUQIa82JPwbeV25YKLzc5ZIFM6GCPSA+J9dTvJbs5LuuKnLP3f09gCu2jxqsAv6CA+ZySVaUJr2d3A70BC/uBCKr2OVrWgC3fSwb7NlfkgSEEiejrMGvhya9lMbVI6lMsFKN330A1/FOaefHQdNGLEZ3IwFF87H3xVlM0Xxsmbi/7A60oymRcIe0tH90alG6ez/yA7jwYotxuHWZdR+1HlMcddGHAV6QD/gXYPV0wnNv47I+5FGevzZFMqWSO8GU4nQ3FjsdgdJcD+c1rvudERKuLyd7bxiBpnsMDHsvPP4nXdXkld/gUNks3GAE1Otmb90bavDyiw4Mrx496Iw+jbLTgsCZGZXSZ9vM55C7KGe4HyJAKXEk0iT/Cj/PFwLJBN7pcP7ZFfYtUApGTWKkYhI9IE2zt/5ByH72wdvH+88b71zuv/FMCX3w6x5nzhY44Cg5IYv9LeKwHuHIWgPbfgrAcUxOlKkPRdQOIDF/aBuLPJAXD+TgxCNXx4jQxeR/qlBWVikFPfEI4rXMUc4kZ2w9KbPKYRvFUag0dVlVoyUP4zfidbTXAdZF88jAckl+NHjLFCNdX7EQ1PbLSOl+P+MqgwEOCi6dxgWZ7NCwJBjWKpk1LaxwKrhZ4aEC/0lMPJYe5S8xAakDcmA2kSS86GjEMTrv3VEu0S0YGZcxToMV524G4WAc4CReePePdipvs4aXRL5p+aeN96yfMGjsiTbQNxgbdRKc+keQ+NxYIEm1mBtEO29WrcbrqNbQRMR66KpGG4aG0NtmRyZ2JhUvu0paCklRlID8PT3gSiwZrqr4XZXoBBzBMrveWCuOg7iTgGDXDdbGi8XHkQf5KXDGFUxWueu5wkSa6gMWY1599g2piQjwBKIAPt4N5cOZdFBidz2feGwEAy1j1UydGxDSCCUsh314cUIIRV/dWCheceubL2gU8CibewmP7UxmN5kN4I7zfQhPxkP0NCcei8GXQpw4c3krEzW7PR2hgi/hqqqR58UJ/ZVfWxfcH5ZKMo4itkmPK0FCGxzzIRP20lK/gz28Y03sY233KvSVWUKl9rcbX6MbHjpUG8MvNlw72p6FwTejv92zgpnCxVJnIHHZhCBxNcHF5RTveRp513hUtTHHq4BIndlytZT5xoTSYfHKqKNr4o9kcGINIz6tZSKRdtbON3Ydr9cgqxHIeisMNIsvPg/IFMZuBbSqqDLeSO5dak1cGr76FtH2PC7hs0S0Oq3GsmF1Ga4YABAMGcdPAWzTk26B7cKV91I2b0V/GYvnsEQ1YGntRqi5EQqTlgZszbV/32GuZtUF49JOA/r4jAdwUOsbPo6mNoBlJPYjM5axrZaWQf33bFsLWqiyvvDOM4x0Ng802T7cuP2a3q98GWq6yiq6q3M77hcZlOUnmryctRYmI4Hb2F5XixFohkBmySCjU+M7/WQVE5YAtnlxiUJDhFN0y1tNeMWY9E0MfZi2rQ4eC72WXjsAA==","base64")).toString(),a=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString(),c=new Map([[n.structUtils.makeIdent(null,"fsevents").identHash,s],[n.structUtils.makeIdent(null,"resolve").identHash,A],[n.structUtils.makeIdent(null,"typescript").identHash,a]]),u={hooks:{registerPackageExtensions:async(e,t)=>{for(const[e,r]of o)t(n.structUtils.parseDescriptor(e,!0),r)},getBuiltinPatch:async(e,t)=>{if(!t.startsWith("compat/"))return;const r=n.structUtils.parseIdent(t.slice("compat/".length)),i=c.get(r.identHash);return void 0!==i?i:null},reduceDependency:async(e,t,r,i)=>void 0===c.get(e.identHash)?e:n.structUtils.makeDescriptor(e,n.structUtils.makeRange({protocol:"patch:",source:n.structUtils.stringifyDescriptor(e),selector:`builtin<compat/${n.structUtils.stringifyIdent(e)}>`,params:null}))}}},10420:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>g});var n=r(36370),i=r(95397),o=r(84132),s=r(17278);class A extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){const e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");const t=o.structUtils.parseIdent(this.command),r=o.structUtils.makeIdent(t.scope,"create-"+t.name);return this.cli.run(["dlx",...e,o.structUtils.stringifyIdent(r),...this.args])}}(0,n.gn)([s.Command.String("-p,--package")],A.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],A.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],A.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],A.prototype,"args",void 0),(0,n.gn)([s.Command.Path("create")],A.prototype,"execute",null);var a=r(27122),c=r(40376),u=r(56537),l=r(46009);class h extends i.BaseCommand{constructor(){super(...arguments),this.quiet=!1,this.args=[]}async execute(){return await u.xfs.mktempPromise(async e=>{const t=l.y1.join(e,"dlx-"+process.pid);await u.xfs.mkdirPromise(t),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("package.json")),"{}\n"),await u.xfs.writeFilePromise(l.y1.join(t,(0,l.Zu)("yarn.lock")),"");const r=l.y1.join(t,(0,l.Zu)(".yarnrc.yml")),n=await a.VK.findProjectCwd(this.context.cwd,l.QS.lockfile),s=null!==n?l.y1.join(n,(0,l.Zu)(".yarnrc.yml")):null;null!==s&&u.xfs.existsSync(s)?(await u.xfs.copyFilePromise(s,r),await a.VK.updateConfiguration(t,e=>void 0===e.plugins?{enableGlobalCache:!0}:{enableGlobalCache:!0,plugins:e.plugins.map(e=>{const t="string"==typeof e?e:e.path,r=l.cS.isAbsolute(t)?t:l.cS.resolve(l.cS.fromPortablePath(n),t);return"string"==typeof e?r:{path:r,spec:e.spec}})})):await u.xfs.writeFilePromise(r,"enableGlobalCache: true\n");const A=void 0!==this.pkg?[this.pkg]:[this.command],h=o.structUtils.parseDescriptor(this.command).name,g=await this.cli.run(["add","--",...A],{cwd:t,quiet:this.quiet});if(0!==g)return g;this.quiet||this.context.stdout.write("\n");const f=await a.VK.find(t,this.context.plugins),{project:p,workspace:d}=await c.I.find(f,t);if(null===d)throw new i.WorkspaceRequiredError(p.cwd,t);return await p.restoreInstallState(),await o.scriptUtils.executeWorkspaceAccessibleBinary(d,h,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}}h.usage=s.Command.Usage({description:"run a package in a temporary environment",details:"\n      This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n      By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n      Also by default Yarn will print the full install logs when installing the given package. This behavior can be disabled by using the `-q,--quiet` flag which will instruct Yarn to only report critical errors.\n\n      Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n    ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"]]}),(0,n.gn)([s.Command.String("-p,--package")],h.prototype,"pkg",void 0),(0,n.gn)([s.Command.Boolean("-q,--quiet")],h.prototype,"quiet",void 0),(0,n.gn)([s.Command.String()],h.prototype,"command",void 0),(0,n.gn)([s.Command.Proxy()],h.prototype,"args",void 0),(0,n.gn)([s.Command.Path("dlx")],h.prototype,"execute",null);const g={commands:[A,h]}},72926:(e,t,r)=>{"use strict";r.r(t),r.d(t,{suggestUtils:()=>n,default:()=>Ke});var n={};r.r(n),r.d(n,{Modifier:()=>o,Strategy:()=>s,Target:()=>i,applyModifier:()=>b,extractDescriptorFromPath:()=>k,extractRangeModifier:()=>D,fetchDescriptorFrom:()=>F,findProjectDescriptors:()=>S,getModifier:()=>Q,getSuggestedDescriptors:()=>x});var i,o,s,A=r(27122),a=r(36370),c=r(95397),u=r(28148),l=r(62152),h=r(92659),g=r(40376),f=r(15815),p=r(84132),d=r(17278),C=r(9494),E=r.n(C),I=r(33720),m=r(46611),y=r(46009),w=r(53887),B=r.n(w);function Q(e,t){return e.exact?o.EXACT:e.caret?o.CARET:e.tilde?o.TILDE:t.configuration.get("defaultSemverRangePrefix")}!function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"}(i||(i={})),function(e){e.CARET="^",e.TILDE="~",e.EXACT=""}(o||(o={})),function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"}(s||(s={}));const v=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function D(e,{project:t}){const r=e.match(v);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function b(e,t){let{protocol:r,source:n,params:i,selector:o}=p.structUtils.parseRange(e.range);return B().valid(o)&&(o=`${t}${e.range}`),p.structUtils.makeDescriptor(e,p.structUtils.makeRange({protocol:r,source:n,params:i,selector:o}))}async function S(e,{project:t,target:r}){const n=new Map,o=e=>{let t=n.get(e.descriptorHash);return t||n.set(e.descriptorHash,t={descriptor:e,locators:[]}),t};for(const n of t.workspaces)if(r===i.PEER){const t=n.manifest.peerDependencies.get(e.identHash);void 0!==t&&o(t).locators.push(n.locator)}else{const t=n.manifest.dependencies.get(e.identHash),s=n.manifest.devDependencies.get(e.identHash);r===i.DEVELOPMENT?void 0!==s?o(s).locators.push(n.locator):void 0!==t&&o(t).locators.push(n.locator):void 0!==t?o(t).locators.push(n.locator):void 0!==s&&o(s).locators.push(n.locator)}return n}async function k(e,{cache:t,cwd:r,workspace:n}){y.y1.isAbsolute(e)||(e=y.y1.resolve(r,e));const i=n.project,o=await F(p.structUtils.makeIdent(null,"archive"),e,{project:n.project,cache:t});if(!o)throw new Error("Assertion failed: The descriptor should have been found");const s=new I.$,A=i.configuration.makeResolver(),a=i.configuration.makeFetcher(),c={checksums:i.storedChecksums,project:i,cache:t,fetcher:a,report:s,resolver:A},u=A.bindDescriptor(o,n.anchoredLocator,c),l=p.structUtils.convertDescriptorToLocator(u),h=await a.fetch(l,c),g=await m.G.find(h.prefixPath,{baseFs:h.packageFs});if(!g.name)throw new Error("Target path doesn't have a name");return p.structUtils.makeDescriptor(g.name,e)}async function x(e,{project:t,workspace:r,cache:n,target:o,modifier:A,strategies:a,maxResults:c=1/0}){if(!(c>=0))throw new Error(`Invalid maxResults (${c})`);if("unknown"!==e.range)return[{descriptor:e,reason:"Unambiguous explicit request"}];const u=null!=r&&r.manifest[o].get(e.identHash)||null,l=[];for(const h of a){if(l.length>=c)break;switch(h){case s.KEEP:if(u){const e=`Keep ${p.structUtils.prettyDescriptor(t.configuration,u)} (no changes)`;l.push({descriptor:u,reason:e})}break;case s.REUSE:for(const{descriptor:n,locators:i}of(await S(e,{project:t,target:o})).values()){if(1===i.length&&i[0].locatorHash===r.anchoredLocator.locatorHash&&a.includes(s.KEEP))continue;let e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,n)} (originally used by ${p.structUtils.prettyLocator(t.configuration,i[0])}`;e+=i.length>1?` and ${i.length-1} other${i.length>2?"s":""})`:")",l.push({descriptor:n,reason:e})}break;case s.CACHE:for(const r of t.storedDescriptors.values())if(r.identHash===e.identHash){const e=`Reuse ${p.structUtils.prettyDescriptor(t.configuration,r)} (already used somewhere in the lockfile)`;l.push({descriptor:r,reason:e})}break;case s.PROJECT:{if(null!==r.manifest.name&&e.identHash===r.manifest.name.identHash)continue;const n=t.tryWorkspaceByIdent(e);if(null===n)continue;const i=`Attach ${p.structUtils.prettyWorkspace(t.configuration,n)} (local workspace at ${n.cwd})`;l.push({descriptor:n.anchoredDescriptor,reason:i})}break;case s.LATEST:if("unknown"!==e.range){const r=`Use ${p.structUtils.prettyRange(t.configuration,e.range)} (explicit range requested)`;l.push({descriptor:e,reason:r})}else if(o===i.PEER){const t="Use * (catch-all peer dependency pattern)";l.push({descriptor:p.structUtils.makeDescriptor(e,"*"),reason:t})}else if(t.configuration.get("enableNetwork")){let r;try{r=await F(e,"latest",{project:t,cache:n,preserveModifier:!1})}catch(e){}if(r){r=b(r,A);const e=`Use ${p.structUtils.prettyDescriptor(t.configuration,r)} (resolved from latest)`;l.push({descriptor:r,reason:e})}}else{const e="Resolve from latest "+t.configuration.format("(unavailable because enableNetwork is toggled off)","grey");l.push({descriptor:null,reason:e})}}}return l.slice(0,c)}async function F(e,t,{project:r,cache:n,preserveModifier:i=!0}){const o=p.structUtils.makeDescriptor(e,t),s=new I.$,A=r.configuration.makeFetcher(),a=r.configuration.makeResolver(),c={checksums:r.storedChecksums,project:r,cache:n,fetcher:A,report:s,resolver:a};let u;try{u=await a.getCandidates(o,new Map,c)}catch(e){return null}if(0===u.length)return null;const l=u[0];let{protocol:h,source:g,params:f,selector:d}=p.structUtils.parseRange(p.structUtils.convertToManifestRange(l.reference));if(h===r.configuration.get("defaultProtocol")&&(h=null),B().valid(d)&&!1!==i){d=D("string"==typeof i?i:o.range,{project:r})+d}return p.structUtils.makeDescriptor(l,p.structUtils.makeRange({protocol:h,source:g,params:f,selector:d}))}class M extends c.BaseCommand{constructor(){super(...arguments),this.packages=[],this.json=!1,this.exact=!1,this.tilde=!1,this.caret=!1,this.dev=!1,this.peer=!1,this.optional=!1,this.preferDev=!1,this.interactive=!1,this.cached=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=[...this.interactive?[s.REUSE]:[],s.PROJECT,...this.cached?[s.CACHE]:[],s.LATEST],I=this.interactive?1/0:1,m=await Promise.all(this.packages.map(async e=>{const o=e.match(/^\.{0,2}\//)?await k(e,{cache:n,cwd:this.context.cwd,workspace:r}):p.structUtils.parseDescriptor(e),s=function(e,t,{dev:r,peer:n,preferDev:o,optional:s}){const A=e.manifest[i.REGULAR].has(t.identHash),a=e.manifest[i.DEVELOPMENT].has(t.identHash),c=e.manifest[i.PEER].has(t.identHash);if((r||n)&&A)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!n&&c)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||o)&&s)throw new d.UsageError(`Package "${p.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);return n?i.PEER:r||o?i.DEVELOPMENT:A?i.REGULAR:a?i.DEVELOPMENT:i.REGULAR}(r,o,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return[o,await x(o,{project:t,workspace:r,cache:n,target:s,modifier:a,strategies:C,maxResults:I}),s]})),y=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[n,i]of m){0===i.filter(e=>null!==e.descriptor).length&&(t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"))}});if(y.hasErrors())return y.exitCode();let w=!1;const B=[],v=[];for(const[,e,n]of m){let i;const s=e.filter(e=>null!==e.descriptor),A=s[0].descriptor,a=s.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,A));1===s.length||a?i=A:(w=!0,({answer:i}=await o({type:"list",name:"answer",message:"Which range do you want to use?",choices:e.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const c=r.manifest[n].get(i.identHash);void 0!==c&&c.descriptorHash===i.descriptorHash||(r.manifest[n].set(i.identHash,i),this.optional&&("dependencies"===n?r.manifest.ensureDependencyMeta({...i,range:"unknown"}).optional=!0:"peerDependencies"===n&&(r.manifest.ensurePeerDependencyMeta({...i,range:"unknown"}).optional=!0)),void 0===c?B.push([r,n,i,C]):v.push([r,n,c,i]))}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyAddition,B),await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),w&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}M.usage=d.Command.Usage({description:"add dependencies to the project",details:"\n      This command adds a package to the package.json for the nearest workspace.\n\n      - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n      - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n      - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n      - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n      - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `savePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n      - If the added package specifies a tag range (such as `latest` or `rc`), Yarn will resolve this tag to a semver version and use that in the resulting package.json entry (meaning that `yarn add foo@latest` will have exactly the same effect as `yarn add foo`).\n\n      If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n      If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      For a compilation of all the supported protocols, please consult the dedicated page from our website: .\n    ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]}),(0,a.gn)([d.Command.Rest()],M.prototype,"packages",void 0),(0,a.gn)([d.Command.Boolean("--json")],M.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],M.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],M.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],M.prototype,"caret",void 0),(0,a.gn)([d.Command.Boolean("-D,--dev")],M.prototype,"dev",void 0),(0,a.gn)([d.Command.Boolean("-P,--peer")],M.prototype,"peer",void 0),(0,a.gn)([d.Command.Boolean("-O,--optional")],M.prototype,"optional",void 0),(0,a.gn)([d.Command.Boolean("--prefer-dev")],M.prototype,"preferDev",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],M.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("--cached")],M.prototype,"cached",void 0),(0,a.gn)([d.Command.Path("add")],M.prototype,"execute",null);class N extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,locator:r}=await g.I.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){const n=(await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t})).get(this.name);if(!n)throw new d.UsageError(`Couldn't find a binary named "${this.name}" for package "${p.structUtils.prettyLocator(e,r)}"`);const[,i]=n;return this.context.stdout.write(i+"\n"),0}return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{const i=await p.scriptUtils.getPackageAccessibleBinaries(r,{project:t}),o=Array.from(i.keys()).reduce((e,t)=>Math.max(e,t.length),0);for(const[e,[t,r]]of i)n.reportJson({name:e,source:p.structUtils.stringifyIdent(t),path:r});if(this.verbose)for(const[t,[r]]of i)n.reportInfo(null,`${t.padEnd(o," ")}   ${p.structUtils.prettyLocator(e,r)}`);else for(const e of i.keys())n.reportInfo(null,e)})).exitCode()}}N.usage=d.Command.Usage({description:"get the path to a binary script",details:"\n      When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the `-v,--verbose` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.\n\n      When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]}),(0,a.gn)([d.Command.String({required:!1})],N.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],N.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],N.prototype,"json",void 0),(0,a.gn)([d.Command.Path("bin")],N.prototype,"execute",null);var R=r(56537);class K extends c.BaseCommand{constructor(){super(...arguments),this.mirror=!1,this.all=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=await u.C.find(e);return(await f.P.start({configuration:e,stdout:this.context.stdout},async()=>{const e=(this.all||this.mirror)&&null!==t.mirrorCwd,r=!this.mirror;e&&await R.xfs.removePromise(t.mirrorCwd),r&&await R.xfs.removePromise(t.cwd)})).exitCode()}}K.usage=d.Command.Usage({description:"remove the shared cache files",details:"\n      This command will remove all the files from the cache.\n\n      By default only the local cache will be cleaned. This behavior can be disabled with the `--mirror`, which will lead to the removal of the global cache files instead, or `--all` (which will remove both the local and global caches for the current project).\n    ",examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]}),(0,a.gn)([d.Command.Boolean("--mirror")],K.prototype,"mirror",void 0),(0,a.gn)([d.Command.Boolean("--all")],K.prototype,"all",void 0),(0,a.gn)([d.Command.Path("cache","clean")],K.prototype,"execute",null);var L=r(44674),T=r.n(L),P=r(31669);class U extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.unsafe=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=_(e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0})),i=r?T()(n,r):n,o=await f.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async e=>{e.reportJson(i)});if(!this.json){if("string"==typeof i)return this.context.stdout.write(i+"\n"),o.exitCode();P.inspect.styles.name="cyan",this.context.stdout.write((0,P.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n")}return o.exitCode()}}function _(e){if(e instanceof Map&&(e=Object.fromEntries(e)),"object"==typeof e&&null!==e)for(const t of Object.keys(e)){const r=e[t];"object"==typeof r&&null!==r&&(e[t]=_(r))}return e}U.usage=d.Command.Usage({description:"read a configuration settings",details:"\n      This command will print a configuration setting.\n\n      Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the `--no-redacted` to get the untransformed value.\n    ",examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration","yarn config get 'npmScopes[\"my-company\"].npmRegistryServer'"],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]}),(0,a.gn)([d.Command.String()],U.prototype,"name",void 0),(0,a.gn)([d.Command.Boolean("--json")],U.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--no-redacted")],U.prototype,"unsafe",void 0),(0,a.gn)([d.Command.Path("config","get")],U.prototype,"execute",null);var O=r(82558),j=r.n(O),Y=r(81534),G=r.n(Y);class J extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(!e.projectCwd)throw new d.UsageError("This command must be run from within a project folder");const t=this.name.replace(/[.[].*$/,""),r=this.name.replace(/^[^.[]*/,"");if(void 0===e.settings.get(t))throw new d.UsageError(`Couldn't find a configuration settings named "${t}"`);const n=this.json?JSON.parse(this.value):this.value;await A.VK.updateConfiguration(e.projectCwd,e=>{if(r){const t=j()(e);return G()(t,this.name,n),t}return{...e,[t]:n}});const i=_((await A.VK.find(this.context.cwd,this.context.plugins)).getSpecial(t,{hideSecrets:!0,getNativePaths:!0})),o=r?T()(i,r):i;return(await f.P.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async e=>{P.inspect.styles.name="cyan",e.reportInfo(h.b.UNNAMED,`Successfully set ${this.name} to ${(0,P.inspect)(o,{depth:1/0,colors:!0,compact:!1})}`)})).exitCode()}}J.usage=d.Command.Usage({description:"change a configuration settings",details:"\n      This command will set a configuration setting.\n\n      When used without the `--json` flag, it can only set a simple configuration setting (a string, a number, or a boolean).\n\n      When used with the `--json` flag, it can set both simple and complex configuration settings, including Arrays and Objects.\n    ",examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",'yarn config set unsafeHttpWhitelist --json \'["*.example.com", "example.com"]\''],["Set a complex configuration setting (an Object) using the `--json` flag",'yarn config set packageExtensions --json \'{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }\'']]}),(0,a.gn)([d.Command.String()],J.prototype,"name",void 0),(0,a.gn)([d.Command.String()],J.prototype,"value",void 0),(0,a.gn)([d.Command.Boolean("--json")],J.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config","set")],J.prototype,"execute",null);class H extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.why=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins,{strict:!1});return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{if(e.invalid.size>0&&!this.json){for(const[r,n]of e.invalid)t.reportError(h.b.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${r}" in ${n}`);t.reportSeparator()}if(this.json){const r=p.miscUtils.sortMap(e.settings.keys(),e=>e);for(const n of r){const r=e.settings.get(n),i=e.getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),o=e.sources.get(n);this.verbose?t.reportJson({key:n,effective:i,source:o}):t.reportJson({key:n,effective:i,source:o,...r})}}else{const r=p.miscUtils.sortMap(e.settings.keys(),e=>e),n=r.reduce((e,t)=>Math.max(e,t.length),0),i={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){const o=r.map(t=>{const r=e.settings.get(t);if(!r)throw new Error(`Assertion failed: This settings ("${t}") should have been registered`);return[t,this.why?e.sources.get(t)||"<default>":r.description]}),s=o.reduce((e,[,t])=>Math.max(e,t.length),0);for(const[r,A]of o)t.reportInfo(null,`${r.padEnd(n," ")}   ${A.padEnd(s," ")}   ${(0,P.inspect)(e.getSpecial(r,{hideSecrets:!0,getNativePaths:!0}),i)}`)}else for(const o of r)t.reportInfo(null,`${o.padEnd(n," ")}   ${(0,P.inspect)(e.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),i)}`)}})).exitCode()}}H.usage=d.Command.Usage({description:"display the current configuration",details:"\n      This command prints the current active configuration settings.\n\n      When used together with the `-v,--verbose` option, the output will contain the settings description on top of the regular key/value information.\n\n      When used together with the `--why` flag, the output will also contain the reason why a settings is set a particular way.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      Note that the paths settings will be normalized - especially on Windows. It means that paths such as `C:\\project` will be transparently shown as `/mnt/c/project`.\n    ",examples:[["Print the active configuration settings","$0 config"]]}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],H.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--why")],H.prototype,"why",void 0),(0,a.gn)([d.Command.Boolean("--json")],H.prototype,"json",void 0),(0,a.gn)([d.Command.Path("config")],H.prototype,"execute",null);class q extends d.Command{async execute(){const{plugins:e}=await A.VK.find(this.context.cwd,this.context.plugins),t=[];for(const r of e){const{commands:e}=r[1];if(e){const n=d.Cli.from(e).definitions();t.push([r[0],n])}}const n=this.cli.definitions(),i=r(60306)["@yarnpkg/builder"].bundles.standard;for(const e of t){const t=e[1];for(const r of t)n.find(e=>{return t=e.path,n=r.path,t.split(" ").slice(1).join()===n.split(" ").slice(1).join();var t,n}).plugin={name:e[0],isDefault:i.includes(e[0])}}this.context.stdout.write(JSON.stringify({commands:n},null,2)+"\n")}}(0,a.gn)([d.Command.Path("--clipanion=definitions")],q.prototype,"execute",null);class z extends d.Command{async execute(){this.context.stdout.write(this.cli.usage(null))}}(0,a.gn)([d.Command.Path("help"),d.Command.Path("--help"),d.Command.Path("-h")],z.prototype,"execute",null);class W extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!p.structUtils.tryParseIdent(this.leadingArgument)){const e=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}return await this.cli.run(["run",this.leadingArgument,...this.args])}}(0,a.gn)([d.Command.String()],W.prototype,"leadingArgument",void 0),(0,a.gn)([d.Command.Proxy()],W.prototype,"args",void 0);var V=r(59355);class X extends d.Command{async execute(){this.context.stdout.write((V.o||"<unknown>")+"\n")}}(0,a.gn)([d.Command.Path("-v"),d.Command.Path("--version")],X.prototype,"execute",null);class Z extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return await R.xfs.mktempPromise(async e=>{const{code:r}=await p.execUtils.pipevp(this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await p.scriptUtils.makeScriptEnv({project:t,binFolder:e})});return r})}}Z.usage=d.Command.Usage({description:"execute a shell command",details:"\n      This command simply executes a shell binary within the context of the root directory of the active workspace.\n\n      It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n    ",examples:[["Execute a shell command","$0 exec echo Hello World"]]}),(0,a.gn)([d.Command.String()],Z.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Z.prototype,"args",void 0),(0,a.gn)([d.Command.Path("exec")],Z.prototype,"execute",null);var $=r(35691),ee=r(55125);class te extends c.BaseCommand{constructor(){super(...arguments),this.json=!1,this.checkCache=!1,this.silent=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);void 0!==this.inlineBuilds&&e.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});const t=!!process.env.NOW_BUILDER,r=!!process.env.NETLIFY,n=async(t,{error:r})=>{const n=await f.P.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async e=>{r?e.reportError(h.b.DEPRECATED_CLI_SETTINGS,t):e.reportWarning(h.b.DEPRECATED_CLI_SETTINGS,t)});return n.hasErrors()?n.exitCode():null};if(void 0!==this.ignoreEngines){const e=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!t});if(null!==e)return e}if(void 0!==this.registry){const e=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(null!==e)return e}if(void 0!==this.preferOffline){const e=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!t});if(null!==e)return e}if(void 0!==this.frozenLockfile){const e=await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!0});if(null!==e)return e}if(void 0!==this.cacheFolder){const e=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!r});if(null!==e)return e}const i=void 0===this.immutable&&void 0===this.frozenLockfile?e.get("enableImmutableInstalls"):this.immutable||this.frozenLockfile;if(null!==e.projectCwd){const t=await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async t=>{await async function(e,t){if(!e.projectCwd)return!1;const r=y.y1.join(e.projectCwd,e.get("lockfileFilename"));if(!await R.xfs.existsPromise(r))return!1;const n=await R.xfs.readFilePromise(r,"utf8");if(!n.includes("<<<<<<<"))return!1;if(t)throw new $.lk(h.b.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");const[i,o]=function(e){const t=[[],[]],r=e.split(/\r?\n/g);let n=!1;for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith("<<<<<<<")){for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if("======="===e){n=!1;break}n||e.startsWith("|||||||")?n=!0:t[0].push(e)}for(;r.length>0;){const e=r.shift();if(void 0===e)throw new Error("Assertion failed: Some lines should remain");if(e.startsWith(">>>>>>>"))break;t[1].push(e)}}else t[0].push(e),t[1].push(e)}return[t[0].join("\n"),t[1].join("\n")]}(n);let s,A;try{s=(0,ee.parseSyml)(i),A=(0,ee.parseSyml)(o)}catch(e){throw new $.lk(h.b.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}const a={...s,...A};for(const[e,t]of Object.entries(a))"string"==typeof t&&delete a[e];return await R.xfs.changeFilePromise(r,(0,ee.stringifySyml)(a),{automaticNewlines:!0}),!0}(e,i)&&t.reportInfo(h.b.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts 👍")});if(t.hasErrors())return t.exitCode()}const{project:o,workspace:s}=await g.I.find(e,this.context.cwd),a=await u.C.find(e,{immutable:this.immutableCache,check:this.checkCache});if(!s)throw new c.WorkspaceRequiredError(o.cwd,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async e=>{await o.install({cache:a,report:e,immutable:i})})).exitCode()}}te.usage=d.Command.Usage({description:"install the project dependencies",details:"\n      This command setup your project if needed. The installation is splitted in four different steps that each have their own characteristics:\n\n      - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n      - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where are stored the cache files).\n\n      - **Link:** Then we send the dependency tree information to internal plugins tasked from writing them on the disk in some form (for example by generating the .pnp.js file you might know).\n\n      - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another.\n\n      Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.js file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n      If the `--immutable` option is set, Yarn will abort with an error exit code if anything in the install artifacts (`yarn.lock`, `.pnp.js`, ...) was to be modified. For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n      If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n      If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n      If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]}),(0,a.gn)([d.Command.Boolean("--json")],te.prototype,"json",void 0),(0,a.gn)([d.Command.Boolean("--immutable")],te.prototype,"immutable",void 0),(0,a.gn)([d.Command.Boolean("--immutable-cache")],te.prototype,"immutableCache",void 0),(0,a.gn)([d.Command.Boolean("--check-cache")],te.prototype,"checkCache",void 0),(0,a.gn)([d.Command.Boolean("--frozen-lockfile",{hidden:!0})],te.prototype,"frozenLockfile",void 0),(0,a.gn)([d.Command.Boolean("--prefer-offline",{hidden:!0})],te.prototype,"preferOffline",void 0),(0,a.gn)([d.Command.Boolean("--ignore-engines",{hidden:!0})],te.prototype,"ignoreEngines",void 0),(0,a.gn)([d.Command.String("--registry",{hidden:!0})],te.prototype,"registry",void 0),(0,a.gn)([d.Command.Boolean("--inline-builds")],te.prototype,"inlineBuilds",void 0),(0,a.gn)([d.Command.String("--cache-folder",{hidden:!0})],te.prototype,"cacheFolder",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],te.prototype,"silent",void 0),(0,a.gn)([d.Command.Path(),d.Command.Path("install")],te.prototype,"execute",null);class re extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.private=!1,this.relative=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.destination)),o=await A.VK.find(i,this.context.plugins),{project:s,workspace:a}=await g.I.find(o,i);if(!a)throw new c.WorkspaceRequiredError(s.cwd,i);const l=t.topLevelWorkspace,h=[];if(this.all){for(const e of s.workspaces)!e.manifest.name||e.manifest.private&&!this.private||h.push(e);if(0===h.length)throw new d.UsageError("No workspace found to be linked in the target project")}else{if(!a.manifest.name)throw new d.UsageError("The target workspace doesn't have a name and thus cannot be linked");if(a.manifest.private&&!this.private)throw new d.UsageError("The target workspace is marked private - use the --private flag to link it anyway");h.push(a)}for(const e of h){const r=p.structUtils.stringifyIdent(e.locator),n=this.relative?y.y1.relative(t.cwd,e.cwd):e.cwd;l.manifest.resolutions.push({pattern:{descriptor:{fullName:r}},reference:"portal:"+n})}return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}re.usage=d.Command.Usage({description:"connect the local project to another one",details:"\n      This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n\n      If the `--all` option is set, all workspaces belonging to the target project will be linked to the current one.\n\n      There is no `yarn unlink` command. To unlink the workspaces from the current project one must revert the changes made to the `resolutions` field.\n    ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]}),(0,a.gn)([d.Command.String()],re.prototype,"destination",void 0),(0,a.gn)([d.Command.Boolean("--all")],re.prototype,"all",void 0),(0,a.gn)([d.Command.Boolean("-p,--private")],re.prototype,"private",void 0),(0,a.gn)([d.Command.Boolean("-r,--relative")],re.prototype,"relative",void 0),(0,a.gn)([d.Command.Path("link")],re.prototype,"execute",null);class ne extends c.BaseCommand{constructor(){super(...arguments),this.args=[]}async execute(){return this.cli.run(["exec","node",...this.args])}}ne.usage=d.Command.Usage({description:"run node with the hook already setup",details:"\n      This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).\n\n      The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.\n    ",examples:[["Run a Node script","$0 node ./my-script.js"]]}),(0,a.gn)([d.Command.Proxy()],ne.prototype,"args",void 0),(0,a.gn)([d.Command.Path("node")],ne.prototype,"execute",null);var ie=r(12087),oe=r(85622),se=r.n(oe);class Ae extends c.BaseCommand{constructor(){super(...arguments),this.onlyIfNeeded=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t;if("latest"===this.version||"berry"===this.version)t="https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js";else if("classic"===this.version)t="https://nightly.yarnpkg.com/latest.js";else if(p.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))t=`https://github.com/yarnpkg/berry/raw/%40yarnpkg/cli/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else{if(!p.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))throw B().validRange(this.version)?new d.UsageError("Support for ranges got removed - please use the exact version you want to install, or 'latest' to get the latest build available"):new d.UsageError(`Invalid version descriptor "${this.version}"`);t=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`}return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{r.reportInfo(h.b.UNNAMED,"Downloading "+e.format(t,"green"));const n=await p.httpUtils.get(t,{configuration:e});await ae(e,null,n,{report:r})})).exitCode()}}async function ae(e,t,r,{report:n}){const i=e.projectCwd?e.projectCwd:e.startingCwd;null===t&&await R.xfs.mktempPromise(async e=>{const n=y.y1.join(e,"yarn.cjs");await R.xfs.writeFilePromise(n,r);const{stdout:o}=await p.execUtils.execvp(process.execPath,[y.cS.fromPortablePath(n),"--version"],{cwd:i,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(t=o.trim(),!B().valid(t))throw new Error("Invalid semver version")});const o=y.y1.resolve(i,".yarn/releases"),s=y.y1.resolve(o,`yarn-${t}.cjs`),a=y.y1.relative(e.startingCwd,s),c=y.y1.relative(i,s),u=e.get("yarnPath"),l=null===u||u.startsWith(o+"/");n.reportInfo(h.b.UNNAMED,"Saving the new release in "+e.format(a,"magenta")),await R.xfs.removePromise(y.y1.dirname(s)),await R.xfs.mkdirpPromise(y.y1.dirname(s)),await R.xfs.writeFilePromise(s,r),await R.xfs.chmodPromise(s,493),l&&await A.VK.updateConfiguration(i,{yarnPath:c})}Ae.usage=d.Command.Usage({description:"lock the Yarn version used by the project",details:"\n      This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n      A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n    ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"]]}),(0,a.gn)([d.Command.Boolean("--only-if-needed")],Ae.prototype,"onlyIfNeeded",void 0),(0,a.gn)([d.Command.String()],Ae.prototype,"version",void 0),(0,a.gn)([d.Command.Path("policies","set-version"),d.Command.Path("set","version")],Ae.prototype,"execute",null);const ce=/^[0-9]+$/;function ue(e){return ce.test(e)?`pull/${e}/head`:e}class le extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.plugins=[],this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh bundle"),r.reportSeparator(),await he((({plugins:e,noMinify:t},r)=>[["yarn","build:cli",...(new Array).concat(...e.map(e=>["--plugin",se().resolve(r,e)])),...t?["--no-minify"]:[],"|"]])(this,t),{configuration:e,context:this.context,target:t}),r.reportSeparator();const n=y.y1.resolve(t,"packages/yarnpkg-cli/bundles/yarn.js"),i=await R.xfs.readFilePromise(n);await ae(e,"sources",i,{report:r})})).exitCode()}}async function he(e,{configuration:t,context:r,target:n}){for(const[i,...o]of e){const e="|"===o[o.length-1];if(e&&o.pop(),e)await p.execUtils.pipevp(i,o,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(t.format("  $ "+[i,...o].join(" "),"grey")+"\n");try{await p.execUtils.execvp(i,o,{cwd:n,strict:!0})}catch(e){throw r.stdout.write(e.stdout||e.stack),e}}}}async function ge(e,{configuration:t,report:r,target:n}){let i=!1;if(!e.force&&R.xfs.existsSync(y.y1.join(n,".git"))){r.reportInfo(h.b.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await he((({branch:e})=>[["git","fetch","origin",ue(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]])(e),{configuration:t,context:e.context,target:n}),i=!0}catch(e){r.reportSeparator(),r.reportWarning(h.b.UNNAMED,"Repository update failed; we'll try to regenerate it")}}i||(r.reportInfo(h.b.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await R.xfs.removePromise(n),await R.xfs.mkdirpPromise(n),await he((({repository:e,branch:t},r)=>[["git","init",y.cS.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin",ue(t)],["git","reset","--hard","FETCH_HEAD"]])(e,n),{configuration:t,context:e.context,target:n}))}le.usage=d.Command.Usage({description:"build Yarn from master",details:"\n      This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.\n    ",examples:[["Build Yarn from master","$0 set version from sources"]]}),(0,a.gn)([d.Command.String("--path")],le.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],le.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],le.prototype,"branch",void 0),(0,a.gn)([d.Command.Array("--plugin")],le.prototype,"plugins",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],le.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],le.prototype,"force",void 0),(0,a.gn)([d.Command.Path("set","version","from","sources")],le.prototype,"execute",null);var fe=r(92184);async function pe(e){const t=await p.httpUtils.get("https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml",{configuration:e});return(0,ee.parseSyml)(t.toString())}class de extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{const r=await pe(e);for(const[e,{experimental:n,...i}]of Object.entries(r)){let r=e;n&&(r+=" [experimental]"),t.reportJson({name:e,experimental:n,...i}),t.reportInfo(null,r)}})).exitCode()}}de.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n      This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n    ",examples:[["List the official plugins","$0 plugin list"]]}),(0,a.gn)([d.Command.Boolean("--json")],de.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","list")],de.prototype,"execute",null);class Ce extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const{project:r}=await g.I.find(e,this.context.cwd);let n,i;if(this.name.match(/^\.{0,2}[\\/]/)||y.cS.isAbsolute(this.name)){const o=y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.name));t.reportInfo(h.b.UNNAMED,"Reading "+e.format(o,"green")),n=y.y1.relative(r.cwd,o),i=await R.xfs.readFilePromise(o)}else{let r;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch(e){throw new $.lk(h.b.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}n=this.name,r=this.name}else{const t=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),i=p.structUtils.stringifyIdent(t),o=await pe(e);if(!Object.prototype.hasOwnProperty.call(o,i))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${i}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);n=i,r=o[i].url}t.reportInfo(h.b.UNNAMED,"Downloading "+e.format(r,"green")),i=await p.httpUtils.get(r,{configuration:e})}await Ee(n,i,{project:r,report:t})})).exitCode()}}async function Ee(e,t,{project:r,report:n}){const{configuration:i}=r,o={},s={exports:o};(0,fe.runInNewContext)(t.toString(),{module:s,exports:o});const a=s.exports.name,c=`.yarn/plugins/${a}.cjs`,u=y.y1.resolve(r.cwd,c);n.reportInfo(h.b.UNNAMED,"Saving the new plugin in "+i.format(c,"magenta")),await R.xfs.mkdirpPromise(y.y1.dirname(u)),await R.xfs.writeFilePromise(u,t);const l={path:c,spec:e};await A.VK.updateConfiguration(r.cwd,e=>{const t=[];let n=!1;for(const i of e.plugins||[]){const e="string"!=typeof i?i.path:i,o=y.y1.resolve(r.cwd,y.cS.toPortablePath(e)),{name:s}=p.miscUtils.dynamicRequire(y.cS.fromPortablePath(o));s!==a?t.push(i):(t.push(l),n=!0)}return n||t.push(l),{plugins:t}})}Ce.usage=d.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:"\n      This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.\n\n      Three types of plugin references are accepted:\n\n      - If the plugin is stored within the Yarn repository, it can be referenced by name.\n      - Third-party plugins can be referenced directly through their public urls.\n      - Local plugins can be referenced by their path on the disk.\n\n      Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the `@yarnpkg/builder` package).\n    ",examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]}),(0,a.gn)([d.Command.String()],Ce.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","import")],Ce.prototype,"execute",null);class Ie extends c.BaseCommand{constructor(){super(...arguments),this.repository="https://github.com/yarnpkg/berry.git",this.branch="master",this.noMinify=!1,this.force=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),t=void 0!==this.installPath?y.y1.resolve(this.context.cwd,y.cS.toPortablePath(this.installPath)):y.y1.resolve(y.cS.toPortablePath((0,ie.tmpdir)()),"yarnpkg-sources",p.hashUtils.makeHash(this.repository).slice(0,6));return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const{project:n}=await g.I.find(e,this.context.cwd),i=p.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),o=p.structUtils.stringifyIdent(i),s=await pe(e);if(!Object.prototype.hasOwnProperty.call(s,o))throw new $.lk(h.b.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${o}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);const A=o,a=A.replace(/@yarnpkg\//,"");await ge(this,{configuration:e,report:r,target:t}),r.reportSeparator(),r.reportInfo(h.b.UNNAMED,"Building a fresh "+a),r.reportSeparator(),await he((({pluginName:e,noMinify:t},r)=>[["yarn","build:"+e,...t?["--no-minify"]:[],"|"]])({pluginName:a,noMinify:this.noMinify}),{configuration:e,context:this.context,target:t}),r.reportSeparator();const c=y.y1.resolve(t,`packages/${a}/bundles/${A}.js`),u=await R.xfs.readFilePromise(c);await Ee(A,u,{project:n,report:r})})).exitCode()}}Ie.usage=d.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:"\n      This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.\n\n      The plugins can be referenced by their short name if sourced from the official Yarn repository.\n    ",examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]}),(0,a.gn)([d.Command.String()],Ie.prototype,"name",void 0),(0,a.gn)([d.Command.String("--path")],Ie.prototype,"installPath",void 0),(0,a.gn)([d.Command.String("--repository")],Ie.prototype,"repository",void 0),(0,a.gn)([d.Command.String("--branch")],Ie.prototype,"branch",void 0),(0,a.gn)([d.Command.Boolean("--no-minify")],Ie.prototype,"noMinify",void 0),(0,a.gn)([d.Command.Boolean("-f,--force")],Ie.prototype,"force",void 0),(0,a.gn)([d.Command.Path("plugin","import","from","sources")],Ie.prototype,"execute",null);class me extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async r=>{const n=this.name,i=p.structUtils.parseIdent(n);if(!e.plugins.has(n))throw new d.UsageError(p.structUtils.prettyIdent(e,i)+" isn't referenced by the current configuration");const o=`.yarn/plugins/${n}.cjs`,s=y.y1.resolve(t.cwd,o);R.xfs.existsSync(s)&&(r.reportInfo(h.b.UNNAMED,`Removing ${e.format(o,A.a5.PATH)}...`),await R.xfs.removePromise(s)),r.reportInfo(h.b.UNNAMED,"Updating the configuration..."),await A.VK.updateConfiguration(t.cwd,e=>{if(!Array.isArray(e.plugins))return{};return{plugins:e.plugins.filter(e=>e.path!==o)}})})).exitCode()}}me.usage=d.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:"\n      This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.\n\n      **Note:** The plugins have to be referenced by their name property, which can be obtained using the `yarn plugin runtime` command. Shorthands are not allowed.\n   ",examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]}),(0,a.gn)([d.Command.String()],me.prototype,"name",void 0),(0,a.gn)([d.Command.Path("plugin","remove")],me.prototype,"execute",null);class ye extends c.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async t=>{for(const r of e.plugins.keys()){const e=this.context.plugins.plugins.has(r);let n=r;e&&(n+=" [builtin]"),t.reportJson({name:r,builtin:e}),t.reportInfo(null,""+n)}})).exitCode()}}ye.usage=d.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:"\n      This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.\n    ",examples:[["List the currently active plugins","$0 plugin runtime"]]}),(0,a.gn)([d.Command.Boolean("--json")],ye.prototype,"json",void 0),(0,a.gn)([d.Command.Path("plugin","runtime")],ye.prototype,"execute",null);class we extends c.BaseCommand{constructor(){super(...arguments),this.idents=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=new Set;for(const e of this.idents)i.add(p.structUtils.parseIdent(e).identHash);await t.resolveEverything({cache:n,report:new I.$});const o=e.get("bstatePath"),s=R.xfs.existsSync(o)?(0,ee.parseSyml)(await R.xfs.readFilePromise(o,"utf8")):{},a=new Map;for(const e of t.storedPackages.values()){if(!Object.prototype.hasOwnProperty.call(s,e.locatorHash))continue;if(0===i.size||i.has(e.identHash))continue;const t=s[e.locatorHash];a.set(e.locatorHash,t)}if(a.size>0){const r=e.get("bstatePath"),n=g.I.generateBuildStateFile(a,t.storedPackages);await R.xfs.mkdirpPromise(y.y1.dirname(r)),await R.xfs.changeFilePromise(r,n,{automaticNewlines:!0})}else await R.xfs.removePromise(o);return(await f.P.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async e=>{await t.install({cache:n,report:e})})).exitCode()}}we.usage=d.Command.Usage({description:"rebuild the project's native packages",details:"\n      This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.\n\n      Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).\n\n      By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.\n    ",examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]}),(0,a.gn)([d.Command.Rest()],we.prototype,"idents",void 0),(0,a.gn)([d.Command.Path("rebuild")],we.prototype,"execute",null);var Be=r(2401),Qe=r.n(Be);class ve extends c.BaseCommand{constructor(){super(...arguments),this.all=!1,this.patterns=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=this.all?t.workspaces:[r],s=[i.REGULAR,i.DEVELOPMENT,i.PEER],a=[];let l=!1;const h=[];for(const e of this.patterns){let t=!1;const r=p.structUtils.parseIdent(e);for(const n of o){const i=[...n.manifest.peerDependenciesMeta.keys()];for(const r of Qe()(i,e))n.manifest.peerDependenciesMeta.delete(r),l=!0,t=!0;for(const e of s){const i=n.manifest.getForScope(e),o=[...i.values()].map(e=>p.structUtils.stringifyIdent(e));for(const s of Qe()(o,p.structUtils.stringifyIdent(r))){const{identHash:r}=p.structUtils.parseIdent(s),o=i.get(r);if(void 0===o)throw new Error("Assertion failed: Expected the descriptor to be registered");n.manifest[e].delete(r),h.push([n,e,o]),l=!0,t=!0}}}t||a.push(e)}const C=a.length>1?"Patterns":"Pattern",E=a.length>1?"don't":"doesn't",I=this.all?"any":"this";if(a.length>0)throw new d.UsageError(`${C} ${a.join(", ")} ${E} match packages referenced by ${I} workspace`);if(l){await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyRemoval,h);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}return 0}}ve.usage=d.Command.Usage({description:"remove dependencies from the project",details:"\n      This command will remove the packages matching the specified patterns from the current workspace.\n\n      If the `-A,--all` option is set, the operation will be applied to all workspaces from the current project.\n\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n    ",examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]}),(0,a.gn)([d.Command.Boolean("-A,--all")],ve.prototype,"all",void 0),(0,a.gn)([d.Command.Rest()],ve.prototype,"patterns",void 0),(0,a.gn)([d.Command.Path("remove")],ve.prototype,"execute",null);class De extends c.BaseCommand{async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);return(await f.P.start({configuration:e,stdout:this.context.stdout},async t=>{const n=r.manifest.scripts,i=p.miscUtils.sortMap(n.keys(),e=>e),o={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},s=i.reduce((e,t)=>Math.max(e,t.length),0);for(const[e,r]of n.entries())t.reportInfo(null,`${e.padEnd(s," ")}   ${(0,P.inspect)(r,o)}`)})).exitCode()}}(0,a.gn)([d.Command.Path("run")],De.prototype,"execute",null);const be=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["interactive-tools",[["upgrade-interactive"]]],["stage",[["stage"]]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","foreach"],["workspace"]]]]);class Se extends c.BaseCommand{constructor(){super(...arguments),this.inspect=!1,this.inspectBrk=!1,this.topLevel=!1,this.binariesOnly=!1,this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r,locator:n}=await g.I.find(e,this.context.cwd);await t.restoreInstallState();const i=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await p.scriptUtils.hasPackageScript(i,this.scriptName,{project:t}))return await p.scriptUtils.executePackageScript(i,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if((await p.scriptUtils.getPackageAccessibleBinaries(i,{project:t})).get(this.scriptName)){const e=[];return this.inspect&&("string"==typeof this.inspect?e.push("--inspect="+this.inspect):e.push("--inspect")),this.inspectBrk&&("string"==typeof this.inspectBrk?e.push("--inspect-brk="+this.inspectBrk):e.push("--inspect-brk")),await p.scriptUtils.executePackageAccessibleBinary(i,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:e})}if(!this.topLevel&&!this.binariesOnly&&r&&this.scriptName.includes(":")){const e=(await Promise.all(t.workspaces.map(async e=>e.manifest.scripts.has(this.scriptName)?e:null))).filter(e=>null!==e);if(1===e.length)return await p.scriptUtils.executeWorkspaceScript(e[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw"node-gyp"===this.scriptName?new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new d.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${p.structUtils.prettyLocator(e,n)}).`);{if("global"===this.scriptName)throw new d.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");const e=[this.scriptName].concat(this.args);for(const[t,r]of be)for(const n of r)if(e.length>=n.length&&JSON.stringify(e.slice(0,n.length))===JSON.stringify(n))throw new d.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${t} plugin. You can install it with "yarn plugin import ${t}".`);throw new d.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}}Se.usage=d.Command.Usage({description:"run a script defined in the package.json",details:"\n      This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:\n\n      - If the `scripts` field from your local package.json contains a matching script name, its definition will get executed.\n\n      - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed (the `--inspect` and `--inspect-brk` options will then be forwarded to the underlying Node process).\n\n      - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.\n\n      Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).\n    ",examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]}),(0,a.gn)([d.Command.String("--inspect",{tolerateBoolean:!0})],Se.prototype,"inspect",void 0),(0,a.gn)([d.Command.String("--inspect-brk",{tolerateBoolean:!0})],Se.prototype,"inspectBrk",void 0),(0,a.gn)([d.Command.Boolean("-T,--top-level",{hidden:!0})],Se.prototype,"topLevel",void 0),(0,a.gn)([d.Command.Boolean("-B,--binaries-only",{hidden:!0})],Se.prototype,"binariesOnly",void 0),(0,a.gn)([d.Command.Boolean("--silent",{hidden:!0})],Se.prototype,"silent",void 0),(0,a.gn)([d.Command.String()],Se.prototype,"scriptName",void 0),(0,a.gn)([d.Command.Proxy()],Se.prototype,"args",void 0),(0,a.gn)([d.Command.Path("run")],Se.prototype,"execute",null);class ke extends c.BaseCommand{constructor(){super(...arguments),this.save=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const i=p.structUtils.parseDescriptor(this.descriptor,!0),o=p.structUtils.makeDescriptor(i,this.resolution);t.storedDescriptors.set(i.descriptorHash,i),t.storedDescriptors.set(o.descriptorHash,o),t.resolutionAliases.set(i.descriptorHash,o.descriptorHash);return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}ke.usage=d.Command.Usage({description:"enforce a package resolution",details:'\n      This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n      Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n      Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n    ',examples:[["Force all instances of lodash@^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@^1.2.3 1.5.0"]]}),(0,a.gn)([d.Command.String()],ke.prototype,"descriptor",void 0),(0,a.gn)([d.Command.String()],ke.prototype,"resolution",void 0),(0,a.gn)([d.Command.Boolean("-s,--save")],ke.prototype,"save",void 0),(0,a.gn)([d.Command.Path("set","resolution")],ke.prototype,"execute",null);class xe extends c.BaseCommand{constructor(){super(...arguments),this.patterns=[],this.interactive=!1,this.verbose=!1,this.exact=!1,this.tilde=!1,this.caret=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd),n=await u.C.find(e);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=E().createPromptModule({input:this.context.stdin,output:this.context.stdout}),a=Q(this,t),C=this.interactive?[s.KEEP,s.REUSE,s.PROJECT,s.LATEST]:[s.PROJECT,s.LATEST],I=[],m=[];for(const e of this.patterns){let r=!1;const o=p.structUtils.parseDescriptor(e);for(const e of t.workspaces)for(const s of[i.REGULAR,i.DEVELOPMENT]){const i=[...e.manifest.getForScope(s).values()].map(e=>p.structUtils.stringifyIdent(e));for(const A of Qe()(i,p.structUtils.stringifyIdent(o))){const i=p.structUtils.parseIdent(A),c=e.manifest[s].get(i.identHash);if(void 0===c)throw new Error("Assertion failed: Expected the descriptor to be registered");const u=p.structUtils.makeDescriptor(i,o.range);I.push(Promise.resolve().then(async()=>[e,s,c,await x(u,{project:t,workspace:e,cache:n,target:s,modifier:a,strategies:C})])),r=!0}}r||m.push(e)}if(m.length>1)throw new d.UsageError(`Patterns ${m.join(", ")} don't match any packages referenced by any workspace`);if(m.length>0)throw new d.UsageError(`Pattern ${m[0]} doesn't match any packages referenced by any workspace`);const y=await Promise.all(I),w=await l.h.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async r=>{for(const[,,n,i]of y){const o=i.filter(e=>null!==e.descriptor);0===o.length?t.configuration.get("enableNetwork")?r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range"):r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" can't be resolved to a satisfying range (note: network resolution has been disabled)"):o.length>1&&!this.interactive&&r.reportError(h.b.CANT_SUGGEST_RESOLUTIONS,p.structUtils.prettyDescriptor(e,n)+" has multiple possible upgrade strategies; use -i to disambiguate manually")}});if(w.hasErrors())return w.exitCode();let B=!1;const v=[];for(const[r,n,,i]of y){let s;const A=i.filter(e=>null!==e.descriptor),a=A[0].descriptor,c=A.every(e=>p.structUtils.areDescriptorsEqual(e.descriptor,a));1===A.length||c?s=a:(B=!0,({answer:s}=await o({type:"list",name:"answer",message:`Which range to you want to use in ${p.structUtils.prettyWorkspace(e,r)} ❯ ${n}?`,choices:i.map(({descriptor:e,reason:r})=>e?{name:r,value:e,short:p.structUtils.prettyDescriptor(t.configuration,e)}:{name:r,disabled:()=>!0})})));const u=r.manifest[n].get(s.identHash);if(void 0===u)throw new Error("Assertion failed: This descriptor should have a matching entry");if(u.descriptorHash!==s.descriptorHash)r.manifest[n].set(s.identHash,s),v.push([r,n,u,s]);else{const n=e.makeResolver(),i={project:t,resolver:n},o=n.bindDescriptor(u,r.anchoredLocator,i);t.forgetResolution(o)}}await e.triggerMultipleHooks(e=>e.afterWorkspaceDependencyReplacement,v),B&&this.context.stdout.write("\n");return(await f.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:n,report:e})})).exitCode()}}xe.usage=d.Command.Usage({description:"upgrade dependencies across the project",details:"\n      This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n      If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n      The, `-C,--caret`, `-E,--exact` and  `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n      This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n      **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n    ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),(0,a.gn)([d.Command.Rest()],xe.prototype,"patterns",void 0),(0,a.gn)([d.Command.Boolean("-i,--interactive")],xe.prototype,"interactive",void 0),(0,a.gn)([d.Command.Boolean("-v,--verbose")],xe.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("-E,--exact")],xe.prototype,"exact",void 0),(0,a.gn)([d.Command.Boolean("-T,--tilde")],xe.prototype,"tilde",void 0),(0,a.gn)([d.Command.Boolean("-C,--caret")],xe.prototype,"caret",void 0),(0,a.gn)([d.Command.Path("up")],xe.prototype,"execute",null);var Fe=r(94682);class Me extends c.BaseCommand{constructor(){super(...arguments),this.recursive=!1,this.peers=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const n=p.structUtils.parseIdent(this.package).identHash,i=this.recursive?function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.workspaces,e=>p.structUtils.stringifyLocator(e.anchoredLocator)),o=new Set,s=new Set,A=r=>{if(o.has(r.locatorHash))return s.has(r.locatorHash);if(o.add(r.locatorHash),r.identHash===t)return s.add(r.locatorHash),!0;let i=!1;r.identHash===t&&(i=!0);for(const t of r.dependencies.values()){if(!n&&r.peerDependencies.has(t.identHash))continue;const o=e.storedResolutions.get(t.descriptorHash);if(!o)throw new Error("Assertion failed: The resolution should have been registered");const s=e.storedPackages.get(o);if(!s)throw new Error("Assertion failed: The package should have been registered");A(s)&&(i=!0)}return i&&s.add(r.locatorHash),i};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");A(r)}const a=new Set,c={},u=(t,i,o)=>{if(!s.has(t.locatorHash))return;const A={};if(i[null!==o?`${p.structUtils.prettyLocator(r,t)} (via ${p.structUtils.prettyRange(r,o)})`:""+p.structUtils.prettyLocator(r,t)]=A,!a.has(t.locatorHash)&&(a.add(t.locatorHash),null===o||!e.tryWorkspaceByLocator(t)))for(const r of t.dependencies.values()){if(!n&&t.peerDependencies.has(r.identHash))continue;const i=e.storedResolutions.get(r.descriptorHash);if(!i)throw new Error("Assertion failed: The resolution should have been registered");const o=e.storedPackages.get(i);if(!o)throw new Error("Assertion failed: The package should have been registered");u(o,A,r.range)}};for(const t of i){const r=e.storedPackages.get(t.anchoredLocator.locatorHash);if(!r)throw new Error("Assertion failed: The package should have been registered");u(r,c,null)}return c}(t,n,{configuration:e,peers:this.peers}):function(e,t,{configuration:r,peers:n}){const i=p.miscUtils.sortMap(e.storedPackages.values(),e=>p.structUtils.stringifyLocator(e)),o={};for(const s of i){let i=null;for(const A of s.dependencies.values()){if(!n&&s.peerDependencies.has(A.identHash))continue;const a=e.storedResolutions.get(A.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");const c=e.storedPackages.get(a);if(!c)throw new Error("Assertion failed: The package should have been registered");if(c.identHash!==t)continue;if(null===i){i={};const e=""+p.structUtils.prettyLocator(r,s);o[e]=i}const u=`${p.structUtils.prettyLocator(r,c)} (via ${p.structUtils.prettyRange(r,A.range)})`;i[u]={}}}return o}(t,n,{configuration:e,peers:this.peers});!function(e,t){let r=(0,Fe.asTree)(t,!1,!1);r=r.replace(/^([├└]─)/gm,"│\n$1").replace(/^│\n/,""),e.write(r)}(this.context.stdout,i)}}Me.usage=d.Command.Usage({description:"display the reason why a package is needed",details:'\n      This command prints the exact reasons why a package appears in the dependency tree.\n\n      If `-R,--recursive` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.\n\n      If `--peers` is set, the command will also print the peer dependencies that match the specified name.\n    ',examples:[["Explain why lodash is used in your project","$0 why lodash"]]}),(0,a.gn)([d.Command.String()],Me.prototype,"package",void 0),(0,a.gn)([d.Command.Boolean("-R,--recursive")],Me.prototype,"recursive",void 0),(0,a.gn)([d.Command.Boolean("--peers")],Me.prototype,"peers",void 0),(0,a.gn)([d.Command.Path("why")],Me.prototype,"execute",null);class Ne extends c.BaseCommand{constructor(){super(...arguments),this.verbose=!1,this.json=!1}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t}=await g.I.find(e,this.context.cwd);return(await f.P.start({configuration:e,json:this.json,stdout:this.context.stdout},async e=>{for(const r of t.workspaces){const{manifest:n}=r;let i;if(this.verbose){const e=new Set,r=new Set;for(const i of m.G.hardDependencies)for(const[o,s]of n.getForScope(i)){const n=t.tryWorkspaceByDescriptor(s);null===n?t.workspacesByIdent.has(o)&&r.add(s):e.add(n)}i={workspaceDependencies:Array.from(e).map(e=>e.relativeCwd),mismatchedWorkspaceDependencies:Array.from(r).map(e=>p.structUtils.stringifyDescriptor(e))}}e.reportInfo(null,""+r.relativeCwd),e.reportJson({location:r.relativeCwd,name:n.name?p.structUtils.stringifyIdent(n.name):null,...i})}})).exitCode()}}Ne.usage=d.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n      This command will print the list of all workspaces in the project. If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    "}),(0,a.gn)([d.Command.Boolean("-v,--verbose")],Ne.prototype,"verbose",void 0),(0,a.gn)([d.Command.Boolean("--json")],Ne.prototype,"json",void 0),(0,a.gn)([d.Command.Path("workspaces","list")],Ne.prototype,"execute",null);class Re extends d.Command{constructor(){super(...arguments),this.args=[]}async execute(){const e=await A.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await g.I.find(e,this.context.cwd);if(!r)throw new c.WorkspaceRequiredError(t.cwd,this.context.cwd);const n=t.workspaces,i=new Map(n.map(e=>{const t=p.structUtils.convertToIdent(e.locator);return[p.structUtils.stringifyIdent(t),e]})),o=i.get(this.workspaceName);if(void 0===o){const e=Array.from(i.keys()).sort();throw new d.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:\n  - ${e.join("\n  - ")}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}}Re.usage=d.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:"\n      This command will run a given sub-command on a single workspace.\n    ",examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]}),(0,a.gn)([d.Command.String()],Re.prototype,"workspaceName",void 0),(0,a.gn)([d.Command.String()],Re.prototype,"commandName",void 0),(0,a.gn)([d.Command.Proxy()],Re.prototype,"args",void 0),(0,a.gn)([d.Command.Path("workspace")],Re.prototype,"execute",null);const Ke={configuration:{enableImmutableInstalls:{description:"If true, prevents the install command from modifying the lockfile",type:A.a2.BOOLEAN,default:!1},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:A.a2.STRING,default:o.CARET}},commands:[K,U,J,ke,le,Ae,Ne,q,z,W,X,M,N,H,Z,te,re,ne,Ie,Ce,me,de,ye,we,ve,De,Se,xe,Me,Re]}},41466:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(84132),i=r(46009),o=r(75448);const s=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,A=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;var a=r(46611),c=r(32485);const u={fetchers:[class{supports(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s),l=await c.readFilePromise(u);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1}),a.releaseFs)}},class{supports(e,t){return!!e.reference.startsWith("file:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async fetchFromDisk(e,t){const{parentLocator:r,path:s}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"file:"}),A=i.y1.isAbsolute(s)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),a=A.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,A.localPath)}:A;A!==a&&A.releaseFs&&A.releaseFs();const c=a.packageFs,u=i.y1.join(a.prefixPath,s);return await n.miscUtils.releaseAfterUseAsync(async()=>await n.tgzUtils.makeArchiveFromDirectory(u,{baseFs:c,prefixPath:n.structUtils.getIdentVendorPath(e),compressionLevel:t.project.configuration.get("compressionLevel")}),a.releaseFs)}}],resolvers:[class{supportsDescriptor(e,t){return!!A.test(e.range)&&(!!e.range.startsWith("file:")||!!s.test(e.range))}supportsLocator(e,t){return!!A.test(e.reference)&&!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}},class{supportsDescriptor(e,t){return!!e.range.match(s)||!!e.range.startsWith("file:")}supportsLocator(e,t){return!!e.reference.startsWith("file:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return s.test(e.range)&&(e=n.structUtils.makeDescriptor(e,"file:"+e.range)),n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let o=e.range;return o.startsWith("file:")&&(o=o.slice("file:".length)),[n.structUtils.makeLocator(e,"file:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await a.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:c.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},10284:(e,t,r)=>{"use strict";r.r(t),r.d(t,{gitUtils:()=>n,default:()=>B});var n={};r.r(n),r.d(n,{TreeishProtocols:()=>g,clone:()=>m,isGitUrl:()=>f,lsRemote:()=>E,normalizeLocator:()=>C,normalizeRepoUrl:()=>d,resolveUrl:()=>I,splitRepoUrl:()=>p});var i=r(84132),o=r(46009),s=r(56537),A=r(71191),a=r.n(A),c=r(53887),u=r.n(c);function l(){return{...process.env,GIT_SSH_COMMAND:"ssh -o BatchMode=yes"}}const h=[/^ssh:/,/^git(?:\+ssh)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^(?:git\+)https?:[^#]+\/[^#]+(?:\.git)?(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/];var g;function f(e){return!!e&&h.some(t=>!!e.match(t))}function p(e){const t=(e=d(e)).indexOf("#");if(-1===t)return{repo:e,treeish:{protocol:g.Head,request:"master"},extra:{}};const r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){const e=a().parse(n);for(const[t,r]of Object.entries(e))if("string"!=typeof r)throw new Error(`Assertion failed: The ${t} parameter must be a literal string`);const t=Object.values(g).find(t=>Object.prototype.hasOwnProperty.call(e,t));let i,o;void 0!==t?(i=t,o=e[t]):(i=g.Head,o="master");for(const t of Object.values(g))delete e[t];return{repo:r,treeish:{protocol:i,request:o},extra:e}}{const e=n.indexOf(":");let t,i;return-1===e?(t=null,i=n):(t=n.slice(0,e),i=n.slice(e+1)),{repo:r,treeish:{protocol:t,request:i},extra:{}}}}function d(e){return e=(e=(e=e.replace(/^git\+https:/,"https:")).replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3")).replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3")}function C(e){return i.structUtils.makeLocator(e,d(e.reference))}async function E(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);let r;try{r=await i.execUtils.execvp("git",["ls-remote","--refs",d(e)],{cwd:t.startingCwd,env:l(),strict:!0})}catch(t){throw t.message=`Listing the refs for ${e} failed`,t}const n=new Map,o=/^([a-f0-9]{40})\t(refs\/[^\n]+)/gm;let s;for(;null!==(s=o.exec(r.stdout));)n.set(s[2],s[1]);return n}async function I(e,t){const{repo:r,treeish:{protocol:n,request:i},extra:o}=p(e),s=await E(r,t),A=(e,t)=>{switch(e){case g.Commit:if(!t.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return a().stringify({...o,commit:t});case g.Head:{const e=s.get("refs/heads/"+t);if(void 0===e)throw new Error(`Unknown head ("${t}")`);return a().stringify({...o,commit:e})}case g.Tag:{const e=s.get("refs/tags/"+t);if(void 0===e)throw new Error(`Unknown tag ("${t}")`);return a().stringify({...o,commit:e})}case g.Semver:{if(!u().validRange(t))throw new Error(`Invalid range ("${t}")`);const e=new Map([...s.entries()].filter(([e])=>e.startsWith("refs/tags/")).map(([e,t])=>[u().parse(e.slice(10)),t]).filter(e=>null!==e[0])),r=u().maxSatisfying([...e.keys()],t);if(null===r)throw new Error(`No matching range ("${t}")`);return a().stringify({...o,commit:e.get(r)})}case null:{let e;if(null!==(e=c(g.Commit,t)))return e;if(null!==(e=c(g.Tag,t)))return e;if(null!==(e=c(g.Head,t)))return e;throw t.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${t}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${e}")`)}},c=(e,t)=>{try{return A(e,t)}catch(e){return null}};return`${r}#${A(n,i)}`}async function m(e,t){if(!t.get("enableNetwork"))throw new Error(`Network access has been disabled by configuration (${e})`);const{repo:r,treeish:{protocol:n,request:A}}=p(e);if("commit"!==n)throw new Error("Invalid treeish protocol when cloning");const a=await s.xfs.mktempPromise(),c={cwd:a,env:l(),strict:!0};try{await i.execUtils.execvp("git",["clone","-c core.autocrlf=false",""+d(r),o.cS.fromPortablePath(a)],c),await i.execUtils.execvp("git",["checkout",""+A],c)}catch(e){throw e.message="Repository clone failed: "+e.message,e}return a}!function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"}(g||(g={}));var y=r(32485),w=r(46611);const B={fetchers:[class{supports(e,t){return f(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,n=C(e),o=new Map(t.checksums);o.set(n.locatorHash,r);const s={...t,checksums:o},A=await this.downloadHosted(n,s);if(null!==A)return A;const[a,c,u]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote repository"),loader:()=>this.cloneFromRemote(n,s),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:a,releaseFs:c,prefixPath:i.structUtils.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(e=>e.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){const r=await m(e.reference,t.project.configuration),n=p(e.reference),A=o.y1.join(r,"package.tgz");await i.scriptUtils.prepareExternalProject(r,A,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace});const a=await s.xfs.readFilePromise(A);return await i.miscUtils.releaseAfterUseAsync(async()=>await i.tgzUtils.convertToZip(a,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:i.structUtils.getIdentVendorPath(e),stripComponents:1}))}}],resolvers:[class{supportsDescriptor(e,t){return f(e.range)}supportsLocator(e,t){return f(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=await I(e.range,r.project.configuration);return[i.structUtils.makeLocator(e,n)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await i.miscUtils.releaseAfterUseAsync(async()=>await w.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:n.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:y.U.HARD,dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}}]}},23599:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var n=r(84132),i=r(56537),o=r(75448),s=r(46009),A=r(10284),a=r(71191),c=r.n(a);const u=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];class l{supports(e,t){return!(!(r=e.reference)||!u.some(e=>!!r.match(e)));var r}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from GitHub"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await i.xfs.mktempPromise(async a=>{const c=new o.M(a);await n.tgzUtils.extractArchiveTo(r,c,{stripComponents:1});const u=A.gitUtils.splitRepoUrl(e.reference),l=s.y1.join(a,"package.tgz");await n.scriptUtils.prepareExternalProject(a,l,{configuration:t.project.configuration,report:t.report,workspace:u.extra.workspace});const h=await i.xfs.readFilePromise(l);return await n.tgzUtils.convertToZip(h,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){const{auth:r,username:n,reponame:i,treeish:o}=function(e){let t;for(const r of u)if(t=e.match(r),t)break;if(!t)throw new Error(`Input cannot be parsed as a valid GitHub URL ('${e}').`);let[,r,n,i,o="master"]=t;const{commit:s}=c().parse(o);return o=s||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:i,treeish:o}}(e.reference);return`https://${r?r+"@":""}github.com/${n}/${i}/archive/${o}.tar.gz`}}const h={hooks:{async fetchHostedRepository(e,t,r){if(null!==e)return e;const n=new l;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch(e){return null}}}}},21754:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=r(84132);const i=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,o=/^https?:/;var s=r(46611),A=r(32485);const a={fetchers:[class{supports(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[i,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,n.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:i,releaseFs:o,prefixPath:n.structUtils.getIdentVendorPath(e),checksum:s}}async fetchFromNetwork(e,t){const r=await n.httpUtils.get(e.reference,{configuration:t.project.configuration});return await n.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:n.structUtils.getIdentVendorPath(e),stripComponents:1})}}],resolvers:[class{supportsDescriptor(e,t){return!!i.test(e.range)&&!!o.test(e.range)}supportsLocator(e,t){return!!i.test(e.reference)&&!!o.test(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[n.structUtils.convertDescriptorToLocator(e)]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await s.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:A.U.HARD,dependencies:i.dependencies,peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},74230:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p});var n=r(27122),i=r(36370),o=r(95397),s=r(46611),A=r(40376),a=r(84132),c=r(56537),u=r(46009),l=r(17278),h=r(7564),g=r(31669);class f extends o.BaseCommand{constructor(){super(...arguments),this.usev2=!1,this.assumeFreshProject=!1,this.yes=!1,this.private=!1,this.workspace=!1,this.install=!1}async execute(){if(c.xfs.existsSync(u.y1.join(this.context.cwd,s.G.fileName)))throw new l.UsageError("A package.json already exists in the specified directory");const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.install?!0===this.install?"latest":this.install:null;return null!==t?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(null!==e.get("yarnPath"))throw new l.UsageError(`Cannot use the --install flag when the current directory already uses yarnPath (from ${e.sources.get("yarnPath")})`);if(null!==e.projectCwd)throw new l.UsageError("Cannot use the --install flag when the current directory is already part of a project");c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=u.y1.join(this.context.cwd,e.get("lockfileFilename"));c.xfs.existsSync(r)||await c.xfs.writeFilePromise(r,"");const n=await this.cli.run(["set","version",t]);if(0!==n)return n;this.context.stdout.write("\n");const i=["--assume-fresh-project"];return this.private&&i.push("-p"),this.workspace&&i.push("-w"),this.yes&&i.push("-y"),await c.xfs.mktempPromise(async e=>{const{code:t}=await a.execUtils.pipevp("yarn",["init",...i],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await a.scriptUtils.makeScriptEnv({binFolder:e})});return t})}async executeRegular(e){let t=null;if(!this.assumeFreshProject)try{t=await A.I.find(e,this.context.cwd)}catch(e){t=null}c.xfs.existsSync(this.context.cwd)||await c.xfs.mkdirpPromise(this.context.cwd);const r=new s.G,n=Object.fromEntries(e.get("initFields").entries());r.load(n),r.name=a.structUtils.makeIdent(e.get("initScope"),u.y1.basename(this.context.cwd)),r.version=e.get("initVersion"),r.private=this.private||this.workspace,r.license=e.get("initLicense"),this.workspace&&(await c.xfs.mkdirpPromise(u.y1.join(this.context.cwd,"packages")),r.workspaceDefinitions=[{pattern:"packages/*"}]);const i={};r.exportTo(i),g.inspect.styles.name="cyan",this.context.stdout.write((0,g.inspect)(i,{depth:1/0,colors:!0,compact:!1})+"\n");const o=u.y1.join(this.context.cwd,s.G.fileName);await c.xfs.changeFilePromise(o,JSON.stringify(i,null,2)+"\n");const l=u.y1.join(this.context.cwd,"README.md");if(c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,`# ${a.structUtils.stringifyIdent(r.name)}\n`),!t){const t=u.y1.join(this.context.cwd,u.QS.lockfile);await c.xfs.writeFilePromise(t,"");const r=["/.yarn/** linguist-vendored"].map(e=>e+"\n").join(""),n=u.y1.join(this.context.cwd,".gitattributes");c.xfs.existsSync(n)||await c.xfs.writeFilePromise(n,r);const i=["/.yarn/*","!/.yarn/releases","!/.yarn/plugins","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(e=>e+"\n").join(""),o=u.y1.join(this.context.cwd,".gitignore");c.xfs.existsSync(o)||await c.xfs.writeFilePromise(o,i);const s={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,.yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,h.merge)(s,e.get("initEditorConfig"));let A="root = true\n";for(const[e,t]of Object.entries(s)){A+=`\n[${e}]\n`;for(const[e,r]of Object.entries(t)){A+=`${e.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())} = ${r}\n`}}const l=u.y1.join(this.context.cwd,".editorconfig");c.xfs.existsSync(l)||await c.xfs.writeFilePromise(l,A),await a.execUtils.execvp("git",["init"],{cwd:this.context.cwd})}}}f.usage=l.Command.Usage({description:"create a new package",details:"\n      This command will setup a new package in your local directory.\n\n      If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n      If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n      If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n      The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n    ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]}),(0,i.gn)([l.Command.Boolean("-2",{hidden:!0})],f.prototype,"usev2",void 0),(0,i.gn)([l.Command.Boolean("--assume-fresh-project",{hidden:!0})],f.prototype,"assumeFreshProject",void 0),(0,i.gn)([l.Command.Boolean("-y,--yes",{hidden:!0})],f.prototype,"yes",void 0),(0,i.gn)([l.Command.Boolean("-p,--private")],f.prototype,"private",void 0),(0,i.gn)([l.Command.Boolean("-w,--workspace")],f.prototype,"workspace",void 0),(0,i.gn)([l.Command.String("-i,--install",{tolerateBoolean:!0})],f.prototype,"install",void 0),(0,i.gn)([l.Command.Path("init")],f.prototype,"execute",null);const p={configuration:{initLicense:{description:"License used when creating packages via the init command",type:n.a2.STRING,default:null},initScope:{description:"Scope used when creating packages via the init command",type:n.a2.STRING,default:null},initVersion:{description:"Version used when creating packages via the init command",type:n.a2.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:n.a2.MAP,valueDefinition:{description:"",type:n.a2.ANY}}},commands:[f]}},86161:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>c});var n=r(84132),i=r(46009),o=r(75448),s=r(10489);var A=r(46611),a=r(32485);const c={fetchers:[class{supports(e,t){return!!e.reference.startsWith("link:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"link:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,discardFromLookup:!0}}},class{supports(e,t){return!!e.reference.startsWith("portal:")}getLocalPath(e,t){const{parentLocator:r,path:o}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"});if(i.y1.isAbsolute(o))return o;const s=t.fetcher.getLocalPath(r,t);return null===s?null:i.y1.resolve(s,o)}async fetch(e,t){const{parentLocator:r,path:A}=n.structUtils.parseFileStyleRange(e.reference,{protocol:"portal:"}),a=i.y1.isAbsolute(A)?{packageFs:new o.M(i.LZ.root),prefixPath:i.LZ.dot,localPath:i.LZ.root}:await t.fetcher.fetch(r,t),c=a.localPath?{packageFs:new o.M(i.LZ.root),prefixPath:i.y1.relative(i.LZ.root,a.localPath)}:a;a!==c&&a.releaseFs&&a.releaseFs();const u=c.packageFs,l=i.y1.join(c.prefixPath,A);return a.localPath?{packageFs:new o.M(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot,localPath:l}:{packageFs:new s.n(l,{baseFs:u}),releaseFs:c.releaseFs,prefixPath:i.LZ.dot}}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("link:")}supportsLocator(e,t){return!!e.reference.startsWith("link:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("link:".length);return[n.structUtils.makeLocator(e,"link:"+i.cS.toPortablePath(o))]}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("portal:")}supportsLocator(e,t){return!!e.reference.startsWith("portal:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return n.structUtils.bindDescriptor(e,{locator:n.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const o=e.range.slice("portal:".length);return[n.structUtils.makeLocator(e,"portal:"+i.cS.toPortablePath(o))]}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const r=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),i=await n.miscUtils.releaseAfterUseAsync(async()=>await A.G.find(r.prefixPath,{baseFs:r.packageFs}),r.releaseFs);return{...e,version:i.version||"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:a.U.SOFT,dependencies:new Map([...i.dependencies,...i.devDependencies]),peerDependencies:i.peerDependencies,dependenciesMeta:i.dependenciesMeta,peerDependenciesMeta:i.peerDependenciesMeta,bin:i.bin}}}]}},8149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>ee,default:()=>te});var n=r(46009),i=r(92659),o=r(32485),s=r(92409),A=r(84132),a=r(46611),c=r(35691),u=r(17674),l=r(53660),h=r(56537),g=r(29486),f=r(55125),p=r(5780);const d=(e,t)=>`${e}@${t}`,C=(e,t)=>{const r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return d(e,n)},E=(e,t={})=>{const r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),n={check:t.check||r>=9,debugLevel:r};n.debugLevel>=0&&console.time("hoist");const i=Q(e);if(m(i,i,new Set([i.locator]),n),n.debugLevel>=0&&console.timeEnd("hoist"),n.debugLevel>=1){const e=B(i);if(e)throw new Error(`${e}, after hoisting finished:\n${k(i)}`)}return n.debugLevel>=2&&console.log(k(i)),D(i)},I=(e,t)=>{if(t.decoupled)return t;const{name:r,references:n,ident:i,locator:o,dependencies:s,originalDependencies:A,hoistedDependencies:a,peerNames:c,reasons:u}=t,l={name:r,references:new Set(n),ident:i,locator:o,dependencies:new Map(s),originalDependencies:new Map(A),hoistedDependencies:new Map(a),peerNames:new Set(c),reasons:new Map(u),decoupled:!0},h=l.dependencies.get(r);return h&&h.ident==l.ident&&l.dependencies.set(r,l),e.dependencies.set(l.name,l),l},m=(e,t,r,n,i=new Set)=>{if(i.has(t))return;i.add(t);const o=((e,t)=>{const r=new Map([[e.name,[e.ident]]]);for(const t of e.dependencies.values())e.peerNames.has(t.name)||r.set(t.name,[t.ident]);const n=Array.from(t.keys());n.sort((e,r)=>t.get(r).size-t.get(e).size);for(const t of n){const n=t.substring(0,t.indexOf("@",1)),i=t.substring(n.length+1);if(!e.peerNames.has(n)){let e=r.get(n);e||(e=[],r.set(n,e)),e.indexOf(i)<0&&e.push(i)}}return r})(t,b(t)),s=new Set(Array.from(o.values()).map(e=>e[0])),A=t===e?new Map:(e=>{const t=new Map,r=new Set,n=i=>{if(!r.has(i)){r.add(i);for(const r of i.hoistedDependencies.values())e.dependencies.has(r.name)||t.set(r.name,r);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(e)}};return n(e),t})(t);let a;do{w(e,t,r,A,s,o,n),a=!1;for(const[e,r]of o)r.length>1&&!t.dependencies.has(e)&&(s.delete(r[0]),r.shift(),s.add(r[0]),a=!0)}while(a);for(const i of t.dependencies.values())t.peerNames.has(i.name)||r.has(i.locator)||(r.add(i.locator),m(e,i,r,n),r.delete(i.locator))},y=e=>{const t=new Set,r=(n,i=new Set)=>{if(!i.has(n)){i.add(n);for(const o of n.peerNames)if(!e.peerNames.has(o)){const n=e.dependencies.get(o);n&&!t.has(n)&&r(n,i)}t.add(n)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||r(t);return t},w=(e,t,r,n,i,o,s)=>{const A=new Set,a=(c,u,l,h)=>{if(A.has(l))return;let g,f;s.debugLevel>=2&&(g=""+Array.from(r).map(e=>S(e)).join("→"));let p=i.has(l.ident);if(s.debugLevel>=2&&!p&&(f=`- filled by: ${S(o.get(l.name)[0])} at ${g}`),p){let e=!0;const t=new Set(l.peerNames);for(let r=c.length-1;r>=1;r--){const n=c[r];for(const r of t){if(n.peerNames.has(r)&&n.originalDependencies.has(r))continue;const i=n.dependencies.get(r);if(i){s.debugLevel>=2&&(f=`- peer dependency ${S(i.locator)} from parent ${S(n.locator)} was not hoisted to ${g}`),e=!1;break}t.delete(r)}if(!e)break}p=e}if(p){let e=!1;const t=n.get(l.name);if(e=!t||t.ident===l.ident,s.debugLevel>=2&&!e&&(f=`- filled by: ${S(t.locator)} at ${g}`),e)for(let t=1;t<c.length-1;t++){const r=c[t],n=r.dependencies.get(l.name);if(n&&n.ident!==l.ident){e=!1,s.debugLevel>=2&&(f=`- filled by: ${S(n.locator)} at ${S(r.locator)}`);break}}p=e}if(p){const r=c[c.length-1];r.dependencies.delete(l.name),r.hoistedDependencies.set(l.name,l),r.reasons.delete(l.name);const n=t.dependencies.get(l.name);if(n)for(const e of l.references)n.references.add(e);else t.ident!==l.ident&&(t.dependencies.set(l.name,l),h.add(l));if(s.check){const r=B(e);if(r)throw new Error(`${r}, after hoisting ${[t,...c,l].map(e=>S(e.locator)).join("→")}:\n${k(e)}`)}}else if(s.debugLevel>=2){c[c.length-1].reasons.set(l.name,f)}if(!p&&u.indexOf(l.locator)<0){const e=I(c[c.length-1],l);A.add(e);for(const t of y(l))a([...c,e],[...u,l.locator],t,h);A.delete(e)}};let c,u=new Set(t.dependencies.values());do{c=u,u=new Set;for(const e of c){if(t.peerNames.has(e.name)||e.locator===t.locator)continue;const r=I(t,e);A.add(r);for(const n of y(e))n.locator!==e.locator&&a([t,r],[t.locator,e.locator],n,u);A.delete(r)}}while(u.size>0)},B=e=>{const t=[],r=new Set,n=new Set,i=(e,o)=>{if(r.has(e))return;if(r.add(e),n.has(e))return;const s=new Map(o);for(const t of e.dependencies.values())e.peerNames.has(t.name)||s.set(t.name,t);for(const r of e.originalDependencies.values()){const i=s.get(r.name),A=()=>""+Array.from(n).concat([e]).map(e=>S(e.locator)).join("→");if(e.peerNames.has(r.name)){const e=o.get(r.name);e!==i&&t.push(`${A()} - broken peer promise: expected ${i.locator} but found ${e?e.locator:e}`)}else i?i.ident!==r.ident&&t.push(`${A()} - broken require promise for ${r.name}: expected ${r.ident}, but found: ${i.ident}`):t.push(`${A()} - broken require promise: no required dependency ${r.locator} found`)}n.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||i(t,s);n.delete(e)};return i(e,e.dependencies),t.join("\n")},Q=e=>{const{identName:t,name:r,reference:n,peerNames:i}=e,o={name:r,references:new Set([n]),locator:d(t,n),ident:C(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(i),reasons:new Map,decoupled:!0},s=new Map([[e,o]]),A=(e,t)=>{let r=s.get(e);const n=!!r;if(!r){const{name:t,identName:n,reference:i,peerNames:o}=e;r={name:t,references:new Set([i]),locator:d(n,i),ident:C(n,i),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0},s.set(e,r)}if(t.dependencies.set(e.name,r),t.originalDependencies.set(e.name,r),n){const e=new Set,t=r=>{if(!e.has(r)){e.add(r),r.decoupled=!1;for(const e of r.dependencies.values())r.peerNames.has(e.name)||t(e)}};t(r)}else for(const t of e.dependencies)A(t,r)};for(const t of e.dependencies)A(t,o);return o},v=e=>e.substring(0,e.indexOf("@",1)),D=e=>{const t={name:e.name,identName:v(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(e,t,i)=>{const o=r.has(e);let s;if(t===e)s=i;else{const{name:t,references:r,locator:n}=e;s={name:t,identName:v(n),references:r,dependencies:new Set}}if(i.dependencies.add(s),!o){r.add(e);for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(t,e,s);r.delete(e)}};for(const r of e.dependencies.values())n(r,e,t);return t},b=e=>{const t=new Map,r=new Set([e]),n=(e,i)=>{const o=!!r.has(i),s=(e=>`${e.name}@${e.ident}`)(i);let A=t.get(s);if(A||(A=new Set,t.set(s,A)),A.add(e.ident),!o){r.add(i);for(const e of i.dependencies.values())i.peerNames.has(e.name)||n(i,e)}};for(const t of e.dependencies.values())e.peerNames.has(t.name)||n(e,t);return t},S=e=>{const t=e.indexOf("@",1),r=e.substring(0,t),n=e.substring(t+1);if("workspace:."===n)return".";if(n){const e=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")?`v:${r}@${e}`:`${r}@${e}`}return""+r},k=e=>{let t=0;const r=(e,n,i="")=>{if(t>5e4||n.has(e))return"";t++;const o=Array.from(e.dependencies.values());let s="";n.add(e);for(let t=0;t<o.length;t++){const A=o[t];if(!e.peerNames.has(A.name)){const a=e.reasons.get(A.name),c=v(A.locator);s+=`${i}${t<o.length-1?"├─":"└─"}${(n.has(A)?">":"")+(c!==A.name?`a:${A.name}:`:"")+S(A.locator)+(a?" "+a:"")}\n`,s+=r(A,n,`${i}${t<o.length-1?"│ ":"  "}`)}}return n.delete(e),s};return r(e,new Set)+(t>5e4?"\nTree is too large, part of the tree has been dunped\n":"")};var x;!function(e){e.HARD="HARD",e.SOFT="SOFT"}(x||(x={}));const F=(0,n.Zu)("node_modules"),M=(e,t)=>{const r=R(e,t),n=E(r);return K(e,n,t)},N=e=>`${e.name}@${e.reference}`;const R=(e,t)=>{const r=e.getDependencyTreeRoots(),n=e.getPackageInformation(e.topLevel);if(null===n)throw new Error("Assertion failed: Expected the top-level package to have been registered");const i=e.findPackageLocator(n.packageLocation);if(null===i)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");for(const e of r)e.name===i.name&&e.reference===i.reference||n.packageDependencies.set(e.name+"$wsroot$",e.reference);const o={name:i.name,identName:i.name,reference:i.reference,peerNames:n.packagePeers,dependencies:new Set},s=new Map,a=(r,n,c,u,l)=>{const h=((e,t)=>`${N(t)}:${e}`)(r,c);let g=s.get(h);const f=!!g;f||c.name!==i.name||c.reference!==i.reference||(g=o,s.set(h,o)),g||(g={name:r,identName:c.name,reference:c.reference,dependencies:new Set,peerNames:n.packagePeers},s.set(h,g)),u.dependencies.add(g);const p=t.pnpifyFs||!function(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("portal:")}(h);if(!f&&p)for(const[t,r]of n.packageDependencies)if(null!==r&&!g.peerNames.has(t)){const i=e.getLocator(t,r),o=e.getLocator(t.replace("$wsroot$",""),r),s=e.getPackageInformation(o);if(null===s)throw new Error("Assertion failed: Expected the package to have been registered");if(i.name===c.name&&i.reference===c.reference)continue;a(t,s,i,g,n)}};return a(i.name,n,i,o,n),o};const K=(e,t,r)=>{const i=new Map,o=(t,i)=>{const{linkType:o,target:s}=function(e,t,r){const i=t.getLocator(e.name.replace("$wsroot$",""),e.reference),o=t.getPackageInformation(i);if(null===o)throw new Error("Assertion failed: Expected the package to be registered");let s,A;if(r.pnpifyFs)A=n.cS.toPortablePath(o.packageLocation),s=x.SOFT;else{const r=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(o.packageLocation):o.packageLocation;A=n.cS.toPortablePath(r||o.packageLocation),s=o.linkType}return{linkType:s,target:A}}(t,e,r);return{locator:N(t),target:s,linkType:o,aliases:i}},s=e=>{const[t,r]=e.split("/");return r?{scope:(0,n.Zu)(t),name:(0,n.Zu)(r)}:{scope:null,name:(0,n.Zu)(t)}},a=new Set,c=(e,t)=>{if(!a.has(e)){a.add(e);for(const r of e.dependencies){if(r===e)continue;const a=Array.from(r.references).sort(),u={name:r.identName,reference:a[0]},{name:l,scope:h}=s(r.name),g=h?[h,l]:[l],f=n.y1.join(t,F),p=n.y1.join(f,...g),d=o(u,a.slice(1));if(!r.name.endsWith("$wsroot$")){const e=i.get(p);if(e){if(e.dirList)throw new Error(`Assertion failed: ${p} cannot merge dir node with leaf node`);{const t=A.structUtils.parseLocator(e.locator),r=A.structUtils.parseLocator(d.locator);if(e.linkType!==d.linkType)throw new Error(`Assertion failed: ${p} cannot merge nodes with different link types`);if(t.identHash!==r.identHash)throw new Error(`Assertion failed: ${p} cannot merge nodes with different idents ${A.structUtils.stringifyLocator(t)} and ${A.structUtils.stringifyLocator(r)}`);d.aliases=[...d.aliases,...e.aliases,A.structUtils.parseLocator(e.locator).reference]}}i.set(p,d);const t=p.split("/"),r=t.indexOf(F);let o=t.length-1;for(;r>=0&&o>r;){const e=n.cS.toPortablePath(t.slice(0,o).join(n.y1.sep)),r=(0,n.Zu)(t[o]),s=i.get(e);if(s){if(s.dirList){if(s.dirList.has(r))break;s.dirList.add(r)}}else i.set(e,{dirList:new Set([r])});o--}}c(r,d.linkType===x.SOFT?d.target:p)}}},u=o({name:t.name,reference:Array.from(t.references)[0]},[]),l=u.target;return i.set(l,u),c(t,l),i};var L=r(88563),T=r(58069),P=r.n(T),U=r(17278),_=r(35747),O=r.n(_);const j="node_modules";class Y extends p.AbstractPnpInstaller{constructor(){super(...arguments),this.manifestCache=new Map}async getBuildScripts(e,t,r){return[]}async transformPackage(e,t,r,n,i){return r.packageFs}async finalizeInstallWithPnp(e){if("node-modules"!==this.opts.project.configuration.get("nodeLinker"))return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})});let r=await G(this.opts.project);if(null===r){const e=this.opts.project.configuration.get("bstatePath");await h.xfs.existsPromise(e)&&await h.xfs.unlinkPromise(e),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map}}const s=(0,L.oC)(e,this.opts.project.cwd,t),a=(e=>{const t=new Map;for(const[r,n]of e.entries())if(!n.dirList){let e=t.get(n.locator);e||(e={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,e)),e.locations.push(r)}for(const e of t.values())e.locations=e.locations.sort((e,t)=>{const r=e.split(n.y1.delimiter).length,i=t.split(n.y1.delimiter).length;return r!==i?i-r:t.localeCompare(e)});return t})(M(s,{pnpifyFs:!1}));await async function(e,t,{baseFs:r,project:i,report:s,loadManifest:A}){const a=n.y1.join(i.cwd,j),{locationTree:u,binSymlinks:l}=function(e,t){const r=new Map([...e]),i=new Map([...t]);for(const[t,r]of e){const e=n.y1.join(t,j);if(!h.xfs.existsSync(e)){r.children.delete(j);for(const t of i.keys())null!==n.y1.contains(e,t)&&i.delete(t)}}return{locationTree:r,binSymlinks:i}}(e.locationTree,e.binSymlinks),g=q(t,{skipPrefix:i.cwd}),f=[],p=async({srcDir:e,dstDir:t,linkType:i})=>{const s=(async()=>{try{i===o.U.SOFT?(await h.xfs.mkdirpPromise(n.y1.dirname(t)),await z(n.y1.resolve(e),t)):await W(t,e,{baseFs:r})}catch(r){throw r.message=`While persisting ${e} -> ${t} ${r.message}`,r}finally{m.tick()}})().then(()=>f.splice(f.indexOf(s),1));f.push(s),f.length>4&&await Promise.race(f)},d=async(e,t,r)=>{const i=(async()=>{const i=async(e,t,r)=>{try{r&&r.innerLoop||await h.xfs.mkdirpPromise(t);const o=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const s of o){if(!(r&&r.innerLoop||".bin"!==s.name))continue;const o=n.y1.join(e,s.name),A=n.y1.join(t,s.name);s.isDirectory()?(s.name!==j||r&&r.innerLoop)&&(await h.xfs.mkdirpPromise(A),await i(o,A,{innerLoop:!0})):await h.xfs.copyFilePromise(o,A,O().constants.COPYFILE_FICLONE)}}catch(n){throw r&&r.innerLoop||(n.message=`While cloning ${e} -> ${t} ${n.message}`),n}finally{r&&r.innerLoop||m.tick()}};await i(e,t,r)})().then(()=>f.splice(f.indexOf(i),1));f.push(i),f.length>4&&await Promise.race(f)},C=async(e,t,r)=>{if(r)for(const[i,o]of t.children){const t=r.children.get(i);await C(n.y1.join(e,i),o,t)}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!1}),await J(e,{contentsOnly:e===a})};for(const[e,t]of u){const r=g.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await C(n.y1.join(e,i),o,t)}}const E=async(e,t,r)=>{if(r){X(t.locator,r.locator)||await J(e,{contentsOnly:t.linkType===o.U.HARD});for(const[i,o]of t.children){const t=r.children.get(i);await E(n.y1.join(e,i),o,t)}}else t.children.has(j)&&await J(n.y1.join(e,j),{contentsOnly:!0}),await J(e,{contentsOnly:t.linkType===o.U.HARD})};for(const[e,t]of g){const r=u.get(e);for(const[i,o]of t.children){if("."===i)continue;const t=r?r.children.get(i):r;await E(n.y1.join(e,i),o,t)}}const I=[];for(const[r,{locations:o}]of e.locatorMap.entries())for(const e of o){const{locationRoot:o,segments:s}=H(e,{skipPrefix:i.cwd});let A=g.get(o),a=o;if(A){for(const e of s)if(a=n.y1.join(a,e),A=A.children.get(e),!A)break;if(A&&!X(A.locator,r)){const e=t.get(A.locator),r=e.target,n=a,i=e.linkType;r!==n&&I.push({srcDir:r,dstDir:n,linkType:i})}}}for(const[e,{locations:r}]of t.entries())for(const o of r){const{locationRoot:r,segments:s}=H(o,{skipPrefix:i.cwd});let A=u.get(r),a=g.get(r),c=r;const l=t.get(e),h=l.target,f=o;if(h===f)continue;const p=l.linkType;for(const e of s)a=a.children.get(e);if(A){for(const e of s)if(c=n.y1.join(c,e),A=A.children.get(e),!A){I.push({srcDir:h,dstDir:f,linkType:p});break}}else I.push({srcDir:h,dstDir:f,linkType:p})}const m=c.yG.progressViaCounter(I.length),y=s.reportProgress(m);try{const e=new Map;for(const t of I)t.linkType!==o.U.SOFT&&e.has(t.srcDir)||(e.set(t.srcDir,t.dstDir),await p({...t}));await Promise.all(f),f.length=0;for(const t of I){const r=e.get(t.srcDir);t.linkType!==o.U.SOFT&&t.dstDir!==r&&await d(r,t.dstDir)}await Promise.all(f),await h.xfs.mkdirpPromise(a);const r=await async function(e,t,r,{loadManifest:i}){const o=new Map;for(const[t,{locations:r}]of e){const e=V(t)?null:await i(r[0]),s=new Map;if(e)for(const[t,i]of e.bin){const e=n.y1.join(r[0],i);""!==i&&h.xfs.existsSync(e)&&s.set(t,i)}o.set(t,s)}const s=new Map,A=(e,t,i)=>{const a=new Map,c=n.y1.contains(r,e);if(i.locator&&null!==c){const t=o.get(i.locator);for(const[r,i]of t){const t=n.y1.join(e,n.cS.toPortablePath(i));a.set((0,n.Zu)(r),t)}for(const[t,r]of i.children){const i=n.y1.join(e,t),o=A(i,i,r);o.size>0&&s.set(e,new Map([...s.get(e)||new Map,...o]))}}else for(const[r,o]of i.children){const i=A(n.y1.join(e,r),t,o);for(const[e,t]of i)a.set(e,t)}return a};for(const[e,r]of t){const t=A(e,e,r);t.size>0&&s.set(e,new Map([...s.get(e)||new Map,...t]))}return s}(t,g,i.cwd,{loadManifest:A});await async function(e,t){for(const r of e.keys())if(!t.has(r)){const e=n.y1.join(r,j,".bin");await h.xfs.removePromise(e)}for(const[r,i]of t){const t=n.y1.join(r,j,".bin"),o=e.get(r)||new Map;await h.xfs.mkdirpPromise(t);for(const e of o.keys())i.has(e)||(await h.xfs.removePromise(n.y1.join(t,e)),"win32"===process.platform&&await h.xfs.removePromise(n.y1.join(t,(0,n.Zu)(e+".cmd"))));for(const[e,r]of i){const i=o.get(e),s=n.y1.join(t,e);i!==r&&("win32"===process.platform?await P()(n.cS.fromPortablePath(r),n.cS.fromPortablePath(s),{createPwshFile:!1}):(await h.xfs.removePromise(s),await z(r,s),await h.xfs.chmodPromise(r,493)))}}}(l,r),await async function(e,t,r){let i="";i+="# Warning: This file is automatically generated. Removing it is fine, but will\n",i+="# cause your node_modules installation to become invalidated.\n",i+="\n",i+="__metadata:\n",i+="  version: 1\n";const o=Array.from(t.keys()).sort();for(const s of o){const o=t.get(s);i+="\n",i+=JSON.stringify(s)+":\n",i+="  locations:\n";let A=!1;for(const t of o.locations){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=`    - ${JSON.stringify(r)}\n`,t===e.cwd&&(A=!0)}if(o.aliases.length>0){i+="  aliases:\n";for(const e of o.aliases)i+=`    - ${JSON.stringify(e)}\n`}if(A&&r.size>0){i+="  bin:\n";for(const[t,o]of r){const r=n.y1.contains(e.cwd,t);if(null===r)throw new Error(`Assertion failed: Expected the path to be within the project (${t})`);i+=`    ${JSON.stringify(r)}:\n`;for(const[e,r]of o){const o=n.y1.relative(n.y1.join(t,j),r);i+=`      ${JSON.stringify(e)}: ${JSON.stringify(o)}\n`}}}}const s=e.cwd,A=n.y1.join(s,j,".yarn-state.yml");await h.xfs.changeFilePromise(A,i,{automaticNewlines:!0})}(i,t,r)}finally{y.stop()}}(r,a,{baseFs:t,project:this.opts.project,report:this.opts.report,loadManifest:this.cachedManifestLoad.bind(this)});const f=[];for(const[e,t]of a.entries()){if(V(e))continue;const r=A.structUtils.parseLocator(e),a={name:A.structUtils.stringifyIdent(r),reference:r.reference};if(null===s.getPackageInformation(a))throw new Error(`Assertion failed: Expected the package to be registered (${A.structUtils.prettyLocator(this.opts.project.configuration,r)})`);const c=n.cS.toPortablePath(t.locations[0]),u=await this.cachedManifestLoad(c),l=await this.getSourceBuildScripts(c,u);l.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(i.b.DISABLED_BUILD_SCRIPTS,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but all build scripts have been disabled."),l.length=0),l.length>0&&t.linkType!==o.U.HARD&&!this.opts.project.tryWorkspaceByLocator(r)&&(this.opts.report.reportWarningOnce(i.b.SOFT_LINK_BUILD,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),l.length=0);const h=this.opts.project.getDependencyMeta(r,u.version);l.length>0&&h&&!1===h.built&&(this.opts.report.reportInfoOnce(i.b.BUILD_DISABLED,A.structUtils.prettyLocator(this.opts.project.configuration,r)+" lists build scripts, but its build has been explicitly disabled through configuration."),l.length=0),l.length>0&&f.push({buildLocations:t.locations,locatorHash:r.locatorHash,buildDirective:l})}return f}async cachedManifestLoad(e){let t=this.manifestCache.get(e);if(t)return t;try{t=await a.G.find(e)}catch(t){throw t.message=`While loading ${e}: ${t.message}`,t}return this.manifestCache.set(e,t),t}async getSourceBuildScripts(e,t){const r=[],{scripts:i}=t;for(const e of["preinstall","install","postinstall"])i.has(e)&&r.push([s.k.SCRIPT,e]);const o=n.y1.resolve(e,(0,n.Zu)("binding.gyp"));return!i.has("install")&&h.xfs.existsSync(o)&&r.push([s.k.SHELLCODE,"node-gyp rebuild"]),r}}async function G(e,{unrollAliases:t=!1}={}){const r=e.cwd,i=n.y1.join(r,j,".yarn-state.yml");if(!h.xfs.existsSync(i))return null;const s=(0,f.parseSyml)(await h.xfs.readFilePromise(i,"utf8"));if(s.__metadata.version>1)return null;const a=new Map,c=new Map;delete s.__metadata;for(const[e,i]of Object.entries(s)){const s=i.locations.map(e=>n.y1.join(r,e)),u=i.bin;if(u)for(const[e,t]of Object.entries(u)){const i=n.y1.join(r,n.cS.toPortablePath(e)),o=A.miscUtils.getMapWithDefault(c,i);for(const[e,r]of Object.entries(t))o.set((0,n.Zu)(e),n.cS.toPortablePath([i,j,r].join(n.y1.delimiter)))}if(a.set(e,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:i.aliases||[]}),t&&i.aliases)for(const t of i.aliases){const{scope:r,name:i}=A.structUtils.parseLocator(e),c=A.structUtils.makeLocator(A.structUtils.makeIdent(r,i),t),u=A.structUtils.stringifyLocator(c);a.set(u,{target:n.LZ.dot,linkType:o.U.HARD,locations:s,aliases:[]})}}return{locatorMap:a,binSymlinks:c,locationTree:q(a,{skipPrefix:e.cwd})}}const J=async(e,t)=>{if(e.split(n.y1.sep).indexOf(j)<0)throw new Error("Assertion failed: trying to remove dir that doesn't contain node_modules: "+e);try{if(!t.innerLoop){if((await h.xfs.lstatPromise(e)).isSymbolicLink())return void await h.xfs.unlinkPromise(e)}const r=await h.xfs.readdirPromise(e,{withFileTypes:!0});for(const i of r){const r=n.y1.join(e,(0,n.Zu)(i.name));i.isDirectory()?(i.name!==j||t&&t.innerLoop)&&await J(r,{innerLoop:!0,contentsOnly:!1}):await h.xfs.unlinkPromise(r)}t.contentsOnly||await h.xfs.rmdirPromise(e)}catch(e){if("ENOENT"!==e.code&&"ENOTEMPTY"!==e.code)throw e}},H=(e,{skipPrefix:t})=>{const r=n.y1.contains(t,e);if(null===r)throw new Error(`Assertion failed: Cannot process a path that isn't part of the requested prefix (${e} isn't within ${t})`);const i=r.split(n.y1.sep),o=i.indexOf(j),s=i.slice(0,o).join(n.y1.sep);return{locationRoot:n.y1.join(t,s),segments:i.slice(o)}},q=(e,{skipPrefix:t})=>{const r=new Map;if(null===e)return r;const i=()=>({children:new Map,linkType:o.U.HARD});for(const[s,a]of e.entries()){if(a.linkType===o.U.SOFT){if(null!==n.y1.contains(t,a.target)){const e=A.miscUtils.getFactoryWithDefault(r,a.target,i);e.locator=s,e.linkType=a.linkType}}for(const e of a.locations){const{locationRoot:n,segments:o}=H(e,{skipPrefix:t});let c=A.miscUtils.getFactoryWithDefault(r,n,i);for(let e=0;e<o.length;++e){const t=o[e];if("."!==t){const e=A.miscUtils.getFactoryWithDefault(c.children,t,i);c.children.set(t,e),c=e}e===o.length-1&&(c.locator=s,c.linkType=a.linkType)}}}return r},z=async(e,t)=>h.xfs.symlinkPromise("win32"!==process.platform?n.y1.relative(n.y1.dirname(t),e):e,t,"win32"===process.platform?"junction":void 0),W=async(e,t,{baseFs:r,innerLoop:i})=>{await h.xfs.mkdirpPromise(e);const o=await r.readdirPromise(t,{withFileTypes:!0}),s=async(e,t,i)=>{if(i.isFile()){const n=await r.lstatPromise(t);await r.copyFilePromise(t,e);const i=511&n.mode;420!==i&&await h.xfs.chmodPromise(e,i)}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${await h.xfs.statSync(t).mode.toString(8).padStart(6,"0")})`);{const i=await r.readlinkPromise(t);await z(n.y1.resolve(t,i),e)}}};for(const A of o){const o=n.y1.join(t,(0,n.Zu)(A.name)),a=n.y1.join(e,(0,n.Zu)(A.name));A.isDirectory()?(A.name!==j||i)&&await W(a,o,{baseFs:r,innerLoop:!0}):await s(a,o,A)}};function V(e){let t=A.structUtils.parseDescriptor(e);return A.structUtils.isVirtualDescriptor(t)&&(t=A.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}const X=(e,t)=>{if(!e||!t)return e===t;let r=A.structUtils.parseLocator(e);A.structUtils.isVirtualLocator(r)&&(r=A.structUtils.devirtualizeLocator(r));let n=A.structUtils.parseLocator(t);return A.structUtils.isVirtualLocator(n)&&(n=A.structUtils.devirtualizeLocator(n)),A.structUtils.areLocatorsEqual(r,n)};class Z extends p.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(e){return new $(e)}}class $ extends p.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=new u.p({baseFs:new l.A({libzip:await(0,g.getLibzipPromise)(),maxOpenFiles:80,readOnlyArchives:!0})}),r=(0,L.oC)(e,this.opts.project.cwd,t),i=M(r,{pnpifyFs:!1}),o=new Map;e.fallbackPool=o;const s=(e,t)=>{const r=A.structUtils.parseLocator(t.locator),n=A.structUtils.stringifyIdent(r);n===e?o.set(e,r.reference):o.set(e,[n,r.reference])},a=n.y1.join(this.opts.project.cwd,n.QS.nodeModules),c=i.get(a);if(void 0===c)throw new Error("Assertion failed: Expected a root junction point");if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(const e of c.dirList){const t=n.y1.join(a,e),r=i.get(t);if(void 0===r)throw new Error("Assertion failed: Expected the child to have been registered");if("target"in r)s(e,r);else for(const o of r.dirList){const r=n.y1.join(t,o),A=i.get(r);if(void 0===A)throw new Error("Assertion failed: Expected the subchild to have been registered");if(!("target"in A))throw new Error("Assertion failed: Expected the leaf junction to be a package");s(`${e}/${o}`,A)}}return super.finalizeInstallWithPnp(e)}}const ee=e=>n.y1.join(e.cwd,".pnp.js"),te={linkers:[class{supportsPackage(e,t){return"node-modules"===t.project.configuration.get("nodeLinker")}async findPackageLocation(e,t){const r=t.project.tryWorkspaceByLocator(e);if(r)return r.cwd;const n=await G(t.project,{unrollAliases:!0});if(null===n)throw new U.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");const i=n.locatorMap.get(A.structUtils.stringifyLocator(e));if(!i)throw new U.UsageError(`Couldn't find ${A.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);return i.locations[0]}async findPackageLocator(e,t){const r=await G(t.project,{unrollAliases:!0});if(null===r)return null;const{locationRoot:i,segments:o}=H(n.y1.resolve(e),{skipPrefix:t.project.cwd});let s=r.locationTree.get(i);if(!s)return null;let a=s.locator;for(const e of o){if(s=s.children.get(e),!s)break;a=s.locator||a}return A.structUtils.parseLocator(a)}makeInstaller(e){return new Y({...e,skipIncompatiblePackageLinking:!0})}},Z]}},94573:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>F});var n=r(27122),i=r(36370),o=r(95397),s=r(40376),A=r(84132),a=r(35691),c=r(15815),u=r(92659),l=r(86717),h=r(17278),g=r(85622),f=r.n(g),p=r(53887),d=r.n(p),C=r(31669);class E extends o.BaseCommand{constructor(){super(...arguments),this.json=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t}=await s.I.find(e,this.context.cwd),r=void 0!==this.fields?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,i=[];let o=!1;const g=await c.P.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async n=>{for(const s of this.packages){let c;if("."===s){const e=t.topLevelWorkspace;if(!e.manifest.name)throw new h.UsageError("Missing 'name' field in "+f().join(e.cwd,"package.json"));c=A.structUtils.makeDescriptor(e.manifest.name,"unknown")}else c=A.structUtils.parseDescriptor(s);const g=l.npmHttpUtils.getIdentUrl(c);let p;try{p=I(await l.npmHttpUtils.get(g,{configuration:e,ident:c,json:!0}))}catch(e){throw"HTTPError"!==e.name?e:404===e.response.statusCode?new a.lk(u.b.EXCEPTION,"Package not found"):new a.lk(u.b.EXCEPTION,e.toString())}const C=Object.keys(p.versions).sort(d().compareLoose);let E=p["dist-tags"].latest||C[C.length-1];if(d().validRange(c.range)){const t=d().maxSatisfying(C,c.range);null!==t?E=t:(n.reportWarning(u.b.UNNAMED,`Unmet range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0)}else"unknown"!==c.range&&(n.reportWarning(u.b.UNNAMED,`Invalid range ${A.structUtils.prettyRange(e,c.range)}; falling back to the latest version`),o=!0);const m=p.versions[E],y={...p,...m,version:E,versions:C};let w;if(null!==r){w={};for(const t of r){const r=y[t];void 0!==r?w[t]=r:(n.reportWarning(u.b.EXCEPTION,`The '${t}' field doesn't exist inside ${A.structUtils.prettyIdent(e,c)}'s informations`),o=!0)}}else this.json||(delete y.dist,delete y.readme,delete y.users),w=y;n.reportJson(w),this.json||i.push(w)}});C.inspect.styles.name="cyan";for(const e of i)(e!==i[0]||o)&&this.context.stdout.write("\n"),this.context.stdout.write((0,C.inspect)(e,{depth:1/0,colors:!0,compact:!1})+"\n");return g.exitCode()}}function I(e){if(Array.isArray(e)){const t=[];for(let r of e)r=I(r),r&&t.push(r);return t}if("object"==typeof e&&null!==e){const t={};for(const r of Object.keys(e)){if(r.startsWith("_"))continue;const n=I(e[r]);n&&(t[r]=n)}return t}return e||null}E.usage=h.Command.Usage({description:"show information about a package",details:"\n      This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n      The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n      Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n      If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n      By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n    ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]}),(0,i.gn)([h.Command.Rest()],E.prototype,"packages",void 0),(0,i.gn)([h.Command.String("-f,--fields")],E.prototype,"fields",void 0),(0,i.gn)([h.Command.Boolean("--json")],E.prototype,"json",void 0),(0,i.gn)([h.Command.Path("npm","info")],E.prototype,"execute",null);var m=r(9494),y=r.n(m);class w extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=y().createPromptModule({input:this.context.stdin,output:this.context.stdout}),r=await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async i=>{const o=await async function(e,{registry:t,report:r}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};r.reportInfo(u.b.UNNAMED,"Logging in to "+t);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(u.b.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0);r.reportSeparator();const{username:i,password:o}=await e([{type:"input",name:"username",message:"Username:",validate:e=>Q(e,"Username")},{type:"password",name:"password",message:n?"Token:":"Password:",validate:e=>Q(e,"Password")}]);return r.reportSeparator(),{name:i,password:o}}(t,{registry:r,report:i}),s="/-/user/org.couchdb.user:"+encodeURIComponent(o.name),A=await l.npmHttpUtils.put(s,o,{attemptedAs:o.name,configuration:e,registry:r,json:!0,authType:l.npmHttpUtils.AuthType.NO_AUTH});return await async function(e,t,{configuration:r}){return await n.VK.updateHomeConfiguration({npmRegistries:(r={})=>({...r,[e]:{...r[e],npmAuthToken:t}})})}(r,A.token,{configuration:e}),i.reportInfo(u.b.UNNAMED,"Successfully logged in")})).exitCode()}}async function B({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?l.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?l.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(r,n)).manifest,{configuration:r}):l.npmConfigUtils.getDefaultRegistry({configuration:r})}function Q(e,t){return e.length>0||t+" is required"}w.usage=h.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n      This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n      Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n    ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]}),(0,i.gn)([h.Command.String("-s,--scope")],w.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],w.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","login")],w.prototype,"execute",null);class v extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1,this.all=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),t=this.all?null:await B({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await c.P.start({configuration:e,stdout:this.context.stdout},async e=>(await async function(e){return await n.VK.updateHomeConfiguration({npmRegistries:(t={})=>null===e?void 0:{...t,[e]:void 0}})}(t),e.reportInfo(u.b.UNNAMED,"Successfully logged out of "+(null===t?"all registries":t))))).exitCode()}}v.usage=h.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n      This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n      Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n      Adding the `-A,--all` flag will cause the deletion to be done against all registries.\n    ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the registry linked to the @my-scope registry","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of the publish registry for the current package linked to the @my-scope registry","yarn npm logout --publish --scope my-scope"],["Logout of all registries","yarn npm logout --all"]]}),(0,i.gn)([h.Command.String("-s,--scope")],v.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],v.prototype,"publish",void 0),(0,i.gn)([h.Command.Boolean("-A,--all")],v.prototype,"all",void 0),(0,i.gn)([h.Command.Path("npm","logout")],v.prototype,"execute",null);var D=r(5973),b=r(76417),S=r(10129);class k extends o.BaseCommand{constructor(){super(...arguments),this.tag="latest",this.tolerateRepublish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await s.I.find(e,this.context.cwd);if(!r)throw new o.WorkspaceRequiredError(t.cwd,this.context.cwd);if(r.manifest.private)throw new h.UsageError("Private workspaces cannot be published");if(null===r.manifest.name||null===r.manifest.version)throw new h.UsageError("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();const i=r.manifest.name,g=r.manifest.version,f=l.npmConfigUtils.getPublishRegistry(r.manifest,{configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async t=>{if(this.tolerateRepublish)try{const r=await l.npmHttpUtils.get(l.npmHttpUtils.getIdentUrl(i),{configuration:e,registry:f,ident:i,json:!0});if(!Object.prototype.hasOwnProperty.call(r,"versions"))throw new a.lk(u.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(r.versions,g))return void t.reportWarning(u.b.UNNAMED,`Registry already knows about version ${g}; skipping.`)}catch(e){if("HTTPError"!==e.name)throw e;if(404!==e.response.statusCode)throw new a.lk(u.b.NETWORK_ERROR,`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`)}await D.packUtils.prepareForPack(r,{report:t},async()=>{const n=await D.packUtils.genPackList(r);for(const e of n)t.reportInfo(null,e);const o=await D.packUtils.genPackStream(r,n),s=await A.miscUtils.bufferStream(o),a=await async function(e,t,{access:r,tag:n,registry:i}){const o=e.project.configuration,s=e.manifest.name,a=e.manifest.version,c=A.structUtils.stringifyIdent(s),u=(0,b.createHash)("sha1").update(t).digest("hex"),l=S.Sd(t).toString();void 0===r&&(r=e.manifest.publishConfig&&"string"==typeof e.manifest.publishConfig.access?e.manifest.publishConfig.access:null!==o.get("npmPublishAccess")?o.get("npmPublishAccess"):s.scope?"restricted":"public");const h=await D.packUtils.genPackageManifest(e),g=`${c}-${a}.tgz`,f=new URL(`${c}/-/${g}`,i);return{_id:c,_attachments:{[g]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}},name:c,access:r,"dist-tags":{[n]:a},versions:{[a]:{...h,_id:`${c}@${a}`,name:c,version:a,dist:{shasum:u,integrity:l,tarball:f.toString()}}}}}(r,s,{access:this.access,tag:this.tag,registry:f});try{await l.npmHttpUtils.put(l.npmHttpUtils.getIdentUrl(i),a,{configuration:e,registry:f,ident:i,json:!0})}catch(e){if("HTTPError"!==e.name)throw e;{const r=e.response.body&&e.response.body.error?e.response.body.error:`The remote server answered with HTTP ${e.response.statusCode} ${e.response.statusMessage}`;t.reportError(u.b.NETWORK_ERROR,r)}}}),t.hasErrors()||t.reportInfo(u.b.UNNAMED,"Package archive published")})).exitCode()}}k.usage=h.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n      This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n      The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n      Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n    ',examples:[["Publish the active workspace","yarn npm publish"]]}),(0,i.gn)([h.Command.String("--access")],k.prototype,"access",void 0),(0,i.gn)([h.Command.String("--tag")],k.prototype,"tag",void 0),(0,i.gn)([h.Command.Boolean("--tolerate-republish")],k.prototype,"tolerateRepublish",void 0),(0,i.gn)([h.Command.Path("npm","publish")],k.prototype,"execute",null);class x extends o.BaseCommand{constructor(){super(...arguments),this.publish=!1}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);let t;t=this.scope&&this.publish?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e,type:l.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?l.npmConfigUtils.getScopeRegistry(this.scope,{configuration:e}):this.publish?l.npmConfigUtils.getPublishRegistry((await(0,o.openWorkspace)(e,this.context.cwd)).manifest,{configuration:e}):l.npmConfigUtils.getDefaultRegistry({configuration:e});return(await c.P.start({configuration:e,stdout:this.context.stdout},async r=>{try{const n=await l.npmHttpUtils.get("/-/whoami",{configuration:e,registry:t,authType:l.npmHttpUtils.AuthType.ALWAYS_AUTH,json:!0});r.reportInfo(u.b.UNNAMED,n.username)}catch(e){if("HTTPError"!==e.name)throw e;401===e.response.statusCode||403===e.response.statusCode?r.reportError(u.b.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired"):r.reportError(u.b.AUTHENTICATION_INVALID,e.toString())}})).exitCode()}}x.usage=h.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n      Print the username associated with the current authentication settings to the standard output.\n\n      When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n      When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n    ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]}),(0,i.gn)([h.Command.String("-s,--scope")],x.prototype,"scope",void 0),(0,i.gn)([h.Command.Boolean("--publish")],x.prototype,"publish",void 0),(0,i.gn)([h.Command.Path("npm","whoami")],x.prototype,"execute",null);const F={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:n.a2.STRING,default:null}},commands:[E,w,v,k,x]}},86717:(e,t,r)=>{"use strict";r.r(t),r.d(t,{npmConfigUtils:()=>n,npmHttpUtils:()=>i,default:()=>T});var n={};r.r(n),r.d(n,{RegistryType:()=>c,getAuthConfiguration:()=>y,getDefaultRegistry:()=>E,getPublishRegistry:()=>d,getRegistryConfiguration:()=>I,getScopeConfiguration:()=>m,getScopeRegistry:()=>C,normalizeRegistry:()=>p});var i={};r.r(i),r.d(i,{AuthType:()=>u,get:()=>B,getIdentUrl:()=>w,put:()=>Q});var o=r(27122),s=r(84132),A=r(53887),a=r.n(A);var c,u,l=r(35691),h=r(92659),g=r(9494),f=r.n(g);function p(e){return e.replace(/\/$/,"")}function d(e,{configuration:t}){return e.publishConfig&&e.publishConfig.registry?p(e.publishConfig.registry):e.name?C(e.name.scope,{configuration:t,type:c.PUBLISH_REGISTRY}):E({configuration:t,type:c.PUBLISH_REGISTRY})}function C(e,{configuration:t,type:r=c.FETCH_REGISTRY}){const n=m(e,{configuration:t});if(null===n)return E({configuration:t,type:r});const i=n.get(r);return null===i?E({configuration:t,type:r}):p(i)}function E({configuration:e,type:t=c.FETCH_REGISTRY}){const r=e.get(t);return p(null!==r?r:e.get(c.FETCH_REGISTRY))}function I(e,{configuration:t}){const r=t.get("npmRegistries"),n=r.get(e);if(void 0!==n)return n;const i=r.get(e.replace(/^[a-z]+:/,""));return void 0!==i?i:null}function m(e,{configuration:t}){if(null===e)return null;const r=t.get("npmScopes").get(e);return r||null}function y(e,{configuration:t,ident:r}){const n=r&&m(r.scope,{configuration:t});if((null==n?void 0:n.get("npmAuthIdent"))||(null==n?void 0:n.get("npmAuthToken")))return n;return I(e,{configuration:t})||t}function w(e){return e.scope?`/@${e.scope}%2f${e.name}`:"/"+e.name}async function B(e,{configuration:t,headers:r,ident:n,authType:i,registry:o,...A}){if(n&&void 0===o&&(o=C(n.scope,{configuration:t})),n&&n.scope&&void 0===i&&(i=u.BEST_EFFORT),"string"!=typeof o)throw new Error("Assertion failed: The registry should be a string");const a=v(o,{authType:i,configuration:t,ident:n});let c;a&&(r={...r,authorization:a});try{c=new URL(e)}catch(t){c=new URL(o+e)}try{return await s.httpUtils.get(c.href,{configuration:t,headers:r,...A})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (as ${await D(o,r,{configuration:t})})`)}}async function Q(e,t,{attemptedAs:r,configuration:n,headers:i,ident:o,authType:A=u.ALWAYS_AUTH,registry:a,...c}){if(o&&void 0===a&&(a=C(o.scope,{configuration:n})),"string"!=typeof a)throw new Error("Assertion failed: The registry should be a string");const g=v(a,{authType:A,configuration:n,ident:o});g&&(i={...i,authorization:g});try{return await s.httpUtils.put(a+e,t,{configuration:n,headers:i,...c})}catch(o){if(!function(e){if("HTTPError"!==e.name)return!1;try{return e.response.headers["www-authenticate"].split(/,\s*/).map(e=>e.toLowerCase()).includes("otp")}catch(e){return!1}}(o))throw"HTTPError"!==o.name||401!==o.response.statusCode&&403!==o.response.statusCode?o:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,i,{configuration:n}):"attempted as "+r})`);const A=await async function(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";const e=f().createPromptModule(),{otp:t}=await e({type:"input",name:"otp",message:"One-time password:",validate:e=>e.length>0||"One-time password is required"});return t}(),u={...i,...b(A)};try{return await s.httpUtils.put(`${a}${e}`,t,{configuration:n,headers:u,...c})}catch(e){throw"HTTPError"!==e.name||401!==e.response.statusCode&&403!==e.response.statusCode?e:new l.lk(h.b.AUTHENTICATION_INVALID,`Invalid authentication (${"string"!=typeof r?"as "+await D(a,u,{configuration:n}):"attempted as "+r})`)}}}function v(e,{authType:t=u.CONFIGURATION,configuration:r,ident:n}){const i=y(e,{configuration:r,ident:n}),o=function(e,t){switch(t){case u.CONFIGURATION:return e.get("npmAlwaysAuth");case u.BEST_EFFORT:case u.ALWAYS_AUTH:return!0;case u.NO_AUTH:return!1;default:throw new Error("Unreachable")}}(i,t);if(!o)return null;if(i.get("npmAuthToken"))return"Bearer "+i.get("npmAuthToken");if(i.get("npmAuthIdent"))return"Basic "+i.get("npmAuthIdent");if(o&&t!==u.BEST_EFFORT)throw new l.lk(h.b.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}async function D(e,t,{configuration:r}){if(void 0===t||void 0===t.authorization)return"an anonymous user";try{return(await s.httpUtils.get(new URL(e+"/-/whoami").href,{configuration:r,headers:t})).username}catch(e){return"an unknown user"}}function b(e){return{"npm-otp":e}}!function(e){e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"}(c||(c={})),function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"}(u||(u={}));var S=r(78835);class k{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const r=new S.URL(e.reference);return!!a().valid(r.pathname)&&!r.searchParams.has("__archiveUrl")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote registry"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let r;try{r=await B(k.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){r=await B(k.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await s.tgzUtils.convertToZip(r,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:r}){let n=C(e.scope,{configuration:r});const i=k.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),(t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"))===n+i||t===n+i.replace(/%2f/g,"/")}static getLocatorUrl(e){const t=a().clean(e.reference.slice("npm:".length));if(null===t)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${w(e)}/-/${e.name}-${t}.tgz`}}var x=r(46611),F=r(32485);const M=s.structUtils.makeIdent(null,"node-gyp"),N=/\b(node-gyp|prebuild-install)\b/;var R=r(52779);const K={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:o.a2.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:o.a2.SECRET,default:null}},L={npmPublishRegistry:{description:"Registry to push packages to",type:o.a2.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:o.a2.STRING,default:"https://registry.yarnpkg.com"}},T={configuration:{...K,...L,npmScopes:{description:"Settings per package scope",type:o.a2.MAP,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K,...L}}},npmRegistries:{description:"Settings per registry",type:o.a2.MAP,normalizeKeys:p,valueDefinition:{description:"",type:o.a2.SHAPE,properties:{...K}}}},fetchers:[class{supports(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r,params:n}=s.structUtils.parseRange(e.reference);return!!a().valid(r)&&(null!==n&&"string"==typeof n.__archiveUrl)}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,i,o]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,s.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the remote server"),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:i,prefixPath:s.structUtils.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){const{params:r}=s.structUtils.parseRange(e.reference);if(null===r||"string"!=typeof r.__archiveUrl)throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");const n=await B(r.__archiveUrl,{configuration:t.project.configuration,ident:e});return await s.tgzUtils.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:s.structUtils.getIdentVendorPath(e),stripComponents:1})}},k],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!s.structUtils.tryParseDescriptor(e.range.slice("npm:".length),!0)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){const r=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return t.resolver.getResolutionDependencies(r,t)}async getCandidates(e,t,r){const n=s.structUtils.parseDescriptor(e.range.slice("npm:".length),!0);return await r.resolver.getCandidates(n,t,r)}resolve(e,t){throw new Error("Unreachable")}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!a().validRange(e.range.slice("npm:".length))}supportsLocator(e,t){if(!e.reference.startsWith("npm:"))return!1;const{selector:r}=s.structUtils.parseRange(e.reference);return!!a().valid(r)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0}),o=Object.keys(i.versions).filter(e=>a().satisfies(e,n));return o.sort((e,t)=>-a().compare(e,t)),o.map(t=>{const n=s.structUtils.makeLocator(e,"npm:"+t),o=i.versions[t].dist.tarball;return k.isConventionalTarballUrl(n,o,{configuration:r.project.configuration})?n:s.structUtils.bindLocator(n,{__archiveUrl:o})})}async resolve(e,t){const{selector:r}=s.structUtils.parseRange(e.reference),n=a().clean(r);if(null===n)throw new l.lk(h.b.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");const i=await B(w(e),{configuration:t.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"versions"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(i.versions,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);const o=new x.G;if(o.load(i.versions[n]),!o.dependencies.has(M.identHash)&&!o.peerDependencies.has(M.identHash))for(const r of o.scripts.values())if(r.match(N)){o.dependencies.set(M.identHash,s.structUtils.makeDescriptor(M,"latest")),t.report.reportWarning(h.b.NODE_GYP_INJECTED,s.structUtils.prettyLocator(t.project.configuration,e)+": Implicit dependencies on node-gyp are discouraged");break}return"string"==typeof o.raw.deprecated&&t.report.reportWarning(h.b.DEPRECATED_PACKAGE,`${s.structUtils.prettyLocator(t.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),{...e,version:n,languageName:"node",linkType:F.U.HARD,dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}},class{supportsDescriptor(e,t){return!!e.range.startsWith("npm:")&&!!R.c.test(e.range.slice("npm:".length))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){const n=e.range.slice("npm:".length),i=await B(w(e),{configuration:r.project.configuration,ident:e,json:!0});if(!Object.prototype.hasOwnProperty.call(i,"dist-tags"))throw new l.lk(h.b.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');const o=i["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new l.lk(h.b.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);const A=o[n],a=s.structUtils.makeLocator(e,"npm:"+A),c=i.versions[A].dist.tarball;return k.isConventionalTarballUrl(a,c,{configuration:r.project.configuration})?[a]:[s.structUtils.bindLocator(a,{__archiveUrl:c})]}async resolve(e,t){throw new Error("Unreachable")}}]}},5973:(e,t,r)=>{"use strict";r.r(t),r.d(t,{packUtils:()=>n,default:()=>T});var n={};r.r(n),r.d(n,{genPackList:()=>k,genPackStream:()=>b,genPackageManifest:()=>S,hasPackScripts:()=>v,prepareForPack:()=>D});var i=r(84132),o=r(35691),s=r(92659),A=r(36370),a=r(95397),c=r(27122),u=r(40376),l=r(28148),h=r(33720),g=r(15815),f=r(46009),p=r(56537),d=r(17278),C=r(10489),E=r(2401),I=r.n(E),m=r(92413),y=r(59938),w=r(78761);const B=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],Q=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function v(e){return!!await i.scriptUtils.hasWorkspaceScript(e,"prepack")||!!await i.scriptUtils.hasWorkspaceScript(e,"postpack")}async function D(e,{report:t},r){const n=new m.PassThrough,A=new m.PassThrough;if(await i.scriptUtils.hasWorkspaceScript(e,"prepack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "prepack" lifecycle script');if(0!==await i.scriptUtils.executeWorkspaceScript(e,"prepack",[],{stdin:null,stdout:n,stderr:A}))throw new o.lk(s.b.LIFECYCLE_SCRIPT,'Prepack script failed; run "yarn prepack" to investigate')}try{await r()}finally{if(await i.scriptUtils.hasWorkspaceScript(e,"postpack")){t.reportInfo(s.b.LIFECYCLE_SCRIPT,'Calling the "postpack" lifecycle script');0!==await i.scriptUtils.executeWorkspaceScript(e,"postpack",[],{stdin:null,stdout:n,stderr:A})&&t.reportWarning(s.b.LIFECYCLE_SCRIPT,'Postpack script failed; run "yarn postpack" to investigate')}}}async function b(e,t){void 0===t&&(t=await k(e));const r=y.P();process.nextTick(async()=>{for(const n of t){const t=f.y1.resolve(e.cwd,n),i=f.y1.join("package",n),o=await p.xfs.lstatPromise(t),s={name:i,mtime:new Date(315532800)};let A,a;const c=new Promise((e,t)=>{A=e,a=t}),u=e=>{e?a(e):A()};if(o.isFile()){let i;i="package.json"===n?Buffer.from(JSON.stringify(await S(e),null,2)):await p.xfs.readFilePromise(t),r.entry({...s,type:"file"},i,u)}else o.isSymbolicLink()&&r.entry({...s,type:"symlink",linkname:await p.xfs.readlinkPromise(t)},u);await c}r.finalize()});const n=(0,w.createGzip)();return r.pipe(n),n}async function S(e){const t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(e=>e.beforeWorkspacePacking,e,t),t}async function k(e){const t=e.project,r=t.configuration,n={accept:[],reject:[]};for(const e of Q)n.reject.push(e);for(const e of B)n.accept.push(e);n.reject.push(r.get("rcFilename"));const i=t=>{if(null===t||!t.startsWith(e.cwd+"/"))return;const r=f.y1.relative(e.cwd,t),i=f.y1.resolve(f.LZ.root,r);n.reject.push(i)};i(f.y1.resolve(t.cwd,r.get("lockfileFilename"))),i(r.get("bstatePath")),i(r.get("cacheFolder")),i(r.get("globalFolder")),i(r.get("installStatePath")),i(r.get("virtualFolder")),i(r.get("yarnPath")),await r.triggerHook(e=>e.populateYarnPaths,t,e=>{i(e)});for(const r of t.workspaces){const t=f.y1.relative(e.cwd,r.cwd);""===t||t.match(/^(\.\.)?\//)||n.reject.push("/"+t)}const o={accept:[],reject:[]};e.manifest.publishConfig&&e.manifest.publishConfig.main?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.main)):e.manifest.main&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.main)),e.manifest.publishConfig&&e.manifest.publishConfig.module?o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.publishConfig.module)):e.manifest.module&&o.accept.push(f.y1.resolve(f.LZ.root,e.manifest.module));const s=null!==e.manifest.files;if(s){o.reject.push("/*");for(const t of e.manifest.files)F(o.accept,t,{cwd:f.LZ.root})}return await async function(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){const i=[],o=new C.n(e),s=[[f.LZ.root,[n]]];for(;s.length>0;){const[e,n]=s.pop(),A=await o.lstatPromise(e);if(!M(e,{globalList:r,ignoreLists:A.isDirectory()?null:n}))if(A.isDirectory()){const i=await o.readdirPromise(e);let A=!1,a=!1;if(!t||e!==f.LZ.root)for(const e of i)A=A||".gitignore"===e,a=a||".npmignore"===e;const c=a?await x(o,e,(0,f.Zu)(".npmignore")):A?await x(o,e,(0,f.Zu)(".gitignore")):null;let u=null!==c?[c].concat(n):n;M(e,{globalList:r,ignoreLists:n})&&(u=[...n,{accept:[],reject:["**/*"]}]);for(const t of i)s.push([f.y1.resolve(e,t),u])}else i.push(f.y1.relative(f.LZ.root,e))}return i.sort()}(e.cwd,{hasExplicitFileList:s,globalList:n,ignoreList:o})}async function x(e,t,r){const n={accept:[],reject:[]},i=await e.readFilePromise(f.y1.join(t,r),"utf8");for(const e of i.split(/\n/g))F(n.reject,e,{cwd:t});return n}function F(e,t,{cwd:r}){const n=t.trim();""!==n&&"#"!==n[0]&&e.push(function(e,{cwd:t}){const r="!"===e[0];return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=f.y1.resolve(t,e)),r&&(e="!"+e),e}(n,{cwd:r}))}function M(e,{globalList:t,ignoreLists:r}){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0;if(null!==r)for(const t of r){if(N(e,t.accept))return!1;if(N(e,t.reject))return!0}return!1}function N(e,t){let r=t;const n=[];for(let e=0;e<t.length;++e)"!"!==t[e][0]?r!==t&&r.push(t[e]):(r===t&&(r=t.slice(0,e)),n.push(t[e].slice(1)));return!R(e,n)&&!!R(e,r)}function R(e,t){let r=t;const n=[];for(let e=0;e<t.length;++e)t[e].includes("/")?r!==t&&r.push(t[e]):(r===t&&(r=t.slice(0,e)),n.push(t[e]));return!!I().isMatch(e,r,{dot:!0,nocase:!0})||!!I().isMatch(e,n,{dot:!0,basename:!0,nocase:!0})}class K extends a.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=!1,this.dryRun=!1,this.json=!1}async execute(){const e=await c.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await u.I.find(e,this.context.cwd);if(!r)throw new a.WorkspaceRequiredError(t.cwd,this.context.cwd);await v(r)&&(this.installIfNeeded?await t.install({cache:await l.C.find(e),report:new h.$}):await t.restoreInstallState());const n=void 0!==this.out?f.y1.resolve(this.context.cwd,function(e,{workspace:t}){const r=e.replace("%s",function(e){return null!==e.manifest.name?i.structUtils.slugifyIdent(e.manifest.name):"package"}(t)).replace("%v",function(e){return null!==e.manifest.version?e.manifest.version:"unknown"}(t));return f.cS.toPortablePath(r)}(this.out,{workspace:r})):f.y1.resolve(r.cwd,"package.tgz");return(await g.P.start({configuration:e,stdout:this.context.stdout,json:this.json},async t=>{await D(r,{report:t},async()=>{t.reportJson({base:r.cwd});const e=await k(r);for(const r of e)t.reportInfo(null,r),t.reportJson({location:r});if(!this.dryRun){const t=await b(r,e),i=p.xfs.createWriteStream(n);t.pipe(i),await new Promise(e=>{i.on("finish",e)})}}),this.dryRun||(t.reportInfo(s.b.UNNAMED,"Package archive generated in "+e.format(n,"magenta")),t.reportJson({output:n}))})).exitCode()}}K.usage=d.Command.Usage({description:"generate a tarball from the active workspace",details:"\n      This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n      If the `--install-if-needed` flag is set Yarn will run a preliminary `yarn install` if the package contains build scripts.\n\n      If the `-n,--dry-run` flag is set the command will just print the file paths without actually generating the package archive.\n\n      If the `--json` flag is set the output will follow a JSON-stream output also known as NDJSON (https://github.com/ndjson/ndjson-spec).\n\n      If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n    ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]}),(0,A.gn)([d.Command.Boolean("--install-if-needed")],K.prototype,"installIfNeeded",void 0),(0,A.gn)([d.Command.Boolean("-n,--dry-run")],K.prototype,"dryRun",void 0),(0,A.gn)([d.Command.Boolean("--json")],K.prototype,"json",void 0),(0,A.gn)([d.Command.String("--filename",{hidden:!1}),d.Command.String("-o,--out")],K.prototype,"out",void 0),(0,A.gn)([d.Command.Path("pack")],K.prototype,"execute",null);const L=["dependencies","devDependencies","peerDependencies"],T={hooks:{beforeWorkspacePacking:(e,t)=>{t.publishConfig&&(t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));const r=e.project;for(const n of L)for(const A of e.manifest.getForScope(n).values()){const e=r.tryWorkspaceByDescriptor(A),a=i.structUtils.parseRange(A.range);if("workspace:"===a.protocol)if(null===e){if(null===r.tryWorkspaceByIdent(A))throw new o.lk(s.b.WORKSPACE_NOT_FOUND,i.structUtils.prettyDescriptor(r.configuration,A)+": No local workspace found for this range")}else{let r;r=i.structUtils.areDescriptorsEqual(A,e.anchoredDescriptor)||"*"===a.selector?e.manifest.version:a.selector,t[n][i.structUtils.stringifyIdent(A)]=r}}}},commands:[K]}},5698:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchUtils:()=>n,default:()=>q});var n={};r.r(n),r.d(n,{applyPatchFile:()=>g,diffFolders:()=>L,extractPackageToDisk:()=>K,isParentRequired:()=>N,loadPatchFiles:()=>R,makeDescriptor:()=>x,makeLocator:()=>F,parseDescriptor:()=>b,parseLocator:()=>S,parsePatchFile:()=>B});var i=r(84132),o=r(56537),s=r(46009),A=r(90739),a=r(75448),c=r(29486),u=r(33720),l=r(78420);async function h(e,t,r){const n=await e.lstatPromise(t),i=await r();if(void 0!==i&&(t=i),e.lutimesPromise)await e.lutimesPromise(t,n.atime,n.mtime);else{if(n.isSymbolicLink())throw new Error("Cannot preserve the time values of a symlink");await e.utimesPromise(t,n.atime,n.mtime)}}async function g(e,{baseFs:t=new l.S,dryRun:r=!1,version:n=null}={}){for(const o of e)if(null===o.semverExclusivity||null===n||i.semverUtils.satisfiesWithPrereleases(n,o.semverExclusivity))switch(o.type){case"file deletion":if(r){if(!t.existsSync(o.path))throw new Error("Trying to delete file that doesn't exist: "+o.path)}else await h(t,s.y1.dirname(o.path),async()=>{await t.unlinkPromise(o.path)});break;case"rename":if(r){if(!t.existsSync(o.fromPath))throw new Error("Trying to move file that doesn't exist: "+o.fromPath)}else await h(t,s.y1.dirname(o.fromPath),async()=>{await h(t,s.y1.dirname(o.toPath),async()=>{await h(t,o.fromPath,async()=>(await t.movePromise(o.fromPath,o.toPath),o.toPath))})});break;case"file creation":if(r){if(t.existsSync(o.path))throw new Error("Trying to create file that already exists: "+o.path)}else{const e=o.hunk?o.hunk.parts[0].lines.join("\n")+(o.hunk.parts[0].noNewlineAtEndOfFile?"":"\n"):"";await t.mkdirpPromise(s.y1.dirname(o.path),{chmod:493,utimes:[315532800,315532800]}),await t.writeFilePromise(o.path,e,{mode:o.mode}),await t.utimesPromise(o.path,315532800,315532800)}break;case"patch":await h(t,o.path,async()=>{await d(o,{baseFs:t,dryRun:r})});break;case"mode change":{const e=(await t.statPromise(o.path)).mode;if(f(o.newMode)!==f(e))continue;await h(t,o.path,async()=>{await t.chmodPromise(o.path,o.newMode)})}break;default:i.miscUtils.assertNever(o)}}function f(e){return(64&e)>0}function p(e){return e.replace(/\s+$/,"")}async function d({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){const o=await r.statSync(t).mode,s=(await r.readFileSync(t,"utf8")).split(/\n/),A=[];let a=0,c=0;for(const t of e){const r=Math.max(c,t.header.patched.start+a),n=Math.max(0,r-c),i=Math.max(0,s.length-r-t.header.original.length),o=Math.max(n,i);let u=0,l=0,h=null;for(;u<=o;){if(u<=n&&(l=r-u,h=C(t,s,l),null!==h)){u=-u;break}if(u<=i&&(l=r+u,h=C(t,s,l),null!==h))break;u+=1}if(null===h)throw new Error("Cannot apply hunk #"+(e.indexOf(t)+1));A.push(h),a+=u,c=l+t.header.original.length}if(n)return;let u=0;for(const e of A)for(const t of e)switch(t.type){case"splice":{const e=t.index+u;s.splice(e,t.numToDelete,...t.linesToInsert),u+=t.linesToInsert.length-t.numToDelete}break;case"pop":s.pop();break;case"push":s.push(t.line);break;default:i.miscUtils.assertNever(t)}await r.writeFilePromise(t,s.join("\n"),{mode:o})}function C(e,t,r){const n=[];for(const s of e.parts)switch(s.type){case"deletion":case"context":for(const e of s.lines){const n=t[r];if(null==n||(o=e,p(n)!==p(o)))return null;r+=1}"deletion"===s.type&&(n.push({type:"splice",index:r-s.lines.length,numToDelete:s.lines.length,linesToInsert:[]}),s.noNewlineAtEndOfFile&&n.push({type:"push",line:""}));break;case"insertion":n.push({type:"splice",index:r,numToDelete:0,linesToInsert:s.lines}),s.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:i.miscUtils.assertNever(s.type)}var o;return n}const E=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function I(e){return s.y1.relative(s.LZ.root,s.y1.resolve(s.LZ.root,s.cS.toPortablePath(e)))}function m(e){const t=e.trim().match(E);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}const y={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function w(e){const t=511&parseInt(e,8);if(420!==t&&493!==t)throw new Error("Unexpected file mode string: "+e);return t}function B(e){const t=e.split(/\n/g);return""===t[t.length-1]&&t.pop(),function(e){const t=[];for(const r of e){const{semverExclusivity:e,diffLineFromPath:n,diffLineToPath:o,oldMode:s,newMode:A,deletedFileMode:a,newFileMode:c,renameFrom:u,renameTo:l,beforeHash:h,afterHash:g,fromPath:f,toPath:p,hunks:d}=r,C=u?"rename":a?"file deletion":c?"file creation":d&&d.length>0?"patch":"mode change";let E=null;switch(C){case"rename":if(!u||!l)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:e,fromPath:I(u),toPath:I(l)}),E=l;break;case"file deletion":{const r=n||f;if(!r)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(a),hash:h})}break;case"file creation":{const r=o||p;if(!r)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:e,hunk:d&&d[0]||null,path:I(r),mode:w(c),hash:g})}break;case"patch":case"mode change":E=p||o;break;default:i.miscUtils.assertNever(C)}E&&s&&A&&s!==A&&t.push({type:"mode change",semverExclusivity:e,path:I(E),oldMode:w(s),newMode:w(A)}),E&&d&&d.length&&t.push({type:"patch",semverExclusivity:e,path:I(E),hunks:d,beforeHash:h,afterHash:g})}return t}(function(e){const t=[];let r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null},n="parsing header",o=null,s=null;function A(){o&&(s&&(o.parts.push(s),s=null),r.hunks.push(o),o=null)}function a(){A(),t.push(r),r={semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}}for(let t=0;t<e.length;t++){const c=e[t];if("parsing header"===n)if(c.startsWith("@@"))n="parsing hunks",r.hunks=[],t-=1;else if(c.startsWith("diff --git ")){r&&r.diffLineFromPath&&a();const e=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!e)throw new Error("Bad diff line: "+c);r.diffLineFromPath=e[1],r.diffLineToPath=e[2]}else if(c.startsWith("old mode "))r.oldMode=c.slice("old mode ".length).trim();else if(c.startsWith("new mode "))r.newMode=c.slice("new mode ".length).trim();else if(c.startsWith("deleted file mode "))r.deletedFileMode=c.slice("deleted file mode ".length).trim();else if(c.startsWith("new file mode "))r.newFileMode=c.slice("new file mode ".length).trim();else if(c.startsWith("rename from "))r.renameFrom=c.slice("rename from ".length).trim();else if(c.startsWith("rename to "))r.renameTo=c.slice("rename to ".length).trim();else if(c.startsWith("index ")){const e=c.match(/(\w+)\.\.(\w+)/);if(!e)continue;r.beforeHash=e[1],r.afterHash=e[2]}else c.startsWith("semver exclusivity ")?r.semverExclusivity=c.slice("semver exclusivity ".length).trim():c.startsWith("--- ")?r.fromPath=c.slice("--- a/".length).trim():c.startsWith("+++ ")&&(r.toPath=c.slice("+++ b/".length).trim());else{const e=y[c[0]]||null;switch(e){case"header":A(),o={header:m(c),parts:[]};break;case null:n="parsing header",a(),t-=1;break;case"pragma":if(!c.startsWith("\\ No newline at end of file"))throw new Error("Unrecognized pragma in patch file: "+c);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0;break;case"insertion":case"deletion":case"context":if(!o)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==e&&(o.parts.push(s),s=null),s||(s={type:e,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1));break;default:i.miscUtils.assertNever(e)}}}a();for(const{hunks:e}of t)if(e)for(const t of e)Q(t);return t}(t))}function Q(e){let t=0,r=0;for(const{type:n,lines:o}of e.parts)switch(n){case"context":r+=o.length,t+=o.length;break;case"deletion":t+=o.length;break;case"insertion":r+=o.length;break;default:i.miscUtils.assertNever(n)}if(t!==e.header.original.length||r!==e.header.patched.length){const n=e=>e<0?e:"+"+e;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}const v=/^builtin<([^>]+)>$/;function D(e,t){const{source:r,selector:n,params:o}=i.structUtils.parseRange(e);if(null===r)throw new Error("Patch locators must explicitly define their source");const A=n?n.split(/&/).map(e=>s.cS.toPortablePath(e)):[],a=o&&"string"==typeof o.locator?i.structUtils.parseLocator(o.locator):null,c=o&&"string"==typeof o.version?o.version:null;return{parentLocator:a,sourceItem:t(r),patchPaths:A,sourceVersion:c}}function b(e){const{sourceItem:t,...r}=D(e.range,i.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function S(e){const{sourceItem:t,...r}=D(e.reference,i.structUtils.parseLocator);return{...r,sourceLocator:t}}function k({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:o},s){const A=null!==e?{locator:i.structUtils.stringifyLocator(e)}:{},a=void 0!==n?{version:n}:{},c=void 0!==o?{hash:o}:{};return i.structUtils.makeRange({protocol:"patch:",source:s(t),selector:r.join("&"),params:{...a,...c,...A}})}function x(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,patchPaths:n},i.structUtils.stringifyDescriptor))}function F(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:o}){return i.structUtils.makeLocator(e,k({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:o},i.structUtils.stringifyLocator))}function M({onAbsolute:e,onRelative:t,onBuiltin:r},n){const i=n.match(v);return null!==i?r(i[1]):s.y1.isAbsolute(n)?e(n):t(n)}function N(e){return M({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},e)}async function R(e,t,r){const n=null!==e?await r.fetcher.fetch(e,r):null,A=n&&n.localPath?{packageFs:new a.M(s.LZ.root),prefixPath:s.y1.relative(s.LZ.root,n.localPath)}:n;n&&n!==A&&n.releaseFs&&n.releaseFs();return(await i.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async e=>M({onAbsolute:async()=>await o.xfs.readFilePromise(e,"utf8"),onRelative:async()=>{if(null===n)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(e,"utf8")},onBuiltin:async e=>await r.project.configuration.firstHook(e=>e.getBuiltinPatch,r.project,e)},e))))).map(e=>"string"==typeof e?e.replace(/\r\n?/g,"\n"):e)}async function K(e,{cache:t,project:r}){const n=r.storedChecksums,A=new u.$,a=r.configuration.makeFetcher(),c=await a.fetch(e,{cache:t,project:r,fetcher:a,checksums:n,report:A}),l=await o.xfs.mktempPromise();return await o.xfs.copyPromise(l,c.prefixPath,{baseFs:c.packageFs}),await o.xfs.writeJsonPromise(s.y1.join(l,".yarn-patch.json"),{locator:i.structUtils.stringifyLocator(e)}),o.xfs.detachTemp(l),l}async function L(e,t){const r=s.cS.fromPortablePath(e).replace(/\\/g,"/"),n=s.cS.fromPortablePath(t).replace(/\\/g,"/"),{stdout:o}=await i.execUtils.execvp("git",["diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index",r,n],{cwd:s.cS.toPortablePath(process.cwd())}),A=r.startsWith("/")?e=>e.slice(1):e=>e;return o.replace(new RegExp(`(a|b)(${i.miscUtils.escapeRegExp(`/${A(r)}/`)})`,"g"),"$1/").replace(new RegExp("(a|b)"+i.miscUtils.escapeRegExp(`/${A(n)}/`),"g"),"$1/").replace(new RegExp(i.miscUtils.escapeRegExp(r+"/"),"g"),"").replace(new RegExp(i.miscUtils.escapeRegExp(n+"/"),"g"),"")}var T=r(36370),P=r(95397),U=r(27122),_=r(40376),O=r(28148),j=r(17278);class Y extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();const A=s.y1.resolve(this.context.cwd,s.cS.toPortablePath(this.patchFolder)),a=s.y1.join(A,".yarn-patch.json");if(!o.xfs.existsSync(a))throw new j.UsageError("The argument folder didn't get created by 'yarn patch'");const c=await o.xfs.readJsonPromise(a),u=i.structUtils.parseLocator(c.locator,!0);if(!t.storedPackages.has(u.locatorHash))throw new j.UsageError("No package found in the project for the given locator");const l=await K(u,{cache:n,project:t});this.context.stdout.write(await L(l,A))}}Y.usage=j.Command.Usage({description:"\n      This will turn the folder passed in parameter into a patchfile suitable for consumption with the `patch:` protocol.\n\n      Only folders generated through `yarn patch` are accepted as valid input for `yarn patch-commit`.\n    "}),(0,T.gn)([j.Command.String()],Y.prototype,"patchFolder",void 0),(0,T.gn)([j.Command.Path("patch-commit")],Y.prototype,"execute",null);var G=r(15815),J=r(92659);class H extends P.BaseCommand{async execute(){const e=await U.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await _.I.find(e,this.context.cwd),n=await O.C.find(e);if(!r)throw new P.WorkspaceRequiredError(t.cwd,this.context.cwd);await t.restoreInstallState();let o=i.structUtils.parseLocator(this.package);if("unknown"===o.reference){const r=i.miscUtils.mapAndFilter([...t.storedPackages.values()],e=>e.identHash!==o.identHash||i.structUtils.isVirtualLocator(e)?i.miscUtils.mapAndFilter.skip:e);if(0===r.length)throw new j.UsageError("No package found in the project for the given locator");if(r.length>1)throw new j.UsageError("Multiple candidate packages found; explicitly choose one of them (use `yarn why <package>` to get more information as to who depends on them):\n"+r.map(t=>"\n- "+i.structUtils.prettyLocator(e,t)).join(""));o=r[0]}if(!t.storedPackages.has(o.locatorHash))throw new j.UsageError("No package found in the project for the given locator");await G.P.start({configuration:e,stdout:this.context.stdout},async r=>{const A=await K(o,{cache:n,project:t});r.reportInfo(J.b.UNNAMED,`Package ${i.structUtils.prettyLocator(e,o)} got extracted with success!`),r.reportInfo(J.b.UNNAMED,"You can now edit the following folder: "+e.format(s.cS.fromPortablePath(A),"magenta")),r.reportInfo(J.b.UNNAMED,`Once you are done run ${e.format("yarn patch-commit "+s.cS.fromPortablePath(A),"cyan")} and Yarn will store a patchfile based on your changes.`)})}}H.usage=j.Command.Usage({description:'\n      This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n    '}),(0,T.gn)([j.Command.String()],H.prototype,"package",void 0),(0,T.gn)([j.Command.Path("patch")],H.prototype,"execute",null);const q={commands:[Y,H],fetchers:[class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){const r=t.checksums.get(e.locatorHash)||null,[n,o,s]=await t.cache.fetchPackageFromCache(e,r,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,i.structUtils.prettyLocator(t.project.configuration,e)+" can't be found in the cache and will be fetched from the disk"),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck});return{packageFs:n,releaseFs:o,prefixPath:i.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async patchPackage(e,t){const{parentLocator:r,sourceLocator:n,sourceVersion:u,patchPaths:l}=S(e),h=await R(r,l,t),f=await o.xfs.mktempPromise(),p=s.y1.join(f,"patched.zip"),d=await t.fetcher.fetch(n,t),C=i.structUtils.getIdentVendorPath(e),E=await(0,c.getLibzipPromise)(),I=new A.d(p,{libzip:E,create:!0,level:t.project.configuration.get("compressionLevel")});await I.mkdirpPromise(C),await i.miscUtils.releaseAfterUseAsync(async()=>{await I.copyPromise(C,d.prefixPath,{baseFs:d.packageFs,stableSort:!0})},d.releaseFs),I.saveAndClose();const m=new A.d(p,{libzip:E,level:t.project.configuration.get("compressionLevel")}),y=new a.M(s.y1.resolve(s.LZ.root,C),{baseFs:m});for(const e of h)null!==e&&await g(B(e),{baseFs:y,version:u});return m}}],resolvers:[class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){const{patchPaths:n}=b(e);return n.every(e=>!N(e))?e:i.structUtils.bindDescriptor(e,{locator:i.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){const{sourceDescriptor:r}=b(e);return[r]}async getCandidates(e,t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");const{parentLocator:n,sourceDescriptor:o,patchPaths:s}=b(e),A=await R(n,s,r.fetchOptions),a=t.get(o.descriptorHash);if(void 0===a)throw new Error("Assertion failed: The dependency should have been resolved");return[F(e,{parentLocator:n,sourcePackage:a,patchPaths:s,patchHash:i.hashUtils.makeHash("2",...A).slice(0,6)})]}async resolve(e,t){const{sourceLocator:r}=S(e);return{...await t.resolver.resolve(r,t),...e}}}]}},5780:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getPnpPath:()=>b,quotePathIfNeeded:()=>S,AbstractPnpInstaller:()=>d,PnpInstaller:()=>m,PnpLinker:()=>I,default:()=>k});var n=r(27122),i=r(46009),o=r(56537),s=r(53887),A=r.n(s),a=r(92659),c=r(92409),u=r(84132),l=r(75448),h=r(88563),g=r(17278),f=r(46611),p=r(32485);class d{constructor(e){this.opts=e,this.packageRegistry=new Map,this.blacklistedPaths=new Set,this.opts=e}checkAndReportManifestIncompatibility(e,t){return e&&!e.isCompatibleWithOS(process.platform)?(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_OS,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The platform ${process.platform} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1):!(e&&!e.isCompatibleWithCPU(process.arch))||(this.opts.report.reportWarningOnce(a.b.INCOMPATIBLE_CPU,`${u.structUtils.prettyLocator(this.opts.project.configuration,t)} The CPU architecture ${process.arch} is incompatible with this module, ${this.opts.skipIncompatiblePackageLinking?"linking":"building"} skipped.`),!1)}async installPackage(e,t){const r=u.structUtils.requirableIdent(e),n=e.reference,o=e.peerDependencies.size>0&&!u.structUtils.isVirtualLocator(e)&&!this.opts.project.tryWorkspaceByLocator(e),s=!o||this.opts.skipIncompatiblePackageLinking?await f.G.tryFind(t.prefixPath,{baseFs:t.packageFs}):null,A=this.checkAndReportManifestIncompatibility(s,e);if(this.opts.skipIncompatiblePackageLinking&&!A)return{packageLocation:null,buildDirective:null};const c=o?[]:await this.getBuildScripts(e,s,t);c.length>0&&!this.opts.project.configuration.get("enableScripts")&&(this.opts.report.reportWarningOnce(a.b.DISABLED_BUILD_SCRIPTS,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but all build scripts have been disabled."),c.length=0),c.length>0&&e.linkType!==p.U.HARD&&!this.opts.project.tryWorkspaceByLocator(e)&&(this.opts.report.reportWarningOnce(a.b.SOFT_LINK_BUILD,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored."),c.length=0);const l=this.opts.project.getDependencyMeta(e,e.version);c.length>0&&l&&!1===l.built&&(this.opts.report.reportInfoOnce(a.b.BUILD_DISABLED,u.structUtils.prettyLocator(this.opts.project.configuration,e)+" lists build scripts, but its build has been explicitly disabled through configuration."),c.length=0);const h=o||e.linkType===p.U.SOFT?t.packageFs:await this.transformPackage(e,s,t,l,{hasBuildScripts:c.length>0});if(i.y1.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);const g=i.y1.resolve(h.getRealPath(),t.prefixPath),d=this.normalizeDirectoryPath(g),C=new Map,E=new Set;if(u.structUtils.isVirtualLocator(e))for(const t of e.peerDependencies.values())C.set(u.structUtils.requirableIdent(t),null),E.add(u.structUtils.stringifyIdent(t));return u.miscUtils.getMapWithDefault(this.packageRegistry,r).set(n,{packageLocation:d,packageDependencies:C,packagePeers:E,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),o&&this.blacklistedPaths.add(d),{packageLocation:g,buildDirective:c.length>0&&A?c:null}}async attachInternalDependencies(e,t){const r=this.getPackageInformation(e);for(const[e,n]of t){const t=u.structUtils.areIdentsEqual(e,n)?n.reference:[u.structUtils.requirableIdent(n),n.reference];r.packageDependencies.set(u.structUtils.requirableIdent(e),t)}}async attachExternalDependents(e,t){for(const r of t){this.getDiskInformation(r).packageDependencies.set(u.structUtils.requirableIdent(e),e.reference)}}async finalizeInstall(){this.trimBlacklistedPackages(),this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));const e=this.opts.project.configuration.get("pnpFallbackMode"),t=this.blacklistedPaths,r=this.opts.project.workspaces.map(({anchoredLocator:e})=>({name:u.structUtils.requirableIdent(e),reference:e.reference})),n="none"!==e,i=[],o=this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator).packageDependencies,s=u.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),A=this.packageRegistry,a=this.opts.project.configuration.get("pnpShebang");if("dependencies-only"===e)for(const e of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(e)&&i.push({name:u.structUtils.requirableIdent(e),reference:e.reference});return await this.finalizeInstallWithPnp({blacklistedLocations:t,dependencyTreeRoots:r,enableTopLevelFallback:n,fallbackExclusionList:i,fallbackPool:o,ignorePattern:s,packageRegistry:A,shebang:a})}getPackageInformation(e){const t=u.structUtils.requirableIdent(e),r=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${u.structUtils.prettyIdent(this.opts.project.configuration,e)})`);const i=n.get(r);if(!i)throw new Error(`Assertion failed: The package information should have been available (for ${u.structUtils.prettyLocator(this.opts.project.configuration,e)})`);return i}getDiskInformation(e){const t=u.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),r=this.normalizeDirectoryPath(e);return u.miscUtils.getFactoryWithDefault(t,r,()=>({packageLocation:r,packageDependencies:new Map,packagePeers:new Set,linkType:p.U.SOFT,discardFromLookup:!1}))}trimBlacklistedPackages(){for(const e of this.packageRegistry.values())for(const[t,r]of e)r.packageLocation&&this.blacklistedPaths.has(r.packageLocation)&&e.delete(t)}normalizeDirectoryPath(e){let t=i.y1.relative(this.opts.project.cwd,e);return t.match(/^\.{0,2}\//)||(t="./"+t),t.replace(/\/?$/,"/")}}const C=new Set([u.structUtils.makeIdent(null,"nan").identHash,u.structUtils.makeIdent(null,"node-gyp").identHash,u.structUtils.makeIdent(null,"node-pre-gyp").identHash,u.structUtils.makeIdent(null,"node-addon-api").identHash,u.structUtils.makeIdent(null,"fsevents").identHash]),E=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);class I{constructor(){this.mode="strict"}supportsPackage(e,t){return"pnp"===t.project.configuration.get("nodeLinker")&&t.project.configuration.get("pnpMode")===this.mode}async findPackageLocation(e,t){const r=b(t.project).main;if(!o.xfs.existsSync(r))throw new g.UsageError(`The project in ${t.project.cwd}/package.json doesn't seem to have been installed - running an install there might help`);const n=u.miscUtils.dynamicRequireNoCache(r),s={name:u.structUtils.requirableIdent(e),reference:e.reference},A=n.getPackageInformation(s);if(!A)throw new g.UsageError(`Couldn't find ${u.structUtils.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return i.cS.toPortablePath(A.packageLocation)}async findPackageLocator(e,t){const n=b(t.project).main;if(!o.xfs.existsSync(n))return null;const s=i.cS.fromPortablePath(n),A=u.miscUtils.dynamicRequire(s);delete r.c[s];const a=A.findPackageLocator(i.cS.fromPortablePath(e));return a?u.structUtils.makeLocator(u.structUtils.parseIdent(a.name),a.reference):null}makeInstaller(e){return new m(e)}}class m extends d{constructor(){super(...arguments),this.mode="strict",this.unpluggedPaths=new Set}async getBuildScripts(e,t,r){if(null===t)return[];const n=[];for(const e of["preinstall","install","postinstall"])t.scripts.has(e)&&n.push([c.k.SCRIPT,e]);const o=i.y1.join(r.prefixPath,(0,i.Zu)("binding.gyp"));return!t.scripts.has("install")&&r.packageFs.existsSync(o)&&n.push([c.k.SHELLCODE,"node-gyp rebuild"]),n}async transformPackage(e,t,r,n,{hasBuildScripts:i}){return this.isUnplugged(e,t,r,n,{hasBuildScripts:i})?this.unplugPackage(e,r.packageFs):r.packageFs}async finalizeInstallWithPnp(e){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;const t=b(this.opts.project),r=this.opts.project.configuration.get("pnpDataPath");if(await o.xfs.removePromise(t.other),"pnp"!==this.opts.project.configuration.get("nodeLinker"))return await o.xfs.removePromise(t.main),void await o.xfs.removePromise(r);const n=await this.locateNodeModules();if(n.length>0){this.opts.report.reportWarning(a.b.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(const e of n)await o.xfs.removePromise(e)}if(this.opts.project.configuration.get("pnpEnableInlining")){const n=(0,h.gY)(e);await o.xfs.changeFilePromise(t.main,n,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.removePromise(r)}else{const n=i.y1.relative(i.y1.dirname(t.main),r),{dataFile:s,loaderFile:A}=(0,h.Q$)({...e,dataLocation:n});await o.xfs.changeFilePromise(t.main,A,{automaticNewlines:!0}),await o.xfs.chmodPromise(t.main,493),await o.xfs.changeFilePromise(r,s,{automaticNewlines:!0}),await o.xfs.chmodPromise(r,420)}const s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(0===this.unpluggedPaths.size)await o.xfs.removePromise(s);else for(const e of await o.xfs.readdirPromise(s)){const t=i.y1.resolve(s,e);this.unpluggedPaths.has(t)||await o.xfs.removePromise(t)}}async locateNodeModules(){const e=[];for(const t of this.opts.project.workspaces){const r=i.y1.join(t.cwd,(0,i.Zu)("node_modules"));if(!o.xfs.existsSync(r))continue;const n=await o.xfs.readdirPromise(r,{withFileTypes:!0}),s=n.filter(e=>!e.isDirectory()||".bin"===e.name||!e.name.startsWith("."));if(s.length===n.length)e.push(r);else for(const t of s)e.push(i.y1.join(r,t.name))}return e}getUnpluggedPath(e){return i.y1.resolve(this.opts.project.configuration.get("pnpUnpluggedFolder"),u.structUtils.slugifyLocator(e))}async unplugPackage(e,t){const r=this.getUnpluggedPath(e);return this.unpluggedPaths.add(r),await o.xfs.mkdirpPromise(r),await o.xfs.copyPromise(r,i.LZ.dot,{baseFs:t,overwrite:!1}),new l.M(r)}isUnplugged(e,t,r,n,{hasBuildScripts:i}){return void 0!==n.unplugged?n.unplugged:!!C.has(e.identHash)||(null!==t&&null!==t.preferUnplugged?t.preferUnplugged:!(!i&&!r.packageFs.getExtractHint({relevantExtensions:E})))}}var y=r(36370),w=r(95397),B=r(40376),Q=r(28148),v=r(15815);class D extends w.BaseCommand{constructor(){super(...arguments),this.patterns=[]}async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins),{project:t,workspace:r}=await B.I.find(e,this.context.cwd),i=await Q.C.find(e);if(!r)throw new w.WorkspaceRequiredError(t.cwd,this.context.cwd);const o=t.topLevelWorkspace;for(const e of this.patterns){const t=u.structUtils.parseDescriptor(e);o.manifest.ensureDependencyMeta(t).unplugged=!0}await o.persistManifest();return(await v.P.start({configuration:e,stdout:this.context.stdout},async e=>{await t.install({cache:i,report:e})})).exitCode()}}D.usage=g.Command.Usage({description:"force the unpacking of a list of packages",details:"\n      This command will add the specified selectors to the list of packages that must be unplugged when installed.\n\n      A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `virtualFolder`.\n\n      Unpacking a package isn't advised as a general tool because it makes it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n      The unplug command sets a flag that's persisted in your top-level `package.json` through the `dependenciesMeta` field. As such, to undo its effects, just revert the changes made to the manifest and run `yarn install`.\n    ",examples:[["Unplug lodash","yarn unplug lodash"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"]]}),(0,y.gn)([g.Command.Rest()],D.prototype,"patterns",void 0),(0,y.gn)([g.Command.Path("unplug")],D.prototype,"execute",null);const b=e=>{let t,r;return"module"===e.topLevelWorkspace.manifest.type?(t=".pnp.cjs",r=".pnp.js"):(t=".pnp.js",r=".pnp.cjs"),{main:i.y1.join(e.cwd,t),other:i.y1.join(e.cwd,r)}},S=e=>/\s/.test(e)?JSON.stringify(e):e;const k={hooks:{populateYarnPaths:async function(e,t){t(b(e).main),t(b(e).other),t(e.configuration.get("pnpDataPath")),t(e.configuration.get("pnpUnpluggedFolder"))},setupScriptEnvironment:async function(e,t,r){const n=b(e).main,s="--require "+S(i.cS.fromPortablePath(n));if(n.includes(" ")&&A().lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(o.xfs.existsSync(n)){let e=t.NODE_OPTIONS||"";const r=/\s*--require\s+\S*\.pnp\.c?js\s*/g;e=e.replace(r," ").trim(),e=e?`${s} ${e}`:s,t.NODE_OPTIONS=e}}},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:n.a2.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:n.a2.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:n.a2.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:n.a2.STRING,default:[],isArray:!0},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:n.a2.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:n.a2.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:n.a2.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:n.a2.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[I],commands:[D]}},28638:(e,t,r)=>{"use strict";r.r(t);var n=r(50683),i=r.n(n);Object.fromEntries||(Object.fromEntries=i());var o=r(59355),s=r(91058),A=r(45330);(0,s.D)({binaryVersion:o.o||"<unknown>",pluginConfiguration:(0,A.e)()})},95397:(e,t,r)=>{"use strict";r.r(t),r.d(t,{BaseCommand:()=>n.F,WorkspaceRequiredError:()=>A,getDynamicLibs:()=>c,getPluginConfiguration:()=>u.e,openWorkspace:()=>h,main:()=>g.D});var n=r(56087),i=r(46611),o=r(46009),s=r(17278);class A extends s.UsageError{constructor(e,t){super(`This command can only be run from within a workspace of your project (${o.y1.relative(e,t)} isn't a workspace of ${o.y1.join(e,i.G.fileName)}).`)}}const a=["@yarnpkg/cli","@yarnpkg/core","@yarnpkg/fslib","@yarnpkg/libzip","@yarnpkg/parsers","@yarnpkg/shell","clipanion","semver","yup"],c=()=>new Map(a.map(e=>[e,r(98497)(e)]));var u=r(45330),l=r(40376);async function h(e,t){const{project:r,workspace:n}=await l.I.find(e,t);if(!n)throw new A(r.cwd,t);return n}var g=r(91058)},91058:(e,t,r)=>{"use strict";r.d(t,{D:()=>h});var n=r(27122),i=r(46009),o=r(56537),s=r(63129),A=r(17278),a=r(35747),c=r(36370),u=r(56087);class l extends u.F{async execute(){const e=await n.VK.find(this.context.cwd,this.context.plugins);this.context.stdout.write((e=>`\n${e.format("Welcome on Yarn 2!","bold")} 🎉 Thanks for helping us shape our vision of how projects\nshould be managed going forward.\n\nBeing still in RC, Yarn 2 isn't completely stable yet. Some features might be\nmissing, and some behaviors may have received major overhaul. In case of doubt,\nuse the following URLs to get some insight:\n\n  - The changelog:\n    ${e.format("https://github.com/yarnpkg/berry/tree/CHANGELOG.md","cyan")}\n\n  - Our issue tracker:\n    ${e.format("https://github.com/yarnpkg/berry","cyan")}\n\n  - Our Discord server:\n    ${e.format("https://discord.gg/yarnpkg","cyan")}\n\nWe're hoping you will enjoy the experience. For now, a good start is to run\nthe two following commands:\n\n  ${e.format("find . -name node_modules -prune -exec rm -r {} \\;","magenta")}\n  ${e.format("yarn install","magenta")}\n\nOne last trick! If you need at some point to upgrade Yarn to a nightly build,\nthe following command will install the CLI straight from master:\n\n  ${e.format("yarn set version from sources","magenta")}\n\nSee you later 👋\n`)(e).trim()+"\n")}}async function h({binaryVersion:e,pluginConfiguration:t}){async function r(){const c=new A.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:e});c.register(l);try{await async function(e){const A=await n.VK.find(i.cS.toPortablePath(process.cwd()),t,{usePath:!0,strict:!1}),c=A.get("yarnPath"),u=A.get("ignorePath"),l=A.get("ignoreCwd");if(null===c||u){u&&delete process.env.YARN_IGNORE_PATH;for(const t of A.plugins.values())for(const r of t.commands||[])e.register(r);const n=e.process(process.argv.slice(2)),o=n.cwd;if(void 0!==o&&!l){const e=(0,a.realpathSync)(process.cwd()),t=(0,a.realpathSync)(o);if(e!==t)return process.chdir(o),void await r()}e.runExit(n,{cwd:i.cS.toPortablePath(process.cwd()),plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}else if(o.xfs.existsSync(c))try{!function(e){const t=i.cS.fromPortablePath(e);process.on("SIGINT",()=>{}),t?(0,s.execFileSync)(process.execPath,[t,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,s.execFileSync)(t,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}(c)}catch(e){process.exitCode=e.code||1}else process.stdout.write(e.error(new Error(`The "yarn-path" option has been set (in ${A.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1}(c)}catch(e){process.stdout.write(c.error(e)),process.exitCode=1}}return r().catch(e=>{process.stdout.write(e.stack||e.message),process.exitCode=1})}(0,c.gn)([A.Command.Path("--welcome")],l.prototype,"execute",null)},56087:(e,t,r)=>{"use strict";r.d(t,{F:()=>o});var n=r(36370),i=r(17278);class o extends i.Command{}(0,n.gn)([i.Command.String("--cwd",{hidden:!0})],o.prototype,"cwd",void 0)},28148:(e,t,r)=>{"use strict";r.d(t,{C:()=>C});var n=r(78420),i=r(90739),o=r(15037),s=r(46009),A=r(56537),a=r(29486),c=r(35747),u=r.n(c),l=r(92659),h=r(35691),g=r(20624),f=r(73632),p=r(54143);const d=5;class C{constructor(e,{configuration:t,immutable:r=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set,this.mutexes=new Map,this.configuration=t,this.cwd=e,this.immutable=r,this.check=n;const o=t.get("cacheKeyOverride");if(null!==o)this.cacheKey=""+o;else{const e=t.get("compressionLevel"),r=e!==i.k?"c"+e:"";this.cacheKey=[d,r].join("")}}static async find(e,{immutable:t,check:r}={}){const n=new C(e.get("cacheFolder"),{configuration:e,immutable:t,check:r});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;const e=this.configuration.get("globalFolder")+"/cache";return e!==this.cwd?e:null}getVersionFilename(e){return`${p.slugifyLocator(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){const r=function(e){const t=e.indexOf("/");return-1!==t?e.slice(t+1):e}(t).slice(0,10);return`${p.slugifyLocator(e)}-${r}.zip`}getLocatorPath(e,t){if(null===this.mirrorCwd)return s.y1.resolve(this.cwd,this.getVersionFilename(e));if(null===t)return null;return E(t)!==this.cacheKey?null:s.y1.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){const t=this.mirrorCwd;return null!==t?s.y1.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache")){await A.xfs.mkdirpPromise(this.cwd);const e=s.y1.resolve(this.cwd,(0,s.Zu)(".gitignore"));await A.xfs.existsPromise(e)||await A.xfs.writeFilePromise(e,"/.gitignore\n*.lock\n")}}async fetchPackageFromCache(e,t,{onHit:r,onMiss:c,loader:d,skipIntegrityCheck:C}){const I=this.getLocatorMirrorPath(e),m=new n.S,y=async(e,r=null)=>{const n=C&&t?t:`${this.cacheKey}/${await g.checksumFile(e)}`;if(null!==r){if(n!==(C&&t?t:`${this.cacheKey}/${await g.checksumFile(r)}`))throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(null!==t&&n!==t){let e;switch(e=this.check?"throw":E(t)!==E(n)?"update":this.configuration.get("checksumBehavior"),e){case"ignore":return t;case"update":return n;default:case"throw":throw new h.lk(l.b.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return n},w=async t=>{if(!d)throw new Error("Cache check required but no loader configured for "+p.prettyLocator(this.configuration,e));const r=await d(),n=r.getRealPath();return r.saveAndClose(),await A.xfs.chmodPromise(n,420),await y(t,n)},B=async()=>{if(null===I||!A.xfs.existsSync(I))return await d();const t=await A.xfs.mktempPromise(),r=s.y1.join(t,this.getVersionFilename(e));return await A.xfs.copyFilePromise(I,r,u().constants.COPYFILE_FICLONE),new i.d(r,{libzip:await(0,a.getLibzipPromise)()})},Q=async()=>{if(!d)throw new Error("Cache entry required but missing for "+p.prettyLocator(this.configuration,e));if(this.immutable)throw new h.lk(l.b.IMMUTABLE_CACHE,"Cache entry required but missing for "+p.prettyLocator(this.configuration,e));const t=await B(),r=t.getRealPath();t.saveAndClose(),await A.xfs.chmodPromise(r,420);const n=await y(r),i=this.getLocatorPath(e,n);if(!i)throw new Error("Assertion failed: Expected the cache path to be available");return await this.writeFileWithLock(i,async()=>await this.writeFileWithLock(I,async()=>(await A.xfs.movePromise(r,i),null!==I&&await A.xfs.copyFilePromise(i,I,u().constants.COPYFILE_FICLONE),[i,n])))},v=async()=>{const t=Q();this.mutexes.set(e.locatorHash,t);try{return await t}finally{this.mutexes.delete(e.locatorHash)}};for(let t;t=this.mutexes.get(e.locatorHash);)await t;const D=this.getLocatorPath(e,t),b=null!==D&&m.existsSync(D),S=b?r:c;let k,x;S&&S(),b?(k=D,x=this.check?await w(k):await y(k)):[k,x]=await v(),this.markedFiles.add(k);let F=null;const M=await(0,a.getLibzipPromise)();return[new o.v(()=>f.prettifySyncErrors(()=>F=new i.d(k,{baseFs:m,libzip:M,readOnly:!0}),t=>`Failed to open the cache entry for ${p.prettyLocator(this.configuration,e)}: ${t}`),s.y1),()=>{null!==F&&F.discardAndClose()},x]}async writeFileWithLock(e,t){return null===e?await t():(await A.xfs.mkdirpPromise(s.y1.dirname(e)),await A.xfs.lockPromise(e,async()=>await t()))}}function E(e){const t=e.indexOf("/");return-1!==t?e.slice(0,t):null}},27122:(e,t,r)=>{"use strict";r.d(t,{tr:()=>_,nh:()=>O,a2:()=>j,a5:()=>Y,EW:()=>V,VK:()=>X});var n=r(90739),i=r(46009),o=r(56537),s=r(55125),A=r(54738),a=r.n(A),c=r(95882),u=r.n(c),l=r(5864),h=r(17278),g=r(53887),f=r.n(g),p=r(92413),d=r(92659),C=r(54143);const E={hooks:{reduceDependency:(e,t,r,n,{resolver:i,resolveOptions:o})=>{for(const{pattern:n,reference:s}of t.topLevelWorkspace.manifest.resolutions){if(n.from&&n.from.fullName!==C.requirableIdent(r))continue;if(n.from&&n.from.description&&n.from.description!==r.reference)continue;if(n.descriptor.fullName!==C.requirableIdent(e))continue;if(n.descriptor.description&&n.descriptor.description!==e.range)continue;return i.bindDescriptor(C.makeDescriptor(e,s),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(const r of e.workspaces){const n=C.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(e=>e.validateWorkspace,r,{reportWarning:(e,r)=>t.reportWarning(e,`${n}: ${r}`),reportError:(e,r)=>t.reportError(e,`${n}: ${r}`)})}},validateWorkspace:async(e,t)=>{const{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(const e of r.errors)t.reportWarning(d.b.INVALID_MANIFEST,e.message)}}};var I=r(46611),m=r(35691);class y{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){const r=this.getFetcher(e,t);return await r.fetch(e,t)}tryFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));return r||null}getFetcher(e,t){const r=this.fetchers.find(r=>r.supports(e,t));if(!r)throw new m.lk(d.b.FETCHER_NOT_FOUND,C.prettyLocator(t.project.configuration,e)+" isn't supported by any available fetcher");return r}}var w=r(27092),B=r(52779),Q=r(60895);class v{static isVirtualDescriptor(e){return!!e.range.startsWith(v.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(v.protocol)}supportsDescriptor(e,t){return v.isVirtualDescriptor(e)}supportsLocator(e,t){return v.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,r){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}v.protocol="virtual:";var D=r(75448),b=r(94538);class S{supports(e){return!!e.reference.startsWith(b.d.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){const r=this.getWorkspace(e,t).cwd;return{packageFs:new D.M(r),prefixPath:i.LZ.dot,localPath:r}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(b.d.protocol.length))}}var k=r(81111),x=r(73632),F=r(32282),M=r.n(F);function N(e){return("undefined"!=typeof require?require:r(32178))(e)}var R=r(36545);const K=process.env.GITHUB_ACTIONS?{level:2}:u().supportsColor?{level:u().supportsColor.level}:{level:0},L=0!==K.level,T=L&&!process.env.GITHUB_ACTIONS,P=new(u().Instance)(K),U=new Set(["binFolder","version","flags","profile","gpg","wrapOutput"]),_=(0,i.Zu)(".yarnrc.yml"),O=(0,i.Zu)("yarn.lock");var j,Y;!function(e){e.ANY="ANY",e.BOOLEAN="BOOLEAN",e.ABSOLUTE_PATH="ABSOLUTE_PATH",e.LOCATOR="LOCATOR",e.LOCATOR_LOOSE="LOCATOR_LOOSE",e.NUMBER="NUMBER",e.STRING="STRING",e.SECRET="SECRET",e.SHAPE="SHAPE",e.MAP="MAP"}(j||(j={})),function(e){e.NAME="NAME",e.NUMBER="NUMBER",e.PATH="PATH",e.RANGE="RANGE",e.REFERENCE="REFERENCE",e.SCOPE="SCOPE",e.ADDED="ADDED",e.REMOVED="REMOVED"}(Y||(Y={}));const G=K.level>=3?new Map([[Y.NAME,"#d7875f"],[Y.RANGE,"#00afaf"],[Y.REFERENCE,"#87afff"],[Y.NUMBER,"#ffd700"],[Y.PATH,"#d75fd7"],[Y.SCOPE,"#d75f00"],[Y.ADDED,"#5faf00"],[Y.REMOVED,"#d70000"]]):new Map([[Y.NAME,173],[Y.RANGE,37],[Y.REFERENCE,111],[Y.NUMBER,220],[Y.PATH,170],[Y.SCOPE,166],[Y.ADDED,70],[Y.REMOVED,160]]),J={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:j.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:j.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:j.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:j.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:j.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:j.ABSOLUTE_PATH,default:k.getDefaultGlobalFolder()},cacheFolder:{description:"Folder where the cache files must be written",type:j.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:j.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:n.k},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named $$virtual)",type:j.ABSOLUTE_PATH,default:"./.yarn/$$virtual"},bstatePath:{description:"Path of the file where the current state of the built packages must be stored",type:j.ABSOLUTE_PATH,default:"./.yarn/build-state.yml"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:j.STRING,default:O},installStatePath:{description:"Path of the file where the install state will be persisted",type:j.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},rcFilename:{description:"Name of the files where the configuration can be found",type:j.STRING,default:W()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:j.BOOLEAN,default:!1},enableAbsoluteVirtuals:{description:"If true, the virtual symlinks will use absolute paths if required [non portable!!]",type:j.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:j.BOOLEAN,default:L,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:j.BOOLEAN,default:T,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:j.BOOLEAN,default:l.isCI,defaultText:"<dynamic>"},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:j.BOOLEAN,default:!l.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:j.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:j.BOOLEAN,default:l.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:j.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:j.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:j.STRING,default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:j.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:j.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:j.BOOLEAN,default:!0},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:j.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:j.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:j.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:j.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:j.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:j.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:j.NUMBER,default:3},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:j.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:j.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:j.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:j.MAP,valueDefinition:{description:"",type:j.ANY}}};function H(e,t,r,n,i){if(n.isArray)return Array.isArray(r)?r.map((r,o)=>q(e,`${t}[${o}]`,r,n,i)):String(r).split(/,/).map(r=>q(e,t,r,n,i));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${t}" cannot be an array`);return q(e,t,r,n,i)}function q(e,t,r,n,o){var s;switch(n.type){case j.ANY:return r;case j.SHAPE:return function(e,t,r,n,i){if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Object configuration settings "${t}" must be an object`);const o=z(e,n);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=`${t}.${s}`;if(!n.properties[s])throw new h.UsageError(`Unrecognized configuration settings found: ${t}.${s} - run "yarn config -v" to see the list of settings supported in Yarn`);o.set(s,H(e,r,A,n.properties[s],i))}return o}(e,t,r,n,o);case j.MAP:return function(e,t,r,n,i){const o=new Map;if("object"!=typeof r||Array.isArray(r))throw new h.UsageError(`Map configuration settings "${t}" must be an object`);if(null===r)return o;for(const[s,A]of Object.entries(r)){const r=n.normalizeKeys?n.normalizeKeys(s):s,a=`${t}['${r}']`,c=n.valueDefinition;o.set(r,H(e,a,A,c,i))}return o}(e,t,r,n,o)}if(null===r&&!n.isNullable&&null!==n.default)throw new Error(`Non-nullable configuration settings "${t}" cannot be set to null`);if(null===(s=n.values)||void 0===s?void 0:s.includes(r))return r;const A=(()=>{if(n.type===j.BOOLEAN)return function(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}(r);if("string"!=typeof r)throw new Error(`Expected value (${r}) to be a string`);const e=x.replaceEnvVariables(r,{env:process.env});switch(n.type){case j.ABSOLUTE_PATH:return i.y1.resolve(o,i.cS.toPortablePath(e));case j.LOCATOR_LOOSE:return C.parseLocator(e,!1);case j.NUMBER:return parseInt(e);case j.LOCATOR:return C.parseLocator(e);default:return e}})();if(n.values&&!n.values.includes(A))throw new Error("Invalid value, expected one of "+n.values.join(", "));return A}function z(e,t){switch(t.type){case j.SHAPE:{const r=new Map;for(const[n,i]of Object.entries(t.properties))r.set(n,z(e,i));return r}case j.MAP:return new Map;case j.ABSOLUTE_PATH:return null===t.default?null:null===e.projectCwd?i.y1.isAbsolute(t.default)?i.y1.normalize(t.default):t.isNullable?null:void 0:Array.isArray(t.default)?t.default.map(t=>i.y1.resolve(e.projectCwd,t)):i.y1.resolve(e.projectCwd,t.default);default:return t.default}}function W(){for(const[e,t]of Object.entries(process.env))if("yarn_rc_filename"===e.toLowerCase()&&"string"==typeof t)return t;return _}var V;!function(e){e[e.LOCKFILE=0]="LOCKFILE",e[e.MANIFEST=1]="MANIFEST",e[e.NONE=2]="NONE"}(V||(V={}));class X{constructor(e){this.projectCwd=null,this.plugins=new Map,this.settings=new Map,this.values=new Map,this.sources=new Map,this.invalid=new Map,this.packageExtensions=new Map,this.startingCwd=e}static create(e,t,r){const n=new X(e);void 0===t||t instanceof Map||(n.projectCwd=t),n.importSettings(J);const i=void 0!==r?r:t instanceof Map?t:new Map;for(const[e,t]of i)n.activatePlugin(e,t);return n}static async find(e,t,{lookup:r=V.LOCKFILE,strict:n=!0,usePath:s=!1,useRc:A=!0}={}){const c=function(){const e={};for(let[t,r]of Object.entries(process.env))t=t.toLowerCase(),t.startsWith("yarn_")&&(t=a()(t.slice("yarn_".length)),e[t]=r);return e}();delete c.rcFilename;const u=await X.findRcFiles(e),l=await X.findHomeRcFile(),g=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n})=>({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n}),f=({ignoreCwd:e,yarnPath:t,ignorePath:r,lockfileFilename:n,...i})=>i,p=new X(e);p.importSettings(g(J)),p.useWithSource("<environment>",g(c),e,{strict:!1});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,g(r),t,{strict:!1});if(l&&p.useWithSource(l.path,g(l.data),l.cwd,{strict:!1}),s){const e=p.get("yarnPath"),t=p.get("ignorePath");if(null!==e&&!t)return p}const d=p.get("lockfileFilename");let C;switch(r){case V.LOCKFILE:C=await X.findProjectCwd(e,d);break;case V.MANIFEST:C=await X.findProjectCwd(e,null);break;case V.NONE:C=o.xfs.existsSync(i.y1.join(e,"package.json"))?i.y1.resolve(e):null}p.startingCwd=e,p.projectCwd=C,p.importSettings(f(J));const I=new Map([["@@core",E]]);if(null!==t){for(const e of t.plugins.keys())I.set(e,(m=t.modules.get(e)).__esModule?m.default:m);const r=new Map;for(const e of new Set(M().builtinModules||Object.keys(process.binding("natives"))))r.set(e,()=>N(e));for(const[e,n]of t.modules)r.set(e,()=>n);const n=new Set,o=e=>e.default||e,s=(e,t)=>{const{factory:s,name:A}=N(i.cS.fromPortablePath(e));if(n.has(A))return;const a=new Map(r),c=e=>{if(a.has(e))return a.get(e)();throw new h.UsageError(`This plugin cannot access the package referenced via ${e} which is neither a builtin, nor an exposed entry`)},u=x.prettifySyncErrors(()=>o(s(c)),e=>`${e} (when initializing ${A}, defined in ${t})`);r.set(A,()=>u),n.add(A),I.set(A,u)};if(c.plugins)for(const t of c.plugins.split(";")){s(i.y1.resolve(e,i.cS.toPortablePath(t)),"<environment>")}for(const{path:e,cwd:t,data:r}of u)if(A&&Array.isArray(r.plugins))for(const n of r.plugins){const r="string"!=typeof n?n.path:n;s(i.y1.resolve(t,i.cS.toPortablePath(r)),e)}}var m;for(const[e,t]of I)p.activatePlugin(e,t);p.useWithSource("<environment>",f(c),e,{strict:n});for(const{path:e,cwd:t,data:r}of u)p.useWithSource(e,f(r),t,{strict:n});return l&&p.useWithSource(l.path,f(l.data),l.cwd,{strict:n}),p.get("enableGlobalCache")&&(p.values.set("cacheFolder",p.get("globalFolder")+"/cache"),p.sources.set("cacheFolder","<internal>")),await p.refreshPackageExtensions(),p}static async findRcFiles(e){const t=W(),r=[];let n=e,A=null;for(;n!==A;){A=n;const e=i.y1.join(A,t);if(o.xfs.existsSync(e)){const t=await o.xfs.readFilePromise(e,"utf8");let n;try{n=(0,s.parseSyml)(t)}catch(r){let n="";throw t.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(n=" (in particular, make sure you list the colons after each key name)"),new h.UsageError(`Parse error when loading ${e}; please check it's proper Yaml${n}`)}r.push({path:e,cwd:A,data:n})}n=i.y1.dirname(A)}return r}static async findHomeRcFile(){const e=W(),t=k.getHomeFolder(),r=i.y1.join(t,e);if(o.xfs.existsSync(r)){const e=await o.xfs.readFilePromise(r,"utf8");return{path:r,cwd:t,data:(0,s.parseSyml)(e)}}return null}static async findProjectCwd(e,t){let r=null,n=e,s=null;for(;n!==s;){if(s=n,o.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))&&(r=s),null!==t){if(o.xfs.existsSync(i.y1.join(s,t))){r=s;break}}else if(null!==r)break;n=i.y1.dirname(s)}return r}static async updateConfiguration(e,t){const r=W(),n=i.y1.join(e,r),A=o.xfs.existsSync(n)?(0,s.parseSyml)(await o.xfs.readFilePromise(n,"utf8")):{};let a=!1;if("function"==typeof t&&(t=t(A)),"function"==typeof t)throw new Error("Assertion failed: Invalid configuration type");for(const e of Object.keys(t)){const r=A[e],n="function"==typeof t[e]?t[e](r):t[e];r!==n&&(A[e]=n,a=!0)}a&&await o.xfs.changeFilePromise(n,(0,s.stringifySyml)(A),{automaticNewlines:!0})}static async updateHomeConfiguration(e){const t=k.getHomeFolder();return await X.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),void 0!==t.configuration&&this.importSettings(t.configuration)}importSettings(e){for(const[t,r]of Object.entries(e)){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,r),this.values.set(t,z(this,r))}}useWithSource(e,t,r,{strict:n=!0,overwrite:i=!1}){try{this.use(e,t,r,{strict:n,overwrite:i})}catch(t){throw t.message+=` (in ${e})`,t}}use(e,t,r,{strict:n=!0,overwrite:i=!1}){for(const o of Object.keys(t)){if(void 0===t[o])continue;if("plugins"===o)continue;if("<environment>"===e&&U.has(o))continue;if("rcFilename"===o)throw new h.UsageError(`The rcFilename settings can only be set via ${"yarn_RC_FILENAME".toUpperCase()}, not via a rc file`);const s=this.settings.get(o);if(!s){if(n)throw new h.UsageError(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!i)continue;let A;try{A=H(this,o,t[o],s,r)}catch(t){throw t.message+=" in "+e,t}this.values.set(o,A),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:r=!1}){const n=this.get(e),o=this.settings.get(e);if(void 0===o)throw new h.UsageError(`Couldn't find a configuration settings named "${e}"`);return function e(t,r,n){if(r.type===j.SECRET&&"string"==typeof t&&n.hideSecrets)return"********";if(r.type===j.ABSOLUTE_PATH&&"string"==typeof t&&n.getNativePaths)return i.cS.fromPortablePath(t);if(r.isArray&&Array.isArray(t)){const i=[];for(const o of t)i.push(e(o,r,n));return i}if(r.type===j.MAP&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries())i.set(o,e(s,r.valueDefinition,n));return i}if(r.type===j.SHAPE&&t instanceof Map){const i=new Map;for(const[o,s]of t.entries()){const t=r.properties[o];i.set(o,e(s,t,n))}return i}return t}(n,o,{hideSecrets:t,getNativePaths:r})}getSubprocessStreams(e,{header:t,prefix:r,report:n}){let i,s;const A=o.xfs.createWriteStream(e);if(this.get("enableInlineBuilds")){const e=n.createStreamReporter(`${r} ${this.format("STDOUT","green")}`),t=n.createStreamReporter(`${r} ${this.format("STDERR","red")}`);i=new p.PassThrough,i.pipe(e),i.pipe(A),s=new p.PassThrough,s.pipe(t),s.pipe(A)}else i=A,s=A,void 0!==t&&i.write(t+"\n");return{stdout:i,stderr:s}}makeResolver(){const e=[];for(const t of this.plugins.values())for(const r of t.resolvers||[])e.push(new r);return new w.B([new v,new b.d,new B.O,...e])}makeFetcher(){const e=[];for(const t of this.plugins.values())for(const r of t.fetchers||[])e.push(new r);return new y([new Q.N,new S,...e])}getLinkers(){const e=[];for(const t of this.plugins.values())for(const r of t.linkers||[])e.push(new r);return e}async refreshPackageExtensions(){this.packageExtensions=new Map;const e=this.packageExtensions,t=(t,r)=>{if(!f().validRange(t.range))throw new Error("Only semver ranges are allowed as keys for the lockfileExtensions setting");const n=new I.G;n.load(r),x.getArrayWithDefault(e,t.identHash).push({range:t.range,patch:e=>{e.dependencies=new Map([...e.dependencies,...n.dependencies]),e.peerDependencies=new Map([...e.peerDependencies,...n.peerDependencies]),e.dependenciesMeta=new Map([...e.dependenciesMeta,...n.dependenciesMeta]),e.peerDependenciesMeta=new Map([...e.peerDependenciesMeta,...n.peerDependenciesMeta])}})};for(const[e,r]of this.get("packageExtensions"))t(C.parseDescriptor(e,!0),r);await this.triggerHook(e=>e.registerPackageExtensions,this,t)}normalizePackage(e){const t=C.copyPackage(e);if(null==this.packageExtensions)throw new Error("refreshPackageExtensions has to be called before normalizing packages");const r=this.packageExtensions.get(e.identHash);if(void 0!==r){const n=e.version;if(null!==n){const e=r.find(({range:e})=>R.satisfiesWithPrereleases(n,e));void 0!==e&&e.patch(t)}}return t.dependencies=new Map(x.sortMap(t.dependencies,([,e])=>e.name)),t.peerDependencies=new Map(x.sortMap(t.peerDependencies,([,e])=>e.name)),t}async triggerHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);i&&await i(...t)}}async triggerMultipleHooks(e,t){for(const r of t)await this.triggerHook(e,...r)}async reduceHook(e,t,...r){let n=t;for(const t of this.plugins.values()){const i=t.hooks;if(!i)continue;const o=e(i);o&&(n=await o(n,...r))}return n}async firstHook(e,...t){for(const r of this.plugins.values()){const n=r.hooks;if(!n)continue;const i=e(n);if(!i)continue;const o=await i(...t);if(void 0!==o)return o}return null}format(e,t){if(t===Y.PATH&&(e=i.cS.fromPortablePath(e)),!this.get("enableColors"))return e;let r=G.get(t);void 0===r&&(r=t);return("number"==typeof r?P.ansi256(r):r.startsWith("#")?P.hex(r):P[r])(e)}}},92409:(e,t,r)=>{"use strict";var n;r.d(t,{k:()=>n}),function(e){e[e.SCRIPT=0]="SCRIPT",e[e.SHELLCODE=1]="SHELLCODE"}(n||(n={}))},62152:(e,t,r)=>{"use strict";r.d(t,{h:()=>i});var n=r(35691);class i extends n.yG{constructor({configuration:e,stdout:t,suggestInstall:r=!0}){super(),this.errorCount=0,this.configuration=e,this.stdout=t,this.suggestInstall=r}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${this.configuration.format("➤","redBright")} ${this.formatName(e)}: ${t}\n`)}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(this.configuration.format("➤","redBright")+" Errors happened when preparing the environment required to run this command.\n"),this.suggestInstall&&this.stdout.write(this.configuration.format("➤","redBright")+' This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.\n'))}formatName(e){return"BR"+e.toString(10).padStart(4,"0")}}},46611:(e,t,r)=>{"use strict";r.d(t,{G:()=>u});var n=r(78420),i=r(46009),o=r(55125),s=r(53887),A=r.n(s),a=r(73632),c=r(54143);class u{constructor(){this.indent="  ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.type=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(e,{baseFs:t=new n.S}={}){const r=i.y1.join(e,(0,i.Zu)("package.json"));return await t.existsPromise(r)?await u.fromFile(r,{baseFs:t}):null}static async find(e,{baseFs:t}={}){const r=await u.tryFind(e,{baseFs:t});if(null===r)throw new Error("Manifest not found");return r}static async fromFile(e,{baseFs:t=new n.S}={}){const r=new u;return await r.loadFile(e,{baseFs:t}),r}static fromText(e){const t=new u;return t.loadFromText(e),t}loadFromText(e){let t;try{t=JSON.parse(h(e)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(t),this.indent=l(e)}async loadFile(e,{baseFs:t=new n.S}){const r=await t.readFilePromise(e,"utf8");let i;try{i=JSON.parse(h(r)||"{}")}catch(t){throw t.message+=` (when parsing ${e})`,t}this.load(i),this.indent=l(r)}load(e){if("object"!=typeof e||null===e)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;const t=[];if("string"==typeof e.name)try{this.name=c.parseIdent(e.name)}catch(e){t.push(new Error("Parsing failed for the 'name' field"))}if("string"==typeof e.version&&(this.version=e.version),Array.isArray(e.os)){const r=[];this.os=r;for(const n of e.os)"string"!=typeof n?t.push(new Error("Parsing failed for the 'os' field")):r.push(n)}if(Array.isArray(e.cpu)){const r=[];this.cpu=r;for(const n of e.cpu)"string"!=typeof n?t.push(new Error("Parsing failed for the 'cpu' field")):r.push(n)}if("string"==typeof e.type&&(this.type=e.type),"boolean"==typeof e.private&&(this.private=e.private),"string"==typeof e.license&&(this.license=e.license),"string"==typeof e.languageName&&(this.languageName=e.languageName),"string"==typeof e.bin)null!==this.name?this.bin=new Map([[this.name.name,e.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.bin&&null!==e.bin)for(const[r,n]of Object.entries(e.bin))"string"==typeof n?this.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`));if("object"==typeof e.scripts&&null!==e.scripts)for(const[r,n]of Object.entries(e.scripts))"string"==typeof n?this.scripts.set(r,n):t.push(new Error(`Invalid script definition for '${r}'`));if("object"==typeof e.dependencies&&null!==e.dependencies)for(const[r,n]of Object.entries(e.dependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i)}if("object"==typeof e.devDependencies&&null!==e.devDependencies)for(const[r,n]of Object.entries(e.devDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.devDependencies.set(i.identHash,i)}if("object"==typeof e.peerDependencies&&null!==e.peerDependencies)for(let[r,n]of Object.entries(e.peerDependencies)){let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}"string"==typeof n&&A().validRange(n)||(t.push(new Error(`Invalid dependency range for '${r}'`)),n="*");const i=c.makeDescriptor(e,n);this.peerDependencies.set(i.identHash,i)}const r=Array.isArray(e.workspaces)?e.workspaces:"object"==typeof e.workspaces&&null!==e.workspaces&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];for(const e of r)"string"==typeof e?this.workspaceDefinitions.push({pattern:e}):t.push(new Error(`Invalid workspace definition for '${e}'`));if("object"==typeof e.dependenciesMeta&&null!==e.dependenciesMeta)for(const[r,n]of Object.entries(e.dependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensureDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.peerDependenciesMeta&&null!==e.peerDependenciesMeta)for(const[r,n]of Object.entries(e.peerDependenciesMeta)){if("object"!=typeof n||null===n){t.push(new Error("Invalid meta field for '"+r));continue}const e=c.parseDescriptor(r),i=this.ensurePeerDependencyMeta(e);Object.assign(i,n)}if("object"==typeof e.resolutions&&null!==e.resolutions)for(const[r,n]of Object.entries(e.resolutions))if("string"==typeof n)try{this.resolutions.push({pattern:(0,o.parseResolution)(r),reference:n})}catch(e){t.push(e);continue}else t.push(new Error(`Invalid resolution entry for '${r}'`));if(Array.isArray(e.files)&&0!==e.files.length){this.files=new Set;for(const r of e.files)"string"==typeof r?this.files.add(r):t.push(new Error(`Invalid files entry for '${r}'`))}if("object"==typeof e.publishConfig&&null!==e.publishConfig)if(this.publishConfig={},"string"==typeof e.publishConfig.access&&(this.publishConfig.access=e.publishConfig.access),"string"==typeof e.publishConfig.main&&(this.publishConfig.main=e.publishConfig.main),"string"==typeof e.publishConfig.registry&&(this.publishConfig.registry=e.publishConfig.registry),"string"==typeof e.publishConfig.module&&(this.publishConfig.module=e.publishConfig.module),"string"==typeof e.publishConfig.bin)null!==this.name?this.publishConfig.bin=new Map([[this.name.name,e.publishConfig.bin]]):t.push(new Error("String bin field, but no attached package name"));else if("object"==typeof e.publishConfig.bin&&null!==e.publishConfig.bin){this.publishConfig.bin=new Map;for(const[r,n]of Object.entries(e.publishConfig.bin))"string"==typeof n?this.publishConfig.bin.set(r,n):t.push(new Error(`Invalid bin definition for '${r}'`))}if("object"==typeof e.optionalDependencies&&null!==e.optionalDependencies)for(const[r,n]of Object.entries(e.optionalDependencies)){if("string"!=typeof n){t.push(new Error(`Invalid dependency range for '${r}'`));continue}let e;try{e=c.parseIdent(r)}catch(e){t.push(new Error(`Parsing failed for the dependency name '${r}'`));continue}const i=c.makeDescriptor(e,n);this.dependencies.set(i.identHash,i);const o=c.makeDescriptor(e,"unknown"),s=this.ensureDependencyMeta(o);Object.assign(s,{optional:!0})}"boolean"==typeof e.preferUnplugged&&(this.preferUnplugged=e.preferUnplugged),this.errors=t}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!this.dependencies.has(e.identHash)||!!this.peerDependencies.has(e.identHash)}hasHardDependency(e){return!!this.dependencies.has(e.identHash)||!!this.devDependencies.has(e.identHash)}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!this.hasHardDependency(e)||!!this.hasSoftDependency(e)}isCompatibleWithOS(e){return null===this.os||g(this.os,e)}isCompatibleWithCPU(e){return null===this.cpu||g(this.cpu,e)}ensureDependencyMeta(e){if("unknown"!==e.range&&!A().valid(e.range))throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e),r="unknown"!==e.range?e.range:null;let n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let i=n.get(r);return i||n.set(r,i={}),i}ensurePeerDependencyMeta(e){if("unknown"!==e.range)throw new Error(`Invalid meta field range for '${c.stringifyDescriptor(e)}'`);const t=c.stringifyIdent(e);let r=this.peerDependenciesMeta.get(t);return r||this.peerDependenciesMeta.set(t,r={}),this.peerDependencies.has(e.identHash)||this.peerDependencies.set(e.identHash,c.makeDescriptor(e,"*")),r}setRawField(e,t,{after:r=[]}={}){const n=new Set(r.filter(e=>Object.prototype.hasOwnProperty.call(this.raw,e)));if(0===n.size||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{const r=this.raw,i=this.raw={};let o=!1;for(const s of Object.keys(r))i[s]=r[s],o||(n.delete(s),0===n.size&&(i[e]=t,o=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){Object.assign(e,this.raw),null!==this.name?e.name=c.stringifyIdent(this.name):delete e.name,null!==this.version?e.version=this.version:delete e.version,null!==this.os?e.os=this.os:delete this.os,null!==this.cpu?e.cpu=this.cpu:delete this.cpu,null!==this.type?e.type=this.type:delete e.type,this.private?e.private=!0:delete e.private,null!==this.license?e.license=this.license:delete e.license,null!==this.languageName?e.languageName=this.languageName:delete e.languageName,1===this.bin.size&&null!==this.name&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(e=>({[e]:this.bin.get(e)}))):delete e.bin;const r=[],n=[];for(const e of this.dependencies.values()){const i=this.dependenciesMeta.get(c.stringifyIdent(e));let o=!1;if(t&&i){const e=i.get(null);e&&e.optional&&(o=!0)}o?n.push(e):r.push(e)}r.length>0?e.dependencies=Object.assign({},...c.sortDescriptors(r).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...c.sortDescriptors(n).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...c.sortDescriptors(this.devDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...c.sortDescriptors(this.peerDependencies.values()).map(e=>({[c.stringifyIdent(e)]:e.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(const[r,n]of a.sortMap(this.dependenciesMeta.entries(),([e,t])=>e))for(const[i,o]of a.sortMap(n.entries(),([e,t])=>null!==e?"0"+e:"1")){const n=null!==i?c.stringifyDescriptor(c.makeDescriptor(c.parseIdent(r),i)):r,s={...o};t&&null===i&&delete s.optional,0!==Object.keys(s).length&&(e.dependenciesMeta[n]=s)}return 0===Object.keys(e.dependenciesMeta).length&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...a.sortMap(this.peerDependenciesMeta.entries(),([e,t])=>e).map(([e,t])=>({[e]:t}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:e,reference:t})=>({[(0,o.stringifyResolution)(e)]:t}))):delete e.resolutions,null!==this.files?e.files=Array.from(this.files):delete e.files,null!==this.preferUnplugged?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,e}}function l(e){const t=e.match(/^[ \t]+/m);return t?t[0]:"  "}function h(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function g(e,t){let r=!0,n=!1;for(const i of e)if("!"===i[0]){if(n=!0,t===i.slice(1))return!1}else if(r=!1,i===t)return!0;return n&&r}u.fileName="package.json",u.allDependencies=["dependencies","devDependencies","peerDependencies"],u.hardDependencies=["dependencies","devDependencies"]},92659:(e,t,r)=>{"use strict";var n;r.d(t,{b:()=>n}),function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU"}(n||(n={}))},27092:(e,t,r)=>{"use strict";r.d(t,{B:()=>i});var n=r(54143);class i{constructor(e){this.resolvers=e.filter(e=>e)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.getResolverByDescriptor(e,r).bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,r){const n=this.getResolverByDescriptor(e,r);return await n.getCandidates(e,t,r)}async resolve(e,t){const r=this.getResolverByLocator(e,t);return await r.resolve(e,t)}tryResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));return r||null}getResolverByDescriptor(e,t){const r=this.resolvers.find(r=>r.supportsDescriptor(e,t));if(!r)throw new Error(n.prettyDescriptor(t.project.configuration,e)+" isn't supported by any available resolver");return r}tryResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));return r||null}getResolverByLocator(e,t){const r=this.resolvers.find(r=>r.supportsLocator(e,t));if(!r)throw new Error(n.prettyLocator(t.project.configuration,e)+" isn't supported by any available resolver");return r}}},40376:(e,t,r)=>{"use strict";r.d(t,{I:()=>ne});var n=r(56537),i=r(46009),o=r(35398),s=r(55125),A=r(17278),a=r(76417);function c(){}function u(e,t,r,n,i){for(var o=0,s=t.length,A=0,a=0;o<s;o++){var c=t[o];if(c.removed){if(c.value=e.join(n.slice(a,a+c.count)),a+=c.count,o&&t[o-1].added){var u=t[o-1];t[o-1]=t[o],t[o]=u}}else{if(!c.added&&i){var l=r.slice(A,A+c.count);l=l.map((function(e,t){var r=n[a+t];return r.length>e.length?r:e})),c.value=e.join(l)}else c.value=e.join(r.slice(A,A+c.count));A+=c.count,c.added||(a+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}function l(e){return{newPos:e.newPos,components:e.components.slice(0)}}c.prototype={diff:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.callback;"function"==typeof r&&(n=r,r={}),this.options=r;var i=this;function o(e){return n?(setTimeout((function(){n(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,A=e.length,a=1,c=s+A,h=[{newPos:-1,components:[]}],g=this.extractCommon(h[0],t,e,0);if(h[0].newPos+1>=s&&g+1>=A)return o([{value:this.join(t),count:t.length}]);function f(){for(var r=-1*a;r<=a;r+=2){var n=void 0,c=h[r-1],g=h[r+1],f=(g?g.newPos:0)-r;c&&(h[r-1]=void 0);var p=c&&c.newPos+1<s,d=g&&0<=f&&f<A;if(p||d){if(!p||d&&c.newPos<g.newPos?(n=l(g),i.pushComponent(n.components,void 0,!0)):((n=c).newPos++,i.pushComponent(n.components,!0,void 0)),f=i.extractCommon(n,t,e,r),n.newPos+1>=s&&f+1>=A)return o(u(i,n.components,t,e,i.useLongestToken));h[r]=n}else h[r]=void 0}a++}if(n)!function e(){setTimeout((function(){if(a>c)return n();f()||e()}),0)}();else for(;a<=c;){var p=f();if(p)return p}},pushComponent:function(e,t,r){var n=e[e.length-1];n&&n.added===t&&n.removed===r?e[e.length-1]={count:n.count+1,added:t,removed:r}:e.push({count:1,added:t,removed:r})},extractCommon:function(e,t,r,n){for(var i=t.length,o=r.length,s=e.newPos,A=s-n,a=0;s+1<i&&A+1<o&&this.equals(t[s+1],r[A+1]);)s++,A++,a++;return a&&e.components.push({count:a}),e.newPos=s,A},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],r=0;r<e.length;r++)e[r]&&t.push(e[r]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};new c;var h=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,g=/\S/,f=new c;f.equals=function(e,t){return this.options.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t||this.options.ignoreWhitespace&&!g.test(e)&&!g.test(t)},f.tokenize=function(e){for(var t=e.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r<t.length-1;r++)!t[r+1]&&t[r+2]&&h.test(t[r])&&h.test(t[r+2])&&(t[r]+=t[r+2],t.splice(r+1,2),r--);return t};var p=new c;p.tokenize=function(e){var t=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var n=0;n<r.length;n++){var i=r[n];n%2&&!this.options.newlineIsToken?t[t.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),t.push(i))}return t};var d=new c;d.tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)};var C=new c;function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}C.tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var m=Object.prototype.toString,y=new c;y.useLongestToken=!0,y.tokenize=p.tokenize,y.castInput=function(e){var t=this.options,r=t.undefinedReplacement,n=t.stringifyReplacer,i=void 0===n?function(e,t){return void 0===t?r:t}:n;return"string"==typeof e?e:JSON.stringify(function e(t,r,n,i,o){r=r||[],n=n||[],i&&(t=i(o,t));var s,A;for(s=0;s<r.length;s+=1)if(r[s]===t)return n[s];if("[object Array]"===m.call(t)){for(r.push(t),A=new Array(t.length),n.push(A),s=0;s<t.length;s+=1)A[s]=e(t[s],r,n,i,o);return r.pop(),n.pop(),A}t&&t.toJSON&&(t=t.toJSON());if("object"===E(t)&&null!==t){r.push(t),A={},n.push(A);var a,c=[];for(a in t)t.hasOwnProperty(a)&&c.push(a);for(c.sort(),s=0;s<c.length;s+=1)a=c[s],A[a]=e(t[a],r,n,i,a);r.pop(),n.pop()}else A=t;return A}(e,null,null,i),i,"  ")},y.equals=function(e,t){return c.prototype.equals.call(y,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"))};var w=new c;function B(e,t,r,n,i,o,s){s||(s={}),void 0===s.context&&(s.context=4);var A=function(e,t,r){return p.diff(e,t,r)}(r,n,s);function a(e){return e.map((function(e){return" "+e}))}A.push({value:"",lines:[]});for(var c=[],u=0,l=0,h=[],g=1,f=1,d=function(e){var t=A[e],i=t.lines||t.value.replace(/\n$/,"").split("\n");if(t.lines=i,t.added||t.removed){var o;if(!u){var p=A[e-1];u=g,l=f,p&&(h=s.context>0?a(p.lines.slice(-s.context)):[],u-=h.length,l-=h.length)}(o=h).push.apply(o,I(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?f+=i.length:g+=i.length}else{if(u)if(i.length<=2*s.context&&e<A.length-2){var d;(d=h).push.apply(d,I(a(i)))}else{var C,E=Math.min(i.length,s.context);(C=h).push.apply(C,I(a(i.slice(0,E))));var m={oldStart:u,oldLines:g-u+E,newStart:l,newLines:f-l+E,lines:h};if(e>=A.length-2&&i.length<=s.context){var y=/\n$/.test(r),w=/\n$/.test(n),B=0==i.length&&h.length>m.oldLines;!y&&B&&h.splice(m.oldLines,0,"\\ No newline at end of file"),(y||B)&&w||h.push("\\ No newline at end of file")}c.push(m),u=0,l=0,h=[]}g+=i.length,f+=i.length}},C=0;C<A.length;C++)d(C);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:o,hunks:c}}w.tokenize=function(e){return e.slice()},w.join=w.removeEmpty=function(e){return e};var Q=r(58708),v=r.n(Q),D=r(61578),b=r.n(D),S=r(53887),k=r.n(S),x=r(31669),F=r(68987),M=r.n(F),N=r(78761),R=r.n(N),K=r(27122),L=r(92409),T=r(92659),P=r(54143);const U=[[/^(git(?:\+(?:https|ssh))?:\/\/.*\.git)#(.*)$/,(e,t,r,n)=>`${r}#commit:${n}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(e,t,r="",n,i)=>`https://${r}github.com/${n}.git#commit:${i}`],[/^https?:\/\/[^/]+\/(?:@[^/]+\/)?([^/]+)\/-\/\1-[^/]+\.tgz(?:#|$)/,e=>"npm:"+e],[/^[^/]+\.tgz#[0-9a-f]+$/,e=>"npm:"+e]];class _{constructor(){this.resolutions=null}async setup(e,{report:t}){const r=i.y1.join(e.cwd,e.configuration.get("lockfileFilename"));if(!n.xfs.existsSync(r))return;const o=await n.xfs.readFilePromise(r,"utf8"),A=(0,s.parseSyml)(o);if(Object.prototype.hasOwnProperty.call(A,"__metadata"))return;const a=this.resolutions=new Map;for(const r of Object.keys(A)){let n=P.tryParseDescriptor(r);if(!n){t.reportWarning(T.b.YARN_IMPORT_FAILED,`Failed to parse the string "${r}" into a proper descriptor`);continue}k().validRange(n.range)&&(n=P.makeDescriptor(n,"npm:"+n.range));const{version:i,resolved:o}=A[r];if(!o)continue;let s;for(const[e,t]of U){const r=o.match(e);if(r){s=t(i,...r);break}}if(!s){t.reportWarning(T.b.YARN_IMPORT_FAILED,`${P.prettyDescriptor(e.configuration,n)}: Only some patterns can be imported from legacy lockfiles (not "${o}")`);continue}const c=P.makeLocator(n,s);a.set(n.descriptorHash,c)}}supportsDescriptor(e,t){return!!this.resolutions&&this.resolutions.has(e.descriptorHash)}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");const n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}class O{supportsDescriptor(e,t){return!!t.project.storedResolutions.get(e.descriptorHash)||!!t.project.originalPackages.has(P.convertDescriptorToLocator(e).locatorHash)}supportsLocator(e,t){return!!t.project.originalPackages.has(e.locatorHash)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){let n=r.project.originalPackages.get(P.convertDescriptorToLocator(e).locatorHash);if(n)return[n];const i=r.project.storedResolutions.get(e.descriptorHash);if(!i)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=r.project.originalPackages.get(i),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async resolve(e,t){const r=t.project.originalPackages.get(e.locatorHash);if(!r)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return r}}var j=r(46611),Y=r(27092),G=r(35691);class J{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,r){return this.resolver.bindDescriptor(e,t,r)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,r){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}async resolve(e,t){throw new G.lk(T.b.MISSING_LOCKFILE_ENTRY,"This package doesn't seem to be present in your lockfile; try to make an install to update your resolutions")}}var H=r(33720),q=r(17722),z=r(81111),W=r(20624),V=r(73632),X=r(63088),Z=r(36545),$=r(32485);const ee=/ *, */g,te=(0,x.promisify)(R().gzip),re=(0,x.promisify)(R().gunzip);class ne{constructor(e,{configuration:t}){this.resolutionAliases=new Map,this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map,this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.storedChecksums=new Map,this.accessibleLocators=new Set,this.originalPackages=new Map,this.optionalBuilds=new Set,this.lockFileChecksum=null,this.configuration=t,this.cwd=e}static async find(e,t){if(!e.projectCwd)throw new A.UsageError("No project found in "+t);let r=e.projectCwd,o=t,s=null;for(;s!==e.projectCwd;){if(s=o,n.xfs.existsSync(i.y1.join(s,(0,i.Zu)("package.json")))){r=s;break}o=i.y1.dirname(s)}const a=new ne(e.projectCwd,{configuration:e});await a.setupResolutions(),await a.setupWorkspaces();const c=a.tryWorkspaceByCwd(r);if(c)return{project:a,workspace:c,locator:c.anchoredLocator};const u=await a.findLocatorForLocation(r+"/");if(u)return{project:a,locator:u,workspace:null};throw new A.UsageError(`The nearest package directory (${r}) doesn't seem to be part of the project declared at ${a.cwd}. If the project directory is right, it might be that you forgot to list a workspace. If it isn't, it's likely because you have a yarn.lock file at the detected location, confusing the project detection.`)}static generateBuildStateFile(e,t){let r="# Warning: This file is automatically generated. Removing it is fine, but will\n# cause all your builds to become invalidated.\n";const n=[...e].map(([e,r])=>{const n=t.get(e);if(void 0===n)throw new Error("Assertion failed: The locator should have been registered");return[P.stringifyLocator(n),n.locatorHash,r]});for(const[e,t,i]of V.sortMap(n,[e=>e[0],e=>e[1]]))r+="\n",r+=`# ${e}\n`,r+=JSON.stringify(t)+":\n",r+=`  ${i}\n`;return r}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(n.xfs.existsSync(e)){const r=await n.xfs.readFilePromise(e,"utf8");this.lockFileChecksum=W.makeHash("1",r);const i=(0,s.parseSyml)(r);if(i.__metadata){const e=i.__metadata.version,r=i.__metadata.cacheKey;for(const n of Object.keys(i)){if("__metadata"===n)continue;const o=i[n];if(void 0===o.resolution)throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${n})`);const s=P.parseLocator(o.resolution,!0),A=new j.G;A.load(o);const a=A.version,c=A.languageName||t,u=o.linkType.toUpperCase(),l=A.dependencies,h=A.peerDependencies,g=A.dependenciesMeta,f=A.peerDependenciesMeta,p=A.bin;if(null!=o.checksum){const e=void 0===r||o.checksum.includes("/")?o.checksum:`${r}/${o.checksum}`;this.storedChecksums.set(s.locatorHash,e)}if(e>=4){const e={...s,version:a,languageName:c,linkType:u,dependencies:l,peerDependencies:h,dependenciesMeta:g,peerDependenciesMeta:f,bin:p};this.originalPackages.set(e.locatorHash,e)}for(const t of n.split(ee)){const r=P.parseDescriptor(t);if(this.storedDescriptors.set(r.descriptorHash,r),e>=4)this.storedResolutions.set(r.descriptorHash,s.locatorHash);else{const e=P.convertLocatorToDescriptor(s);e.descriptorHash!==r.descriptorHash&&(this.storedDescriptors.set(e.descriptorHash,e),this.resolutionAliases.set(r.descriptorHash,e.descriptorHash))}}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=[this.cwd];for(;e.length>0;){const t=e;e=[];for(const r of t){if(this.workspacesByCwd.has(r))continue;const t=await this.addWorkspace(r),n=this.storedPackages.get(t.anchoredLocator.locatorHash);n&&(t.dependencies=n.dependencies);for(const r of t.workspacesCwds)e.push(r)}}}async addWorkspace(e){const t=new q.j(e,{project:this});await t.setup();const r=this.workspacesByIdent.get(t.locator.identHash);if(void 0!==r)throw new Error(`Duplicate workspace name ${P.prettyIdent(this.configuration,t.locator)}: ${e} conflicts with ${r.cwd}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){i.y1.isAbsolute(e)||(e=i.y1.resolve(this.cwd,e));const t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){const t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(const r of this.workspaces){i.y1.relative(r.cwd,e).startsWith("../")||(t&&t.cwd.length>=r.cwd.length||(t=r))}return t||null}getWorkspaceByFilePath(e){const t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){const t=this.workspacesByIdent.get(e.identHash);return void 0===t?null:t}getWorkspaceByIdent(e){const t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${P.prettyIdent(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){const t=this.tryWorkspaceByIdent(e);return null!==t&&t.accepts(e.range)?t:null}getWorkspaceByDescriptor(e){const t=this.tryWorkspaceByDescriptor(e);if(null===t)throw new Error(`Workspace not found (${P.prettyDescriptor(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){P.isVirtualLocator(e)&&(e=P.devirtualizeLocator(e));const t=this.tryWorkspaceByIdent(e);return null===t||t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash?null:t}getWorkspaceByLocator(e){const t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${P.prettyLocator(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(const e of this.workspaces){const t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error("Assertion failed: Expected workspace to have been resolved");e.dependencies=new Map(t.dependencies)}}forgetResolution(e){for(const[t,r]of this.storedResolutions){const n="descriptorHash"in e&&e.descriptorHash===t,i="locatorHash"in e&&e.locatorHash===r;(n||i)&&(this.storedDescriptors.delete(t),this.storedResolutions.delete(t),this.originalPackages.delete(r))}}forgetTransientResolutions(){const e=this.configuration.makeResolver();for(const t of this.originalPackages.values()){let r;try{r=e.shouldPersistResolution(t,{project:this,resolver:e})}catch(e){r=!1}r||this.forgetResolution(t)}}forgetVirtualResolutions(){for(const e of this.storedPackages.values())for(const[t,r]of e.dependencies)P.isVirtualDescriptor(r)&&e.dependencies.set(t,P.devirtualizeDescriptor(r))}getDependencyMeta(e,t){const r={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(P.stringifyIdent(e));if(!n)return r;const i=n.get(null);if(i&&Object.assign(r,i),null===t||!k().valid(t))return r;for(const[e,i]of n)null!==e&&e===t&&Object.assign(r,i);return r}async findLocatorForLocation(e){const t=new H.$,r=this.configuration.getLinkers(),n={project:this,report:t};for(const t of r){const r=await t.findPackageLocator(e,n);if(r)return r}return null}async validateEverything(e){for(const t of e.validationWarnings)e.report.reportWarning(t.name,t.text);for(const t of e.validationErrors)e.report.reportError(t.name,t.text)}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();const t=e.resolver||this.configuration.makeResolver(),r=new _;await r.setup(this,{report:e.report});const o=e.lockfileOnly?new Y.B([new O,new J(t)]):new Y.B([new O,r,t]),s=this.configuration.makeFetcher(),A=e.lockfileOnly?{project:this,report:e.report,resolver:o}:{project:this,report:e.report,resolver:o,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:s}},a=new Map,c=new Map,u=new Map,l=new Map,h=new Map,g=new Set;let f=new Set;for(const e of this.workspaces){const t=e.anchoredDescriptor;a.set(t.descriptorHash,t),f.add(t.descriptorHash)}const p=b()(10);for(;0!==f.size;){const e=f;f=new Set;for(const t of e)u.has(t)&&e.delete(t);if(0===e.size)break;const t=new Set,r=new Map;for(const n of e){const i=a.get(n);if(!i)throw new Error("Assertion failed: The descriptor should have been registered");let s=h.get(n);if(void 0===s){h.set(n,s=new Set);for(const e of o.getResolutionDependencies(i,A))a.set(e.descriptorHash,e),s.add(e.descriptorHash)}const l=V.getMapWithDefault(r,n);for(const r of s){const i=u.get(r);if(void 0!==i){const e=c.get(i);if(void 0===e)throw new Error("Assertion failed: The package should have been registered");l.set(r,e)}else t.add(n),e.add(r)}}for(const r of t)e.delete(r),f.add(r);if(0===e.size)throw new Error("Assertion failed: Descriptors should not have cyclic dependencies");const n=new Map(await Promise.all(Array.from(e).map(e=>p(async()=>{const t=a.get(e);if(void 0===t)throw new Error("Assertion failed: The descriptor should have been registered");const n=r.get(t.descriptorHash);if(void 0===n)throw new Error("Assertion failed: The descriptor dependencies should have been registered");let i;try{i=await o.getCandidates(t,n,A)}catch(e){throw e.message=`${P.prettyDescriptor(this.configuration,t)}: ${e.message}`,e}if(0===i.length)throw new Error("No candidate found for "+P.prettyDescriptor(this.configuration,t));return[t.descriptorHash,i]})))),i=new Map;for(const[e,t]of n)1===t.length&&(i.set(e,t[0]),n.delete(e));for(const[e,t]of n){const r=t.find(e=>c.has(e.locatorHash));r&&(i.set(e,r),n.delete(e))}if(n.size>0){const e=new(v().Solver);for(const t of n.values())e.require(v().or(...t.map(e=>e.locatorHash)));let t,r=100,o=null,s=1/0;for(;r>0&&null!==(t=e.solve());){const n=t.getTrueVars();e.forbid(t.getFormula()),n.length<s&&(o=n,s=n.length),r-=1}if(!o)throw new Error("Assertion failed: No resolution found by the SAT solver");const A=new Set(o);for(const[e,t]of n.entries()){const r=t.find(e=>A.has(e.locatorHash));if(!r)throw new Error("Assertion failed: The descriptor should have been solved during the previous step");i.set(e,r),n.delete(e)}}const s=Array.from(i.values()).filter(e=>!c.has(e.locatorHash)),d=new Map(await Promise.all(s.map(async e=>{const t=await V.prettifyAsyncErrors(async()=>await o.resolve(e,A),t=>`${P.prettyLocator(this.configuration,e)}: ${t}`);if(!P.areLocatorsEqual(e,t))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${P.prettyLocator(this.configuration,e)} to ${P.prettyLocator(this.configuration,t)})`);const r=this.configuration.normalizePackage(t);for(const[t,n]of r.dependencies){const i=await this.configuration.reduceHook(e=>e.reduceDependency,n,this,r,n,{resolver:o,resolveOptions:A});if(!P.areIdentsEqual(n,i))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");const s=o.bindDescriptor(i,e,A);r.dependencies.set(t,s)}return[r.locatorHash,{original:t,pkg:r}]})));for(const t of e){const e=i.get(t);if(!e)throw new Error("Assertion failed: The locator should have been registered");u.set(t,e.locatorHash);const r=d.get(e.locatorHash);if(void 0===r)continue;const{original:n,pkg:o}=r;l.set(n.locatorHash,n),c.set(o.locatorHash,o);for(const e of o.dependencies.values()){a.set(e.descriptorHash,e),f.add(e.descriptorHash);const t=this.resolutionAliases.get(e.descriptorHash);if(void 0===t)continue;if(e.descriptorHash===t)continue;const r=this.storedDescriptors.get(t);if(!r)throw new Error("Assertion failed: The alias should have been registered");u.has(e.descriptorHash)||(u.set(e.descriptorHash,"temporary"),f.delete(e.descriptorHash),f.add(t),a.set(t,r),g.add(e.descriptorHash))}}}for(;g.size>0;){let e=!1;for(const t of g){if(!a.get(t))throw new Error("Assertion failed: The descriptor should have been registered");const r=this.resolutionAliases.get(t);if(void 0===r)throw new Error("Assertion failed: The descriptor should have an alias");const n=u.get(r);if(void 0===n)throw new Error("Assertion failed: The resolution should have been registered");"temporary"!==n&&(g.delete(t),u.set(t,n),e=!0)}if(!e)throw new Error("Alias loop detected")}const d=new Set(this.resolutionAliases.values()),C=new Set(c.keys()),E=new Set;!function({project:e,allDescriptors:t,allResolutions:r,allPackages:o,accessibleLocators:s=new Set,optionalBuilds:A=new Set,volatileDescriptors:a=new Set,report:c,tolerateMissingPackages:u=!1}){const l=new Map,h=[],g=new Map,f=new Map,p=new Map(e.workspaces.map(e=>{const t=e.anchoredLocator.locatorHash,r=o.get(t);if(void 0===r){if(u)return[t,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[t,P.copyPackage(r)]})),d=()=>{const e=n.xfs.mktempSync(),t=i.y1.join(e,"stacktrace.log"),r=String(h.length+1).length,o=h.map((e,t)=>`${(t+1+".").padStart(r," ")} ${P.stringifyLocator(e)}\n`).join("");throw n.xfs.writeFileSync(t,o),new G.lk(T.b.STACK_OVERFLOW_RESOLUTION,"Encountered a stack overflow when resolving peer dependencies; cf "+t)},C=e=>{const t=r.get(e.descriptorHash);if(void 0===t)throw new Error("Assertion failed: The resolution should have been registered");const n=o.get(t);if(!n)throw new Error("Assertion failed: The package could not be found");return n},E=(e,t,r)=>{h.length>1e3&&d(),h.push(e);const n=I(e,t,r);return h.pop(),n},I=(n,i,h)=>{if(s.has(n.locatorHash))return;s.add(n.locatorHash),h||A.delete(n.locatorHash);const I=o.get(n.locatorHash);if(!I){if(u)return;throw new Error(`Assertion failed: The package (${P.prettyLocator(e.configuration,n)}) should have been registered`)}const m=[],y=[],w=[],B=[],Q=[];for(const s of Array.from(I.dependencies.values())){if(I.peerDependencies.has(s.identHash)&&!i)continue;if(P.isVirtualDescriptor(s))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(s.descriptorHash);let A=h;if(!A){const e=I.dependenciesMeta.get(P.stringifyIdent(s));if(void 0!==e){const t=e.get(null);void 0!==t&&t.optional&&(A=!0)}}const g=r.get(s.descriptorHash);if(!g){if(u)continue;throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(e.configuration,s)}) should have been registered`)}const v=p.get(g)||o.get(g);if(!v)throw new Error(`Assertion failed: The package (${g}, resolved from ${P.prettyDescriptor(e.configuration,s)}) should have been registered`);if(0===v.peerDependencies.size){E(v,!1,A);continue}const D=l.get(v.locatorHash);let b,S;"number"==typeof D&&D>=2&&d();const k=new Set;y.push(()=>{b=P.virtualizeDescriptor(s,n.locatorHash),S=P.virtualizePackage(v,n.locatorHash),I.dependencies.delete(s.identHash),I.dependencies.set(b.identHash,b),r.set(b.descriptorHash,S.locatorHash),t.set(b.descriptorHash,b),o.set(S.locatorHash,S),m.push([v,b,S])}),w.push(()=>{for(const i of S.peerDependencies.values()){let o=I.dependencies.get(i.identHash);if(!o&&P.areIdentsEqual(n,i)&&(o=P.convertLocatorToDescriptor(n),t.set(o.descriptorHash,o),r.set(o.descriptorHash,n.locatorHash),a.delete(o.descriptorHash)),o||!S.dependencies.has(i.identHash)){if(!o){if(!I.peerDependencies.has(i.identHash)){const t=S.peerDependenciesMeta.get(P.stringifyIdent(i));null===c||t&&t.optional||c.reportWarning(T.b.MISSING_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} doesn't provide ${P.prettyDescriptor(e.configuration,i)} requested by ${P.prettyLocator(e.configuration,v)}`)}o=P.makeDescriptor(i,"missing:")}if(S.dependencies.set(o.identHash,o),P.isVirtualDescriptor(o)){V.getSetWithDefault(f,o.descriptorHash).add(S.locatorHash)}if("missing:"===o.range)k.add(o.identHash);else if(null!==c){const t=C(o);Z.satisfiesWithPrereleases(t.version,i.range)||c.reportWarning(T.b.INCOMPATIBLE_PEER_DEPENDENCY,`${P.prettyLocator(e.configuration,n)} provides ${P.prettyLocator(e.configuration,t)} with version ${t.version} which doesn't satisfy ${P.prettyRange(e.configuration,i.range)} requested by ${P.prettyLocator(e.configuration,v)}`)}}else S.peerDependencies.delete(i.identHash)}S.dependencies=new Map(V.sortMap(S.dependencies,([e,t])=>P.stringifyIdent(t)))}),B.push(()=>{if(!o.has(S.locatorHash))return;const e=l.get(v.locatorHash),t=void 0!==e?e+1:1;l.set(v.locatorHash,t),E(S,!1,A),l.set(v.locatorHash,t-1)}),Q.push(()=>{if(o.has(S.locatorHash))for(const e of k)S.dependencies.delete(e)})}for(const e of[...y,...w])e();let v;do{v=!0;for(const[n,i,A]of m){if(!o.has(A.locatorHash))continue;const a=V.getMapWithDefault(g,n.locatorHash),c=W.makeHash(...[...A.dependencies.values()].map(t=>{const n="missing:"!==t.range?r.get(t.descriptorHash):"missing:";if(void 0===n)throw new Error(`Assertion failed: Expected the resolution for ${P.prettyDescriptor(e.configuration,t)} to have been registered`);return n})),u=a.get(c);if(void 0===u){a.set(c,i);continue}if(u===i)continue;v=!1,o.delete(A.locatorHash),t.delete(i.descriptorHash),r.delete(i.descriptorHash),s.delete(A.locatorHash);const l=f.get(i.descriptorHash)||[],h=[I.locatorHash,...l];for(const e of h){const t=o.get(e);void 0!==t&&t.dependencies.set(i.identHash,u)}}}while(!v);for(const e of[...B,...Q])e()};for(const t of e.workspaces)a.delete(t.anchoredDescriptor.descriptorHash),E(t.anchoredLocator,!0,!1)}({project:this,report:e.report,accessibleLocators:E,volatileDescriptors:d,optionalBuilds:C,allDescriptors:a,allResolutions:u,allPackages:c});for(const e of d)a.delete(e),u.delete(e);this.storedResolutions=u,this.storedDescriptors=a,this.storedPackages=c,this.accessibleLocators=E,this.originalPackages=l,this.optionalBuilds=C,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:r}){const n=r||this.configuration.makeFetcher(),i={checksums:this.storedChecksums,project:this,cache:e,fetcher:n,report:t},o=V.sortMap(this.storedResolutions.values(),[e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");return P.stringifyLocator(t)}]);let s=!1;const A=G.yG.progressViaCounter(o.length);t.reportProgress(A);const a=b()(32);if(await t.startCacheReport(async()=>{await Promise.all(o.map(e=>a(async()=>{const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The locator should have been registered");if(P.isVirtualLocator(r))return;let o;try{o=await n.fetch(r,i)}catch(e){return e.message=`${P.prettyLocator(this.configuration,r)}: ${e.message}`,t.reportExceptionOnce(e),void(s=e)}o.checksum?this.storedChecksums.set(r.locatorHash,o.checksum):this.storedChecksums.delete(r.locatorHash),o.releaseFs&&o.releaseFs()}).finally(()=>{A.tick()})))}),s)throw s}async linkEverything({cache:e,report:t,fetcher:r}){const o=r||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0},c=this.configuration.getLinkers(),u={project:this,report:t},l=new Map(c.map(e=>[e,e.makeInstaller(u)])),h=new Map,g=new Map,f=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=await o.fetch(t,A);if(null!==this.tryWorkspaceByLocator(t)){const e=[],{scripts:n}=await j.G.find(r.prefixPath,{baseFs:r.packageFs});for(const t of["preinstall","install","postinstall"])n.has(t)&&e.push([L.k.SCRIPT,t]);try{for(const e of l.values())await e.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}const o=i.y1.join(r.packageFs.getRealPath(),r.prefixPath);g.set(t.locatorHash,o),e.length>0&&f.set(t.locatorHash,{directives:e,buildLocations:[o]})}else{const e=c.find(e=>e.supportsPackage(t,u));if(!e)throw new G.lk(T.b.LINKER_NOT_FOUND,P.prettyLocator(this.configuration,t)+" isn't supported by any available linker");const n=l.get(e);if(!n)throw new Error("Assertion failed: The installer should have been registered");let i;try{i=await n.installPackage(t,r)}finally{r.releaseFs&&r.releaseFs()}h.set(t.locatorHash,e),g.set(t.locatorHash,i.packageLocation),i.buildDirective&&i.packageLocation&&f.set(t.locatorHash,{directives:i.buildDirective,buildLocations:[i.packageLocation]})}}const p=new Map;for(const e of this.accessibleLocators){const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The locator should have been registered");const r=null!==this.tryWorkspaceByLocator(t),n=async(e,n)=>{const i=g.get(t.locatorHash);if(void 0===i)throw new Error(`Assertion failed: The package (${P.prettyLocator(this.configuration,t)}) should have been registered`);const o=[];for(const n of t.dependencies.values()){const s=this.storedResolutions.get(n.descriptorHash);if(void 0===s)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,n)}, from ${P.prettyLocator(this.configuration,t)})should have been registered`);const A=this.storedPackages.get(s);if(void 0===A)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const a=null===this.tryWorkspaceByLocator(A)?h.get(s):null;if(void 0===a)throw new Error(`Assertion failed: The package (${s}, resolved from ${P.prettyDescriptor(this.configuration,n)}) should have been registered`);const c=null===a;if(a===e||r||c)null!==g.get(A.locatorHash)&&o.push([n,A]);else if(null!==i){V.getArrayWithDefault(p,s).push(i)}}null!==i&&await n.attachInternalDependencies(t,o)};if(r)for(const[e,t]of l)await n(e,t);else{const e=h.get(t.locatorHash);if(!e)throw new Error("Assertion failed: The linker should have been found");const r=l.get(e);if(!r)throw new Error("Assertion failed: The installer should have been registered");await n(e,r)}}for(const[e,t]of p){const r=this.storedPackages.get(e);if(!r)throw new Error("Assertion failed: The package should have been registered");const n=h.get(r.locatorHash);if(!n)throw new Error("Assertion failed: The linker should have been found");const i=l.get(n);if(!i)throw new Error("Assertion failed: The installer should have been registered");await i.attachExternalDependents(r,t)}for(const e of l.values()){const t=await e.finalizeInstall();if(t)for(const e of t)e.buildDirective&&f.set(e.locatorHash,{directives:e.buildDirective,buildLocations:e.buildLocations})}const d=new Set(this.storedPackages.keys()),C=new Set(f.keys());for(const e of C)d.delete(e);const E=(0,a.createHash)("sha512");E.update(process.versions.node),this.configuration.triggerHook(e=>e.globalHashGeneration,this,e=>{E.update("\0"),E.update(e)});const I=E.digest("hex"),m=new Map,y=e=>{let t=m.get(e.locatorHash);if(void 0!==t)return t;const r=this.storedPackages.get(e.locatorHash);if(void 0===r)throw new Error("Assertion failed: The package should have been registered");const n=(0,a.createHash)("sha512");n.update(e.locatorHash),m.set(e.locatorHash,"<recursive>");for(const e of r.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(void 0===t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(void 0===this.storedPackages.get(t))throw new Error("Assertion failed: The package should have been registered");n.update(y(r))}return t=n.digest("hex"),m.set(e.locatorHash,t),t},w=(e,t)=>{const r=(0,a.createHash)("sha512");r.update(I),r.update(y(e));for(const e of t)r.update(e);return r.digest("hex")},B=this.configuration.get("bstatePath"),Q=n.xfs.existsSync(B)?(0,s.parseSyml)(await n.xfs.readFilePromise(B,"utf8")):{},v=new Map;for(;C.size>0;){const e=C.size,r=[];for(const e of C){const o=this.storedPackages.get(e);if(!o)throw new Error("Assertion failed: The package should have been registered");let s=!0;for(const e of o.dependencies.values()){const t=this.storedResolutions.get(e.descriptorHash);if(!t)throw new Error(`Assertion failed: The resolution (${P.prettyDescriptor(this.configuration,e)}) should have been registered`);if(C.has(t)){s=!1;break}}if(!s)continue;C.delete(e);const A=f.get(o.locatorHash);if(!A)throw new Error("Assertion failed: The build directive should have been registered");const a=w(o,A.buildLocations);if(Object.prototype.hasOwnProperty.call(Q,o.locatorHash)&&Q[o.locatorHash]===a)v.set(o.locatorHash,a);else{Object.prototype.hasOwnProperty.call(Q,o.locatorHash)?t.reportInfo(T.b.MUST_REBUILD,P.prettyLocator(this.configuration,o)+" must be rebuilt because its dependency tree changed"):t.reportInfo(T.b.MUST_BUILD,P.prettyLocator(this.configuration,o)+" must be built because it never did before or the last one failed");for(const e of A.buildLocations){if(!i.y1.isAbsolute(e))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${e})`);r.push((async()=>{for(const[r,s]of A.directives){let A=`# This file contains the result of Yarn building a package (${P.stringifyLocator(o)})\n`;switch(r){case L.k.SCRIPT:A+=`# Script name: ${s}\n`;break;case L.k.SHELLCODE:A+=`# Script code: ${s}\n`}const c=null;await n.xfs.mktempPromise(async u=>{const l=i.y1.join(u,"build.log"),{stdout:h,stderr:g}=this.configuration.getSubprocessStreams(l,{header:A,prefix:P.prettyLocator(this.configuration,o),report:t});let f;try{switch(r){case L.k.SCRIPT:f=await X.executePackageScript(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g});break;case L.k.SHELLCODE:f=await X.executePackageShellcode(o,s,[],{cwd:e,project:this,stdin:c,stdout:h,stderr:g})}}catch(e){g.write(e.stack),f=1}if(h.end(),g.end(),0===f)return v.set(o.locatorHash,a),!0;n.xfs.detachTemp(u);const p=`${P.prettyLocator(this.configuration,o)} couldn't be built successfully (exit code ${this.configuration.format(String(f),K.a5.NUMBER)}, logs can be found here: ${this.configuration.format(l,K.a5.PATH)})`;return t.reportInfo(T.b.BUILD_FAILED,p),this.optionalBuilds.has(o.locatorHash)?(v.set(o.locatorHash,a),!0):(t.reportError(T.b.BUILD_FAILED,p),!1)})}})())}}}if(await Promise.all(r),e===C.size){const e=Array.from(C).map(e=>{const t=this.storedPackages.get(e);if(!t)throw new Error("Assertion failed: The package should have been registered");return P.prettyLocator(this.configuration,t)}).join(", ");t.reportError(T.b.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${e})`);break}}if(v.size>0){const e=this.configuration.get("bstatePath"),t=ne.generateBuildStateFile(v,this.storedPackages);await n.xfs.mkdirpPromise(i.y1.dirname(e)),await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}else await n.xfs.removePromise(B)}async install(e){const t=[],r=[];await this.configuration.triggerHook(e=>e.validateProject,this,{reportWarning:(e,r)=>t.push({name:e,text:r}),reportError:(e,t)=>r.push({name:e,text:t})});t.length+r.length>0&&await e.report.startTimerPromise("Validation step",async()=>{await this.validateEverything({validationWarnings:t,validationErrors:r,report:e.report})}),await e.report.startTimerPromise("Resolution step",async()=>{const t=i.y1.join(this.cwd,this.configuration.get("lockfileFilename"));let r=null;if(e.immutable)try{r=await n.xfs.readFilePromise(t,"utf8")}catch(e){throw"ENOENT"===e.code?new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):e}if(await this.resolveEverything(e),null!==r){const n=(0,o.qH)(r,this.generateLockfile());if(n!==r){const i=B(t,t,r,n);e.report.reportSeparator();for(const t of i.hunks){e.report.reportInfo(null,`@@ -${t.oldStart},${t.oldLines} +${t.newStart},${t.newLines} @@`);for(const r of t.lines)r.startsWith("+")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.ADDED)):r.startsWith("-")?e.report.reportError(T.b.FROZEN_LOCKFILE_EXCEPTION,this.configuration.format(r,K.a5.REMOVED)):e.report.reportInfo(null,this.configuration.format(r,"grey"))}throw e.report.reportSeparator(),new G.lk(T.b.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}}),await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(void 0===e.persistProject||e.persistProject)&&await this.cacheCleanup(e)}),(void 0===e.persistProject||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{await this.linkEverything(e)}),await this.configuration.triggerHook(e=>e.afterAllInstalled,this)}generateLockfile(){const e=new Map;for(const[t,r]of this.storedResolutions.entries()){let n=e.get(r);n||e.set(r,n=new Set),n.add(t)}const t={__metadata:{version:4}};for(const[r,n]of e.entries()){const e=this.originalPackages.get(r);if(!e)continue;const i=[];for(const e of n){const t=this.storedDescriptors.get(e);if(!t)throw new Error("Assertion failed: The descriptor should have been registered");i.push(t)}const o=i.map(e=>P.stringifyDescriptor(e)).sort().join(", "),s=new j.G;let A;s.version=e.linkType===$.U.HARD?e.version:"0.0.0-use.local",s.languageName=e.languageName,s.dependencies=new Map(e.dependencies),s.peerDependencies=new Map(e.peerDependencies),s.dependenciesMeta=new Map(e.dependenciesMeta),s.peerDependenciesMeta=new Map(e.peerDependenciesMeta),s.bin=new Map(e.bin);const a=this.storedChecksums.get(e.locatorHash);if(void 0!==a){const e=a.indexOf("/");if(-1===e)throw new Error("Assertion failed: Expecte the checksum to reference its cache key");const r=a.slice(0,e),n=a.slice(e+1);void 0===t.__metadata.cacheKey&&(t.__metadata.cacheKey=r),A=r===t.__metadata.cacheKey?n:a}t[o]={...s.exportTo({},{compatibilityMode:!1}),linkType:e.linkType.toLowerCase(),resolution:P.stringifyLocator(e),checksum:A}}return['# This file is generated by running "yarn install" inside your project.\n',"# Manual changes might be lost - proceed with caution!\n"].join("")+"\n"+(0,s.stringifySyml)(t)}async persistLockfile(){const e=i.y1.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.generateLockfile();await n.xfs.changeFilePromise(e,t,{automaticNewlines:!0})}async persistInstallStateFile(){const{accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A}=this,a={accessibleLocators:e,optionalBuilds:t,storedDescriptors:r,storedResolutions:o,storedPackages:s,lockFileChecksum:A},c=await te(M().serialize(a)),u=this.configuration.get("installStatePath");await n.xfs.mkdirpPromise(i.y1.dirname(u)),await n.xfs.writeFilePromise(u,c)}async restoreInstallState(){const e=this.configuration.get("installStatePath");if(!n.xfs.existsSync(e))return void await this.applyLightResolution();const t=await n.xfs.readFilePromise(e),r=M().deserialize(await re(t));r.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,r),this.refreshWorkspaceDependencies()):await this.applyLightResolution()}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new H.$}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile(),await this.persistInstallStateFile();for(const e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){const r=new Set([".gitignore"]);if(n.xfs.existsSync(e.cwd)&&(0,z.isFolderInside)(e.cwd,this.cwd)){for(const o of await n.xfs.readdirPromise(e.cwd)){if(r.has(o))continue;const s=i.y1.resolve(e.cwd,o);e.markedFiles.has(s)||(e.immutable?t.reportError(T.b.IMMUTABLE_CACHE,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused and would marked for deletion, but the cache is immutable"):(t.reportInfo(T.b.UNUSED_CACHE_ENTRY,this.configuration.format(i.y1.basename(s),"magenta")+" appears to be unused - removing"),await n.xfs.unlinkPromise(s)))}e.markedFiles.clear()}}}},52779:(e,t,r)=>{"use strict";r.d(t,{c:()=>s,O:()=>A});var n=r(53887),i=r.n(n),o=r(54143);const s=/^(?!v)[a-z0-9-.]+$/i;class A{supportsDescriptor(e,t){return!!i().validRange(e.range)||!!s.test(e.range)}supportsLocator(e,t){return!!i().validRange(e.reference)||!!s.test(e.reference)}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,r){return r.resolver.bindDescriptor(this.forwardDescriptor(e,r),t,r)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,r){return await r.resolver.getCandidates(this.forwardDescriptor(e,r),t,r)}async resolve(e,t){const r=await t.resolver.resolve(this.forwardLocator(e,t),t);return o.renamePackage(r,e)}forwardDescriptor(e,t){return o.makeDescriptor(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return o.makeLocator(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}}},35691:(e,t,r)=>{"use strict";r.d(t,{lk:()=>s,yG:()=>A});var n=r(92413),i=r(24304),o=r(92659);class s extends Error{constructor(e,t){super(t),this.reportCode=e}}class A{constructor(){this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}static progressViaCounter(e){let t,r=0,n=new Promise(e=>{t=e});const i=e=>{const i=t;n=new Promise(e=>{t=e}),r=e,i()},o=async function*(){for(;r<e;)await n,yield{progress:r/e}}();return{[Symbol.asyncIterator]:()=>o,set:i,tick:(e=0)=>{i(r+1)}}}reportInfoOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t))}reportWarningOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t))}reportErrorOnce(e,t,r){const n=r&&r.key?r.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t))}reportExceptionOnce(e){!function(e){return void 0!==e.reportCode}(e)?this.reportErrorOnce(o.b.EXCEPTION,e.stack||e.message,{key:e}):this.reportErrorOnce(e.reportCode,e.message,{key:e})}createStreamReporter(e=null){const t=new n.PassThrough,r=new i.StringDecoder;let o="";return t.on("data",t=>{let n,i=r.write(t);do{if(n=i.indexOf("\n"),-1!==n){const t=o+i.substr(0,n);i=i.substr(n+1),o="",null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t)}}while(-1!==n);o+=i}),t.on("end",()=>{const t=r.end();""!==t&&(null!==e?this.reportInfo(null,`${e} ${t}`):this.reportInfo(null,t))}),t}}},15815:(e,t,r)=>{"use strict";r.d(t,{P:()=>f});var n=r(29148),i=r.n(n),o=r(92659),s=r(35691);const A=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],a=new Set([o.b.FETCH_NOT_CACHED,o.b.UNUSED_CACHE_ENTRY]),c=process.env.GITHUB_ACTIONS?{start:e=>`::group::${e}\n`,end:e=>"::endgroup::\n"}:process.env.TRAVIS?{start:e=>`travis_fold:start:${e}\n`,end:e=>`travis_fold:end:${e}\n`}:process.env.GITLAB_CI?{start:e=>`section_start:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K${e}\n`,end:e=>`section_end:${Math.floor(Date.now()/1e3)}:${e.toLowerCase().replace(/\W+/g,"_")}\r[0K`}:null,u=new Date,l=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM),h={patrick:{date:[17,3],chars:["🍀","🌱"],size:40},simba:{date:[19,7],chars:["🌟","✨"],size:40},jack:{date:[31,10],chars:["🎃","🦇"],size:40},hogsfather:{date:[31,12],chars:["🎉","🎄"],size:40},default:{chars:["=","-"],size:80}},g=l&&Object.keys(h).find(e=>{const t=h[e];return!t.date||t.date[0]===u.getDate()&&t.date[1]===u.getMonth()+1})||"default";class f extends s.yG{constructor({configuration:e,stdout:t,json:r=!1,includeFooter:n=!0,includeLogs:i=!r,includeInfos:o=i,includeWarnings:s=i,forgettableBufferSize:A=5,forgettableNames:c=new Set}){super(),this.cacheHitCount=0,this.cacheMissCount=0,this.warningCount=0,this.errorCount=0,this.startTime=Date.now(),this.indent=0,this.progress=new Map,this.progressTime=0,this.progressFrame=0,this.progressTimeout=null,this.forgettableLines=[],this.configuration=e,this.forgettableBufferSize=A,this.forgettableNames=new Set([...c,...a]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=s,this.json=r,this.stdout=t}static async start(e,t){const r=new this(e);try{await t(r)}catch(e){r.reportExceptionOnce(e)}finally{await r.finalize()}return r}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.cacheMissCount+=1,void 0===t||this.configuration.get("preferAggregateCacheInfo")||this.reportInfo(o.b.FETCH_NOT_CACHED,t)}startTimerSync(e,t){this.reportInfo(null,"┌ "+e);const r=Date.now();this.indent+=1;try{return t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const e=Date.now();this.indent-=1,this.configuration.get("enableTimers")&&e-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(e-r)):this.reportInfo(null,"└ Completed")}}async startTimerPromise(e,t){this.reportInfo(null,"┌ "+e),null!==c&&this.stdout.write(c.start(e));const r=Date.now();this.indent+=1;try{return await t()}catch(e){throw this.reportExceptionOnce(e),e}finally{const t=Date.now();this.indent-=1,null!==c&&this.stdout.write(c.end(e)),this.configuration.get("enableTimers")&&t-r>200?this.reportInfo(null,"└ Completed in "+this.formatTiming(t-r)):this.reportInfo(null,"└ Completed")}}async startCacheReport(e){const t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(e){throw this.reportExceptionOnce(e),e}finally{null!==t&&this.reportCacheChanges(t)}}reportSeparator(){0===this.indent?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;const r=`${this.configuration.format("➤","blueBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(r),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(r,{truncate:!0});else this.writeLineWithForgettableReset(r)}reportWarning(e,t){this.warningCount+=1,this.includeWarnings&&(this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","yellowBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`))}reportError(e,t){this.errorCount+=1,this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${this.configuration.format("➤","redBright")} ${this.formatNameWithHyperlink(e)}: ${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){let t=!1;const r=Promise.resolve().then(async()=>{const r={progress:0,title:void 0};this.progress.set(e,r),this.refreshProgress(-1);for await(const{progress:n,title:i}of e)t||r.progress===n&&r.title===i||(r.progress=n,r.title=i,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress(1))};return{...r,stop:n}}reportJson(e){this.json&&this.writeLineWithForgettableReset(""+JSON.stringify(e))}async finalize(){if(!this.includeFooter)return;let e="";e=this.errorCount>0?"Failed with errors":this.warningCount>0?"Done with warnings":"Done";const t=this.formatTiming(Date.now()-this.startTime),r=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(o.b.UNNAMED,r):this.warningCount>0?this.reportWarning(o.b.UNNAMED,r):this.reportInfo(o.b.UNNAMED,r)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(this.truncate(e,{truncate:t})+"\n"),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(const r of e)this.stdout.write(this.truncate(r,{truncate:t})+"\n");this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){const r=this.cacheHitCount-e,n=this.cacheMissCount-t;if(0===r&&0===n)return;let i="";this.cacheHitCount>1?i+=this.cacheHitCount+" packages were already cached":1===this.cacheHitCount?i+=" - one package was already cached":i+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?i+=`, ${this.cacheMissCount} had to be fetched`:1===this.cacheMissCount&&(i+=", one had to be fetched"):this.cacheMissCount>1?i+=` - ${this.cacheMissCount} packages had to be fetched`:1===this.cacheMissCount&&(i+=" - one package had to be fetched"),this.reportInfo(o.b.FETCH_NOT_CACHED,i)}clearProgress({delta:e=0,clear:t=!1}){this.configuration.get("enableProgressBars")&&!this.json&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write("[0J"))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json)return;if(null!==this.progressTimeout&&clearTimeout(this.progressTimeout),this.progressTimeout=null,0===this.progress.size)return;const e=Date.now();e-this.progressTime>80&&(this.progressFrame=(this.progressFrame+1)%A.length,this.progressTime=e);const t=A[this.progressFrame],r=this.configuration.get("progressBarStyle")||g;if(!Object.prototype.hasOwnProperty.call(h,r))throw new Error("Assertion failed: Invalid progress bar style");const n=h[r],i="➤ YN0000: ┌ ".length,o=Math.max(0,Math.min(process.stdout.columns-i,80)),s=Math.floor(n.size*o/80);for(const{progress:e}of this.progress.values()){const r=s*e,i=n.chars[0].repeat(r),o=n.chars[1].repeat(s-r);this.stdout.write(`${this.configuration.format("➤","blueBright")} ${this.formatName(null)}: ${t} ${i}${o}\n`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},1e3/60)}refreshProgress(e=0){this.clearProgress({delta:e}),this.writeProgress()}formatTiming(e){return e<6e4?Math.round(e/10)/100+"s":Math.round(e/600)/100+"m"}truncate(e,{truncate:t}={}){return this.configuration.get("enableProgressBars")||(t=!1),void 0===t&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=i()(e,0,process.stdout.columns-1)),e}formatName(e){const t="YN"+(null===e?0:e).toString(10).padStart(4,"0");return this.json||null!==e?t:this.configuration.format(t,"grey")}formatNameWithHyperlink(e){const t=this.formatName(e);if(!this.configuration.get("enableHyperlinks"))return t;if(null===e||e===o.b.UNNAMED)return t;return`]8;;${`https://yarnpkg.com/advanced/error-codes#${t}---${o.b[e]}`.toLowerCase()}${t}]8;;`}formatIndent(){return"│ ".repeat(this.indent)}}},33720:(e,t,r)=>{"use strict";r.d(t,{$:()=>i});var n=r(35691);class i extends n.yG{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,t){return t()}async startTimerPromise(e,t){return await t()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(const{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}}},60895:(e,t,r)=>{"use strict";r.d(t,{N:()=>A});var n=r(17674),i=r(14626),o=r(46009),s=r(54143);class A{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n);return t.fetcher.getLocalPath(i,t)}async fetch(e,t){const r=e.reference.indexOf("#");if(-1===r)throw new Error("Invalid virtual package reference");const n=e.reference.slice(r+1),i=s.makeLocator(e,n),o=await t.fetcher.fetch(i,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return s.slugifyLocator(e)}async ensureVirtualLink(e,t,r){const s=t.packageFs.getRealPath(),A=r.project.configuration.get("virtualFolder"),a=this.getLocatorFilename(e),c=n.p.makeVirtualPath(A,a,s),u=new i.K(c,{baseFs:t.packageFs,pathUtils:o.y1});return{...t,packageFs:u}}}},17722:(e,t,r)=>{"use strict";r.d(t,{j:()=>g});var n=r(56537),i=r(46009),o=r(18710),s=r.n(o),A=r(53887),a=r.n(A),c=r(46611),u=r(94538),l=r(20624),h=r(54143);class g{constructor(e,{project:t}){this.workspacesCwds=new Set,this.dependencies=new Map,this.project=t,this.cwd=e}async setup(){this.manifest=n.xfs.existsSync(i.y1.join(this.cwd,c.G.fileName))?await c.G.find(this.cwd):new c.G,this.relativeCwd=i.y1.relative(this.project.cwd,this.cwd)||i.LZ.dot;const e=this.manifest.name?this.manifest.name:h.makeIdent(null,`${this.computeCandidateName()}-${l.makeHash(this.relativeCwd).substr(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=h.makeLocator(e,t),this.anchoredDescriptor=h.makeDescriptor(this.locator,`${u.d.protocol}${this.relativeCwd}`),this.anchoredLocator=h.makeLocator(this.locator,`${u.d.protocol}${this.relativeCwd}`);for(const e of this.manifest.workspaceDefinitions){const t=await s()(e.pattern,{absolute:!0,cwd:i.cS.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});t.sort();for(const e of t){const t=i.y1.resolve(this.cwd,i.cS.toPortablePath(e));n.xfs.existsSync(i.y1.join(t,(0,i.Zu)("package.json")))&&this.workspacesCwds.add(t)}}}accepts(e){const t=e.indexOf(":"),r=-1!==t?e.slice(0,t+1):null,n=-1!==t?e.slice(t+1):e;return r===u.d.protocol&&n===this.relativeCwd||(r===u.d.protocol&&"*"===n||!!a().validRange(n)&&(r===u.d.protocol?a().satisfies(null!==this.manifest.version?this.manifest.version:"0.0.0",n):!!this.project.configuration.get("enableTransparentWorkspaces")&&(null!==this.manifest.version&&a().satisfies(this.manifest.version,n))))}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":""+i.y1.basename(this.cwd)||"unnamed-workspace"}async persistManifest(){const e={};this.manifest.exportTo(e);const t=i.y1.join(this.cwd,c.G.fileName),r=JSON.stringify(e,null,this.manifest.indent)+"\n";await n.xfs.changeFilePromise(t,r,{automaticNewlines:!0})}}},94538:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(32485);class i{supportsDescriptor(e,t){if(e.range.startsWith(i.protocol))return!0;return null!==t.project.tryWorkspaceByDescriptor(e)}supportsLocator(e,t){return!!e.reference.startsWith(i.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,r){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,r){return[r.project.getWorkspaceByDescriptor(e).anchoredLocator]}async resolve(e,t){const r=t.project.getWorkspaceByCwd(e.reference.slice(i.protocol.length));return{...e,version:r.manifest.version||"0.0.0",languageName:"unknown",linkType:n.U.SOFT,dependencies:new Map([...r.manifest.dependencies,...r.manifest.devDependencies]),peerDependencies:new Map([...r.manifest.peerDependencies]),dependenciesMeta:r.manifest.dependenciesMeta,peerDependenciesMeta:r.manifest.peerDependenciesMeta,bin:r.manifest.bin}}}i.protocol="workspace:"},59355:(e,t,r)=>{"use strict";r.d(t,{o:()=>n});const n="2.1.1"},6220:(e,t,r)=>{"use strict";r.r(t),r.d(t,{EndStrategy:()=>n,pipevp:()=>u,execvp:()=>l});var n,i=r(46009),o=r(67566),s=r.n(o);function A(e){return null!==e&&"number"==typeof e.fd}function a(){}!function(e){e[e.Never=0]="Never",e[e.ErrorCode=1]="ErrorCode",e[e.Always=2]="Always"}(n||(n={}));let c=0;async function u(e,t,{cwd:r,env:o=process.env,strict:u=!1,stdin:l=null,stdout:h,stderr:g,end:f=n.Always}){const p=["pipe","pipe","pipe"];null===l?p[0]="ignore":A(l)&&(p[0]=l),A(h)&&(p[1]=h),A(g)&&(p[2]=g),0==c++&&process.on("SIGINT",a);const d=s()(e,t,{cwd:i.cS.fromPortablePath(r),env:{...o,PWD:i.cS.fromPortablePath(r)},stdio:p});A(l)||null===l||l.pipe(d.stdin),A(h)||d.stdout.pipe(h,{end:!1}),A(g)||d.stderr.pipe(g,{end:!1});const C=()=>{for(const e of new Set([h,g]))A(e)||e.end()};return new Promise((t,r)=>{d.on("error",e=>{0==--c&&process.off("SIGINT",a),f!==n.Always&&f!==n.ErrorCode||C(),r(e)}),d.on("close",(i,o)=>{0==--c&&process.off("SIGINT",a),(f===n.Always||f===n.ErrorCode&&i>0)&&C(),0!==i&&u?r(null!==i?new Error(`Child "${e}" exited with exit code ${i}`):new Error(`Child "${e}" exited with signal ${o}`)):t({code:i})})})}async function l(e,t,{cwd:r,env:n=process.env,encoding:o="utf8",strict:A=!1}){const a=["ignore","pipe","pipe"],c=[],u=[],l=i.cS.fromPortablePath(r);void 0!==n.PWD&&(n={...n,PWD:l});const h=s()(e,t,{cwd:l,env:n,stdio:a});return h.stdout.on("data",e=>{c.push(e)}),h.stderr.on("data",e=>{u.push(e)}),await new Promise((t,r)=>{h.on("close",n=>{const i="buffer"===o?Buffer.concat(c):Buffer.concat(c).toString(o),s="buffer"===o?Buffer.concat(u):Buffer.concat(u).toString(o);0!==n&&A?r(Object.assign(new Error(`Child "${e}" exited with exit code ${n}\n\n${s}`),{code:n,stdout:i,stderr:s})):t({code:n,stdout:i,stderr:s})})})}},81111:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getDefaultGlobalFolder:()=>o,getHomeFolder:()=>s,isFolderInside:()=>A});var n=r(46009),i=r(12087);function o(){if("win32"===process.platform){const e=n.cS.toPortablePath(process.env.LOCALAPPDATA||n.cS.join((0,i.homedir)(),"AppData","Local"));return n.y1.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){const e=n.cS.toPortablePath(process.env.XDG_DATA_HOME);return n.y1.resolve(e,"yarn/berry")}return n.y1.resolve(s(),".yarn/berry")}function s(){return n.cS.toPortablePath((0,i.homedir)()||"/usr/local/share")}function A(e,t){const r=n.y1.relative(t,e);return r&&!r.startsWith("..")&&!n.y1.isAbsolute(r)}},20624:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeHash:()=>o,checksumFile:()=>s});var n=r(78420),i=r(76417);function o(...e){const t=(0,i.createHash)("sha512");for(const r of e)t.update(r||"");return t.digest("hex")}function s(e){return new Promise((t,r)=>{const o=new n.S,s=(0,i.createHash)("sha512"),A=o.createReadStream(e,{});A.on("data",e=>{s.update(e)}),A.on("error",e=>{r(e)}),A.on("end",()=>{t(s.digest("hex"))})})}},84132:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Cache:()=>O.C,DEFAULT_RC_FILENAME:()=>j.tr,DEFAULT_LOCK_FILENAME:()=>j.nh,Configuration:()=>j.VK,FormatType:()=>j.a5,ProjectLookup:()=>j.EW,SettingsType:()=>j.a2,BuildType:()=>Y.k,LightReport:()=>G.h,Manifest:()=>J.G,MessageName:()=>H.b,Project:()=>q.I,TAG_REGEXP:()=>z.c,ReportError:()=>W.lk,Report:()=>W.yG,StreamReport:()=>V.P,ThrowReport:()=>X.$,VirtualFetcher:()=>Z.N,WorkspaceResolver:()=>$.d,Workspace:()=>ee.j,YarnVersion:()=>te.o,LinkType:()=>re.U,hashUtils:()=>A,httpUtils:()=>n,execUtils:()=>o,folderUtils:()=>s,miscUtils:()=>S,scriptUtils:()=>k,semverUtils:()=>x,structUtils:()=>F,tgzUtils:()=>i});var n={};r.r(n),r.d(n,{Method:()=>Q,get:()=>D,put:()=>b,request:()=>v});var i={};r.r(i),r.d(i,{convertToZip:()=>U,extractArchiveTo:()=>_,makeArchiveFromDirectory:()=>P});var o=r(6220),s=r(81111),A=r(20624),a=r(22395),c=r.n(a),u=r(57211),l=r(98605),h=r(2401),g=r.n(h),f=r(61578),p=r.n(f),d=r(98161),C=r.n(d),E=r(78835);const I=p()(8),m=new Map,y=new l.Agent({keepAlive:!0}),w=new u.Agent({keepAlive:!0});function B(e){const t=new E.URL(e),r={host:t.hostname,headers:{}};return t.port&&(r.port=Number(t.port)),{proxy:r}}var Q;async function v(e,t,{configuration:r,headers:n,json:i,method:o=Q.GET}){if(!r.get("enableNetwork"))throw new Error(`Network access have been disabled by configuration (${o} ${e})`);const s=new E.URL(e);if("http:"===s.protocol&&!g().isMatch(s.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${s.hostname})`);const A=r.get("httpProxy"),a=r.get("httpsProxy"),u={agent:{http:A?C().httpOverHttp(B(A)):y,https:a?C().httpsOverHttp(B(a)):w},headers:n,method:o};u.responseType=i?"json":"buffer",null!==t&&("string"==typeof t||Buffer.isBuffer(t)?u.body=t:u.json=t);const l=r.get("httpTimeout"),h=r.get("httpRetry"),f=c().extend({timeout:l,retry:h,...u});return I(()=>f(e))}async function D(e,{configuration:t,json:r,...n}){let i=m.get(e);return i||(i=v(e,null,{configuration:t,...n}).then(t=>(m.set(e,t.body),t.body)),m.set(e,i)),!1===Buffer.isBuffer(i)&&(i=await i),r?JSON.parse(i.toString()):i}async function b(e,t,r){return(await v(e,t,{...r,method:Q.PUT})).body}!function(e){e.GET="GET",e.PUT="PUT"}(Q||(Q={}));var S=r(73632),k=r(63088),x=r(36545),F=r(54143),M=r(78420),N=r(46009),R=r(56537),K=r(90739),L=r(29486),T=r(27700);async function P(e,{baseFs:t=new M.S,prefixPath:r=N.LZ.root,compressionLevel:n}={}){const i=await R.xfs.mktempPromise(),o=N.y1.join(i,"archive.zip"),s=new K.d(o,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:n}),A=N.y1.resolve(N.LZ.root,r);return await s.copyPromise(A,e,{baseFs:t,stableTime:!0,stableSort:!0}),s}async function U(e,t){const r=await R.xfs.mktempPromise(),n=N.y1.join(r,"archive.zip"),{compressionLevel:i,...o}=t;return await _(e,new K.d(n,{create:!0,libzip:await(0,L.getLibzipPromise)(),level:i}),o)}async function _(e,t,{stripComponents:r=0,prefixPath:n=N.LZ.dot}={}){const i=new T.Ze;return i.on("entry",e=>{if(function(e){if("/"===e[0])return!0;const t=e.path.split(/\//g);return!!t.some(e=>".."===e)||t.length<=r}(e))return void e.resume();const i=N.y1.normalize(N.cS.toPortablePath(e.path)).replace(/\/$/,"").split(/\//g);if(i.length<=r)return void e.resume();const o=i.slice(r).join("/"),s=N.y1.join(n,o),A=[];let a=420;"Directory"!==e.type&&0==(73&e.mode)||(a|=73),e.on("data",e=>{A.push(e)}),e.on("end",()=>{var r;switch(e.type){case"Directory":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.mkdirSync(s),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"OldFile":case"File":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.writeFileSync(s,Buffer.concat(A)),t.chmodSync(s,a),t.utimesSync(s,315532800,315532800);break;case"SymbolicLink":t.mkdirpSync(N.y1.dirname(s),{chmod:493,utimes:[315532800,315532800]}),t.symlinkSync(e.linkpath,s),null===(r=t.lutimesSync)||void 0===r||r.call(t,s,315532800,315532800)}})}),await new Promise((r,n)=>{i.on("error",e=>{n(e)}),i.on("close",()=>{r(t)}),i.end(e)})}var O=r(28148),j=r(27122),Y=r(92409),G=r(62152),J=r(46611),H=r(92659),q=r(40376),z=r(52779),W=r(35691),V=r(15815),X=r(33720),Z=r(60895),$=r(94538),ee=r(17722),te=r(59355),re=r(32485)},73632:(e,t,r)=>{"use strict";r.r(t),r.d(t,{escapeRegExp:()=>a,assertNever:()=>c,mapAndFilter:()=>u,mapAndFind:()=>h,getFactoryWithDefault:()=>f,getArrayWithDefault:()=>p,getSetWithDefault:()=>d,getMapWithDefault:()=>C,releaseAfterUseAsync:()=>E,prettifyAsyncErrors:()=>I,prettifySyncErrors:()=>m,bufferStream:()=>y,BufferStream:()=>w,DefaultStream:()=>B,dynamicRequire:()=>Q,dynamicRequireNoCache:()=>v,sortMap:()=>D,buildIgnorePattern:()=>b,replaceEnvVariables:()=>S});var n=r(46009),i=r(17278),o=r(2401),s=r.n(o),A=r(92413);function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function c(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function u(e,t){const r=[];for(const n of e){const e=t(n);e!==l&&r.push(e)}return r}e=r.hmd(e);const l=Symbol();function h(e,t){for(const r of e){const e=t(r);if(e!==g)return e}}u.skip=l;const g=Symbol();function f(e,t,r){let n=e.get(t);return void 0===n&&e.set(t,n=r()),n}function p(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=[]),r}function d(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Set),r}function C(e,t){let r=e.get(t);return void 0===r&&e.set(t,r=new Map),r}async function E(e,t){if(null==t)return await e();try{return await e()}finally{await t()}}async function I(e,t){try{return await e()}catch(e){throw e.message=t(e.message),e}}function m(e,t){try{return e()}catch(e){throw e.message=t(e.message),e}}async function y(e){return await new Promise((t,r)=>{const n=[];e.on("error",e=>{r(e)}),e.on("data",e=>{n.push(e)}),e.on("end",()=>{t(Buffer.concat(n))})})}h.skip=g;class w extends A.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),r(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}}class B extends A.Transform{constructor(e=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=e}_transform(e,t,r){if("buffer"!==t||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,r(null,e)}_flush(e){this.active&&this.ifEmpty.length>0&&e(null,this.ifEmpty)}}function Q(e){return"undefined"!=typeof require?require(e):r(32178)(e)}function v(t){const i=n.cS.fromPortablePath(t),o=r.c[i];let s;delete r.c[i];try{s=Q(i);const t=r.c[i],n=e.children.indexOf(t);-1!==n&&e.children.splice(n,1)}finally{r.c[i]=o}return s}function D(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]<r[t]?-1:r[e]>r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function b(e){return 0===e.length?null:e.map(e=>`(${s().makeRe(e,{windows:!1}).source})`).join("|")}function S(e,{env:t}){return e.replace(/\${(?<variableName>[\d\w_]+)(?<colon>:)?-?(?<fallback>[^}]+)?}/g,(...e)=>{const{variableName:r,colon:n,fallback:o}=e[e.length-1],s=Object.prototype.hasOwnProperty.call(t,r),A=process.env[r];if(A)return A;if(s&&!A&&n)return o;if(s)return A;if(o)return o;throw new i.UsageError(`Environment variable not found (${r})`)})}},63088:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeScriptEnv:()=>m,prepareExternalProject:()=>y,hasPackageScript:()=>w,executePackageScript:()=>B,executePackageShellcode:()=>Q,executeWorkspaceScript:()=>D,hasWorkspaceScript:()=>b,getPackageAccessibleBinaries:()=>S,getWorkspaceAccessibleBinaries:()=>k,executePackageAccessibleBinary:()=>x,executeWorkspaceAccessibleBinary:()=>F});var n,i=r(46009),o=r(53660),s=r(75448),A=r(56537),a=r(29486),c=r(43982),u=r(92413),l=r(46611),h=r(92659),g=r(35691),f=r(15815),p=r(59355),d=r(6220),C=r(73632),E=r(54143);async function I(e,t,r,n=[]){"win32"===process.platform&&await A.xfs.writeFilePromise(i.y1.format({dir:e,name:t,ext:".cmd"}),`@"${r}" ${n.map(e=>`"${e.replace('"','""')}"`).join(" ")} %*\n`),await A.xfs.writeFilePromise(i.y1.join(e,t),`#!/bin/sh\nexec "${r}" ${n.map(e=>`'${e.replace(/'/g,"'\"'\"'")}'`).join(" ")} "$@"\n`),await A.xfs.chmodPromise(i.y1.join(e,t),493)}async function m({project:e,binFolder:t,lifecycleScript:r}){const n={};for(const[e,t]of Object.entries(process.env))void 0!==t&&(n["path"!==e.toLowerCase()?e:"PATH"]=t);const o=i.cS.fromPortablePath(t);n.BERRY_BIN_FOLDER=i.cS.fromPortablePath(o),await I(t,(0,i.Zu)("node"),process.execPath),null!==p.o&&(await I(t,(0,i.Zu)("run"),process.execPath,[process.argv[1],"run"]),await I(t,(0,i.Zu)("yarn"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("yarnpkg"),process.execPath,[process.argv[1]]),await I(t,(0,i.Zu)("node-gyp"),process.execPath,[process.argv[1],"run","--top-level","node-gyp"])),e&&(n.INIT_CWD=i.cS.fromPortablePath(e.configuration.startingCwd)),n.PATH=n.PATH?`${o}${i.cS.delimiter}${n.PATH}`:""+o,n.npm_execpath=`${o}${i.cS.sep}yarn`,n.npm_node_execpath=`${o}${i.cS.sep}node`;const s=null!==p.o?"yarn/"+p.o:`yarn/${C.dynamicRequire("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${s} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,r&&(n.npm_lifecycle_event=r),e&&await e.configuration.triggerHook(e=>e.setupScriptEnvironment,e,n,async(e,r,n)=>await I(t,(0,i.Zu)(e),r,n)),n}async function y(e,t,{configuration:r,report:o,workspace:s=null}){await A.xfs.mktempPromise(async a=>{const c=i.y1.join(a,"pack.log"),{stdout:l,stderr:f}=r.getSubprocessStreams(c,{prefix:e,report:o}),p=await async function(e){let t=null;try{t=await A.xfs.readFilePromise(i.y1.join(e,i.QS.lockfile),"utf8")}catch(e){}return null!==t?t.match(/^__metadata:$/m)?n.Yarn2:n.Yarn1:A.xfs.existsSync(i.y1.join(e,"package-lock.json"))?n.Npm:A.xfs.existsSync(i.y1.join(e,"pnpm-lock.yaml"))?n.Pnpm:null}(e);let E;null!==p?(l.write(`Installing the project using ${p}\n\n`),E=p):(l.write("No package manager detected; defaulting to Yarn\n\n"),E=n.Yarn2),await A.xfs.mktempPromise(async r=>{const o=await m({binFolder:r}),p=new Map([[n.Yarn1,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",["set","version","classic","--only-if-needed"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==n.code)return n.code;await A.xfs.appendFilePromise(i.y1.join(e,".npmignore"),"/.yarn\n"),l.write("\n");const a=await d.pipevp("yarn",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==a.code)return a.code;l.write("\n");const c=await d.pipevp("yarn",[...r,"pack","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==c.code?c.code:0}],[n.Yarn2,async()=>{const r=null!==s?["workspace",s]:[],n=await d.pipevp("yarn",[...r,"pack","--install-if-needed","--filename",i.cS.fromPortablePath(t)],{cwd:e,env:o,stdin:null,stdout:l,stderr:f});return 0!==n.code?n.code:0}],[n.Npm,async()=>{if(null!==s)throw new Error("Workspaces aren't supported by npm, which has been detected as the primary package manager for "+e);delete o.npm_config_user_agent;const r=await d.pipevp("npm",["install"],{cwd:e,env:o,stdin:null,stdout:l,stderr:f,end:d.EndStrategy.ErrorCode});if(0!==r.code)return r.code;const n=new u.PassThrough,a=C.bufferStream(n);n.pipe(l);const c=await d.pipevp("npm",["pack","--silent"],{cwd:e,env:o,stdin:null,stdout:n,stderr:f});if(0!==c.code)return c.code;const h=(await a).toString().trim(),g=i.y1.resolve(e,i.cS.toPortablePath(h));return await A.xfs.renamePromise(g,t),0}]]).get(E);if(void 0===p)throw new Error("Assertion failed: Unsupported workflow");const I=await p();if(0!==I&&void 0!==I)throw A.xfs.detachTemp(a),new g.lk(h.b.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${I}, logs can be found here: ${c})`)})})}async function w(e,t,{project:r}){const n=r.storedPackages.get(e.locatorHash);if(!n)throw new Error(`Package for ${E.prettyLocator(r.configuration,e)} not found in the project`);return await o.A.openPromise(async e=>{const o=r.configuration,A=r.configuration.getLinkers(),a={project:r,report:new f.P({stdout:new u.PassThrough,configuration:o})},c=A.find(e=>e.supportsPackage(n,a));if(!c)throw new Error(`The package ${E.prettyLocator(r.configuration,n)} isn't supported by any of the available linkers`);const h=await c.findPackageLocation(n,a),g=new s.M(h,{baseFs:e});return(await l.G.find(i.LZ.dot,{baseFs:g})).scripts.has(t)},{libzip:await(0,a.getLibzipPromise)()})}async function B(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{manifest:u,env:l,cwd:h}=await v(e,{project:i,binFolder:A,cwd:n,lifecycleScript:t}),g=u.scripts.get(t);if(void 0===g)return 1;const f=await i.configuration.reduceHook(e=>e.wrapScriptExecution,async()=>await(0,c.execute)(g,r,{cwd:h,env:l,stdin:o,stdout:s,stderr:a}),i,e,t,{script:g,args:r,cwd:h,env:l,stdin:o,stdout:s,stderr:a});return await f()})}async function Q(e,t,r,{cwd:n,project:i,stdin:o,stdout:s,stderr:a}){return await A.xfs.mktempPromise(async A=>{const{env:u,cwd:l}=await v(e,{project:i,binFolder:A,cwd:n});return await(0,c.execute)(t,r,{cwd:l,env:u,stdin:o,stdout:s,stderr:a})})}async function v(e,{project:t,binFolder:r,cwd:n,lifecycleScript:A}){const c=t.storedPackages.get(e.locatorHash);if(!c)throw new Error(`Package for ${E.prettyLocator(t.configuration,e)} not found in the project`);return await o.A.openPromise(async o=>{const a=t.configuration,h=t.configuration.getLinkers(),g={project:t,report:new f.P({stdout:new u.PassThrough,configuration:a})},p=h.find(e=>e.supportsPackage(c,g));if(!p)throw new Error(`The package ${E.prettyLocator(t.configuration,c)} isn't supported by any of the available linkers`);const d=await m({project:t,binFolder:r,lifecycleScript:A});for(const[n,[,o]]of await S(e,{project:t}))await I(r,(0,i.Zu)(n),process.execPath,[o]);const C=await p.findPackageLocation(c,g),y=new s.M(C,{baseFs:o}),w=await l.G.find(i.LZ.dot,{baseFs:y});return void 0===n&&(n=C),{manifest:w,binFolder:r,env:d,cwd:n}},{libzip:await(0,a.getLibzipPromise)()})}async function D(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await B(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:i,stdout:o,stderr:s})}async function b(e,t){return e.manifest.scripts.has(t)}async function S(e,{project:t}){const r=t.configuration,n=new Map,o=t.storedPackages.get(e.locatorHash);if(!o)throw new Error(`Package for ${E.prettyLocator(r,e)} not found in the project`);const s=new u.Writable,A=r.getLinkers(),a={project:t,report:new f.P({configuration:r,stdout:s})},c=new Set([e.locatorHash]);for(const e of o.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(!n)throw new Error(`Assertion failed: The resolution (${E.prettyDescriptor(r,e)}) should have been registered`);c.add(n)}for(const e of c){const r=t.storedPackages.get(e);if(!r)throw new Error(`Assertion failed: The package (${e}) should have been registered`);if(0===r.bin.size)continue;const o=A.find(e=>e.supportsPackage(r,a));if(!o)continue;const s=await o.findPackageLocation(r,a);for(const[e,t]of r.bin)n.set(e,[r,i.cS.fromPortablePath(i.y1.resolve(s,t))])}return n}async function k(e){return await S(e.anchoredLocator,{project:e.project})}async function x(e,t,r,{cwd:n,project:o,stdin:s,stdout:a,stderr:c,nodeArgs:u=[]}){const l=await S(e,{project:o}),h=l.get(t);if(!h)throw new Error(`Binary not found (${t}) for ${E.prettyLocator(o.configuration,e)}`);return await A.xfs.mktempPromise(async e=>{const[,t]=h,g=await m({project:o,binFolder:e});for(const[e,[,t]]of l)await I(g.BERRY_BIN_FOLDER,(0,i.Zu)(e),process.execPath,[t]);let f;try{f=await d.pipevp(process.execPath,[...u,t,...r],{cwd:n,env:g,stdin:s,stdout:a,stderr:c})}finally{await A.xfs.removePromise(g.BERRY_BIN_FOLDER)}return f.code})}async function F(e,t,r,{cwd:n,stdin:i,stdout:o,stderr:s}){return await x(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:i,stdout:o,stderr:s})}!function(e){e.Yarn1="Yarn Classic",e.Yarn2="Yarn",e.Npm="npm",e.Pnpm="pnpm"}(n||(n={}))},36545:(e,t,r)=>{"use strict";r.r(t),r.d(t,{satisfiesWithPrereleases:()=>o});var n=r(53887),i=r.n(n);function o(e,t,r=!1){let n,o;try{n=new(i().Range)(t,r)}catch(e){return!1}if(!e)return!1;try{o=new(i().SemVer)(e,n.loose),o.prerelease&&(o.prerelease=[])}catch(e){return!1}return n.set.some(e=>{for(const t of e)t.semver.prerelease&&(t.semver.prerelease=[]);return e.every(e=>e.test(o))})}},54143:(e,t,r)=>{"use strict";r.r(t),r.d(t,{makeIdent:()=>l,makeDescriptor:()=>h,makeLocator:()=>g,convertToIdent:()=>f,convertDescriptorToLocator:()=>p,convertLocatorToDescriptor:()=>d,convertPackageToLocator:()=>C,renamePackage:()=>E,copyPackage:()=>I,virtualizeDescriptor:()=>m,virtualizePackage:()=>y,isVirtualDescriptor:()=>w,isVirtualLocator:()=>B,devirtualizeDescriptor:()=>Q,devirtualizeLocator:()=>v,bindDescriptor:()=>D,bindLocator:()=>b,areIdentsEqual:()=>S,areDescriptorsEqual:()=>k,areLocatorsEqual:()=>x,areVirtualPackagesEquivalent:()=>F,parseIdent:()=>M,tryParseIdent:()=>N,parseDescriptor:()=>R,tryParseDescriptor:()=>K,parseLocator:()=>L,tryParseLocator:()=>T,parseRange:()=>P,parseFileStyleRange:()=>U,makeRange:()=>O,convertToManifestRange:()=>j,requirableIdent:()=>Y,stringifyIdent:()=>G,stringifyDescriptor:()=>J,stringifyLocator:()=>H,slugifyIdent:()=>q,slugifyLocator:()=>z,prettyIdent:()=>W,prettyRange:()=>X,prettyDescriptor:()=>Z,prettyReference:()=>$,prettyLocator:()=>ee,prettyLocatorNoColors:()=>te,sortDescriptors:()=>re,prettyWorkspace:()=>ne,getIdentVendorPath:()=>ie});var n=r(46009),i=r(71191),o=r.n(i),s=r(53887),A=r.n(s),a=r(27122),c=r(20624),u=r(73632);function l(e,t){return{identHash:c.makeHash(e,t),scope:e,name:t}}function h(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:c.makeHash(e.identHash,t),range:t}}function g(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:c.makeHash(e.identHash,t),reference:t}}function f(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function p(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function d(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function C(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function E(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function I(e){return E(e,e)}function m(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return h(e,`virtual:${t}#${e.range}`)}function y(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return E(e,g(e,`virtual:${t}#${e.reference}`))}function w(e){return e.range.startsWith("virtual:")}function B(e){return e.reference.startsWith("virtual:")}function Q(e){if(!w(e))throw new Error("Not a virtual descriptor");return h(e,e.range.replace(/^[^#]*#/,""))}function v(e){if(!B(e))throw new Error("Not a virtual descriptor");return g(e,e.reference.replace(/^[^#]*#/,""))}function D(e,t){return e.range.includes("::")?e:h(e,`${e.range}::${o().stringify(t)}`)}function b(e,t){return e.reference.includes("::")?e:g(e,`${e.reference}::${o().stringify(t)}`)}function S(e,t){return e.identHash===t.identHash}function k(e,t){return e.descriptorHash===t.descriptorHash}function x(e,t){return e.locatorHash===t.locatorHash}function F(e,t){if(!B(e))throw new Error("Invalid package type");if(!B(t))throw new Error("Invalid package type");if(!S(e,t))return!1;if(e.dependencies.size!==t.dependencies.size)return!1;for(const r of e.dependencies.values()){const e=t.dependencies.get(r.identHash);if(!e)return!1;if(!k(r,e))return!1}return!0}function M(e){const t=N(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}function N(e){const t=e.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!t)return null;const[,r,n]=t;return l(void 0!==r?r:null,n)}function R(e,t=!1){const r=K(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}function K(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid range (${e})`);const s=void 0!==o?o:"unknown";return h(l(void 0!==n?n:null,i),s)}function L(e,t=!1){const r=T(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}function T(e,t=!1){const r=t?e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):e.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;const[,n,i,o]=r;if("unknown"===o)throw new Error(`Invalid reference (${e})`);const s=void 0!==o?o:"unknown";return g(l(void 0!==n?n:null,i),s)}function P(e,t){const r=e.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(null===r)throw new Error(`Invalid range (${e})`);const n=void 0!==r[1]?r[1]:null;if("string"==typeof(null==t?void 0:t.requireProtocol)&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if((null==t?void 0:t.requireProtocol)&&null===n)throw new Error(`Missing protocol (${n})`);const i=void 0!==r[3]?decodeURIComponent(r[2]):null;if((null==t?void 0:t.requireSource)&&null===i)throw new Error(`Missing source (${e})`);const s=void 0!==r[3]?decodeURIComponent(r[3]):decodeURIComponent(r[2]);return{protocol:n,source:i,selector:(null==t?void 0:t.parseSelector)?o().parse(s):s,params:void 0!==r[4]?o().parse(r[4]):null}}function U(e,{protocol:t}){const{selector:r,params:n}=P(e,{requireProtocol:t,requireBindings:!0});if("string"!=typeof n.locator)throw new Error("Assertion failed: Invalid bindings for "+e);return{parentLocator:L(n.locator,!0),path:r}}function _(e){return e=(e=(e=e.replace(/%/g,"%25")).replace(/:/g,"%3A")).replace(/#/g,"%23")}function O({protocol:e,source:t,selector:r,params:n}){let i="";return null!==e&&(i+=""+e),null!==t&&(i+=_(t)+"#"),i+=_(r),function(e){return null!==e&&Object.entries(e).length>0}(n)&&(i+="::"+o().stringify(n)),i}function j(e){const{params:t,protocol:r,source:n,selector:i}=P(e);for(const e in t)e.startsWith("__")&&delete t[e];return O({protocol:r,source:n,params:t,selector:i})}function Y(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function G(e){return e.scope?`@${e.scope}/${e.name}`:""+e.name}function J(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function H(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function q(e){return null!==e.scope?`@${e.scope}-${e.name}`:e.name}function z(e){const{protocol:t,selector:r}=P(e.reference),i=null!==t?t.replace(/:$/,""):"exotic",o=A().valid(r),s=null!==o?`${i}-${o}`:""+i,a=(e.scope,`${q(e)}-${s}-${e.locatorHash.slice(0,10)}`);return(0,n.Zu)(a)}function W(e,t){return t.scope?`${e.format(`@${t.scope}/`,a.a5.SCOPE)}${e.format(t.name,a.a5.NAME)}`:""+e.format(t.name,a.a5.NAME)}function V(e){if(e.startsWith("virtual:")){return`${V(e.substr(e.indexOf("#")+1))} [${e.substr("virtual:".length,5)}]`}return e.replace(/\?.*/,"?[...]")}function X(e,t){return""+e.format(V(t),a.a5.RANGE)}function Z(e,t){return`${W(e,t)}${e.format("@",a.a5.RANGE)}${X(e,t.range)}`}function $(e,t){return""+e.format(V(t),a.a5.REFERENCE)}function ee(e,t){return`${W(e,t)}${e.format("@",a.a5.REFERENCE)}${$(e,t.reference)}`}function te(e){return`${G(e)}@${V(e.reference)}`}function re(e){return u.sortMap(e,[e=>G(e),e=>e.range])}function ne(e,t){return W(e,t.locator)}function ie(e){return"node_modules/"+Y(e)}},32485:(e,t,r)=>{"use strict";var n;r.d(t,{U:()=>n}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={}))},14626:(e,t,r)=>{"use strict";r.d(t,{K:()=>i});var n=r(42096);class i extends n.p{constructor(e,{baseFs:t,pathUtils:r}){super(r),this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}},75448:(e,t,r)=>{"use strict";r.d(t,{M:()=>s});var n=r(78420),i=r(42096),o=r(46009);class s extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?o.y1.normalize(e):this.baseFs.resolve(o.y1.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}},35398:(e,t,r)=>{"use strict";r.d(t,{uY:()=>a,fS:()=>c,qH:()=>u});var n=r(12087),i=r(35747),o=r.n(i),s=r(46009);async function A(e,t,r,n,i,a,c){const u=await async function(e,t){try{return await e.lstatPromise(t)}catch(e){return null}}(r,n),l=await i.lstatPromise(a);switch(c.stableTime?t.push([n,315532800,315532800]):t.push([n,l.atime,l.mtime]),!0){case l.isDirectory():await async function(e,t,r,n,i,o,s,a,c){if(null!==i&&!i.isDirectory()){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}null===i&&e.push(async()=>r.mkdirPromise(n,{mode:a.mode}));const u=await o.readdirPromise(s);if(c.stableSort)for(const i of u.sort())await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c);else await Promise.all(u.map(async i=>{await A(e,t,r,r.pathUtils.join(n,i),o,o.pathUtils.join(s,i),c)}))}(e,t,r,n,u,i,a,l,c);break;case l.isFile():await async function(e,t,r,n,i,s,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}r===s?e.push(async()=>r.copyFilePromise(A,n,o().constants.COPYFILE_FICLONE)):e.push(async()=>r.writeFilePromise(n,await s.readFilePromise(A)))}(e,0,r,n,u,i,a,0,c);break;case l.isSymbolicLink():await async function(e,t,r,n,i,o,A,a,c){if(null!==i){if(!c.overwrite)return;e.push(async()=>r.removePromise(n)),i=null}const u=await o.readlinkPromise(A);e.push(async()=>r.symlinkPromise((0,s.CI)(r.pathUtils,u),n))}(e,0,r,n,u,i,a,0,c);break;default:throw new Error(`Unsupported file type (${l.mode})`)}e.push(async()=>r.chmodPromise(n,511&l.mode))}class a{constructor(e){this.pathUtils=e}async removePromise(e){let t;try{t=await this.lstatPromise(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of await this.readdirPromise(e))await this.removePromise(this.pathUtils.resolve(e,t));for(let t=0;t<5;++t)try{await this.rmdirPromise(e);break}catch(e){if("EBUSY"===e.code||"ENOTEMPTY"===e.code){await new Promise(e=>setTimeout(e,100*t));continue}throw e}}else await this.unlinkPromise(e)}removeSync(e){let t;try{t=this.lstatSync(e)}catch(e){if("ENOENT"===e.code)return;throw e}if(t.isDirectory()){for(const t of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,t));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{await this.mkdirPromise(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&await this.chmodPromise(i,t),null!=r)await this.utimesPromise(i,r[0],r[1]);else{const e=await this.statPromise(this.pathUtils.dirname(i));await this.utimesPromise(i,e.atime,e.mtime)}}}}mkdirpSync(e,{chmod:t,utimes:r}={}){if((e=this.resolve(e))===this.pathUtils.dirname(e))return;const n=e.split(this.pathUtils.sep);for(let e=2;e<=n.length;++e){const i=n.slice(0,e).join(this.pathUtils.sep);if(!this.existsSync(i)){try{this.mkdirSync(i)}catch(e){if("EEXIST"===e.code)continue;throw e}if(null!=t&&this.chmodSync(i,t),null!=r)this.utimesSync(i,r[0],r[1]);else{const e=this.statSync(this.pathUtils.dirname(i));this.utimesSync(i,e.atime,e.mtime)}}}}async copyPromise(e,t,{baseFs:r=this,overwrite:n=!0,stableSort:i=!1,stableTime:o=!1}={}){return await async function(e,t,r,n,i){const o=e.pathUtils.normalize(t),s=r.pathUtils.normalize(n),a=[],c=[];await e.mkdirpPromise(t),await A(a,c,e,o,r,s,i);for(const e of a)await e();const u="function"==typeof e.lutimesPromise?e.lutimesPromise.bind(e):e.utimesPromise.bind(e);for(const[e,t,r]of c)await u(e,t,r)}(this,e,r,t,{overwrite:n,stableSort:i,stableTime:o})}copySync(e,t,{baseFs:r=this,overwrite:n=!0}={}){const i=r.lstatSync(t),o=this.existsSync(e);if(i.isDirectory()){this.mkdirpSync(e);const i=r.readdirSync(t);for(const o of i)this.copySync(this.pathUtils.join(e,o),r.pathUtils.join(t,o),{baseFs:r,overwrite:n})}else if(i.isFile()){if(!o||n){o&&this.removeSync(e);const n=r.readFileSync(t);this.writeFileSync(e,n)}}else{if(!i.isSymbolicLink())throw new Error(`Unsupported file type (file: ${t}, mode: 0o${i.mode.toString(8).padStart(6,"0")})`);if(!o||n){o&&this.removeSync(e);const n=r.readlinkSync(t);this.symlinkSync((0,s.CI)(this.pathUtils,n),e)}}const A=511&i.mode;this.chmodSync(e,A)}async changeFilePromise(e,t,{automaticNewlines:r}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&await this.writeFilePromise(e,i)}changeFileSync(e,t,{automaticNewlines:r=!1}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch(e){}const i=r?u(n,t):t;n!==i&&this.writeFileSync(e,i)}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(r){if("EXDEV"!==r.code)throw r;await this.copyPromise(t,e),await this.removePromise(e)}}moveSync(e,t){try{this.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;this.copySync(t,e),this.removeSync(e)}}async lockPromise(e,t){const r=e+".flock",n=Date.now();let i=null;const o=async()=>{let e;try{[e]=await this.readJsonPromise(r)}catch(e){return Date.now()-n<500}try{return process.kill(e,0),!0}catch(e){return!1}};for(;null===i;)try{i=await this.openPromise(r,"wx")}catch(e){if("EEXIST"!==e.code)throw e;if(!await o())try{await this.unlinkPromise(r);continue}catch(e){}if(!(Date.now()-n<6e4))throw new Error(`Couldn't acquire a lock in a reasonable time (via ${r})`);await new Promise(e=>setTimeout(e,1e3/60))}await this.writePromise(i,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.unlinkPromise(r),await this.closePromise(i)}catch(e){}}}async readJsonPromise(e){const t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async readJsonSync(e){const t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(t){throw t.message+=` (in ${e})`,t}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,JSON.stringify(t,null,2)+"\n")}writeJsonSync(e,t){return this.writeFileSync(e,JSON.stringify(t,null,2)+"\n")}async preserveTimePromise(e,t){const r=await this.lstatPromise(e),n=await t();void 0!==n&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,r.atime,r.mtime):r.isSymbolicLink()||await this.utimesPromise(e,r.atime,r.mtime)}async preserveTimeSync(e,t){const r=this.lstatSync(e),n=t();void 0!==n&&(e=n),this.lutimesSync?this.lutimesSync(e,r.atime,r.mtime):r.isSymbolicLink()||this.utimesSync(e,r.atime,r.mtime)}}a.DEFAULT_TIME=315532800;class c extends a{constructor(){super(s.y1)}}function u(e,t){return t.replace(/\r?\n/g,function(e){const t=e.match(/\r?\n/g);if(null===t)return n.EOL;const r=t.filter(e=>"\r\n"===e).length;return r>t.length-r?"\r\n":"\n"}(e))}},10489:(e,t,r)=>{"use strict";r.d(t,{n:()=>A});var n=r(78420),i=r(42096),o=r(46009);const s=o.LZ.root;class A extends i.p{constructor(e,{baseFs:t=new n.S}={}){super(o.y1),this.target=this.pathUtils.resolve(o.LZ.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(o.LZ.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){const t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(s,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(s,this.pathUtils.relative(this.target,e))}}},15037:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=r(42096);class i extends n.p{constructor(e,t){super(t),this.instance=null,this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}}},78420:(e,t,r)=>{"use strict";r.d(t,{S:()=>a});var n=r(35747),i=r.n(n),o=r(35398),s=r(26984),A=r(46009);class a extends o.fS{constructor(e=i()){super(),this.realFs=e,void 0!==this.realFs.lutimes&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return A.LZ.root}resolve(e){return A.y1.resolve(e)}async openPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.open(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}openSync(e,t,r){return this.realFs.openSync(A.cS.fromPortablePath(e),t,r)}async readPromise(e,t,r=0,n=0,i=-1){return await new Promise((o,s)=>{this.realFs.read(e,t,r,n,i,(e,t)=>{e?s(e):o(t)})})}readSync(e,t,r,n,i){return this.realFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return await new Promise((o,s)=>"string"==typeof t?this.realFs.write(e,t,r,this.makeCallback(o,s)):this.realFs.write(e,t,r,n,i,this.makeCallback(o,s)))}writeSync(e,t,r,n,i){return"string"==typeof t?this.realFs.writeSync(e,t,r):this.realFs.writeSync(e,t,r,n,i)}async closePromise(e){await new Promise((t,r)=>{this.realFs.close(e,this.makeCallback(t,r))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createReadStream(r,t)}createWriteStream(e,t){const r=null!==e?A.cS.fromPortablePath(e):e;return this.realFs.createWriteStream(r,t)}async realpathPromise(e){return await new Promise((t,r)=>{this.realFs.realpath(A.cS.fromPortablePath(e),{},this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}realpathSync(e){return A.cS.toPortablePath(this.realFs.realpathSync(A.cS.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(A.cS.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(A.cS.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((r,n)=>{this.realFs.access(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}existsSync(e){return this.realFs.existsSync(A.cS.fromPortablePath(e))}async statPromise(e){return await new Promise((t,r)=>{this.realFs.stat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}statSync(e){return this.realFs.statSync(A.cS.fromPortablePath(e))}async lstatPromise(e){return await new Promise((t,r)=>{this.realFs.lstat(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}lstatSync(e){return this.realFs.lstatSync(A.cS.fromPortablePath(e))}async chmodPromise(e,t){return await new Promise((r,n)=>{this.realFs.chmod(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}chmodSync(e,t){return this.realFs.chmodSync(A.cS.fromPortablePath(e),t)}async renamePromise(e,t){return await new Promise((r,n)=>{this.realFs.rename(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),this.makeCallback(r,n))})}renameSync(e,t){return this.realFs.renameSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t))}async copyFilePromise(e,t,r=0){return await new Promise((n,i)=>{this.realFs.copyFile(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r,this.makeCallback(n,i))})}copyFileSync(e,t,r=0){return this.realFs.copyFileSync(A.cS.fromPortablePath(e),A.cS.fromPortablePath(t),r)}async appendFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFile(o,t,r,this.makeCallback(n,i)):this.realFs.appendFile(o,t,this.makeCallback(n,i))})}appendFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.appendFileSync(n,t,r):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,r){return await new Promise((n,i)=>{const o="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFile(o,t,r,this.makeCallback(n,i)):this.realFs.writeFile(o,t,this.makeCallback(n,i))})}writeFileSync(e,t,r){const n="string"==typeof e?A.cS.fromPortablePath(e):e;r?this.realFs.writeFileSync(n,t,r):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,r)=>{this.realFs.unlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}unlinkSync(e){return this.realFs.unlinkSync(A.cS.fromPortablePath(e))}async utimesPromise(e,t,r){return await new Promise((n,i)=>{this.realFs.utimes(A.cS.fromPortablePath(e),t,r,this.makeCallback(n,i))})}utimesSync(e,t,r){this.realFs.utimesSync(A.cS.fromPortablePath(e),t,r)}async lutimesPromiseImpl(e,t,r){const n=this.realFs.lutimes;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);return await new Promise((i,o)=>{n.call(this.realFs,A.cS.fromPortablePath(e),t,r,this.makeCallback(i,o))})}lutimesSyncImpl(e,t,r){const n=this.realFs.lutimesSync;if(void 0===n)throw(0,s.bk)("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,A.cS.fromPortablePath(e),t,r)}async mkdirPromise(e,t){return await new Promise((r,n)=>{this.realFs.mkdir(A.cS.fromPortablePath(e),t,this.makeCallback(r,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(A.cS.fromPortablePath(e),t)}async rmdirPromise(e){return await new Promise((t,r)=>{this.realFs.rmdir(A.cS.fromPortablePath(e),this.makeCallback(t,r))})}rmdirSync(e){return this.realFs.rmdirSync(A.cS.fromPortablePath(e))}async symlinkPromise(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return await new Promise((r,i)=>{this.realFs.symlink(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n,this.makeCallback(r,i))})}symlinkSync(e,t,r){const n=r||(e.endsWith("/")?"dir":"file");return this.realFs.symlinkSync(A.cS.fromPortablePath(e.replace(/\/+$/,"")),A.cS.fromPortablePath(t),n)}async readFilePromise(e,t){return await new Promise((r,n)=>{const i="string"==typeof e?A.cS.fromPortablePath(e):e;this.realFs.readFile(i,t,this.makeCallback(r,n))})}readFileSync(e,t){const r="string"==typeof e?A.cS.fromPortablePath(e):e;return this.realFs.readFileSync(r,t)}async readdirPromise(e,{withFileTypes:t}={}){return await new Promise((r,n)=>{t?this.realFs.readdir(A.cS.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(r,n)):this.realFs.readdir(A.cS.fromPortablePath(e),this.makeCallback(e=>r(e),n))})}readdirSync(e,{withFileTypes:t}={}){return t?this.realFs.readdirSync(A.cS.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(A.cS.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,r)=>{this.realFs.readlink(A.cS.fromPortablePath(e),this.makeCallback(t,r))}).then(e=>A.cS.toPortablePath(e))}readlinkSync(e){return A.cS.toPortablePath(this.realFs.readlinkSync(A.cS.fromPortablePath(e)))}watch(e,t,r){return this.realFs.watch(A.cS.fromPortablePath(e),t,r)}makeCallback(e,t){return(r,n)=>{r?t(r):e(n)}}}},39725:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(42096),i=r(46009);class o extends n.p{constructor(e){super(i.cS),this.baseFs=e}mapFromBase(e){return i.cS.fromPortablePath(e)}mapToBase(e){return i.cS.toPortablePath(e)}}},42096:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var n=r(35398);class i extends n.uY{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}openPromise(e,t,r){return this.baseFs.openPromise(this.mapToBase(e),t,r)}openSync(e,t,r){return this.baseFs.openSync(this.mapToBase(e),t,r)}async readPromise(e,t,r,n,i){return await this.baseFs.readPromise(e,t,r,n,i)}readSync(e,t,r,n,i){return this.baseFs.readSync(e,t,r,n,i)}async writePromise(e,t,r,n,i){return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i)}writeSync(e,t,r,n,i){return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i)}closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(null!==e?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(null!==e?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}statPromise(e){return this.baseFs.statPromise(this.mapToBase(e))}statSync(e){return this.baseFs.statSync(this.mapToBase(e))}lstatPromise(e){return this.baseFs.lstatPromise(this.mapToBase(e))}lstatSync(e){return this.baseFs.lstatSync(this.mapToBase(e))}chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}copyFilePromise(e,t,r=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),r)}copyFileSync(e,t,r=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),r)}appendFilePromise(e,t,r){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,r)}appendFileSync(e,t,r){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,r)}writeFilePromise(e,t,r){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,r)}writeFileSync(e,t,r){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,r)}unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}utimesPromise(e,t,r){return this.baseFs.utimesPromise(this.mapToBase(e),t,r)}utimesSync(e,t,r){return this.baseFs.utimesSync(this.mapToBase(e),t,r)}mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}rmdirPromise(e){return this.baseFs.rmdirPromise(this.mapToBase(e))}rmdirSync(e){return this.baseFs.rmdirSync(this.mapToBase(e))}symlinkPromise(e,t,r){return this.baseFs.symlinkPromise(this.mapToBase(e),this.mapToBase(t),r)}symlinkSync(e,t,r){return this.baseFs.symlinkSync(this.mapToBase(e),this.mapToBase(t),r)}readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,{withFileTypes:t}={}){return this.baseFs.readdirPromise(this.mapToBase(e),{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){return this.baseFs.readdirSync(this.mapToBase(e),{withFileTypes:t})}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}watch(e,t,r){return this.baseFs.watch(this.mapToBase(e),t,r)}fsMapToBase(e){return"number"==typeof e?e:this.mapToBase(e)}}},17674:(e,t,r)=>{"use strict";r.d(t,{p:()=>c});var n=r(78420),i=r(42096),o=r(46009);const s=/^[0-9]+$/,A=/^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,a=/^([^/]+-)?[a-f0-9]+$/;class c extends i.p{constructor({baseFs:e=new n.S}={}){super(o.y1),this.baseFs=e}static makeVirtualPath(e,t,r){if("$$virtual"!==o.y1.basename(e))throw new Error('Assertion failed: Virtual folders must be named "$$virtual"');if(!o.y1.basename(t).match(a))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");const n=o.y1.relative(o.y1.dirname(e),r).split("/");let i=0;for(;i<n.length&&".."===n[i];)i+=1;const s=n.slice(i);return o.y1.join(e,t,String(i),...s)}static resolveVirtual(e){const t=e.match(A);if(!t||!t[3]&&t[5])return e;const r=o.y1.dirname(t[1]);if(!t[3]||!t[4])return r;if(!s.test(t[4]))return e;const n=Number(t[4]),i="../".repeat(n),a=t[5]||".";return c.resolveVirtual(o.y1.join(r,i,a))}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){const t=e.match(A);if(!t)return this.baseFs.realpathSync(e);if(!t[5])return e;const r=this.baseFs.realpathSync(this.mapToBase(e));return c.makeVirtualPath(t[1],t[3],r)}async realpathPromise(e){const t=e.match(A);if(!t)return await this.baseFs.realpathPromise(e);if(!t[5])return e;const r=await this.baseFs.realpathPromise(this.mapToBase(e));return c.makeVirtualPath(t[1],t[3],r)}mapToBase(e){return c.resolveVirtual(e)}mapFromBase(e){return e}}},90739:(e,t,r)=>{"use strict";r.d(t,{k:()=>u,d:()=>g});var n=r(35747),i=r(92413),o=r(31669),s=r(35398),A=r(78420),a=r(26984),c=r(46009);const u="mixed";class l{constructor(){this.dev=0,this.ino=0,this.mode=0,this.nlink=1,this.rdev=0,this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return 16384==(61440&this.mode)}isFIFO(){return!1}isFile(){return 32768==(61440&this.mode)}isSocket(){return!1}isSymbolicLink(){return 40960==(61440&this.mode)}}function h(){return Object.assign(new l,{uid:0,gid:0,size:0,blksize:0,atimeMs:0,mtimeMs:0,ctimeMs:0,birthtimeMs:0,atime:new Date(0),mtime:new Date(0),ctime:new Date(0),birthtime:new Date(0),mode:33188})}class g extends s.fS{constructor(e,t){super(),this.lzSource=null,this.listings=new Map,this.entries=new Map,this.fds=new Map,this.nextFd=0,this.ready=!1,this.readOnly=!1,this.libzip=t.libzip;const r=t;if(this.level=void 0!==r.level?r.level:u,null===e&&(e=Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])),"string"==typeof e){const{baseFs:t=new A.S}=r;this.baseFs=t,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if("string"==typeof e)try{this.stats=this.baseFs.statSync(e)}catch(e){if("ENOENT"!==e.code||!r.create)throw e;this.stats=h()}else this.stats=h();const n=this.libzip.malloc(4);try{let i=0;if("string"==typeof e&&r.create&&(i|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(i|=this.libzip.ZIP_RDONLY,this.readOnly=!0),"string"==typeof e)this.zip=this.libzip.open(c.cS.fromPortablePath(e),i,n);else{const t=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(t,i,n),this.lzSource=t}catch(e){throw this.libzip.source.free(t),e}}if(0===this.zip){const e=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(e,this.libzip.getValue(n,"i32")),new Error(this.libzip.error.strerror(e))}}finally{this.libzip.free(n)}this.listings.set(c.LZ.root,new Set);const i=this.libzip.getNumEntries(this.zip,0);for(let e=0;e<i;++e){const t=this.libzip.getName(this.zip,e,0);if(c.y1.isAbsolute(t))continue;const r=c.y1.resolve(c.LZ.root,t);this.registerEntry(r,e),t.endsWith("/")&&this.registerListing(r)}this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.ready=!0}getExtractHint(e){for(const t of this.entries.keys()){const r=this.pathUtils.extname(t);if(e.relevantExtensions.has(r))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(!this.ready)throw a.Vw("archive closed, close");if(!this.lzSource)throw new Error("ZipFS was not created from a Buffer");try{if(this.libzip.source.keep(this.lzSource),-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(-1===this.libzip.source.open(this.lzSource))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));if(-1===this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));const e=this.libzip.source.tell(this.lzSource);if(-1===this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET))throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));const t=this.libzip.malloc(e);if(!t)throw new Error("Couldn't allocate enough memory");try{const r=this.libzip.source.read(this.lzSource,t,e);if(-1===r)throw new Error(this.libzip.error.strerror(this.libzip.source.error(this.lzSource)));if(r<e)throw new Error("Incomplete read");if(r>e)throw new Error("Overread");const n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(!this.ready)throw a.Vw("archive closed, close");if(this.readOnly)return void this.discardAndClose();const e=this.baseFs.existsSync(this.path)?511&this.baseFs.statSync(this.path).mode:null;if(-1===this.libzip.close(this.zip))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));null===e?this.baseFs.chmodSync(this.path,this.stats.mode):e!==(511&this.baseFs.statSync(this.path).mode)&&this.baseFs.chmodSync(this.path,e),this.ready=!1}discardAndClose(){if(!this.ready)throw a.Vw("archive closed, close");this.libzip.discard(this.zip),this.ready=!1}resolve(e){return c.y1.resolve(c.LZ.root,e)}async openPromise(e,t,r){return this.openSync(e,t,r)}openSync(e,t,r){const n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}async readPromise(e,t,r,n,i){return this.readSync(e,t,r,n,i)}readSync(e,t,r=0,n=0,i=-1){const o=this.fds.get(e);if(void 0===o)throw a.Ch("read");let s;s=-1===i||null===i?o.cursor:i;const A=this.readFileSync(o.p);A.copy(t,r,s,s+n);const c=Math.max(0,Math.min(A.length-s,n));return-1!==i&&null!==i||(o.cursor+=c),c}async writePromise(e,t,r,n,i){return"string"==typeof t?this.writeSync(e,t,i):this.writeSync(e,t,r,n,i)}writeSync(e,t,r,n,i){if(void 0===this.fds.get(e))throw a.Ch("read");throw new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(void 0===this.fds.get(e))throw a.Ch("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesRead:0,path:e,close:()=>{clearImmediate(n)}}),n=setImmediate(()=>{try{const n=this.readFileSync(e,t);r.bytesRead=n.length,r.write(n),r.end()}catch(e){r.emit("error",e),r.end()}});return r}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw a.YW(`open '${e}'`);if(null===e)throw new Error("Unimplemented");const r=Object.assign(new i.PassThrough,{bytesWritten:0,path:e,close:()=>{r.end()}}),n=[];return r.on("data",e=>{const t=Buffer.from(e);r.bytesWritten+=t.length,n.push(t)}),r.on("end",()=>{this.writeFileSync(e,Buffer.concat(n),t)}),r}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){const t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw a.Vw(`archive closed, existsSync '${e}'`);if(0===this.symlinkCount){const t=c.y1.resolve(c.LZ.root,e);return this.entries.has(t)||this.listings.has(t)}let t;try{t=this.resolveFilename(`stat '${e}'`,e)}catch(e){return!1}return this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=n.constants.F_OK){const r=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`access '${e}'`);if(this.readOnly&&t&n.constants.W_OK)throw a.YW(`access '${e}'`)}async statPromise(e){return this.statSync(e)}statSync(e){const t=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`stat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`stat '${e}'`);return this.statImpl(`stat '${e}'`,t)}async lstatPromise(e){return this.lstatSync(e)}lstatSync(e){const t=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`lstat '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,t)}statImpl(e,t){const r=this.entries.get(t);if(void 0!==r){const e=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,r,0,0,e))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const n=this.stats.uid,i=this.stats.gid,o=this.libzip.struct.statSize(e)>>>0,s=512,A=Math.ceil(o/s),a=1e3*(this.libzip.struct.statMtime(e)>>>0),c=a,u=a,h=a,g=new Date(c),f=new Date(u),p=new Date(h),d=new Date(a),C=this.listings.has(t)?16384:this.isSymbolicLink(r)?40960:32768,E=16384===C?493:420,I=C|511&this.getUnixMode(r,E);return Object.assign(new l,{uid:n,gid:i,size:o,blksize:s,blocks:A,atime:g,birthtime:f,ctime:p,mtime:d,atimeMs:c,birthtimeMs:u,ctimeMs:h,mtimeMs:a,mode:I})}if(this.listings.has(t)){const e=this.stats.uid,t=this.stats.gid,r=0,n=512,i=0,o=this.stats.mtimeMs,s=this.stats.mtimeMs,A=this.stats.mtimeMs,a=this.stats.mtimeMs,c=new Date(o),u=new Date(s),h=new Date(A),g=new Date(a),f=16877;return Object.assign(new l,{uid:e,gid:t,size:r,blksize:n,blocks:i,atime:c,birthtime:u,ctime:h,mtime:g,atimeMs:o,birthtimeMs:s,ctimeMs:A,mtimeMs:a,mode:f})}throw new Error("Unreachable")}getUnixMode(e,t){if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;const r=this.registerListing(c.y1.dirname(e));return t=new Set,r.add(c.y1.basename(e)),this.listings.set(e,t),t}registerEntry(e,t){this.registerListing(c.y1.dirname(e)).add(c.y1.basename(e)),this.entries.set(e,t)}resolveFilename(e,t,r=!0){if(!this.ready)throw a.Vw("archive closed, "+e);let n=c.y1.resolve(c.LZ.root,t);if("/"===n)return c.LZ.root;const i=this.entries.get(n);if(r&&void 0!==i){if(0!==this.symlinkCount&&this.isSymbolicLink(i)){const t=this.getFileSource(i).toString();return this.resolveFilename(e,c.y1.resolve(c.y1.dirname(n),t),!0)}return n}for(;;){const t=this.resolveFilename(e,c.y1.dirname(n),!0),i=this.listings.has(t),o=this.entries.has(t);if(!i&&!o)throw a.z6(e);if(!i)throw a.Ab(e);if(n=c.y1.resolve(t,c.y1.basename(n)),!r||0===this.symlinkCount)break;const s=this.libzip.name.locate(this.zip,n.slice(1));if(-1===s)break;if(!this.isSymbolicLink(s))break;{const e=this.getFileSource(s).toString();n=c.y1.resolve(c.y1.dirname(n),e)}}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));const t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){const t=this.libzip.struct.errorS(),{buffer:r,byteLength:n}=this.allocateBuffer(e),i=this.libzip.source.fromUnattachedBuffer(r,n,0,!0,t);if(0===i)throw this.libzip.free(t),new Error(this.libzip.error.strerror(t));return i}allocateSource(e){const{buffer:t,byteLength:r}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,r,0,!0);if(0===n)throw this.libzip.free(t),new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return n}setFileSource(e,t){const r=c.y1.relative(c.LZ.root,e),n=this.allocateSource(t);try{const e=this.libzip.file.add(this.zip,r,n,this.libzip.ZIP_FL_OVERWRITE);if("mixed"!==this.level){let t;t=0===this.level?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(-1===this.libzip.file.setCompression(this.zip,e,0,t,this.level))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}return e}catch(e){throw this.libzip.source.free(n),e}}isSymbolicLink(e){if(0===this.symlinkCount)return!1;if(-1===this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)return!1;return 40960==(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16)}getFileSource(e){const t=this.libzip.struct.statS();if(-1===this.libzip.statIndex(this.zip,e,0,0,t))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));const r=this.libzip.struct.statSize(t),n=this.libzip.malloc(r);try{const t=this.libzip.fopenIndex(this.zip,e,0,0);if(0===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));try{const e=this.libzip.fread(t,n,r,0);if(-1===e)throw new Error(this.libzip.error.strerror(this.libzip.file.getError(t)));if(e<r)throw new Error("Incomplete read");if(e>r)throw new Error("Overread");const i=this.libzip.HEAPU8.subarray(n,n+r);return Buffer.from(i)}finally{this.libzip.fclose(t)}}finally{this.libzip.free(n)}}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw a.YW(`chmod '${e}'`);t&=493;const r=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(r);if(void 0===n)throw new Error(`Assertion failed: The entry should have been registered (${r})`);const i=-512&this.getUnixMode(n,32768)|t;if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,i<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,r){return this.copyFileSync(e,t,r)}copyFileSync(e,t,r=0){if(this.readOnly)throw a.YW(`copyfile '${e} -> '${t}'`);if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw a.bk("unsupported clone operation",`copyfile '${e}' -> ${t}'`);const i=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),o=this.entries.get(i);if(void 0===o)throw a.hq(`copyfile '${e}' -> '${t}'`);const s=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),A=this.entries.get(s);if(0!=(r&(n.constants.COPYFILE_EXCL|n.constants.COPYFILE_FICLONE_FORCE))&&void 0!==A)throw a.cT(`copyfile '${e}' -> '${t}'`);const c=this.getFileSource(o),u=this.setFileSource(s,c);u!==A&&this.registerEntry(s,u)}async appendFilePromise(e,t,r){return this.appendFileSync(e,t,r)}appendFileSync(e,t,r={}){if(this.readOnly)throw a.YW(`open '${e}'`);return void 0===r?r={flag:"a"}:"string"==typeof r?r={flag:"a",encoding:r}:void 0===r.flag&&(r={flag:"a",...r}),this.writeFileSync(e,t,r)}async writeFilePromise(e,t,r){return this.writeFileSync(e,t,r)}writeFileSync(e,t,r){if("string"!=typeof e)throw a.Ch("read");if(this.readOnly)throw a.YW(`open '${e}'`);const n=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(n))throw a.GA(`open '${e}'`);const i=this.entries.get(n);void 0!==i&&"object"==typeof r&&r.flag&&r.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(i),Buffer.from(t)]));let o=null;"string"==typeof r?o=r:"object"==typeof r&&r.encoding&&(o=r.encoding),null!==o&&(t=t.toString(o));const s=this.setFileSource(n,t);s!==i&&this.registerEntry(n,s)}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){throw new Error("Unimplemented")}async utimesPromise(e,t,r){return this.utimesSync(e,t,r)}utimesSync(e,t,r){if(this.readOnly)throw a.YW(`utimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,r)}async lutimesPromise(e,t,r){return this.lutimesSync(e,t,r)}lutimesSync(e,t,r){if(this.readOnly)throw a.YW(`lutimes '${e}'`);const n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,r)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));const r=this.entries.get(e);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.setMtime(this.zip,r,0,function(e){if("string"==typeof e&&String(+e)===e)return+e;if(Number.isFinite(e))return e<0?Date.now()/1e3:e;if((0,o.isDate)(e))return e.getTime()/1e3;throw new Error("Invalid time")}(t),0))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:r=!1}={}){if(r)return void this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw a.YW(`mkdir '${e}'`);const n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw a.cT(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e){return this.rmdirSync(e)}rmdirSync(e){throw new Error("Unimplemented")}hydrateDirectory(e){const t=this.libzip.dir.add(this.zip,c.y1.relative(c.LZ.root,e));if(-1===t)throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));return this.registerListing(e),this.registerEntry(e,t),t}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw a.YW(`symlink '${e}' -> '${t}'`);const r=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(r))throw a.GA(`symlink '${e}' -> '${t}'`);if(this.entries.has(r))throw a.cT(`symlink '${e}' -> '${t}'`);const n=this.setFileSource(r,e);this.registerEntry(r,n);if(-1===this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));this.symlinkCount+=1}async readFilePromise(e,t){switch(t){case"utf8":default:return this.readFileSync(e,t)}}readFileSync(e,t){if("string"!=typeof e)throw a.Ch("read");"object"==typeof t&&(t=t?t.encoding:void 0);const r=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`open '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(r))throw a.Ab(`open '${e}'`);if(this.listings.has(r))throw a.GA("read");const n=this.entries.get(r);if(void 0===n)throw new Error("Unreachable");const i=this.getFileSource(n);return t?i.toString(t):i}async readdirPromise(e,{withFileTypes:t}={}){return this.readdirSync(e,{withFileTypes:t})}readdirSync(e,{withFileTypes:t}={}){const r=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw a.z6(`scandir '${e}'`);const n=this.listings.get(r);if(!n)throw a.Ab(`scandir '${e}'`);const i=[...n];return t?i.map(t=>Object.assign(this.statImpl("lstat",c.y1.join(e,t)),{name:t})):i}async readlinkPromise(e){return this.readlinkSync(e)}readlinkSync(e){const t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw a.z6(`readlink '${e}'`);if("/"===e[e.length-1]&&!this.listings.has(t))throw a.Ab(`open '${e}'`);if(this.listings.has(t))throw a.hq(`readlink '${e}'`);const r=this.entries.get(t);if(void 0===r)throw new Error("Unreachable");if(-1===this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S))throw new Error(this.libzip.error.strerror(this.libzip.getError(this.zip)));if(this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX)throw a.hq(`readlink '${e}'`);if(40960!=(61440&this.libzip.getValue(this.libzip.uint32S,"i32")>>>16))throw a.hq(`readlink '${e}'`);return this.getFileSource(r).toString()}watch(e,t,r){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t)}if(!n)return{on:()=>{},close:()=>{}};const i=setInterval(()=>{},864e5);return{on:()=>{},close:()=>{clearInterval(i)}}}}},53660:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(35747),i=r(35398),o=r(78420),s=r(90739),A=r(46009);const a=2147483648,c=/.*?(?<!\/)\.zip(?=\/|$)/;class u extends i.fS{constructor({libzip:e,baseFs:t=new o.S,filter:r=null,maxOpenFiles:n=1/0,readOnlyArchives:i=!1,useCache:s=!0}){super(),this.fdMap=new Map,this.nextFd=3,this.isZip=new Set,this.notZip=new Set,this.libzip=e,this.baseFs=t,this.zipInstances=s?new Map:null,this.filter=r,this.maxOpenFiles=n,this.readOnlyArchives=i}static async openPromise(e,t){const r=new u(t);try{return await e(r)}finally{r.saveAndClose()}}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(this.zipInstances)for(const[e,t]of this.zipInstances.entries())t.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,t){const r=this.nextFd++|a;return this.fdMap.set(r,[e,t]),r}async openPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,t,r),async(e,{subPath:n})=>this.remapFd(e,await e.openPromise(n,t,r)))}openSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,r),(e,{subPath:n})=>this.remapFd(e,e.openSync(n,t,r)))}async readPromise(e,t,r,n,i){if(0==(e&a))return await this.baseFs.readPromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return await s.readPromise(A,t,r,n,i)}readSync(e,t,r,n,i){if(0==(e&a))return this.baseFs.readSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, read"),{code:"EBADF"});const[s,A]=o;return s.readSync(A,t,r,n,i)}async writePromise(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?await this.baseFs.writePromise(e,t,r):await this.baseFs.writePromise(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?await s.writePromise(A,t,r):await s.writePromise(A,t,r,n,i)}writeSync(e,t,r,n,i){if(0==(e&a))return"string"==typeof t?this.baseFs.writeSync(e,t,r):this.baseFs.writeSync(e,t,r,n,i);const o=this.fdMap.get(e);if(void 0===o)throw Object.assign(new Error("EBADF: bad file descriptor, write"),{code:"EBADF"});const[s,A]=o;return"string"==typeof t?s.writeSync(A,t,r):s.writeSync(A,t,r,n,i)}async closePromise(e){if(0==(e&a))return await this.baseFs.closePromise(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return await r.closePromise(n)}closeSync(e){if(0==(e&a))return this.baseFs.closeSync(e);const t=this.fdMap.get(e);if(void 0===t)throw Object.assign(new Error("EBADF: bad file descriptor, close"),{code:"EBADF"});this.fdMap.delete(e);const[r,n]=t;return r.closeSync(n)}createReadStream(e,t){return null===e?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(e,{subPath:r})=>e.createReadStream(r,t))}createWriteStream(e,t){return null===e?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(e,{subPath:r})=>e.createWriteStream(r,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(await this.baseFs.realpathPromise(t),this.pathUtils.relative(A.LZ.root,await e.realpathPromise(r))))}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(e,{archivePath:t,subPath:r})=>this.pathUtils.resolve(this.baseFs.realpathSync(t),this.pathUtils.relative(A.LZ.root,e.realpathSync(r))))}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(e,{subPath:t})=>await e.existsPromise(t))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(e,{subPath:t})=>e.existsSync(t))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(e,{subPath:r})=>await e.accessPromise(r,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(e,{subPath:r})=>e.accessSync(r,t))}async statPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e),async(e,{subPath:t})=>await e.statPromise(t))}statSync(e){return this.makeCallSync(e,()=>this.baseFs.statSync(e),(e,{subPath:t})=>e.statSync(t))}async lstatPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e),async(e,{subPath:t})=>await e.lstatPromise(t))}lstatSync(e){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e),(e,{subPath:t})=>e.lstatSync(t))}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(e,{subPath:r})=>await e.chmodPromise(r,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(e,{subPath:r})=>e.chmodSync(r,t))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(e,{subPath:r})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await e.renamePromise(r,n)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(e,{subPath:r})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(t,{subPath:n})=>{if(e!==t)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return e.renameSync(r,n)}))}async copyFilePromise(e,t,r=0){const i=async(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&await this.existsPromise(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=await e.readFilePromise(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}await i.writeFilePromise(o,s)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,r),async(t,{subPath:r})=>await i(this.baseFs,e,t,r)),async(e,{subPath:n})=>await this.makeCallPromise(t,async()=>await i(e,n,this.baseFs,t),async(t,{subPath:o})=>e!==t?await i(e,n,t,o):await e.copyFilePromise(n,o,r)))}copyFileSync(e,t,r=0){const i=(e,t,i,o)=>{if(0!=(r&n.constants.COPYFILE_FICLONE_FORCE))throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${t}' -> ${o}'`),{code:"EXDEV"});if(r&n.constants.COPYFILE_EXCL&&this.existsSync(t))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${t}' -> '${o}'`),{code:"EEXIST"});let s;try{s=e.readFileSync(t)}catch(e){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${t}' -> '${o}'`),{code:"EINVAL"})}i.writeFileSync(o,s)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,r),(t,{subPath:r})=>i(this.baseFs,e,t,r)),(e,{subPath:n})=>this.makeCallSync(t,()=>i(e,n,this.baseFs,t),(t,{subPath:o})=>e!==t?i(e,n,t,o):e.copyFileSync(n,o,r)))}async appendFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,r),async(e,{subPath:n})=>await e.appendFilePromise(n,t,r))}appendFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,r),(e,{subPath:n})=>e.appendFileSync(n,t,r))}async writeFilePromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,r),async(e,{subPath:n})=>await e.writeFilePromise(n,t,r))}writeFileSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,r),(e,{subPath:n})=>e.writeFileSync(n,t,r))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(e,{subPath:t})=>await e.unlinkPromise(t))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(e,{subPath:t})=>e.unlinkSync(t))}async utimesPromise(e,t,r){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,r),async(e,{subPath:n})=>await e.utimesPromise(n,t,r))}utimesSync(e,t,r){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,r),(e,{subPath:n})=>e.utimesSync(n,t,r))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(e,{subPath:r})=>await e.mkdirPromise(r,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(e,{subPath:r})=>e.mkdirSync(r,t))}async rmdirPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e),async(e,{subPath:t})=>await e.rmdirPromise(t))}rmdirSync(e){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e),(e,{subPath:t})=>e.rmdirSync(t))}async symlinkPromise(e,t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,r),async(t,{subPath:r})=>await t.symlinkPromise(e,r))}symlinkSync(e,t,r){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,r),(t,{subPath:r})=>t.symlinkSync(e,r))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":default:return await this.baseFs.readFilePromise(e,t)}},async(e,{subPath:r})=>await e.readFilePromise(r,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":default:return this.baseFs.readFileSync(e,t)}},(e,{subPath:r})=>e.readFileSync(r,t))}async readdirPromise(e,{withFileTypes:t}={}){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,{withFileTypes:t}),async(e,{subPath:r})=>await e.readdirPromise(r,{withFileTypes:t}),{requireSubpath:!1})}readdirSync(e,{withFileTypes:t}={}){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,{withFileTypes:t}),(e,{subPath:r})=>e.readdirSync(r,{withFileTypes:t}),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(e,{subPath:t})=>await e.readlinkPromise(t))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(e,{subPath:t})=>e.readlinkSync(t))}watch(e,t,r){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,r),(e,{subPath:n})=>e.watch(n,t,r))}async makeCallPromise(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return await t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?await t():await this.getZipPromise(o.archivePath,async e=>await r(e,o)):await t()}makeCallSync(e,t,r,{requireSubpath:n=!0}={}){if("string"!=typeof e)return t();const i=this.resolve(e),o=this.findZip(i);return o?n&&"/"===o.subPath?t():this.getZipSync(o.archivePath,e=>r(e,o)):t()}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){const r=c.exec(e.substr(t.length));if(!r)return null;if(t=this.pathUtils.join(t,r[0]),!1===this.isZip.has(t)){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch(e){return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.resolve(A.LZ.root,e.substr(t.length))}}}limitOpenFiles(e){if(null===this.zipInstances)return;let t=this.zipInstances.size-e;for(const[e,r]of this.zipInstances.entries()){if(t<=0)break;r.saveAndClose(),this.zipInstances.delete(e),t-=1}}async getZipPromise(e,t){const r=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){const t=await r();n=this.zipInstances.get(e),n||(n=new s.d(e,t))}return this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),await t(n)}{const n=new s.d(e,await r());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){const r=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n=new s.d(e,r())),this.zipInstances.delete(e),this.zipInstances.set(e,n),this.limitOpenFiles(this.maxOpenFiles),t(n)}{const n=new s.d(e,r());try{return t(n)}finally{n.saveAndClose()}}}}},26984:(e,t,r)=>{"use strict";function n(e,t){return Object.assign(new Error(`${e}: ${t}`),{code:e})}function i(e){return n("EBUSY",e)}function o(e,t){return n("ENOSYS",`${e}, ${t}`)}function s(e){return n("EINVAL","invalid argument, "+e)}function A(e){return n("EBADF","bad file descriptor, "+e)}function a(e){return n("ENOENT","no such file or directory, "+e)}function c(e){return n("ENOTDIR","not a directory, "+e)}function u(e){return n("EISDIR","illegal operation on a directory, "+e)}function l(e){return n("EEXIST","file already exists, "+e)}function h(e){return n("EROFS","read-only filesystem, "+e)}r.d(t,{Vw:()=>i,bk:()=>o,hq:()=>s,Ch:()=>A,z6:()=>a,Ab:()=>c,GA:()=>u,cT:()=>l,YW:()=>h})},56537:(e,t,r)=>{"use strict";r.r(t),r.d(t,{normalizeLineEndings:()=>a.qH,DEFAULT_COMPRESSION_LEVEL:()=>c.k,PortablePath:()=>A.LZ,Filename:()=>A.QS,npath:()=>A.cS,ppath:()=>A.y1,toFilename:()=>A.Zu,AliasFS:()=>u.K,FakeFS:()=>a.uY,CwdFS:()=>l.M,JailFS:()=>h.n,LazyFS:()=>g.v,NoFS:()=>p,NodeFS:()=>s.S,PosixFS:()=>d.i,ProxiedFS:()=>C.p,VirtualFS:()=>E.p,ZipFS:()=>c.d,ZipOpenFS:()=>I.A,patchFs:()=>y,extendFs:()=>w,xfs:()=>D});var n=r(12087),i=r.n(n),o=r(31669),s=r(78420),A=r(46009),a=r(35398),c=r(90739),u=r(14626),l=r(75448),h=r(10489),g=r(15037);const f=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"});class p extends a.uY{constructor(){super(A.y1)}getExtractHint(){throw f()}getRealPath(){throw f()}resolve(){throw f()}async openPromise(){throw f()}openSync(){throw f()}async readPromise(){throw f()}readSync(){throw f()}async writePromise(){throw f()}writeSync(){throw f()}async closePromise(){throw f()}closeSync(){throw f()}createWriteStream(){throw f()}createReadStream(){throw f()}async realpathPromise(){throw f()}realpathSync(){throw f()}async readdirPromise(){throw f()}readdirSync(){throw f()}async existsPromise(e){throw f()}existsSync(e){throw f()}async accessPromise(){throw f()}accessSync(){throw f()}async statPromise(){throw f()}statSync(){throw f()}async lstatPromise(e){throw f()}lstatSync(e){throw f()}async chmodPromise(){throw f()}chmodSync(){throw f()}async mkdirPromise(){throw f()}mkdirSync(){throw f()}async rmdirPromise(){throw f()}rmdirSync(){throw f()}async symlinkPromise(){throw f()}symlinkSync(){throw f()}async renamePromise(){throw f()}renameSync(){throw f()}async copyFilePromise(){throw f()}copyFileSync(){throw f()}async appendFilePromise(){throw f()}appendFileSync(){throw f()}async writeFilePromise(){throw f()}writeFileSync(){throw f()}async unlinkPromise(){throw f()}unlinkSync(){throw f()}async utimesPromise(){throw f()}utimesSync(){throw f()}async readFilePromise(){throw f()}readFileSync(){throw f()}async readlinkPromise(){throw f()}readlinkSync(){throw f()}watch(){throw f()}}p.instance=new p;var d=r(39725),C=r(42096),E=r(17674),I=r(53660);function m(e){const t=A.cS.toPortablePath(i().tmpdir()),r=Math.ceil(4294967296*Math.random()).toString(16).padStart(8,"0");return A.y1.join(t,`${e}${r}`)}function y(e,t){const r=new Set(["accessSync","appendFileSync","createReadStream","chmodSync","closeSync","copyFileSync","lstatSync","lutimesSync","mkdirSync","openSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","unlinkSync","utimesSync","watch","writeFileSync","writeSync"]),n=new Set(["accessPromise","appendFilePromise","chmodPromise","closePromise","copyFilePromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),i=(e,t,r)=>{const n=e[t];e[t]=r,void 0!==n[o.promisify.custom]&&(r[o.promisify.custom]=n[o.promisify.custom])};i(e,"exists",(e,...r)=>{const n="function"==typeof r[r.length-1]?r.pop():()=>{};process.nextTick(()=>{t.existsPromise(e).then(e=>{n(e)},()=>{n(!1)})})}),i(e,"read",(e,r,...n)=>{const i="function"==typeof n[n.length-1]?n.pop():()=>{};process.nextTick(()=>{t.readPromise(e,r,...n).then(e=>{i(null,e,r)},e=>{i(e)})})});for(const r of n){const n=r.replace(/Promise$/,"");if(void 0===e[n])continue;const o=t[r];if(void 0===o)continue;i(e,n,(...e)=>{const r="function"==typeof e[e.length-1]?e.pop():()=>{};process.nextTick(()=>{o.apply(t,e).then(e=>{r(null,e)},e=>{r(e)})})})}e.realpath.native=e.realpath,i(e,"existsSync",e=>{try{return t.existsSync(e)}catch(e){return!1}});for(const n of r){const r=n;if(void 0===e[r])continue;const o=t[n];void 0!==o&&i(e,r,o.bind(t))}e.realpathSync.native=e.realpathSync;{const r=e.promises;if(void 0!==r)for(const e of n){const n=e.replace(/Promise$/,"");if(void 0===r[n])continue;const o=t[e];void 0!==o&&i(r,n,o.bind(t))}}}function w(e,t){const r=Object.create(e);return y(r,t),r}const B=new Set;let Q=!1;function v(){if(Q)return;Q=!0;const e=()=>{process.off("exit",e);for(const e of B){B.delete(e);try{D.removeSync(e)}catch(e){}}};process.on("exit",e)}const D=Object.assign(new s.S,{detachTemp(e){B.delete(e)},mktempSync(e){for(v();;){const t=m("xfs-");try{this.mkdirSync(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=this.realpathSync(t);if(B.add(r),void 0===e)return t;try{return e(r)}finally{if(B.has(r)){B.delete(r);try{this.removeSync(r)}catch(e){}}}}},async mktempPromise(e){for(v();;){const t=m("xfs-");try{await this.mkdirPromise(t)}catch(e){if("EEXIST"===e.code)continue;throw e}const r=await this.realpathPromise(t);if(B.add(r),void 0===e)return r;try{return await e(r)}finally{if(B.has(r)){B.delete(r);try{await this.removePromise(r)}catch(e){}}}}}})},46009:(e,t,r)=>{"use strict";r.d(t,{LZ:()=>s,QS:()=>A,cS:()=>a,y1:()=>c,CI:()=>C,Zu:()=>E});var n,i=r(85622),o=r.n(i);!function(e){e[e.File=0]="File",e[e.Portable=1]="Portable",e[e.Native=2]="Native"}(n||(n={}));const s={root:"/",dot:"."},A={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",rc:".yarnrc.yml"},a=Object.create(o()),c=Object.create(o().posix);a.cwd=()=>process.cwd(),c.cwd=()=>d(process.cwd()),c.resolve=(...e)=>o().posix.resolve(c.cwd(),...e);const u=function(e,t,r){return(t=e.normalize(t))===(r=e.normalize(r))?".":(t.endsWith(e.sep)||(t+=e.sep),r.startsWith(t)?r.slice(t.length):null)};a.fromPortablePath=p,a.toPortablePath=d,a.contains=(e,t)=>u(a,e,t),c.contains=(e,t)=>u(c,e,t);const l=/^([a-zA-Z]:.*)$/,h=/^\\\\(\.\\)?(.*)$/,g=/^\/([a-zA-Z]:.*)$/,f=/^\/unc\/(\.dot\/)?(.*)$/;function p(e){if("win32"!==process.platform)return e;if(e.match(g))e=e.replace(g,"$1");else{if(!e.match(f))return e;e=e.replace(f,(e,t,r)=>`\\\\${t?".\\":""}${r}`)}return e.replace(/\//g,"\\")}function d(e){return"win32"!==process.platform?e:(e.match(l)?e=e.replace(l,"/$1"):e.match(h)&&(e=e.replace(h,(e,t,r)=>`/unc/${t?".dot/":""}${r}`)),e.replace(/\\/g,"/"))}function C(e,t){return e===a?p(t):d(t)}function E(e){if(""!==a.parse(e).dir||""!==c.parse(e).dir)throw new Error(`Invalid filename: "${e}"`);return e}},29486:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getLibzipSync:()=>o,getLibzipPromise:()=>s});const n=["number","number"];let i=null;function o(){var e;return null===i&&(e=r(3368),i={get HEAP8(){return e.HEAP8},get HEAPU8(){return e.HEAPU8},SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:e._malloc(1),uint16S:e._malloc(2),uint32S:e._malloc(4),uint64S:e._malloc(8),malloc:e._malloc,free:e._free,getValue:e.getValue,open:e.cwrap("zip_open","number",["string","number","number"]),openFromSource:e.cwrap("zip_open_from_source","number",["number","number","number"]),close:e.cwrap("zip_close","number",["number"]),discard:e.cwrap("zip_discard",null,["number"]),getError:e.cwrap("zip_get_error","number",["number"]),getName:e.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:e.cwrap("zip_get_num_entries","number",["number","number"]),stat:e.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:e.cwrap("zip_stat_index","number",["number",...n,"number","number"]),fopen:e.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:e.cwrap("zip_fopen_index","number",["number",...n,"number"]),fread:e.cwrap("zip_fread","number",["number","number","number","number"]),fclose:e.cwrap("zip_fclose","number",["number"]),dir:{add:e.cwrap("zip_dir_add","number",["number","string"])},file:{add:e.cwrap("zip_file_add","number",["number","string","number","number"]),getError:e.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:e.cwrap("zip_file_get_external_attributes","number",["number",...n,"number","number","number"]),setExternalAttributes:e.cwrap("zip_file_set_external_attributes","number",["number",...n,"number","number","number"]),setMtime:e.cwrap("zip_file_set_mtime","number",["number",...n,"number","number"]),setCompression:e.cwrap("zip_set_file_compression","number",["number",...n,"number","number"])},ext:{countSymlinks:e.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:e.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:e.cwrap("zip_error_strerror","string",["number"])},name:{locate:e.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:e.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:e.cwrap("zip_source_buffer","number",["number","number",...n,"number"]),free:e.cwrap("zip_source_free",null,["number"]),keep:e.cwrap("zip_source_keep",null,["number"]),open:e.cwrap("zip_source_open","number",["number"]),close:e.cwrap("zip_source_close","number",["number"]),seek:e.cwrap("zip_source_seek","number",["number",...n,"number"]),tell:e.cwrap("zip_source_tell","number",["number"]),read:e.cwrap("zip_source_read","number",["number","number","number"]),error:e.cwrap("zip_source_error","number",["number"]),setMtime:e.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:e.cwrap("zipstruct_stat","number",[]),statS:e.cwrap("zipstruct_statS","number",[]),statName:e.cwrap("zipstruct_stat_name","string",["number"]),statIndex:e.cwrap("zipstruct_stat_index","number",["number"]),statSize:e.cwrap("zipstruct_stat_size","number",["number"]),statMtime:e.cwrap("zipstruct_stat_mtime","number",["number"]),error:e.cwrap("zipstruct_error","number",[]),errorS:e.cwrap("zipstruct_errorS","number",[])}}),i}async function s(){return o()}},55125:(e,t,r)=>{"use strict";r.r(t),r.d(t,{parseShell:()=>i,parseResolution:()=>s,stringifyResolution:()=>A,parseSyml:()=>C,stringifySyml:()=>f});var n=r(92962);function i(e,t={isGlobPattern:()=>!1}){try{return(0,n.parse)(e,t)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}var o=r(98261);function s(e){const t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,o.parse)(e)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function A(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+="@"+e.from.description),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+="@"+e.descriptor.description),t}var a=r(21194),c=r(85443);const u=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,l=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"];class h{constructor(e){this.data=e}}function g(e){return e.match(u)?e:JSON.stringify(e)}function f(e){try{return function e(t,r,n){if(null===t)return"null\n";if("number"==typeof t||"boolean"==typeof t)return t.toString()+"\n";if("string"==typeof t)return g(t)+"\n";if(Array.isArray(t)){if(0===t.length)return"[]\n";const n="  ".repeat(r);return"\n"+t.map(t=>`${n}- ${e(t,r+1,!1)}`).join("")}if("object"==typeof t&&t){let i,o;t instanceof h?(i=t.data,o=!1):(i=t,o=!0);const s="  ".repeat(r),A=Object.keys(i);o&&A.sort((e,t)=>{const r=l.indexOf(e),n=l.indexOf(t);return-1===r&&-1===n?e<t?-1:e>t?1:0:-1!==r&&-1===n?-1:-1===r&&-1!==n?1:r-n});const a=A.filter(e=>void 0!==i[e]).map((t,o)=>{const A=i[t],a=g(t),c=e(A,r+1,!0),u=o>0||n?s:"";return c.startsWith("\n")?`${u}${a}:${c}`:`${u}${a}: ${c}`}).join(0===r?"\n":"")||"\n";return n?"\n"+a:""+a}throw new Error(`Unsupported value type (${t})`)}(e,0,!1)}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}f.PreserveOrdering=h;const p=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function d(e){if(p.test(e))return function(e){return e.endsWith("\n")||(e+="\n"),(0,c.parse)(e)}(e);const t=(0,a.safeLoad)(e,{schema:a.FAILSAFE_SCHEMA});if(null==t)return{};if("object"!=typeof t)throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function C(e){return d(e)}},88563:(e,t,r)=>{"use strict";var n,i;r.d(t,{gY:()=>I,Q$:()=>m,oC:()=>F}),function(e){e.HARD="HARD",e.SOFT="SOFT"}(n||(n={})),function(e){e.DEFAULT="DEFAULT",e.TOP_LEVEL="TOP_LEVEL",e.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",e.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",e.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",e.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",e.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",e.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",e.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",e.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",e.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",e.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"}(i||(i={}));const o={[i.DEFAULT]:{collapsed:!1,next:{"*":i.DEFAULT}},[i.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:i.FALLBACK_EXCLUSION_LIST,packageRegistryData:i.PACKAGE_REGISTRY_DATA,"*":i.DEFAULT}},[i.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{"*":i.FALLBACK_EXCLUSION_ENTRIES}},[i.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{"*":i.FALLBACK_EXCLUSION_DATA}},[i.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{"*":i.DEFAULT}},[i.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_REGISTRY_ENTRIES}},[i.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_STORE_DATA}},[i.PACKAGE_STORE_DATA]:{collapsed:!1,next:{"*":i.PACKAGE_STORE_ENTRIES}},[i.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{"*":i.PACKAGE_INFORMATION_DATA}},[i.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:i.PACKAGE_DEPENDENCIES,"*":i.DEFAULT}},[i.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{"*":i.PACKAGE_DEPENDENCY}},[i.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{"*":i.DEFAULT}}};function s(e,t,r,n){const{next:i}=o[r];return A(t,i[e]||i["*"],n)}function A(e,t,r){const{collapsed:n}=o[t];return Array.isArray(e)?n?function(e,t,r){let n="";n+="[";for(let i=0,o=e.length;i<o;++i)n+=s(String(i),e[i],t,r).replace(/^ +/g,""),i+1<o&&(n+=", ");return n+="]",n}(e,t,r):function(e,t,r){const n=r+"  ";let i="";i+=r,i+="[\n";for(let r=0,o=e.length;r<o;++r)i+=n+s(String(r),e[r],t,n).replace(/^ +/,""),r+1<o&&(i+=","),i+="\n";return i+=r,i+="]",i}(e,t,r):"object"==typeof e&&null!==e?n?function(e,t,r){const n=Object.keys(e);let i="";i+="{";for(let o=0,A=n.length;o<A;++o){const a=n[o],c=e[a];void 0!==c&&(i+=JSON.stringify(a),i+=": ",i+=s(a,c,t,r).replace(/^ +/g,""),o+1<A&&(i+=", "))}return i+="}",i}(e,t,r):function(e,t,r){const n=Object.keys(e),i=r+"  ";let o="";o+=r,o+="{\n";for(let r=0,A=n.length;r<A;++r){const a=n[r],c=e[a];void 0!==c&&(o+=i,o+=JSON.stringify(a),o+=": ",o+=s(a,c,t,i).replace(/^ +/g,""),r+1<A&&(o+=","),o+="\n")}return o+=r,o+="}",o}(e,t,r):JSON.stringify(e)}function a(e){return A(e,i.TOP_LEVEL,"")}function c(e,t){const r=Array.from(e);Array.isArray(t)||(t=[t]);const n=[];for(const e of t)n.push(r.map(t=>e(t)));const i=r.map((e,t)=>t);return i.sort((e,t)=>{for(const r of n){const n=r[e]<r[t]?-1:r[e]>r[t]?1:0;if(0!==n)return n}return 0}),i.map(e=>r[e])}function u(e){const t=new Map,r=c(e.fallbackExclusionList||[],[({name:e,reference:t})=>e,({name:e,reference:t})=>t]);for(const{name:e,reference:n}of r){let r=t.get(e);void 0===r&&t.set(e,r=new Set),r.add(n)}return Array.from(t).map(([e,t])=>[e,Array.from(t)])}function l(e){return c(e.fallbackPool||[],([e])=>e)}function h(e){const t=[];for(const[r,n]of c(e.packageRegistry,([e])=>null===e?"0":"1"+e)){const e=[];t.push([r,e]);for(const[t,{packageLocation:i,packageDependencies:o,packagePeers:s,linkType:A,discardFromLookup:a}]of c(n,([e])=>null===e?"0":"1"+e)){const n=[];null===r||null===t||o.has(r)||n.push([r,t]);for(const[e,t]of c(o.entries(),([e])=>e))n.push([e,t]);const u=s&&s.size>0?Array.from(s):void 0,l=a||void 0;e.push([t,{packageLocation:i,packageDependencies:n,packagePeers:u,linkType:A,discardFromLookup:l}])}}return t}function g(e){return c(e.blacklistedLocations||[],e=>e)}function f(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,fallbackExclusionList:u(e),fallbackPool:l(e),locationBlacklistData:g(e),packageRegistryData:h(e)}}var p=r(20103),d=r.n(p);function C(e,t){return[e?e+"\n":"","/* eslint-disable */\n\n","try {\n","  Object.freeze({}).detectStrictMode = true;\n","} catch (error) {\n","  throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n","}\n","\n","var __non_webpack_module__ = module;\n","\n","function $$SETUP_STATE(hydrateRuntimeState, basePath) {\n",t.replace(/^/gm,"  "),"}\n","\n",d()].join("")}function E(e){return JSON.stringify(e,null,2)}function I(e){const t=function(e){return[`return hydrateRuntimeState(${a(e)}, {basePath: basePath || __dirname});\n`].join("")}(f(e));return C(e.shebang,t)}function m(e){const t=f(e),r=(n=e.dataLocation,["var path = require('path');\n",`var dataLocation = path.resolve(__dirname, ${JSON.stringify(n)});\n`,"return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});\n"].join(""));var n;const i=C(e.shebang,r);return{dataFile:E(t),loaderFile:i}}var y=r(35747),w=(r(85622),r(31669)),B=r(46009);function Q(e,{basePath:t}){const r=B.cS.toPortablePath(t),n=null!==e.ignorePatternData?new RegExp(e.ignorePatternData):null,i=new Map(e.packageRegistryData.map(([e,t])=>[e,new Map(t.map(([e,t])=>[e,{packageLocation:B.y1.resolve(r,t.packageLocation),packageDependencies:new Map(t.packageDependencies),packagePeers:new Set(t.packagePeers),linkType:t.linkType,discardFromLookup:t.discardFromLookup||!1}]))])),o=new Map,s=new Set;for(const[t,r]of e.packageRegistryData)for(const[e,n]of r){if(null===t!=(null===e))throw new Error("Assertion failed: The name and reference should be null, or neither should");if(n.discardFromLookup)continue;const r={name:t,reference:e};o.set(n.packageLocation,r),s.add(n.packageLocation.length)}for(const t of e.locationBlacklistData)o.set(t,null);const A=new Map(e.fallbackExclusionList.map(([e,t])=>[e,new Set(t)])),a=new Map(e.fallbackPool),c=e.dependencyTreeRoots,u=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:A,fallbackPool:a,ignorePattern:n,packageLocationLengths:[...s].sort((e,t)=>t-e),packageLocatorsByLocations:o,packageRegistry:i}}var v,D=r(17674),b=r(32282);!function(e){e.API_ERROR="API_ERROR",e.BLACKLISTED="BLACKLISTED",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED"}(v||(v={}));const S=new Set([v.BLACKLISTED,v.BUILTIN_NODE_RESOLUTION_FAILED,v.MISSING_DEPENDENCY,v.MISSING_PEER_DEPENDENCY,v.QUALIFIED_PATH_RESOLUTION_FAILED,v.UNDECLARED_DEPENDENCY]);function k(e,t,r={}){const n=S.has(e)?"MODULE_NOT_FOUND":e,i={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...i,value:n},pnpCode:{...i,value:e},data:{...i,value:r}})}function x(e,t){const r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),i=new Set(b.Module.builtinModules||Object.keys(process.binding("natives"))),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^\.{0,2}\//,A=/\/$/,a=[],c=new Set;if(!1!==t.compatibilityMode)for(const t of["react-scripts","gatsby"]){const r=e.packageRegistry.get(t);if(r)for(const e of r.keys()){if(null===e)throw new Error("Assertion failed: This reference shouldn't be null");a.push({name:t,reference:e})}}const{ignorePattern:u,packageRegistry:l,packageLocatorsByLocations:h,packageLocationLengths:g}=e;function f(e,t){return{fn:e,args:t,error:null,result:null}}function p(e,r){if(!1===t.allowDebug)return r;if(Number.isFinite(n)){if(n>=2)return(...t)=>{const n=f(e,t);try{return n.result=r(...t)}catch(e){throw n.error=e}finally{console.trace(n)}};if(n>=1)return(...t)=>{try{return r(...t)}catch(r){const n=f(e,t);throw n.error=r,console.trace(n),r}}}return r}function d(e){const t=I(e);if(!t)throw k(v.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return t}function C(t){if(null===t.name)return!0;for(const r of e.dependencyTreeRoots)if(r.name===t.name&&r.reference===t.reference)return!0;return!1}function E(e,t){return t.endsWith("/")&&(t=B.y1.join(t,"internal.js")),b.Module._resolveFilename(e,function(e){const t=new b.Module(e,null);return t.filename=e,t.paths=b.Module._nodeModulePaths(e),t}(B.cS.fromPortablePath(t)),!1,{plugnplay:!1})}function I({name:e,reference:t}){const r=l.get(e);if(!r)return null;const n=r.get(t);return n||null}function m(e,t){const r=new Map,n=new Set,i=t=>{const o=JSON.stringify(t.name);if(n.has(o))return;n.add(o);const s=function({name:e,reference:t}){const r=[];for(const[n,i]of l)if(null!==n)for(const[o,s]of i){if(null===o)continue;s.packageDependencies.get(e)===t&&(n===e&&o===t||r.push({name:n,reference:o}))}return r}(t);for(const t of s){if(d(t).packagePeers.has(e))i(t);else{let e=r.get(t.name);void 0===e&&r.set(t.name,e=new Set),e.add(t.reference)}}};i(t);const o=[];for(const e of[...r.keys()].sort())for(const t of[...r.get(e)].sort())o.push({name:e,reference:t});return o}function y(t){let r=(n=B.y1.relative(e.basePath,t),B.cS.toPortablePath(n));var n;r.match(s)||(r="./"+r),t.match(A)&&!r.endsWith("/")&&(r+="/");let i=0;for(;i<g.length&&g[i]>r.length;)i+=1;for(let e=i;e<g.length;++e){const n=h.get(r.substr(0,g[e]));if(void 0!==n){if(null===n)throw k(v.BLACKLISTED,"A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: "+t,{location:t});return n}}return null}function w(n,s,{considerBuiltins:l=!0}={}){if("pnpapi"===n)return B.cS.toPortablePath(t.pnpapiResolution);if(l&&i.has(n))return null;if(s&&function(t){if(null===u)return!1;const r=B.y1.contains(e.basePath,t);return null!==r&&!!u.test(r.replace(/\/$/,""))}(s)&&(!B.y1.isAbsolute(n)||null===y(n))){const e=E(n,s);if(!1===e)throw k(v.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${n}"\nRequired by: ${s}\n`,{request:n,issuer:s});return B.cS.toPortablePath(e)}let h;const g=n.match(o);if(g){if(!s)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});const[,t,i]=g,o=y(s);if(!o){const e=E(n,s);if(!1===e)throw k(v.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: "${n}"\nRequired by: ${s}\n`,{request:n,issuer:s});return B.cS.toPortablePath(e)}let A=d(o).packageDependencies.get(t),u=null;if(null==A&&null!==o.name){const n=e.fallbackExclusionList.get(o.name);if(!n||!n.has(o.reference)){for(let e=0,n=a.length;e<n;++e){const n=d(a[e]).packageDependencies.get(t);if(null!=n){r?u=n:A=n;break}}if(e.enableTopLevelFallback&&null==A&&null===u){const r=e.fallbackPool.get(t);null!=r&&(u=r)}}}let l=null;if(null===A)if(C(o))l=k(v.MISSING_PEER_DEPENDENCY,`Your application tried to access ${t} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t});else{const e=m(t,o);l=e.every(e=>C(e))?k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e}):k(v.MISSING_PEER_DEPENDENCY,`${o.name} tried to access ${t} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n${e.map(e=>`Ancestor breaking the chain: ${e.name}@${e.reference}\n`).join("")}\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t,brokenAncestors:e})}else void 0===A&&(l=C(o)?k(v.UNDECLARED_DEPENDENCY,`Your application tried to access ${t}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${s}\n`,{request:n,issuer:s,dependencyName:t}):k(v.UNDECLARED_DEPENDENCY,`${o.name} tried to access ${t}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${t} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,issuerLocator:Object.assign({},o),dependencyName:t}));if(null==A){if(null===u||null===l)throw l||new Error("Assertion failed: Expected an error to have been set");A=u;const e=l.message.replace(/\n.*/g,"");l.message=e,c.has(e)||(c.add(e),process.emitWarning(l))}const f=Array.isArray(A)?{name:A[0],reference:A[1]}:{name:t,reference:A},p=d(f);if(!p.packageLocation)throw k(v.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${f.name}@${f.reference} (via "${n}")\nRequired by: ${o.name}@${o.reference} (via ${s})\n`,{request:n,issuer:s,dependencyLocator:Object.assign({},f)});const I=B.y1.resolve(e.basePath,p.packageLocation);h=i?B.y1.resolve(I,i):I}else{if(B.y1.isAbsolute(n))h=B.y1.normalize(n);else{if(!s)throw k(v.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:n,issuer:s});const e=B.y1.resolve(s);h=s.match(A)?B.y1.normalize(B.y1.join(e,n)):B.y1.normalize(B.y1.join(B.y1.dirname(e),n))}y(h)}return B.y1.normalize(h)}function Q(e,{extensions:r=Object.keys(b.Module._extensions)}={}){const n=[],i=function e(r,n,{extensions:i}){let o;try{n.push(r),o=t.fakeFs.statSync(r)}catch(e){}if(o&&!o.isDirectory())return t.fakeFs.realpathSync(r);if(o&&o.isDirectory()){let o,s;try{o=JSON.parse(t.fakeFs.readFileSync(B.y1.join(r,"package.json"),"utf8"))}catch(e){}if(o&&o.main&&(s=B.y1.resolve(r,o.main)),s&&s!==r){const t=e(s,n,{extensions:i});if(null!==t)return t}}for(let e=0,o=i.length;e<o;e++){const o=`${r}${i[e]}`;if(n.push(o),t.fakeFs.existsSync(o))return o}if(o&&o.isDirectory())for(let e=0,o=i.length;e<o;e++){const o=B.y1.format({dir:r,name:"index",ext:i[e]});if(n.push(o),t.fakeFs.existsSync(o))return o}return null}(e,n,{extensions:r});if(i)return B.y1.normalize(i);throw k(v.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${e}\n${n.map(e=>`Rejected candidate: ${e}\n`).join("")}`,{unqualifiedPath:e})}return{VERSIONS:{std:3,resolveVirtual:1},topLevel:{name:null,reference:null},getLocator:(e,t)=>Array.isArray(t)?{name:t[0],reference:t[1]}:{name:e,reference:t},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getPackageInformation:e=>{const t=I(e);if(null===t)return null;const r=B.cS.fromPortablePath(t.packageLocation);return{...t,packageLocation:r}},findPackageLocator:e=>y(B.cS.toPortablePath(e)),resolveToUnqualified:p("resolveToUnqualified",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=w(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveUnqualified:p("resolveUnqualified",(e,t)=>B.cS.fromPortablePath(Q(B.cS.toPortablePath(e),t))),resolveRequest:p("resolveRequest",(e,t,r)=>{const n=null!==t?B.cS.toPortablePath(t):null,i=function(e,t,{considerBuiltins:r,extensions:n}={}){const i=w(e,t,{considerBuiltins:r});if(null===i)return null;try{return Q(i,{extensions:n})}catch(r){throw"QUALIFIED_PATH_RESOLUTION_FAILED"===r.pnpCode&&Object.assign(r.data,{request:e,issuer:t}),r}}(B.cS.toPortablePath(e),n,r);return null===i?null:B.cS.fromPortablePath(i)}),resolveVirtual:p("resolveVirtual",e=>{const t=function(e){const t=B.y1.normalize(e),r=D.p.resolveVirtual(t);return r!==t?r:null}(B.cS.toPortablePath(e));return null!==t?B.cS.fromPortablePath(t):null})}}(0,w.promisify)(y.readFile);const F=(e,t,r)=>x(Q(f(e),{basePath:t}),{fakeFs:r,pnpapiResolution:B.cS.join(t,".pnp.js")})},43982:(e,t,r)=>{"use strict";r.r(t),r.d(t,{execute:()=>F});var n,i=r(46009),o=r(56537),s=r(39725),A=r(55125),a=r(19347),c=r.n(a),u=r(92413),l=r(67566),h=r.n(l);function g(){}!function(e){e[e.STDOUT=1]="STDOUT",e[e.STDERR=2]="STDERR"}(n||(n={}));let f=0;class p{constructor(e){this.stream=e}close(){}get(){return this.stream}}class d{constructor(){this.stream=null}close(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(null===this.stream)throw new Error("Assertion failed: No stream attached");return this.stream}}class C{constructor(e,t){this.stdin=null,this.stdout=null,this.stderr=null,this.pipe=null,this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:r,stderr:n}){const i=new C(null,e);return i.stdin=t,i.stdout=r,i.stderr=n,i}pipeTo(e,t=n.STDOUT){const r=new C(this,e),i=new d;return r.pipe=i,r.stdout=this.stdout,r.stderr=this.stderr,(t&n.STDOUT)===n.STDOUT?this.stdout=i:null!==this.ancestor&&(this.stderr=this.ancestor.stdout),(t&n.STDERR)===n.STDERR?this.stderr=i:null!==this.ancestor&&(this.stderr=this.ancestor.stderr),r}async exec(){const e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(null===this.stdin)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t,r;if(null===this.stdout)throw new Error("Assertion failed: No output stream registered");if(t=this.stdout,e[1]=t.get(),null===this.stderr)throw new Error("Assertion failed: No error stream registered");r=this.stderr,e[2]=r.get();const n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(e=>(t.close(),r.close(),e))}async run(){const e=[];for(let t=this;t;t=t.ancestor)e.push(t.exec());return(await Promise.all(e))[0]}}function E(e,t){return C.start(e,t)}function I(e,t={}){const r={...e,...t};return r.environment={...e.environment,...t.environment},r.variables={...e.variables,...t.variables},r}const m=new Map([["cd",async([e,...t],r,n)=>{const s=i.y1.resolve(n.cwd,i.cS.toPortablePath(e));return(await o.xfs.statPromise(s)).isDirectory()?(n.cwd=s,0):(n.stderr.write("cd: not a directory\n"),1)}],["pwd",async(e,t,r)=>(r.stdout.write(i.cS.fromPortablePath(r.cwd)+"\n"),0)],["true",async(e,t,r)=>0],["false",async(e,t,r)=>1],["exit",async([e,...t],r,n)=>n.exitCode=parseInt(e,10)],["echo",async(e,t,r)=>(r.stdout.write(e.join(" ")+"\n"),0)],["__ysh_run_procedure",async(e,t,r)=>{const n=r.procedures[e[0]];return await E(n,{stdin:new p(r.stdin),stdout:new p(r.stdout),stderr:new p(r.stderr)}).run()}],["__ysh_set_redirects",async(e,t,r)=>{let n=r.stdin,s=r.stdout;const A=r.stderr,a=[],c=[];let l=0;for(;"--"!==e[l];){const t=e[l++],n=Number(e[l++]),s=l+n;for(let n=l;n<s;++l,++n)switch(t){case"<":a.push(()=>o.xfs.createReadStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case"<<<":a.push(()=>{const t=new u.PassThrough;return process.nextTick(()=>{t.write(e[n]+"\n"),t.end()}),t});break;case">":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n]))));break;case">>":c.push(o.xfs.createWriteStream(i.y1.resolve(r.cwd,i.cS.toPortablePath(e[n])),{flags:"a"}))}}if(a.length>0){const e=new u.PassThrough;n=e;const t=r=>{if(r===a.length)e.end();else{const n=a[r]();n.pipe(e,{end:!1}),n.on("end",()=>{t(r+1)})}};t(0)}if(c.length>0){const e=new u.PassThrough;s=e;for(const t of c)e.pipe(t)}const h=await E(Q(e.slice(l+1),t,r),{stdin:new p(n),stdout:new p(s),stderr:new p(A)}).run();return await Promise.all(c.map(e=>new Promise(t=>{e.on("close",()=>{t()}),e.end()}))),h}]]);async function y(e,t,r){const n=[],i=new u.PassThrough;return i.on("data",e=>n.push(e)),await S(e,t,I(r,{stdout:i})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function w(e,t,r){const n=e.map(async e=>{const n=await B(e.args,t,r);return{name:e.name,value:n.join(" ")}});return(await Promise.all(n)).reduce((e,t)=>(e[t.name]=t.value,e),{})}async function B(e,t,r){const n=new Map,i=[];let o=[];const s=e=>e.match(/[^ \r\n\t]+/g)||[],A=e=>{o.push(e)},a=()=>{o.length>0&&i.push(o.join("")),o=[]},c=e=>{A(e),a()},u=(e,t)=>{let r=n.get(e);void 0===r&&n.set(e,r=[]),r.push(t)};for(const n of e){switch(n.type){case"redirection":{const e=await B(n.args,t,r);for(const t of e)u(n.subtype,t)}break;case"argument":for(const e of n.segments)switch(e.type){case"text":A(e.text);break;case"glob":{const n=await t.glob.match(e.pattern,{cwd:r.cwd});if(!n.length)throw new Error(`No file matches found: "${e.pattern}". Note: Glob patterns currently only support files that exist on the filesystem (Help Wanted)`);for(const e of n.sort())c(e)}break;case"shell":{const n=await y(e.shell,t,r);if(e.quoted)A(n);else{const e=s(n);for(let t=0;t<e.length-1;++t)c(e[t]);A(e[e.length-1])}}break;case"variable":switch(e.name){case"#":A(String(t.args.length));break;case"@":if(e.quoted)for(const e of t.args)c(e);else for(const e of t.args){const t=s(e);for(let e=0;e<t.length-1;++e)c(t[e]);A(t[t.length-1])}break;case"*":{const r=t.args.join(" ");if(e.quoted)A(r);else for(const e of s(r))c(e)}break;default:{const n=parseInt(e.name,10);if(Number.isFinite(n)){if(!(n>=0&&n<t.args.length))throw new Error("Unbound argument #"+n);A(t.args[n])}else if(Object.prototype.hasOwnProperty.call(r.variables,e.name))A(r.variables[e.name]);else if(Object.prototype.hasOwnProperty.call(r.environment,e.name))A(r.environment[e.name]);else{if(!e.defaultValue)throw new Error(`Unbound variable "${e.name}"`);A((await B(e.defaultValue,t,r)).join(" "))}}}}}a()}if(n.size>0){const e=[];for(const[t,r]of n.entries())e.splice(e.length,0,t,String(r.length),...r);i.splice(0,0,"__ysh_set_redirects",...e,"--")}return i}function Q(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);const n=i.cS.fromPortablePath(r.cwd);let o=r.environment;void 0!==o.PWD&&(o={...o,PWD:n});const[s,...A]=e;if("command"===s)return function(e,t,r,n){return r=>{const i=r[0]instanceof u.Transform?"pipe":r[0],o=r[1]instanceof u.Transform?"pipe":r[1],s=r[2]instanceof u.Transform?"pipe":r[2],A=h()(e,t,{...n,stdio:[i,o,s]});return 0==f++&&process.on("SIGINT",g),r[0]instanceof u.Transform&&r[0].pipe(A.stdin),r[1]instanceof u.Transform&&A.stdout.pipe(r[1],{end:!1}),r[2]instanceof u.Transform&&A.stderr.pipe(r[2],{end:!1}),{stdin:A.stdin,promise:new Promise(t=>{A.on("error",n=>{switch(0==--f&&process.off("SIGINT",g),n.code){case"ENOENT":r[2].write(`command not found: ${e}\n`),t(127);break;case"EACCESS":r[2].write(`permission denied: ${e}\n`),t(128);break;default:r[2].write(`uncaught error: ${n.message}\n`),t(1)}}),A.on("exit",e=>{0==--f&&process.off("SIGINT",g),t(null!==e?e:129)})})}}}(A[0],A.slice(1),0,{cwd:n,env:o});const a=t.builtins.get(s);if(void 0===a)throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return function(e){return t=>{const r="pipe"===t[0]?new u.PassThrough:t[0];return{stdin:r,promise:Promise.resolve().then(()=>e({stdin:r,stdout:t[1],stderr:t[2]}))}}}(async({stdin:e,stdout:n,stderr:i})=>(r.stdin=e,r.stdout=n,r.stderr=i,await a(A,t,r)))}function v(e,t,r){return n=>{const i=new u.PassThrough;return{stdin:i,promise:S(e,t,I(r,{stdin:i}))}}}async function D(e,t,r){let n=e,i=null,o=null;for(;n;){const e=n.then?{...r}:r;let s;switch(n.type){case"command":{const i=await B(n.args,t,r),o=await w(n.envs,t,r);s=n.envs.length?Q(i,t,I(e,{environment:o})):Q(i,t,e)}break;case"subshell":{const i=await B(n.args,t,r),o=v(n.subshell,t,e);if(0===i.length)s=o;else{let r;do{r=String(Math.random())}while(Object.prototype.hasOwnProperty.call(e.procedures,r));e.procedures={...e.procedures},e.procedures[r]=o,s=Q([...i,"__ysh_run_procedure",r],t,e)}}break;case"envs":{const i=await w(n.envs,t,r);e.environment={...e.environment,...i},s=Q(["true"],t,e)}}if(void 0===s)throw new Error("Assertion failed: An action should have been generated");if(null===i)o=E(s,{stdin:new p(e.stdin),stdout:new p(e.stdout),stderr:new p(e.stderr)});else{if(null===o)throw new Error("The execution pipeline should have been setup");switch(i){case"|":case"|&":o=o.pipeTo(s)}}n.then?(i=n.then.type,n=n.then.chain):n=null}if(null===o)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function b(e,t,r){if(!e.then)return await D(e.chain,t,r);const n=await D(e.chain,t,r);if(null!==r.exitCode)return r.exitCode;switch(r.variables["?"]=String(n),e.then.type){case"&&":return 0===n?await b(e.then.line,t,r):n;case"||":return 0!==n?await b(e.then.line,t,r):n;default:throw new Error(`Unsupported command type: "${e.then.type}"`)}}async function S(e,t,r){let n=0;for(const i of e){if(n=await b(i,t,r),null!==r.exitCode)return r.exitCode;r.variables["?"]=String(n)}return n}function k(e){switch(e.type){case"redirection":return e.args.some(e=>k(e));case"argument":return e.segments.some(e=>function(e){switch(e.type){case"variable":return"@"===e.name||"#"===e.name||"*"===e.name||Number.isFinite(parseInt(e.name,10))||!!e.defaultValue&&e.defaultValue.some(e=>k(e));case"shell":return x(e.shell);default:return!1}}(e));default:throw new Error("Unreacheable")}}function x(e){return e.some(e=>{for(;e;){let t=e.chain;for(;t;){let e;switch(t.type){case"subshell":e=x(t.subshell);break;case"command":e=t.envs.some(e=>e.args.some(e=>k(e)))||t.args.some(e=>k(e))}if(e)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function F(e,t=[],{builtins:r={},cwd:n=i.cS.toPortablePath(process.cwd()),env:a=process.env,stdin:l=process.stdin,stdout:h=process.stdout,stderr:g=process.stderr,variables:f={},glob:p={isGlobPattern:c().isDynamicPattern,match:(e,{cwd:t,fs:r=o.xfs})=>c()(e,{cwd:i.cS.fromPortablePath(t),fs:new s.i(r)})}}={}){const d={};for(const[e,t]of Object.entries(a))void 0!==t&&(d[e]=t);const C=new Map(m);for(const[e,t]of Object.entries(r))C.set(e,t);null===l&&(l=new u.PassThrough).end();const E=(0,A.parseShell)(e,p);if(!x(E)&&E.length>0&&t.length>0){let e=E[E.length-1];for(;e.then;)e=e.then.line;let r=e.chain;for(;r.then;)r=r.then.chain;"command"===r.type&&(r.args=r.args.concat(t.map(e=>({type:"argument",segments:[{type:"text",text:e}]}))))}return await S(E,{args:t,builtins:C,initialStdin:l,initialStdout:h,initialStderr:g,glob:p},{cwd:n,environment:d,exitCode:null,procedures:{},stdin:l,stdout:h,stderr:g,variables:Object.assign(Object.create(f),{"?":0})})}},45330:(e,t,r)=>{t.e=()=>({modules:new Map([[r(60306).name,r(95397)],[r(73841).u2,r(84132)],[r(4670).u2,r(56537)],[r(81386).u2,r(29486)],[r(54920).u2,r(55125)],[r(75418).u2,r(43982)],[r(75426).u2,r(17278)],[r(89153).u2,r(53887)],[r(38422).u2,r(15966)],[r(37904).u2,r(72926)],[r(49775).u2,r(80150)],[r(35729).u2,r(10420)],[r(17508).u2,r(41466)],[r(84779).u2,r(10284)],[r(88454).u2,r(23599)],[r(91953).u2,r(21754)],[r(63756).u2,r(74230)],[r(23100).u2,r(86161)],[r(47047).u2,r(8149)],[r(67310).u2,r(86717)],[r(31880).u2,r(94573)],[r(74617).u2,r(5973)],[r(12437).u2,r(5698)],[r(8211).u2,r(5780)]]),plugins:new Set([r(37904).u2,r(49775).u2,r(35729).u2,r(17508).u2,r(84779).u2,r(88454).u2,r(91953).u2,r(63756).u2,r(23100).u2,r(47047).u2,r(67310).u2,r(31880).u2,r(74617).u2,r(12437).u2,r(8211).u2])})},29148:(e,t,r)=>{const n=r(74988),i=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,o=new n;e.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");const n=r-t;let s="",A=0,a=0;for(;e.length>0;){const r=e.match(i)||[e,e,void 0];let c=o.splitGraphemes(r[1]);const u=Math.min(t-A,c.length);c=c.slice(u);const l=Math.min(n-a,c.length);s+=c.slice(0,l).join(""),A+=u,a+=l,void 0!==r[2]&&(s+=r[2]),e=e.slice(r[0].length)}return s}},72912:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.apply(this,arguments)}e.exports=t},60087:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},19228:(e,t,r)=>{var n=r(54694);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var A=o?Object.getOwnPropertyDescriptor(e,s):null;A&&(A.get||A.set)?Object.defineProperty(r,s,A):r[s]=e[s]}return r.default=e,t&&t.set(e,r),r}},74943:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},62407:e=>{e.exports=function(e,t){return t||(t=e.slice(0)),e.raw=t,e}},54694:e=>{function t(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(r)}e.exports=t},96117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},79774:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=process.versions.node.split("."),n=parseInt(r[0],10),i=parseInt(r[1],10),o=n>10,s=10===n&&i>=10;t.IS_SUPPORT_READDIR_WITH_FILE_TYPES=o||s},85670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31020),i=r(35516),o=r(38844);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.scandir=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.scandirSync=function(e,t){const r=s(t);return i.read(e,r)}},31020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(69078),o=r(79774),s=r(65225);function A(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,o)=>{if(null!==n)return c(r,n);const A=o.map(r=>({dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`}));if(!t.followSymbolicLinks)return u(r,A);const a=A.map(e=>function(e,t){return r=>{if(!e.dirent.isSymbolicLink())return r(null,e);t.fs.stat(e.path,(n,i)=>null!==n?t.throwErrorOnBrokenSymbolicLink?r(n):r(null,e):(e.dirent=s.fs.createDirentFromStats(e.name,i),r(null,e)))}}(e,t));i(a,(e,t)=>{if(null!==e)return c(r,e);u(r,t)})})}function a(e,t,r){t.fs.readdir(e,(o,A)=>{if(null!==o)return c(r,o);const a=A.map(r=>`${e}${t.pathSegmentSeparator}${r}`),l=a.map(e=>r=>n.stat(e,t.fsStatSettings,r));i(l,(e,n)=>{if(null!==e)return c(r,e);const i=[];A.forEach((e,r)=>{const o=n[r],A={name:e,path:a[r],dirent:s.fs.createDirentFromStats(e,o)};t.stats&&(A.stats=o),i.push(A)}),u(r,i)})})}function c(e,t){e(t)}function u(e,t){e(null,t)}t.read=function(e,t,r){return!t.stats&&o.IS_SUPPORT_READDIR_WITH_FILE_TYPES?A(e,t,r):a(e,t,r)},t.readdirWithFileTypes=A,t.readdir=a},35516:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(79774),o=r(65225);function s(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(r=>{const n={dirent:r,name:r.name,path:`${e}${t.pathSegmentSeparator}${r.name}`};if(n.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{const e=t.fs.statSync(n.path);n.dirent=o.fs.createDirentFromStats(n.name,e)}catch(e){if(t.throwErrorOnBrokenSymbolicLink)throw e}return n})}function A(e,t){return t.fs.readdirSync(e).map(r=>{const i=`${e}${t.pathSegmentSeparator}${r}`,s=n.statSync(i,t.fsStatSettings),A={name:r,path:i,dirent:o.fs.createDirentFromStats(r,s)};return t.stats&&(A.stats=s),A})}t.read=function(e,t){return!t.stats&&i.IS_SUPPORT_READDIR_WITH_FILE_TYPES?s(e,t):A(e,t)},t.readdirWithFileTypes=s,t.readdir=A},38844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(96117);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=o.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new i.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},72156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},65225:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(72156);t.fs=n},71208:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747);t.FILE_SYSTEM_ADAPTER={lstat:n.lstat,stat:n.stat,lstatSync:n.lstatSync,statSync:n.statSync},t.createFileSystemAdapter=function(e){return void 0===e?t.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},t.FILE_SYSTEM_ADAPTER),e)}},53403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(17790),i=r(34846),o=r(92687);function s(e={}){return e instanceof o.default?e:new o.default(e)}t.Settings=o.default,t.stat=function(e,t,r){if("function"==typeof t)return n.read(e,s(),t);n.read(e,s(t),r)},t.statSync=function(e,t){const r=s(t);return i.read(e,r)}},17790:(e,t)=>{"use strict";function r(e,t){e(t)}function n(e,t){e(null,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t,i){t.fs.lstat(e,(o,s)=>null!==o?r(i,o):s.isSymbolicLink()&&t.followSymbolicLink?void t.fs.stat(e,(e,o)=>{if(null!==e)return t.throwErrorOnBrokenSymbolicLink?r(i,e):n(i,s);t.markSymbolicLink&&(o.isSymbolicLink=()=>!0),n(i,o)}):n(i,s))}},34846:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.read=function(e,t){const r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{const r=t.fs.statSync(e);return t.markSymbolicLink&&(r.isSymbolicLink=()=>!0),r}catch(e){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw e}}},92687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(71208);t.default=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=n.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return void 0===e?t:e}}},72897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(42369),i=r(27696),o=r(22111),s=r(14954);function A(e={}){return e instanceof s.default?e:new s.default(e)}t.Settings=s.default,t.walk=function(e,t,r){if("function"==typeof t)return new n.default(e,A()).read(t);new n.default(e,A(t)).read(r)},t.walkSync=function(e,t){const r=A(t);return new o.default(e,r).read()},t.walkStream=function(e,t){const r=A(t);return new i.default(e,r).read()}},42369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{!function(e,t){e(t)}(e,t)}),this._reader.onEntry(e=>{this._storage.add(e)}),this._reader.onEnd(()=>{!function(e,t){e(null,t)}(e,[...this._storage])}),this._reader.read()}}},27696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(98566);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new i.default(this._root,this._settings),this._stream=new n.Readable({objectMode:!0,read:()=>{},destroy:this._reader.destroy.bind(this._reader)})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}}},22111:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97835);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new n.default(this._root,this._settings)}read(){return this._reader.read()}}},98566:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(85670),o=r(98360),s=r(10750),A=r(75504);class a extends A.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=i.scandir,this._emitter=new n.EventEmitter,this._queue=o(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){const r={directory:e,base:t};this._queue.push(r,e=>{null!==e&&this._handleError(e)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(r,n)=>{if(null!==r)return t(r,void 0);for(const t of n)this._handleEntry(t,e.base);t(null,void 0)})}_handleError(e){s.isFatalError(this._settings,e)&&(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;const r=e.path;void 0!==t&&(e.path=s.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),s.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&s.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}}t.default=a},10750:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFatalError=function(e,t){return null===e.errorFilter||!e.errorFilter(t)},t.isAppliedFilter=function(e,t){return null===e||e(t)},t.replacePathSegmentSeparator=function(e,t){return e.split(/[\\/]/).join(t)},t.joinPathSegments=function(e,t,r){return""===e?t:e+r+t}},75504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(10750);t.default=class{constructor(e,t){this._root=e,this._settings=t,this._root=n.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}}},97835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85670),i=r(10750),o=r(75504);class s extends o.default{constructor(){super(...arguments),this._scandir=n.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(const e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{const r=this._scandir(e,this._settings.fsScandirSettings);for(const e of r)this._handleEntry(e,t)}catch(e){this._handleError(e)}}_handleError(e){if(i.isFatalError(this._settings,e))throw e}_handleEntry(e,t){const r=e.path;void 0!==t&&(e.path=i.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),i.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&i.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(r,e.path)}_pushToStorage(e){this._storage.add(e)}}t.default=s},14954:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(85670);t.default=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,1/0),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,n.sep),this.fsScandirSettings=new i.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return void 0===e?t:e}}},8189:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const{toString:r}=Object.prototype,n=e=>t=>typeof t===e,i=e=>{const t=r.call(e).slice(8,-1);if(t)return t},o=e=>t=>i(t)===e;function s(e){switch(e){case null:return"null";case!0:case!1:return"boolean"}switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"bigint":return"bigint";case"symbol":return"symbol"}if(s.function_(e))return"Function";if(s.observable(e))return"Observable";if(s.array(e))return"Array";if(s.buffer(e))return"Buffer";const t=i(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}s.undefined=n("undefined"),s.string=n("string");const A=n("number");s.number=e=>A(e)&&!s.nan(e),s.bigint=n("bigint"),s.function_=n("function"),s.null_=e=>null===e,s.class_=e=>s.function_(e)&&e.toString().startsWith("class "),s.boolean=e=>!0===e||!1===e,s.symbol=n("symbol"),s.numericString=e=>s.string(e)&&!s.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e)),s.array=Array.isArray,s.buffer=e=>{var t,r,n,i;return null!==(i=null===(n=null===(r=null===(t=e)||void 0===t?void 0:t.constructor)||void 0===r?void 0:r.isBuffer)||void 0===n?void 0:n.call(r,e))&&void 0!==i&&i},s.nullOrUndefined=e=>s.null_(e)||s.undefined(e),s.object=e=>!s.null_(e)&&("object"==typeof e||s.function_(e)),s.iterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.iterator])},s.asyncIterable=e=>{var t;return s.function_(null===(t=e)||void 0===t?void 0:t[Symbol.asyncIterator])},s.generator=e=>s.iterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.asyncGenerator=e=>s.asyncIterable(e)&&s.function_(e.next)&&s.function_(e.throw),s.nativePromise=e=>o("Promise")(e);s.promise=e=>s.nativePromise(e)||(e=>{var t,r;return s.function_(null===(t=e)||void 0===t?void 0:t.then)&&s.function_(null===(r=e)||void 0===r?void 0:r.catch)})(e),s.generatorFunction=o("GeneratorFunction"),s.asyncGeneratorFunction=e=>"AsyncGeneratorFunction"===i(e),s.asyncFunction=e=>"AsyncFunction"===i(e),s.boundFunction=e=>s.function_(e)&&!e.hasOwnProperty("prototype"),s.regExp=o("RegExp"),s.date=o("Date"),s.error=o("Error"),s.map=e=>o("Map")(e),s.set=e=>o("Set")(e),s.weakMap=e=>o("WeakMap")(e),s.weakSet=e=>o("WeakSet")(e),s.int8Array=o("Int8Array"),s.uint8Array=o("Uint8Array"),s.uint8ClampedArray=o("Uint8ClampedArray"),s.int16Array=o("Int16Array"),s.uint16Array=o("Uint16Array"),s.int32Array=o("Int32Array"),s.uint32Array=o("Uint32Array"),s.float32Array=o("Float32Array"),s.float64Array=o("Float64Array"),s.bigInt64Array=o("BigInt64Array"),s.bigUint64Array=o("BigUint64Array"),s.arrayBuffer=o("ArrayBuffer"),s.sharedArrayBuffer=o("SharedArrayBuffer"),s.dataView=o("DataView"),s.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype,s.urlInstance=e=>o("URL")(e),s.urlString=e=>{if(!s.string(e))return!1;try{return new URL(e),!0}catch(e){return!1}},s.truthy=e=>Boolean(e),s.falsy=e=>!e,s.nan=e=>Number.isNaN(e);const a=new Set(["undefined","string","number","bigint","boolean","symbol"]);s.primitive=e=>s.null_(e)||a.has(typeof e),s.integer=e=>Number.isInteger(e),s.safeInteger=e=>Number.isSafeInteger(e),s.plainObject=e=>{if("Object"!==i(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.getPrototypeOf({})};const c=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"]);s.typedArray=e=>{const t=i(e);return void 0!==t&&c.has(t)};s.arrayLike=e=>!s.nullOrUndefined(e)&&!s.function_(e)&&(e=>s.safeInteger(e)&&e>=0)(e.length),s.inRange=(e,t)=>{if(s.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(s.array(t)&&2===t.length)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError("Invalid range: "+JSON.stringify(t))};const u=["innerHTML","ownerDocument","style","attributes","nodeValue"];s.domElement=e=>s.object(e)&&1===e.nodeType&&s.string(e.nodeName)&&!s.plainObject(e)&&u.every(t=>t in e),s.observable=e=>{var t,r,n,i;return!!e&&(e===(null===(r=(t=e)[Symbol.observable])||void 0===r?void 0:r.call(t))||e===(null===(i=(n=e)["@@observable"])||void 0===i?void 0:i.call(n)))},s.nodeStream=e=>s.object(e)&&s.function_(e.pipe)&&!s.observable(e),s.infinite=e=>e===1/0||e===-1/0;const l=e=>t=>s.integer(t)&&Math.abs(t%2)===e;s.evenInteger=l(0),s.oddInteger=l(1),s.emptyArray=e=>s.array(e)&&0===e.length,s.nonEmptyArray=e=>s.array(e)&&e.length>0,s.emptyString=e=>s.string(e)&&0===e.length,s.nonEmptyString=e=>s.string(e)&&e.length>0;s.emptyStringOrWhitespace=e=>s.emptyString(e)||(e=>s.string(e)&&!/\S/.test(e))(e),s.emptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&0===Object.keys(e).length,s.nonEmptyObject=e=>s.object(e)&&!s.map(e)&&!s.set(e)&&Object.keys(e).length>0,s.emptySet=e=>s.set(e)&&0===e.size,s.nonEmptySet=e=>s.set(e)&&e.size>0,s.emptyMap=e=>s.map(e)&&0===e.size,s.nonEmptyMap=e=>s.map(e)&&e.size>0;const h=(e,t,r)=>{if(!s.function_(t))throw new TypeError("Invalid predicate: "+JSON.stringify(t));if(0===r.length)throw new TypeError("Invalid number of values");return e.call(r,t)};s.any=(e,...t)=>(s.array(e)?e:[e]).some(e=>h(Array.prototype.some,e,t)),s.all=(e,...t)=>h(Array.prototype.every,e,t);const g=(e,t,r)=>{if(!e)throw new TypeError(`Expected value which is \`${t}\`, received value of type \`${s(r)}\`.`)};t.assert={undefined:e=>g(s.undefined(e),"undefined",e),string:e=>g(s.string(e),"string",e),number:e=>g(s.number(e),"number",e),bigint:e=>g(s.bigint(e),"bigint",e),function_:e=>g(s.function_(e),"Function",e),null_:e=>g(s.null_(e),"null",e),class_:e=>g(s.class_(e),"Class",e),boolean:e=>g(s.boolean(e),"boolean",e),symbol:e=>g(s.symbol(e),"symbol",e),numericString:e=>g(s.numericString(e),"string with a number",e),array:e=>g(s.array(e),"Array",e),buffer:e=>g(s.buffer(e),"Buffer",e),nullOrUndefined:e=>g(s.nullOrUndefined(e),"null or undefined",e),object:e=>g(s.object(e),"Object",e),iterable:e=>g(s.iterable(e),"Iterable",e),asyncIterable:e=>g(s.asyncIterable(e),"AsyncIterable",e),generator:e=>g(s.generator(e),"Generator",e),asyncGenerator:e=>g(s.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>g(s.nativePromise(e),"native Promise",e),promise:e=>g(s.promise(e),"Promise",e),generatorFunction:e=>g(s.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>g(s.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>g(s.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>g(s.boundFunction(e),"Function",e),regExp:e=>g(s.regExp(e),"RegExp",e),date:e=>g(s.date(e),"Date",e),error:e=>g(s.error(e),"Error",e),map:e=>g(s.map(e),"Map",e),set:e=>g(s.set(e),"Set",e),weakMap:e=>g(s.weakMap(e),"WeakMap",e),weakSet:e=>g(s.weakSet(e),"WeakSet",e),int8Array:e=>g(s.int8Array(e),"Int8Array",e),uint8Array:e=>g(s.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>g(s.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>g(s.int16Array(e),"Int16Array",e),uint16Array:e=>g(s.uint16Array(e),"Uint16Array",e),int32Array:e=>g(s.int32Array(e),"Int32Array",e),uint32Array:e=>g(s.uint32Array(e),"Uint32Array",e),float32Array:e=>g(s.float32Array(e),"Float32Array",e),float64Array:e=>g(s.float64Array(e),"Float64Array",e),bigInt64Array:e=>g(s.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>g(s.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>g(s.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>g(s.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>g(s.dataView(e),"DataView",e),urlInstance:e=>g(s.urlInstance(e),"URL",e),urlString:e=>g(s.urlString(e),"string with a URL",e),truthy:e=>g(s.truthy(e),"truthy",e),falsy:e=>g(s.falsy(e),"falsy",e),nan:e=>g(s.nan(e),"NaN",e),primitive:e=>g(s.primitive(e),"primitive",e),integer:e=>g(s.integer(e),"integer",e),safeInteger:e=>g(s.safeInteger(e),"integer",e),plainObject:e=>g(s.plainObject(e),"plain object",e),typedArray:e=>g(s.typedArray(e),"TypedArray",e),arrayLike:e=>g(s.arrayLike(e),"array-like",e),domElement:e=>g(s.domElement(e),"Element",e),observable:e=>g(s.observable(e),"Observable",e),nodeStream:e=>g(s.nodeStream(e),"Node.js Stream",e),infinite:e=>g(s.infinite(e),"infinite number",e),emptyArray:e=>g(s.emptyArray(e),"empty array",e),nonEmptyArray:e=>g(s.nonEmptyArray(e),"non-empty array",e),emptyString:e=>g(s.emptyString(e),"empty string",e),nonEmptyString:e=>g(s.nonEmptyString(e),"non-empty string",e),emptyStringOrWhitespace:e=>g(s.emptyStringOrWhitespace(e),"empty string or whitespace",e),emptyObject:e=>g(s.emptyObject(e),"empty object",e),nonEmptyObject:e=>g(s.nonEmptyObject(e),"non-empty object",e),emptySet:e=>g(s.emptySet(e),"empty set",e),nonEmptySet:e=>g(s.nonEmptySet(e),"non-empty set",e),emptyMap:e=>g(s.emptyMap(e),"empty map",e),nonEmptyMap:e=>g(s.nonEmptyMap(e),"non-empty map",e),evenInteger:e=>g(s.evenInteger(e),"even integer",e),oddInteger:e=>g(s.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>g(s.directInstanceOf(e,t),"T",e),inRange:(e,t)=>g(s.inRange(e,t),"in range",e),any:(e,...t)=>g(s.any(e,...t),"predicate returns truthy for any value",t),all:(e,...t)=>g(s.all(e,...t),"predicate returns truthy for all values",t)},Object.defineProperties(s,{class:{value:s.class_},function:{value:s.function_},null:{value:s.null_}}),Object.defineProperties(t.assert,{class:{value:t.assert.class_},function:{value:t.assert.function_},null:{value:t.assert.null_}}),t.default=s,e.exports=s,e.exports.default=s,e.exports.assert=t.assert},98298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(93121),i=Number(process.versions.node.split(".")[0]),o=e=>{const t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;const r=e=>{const r=e.emit.bind(e);e.emit=(n,...i)=>("error"===n&&(t.error=Date.now(),t.phases.total=t.error-t.start,e.emit=r),r(n,...i))};r(e),e.prependOnceListener("abort",()=>{t.abort=Date.now(),(!t.response||i>=13)&&(t.phases.total=Date.now()-t.start)});const o=e=>{t.socket=Date.now(),t.phases.wait=t.socket-t.start;const r=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};e.prependOnceListener("lookup",r),n.default(e,{connect:()=>{t.connect=Date.now(),void 0===t.lookup&&(e.removeListener("lookup",r),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?o(e.socket):e.prependOnceListener("socket",o);const s=()=>{var e;t.upload=Date.now(),t.phases.request=t.upload-(null!=(e=t.secureConnect)?e:t.connect)};return("boolean"==typeof e.writableFinished?!e.writableFinished:!e.finished||0!==e.outputSize||e.socket&&0!==e.socket.writableLength)?e.prependOnceListener("finish",s):s(),e.prependOnceListener("response",e=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,e.timings=t,r(e),e.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start})}),t};t.default=o,e.exports=o,e.exports.default=o},58069:(e,t,r)=>{"use strict";l.ifExists=function(e,t,r){return l(e,t,r).catch(()=>{})};const n=r(31669),i=r(46227),o=r(85622),s=r(97369),A=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,a={createPwshFile:!0,createCmdFile:s(),fs:r(35747)},c=new Map([[".js","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function u(e){const t={...a,...e},r=t.fs;return t.fs_={chmod:r.chmod?n.promisify(r.chmod):async()=>{},stat:n.promisify(r.stat),unlink:n.promisify(r.unlink),readFile:n.promisify(r.readFile),writeFile:n.promisify(r.writeFile)},t}async function l(e,t,r){const n=u(r);await n.fs_.stat(e),await async function(e,t,r){const n=await async function(e,t){const r=await t.fs_.readFile(e,"utf8"),n=r.trim().split(/\r*\n/)[0].match(A);if(!n){const t=o.extname(e).toLowerCase();return{program:c.get(t)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}(e,r);return await function(e,t){return i(o.dirname(e),{fs:t.fs})}(t,r),function(e,t,r,n){const i=u(n),o=[{generator:g,extension:""}];i.createCmdFile&&o.push({generator:h,extension:".cmd"});i.createPwshFile&&o.push({generator:f,extension:".ps1"});return Promise.all(o.map(n=>async function(e,t,r,n,i){const o=i.preserveSymlinks?"--preserve-symlinks":"",s=[r.additionalArgs,o].filter(e=>e).join(" ");return i=Object.assign({},i,{prog:r.program,args:s}),await function(e,t){return function(e,t){return t.fs_.unlink(e).catch(()=>{})}(e,t)}(t,i),await i.fs_.writeFile(t,n(e,t,i),"utf8"),function(e,t){return function(e,t){return t.fs_.chmod(e,493)}(e,t)}(t,i)}(e,t+n.extension,r,n.generator,i)))}(e,t,n,r)}(e,t,n)}function h(e,t,r){let n=o.relative(o.dirname(t),e).split("/").join("\\");const i=o.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`;let s,A=r.prog,a=r.args||"";const c=p(r.nodePath).win32;A?(s=`"%~dp0\\${A}.exe"`,n=i):(A=i,a="",n="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l=c?`@SET NODE_PATH=${c}\r\n`:"";return l+=s?`@IF EXIST ${s} (\r\n  ${s} ${a} ${n} ${u}%*\r\n) ELSE (\r\n  @SETLOCAL\r\n  @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n  ${A} ${a} ${n} ${u}%*\r\n)`:`@${A} ${a} ${n} ${u}%*\r\n`,l}function g(e,t,r){let n,i=o.relative(o.dirname(t),e),s=r.prog&&r.prog.split("\\").join("/");i=i.split("\\").join("/");const A=o.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`;let a=r.args||"";const c=p(r.nodePath).posix;s?(n=`"$basedir/${r.prog}"`,i=A):(s=A,a="",i="");let u=r.progArgs?r.progArgs.join(" ")+" ":"",l="#!/bin/sh\n";l+='basedir=$(dirname "$(echo "$0" | sed -e \'s,\\\\,/,g\')")\n\ncase `uname` in\n    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\nesac\n\n';const h=r.nodePath?`export NODE_PATH="${c}"\n`:"";return l+=n?h+`if [ -x ${n} ]; then\n`+`  exec ${n} ${a} ${i} ${u}"$@"\nelse \n`+`  exec ${s} ${a} ${i} ${u}"$@"\nfi\n`:`${h}${s} ${a} ${i} ${u}"$@"\nexit $?\n`,l}function f(e,t,r){let n=o.relative(o.dirname(t),e);const i=r.prog&&r.prog.split("\\").join("/");let s,A=i&&`"${i}$exe"`;n=n.split("\\").join("/");const a=o.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`;let c=r.args||"",u=p(r.nodePath);const l=u.win32,h=u.posix;A?(s=`"$basedir/${r.prog}$exe"`,n=a):(A=a,c="",n="");let g=r.progArgs?r.progArgs.join(" ")+" ":"",f='#!/usr/bin/env pwsh\n$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n\n$exe=""\n'+(r.nodePath?`$env_node_path=$env:NODE_PATH\n$env:NODE_PATH="${l}"\n`:"")+'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n  # Fix case when both the Windows and Linux builds of Node\n  # are installed in the same directory\n  $exe=".exe"\n}';return r.nodePath&&(f=f+" else {\n"+`  $env:NODE_PATH="${h}"\n}`),f+="\n",f=s?f+"$ret=0\n"+`if (Test-Path ${s}) {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n`+`    $input | & ${s} ${c} ${n} ${g}$args\n  } else {\n`+`    & ${s} ${c} ${n} ${g}$args\n  }\n  $ret=$LASTEXITCODE\n} else {\n  # Support pipeline input\n  if ($MyInvocation.ExpectingInput) {\n`+`    $input | & ${A} ${c} ${n} ${g}$args\n  } else {\n`+`    & ${A} ${c} ${n} ${g}$args\n  }\n  $ret=$LASTEXITCODE\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $ret\n":f+"# Support pipeline input\nif ($MyInvocation.ExpectingInput) {\n"+`  $input | & ${A} ${c} ${n} ${g}$args\n} else {\n`+`  & ${A} ${c} ${n} ${g}$args\n}\n`+(r.nodePath?"$env:NODE_PATH=$env_node_path\n":"")+"exit $LASTEXITCODE\n",f}function p(e){if(!e)return{win32:"",posix:""};let t="string"==typeof e?e.split(o.delimiter):Array.from(e),r={};for(let e=0;e<t.length;e++){const n=t[e].split("/").join("\\"),i=s()?t[e].split("\\").join("/").replace(/^([^:\\/]*):/,(e,t)=>"/mnt/"+t.toLowerCase()):t[e];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${i}`:i,r[e]={win32:n,posix:i}}return r}e.exports=l},27589:e=>{"use strict";const t=e.exports;e.exports.default=t;const r="[",n="]",i="",o=";",s="Apple_Terminal"===process.env.TERM_PROGRAM;t.cursorTo=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");return"number"!=typeof t?r+(e+1)+"G":r+(t+1)+";"+(e+1)+"H"},t.cursorMove=(e,t)=>{if("number"!=typeof e)throw new TypeError("The `x` argument is required");let n="";return e<0?n+=r+-e+"D":e>0&&(n+=r+e+"C"),t<0?n+=r+-t+"A":t>0&&(n+=r+t+"B"),n},t.cursorUp=(e=1)=>r+e+"A",t.cursorDown=(e=1)=>r+e+"B",t.cursorForward=(e=1)=>r+e+"C",t.cursorBackward=(e=1)=>r+e+"D",t.cursorLeft="[G",t.cursorSavePosition=s?"7":"[s",t.cursorRestorePosition=s?"8":"[u",t.cursorGetPosition="[6n",t.cursorNextLine="[E",t.cursorPrevLine="[F",t.cursorHide="[?25l",t.cursorShow="[?25h",t.eraseLines=e=>{let r="";for(let n=0;n<e;n++)r+=t.eraseLine+(n<e-1?t.cursorUp():"");return e&&(r+=t.cursorLeft),r},t.eraseEndLine="[K",t.eraseStartLine="[1K",t.eraseLine="[2K",t.eraseDown="[J",t.eraseUp="[1J",t.eraseScreen="[2J",t.scrollUp="[S",t.scrollDown="[T",t.clearScreen="c",t.clearTerminal="win32"===process.platform?t.eraseScreen+"[0f":t.eraseScreen+"[3J[H",t.beep=i,t.link=(e,t)=>[n,"8",o,o,t,i,e,n,"8",o,o,i].join(""),t.image=(e,t={})=>{let r=n+"1337;File=inline=1";return t.width&&(r+=";width="+t.width),t.height&&(r+=";height="+t.height),!1===t.preserveAspectRatio&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+i},t.iTerm={setCwd:(e=process.cwd())=>`${n}50;CurrentDir=${e}${i}`,annotation:(e,t={})=>{let r=n+"1337;";const o=void 0!==t.x,s=void 0!==t.y;if((o||s)&&(!o||!s||void 0===t.length))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(o?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+i}}},81337:e=>{"use strict";e.exports=({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}},18483:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},o=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},s=e=>e,A=(e,t,r)=>[e,t,r],a=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let c;const u=(e,t,n,i)=>{void 0===c&&(c=r(2744));const o=i?10:0,s={};for(const[r,i]of Object.entries(c)){const A="ansi16"===r?"ansi":r;r===t?s[A]=e(n,o):"object"==typeof i&&(s[A]=e(i[t],o))}return s};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,i]of Object.entries(n))t[r]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[r]=t[r],e.set(i[0],i[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="[39m",t.bgColor.close="[49m",a(t.color,"ansi",()=>u(n,"ansi16",s,!1)),a(t.color,"ansi256",()=>u(i,"ansi256",s,!1)),a(t.color,"ansi16m",()=>u(o,"rgb",A,!1)),a(t.bgColor,"ansi",()=>u(n,"ansi16",s,!0)),a(t.bgColor,"ansi256",()=>u(i,"ansi256",s,!0)),a(t.bgColor,"ansi16m",()=>u(o,"rgb",A,!0)),t}})},39920:e=>{"use strict";e.exports=(...e)=>[...new Set([].concat(...e))]},86792:e=>{"use strict";function t(e,t,i){e instanceof RegExp&&(e=r(e,i)),t instanceof RegExp&&(t=r(t,i));var o=n(e,t,i);return o&&{start:o[0],end:o[1],pre:i.slice(0,o[0]),body:i.slice(o[0]+e.length,o[1]),post:i.slice(o[1]+t.length)}}function r(e,t){var r=t.match(e);return r?r[0]:null}function n(e,t,r){var n,i,o,s,A,a=r.indexOf(e),c=r.indexOf(t,a+1),u=a;if(a>=0&&c>0){for(n=[],o=r.length;u>=0&&!A;)u==a?(n.push(u),a=r.indexOf(e,u+1)):1==n.length?A=[n.pop(),c]:((i=n.pop())<o&&(o=i,s=c),c=r.indexOf(t,u+1)),u=a<c&&a>=0?a:c;n.length&&(A=[o,s])}return A}e.exports=t,t.range=n},73975:(e,t,r)=>{"use strict";var n=r(86897).Duplex;function i(e){if(!(this instanceof i))return new i(e);if(this._bufs=[],this.length=0,"function"==typeof e){this._callback=e;var t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",(function(e){e.on("error",t)})),this.on("unpipe",(function(e){e.removeListener("error",t)}))}else this.append(e);n.call(this)}r(31669).inherits(i,n),i.prototype._offset=function(e){var t,r=0,n=0;if(0===e)return[0,0];for(;n<this._bufs.length;n++){if(e<(t=r+this._bufs[n].length)||n==this._bufs.length-1)return[n,e-r];r=t}},i.prototype._reverseOffset=function(e){for(var t=e[0],r=e[1],n=0;n<t;n++)r+=this._bufs[n].length;return r},i.prototype.append=function(e){var t=0;if(Buffer.isBuffer(e))this._appendBuffer(e);else if(Array.isArray(e))for(;t<e.length;t++)this.append(e[t]);else if(e instanceof i)for(;t<e._bufs.length;t++)this.append(e._bufs[t]);else null!=e&&("number"==typeof e&&(e=e.toString()),this._appendBuffer(Buffer.from(e)));return this},i.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length},i.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},i.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)},i.prototype.end=function(e){n.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},i.prototype.get=function(e){if(!(e>this.length||e<0)){var t=this._offset(e);return this._bufs[t[0]][t[1]]}},i.prototype.slice=function(e,t){return"number"==typeof e&&e<0&&(e+=this.length),"number"==typeof t&&t<0&&(t+=this.length),this.copy(null,0,e,t)},i.prototype.copy=function(e,t,r,n){if(("number"!=typeof r||r<0)&&(r=0),("number"!=typeof n||n>this.length)&&(n=this.length),r>=this.length)return e||Buffer.alloc(0);if(n<=0)return e||Buffer.alloc(0);var i,o,s=!!e,A=this._offset(r),a=n-r,c=a,u=s&&t||0,l=A[1];if(0===r&&n==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:Buffer.concat(this._bufs,this.length);for(o=0;o<this._bufs.length;o++)this._bufs[o].copy(e,u),u+=this._bufs[o].length;return e}if(c<=this._bufs[A[0]].length-l)return s?this._bufs[A[0]].copy(e,t,l,l+c):this._bufs[A[0]].slice(l,l+c);for(s||(e=Buffer.allocUnsafe(a)),o=A[0];o<this._bufs.length;o++){if(!(c>(i=this._bufs[o].length-l))){this._bufs[o].copy(e,u,l,l+c);break}this._bufs[o].copy(e,u,l),u+=i,c-=i,l&&(l=0)}return e},i.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"!=typeof t?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return new i;var r=this._offset(e),n=this._offset(t),o=this._bufs.slice(r[0],n[0]+1);return 0==n[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,n[1]),0!=r[1]&&(o[0]=o[0].slice(r[1])),new i(o)},i.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},i.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},i.prototype.duplicate=function(){for(var e=0,t=new i;e<this._bufs.length;e++)t.append(this._bufs[e]);return t},i.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},i.prototype.indexOf=function(e,t,r){if(void 0===r&&"string"==typeof t&&(r=t,t=void 0),"function"==typeof e||Array.isArray(e))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if("number"==typeof e?e=Buffer.from([e]):"string"==typeof e?e=Buffer.from(e,r):e instanceof i?e=e.slice():Buffer.isBuffer(e)||(e=Buffer.from(e)),t=Number(t||0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),0===e.length)return t>this.length?this.length:t;for(var n=this._offset(t),o=n[0],s=n[1];o<this._bufs.length;o++){for(var A=this._bufs[o];s<A.length;){if(A.length-s>=e.length){var a=A.indexOf(e,s);if(-1!==a)return this._reverseOffset([o,a]);s=A.length-e.length+1}else{var c=this._reverseOffset([o,s]);if(this._match(c,e))return c;s++}}s=0}return-1},i.prototype._match=function(e,t){if(this.length-e<t.length)return!1;for(var r=0;r<t.length;r++)if(this.get(e+r)!==t[r])return!1;return!0},function(){var e={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(var t in e)!function(t){i.prototype[t]=null===e[t]?function(e,r){return this.slice(e,e+r)[t](0,r)}:function(r){return this.slice(r,r+e[t])[t](0)}}(t)}(),e.exports=i},1289:(e,t,r)=>{var n=r(36547),i=r(86792);e.exports=function(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return function e(t,r){var o=[],s=i("{","}",t);if(!s||/\$$/.test(s.pre))return[t];var a,c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),d=c||l,C=s.body.indexOf(",")>=0;if(!d&&!C)return s.post.match(/,.*\}/)?(t=s.pre+"{"+s.body+A+s.post,e(t)):[t];if(d)a=s.body.split(/\.\./);else{if(1===(a=function e(t){if(!t)return[""];var r=[],n=i("{","}",t);if(!n)return t.split(",");var o=n.pre,s=n.body,A=n.post,a=o.split(",");a[a.length-1]+="{"+s+"}";var c=e(A);A.length&&(a[a.length-1]+=c.shift(),a.push.apply(a,c));return r.push.apply(r,a),r}(s.body)).length)if(1===(a=e(a[0],!1).map(h)).length)return(m=s.post.length?e(s.post,!1):[""]).map((function(e){return s.pre+a[0]+e}))}var E,I=s.pre,m=s.post.length?e(s.post,!1):[""];if(d){var y=u(a[0]),w=u(a[1]),B=Math.max(a[0].length,a[1].length),Q=3==a.length?Math.abs(u(a[2])):1,v=f;w<y&&(Q*=-1,v=p);var D=a.some(g);E=[];for(var b=y;v(b,w);b+=Q){var S;if(l)"\\"===(S=String.fromCharCode(b))&&(S="");else if(S=String(b),D){var k=B-S.length;if(k>0){var x=new Array(k+1).join("0");S=b<0?"-"+x+S.slice(1):x+S}}E.push(S)}}else E=n(a,(function(t){return e(t,!1)}));for(var F=0;F<E.length;F++)for(var M=0;M<m.length;M++){var N=I+E[F]+m[M];(!r||d||N)&&o.push(N)}return o}(function(e){return e.split("\\\\").join(o).split("\\{").join(s).split("\\}").join(A).split("\\,").join(a).split("\\.").join(c)}(e),!0).map(l)};var o="\0SLASH"+Math.random()+"\0",s="\0OPEN"+Math.random()+"\0",A="\0CLOSE"+Math.random()+"\0",a="\0COMMA"+Math.random()+"\0",c="\0PERIOD"+Math.random()+"\0";function u(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function l(e){return e.split(o).join("\\").split(s).join("{").split(A).join("}").split(a).join(",").split(c).join(".")}function h(e){return"{"+e+"}"}function g(e){return/^-?0\d/.test(e)}function f(e,t){return e<=t}function p(e,t){return e>=t}},12235:(e,t,r)=>{"use strict";const n=r(54900),i=r(44617),o=r(1495),s=r(425),A=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let e=A.create(n,t);Array.isArray(e)?r.push(...e):r.push(e)}else r=[].concat(A.create(e,t));return t&&!0===t.expand&&!0===t.nodupes&&(r=[...new Set(r)]),r};A.parse=(e,t={})=>s(e,t),A.stringify=(e,t={})=>n("string"==typeof e?A.parse(e,t):e,t),A.compile=(e,t={})=>("string"==typeof e&&(e=A.parse(e,t)),i(e,t)),A.expand=(e,t={})=>{"string"==typeof e&&(e=A.parse(e,t));let r=o(e,t);return!0===t.noempty&&(r=r.filter(Boolean)),!0===t.nodupes&&(r=[...new Set(r)]),r},A.create=(e,t={})=>""===e||e.length<3?[e]:!0!==t.expand?A.compile(e,t):A.expand(e,t),e.exports=A},44617:(e,t,r)=>{"use strict";const n=r(52169),i=r(4542);e.exports=(e,t={})=>{let r=(e,o={})=>{let s=i.isInvalidBrace(o),A=!0===e.invalid&&!0===t.escapeInvalid,a=!0===s||!0===A,c=!0===t.escapeInvalid?"\\":"",u="";if(!0===e.isOpen)return c+e.value;if(!0===e.isClose)return c+e.value;if("open"===e.type)return a?c+e.value:"(";if("close"===e.type)return a?c+e.value:")";if("comma"===e.type)return"comma"===e.prev.type?"":a?e.value:"|";if(e.value)return e.value;if(e.nodes&&e.ranges>0){let r=i.reduce(e.nodes),o=n(...r,{...t,wrap:!1,toRegex:!0});if(0!==o.length)return r.length>1&&o.length>1?`(${o})`:o}if(e.nodes)for(let t of e.nodes)u+=r(t,e);return u};return r(e)}},5384:e=>{"use strict";e.exports={MAX_LENGTH:65536,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:"\n",CHAR_NO_BREAK_SPACE:" ",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\ufeff"}},1495:(e,t,r)=>{"use strict";const n=r(52169),i=r(54900),o=r(4542),s=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),!(t=[].concat(t)).length)return e;if(!e.length)return r?o.flatten(t).map(e=>`{${e}}`):t;for(let i of e)if(Array.isArray(i))for(let e of i)n.push(s(e,t,r));else for(let e of t)!0===r&&"string"==typeof e&&(e=`{${e}}`),n.push(Array.isArray(e)?s(i,e,r):i+e);return o.flatten(n)};e.exports=(e,t={})=>{let r=void 0===t.rangeLimit?1e3:t.rangeLimit,A=(e,a={})=>{e.queue=[];let c=a,u=a.queue;for(;"brace"!==c.type&&"root"!==c.type&&c.parent;)c=c.parent,u=c.queue;if(e.invalid||e.dollar)return void u.push(s(u.pop(),i(e,t)));if("brace"===e.type&&!0!==e.invalid&&2===e.nodes.length)return void u.push(s(u.pop(),["{}"]));if(e.nodes&&e.ranges>0){let A=o.reduce(e.nodes);if(o.exceedsLimit(...A,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let a=n(...A,t);return 0===a.length&&(a=i(e,t)),u.push(s(u.pop(),a)),void(e.nodes=[])}let l=o.encloseBrace(e),h=e.queue,g=e;for(;"brace"!==g.type&&"root"!==g.type&&g.parent;)g=g.parent,h=g.queue;for(let t=0;t<e.nodes.length;t++){let r=e.nodes[t];"comma"!==r.type||"brace"!==e.type?"close"!==r.type?r.value&&"open"!==r.type?h.push(s(h.pop(),r.value)):r.nodes&&A(r,e):u.push(s(u.pop(),h,l)):(1===t&&h.push(""),h.push(""))}return h};return o.flatten(A(e))}},425:(e,t,r)=>{"use strict";const n=r(54900),{MAX_LENGTH:i,CHAR_BACKSLASH:o,CHAR_BACKTICK:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_LEFT_PARENTHESES:c,CHAR_RIGHT_PARENTHESES:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_RIGHT_CURLY_BRACE:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_RIGHT_SQUARE_BRACKET:f,CHAR_DOUBLE_QUOTE:p,CHAR_SINGLE_QUOTE:d,CHAR_NO_BREAK_SPACE:C,CHAR_ZERO_WIDTH_NOBREAK_SPACE:E}=r(5384);e.exports=(e,t={})=>{if("string"!=typeof e)throw new TypeError("Expected a string");let r=t||{},I="number"==typeof r.maxLength?Math.min(i,r.maxLength):i;if(e.length>I)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${I})`);let m,y={type:"root",input:e,nodes:[]},w=[y],B=y,Q=y,v=0,D=e.length,b=0,S=0;const k=()=>e[b++],x=e=>{if("text"===e.type&&"dot"===Q.type&&(Q.type="text"),!Q||"text"!==Q.type||"text"!==e.type)return B.nodes.push(e),e.parent=B,e.prev=Q,Q=e,e;Q.value+=e.value};for(x({type:"bos"});b<D;)if(B=w[w.length-1],m=k(),m!==E&&m!==C)if(m!==o)if(m!==f)if(m!==g)if(m!==c)if(m!==u)if(m!==p&&m!==d&&m!==s)if(m!==l)if(m!==h)if(m===A&&S>0){if(B.ranges>0){B.ranges=0;let e=B.nodes.shift();B.nodes=[e,{type:"text",value:n(B)}]}x({type:"comma",value:m}),B.commas++}else if(m===a&&S>0&&0===B.commas){let e=B.nodes;if(0===S||0===e.length){x({type:"text",value:m});continue}if("dot"===Q.type){if(B.range=[],Q.value+=m,Q.type="range",3!==B.nodes.length&&5!==B.nodes.length){B.invalid=!0,B.ranges=0,Q.type="text";continue}B.ranges++,B.args=[];continue}if("range"===Q.type){e.pop();let t=e[e.length-1];t.value+=Q.value+m,Q=t,B.ranges--;continue}x({type:"dot",value:m})}else x({type:"text",value:m});else{if("brace"!==B.type){x({type:"text",value:m});continue}let e="close";B=w.pop(),B.close=!0,x({type:e,value:m}),S--,B=w[w.length-1]}else{S++;let e=Q.value&&"$"===Q.value.slice(-1)||!0===B.dollar;B=x({type:"brace",open:!0,close:!1,dollar:e,depth:S,commas:0,ranges:0,nodes:[]}),w.push(B),x({type:"open",value:m})}else{let e,r=m;for(!0!==t.keepQuotes&&(m="");b<D&&(e=k());)if(e!==o){if(e===r){!0===t.keepQuotes&&(m+=e);break}m+=e}else m+=e+k();x({type:"text",value:m})}else{if("paren"!==B.type){x({type:"text",value:m});continue}B=w.pop(),x({type:"text",value:m}),B=w[w.length-1]}else B=x({type:"paren",nodes:[]}),w.push(B),x({type:"text",value:m});else{v++;let e;for(;b<D&&(e=k());)if(m+=e,e!==g)if(e!==o){if(e===f&&(v--,0===v))break}else m+=k();else v++;x({type:"text",value:m})}else x({type:"text",value:"\\"+m});else x({type:"text",value:(t.keepEscaping?m:"")+k()});do{if(B=w.pop(),"root"!==B.type){B.nodes.forEach(e=>{e.nodes||("open"===e.type&&(e.isOpen=!0),"close"===e.type&&(e.isClose=!0),e.nodes||(e.type="text"),e.invalid=!0)});let e=w[w.length-1],t=e.nodes.indexOf(B);e.nodes.splice(t,1,...B.nodes)}}while(w.length>0);return x({type:"eos"}),y}},54900:(e,t,r)=>{"use strict";const n=r(4542);e.exports=(e,t={})=>{let r=(e,i={})=>{let o=t.escapeInvalid&&n.isInvalidBrace(i),s=!0===e.invalid&&!0===t.escapeInvalid,A="";if(e.value)return(o||s)&&n.isOpenOrClose(e)?"\\"+e.value:e.value;if(e.value)return e.value;if(e.nodes)for(let t of e.nodes)A+=r(t);return A};return r(e)}},4542:(e,t)=>{"use strict";t.isInteger=e=>"number"==typeof e?Number.isInteger(e):"string"==typeof e&&""!==e.trim()&&Number.isInteger(Number(e)),t.find=(e,t)=>e.nodes.find(e=>e.type===t),t.exceedsLimit=(e,r,n=1,i)=>!1!==i&&(!(!t.isInteger(e)||!t.isInteger(r))&&(Number(r)-Number(e))/Number(n)>=i),t.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||"open"===n.type||"close"===n.type)&&!0!==n.escaped&&(n.value="\\"+n.value,n.escaped=!0)},t.encloseBrace=e=>"brace"===e.type&&(e.commas>>0+e.ranges>>0==0&&(e.invalid=!0,!0)),t.isInvalidBrace=e=>"brace"===e.type&&(!(!0!==e.invalid&&!e.dollar)||(e.commas>>0+e.ranges>>0==0||!0!==e.open||!0!==e.close)&&(e.invalid=!0,!0)),t.isOpenOrClose=e=>"open"===e.type||"close"===e.type||(!0===e.open||!0===e.close),t.reduce=e=>e.reduce((e,t)=>("text"===t.type&&e.push(t.value),"range"===t.type&&(t.type="text"),e),[]),t.flatten=(...e)=>{const t=[],r=e=>{for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?r(i,t):void 0!==i&&t.push(i)}return t};return r(e),t}},76438:(e,t,r)=>{"use strict";const n=r(85622),{watch:i}=r(35747),{readFile:o}=r(35747).promises,{isIP:s}=r(11631),A="win32"===process.platform?n.join(process.env.SystemDrive,"Windows\\System32\\drivers\\etc\\hosts"):"/etc/hosts",a=/^(?:(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*(?:[A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])$/,c=e=>a.test(e),u={encoding:"utf8"},l=/\s+/g;class h{constructor({watching:e,customHostsPath:t=A}){this._hostsPath=t,this._error=null,this._watcher=null,this._watching=e,this._hosts={},this._init()}_init(){"string"==typeof this._hostsPath&&(this._promise=(async()=>{await this._update(),this._promise=null,this._error||this._watching&&(this._watcher=i(this._hostsPath,{persistent:!1},e=>{"change"===e?this._update():this._watcher.close()}),this._watcher.once("error",e=>{this._error=e,this._hosts={}}),this._watcher.once("close",()=>{this._init()}))})())}async _update(){try{let e=await o(this._hostsPath,u);e=e.split("\n"),this._hosts={};for(let t of e){t=t.replace(l," ").trim();const e=t.split(" "),r=s(e[0]);if(!r)continue;const n=e.shift();for(const t of e){if(!c(t))break;if(this._hosts[t]){let e=!1;for(const n of this._hosts[t])if(n.family===r){e=!0;break}if(e)continue}else this._hosts[t]=[],this._hosts[t].expires=1/0;this._hosts[t].push({address:n,family:r,expires:1/0,ttl:1/0})}}}catch(e){this._hosts={},this._error=e}}async get(e){if(this._promise&&await this._promise,this._error)throw this._error;return this._hosts[e]}}const g={};h.getResolver=({customHostsPath:e,watching:t})=>{void 0!==e&&"string"!=typeof e&&(e=!1);const r=`${e}:${t=Boolean(t)}`;let n=g[r];return n||(n=new h({customHostsPath:e,watching:t}),g[r]=n,n)},e.exports=h},43261:(e,t,r)=>{"use strict";const{V4MAPPED:n,ADDRCONFIG:i,promises:{Resolver:o},lookup:s}=r(40881),{promisify:A}=r(31669),a=r(12087),{getResolver:c}=r(76438),u=Symbol("cacheableLookupCreateConnection"),l=Symbol("cacheableLookupInstance"),h=e=>{if(!e||"function"!=typeof e.createConnection)throw new Error("Expected an Agent instance as the first argument")},g=()=>{let e=!1,t=!1;for(const r of Object.values(a.networkInterfaces()))for(const n of r)if(!n.internal&&("IPv6"===n.family?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},f={ttl:!0};class p{constructor({customHostsPath:e,watchingHostsFile:t=!1,cache:r=new Map,maxTtl:n=1/0,resolver:i=new o,fallbackTtl:a=1,errorTtl:u=.15}={}){this.maxTtl=n,this.fallbackTtl=a,this.errorTtl=u,this._cache=r,this._resolver=i,this._lookup=A(s),this._resolver instanceof o?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=A(this._resolver.resolve4.bind(this._resolver)),this._resolve6=A(this._resolver.resolve6.bind(this._resolver))),this._iface=g(),this._hostsResolver=c({customHostsPath:e,watching:t}),this._pending={},this._nextRemovalTime=!1,this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.updateInterfaceInfo(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,r){if("function"==typeof t?(r=t,t={}):"number"==typeof t&&(t={family:t}),!r)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(e=>{t.all?r(null,e):r(null,e.address,e.family,e.expires,e.ttl)},r)}async lookupAsync(e,t={}){"number"==typeof t&&(t={family:t});let r=await this.query(e);if(6===t.family){const e=r.filter(e=>6===e.family);0===e.length&&t.hints&n?(e=>{for(const t of e)t.address="::ffff:"+t.address,t.family=6})(r):r=e}else 4===t.family&&(r=r.filter(e=>4===e.family));if(t.hints&i){const{_iface:e}=this;r=r.filter(t=>6===t.family?e.has6:e.has4)}if(0===r.length){const t=new Error("ENOTFOUND "+e);throw t.code="ENOTFOUND",t.hostname=e,t}return t.all?r:1===r.length?r[0]:this._getEntry(r,e)}async query(e){let t=await this._hostsResolver.get(e)||await this._cache.get(e);if(!t){const r=this._pending[e];if(r)t=await r;else{const r=this.queryAndCache(e);this._pending[e]=r,t=await r}}return t=t.map(e=>({...e})),t}async queryAndCache(e){const[t,r]=await Promise.all([this._resolve4(e,f).catch(()=>[]),this._resolve6(e,f).catch(()=>[])]);let n=0;if(t)for(const e of t)e.family=4,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);if(r)for(const e of r)e.family=6,e.expires=Date.now()+1e3*e.ttl,n=Math.max(n,e.ttl);let i=[...t||[],...r||[]];if(0===i.length)try{i=await this._lookup(e,{all:!0});for(const e of i)e.ttl=this.fallbackTtl,e.expires=Date.now()+1e3*e.ttl;n=1e3*this.fallbackTtl}catch(t){throw delete this._pending[e],"ENOTFOUND"===t.code&&(n=1e3*this.errorTtl,i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),t}else n=1e3*Math.min(this.maxTtl,n);return this.maxTtl>0&&n>0&&(i.expires=Date.now()+n,await this._cache.set(e,i,n),this._tick(n)),delete this._pending[e],i}_getEntry(e,t){return e[0]}tick(){}_tick(e){if(!(this._cache instanceof Map)||void 0===e)return;const t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let e=1/0;const t=Date.now();for(const[r,{expires:n}]of this._cache)t>=n?this._cache.delete(r):n<e&&(e=n);e!==1/0&&this._tick(e-t)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(h(e),u in e)throw new Error("CacheableLookup has been already installed");e[u]=e.createConnection,e[l]=this,e.createConnection=(t,r)=>("lookup"in t||(t.lookup=this.lookup),e[u](t,r))}uninstall(e){if(h(e),e[u]){if(e[l]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[u],delete e[u],delete e[l]}}updateInterfaceInfo(){this._iface=g(),this._cache.clear()}clear(e){e?this._cache.delete(e):this._cache.clear()}}e.exports=p,e.exports.default=p},11200:(e,t,r)=>{"use strict";const n=r(28614),i=r(78835),o=r(19793),s=r(58764),A=r(86834),a=r(48491),c=r(55737),u=r(15751),l=r(72515);class h{constructor(e,t){if("function"!=typeof e)throw new TypeError("Parameter `request` must be a function");return this.cache=new l({uri:"string"==typeof t&&t,store:"string"!=typeof t&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,r)=>{let l;if("string"==typeof t)l=f(i.parse(t)),t={};else if(t instanceof i.URL)l=f(i.parse(t.toString())),t={};else{const[e,...r]=(t.path||"").split("?"),n=r.length>0?"?"+r.join("?"):"";l=f({...t,pathname:e,search:n})}(t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...g(l)}).headers=c(t.headers);const p=new n,d=o(i.format(l),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),C=`${t.method}:${d}`;let E=!1,I=!1;const m=t=>{I=!0;let n,i=!1;const o=new Promise(e=>{n=()=>{i||(i=!0,e())}}),c=e=>{if(E&&!t.forceRefresh){e.status=e.statusCode;const r=A.fromObject(E.cachePolicy).revalidatedPolicy(t,e);if(!r.modified){const t=r.policy.responseHeaders();(e=new a(E.statusCode,t,E.body,E.url)).cachePolicy=r.policy,e.fromCache=!0}}let n;e.fromCache||(e.cachePolicy=new A(t,e,t),e.fromCache=!1),t.cache&&e.cachePolicy.storable()?(n=u(e),(async()=>{try{const r=s.buffer(e);if(await Promise.race([o,new Promise(t=>e.once("end",t))]),i)return;const n=await r,A={cachePolicy:e.cachePolicy.toObject(),url:e.url,statusCode:e.fromCache?E.statusCode:e.statusCode,body:n};let a=t.strictTtl?e.cachePolicy.timeToLive():void 0;t.maxTtl&&(a=a?Math.min(a,t.maxTtl):t.maxTtl),await this.cache.set(C,A,a)}catch(e){p.emit("error",new h.CacheError(e))}})()):t.cache&&E&&(async()=>{try{await this.cache.delete(C)}catch(e){p.emit("error",new h.CacheError(e))}})(),p.emit("response",n||e),"function"==typeof r&&r(n||e)};try{const r=e(t,c);r.once("error",n),r.once("abort",n),p.emit("request",r)}catch(e){p.emit("error",new h.RequestError(e))}};return(async()=>{const e=async e=>{await Promise.resolve();const t=e.cache?await this.cache.get(C):void 0;if(void 0===t)return m(e);const n=A.fromObject(t.cachePolicy);if(n.satisfiesWithoutRevalidation(e)&&!e.forceRefresh){const e=n.responseHeaders(),i=new a(t.statusCode,e,t.body,t.url);i.cachePolicy=n,i.fromCache=!0,p.emit("response",i),"function"==typeof r&&r(i)}else E=t,e.headers=n.revalidationHeaders(e),m(e)},n=e=>p.emit("error",new h.CacheError(e));this.cache.once("error",n),p.on("response",()=>this.cache.removeListener("error",n));try{await e(t)}catch(e){t.automaticFailover&&!I&&m(t),p.emit("error",new h.CacheError(e))}})(),p}}}function g(e){const t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function f(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}h.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}},h.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}},e.exports=h},54738:e=>{"use strict";const t=(e,t)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);if(0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";if(1===e.length)return t.pascalCase?e.toUpperCase():e.toLowerCase();return e!==e.toLowerCase()&&(e=(e=>{let t=!1,r=!1,n=!1;for(let i=0;i<e.length;i++){const o=e[i];t&&/[a-zA-Z]/.test(o)&&o.toUpperCase()===o?(e=e.slice(0,i)+"-"+e.slice(i),t=!1,n=r,r=!0,i++):r&&n&&/[a-zA-Z]/.test(o)&&o.toLowerCase()===o?(e=e.slice(0,i-1)+"-"+e.slice(i-1),n=r,r=!1,t=!0):(t=o.toLowerCase()===o&&o.toUpperCase()!==o,n=r,r=o.toUpperCase()===o&&o.toLowerCase()!==o)}return e})(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,t)=>t.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase()),r=e,t.pascalCase?r.charAt(0).toUpperCase()+r.slice(1):r;var r};e.exports=t,e.exports.default=t},95882:(e,t,r)=>{"use strict";const n=r(18483),{stdout:i,stderr:o}=r(59428),{stringReplaceAll:s,stringEncaseCRLFWithFirstIndex:A}=r(73327),a=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class u{constructor(e){return l(e)}}const l=e=>{const t={};return((e,t={})=>{if(t.level>3||t.level<0)throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>I(t.template,...e),Object.setPrototypeOf(t,h.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=u,t.template};function h(e){return l(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=d(this,p(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=d(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const g=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of g)c[e]={get(){const{level:t}=this;return function(...r){const i=p(n.color[a[t]][e](...r),n.color.close,this._styler);return d(this,i,this._isEmpty)}}};for(const e of g){c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=p(n.bgColor[a[t]][e](...r),n.bgColor.close,this._styler);return d(this,i,this._isEmpty)}}}}const f=Object.defineProperties(()=>{},{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),p=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},d=(e,t,r)=>{const n=(...e)=>C(n,1===e.length?""+e[0]:e.join(" "));return n.__proto__=f,n._generator=e,n._styler=t,n._isEmpty=r,n},C=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=s(t,r.close,r.open),r=r.parent;const o=t.indexOf("\n");return-1!==o&&(t=A(t,i,n,o)),n+t+i};let E;const I=(e,...t)=>{const[n]=t;if(!Array.isArray(n))return t.join(" ");const i=t.slice(1),o=[n.raw[0]];for(let e=1;e<n.length;e++)o.push(String(i[e-1]).replace(/[{}\\]/g,"\\$&"),String(n.raw[e]));return void 0===E&&(E=r(80690)),E(e,o.join(""))};Object.defineProperties(h.prototype,c);const m=h();m.supportsColor=i,m.stderr=h({level:o?o.level:0}),m.stderr.supportsColor=o,m.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"},e.exports=m},80690:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,o=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function s(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):o.get(e)||e}function A(e,t){const r=[],o=t.trim().split(/\s*,\s*/g);let A;for(const t of o){const o=Number(t);if(Number.isNaN(o)){if(!(A=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(A[2].replace(i,(e,t,r)=>t?s(t):r))}else r.push(o)}return r}function a(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=A(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function c(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],i=[];let o=[];if(r.replace(t,(t,r,A,u,l,h)=>{if(r)o.push(s(r));else if(u){const t=o.join("");o=[],i.push(0===n.length?t:c(e,n)(t)),n.push({inverse:A,styles:a(u)})}else if(l){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");i.push(c(e,n)(o.join(""))),o=[],n.pop()}else o.push(h)}),i.push(o.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},73327:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let o=0,s="";do{s+=e.substr(o,n-o)+t+r,o=n+i,n=e.indexOf(t,o)}while(-1!==n);return s+=e.substr(o),s},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,o="";do{const s="\r"===e[n-1];o+=e.substr(i,(s?n-1:n)-i)+t+(s?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return o+=e.substr(i),o}}},31059:(e,t,r)=>{var n=r(31669),i=r(24250);function o(){}o.prototype.match=function(e){var t,r,n,o,s=0,A=0,a=0,c=e.fInputBytes,u=e.fInputLen;e:for(t=0;t<u;t++){if(27==c[t]){t:for(n=0;n<this.escapeSequences.length;n++){var l=this.escapeSequences[n];if(!(u-t<l.length)){for(r=1;r<l.length;r++)if(l[r]!=c[t+r])continue t;s++,t+=l.length-1;continue e}}A++}14!=c[t]&&15!=c[t]||a++}return 0==s?null:(o=(100*s-100*A)/(s+A),s+a<5&&(o-=10*(5-(s+a))),o<=0?null:new i(e,this,o))},e.exports.ISO_2022_JP=function(){this.name=function(){return"ISO-2022-JP"},this.escapeSequences=[[27,36,40,67],[27,36,40,68],[27,36,64],[27,36,65],[27,36,66],[27,38,64],[27,40,66],[27,40,72],[27,40,73],[27,40,74],[27,46,65],[27,46,70]]},n.inherits(e.exports.ISO_2022_JP,o),e.exports.ISO_2022_KR=function(){this.name=function(){return"ISO-2022-KR"},this.escapeSequences=[[27,36,41,67]]},n.inherits(e.exports.ISO_2022_KR,o),e.exports.ISO_2022_CN=function(){this.name=function(){return"ISO-2022-CN"},this.escapeSequences=[[27,36,41,65],[27,36,41,71],[27,36,42,72],[27,36,41,69],[27,36,43,73],[27,36,43,74],[27,36,43,75],[27,36,43,76],[27,36,43,77],[27,78],[27,79]]},n.inherits(e.exports.ISO_2022_CN,o)},9044:(e,t,r)=>{var n=r(31669),i=r(24250);function o(){this.charValue=0,this.index=0,this.nextIndex=0,this.error=!1,this.done=!1,this.reset=function(){this.charValue=0,this.index=-1,this.nextIndex=0,this.error=!1,this.done=!1},this.nextByte=function(e){return this.nextIndex>=e.fRawLength?(this.done=!0,-1):255&e.fRawInput[this.nextIndex++]}}function s(){}function A(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0;return(r=e.charValue=e.nextByte(t))<0?e.done=!0:r<=141||(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=161&&r<=254?n<161&&(e.error=!0):142!=r?143==r&&(i=e.nextByte(t),e.charValue=e.charValue<<8|i,i<161&&(e.error=!0)):n<161&&(e.error=!0)),0==e.done}s.prototype.match=function(e){var t,r=0,n=0,s=0,A=0,a=0,c=new o;e:{for(c.reset();this.nextChar(c,e);){if(A++,c.error)s++;else{var u=4294967295&c.charValue;u<=255?0:(r++,null!=this.commonChars&&function e(t,r,n,i){if(i<n)return-1;var o=Math.floor(n+i>>>1);return r>t[o]?e(t,r,o+1,i):r<t[o]?e(t,r,n,o-1):o}(t=this.commonChars,u,0,t.length-1)>=0&&n++)}if(s>=2&&5*s>=r)break e}if(r<=10&&0==s)a=0==r&&A<10?0:10;else if(r<20*s)a=0;else if(null==this.commonChars)(a=30+r-20*s)>100&&(a=100);else{var l=90/Math.log(parseFloat(r)/4);a=Math.floor(Math.log(n+1)*l+10),a=Math.min(a,100)}}return 0==a?null:new i(e,this,a)},s.prototype.nextChar=function(e,t){},e.exports.sjis=function(){this.name=function(){return"Shift-JIS"},this.language=function(){return"ja"},this.commonChars=[33088,33089,33090,33093,33115,33129,33130,33141,33142,33440,33442,33444,33449,33450,33451,33453,33455,33457,33459,33461,33463,33469,33470,33473,33476,33477,33478,33480,33481,33484,33485,33500,33504,33511,33512,33513,33514,33520,33521,33601,33603,33614,33615,33624,33630,33634,33639,33653,33654,33673,33674,33675,33677,33683,36502,37882,38314],this.nextChar=function(e,t){var r;if(e.index=e.nextIndex,e.error=!1,(r=e.charValue=e.nextByte(t))<0)return!1;if(r<=127||r>160&&r<=223)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=r<<8|n,n>=64&&n<=127||n>=128&&n<=255||(e.error=!0),!0)}},n.inherits(e.exports.sjis,s),e.exports.big5=function(){this.name=function(){return"Big5"},this.language=function(){return"zh"},this.commonChars=[41280,41281,41282,41283,41287,41289,41333,41334,42048,42054,42055,42056,42065,42068,42071,42084,42090,42092,42103,42147,42148,42151,42177,42190,42193,42207,42216,42237,42304,42312,42328,42345,42445,42471,42583,42593,42594,42600,42608,42664,42675,42681,42707,42715,42726,42738,42816,42833,42841,42970,43171,43173,43181,43217,43219,43236,43260,43456,43474,43507,43627,43706,43710,43724,43772,44103,44111,44208,44242,44377,44745,45024,45290,45423,45747,45764,45935,46156,46158,46412,46501,46525,46544,46552,46705,47085,47207,47428,47832,47940,48033,48593,49860,50105,50240,50271],this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=e.charValue=e.nextByte(t);if(r<0)return!1;if(r<=127||255==r)return!0;var n=e.nextByte(t);return!(n<0)&&(e.charValue=e.charValue<<8|n,(n<64||127==n||255==n)&&(e.error=!0),!0)}},n.inherits(e.exports.big5,s),e.exports.euc_jp=function(){this.name=function(){return"EUC-JP"},this.language=function(){return"ja"},this.commonChars=[41377,41378,41379,41382,41404,41418,41419,41430,41431,42146,42148,42150,42152,42154,42155,42156,42157,42159,42161,42163,42165,42167,42169,42171,42173,42175,42176,42177,42179,42180,42182,42183,42184,42185,42186,42187,42190,42191,42192,42206,42207,42209,42210,42212,42216,42217,42218,42219,42220,42223,42226,42227,42402,42403,42404,42406,42407,42410,42413,42415,42416,42419,42421,42423,42424,42425,42431,42435,42438,42439,42440,42441,42443,42448,42453,42454,42455,42462,42464,42465,42469,42473,42474,42475,42476,42477,42483,47273,47572,47854,48072,48880,49079,50410,50940,51133,51896,51955,52188,52689],this.nextChar=A},n.inherits(e.exports.euc_jp,s),e.exports.euc_kr=function(){this.name=function(){return"EUC-KR"},this.language=function(){return"ko"},this.commonChars=[45217,45235,45253,45261,45268,45286,45293,45304,45306,45308,45496,45497,45511,45527,45538,45994,46011,46274,46287,46297,46315,46501,46517,46527,46535,46569,46835,47023,47042,47054,47270,47278,47286,47288,47291,47337,47531,47534,47564,47566,47613,47800,47822,47824,47857,48103,48115,48125,48301,48314,48338,48374,48570,48576,48579,48581,48838,48840,48863,48878,48888,48890,49057,49065,49088,49124,49131,49132,49144,49319,49327,49336,49338,49339,49341,49351,49356,49358,49359,49366,49370,49381,49403,49404,49572,49574,49590,49622,49631,49654,49656,50337,50637,50862,51151,51153,51154,51160,51173,51373],this.nextChar=A},n.inherits(e.exports.euc_kr,s),e.exports.gb_18030=function(){this.name=function(){return"GB18030"},this.language=function(){return"zh"},this.nextChar=function(e,t){e.index=e.nextIndex,e.error=!1;var r=0,n=0,i=0,o=0;e:if((r=e.charValue=e.nextByte(t))<0)e.done=!0;else if(!(r<=128))if(n=e.nextByte(t),e.charValue=e.charValue<<8|n,r>=129&&r<=254){if(n>=64&&n<=126||n>=80&&n<=254)break e;if(n>=48&&n<=57&&(i=e.nextByte(t))>=129&&i<=254&&(o=e.nextByte(t))>=48&&o<=57){e.charValue=e.charValue<<16|i<<8|o;break e}e.error=!0}else;return 0==e.done},this.commonChars=[41377,41378,41379,41380,41392,41393,41457,41459,41889,41900,41914,45480,45496,45502,45755,46025,46070,46323,46525,46532,46563,46767,46804,46816,47010,47016,47037,47062,47069,47284,47327,47350,47531,47561,47576,47610,47613,47821,48039,48086,48097,48122,48316,48347,48382,48588,48845,48861,49076,49094,49097,49332,49389,49611,49883,50119,50396,50410,50636,50935,51192,51371,51403,51413,51431,51663,51706,51889,51893,51911,51920,51926,51957,51965,52460,52728,52906,52932,52946,52965,53173,53186,53206,53442,53445,53456,53460,53671,53930,53938,53941,53947,53972,54211,54224,54269,54466,54490,54754,54992]},n.inherits(e.exports.gb_18030,s)},71216:(e,t,r)=>{var n=r(31669),i=r(24250);function o(e,t){this.byteIndex=0,this.ngram=0,this.ngramList=e,this.byteMap=t,this.ngramCount=0,this.hitCount=0,this.spaceChar,this.search=function(e,t){var r=0;return e[r+32]<=t&&(r+=32),e[r+16]<=t&&(r+=16),e[r+8]<=t&&(r+=8),e[r+4]<=t&&(r+=4),e[r+2]<=t&&(r+=2),e[r+1]<=t&&(r+=1),e[r]>t&&(r-=1),r<0||e[r]!=t?-1:r},this.lookup=function(e){this.ngramCount+=1,this.search(this.ngramList,e)>=0&&(this.hitCount+=1)},this.addByte=function(e){this.ngram=(this.ngram<<8)+(255&e)&16777215,this.lookup(this.ngram)},this.nextByte=function(e){return this.byteIndex>=e.fInputLen?-1:255&e.fInputBytes[this.byteIndex++]},this.parse=function(e,t){var r,n=!1;for(this.spaceChar=t;(r=this.nextByte(e))>=0;){var i=this.byteMap[r];0!=i&&(i==this.spaceChar&&n||this.addByte(i),n=i==this.spaceChar)}this.addByte(this.spaceChar);var o=this.hitCount/this.ngramCount;return o>.33?98:Math.floor(300*o)}}function s(e,t){this.fLang=e,this.fNGrams=t}function A(){}A.prototype.spaceChar=32,A.prototype.ngrams=function(){},A.prototype.byteMap=function(){},A.prototype.match=function(e){var t=this.ngrams();if(!(Array.isArray(t)&&t[0]instanceof s))return(a=new o(t,this.byteMap()).parse(e,this.spaceChar))<=0?null:new i(e,this,a);for(var r=-1,n=null,A=t.length-1;A>=0;A--){var a,c=t[A];(a=new o(c.fNGrams,this.byteMap()).parse(e,this.spaceChar))>r&&(r=a,n=c.fLang)}var u=this.name(e);return r<=0?null:new i(e,this,r,u,n)},e.exports.ISO_8859_1=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[new s("da",[2122086,2122100,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126697,2126708,2126953,2127465,6383136,6385184,6385252,6386208,6386720,6579488,6579566,6579570,6579572,6627443,6644768,6644837,6647328,6647396,6648352,6648421,6648608,6648864,6713202,6776096,6776174,6776178,6907749,6908960,6909543,7038240,7039845,7103858,7104871,7105637,7169380,7234661,7234848,7235360,7235429,7300896,7302432,7303712,7398688,7479396,7479397,7479411,7496992,7566437,7610483,7628064,7628146,7629164,7759218]),new s("de",[2122094,2122101,2122341,2122849,2122853,2122857,2123113,2123621,2123873,2124142,2125161,2126691,2126693,2127214,2127461,2127471,2127717,2128501,6448498,6514720,6514789,6514804,6578547,6579566,6579570,6580581,6627428,6627443,6646126,6646132,6647328,6648352,6648608,6776174,6841710,6845472,6906728,6907168,6909472,6909541,6911008,7104867,7105637,7217249,7217252,7217267,7234592,7234661,7234848,7235360,7235429,7238757,7479396,7496805,7497065,7562088,7566437,7610468,7628064,7628142,7628146,7695972,7695975,7759218]),new s("en",[2122016,2122094,2122341,2122607,2123375,2123873,2123877,2124142,2125153,2125670,2125938,2126437,2126689,2126708,2126952,2126959,2127720,6383972,6384672,6385184,6385252,6386464,6386720,6386789,6386793,6561889,6561908,6627425,6627443,6627444,6644768,6647412,6648352,6648608,6713202,6840692,6841632,6841714,6906912,6909472,6909543,6909806,6910752,7217249,7217268,7234592,7235360,7238688,7300640,7302688,7303712,7496992,7500576,7544929,7544948,7561577,7566368,7610484,7628146,7628897,7628901,7629167,7630624,7631648]),new s("es",[2122016,2122593,2122607,2122853,2123116,2123118,2123123,2124142,2124897,2124911,2125921,2125935,2125938,2126197,2126437,2126693,2127214,2128160,6365283,6365284,6365285,6365292,6365296,6382441,6382703,6384672,6386208,6386464,6515187,6516590,6579488,6579564,6582048,6627428,6627429,6627436,6646816,6647328,6647412,6648608,6648692,6907246,6943598,7102752,7106419,7217253,7238757,7282788,7282789,7302688,7303712,7303968,7364978,7435621,7495968,7497075,7544932,7544933,7544944,7562528,7628064,7630624,7693600,15953440]),new s("fr",[2122101,2122607,2122849,2122853,2122869,2123118,2123124,2124897,2124901,2125921,2125935,2125938,2126197,2126693,2126703,2127214,2154528,6385268,6386793,6513952,6516590,6579488,6579571,6583584,6627425,6627427,6627428,6627429,6627436,6627440,6627443,6647328,6647412,6648352,6648608,6648864,6649202,6909806,6910752,6911008,7102752,7103776,7103859,7169390,7217252,7234848,7238432,7238688,7302688,7302772,7304562,7435621,7479404,7496992,7544929,7544932,7544933,7544940,7544944,7610468,7628064,7629167,7693600,7696928]),new s("it",[2122092,2122600,2122607,2122853,2122857,2123040,2124140,2124142,2124897,2125925,2125938,2127214,6365283,6365284,6365296,6365299,6386799,6514789,6516590,6579564,6580512,6627425,6627427,6627428,6627433,6627436,6627440,6627443,6646816,6646892,6647412,6648352,6841632,6889569,6889571,6889572,6889587,6906144,6908960,6909472,6909806,7102752,7103776,7104800,7105633,7234848,7235872,7237408,7238757,7282785,7282788,7282793,7282803,7302688,7302757,7366002,7495968,7496992,7563552,7627040,7628064,7629088,7630624,8022383]),new s("nl",[2122092,2122341,2122849,2122853,2122857,2123109,2123118,2123621,2123877,2124142,2125153,2125157,2125680,2126949,2127457,2127461,2127471,2127717,2128489,6381934,6381938,6385184,6385252,6386208,6386720,6514804,6579488,6579566,6579570,6627426,6627446,6645102,6645106,6647328,6648352,6648435,6648864,6776174,6841716,6907168,6909472,6909543,6910752,7217250,7217252,7217253,7217256,7217263,7217270,7234661,7235360,7302756,7303026,7303200,7303712,7562088,7566437,7610468,7628064,7628142,7628146,7758190,7759218,7761775]),new s("no",[2122100,2122102,2122853,2123118,2123122,2123375,2123873,2124064,2125157,2125671,2126053,2126693,2126699,2126703,2126708,2126953,2127465,2155808,6385252,6386208,6386720,6579488,6579566,6579572,6627443,6644768,6647328,6647397,6648352,6648421,6648864,6648948,6713202,6776174,6908779,6908960,6909543,7038240,7039845,7103776,7105637,7169380,7169390,7217267,7234848,7235360,7235429,7237221,7300896,7302432,7303712,7398688,7479411,7496992,7565165,7566437,7610483,7628064,7628142,7628146,7629164,7631904,7631973,7759218]),new s("pt",[2122016,2122607,2122849,2122853,2122863,2123040,2123123,2125153,2125423,2125600,2125921,2125935,2125938,2126197,2126437,2126693,2127213,6365281,6365283,6365284,6365296,6382693,6382703,6384672,6386208,6386273,6386464,6516589,6516590,6578464,6579488,6582048,6582131,6627425,6627428,6647072,6647412,6648608,6648692,6906144,6906721,7169390,7238757,7238767,7282785,7282787,7282788,7282789,7282800,7303968,7364978,7435621,7495968,7497075,7544929,7544932,7544933,7544944,7566433,7628064,7630624,7693600,14905120,15197039]),new s("sv",[2122100,2122102,2122853,2123118,2123510,2123873,2124064,2124142,2124655,2125157,2125667,2126053,2126699,2126703,2126708,2126953,2127457,2127465,2155634,6382693,6385184,6385252,6386208,6386804,6514720,6579488,6579566,6579570,6579572,6644768,6647328,6648352,6648864,6747762,6776174,6909036,6909543,7037216,7105568,7169380,7217267,7233824,7234661,7235360,7235429,7235950,7299944,7302432,7302688,7398688,7479393,7479411,7495968,7564129,7565165,7610483,7627040,7628064,7628146,7629164,7631904,7758194,14971424,16151072])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1252":"ISO-8859-1"}},n.inherits(e.exports.ISO_8859_1,A),e.exports.ISO_8859_2=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,177,32,179,32,181,182,32,32,185,186,187,188,32,190,191,32,177,32,179,32,181,182,183,32,185,186,187,188,32,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[new s("cs",[2122016,2122361,2122863,2124389,2125409,2125413,2125600,2125668,2125935,2125938,2126072,2126447,2126693,2126703,2126708,2126959,2127392,2127481,2128481,6365296,6513952,6514720,6627440,6627443,6627446,6647072,6647533,6844192,6844260,6910836,6972704,7042149,7103776,7104800,7233824,7268640,7269408,7269664,7282800,7300206,7301737,7304052,7304480,7304801,7368548,7368554,7369327,7403621,7562528,7565173,7566433,7566441,7566446,7628146,7630573,7630624,7676016,12477728,14773997,15296623,15540336,15540339,15559968,16278884]),new s("hu",[2122016,2122106,2122341,2123111,2123116,2123365,2123873,2123887,2124147,2124645,2124649,2124790,2124901,2125153,2125157,2125161,2125413,2126714,2126949,2156915,6365281,6365291,6365293,6365299,6384416,6385184,6388256,6447470,6448494,6645625,6646560,6646816,6646885,6647072,6647328,6648421,6648864,6648933,6648948,6781216,6844263,6909556,6910752,7020641,7075450,7169383,7170414,7217249,7233899,7234923,7234925,7238688,7300985,7544929,7567973,7567988,7568097,7596391,7610465,7631904,7659891,8021362,14773792,15299360]),new s("pl",[2122618,2122863,2124064,2124389,2124655,2125153,2125161,2125409,2125417,2125668,2125935,2125938,2126697,2127648,2127721,2127737,2128416,2128481,6365296,6365303,6385257,6514720,6519397,6519417,6582048,6584937,6627440,6627443,6627447,6627450,6645615,6646304,6647072,6647401,6778656,6906144,6907168,6907242,7037216,7039264,7039333,7170405,7233824,7235937,7235941,7282800,7305057,7305065,7368556,7369313,7369327,7369338,7502437,7502457,7563754,7564137,7566433,7825765,7955304,7957792,8021280,8022373,8026400,15955744]),new s("ro",[2122016,2122083,2122593,2122597,2122607,2122613,2122853,2122857,2124897,2125153,2125925,2125938,2126693,2126819,2127214,2144873,2158190,6365283,6365284,6386277,6386720,6386789,6386976,6513010,6516590,6518048,6546208,6579488,6627425,6627427,6627428,6627440,6627443,6644e3,6646048,6646885,6647412,6648692,6889569,6889571,6889572,6889584,6907168,6908192,6909472,7102752,7103776,7106418,7107945,7234848,7238770,7303712,7365998,7496992,7497057,7501088,7594784,7628064,7631477,7660320,7694624,7695392,12216608,15625760])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1250":"ISO-8859-2"}},n.inherits(e.exports.ISO_8859_2,A),e.exports.ISO_8859_5=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,241,242,243,244,245,246,247,248,249,250,251,252,32,254,255]},this.ngrams=function(){return[2150944,2151134,2151646,2152400,2152480,2153168,2153182,2153936,2153941,2154193,2154462,2154464,2154704,2154974,2154978,2155230,2156514,2158050,13688280,13689580,13884960,14015468,14015960,14016994,14017056,14164191,14210336,14211104,14216992,14407133,14407712,14413021,14536736,14538016,14538965,14538991,14540320,14540498,14557394,14557407,14557409,14602784,14602960,14603230,14604576,14605292,14605344,14606818,14671579,14672085,14672088,14672094,14733522,14734804,14803664,14803666,14803672,14806816,14865883,14868e3,14868192,14871584,15196894,15459616]},this.name=function(e){return"ISO-8859-5"},this.language=function(){return"ru"}},n.inherits(e.exports.ISO_8859_5,A),e.exports.ISO_8859_6=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]},this.ngrams=function(){return[2148324,2148326,2148551,2152932,2154986,2155748,2156006,2156743,13050055,13091104,13093408,13095200,13100064,13100227,13100231,13100232,13100234,13100236,13100237,13100239,13100243,13100249,13100258,13100261,13100264,13100266,13100320,13100576,13100746,13115591,13181127,13181153,13181156,13181157,13181160,13246663,13574343,13617440,13705415,13748512,13836487,14229703,14279913,14805536,14950599,14993696,15001888,15002144,15016135,15058720,15059232,15066656,15081671,15147207,15189792,15255524,15263264,15278279,15343815,15343845,15343848,15386912,15388960,15394336]},this.name=function(e){return"ISO-8859-6"},this.language=function(){return"ar"}},n.inherits(e.exports.ISO_8859_6,A),e.exports.ISO_8859_7=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,161,162,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,220,32,221,222,223,32,252,32,253,254,192,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,32,243,244,245,246,247,248,249,250,251,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,32]},this.ngrams=function(){return[2154989,2154992,2155497,2155753,2156016,2156320,2157281,2157797,2158049,2158368,2158817,2158831,2158833,2159604,2159605,2159847,2159855,14672160,14754017,14754036,14805280,14806304,14807292,14807584,14936545,15067424,15069728,15147252,15199520,15200800,15278324,15327520,15330014,15331872,15393257,15393268,15525152,15540449,15540453,15540464,15589664,15725088,15725856,15790069,15790575,15793184,15868129,15868133,15868138,15868144,15868148,15983904,15984416,15987951,16048416,16048617,16050157,16050162,16050666,16052e3,16052213,16054765,16379168,16706848]},this.name=function(e){return e&&e.fC1Bytes?"windows-1253":"ISO-8859-7"},this.language=function(){return"el"}},n.inherits(e.exports.ISO_8859_7,A),e.exports.ISO_8859_8=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,32,32,32,32,32]},this.ngrams=function(){return[new s("he",[2154725,2154727,2154729,2154746,2154985,2154990,2155744,2155749,2155753,2155758,2155762,2155769,2155770,2157792,2157796,2158304,2159340,2161132,14744096,14950624,14950625,14950628,14950636,14950638,14950649,15001056,15065120,15068448,15068960,15071264,15071776,15278308,15328288,15328762,15329773,15330592,15331104,15333408,15333920,15474912,15474916,15523872,15524896,15540448,15540449,15540452,15540460,15540462,15540473,15655968,15671524,15787040,15788320,15788525,15920160,16261348,16312813,16378912,16392416,16392417,16392420,16392428,16392430,16392441]),new s("he",[2154725,2154732,2155753,2155756,2155758,2155760,2157040,2157810,2157817,2158053,2158057,2158565,2158569,2160869,2160873,2161376,2161381,2161385,14688484,14688492,14688493,14688506,14738464,14738916,14740512,14741024,14754020,14754029,14754042,14950628,14950633,14950636,14950637,14950639,14950648,14950650,15002656,15065120,15066144,15196192,15327264,15327520,15328288,15474916,15474925,15474938,15528480,15530272,15591913,15591920,15591928,15605988,15605997,15606010,15655200,15655968,15918112,16326884,16326893,16326906,16376864,16441376,16442400,16442857])]},this.name=function(e){return e&&e.fC1Bytes?"windows-1255":"ISO-8859-8"},this.language=function(){return"he"}},n.inherits(e.exports.ISO_8859_8,A),e.exports.ISO_8859_9=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,186,32,32,32,32,32,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,105,254,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,32,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2122337,2122345,2122357,2122849,2122853,2123621,2123873,2124140,2124641,2124655,2125153,2125676,2126689,2126945,2127461,2128225,6365282,6384416,6384737,6384993,6385184,6385405,6386208,6386273,6386429,6386685,6388065,6449522,6578464,6579488,6580512,6627426,6627435,6644841,6647328,6648352,6648425,6648681,6909029,6909472,6909545,6910496,7102830,7102834,7103776,7103858,7217249,7217250,7217259,7234657,7234661,7234848,7235872,7235950,7273760,7498094,7535982,7759136,7954720,7958386,16608800,16608868,16609021,16642301]},this.name=function(e){return e&&e.fC1Bytes?"windows-1254":"ISO-8859-9"},this.language=function(){return"tr"}},n.inherits(e.exports.ISO_8859_9,A),e.exports.windows_1251=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,144,131,32,131,32,32,32,32,32,32,154,32,156,157,158,159,144,32,32,32,32,32,32,32,32,32,154,32,156,157,158,159,32,162,162,188,32,180,32,32,184,32,186,32,32,32,32,191,32,32,179,179,180,181,32,32,184,32,186,32,188,190,190,191,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255]},this.ngrams=function(){return[2155040,2155246,2155758,2156512,2156576,2157280,2157294,2158048,2158053,2158305,2158574,2158576,2158816,2159086,2159090,2159342,2160626,2162162,14740968,14742268,14937632,15068156,15068648,15069682,15069728,15212783,15263008,15263776,15269664,15459821,15460384,15465709,15589408,15590688,15591653,15591679,15592992,15593186,15605986,15605999,15606001,15655456,15655648,15655918,15657248,15657980,15658016,15659506,15724267,15724773,15724776,15724782,15786210,15787492,15856352,15856354,15856360,15859488,15918571,15920672,15920880,15924256,16249582,16512288]},this.name=function(e){return"windows-1251"},this.language=function(){return"ru"}},n.inherits(e.exports.windows_1251,A),e.exports.windows_1256=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,129,32,131,32,32,32,32,136,32,138,32,156,141,142,143,144,32,32,32,32,32,32,32,152,32,154,32,156,32,32,159,32,32,32,32,32,32,32,32,32,32,170,32,32,32,32,32,32,32,32,32,32,181,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,32,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,32,32,32,32,244,32,32,32,32,249,32,251,252,32,32,255]},this.ngrams=function(){return[2148321,2148324,2148551,2153185,2153965,2154977,2155492,2156231,13050055,13091104,13093408,13095200,13099296,13099459,13099463,13099464,13099466,13099468,13099469,13099471,13099475,13099482,13099486,13099491,13099494,13099501,13099808,13100064,13100234,13115591,13181127,13181149,13181153,13181155,13181158,13246663,13574343,13617440,13705415,13748512,13836487,14295239,14344684,14544160,14753991,14797088,14806048,14806304,14885063,14927648,14928160,14935072,14950599,15016135,15058720,15124449,15131680,15474887,15540423,15540451,15540454,15583520,15585568,15590432]},this.name=function(e){return"windows-1256"},this.language=function(){return"ar"}},n.inherits(e.exports.windows_1256,A),e.exports.KOI8_R=function(){this.byteMap=function(){return[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,163,32,32,32,32,32,32,32,32,32,32,32,32,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223]},this.ngrams=function(){return[2147535,2148640,2149313,2149327,2150081,2150085,2150338,2150607,2150610,2151105,2151375,2151380,2151631,2152224,2152399,2153153,2153684,2154196,12701385,12702936,12963032,12963529,12964820,12964896,13094688,13181136,13223200,13224224,13226272,13419982,13420832,13424846,13549856,13550880,13552069,13552081,13553440,13553623,13574352,13574355,13574359,13617103,13617696,13618392,13618464,13620180,13621024,13621185,13684684,13685445,13685449,13685455,13812183,13813188,13881632,13882561,13882569,13882583,13944268,13946656,13946834,13948960,14272544,14603471]},this.name=function(e){return"KOI8-R"},this.language=function(){return"ru"}},n.inherits(e.exports.KOI8_R,A)},48794:(e,t,r)=>{"use strict";var n=r(31669),i=r(24250);function o(){}e.exports.UTF_16BE=function(){this.name=function(){return"UTF-16BE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&254==(255&t[0])&&255==(255&t[1])?new i(e,this,100):null}},e.exports.UTF_16LE=function(){this.name=function(){return"UTF-16LE"},this.match=function(e){var t=e.fRawInput;return t.length>=2&&255==(255&t[0])&&254==(255&t[1])?t.length>=4&&0==t[2]&&0==t[3]?null:new i(e,this,100):null}},o.prototype.match=function(e){var t=e.fRawInput,r=e.fRawLength/4*4,n=0,o=0,s=!1,A=0;if(0==r)return null;65279==this.getChar(t,0)&&(s=!0);for(var a=0;a<r;a+=4){var c=this.getChar(t,a);c<0||c>=1114111||c>=55296&&c<=57343?o+=1:n+=1}return s&&0==o?A=100:s&&n>10*o?A=80:n>3&&0==o?A=100:n>0&&0==o?A=80:n>10*o&&(A=25),0==A?null:new i(e,this,A)},e.exports.UTF_32BE=function(){this.name=function(){return"UTF-32BE"},this.getChar=function(e,t){return(255&e[t+0])<<24|(255&e[t+1])<<16|(255&e[t+2])<<8|255&e[t+3]}},n.inherits(e.exports.UTF_32BE,o),e.exports.UTF_32LE=function(){this.name=function(){return"UTF-32LE"},this.getChar=function(e,t){return(255&e[t+3])<<24|(255&e[t+2])<<16|(255&e[t+1])<<8|255&e[t+0]}},n.inherits(e.exports.UTF_32LE,o)},76023:(e,t,r)=>{var n=r(24250);e.exports=function(){this.name=function(){return"UTF-8"},this.match=function(e){var t,r=!1,i=0,o=0,s=e.fRawInput,A=0;e.fRawLength>=3&&239==(255&s[0])&&187==(255&s[1])&&191==(255&s[2])&&(r=!0);for(var a=0;a<e.fRawLength;a++){var c=s[a];if(0!=(128&c)){if(192==(224&c))A=1;else if(224==(240&c))A=2;else if(240==(248&c))A=3;else{if(++o>5)break;A=0}for(;!(++a>=e.fRawLength);){if(128!=(192&s[a])){o++;break}if(0==--A){i++;break}}}}if(t=0,r&&0==o)t=100;else if(r&&i>10*o)t=80;else if(i>3&&0==o)t=100;else if(i>0&&0==o)t=80;else if(0==i&&0==o)t=10;else{if(!(i>10*o))return null;t=25}return new n(e,this,t)}}},80848:function(e,t,r){var n=r(35747),i=r(76023),o=r(48794),s=r(9044),A=r(71216),a=r(31059),c=this,u=[new i,new o.UTF_16BE,new o.UTF_16LE,new o.UTF_32BE,new o.UTF_32LE,new s.sjis,new s.big5,new s.euc_jp,new s.euc_kr,new s.gb_18030,new a.ISO_2022_JP,new a.ISO_2022_KR,new a.ISO_2022_CN,new A.ISO_8859_1,new A.ISO_8859_2,new A.ISO_8859_5,new A.ISO_8859_6,new A.ISO_8859_7,new A.ISO_8859_8,new A.ISO_8859_9,new A.windows_1251,new A.windows_1256,new A.KOI8_R];e.exports.detect=function(e,t){for(var r=[],n=0;n<256;n++)r[n]=0;for(n=e.length-1;n>=0;n--)r[255&e[n]]++;var i=!1;for(n=128;n<=159;n+=1)if(0!=r[n]){i=!0;break}var o={fByteStats:r,fC1Bytes:i,fRawInput:e,fRawLength:e.length,fInputBytes:e,fInputLen:e.length},s=u.map((function(e){return e.match(o)})).filter((function(e){return!!e})).sort((function(e,t){return t.confidence-e.confidence}));return t&&!0===t.returnAllMatches?s:s.length>0?s[0].name:null},e.exports.detectFile=function(e,t,r){var i;"function"==typeof t&&(r=t,t=void 0);var o=function(e,o){if(i&&n.closeSync(i),e)return r(e,null);r(null,c.detect(o,t))};if(t&&t.sampleSize)return i=n.openSync(e,"r"),sample=Buffer.allocUnsafe(t.sampleSize),void n.read(i,sample,0,t.sampleSize,null,(function(e){o(e,sample)}));n.readFile(e,o)},e.exports.detectFileSync=function(e,t){if(t&&t.sampleSize){var r=n.openSync(e,"r"),i=Buffer.allocUnsafe(t.sampleSize);return n.readSync(r,i,0,t.sampleSize),n.closeSync(r),c.detect(i,t)}return c.detect(n.readFileSync(e),t)},e.exports.detectAll=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detect(e,t)},e.exports.detectFileAll=function(e,t,r){"function"==typeof t&&(r=t,t=void 0),"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFile(e,t,r)},e.exports.detectFileAllSync=function(e,t){return"object"!=typeof t&&(t={}),t.returnAllMatches=!0,c.detectFileSync(e,t)}},24250:e=>{e.exports=function(e,t,r,n,i){this.confidence=r,this.name=n||t.name(e),this.lang=i}},82758:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),o=n.lchown?"lchown":"chown",s=n.lchownSync?"lchownSync":"chownSync",A=process.version;let a=(e,t,r)=>n.readdir(e,t,r);/^v4\./.test(A)&&(a=(e,t,r)=>n.readdir(e,r));const c=(e,t,r,s,A)=>{if("string"==typeof t)return n.lstat(i.resolve(e,t),(n,i)=>{if(n)return A(n);i.name=t,c(e,i,r,s,A)});t.isDirectory()?u(i.resolve(e,t.name),r,s,a=>{if(a)return A(a);n[o](i.resolve(e,t.name),r,s,A)}):n[o](i.resolve(e,t.name),r,s,A)},u=(e,t,r,i)=>{a(e,{withFileTypes:!0},(s,A)=>{if(s&&"ENOTDIR"!==s.code&&"ENOTSUP"!==s.code)return i(s);if(s||!A.length)return n[o](e,t,r,i);let a=A.length,u=null;const l=s=>{if(!u)return s?i(u=s):0==--a?n[o](e,t,r,i):void 0};A.forEach(n=>c(e,n,t,r,l))})},l=(e,t,r)=>{let o;try{o=((e,t)=>n.readdirSync(e,t))(e,{withFileTypes:!0})}catch(i){if(i&&"ENOTDIR"===i.code&&"ENOTSUP"!==i.code)return n[s](e,t,r);throw i}return o.length&&o.forEach(o=>((e,t,r,o)=>{if("string"==typeof t){const r=n.lstatSync(i.resolve(e,t));r.name=t,t=r}t.isDirectory()&&l(i.resolve(e,t.name),r,o),n[s](i.resolve(e,t.name),r,o)})(e,o,t,r)),n[s](e,t,r)};e.exports=u,u.sync=l},5864:(e,t,r)=>{"use strict";var n=r(85832),i=process.env;function o(e){return"string"==typeof e?!!i[e]:Object.keys(e).every((function(t){return i[t]===e[t]}))}Object.defineProperty(t,"_vendors",{value:n.map((function(e){return e.constant}))}),t.name=null,t.isPR=null,n.forEach((function(e){var r=(Array.isArray(e.env)?e.env:[e.env]).every((function(e){return o(e)}));if(t[e.constant]=r,r)switch(t.name=e.name,typeof e.pr){case"string":t.isPR=!!i[e.pr];break;case"object":"env"in e.pr?t.isPR=e.pr.env in i&&i[e.pr.env]!==e.pr.ne:"any"in e.pr?t.isPR=e.pr.any.some((function(e){return!!i[e]})):t.isPR=o(e.pr);break;default:t.isPR=null}})),t.isCI=!!(i.CI||i.CONTINUOUS_INTEGRATION||i.BUILD_NUMBER||i.RUN_ID||t.name)},85832:e=>{"use strict";e.exports=JSON.parse('[{"name":"AppVeyor","constant":"APPVEYOR","env":"APPVEYOR","pr":"APPVEYOR_PULL_REQUEST_NUMBER"},{"name":"Azure Pipelines","constant":"AZURE_PIPELINES","env":"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI","pr":"SYSTEM_PULLREQUEST_PULLREQUESTID"},{"name":"Bamboo","constant":"BAMBOO","env":"bamboo_planKey"},{"name":"Bitbucket Pipelines","constant":"BITBUCKET","env":"BITBUCKET_COMMIT","pr":"BITBUCKET_PR_ID"},{"name":"Bitrise","constant":"BITRISE","env":"BITRISE_IO","pr":"BITRISE_PULL_REQUEST"},{"name":"Buddy","constant":"BUDDY","env":"BUDDY_WORKSPACE_ID","pr":"BUDDY_EXECUTION_PULL_REQUEST_ID"},{"name":"Buildkite","constant":"BUILDKITE","env":"BUILDKITE","pr":{"env":"BUILDKITE_PULL_REQUEST","ne":"false"}},{"name":"CircleCI","constant":"CIRCLE","env":"CIRCLECI","pr":"CIRCLE_PULL_REQUEST"},{"name":"Cirrus CI","constant":"CIRRUS","env":"CIRRUS_CI","pr":"CIRRUS_PR"},{"name":"AWS CodeBuild","constant":"CODEBUILD","env":"CODEBUILD_BUILD_ARN"},{"name":"Codeship","constant":"CODESHIP","env":{"CI_NAME":"codeship"}},{"name":"Drone","constant":"DRONE","env":"DRONE","pr":{"DRONE_BUILD_EVENT":"pull_request"}},{"name":"dsari","constant":"DSARI","env":"DSARI"},{"name":"GitLab CI","constant":"GITLAB","env":"GITLAB_CI"},{"name":"GoCD","constant":"GOCD","env":"GO_PIPELINE_LABEL"},{"name":"Hudson","constant":"HUDSON","env":"HUDSON_URL"},{"name":"Jenkins","constant":"JENKINS","env":["JENKINS_URL","BUILD_ID"],"pr":{"any":["ghprbPullId","CHANGE_ID"]}},{"name":"Magnum CI","constant":"MAGNUM","env":"MAGNUM"},{"name":"Netlify CI","constant":"NETLIFY","env":"NETLIFY_BUILD_BASE","pr":{"env":"PULL_REQUEST","ne":"false"}},{"name":"Sail CI","constant":"SAIL","env":"SAILCI","pr":"SAIL_PULL_REQUEST_NUMBER"},{"name":"Semaphore","constant":"SEMAPHORE","env":"SEMAPHORE","pr":"PULL_REQUEST_NUMBER"},{"name":"Shippable","constant":"SHIPPABLE","env":"SHIPPABLE","pr":{"IS_PULL_REQUEST":"true"}},{"name":"Solano CI","constant":"SOLANO","env":"TDDIUM","pr":"TDDIUM_PR_ID"},{"name":"Strider CD","constant":"STRIDER","env":"STRIDER"},{"name":"TaskCluster","constant":"TASKCLUSTER","env":["TASK_ID","RUN_ID"]},{"name":"TeamCity","constant":"TEAMCITY","env":"TEAMCITY_VERSION"},{"name":"Travis CI","constant":"TRAVIS","env":"TRAVIS","pr":{"env":"TRAVIS_PULL_REQUEST","ne":"false"}}]')},61696:(e,t,r)=>{"use strict";const n=r(3390);let i=!1;t.show=(e=process.stderr)=>{e.isTTY&&(i=!1,e.write("[?25h"))},t.hide=(e=process.stderr)=>{e.isTTY&&(n(),i=!0,e.write("[?25l"))},t.toggle=(e,r)=>{void 0!==e&&(i=e),i?t.show(r):t.hide(r)}},17945:(e,t,r)=>{"use strict";e.exports=function(e){var t=function(e){var t={defaultWidth:0,output:process.stdout,tty:r(33867)};return e?(Object.keys(t).forEach((function(r){e[r]||(e[r]=t[r])})),e):t}(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){var n=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(n)&&0!==n)return n}return t.defaultWidth}},17278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this.help=!1}static getMeta(e){const t=e.constructor;return t.meta=Object.prototype.hasOwnProperty.call(t,"meta")?t.meta:{definitions:[],transformers:[(e,t)=>{for(const{name:r,value:n}of e.options)"-h"!==r&&"--help"!==r||(t.help=n)}]}}static resolveMeta(e){const t=[],n=[];for(let i=e;i instanceof r;i=i.__proto__){const e=this.getMeta(i);for(const r of e.definitions)t.push(r);for(const t of e.transformers)n.push(t)}return{definitions:t,transformers:n}}static registerDefinition(e,t){this.getMeta(e).definitions.push(t)}static registerTransformer(e,t){this.getMeta(e).transformers.push(t)}static addPath(...e){this.Path(...e)(this.prototype,"execute")}static addOption(e,t){t(this.prototype,e)}static Path(...e){return(t,r)=>{this.registerDefinition(t,t=>{t.addPath(e)})}}static Boolean(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:0,hidden:t,allowBinding:!1})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=o)})}}static String(e={required:!0},{tolerateBoolean:t=!1,hidden:r=!1}={}){return(n,i)=>{if("string"==typeof e){const o=e.split(",");this.registerDefinition(n,e=>{e.addOption({names:o,arity:t?0:1,hidden:r})}),this.registerTransformer(n,(e,t)=>{for(const{name:r,value:n}of e.options)o.includes(r)&&(t[i]=n)})}else this.registerDefinition(n,t=>{t.addPositional({name:i,required:e.required})}),this.registerTransformer(n,(e,t)=>{e.positionals.length>0&&(t[i]=e.positionals.shift().value)})}}static Array(e,{hidden:t=!1}={}){return(r,n)=>{const i=e.split(",");this.registerDefinition(r,e=>{e.addOption({names:i,arity:1,hidden:t})}),this.registerTransformer(r,(e,t)=>{for(const{name:r,value:o}of e.options)i.includes(r)&&(t[n]=t[n]||[],t[n].push(o))})}}static Rest({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addRest({name:r,required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Proxy({required:e=0}={}){return(t,r)=>{this.registerDefinition(t,t=>{t.addProxy({required:e})}),this.registerTransformer(t,(e,t)=>{t[r]=e.positionals.map(({value:e})=>e)})}}static Usage(e){return e}static Schema(e){return e}async validateAndExecute(){const e=this.constructor.schema;if(void 0!==e)try{await e.validate(this)}catch(e){throw"ValidationError"===e.name&&(e.clipanion={type:"usage"}),e}const t=await this.execute();return void 0!==t?t:0}}
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-function n(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}r.Entries={};class i extends r{async execute(){this.context.stdout.write(this.cli.usage(null))}}n([r.Path("--help"),r.Path("-h")],i.prototype,"execute",null);class o extends r{async execute(){var e;this.context.stdout.write((null!==(e=this.cli.binaryVersion)&&void 0!==e?e:"<unknown>")+"\n")}}n([r.Path("--version"),r.Path("-v")],o.prototype,"execute",null);const s=/^(-h|--help)(?:=([0-9]+))?$/,A=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,a=/^-[a-zA-Z]{2,}$/,c=/^([^=]+)=([\s\S]*)$/,u="1"===process.env.DEBUG_CLI;class l extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}}class h extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",0===this.candidates.length)this.message="Command not found, but we're not sure what's the alternative.";else if(1===this.candidates.length&&null!==this.candidates[0].reason){const[{usage:e,reason:t}]=this.candidates;this.message=`${t}\n\n$ ${e}`}else if(1===this.candidates.length){const[{usage:t}]=this.candidates;this.message=`Command not found; did you mean:\n\n$ ${t}\n${f(e)}`}else this.message=`Command not found; did you mean one of:\n\n${this.candidates.map(({usage:e},t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}class g extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find who to pick amongst the following alternatives:\n\n${this.usages.map((e,t)=>`${(t+".").padStart(4)} ${e}`).join("\n")}\n\n${f(e)}`}}const f=e=>"While running "+e.filter(e=>"\0"!==e).map(e=>{const t=JSON.stringify(e);return e.match(/\s/)||0===e.length||t!==`"${e}"`?t:e}).join(" ");function p(e){u&&console.log(e)}function d(e,t){return e.nodes.push(t),e.nodes.length-1}function C(e,t,r=!1){p("Running a vm on "+JSON.stringify(t));let n=[{node:0,state:{candidateUsage:null,errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];!function(e,{prefix:t=""}={}){p(t+"Nodes are:");for(let r=0;r<e.nodes.length;++r)p(`${t}  ${r}: ${JSON.stringify(e.nodes[r])}`)}(e,{prefix:"  "});const i=["",...t];for(let o=0;o<i.length;++o){const s=i[o];p("  Processing "+JSON.stringify(s));const A=[];for(const{node:t,state:a}of n){p("    Current node is "+t);const n=e.nodes[t];if(2===t){A.push({node:t,state:a});continue}console.assert(0===n.shortcuts.length,"Shortcuts should have been eliminated by now");const c=Object.prototype.hasOwnProperty.call(n.statics,s);if(!r||o<i.length-1||c)if(c){const e=n.statics[s];for(const{to:t,reducer:r}of e)A.push({node:t,state:void 0!==r?b(x,r,a,s):a}),p(`      Static transition to ${t} found`)}else p("      No static transition found");else{let e=!1;for(const t of Object.keys(n.statics))if(t.startsWith(s)){if(s===t)for(const{to:e,reducer:r}of n.statics[t])A.push({node:e,state:void 0!==r?b(x,r,a,s):a}),p(`      Static transition to ${e} found`);else for(const{to:e,reducer:r}of n.statics[t])A.push({node:e,state:Object.assign(Object.assign({},a),{remainder:t.slice(s.length)})}),p(`      Static transition to ${e} found (partial match)`);e=!0}e||p("      No partial static transition found")}if("\0"!==s)for(const[e,{to:t,reducer:r}]of n.dynamics)b(k,e,a,s)&&(A.push({node:t,state:void 0!==r?b(x,r,a,s):a}),p(`      Dynamic transition to ${t} found (via ${e})`))}if(0===A.length)throw new h(t,n.filter(({node:e})=>2!==e).map(({state:e})=>({usage:e.candidateUsage,reason:null})));if(A.every(({node:e})=>2===e))throw new h(t,A.map(({state:e})=>({usage:e.candidateUsage,reason:e.errorMessage})));n=m(A)}if(n.length>0){p("  Results:");for(const e of n)p(`    - ${e.node} -> ${JSON.stringify(e.state)}`)}else p("  No results");return n}function E(e,t){if(null!==t.selectedIndex)return!0;if(Object.prototype.hasOwnProperty.call(e.statics,"\0"))for(const{to:t}of e.statics["\0"])if(1===t)return!0;return!1}function I(e,t){return function(e,t){const r=t.filter(e=>null!==e.selectedIndex);if(0===r.length)throw new Error;let n=0;for(const e of r)e.path.length>n&&(n=e.path.length);const i=r.filter(e=>e.path.length===n),o=e=>e.positionals.filter(({extra:e})=>!e).length+e.options.length,s=i.map(e=>({state:e,positionalCount:o(e)}));let A=0;for(const{positionalCount:e}of s)e>A&&(A=e);const a=function(e){const t=[],r=[];for(const n of e)-1===n.selectedIndex?r.push(...n.options):t.push(n);r.length>0&&t.push({candidateUsage:null,errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:r,remainder:null,selectedIndex:-1});return t}(s.filter(({positionalCount:e})=>e===A).map(({state:e})=>e));if(a.length>1)throw new g(e,a.map(e=>e.candidateUsage));return a[0]}(t,C(e,[...t,"\0"]).map(({state:e})=>e))}function m(e){let t=0;for(const{state:r}of e)r.path.length>t&&(t=r.path.length);return e.filter(({state:e})=>e.path.length===t)}function y(e){return 1===e||2===e}function w(e,t=0){return{to:y(e.to)?e.to:e.to>2?e.to+t-2:e.to+t,reducer:e.reducer}}function B(e,t=0){const r={dynamics:[],shortcuts:[],statics:{}};for(const[n,i]of e.dynamics)r.dynamics.push([n,w(i,t)]);for(const n of e.shortcuts)r.shortcuts.push(w(n,t));for(const[n,i]of Object.entries(e.statics))r.statics[n]=i.map(e=>w(e,t));return r}function Q(e,t,r,n,i){e.nodes[t].dynamics.push([r,{to:n,reducer:i}])}function v(e,t,r,n){e.nodes[t].shortcuts.push({to:r,reducer:n})}function D(e,t,r,n,i){(Object.prototype.hasOwnProperty.call(e.nodes[t].statics,r)?e.nodes[t].statics[r]:e.nodes[t].statics[r]=[]).push({to:n,reducer:i})}function b(e,t,r,n){if(Array.isArray(t)){const[i,...o]=t;return e[i](r,n,...o)}return e[t](r,n)}function S(e,t){const r=Array.isArray(e)?k[e[0]]:k[e];if(void 0===r.suggest)return null;const n=Array.isArray(e)?e.slice(1):[];return r.suggest(t,...n)}const k={always:()=>!0,isNotOptionLike:(e,t)=>e.ignoreOptions||!t.startsWith("-"),isOption:(e,t,r,n)=>!e.ignoreOptions&&t===r,isBatchOption:(e,t,r)=>!e.ignoreOptions&&a.test(t)&&[...t.slice(1)].every(e=>r.includes("-"+e)),isBoundOption:(e,t,r,n)=>{const i=t.match(c);return!e.ignoreOptions&&!!i&&A.test(i[1])&&r.includes(i[1])&&n.filter(e=>e.names.includes(i[1])).every(e=>e.allowBinding)},isNegatedOption:(e,t,r)=>!e.ignoreOptions&&t==="--no-"+r.slice(2),isHelp:(e,t)=>!e.ignoreOptions&&s.test(t),isUnsupportedOption:(e,t,r)=>!e.ignoreOptions&&t.startsWith("-")&&A.test(t)&&!r.includes(t),isInvalidOption:(e,t)=>!e.ignoreOptions&&t.startsWith("-")&&!A.test(t)};k.isOption.suggest=(e,t,r=!0)=>r?null:[t];const x={setCandidateUsage:(e,t,r)=>Object.assign(Object.assign({},e),{candidateUsage:r}),setSelectedIndex:(e,t,r)=>Object.assign(Object.assign({},e),{selectedIndex:r}),pushBatch:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat([...t.slice(1)].map(e=>({name:"-"+e,value:!0})))}),pushBound:(e,t)=>{const[,r,n]=t.match(c);return Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:n})})},pushPath:(e,t)=>Object.assign(Object.assign({},e),{path:e.path.concat(t)}),pushPositional:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!1})}),pushExtra:(e,t)=>Object.assign(Object.assign({},e),{positionals:e.positionals.concat({value:t,extra:!0})}),pushTrue:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:!0})}),pushFalse:(e,t,r=t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:r,value:!1})}),pushUndefined:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.concat({name:t,value:void 0})}),setStringValue:(e,t)=>Object.assign(Object.assign({},e),{options:e.options.slice(0,-1).concat(Object.assign(Object.assign({},e.options[e.options.length-1]),{value:t}))}),inhibateOptions:e=>Object.assign(Object.assign({},e),{ignoreOptions:!0}),useHelp:(e,t,r)=>{const[,n,i]=t.match(s);return void 0!==i?Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):Object.assign(Object.assign({},e),{options:[{name:"-c",value:String(r)}]})},setError:(e,t,r)=>"\0"===t?Object.assign(Object.assign({},e),{errorMessage:r+"."}):Object.assign(Object.assign({},e),{errorMessage:`${r} ("${t}").`})},F=Symbol();class M{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:r=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:r,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===F)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");t||this.arity.extra===F?this.arity.extra!==F&&0===this.arity.extra.length?this.arity.leading.push(e):this.arity.trailing.push(e):this.arity.extra.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===F)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let r=0;r<t;++r)this.addPositional({name:e});this.arity.extra=F}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,arity:t=0,hidden:r=!1,allowBinding:n=!0}){this.allOptionNames.push(...e),this.options.push({names:e,arity:t,hidden:r,allowBinding:n})}setContext(e){this.context=e}usage({detailed:e=!0}={}){const t=[this.cliOpts.binaryName];if(this.paths.length>0&&t.push(...this.paths[0]),e){for(const{names:e,arity:r,hidden:n}of this.options){if(n)continue;const i=[];for(let e=0;e<r;++e)i.push(" #"+e);t.push(`[${e.join(",")}${i.join("")}]`)}t.push(...this.arity.leading.map(e=>`<${e}>`)),this.arity.extra===F?t.push("..."):t.push(...this.arity.extra.map(e=>`[${e}]`)),t.push(...this.arity.trailing.map(e=>`<${e}>`))}return t.join(" ")}compile(){if(void 0===this.context)throw new Error("Assertion failed: No context attached");const e={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]};let t=0;t=d(e,{dynamics:[],shortcuts:[],statics:{}}),D(e,0,"",t,["setCandidateUsage",this.usage()]);const r=this.arity.proxy?"always":"isNotOptionLike",n=this.paths.length>0?this.paths:[[]];for(const i of n){let n=t;if(i.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});v(e,n,t),this.registerOptions(e,t),n=t}for(let t=0;t<i.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});D(e,n,i[t],r,"pushPath"),n=r}if(this.arity.leading.length>0||!this.arity.proxy){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,n,"isHelp",t,["useHelp",this.cliIndex]),D(e,t,"\0",1,["setSelectedIndex",-1]),this.registerOptions(e,n)}this.arity.leading.length>0&&D(e,n,"\0",2,["setError","Not enough positional arguments"]);let o=n;for(let t=0;t<this.arity.leading.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,r),(this.arity.trailing.length>0||t+1!==this.arity.leading.length)&&D(e,r,"\0",2,["setError","Not enough positional arguments"]),Q(e,o,"isNotOptionLike",r,"pushPositional"),o=r}let s=o;if(this.arity.extra===F||this.arity.extra.length>0){const t=d(e,{dynamics:[],shortcuts:[],statics:{}});if(v(e,o,t),this.arity.extra===F){const n=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),Q(e,o,r,n,"pushExtra"),Q(e,n,r,n,"pushExtra"),v(e,n,t)}else for(let n=0;n<this.arity.extra.length;++n){const n=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,n),Q(e,s,r,n,"pushExtra"),v(e,n,t),s=n}s=t}this.arity.trailing.length>0&&D(e,s,"\0",2,["setError","Not enough positional arguments"]);let A=s;for(let t=0;t<this.arity.trailing.length;++t){const r=d(e,{dynamics:[],shortcuts:[],statics:{}});this.arity.proxy||this.registerOptions(e,r),t+1<this.arity.trailing.length&&D(e,r,"\0",2,["setError","Not enough positional arguments"]),Q(e,A,"isNotOptionLike",r,"pushPositional"),A=r}Q(e,A,r,2,["setError","Extraneous positional argument"]),D(e,A,"\0",1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Q(e,t,["isOption","--"],t,"inhibateOptions"),Q(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),Q(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),Q(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Q(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(const r of this.options){const n=r.names.reduce((e,t)=>t.length>e.length?t:e,"");if(0===r.arity)for(const i of r.names)Q(e,t,["isOption",i,r.hidden||i!==n],t,"pushTrue"),i.startsWith("--")&&Q(e,t,["isNegatedOption",i,r.hidden||i!==n],t,["pushFalse",i]);else{if(1!==r.arity)throw new Error(`Unsupported option arity (${r.arity})`);{const i=d(e,{dynamics:[],shortcuts:[],statics:{}});Q(e,i,"isNotOptionLike",t,"setStringValue");for(const o of r.names)Q(e,t,["isOption",o,r.hidden||o!==n],i,"pushUndefined")}}}}}class N{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new N(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(const t of e)t(this.command());return this}command(){const e=new M(this.builders.length,this.opts);return this.builders.push(e),e}compile(){const e=[],t=[];for(const r of this.builders){const{machine:n,context:i}=r.compile();e.push(n),t.push(i)}const r=function(e){const t={nodes:[{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}},{dynamics:[],shortcuts:[],statics:{}}]},r=[];let n=t.nodes.length;for(const i of e){r.push(n);for(let e=0;e<i.nodes.length;++e)y(e)||t.nodes.push(B(i.nodes[e],n));n+=i.nodes.length-2}for(const e of r)v(t,0,e);return t}(e);return function(e){const t=new Set,r=n=>{if(t.has(n))return;t.add(n);const i=e.nodes[n];for(const e of Object.values(i.statics))for(const{to:t}of e)r(t);for(const[,{to:e}]of i.dynamics)r(e);for(const{to:e}of i.shortcuts)r(e);const o=new Set(i.shortcuts.map(({to:e})=>e));for(;i.shortcuts.length>0;){const{to:t}=i.shortcuts.shift(),r=e.nodes[t];for(const[e,t]of Object.entries(r.statics)){let r=Object.prototype.hasOwnProperty.call(i.statics,e)?i.statics[e]:i.statics[e]=[];for(const e of t)r.some(({to:t})=>e.to===t)||r.push(e)}for(const[e,t]of r.dynamics)i.dynamics.some(([r,{to:n}])=>e===r&&t.to===n)||i.dynamics.push([e,t]);for(const e of r.shortcuts)o.has(e.to)||(i.shortcuts.push(e),o.add(e.to))}};r(0)}(r),{machine:r,contexts:t,process:e=>I(r,e),suggest:(e,t)=>function(e,t,r){const n=r&&t.length>0?[""]:[],i=C(e,t,r),o=[],s=new Set,A=(t,r,n=!0)=>{let i=[r];for(;i.length>0;){const r=i;i=[];for(const o of r){const r=e.nodes[o],s=Object.keys(r.statics);for(const e of Object.keys(r.statics)){const e=s[0];for(const{to:o,reducer:s}of r.statics[e])"pushPath"===s&&(n||t.push(e),i.push(o))}}n=!1}const A=JSON.stringify(t);s.has(A)||(o.push(t),s.add(A))};for(const{node:t,state:r}of i){if(null!==r.remainder){A([r.remainder],t);continue}const i=e.nodes[t],o=E(i,r);for(const[e,r]of Object.entries(i.statics))(o&&"\0"!==e||!e.startsWith("-")&&r.some(({reducer:e})=>"pushPath"===e))&&A([...n,e],t);if(o)for(const[e,{to:o}]of i.dynamics){if(2===o)continue;const i=S(e,r);if(null!==i)for(const e of i)A([...n,e],t)}}return[...o].sort()}(r,e,t)}}}const R={bold:e=>`[1m${e}[22m`,error:e=>`[31m[1m${e}[22m[39m`,code:e=>`[36m${e}[39m`},K={bold:e=>e,error:e=>e,code:e=>e};function L(e,{format:t,paragraphs:r}){return e=(e=(e=(e=(e=e.replace(/\r\n?/g,"\n")).replace(/^[\t ]+|[\t ]+$/gm,"")).replace(/^\n+|\n+$/g,"")).replace(/^-([^\n]*?)\n+/gm,"-$1\n\n")).replace(/\n(\n)?\n*/g,"$1"),r&&(e=e.split(/\n/).map((function(e){let t=e.match(/^[*-][\t ]+(.*)/);return t?t[1].match(/(.{1,78})(?: |$)/g).map((e,t)=>(0===t?"- ":"  ")+e).join("\n"):e.match(/(.{1,80})(?: |$)/g).join("\n")})).join("\n\n")),(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(function(e,r,n){return t.code(r+n+r)})))?e+"\n":""}class T extends r{constructor(e,t){super(),this.realCli=e,this.contexts=t,this.commands=[]}static from(e,t,r){const n=new T(t,r);for(const t of e.options)switch(t.name){case"-c":n.commands.push(Number(t.value));break;case"-i":n.index=Number(t.value)}return n}async execute(){let e=this.commands;if(void 0!==this.index&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),1===e.length)this.context.stdout.write(this.realCli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write("Multiple commands match your selection:\n"),this.context.stdout.write("\n");let e=0;for(const t of this.commands)this.context.stdout.write(this.realCli.usage(this.contexts[t].commandClass,{prefix:(e+++". ").padStart(5)}));this.context.stdout.write("\n"),this.context.stdout.write("Run again with -h=<index> to see the longer details of any of those commands.\n")}}}function P(){return"0"!==process.env.FORCE_COLOR&&("1"===process.env.FORCE_COLOR||!(void 0===process.stdout||!process.stdout.isTTY))}class U{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:r,enableColors:n=P()}={}){this.registrations=new Map,this.builder=new N({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=r,this.enableColors=n}static from(e){const t=new U;for(const r of e)t.register(r);return t}register(e){const t=this.builder.command();this.registrations.set(e,t.cliIndex);const{definitions:r}=e.resolveMeta(e.prototype);for(const e of r)e(t);t.setContext({commandClass:e})}process(e){const{contexts:t,process:r}=this.builder.compile(),n=r(e);switch(n.selectedIndex){case-1:return T.from(n,this,t);default:{const{commandClass:e}=t[n.selectedIndex],r=new e;r.path=n.path;const{transformers:i}=e.resolveMeta(e.prototype);for(const e of i)e(n,r);return r}}}async run(e,t){let r,n;if(Array.isArray(e))try{r=this.process(e)}catch(e){return t.stdout.write(this.error(e)),1}else r=e;if(r.help)return t.stdout.write(this.usage(r,{detailed:!0})),0;r.context=t,r.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,definitions:()=>this.definitions(),error:(e,t)=>this.error(e,t),process:e=>this.process(e),run:(e,r)=>this.run(e,Object.assign(Object.assign({},t),r)),usage:(e,t)=>this.usage(e,t)};try{n=await r.validateAndExecute()}catch(e){return t.stdout.write(this.error(e,{command:r})),1}return n}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){const{contexts:r,process:n,suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){const t=[];for(const[r,n]of this.registrations){if(void 0===r.usage)continue;const i=this.getUsageByIndex(n,{detailed:!1}),o=this.getUsageByIndex(n,{detailed:!0}),s=void 0!==r.usage.category?L(r.usage.category,{format:this.format(e),paragraphs:!1}):void 0,A=void 0!==r.usage.description?L(r.usage.description,{format:this.format(e),paragraphs:!1}):void 0,a=void 0!==r.usage.details?L(r.usage.details,{format:this.format(e),paragraphs:!0}):void 0,c=void 0!==r.usage.examples?r.usage.examples.map(([t,r])=>[L(t,{format:this.format(e),paragraphs:!1}),r.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:i,usage:o,category:s,description:A,details:a,examples:c})}return t}usage(e=null,{colored:t,detailed:r=!1,prefix:n="$ "}={}){const i=null!==e&&void 0===e.getMeta?e.constructor:e;let o="";if(i)if(r){const{description:e="",details:r="",examples:s=[]}=i.usage||{};if(""!==e&&(o+=L(e,{format:this.format(t),paragraphs:!1}).replace(/^./,e=>e.toUpperCase()),o+="\n"),(""!==r||s.length>0)&&(o+=this.format(t).bold("Usage:")+"\n",o+="\n"),o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`,""!==r&&(o+="\n",o+=this.format(t).bold("Details:")+"\n",o+="\n",o+=L(r,{format:this.format(t),paragraphs:!0})),s.length>0){o+="\n",o+=this.format(t).bold("Examples:")+"\n";for(let[e,r]of s)o+="\n",o+=L(e,{format:this.format(t),paragraphs:!1}),o+=r.replace(/^/m,"  "+this.format(t).bold(n)).replace(/\$0/g,this.binaryName)+"\n"}}else o+=`${this.format(t).bold(n)}${this.getUsageByRegistration(i)}\n`;else{const e=new Map;for(const[r,n]of this.registrations.entries()){if(void 0===r.usage)continue;const i=void 0!==r.usage.category?L(r.usage.category,{format:this.format(t),paragraphs:!1}):null;let o=e.get(i);void 0===o&&e.set(i,o=[]);const s=this.getUsageByIndex(n);o.push({commandClass:r,usage:s})}const r=Array.from(e.keys()).sort((e,t)=>null===e?-1:null===t?1:e.localeCompare(t,"en",{usage:"sort",caseFirst:"upper"})),i=void 0!==this.binaryLabel,s=void 0!==this.binaryVersion;i||s?(o+=i&&s?this.format(t).bold(`${this.binaryLabel} - ${this.binaryVersion}`)+"\n\n":i?this.format(t).bold(""+this.binaryLabel)+"\n":this.format(t).bold(""+this.binaryVersion)+"\n",o+=`  ${this.format(t).bold(n)}${this.binaryName} <command>\n`):o+=`${this.format(t).bold(n)}${this.binaryName} <command>\n`;for(let n of r){const r=e.get(n).slice().sort((e,t)=>e.usage.localeCompare(t.usage,"en",{usage:"sort",caseFirst:"upper"})),i=null!==n?n.trim():"Where <command> is one of";o+="\n",o+=this.format(t).bold(i+":")+"\n";for(let{commandClass:e,usage:n}of r){const r=e.usage.description||"undocumented";o+="\n",o+=`  ${this.format(t).bold(n)}\n`,o+="    "+L(r,{format:this.format(t),paragraphs:!1})}}o+="\n",o+=L("You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return o}error(e,{colored:t,command:r=null}={}){e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let n="",i=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");"Error"===i&&(i="Internal Error"),n+=`${this.format(t).error(i)}: ${e.message}\n`;const o=e.clipanion;return void 0!==o?"usage"===o.type&&(n+="\n",n+=this.usage(r)):e.stack&&(n+=e.stack.replace(/^.*\n/,"")+"\n"),n}getUsageByRegistration(e,t){const r=this.registrations.get(e);if(void 0===r)throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(r,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}format(e=this.enableColors){return e?R:K}}U.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr},r.Entries.Help=i,r.Entries.Version=o,t.Cli=U,t.Command=r,t.UsageError=l},75426:e=>{"use strict";e.exports={u2:"clipanion"}},15751:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=r(65007);e.exports=e=>{if(!e||!e.pipe)throw new TypeError("Parameter `response` must be a response stream.");const t=new n;return i(e,t),e.pipe(t)}},15311:(e,t,r)=>{const n=r(93300),i={};for(const e of Object.keys(n))i[n[e]]=e;const o={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=o;for(const e of Object.keys(o)){if(!("channels"in o[e]))throw new Error("missing channels property: "+e);if(!("labels"in o[e]))throw new Error("missing channel labels property: "+e);if(o[e].labels.length!==o[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=o[e];delete o[e].channels,delete o[e].labels,Object.defineProperty(o[e],"channels",{value:t}),Object.defineProperty(o[e],"labels",{value:r})}o.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=o-i;let A,a;o===i?A=0:t===o?A=(r-n)/s:r===o?A=2+(n-t)/s:n===o&&(A=4+(t-r)/s),A=Math.min(60*A,360),A<0&&(A+=360);const c=(i+o)/2;return a=o===i?0:c<=.5?s/(o+i):s/(2-o-i),[A,100*a,100*c]},o.rgb.hsv=function(e){let t,r,n,i,o;const s=e[0]/255,A=e[1]/255,a=e[2]/255,c=Math.max(s,A,a),u=c-Math.min(s,A,a),l=function(e){return(c-e)/6/u+.5};return 0===u?(i=0,o=0):(o=u/c,t=l(s),r=l(A),n=l(a),s===c?i=n-r:A===c?i=1/3+t-n:a===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*c]},o.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const i=o.rgb.hsl(e)[0],s=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,100*s,100*n]},o.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},o.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,o=1/0;for(const t of Object.keys(n)){const i=n[t],a=(A=i,((s=e)[0]-A[0])**2+(s[1]-A[1])**2+(s[2]-A[2])**2);a<o&&(o=a,r=t)}var s,A;return r},o.keyword.rgb=function(e){return n[e]},o.rgb.xyz=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},o.rgb.lab=function(e){const t=o.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},o.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,o,s;if(0===r)return s=255*n,[s,s,s];i=n<.5?n*(1+r):n+r-n*r;const A=2*n-i,a=[0,0,0];for(let e=0;e<3;e++)o=t+1/3*-(e-1),o<0&&o++,o>1&&o--,s=6*o<1?A+6*(i-A)*o:2*o<1?i:3*o<2?A+(i-A)*(2/3-o)*6:A,a[e]=255*s;return a},o.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=o<=1?o:2-o;return[t,100*(0===n?2*i/(o+i):2*r/(n+r)),100*((n+r)/2)]},o.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,o=t-Math.floor(t),s=255*n*(1-r),A=255*n*(1-r*o),a=255*n*(1-r*(1-o));switch(n*=255,i){case 0:return[n,a,s];case 1:return[A,n,s];case 2:return[s,n,a];case 3:return[s,A,n];case 4:return[a,s,n];case 5:return[n,s,A]}},o.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let o,s;s=(2-r)*n;const A=(2-r)*i;return o=r*i,o/=A<=1?A:2-A,o=o||0,s/=2,[t,100*o,100*s]},o.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let o;i>1&&(r/=i,n/=i);const s=Math.floor(6*t),A=1-n;o=6*t-s,0!=(1&s)&&(o=1-o);const a=r+o*(A-r);let c,u,l;switch(s){default:case 6:case 0:c=A,u=a,l=r;break;case 1:c=a,u=A,l=r;break;case 2:c=r,u=A,l=a;break;case 3:c=r,u=a,l=A;break;case 4:c=a,u=r,l=A;break;case 5:c=A,u=r,l=a}return[255*c,255*u,255*l]},o.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},o.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,o,s;return i=3.2406*t+-1.5372*r+-.4986*n,o=-.9689*t+1.8758*r+.0415*n,s=.0557*t+-.204*r+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*i,255*o,255*s]},o.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*r-16,500*(t-r),200*(r-n)]},o.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const i=r**3,o=t**3,s=n**3;return r=i>.008856?i:(r-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,n=s>.008856?s:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},o.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(r*r+n*n),i]},o.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},o.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let s=null===t?o.rgb.hsv(e)[2]:t;if(s=Math.round(s/50),0===s)return 30;let A=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===s&&(A+=60),A},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},o.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},o.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},o.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},o.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),s=i-o;let A,a;return A=s<1?o/(1-s):0,a=s<=0?0:i===t?(r-n)/s%6:i===r?2+(n-t)/s:4+(t-r)/s,a/=6,a%=1,[360*a,100*s,100*A]},o.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},o.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],o=t%1*6,s=o%1,A=1-s;let a=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=A,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=A,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=A}return a=(1-r)*n,[255*(r*i[0]+a),255*(r*i[1]+a),255*(r*i[2]+a)]},o.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},o.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},o.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},o.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=function(e){return[0,0,e[0]]},o.gray.hsv=o.gray.hsl,o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},2744:(e,t,r)=>{const n=r(15311),i=r(78577),o={};Object.keys(n).forEach(e=>{o[e]={},Object.defineProperty(o[e],"channels",{value:n[e].channels}),Object.defineProperty(o[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];o[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t<e;t++)n[t]=Math.round(n[t]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(n),o[e][r].raw=function(e){const t=function(...t){const r=t[0];return null==r?r:(r.length>1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=o},78577:(e,t,r)=>{const n=r(15311);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n<r;n++)e[t[n]]={distance:-1,parent:null};return e}(),r=[e];for(t[e].distance=0;r.length;){const e=r.pop(),i=Object.keys(n[e]);for(let n=i.length,o=0;o<n;o++){const n=i[o],s=t[n];-1===s.distance&&(s.distance=t[e].distance+1,s.parent=e,r.unshift(n))}}return t}function o(e,t){return function(r){return t(e(r))}}function s(e,t){const r=[t[e].parent,e];let i=n[t[e].parent][e],s=t[e].parent;for(;t[s].parent;)r.unshift(t[s].parent),i=o(n[t[s].parent][s],i),s=t[s].parent;return i.conversion=r,i}e.exports=function(e){const t=i(e),r={},n=Object.keys(t);for(let e=n.length,i=0;i<e;i++){const e=n[i];null!==t[e].parent&&(r[e]=s(e,t))}return r}},93300:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},36547:e=>{e.exports=function(e,r){for(var n=[],i=0;i<e.length;i++){var o=r(e[i],i);t(o)?n.push.apply(n,o):n.push(o)}return n};var t=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},67566:(e,t,r)=>{"use strict";const n=r(63129),i=r(14951),o=r(10779);function s(e,t,r){const s=i(e,t,r),A=n.spawn(s.command,s.args,s.options);return o.hookChildProcess(A,s),A}e.exports=s,e.exports.spawn=s,e.exports.sync=function(e,t,r){const s=i(e,t,r),A=n.spawnSync(s.command,s.args,s.options);return A.error=A.error||o.verifyENOENTSync(A.status,s),A},e.exports._parse=i,e.exports._enoent=o},10779:e=>{"use strict";const t="win32"===process.platform;function r(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function n(e,n){return t&&1===e&&!n.file?r(n.original,"spawn"):null}e.exports={hookChildProcess:function(e,r){if(!t)return;const i=e.emit;e.emit=function(t,o){if("exit"===t){const t=n(o,r);if(t)return i.call(e,"error",t)}return i.apply(e,arguments)}},verifyENOENT:n,verifyENOENTSync:function(e,n){return t&&1===e&&!n.file?r(n.original,"spawnSync"):null},notFoundError:r}},14951:(e,t,r)=>{"use strict";const n=r(85622),i=r(47447),o=r(27066),s=r(35187),A="win32"===process.platform,a=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function u(e){if(!A)return e;const t=function(e){e.file=i(e);const t=e.file&&s(e.file);return t?(e.args.unshift(e.file),e.command=t,i(e)):e.file}(e),r=!a.test(t);if(e.options.forceShell||r){const r=c.test(t);e.command=n.normalize(e.command),e.command=o.command(e.command),e.args=e.args.map(e=>o.argument(e,r));const i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}e.exports=function(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null);const n={command:e,args:t=t?t.slice(0):[],options:r=Object.assign({},r),file:void 0,original:{command:e,args:t}};return r.shell?n:u(n)}},27066:e=>{"use strict";const t=/([()\][%!^"`<>&|;, *?])/g;e.exports.command=function(e){return e=e.replace(t,"^$1")},e.exports.argument=function(e,r){return e=(e=`"${e=(e=(e=""+e).replace(/(\\*)"/g,'$1$1\\"')).replace(/(\\*)$/,"$1$1")}"`).replace(t,"^$1"),r&&(e=e.replace(t,"^$1")),e}},35187:(e,t,r)=>{"use strict";const n=r(35747),i=r(91470);e.exports=function(e){const t=Buffer.alloc(150);let r;try{r=n.openSync(e,"r"),n.readSync(r,t,0,150,0),n.closeSync(r)}catch(e){}return i(t.toString())}},47447:(e,t,r)=>{"use strict";const n=r(85622),i=r(87945),o=r(37127);function s(e,t){const r=e.options.env||process.env,s=process.cwd(),A=null!=e.options.cwd,a=A&&void 0!==process.chdir&&!process.chdir.disabled;if(a)try{process.chdir(e.options.cwd)}catch(e){}let c;try{c=i.sync(e.command,{path:r[o({env:r})],pathExt:t?n.delimiter:void 0})}catch(e){}finally{a&&process.chdir(s)}return c&&(c=n.resolve(A?e.options.cwd:"",c)),c}e.exports=function(e){return s(e)||s(e,!0)}},53832:(e,t,r)=>{"use strict";const{pipeline:n,PassThrough:i}=r(92413),o=r(78761),s=r(60102);e.exports=e=>{const t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;const r="br"===t;if(r&&"function"!=typeof o.createBrotliDecompress)return e;const A=r?o.createBrotliDecompress():o.createUnzip(),a=new i;A.on("error",e=>{"Z_BUF_ERROR"!==e.code?a.emit("error",e):a.end()});const c=n(e,A,a,()=>{});return s(e,c),c}},93121:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4016),i=(e,t)=>{let r;if("function"==typeof t){r={connect:t}}else r=t;const i="function"==typeof r.connect,o="function"==typeof r.secureConnect,s="function"==typeof r.close,A=()=>{i&&r.connect(),e instanceof n.TLSSocket&&o&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),s&&e.once("close",r.close)};e.writable&&!e.connecting?A():e.connecting?e.once("connect",A):e.destroyed&&s&&r.close(e._hadError)};t.default=i,e.exports=i,e.exports.default=i},66241:(e,t,r)=>{"use strict";const n=r(85622),i=r(5763),o=e=>e.length>1?`{${e.join(",")}}`:e[0],s=(e,t)=>{const r="!"===e[0]?e.slice(1):e;return n.isAbsolute(r)?r:n.join(t,r)},A=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>{return n.posix.join(e,(i=r,s=t.extensions,n.extname(i)?"**/"+i:`**/${i}.${o(s)}`));var i,s}):t.files?t.files.map(t=>n.posix.join(e,"**/"+t)):t.extensions?[n.posix.join(e,"**/*."+o(t.extensions))]:[n.posix.join(e,"**")]};e.exports=async(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=await Promise.all([].concat(e).map(async e=>await i.isDirectory(s(e,t.cwd))?A(e,t):e));return[].concat.apply([],r)},e.exports.sync=(e,t)=>{if("string"!=typeof(t={cwd:process.cwd(),...t}).cwd)throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);const r=[].concat(e).map(e=>i.isDirectorySync(s(e,t.cwd))?A(e,t):e);return[].concat.apply([],r)}},1013:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},97681:(e,t,r)=>{var n=r(91162),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r()},h=function(){a=!1,c||r()},g=function(e){r(e?new Error("exited with error code: "+e):null)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r(new Error("premature close"))},p=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",f),e.req?p():e.on("request",p)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",r),e.on("close",f),function(){e.removeListener("complete",l),e.removeListener("abort",f),e.removeListener("request",p),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",r),e.removeListener("close",f)}};e.exports=o},17067:(e,t,r)=>{var n=r(27180),i=function(){},o=function(e,t,r){if("function"==typeof t)return o(e,null,t);t||(t={}),r=n(r||i);var s=e._writableState,A=e._readableState,a=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=function(){e.writable||l()},l=function(){c=!1,a||r.call(e)},h=function(){a=!1,c||r.call(e)},g=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},f=function(t){r.call(e,t)},p=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:r.call(e,new Error("premature close"))},d=function(){e.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(e)?c&&!s&&(e.on("end",u),e.on("close",u)):(e.on("complete",l),e.on("abort",p),e.req?d():e.on("request",d)),function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length}(e)&&e.on("exit",g),e.on("end",h),e.on("finish",l),!1!==t.error&&e.on("error",f),e.on("close",p),function(){e.removeListener("complete",l),e.removeListener("abort",p),e.removeListener("request",d),e.req&&e.req.removeListener("finish",l),e.removeListener("end",u),e.removeListener("close",u),e.removeListener("finish",l),e.removeListener("exit",g),e.removeListener("end",h),e.removeListener("error",f),e.removeListener("close",p)}};e.exports=o},66349:e=>{"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},41313:function(e){var t;t=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}return r.m=e,r.c=t,r.p="",r(0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1),i=r(3),o=r(8),s=r(15);function A(e,t,r){var s=null,A=function(e,t){r&&r(e,t),s&&s.visit(e,t)},a="function"==typeof r?A:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var u="boolean"==typeof t.attachComment&&t.attachComment;(c||u)&&((s=new n.CommentHandler).attach=u,t.comment=!0,a=A)}var l,h=!1;t&&"string"==typeof t.sourceType&&(h="module"===t.sourceType),l=t&&"boolean"==typeof t.jsx&&t.jsx?new i.JSXParser(e,t,a):new o.Parser(e,t,a);var g=h?l.parseModule():l.parseScript();return c&&s&&(g.comments=s.comments),l.config.tokens&&(g.tokens=l.tokens),l.config.tolerant&&(g.errors=l.errorHandler.errors),g}t.parse=A,t.parseModule=function(e,t,r){var n=t||{};return n.sourceType="module",A(e,n,r)},t.parseScript=function(e,t,r){var n=t||{};return n.sourceType="script",A(e,n,r)},t.tokenize=function(e,t,r){var n,i=new s.Tokenizer(e,t);n=[];try{for(;;){var o=i.getNextToken();if(!o)break;r&&(o=r(o)),n.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var a=r(2);t.Syntax=a.Syntax,t.version="4.0.1"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(r.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var n=this.trailing[r];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var i=this.stack[this.stack.length-1];if(i&&i.node.trailingComments){var o=i.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=i.node.trailingComments,delete i.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,r=[];this.stack.length>0&&((o=this.stack[this.stack.length-1])&&o.start>=e.start.offset);)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var i=t.leadingComments[n];i.range[1]<=e.start.offset&&(r.unshift(i),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,r}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(r.unshift(o.comment),this.leading.splice(n,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(t),i=this.findLeadingComments(t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n,i=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),s=r(5),A=r(6),a=r(7),c=r(8),u=r(13),l=r(14);function h(e){var t;switch(e.type){case A.JSXSyntax.JSXIdentifier:t=e.name;break;case A.JSXSyntax.JSXNamespacedName:var r=e;t=h(r.namespace)+":"+h(r.name);break;case A.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var g=function(e){function t(t,r,n){return e.call(this,t,r,n)||this}return i(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var A=this.scanner.source[this.scanner.index];if(A===e)break;if(n=";"===A,t+=A,++this.scanner.index,!n)switch(t.length){case 2:i="#"===A;break;case 3:i&&(r=(s="x"===A)||o.Character.isDecimalDigit(A.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!o.Character.isDecimalDigit(A.charCodeAt(0))))&&!(s&&!o.Character.isHexDigit(A.charCodeAt(0)))}}if(r&&n&&t.length>2){var a=t.substr(1,t.length-2);i&&a.length>1?t=String.fromCharCode(parseInt(a.substr(1),10)):s&&a.length>2?t=String.fromCharCode(parseInt("0"+a.substr(1),16)):i||s||!l.XHTMLEntities[a]||(t=l.XHTMLEntities[a])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:A=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(a=this.scanner.source[this.scanner.index++])!==r;)n+="&"===a?this.scanXHTMLEntity(r):a;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var i=this.scanner.source.charCodeAt(this.scanner.index+1),s=this.scanner.source.charCodeAt(this.scanner.index+2),A=46===i&&46===s?"...":".";return t=this.scanner.index,this.scanner.index+=A.length,{type:7,value:A,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var a=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(a)&&92!==a)++this.scanner.index;else{if(45!==a)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,o.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new s.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new s.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new s.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new s.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new s.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new s.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new s.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new s.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new s.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start<r.end){var n=this.getTokenRaw(r),i=this.finalize(t,new s.JSXText(r.value,n));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var r=this.createJSXChildNode(),n=this.parseJSXBoundaryElement();if(n.type===A.JSXSyntax.JSXOpeningElement){var i=n;if(i.selfClosing){var o=this.finalize(r,new s.JSXElement(i,[],null));e.children.push(o)}else t.push(e),e={node:r,opening:i,closing:null,children:[]}}if(n.type===A.JSXSyntax.JSXClosingElement){e.closing=n;var a=h(e.opening.name);if(a!==h(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",a),!(t.length>0))break;o=this.finalize(e.node,new s.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new s.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(c.Parser);t.JSXParser=g},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6),i=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=i;var o=function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r};t.JSXElement=o;var s=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=s;var A=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=A;var a=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=a;var c=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=c;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var l=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=l;var h=function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r};t.JSXOpeningElement=h;var g=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=g;var f=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),i=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=i;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var s=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!1};t.ArrowFunctionExpression=s;var A=function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r};t.AssignmentExpression=A;var a=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=a;var c=function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r,this.async=!0};t.AsyncArrowFunctionExpression=c;var u=function(e,t,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var l=function(e,t,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=l;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var g=function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r};t.BinaryExpression=g;var f=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=f;var p=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=p;var d=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=d;var C=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=C;var E=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=E;var I=function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r};t.ClassDeclaration=I;var m=function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r};t.ClassExpression=m;var y=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=y;var w=function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r};t.ConditionalExpression=w;var B=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=B;var Q=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=Q;var v=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=v;var D=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=D;var b=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=b;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var k=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=k;var x=function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r};t.ExportNamedDeclaration=x;var F=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=F;var M=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=M;var N=function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1};t.ForInStatement=N;var R=function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r};t.ForOfStatement=R;var K=function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i};t.ForStatement=K;var L=function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionDeclaration=L;var T=function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1,this.async=!1};t.FunctionExpression=T;var P=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=P;var U=function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r};t.IfStatement=U;var _=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=_;var O=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=O;var j=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=j;var Y=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=Y;var G=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=G;var J=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=J;var H=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=H;var q=function(e,t,r,i,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=o};t.MethodDefinition=q;var z=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=z;var W=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=W;var V=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=V;var X=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=X;var Z=function(e,t,r,i,o,s){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=o,this.shorthand=s};t.Property=Z;var $=function(e,t,r,i){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:r,flags:i}};t.RegexLiteral=$;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var re=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=re;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var ie=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=ie;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var se=function(){this.type=n.Syntax.Super};t.Super=se;var Ae=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=Ae;var ae=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ae;var ce=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=ce;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var le=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=le;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var ge=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=ge;var fe=function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r};t.TryStatement=fe;var pe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=pe;var de=function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r};t.UpdateExpression=de;var Ce=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=Ce;var Ee=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=Ee;var Ie=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=Ie;var me=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=me;var ye=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=ye},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(10),o=r(11),s=r(7),A=r(12),a=r(2),c=r(13),u=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new A.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]})),s=this.lastMarker.index,A=this.lastMarker.line,a=this.lastMarker.column+1;throw this.errorHandler.createError(s,A,a,o)},e.prototype.tolerateError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,(function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]})),s=this.lastMarker.index,A=this.scanner.lineNumber,a=this.lastMarker.column+1;this.errorHandler.tolerateError(s,A,a,o)},e.prototype.unexpectedTokenError=function(e,t){var r,n=t||o.Messages.UnexpectedToken;if(e?(t||(n=2===e.type?o.Messages.UnexpectedEOS:3===e.type?o.Messages.UnexpectedIdentifier:6===e.type?o.Messages.UnexpectedNumber:8===e.type?o.Messages.UnexpectedString:10===e.type?o.Messages.UnexpectedTemplate:o.Messages.UnexpectedToken,4===e.type&&(this.scanner.isFutureReservedWord(e.value)?n=o.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=o.Messages.StrictReservedWord))),r=e.value):r="ILLEGAL",n=n.replace("%0",r),e&&"number"==typeof e.lineNumber){var i=e.start,s=e.lineNumber,A=this.lastMarker.index-this.lastMarker.column,a=e.start-A+1;return this.errorHandler.createError(i,s,a,n)}return i=this.lastMarker.index,s=this.lastMarker.line,a=this.lastMarker.column+1,this.errorHandler.createError(i,s,a,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var r=e[t],n=void 0;n={type:r.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(r.slice[0],r.slice[1])},this.config.range&&(n.range=r.range),this.config.loc&&(n.loc=r.loc);var i={start:{line:r.loc.start.line,column:r.loc.start.column,offset:r.range[0]},end:{line:r.loc.end.line,column:r.loc.end.column,offset:r.range[1]}};this.delegate(n,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t={type:c.TokenName[e.type],value:this.getTokenRaw(e)};if(this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),9===e.type){var r=e.pattern,n=e.flags;t.regex={pattern:r,flags:n}}return t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.collectComments(),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart);var t=this.scanner.lex();return this.hasLineTerminator=e.lineNumber!==t.lineNumber,t&&this.context.strict&&3===t.type&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=4),this.lookahead=t,this.config.tokens&&2!==t.type&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}},e.prototype.startNode=function(e,t){void 0===t&&(t=0);var r=e.start-e.lineStart,n=e.lineNumber;return r<0&&(r+=t,n--),{index:e.start,line:n,column:r}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.line,column:this.lastMarker.column}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var r={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.line,column:this.lastMarker.column,offset:this.lastMarker.index}};this.delegate(t,r)}return t},e.prototype.expect=function(e){var t=this.nextToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;7===e.type&&","===e.value?this.nextToken():7===e.type&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,o.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();4===t.type&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return 7===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return 4===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return 3===this.lookahead.type&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(7!==this.lookahead.type)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new s.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(t.value,r));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal("true"===t.value,r));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.Literal(null,r));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new s.RegexLiteral(t.regex,r,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new s.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new s.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new s.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new s.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=r,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,r=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),i=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=r,this.finalize(e,new s.AsyncFunctionExpression(null,n.params,i))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),r=this.nextToken();switch(r.type){case 8:case 6:this.context.strict&&r.octal&&this.tolerateUnexpectedToken(r,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(r);e=this.finalize(t,new s.Literal(r.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new s.Identifier(r.value));break;case 7:"["===r.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(r);break;default:e=this.throwUnexpectedToken(r)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===a.Syntax.Identifier&&e.name===t||e.type===a.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r=this.createNode(),n=this.lookahead,i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(3===n.type){var h=n.value;this.nextToken(),a=this.match("["),i=(l=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(r,new s.Identifier(h))}else this.match("*")?this.nextToken():(a=this.match("["),i=this.parseObjectPropertyKey());var g=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!l&&"get"===n.value&&g)t="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod();else if(3===n.type&&!l&&"set"===n.value&&g)t="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&g)t="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0;else if(i||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!l)!a&&this.isPropertyKey(i,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),A=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0;else if(3===n.type)if(h=this.finalize(r,new s.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var f=this.isolateCoverGrammar(this.parseAssignmentExpression);A=this.finalize(r,new s.AssignmentPattern(h,f))}else u=!0,A=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(r,new s.Property(t,i,a,A,c,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new s.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r=t.value,i=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:i},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r=t.value,n=t.cooked;return this.finalize(e,new s.TemplateElement({raw:r,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new s.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case a.Syntax.Identifier:case a.Syntax.MemberExpression:case a.Syntax.RestElement:case a.Syntax.AssignmentPattern:break;case a.Syntax.SpreadElement:e.type=a.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case a.Syntax.ArrayExpression:e.type=a.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case a.Syntax.ObjectExpression:for(e.type=a.Syntax.ObjectPattern,t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case a.Syntax.AssignmentExpression:e.type=a.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:"ArrowParameterPlaceHolder",params:i,async:!1}}else if(this.match("...")){for(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(r)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);n=!0,e={type:"ArrowParameterPlaceHolder",params:i,async:!1}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new s.SequenceExpression(i)))}if(!n){if(this.expect(")"),this.match("=>")&&(e.type===a.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:"ArrowParameterPlaceHolder",params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===a.Syntax.SequenceExpression)for(o=0;o<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);e={type:"ArrowParameterPlaceHolder",params:e.type===a.Syntax.SequenceExpression?e.expressions:[e],async:!1}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return 3===e.type||4===e.type||1===e.type||5===e.type},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new s.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e,t=this.createNode(),r=this.parseIdentifierName();if(n.assert("new"===r.name,"New expression must start with `new`"),this.match("."))if(this.nextToken(),3===this.lookahead.type&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();e=new s.MetaProperty(r,i)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),A=this.match("(")?this.parseArguments():[];e=new s.NewExpression(o,A),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(t,e)},e.prototype.parseAsyncArgument=function(){var e=this.parseAssignmentExpression();return this.context.firstCoverInitializedNameError=null,e},e.prototype.parseAsyncArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAsyncArgument);if(e.push(t),this.match(")"))break;if(this.expectCommaSeparator(),this.match(")"))break}return this.expect(")"),e},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e,t=this.lookahead,r=this.matchContextualKeyword("async"),n=this.context.allowIn;for(this.context.allowIn=!0,this.matchKeyword("super")&&this.context.inFunctionBody?(e=this.createNode(),this.nextToken(),e=this.finalize(e,new s.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):e=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var i=this.parseIdentifierName();e=this.finalize(this.startNode(t),new s.StaticMemberExpression(e,i))}else if(this.match("(")){var o=r&&t.lineNumber===this.lookahead.lineNumber;this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var A=o?this.parseAsyncArguments():this.parseArguments();if(e=this.finalize(this.startNode(t),new s.CallExpression(e,A)),o&&this.match("=>")){for(var a=0;a<A.length;++a)this.reinterpretExpressionAsPattern(A[a]);e={type:"ArrowParameterPlaceHolder",params:A,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),i=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),e=this.finalize(this.startNode(t),new s.ComputedMemberExpression(e,i));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var c=this.parseTemplateLiteral();e=this.finalize(this.startNode(t),new s.TaggedTemplateExpression(e,c))}return this.context.allowIn=n,e},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new s.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new s.ComputedMemberExpression(t,r))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),r=this.parseIdentifierName(),t=this.finalize(e,new s.StaticMemberExpression(t,r));else{if(10!==this.lookahead.type||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new s.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var r=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment);var i=!0;e=this.finalize(r,new s.UpdateExpression(n.value,e,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&7===this.lookahead.type&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(o.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var A=this.nextToken().value;i=!1,e=this.finalize(this.startNode(t),new s.UpdateExpression(A,e,i))}return e},e.prototype.parseAwaitExpression=function(){var e=this.createNode();this.nextToken();var t=this.parseUnaryExpression();return this.finalize(e,new s.AwaitExpression(t))},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new s.UnaryExpression(r.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===a.Syntax.Identifier&&this.tolerateError(o.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==a.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new s.BinaryExpression("**",r,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return 7===e.type?this.operatorPrecedence[t]||0:4===e.type&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),r=this.lookahead,n=this.binaryPrecedence(r);if(n>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,A=this.isolateCoverGrammar(this.parseExponentiationExpression),a=[o,r.value,A],c=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;a.length>2&&n<=c[c.length-1];){A=a.pop();var u=a.pop();c.pop(),o=a.pop(),i.pop();var l=this.startNode(i[i.length-1]);a.push(this.finalize(l,new s.BinaryExpression(u,o,A)))}a.push(this.nextToken().value),c.push(n),i.push(this.lookahead),a.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=a.length-1;t=a[h];for(var g=i.pop();h>1;){var f=i.pop(),p=g&&g.lineStart;l=this.startNode(f,p),u=a[h-1],t=this.finalize(l,new s.BinaryExpression(u,a[h-2],t)),h-=2,g=f}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new s.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case a.Syntax.Identifier:this.validateParam(e,t,t.name);break;case a.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case a.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case a.Syntax.ArrayPattern:for(var r=0;r<t.elements.length;r++)null!==t.elements[r]&&this.checkPatternParam(e,t.elements[r]);break;case a.Syntax.ObjectPattern:for(r=0;r<t.properties.length;r++)this.checkPatternParam(e,t.properties[r].value)}e.simple=e.simple&&t instanceof s.Identifier},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,r=[e],n=!1;switch(e.type){case a.Syntax.Identifier:break;case"ArrowParameterPlaceHolder":r=e.params,n=e.async;break;default:return null}t={simple:!0,paramSet:{}};for(var i=0;i<r.length;++i)(s=r[i]).type===a.Syntax.AssignmentPattern?s.right.type===a.Syntax.YieldExpression&&(s.right.argument&&this.throwUnexpectedToken(this.lookahead),s.right.type=a.Syntax.Identifier,s.right.name="yield",delete s.right.argument,delete s.right.delegate):n&&s.type===a.Syntax.Identifier&&"await"===s.name&&this.throwUnexpectedToken(this.lookahead),this.checkPatternParam(t,s),r[i]=s;if(this.context.strict||!this.context.allowYield)for(i=0;i<r.length;++i){var s;(s=r[i]).type===a.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===o.Messages.StrictParamDupe){var A=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(A,t.message)}return{simple:t.simple,params:r,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,r=t;if(e=this.parseConditionalExpression(),3===r.type&&r.lineNumber===this.lookahead.lineNumber&&"async"===r.value&&(3===this.lookahead.type||this.matchKeyword("yield"))){var n=this.parsePrimaryExpression();this.reinterpretExpressionAsPattern(n),e={type:"ArrowParameterPlaceHolder",params:[n],async:!0}}if("ArrowParameterPlaceHolder"===e.type||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=e.async,A=this.reinterpretAsCoverFormalsList(e);if(A){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var c=this.context.strict,u=this.context.allowStrictDirective;this.context.allowStrictDirective=A.simple;var l=this.context.allowYield,h=this.context.await;this.context.allowYield=!0,this.context.await=i;var g=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var p=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=p}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var d=f.type!==a.Syntax.BlockStatement;this.context.strict&&A.firstRestricted&&this.throwUnexpectedToken(A.firstRestricted,A.message),this.context.strict&&A.stricted&&this.tolerateUnexpectedToken(A.stricted,A.message),e=i?this.finalize(g,new s.AsyncArrowFunctionExpression(A.params,f,d)):this.finalize(g,new s.ArrowFunctionExpression(A.params,f,d)),this.context.strict=c,this.context.allowStrictDirective=u,this.context.allowYield=l,this.context.await=h}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===a.Syntax.Identifier){var C=e;this.scanner.isRestrictedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(C.name)&&this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var E=(r=this.nextToken()).value,I=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new s.AssignmentExpression(E,e,I)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new s.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new s.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var i=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),i=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==a.Syntax.Identifier||this.match("="))&&(this.expect("="),i=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new s.VariableDeclarator(n,i))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new s.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new s.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new s.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),o=!1,A=!1;if(3===this.lookahead.type){var a=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new s.Identifier(a.value));if(this.match("=")){e.push(a),A=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(a),new s.AssignmentPattern(c,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(a),A=!0,n=c)}else o=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new s.Property("init",r,o,n,!1,A))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new s.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new s.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return 4===r.type&&"yield"===r.value?this.context.strict?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(r):3!==r.type?this.context.strict&&4===r.type&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,o.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):(this.context.isModule||this.context.await)&&3===r.type&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new s.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===a.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new s.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new s.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new s.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseIfClause())),this.finalize(t,new s.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new s.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new s.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r,n=null,i=null,A=null,c=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===h.length&&this.matchKeyword("in")){var g=h[0];g.init&&(g.id.type===a.Syntax.ArrayPattern||g.id.type===a.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(n=this.finalize(n,new s.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var f=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(l=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(f,{inFor:!0}),this.context.allowIn=l,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new s.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,c=!1):(this.consumeSemicolon(),n=this.finalize(n,new s.VariableDeclaration(h,f)))):(n=this.finalize(n,new s.Identifier(f)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var p=this.lookahead;if(l=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==a.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,c=!1;else{if(this.match(",")){for(var d=[n];this.match(",");)this.nextToken(),d.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(p),new s.SequenceExpression(d))}this.expect(";")}}if(void 0===e&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(A=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),r=this.finalize(this.createNode(),new s.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,r=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=C}return void 0===e?this.finalize(u,new s.ForStatement(n,i,A,r)):c?this.finalize(u,new s.ForInStatement(e,t,r)):this.finalize(u,new s.ForOfStatement(e,t,r))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier();t=r;var n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new s.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var r=this.parseVariableIdentifier(),n="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,r.name),t=r}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new s.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new s.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new s.WithStatement(r,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new s.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],i=!1;for(this.expect("{");!this.match("}");){var A=this.parseSwitchCase();null===A.test&&(i&&this.throwError(o.Messages.MultipleDefaultsInSwitch),i=!0),n.push(A)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new s.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===a.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,i="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,i)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[i]=!0;var A=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),A=this.parseClassDeclaration();else if(this.matchKeyword("function")){var c=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(c,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(c,o.Messages.GeneratorInLegacyContext),A=u}else A=this.parseStatement();delete this.context.labelSet[i],e=new s.LabeledStatement(n,A)}else this.consumeSemicolon(),e=new s.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new s.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},i=0;i<t.length;i++){var A="$"+t[i].value;Object.prototype.hasOwnProperty.call(n,A)&&this.tolerateError(o.Messages.DuplicateBinding,t[i].value),n[A]=!0}this.context.strict&&r.type===a.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(o.Messages.StrictCatchVariable),this.expect(")");var c=this.parseBlock();return this.finalize(e,new s.CatchClause(r,c))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),r=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return r||n||this.throwError(o.Messages.NoCatchOrFinally),this.finalize(e,new s.TryStatement(t,r,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new s.DebuggerStatement)},e.prototype.parseStatement=function(){var e;switch(this.lookahead.type){case 1:case 5:case 6:case 8:case 10:case 9:e=this.parseExpressionStatement();break;case 7:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case 3:e=this.matchAsyncFunction()?this.parseFunctionDeclaration():this.parseLabelledStatement();break;case 4:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:e=this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),r=this.context.labelSet,n=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;2!==this.lookahead.type&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=r,this.context.inIteration=n,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(e,new s.BlockStatement(t))},e.prototype.validateParam=function(e,t,r){var n="$"+r;this.context.strict?(this.scanner.isRestrictedWord(r)&&(e.stricted=t,e.message=o.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(r)?(e.firstRestricted=t,e.message=o.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=o.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var r=this.parsePattern(e);return this.match("=")&&this.throwError(o.Messages.DefaultRestParameter),this.match(")")||this.throwError(o.Messages.ParameterAfterRestParameter),this.finalize(t,new s.RestElement(r))},e.prototype.parseFormalParameter=function(e){for(var t=[],r=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);e.simple=e.simple&&r instanceof s.Identifier,e.params.push(r)},e.prototype.parseFormalParameters=function(e){var t;if(t={simple:!0,params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};2!==this.lookahead.type&&(this.parseFormalParameter(t),!this.match(")"))&&(this.expect(","),!this.match(")")););return this.expect(")"),{simple:t.simple,params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.matchAsyncFunction=function(){var e=this.matchContextualKeyword("async");if(e){var t=this.scanner.saveState();this.scanner.scanComments();var r=this.scanner.lex();this.scanner.restoreState(t),e=t.lineNumber===r.lineNumber&&4===r.type&&"function"===r.value}return e},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode(),r=this.matchContextualKeyword("async");r&&this.nextToken(),this.expectKeyword("function");var n,i=!r&&this.match("*");i&&this.nextToken();var A=null,a=null;if(!e||!this.match("(")){var c=this.lookahead;A=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(c.value)&&this.tolerateUnexpectedToken(c,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(c.value)?(a=c,n=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(c.value)&&(a=c,n=o.Messages.StrictReservedWord)}var u=this.context.await,l=this.context.allowYield;this.context.await=r,this.context.allowYield=!i;var h=this.parseFormalParameters(a),g=h.params,f=h.stricted;a=h.firstRestricted,h.message&&(n=h.message);var p=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=h.simple;var C=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,n),this.context.strict&&f&&this.tolerateUnexpectedToken(f,n),this.context.strict=p,this.context.allowStrictDirective=d,this.context.await=u,this.context.allowYield=l,r?this.finalize(t,new s.AsyncFunctionDeclaration(A,g,C)):this.finalize(t,new s.FunctionDeclaration(A,g,C,i))},e.prototype.parseFunctionExpression=function(){var e=this.createNode(),t=this.matchContextualKeyword("async");t&&this.nextToken(),this.expectKeyword("function");var r,n=!t&&this.match("*");n&&this.nextToken();var i,A=null,a=this.context.await,c=this.context.allowYield;if(this.context.await=t,this.context.allowYield=!n,!this.match("(")){var u=this.lookahead;A=this.context.strict||n||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(u.value)&&this.tolerateUnexpectedToken(u,o.Messages.StrictFunctionName):this.scanner.isRestrictedWord(u.value)?(i=u,r=o.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(u.value)&&(i=u,r=o.Messages.StrictReservedWord)}var l=this.parseFormalParameters(i),h=l.params,g=l.stricted;i=l.firstRestricted,l.message&&(r=l.message);var f=this.context.strict,p=this.context.allowStrictDirective;this.context.allowStrictDirective=l.simple;var d=this.parseFunctionSourceElements();return this.context.strict&&i&&this.throwUnexpectedToken(i,r),this.context.strict&&g&&this.tolerateUnexpectedToken(g,r),this.context.strict=f,this.context.allowStrictDirective=p,this.context.await=a,this.context.allowYield=c,t?this.finalize(e,new s.AsyncFunctionExpression(A,h,d)):this.finalize(e,new s.FunctionExpression(A,h,d,n))},e.prototype.parseDirective=function(){var e=this.lookahead,t=this.createNode(),r=this.parseExpression(),n=r.type===a.Syntax.Literal?this.getTokenRaw(e).slice(1,-1):null;return this.consumeSemicolon(),this.finalize(t,n?new s.Directive(r,n):new s.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var r=this.lookahead;if(8!==r.type)break;var n=this.parseDirective();t.push(n);var i=n.directive;if("string"!=typeof i)break;"use strict"===i?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,o.Messages.StrictOctalLiteral),this.context.allowStrictDirective||this.tolerateUnexpectedToken(r,o.Messages.IllegalLanguageModeDirective)):!e&&r.octal&&(e=r)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case 3:case 8:case 1:case 5:case 6:case 4:return!0;case 7:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();r.params.length>0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();1!==r.params.length?this.tolerateError(o.Messages.BadSetterArity):r.params[0]instanceof s.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new s.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new s.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t=this.lookahead,r=this.createNode(),n="",i=null,A=null,a=!1,c=!1,u=!1,l=!1;if(this.match("*"))this.nextToken();else if(a=this.match("["),"static"===(i=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,a=this.match("["),this.match("*")?this.nextToken():i=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(l=!0,t=this.lookahead,i=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var g=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&g?(n="get",a=this.match("["),i=this.parseObjectPropertyKey(),this.context.allowYield=!1,A=this.parseGetterMethod()):"set"===t.value&&g&&(n="set",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseSetterMethod()):7===t.type&&"*"===t.value&&g&&(n="init",a=this.match("["),i=this.parseObjectPropertyKey(),A=this.parseGeneratorMethod(),c=!0),!n&&i&&this.match("(")&&(n="init",A=l?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),c=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),a||(u&&this.isPropertyKey(i,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(i,"constructor")&&(("method"!==n||!c||A&&A.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(r,new s.MethodDefinition(i,a,A,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new s.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=r,this.finalize(t,new s.ClassDeclaration(n,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new s.ClassExpression(r,n,i))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new s.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new s.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new s.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new s.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new s.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var r=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new s.ImportDeclaration(r,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new s.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);e=this.finalize(t,new s.ExportDefaultDeclaration(r))}else this.matchKeyword("class")?(r=this.parseClassDeclaration(!0),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):this.matchContextualKeyword("async")?(r=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new s.ExportDefaultDeclaration(r))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new s.ExportDefaultDeclaration(r)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var i=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new s.ExportAllDeclaration(i))}else if(4===this.lookahead.type){switch(r=void 0,this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null))}else if(this.matchAsyncFunction())r=this.parseFunctionDeclaration(),e=this.finalize(t,new s.ExportNamedDeclaration(r,[],null));else{var A=[],a=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),A.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),a=this.parseModuleSpecifier(),this.consumeSemicolon()):c?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new s.ExportNamedDeclaration(null,A,a))}return e},e}();t.Parser=u},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}return r},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,o=this.constructError(i,r);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(9),i=r(4),o=r(11);function s(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function A(e){return"01234567".indexOf(e)}var a=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,r,n=[];for(this.trackComment&&(n=[],t=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,i.Character.isLineTerminator(o)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var s={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:r};n.push(s)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(r.end={line:this.lineNumber,column:this.index-this.lineStart},s={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:r},n.push(s)),n},e.prototype.skipMultiLineComment=function(){var e,t,r=[];for(this.trackComment&&(r=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(i.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};r.push(o)}return r}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},r.push(o)),this.tolerateUnexpectedToken(),r},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(i.Character.isWhiteSpace(r))++this.index;else if(i.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==r||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,n=0;n<t;++n){if(this.eof()||!i.Character.isHexDigit(this.source.charCodeAt(this.index)))return null;r=16*r+s(this.source[this.index++])}return String.fromCharCode(r)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],i.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+s(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),i.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!i.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),r=i.Character.fromCodePoint(t);for(this.index+=r.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),r=e);!this.eof()&&(t=this.codePointAt(this.index),i.Character.isIdentifierPart(t));)r+=e=i.Character.fromCodePoint(t),this.index+=e.length,92===t&&(r=r.substr(0,r.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&i.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),r+=e);return r},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=A(e);return!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+A(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+A(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===r.length?3:this.isKeyword(r)?4:"null"===r?5:"true"===r||"false"===r?1:3)&&t+r.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&i.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(i.Character.isIdentifierStart(t)||i.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(i.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&i.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(i.Character.isIdentifierStart(this.source.charCodeAt(this.index))||i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!i.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];n.assert(i.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var r="";if("."!==t){if(r=this.source[this.index++],t=this.source[this.index],"0"===r){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&i.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(r+=this.source[this.index++];i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(r+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(r+=this.source[this.index++]),i.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;i.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];else this.throwUnexpectedToken();return i.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseFloat(r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];n.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var r=!1,s="";!this.eof();){var A=this.source[this.index++];if(A===t){t="";break}if("\\"===A)if((A=this.source[this.index++])&&i.Character.isLineTerminator(A.charCodeAt(0)))++this.lineNumber,"\r"===A&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(A){case"u":if("{"===this.source[this.index])++this.index,s+=this.scanUnicodeCodePointEscape();else{var a=this.scanHexEscape(A);null===a&&this.throwUnexpectedToken(),s+=a}break;case"x":var c=this.scanHexEscape(A);null===c&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),s+=c;break;case"n":s+="\n";break;case"r":s+="\r";break;case"t":s+="\t";break;case"b":s+="\b";break;case"f":s+="\f";break;case"v":s+="\v";break;case"8":case"9":s+=A,this.tolerateUnexpectedToken();break;default:if(A&&i.Character.isOctalDigit(A.charCodeAt(0))){var u=this.octalToDecimal(A);r=u.octal||r,s+=String.fromCharCode(u.code)}else s+=A}else{if(i.Character.isLineTerminator(A.charCodeAt(0)))break;s+=A}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:8,value:s,octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,r=this.index,n="`"===this.source[r],s=!1,A=2;for(++this.index;!this.eof();){var a=this.source[this.index++];if("`"===a){A=1,s=!0,t=!0;break}if("$"===a){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=a}else if("\\"===a)if(a=this.source[this.index++],i.Character.isLineTerminator(a.charCodeAt(0)))++this.lineNumber,"\r"===a&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(a){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var c=this.index,u=this.scanHexEscape(a);null!==u?e+=u:(this.index=c,e+=a)}break;case"x":var l=this.scanHexEscape(a);null===l&&this.throwUnexpectedToken(o.Messages.InvalidHexEscapeSequence),e+=l;break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===a?(i.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral),e+="\0"):i.Character.isOctalDigit(a.charCodeAt(0))?this.throwUnexpectedToken(o.Messages.TemplateOctalLiteral):e+=a}else i.Character.isLineTerminator(a.charCodeAt(0))?(++this.lineNumber,"\r"===a&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=a}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:10,value:this.source.slice(r+1,this.index-A),cooked:e,head:n,tail:s,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}},e.prototype.testRegExp=function(e,t){var r=e,n=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):""})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,""));try{RegExp(r)}catch(e){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,s=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],i.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(i.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){s=!0;break}"["===e&&(r=!0)}return s||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!i.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var r=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;r<this.index;++r)this.source[r];else this.index=r,e+="u";this.tolerateUnexpectedToken()}else this.tolerateUnexpectedToken()}return e},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),r=this.scanRegExpFlags();return{type:9,value:"",pattern:t,flags:r,regex:this.testRegExp(t,r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:2,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return i.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?i.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():i.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&i.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="<end>",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(10),i=r(12),o=r(13),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),A=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new i.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var r=e[t],n=this.scanner.source.slice(r.slice[0],r.slice[1]),i={type:r.multiLine?"BlockComment":"LineComment",value:n};this.trackRange&&(i.range=r.range),this.trackLoc&&(i.loc=r.loc),this.buffer.push(i)}if(!this.scanner.eof()){var s=void 0;this.trackLoc&&(s={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var A="/"===this.scanner.source[this.scanner.index]&&this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.lex();this.reader.push(A);var a={type:o.TokenName[A.type],value:this.scanner.source.slice(A.start,A.end)};if(this.trackRange&&(a.range=[A.start,A.end]),this.trackLoc&&(s.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},a.loc=s),9===A.type){var c=A.pattern,u=A.flags;a.regex={pattern:c,flags:u}}this.buffer.push(a)}}return this.buffer.shift()},e}();t.Tokenizer=A}])},e.exports=t()},79932:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to create temporary file for editor")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.CreateFileError=i},89885:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed launch editor")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.LaunchEditorError=i},11124:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to read temporary file")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.ReadFileError=i},60239:function(e,t){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){function t(t){var r=this.constructor,n=e.call(this,"Failed to cleanup temporary file")||this;n.originalError=t;var i=r.prototype;return Object.setPrototypeOf?Object.setPrototypeOf(n,i):n.__proto__=r.prototype,n}return n(t,e),t}(Error);t.RemoveFileError=i},48011:(e,t,r)=>{"use strict";var n=r(80848),i=r(63129),o=r(35747),s=r(14503),A=r(67783),a=r(79932);a.CreateFileError;var c=r(89885);c.LaunchEditorError;var u=r(11124);u.ReadFileError;var l=r(60239);l.RemoveFileError,t.Wl=function(e,t){void 0===e&&(e="");var r=new h(e);r.runAsync((function(e,n){if(e)setImmediate(t,e,null);else try{r.cleanup(),setImmediate(t,null,n)}catch(e){setImmediate(t,e,null)}}))};var h=function(){function e(e){void 0===e&&(e=""),this.text="",this.text=e,this.determineEditor(),this.createTemporaryFile()}return e.splitStringBySpace=function(e){for(var t=[],r="",n=0;n<e.length;n++){var i=e[n];n>0&&" "===i&&"\\"!==e[n-1]&&r.length>0?(t.push(r),r=""):r+=i}return r.length>0&&t.push(r),t},Object.defineProperty(e.prototype,"temp_file",{get:function(){return console.log("DEPRECATED: temp_file. Use tempFile moving forward."),this.tempFile},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last_exit_status",{get:function(){return console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward."),this.lastExitStatus},enumerable:!0,configurable:!0}),e.prototype.run=function(){return this.launchEditor(),this.readTemporaryFile(),this.text},e.prototype.runAsync=function(e){var t=this;try{this.launchEditorAsync((function(){try{t.readTemporaryFile(),setImmediate(e,null,t.text)}catch(t){setImmediate(e,t,null)}}))}catch(t){setImmediate(e,t,null)}},e.prototype.cleanup=function(){this.removeTemporaryFile()},e.prototype.determineEditor=function(){var t=process.env.VISUAL?process.env.VISUAL:process.env.EDITOR?process.env.EDITOR:/^win/.test(process.platform)?"notepad":"vim",r=e.splitStringBySpace(t).map((function(e){return e.replace("\\ "," ")})),n=r.shift();this.editor={args:r,bin:n}},e.prototype.createTemporaryFile=function(){try{this.tempFile=A.tmpNameSync({}),o.writeFileSync(this.tempFile,this.text,{encoding:"utf8"})}catch(e){throw new a.CreateFileError(e)}},e.prototype.readTemporaryFile=function(){try{var e=o.readFileSync(this.tempFile);if(0===e.length)this.text="";else{var t=n.detect(e).toString();s.encodingExists(t)||(t="utf8"),this.text=s.decode(e,t)}}catch(e){throw new u.ReadFileError(e)}},e.prototype.removeTemporaryFile=function(){try{o.unlinkSync(this.tempFile)}catch(e){throw new l.RemoveFileError(e)}},e.prototype.launchEditor=function(){try{var e=i.spawnSync(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"});this.lastExitStatus=e.status}catch(e){throw new c.LaunchEditorError(e)}},e.prototype.launchEditorAsync=function(e){var t=this;try{i.spawn(this.editor.bin,this.editor.args.concat([this.tempFile]),{stdio:"inherit"}).on("exit",(function(r){t.lastExitStatus=r,setImmediate(e)}))}catch(e){throw new c.LaunchEditorError(e)}},e}()},19347:(e,t,r)=>{"use strict";const n=r(80598),i=r(58182),o=r(67652),s=r(81340),A=r(43754),a=r(16777);async function c(e,t){l(e);const r=u(e,i.default,t),n=await Promise.all(r);return a.array.flatten(n)}function u(e,t,r){const i=[].concat(e),o=new A.default(r),s=n.generate(i,o),a=new t(o);return s.map(a.read,a)}function l(e){if(![].concat(e).every(e=>a.string.isString(e)&&!a.string.isEmpty(e)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}!function(e){e.sync=function(e,t){l(e);const r=u(e,s.default,t);return a.array.flatten(r)},e.stream=function(e,t){l(e);const r=u(e,o.default,t);return a.stream.merge(r)},e.generateTasks=function(e,t){l(e);const r=[].concat(e),i=new A.default(t);return n.generate(r,i)},e.isDynamicPattern=function(e,t){l(e);const r=new A.default(t);return a.pattern.isDynamicPattern(e,r)},e.escapePath=function(e){return l(e),a.path.escape(e)}}(c||(c={})),e.exports=c},80598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);function i(e,t,r){const n=A(e);if("."in n){return[c(".",e,t,r)]}return a(n,t,r)}function o(e){return n.pattern.getPositivePatterns(e)}function s(e,t){return n.pattern.getNegativePatterns(e).concat(t).map(n.pattern.convertToPositivePattern)}function A(e){return e.reduce((e,t)=>{const r=n.pattern.getBaseDirectory(t);return r in e?e[r].push(t):e[r]=[t],e},{})}function a(e,t,r){return Object.keys(e).map(n=>c(n,e[n],t,r))}function c(e,t,r,i){return{dynamic:i,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(n.pattern.convertToNegativePattern))}}t.generate=function(e,t){const r=o(e),A=s(e,t.ignore),a=r.filter(e=>n.pattern.isStaticPattern(e,t)),c=r.filter(e=>n.pattern.isDynamicPattern(e,t)),u=i(a,A,!1),l=i(c,A,!0);return u.concat(l)},t.convertPatternsToTasks=i,t.getPositivePatterns=o,t.getNegativePatternsAsPositive=s,t.groupPatternsByBaseDirectory=A,t.convertPatternGroupsToTasks=a,t.convertPatternGroupToTask=c},58182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(82774),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),n=[];return new Promise((i,o)=>{const s=this.api(t,e,r);s.once("error",o),s.on("data",e=>n.push(r.transform(e))),s.once("end",()=>i(n))})}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},65989:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777),i=r(42585);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,r){const n=this._getMatcher(t),i=this._getNegativePatternsRe(r);return t=>this._filter(e,t,n,i)}_getMatcher(e){return new i.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){const t=e.filter(n.pattern.isAffectDepthOfReadingPattern);return n.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,r,i){const o=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(o))return!1;if(this._isSkippedSymbolicLink(t))return!1;const s=n.path.removeLeadingDotSegment(t.path);return!this._isSkippedByPositivePatterns(s,r)&&this._isSkippedByNegativePatterns(s,i)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){const r=e.split("/").length;return t.split("/").length-(""===e?0:r)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!n.pattern.matchAny(e,t)}}},37338:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){const r=n.pattern.convertPatternsToRe(e,this._micromatchOptions),i=n.pattern.convertPatternsToRe(t,this._micromatchOptions);return e=>this._filter(e,r,i)}_filter(e,t,r){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e))return!1;if(this._isSkippedByAbsoluteNegativePatterns(e,r))return!1;const n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,r)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;const r=n.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(r,t)}_isMatchToPatterns(e,t){const r=n.path.removeLeadingDotSegment(e);return n.pattern.matchAny(r,t)}}},54345:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return n.errno.isEnoentCodeError(e)||this._settings.suppressErrors}}},34789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e,t,r){this._patterns=e,this._settings=t,this._micromatchOptions=r,this._storage=[],this._fillStorage()}_fillStorage(){const e=n.pattern.expandPatternsWithBraceExpansion(this._patterns);for(const t of e){const e=this._getPatternSegments(t),r=this._splitSegmentsIntoSections(e);this._storage.push({complete:r.length<=1,pattern:t,segments:e,sections:r})}}_getPatternSegments(e){return n.pattern.getPatternParts(e,this._micromatchOptions).map(e=>n.pattern.isDynamicPattern(e,this._settings)?{dynamic:!0,pattern:e,patternRe:n.pattern.makeRe(e,this._micromatchOptions)}:{dynamic:!1,pattern:e})}_splitSegmentsIntoSections(e){return n.array.splitWhen(e,e=>e.dynamic&&n.pattern.hasGlobStar(e.pattern))}}},42585:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(34789);class i extends n.default{match(e){const t=e.split("/"),r=t.length,n=this._storage.filter(e=>!e.complete||e.segments.length>r);for(const e of n){const n=e.sections[0];if(!e.complete&&r>n.length)return!0;if(t.every((t,r)=>{const n=e.segments[r];return!(!n.dynamic||!n.patternRe.test(t))||!n.dynamic&&n.pattern===t}))return!0}return!1}}t.default=i},40545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(65989),o=r(37338),s=r(54345),A=r(77541);t.default=class{constructor(e){this._settings=e,this.errorFilter=new s.default(this._settings),this.entryFilter=new o.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new i.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new A.default(this._settings)}_getRootDirectory(e){return n.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){const t="."===e.base?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}}},67652:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(82774),o=r(40545);class s extends o.default{constructor(){super(...arguments),this._reader=new i.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e),i=this.api(t,e,r),o=new n.Readable({objectMode:!0,read:()=>{}});return i.once("error",e=>o.emit("error",e)).on("data",e=>o.emit("data",r.transform(e))).once("end",()=>o.emit("end")),o.once("close",()=>i.destroy()),o}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=s},81340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(29543),i=r(40545);class o extends i.default{constructor(){super(...arguments),this._reader=new n.default(this._settings)}read(e){const t=this._getRootDirectory(e),r=this._getReaderOptions(e);return this.api(t,e,r).map(r.transform)}api(e,t,r){return t.dynamic?this._reader.dynamic(e,r):this._reader.static(t.patterns,r)}}t.default=o},77541:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(16777);t.default=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=n.path.makeAbsolute(this._settings.cwd,t),t=n.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}}},99458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(53403),o=r(16777);t.default=class{constructor(e){this._settings=e,this._fsStatSettings=new i.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return n.resolve(this._settings.cwd,e)}_makeEntry(e,t){const r={name:t,path:t,dirent:o.fs.createDirentFromStats(t,e)};return this._settings.stats&&(r.stats=e),r}_isFatalError(e){return!o.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}}},82774:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(92413),i=r(53403),o=r(72897),s=r(99458);class A extends s.default{constructor(){super(...arguments),this._walkStream=o.walkStream,this._stat=i.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){const r=e.map(this._getFullEntryPath,this),i=new n.PassThrough({objectMode:!0});i._write=(n,o,s)=>this._getEntry(r[n],e[n],t).then(e=>{null!==e&&t.entryFilter(e)&&i.push(e),n===r.length-1&&i.end(),s()}).catch(s);for(let e=0;e<r.length;e++)i.write(e);return i}_getEntry(e,t,r){return this._getStat(e).then(e=>this._makeEntry(e,t)).catch(e=>{if(r.errorFilter(e))return null;throw e})}_getStat(e){return new Promise((t,r)=>{this._stat(e,this._fsStatSettings,(e,n)=>null===e?t(n):r(e))})}}t.default=A},29543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(53403),i=r(72897),o=r(99458);class s extends o.default{constructor(){super(...arguments),this._walkSync=i.walkSync,this._statSync=n.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){const r=[];for(const n of e){const e=this._getFullEntryPath(n),i=this._getEntry(e,n,t);null!==i&&t.entryFilter(i)&&r.push(i)}return r}_getEntry(e,t,r){try{const r=this._getStat(e);return this._makeEntry(r,t)}catch(e){if(r.errorFilter(e))return null;throw e}}_getStat(e){return this._statSync(e,this._fsStatSettings)}}t.default=s},43754:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(12087).cpus().length;t.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:n.lstat,lstatSync:n.lstatSync,stat:n.stat,statSync:n.statSync,readdir:n.readdir,readdirSync:n.readdirSync};t.default=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,i),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return void 0===e?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},t.DEFAULT_FILE_SYSTEM_ADAPTER),e)}}},60919:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.flatten=function(e){return e.reduce((e,t)=>[].concat(e,t),[])},t.splitWhen=function(e,t){const r=[[]];let n=0;for(const i of e)t(i)?(n++,r[n]=[]):r[n].push(i);return r}},35525:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEnoentCodeError=function(e){return"ENOENT"===e.code}},62524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}}t.createDirentFromStats=function(e,t){return new r(e,t)}},16777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(60919);t.array=n;const i=r(35525);t.errno=i;const o=r(62524);t.fs=o;const s=r(71462);t.path=s;const A=r(14659);t.pattern=A;const a=r(2042);t.stream=a;const c=r(10217);t.string=c},71462:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;t.unixify=function(e){return e.replace(/\\/g,"/")},t.makeAbsolute=function(e,t){return n.resolve(e,t)},t.escape=function(e){return e.replace(i,"\\$2")},t.removeLeadingDotSegment=function(e){if("."===e.charAt(0)){const t=e.charAt(1);if("/"===t||"\\"===t)return e.slice(2)}return e}},14659:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(85622),i=r(97098),o=r(2401),s=r(54722),A=/[*?]|^!/,a=/\[.*]/,c=/(?:^|[^!*+?@])\(.*\|.*\)/,u=/[!*+?@]\(.*\)/,l=/{.*(?:,|\.\.).*}/;function h(e,t={}){return!g(e,t)}function g(e,t={}){return!(!1!==t.caseSensitiveMatch&&!e.includes("\\"))||(!!(A.test(e)||a.test(e)||c.test(e))||(!(!1===t.extglob||!u.test(e))||!(!1===t.braceExpansion||!l.test(e))))}function f(e){return e.startsWith("!")&&"("!==e[1]}function p(e){return!f(e)}function d(e){return e.endsWith("/**")}function C(e){return o.braces(e,{expand:!0,nodupes:!0})}function E(e,t){return o.makeRe(e,t)}t.isStaticPattern=h,t.isDynamicPattern=g,t.convertToPositivePattern=function(e){return f(e)?e.slice(1):e},t.convertToNegativePattern=function(e){return"!"+e},t.isNegativePattern=f,t.isPositivePattern=p,t.getNegativePatterns=function(e){return e.filter(f)},t.getPositivePatterns=function(e){return e.filter(p)},t.getBaseDirectory=function(e){return i(e,{flipBackslashes:!1})},t.hasGlobStar=function(e){return e.includes("**")},t.endsWithSlashGlobStar=d,t.isAffectDepthOfReadingPattern=function(e){const t=n.basename(e);return d(e)||h(t)},t.expandPatternsWithBraceExpansion=function(e){return e.reduce((e,t)=>e.concat(C(t)),[])},t.expandBraceExpansion=C,t.getPatternParts=function(e,t){const r=s.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return 0===r.parts.length?[e]:r.parts},t.makeRe=E,t.convertPatternsToRe=function(e,t){return e.map(e=>E(e,t))},t.matchAny=function(e,t){return t.some(t=>t.test(e))}},2042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(55598);function i(e){e.forEach(e=>e.emit("close"))}t.merge=function(e){const t=n(e);return e.forEach(e=>{e.once("error",e=>t.emit("error",e))}),t.once("close",()=>i(e)),t.once("end",()=>i(e)),t}},10217:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isString=function(e){return"string"==typeof e},t.isEmpty=function(e){return""===e}},98360:(e,t,r)=>{"use strict";var n=r(2383);function i(){}function o(){this.value=null,this.callback=i,this.next=null,this.release=i,this.context=null;var e=this;this.worked=function(t,r){var n=e.callback;e.value=null,e.callback=i,n.call(e.context,t,r),e.release(e)}}e.exports=function(e,t,r){"function"==typeof e&&(r=t,t=e,e=null);var s=n(o),A=null,a=null,c=0,u={push:function(r,n){var o=s.get();o.context=e,o.release=l,o.value=r,o.callback=n||i,c===u.concurrency||u.paused?a?(a.next=o,a=o):(A=o,a=o,u.saturated()):(c++,t.call(e,o.value,o.worked))},drain:i,saturated:i,pause:function(){u.paused=!0},paused:!1,concurrency:r,running:function(){return c},resume:function(){if(!u.paused)return;u.paused=!1;for(var e=0;e<u.concurrency;e++)c++,l()},idle:function(){return 0===c&&0===u.length()},length:function(){var e=A,t=0;for(;e;)e=e.next,t++;return t},unshift:function(r,n){var o=s.get();o.context=e,o.release=l,o.value=r,o.callback=n||i,c===u.concurrency||u.paused?A?(o.next=A,A=o):(A=o,a=o,u.saturated()):(c++,t.call(e,o.value,o.worked))},empty:i,kill:function(){A=null,a=null,u.drain=i},killAndDrain:function(){A=null,a=null,u.drain(),u.drain=i}};return u;function l(r){r&&s.release(r);var n=A;n?u.paused?c--:(a===A&&(a=null),A=n.next,n.next=null,t.call(e,n.value,n.worked),null===a&&u.empty()):0==--c&&u.drain()}}},19184:(e,t,r)=>{"use strict";class n{constructor(e,t,r){this.__specs=e||{},Object.keys(this.__specs).forEach(e=>{if("string"==typeof this.__specs[e]){const t=this.__specs[e],r=this.__specs[t];if(!r)throw new Error(`Alias refers to invalid key: ${t} -> ${e}`);{const n=r.aliases||[];n.push(e,t),r.aliases=[...new Set(n)],this.__specs[e]=r}}}),this.__opts=t||{},this.__providers=A(r.filter(e=>null!=e&&"object"==typeof e)),this.__isFiggyPudding=!0}get(e){return i(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[r,n]of this.entries())e.call(t,n,r,this)}toJSON(){const e={};return this.forEach((t,r)=>{e[r]=t}),e}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];const t=e||this.__opts.other;if(t){const e=new Set;for(let r of this.__providers){const n=r.entries?r.entries(t):a(r);for(let[r,i]of n)t(r)&&!e.has(r)&&(e.add(r),yield[r,i])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new n(this.__specs,this.__opts,A(this.__providers).concat(e)),s)}}try{const e=r(31669);n.prototype[e.inspect.custom]=function(t,r){return this[Symbol.toStringTag]+" "+e.inspect(this.toJSON(),r)}}catch(e){}function i(e,t,r){let n=e.__specs[t];if(!r||n||e.__opts.other&&e.__opts.other(t)){let r;n||(n={});for(let i of e.__providers){if(r=o(t,i),void 0===r&&n.aliases&&n.aliases.length)for(let e of n.aliases)if(e!==t&&(r=o(e,i),void 0!==r))break;if(void 0!==r)break}return void 0===r&&void 0!==n.default?"function"==typeof n.default?n.default(e):n.default:r}!function(e){throw Object.assign(new Error("invalid config key requested: "+e),{code:"EBADKEY"})}(t)}function o(e,t){let r;return r=t.__isFiggyPudding?i(t,e,!1):"function"==typeof t.get?t.get(e):t[e],r}const s={has:(e,t)=>t in e.__specs&&void 0!==i(e,t,!1),ownKeys:e=>Object.keys(e.__specs),get:(e,t)=>"symbol"==typeof t||"__"===t.slice(0,2)||t in n.prototype?e[t]:e.get(t),set(e,t,r){if("symbol"==typeof t||"__"===t.slice(0,2))return e[t]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};function A(e){const t=[];return e.forEach(e=>t.unshift(e)),t}function a(e){return Object.keys(e).map(t=>[t,e[t]])}e.exports=function(e,t){return function(...r){return new Proxy(new n(e,t,r),s)}}},51938:(e,t,r)=>{"use strict";const n=r(66349),{platform:i}=process,o={tick:"✔",cross:"✖",star:"★",square:"▇",squareSmall:"◻",squareSmallFilled:"◼",play:"▶",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",circleQuestionMark:"?⃝",bullet:"●",dot:"․",line:"─",ellipsis:"…",pointer:"❯",pointerSmall:"›",info:"ℹ",warning:"⚠",hamburger:"☰",smiley:"㋡",mustache:"෴",heart:"♥",nodejs:"⬢",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",questionMarkPrefix:"?⃝",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneSeventh:"⅐",oneEighth:"⅛",oneNinth:"⅑",oneTenth:"⅒",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞"},s={tick:"√",cross:"×",star:"*",square:"█",squareSmall:"[ ]",squareSmallFilled:"[█]",play:"►",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"─",ellipsis:"...",pointer:">",pointerSmall:"»",info:"i",warning:"‼",hamburger:"≡",smiley:"☺",mustache:"┌─┐",heart:o.heart,nodejs:"♦",arrowUp:o.arrowUp,arrowDown:o.arrowDown,arrowLeft:o.arrowLeft,arrowRight:o.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",questionMarkPrefix:"？",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};"linux"===i&&(o.questionMarkPrefix="?");const A="win32"===i?s:o;e.exports=Object.assign(e=>{if(A===o)return e;for(const[t,r]of Object.entries(o))r!==A[t]&&(e=e.replace(new RegExp(n(r),"g"),A[t]));return e},A),e.exports.main=o,e.exports.windows=s},52169:(e,t,r)=>{"use strict";
-/*!
- * fill-range <https://github.com/jonschlinkert/fill-range>
- *
- * Copyright (c) 2014-present, Jon Schlinkert.
- * Licensed under the MIT License.
- */const n=r(31669),i=r(84615),o=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),s=e=>"number"==typeof e||"string"==typeof e&&""!==e,A=e=>Number.isInteger(+e),a=e=>{let t=""+e,r=-1;if("-"===t[0]&&(t=t.slice(1)),"0"===t)return!1;for(;"0"===t[++r];);return r>0},c=(e,t,r)=>{if(t>0){let r="-"===e[0]?"-":"";r&&(e=e.slice(1)),e=r+e.padStart(r?t-1:t,"0")}return!1===r?String(e):e},u=(e,t)=>{let r="-"===e[0]?"-":"";for(r&&(e=e.slice(1),t--);e.length<t;)e="0"+e;return r?"-"+e:e},l=(e,t,r,n)=>{if(r)return i(e,t,{wrap:!1,...n});let o=String.fromCharCode(e);return e===t?o:`[${o}-${String.fromCharCode(t)}]`},h=(e,t,r)=>{if(Array.isArray(e)){let t=!0===r.wrap,n=r.capture?"":"?:";return t?`(${n}${e.join("|")})`:e.join("|")}return i(e,t,r)},g=(...e)=>new RangeError("Invalid range arguments: "+n.inspect(...e)),f=(e,t,r)=>{if(!0===r.strictRanges)throw g([e,t]);return[]},p=(e,t,r=1,n={})=>{let i=Number(e),o=Number(t);if(!Number.isInteger(i)||!Number.isInteger(o)){if(!0===n.strictRanges)throw g([e,t]);return[]}0===i&&(i=0),0===o&&(o=0);let s=i>o,A=String(e),f=String(t),p=String(r);r=Math.max(Math.abs(r),1);let d=a(A)||a(f)||a(p),C=d?Math.max(A.length,f.length,p.length):0,E=!1===d&&!1===((e,t,r)=>"string"==typeof e||"string"==typeof t||!0===r.stringify)(e,t,n),I=n.transform||(e=>t=>!0===e?Number(t):String(t))(E);if(n.toRegex&&1===r)return l(u(e,C),u(t,C),!0,n);let m={negatives:[],positives:[]},y=[],w=0;for(;s?i>=o:i<=o;)!0===n.toRegex&&r>1?m[(B=i)<0?"negatives":"positives"].push(Math.abs(B)):y.push(c(I(i,w),C,E)),i=s?i-r:i+r,w++;var B;return!0===n.toRegex?r>1?((e,t)=>{e.negatives.sort((e,t)=>e<t?-1:e>t?1:0),e.positives.sort((e,t)=>e<t?-1:e>t?1:0);let r,n=t.capture?"":"?:",i="",o="";return e.positives.length&&(i=e.positives.join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.join("|")})`),r=i&&o?`${i}|${o}`:i||o,t.wrap?`(${n}${r})`:r})(m,n):h(y,null,{wrap:!1,...n}):y},d=(e,t,r,n={})=>{if(null==t&&s(e))return[e];if(!s(e)||!s(t))return f(e,t,n);if("function"==typeof r)return d(e,t,1,{transform:r});if(o(r))return d(e,t,0,r);let i={...n};return!0===i.capture&&(i.wrap=!0),r=r||i.step||1,A(r)?A(e)&&A(t)?p(e,t,r,i):((e,t,r=1,n={})=>{if(!A(e)&&e.length>1||!A(t)&&t.length>1)return f(e,t,n);let i=n.transform||(e=>String.fromCharCode(e)),o=(""+e).charCodeAt(0),s=(""+t).charCodeAt(0),a=o>s,c=Math.min(o,s),u=Math.max(o,s);if(n.toRegex&&1===r)return l(c,u,!1,n);let g=[],p=0;for(;a?o>=s:o<=s;)g.push(i(o,p)),o=a?o-r:o+r,p++;return!0===n.toRegex?h(g,null,{wrap:!1,options:n}):g})(e,t,Math.max(Math.abs(r),1),i):null==r||o(r)?d(e,t,1,r):((e,t)=>{if(!0===t.strictRanges)throw new TypeError(`Expected step "${e}" to be a number`);return[]})(r,i)};e.exports=d},50683:e=>{e.exports=function(e){return[...e].reduce((e,[t,r])=>(e[t]=r,e),{})}},13302:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},28123:(e,t,r)=>{"use strict";const n=r(44380),i=r(28614).EventEmitter,o=r(35747),s=process.binding("fs"),A=(s.writeBuffers,s.FSReqWrap),a=Symbol("_autoClose"),c=Symbol("_close"),u=Symbol("_ended"),l=Symbol("_fd"),h=Symbol("_finished"),g=Symbol("_flags"),f=Symbol("_flush"),p=Symbol("_handleChunk"),d=Symbol("_makeBuf"),C=Symbol("_mode"),E=Symbol("_needDrain"),I=Symbol("_onerror"),m=Symbol("_onopen"),y=Symbol("_onread"),w=Symbol("_onwrite"),B=Symbol("_open"),Q=Symbol("_path"),v=Symbol("_pos"),D=Symbol("_queue"),b=Symbol("_read"),S=Symbol("_readSize"),k=Symbol("_reading"),x=Symbol("_remain"),F=Symbol("_size"),M=Symbol("_write"),N=Symbol("_writing"),R=Symbol("_defaultFlag");class K extends n{constructor(e,t){if(super(t=t||{}),this.writable=!1,"string"!=typeof e)throw new TypeError("path must be a string");this[l]="number"==typeof t.fd?t.fd:null,this[Q]=e,this[S]=t.readSize||16777216,this[k]=!1,this[F]="number"==typeof t.size?t.size:1/0,this[x]=this[F],this[a]="boolean"!=typeof t.autoClose||t.autoClose,"number"==typeof this[l]?this[b]():this[B]()}get fd(){return this[l]}get path(){return this[Q]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[B](){o.open(this[Q],"r",(e,t)=>this[m](e,t))}[m](e,t){e?this[I](e):(this[l]=t,this.emit("open",t),this[b]())}[d](){return Buffer.allocUnsafe(Math.min(this[S],this[x]))}[b](){if(!this[k]){this[k]=!0;const e=this[d]();if(0===e.length)return process.nextTick(()=>this[y](null,0,e));o.read(this[l],e,0,e.length,null,(e,t,r)=>this[y](e,t,r))}}[y](e,t,r){this[k]=!1,e?this[I](e):this[p](t,r)&&this[b]()}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}[I](e){this[k]=!0,this[c](),this.emit("error",e)}[p](e,t){let r=!1;return this[x]-=e,e>0&&(r=super.write(e<t.length?t.slice(0,e):t)),(0===e||this[x]<=0)&&(r=!1,this[c](),super.end()),r}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":"number"==typeof this[l]&&this[b]();break;default:return super.emit(e,t)}}}class L extends i{constructor(e,t){super(t=t||{}),this.readable=!1,this[N]=!1,this[u]=!1,this[E]=!1,this[D]=[],this[Q]=e,this[l]="number"==typeof t.fd?t.fd:null,this[C]=void 0===t.mode?438:t.mode,this[v]="number"==typeof t.start?t.start:null,this[a]="boolean"!=typeof t.autoClose||t.autoClose;const r=null!==this[v]?"r+":"w";this[R]=void 0===t.flags,this[g]=this[R]?r:t.flags,null===this[l]&&this[B]()}get fd(){return this[l]}get path(){return this[Q]}[I](e){this[c](),this[N]=!0,this.emit("error",e)}[B](){o.open(this[Q],this[g],this[C],(e,t)=>this[m](e,t))}[m](e,t){this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code?(this[g]="w",this[B]()):e?this[I](e):(this[l]=t,this.emit("open",t),this[f]())}end(e,t){e&&this.write(e,t),this[u]=!0,this[N]||this[D].length||"number"!=typeof this[l]||this[w](null,0)}write(e,t){return"string"==typeof e&&(e=new Buffer(e,t)),this[u]?(this.emit("error",new Error("write() after end()")),!1):null===this[l]||this[N]||this[D].length?(this[D].push(e),this[E]=!0,!1):(this[N]=!0,this[M](e),!0)}[M](e){o.write(this[l],e,0,e.length,this[v],(e,t)=>this[w](e,t))}[w](e,t){e?this[I](e):(null!==this[v]&&(this[v]+=t),this[D].length?this[f]():(this[N]=!1,this[u]&&!this[h]?(this[h]=!0,this[c](),this.emit("finish")):this[E]&&(this[E]=!1,this.emit("drain"))))}[f](){if(0===this[D].length)this[u]&&this[w](null,0);else if(1===this[D].length)this[M](this[D].pop());else{const e=this[D];this[D]=[],T(this[l],e,this[v],(e,t)=>this[w](e,t))}}[c](){this[a]&&"number"==typeof this[l]&&(o.close(this[l],e=>this.emit("close")),this[l]=null)}}const T=(e,t,r,n)=>{const i=new A;i.oncomplete=(e,r)=>n(e,r,t),s.writeBuffers(e,t,r,i)};t.ReadStream=K,t.ReadStreamSync=class extends K{[B](){let e=!0;try{this[m](null,o.openSync(this[Q],"r")),e=!1}finally{e&&this[c]()}}[b](){let e=!0;try{if(!this[k]){for(this[k]=!0;;){const e=this[d](),t=0===e.length?0:o.readSync(this[l],e,0,e.length,null);if(!this[p](t,e))break}this[k]=!1}e=!1}finally{e&&this[c]()}}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}},t.WriteStream=L,t.WriteStreamSync=class extends L{[B](){let e;try{e=o.openSync(this[Q],this[g],this[C])}catch(e){if(this[R]&&"r+"===this[g]&&e&&"ENOENT"===e.code)return this[g]="w",this[B]();throw e}this[m](null,e)}[c](){if(this[a]&&"number"==typeof this[l]){try{o.closeSync(this[l])}catch(e){}this[l]=null,this.emit("close")}}[M](e){try{this[w](null,o.writeSync(this[l],e,0,e.length,this[v]))}catch(e){this[w](e,0)}}}},33198:(e,t,r)=>{e.exports=u,u.realpath=u,u.sync=l,u.realpathSync=l,u.monkeypatch=function(){n.realpath=u,n.realpathSync=l},u.unmonkeypatch=function(){n.realpath=i,n.realpathSync=o};var n=r(35747),i=n.realpath,o=n.realpathSync,s=process.version,A=/^v[0-5]\./.test(s),a=r(7343);function c(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function u(e,t,r){if(A)return i(e,t,r);"function"==typeof t&&(r=t,t=null),i(e,t,(function(n,i){c(n)?a.realpath(e,t,r):r(n,i)}))}function l(e,t){if(A)return o(e,t);try{return o(e,t)}catch(r){if(c(r))return a.realpathSync(e,t);throw r}}},7343:(e,t,r)=>{var n=r(85622),i="win32"===process.platform,o=r(35747),s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function A(e){return"function"==typeof e?e:function(){var e;if(s){var t=new Error;e=function(e){e&&(t.message=e.message,r(e=t))}}else e=r;return e;function r(e){if(e){if(process.throwDeprecation)throw e;if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);process.traceDeprecation?console.trace(t):console.error(t)}}}}()}n.normalize;if(i)var a=/(.*?)(?:[\/\\]+|$)/g;else a=/(.*?)(?:[\/]+|$)/g;if(i)var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;else c=/^[\/]*/;t.realpathSync=function(e,t){if(e=n.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var r,s,A,u,l=e,h={},g={};function f(){var t=c.exec(e);r=t[0].length,s=t[0],A=t[0],u="",i&&!g[A]&&(o.lstatSync(A),g[A]=!0)}for(f();r<e.length;){a.lastIndex=r;var p=a.exec(e);if(u=s,s+=p[0],A=u+p[1],r=a.lastIndex,!(g[A]||t&&t[A]===A)){var d;if(t&&Object.prototype.hasOwnProperty.call(t,A))d=t[A];else{var C=o.lstatSync(A);if(!C.isSymbolicLink()){g[A]=!0,t&&(t[A]=A);continue}var E=null;if(!i){var I=C.dev.toString(32)+":"+C.ino.toString(32);h.hasOwnProperty(I)&&(E=h[I])}null===E&&(o.statSync(A),E=o.readlinkSync(A)),d=n.resolve(u,E),t&&(t[A]=d),i||(h[I]=E)}e=n.resolve(d,e.slice(r)),f()}}return t&&(t[l]=e),e},t.realpath=function(e,t,r){if("function"!=typeof r&&(r=A(t),t=null),e=n.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return process.nextTick(r.bind(null,null,t[e]));var s,u,l,h,g=e,f={},p={};function d(){var t=c.exec(e);s=t[0].length,u=t[0],l=t[0],h="",i&&!p[l]?o.lstat(l,(function(e){if(e)return r(e);p[l]=!0,C()})):process.nextTick(C)}function C(){if(s>=e.length)return t&&(t[g]=e),r(null,e);a.lastIndex=s;var n=a.exec(e);return h=u,u+=n[0],l=h+n[1],s=a.lastIndex,p[l]||t&&t[l]===l?process.nextTick(C):t&&Object.prototype.hasOwnProperty.call(t,l)?m(t[l]):o.lstat(l,E)}function E(e,n){if(e)return r(e);if(!n.isSymbolicLink())return p[l]=!0,t&&(t[l]=l),process.nextTick(C);if(!i){var s=n.dev.toString(32)+":"+n.ino.toString(32);if(f.hasOwnProperty(s))return I(null,f[s],l)}o.stat(l,(function(e){if(e)return r(e);o.readlink(l,(function(e,t){i||(f[s]=t),I(e,t)}))}))}function I(e,i,o){if(e)return r(e);var s=n.resolve(h,i);t&&(t[o]=s),m(s)}function m(t){e=n.resolve(t,e.slice(s)),d()}d()}},72137:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const i="buffer"===r;let o=!1;t?o=!(r||i):r=r||"utf8",i&&(r=null);const s=new n({objectMode:o});r&&s.setEncoding(r);let A=0;const a=[];return s.on("data",e=>{a.push(e),o?A=a.length:A+=e.length}),s.getBufferedValue=()=>t?a:i?Buffer.concat(a,A):a.join(""),s.getBufferedLength=()=>A,s}},58764:(e,t,r)=>{"use strict";const n=r(50372),i=r(72137);class o extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}async function s(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let s;return await new Promise((A,a)=>{const c=e=>{e&&(e.bufferedData=s.getBufferedValue()),a(e)};s=n(e,i(t),e=>{e?c(e):A()}),s.on("data",()=>{s.getBufferedLength()>r&&c(new o)})}),s.getBufferedValue()}e.exports=s,e.exports.default=s,e.exports.buffer=(e,t)=>s(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>s(e,{...t,array:!0}),e.exports.MaxBufferError=o},72171:(e,t,r)=>{function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.alphasort=c,t.alphasorti=a,t.setopts=function(e,t,r){r||(r={});if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0);e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),function(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]);e.ignore.length&&(e.ignore=e.ignore.map(u))}(e,r),e.changedCwd=!1;var o=process.cwd();n(r,"cwd")?(e.cwd=i.resolve(r.cwd),e.changedCwd=e.cwd!==o):e.cwd=o;e.root=r.root||i.resolve(e.cwd,"/"),e.root=i.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/"));e.cwdAbs=s(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/"));e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new A(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(e){for(var t=e.nounique,r=t?[]:Object.create(null),n=0,i=e.matches.length;n<i;n++){var o=e.matches[n];if(o&&0!==Object.keys(o).length){var s=Object.keys(o);t?r.push.apply(r,s):s.forEach((function(e){r[e]=!0}))}else if(e.nonull){var A=e.minimatch.globSet[n];t?r.push(A):r[A]=!0}}t||(r=Object.keys(r));e.nosort||(r=r.sort(e.nocase?a:c));if(e.mark){for(n=0;n<r.length;n++)r[n]=e._mark(r[n]);e.nodir&&(r=r.filter((function(t){var r=!/\/$/.test(t),n=e.cache[t]||e.cache[l(e,t)];return r&&n&&(r="DIR"!==n&&!Array.isArray(n)),r})))}e.ignore.length&&(r=r.filter((function(t){return!h(e,t)})));e.found=r},t.mark=function(e,t){var r=l(e,t),n=e.cache[r],i=t;if(n){var o="DIR"===n||Array.isArray(n),s="/"===t.slice(-1);if(o&&!s?i+="/":!o&&s&&(i=i.slice(0,-1)),i!==t){var A=l(e,i);e.statCache[A]=e.statCache[r],e.cache[A]=e.cache[r]}}return i},t.isIgnored=h,t.childrenIgnored=function(e,t){return!!e.ignore.length&&e.ignore.some((function(e){return!(!e.gmatcher||!e.gmatcher.match(t))}))};var i=r(85622),o=r(52670),s=r(71471),A=o.Minimatch;function a(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}function c(e,t){return e.localeCompare(t)}function u(e){var t=null;if("/**"===e.slice(-3)){var r=e.replace(/(\/\*\*)+$/,"");t=new A(r,{dot:!0})}return{matcher:new A(e,{dot:!0}),gmatcher:t}}function l(e,t){var r=t;return r="/"===t.charAt(0)?i.join(e.root,t):s(t)||""===t?t:e.changedCwd?i.resolve(e.cwd,t):i.resolve(t),"win32"===process.platform&&(r=r.replace(/\\/g,"/")),r}function h(e,t){return!!e.ignore.length&&e.ignore.some((function(e){return e.matcher.match(t)||!(!e.gmatcher||!e.gmatcher.match(t))}))}},8401:(e,t,r)=>{e.exports=I;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(85870)),A=r(28614).EventEmitter,a=r(85622),c=r(42357),u=r(71471),l=r(131),h=r(72171),g=(h.alphasort,h.alphasorti,h.setopts),f=h.ownProp,p=r(24679),d=(r(31669),h.childrenIgnored),C=h.isIgnored,E=r(91162);function I(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return l(e,t)}return new y(e,t,r)}I.sync=l;var m=I.GlobSync=l.GlobSync;function y(e,t,r){if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new m(e,t)}if(!(this instanceof y))return new y(e,t,r);g(this,e,t),this._didRealPath=!1;var n=this.minimatch.set.length;this.matches=new Array(n),"function"==typeof r&&(r=E(r),this.on("error",r),this.on("end",(function(e){r(null,e)})));var i=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===n)return s();for(var o=0;o<n;o++)this._process(this.minimatch.set[o],o,!1,s);function s(){--i._processing,i._processing<=0&&i._finish()}}I.glob=I,I.hasMagic=function(e,t){var r=function(e,t){if(null===t||"object"!=typeof t)return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}({},t);r.noprocess=!0;var n=new y(e,r).minimatch.set;if(!e)return!1;if(n.length>1)return!0;for(var i=0;i<n[0].length;i++)if("string"!=typeof n[0][i])return!0;return!1},I.Glob=y,s(y,A),y.prototype._finish=function(){if(c(this instanceof y),!this.aborted){if(this.realpath&&!this._didRealpath)return this._realpath();h.finish(this),this.emit("end",this.found)}},y.prototype._realpath=function(){if(!this._didRealpath){this._didRealpath=!0;var e=this.matches.length;if(0===e)return this._finish();for(var t=this,r=0;r<this.matches.length;r++)this._realpathSet(r,n)}function n(){0==--e&&t._finish()}},y.prototype._realpathSet=function(e,t){var r=this.matches[e];if(!r)return t();var n=Object.keys(r),o=this,s=n.length;if(0===s)return t();var A=this.matches[e]=Object.create(null);n.forEach((function(r,n){r=o._makeAbs(r),i.realpath(r,o.realpathCache,(function(n,i){n?"stat"===n.syscall?A[r]=!0:o.emit("error",n):A[i]=!0,0==--s&&(o.matches[e]=A,t())}))}))},y.prototype._mark=function(e){return h.mark(this,e)},y.prototype._makeAbs=function(e){return h.makeAbs(this,e)},y.prototype.abort=function(){this.aborted=!0,this.emit("abort")},y.prototype.pause=function(){this.paused||(this.paused=!0,this.emit("pause"))},y.prototype.resume=function(){if(this.paused){if(this.emit("resume"),this.paused=!1,this._emitQueue.length){var e=this._emitQueue.slice(0);this._emitQueue.length=0;for(var t=0;t<e.length;t++){var r=e[t];this._emitMatch(r[0],r[1])}}if(this._processQueue.length){var n=this._processQueue.slice(0);this._processQueue.length=0;for(t=0;t<n.length;t++){var i=n[t];this._processing--,this._process(i[0],i[1],i[2],i[3])}}}},y.prototype._process=function(e,t,r,n){if(c(this instanceof y),c("function"==typeof n),!this.aborted)if(this._processing++,this.paused)this._processQueue.push([e,t,r,n]);else{for(var i,s=0;"string"==typeof e[s];)s++;switch(s){case e.length:return void this._processSimple(e.join("/"),t,n);case 0:i=null;break;default:i=e.slice(0,s).join("/")}var A,a=e.slice(s);null===i?A=".":u(i)||u(e.join("/"))?(i&&u(i)||(i="/"+i),A=i):A=i;var l=this._makeAbs(A);if(d(this,A))return n();a[0]===o.GLOBSTAR?this._processGlobStar(i,A,l,a,t,r,n):this._processReaddir(i,A,l,a,t,r,n)}},y.prototype._processReaddir=function(e,t,r,n,i,o,s){var A=this;this._readdir(r,o,(function(a,c){return A._processReaddir2(e,t,r,n,i,o,c,s)}))},y.prototype._processReaddir2=function(e,t,r,n,i,o,s,A){if(!s)return A();for(var c=n[0],u=!!this.minimatch.negate,l=c._glob,h=this.dot||"."===l.charAt(0),g=[],f=0;f<s.length;f++){if("."!==(d=s[f]).charAt(0)||h)(u&&!e?!d.match(c):d.match(c))&&g.push(d)}var p=g.length;if(0===p)return A();if(1===n.length&&!this.mark&&!this.stat){this.matches[i]||(this.matches[i]=Object.create(null));for(f=0;f<p;f++){var d=g[f];e&&(d="/"!==e?e+"/"+d:e+d),"/"!==d.charAt(0)||this.nomount||(d=a.join(this.root,d)),this._emitMatch(i,d)}return A()}n.shift();for(f=0;f<p;f++){d=g[f];e&&(d="/"!==e?e+"/"+d:e+d),this._process([d].concat(n),i,o,A)}A()},y.prototype._emitMatch=function(e,t){if(!this.aborted&&!C(this,t))if(this.paused)this._emitQueue.push([e,t]);else{var r=u(t)?t:this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if("DIR"===n||Array.isArray(n))return}this.matches[e][t]=!0;var i=this.statCache[r];i&&this.emit("stat",t,i),this.emit("match",t)}}},y.prototype._readdirInGlobStar=function(e,t){if(!this.aborted){if(this.follow)return this._readdir(e,!1,t);var r=this,i=p("lstat\0"+e,(function(n,i){if(n&&"ENOENT"===n.code)return t();var o=i&&i.isSymbolicLink();r.symlinks[e]=o,o||!i||i.isDirectory()?r._readdir(e,!1,t):(r.cache[e]="FILE",t())}));i&&n.lstat(e,i)}},y.prototype._readdir=function(e,t,r){if(!this.aborted&&(r=p("readdir\0"+e+"\0"+t,r))){if(t&&!f(this.symlinks,e))return this._readdirInGlobStar(e,r);if(f(this.cache,e)){var i=this.cache[e];if(!i||"FILE"===i)return r();if(Array.isArray(i))return r(null,i)}n.readdir(e,function(e,t,r){return function(n,i){n?e._readdirError(t,n,r):e._readdirEntries(t,i,r)}}(this,e,r))}},y.prototype._readdirEntries=function(e,t,r){if(!this.aborted){if(!this.mark&&!this.stat)for(var n=0;n<t.length;n++){var i=t[n];i="/"===e?e+i:e+"/"+i,this.cache[i]=!0}return this.cache[e]=t,r(null,t)}},y.prototype._readdirError=function(e,t,r){if(!this.aborted){switch(t.code){case"ENOTSUP":case"ENOTDIR":var n=this._makeAbs(e);if(this.cache[n]="FILE",n===this.cwdAbs){var i=new Error(t.code+" invalid cwd "+this.cwd);i.path=this.cwd,i.code=t.code,this.emit("error",i),this.abort()}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:this.cache[this._makeAbs(e)]=!1,this.strict&&(this.emit("error",t),this.abort()),this.silent||console.error("glob error",t)}return r()}},y.prototype._processGlobStar=function(e,t,r,n,i,o,s){var A=this;this._readdir(r,o,(function(a,c){A._processGlobStar2(e,t,r,n,i,o,c,s)}))},y.prototype._processGlobStar2=function(e,t,r,n,i,o,s,A){if(!s)return A();var a=n.slice(1),c=e?[e]:[],u=c.concat(a);this._process(u,i,!1,A);var l=this.symlinks[r],h=s.length;if(l&&o)return A();for(var g=0;g<h;g++){if("."!==s[g].charAt(0)||this.dot){var f=c.concat(s[g],a);this._process(f,i,!0,A);var p=c.concat(s[g],n);this._process(p,i,!0,A)}}A()},y.prototype._processSimple=function(e,t,r){var n=this;this._stat(e,(function(i,o){n._processSimple2(e,t,i,o,r)}))},y.prototype._processSimple2=function(e,t,r,n,i){if(this.matches[t]||(this.matches[t]=Object.create(null)),!n)return i();if(e&&u(e)&&!this.nomount){var o=/[\/\\]$/.test(e);"/"===e.charAt(0)?e=a.join(this.root,e):(e=a.resolve(this.root,e),o&&(e+="/"))}"win32"===process.platform&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e),i()},y.prototype._stat=function(e,t){var r=this._makeAbs(e),i="/"===e.slice(-1);if(e.length>this.maxLength)return t();if(!this.stat&&f(this.cache,r)){var o=this.cache[r];if(Array.isArray(o)&&(o="DIR"),!i||"DIR"===o)return t(null,o);if(i&&"FILE"===o)return t()}var s=this.statCache[r];if(void 0!==s){if(!1===s)return t(null,s);var A=s.isDirectory()?"DIR":"FILE";return i&&"FILE"===A?t():t(null,A,s)}var a=this,c=p("stat\0"+r,(function(i,o){if(o&&o.isSymbolicLink())return n.stat(r,(function(n,i){n?a._stat2(e,r,null,o,t):a._stat2(e,r,n,i,t)}));a._stat2(e,r,i,o,t)}));c&&n.lstat(r,c)},y.prototype._stat2=function(e,t,r,n,i){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,i();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return i(null,!1,n);var s=!0;return n&&(s=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||s,o&&"FILE"===s?i():i(null,s,n)}},131:(e,t,r)=>{e.exports=f,f.GlobSync=p;var n=r(35747),i=r(33198),o=r(52670),s=(o.Minimatch,r(8401).Glob,r(31669),r(85622)),A=r(42357),a=r(71471),c=r(72171),u=(c.alphasort,c.alphasorti,c.setopts),l=c.ownProp,h=c.childrenIgnored,g=c.isIgnored;function f(e,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new p(e,t).found}function p(e,t){if(!e)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof p))return new p(e,t);if(u(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var n=0;n<r;n++)this._process(this.minimatch.set[n],n,!1);this._finish()}p.prototype._finish=function(){if(A(this instanceof p),this.realpath){var e=this;this.matches.forEach((function(t,r){var n=e.matches[r]=Object.create(null);for(var o in t)try{o=e._makeAbs(o),n[i.realpathSync(o,e.realpathCache)]=!0}catch(t){if("stat"!==t.syscall)throw t;n[e._makeAbs(o)]=!0}}))}c.finish(this)},p.prototype._process=function(e,t,r){A(this instanceof p);for(var n,i=0;"string"==typeof e[i];)i++;switch(i){case e.length:return void this._processSimple(e.join("/"),t);case 0:n=null;break;default:n=e.slice(0,i).join("/")}var s,c=e.slice(i);null===n?s=".":a(n)||a(e.join("/"))?(n&&a(n)||(n="/"+n),s=n):s=n;var u=this._makeAbs(s);h(this,s)||(c[0]===o.GLOBSTAR?this._processGlobStar(n,s,u,c,t,r):this._processReaddir(n,s,u,c,t,r))},p.prototype._processReaddir=function(e,t,r,n,i,o){var A=this._readdir(r,o);if(A){for(var a=n[0],c=!!this.minimatch.negate,u=a._glob,l=this.dot||"."===u.charAt(0),h=[],g=0;g<A.length;g++){if("."!==(d=A[g]).charAt(0)||l)(c&&!e?!d.match(a):d.match(a))&&h.push(d)}var f=h.length;if(0!==f)if(1!==n.length||this.mark||this.stat){n.shift();for(g=0;g<f;g++){var p;d=h[g];p=e?[e,d]:[d],this._process(p.concat(n),i,o)}}else{this.matches[i]||(this.matches[i]=Object.create(null));for(var g=0;g<f;g++){var d=h[g];e&&(d="/"!==e.slice(-1)?e+"/"+d:e+d),"/"!==d.charAt(0)||this.nomount||(d=s.join(this.root,d)),this._emitMatch(i,d)}}}},p.prototype._emitMatch=function(e,t){if(!g(this,t)){var r=this._makeAbs(t);if(this.mark&&(t=this._mark(t)),this.absolute&&(t=r),!this.matches[e][t]){if(this.nodir){var n=this.cache[r];if("DIR"===n||Array.isArray(n))return}this.matches[e][t]=!0,this.stat&&this._stat(t)}}},p.prototype._readdirInGlobStar=function(e){if(this.follow)return this._readdir(e,!1);var t,r;try{r=n.lstatSync(e)}catch(e){if("ENOENT"===e.code)return null}var i=r&&r.isSymbolicLink();return this.symlinks[e]=i,i||!r||r.isDirectory()?t=this._readdir(e,!1):this.cache[e]="FILE",t},p.prototype._readdir=function(e,t){if(t&&!l(this.symlinks,e))return this._readdirInGlobStar(e);if(l(this.cache,e)){var r=this.cache[e];if(!r||"FILE"===r)return null;if(Array.isArray(r))return r}try{return this._readdirEntries(e,n.readdirSync(e))}catch(t){return this._readdirError(e,t),null}},p.prototype._readdirEntries=function(e,t){if(!this.mark&&!this.stat)for(var r=0;r<t.length;r++){var n=t[r];n="/"===e?e+n:e+"/"+n,this.cache[n]=!0}return this.cache[e]=t,t},p.prototype._readdirError=function(e,t){switch(t.code){case"ENOTSUP":case"ENOTDIR":var r=this._makeAbs(e);if(this.cache[r]="FILE",r===this.cwdAbs){var n=new Error(t.code+" invalid cwd "+this.cwd);throw n.path=this.cwd,n.code=t.code,n}break;case"ENOENT":case"ELOOP":case"ENAMETOOLONG":case"UNKNOWN":this.cache[this._makeAbs(e)]=!1;break;default:if(this.cache[this._makeAbs(e)]=!1,this.strict)throw t;this.silent||console.error("glob error",t)}},p.prototype._processGlobStar=function(e,t,r,n,i,o){var s=this._readdir(r,o);if(s){var A=n.slice(1),a=e?[e]:[],c=a.concat(A);this._process(c,i,!1);var u=s.length;if(!this.symlinks[r]||!o)for(var l=0;l<u;l++){if("."!==s[l].charAt(0)||this.dot){var h=a.concat(s[l],A);this._process(h,i,!0);var g=a.concat(s[l],n);this._process(g,i,!0)}}}},p.prototype._processSimple=function(e,t){var r=this._stat(e);if(this.matches[t]||(this.matches[t]=Object.create(null)),r){if(e&&a(e)&&!this.nomount){var n=/[\/\\]$/.test(e);"/"===e.charAt(0)?e=s.join(this.root,e):(e=s.resolve(this.root,e),n&&(e+="/"))}"win32"===process.platform&&(e=e.replace(/\\/g,"/")),this._emitMatch(t,e)}},p.prototype._stat=function(e){var t=this._makeAbs(e),r="/"===e.slice(-1);if(e.length>this.maxLength)return!1;if(!this.stat&&l(this.cache,t)){var i=this.cache[t];if(Array.isArray(i)&&(i="DIR"),!r||"DIR"===i)return i;if(r&&"FILE"===i)return!1}var o=this.statCache[t];if(!o){var s;try{s=n.lstatSync(t)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return this.statCache[t]=!1,!1}if(s&&s.isSymbolicLink())try{o=n.statSync(t)}catch(e){o=s}else o=s}this.statCache[t]=o;i=!0;return o&&(i=o.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||i,(!r||"FILE"!==i)&&i},p.prototype._mark=function(e){return c.mark(this,e)},p.prototype._makeAbs=function(e){return c.makeAbs(this,e)}},97098:(e,t,r)=>{"use strict";var n=r(18193),i=r(85622).posix.dirname,o="win32"===r(12087).platform(),s=/\\/g,A=/[\{\[].*[\/]*.*[\}\]]$/,a=/(^|[^\\])([\{\[]|\([^\)]+$)/,c=/\\([\*\?\|\[\]\(\)\{\}])/g;e.exports=function(e,t){Object.assign({flipBackslashes:!0},t).flipBackslashes&&o&&e.indexOf("/")<0&&(e=e.replace(s,"/")),A.test(e)&&(e+="/"),e+="a";do{e=i(e)}while(n(e)||a.test(e));return e.replace(c,"$1")}},22787:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747),o=r(85622),s=r(19347),A=r(46458),a=r(17234),c=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],u=n(i.readFile),l=(e,t)=>{const r=a(o.relative(t.cwd,o.dirname(t.fileName)));return e.split(/\r?\n/).filter(Boolean).filter(e=>!e.startsWith("#")).map((e=>t=>t.startsWith("!")?"!"+o.posix.join(e,t.slice(1)):o.posix.join(e,t))(r))},h=e=>e.reduce((e,t)=>(e.add(l(t.content,{cwd:t.cwd,fileName:t.filePath})),e),A()),g=(e,t)=>r=>e.ignores(a(o.relative(t,((e,t)=>{if(o.isAbsolute(t)){if(t.startsWith(e))return t;throw new Error(`Path ${t} is not in cwd ${e}`)}return o.join(e,t)})(t,r)))),f=({ignore:e=[],cwd:t=process.cwd()}={})=>({ignore:e,cwd:t});e.exports=async e=>{e=f(e);const t=await s("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}),r=await Promise.all(t.map(t=>(async(e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:await u(r,"utf8")}})(t,e.cwd))),n=h(r);return g(n,e.cwd)},e.exports.sync=e=>{e=f(e);const t=s.sync("**/.gitignore",{ignore:c.concat(e.ignore),cwd:e.cwd}).map(t=>((e,t)=>{const r=o.join(t,e);return{cwd:t,filePath:r,content:i.readFileSync(r,"utf8")}})(t,e.cwd)),r=h(t);return g(r,e.cwd)}},18710:(e,t,r)=>{"use strict";const n=r(35747),i=r(39920),o=r(55598),s=r(8401),A=r(19347),a=r(66241),c=r(22787),{FilterStream:u,UniqueStream:l}=r(90330),h=()=>!1,g=e=>"!"===e[0],f=(e,t)=>{(e=>{if(!e.every(e=>"string"==typeof e))throw new TypeError("Patterns must be a string or an array of strings")})(e=i([].concat(e))),((e={})=>{if(!e.cwd)return;let t;try{t=n.statSync(e.cwd)}catch(e){return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")})(t);const r=[];t={ignore:[],expandDirectories:!0,...t};for(const[n,i]of e.entries()){if(g(i))continue;const o=e.slice(n).filter(g).map(e=>e.slice(1)),s={...t,ignore:t.ignore.concat(o)};r.push({pattern:i,options:s})}return r},p=(e,t)=>e.options.expandDirectories?((e,t)=>{let r={};return e.options.cwd&&(r.cwd=e.options.cwd),Array.isArray(e.options.expandDirectories)?r={...r,files:e.options.expandDirectories}:"object"==typeof e.options.expandDirectories&&(r={...r,...e.options.expandDirectories}),t(e.pattern,r)})(e,t):[e.pattern],d=e=>e&&e.gitignore?c.sync({cwd:e.cwd,ignore:e.ignore}):h,C=e=>t=>{const{options:r}=e;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=a.sync(r.ignore)),{pattern:t,options:r}};e.exports=async(e,t)=>{const r=f(e,t),[o,s]=await Promise.all([(async()=>t&&t.gitignore?c({cwd:t.cwd,ignore:t.ignore}):h)(),(async()=>{const e=await Promise.all(r.map(async e=>{const t=await p(e,a);return Promise.all(t.map(C(e)))}));return i(...e)})()]),u=await Promise.all(s.map(e=>A(e.pattern,e.options)));return i(...u).filter(e=>{return!o((t=e,t.stats instanceof n.Stats?t.path:t));var t})},e.exports.sync=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t);return r.reduce((e,t)=>i(e,A.sync(t.pattern,t.options)),[]).filter(e=>!n(e))},e.exports.stream=(e,t)=>{const r=f(e,t).reduce((e,t)=>{const r=p(t,a.sync).map(C(t));return e.concat(r)},[]),n=d(t),i=new u(e=>!n(e)),s=new l;return o(r.map(e=>A.stream(e.pattern,e.options))).pipe(i).pipe(s)},e.exports.generateGlobTasks=f,e.exports.hasMagic=(e,t)=>[].concat(e).some(e=>s.hasMagic(e,t)),e.exports.gitignore=c},90330:(e,t,r)=>{"use strict";const{Transform:n}=r(92413);class i extends n{constructor(){super({objectMode:!0})}}e.exports={FilterStream:class extends i{constructor(e){super(),this._filter=e}_transform(e,t,r){this._filter(e)&&this.push(e),r()}},UniqueStream:class extends i{constructor(){super(),this._pushed=new Set}_transform(e,t,r){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),r()}}}},67078:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143),i=new Set([413,429,503]),o=e=>e instanceof n.HTTPError||e instanceof n.ParseError||e instanceof n.MaxRedirectsError;t.default=({attemptCount:e,retryOptions:t,error:r})=>{if(e>t.limit)return 0;const n=t.methods.includes(r.options.method),s=t.errorCodes.includes(r.code),A=o(r)&&t.statusCodes.includes(r.response.statusCode);if(!n||!s&&!A)return 0;if(o(r)){const{response:e}=r;if(e&&"retry-after"in e.headers&&i.has(e.statusCode)){let r=Number(e.headers["retry-after"]);return Number.isNaN(r)?r=Date.parse(e.headers["retry-after"])-Date.now():r*=1e3,void 0===t.maxRetryAfter||r>t.maxRetryAfter?0:r}if(413===e.statusCode)return 0}return 2**(e-1)*1e3+100*Math.random()}},39560:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189),i=r(27143),o=r(8859);o.knownHookEvents.includes("beforeRetry")||o.knownHookEvents.push("beforeRetry","afterResponse"),t.knownBodyTypes=["json","buffer","text"],t.parseBody=(e,t,r)=>{const{rawBody:n}=e;try{if("text"===t)return n.toString(r);if("json"===t)return 0===n.length?"":JSON.parse(n.toString());if("buffer"===t)return Buffer.from(n);throw new i.ParseError({message:`Unknown body type '${t}'`,name:"Error"},e)}catch(t){throw new i.ParseError(t,e)}};class s extends o.default{static normalizeArguments(e,t,r){const i=super.normalizeArguments(e,t,r);if(n.default.null_(i.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");n.assert.any([n.default.string,n.default.undefined],i.encoding),n.assert.any([n.default.boolean,n.default.undefined],i.resolveBodyOnly),n.assert.any([n.default.boolean,n.default.undefined],i.methodRewriting),n.assert.any([n.default.boolean,n.default.undefined],i.isStream);const{retry:o}=i;if(i.retry=r?{...r.retry}:{calculateDelay:e=>e.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},n.default.object(o)?(i.retry={...i.retry,...o},i.retry.methods=[...new Set(i.retry.methods.map(e=>e.toUpperCase()))],i.retry.statusCodes=[...new Set(i.retry.statusCodes)],i.retry.errorCodes=[...new Set(i.retry.errorCodes)]):n.default.number(o)&&(i.retry.limit=o),n.default.undefined(i.retry.maxRetryAfter)&&(i.retry.maxRetryAfter=Math.min(...[i.timeout.request,i.timeout.connect].filter(n.default.number))),n.default.object(i.pagination)){r&&(i.pagination={...r.pagination,...i.pagination});const{pagination:e}=i;if(!n.default.function_(e.transform))throw new Error("`options.pagination.transform` must be implemented");if(!n.default.function_(e.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!n.default.function_(e.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!n.default.function_(e.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return"json"===i.responseType&&void 0===i.headers.accept&&(i.headers.accept="application/json"),i}static mergeOptions(...e){let t;for(const r of e)t=s.normalizeArguments(void 0,r,t);return t}async _beforeError(e){e instanceof o.RequestError||(e=new o.RequestError(e.message,e,this)),this.emit("error",e)}}t.default=s},57019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(27143);t.default=function(e,...t){const r=(async()=>{if(e instanceof n.RequestError)try{for(const r of t)if(r)for(const t of r)e=await t(e)}catch(t){e=t}throw e})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}},74850:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(28614),i=r(58764),o=r(59351),s=r(67078),A=r(27143),a=r(39560);t.PromisableRequest=a.default;const c=r(63227),u=["request","response","redirect","uploadProgress","downloadProgress"];t.default=function e(t){let r,l,h=0;const g=new n.EventEmitter,f=new o((n,o,p)=>{const d=()=>{const{throwHttpErrors:C}=t;C||(t.throwHttpErrors=!0);const E=new a.default(t.url,t);E._noPipe=!0,p(()=>E.destroy());const I=async e=>{try{for(const r of t.hooks.beforeError)e=await r(e)}catch(e){return void o(new A.RequestError(e.message,e,E))}o(e)};r=E,E.once("response",async r=>{if(r.retryCount=h,r.request.aborted)return;const o=()=>{const{statusCode:e}=r,n=t.followRedirect?299:399;return e>=200&&e<=n||304===e};let s;try{s=await i.buffer(E),r.rawBody=s}catch(e){return}try{r.body=a.parseBody(r,t.responseType,t.encoding)}catch(e){if(r.body=s.toString(),o())return void I(e)}try{for(const[n,i]of t.hooks.afterResponse.entries())r=await i(r,async r=>{const i=a.default.normalizeArguments(void 0,{...r,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},t);i.hooks.afterResponse=i.hooks.afterResponse.slice(0,n);for(const e of i.hooks.beforeRetry)await e(i);const o=e(i);return p(()=>{o.catch(()=>{}),o.cancel()}),o})}catch(e){return void I(new A.RequestError(e.message,e,E))}!C||o()?(l=r,n(t.resolveBodyOnly?r.body:r)):I(new A.HTTPError(r))}),E.once("error",e=>{if(f.isCanceled)return;if(!E.options)return void I(e);let r;h++;try{r=t.retry.calculateDelay({attemptCount:h,retryOptions:t.retry,error:e,computedValue:s.default({attemptCount:h,retryOptions:t.retry,error:e,computedValue:0})})}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}if(r){E.destroy();setTimeout(async()=>{t.throwHttpErrors=C;try{for(const r of t.hooks.beforeRetry)await r(t,e,h)}catch(t){return E.destroy(),void I(new A.RequestError(t.message,e,E))}d()},r)}else h--,e instanceof A.HTTPError||(E.destroy(),I(e))}),c.default(E,g,u)};d()});f.on=(e,t)=>(g.on(e,t),f);const p=e=>{const r=(async()=>(await f,a.parseBody(l,e,t.encoding)))();return Object.defineProperties(r,Object.getOwnPropertyDescriptors(f)),r};return f.json=()=>(r.writableFinished||void 0!==t.headers.accept||(t.headers.accept="application/json"),p("json")),f.buffer=()=>p("buffer"),f.text=()=>p("text"),f},function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(27143))},27143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351);t.CancelError=n.CancelError;const i=r(8859);t.RequestError=i.RequestError,t.MaxRedirectsError=i.MaxRedirectsError,t.CacheError=i.CacheError,t.UploadError=i.UploadError,t.TimeoutError=i.TimeoutError,t.HTTPError=i.HTTPError,t.ReadError=i.ReadError,t.UnsupportedProtocolError=i.UnsupportedProtocolError;class o extends i.RequestError{constructor(e,t){const{options:r}=t.request;super(`${e.message} in "${r.url.toString()}"`,e,t.request),this.name="ParseError",Object.defineProperty(this,"response",{enumerable:!1,value:t})}}t.ParseError=o},8859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(31669),i=r(92413),o=r(35747),s=r(78835),A=r(98605),a=r(98605),c=r(57211),u=r(98298),l=r(53832),h=r(43261),g=r(11200),f=r(9453),p=r(55737),d=r(58764),C=r(8189),E=r(96596),I=r(35637),m=r(63227),y=r(32449),w=r(13656),B=r(80972),Q=r(30291),v=Symbol("request"),D=Symbol("response"),b=Symbol("responseSize"),S=Symbol("downloadedSize"),k=Symbol("bodySize"),x=Symbol("uploadedSize"),F=Symbol("serverResponsesPiped"),M=Symbol("unproxyEvents"),N=Symbol("isFromCache"),R=Symbol("cancelTimeouts"),K=Symbol("startedReading"),L=Symbol("stopReading"),T=Symbol("triggerRead"),P=Symbol("body"),U=Symbol("jobs"),_=Symbol("originalResponse");t.kIsNormalizedAlready=Symbol("isNormalizedAlready");const O=C.default.string(process.versions.brotli);t.withoutBody=new Set(["GET","HEAD"]),t.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError"];const j=new Q.default,Y=new Set([300,301,302,303,304,307,308]),G=["context","body","json","form"];class J extends Error{constructor(e,t,r){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,r instanceof ee?(Object.defineProperty(this,"request",{enumerable:!1,value:r}),Object.defineProperty(this,"response",{enumerable:!1,value:r[D]}),Object.defineProperty(this,"options",{enumerable:!1,value:r.options})):Object.defineProperty(this,"options",{enumerable:!1,value:r}),this.timings=null===(n=this.request)||void 0===n?void 0:n.timings,!C.default.undefined(t.stack)){const e=this.stack.indexOf(this.message)+this.message.length,r=this.stack.slice(e).split("\n").reverse(),n=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split("\n").reverse();for(;0!==n.length&&n[0]===r[0];)r.shift();this.stack=`${this.stack.slice(0,e)}${r.reverse().join("\n")}${n.reverse().join("\n")}`}}}t.RequestError=J;class H extends J{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}}t.MaxRedirectsError=H;class q extends J{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}}t.HTTPError=q;class z extends J{constructor(e,t){super(e.message,e,t),this.name="CacheError"}}t.CacheError=z;class W extends J{constructor(e,t){super(e.message,e,t),this.name="UploadError"}}t.UploadError=W;class V extends J{constructor(e,t,r){super(e.message,e,r),this.name="TimeoutError",this.event=e.event,this.timings=t}}t.TimeoutError=V;class X extends J{constructor(e,t){super(e.message,e,t),this.name="ReadError"}}t.ReadError=X;class Z extends J{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}}t.UnsupportedProtocolError=Z;const $=["socket","connect","continue","information","upgrade","timeout"];class ee extends i.Duplex{constructor(e,r={},n){super({highWaterMark:0}),this[S]=0,this[x]=0,this.requestInitialized=!1,this[F]=new Set,this.redirects=[],this[L]=!1,this[T]=!1,this[U]=[],this._progressCallbacks=[];const i=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",e=>{e.prependListener("data",i),e.on("data",s),e.prependListener("end",i),e.on("end",s)}),this.on("unpipe",e=>{e.off("data",i),e.off("data",s),e.off("end",i),e.off("end",s)}),this.on("pipe",e=>{e instanceof a.IncomingMessage&&(this.options.headers={...e.headers,...this.options.headers})});const{json:A,body:c,form:u}=r;(A||c||u)&&this._lockWrite(),(async r=>{var i;try{r.body instanceof o.ReadStream&&await(async e=>new Promise((t,r)=>{const n=e=>{r(e)};e.once("error",n),e.once("open",()=>{e.off("error",n),t()})}))(r.body),t.kIsNormalizedAlready in r?this.options=r:this.options=this.constructor.normalizeArguments(e,r,n);const{url:s}=this.options;if(!s)throw new TypeError("Missing `url` property");if(this.requestUrl=s.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed)return void(null===(i=this[v])||void 0===i||i.destroy());for(const e of this[U])e();this.requestInitialized=!0}catch(e){if(e instanceof J)return void this._beforeError(e);this.destroyed||this.destroy(e)}})(r)}static normalizeArguments(e,r,i){var o,A,a,c;const u=r;if(C.default.object(e)&&!C.default.urlInstance(e))r={...i,...e,...r};else{if(e&&r&&r.url)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...i,...r},e&&(r.url=e),C.default.urlInstance(r.url)&&(r.url=new s.URL(r.url.toString()))}if(!1===r.cache&&(r.cache=void 0),!1===r.dnsCache&&(r.dnsCache=void 0),C.assert.any([C.default.string,C.default.undefined],r.method),C.assert.any([C.default.object,C.default.undefined],r.headers),C.assert.any([C.default.string,C.default.urlInstance,C.default.undefined],r.prefixUrl),C.assert.any([C.default.object,C.default.undefined],r.cookieJar),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.searchParams),C.assert.any([C.default.object,C.default.string,C.default.undefined],r.cache),C.assert.any([C.default.object,C.default.number,C.default.undefined],r.timeout),C.assert.any([C.default.object,C.default.undefined],r.context),C.assert.any([C.default.object,C.default.undefined],r.hooks),C.assert.any([C.default.boolean,C.default.undefined],r.decompress),C.assert.any([C.default.boolean,C.default.undefined],r.ignoreInvalidCookies),C.assert.any([C.default.boolean,C.default.undefined],r.followRedirect),C.assert.any([C.default.number,C.default.undefined],r.maxRedirects),C.assert.any([C.default.boolean,C.default.undefined],r.throwHttpErrors),C.assert.any([C.default.boolean,C.default.undefined],r.http2),C.assert.any([C.default.boolean,C.default.undefined],r.allowGetBody),C.assert.any([C.default.boolean,C.default.undefined],r.rejectUnauthorized),C.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(null==i?void 0:i.headers)?r.headers={...r.headers}:r.headers=p({...null==i?void 0:i.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(null==i?void 0:i.searchParams)){C.default.string(r.searchParams)||r.searchParams instanceof s.URLSearchParams||function(e){for(const t in e){const r=e[t];if(!(C.default.string(r)||C.default.number(r)||C.default.boolean(r)||C.default.null_(r)))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}(r.searchParams);const e=new s.URLSearchParams(r.searchParams);null===(o=null==i?void 0:i.searchParams)||void 0===o||o.forEach((t,r)=>{e.has(r)||e.append(r,t)}),r.searchParams=e}if(r.username=null!==(A=r.username)&&void 0!==A?A:"",r.password=null!==(a=r.password)&&void 0!==a?a:"",r.prefixUrl?(r.prefixUrl=r.prefixUrl.toString(),""===r.prefixUrl||r.prefixUrl.endsWith("/")||(r.prefixUrl+="/")):r.prefixUrl="",C.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=B.default(r.prefixUrl+r.url,r)}else(C.default.undefined(r.url)&&""!==r.prefixUrl||r.protocol)&&(r.url=B.default(r.prefixUrl,r));if(r.url){let{prefixUrl:e}=r;Object.defineProperty(r,"prefixUrl",{set:t=>{const n=r.url;if(!n.href.startsWith(t))throw new Error(`Cannot change \`prefixUrl\` from ${e} to ${t}: ${n.href}`);r.url=new s.URL(t+n.href.slice(e.length)),e=t},get:()=>e});let{protocol:t}=r.url;if("unix:"===t&&(t="http:",r.url=new s.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),r.url.search){const e="_GOT_INTERNAL_TRIGGER_NORMALIZATION";r.url.searchParams.append(e,""),r.url.searchParams.delete(e)}if("http:"!==t&&"https:"!==t)throw new Z(r);""===r.username?r.username=r.url.username:r.url.username=r.username,""===r.password?r.password=r.url.password:r.url.password=r.password}const{cookieJar:l}=r;if(l){let{setCookie:e,getCookieString:t}=l;C.assert.function_(e),C.assert.function_(t),4===e.length&&0===t.length&&(e=n.promisify(e.bind(r.cookieJar)),t=n.promisify(t.bind(r.cookieJar)),r.cookieJar={setCookie:e,getCookieString:t})}const{cache:f}=r;if(f&&(j.has(f)||j.set(f,new g((e,t)=>e[v](e,t),f))),!0===r.dnsCache)r.dnsCache=new h.default;else if(!(C.default.undefined(r.dnsCache)||r.dnsCache instanceof h.default))throw new TypeError("Parameter `dnsCache` must be a CacheableLookup instance or a boolean, got "+C.default(r.dnsCache));C.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout={...i.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});const d=r.hooks===(null==i?void 0:i.hooks);r.hooks={...r.hooks};for(const e of t.knownHookEvents)if(e in r.hooks){if(!C.default.array(r.hooks[e]))throw new TypeError(`Parameter \`${e}\` must be an Array, got ${C.default(r.hooks[e])}`);r.hooks[e]=[...r.hooks[e]]}else r.hooks[e]=[];if(i&&!d)for(const e of t.knownHookEvents){0!==i.hooks[e].length&&(r.hooks[e]=[...i.hooks[e],...r.hooks[e]])}if("followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent)for(const e in r.agent)if("http"!==e&&"https"!==e&&"http2"!==e)throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${e}\``);return r.maxRedirects=null!==(c=r.maxRedirects)&&void 0!==c?c:0,((e,t)=>{const r={};for(const t of e)if(t)for(const e of G)e in t&&(r[e]={writable:!0,configurable:!0,enumerable:!1,value:t[e]});Object.defineProperties(t,r)})([i,u],r),r}_lockWrite(){const e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){const{options:e}=this,{headers:r}=e,n=!C.default.undefined(e.form),o=!C.default.undefined(e.json),A=!C.default.undefined(e.body),a=n||o||A,c=t.withoutBody.has(e.method)&&!("GET"===e.method&&e.allowGetBody);if(this._cannotHaveBody=c,a){if(c)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([A,n,o].filter(e=>e).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(A&&!(e.body instanceof i.Readable)&&!C.default.string(e.body)&&!C.default.buffer(e.body)&&!I.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(n&&!C.default.object(e.form))throw new TypeError("The `form` option must be an Object");{const t=!C.default.string(r["content-type"]);A?(I.default(e.body)&&t&&(r["content-type"]="multipart/form-data; boundary="+e.body.getBoundary()),this[P]=e.body):n?(t&&(r["content-type"]="application/x-www-form-urlencoded"),this[P]=new s.URLSearchParams(e.form).toString()):(t&&(r["content-type"]="application/json"),this[P]=JSON.stringify(e.json));const i=await E.default(this[P],e.headers);C.default.undefined(r["content-length"])&&C.default.undefined(r["transfer-encoding"])&&(c||C.default.undefined(i)||(r["content-length"]=String(i)))}}else c?this._lockWrite():this._unlockWrite();this[k]=Number(r["content-length"])||void 0}async _onResponse(e){const{options:t}=this,{url:r}=t;this[_]=e,t.decompress&&(e=l(e));const n=e.statusCode,i=e;i.statusMessage=i.statusMessage?i.statusMessage:A.STATUS_CODES[n],i.url=t.url.toString(),i.requestUrl=this.requestUrl,i.redirectUrls=this.redirects,i.request=this,i.isFromCache=e.fromCache||!1,i.ip=this.ip,this[N]=i.isFromCache,this[b]=Number(e.headers["content-length"])||void 0,this[D]=e,e.once("end",()=>{this[b]=this[S],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",t=>{e.destroy(),this._beforeError(new X(t,this))}),e.once("aborted",()=>{this.aborted||this._beforeError(new X({name:"Error",message:"The server aborted the pending request"},this))}),this.emit("downloadProgress",this.downloadProgress);const o=e.headers["set-cookie"];if(C.default.object(t.cookieJar)&&o){let e=o.map(async e=>t.cookieJar.setCookie(e,r.toString()));t.ignoreInvalidCookies&&(e=e.map(async e=>e.catch(()=>{})));try{await Promise.all(e)}catch(e){return void this._beforeError(e)}}if(t.followRedirect&&e.headers.location&&Y.has(n)){e.resume(),this[v]&&(this[R](),delete this[v],this[M]());if(!(303===n&&"GET"!==t.method&&"HEAD"!==t.method)&&t.methodRewriting||(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form),this.redirects.length>=t.maxRedirects)return void this._beforeError(new H(this));try{const n=Buffer.from(e.headers.location,"binary").toString(),o=new s.URL(n,r),A=o.toString();decodeURI(A),o.hostname!==r.hostname&&("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(delete t.username,delete t.password)),this.redirects.push(A),t.url=o;for(const e of t.hooks.beforeRedirect)await e(t,i);this.emit("redirect",i,t),await this._makeRequest()}catch(e){return void this._beforeError(e)}return}const a=t.followRedirect?299:399,c=n>=200&&n<=a||304===n;if(!t.throwHttpErrors||c||(await this._beforeError(new q(i)),!this.destroyed)){e.on("readable",()=>{this[T]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(const r of this[F])if(!r.headersSent){for(const n in e.headers){const i=!t.decompress||"content-encoding"!==n,o=e.headers[n];i&&r.setHeader(n,o)}r.statusCode=n}}}_onRequest(e){const{options:t}=this,{timeout:r,url:n}=t;u.default(e),this[R]=y.default(e,r,n);const i=t.cache?"cacheableResponse":"response";e.once(i,e=>{this._onResponse(e)}),e.once("error",t=>{e.destroy(),t=t instanceof y.TimeoutError?new V(t,this.timings,this):new J(t.message,t,this),this._beforeError(t)}),this[M]=m.default(e,this,$),this[v]=e,this.emit("uploadProgress",this.uploadProgress);const o=this[P],s=0===this.redirects.length?this:e;C.default.nodeStream(o)?(o.pipe(s),o.once("error",e=>{this._beforeError(new W(e,this))}),o.once("end",()=>{delete t.body})):(this._unlockWrite(),C.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(s.end(),this._lockWrite()):(this._writeRequest(o,null,()=>{}),s.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((r,n)=>{Object.assign(t,w.default(e)),delete t.url;const i=j.get(t.cache)(t,e=>{const t=e,{req:n}=t;n&&n.emit("cacheableResponse",t),r(t)});t.url=e,i.once("error",n),i.once("request",r)})}async _makeRequest(){var e;const{options:t}=this,{url:r,headers:n,request:i,agent:o,timeout:s}=t;for(const e in n)if(C.default.undefined(n[e]))delete n[e];else if(C.default.null_(n[e]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${e}\` header`);if(t.decompress&&C.default.undefined(n["accept-encoding"])&&(n["accept-encoding"]=O?"gzip, deflate, br":"gzip, deflate"),t.cookieJar){const e=await t.cookieJar.getCookieString(t.url.toString());C.default.nonEmptyString(e)&&(t.headers.cookie=e)}for(const e of t.hooks.beforeRequest){const r=await e(t);if(!C.default.undefined(r)){t.request=()=>r;break}}if(t.dnsCache&&!("lookup"in t)&&(t.lookup=t.dnsCache.lookup),"unix"===r.hostname){const e=/(?<socketPath>.+?):(?<path>.+)/.exec(`${r.pathname}${r.search}`);if(null==e?void 0:e.groups){const{socketPath:r,path:n}=e.groups;Object.assign(t,{socketPath:r,path:n,host:""})}}const a="https:"===r.protocol;let u;u=t.http2?f.auto:a?c.request:A.request;const l=null!==(e=t.request)&&void 0!==e?e:u,h=t.cache?this._createCacheableRequest:l;o&&!t.http2&&(t.agent=o[a?"https":"http"]),t[v]=l,delete t.request,delete t.timeout;try{let e=await h(r,t);C.default.undefined(e)&&(e=u(r,t)),t.request=i,t.timeout=s,t.agent=o,p=e,C.default.object(p)&&!("statusCode"in p)?this._onRequest(e):this.writable?(this.once("finish",()=>{this._onResponse(e)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(e)}catch(e){if(e instanceof g.CacheError)throw new z(e,this);throw new J(e.message,e,this)}var p}async _beforeError(e){this[L]=!0,e instanceof J||(e=new J(e.message,e,this));try{const{response:t}=e;t&&(t.setEncoding(this._readableState.encoding),t.rawBody=await d.buffer(t),t.body=t.rawBody.toString())}catch(e){}try{for(const t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new J(t.message,t,this)}this.destroyed||this.destroy(e)}_read(){this[T]=!0;const e=this[D];if(e&&!this[L]){let t;for(e.readableLength&&(this[T]=!1);null!==(t=e.read());){this[S]+=t.length,this[K]=!0;const e=this.downloadProgress;e.percent<1&&this.emit("downloadProgress",e),this.push(t)}}}_write(e,t,r){const n=()=>{this._writeRequest(e,t,r)};this.requestInitialized?n():this[U].push(n)}_writeRequest(e,t,r){this._progressCallbacks.push(()=>{this[x]+=Buffer.byteLength(e,t);const r=this.uploadProgress;r.percent<1&&this.emit("uploadProgress",r)}),this[v].write(e,t,e=>{e||0===this._progressCallbacks.length||this._progressCallbacks.shift()(),r(e)})}_final(e){const t=()=>{for(;0!==this._progressCallbacks.length;)this._progressCallbacks.shift()();v in this?this[v].end(t=>{t||(this[k]=this[x],this.emit("uploadProgress",this.uploadProgress),this[v].emit("upload-complete")),e(t)}):e()};this.requestInitialized?t():this[U].push(t)}_destroy(e,t){var r;v in this&&(this[R](),(null===(r=this[D])||void 0===r?void 0:r.complete)||this[v].destroy()),null===e||C.default.undefined(e)||e instanceof J||(e=new J(e.message,e,this)),t(e)}get ip(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket.remoteAddress}get aborted(){var e,t,r;return(null!==(t=null===(e=this[v])||void 0===e?void 0:e.destroyed)&&void 0!==t?t:this.destroyed)&&!(null===(r=this[_])||void 0===r?void 0:r.complete)}get socket(){var e;return null===(e=this[v])||void 0===e?void 0:e.socket}get downloadProgress(){let e;return e=this[b]?this[S]/this[b]:this[b]===this[S]?1:0,{percent:e,transferred:this[S],total:this[b]}}get uploadProgress(){let e;return e=this[k]?this[x]/this[k]:this[k]===this[x]?1:0,{percent:e,transferred:this[x],total:this[k]}}get timings(){var e;return null===(e=this[v])||void 0===e?void 0:e.timings}get isFromCache(){return this[N]}pipe(e,t){if(this[K])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof a.ServerResponse&&this[F].add(e),super.pipe(e,t)}unpipe(e){return e instanceof a.ServerResponse&&this[F].delete(e),super.unpipe(e),this}}t.default=ee},96596:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(35747),i=r(31669),o=r(8189),s=r(35637),A=i.promisify(n.stat);t.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(o.default.string(e))return Buffer.byteLength(e);if(o.default.buffer(e))return e.length;if(s.default(e))return i.promisify(e.getLength.bind(e))();if(e instanceof n.ReadStream){const{size:t}=await A(e.path);return t}}},35637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>n.default.nodeStream(e)&&n.default.function_(e.getBoundary)},80972:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(78835),i=["protocol","host","hostname","port","pathname","search"];t.default=(e,t)=>{var r,o;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${null!==(o=null!==(r=t.hostname)&&void 0!==r?r:t.host)&&void 0!==o?o:""}`}const s=new n.URL(e);if(t.path){const e=t.path.indexOf("?");-1===e?t.pathname=t.path:(t.pathname=t.path.slice(0,e),t.search=t.path.slice(e+1)),delete t.path}for(const e of i)t[e]&&(s[e]=t[e].toString());return s}},63227:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){const n={};for(const i of r)n[i]=(...e)=>{t.emit(i,...e)},e.on(i,n[i]);return()=>{for(const t of r)e.off(t,n[t])}}},32449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(11631),i=r(46248),o=Symbol("reentry"),s=()=>{};class A extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}}t.TimeoutError=A,t.default=(e,t,r)=>{if(o in e)return s;e[o]=!0;const a=[],{once:c,unhandleAll:u}=i.default(),l=(e,t,r)=>{var n;const i=setTimeout(t,e,e,r);null===(n=i.unref)||void 0===n||n.call(i);const o=()=>{clearTimeout(i)};return a.push(o),o},{host:h,hostname:g}=r,f=(t,r)=>{e.destroy(new A(t,r))},p=()=>{for(const e of a)e();u()};if(e.once("error",t=>{if(p(),0===e.listenerCount("error"))throw t}),e.once("close",p),c(e,"response",e=>{c(e,"end",p)}),void 0!==t.request&&l(t.request,f,"request"),void 0!==t.socket){const r=()=>{f(t.socket,"socket")};e.setTimeout(t.socket,r),a.push(()=>{e.removeListener("timeout",r)})}return c(e,"socket",i=>{var o;const{socketPath:s}=e;if(i.connecting){const e=Boolean(null!=s?s:0!==n.isIP(null!==(o=null!=g?g:h)&&void 0!==o?o:""));if(void 0!==t.lookup&&!e&&void 0===i.address().address){const e=l(t.lookup,f,"lookup");c(i,"lookup",e)}if(void 0!==t.connect){const r=()=>l(t.connect,f,"connect");e?c(i,"connect",r()):c(i,"lookup",e=>{null===e&&c(i,"connect",r())})}void 0!==t.secureConnect&&"https:"===r.protocol&&c(i,"connect",()=>{const e=l(t.secureConnect,f,"secureConnect");c(i,"secureConnect",e)})}if(void 0!==t.send){const r=()=>l(t.send,f,"send");i.connecting?c(i,"connect",()=>{c(e,"upload-complete",r())}):c(e,"upload-complete",r())}}),void 0!==t.response&&c(e,"upload-complete",()=>{const r=l(t.response,f,"response");c(e,"response",r)}),p}},46248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=()=>{const e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(const t of e){const{origin:e,event:r,fn:n}=t;e.removeListener(r,n)}e.length=0}}}},13656:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=e=>{const t={protocol:(e=e).protocol,hostname:n.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return n.default.string(e.port)&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},30291:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){"object"==typeof e?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return"object"==typeof e?this.weakMap.get(e):this.map.get(e)}has(e){return"object"==typeof e?this.weakMap.has(e):this.map.has(e)}}},88190:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(59351),i=r(8189),o=r(74850),s=r(57019),A=r(8859),a=r(5571),c={RequestError:o.RequestError,CacheError:o.CacheError,ReadError:o.ReadError,HTTPError:o.HTTPError,MaxRedirectsError:o.MaxRedirectsError,TimeoutError:o.TimeoutError,ParseError:o.ParseError,CancelError:n.CancelError,UnsupportedProtocolError:o.UnsupportedProtocolError,UploadError:o.UploadError},{normalizeArguments:u,mergeOptions:l}=o.PromisableRequest,h=e=>e.isStream?new A.default(e.url,e):o.default(e),g=e=>"defaults"in e&&"options"in e.defaults,f=["get","post","put","patch","head","delete"];t.defaultHandler=(e,t)=>t(e);const p=(e,t)=>{if(e)for(const r of e)r(t)},d=e=>{e._rawHandlers=e.handlers,e.handlers=e.handlers.map(e=>(t,r)=>{let n;const i=e(t,e=>(n=r(e),n));if(i!==n&&!t.isStream&&n){const e=i,{then:t,catch:r,finally:o}=e;Object.setPrototypeOf(e,Object.getPrototypeOf(n)),Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)),e.then=t,e.catch=r,e.finally=o}return i});const r=(t,r)=>{var n,a;let c=0;const l=t=>e.handlers[c++](t,c===e.handlers.length?h:l);i.default.plainObject(t)&&(r={...t,...r},t=void 0);try{let i;try{p(e.options.hooks.init,r),p(null===(n=null==r?void 0:r.hooks)||void 0===n?void 0:n.init,r)}catch(e){i=e}const s=u(t,r,e.options);if(s[A.kIsNormalizedAlready]=!0,i)throw new o.RequestError(i.message,i,s);return l(s)}catch(t){if(null==r?void 0:r.isStream)throw t;return s.default(t,e.options.hooks.beforeError,null===(a=null==r?void 0:r.hooks)||void 0===a?void 0:a.beforeError)}};r.extend=(...r)=>{const n=[e.options];let i,o=[...e._rawHandlers];for(const e of r)g(e)?(n.push(e.defaults.options),o.push(...e.defaults._rawHandlers),i=e.defaults.mutableDefaults):(n.push(e),"handlers"in e&&o.push(...e.handlers),i=e.mutableDefaults);return o=o.filter(e=>e!==t.defaultHandler),0===o.length&&o.push(t.defaultHandler),d({options:l(...n),handlers:o,mutableDefaults:Boolean(i)})},(r.paginate=async function*(t,n){let o=u(t,n,e.options);o.resolveBodyOnly=!1;const s=o.pagination;if(!i.default.object(s))throw new TypeError("`options.pagination` must be implemented");const A=[];let{countLimit:a}=s,c=0;for(;c<s.requestLimit;){const e=await r("",o),t=await s.transform(e),n=[];for(const e of t)if(s.filter(e,A,n)){if(!s.shouldContinue(e,A,n))return;if(yield e,s.stackAllItems&&A.push(e),n.push(e),--a<=0)return}const i=s.paginate(e,A,n);if(!1===i)return;i===e.request.options?o=e.request.options:void 0!==i&&(o=u(void 0,i,o)),c++}}).all=async(e,t)=>{const n=[];for await(const i of r.paginate(e,t))n.push(i);return n},r.stream=(e,t)=>r(e,{...t,isStream:!0});for(const e of f)r[e]=(t,n)=>r(t,{...n,method:e}),r.stream[e]=(t,n)=>r(t,{...n,method:e,isStream:!0});return Object.assign(r,{...c,mergeOptions:l}),Object.defineProperty(r,"defaults",{value:e.mutableDefaults?e:a.default(e),writable:e.mutableDefaults,configurable:e.mutableDefaults,enumerable:!0}),r};t.default=d},22395:(e,t,r)=>{"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});const i=r(78835),o=r(88190),s={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:e})=>e},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,rejectUnauthorized:!0,pagination:{transform:e=>"json"===e.request.options.responseType?e.body:JSON.parse(e.body),paginate:e=>{if(!Reflect.has(e.headers,"link"))return!1;const t=e.headers.link.split(",");let r;for(const e of t){const t=e.split(";");if(t[1].includes("next")){r=t[0].trimStart().trim(),r=r.slice(1,-1);break}}if(r){return{url:new i.URL(r)}}return!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,requestLimit:1e4,stackAllItems:!0}},handlers:[o.defaultHandler],mutableDefaults:!1},A=o.default(s);t.default=A,e.exports=A,e.exports.default=A,n(r(88190)),n(r(74850))},5571:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8189);t.default=function e(t){for(const r of Object.values(t))(n.default.plainObject(r)||n.default.array(r))&&e(r);return Object.freeze(t)}},74988:e=>{e.exports&&(e.exports=function(){var e=3,t=4,r=12,n=13,i=16,o=17;function s(e,t){void 0===t&&(t=0);var r=e.charCodeAt(t);if(55296<=r&&r<=56319&&t<e.length-1){var n=r;return 56320<=(i=e.charCodeAt(t+1))&&i<=57343?1024*(n-55296)+(i-56320)+65536:n}if(56320<=r&&r<=57343&&t>=1){var i=r;return 55296<=(n=e.charCodeAt(t-1))&&n<=56319?1024*(n-55296)+(i-56320)+65536:i}return r}function A(s,A,a){var c=[s].concat(A).concat([a]),u=c[c.length-2],l=a,h=c.lastIndexOf(14);if(h>1&&c.slice(1,h).every((function(t){return t==e}))&&-1==[e,n,o].indexOf(s))return 2;var g=c.lastIndexOf(t);if(g>0&&c.slice(1,g).every((function(e){return e==t}))&&-1==[r,t].indexOf(u))return c.filter((function(e){return e==t})).length%2==1?3:4;if(0==u&&1==l)return 0;if(2==u||0==u||1==u)return 14==l&&A.every((function(t){return t==e}))?2:1;if(2==l||0==l||1==l)return 1;if(6==u&&(6==l||7==l||9==l||10==l))return 0;if(!(9!=u&&7!=u||7!=l&&8!=l))return 0;if((10==u||8==u)&&8==l)return 0;if(l==e||15==l)return 0;if(5==l)return 0;if(u==r)return 0;var f=-1!=c.indexOf(e)?c.lastIndexOf(e)-1:c.length-2;return-1!=[n,o].indexOf(c[f])&&c.slice(f+1,-1).every((function(t){return t==e}))&&14==l||15==u&&-1!=[i,o].indexOf(l)?0:-1!=A.indexOf(t)?2:u==t&&l==t?0:1}function a(s){return 1536<=s&&s<=1541||1757==s||1807==s||2274==s||3406==s||69821==s||70082<=s&&s<=70083||72250==s||72326<=s&&s<=72329||73030==s?r:13==s?0:10==s?1:0<=s&&s<=9||11<=s&&s<=12||14<=s&&s<=31||127<=s&&s<=159||173==s||1564==s||6158==s||8203==s||8206<=s&&s<=8207||8232==s||8233==s||8234<=s&&s<=8238||8288<=s&&s<=8292||8293==s||8294<=s&&s<=8303||55296<=s&&s<=57343||65279==s||65520<=s&&s<=65528||65529<=s&&s<=65531||113824<=s&&s<=113827||119155<=s&&s<=119162||917504==s||917505==s||917506<=s&&s<=917535||917632<=s&&s<=917759||918e3<=s&&s<=921599?2:768<=s&&s<=879||1155<=s&&s<=1159||1160<=s&&s<=1161||1425<=s&&s<=1469||1471==s||1473<=s&&s<=1474||1476<=s&&s<=1477||1479==s||1552<=s&&s<=1562||1611<=s&&s<=1631||1648==s||1750<=s&&s<=1756||1759<=s&&s<=1764||1767<=s&&s<=1768||1770<=s&&s<=1773||1809==s||1840<=s&&s<=1866||1958<=s&&s<=1968||2027<=s&&s<=2035||2070<=s&&s<=2073||2075<=s&&s<=2083||2085<=s&&s<=2087||2089<=s&&s<=2093||2137<=s&&s<=2139||2260<=s&&s<=2273||2275<=s&&s<=2306||2362==s||2364==s||2369<=s&&s<=2376||2381==s||2385<=s&&s<=2391||2402<=s&&s<=2403||2433==s||2492==s||2494==s||2497<=s&&s<=2500||2509==s||2519==s||2530<=s&&s<=2531||2561<=s&&s<=2562||2620==s||2625<=s&&s<=2626||2631<=s&&s<=2632||2635<=s&&s<=2637||2641==s||2672<=s&&s<=2673||2677==s||2689<=s&&s<=2690||2748==s||2753<=s&&s<=2757||2759<=s&&s<=2760||2765==s||2786<=s&&s<=2787||2810<=s&&s<=2815||2817==s||2876==s||2878==s||2879==s||2881<=s&&s<=2884||2893==s||2902==s||2903==s||2914<=s&&s<=2915||2946==s||3006==s||3008==s||3021==s||3031==s||3072==s||3134<=s&&s<=3136||3142<=s&&s<=3144||3146<=s&&s<=3149||3157<=s&&s<=3158||3170<=s&&s<=3171||3201==s||3260==s||3263==s||3266==s||3270==s||3276<=s&&s<=3277||3285<=s&&s<=3286||3298<=s&&s<=3299||3328<=s&&s<=3329||3387<=s&&s<=3388||3390==s||3393<=s&&s<=3396||3405==s||3415==s||3426<=s&&s<=3427||3530==s||3535==s||3538<=s&&s<=3540||3542==s||3551==s||3633==s||3636<=s&&s<=3642||3655<=s&&s<=3662||3761==s||3764<=s&&s<=3769||3771<=s&&s<=3772||3784<=s&&s<=3789||3864<=s&&s<=3865||3893==s||3895==s||3897==s||3953<=s&&s<=3966||3968<=s&&s<=3972||3974<=s&&s<=3975||3981<=s&&s<=3991||3993<=s&&s<=4028||4038==s||4141<=s&&s<=4144||4146<=s&&s<=4151||4153<=s&&s<=4154||4157<=s&&s<=4158||4184<=s&&s<=4185||4190<=s&&s<=4192||4209<=s&&s<=4212||4226==s||4229<=s&&s<=4230||4237==s||4253==s||4957<=s&&s<=4959||5906<=s&&s<=5908||5938<=s&&s<=5940||5970<=s&&s<=5971||6002<=s&&s<=6003||6068<=s&&s<=6069||6071<=s&&s<=6077||6086==s||6089<=s&&s<=6099||6109==s||6155<=s&&s<=6157||6277<=s&&s<=6278||6313==s||6432<=s&&s<=6434||6439<=s&&s<=6440||6450==s||6457<=s&&s<=6459||6679<=s&&s<=6680||6683==s||6742==s||6744<=s&&s<=6750||6752==s||6754==s||6757<=s&&s<=6764||6771<=s&&s<=6780||6783==s||6832<=s&&s<=6845||6846==s||6912<=s&&s<=6915||6964==s||6966<=s&&s<=6970||6972==s||6978==s||7019<=s&&s<=7027||7040<=s&&s<=7041||7074<=s&&s<=7077||7080<=s&&s<=7081||7083<=s&&s<=7085||7142==s||7144<=s&&s<=7145||7149==s||7151<=s&&s<=7153||7212<=s&&s<=7219||7222<=s&&s<=7223||7376<=s&&s<=7378||7380<=s&&s<=7392||7394<=s&&s<=7400||7405==s||7412==s||7416<=s&&s<=7417||7616<=s&&s<=7673||7675<=s&&s<=7679||8204==s||8400<=s&&s<=8412||8413<=s&&s<=8416||8417==s||8418<=s&&s<=8420||8421<=s&&s<=8432||11503<=s&&s<=11505||11647==s||11744<=s&&s<=11775||12330<=s&&s<=12333||12334<=s&&s<=12335||12441<=s&&s<=12442||42607==s||42608<=s&&s<=42610||42612<=s&&s<=42621||42654<=s&&s<=42655||42736<=s&&s<=42737||43010==s||43014==s||43019==s||43045<=s&&s<=43046||43204<=s&&s<=43205||43232<=s&&s<=43249||43302<=s&&s<=43309||43335<=s&&s<=43345||43392<=s&&s<=43394||43443==s||43446<=s&&s<=43449||43452==s||43493==s||43561<=s&&s<=43566||43569<=s&&s<=43570||43573<=s&&s<=43574||43587==s||43596==s||43644==s||43696==s||43698<=s&&s<=43700||43703<=s&&s<=43704||43710<=s&&s<=43711||43713==s||43756<=s&&s<=43757||43766==s||44005==s||44008==s||44013==s||64286==s||65024<=s&&s<=65039||65056<=s&&s<=65071||65438<=s&&s<=65439||66045==s||66272==s||66422<=s&&s<=66426||68097<=s&&s<=68099||68101<=s&&s<=68102||68108<=s&&s<=68111||68152<=s&&s<=68154||68159==s||68325<=s&&s<=68326||69633==s||69688<=s&&s<=69702||69759<=s&&s<=69761||69811<=s&&s<=69814||69817<=s&&s<=69818||69888<=s&&s<=69890||69927<=s&&s<=69931||69933<=s&&s<=69940||70003==s||70016<=s&&s<=70017||70070<=s&&s<=70078||70090<=s&&s<=70092||70191<=s&&s<=70193||70196==s||70198<=s&&s<=70199||70206==s||70367==s||70371<=s&&s<=70378||70400<=s&&s<=70401||70460==s||70462==s||70464==s||70487==s||70502<=s&&s<=70508||70512<=s&&s<=70516||70712<=s&&s<=70719||70722<=s&&s<=70724||70726==s||70832==s||70835<=s&&s<=70840||70842==s||70845==s||70847<=s&&s<=70848||70850<=s&&s<=70851||71087==s||71090<=s&&s<=71093||71100<=s&&s<=71101||71103<=s&&s<=71104||71132<=s&&s<=71133||71219<=s&&s<=71226||71229==s||71231<=s&&s<=71232||71339==s||71341==s||71344<=s&&s<=71349||71351==s||71453<=s&&s<=71455||71458<=s&&s<=71461||71463<=s&&s<=71467||72193<=s&&s<=72198||72201<=s&&s<=72202||72243<=s&&s<=72248||72251<=s&&s<=72254||72263==s||72273<=s&&s<=72278||72281<=s&&s<=72283||72330<=s&&s<=72342||72344<=s&&s<=72345||72752<=s&&s<=72758||72760<=s&&s<=72765||72767==s||72850<=s&&s<=72871||72874<=s&&s<=72880||72882<=s&&s<=72883||72885<=s&&s<=72886||73009<=s&&s<=73014||73018==s||73020<=s&&s<=73021||73023<=s&&s<=73029||73031==s||92912<=s&&s<=92916||92976<=s&&s<=92982||94095<=s&&s<=94098||113821<=s&&s<=113822||119141==s||119143<=s&&s<=119145||119150<=s&&s<=119154||119163<=s&&s<=119170||119173<=s&&s<=119179||119210<=s&&s<=119213||119362<=s&&s<=119364||121344<=s&&s<=121398||121403<=s&&s<=121452||121461==s||121476==s||121499<=s&&s<=121503||121505<=s&&s<=121519||122880<=s&&s<=122886||122888<=s&&s<=122904||122907<=s&&s<=122913||122915<=s&&s<=122916||122918<=s&&s<=122922||125136<=s&&s<=125142||125252<=s&&s<=125258||917536<=s&&s<=917631||917760<=s&&s<=917999?e:127462<=s&&s<=127487?t:2307==s||2363==s||2366<=s&&s<=2368||2377<=s&&s<=2380||2382<=s&&s<=2383||2434<=s&&s<=2435||2495<=s&&s<=2496||2503<=s&&s<=2504||2507<=s&&s<=2508||2563==s||2622<=s&&s<=2624||2691==s||2750<=s&&s<=2752||2761==s||2763<=s&&s<=2764||2818<=s&&s<=2819||2880==s||2887<=s&&s<=2888||2891<=s&&s<=2892||3007==s||3009<=s&&s<=3010||3014<=s&&s<=3016||3018<=s&&s<=3020||3073<=s&&s<=3075||3137<=s&&s<=3140||3202<=s&&s<=3203||3262==s||3264<=s&&s<=3265||3267<=s&&s<=3268||3271<=s&&s<=3272||3274<=s&&s<=3275||3330<=s&&s<=3331||3391<=s&&s<=3392||3398<=s&&s<=3400||3402<=s&&s<=3404||3458<=s&&s<=3459||3536<=s&&s<=3537||3544<=s&&s<=3550||3570<=s&&s<=3571||3635==s||3763==s||3902<=s&&s<=3903||3967==s||4145==s||4155<=s&&s<=4156||4182<=s&&s<=4183||4228==s||6070==s||6078<=s&&s<=6085||6087<=s&&s<=6088||6435<=s&&s<=6438||6441<=s&&s<=6443||6448<=s&&s<=6449||6451<=s&&s<=6456||6681<=s&&s<=6682||6741==s||6743==s||6765<=s&&s<=6770||6916==s||6965==s||6971==s||6973<=s&&s<=6977||6979<=s&&s<=6980||7042==s||7073==s||7078<=s&&s<=7079||7082==s||7143==s||7146<=s&&s<=7148||7150==s||7154<=s&&s<=7155||7204<=s&&s<=7211||7220<=s&&s<=7221||7393==s||7410<=s&&s<=7411||7415==s||43043<=s&&s<=43044||43047==s||43136<=s&&s<=43137||43188<=s&&s<=43203||43346<=s&&s<=43347||43395==s||43444<=s&&s<=43445||43450<=s&&s<=43451||43453<=s&&s<=43456||43567<=s&&s<=43568||43571<=s&&s<=43572||43597==s||43755==s||43758<=s&&s<=43759||43765==s||44003<=s&&s<=44004||44006<=s&&s<=44007||44009<=s&&s<=44010||44012==s||69632==s||69634==s||69762==s||69808<=s&&s<=69810||69815<=s&&s<=69816||69932==s||70018==s||70067<=s&&s<=70069||70079<=s&&s<=70080||70188<=s&&s<=70190||70194<=s&&s<=70195||70197==s||70368<=s&&s<=70370||70402<=s&&s<=70403||70463==s||70465<=s&&s<=70468||70471<=s&&s<=70472||70475<=s&&s<=70477||70498<=s&&s<=70499||70709<=s&&s<=70711||70720<=s&&s<=70721||70725==s||70833<=s&&s<=70834||70841==s||70843<=s&&s<=70844||70846==s||70849==s||71088<=s&&s<=71089||71096<=s&&s<=71099||71102==s||71216<=s&&s<=71218||71227<=s&&s<=71228||71230==s||71340==s||71342<=s&&s<=71343||71350==s||71456<=s&&s<=71457||71462==s||72199<=s&&s<=72200||72249==s||72279<=s&&s<=72280||72343==s||72751==s||72766==s||72873==s||72881==s||72884==s||94033<=s&&s<=94078||119142==s||119149==s?5:4352<=s&&s<=4447||43360<=s&&s<=43388?6:4448<=s&&s<=4519||55216<=s&&s<=55238?7:4520<=s&&s<=4607||55243<=s&&s<=55291?8:44032==s||44060==s||44088==s||44116==s||44144==s||44172==s||44200==s||44228==s||44256==s||44284==s||44312==s||44340==s||44368==s||44396==s||44424==s||44452==s||44480==s||44508==s||44536==s||44564==s||44592==s||44620==s||44648==s||44676==s||44704==s||44732==s||44760==s||44788==s||44816==s||44844==s||44872==s||44900==s||44928==s||44956==s||44984==s||45012==s||45040==s||45068==s||45096==s||45124==s||45152==s||45180==s||45208==s||45236==s||45264==s||45292==s||45320==s||45348==s||45376==s||45404==s||45432==s||45460==s||45488==s||45516==s||45544==s||45572==s||45600==s||45628==s||45656==s||45684==s||45712==s||45740==s||45768==s||45796==s||45824==s||45852==s||45880==s||45908==s||45936==s||45964==s||45992==s||46020==s||46048==s||46076==s||46104==s||46132==s||46160==s||46188==s||46216==s||46244==s||46272==s||46300==s||46328==s||46356==s||46384==s||46412==s||46440==s||46468==s||46496==s||46524==s||46552==s||46580==s||46608==s||46636==s||46664==s||46692==s||46720==s||46748==s||46776==s||46804==s||46832==s||46860==s||46888==s||46916==s||46944==s||46972==s||47e3==s||47028==s||47056==s||47084==s||47112==s||47140==s||47168==s||47196==s||47224==s||47252==s||47280==s||47308==s||47336==s||47364==s||47392==s||47420==s||47448==s||47476==s||47504==s||47532==s||47560==s||47588==s||47616==s||47644==s||47672==s||47700==s||47728==s||47756==s||47784==s||47812==s||47840==s||47868==s||47896==s||47924==s||47952==s||47980==s||48008==s||48036==s||48064==s||48092==s||48120==s||48148==s||48176==s||48204==s||48232==s||48260==s||48288==s||48316==s||48344==s||48372==s||48400==s||48428==s||48456==s||48484==s||48512==s||48540==s||48568==s||48596==s||48624==s||48652==s||48680==s||48708==s||48736==s||48764==s||48792==s||48820==s||48848==s||48876==s||48904==s||48932==s||48960==s||48988==s||49016==s||49044==s||49072==s||49100==s||49128==s||49156==s||49184==s||49212==s||49240==s||49268==s||49296==s||49324==s||49352==s||49380==s||49408==s||49436==s||49464==s||49492==s||49520==s||49548==s||49576==s||49604==s||49632==s||49660==s||49688==s||49716==s||49744==s||49772==s||49800==s||49828==s||49856==s||49884==s||49912==s||49940==s||49968==s||49996==s||50024==s||50052==s||50080==s||50108==s||50136==s||50164==s||50192==s||50220==s||50248==s||50276==s||50304==s||50332==s||50360==s||50388==s||50416==s||50444==s||50472==s||50500==s||50528==s||50556==s||50584==s||50612==s||50640==s||50668==s||50696==s||50724==s||50752==s||50780==s||50808==s||50836==s||50864==s||50892==s||50920==s||50948==s||50976==s||51004==s||51032==s||51060==s||51088==s||51116==s||51144==s||51172==s||51200==s||51228==s||51256==s||51284==s||51312==s||51340==s||51368==s||51396==s||51424==s||51452==s||51480==s||51508==s||51536==s||51564==s||51592==s||51620==s||51648==s||51676==s||51704==s||51732==s||51760==s||51788==s||51816==s||51844==s||51872==s||51900==s||51928==s||51956==s||51984==s||52012==s||52040==s||52068==s||52096==s||52124==s||52152==s||52180==s||52208==s||52236==s||52264==s||52292==s||52320==s||52348==s||52376==s||52404==s||52432==s||52460==s||52488==s||52516==s||52544==s||52572==s||52600==s||52628==s||52656==s||52684==s||52712==s||52740==s||52768==s||52796==s||52824==s||52852==s||52880==s||52908==s||52936==s||52964==s||52992==s||53020==s||53048==s||53076==s||53104==s||53132==s||53160==s||53188==s||53216==s||53244==s||53272==s||53300==s||53328==s||53356==s||53384==s||53412==s||53440==s||53468==s||53496==s||53524==s||53552==s||53580==s||53608==s||53636==s||53664==s||53692==s||53720==s||53748==s||53776==s||53804==s||53832==s||53860==s||53888==s||53916==s||53944==s||53972==s||54e3==s||54028==s||54056==s||54084==s||54112==s||54140==s||54168==s||54196==s||54224==s||54252==s||54280==s||54308==s||54336==s||54364==s||54392==s||54420==s||54448==s||54476==s||54504==s||54532==s||54560==s||54588==s||54616==s||54644==s||54672==s||54700==s||54728==s||54756==s||54784==s||54812==s||54840==s||54868==s||54896==s||54924==s||54952==s||54980==s||55008==s||55036==s||55064==s||55092==s||55120==s||55148==s||55176==s?9:44033<=s&&s<=44059||44061<=s&&s<=44087||44089<=s&&s<=44115||44117<=s&&s<=44143||44145<=s&&s<=44171||44173<=s&&s<=44199||44201<=s&&s<=44227||44229<=s&&s<=44255||44257<=s&&s<=44283||44285<=s&&s<=44311||44313<=s&&s<=44339||44341<=s&&s<=44367||44369<=s&&s<=44395||44397<=s&&s<=44423||44425<=s&&s<=44451||44453<=s&&s<=44479||44481<=s&&s<=44507||44509<=s&&s<=44535||44537<=s&&s<=44563||44565<=s&&s<=44591||44593<=s&&s<=44619||44621<=s&&s<=44647||44649<=s&&s<=44675||44677<=s&&s<=44703||44705<=s&&s<=44731||44733<=s&&s<=44759||44761<=s&&s<=44787||44789<=s&&s<=44815||44817<=s&&s<=44843||44845<=s&&s<=44871||44873<=s&&s<=44899||44901<=s&&s<=44927||44929<=s&&s<=44955||44957<=s&&s<=44983||44985<=s&&s<=45011||45013<=s&&s<=45039||45041<=s&&s<=45067||45069<=s&&s<=45095||45097<=s&&s<=45123||45125<=s&&s<=45151||45153<=s&&s<=45179||45181<=s&&s<=45207||45209<=s&&s<=45235||45237<=s&&s<=45263||45265<=s&&s<=45291||45293<=s&&s<=45319||45321<=s&&s<=45347||45349<=s&&s<=45375||45377<=s&&s<=45403||45405<=s&&s<=45431||45433<=s&&s<=45459||45461<=s&&s<=45487||45489<=s&&s<=45515||45517<=s&&s<=45543||45545<=s&&s<=45571||45573<=s&&s<=45599||45601<=s&&s<=45627||45629<=s&&s<=45655||45657<=s&&s<=45683||45685<=s&&s<=45711||45713<=s&&s<=45739||45741<=s&&s<=45767||45769<=s&&s<=45795||45797<=s&&s<=45823||45825<=s&&s<=45851||45853<=s&&s<=45879||45881<=s&&s<=45907||45909<=s&&s<=45935||45937<=s&&s<=45963||45965<=s&&s<=45991||45993<=s&&s<=46019||46021<=s&&s<=46047||46049<=s&&s<=46075||46077<=s&&s<=46103||46105<=s&&s<=46131||46133<=s&&s<=46159||46161<=s&&s<=46187||46189<=s&&s<=46215||46217<=s&&s<=46243||46245<=s&&s<=46271||46273<=s&&s<=46299||46301<=s&&s<=46327||46329<=s&&s<=46355||46357<=s&&s<=46383||46385<=s&&s<=46411||46413<=s&&s<=46439||46441<=s&&s<=46467||46469<=s&&s<=46495||46497<=s&&s<=46523||46525<=s&&s<=46551||46553<=s&&s<=46579||46581<=s&&s<=46607||46609<=s&&s<=46635||46637<=s&&s<=46663||46665<=s&&s<=46691||46693<=s&&s<=46719||46721<=s&&s<=46747||46749<=s&&s<=46775||46777<=s&&s<=46803||46805<=s&&s<=46831||46833<=s&&s<=46859||46861<=s&&s<=46887||46889<=s&&s<=46915||46917<=s&&s<=46943||46945<=s&&s<=46971||46973<=s&&s<=46999||47001<=s&&s<=47027||47029<=s&&s<=47055||47057<=s&&s<=47083||47085<=s&&s<=47111||47113<=s&&s<=47139||47141<=s&&s<=47167||47169<=s&&s<=47195||47197<=s&&s<=47223||47225<=s&&s<=47251||47253<=s&&s<=47279||47281<=s&&s<=47307||47309<=s&&s<=47335||47337<=s&&s<=47363||47365<=s&&s<=47391||47393<=s&&s<=47419||47421<=s&&s<=47447||47449<=s&&s<=47475||47477<=s&&s<=47503||47505<=s&&s<=47531||47533<=s&&s<=47559||47561<=s&&s<=47587||47589<=s&&s<=47615||47617<=s&&s<=47643||47645<=s&&s<=47671||47673<=s&&s<=47699||47701<=s&&s<=47727||47729<=s&&s<=47755||47757<=s&&s<=47783||47785<=s&&s<=47811||47813<=s&&s<=47839||47841<=s&&s<=47867||47869<=s&&s<=47895||47897<=s&&s<=47923||47925<=s&&s<=47951||47953<=s&&s<=47979||47981<=s&&s<=48007||48009<=s&&s<=48035||48037<=s&&s<=48063||48065<=s&&s<=48091||48093<=s&&s<=48119||48121<=s&&s<=48147||48149<=s&&s<=48175||48177<=s&&s<=48203||48205<=s&&s<=48231||48233<=s&&s<=48259||48261<=s&&s<=48287||48289<=s&&s<=48315||48317<=s&&s<=48343||48345<=s&&s<=48371||48373<=s&&s<=48399||48401<=s&&s<=48427||48429<=s&&s<=48455||48457<=s&&s<=48483||48485<=s&&s<=48511||48513<=s&&s<=48539||48541<=s&&s<=48567||48569<=s&&s<=48595||48597<=s&&s<=48623||48625<=s&&s<=48651||48653<=s&&s<=48679||48681<=s&&s<=48707||48709<=s&&s<=48735||48737<=s&&s<=48763||48765<=s&&s<=48791||48793<=s&&s<=48819||48821<=s&&s<=48847||48849<=s&&s<=48875||48877<=s&&s<=48903||48905<=s&&s<=48931||48933<=s&&s<=48959||48961<=s&&s<=48987||48989<=s&&s<=49015||49017<=s&&s<=49043||49045<=s&&s<=49071||49073<=s&&s<=49099||49101<=s&&s<=49127||49129<=s&&s<=49155||49157<=s&&s<=49183||49185<=s&&s<=49211||49213<=s&&s<=49239||49241<=s&&s<=49267||49269<=s&&s<=49295||49297<=s&&s<=49323||49325<=s&&s<=49351||49353<=s&&s<=49379||49381<=s&&s<=49407||49409<=s&&s<=49435||49437<=s&&s<=49463||49465<=s&&s<=49491||49493<=s&&s<=49519||49521<=s&&s<=49547||49549<=s&&s<=49575||49577<=s&&s<=49603||49605<=s&&s<=49631||49633<=s&&s<=49659||49661<=s&&s<=49687||49689<=s&&s<=49715||49717<=s&&s<=49743||49745<=s&&s<=49771||49773<=s&&s<=49799||49801<=s&&s<=49827||49829<=s&&s<=49855||49857<=s&&s<=49883||49885<=s&&s<=49911||49913<=s&&s<=49939||49941<=s&&s<=49967||49969<=s&&s<=49995||49997<=s&&s<=50023||50025<=s&&s<=50051||50053<=s&&s<=50079||50081<=s&&s<=50107||50109<=s&&s<=50135||50137<=s&&s<=50163||50165<=s&&s<=50191||50193<=s&&s<=50219||50221<=s&&s<=50247||50249<=s&&s<=50275||50277<=s&&s<=50303||50305<=s&&s<=50331||50333<=s&&s<=50359||50361<=s&&s<=50387||50389<=s&&s<=50415||50417<=s&&s<=50443||50445<=s&&s<=50471||50473<=s&&s<=50499||50501<=s&&s<=50527||50529<=s&&s<=50555||50557<=s&&s<=50583||50585<=s&&s<=50611||50613<=s&&s<=50639||50641<=s&&s<=50667||50669<=s&&s<=50695||50697<=s&&s<=50723||50725<=s&&s<=50751||50753<=s&&s<=50779||50781<=s&&s<=50807||50809<=s&&s<=50835||50837<=s&&s<=50863||50865<=s&&s<=50891||50893<=s&&s<=50919||50921<=s&&s<=50947||50949<=s&&s<=50975||50977<=s&&s<=51003||51005<=s&&s<=51031||51033<=s&&s<=51059||51061<=s&&s<=51087||51089<=s&&s<=51115||51117<=s&&s<=51143||51145<=s&&s<=51171||51173<=s&&s<=51199||51201<=s&&s<=51227||51229<=s&&s<=51255||51257<=s&&s<=51283||51285<=s&&s<=51311||51313<=s&&s<=51339||51341<=s&&s<=51367||51369<=s&&s<=51395||51397<=s&&s<=51423||51425<=s&&s<=51451||51453<=s&&s<=51479||51481<=s&&s<=51507||51509<=s&&s<=51535||51537<=s&&s<=51563||51565<=s&&s<=51591||51593<=s&&s<=51619||51621<=s&&s<=51647||51649<=s&&s<=51675||51677<=s&&s<=51703||51705<=s&&s<=51731||51733<=s&&s<=51759||51761<=s&&s<=51787||51789<=s&&s<=51815||51817<=s&&s<=51843||51845<=s&&s<=51871||51873<=s&&s<=51899||51901<=s&&s<=51927||51929<=s&&s<=51955||51957<=s&&s<=51983||51985<=s&&s<=52011||52013<=s&&s<=52039||52041<=s&&s<=52067||52069<=s&&s<=52095||52097<=s&&s<=52123||52125<=s&&s<=52151||52153<=s&&s<=52179||52181<=s&&s<=52207||52209<=s&&s<=52235||52237<=s&&s<=52263||52265<=s&&s<=52291||52293<=s&&s<=52319||52321<=s&&s<=52347||52349<=s&&s<=52375||52377<=s&&s<=52403||52405<=s&&s<=52431||52433<=s&&s<=52459||52461<=s&&s<=52487||52489<=s&&s<=52515||52517<=s&&s<=52543||52545<=s&&s<=52571||52573<=s&&s<=52599||52601<=s&&s<=52627||52629<=s&&s<=52655||52657<=s&&s<=52683||52685<=s&&s<=52711||52713<=s&&s<=52739||52741<=s&&s<=52767||52769<=s&&s<=52795||52797<=s&&s<=52823||52825<=s&&s<=52851||52853<=s&&s<=52879||52881<=s&&s<=52907||52909<=s&&s<=52935||52937<=s&&s<=52963||52965<=s&&s<=52991||52993<=s&&s<=53019||53021<=s&&s<=53047||53049<=s&&s<=53075||53077<=s&&s<=53103||53105<=s&&s<=53131||53133<=s&&s<=53159||53161<=s&&s<=53187||53189<=s&&s<=53215||53217<=s&&s<=53243||53245<=s&&s<=53271||53273<=s&&s<=53299||53301<=s&&s<=53327||53329<=s&&s<=53355||53357<=s&&s<=53383||53385<=s&&s<=53411||53413<=s&&s<=53439||53441<=s&&s<=53467||53469<=s&&s<=53495||53497<=s&&s<=53523||53525<=s&&s<=53551||53553<=s&&s<=53579||53581<=s&&s<=53607||53609<=s&&s<=53635||53637<=s&&s<=53663||53665<=s&&s<=53691||53693<=s&&s<=53719||53721<=s&&s<=53747||53749<=s&&s<=53775||53777<=s&&s<=53803||53805<=s&&s<=53831||53833<=s&&s<=53859||53861<=s&&s<=53887||53889<=s&&s<=53915||53917<=s&&s<=53943||53945<=s&&s<=53971||53973<=s&&s<=53999||54001<=s&&s<=54027||54029<=s&&s<=54055||54057<=s&&s<=54083||54085<=s&&s<=54111||54113<=s&&s<=54139||54141<=s&&s<=54167||54169<=s&&s<=54195||54197<=s&&s<=54223||54225<=s&&s<=54251||54253<=s&&s<=54279||54281<=s&&s<=54307||54309<=s&&s<=54335||54337<=s&&s<=54363||54365<=s&&s<=54391||54393<=s&&s<=54419||54421<=s&&s<=54447||54449<=s&&s<=54475||54477<=s&&s<=54503||54505<=s&&s<=54531||54533<=s&&s<=54559||54561<=s&&s<=54587||54589<=s&&s<=54615||54617<=s&&s<=54643||54645<=s&&s<=54671||54673<=s&&s<=54699||54701<=s&&s<=54727||54729<=s&&s<=54755||54757<=s&&s<=54783||54785<=s&&s<=54811||54813<=s&&s<=54839||54841<=s&&s<=54867||54869<=s&&s<=54895||54897<=s&&s<=54923||54925<=s&&s<=54951||54953<=s&&s<=54979||54981<=s&&s<=55007||55009<=s&&s<=55035||55037<=s&&s<=55063||55065<=s&&s<=55091||55093<=s&&s<=55119||55121<=s&&s<=55147||55149<=s&&s<=55175||55177<=s&&s<=55203?10:9757==s||9977==s||9994<=s&&s<=9997||127877==s||127938<=s&&s<=127940||127943==s||127946<=s&&s<=127948||128066<=s&&s<=128067||128070<=s&&s<=128080||128110==s||128112<=s&&s<=128120||128124==s||128129<=s&&s<=128131||128133<=s&&s<=128135||128170==s||128372<=s&&s<=128373||128378==s||128400==s||128405<=s&&s<=128406||128581<=s&&s<=128583||128587<=s&&s<=128591||128675==s||128692<=s&&s<=128694||128704==s||128716==s||129304<=s&&s<=129308||129310<=s&&s<=129311||129318==s||129328<=s&&s<=129337||129341<=s&&s<=129342||129489<=s&&s<=129501?n:127995<=s&&s<=127999?14:8205==s?15:9792==s||9794==s||9877<=s&&s<=9878||9992==s||10084==s||127752==s||127806==s||127859==s||127891==s||127908==s||127912==s||127979==s||127981==s||128139==s||128187<=s&&s<=128188||128295==s||128300==s||128488==s||128640==s||128658==s?i:128102<=s&&s<=128105?o:11}return this.nextBreak=function(e,t){if(void 0===t&&(t=0),t<0)return 0;if(t>=e.length-1)return e.length;for(var r,n,i=a(s(e,t)),o=[],c=t+1;c<e.length;c++)if(n=c-1,!(55296<=(r=e).charCodeAt(n)&&r.charCodeAt(n)<=56319&&56320<=r.charCodeAt(n+1)&&r.charCodeAt(n+1)<=57343)){var u=a(s(e,c));if(A(i,o,u))return c;o.push(u)}return e.length},this.splitGraphemes=function(e){for(var t,r=[],n=0;(t=this.nextBreak(e,n))<e.length;)r.push(e.slice(n,t)),n=t;return n<e.length&&r.push(e.slice(n)),r},this.iterateGraphemes=function(e){var t=0,r={next:function(){var r,n;return(n=this.nextBreak(e,t))<e.length?(r=e.slice(t,n),t=n,{value:r,done:!1}):t<e.length?(r=e.slice(t),t=e.length,{value:r,done:!1}):{value:void 0,done:!0}}.bind(this)};return"undefined"!=typeof Symbol&&Symbol.iterator&&(r[Symbol.iterator]=function(){return r}),r},this.countGraphemes=function(e){for(var t,r=0,n=0;(t=this.nextBreak(e,n))<e.length;)n=t,r++;return n<e.length&&r++,r},this})},72918:e=>{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n<i)}},86834:e=>{"use strict";const t=[200,203,204,206,300,301,404,405,410,414,501],r=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],n={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},i={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function o(e){const t={};if(!e)return t;const r=e.trim().split(/\s*,\s*/);for(const e of r){const[r,n]=e.split(/\s*=\s*/,2);t[r]=void 0===n||n.replace(/^"|"$/g,"")}return t}function s(e){let t=[];for(const r in e){const n=e[r];t.push(!0===n?r:r+"="+n)}if(t.length)return t.join(", ")}e.exports=class{constructor(e,t,{shared:r,cacheHeuristic:n,immutableMinTimeToLive:i,ignoreCargoCult:A,trustServerDate:a,_fromObject:c}={}){if(c)this._fromObject(c);else{if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=!1!==r,this._trustServerDate=void 0===a||a,this._cacheHeuristic=void 0!==n?n:.1,this._immutableMinTtl=void 0!==i?i:864e5,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=o(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=o(e.headers["cache-control"]),A&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":s(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}}now(){return Date.now()}storable(){return!(this._reqcc["no-store"]||!("GET"===this._method||"HEAD"===this._method||"POST"===this._method&&this._hasExplicitExpiration())||-1===r.indexOf(this._status)||this._rescc["no-store"]||this._isShared&&this._rescc.private||this._isShared&&!this._noAuthorization&&!this._allowsStoringAuthenticated()||!(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||-1!==t.indexOf(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);const t=o(e.headers["cache-control"]);if(t["no-cache"]||/no-cache/.test(e.headers.pragma))return!1;if(t["max-age"]&&this.age()>t["max-age"])return!1;if(t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"])return!1;if(this.stale()){if(!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(!0===t["max-stale"]||t["max-stale"]>this.age()-this.maxAge())))return!1}return this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&"HEAD"===e.method)&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if("*"===this._resHeaders.vary)return!1;const t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(const r of t)if(e.headers[r]!==this._reqHeaders[r])return!1;return!0}_copyWithoutHopByHopHeaders(e){const t={};for(const r in e)n[r]||(t[r]=e[r]);if(e.connection){const r=e.connection.trim().split(/\s*,\s*/);for(const e of r)delete t[e]}if(t.warning){const e=t.warning.split(/,/).filter(e=>!/^\s*1[0-9][0-9]/.test(e));e.length?t.warning=e.join(",").trim():delete t.warning}return t}responseHeaders(){const e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>86400&&!this._hasExplicitExpiration()&&this.maxAge()>86400&&(e.warning=(e.warning?e.warning+", ":"")+'113 - "rfc7234 5.5.4"'),e.age=""+Math.round(t),e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){const e=Date.parse(this._resHeaders.date);if(isFinite(e)){const t=288e5;if(Math.abs(this._responseTime-e)<t)return e}return this._responseTime}age(){let e=Math.max(0,(this._responseTime-this.date())/1e3);if(this._resHeaders.age){let t=this._ageValue();t>e&&(e=t)}return e+(this.now()-this._responseTime)/1e3}_ageValue(){const e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"])return 0;if(this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable)return 0;if("*"===this._resHeaders.vary)return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);const e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){const r=Date.parse(this._resHeaders.expires);return Number.isNaN(r)||r<t?0:Math.max(e,(r-t)/1e3)}if(this._resHeaders["last-modified"]){const r=Date.parse(this._resHeaders["last-modified"]);if(isFinite(r)&&t>r)return Math.max(e,(t-r)/1e3*this._cacheHeuristic)}return e}timeToLive(){return 1e3*Math.max(0,this.maxAge()-this.age())}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||1!==e.v)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=void 0!==e.imm?e.imm:864e5,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);const t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag);if(t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&"GET"!=this._method){if(delete t["if-modified-since"],t["if-none-match"]){const e=t["if-none-match"].split(/,/).filter(e=>!/^\s*W\//.test(e));e.length?t["if-none-match"]=e.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let r=!1;if(void 0!==t.status&&304!=t.status?r=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?r=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?r=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?r=this._resHeaders["last-modified"]===t.headers["last-modified"]:this._resHeaders.etag||this._resHeaders["last-modified"]||t.headers.etag||t.headers["last-modified"]||(r=!0),!r)return{policy:new this.constructor(e,t),modified:304!=t.status,matches:!1};const n={};for(const e in this._resHeaders)n[e]=e in t.headers&&!i[e]?t.headers[e]:this._resHeaders[e];const o=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}},92967:(e,t,r)=>{"use strict";const n=r(28614),i=r(4016),o=r(97565),s=r(82905),A=Symbol("currentStreamsCount"),a=Symbol("request"),c=Symbol("cachedOriginSet"),u=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],l=(e,t,r)=>{if(t in e){const n=e[t].indexOf(r);if(-1!==n)return e[t].splice(n,1),0===e[t].length&&delete e[t],!0}return!1},h=(e,t,r)=>{t in e?e[t].push(r):e[t]=[r]},g=(e,t,r)=>t in e?e[t].filter(e=>!e.closed&&!e.destroyed&&e[c].includes(r)):[],f=(e,t,r)=>{if(t in e)for(const n of e[t])n[c].length<r[c].length&&n[c].every(e=>r[c].includes(e))&&n[A]+r[A]<=r.remoteSettings.maxConcurrentStreams&&n.close()};class p extends n{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:r=1,maxCachedTlsSessions:n=100}={}){super(),this.busySessions={},this.freeSessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=r,this.settings={enablePush:!1},this.tlsSessionCache=new s({maxSize:n})}static normalizeOrigin(e,t){return"string"==typeof e&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(const r of u)e[r]&&(t+=":"+e[r]);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;const r=g(this.busySessions,e,t).length,n=this.queue[e][t];r<this.maxSessions&&!n.completed&&(n.completed=!0,n())}_closeCoveredSessions(e,t){f(this.freeSessions,e,t),f(this.busySessions,e,t)}getSession(e,t,r){return new Promise((n,i)=>{Array.isArray(r)?(r=[...r],n()):r=[{resolve:n,reject:i}];const s=this.normalizeOptions(t),u=p.normalizeOrigin(e,t&&t.servername);if(void 0===u){for(const{reject:e}of r)e(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(s in this.freeSessions){const e=g(this.freeSessions,s,u);if(0!==e.length){const t=e.reduce((e,t)=>t.remoteSettings.maxConcurrentStreams>=e.remoteSettings.maxConcurrentStreams&&t[A]>e[A]?t:e);for(const{resolve:e}of r)e(t);return}}if(s in this.queue){if(u in this.queue[s])return void this.queue[s][u].listeners.push(...r)}else this.queue[s]={};const f=()=>{s in this.queue&&this.queue[s][u]===d&&(delete this.queue[s][u],0===Object.keys(this.queue[s]).length&&delete this.queue[s])},d=()=>{const n=`${u}:${s}`;let i,p=!1;try{const C=this.tlsSessionCache.get(n),E=o.connect(e,{createConnection:this.createConnection,settings:this.settings,session:C?C.session:void 0,...t});E[A]=0;const I=()=>E[c].reduce((e,t)=>Math.min(e,g(this.freeSessions,s,t).length),1/0)<this.maxFreeSessions&&(h(this.freeSessions,s,E),!0),m=()=>E[A]<E.remoteSettings.maxConcurrentStreams;E.socket.once("session",e=>{setImmediate(()=>{this.tlsSessionCache.set(n,{session:e,servername:i})})}),E.socket.once("secureConnect",()=>{i=E.socket.servername,!1===i&&void 0!==C&&void 0!==C.servername&&(E.socket.servername=C.servername)}),E.once("error",e=>{if(!p)for(const{reject:t}of r)t(e);this.tlsSessionCache.delete(n)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(!p){const e=new Error("Session closed without receiving a SETTINGS frame");for(const{reject:t}of r)t(e)}f(),l(this.freeSessions,s,E),this._tryToCreateNewSession(s,u)});const y=()=>{if(s in this.queue)for(const e of E[c])if(e in this.queue[s]){const{listeners:t}=this.queue[s][e];for(;0!==t.length&&m();)t.shift().resolve(E);if(0===this.queue[s][e].listeners.length&&(delete this.queue[s][e],0===Object.keys(this.queue[s]).length)){delete this.queue[s];break}if(!m())break}};E.once("origin",()=>{E[c]=E.originSet,m()&&(this._closeCoveredSessions(s,E),y(),E.on("remoteSettings",()=>{this._closeCoveredSessions(s,E)}))}),E.once("remoteSettings",()=>{if(d.destroyed){const e=new Error("Agent has been destroyed");for(const t of r)t.reject(e);E.destroy()}else E[c]=E.originSet,this.emit("session",E),I()?y():0===this.maxFreeSessions?(y(),setImmediate(()=>{E.close()})):E.close(),f(),0!==r.length&&(this.getSession(u,t,r),r.length=0),p=!0,E.on("remoteSettings",()=>{m()&&l(this.busySessions,s,E)&&(I()?y():h(this.busySessions,s,E))})}),E[a]=E.request,E.request=e=>{const t=E[a](e,{endStream:!1});return E.ref(),++E[A],!m()&&l(this.freeSessions,s,E)&&h(this.busySessions,s,E),t.once("close",()=>{--E[A],m()&&(0===E[A]&&E.unref(),!l(this.busySessions,s,E)||E.destroyed||E.closed||(I()?(this._closeCoveredSessions(s,E),y()):E.close())),E.destroyed||E.closed||((e,t,r)=>{if(t in e)for(const n of e[t])r[c].length<n[c].length&&r[c].every(e=>n[c].includes(e))&&r[A]+n[A]<=n.remoteSettings.maxConcurrentStreams&&r.close()})(this.freeSessions,s,E)}),t}}catch(e){for(const t of r)t.reject(e);f()}};d.listeners=r,d.completed=!1,d.destroyed=!1,this.queue[s][u]=d,this._tryToCreateNewSession(s,u)})}request(e,t,r){return new Promise((n,i)=>{this.getSession(e,t,[{reject:i,resolve:e=>{n(e.request(r))}}])})}createConnection(e,t){return p.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];const r=e.port||443,n=e.hostname||e.host;return void 0===t.servername&&(t.servername=n),i.connect(r,n,t)}closeFreeSessions(){for(const e of Object.values(this.freeSessions))for(const t of e)0===t[A]&&t.close()}destroy(e){for(const t of Object.values(this.busySessions))for(const r of t)r.destroy(e);for(const t of Object.values(this.freeSessions))for(const r of t)r.destroy(e);for(const e of Object.values(this.queue))for(const t of Object.values(e))t.destroyed=!0;this.queue={}}}e.exports={Agent:p,globalAgent:new p}},89018:(e,t,r)=>{"use strict";const n=r(98605),i=r(57211),o=r(19476),s=r(82905),A=r(46889),a=r(44294),c=r(95581),u=new s({maxSize:100}),l=new Map,h=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};const n=()=>{e.emit("free",t,r)};t.on("free",n);const i=()=>{e.removeSocket(t,r)};t.on("close",i);const o=()=>{e.removeSocket(t,r),t.off("close",i),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)};e.exports=async(e,t,r)=>{("string"==typeof e||e instanceof URL)&&(e=c(new URL(e))),"function"==typeof t&&(r=t,t=void 0);const s="https:"===(t={ALPNProtocols:["h2","http/1.1"],protocol:"https:",...e,...t,resolveSocket:!0}).protocol,g=t.agent;if(t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||a(t),t.port=t.port||(s?443:80),t._defaultAgent=s?i.globalAgent:n.globalAgent,g){if(g.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=g[s?"https":"http"]}if(s){if("h2"===await(async e=>{const t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!u.has(t)){if(l.has(t)){return(await l.get(t)).alpnProtocol}const{path:r,agent:n}=e;e.path=e.socketPath;const s=o(e);l.set(t,s);try{const{socket:o,alpnProtocol:A}=await s;if(u.set(t,A),e.path=r,"h2"===A)o.destroy();else{const{globalAgent:t}=i,r=i.Agent.prototype.createConnection;n?n.createConnection===r?h(n,o,e):o.destroy():t.createConnection===r?h(t,o,e):o.destroy()}return l.delete(t),A}catch(e){throw l.delete(t),e}}return u.get(t)})(t))return g&&(t.agent=g.http2),new A(t,r)}return n.request(t,r)},e.exports.protocolCache=u},46889:(e,t,r)=>{"use strict";const n=r(97565),{Writable:i}=r(92413),{Agent:o,globalAgent:s}=r(92967),A=r(75744),a=r(95581),c=r(17395),u=r(13110),{ERR_INVALID_ARG_TYPE:l,ERR_INVALID_PROTOCOL:h,ERR_HTTP_HEADERS_SENT:g,ERR_INVALID_HTTP_TOKEN:f,ERR_HTTP_INVALID_HEADER_VALUE:p,ERR_INVALID_CHAR:d}=r(91078),{HTTP2_HEADER_STATUS:C,HTTP2_HEADER_METHOD:E,HTTP2_HEADER_PATH:I,HTTP2_METHOD_CONNECT:m}=n.constants,y=Symbol("headers"),w=Symbol("origin"),B=Symbol("session"),Q=Symbol("options"),v=Symbol("flushedHeaders"),D=Symbol("jobs"),b=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,S=/[^\t\u0020-\u007E\u0080-\u00FF]/;e.exports=class extends i{constructor(e,t,r){super({autoDestroy:!1});const n="string"==typeof e||e instanceof URL;if(n&&(e=a(e instanceof URL?e:new URL(e))),"function"==typeof t||void 0===t?(r=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[B]=t.h2session;else if(!1===t.agent)this.agent=new o({maxFreeSessions:0});else if(void 0===t.agent||null===t.agent)"function"==typeof t.createConnection?(this.agent=new o({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=s;else{if("function"!=typeof t.agent.request)throw new l("options.agent",["Agent-like Object","undefined","false"],t.agent);this.agent=t.agent}if(t.port||(t.port=t.defaultPort||this.agent&&this.agent.defaultPort||443),t.host=t.hostname||t.host||"localhost",t.protocol&&"https:"!==t.protocol)throw new h(t.protocol,"https:");const{timeout:i}=t;if(t.timeout=void 0,this[y]=Object.create(null),this[D]=[],this.socket=null,this.connection=null,this.method=t.method,this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(const[e,r]of Object.entries(t.headers))this.setHeader(e,r);t.auth&&!("authorization"in this[y])&&(this[y].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[Q]=t,443===t.port?(t.origin="https://"+t.host,":authority"in this[y]||(this[y][":authority"]=t.host)):(t.origin=`https://${t.host}:${t.port}`,":authority"in this[y]||(this[y][":authority"]=`${t.host}:${t.port}`)),this[w]=t,i&&this.setTimeout(i),r&&this.once("response",r),this[v]=!1}get method(){return this[y][E]}set method(e){e&&(this[y][E]=e.toUpperCase())}get path(){return this[y][I]}set path(e){e&&(this[y][I]=e)}_write(e,t,r){this.flushHeaders();const n=()=>this._request.write(e,t,r);this._request?n():this[D].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();const t=()=>this._request.end(e);this._request?t():this[D].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[v]||this.destroyed)return;this[v]=!0;const e=this.method===m,t=t=>{if(this._request=t,this.destroyed)return void t.destroy();e||c(t,this,["timeout","continue","close","error"]),t.once("response",(r,n,i)=>{const o=new A(this.socket,t.readableHighWaterMark);this.res=o,o.req=this,o.statusCode=r[C],o.headers=r,o.rawHeaders=i,o.once("end",()=>{this.aborted?(o.aborted=!0,o.emit("aborted")):(o.complete=!0,o.socket=null,o.connection=null)}),e?(o.upgrade=!0,this.emit("connect",o,t,Buffer.alloc(0))?this.emit("close"):t.destroy()):(t.on("data",e=>{o._dumped||o.push(e)||t.pause()}),t.once("end",()=>{o.push(null)}),this.emit("response",o)||o._dump())}),t.once("headers",e=>this.emit("information",{statusCode:e[C]})),t.once("trailers",(e,t,r)=>{const{res:n}=this;n.trailers=e,n.rawTrailers=r});const{socket:r}=t.session;this.socket=r,this.connection=r;for(const e of this[D])e();this.emit("socket",this.socket)};if(this[B])try{t(this[B].request(this[y],{endStream:!1}))}catch(e){this.emit("error",e)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[w],this[Q],this[y]))}catch(e){this.emit("error",e)}}}getHeader(e){if("string"!=typeof e)throw new l("name","string",e);return this[y][e.toLowerCase()]}get headersSent(){return this[v]}removeHeader(e){if("string"!=typeof e)throw new l("name","string",e);if(this.headersSent)throw new g("remove");delete this[y][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new g("set");if("string"!=typeof e||!b.test(e)&&!u(e))throw new f("Header name",e);if(void 0===t)throw new p(t,e);if(S.test(t))throw new d("header content",e);this[y][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){const r=()=>this._request.setTimeout(e,t);return this._request?r():this[D].push(r),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}}},75744:(e,t,r)=>{"use strict";const{Readable:n}=r(92413);e.exports=class extends n{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}}},9453:(e,t,r)=>{"use strict";const n=r(97565),i=r(92967),o=r(46889),s=r(75744),A=r(89018);e.exports={...n,ClientRequest:o,IncomingMessage:s,...i,request:(e,t,r)=>new o(e,t,r),get:(e,t,r)=>{const n=new o(e,t,r);return n.end(),n},auto:A}},44294:(e,t,r)=>{"use strict";const n=r(11631);e.exports=e=>{let t=e.host;const r=e.headers&&e.headers.host;if(r)if(r.startsWith("[")){t=-1===r.indexOf("]")?r:r.slice(1,-1)}else t=r.split(":",1)[0];return n.isIP(t)?"":t}},91078:e=>{"use strict";const t=(t,r,n)=>{e.exports[r]=class extends t{constructor(...e){super("string"==typeof n?n:n(e)),this.name=`${super.name} [${r}]`,this.code=r}}};t(TypeError,"ERR_INVALID_ARG_TYPE",e=>{const t=e[0].includes(".")?"property":"argument";let r=e[1];const n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`}),t(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`),t(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`),t(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`),t(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`),t(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)},13110:e=>{"use strict";e.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}},17395:e=>{"use strict";e.exports=(e,t,r)=>{for(const n of r)e.on(n,(...e)=>t.emit(n,...e))}},95581:e=>{"use strict";e.exports=e=>{const t={protocol:e.protocol,hostname:"string"==typeof e.hostname&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return"string"==typeof e.port&&0!==e.port.length&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}},3870:(e,t,r)=>{"use strict";var n=r(44765).Buffer;t._dbcs=s;for(var i=new Array(256),o=0;o<256;o++)i[o]=-1;function s(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=i.slice(0),this.decodeTableSeq=[];for(var n=0;n<r.length;n++)this._addDecodeChunk(r[n]);this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var o={};if(e.encodeSkipVals)for(n=0;n<e.encodeSkipVals.length;n++){var s=e.encodeSkipVals[n];if("number"==typeof s)o[s]=!0;else for(var A=s.from;A<=s.to;A++)o[A]=!0}if(this._fillEncodeTable(0,0,o),e.encodeAdd)for(var a in e.encodeAdd)Object.prototype.hasOwnProperty.call(e.encodeAdd,a)&&this._setEncodeChar(a.charCodeAt(0),e.encodeAdd[a]);if(this.defCharSB=this.encodeTable[0][t.defaultCharSingleByte.charCodeAt(0)],-1===this.defCharSB&&(this.defCharSB=this.encodeTable[0]["?"]),-1===this.defCharSB&&(this.defCharSB="?".charCodeAt(0)),"function"==typeof e.gb18030){this.gb18030=e.gb18030();var c=this.decodeTables.length,u=this.decodeTables[c]=i.slice(0),l=this.decodeTables.length,h=this.decodeTables[l]=i.slice(0);for(n=129;n<=254;n++){var g=-1e3-this.decodeTables[0][n],f=this.decodeTables[g];for(A=48;A<=57;A++)f[A]=-1e3-c}for(n=129;n<=254;n++)u[n]=-1e3-l;for(n=48;n<=57;n++)h[n]=-2}}function A(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}function a(e,t){this.nodeIdx=0,this.prevBuf=n.alloc(0),this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}function c(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r<n-1;){var i=r+Math.floor((n-r+1)/2);e[i]<=t?r=i:n=i}return r}s.prototype.encoder=A,s.prototype.decoder=a,s.prototype._getDecodeTrieNode=function(e){for(var t=[];e>0;e>>=8)t.push(255&e);0==t.length&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var o=r[t[n]];if(-1==o)r[t[n]]=-1e3-this.decodeTables.length,this.decodeTables.push(r=i.slice(0));else{if(!(o<=-1e3))throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16));r=this.decodeTables[-1e3-o]}}return r},s.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t&=255;for(var n=1;n<e.length;n++){var i=e[n];if("string"==typeof i)for(var o=0;o<i.length;){var s=i.charCodeAt(o++);if(55296<=s&&s<56320){var A=i.charCodeAt(o++);if(!(56320<=A&&A<57344))throw new Error("Incorrect surrogate pair in "+this.encodingName+" at chunk "+e[0]);r[t++]=65536+1024*(s-55296)+(A-56320)}else if(4080<s&&s<=4095){for(var a=4095-s+2,c=[],u=0;u<a;u++)c.push(i.charCodeAt(o++));r[t++]=-10-this.decodeTableSeq.length,this.decodeTableSeq.push(c)}else r[t++]=s}else{if("number"!=typeof i)throw new Error("Incorrect type '"+typeof i+"' given in "+this.encodingName+" at chunk "+e[0]);var l=r[t-1]+1;for(o=0;o<i;o++)r[t++]=l++}}if(t>255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)},s.prototype._getEncodeBucket=function(e){var t=e>>8;return void 0===this.encodeTable[t]&&(this.encodeTable[t]=i.slice(0)),this.encodeTable[t]},s.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=255&e;r[n]<=-10?this.encodeTableSeq[-10-r[n]][-1]=t:-1==r[n]&&(r[n]=t)},s.prototype._setEncodeSequence=function(e,t){var r,n=e[0],i=this._getEncodeBucket(n),o=255&n;i[o]<=-10?r=this.encodeTableSeq[-10-i[o]]:(r={},-1!==i[o]&&(r[-1]=i[o]),i[o]=-10-this.encodeTableSeq.length,this.encodeTableSeq.push(r));for(var s=1;s<e.length-1;s++){var A=r[n];"object"==typeof A?r=A:(r=r[n]={},void 0!==A&&(r[-1]=A))}r[n=e[e.length-1]]=t},s.prototype._fillEncodeTable=function(e,t,r){for(var n=this.decodeTables[e],i=0;i<256;i++){var o=n[i],s=t+i;r[s]||(o>=0?this._setEncodeChar(o,s):o<=-1e3?this._fillEncodeTable(-1e3-o,s<<8,r):o<=-10&&this._setEncodeSequence(this.decodeTableSeq[-10-o],s))}},A.prototype.write=function(e){for(var t=n.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,i=this.seqObj,o=-1,s=0,A=0;;){if(-1===o){if(s==e.length)break;var a=e.charCodeAt(s++)}else{a=o;o=-1}if(55296<=a&&a<57344)if(a<56320){if(-1===r){r=a;continue}r=a,a=-1}else-1!==r?(a=65536+1024*(r-55296)+(a-56320),r=-1):a=-1;else-1!==r&&(o=a,a=-1,r=-1);var u=-1;if(void 0!==i&&-1!=a){var l=i[a];if("object"==typeof l){i=l;continue}"number"==typeof l?u=l:null==l&&void 0!==(l=i[-1])&&(u=l,o=a),i=void 0}else if(a>=0){var h=this.encodeTable[a>>8];if(void 0!==h&&(u=h[255&a]),u<=-10){i=this.encodeTableSeq[-10-u];continue}if(-1==u&&this.gb18030){var g=c(this.gb18030.uChars,a);if(-1!=g){u=this.gb18030.gbChars[g]+(a-this.gb18030.uChars[g]);t[A++]=129+Math.floor(u/12600),u%=12600,t[A++]=48+Math.floor(u/1260),u%=1260,t[A++]=129+Math.floor(u/10),u%=10,t[A++]=48+u;continue}}}-1===u&&(u=this.defaultCharSingleByte),u<256?t[A++]=u:u<65536?(t[A++]=u>>8,t[A++]=255&u):(t[A++]=u>>16,t[A++]=u>>8&255,t[A++]=255&u)}return this.seqObj=i,this.leadSurrogate=r,t.slice(0,A)},A.prototype.end=function(){if(-1!==this.leadSurrogate||void 0!==this.seqObj){var e=n.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[-1];void 0!==r&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=255&r)),this.seqObj=void 0}return-1!==this.leadSurrogate&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}},A.prototype.findIdx=c,a.prototype.write=function(e){var t=n.alloc(2*e.length),r=this.nodeIdx,i=this.prevBuf,o=this.prevBuf.length,s=-this.prevBuf.length;o>0&&(i=n.concat([i,e.slice(0,10)]));for(var A=0,a=0;A<e.length;A++){var u,l=A>=0?e[A]:i[A+o];if((u=this.decodeTables[r][l])>=0);else if(-1===u)A=s,u=this.defaultCharUnicode.charCodeAt(0);else if(-2===u){var h=s>=0?e.slice(s,A+1):i.slice(s+o,A+1+o),g=12600*(h[0]-129)+1260*(h[1]-48)+10*(h[2]-129)+(h[3]-48),f=c(this.gb18030.gbChars,g);u=this.gb18030.uChars[f]+g-this.gb18030.gbChars[f]}else{if(u<=-1e3){r=-1e3-u;continue}if(!(u<=-10))throw new Error("iconv-lite internal error: invalid decoding table value "+u+" at "+r+"/"+l);for(var p=this.decodeTableSeq[-10-u],d=0;d<p.length-1;d++)u=p[d],t[a++]=255&u,t[a++]=u>>8;u=p[p.length-1]}if(u>65535){u-=65536;var C=55296+Math.floor(u/1024);t[a++]=255&C,t[a++]=C>>8,u=56320+u%1024}t[a++]=255&u,t[a++]=u>>8,r=0,s=A+1}return this.nodeIdx=r,this.prevBuf=s>=0?e.slice(s):i.slice(s+o),t.slice(0,a).toString("ucs2")},a.prototype.end=function(){for(var e="";this.prevBuf.length>0;){e+=this.defaultCharUnicode;var t=this.prevBuf.slice(1);this.prevBuf=n.alloc(0),this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.nodeIdx=0,e}},18476:(e,t,r)=>{"use strict";e.exports={shiftjis:{type:"_dbcs",table:function(){return r(49688)},encodeAdd:{"¥":92,"‾":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return r(20345)},encodeAdd:{"¥":92,"‾":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return r(2685)}},gbk:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return r(2685).concat(r(4764))},gb18030:function(){return r(39909)},encodeSkipVals:[128],encodeAdd:{"€":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return r(39192)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return r(73691)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return r(73691).concat(r(93701))},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},15709:(e,t,r)=>{"use strict";for(var n=[r(70497),r(2682),r(46339),r(31658),r(1999),r(53522),r(3870),r(18476)],i=0;i<n.length;i++){var o=n[i];for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s])}},70497:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,"base64"===this.enc?this.encoder=a:"cesu8"===this.enc&&(this.enc="utf8",this.encoder=c,"💩"!==n.from("eda0bdedb2a9","hex").toString()&&(this.decoder=u,this.defaultCharUnicode=t.defaultCharUnicode))}e.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:i},i.prototype.encoder=A,i.prototype.decoder=s;var o=r(24304).StringDecoder;function s(e,t){o.call(this,t.enc)}function A(e,t){this.enc=t.enc}function a(e,t){this.prevStr=""}function c(e,t){}function u(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}o.prototype.end||(o.prototype.end=function(){}),s.prototype=o.prototype,A.prototype.write=function(e){return n.from(e,this.enc)},A.prototype.end=function(){},a.prototype.write=function(e){var t=(e=this.prevStr+e).length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),n.from(e,"base64")},a.prototype.end=function(){return n.from(this.prevStr,"base64")},c.prototype.write=function(e){for(var t=n.alloc(3*e.length),r=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?t[r++]=o:o<2048?(t[r++]=192+(o>>>6),t[r++]=128+(63&o)):(t[r++]=224+(o>>>12),t[r++]=128+(o>>>6&63),t[r++]=128+(63&o))}return t.slice(0,r)},c.prototype.end=function(){},u.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,i="",o=0;o<e.length;o++){var s=e[o];128!=(192&s)?(r>0&&(i+=this.defaultCharUnicode,r=0),s<128?i+=String.fromCharCode(s):s<224?(t=31&s,r=1,n=1):s<240?(t=15&s,r=2,n=1):i+=this.defaultCharUnicode):r>0?(t=t<<6|63&s,n++,0===--r&&(i+=2===n&&t<128&&t>0||3===n&&t<2048?this.defaultCharUnicode:String.fromCharCode(t))):i+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,i},u.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}},31658:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||128!==e.chars.length&&256!==e.chars.length)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(128===e.chars.length){for(var r="",i=0;i<128;i++)r+=String.fromCharCode(i);e.chars=r+e.chars}this.decodeBuf=n.from(e.chars,"ucs2");var o=n.alloc(65536,t.defaultCharSingleByte.charCodeAt(0));for(i=0;i<e.chars.length;i++)o[e.chars.charCodeAt(i)]=i;this.encodeBuf=o}function o(e,t){this.encodeBuf=t.encodeBuf}function s(e,t){this.decodeBuf=t.decodeBuf}t._sbcs=i,i.prototype.encoder=o,i.prototype.decoder=s,o.prototype.write=function(e){for(var t=n.alloc(e.length),r=0;r<e.length;r++)t[r]=this.encodeBuf[e.charCodeAt(r)];return t},o.prototype.end=function(){},s.prototype.write=function(e){for(var t=this.decodeBuf,r=n.alloc(2*e.length),i=0,o=0,s=0;s<e.length;s++)i=2*e[s],r[o=2*s]=t[i],r[o+1]=t[i+1];return r.toString("ucs2")},s.prototype.end=function(){}},53522:e=>{"use strict";e.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:" Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:" Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:" ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:" ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:" ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:" ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:" �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:" ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:" กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:" ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:" Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:" ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:" ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘę¬źČş«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞğ¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñÑªº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýÝ¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñÑªº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñÑªº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñÑªº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:" ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:" ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:" ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:" ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:" ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"},maccyrillic:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},macgreek:{type:"_sbcs",chars:"Ä¹²É³ÖÜ΅àâä΄¨çéèêë£™îï•½‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"},maciceland:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macroman:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macromania:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macthai:{type:"_sbcs",chars:"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู\ufeff​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"},macturkish:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"},macukraine:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},koi8r:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8u:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8ru:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8t:{type:"_sbcs",chars:"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},armscii8:{type:"_sbcs",chars:" �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"},rk1048:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},tcvn:{type:"_sbcs",chars:"\0ÚỤỪỬỮ\b\t\n\v\f\rỨỰỲỶỸÝỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"},georgianacademy:{type:"_sbcs",chars:"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},georgianps:{type:"_sbcs",chars:"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},pt154:{type:"_sbcs",chars:"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},viscii:{type:"_sbcs",chars:"\0ẲẴẪ\b\t\n\v\f\rỶỸỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"},iso646cn:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},iso646jp:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},hproman8:{type:"_sbcs",chars:" ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"},macintosh:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›ﬁﬂ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},ascii:{type:"_sbcs",chars:"��������������������������������������������������������������������������������������������������������������������������������"},tis620:{type:"_sbcs",chars:"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"}}},1999:e=>{"use strict";e.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"ÄĀāÉĄÖÜáąČäčĆćéŹźĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņŃ¬√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "},mik:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},93701:e=>{"use strict";e.exports=JSON.parse('[["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー［］✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","￢￤＇＂㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","￭"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]')},2685:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1","　、。·ˉˇ¨〃々—～‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃＄¤￠￡‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","！＂＃￥％",88,"￣"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰￢￤"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]')},39192:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎　、。·‥…¨〃­―∥＼∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å￠￡￥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨￢"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´～ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛！",58,"￦］",32,"￣"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆÐªĦ"],["a8a6","Ĳ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıĳĸŀłøœßþŧŋŉ㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]')},73691:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["a140","　，、。．‧；：？！︰…‥﹐﹑﹒·﹔﹕﹖﹗｜–︱—︳╴︴﹏（）︵︶｛｝︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′＃＆＊※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯￣＿ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡＋－×÷±√＜＞＝≦≧≠∞≒≡﹢",4,"～∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣／"],["a240","＼∕﹨＄￥〒￠￡％＠℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳０",9,"Ⅰ",9,"〡",8,"十卄卅Ａ",25,"ａ",21],["a340","ｗｘｙｚΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]')},20345:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8ea1","｡",62],["a1a1","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨￢⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","Å‰♯♭♪†‡¶"],["a2fe","◯"],["a3b0","０",9],["a3c1","Ａ",25],["a3e1","ａ",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"￢￤＇＂"],["8fa2af","˘ˇ¸˙˝¯˛˚～΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","Ĳ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıĳĸłŀŉŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]')},39909:e=>{"use strict";e.exports=JSON.parse('{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}')},4764:e=>{"use strict";e.exports=JSON.parse('[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31,"　"],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]')},49688:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",128],["a1","｡",62],["8140","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×"],["8180","÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨￢⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","Å‰♯♭♪†‡¶"],["81fc","◯"],["824f","０",9],["8260","Ａ",25],["8281","ａ",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"￢￤＇＂"],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"￢￤＇＂㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]')},2682:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(){}function o(){}function s(){this.overflowByte=-1}function A(e,t){this.iconv=t}function a(e,t){void 0===(e=e||{}).addBOM&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder("utf-16le",e)}function c(e,t){this.decoder=null,this.initialBytes=[],this.initialBytesLen=0,this.options=e||{},this.iconv=t.iconv}function u(e,t){var r=t||"utf-16le";if(e.length>=2)if(254==e[0]&&255==e[1])r="utf-16be";else if(255==e[0]&&254==e[1])r="utf-16le";else{for(var n=0,i=0,o=Math.min(e.length-e.length%2,64),s=0;s<o;s+=2)0===e[s]&&0!==e[s+1]&&i++,0!==e[s]&&0===e[s+1]&&n++;i>n?r="utf-16be":i<n&&(r="utf-16le")}return r}t.utf16be=i,i.prototype.encoder=o,i.prototype.decoder=s,i.prototype.bomAware=!0,o.prototype.write=function(e){for(var t=n.from(e,"ucs2"),r=0;r<t.length;r+=2){var i=t[r];t[r]=t[r+1],t[r+1]=i}return t},o.prototype.end=function(){},s.prototype.write=function(e){if(0==e.length)return"";var t=n.alloc(e.length+1),r=0,i=0;for(-1!==this.overflowByte&&(t[0]=e[0],t[1]=this.overflowByte,r=1,i=2);r<e.length-1;r+=2,i+=2)t[i]=e[r+1],t[i+1]=e[r];return this.overflowByte=r==e.length-1?e[e.length-1]:-1,t.slice(0,i).toString("ucs2")},s.prototype.end=function(){},t.utf16=A,A.prototype.encoder=a,A.prototype.decoder=c,a.prototype.write=function(e){return this.encoder.write(e)},a.prototype.end=function(){return this.encoder.end()},c.prototype.write=function(e){if(!this.decoder){if(this.initialBytes.push(e),this.initialBytesLen+=e.length,this.initialBytesLen<16)return"";var t=u(e=n.concat(this.initialBytes),this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options),this.initialBytes.length=this.initialBytesLen=0}return this.decoder.write(e)},c.prototype.end=function(){if(!this.decoder){var e=n.concat(this.initialBytes),t=u(e,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);var r=this.decoder.write(e),i=this.decoder.end();return i?r+i:r}return this.decoder.end()}},46339:(e,t,r)=>{"use strict";var n=r(44765).Buffer;function i(e,t){this.iconv=t}t.utf7=i,t.unicode11utf7="utf7",i.prototype.encoder=s,i.prototype.decoder=A,i.prototype.bomAware=!0;var o=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function s(e,t){this.iconv=t.iconv}function A(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}s.prototype.write=function(e){return n.from(e.replace(o,function(e){return"+"+("+"===e?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))},s.prototype.end=function(){};for(var a=/[A-Za-z0-9\/+]/,c=[],u=0;u<256;u++)c[u]=a.test(String.fromCharCode(u));var l="+".charCodeAt(0),h="-".charCodeAt(0),g="&".charCodeAt(0);function f(e,t){this.iconv=t}function p(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=n.alloc(6),this.base64AccumIdx=0}function d(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}A.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s<e.length;s++)if(i){if(!c[e[s]]){if(s==r&&e[s]==h)t+="+";else{var A=o+e.slice(r,s).toString();t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}e[s]!=h&&s--,r=s+1,i=!1,o=""}}else e[s]==l&&(t+=this.iconv.decode(e.slice(r,s),"ascii"),r=s+1,i=!0);if(i){var a=(A=o+e.slice(r).toString()).length-A.length%8;o=A.slice(a),A=A.slice(0,a),t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}else t+=this.iconv.decode(e.slice(r),"ascii");return this.inBase64=i,this.base64Accum=o,t},A.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e},t.utf7imap=f,f.prototype.encoder=p,f.prototype.decoder=d,f.prototype.bomAware=!0,p.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,i=this.base64AccumIdx,o=n.alloc(5*e.length+10),s=0,A=0;A<e.length;A++){var a=e.charCodeAt(A);32<=a&&a<=126?(t&&(i>0&&(s+=o.write(r.slice(0,i).toString("base64").replace(/\//g,",").replace(/=+$/,""),s),i=0),o[s++]=h,t=!1),t||(o[s++]=a,a===g&&(o[s++]=h))):(t||(o[s++]=g,t=!0),t&&(r[i++]=a>>8,r[i++]=255&a,i==r.length&&(s+=o.write(r.toString("base64").replace(/\//g,","),s),i=0)))}return this.inBase64=t,this.base64AccumIdx=i,o.slice(0,s)},p.prototype.end=function(){var e=n.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=h,this.inBase64=!1),e.slice(0,t)};var C=c.slice();C[",".charCodeAt(0)]=!0,d.prototype.write=function(e){for(var t="",r=0,i=this.inBase64,o=this.base64Accum,s=0;s<e.length;s++)if(i){if(!C[e[s]]){if(s==r&&e[s]==h)t+="&";else{var A=o+e.slice(r,s).toString().replace(/,/g,"/");t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}e[s]!=h&&s--,r=s+1,i=!1,o=""}}else e[s]==g&&(t+=this.iconv.decode(e.slice(r,s),"ascii"),r=s+1,i=!0);if(i){var a=(A=o+e.slice(r).toString().replace(/,/g,"/")).length-A.length%8;o=A.slice(a),A=A.slice(0,a),t+=this.iconv.decode(n.from(A,"base64"),"utf16-be")}else t+=this.iconv.decode(e.slice(r),"ascii");return this.inBase64=i,this.base64Accum=o,t},d.prototype.end=function(){var e="";return this.inBase64&&this.base64Accum.length>0&&(e=this.iconv.decode(n.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}},47773:(e,t)=>{"use strict";function r(e,t){this.encoder=e,this.addBOM=!0}function n(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}t.PrependBOM=r,r.prototype.write=function(e){return this.addBOM&&(e="\ufeff"+e,this.addBOM=!1),this.encoder.write(e)},r.prototype.end=function(){return this.encoder.end()},t.StripBOM=n,n.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||("\ufeff"===t[0]&&(t=t.slice(1),"function"==typeof this.options.stripBOM&&this.options.stripBOM()),this.pass=!0),t},n.prototype.end=function(){return this.decoder.end()}},819:(e,t,r)=>{"use strict";var n=r(64293).Buffer;e.exports=function(e){var t=void 0;e.supportsNodeEncodingsExtension=!(n.from||new n(0)instanceof Uint8Array),e.extendNodeEncodings=function(){if(!t){if(t={},!e.supportsNodeEncodingsExtension)return console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),void console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");var i={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};n.isNativeEncoding=function(e){return e&&i[e.toLowerCase()]};var o=r(64293).SlowBuffer;if(t.SlowBufferToString=o.prototype.toString,o.prototype.toString=function(r,i,o){return r=String(r||"utf8").toLowerCase(),n.isNativeEncoding(r)?t.SlowBufferToString.call(this,r,i,o):(void 0===i&&(i=0),void 0===o&&(o=this.length),e.decode(this.slice(i,o),r))},t.SlowBufferWrite=o.prototype.write,o.prototype.write=function(r,i,o,s){if(isFinite(i))isFinite(o)||(s=o,o=void 0);else{var A=s;s=i,i=o,o=A}i=+i||0;var a=this.length-i;if(o?(o=+o)>a&&(o=a):o=a,s=String(s||"utf8").toLowerCase(),n.isNativeEncoding(s))return t.SlowBufferWrite.call(this,r,i,o,s);if(r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var c=e.encode(r,s);return c.length<o&&(o=c.length),c.copy(this,i,0,o),o},t.BufferIsEncoding=n.isEncoding,n.isEncoding=function(t){return n.isNativeEncoding(t)||e.encodingExists(t)},t.BufferByteLength=n.byteLength,n.byteLength=o.byteLength=function(r,i){return i=String(i||"utf8").toLowerCase(),n.isNativeEncoding(i)?t.BufferByteLength.call(this,r,i):e.encode(r,i).length},t.BufferToString=n.prototype.toString,n.prototype.toString=function(r,i,o){return r=String(r||"utf8").toLowerCase(),n.isNativeEncoding(r)?t.BufferToString.call(this,r,i,o):(void 0===i&&(i=0),void 0===o&&(o=this.length),e.decode(this.slice(i,o),r))},t.BufferWrite=n.prototype.write,n.prototype.write=function(r,i,o,s){var A=i,a=o,c=s;if(isFinite(i))isFinite(o)||(s=o,o=void 0);else{var u=s;s=i,i=o,o=u}if(s=String(s||"utf8").toLowerCase(),n.isNativeEncoding(s))return t.BufferWrite.call(this,r,A,a,c);i=+i||0;var l=this.length-i;if(o?(o=+o)>l&&(o=l):o=l,r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var h=e.encode(r,s);return h.length<o&&(o=h.length),h.copy(this,i,0,o),o},e.supportsStreams){var s=r(92413).Readable;t.ReadableSetEncoding=s.prototype.setEncoding,s.prototype.setEncoding=function(t,r){this._readableState.decoder=e.getDecoder(t,r),this._readableState.encoding=t},s.prototype.collect=e._collect}}},e.undoExtendNodeEncodings=function(){if(e.supportsNodeEncodingsExtension){if(!t)throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.");delete n.isNativeEncoding;var i=r(64293).SlowBuffer;if(i.prototype.toString=t.SlowBufferToString,i.prototype.write=t.SlowBufferWrite,n.isEncoding=t.BufferIsEncoding,n.byteLength=t.BufferByteLength,n.prototype.toString=t.BufferToString,n.prototype.write=t.BufferWrite,e.supportsStreams){var o=r(92413).Readable;o.prototype.setEncoding=t.ReadableSetEncoding,delete o.prototype.collect}t=void 0}}}},14503:(e,t,r)=>{"use strict";var n=r(44765).Buffer,i=r(47773),o=e.exports;o.encodings=null,o.defaultCharUnicode="�",o.defaultCharSingleByte="?",o.encode=function(e,t,r){e=""+(e||"");var i=o.getEncoder(t,r),s=i.write(e),A=i.end();return A&&A.length>0?n.concat([s,A]):s},o.decode=function(e,t,r){"string"==typeof e&&(o.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),o.skipDecodeWarning=!0),e=n.from(""+(e||""),"binary"));var i=o.getDecoder(t,r),s=i.write(e),A=i.end();return A?s+A:s},o.encodingExists=function(e){try{return o.getCodec(e),!0}catch(e){return!1}},o.toEncoding=o.encode,o.fromEncoding=o.decode,o._codecDataCache={},o.getCodec=function(e){o.encodings||(o.encodings=r(15709));for(var t=o._canonicalizeEncoding(e),n={};;){var i=o._codecDataCache[t];if(i)return i;var s=o.encodings[t];switch(typeof s){case"string":t=s;break;case"object":for(var A in s)n[A]=s[A];n.encodingName||(n.encodingName=t),t=s.type;break;case"function":return n.encodingName||(n.encodingName=t),i=new s(n,o),o._codecDataCache[n.encodingName]=i,i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}},o._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")},o.getEncoder=function(e,t){var r=o.getCodec(e),n=new r.encoder(t,r);return r.bomAware&&t&&t.addBOM&&(n=new i.PrependBOM(n,t)),n},o.getDecoder=function(e,t){var r=o.getCodec(e),n=new r.decoder(t,r);return!r.bomAware||t&&!1===t.stripBOM||(n=new i.StripBOM(n,t)),n};var s="undefined"!=typeof process&&process.versions&&process.versions.node;if(s){var A=s.split(".").map(Number);(A[0]>0||A[1]>=10)&&r(16034)(o),r(819)(o)}},16034:(e,t,r)=>{"use strict";var n=r(64293).Buffer,i=r(92413).Transform;function o(e,t){this.conv=e,(t=t||{}).decodeStrings=!1,i.call(this,t)}function s(e,t){this.conv=e,(t=t||{}).encoding=this.encoding="utf8",i.call(this,t)}e.exports=function(e){e.encodeStream=function(t,r){return new o(e.getEncoder(t,r),r)},e.decodeStream=function(t,r){return new s(e.getDecoder(t,r),r)},e.supportsStreams=!0,e.IconvLiteEncoderStream=o,e.IconvLiteDecoderStream=s,e._collect=s.prototype.collect},o.prototype=Object.create(i.prototype,{constructor:{value:o}}),o.prototype._transform=function(e,t,r){if("string"!=typeof e)return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(e);n&&n.length&&this.push(n),r()}catch(e){r(e)}},o.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t),e()}catch(t){e(t)}},o.prototype.collect=function(e){var t=[];return this.on("error",e),this.on("data",(function(e){t.push(e)})),this.on("end",(function(){e(null,n.concat(t))})),this},s.prototype=Object.create(i.prototype,{constructor:{value:s}}),s.prototype._transform=function(e,t,r){if(!n.isBuffer(e))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var i=this.conv.write(e);i&&i.length&&this.push(i,this.encoding),r()}catch(e){r(e)}},s.prototype._flush=function(e){try{var t=this.conv.end();t&&t.length&&this.push(t,this.encoding),e()}catch(t){e(t)}},s.prototype.collect=function(e){var t="";return this.on("error",e),this.on("data",(function(e){t+=e})),this.on("end",(function(){e(null,t)})),this}},46458:e=>{function t(e){return Array.isArray(e)?e:[e]}const r=/^\s+$/,n=/^\\!/,i=/^\\#/,o=/\r?\n/g,s=/^\.*\/|^\.+$/,A="undefined"!=typeof Symbol?Symbol.for("node-ignore"):"node-ignore",a=/([0-z])-([0-z])/g,c=[[/\\?\s+$/,e=>0===e.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,e=>"\\"+e],[/\[([^\]/]*)($|\])/g,(e,t,r)=>{return"]"===r?`[${n=t,n.replace(a,(e,t,r)=>t.charCodeAt(0)<=r.charCodeAt(0)?e:"")}]`:"\\"+e;var n}],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,e=>/\/$/.test(e)?e+"$":e+"(?=$|\\/$)"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6<r.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(e,t)=>t+"[^\\/]*"],[/(\^|\\\/)?\\\*$/,(e,t)=>(t?t+"[^/]+":"[^/]*")+"(?=$|\\/$)"],[/\\\\\\/g,()=>"\\"]],u=Object.create(null),l=e=>"string"==typeof e;class h{constructor(e,t,r,n){this.origin=e,this.pattern=t,this.negative=r,this.regex=n}}const g=(e,t)=>{const r=e;let o=!1;0===e.indexOf("!")&&(o=!0,e=e.substr(1));const s=((e,t,r)=>{const n=u[e];if(n)return n;const i=c.reduce((t,r)=>t.replace(r[0],r[1].bind(e)),e);return u[e]=r?new RegExp(i,"i"):new RegExp(i)})(e=e.replace(n,"!").replace(i,"#"),0,t);return new h(r,e,o,s)},f=(e,t)=>{throw new t(e)},p=(e,t,r)=>{if(!l(e))return r(`path must be a string, but got \`${t}\``,TypeError);if(!e)return r("path must not be empty",TypeError);if(p.isNotRelative(e)){return r(`path should be a ${"`path.relative()`d"} string, but got "${t}"`,RangeError)}return!0},d=e=>s.test(e);p.isNotRelative=d,p.convert=e=>e;class C{constructor({ignorecase:e=!0}={}){var t,r,n;this._rules=[],this._ignorecase=e,t=this,r=A,n=!0,Object.defineProperty(t,r,{value:n}),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[A])return this._rules=this._rules.concat(e._rules),void(this._added=!0);if((e=>e&&l(e)&&!r.test(e)&&0!==e.indexOf("#"))(e)){const t=g(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,t(l(e)?(e=>e.split(o))(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let r=!1,n=!1;return this._rules.forEach(i=>{const{negative:o}=i;if(n===o&&r!==n||o&&!r&&!n&&!t)return;i.regex.test(e)&&(r=!o,n=o)}),{ignored:r,unignored:n}}_test(e,t,r,n){const i=e&&p.convert(e);return p(i,e,f),this._t(i,t,r,n)}_t(e,t,r,n){if(e in t)return t[e];if(n||(n=e.split("/")),n.pop(),!n.length)return t[e]=this._testOne(e,r);const i=this._t(n.join("/")+"/",t,r,n);return t[e]=i.ignored?i:this._testOne(e,r)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return t(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}}const E=e=>new C(e),I=()=>!1;if(E.isPathValid=e=>p(e&&p.convert(e),e,I),E.default=E,e.exports=E,"undefined"!=typeof process&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){const e=e=>/^\\\\\?\\/.test(e)||/["<>|\u0000-\u001F]+/u.test(e)?e:e.replace(/\\/g,"/");p.convert=e;const t=/^[a-z]:\//i;p.isNotRelative=e=>t.test(e)||d(e)}},24679:(e,t,r)=>{var n=r(98984),i=Object.create(null),o=r(91162);function s(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n]=e[n];return r}e.exports=n((function(e,t){return i[e]?(i[e].push(t),null):(i[e]=[t],function(e){return o((function t(){var r=i[e],n=r.length,o=s(arguments);try{for(var A=0;A<n;A++)r[A].apply(null,o)}finally{r.length>n?(r.splice(0,n),process.nextTick((function(){t.apply(null,o)}))):delete i[e]}}))}(e))}))},85870:(e,t,r)=>{try{var n=r(31669);if("function"!=typeof n.inherits)throw"";e.exports=n.inherits}catch(t){e.exports=r(48145)}},48145:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},9494:(e,t,r)=>{"use strict";var n=e.exports;n.prompts={},n.Separator=r(88249),n.ui={BottomBar:r(36896),Prompt:r(87380)},n.createPromptModule=function(e){var t=function(r,i){var o;try{o=new n.ui.Prompt(t.prompts,e)}catch(e){return Promise.reject(e)}var s=o.run(r,i);return s.ui=o,s};return t.prompts={},t.registerPrompt=function(e,r){return t.prompts[e]=r,this},t.restoreDefaultPrompts=function(){this.registerPrompt("list",r(89336)),this.registerPrompt("input",r(90013)),this.registerPrompt("number",r(90307)),this.registerPrompt("confirm",r(32107)),this.registerPrompt("rawlist",r(942)),this.registerPrompt("expand",r(73870)),this.registerPrompt("checkbox",r(33375)),this.registerPrompt("password",r(30428)),this.registerPrompt("editor",r(48748))},t.restoreDefaultPrompts(),t},n.prompt=n.createPromptModule(),n.registerPrompt=function(e,t){n.prompt.registerPrompt(e,t)},n.restoreDefaultPrompts=function(){n.prompt.restoreDefaultPrompts()}},1996:(e,t,r)=>{"use strict";var n={isString:r(221),isNumber:r(71044),extend:r(94501),isFunction:r(92533)};e.exports=class e{constructor(t,r){if(t instanceof e||"separator"===t.type)return t;n.isString(t)||n.isNumber(t)?(this.name=String(t),this.value=t,this.short=String(t)):n.extend(this,t,{name:t.name||t.value,value:"value"in t?t.value:t.name,short:t.short||t.name||t.value}),n.isFunction(t.disabled)?this.disabled=t.disabled(r):this.disabled=t.disabled}}},21027:(e,t,r)=>{"use strict";var n=r(42357),i={isNumber:r(71044),filter:r(59181),map:r(27869),find:r(98347)},o=r(88249),s=r(1996);e.exports=class{constructor(e,t){this.choices=e.map(e=>"separator"===e.type?(e instanceof o||(e=new o(e.line)),e):new s(e,t)),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),Object.defineProperty(this,"length",{get(){return this.choices.length},set(e){this.choices.length=e}}),Object.defineProperty(this,"realLength",{get(){return this.realChoices.length},set(){throw new Error("Cannot set `realLength` of a Choices collection")}})}getChoice(e){return n(i.isNumber(e)),this.realChoices[e]}get(e){return n(i.isNumber(e)),this.choices[e]}where(e){return i.filter(this.realChoices,e)}pluck(e){return i.map(this.realChoices,e)}indexOf(){return this.choices.indexOf.apply(this.choices,arguments)}forEach(){return this.choices.forEach.apply(this.choices,arguments)}filter(){return this.choices.filter.apply(this.choices,arguments)}find(e){return i.find(this.choices,e)}push(){var e=i.map(arguments,e=>new s(e));return this.choices.push.apply(this.choices,e),this.realChoices=this.choices.filter(o.exclude).filter(e=>!e.disabled),this.choices}}},88249:(e,t,r)=>{"use strict";var n=r(95882),i=r(51938);class o{constructor(e){this.type="separator",this.line=n.dim(e||new Array(15).join(i.line))}toString(){return this.line}}o.exclude=function(e){return"separator"!==e.type},e.exports=o},10485:(e,t,r)=>{"use strict";var n={assign:r(9682),defaults:r(99906),clone:r(22254)},i=r(95882),o=r(28855),{filter:s,flatMap:A,share:a,take:c,takeUntil:u}=r(20683),l=r(21027),h=r(32542);e.exports=class{constructor(e,t,r){n.assign(this,{answers:r,status:"pending"}),this.opt=n.defaults(n.clone(e),{validate:()=>!0,filter:e=>e,when:()=>!0,suffix:"",prefix:i.green("?")}),this.opt.name||this.throwParamError("name"),this.opt.message||(this.opt.message=this.opt.name+":"),Array.isArray(this.opt.choices)&&(this.opt.choices=new l(this.opt.choices,r)),this.rl=t,this.screen=new h(this.rl)}run(){return new Promise(e=>{this._run(t=>e(t))})}_run(e){e()}throwParamError(e){throw new Error("You must provide a `"+e+"` parameter")}close(){this.screen.releaseCursor()}handleSubmitEvents(e){var t=this,r=o(this.opt.validate),n=o(this.opt.filter),i=e.pipe(A(e=>n(e,t.answers).then(e=>r(e,t.answers).then(t=>({isValid:t,value:e}),t=>({isValid:t,value:e})),e=>({isValid:e}))),a()),l=i.pipe(s(e=>!0===e.isValid),c(1));return{success:l,error:i.pipe(s(e=>!0!==e.isValid),u(l))}}getQuestion(){var e=this.opt.prefix+" "+i.bold(this.opt.message)+this.opt.suffix+i.reset(" ");return null!=this.opt.default&&"answered"!==this.status&&("password"===this.opt.type?e+=i.italic.dim("[hidden] "):e+=i.dim("("+this.opt.default+") ")),e}}},33375:(e,t,r)=>{"use strict";var n={isArray:r(82664),map:r(27869),isString:r(221)},i=r(95882),o=r(61696),s=r(51938),{map:A,takeUntil:a}=r(20683),c=r(10485),u=r(92330),l=r(78635);e.exports=class extends c{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),n.isArray(this.opt.default)&&this.opt.choices.forEach((function(e){this.opt.default.indexOf(e.value)>=0&&(e.checked=!0)}),this),this.pointer=0,this.opt.default=null,this.paginator=new l(this.screen)}_run(e){this.done=e;var t=u(this.rl),r=this.handleSubmitEvents(t.line.pipe(A(this.getCurrentValue.bind(this))));return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(a(r.success)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(a(r.success)).forEach(this.onDownKey.bind(this)),t.numberKey.pipe(a(r.success)).forEach(this.onNumberKey.bind(this)),t.spaceKey.pipe(a(r.success)).forEach(this.onSpaceKey.bind(this)),t.aKey.pipe(a(r.success)).forEach(this.onAllKey.bind(this)),t.iKey.pipe(a(r.success)).forEach(this.onInverseKey.bind(this)),o.hide(),this.render(),this.firstRender=!1,this}render(e){var t,r,o,A,a=this.getQuestion(),c="";if(this.spaceKeyPressed||(a+="(Press "+i.cyan.bold("<space>")+" to select, "+i.cyan.bold("<a>")+" to toggle all, "+i.cyan.bold("<i>")+" to invert selection)"),"answered"===this.status)a+=i.cyan(this.selection.join(", "));else{var u=(t=this.opt.choices,r=this.pointer,o="",A=0,t.forEach((function(e,t){if("separator"===e.type)return A++,void(o+=" "+e+"\n");if(e.disabled)A++,o+=" - "+e.name,o+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")";else{var a=(e.checked?i.green(s.radioOn):s.radioOff)+" "+e.name;o+=t-A===r?i.cyan(s.pointer+a):" "+a}o+="\n"})),o.replace(/\n$/,"")),l=this.opt.choices.indexOf(this.opt.choices.getChoice(this.pointer));a+="\n"+this.paginator.paginate(u,l,this.opt.pageSize)}e&&(c=i.red(">> ")+e),this.screen.render(a,c)}onEnd(e){this.status="answered",this.spaceKeyPressed=!0,this.render(),this.screen.done(),o.show(),this.done(e.value)}onError(e){this.render(e.isValid)}getCurrentValue(){var e=this.opt.choices.filter((function(e){return Boolean(e.checked)&&!e.disabled}));return this.selection=n.map(e,"short"),n.map(e,"value")}onUpKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer>0?this.pointer-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.pointer=this.pointer<e-1?this.pointer+1:0,this.render()}onNumberKey(e){e<=this.opt.choices.realLength&&(this.pointer=e-1,this.toggleChoice(this.pointer)),this.render()}onSpaceKey(){this.spaceKeyPressed=!0,this.toggleChoice(this.pointer),this.render()}onAllKey(){var e=Boolean(this.opt.choices.find((function(e){return"separator"!==e.type&&!e.checked})));this.opt.choices.forEach((function(t){"separator"!==t.type&&(t.checked=e)})),this.render()}onInverseKey(){this.opt.choices.forEach((function(e){"separator"!==e.type&&(e.checked=!e.checked)})),this.render()}toggleChoice(e){var t=this.opt.choices.getChoice(e);void 0!==t&&(this.opt.choices.getChoice(e).checked=!t.checked)}}},32107:(e,t,r)=>{"use strict";var n={extend:r(94501),isBoolean:r(66807)},i=r(95882),{take:o,takeUntil:s}=r(20683),A=r(10485),a=r(92330);e.exports=class extends A{constructor(e,t,r){super(e,t,r);var i=!0;n.extend(this.opt,{filter:function(e){var t=i;return null!=e&&""!==e&&(t=/^y(es)?/i.test(e)),t}}),n.isBoolean(this.opt.default)&&(i=this.opt.default),this.opt.default=i?"Y/n":"y/N"}_run(e){this.done=e;var t=a(this.rl);return t.keypress.pipe(s(t.line)).forEach(this.onKeypress.bind(this)),t.line.pipe(o(1)).forEach(this.onEnd.bind(this)),this.render(),this}render(e){var t=this.getQuestion();return t+="boolean"==typeof e?i.cyan(e?"Yes":"No"):this.rl.line,this.screen.render(t),this}onEnd(e){this.status="answered";var t=this.opt.filter(e);this.render(t),this.screen.done(),this.done(t)}onKeypress(){this.render()}}},48748:(e,t,r)=>{"use strict";var n=r(95882),i=r(48011).Wl,o=r(10485),s=r(92330),{Subject:A}=r(86596);e.exports=class extends o{_run(e){this.done=e,this.editorResult=new A;var t=s(this.rl);this.lineSubscription=t.line.subscribe(this.startExternalEditor.bind(this));var r=this.handleSubmitEvents(this.editorResult);return r.success.forEach(this.onEnd.bind(this)),r.error.forEach(this.onError.bind(this)),this.currentText=this.opt.default,this.opt.default=null,this.render(),this}render(e){var t="",r=this.getQuestion();"answered"===this.status?r+=n.dim("Received"):r+=n.dim("Press <enter> to launch your preferred editor."),e&&(t=n.red(">> ")+e),this.screen.render(r,t)}startExternalEditor(){this.rl.pause(),i(this.currentText,this.endExternalEditor.bind(this))}endExternalEditor(e,t){this.rl.resume(),e?this.editorResult.error(e):this.editorResult.next(t)}onEnd(e){this.editorResult.unsubscribe(),this.lineSubscription.unsubscribe(),this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(this.answer)}onError(e){this.render(e.isValid)}}},73870:(e,t,r)=>{"use strict";var n={uniq:r(44852),isString:r(221),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.validateChoices(this.opt.choices),this.opt.choices.push({key:"h",name:"Help, list all options",value:"help"}),this.opt.validate=e=>null==e?"Please enter a valid command":"help"!==e,this.opt.default=this.generateChoicesString(this.opt.choices,this.opt.default),this.paginator=new u(this.screen)}_run(e){this.done=e;var t=c(this.rl),r=this.handleSubmitEvents(t.line.pipe(o(this.getCurrentValue.bind(this))));return r.success.forEach(this.onSubmit.bind(this)),r.error.forEach(this.onError.bind(this)),this.keypressObs=t.keypress.pipe(s(r.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e,t){var r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else if("expanded"===this.status){var a=(r=this.opt.choices,n=this.selectedKey,o="",r.forEach(e=>{if(o+="\n  ","separator"!==e.type){var t=e.key+") "+e.name;n===e.key&&(t=i.cyan(t)),o+=t}else o+=" "+e}),o);s+=this.paginator.paginate(a,this.selectedKey,this.opt.pageSize),s+="\n  Answer: "}s+=this.rl.line,e&&(A=i.red(">> ")+e),t&&(A=i.cyan(">> ")+t),this.screen.render(s,A)}getCurrentValue(e){e||(e=this.rawDefault);var t=this.opt.choices.where({key:e.toLowerCase().trim()})[0];return t?t.value:null}getChoices(){var e="";return this.opt.choices.forEach(t=>{if(e+="\n  ","separator"!==t.type){var r=t.key+") "+t.name;this.selectedKey===t.key&&(r=i.cyan(r)),e+=r}else e+=" "+t}),e}onError(e){if("help"===e.value)return this.selectedKey="",this.status="expanded",void this.render();this.render(e.isValid)}onSubmit(e){this.status="answered";var t=this.opt.choices.where({value:e.value})[0];this.answer=t.short||t.name,this.render(),this.screen.done(),this.done(e.value)}onKeypress(){this.selectedKey=this.rl.line.toLowerCase();var e=this.opt.choices.where({key:this.selectedKey})[0];"expanded"===this.status?this.render():this.render(null,e?e.name:null)}validateChoices(e){var t,r=[],i={};if(e.filter(a.exclude).forEach(e=>{e.key&&1===e.key.length||(t=!0),i[e.key]&&r.push(e.key),i[e.key]=!0,e.key=String(e.key).toLowerCase()}),t)throw new Error("Format error: `key` param must be a single letter and is required.");if(i.h)throw new Error("Reserved key error: `key` param cannot be `h` - this value is reserved.");if(r.length)throw new Error("Duplicate key error: `key` param must be unique. Duplicates: "+n.uniq(r).join(", "))}generateChoicesString(e,t){var r=e.realLength-1;if(n.isNumber(t)&&this.opt.choices.getChoice(t))r=t;else if(n.isString(t)){let i=n.findIndex(e.realChoices,({value:e})=>e===t);r=-1===i?r:i}var i=this.opt.choices.pluck("key");return this.rawDefault=i[r],i[r]=String(i[r]).toUpperCase(),i.join("")}}},90013:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t="",r="",i=this.getQuestion(),o=this.opt.transformer,s="answered"===this.status;r=s?this.answer:this.rl.line,i+=o?o(r,this.answers,{isFinal:s}):s?n.cyan(r):r,e&&(t=n.red(">> ")+e),this.screen.render(i,t)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.answer=e.value,this.status="answered",this.render(),this.screen.done(),this.done(e.value)}onError({value:e="",isValid:t}){this.rl.line+=e,this.rl.cursor+=e.length,this.render(t)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},89336:(e,t,r)=>{"use strict";var n={isNumber:r(71044),findIndex:r(17506),isString:r(221)},i=r(95882),o=r(51938),s=r(61696),A=r(28855),{flatMap:a,map:c,take:u,takeUntil:l}=r(20683),h=r(10485),g=r(92330),f=r(78635);e.exports=class extends h{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.firstRender=!0,this.selected=0;var i=this.opt.default;if(n.isNumber(i)&&i>=0&&i<this.opt.choices.realLength)this.selected=i;else if(!n.isNumber(i)&&null!=i){let e=n.findIndex(this.opt.choices.realChoices,({value:e})=>e===i);this.selected=Math.max(e,0)}this.opt.default=null,this.paginator=new f(this.screen)}_run(e){this.done=e;var t=this,r=g(this.rl);return r.normalizedUpKey.pipe(l(r.line)).forEach(this.onUpKey.bind(this)),r.normalizedDownKey.pipe(l(r.line)).forEach(this.onDownKey.bind(this)),r.numberKey.pipe(l(r.line)).forEach(this.onNumberKey.bind(this)),r.line.pipe(u(1),c(this.getCurrentValue.bind(this)),a(e=>A(t.opt.filter)(e).catch(e=>e))).forEach(this.onSubmit.bind(this)),s.hide(),this.render(),this}render(){var e,t,r,s,A=this.getQuestion();if(this.firstRender&&(A+=i.dim("(Use arrow keys)")),"answered"===this.status)A+=i.cyan(this.opt.choices.getChoice(this.selected).short);else{var a=(e=this.opt.choices,t=this.selected,r="",s=0,e.forEach((e,A)=>{if("separator"===e.type)return s++,void(r+="  "+e+"\n");if(e.disabled)return s++,r+="  - "+e.name,r+=" ("+(n.isString(e.disabled)?e.disabled:"Disabled")+")",void(r+="\n");var a=A-s===t,c=(a?o.pointer+" ":"  ")+e.name;a&&(c=i.cyan(c)),r+=c+" \n"}),r.replace(/\n$/,"")),c=this.opt.choices.indexOf(this.opt.choices.getChoice(this.selected));A+="\n"+this.paginator.paginate(a,c,this.opt.pageSize)}this.firstRender=!1,this.screen.render(A)}onSubmit(e){this.status="answered",this.render(),this.screen.done(),s.show(),this.done(e)}getCurrentValue(){return this.opt.choices.getChoice(this.selected).value}onUpKey(){var e=this.opt.choices.realLength;this.selected=this.selected>0?this.selected-1:e-1,this.render()}onDownKey(){var e=this.opt.choices.realLength;this.selected=this.selected<e-1?this.selected+1:0,this.render()}onNumberKey(e){e<=this.opt.choices.realLength&&(this.selected=e-1),this.render()}}},90307:(e,t,r)=>{"use strict";var n=r(90013);e.exports=class extends n{filterInput(e){if(e&&"string"==typeof e){let t=(e=e.trim()).match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);if(t)return Number(t[0])}return null==this.opt.default?NaN:this.opt.default}}},30428:(e,t,r)=>{"use strict";var n=r(95882),{map:i,takeUntil:o}=r(20683),s=r(10485),A=r(92330);function a(e,t){return t="string"==typeof t?t:"*",0===(e=String(e)).length?"":new Array(e.length+1).join(t)}e.exports=class extends s{_run(e){this.done=e;var t=A(this.rl),r=t.line.pipe(i(this.filterInput.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.keypress.pipe(o(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t=this.getQuestion(),r="";"answered"===this.status?t+=this.opt.mask?n.cyan(a(this.answer,this.opt.mask)):n.italic.dim("[hidden]"):this.opt.mask?t+=a(this.rl.line||"",this.opt.mask):t+=n.italic.dim("[input is hidden] "),e&&(r="\n"+n.red(">> ")+e),this.screen.render(t,r)}filterInput(e){return e||(null==this.opt.default?"":this.opt.default)}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(e){this.render(e.isValid)}onKeypress(){this.opt.default&&(this.opt.default=void 0),this.render()}}},942:(e,t,r)=>{"use strict";var n={extend:r(94501),isNumber:r(71044),findIndex:r(17506)},i=r(95882),{map:o,takeUntil:s}=r(20683),A=r(10485),a=r(88249),c=r(92330),u=r(78635);e.exports=class extends A{constructor(e,t,r){super(e,t,r),this.opt.choices||this.throwParamError("choices"),this.opt.validChoices=this.opt.choices.filter(a.exclude),this.selected=0,this.rawDefault=0,n.extend(this.opt,{validate:function(e){return null!=e}});var i=this.opt.default;if(n.isNumber(i)&&i>=0&&i<this.opt.choices.realLength)this.selected=i,this.rawDefault=i;else if(!n.isNumber(i)&&null!=i){let e=n.findIndex(this.opt.choices.realChoices,({value:e})=>e===i),t=Math.max(e,0);this.selected=t,this.rawDefault=t}this.opt.default=null,this.paginator=new u}_run(e){this.done=e;var t=c(this.rl),r=t.line.pipe(o(this.getCurrentValue.bind(this))),n=this.handleSubmitEvents(r);return n.success.forEach(this.onEnd.bind(this)),n.error.forEach(this.onError.bind(this)),t.normalizedUpKey.pipe(s(t.line)).forEach(this.onUpKey.bind(this)),t.normalizedDownKey.pipe(s(t.line)).forEach(this.onDownKey.bind(this)),t.keypress.pipe(s(n.success)).forEach(this.onKeypress.bind(this)),this.render(),this}render(e){var t,r,n,o,s=this.getQuestion(),A="";if("answered"===this.status)s+=i.cyan(this.answer);else{var a=(t=this.opt.choices,r=this.selected,n="",o=0,t.forEach((function(e,t){if(n+="\n  ","separator"===e.type)return o++,void(n+=" "+e);var s=t-o,A=s+1+") "+e.name;s===r&&(A=i.cyan(A)),n+=A})),n);s+="\n"+this.paginator.paginate(a,this.selected,this.opt.pageSize),s+="\n  Answer: "}s+=this.rl.line,e&&(A="\n"+i.red(">> ")+e),this.screen.render(s,A)}getCurrentValue(e){null==e?e=this.rawDefault:""===e?e=this.selected:e-=1;var t=this.opt.choices.getChoice(e);return t?t.value:null}onEnd(e){this.status="answered",this.answer=e.value,this.render(),this.screen.done(),this.done(e.value)}onError(){this.render("Please enter a valid index")}onKeypress(){var e=this.rl.line.length?Number(this.rl.line)-1:0;this.opt.choices.getChoice(e)?this.selected=e:this.selected=void 0,this.render()}onUpKey(){this.onArrowKey("up")}onDownKey(){this.onArrowKey("down")}onArrowKey(e){var t=this.opt.choices.realLength;this.selected="up"===e?this.selected>0?this.selected-1:t-1:this.selected<t-1?this.selected+1:0,this.rl.line=String(this.selected+1)}}},89127:(e,t,r)=>{"use strict";var n={extend:r(94501),omit:r(82740)},i=r(75319),o=r(51058);e.exports=class{constructor(e){this.rl||(this.rl=o.createInterface(function(e){(e=e||{}).skipTTYChecks=void 0===e.skipTTYChecks||e.skipTTYChecks;var t=e.input||process.stdin;if(!e.skipTTYChecks&&!t.isTTY){const e=new Error("Prompts can not be meaningfully rendered in non-TTY environments");throw e.isTtyError=!0,e}var r=new i;r.pipe(e.output||process.stdout);var o=r;return n.extend({terminal:!0,input:t,output:o},n.omit(e,["input","output"]))}(e))),this.rl.resume(),this.onForceClose=this.onForceClose.bind(this),process.on("exit",this.onForceClose),this.rl.on("SIGINT",this.onForceClose)}onForceClose(){this.close(),process.kill(process.pid,"SIGINT"),console.log("")}close(){this.rl.removeListener("SIGINT",this.onForceClose),process.removeListener("exit",this.onForceClose),this.rl.output.unmute(),this.activePrompt&&"function"==typeof this.activePrompt.close&&this.activePrompt.close(),this.rl.output.end(),this.rl.pause(),this.rl.close()}}},36896:(e,t,r)=>{"use strict";var n=r(94864),i=r(89127),o=r(4446),s={last:r(49845)};e.exports=class extends i{constructor(e){super(e=e||{}),this.log=n(this.writeLog.bind(this)),this.bottomBar=e.bottomBar||"",this.render()}render(){return this.write(this.bottomBar),this}clean(){return o.clearLine(this.rl,this.bottomBar.split("\n").length),this}updateBottomBar(e){return o.clearLine(this.rl,1),this.rl.output.unmute(),this.clean(),this.bottomBar=e,this.render(),this.rl.output.mute(),this}writeLog(e){return this.rl.output.unmute(),this.clean(),this.rl.output.write(this.enforceLF(e.toString())),this.render(),this.rl.output.mute(),this}enforceLF(e){return e.match(/[\r\n]$/)?e:e+"\n"}write(e){var t=e.split(/\n/);this.height=t.length,this.rl.setPrompt(s.last(t)),0===this.rl.output.rows&&0===this.rl.output.columns&&o.left(this.rl,e.length+this.rl.line.length),this.rl.output.write(e)}}},87380:(e,t,r)=>{"use strict";var n={isPlainObject:r(11672),clone:r(22254),isArray:r(82664),set:r(81534),isFunction:r(92533)},{defer:i,empty:o,from:s,of:A}=r(86596),{concatMap:a,filter:c,publish:u,reduce:l}=r(20683),h=r(28855),g=r(74941),f=r(89127);e.exports=class extends f{constructor(e,t){super(t),this.prompts=e}run(e,t){n.isPlainObject(t)?this.answers=n.clone(t):this.answers={},n.isPlainObject(e)&&(e=[e]);var r=n.isArray(e)?s(e):e;return this.process=r.pipe(a(this.processQuestion.bind(this)),u()),this.process.connect(),this.process.pipe(l((e,t)=>(n.set(e,t.name,t.answer),e),this.answers)).toPromise(Promise).then(this.onCompletion.bind(this))}onCompletion(){return this.close(),this.answers}processQuestion(e){return e=n.clone(e),i(()=>A(e).pipe(a(this.setDefaultType.bind(this)),a(this.filterIfRunnable.bind(this)),a(()=>g.fetchAsyncQuestionProperty(e,"message",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"default",this.answers)),a(()=>g.fetchAsyncQuestionProperty(e,"choices",this.answers)),a(this.fetchAnswer.bind(this))))}fetchAnswer(e){var t=this.prompts[e.type];return this.activePrompt=new t(e,this.rl,this.answers),i(()=>s(this.activePrompt.run().then(t=>({name:e.name,answer:t}))))}setDefaultType(e){return this.prompts[e.type]||(e.type="input"),i(()=>A(e))}filterIfRunnable(e){if(!0!==e.askAnswered&&void 0!==this.answers[e.name])return o();if(!1===e.when)return o();if(!n.isFunction(e.when))return A(e);var t=this.answers;return i(()=>s(h(e.when)(t).then(t=>{if(t)return e})).pipe(c(e=>null!=e)))}}},92330:(e,t,r)=>{"use strict";var{fromEvent:n}=r(86596),{filter:i,map:o,share:s,takeUntil:A}=r(20683);function a(e,t){return{value:e,key:t||{}}}e.exports=function(e){var t=n(e.input,"keypress",a).pipe(A(n(e,"close"))).pipe(i(({key:e})=>"enter"!==e.name&&"return"!==e.name));return{line:n(e,"line"),keypress:t,normalizedUpKey:t.pipe(i(({key:e})=>"up"===e.name||"k"===e.name||"p"===e.name&&e.ctrl),s()),normalizedDownKey:t.pipe(i(({key:e})=>"down"===e.name||"j"===e.name||"n"===e.name&&e.ctrl),s()),numberKey:t.pipe(i(e=>e.value&&"123456789".indexOf(e.value)>=0),o(e=>Number(e.value)),s()),spaceKey:t.pipe(i(({key:e})=>e&&"space"===e.name),s()),aKey:t.pipe(i(({key:e})=>e&&"a"===e.name),s()),iKey:t.pipe(i(({key:e})=>e&&"i"===e.name),s())}}},78635:(e,t,r)=>{"use strict";var n={sum:r(2614),flatten:r(54690)},i=r(95882);e.exports=class{constructor(e){this.pointer=0,this.lastIndex=0,this.screen=e}paginate(e,t,r){r=r||7;var o=Math.floor(r/2),s=e.split("\n");if(this.screen&&(s=this.screen.breakLines(s),t=n.sum(s.map(e=>e.length).splice(0,t)),s=n.flatten(s)),s.length<=r)return e;this.pointer<o&&this.lastIndex<t&&t-this.lastIndex<r&&(this.pointer=Math.min(o,this.pointer+t-this.lastIndex)),this.lastIndex=t;var A=n.flatten([s,s,s]),a=Math.max(0,t+s.length-this.pointer);return A.splice(a,r).join("\n")+"\n"+i.dim("(Move up and down to reveal more choices)")}}},4446:(e,t,r)=>{"use strict";var n=r(27589);t.left=function(e,t){e.output.write(n.cursorBackward(t))},t.right=function(e,t){e.output.write(n.cursorForward(t))},t.up=function(e,t){e.output.write(n.cursorUp(t))},t.down=function(e,t){e.output.write(n.cursorDown(t))},t.clearLine=function(e,t){e.output.write(n.eraseLines(t))}},32542:(e,t,r)=>{"use strict";var n={last:r(49845),flatten:r(54690)},i=r(4446),o=r(17945),s=r(7915),A=r(55043);function a(e){return e.split("\n").length}function c(e){return n.last(e.split("\n"))}e.exports=class{constructor(e){this.height=0,this.extraLinesUnderPrompt=0,this.rl=e}render(e,t){this.rl.output.unmute(),this.clean(this.extraLinesUnderPrompt);var r=c(e),n=s(r),o=n;this.rl.line.length&&(o=o.slice(0,-this.rl.line.length)),this.rl.setPrompt(o);var u=this.rl._getCursorPos(),l=this.normalizedCliWidth();e=this.forceLineReturn(e,l),t&&(t=this.forceLineReturn(t,l)),n.length%l==0&&(e+="\n");var h=e+(t?"\n"+t:"");this.rl.output.write(h);var g=Math.floor(n.length/l)-u.rows+(t?a(t):0);g>0&&i.up(this.rl,g),i.left(this.rl,A(c(h))),u.cols>0&&i.right(this.rl,u.cols),this.extraLinesUnderPrompt=g,this.height=a(h),this.rl.output.mute()}clean(e){e>0&&i.down(this.rl,e),i.clearLine(this.rl,this.height)}done(){this.rl.setPrompt(""),this.rl.output.unmute(),this.rl.output.write("\n")}releaseCursor(){this.extraLinesUnderPrompt>0&&i.down(this.rl,this.extraLinesUnderPrompt)}normalizedCliWidth(){return o({defaultWidth:80,output:this.rl.output})}breakLines(e,t){t=t||this.normalizedCliWidth();var r=new RegExp("(?:(?:\\033[[0-9;]*m)*.?){1,"+t+"}","g");return e.map(e=>{var t=e.match(r);return t.pop(),t||""})}forceLineReturn(e,t){return t=t||this.normalizedCliWidth(),n.flatten(this.breakLines(e.split("\n"),t)).join("\n")}}},74941:(e,t,r)=>{"use strict";var n={isFunction:r(92533)},{from:i,of:o}=r(86596),s=r(28855);t.fetchAsyncQuestionProperty=function(e,t,r){return n.isFunction(e[t])?i(s(e[t])(r).then(r=>(e[t]=r,e))):o(e)}},44486:e=>{
-/*!
- * is-extglob <https://github.com/jonschlinkert/is-extglob>
- *
- * Copyright (c) 2014-2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-e.exports=function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}},7347:e=>{"use strict";const t=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));e.exports=t,e.exports.default=t},18193:(e,t,r)=>{
-/*!
- * is-glob <https://github.com/jonschlinkert/is-glob>
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-var n=r(44486),i={"{":"}","(":")","[":"]"},o=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,s=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;e.exports=function(e,t){if("string"!=typeof e||""===e)return!1;if(n(e))return!0;var r,A=o;for(t&&!1===t.strict&&(A=s);r=A.exec(e);){if(r[2])return!0;var a=r.index+r[0].length,c=r[1],u=c?i[c]:null;if(c&&u){var l=e.indexOf(u,a);-1!==l&&(a=l+1)}e=e.slice(a)}return!1}},59235:e=>{"use strict";
-/*!
- * is-number <https://github.com/jonschlinkert/is-number>
- *
- * Copyright (c) 2014-present, Jon Schlinkert.
- * Released under the MIT License.
- */e.exports=function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(Number.isFinite?Number.isFinite(+e):isFinite(+e))}},61047:e=>{e.exports=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}},97369:(e,t)=>{var r,n,i,o;
-/*!
- * is-windows <https://github.com/jonschlinkert/is-windows>
- *
- * Copyright © 2015-2018, Jon Schlinkert.
- * Released under the MIT License.
- */o=function(){"use strict";return function(){return process&&("win32"===process.platform||/^(msys|cygwin)$/.test(process.env.OSTYPE))}},t&&"object"==typeof t?e.exports=o():(n=[],void 0===(i="function"==typeof(r=o)?r.apply(t,n):r)||(e.exports=i))},64151:(e,t,r)=>{var n;r(35747);function i(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw new TypeError("callback not provided");return new Promise((function(r,n){i(e,t||{},(function(e,t){e?n(e):r(t)}))}))}n(e,t||{},(function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n)}))}n="win32"===process.platform||global.TESTING_WINDOWS?r(3202):r(2151),e.exports=i,i.sync=function(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||"EACCES"===e.code)return!1;throw e}}},2151:(e,t,r)=>{e.exports=i,i.sync=function(e,t){return o(n.statSync(e),t)};var n=r(35747);function i(e,t,r){n.stat(e,(function(e,n){r(e,!e&&o(n,t))}))}function o(e,t){return e.isFile()&&function(e,t){var r=e.mode,n=e.uid,i=e.gid,o=void 0!==t.uid?t.uid:process.getuid&&process.getuid(),s=void 0!==t.gid?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),a=parseInt("010",8),c=parseInt("001",8),u=A|a;return r&c||r&a&&i===s||r&A&&n===o||r&u&&0===o}(e,t)}},3202:(e,t,r)=>{e.exports=o,o.sync=function(e,t){return i(n.statSync(e),e,t)};var n=r(35747);function i(e,t,r){return!(!e.isSymbolicLink()&&!e.isFile())&&function(e,t){var r=void 0!==t.pathExt?t.pathExt:process.env.PATHEXT;if(!r)return!0;if(-1!==(r=r.split(";")).indexOf(""))return!0;for(var n=0;n<r.length;n++){var i=r[n].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}(t,r)}function o(e,t,r){n.stat(e,(function(n,o){r(n,!n&&i(o,e,t))}))}},21194:(e,t,r)=>{"use strict";var n=r(40744);e.exports=n},40744:(e,t,r)=>{"use strict";var n=r(55384),i=r(24129);function o(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=r(81704),e.exports.Schema=r(8212),e.exports.FAILSAFE_SCHEMA=r(44413),e.exports.JSON_SCHEMA=r(45247),e.exports.CORE_SCHEMA=r(8769),e.exports.DEFAULT_SAFE_SCHEMA=r(65483),e.exports.DEFAULT_FULL_SCHEMA=r(5235),e.exports.load=n.load,e.exports.loadAll=n.loadAll,e.exports.safeLoad=n.safeLoad,e.exports.safeLoadAll=n.safeLoadAll,e.exports.dump=i.dump,e.exports.safeDump=i.safeDump,e.exports.YAMLException=r(17345),e.exports.MINIMAL_SCHEMA=r(44413),e.exports.SAFE_SCHEMA=r(65483),e.exports.DEFAULT_SCHEMA=r(5235),e.exports.scan=o("scan"),e.exports.parse=o("parse"),e.exports.compose=o("compose"),e.exports.addConstructor=o("addConstructor")},28149:e=>{"use strict";function t(e){return null==e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r,n="";for(r=0;r<t;r+=1)n+=e;return n},e.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},e.exports.extend=function(e,t){var r,n,i,o;if(t)for(r=0,n=(o=Object.keys(t)).length;r<n;r+=1)e[i=o[r]]=t[i];return e}},24129:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(5235),s=r(65483),A=Object.prototype.toString,a=Object.prototype.hasOwnProperty,c={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},u=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function l(e){var t,r,o;if(t=e.toString(16).toUpperCase(),e<=255)r="x",o=2;else if(e<=65535)r="u",o=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");r="U",o=8}return"\\"+r+n.repeat("0",o-t.length)+t}function h(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=n.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var r,n,i,o,s,A,c;if(null===t)return{};for(r={},i=0,o=(n=Object.keys(t)).length;i<o;i+=1)s=n[i],A=String(t[s]),"!!"===s.slice(0,2)&&(s="tag:yaml.org,2002:"+s.slice(2)),(c=e.compiledTypeMap.fallback[s])&&a.call(c.styleAliases,A)&&(A=c.styleAliases[A]),r[s]=A;return r}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function g(e,t){for(var r,i=n.repeat(" ",t),o=0,s=-1,A="",a=e.length;o<a;)-1===(s=e.indexOf("\n",o))?(r=e.slice(o),o=a):(r=e.slice(o,s+1),o=s+1),r.length&&"\n"!==r&&(A+=i),A+=r;return A}function f(e,t){return"\n"+n.repeat(" ",e.indent*t)}function p(e){return 32===e||9===e}function d(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function C(e){return d(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&35!==e}function E(e){return/^\n* /.test(e)}function I(e,t,r,n,i){var o,s,A,a=!1,c=!1,u=-1!==n,l=-1,h=d(A=e.charCodeAt(0))&&65279!==A&&!p(A)&&45!==A&&63!==A&&58!==A&&44!==A&&91!==A&&93!==A&&123!==A&&125!==A&&35!==A&&38!==A&&42!==A&&33!==A&&124!==A&&62!==A&&39!==A&&34!==A&&37!==A&&64!==A&&96!==A&&!p(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!d(s=e.charCodeAt(o)))return 5;h=h&&C(s)}else{for(o=0;o<e.length;o++){if(10===(s=e.charCodeAt(o)))a=!0,u&&(c=c||o-l-1>n&&" "!==e[l+1],l=o);else if(!d(s))return 5;h=h&&C(s)}c=c||u&&o-l-1>n&&" "!==e[l+1]}return a||c?r>9&&E(e)?5:c?4:3:h&&!i(e)?1:2}function m(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==u.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,r),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),A=n||e.flowLevel>-1&&r>=e.flowLevel;switch(I(t,A,e.indent,s,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r<n;r+=1)if(e.implicitTypes[r].resolve(t))return!0;return!1}(e,t)}))){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+y(t,e.indent)+w(g(t,o));case 4:return">"+y(t,e.indent)+w(g(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(A=e.indexOf("\n"),A=-1!==A?A:e.length,i.lastIndex=A,B(e.slice(0,A),t)),s="\n"===e[0]||" "===e[0];var A;for(;n=i.exec(e);){var a=n[1],c=n[2];r=" "===c[0],o+=a+(s||r||""===c?"":"\n")+B(c,t),s=r}return o}(t,s),o));case 5:return'"'+function(e){for(var t,r,n,i="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(r=e.charCodeAt(o+1))>=56320&&r<=57343?(i+=l(1024*(t-55296)+r-56320+65536),o++):(n=c[t],i+=!n&&d(t)?e[o]:n||l(t));return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function y(e,t){var r=E(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function w(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function B(e,t){if(""===e||" "===e[0])return e;for(var r,n,i=/ [^ ]/g,o=0,s=0,A=0,a="";r=i.exec(e);)(A=r.index)-o>t&&(n=s>o?s:A,a+="\n"+e.slice(o,n),o=n+1),s=A;return a+="\n",e.length-o>t&&s>o?a+=e.slice(o,s)+"\n"+e.slice(s+1):a+=e.slice(o),a.slice(1)}function Q(e,t,r){var n,o,s,c,u,l;for(s=0,c=(o=r?e.explicitTypes:e.implicitTypes).length;s<c;s+=1)if(((u=o[s]).instanceOf||u.predicate)&&(!u.instanceOf||"object"==typeof t&&t instanceof u.instanceOf)&&(!u.predicate||u.predicate(t))){if(e.tag=r?u.tag:"?",u.represent){if(l=e.styleMap[u.tag]||u.defaultStyle,"[object Function]"===A.call(u.represent))n=u.represent(t,l);else{if(!a.call(u.represent,l))throw new i("!<"+u.tag+'> tag resolver accepts not "'+l+'" style');n=u.represent[l](t,l)}e.dump=n}return!0}return!1}function v(e,t,r,n,o,s){e.tag=null,e.dump=r,Q(e,r,!1)||Q(e,r,!0);var a=A.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var c,u,l="[object Object]"===a||"[object Array]"===a;if(l&&(u=-1!==(c=e.duplicates.indexOf(r))),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(o=!1),u&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(l&&u&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,r,n){var o,s,A,a,c,u,l="",h=e.tag,g=Object.keys(r);if(!0===e.sortKeys)g.sort();else if("function"==typeof e.sortKeys)g.sort(e.sortKeys);else if(e.sortKeys)throw new i("sortKeys must be a boolean or a function");for(o=0,s=g.length;o<s;o+=1)u="",n&&0===o||(u+=f(e,t)),a=r[A=g[o]],v(e,t+1,A,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,c&&(u+=f(e,t)),v(e,t+1,a,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",l+=u+=e.dump));e.tag=h,e.dump=l||"{}"}(e,t,e.dump,o),u&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o,s,A,a="",c=e.tag,u=Object.keys(r);for(n=0,i=u.length;n<i;n+=1)A=e.condenseFlow?'"':"",0!==n&&(A+=", "),s=r[o=u[n]],v(e,t,o,!1,!1)&&(e.dump.length>1024&&(A+="? "),A+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),v(e,t,s,!1,!1)&&(a+=A+=e.dump));e.tag=c,e.dump="{"+a+"}"}(e,t,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===a){var h=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,r,n){var i,o,s="",A=e.tag;for(i=0,o=r.length;i<o;i+=1)v(e,t+1,r[i],!0,!0)&&(n&&0===i||(s+=f(e,t)),e.dump&&10===e.dump.charCodeAt(0)?s+="-":s+="- ",s+=e.dump);e.tag=A,e.dump=s||"[]"}(e,h,e.dump,o),u&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,r){var n,i,o="",s=e.tag;for(n=0,i=r.length;n<i;n+=1)v(e,t,r[n],!1,!1)&&(0!==n&&(o+=","+(e.condenseFlow?"":" ")),o+=e.dump);e.tag=s,e.dump="["+o+"]"}(e,h,e.dump),u&&(e.dump="&ref_"+c+" "+e.dump))}else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new i("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&m(e,e.dump,t,s)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function D(e,t){var r,n,i=[],o=[];for(function e(t,r,n){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=r.indexOf(t)))-1===n.indexOf(o)&&n.push(o);else if(r.push(t),Array.isArray(t))for(o=0,s=t.length;o<s;o+=1)e(t[o],r,n);else for(i=Object.keys(t),o=0,s=i.length;o<s;o+=1)e(t[i[o]],r,n)}(e,i,o),r=0,n=o.length;r<n;r+=1)t.duplicates.push(i[o[r]]);t.usedDuplicates=new Array(n)}function b(e,t){var r=new h(t=t||{});return r.noRefs||D(e,r),v(r,0,e,!0,!0)?r.dump+"\n":""}e.exports.dump=b,e.exports.safeDump=function(e,t){return b(e,n.extend({schema:s},t))}},17345:e=>{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},55384:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(30399),s=r(65483),A=r(5235),a=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[\x85\u2028\u2029]/,l=/[,\[\]\{\}]/,h=/^(?:!|!!|![a-z\-]+!)$/i,g=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function f(e){return 10===e||13===e}function p(e){return 9===e||32===e}function d(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function E(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function I(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function m(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var y=new Array(256),w=new Array(256),B=0;B<256;B++)y[B]=I(B)?1:0,w[B]=I(B);function Q(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||A,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function v(e,t){return new i(t,new o(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function D(e,t){throw v(e,t)}function b(e,t){e.onWarning&&e.onWarning.call(null,v(e,t))}var S={YAML:function(e,t,r){var n,i,o;null!==e.version&&D(e,"duplication of %YAML directive"),1!==r.length&&D(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&D(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&D(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&b(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&D(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],h.test(n)||D(e,"ill-formed tag handle (first argument) of the TAG directive"),a.call(e.tagMap,n)&&D(e,'there is a previously declared suffix for "'+n+'" tag handle'),g.test(i)||D(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function k(e,t,r,n){var i,o,s,A;if(t<r){if(A=e.input.slice(t,r),n)for(i=0,o=A.length;i<o;i+=1)9===(s=A.charCodeAt(i))||32<=s&&s<=1114111||D(e,"expected valid JSON character");else c.test(A)&&D(e,"the stream contains non-printable characters");e.result+=A}}function x(e,t,r,i){var o,s,A,c;for(n.isObject(r)||D(e,"cannot merge mappings; the provided source object is unacceptable"),A=0,c=(o=Object.keys(r)).length;A<c;A+=1)s=o[A],a.call(t,s)||(t[s]=r[s],i[s]=!0)}function F(e,t,r,n,i,o,s,A){var c,u;if(i=String(i),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(o))for(c=0,u=o.length;c<u;c+=1)x(e,t,o[c],r);else x(e,t,o,r);else e.json||a.call(r,i)||!a.call(t,i)||(e.line=s||e.line,e.position=A||e.position,D(e,"duplicated mapping key")),t[i]=o,delete r[i];return t}function M(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):D(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function N(e,t,r){for(var n=0,i=e.input.charCodeAt(e.position);0!==i;){for(;p(i);)i=e.input.charCodeAt(++e.position);if(t&&35===i)do{i=e.input.charCodeAt(++e.position)}while(10!==i&&13!==i&&0!==i);if(!f(i))break;for(M(e),i=e.input.charCodeAt(e.position),n++,e.lineIndent=0;32===i;)e.lineIndent++,i=e.input.charCodeAt(++e.position)}return-1!==r&&0!==n&&e.lineIndent<r&&b(e,"deficient indentation"),n}function R(e){var t,r=e.position;return!(45!==(t=e.input.charCodeAt(r))&&46!==t||t!==e.input.charCodeAt(r+1)||t!==e.input.charCodeAt(r+2)||(r+=3,0!==(t=e.input.charCodeAt(r))&&!d(t)))}function K(e,t){1===t?e.result+=" ":t>1&&(e.result+=n.repeat("\n",t-1))}function L(e,t){var r,n,i=e.tag,o=e.anchor,s=[],A=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=s),n=e.input.charCodeAt(e.position);0!==n&&45===n&&d(e.input.charCodeAt(e.position+1));)if(A=!0,e.position++,N(e,!0,-1)&&e.lineIndent<=t)s.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,U(e,t,3,!1,!0),s.push(e.result),N(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)D(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!A&&(e.tag=i,e.anchor=o,e.kind="sequence",e.result=s,!0)}function T(e){var t,r,n,i,o=!1,s=!1;if(33!==(i=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&D(e,"duplication of a tag property"),60===(i=e.input.charCodeAt(++e.position))?(o=!0,i=e.input.charCodeAt(++e.position)):33===i?(s=!0,r="!!",i=e.input.charCodeAt(++e.position)):r="!",t=e.position,o){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&62!==i);e.position<e.length?(n=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):D(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==i&&!d(i);)33===i&&(s?D(e,"tag suffix cannot contain exclamation marks"):(r=e.input.slice(t-1,e.position+1),h.test(r)||D(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);n=e.input.slice(t,e.position),l.test(n)&&D(e,"tag suffix cannot contain flow indicator characters")}return n&&!g.test(n)&&D(e,"tag name cannot contain such characters: "+n),o?e.tag=n:a.call(e.tagMap,r)?e.tag=e.tagMap[r]+n:"!"===r?e.tag="!"+n:"!!"===r?e.tag="tag:yaml.org,2002:"+n:D(e,'undeclared tag handle "'+r+'"'),!0}function P(e){var t,r;if(38!==(r=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&D(e,"duplication of an anchor property"),r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!d(r)&&!C(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&D(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function U(e,t,r,i,o){var s,A,c,u,l,h,g,I,B=1,Q=!1,v=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,s=A=c=4===r||3===r,i&&N(e,!0,-1)&&(Q=!0,e.lineIndent>t?B=1:e.lineIndent===t?B=0:e.lineIndent<t&&(B=-1)),1===B)for(;T(e)||P(e);)N(e,!0,-1)?(Q=!0,c=s,e.lineIndent>t?B=1:e.lineIndent===t?B=0:e.lineIndent<t&&(B=-1)):c=!1;if(c&&(c=Q||o),1!==B&&4!==r||(g=1===r||2===r?t:t+1,I=e.position-e.lineStart,1===B?c&&(L(e,I)||function(e,t,r){var n,i,o,s,A,a=e.tag,c=e.anchor,u={},l={},h=null,g=null,f=null,C=!1,E=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),A=e.input.charCodeAt(e.position);0!==A;){if(n=e.input.charCodeAt(e.position+1),o=e.line,s=e.position,63!==A&&58!==A||!d(n)){if(!U(e,r,2,!1,!0))break;if(e.line===o){for(A=e.input.charCodeAt(e.position);p(A);)A=e.input.charCodeAt(++e.position);if(58===A)d(A=e.input.charCodeAt(++e.position))||D(e,"a whitespace character is expected after the key-value separator within a block mapping"),C&&(F(e,u,l,h,g,null),h=g=f=null),E=!0,C=!1,i=!1,h=e.tag,g=e.result;else{if(!E)return e.tag=a,e.anchor=c,!0;D(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!E)return e.tag=a,e.anchor=c,!0;D(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===A?(C&&(F(e,u,l,h,g,null),h=g=f=null),E=!0,C=!0,i=!0):C?(C=!1,i=!0):D(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,A=n;if((e.line===o||e.lineIndent>t)&&(U(e,t,4,!0,i)&&(C?g=e.result:f=e.result),C||(F(e,u,l,h,g,f,o,s),h=g=f=null),N(e,!0,-1),A=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==A)D(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return C&&F(e,u,l,h,g,null),E&&(e.tag=a,e.anchor=c,e.kind="mapping",e.result=u),E}(e,I,g))||function(e,t){var r,n,i,o,s,A,a,c,u,l,h=!0,g=e.tag,f=e.anchor,p={};if(91===(l=e.input.charCodeAt(e.position)))i=93,A=!1,n=[];else{if(123!==l)return!1;i=125,A=!0,n={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=n),l=e.input.charCodeAt(++e.position);0!==l;){if(N(e,!0,t),(l=e.input.charCodeAt(e.position))===i)return e.position++,e.tag=g,e.anchor=f,e.kind=A?"mapping":"sequence",e.result=n,!0;h||D(e,"missed comma between flow collection entries"),u=null,o=s=!1,63===l&&d(e.input.charCodeAt(e.position+1))&&(o=s=!0,e.position++,N(e,!0,t)),r=e.line,U(e,t,1,!1,!0),c=e.tag,a=e.result,N(e,!0,t),l=e.input.charCodeAt(e.position),!s&&e.line!==r||58!==l||(o=!0,l=e.input.charCodeAt(++e.position),N(e,!0,t),U(e,t,1,!1,!0),u=e.result),A?F(e,n,p,c,a,u):o?n.push(F(e,null,p,c,a,u)):n.push(a),N(e,!0,t),44===(l=e.input.charCodeAt(e.position))?(h=!0,l=e.input.charCodeAt(++e.position)):h=!1}D(e,"unexpected end of the stream within a flow collection")}(e,g)?v=!0:(A&&function(e,t){var r,i,o,s,A,a=1,c=!1,u=!1,l=t,h=0,g=!1;if(124===(s=e.input.charCodeAt(e.position)))i=!1;else{if(62!==s)return!1;i=!0}for(e.kind="scalar",e.result="";0!==s;)if(43===(s=e.input.charCodeAt(++e.position))||45===s)1===a?a=43===s?3:2:D(e,"repeat of a chomping mode identifier");else{if(!((o=48<=(A=s)&&A<=57?A-48:-1)>=0))break;0===o?D(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?D(e,"repeat of an indentation width identifier"):(l=t+o-1,u=!0)}if(p(s)){do{s=e.input.charCodeAt(++e.position)}while(p(s));if(35===s)do{s=e.input.charCodeAt(++e.position)}while(!f(s)&&0!==s)}for(;0!==s;){for(M(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!u||e.lineIndent<l)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>l&&(l=e.lineIndent),f(s))h++;else{if(e.lineIndent<l){3===a?e.result+=n.repeat("\n",c?1+h:h):1===a&&c&&(e.result+="\n");break}for(i?p(s)?(g=!0,e.result+=n.repeat("\n",c?1+h:h)):g?(g=!1,e.result+=n.repeat("\n",h+1)):0===h?c&&(e.result+=" "):e.result+=n.repeat("\n",h):e.result+=n.repeat("\n",c?1+h:h),c=!0,u=!0,h=0,r=e.position;!f(s)&&0!==s;)s=e.input.charCodeAt(++e.position);k(e,r,e.position,!1)}}return!0}(e,g)||function(e,t){var r,n,i;if(39!==(r=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39===r){if(k(e,n,e.position,!0),39!==(r=e.input.charCodeAt(++e.position)))return!0;n=e.position,e.position++,i=e.position}else f(r)?(k(e,n,i,!0),K(e,N(e,!1,t)),n=i=e.position):e.position===e.lineStart&&R(e)?D(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);D(e,"unexpected end of the stream within a single quoted scalar")}(e,g)||function(e,t){var r,n,i,o,s,A,a;if(34!==(A=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(A=e.input.charCodeAt(e.position));){if(34===A)return k(e,r,e.position,!0),e.position++,!0;if(92===A){if(k(e,r,e.position,!0),f(A=e.input.charCodeAt(++e.position)))N(e,!1,t);else if(A<256&&y[A])e.result+=w[A],e.position++;else if((s=120===(a=A)?2:117===a?4:85===a?8:0)>0){for(i=s,o=0;i>0;i--)(s=E(A=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+s:D(e,"expected hexadecimal character");e.result+=m(o),e.position++}else D(e,"unknown escape sequence");r=n=e.position}else f(A)?(k(e,r,n,!0),K(e,N(e,!1,t)),r=n=e.position):e.position===e.lineStart&&R(e)?D(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}D(e,"unexpected end of the stream within a double quoted scalar")}(e,g)?v=!0:!function(e){var t,r,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!d(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&D(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(r)||D(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],N(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,s,A,a,c,u,l=e.kind,h=e.result;if(d(u=e.input.charCodeAt(e.position))||C(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(d(n=e.input.charCodeAt(e.position+1))||r&&C(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,s=!1;0!==u;){if(58===u){if(d(n=e.input.charCodeAt(e.position+1))||r&&C(n))break}else if(35===u){if(d(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&R(e)||r&&C(u))break;if(f(u)){if(A=e.line,a=e.lineStart,c=e.lineIndent,N(e,!1,-1),e.lineIndent>=t){s=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=A,e.lineStart=a,e.lineIndent=c;break}}s&&(k(e,i,o,!1),K(e,e.line-A),i=o=e.position,s=!1),p(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return k(e,i,o,!1),!!e.result||(e.kind=l,e.result=h,!1)}(e,g,1===r)&&(v=!0,null===e.tag&&(e.tag="?")):(v=!0,null===e.tag&&null===e.anchor||D(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===B&&(v=c&&L(e,I))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,l=e.implicitTypes.length;u<l;u+=1)if((h=e.implicitTypes[u]).resolve(e.result)){e.result=h.construct(e.result),e.tag=h.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else a.call(e.typeMap[e.kind||"fallback"],e.tag)?(h=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&h.kind!==e.kind&&D(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result)?(e.result=h.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):D(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):D(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function _(e){var t,r,n,i,o=e.position,s=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(i=e.input.charCodeAt(e.position))&&(N(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(s=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&D(e,"directive name must not be less than one character in length");0!==i;){for(;p(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!f(i));break}if(f(i))break;for(t=e.position;0!==i&&!d(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&M(e),a.call(S,r)?S[r](e,r,n):b(e,'unknown document directive "'+r+'"')}N(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,N(e,!0,-1)):s&&D(e,"directives end mark is expected"),U(e,e.lineIndent-1,4,!1,!0),N(e,!0,-1),e.checkLineBreaks&&u.test(e.input.slice(o,e.position))&&b(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&R(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,N(e,!0,-1)):e.position<e.length-1&&D(e,"end of the stream or a document separator is expected")}function O(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var r=new Q(e,t);for(r.input+="\0";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)_(r);return r.documents}function j(e,t,r){var n,i,o=O(e,r);if("function"!=typeof t)return o;for(n=0,i=o.length;n<i;n+=1)t(o[n])}function Y(e,t){var r=O(e,t);if(0!==r.length){if(1===r.length)return r[0];throw new i("expected a single document in the stream, but found more")}}e.exports.loadAll=j,e.exports.load=Y,e.exports.safeLoadAll=function(e,t,r){if("function"!=typeof t)return j(e,n.extend({schema:s},r));j(e,t,n.extend({schema:s},r))},e.exports.safeLoad=function(e,t){return Y(e,n.extend({schema:s},t))}},30399:(e,t,r)=>{"use strict";var n=r(28149);function i(e,t,r,n,i){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=i}i.prototype.getSnippet=function(e,t){var r,i,o,s,A;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",i=this.position;i>0&&-1==="\0\r\n\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){r=" ... ",i+=5;break}for(o="",s=this.position;s<this.buffer.length&&-1==="\0\r\n\u2028\u2029".indexOf(this.buffer.charAt(s));)if((s+=1)-this.position>t/2-1){o=" ... ",s-=5;break}return A=this.buffer.slice(i,s),n.repeat(" ",e)+r+A+o+"\n"+n.repeat(" ",e+this.position-i+r.length)+"^"},i.prototype.toString=function(e){var t,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(r+=":\n"+t),r},e.exports=i},8212:(e,t,r)=>{"use strict";var n=r(28149),i=r(17345),o=r(81704);function s(e,t,r){var n=[];return e.include.forEach((function(e){r=s(e,t,r)})),e[t].forEach((function(e){r.forEach((function(t,r){t.tag===e.tag&&t.kind===e.kind&&n.push(r)})),r.push(e)})),r.filter((function(e,t){return-1===n.indexOf(t)}))}function A(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new i("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=s(this,"implicit",[]),this.compiledExplicit=s(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,r={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(n);return r}(this.compiledImplicit,this.compiledExplicit)}A.DEFAULT=null,A.create=function(){var e,t;switch(arguments.length){case 1:e=A.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new i("Wrong number of arguments for Schema.create function")}if(e=n.toArray(e),t=n.toArray(t),!e.every((function(e){return e instanceof A})))throw new i("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every((function(e){return e instanceof o})))throw new i("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new A({include:e,explicit:t})},e.exports=A},8769:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(45247)]})},5235:(e,t,r)=>{"use strict";var n=r(8212);e.exports=n.DEFAULT=new n({include:[r(65483)],explicit:[r(61425),r(61872),r(79982)]})},65483:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(8769)],implicit:[r(83516),r(95441)],explicit:[r(34836),r(6847),r(65173),r(92025)]})},44413:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({explicit:[r(19952),r(46557),r(90173)]})},45247:(e,t,r)=>{"use strict";var n=r(8212);e.exports=new n({include:[r(44413)],implicit:[r(40188),r(58357),r(82106),r(71945)]})},81704:(e,t,r)=>{"use strict";var n=r(17345),i=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];e.exports=function(e,t){var r,s;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===i.indexOf(t))throw new n('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(r=t.styleAliases||null,s={},null!==r&&Object.keys(r).forEach((function(e){r[e].forEach((function(t){s[String(t)]=e}))})),s),-1===o.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},34836:(e,t,r)=>{"use strict";var n;try{n=r(64293).Buffer}catch(e){}var i=r(81704),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,s=o;for(r=0;r<i;r++)if(!((t=s.indexOf(e.charAt(r)))>64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,r,i=e.replace(/[\r\n=]/g,""),s=i.length,A=o,a=0,c=[];for(t=0;t<s;t++)t%4==0&&t&&(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|A.indexOf(i.charAt(t));return 0===(r=s%4*6)?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===r?(c.push(a>>10&255),c.push(a>>2&255)):12===r&&c.push(a>>4&255),n?n.from?n.from(c):new n(c):c},predicate:function(e){return n&&n.isBuffer(e)},represent:function(e){var t,r,n="",i=0,s=e.length,A=o;for(t=0;t<s;t++)t%3==0&&t&&(n+=A[i>>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]),i=(i<<8)+e[t];return 0===(r=s%3)?(n+=A[i>>18&63],n+=A[i>>12&63],n+=A[i>>6&63],n+=A[63&i]):2===r?(n+=A[i>>10&63],n+=A[i>>4&63],n+=A[i<<2&63],n+=A[64]):1===r&&(n+=A[i>>2&63],n+=A[i<<4&63],n+=A[64],n+=A[64]),n}})},58357:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},71945:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var s=/^[-+]?[0-9]+e/;e.exports=new i("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,r,n,i;return r="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){i.unshift(parseFloat(e,10))})),t=0,n=1,i.forEach((function(e){t+=e*n,n*=60})),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),s.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},82106:(e,t,r)=>{"use strict";var n=r(28149),i=r(81704);function o(e){return 48<=e&&e<=55}function s(e){return 48<=e&&e<=57}e.exports=new i("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=e.length,i=0,A=!1;if(!n)return!1;if("-"!==(t=e[i])&&"+"!==t||(t=e[++i]),"0"===t){if(i+1===n)return!0;if("b"===(t=e[++i])){for(i++;i<n;i++)if("_"!==(t=e[i])){if("0"!==t&&"1"!==t)return!1;A=!0}return A&&"_"!==t}if("x"===t){for(i++;i<n;i++)if("_"!==(t=e[i])){if(!(48<=(r=e.charCodeAt(i))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;A=!0}return A&&"_"!==t}for(;i<n;i++)if("_"!==(t=e[i])){if(!o(e.charCodeAt(i)))return!1;A=!0}return A&&"_"!==t}if("_"===t)return!1;for(;i<n;i++)if("_"!==(t=e[i])){if(":"===t)break;if(!s(e.charCodeAt(i)))return!1;A=!0}return!(!A||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(i)))},construct:function(e){var t,r,n=e,i=1,o=[];return-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(t=n[0])&&"+"!==t||("-"===t&&(i=-1),t=(n=n.slice(1))[0]),"0"===n?0:"0"===t?"b"===n[1]?i*parseInt(n.slice(2),2):"x"===n[1]?i*parseInt(n,16):i*parseInt(n,8):-1!==n.indexOf(":")?(n.split(":").forEach((function(e){o.unshift(parseInt(e,10))})),n=0,r=1,o.forEach((function(e){n+=e*r,r*=60})),i*n):i*parseInt(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!n.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},79982:(e,t,r)=>{"use strict";var n;try{n=r(41313)}catch(e){"undefined"!=typeof window&&(n=window.esprima)}var i=r(81704);e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=n.parse(t,{range:!0});return"Program"===r.type&&1===r.body.length&&"ExpressionStatement"===r.body[0].type&&("ArrowFunctionExpression"===r.body[0].expression.type||"FunctionExpression"===r.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,r="("+e+")",i=n.parse(r,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach((function(e){o.push(e.name)})),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(o,r.slice(t[0]+1,t[1]-1)):new Function(o,"return "+r.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},61872:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),n.length>3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},61425:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},90173:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},95441:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},40188:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},6847:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,s,A,a=[],c=e;for(t=0,r=c.length;t<r;t+=1){if(n=c[t],A=!1,"[object Object]"!==o.call(n))return!1;for(s in n)if(i.call(n,s)){if(A)return!1;A=!0}if(!A)return!1;if(-1!==a.indexOf(s))return!1;a.push(s)}return!0},construct:function(e){return null!==e?e:[]}})},65173:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,r,n,o,s,A=e;for(s=new Array(A.length),t=0,r=A.length;t<r;t+=1){if(n=A[t],"[object Object]"!==i.call(n))return!1;if(1!==(o=Object.keys(n)).length)return!1;s[t]=[o[0],n[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,r,n,i,o,s=e;for(o=new Array(s.length),t=0,r=s.length;t<r;t+=1)n=s[t],i=Object.keys(n),o[t]=[i[0],n[i[0]]];return o}})},46557:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},92025:(e,t,r)=>{"use strict";var n=r(81704),i=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,r=e;for(t in r)if(i.call(r,t)&&null!==r[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},19952:(e,t,r)=>{"use strict";var n=r(81704);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},83516:(e,t,r)=>{"use strict";var n=r(81704),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==i.exec(e)||null!==o.exec(e))},construct:function(e){var t,r,n,s,A,a,c,u,l=0,h=null;if(null===(t=i.exec(e))&&(t=o.exec(e)),null===t)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,s=+t[3],!t[4])return new Date(Date.UTC(r,n,s));if(A=+t[4],a=+t[5],c=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(h=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(h=-h)),u=new Date(Date.UTC(r,n,s,A,a,c,l)),h&&u.setTime(u.getTime()-h),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},7427:(e,t)=>{t.stringify=function e(t){if(void 0===t)return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&"object"==typeof t){var r="",n=Array.isArray(t);r=n?"[":"{";var i=!0;for(var o in t){var s="function"==typeof t[o]||!n&&void 0===t[o];Object.hasOwnProperty.call(t,o)&&!s&&(i||(r+=","),i=!1,n?null==t[o]?r+="null":r+=e(t[o]):void 0!==t[o]&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}"}return"string"==typeof t?JSON.stringify(/^:/.test(t)?":"+t:t):void 0===t?"null":JSON.stringify(t)},t.parse=function(e){return JSON.parse(e,(function(e,t){return"string"==typeof t?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t}))}},72515:(e,t,r)=>{"use strict";const n=r(28614),i=r(7427);e.exports=class extends n{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:i.stringify,deserialize:i.parse},"string"==typeof e?{uri:e}:e,t),!this.opts.store){const e=Object.assign({},this.opts);this.opts.store=(e=>{const t={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(e.adapter||e.uri){const n=e.adapter||/^[^:]*/.exec(e.uri)[0];return new(r(89112)(t[n]))(e)}return new Map})(e)}"function"==typeof this.opts.store.on&&this.opts.store.on("error",e=>this.emit("error",e)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);const{store:r}=this.opts;return Promise.resolve().then(()=>r.get(e)).then(e=>"string"==typeof e?this.opts.deserialize(e):e).then(r=>{if(void 0!==r){if(!("number"==typeof r.expires&&Date.now()>r.expires))return t&&t.raw?r:r.value;this.delete(e)}})}set(e,t,r){e=this._getKeyPrefix(e),void 0===r&&(r=this.opts.ttl),0===r&&(r=void 0);const{store:n}=this.opts;return Promise.resolve().then(()=>{const e="number"==typeof r?Date.now()+r:null;return t={value:t,expires:e},this.opts.serialize(t)}).then(t=>n.set(e,t,r)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);const{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){const{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}}},89112:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=89112,e.exports=t},78962:(e,t,r)=>{var n=r(99513)(r(76169),"DataView");e.exports=n},72574:(e,t,r)=>{var n=r(31713),i=r(86688),o=r(45937),s=r(5017),A=r(79457);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},29197:(e,t,r)=>{var n=r(14620),i=r(73682),o=r(43112),s=r(90640),A=r(9380);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},63603:(e,t,r)=>{var n=r(99513)(r(76169),"Map");e.exports=n},75009:(e,t,r)=>{var n=r(18209),i=r(89706),o=r(43786),s=r(17926),A=r(87345);function a(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}a.prototype.clear=n,a.prototype.delete=i,a.prototype.get=o,a.prototype.has=s,a.prototype.set=A,e.exports=a},5825:(e,t,r)=>{var n=r(99513)(r(76169),"Promise");e.exports=n},43231:(e,t,r)=>{var n=r(99513)(r(76169),"Set");e.exports=n},46235:(e,t,r)=>{var n=r(75009),i=r(74785),o=r(87760);function s(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}s.prototype.add=s.prototype.push=i,s.prototype.has=o,e.exports=s},22851:(e,t,r)=>{var n=r(29197),i=r(35678),o=r(33336),s=r(97163),A=r(43737),a=r(48548);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=s,c.prototype.has=A,c.prototype.set=a,e.exports=c},69976:(e,t,r)=>{var n=r(76169).Symbol;e.exports=n},2740:(e,t,r)=>{var n=r(76169).Uint8Array;e.exports=n},47063:(e,t,r)=>{var n=r(99513)(r(76169),"WeakMap");e.exports=n},66636:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},33326:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}},9073:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[i++]=s)}return o}},24066:(e,t,r)=>{var n=r(37872);e.exports=function(e,t){return!!(null==e?0:e.length)&&n(e,t,0)>-1}},36669:e=>{e.exports=function(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}},11886:(e,t,r)=>{var n=r(7089),i=r(61771),o=r(82664),s=r(10667),A=r(98041),a=r(32565),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=o(e),u=!r&&i(e),l=!r&&!u&&s(e),h=!r&&!u&&!l&&a(e),g=r||u||l||h,f=g?n(e.length,String):[],p=f.length;for(var d in e)!t&&!c.call(e,d)||g&&("length"==d||l&&("offset"==d||"parent"==d)||h&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||A(d,p))||f.push(d);return f}},60783:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},40945:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}},66054:e=>{e.exports=function(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}},17765:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},1051:e=>{e.exports=function(e){return e.split("")}},11852:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},65759:(e,t,r)=>{var n=r(91198),i=r(71074),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var s=e[t];o.call(e,t)&&i(s,r)&&(void 0!==r||t in e)||n(e,t,r)}},39836:(e,t,r)=>{var n=r(71074);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},28628:(e,t,r)=>{var n=r(75182),i=r(42185);e.exports=function(e,t){return e&&n(t,i(t),e)}},78707:(e,t,r)=>{var n=r(75182),i=r(24887);e.exports=function(e,t){return e&&n(t,i(t),e)}},91198:(e,t,r)=>{var n=r(65);e.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},41076:(e,t,r)=>{var n=r(22851),i=r(33326),o=r(65759),s=r(28628),A=r(78707),a=r(64266),c=r(87229),u=r(23105),l=r(60741),h=r(60753),g=r(64420),f=r(79435),p=r(27908),d=r(37836),C=r(88438),E=r(82664),I=r(10667),m=r(13349),y=r(46778),w=r(33931),B=r(42185),Q={};Q["[object Arguments]"]=Q["[object Array]"]=Q["[object ArrayBuffer]"]=Q["[object DataView]"]=Q["[object Boolean]"]=Q["[object Date]"]=Q["[object Float32Array]"]=Q["[object Float64Array]"]=Q["[object Int8Array]"]=Q["[object Int16Array]"]=Q["[object Int32Array]"]=Q["[object Map]"]=Q["[object Number]"]=Q["[object Object]"]=Q["[object RegExp]"]=Q["[object Set]"]=Q["[object String]"]=Q["[object Symbol]"]=Q["[object Uint8Array]"]=Q["[object Uint8ClampedArray]"]=Q["[object Uint16Array]"]=Q["[object Uint32Array]"]=!0,Q["[object Error]"]=Q["[object Function]"]=Q["[object WeakMap]"]=!1,e.exports=function e(t,r,v,D,b,S){var k,x=1&r,F=2&r,M=4&r;if(v&&(k=b?v(t,D,b,S):v(t)),void 0!==k)return k;if(!y(t))return t;var N=E(t);if(N){if(k=p(t),!x)return c(t,k)}else{var R=f(t),K="[object Function]"==R||"[object GeneratorFunction]"==R;if(I(t))return a(t,x);if("[object Object]"==R||"[object Arguments]"==R||K&&!b){if(k=F||K?{}:C(t),!x)return F?l(t,A(k,t)):u(t,s(k,t))}else{if(!Q[R])return b?t:{};k=d(t,R,x)}}S||(S=new n);var L=S.get(t);if(L)return L;S.set(t,k),w(t)?t.forEach((function(n){k.add(e(n,r,v,n,t,S))})):m(t)&&t.forEach((function(n,i){k.set(i,e(n,r,v,i,t,S))}));var T=M?F?g:h:F?keysIn:B,P=N?void 0:T(t);return i(P||t,(function(n,i){P&&(n=t[i=n]),o(k,i,e(n,r,v,i,t,S))})),k}},15178:(e,t,r)=>{var n=r(46778),i=Object.create,o=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=o},50773:(e,t,r)=>{var n=r(62164),i=r(85115)(n);e.exports=i},3691:(e,t,r)=>{var n=r(50773);e.exports=function(e,t){var r=[];return n(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}},72151:e=>{e.exports=function(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}},93274:(e,t,r)=>{var n=r(40945),i=r(958);e.exports=function e(t,r,o,s,A){var a=-1,c=t.length;for(o||(o=i),A||(A=[]);++a<c;){var u=t[a];r>0&&o(u)?r>1?e(u,r-1,o,s,A):n(A,u):s||(A[A.length]=u)}return A}},31689:(e,t,r)=>{var n=r(59907)();e.exports=n},62164:(e,t,r)=>{var n=r(31689),i=r(42185);e.exports=function(e,t){return e&&n(e,t,i)}},84173:(e,t,r)=>{var n=r(56725),i=r(49874);e.exports=function(e,t){for(var r=0,o=(t=n(t,e)).length;null!=e&&r<o;)e=e[i(t[r++])];return r&&r==o?e:void 0}},40104:(e,t,r)=>{var n=r(40945),i=r(82664);e.exports=function(e,t,r){var o=t(e);return i(e)?o:n(o,r(e))}},52502:(e,t,r)=>{var n=r(69976),i=r(2854),o=r(87427),s=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?i(e):o(e)}},95325:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e,r){return null!=e&&t.call(e,r)}},3881:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},37872:(e,t,r)=>{var n=r(72151),i=r(14564),o=r(95145);e.exports=function(e,t,r){return t==t?o(e,t,r):n(e,i,r)}},76357:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return i(e)&&"[object Arguments]"==n(e)}},74195:(e,t,r)=>{var n=r(48957),i=r(38496);e.exports=function e(t,r,o,s,A){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,o,s,e,A))}},48957:(e,t,r)=>{var n=r(22851),i=r(75500),o=r(28475),s=r(50245),A=r(79435),a=r(82664),c=r(10667),u=r(32565),l="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,g,f,p){var d=a(e),C=a(t),E=d?"[object Array]":A(e),I=C?"[object Array]":A(t),m=(E="[object Arguments]"==E?l:E)==l,y=(I="[object Arguments]"==I?l:I)==l,w=E==I;if(w&&c(e)){if(!c(t))return!1;d=!0,m=!1}if(w&&!m)return p||(p=new n),d||u(e)?i(e,t,r,g,f,p):o(e,t,E,r,g,f,p);if(!(1&r)){var B=m&&h.call(e,"__wrapped__"),Q=y&&h.call(t,"__wrapped__");if(B||Q){var v=B?e.value():e,D=Q?t.value():t;return p||(p=new n),f(v,D,r,g,p)}}return!!w&&(p||(p=new n),s(e,t,r,g,f,p))}},55994:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Map]"==n(e)}},66470:(e,t,r)=>{var n=r(22851),i=r(74195);e.exports=function(e,t,r,o){var s=r.length,A=s,a=!o;if(null==e)return!A;for(e=Object(e);s--;){var c=r[s];if(a&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++s<A;){var u=(c=r[s])[0],l=e[u],h=c[1];if(a&&c[2]){if(void 0===l&&!(u in e))return!1}else{var g=new n;if(o)var f=o(l,h,u,e,t,g);if(!(void 0===f?i(h,l,3,o,g):f))return!1}}return!0}},14564:e=>{e.exports=function(e){return e!=e}},91686:(e,t,r)=>{var n=r(92533),i=r(15061),o=r(46778),s=r(76384),A=/^\[object .+?Constructor\]$/,a=Function.prototype,c=Object.prototype,u=a.toString,l=c.hasOwnProperty,h=RegExp("^"+u.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(n(e)?h:A).test(s(e))}},28612:(e,t,r)=>{var n=r(79435),i=r(38496);e.exports=function(e){return i(e)&&"[object Set]"==n(e)}},98998:(e,t,r)=>{var n=r(52502),i=r(46369),o=r(38496),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!s[n(e)]}},42208:(e,t,r)=>{var n=r(96962),i=r(90348),o=r(61977),s=r(82664),A=r(7430);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?s(e)?i(e[0],e[1]):n(e):A(e)}},50994:(e,t,r)=>{var n=r(89513),i=r(60657),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}},8372:(e,t,r)=>{var n=r(46778),i=r(89513),o=r(95632),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=i(e),r=[];for(var A in e)("constructor"!=A||!t&&s.call(e,A))&&r.push(A);return r}},26309:(e,t,r)=>{var n=r(50773),i=r(41929);e.exports=function(e,t){var r=-1,o=i(e)?Array(e.length):[];return n(e,(function(e,n,i){o[++r]=t(e,n,i)})),o}},96962:(e,t,r)=>{var n=r(66470),i=r(98705),o=r(12757);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},90348:(e,t,r)=>{var n=r(74195),i=r(44674),o=r(34878),s=r(70474),A=r(20925),a=r(12757),c=r(49874);e.exports=function(e,t){return s(e)&&A(t)?a(c(e),t):function(r){var s=i(r,e);return void 0===s&&s===t?o(r,e):n(t,s,3)}}},35400:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},43018:(e,t,r)=>{var n=r(84173);e.exports=function(e){return function(t){return n(t,e)}}},51587:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},30383:(e,t,r)=>{var n=r(61977),i=r(44322),o=r(3111);e.exports=function(e,t){return o(i(e,t,n),e+"")}},10624:(e,t,r)=>{var n=r(65759),i=r(56725),o=r(98041),s=r(46778),A=r(49874);e.exports=function(e,t,r,a){if(!s(e))return e;for(var c=-1,u=(t=i(t,e)).length,l=u-1,h=e;null!=h&&++c<u;){var g=A(t[c]),f=r;if(c!=l){var p=h[g];void 0===(f=a?a(p,g,h):void 0)&&(f=s(p)?p:o(t[c+1])?[]:{})}n(h,g,f),h=h[g]}return e}},4899:(e,t,r)=>{var n=r(4967),i=r(65),o=r(61977),s=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:o;e.exports=s},27708:e=>{e.exports=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(i);++n<i;)o[n]=e[n+t];return o}},96815:e=>{e.exports=function(e,t){for(var r,n=-1,i=e.length;++n<i;){var o=t(e[n]);void 0!==o&&(r=void 0===r?o:r+o)}return r}},7089:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},35:(e,t,r)=>{var n=r(69976),i=r(60783),o=r(82664),s=r(65558),A=n?n.prototype:void 0,a=A?A.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(s(t))return a?a.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},73635:e=>{e.exports=function(e){return function(t){return e(t)}}},42150:(e,t,r)=>{var n=r(46235),i=r(24066),o=r(36669),s=r(93022),A=r(17879),a=r(7442);e.exports=function(e,t,r){var c=-1,u=i,l=e.length,h=!0,g=[],f=g;if(r)h=!1,u=o;else if(l>=200){var p=t?null:A(e);if(p)return a(p);h=!1,u=s,f=new n}else f=t?[]:g;e:for(;++c<l;){var d=e[c],C=t?t(d):d;if(d=r||0!==d?d:0,h&&C==C){for(var E=f.length;E--;)if(f[E]===C)continue e;t&&f.push(C),g.push(d)}else u(f,C,r)||(f!==g&&f.push(C),g.push(d))}return g}},81622:(e,t,r)=>{var n=r(56725),i=r(49845),o=r(37574),s=r(49874);e.exports=function(e,t){return t=n(t,e),null==(e=o(e,t))||delete e[s(i(t))]}},18290:(e,t,r)=>{var n=r(60783);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},93022:e=>{e.exports=function(e,t){return e.has(t)}},56725:(e,t,r)=>{var n=r(82664),i=r(70474),o=r(8689),s=r(33580);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:o(s(e))}},92568:(e,t,r)=>{var n=r(27708);e.exports=function(e,t,r){var i=e.length;return r=void 0===r?i:r,!t&&r>=i?e:n(e,t,r)}},76255:(e,t,r)=>{var n=r(2740);e.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},64266:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i?n.Buffer:void 0,A=s?s.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=A?A(r):new e.constructor(r);return e.copy(n),n}},63749:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}},41705:e=>{var t=/\w*$/;e.exports=function(e){var r=new e.constructor(e.source,t.exec(e));return r.lastIndex=e.lastIndex,r}},25791:(e,t,r)=>{var n=r(69976),i=n?n.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},58042:(e,t,r)=>{var n=r(76255);e.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}},87229:e=>{e.exports=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}},75182:(e,t,r)=>{var n=r(65759),i=r(91198);e.exports=function(e,t,r,o){var s=!r;r||(r={});for(var A=-1,a=t.length;++A<a;){var c=t[A],u=o?o(r[c],e[c],c,r,e):void 0;void 0===u&&(u=e[c]),s?i(r,c,u):n(r,c,u)}return r}},23105:(e,t,r)=>{var n=r(75182),i=r(68727);e.exports=function(e,t){return n(e,i(e),t)}},60741:(e,t,r)=>{var n=r(75182),i=r(35368);e.exports=function(e,t){return n(e,i(e),t)}},14429:(e,t,r)=>{var n=r(76169)["__core-js_shared__"];e.exports=n},27913:(e,t,r)=>{var n=r(30383),i=r(33193);e.exports=function(e){return n((function(t,r){var n=-1,o=r.length,s=o>1?r[o-1]:void 0,A=o>2?r[2]:void 0;for(s=e.length>3&&"function"==typeof s?(o--,s):void 0,A&&i(r[0],r[1],A)&&(s=o<3?void 0:s,o=1),t=Object(t);++n<o;){var a=r[n];a&&e(t,a,n,s)}return t}))}},85115:(e,t,r)=>{var n=r(41929);e.exports=function(e,t){return function(r,i){if(null==r)return r;if(!n(r))return e(r,i);for(var o=r.length,s=t?o:-1,A=Object(r);(t?s--:++s<o)&&!1!==i(A[s],s,A););return r}}},59907:e=>{e.exports=function(e){return function(t,r,n){for(var i=-1,o=Object(t),s=n(t),A=s.length;A--;){var a=s[e?A:++i];if(!1===r(o[a],a,o))break}return t}}},56989:(e,t,r)=>{var n=r(92568),i=r(93024),o=r(30475),s=r(33580);e.exports=function(e){return function(t){t=s(t);var r=i(t)?o(t):void 0,A=r?r[0]:t.charAt(0),a=r?n(r,1).join(""):t.slice(1);return A[e]()+a}}},30369:(e,t,r)=>{var n=r(66054),i=r(68968),o=r(97684),s=RegExp("['’]","g");e.exports=function(e){return function(t){return n(o(i(t).replace(s,"")),e,"")}}},80937:(e,t,r)=>{var n=r(42208),i=r(41929),o=r(42185);e.exports=function(e){return function(t,r,s){var A=Object(t);if(!i(t)){var a=n(r,3);t=o(t),r=function(e){return a(A[e],e,A)}}var c=e(t,r,s);return c>-1?A[a?t[c]:c]:void 0}}},17879:(e,t,r)=>{var n=r(43231),i=r(34791),o=r(7442),s=n&&1/o(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=s},37306:(e,t,r)=>{var n=r(11672);e.exports=function(e){return n(e)?void 0:e}},69922:(e,t,r)=>{var n=r(51587)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"});e.exports=n},65:(e,t,r)=>{var n=r(99513),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},75500:(e,t,r)=>{var n=r(46235),i=r(17765),o=r(93022);e.exports=function(e,t,r,s,A,a){var c=1&r,u=e.length,l=t.length;if(u!=l&&!(c&&l>u))return!1;var h=a.get(e);if(h&&a.get(t))return h==t;var g=-1,f=!0,p=2&r?new n:void 0;for(a.set(e,t),a.set(t,e);++g<u;){var d=e[g],C=t[g];if(s)var E=c?s(C,d,g,t,e,a):s(d,C,g,e,t,a);if(void 0!==E){if(E)continue;f=!1;break}if(p){if(!i(t,(function(e,t){if(!o(p,t)&&(d===e||A(d,e,r,s,a)))return p.push(t)}))){f=!1;break}}else if(d!==C&&!A(d,C,r,s,a)){f=!1;break}}return a.delete(e),a.delete(t),f}},28475:(e,t,r)=>{var n=r(69976),i=r(2740),o=r(71074),s=r(75500),A=r(7877),a=r(7442),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,l,h){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!l(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var g=A;case"[object Set]":var f=1&n;if(g||(g=a),e.size!=t.size&&!f)return!1;var p=h.get(e);if(p)return p==t;n|=2,h.set(e,t);var d=s(g(e),g(t),n,c,l,h);return h.delete(e),d;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},50245:(e,t,r)=>{var n=r(60753),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,s,A){var a=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!a)return!1;for(var l=u;l--;){var h=c[l];if(!(a?h in t:i.call(t,h)))return!1}var g=A.get(e);if(g&&A.get(t))return g==t;var f=!0;A.set(e,t),A.set(t,e);for(var p=a;++l<u;){var d=e[h=c[l]],C=t[h];if(o)var E=a?o(C,d,h,t,e,A):o(d,C,h,e,t,A);if(!(void 0===E?d===C||s(d,C,r,o,A):E)){f=!1;break}p||(p="constructor"==h)}if(f&&!p){var I=e.constructor,m=t.constructor;I==m||!("constructor"in e)||!("constructor"in t)||"function"==typeof I&&I instanceof I&&"function"==typeof m&&m instanceof m||(f=!1)}return A.delete(e),A.delete(t),f}},87298:(e,t,r)=>{var n=r(54690),i=r(44322),o=r(3111);e.exports=function(e){return o(i(e,void 0,n),e+"")}},68399:e=>{var t="object"==typeof global&&global&&global.Object===Object&&global;e.exports=t},60753:(e,t,r)=>{var n=r(40104),i=r(68727),o=r(42185);e.exports=function(e){return n(e,o,i)}},64420:(e,t,r)=>{var n=r(40104),i=r(35368),o=r(24887);e.exports=function(e){return n(e,o,i)}},59253:(e,t,r)=>{var n=r(69448);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},98705:(e,t,r)=>{var n=r(20925),i=r(42185);e.exports=function(e){for(var t=i(e),r=t.length;r--;){var o=t[r],s=e[o];t[r]=[o,s,n(s)]}return t}},99513:(e,t,r)=>{var n=r(91686),i=r(98054);e.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},41181:(e,t,r)=>{var n=r(64309)(Object.getPrototypeOf,Object);e.exports=n},2854:(e,t,r)=>{var n=r(69976),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,A=n?n.toStringTag:void 0;e.exports=function(e){var t=o.call(e,A),r=e[A];try{e[A]=void 0;var n=!0}catch(e){}var i=s.call(e);return n&&(t?e[A]=r:delete e[A]),i}},68727:(e,t,r)=>{var n=r(9073),i=r(62162),o=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,A=s?function(e){return null==e?[]:(e=Object(e),n(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=A},35368:(e,t,r)=>{var n=r(40945),i=r(41181),o=r(68727),s=r(62162),A=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,o(e)),e=i(e);return t}:s;e.exports=A},79435:(e,t,r)=>{var n=r(78962),i=r(63603),o=r(5825),s=r(43231),A=r(47063),a=r(52502),c=r(76384),u=c(n),l=c(i),h=c(o),g=c(s),f=c(A),p=a;(n&&"[object DataView]"!=p(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=p(new i)||o&&"[object Promise]"!=p(o.resolve())||s&&"[object Set]"!=p(new s)||A&&"[object WeakMap]"!=p(new A))&&(p=function(e){var t=a(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case u:return"[object DataView]";case l:return"[object Map]";case h:return"[object Promise]";case g:return"[object Set]";case f:return"[object WeakMap]"}return t}),e.exports=p},98054:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},71507:(e,t,r)=>{var n=r(56725),i=r(61771),o=r(82664),s=r(98041),A=r(46369),a=r(49874);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,l=!1;++c<u;){var h=a(t[c]);if(!(l=null!=e&&r(e,h)))break;e=e[h]}return l||++c!=u?l:!!(u=null==e?0:e.length)&&A(u)&&s(h,u)&&(o(e)||i(e))}},93024:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},60466:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},31713:(e,t,r)=>{var n=r(52437);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},86688:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},45937:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return i.call(t,e)?t[e]:void 0}},5017:(e,t,r)=>{var n=r(52437),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},79457:(e,t,r)=>{var n=r(52437);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},27908:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var r=e.length,n=new e.constructor(r);return r&&"string"==typeof e[0]&&t.call(e,"index")&&(n.index=e.index,n.input=e.input),n}},37836:(e,t,r)=>{var n=r(76255),i=r(63749),o=r(41705),s=r(25791),A=r(58042);e.exports=function(e,t,r){var a=e.constructor;switch(t){case"[object ArrayBuffer]":return n(e);case"[object Boolean]":case"[object Date]":return new a(+e);case"[object DataView]":return i(e,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return A(e,r);case"[object Map]":return new a;case"[object Number]":case"[object String]":return new a(e);case"[object RegExp]":return o(e);case"[object Set]":return new a;case"[object Symbol]":return s(e)}}},88438:(e,t,r)=>{var n=r(15178),i=r(41181),o=r(89513);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:n(i(e))}},958:(e,t,r)=>{var n=r(69976),i=r(61771),o=r(82664),s=n?n.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(s&&e&&e[s])}},98041:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},33193:(e,t,r)=>{var n=r(71074),i=r(41929),o=r(98041),s=r(46778);e.exports=function(e,t,r){if(!s(r))return!1;var A=typeof t;return!!("number"==A?i(r)&&o(t,r.length):"string"==A&&t in r)&&n(r[t],e)}},70474:(e,t,r)=>{var n=r(82664),i=r(65558),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||(s.test(e)||!o.test(e)||null!=t&&e in Object(t))}},69448:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15061:(e,t,r)=>{var n,i=r(14429),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!o&&o in e}},89513:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},20925:(e,t,r)=>{var n=r(46778);e.exports=function(e){return e==e&&!n(e)}},82262:e=>{e.exports=function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}},14620:e=>{e.exports=function(){this.__data__=[],this.size=0}},73682:(e,t,r)=>{var n=r(39836),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0)&&(r==t.length-1?t.pop():i.call(t,r,1),--this.size,!0)}},43112:(e,t,r)=>{var n=r(39836);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},90640:(e,t,r)=>{var n=r(39836);e.exports=function(e){return n(this.__data__,e)>-1}},9380:(e,t,r)=>{var n=r(39836);e.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},18209:(e,t,r)=>{var n=r(72574),i=r(29197),o=r(63603);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},89706:(e,t,r)=>{var n=r(59253);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},43786:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).get(e)}},17926:(e,t,r)=>{var n=r(59253);e.exports=function(e){return n(this,e).has(e)}},87345:(e,t,r)=>{var n=r(59253);e.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},7877:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},12757:e=>{e.exports=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}},31948:(e,t,r)=>{var n=r(74499);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},52437:(e,t,r)=>{var n=r(99513)(Object,"create");e.exports=n},60657:(e,t,r)=>{var n=r(64309)(Object.keys,Object);e.exports=n},95632:e=>{e.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},26391:(e,t,r)=>{e=r.nmd(e);var n=r(68399),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,s=o&&o.exports===i&&n.process,A=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=A},87427:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},64309:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},44322:(e,t,r)=>{var n=r(66636),i=Math.max;e.exports=function(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,s=-1,A=i(o.length-t,0),a=Array(A);++s<A;)a[s]=o[t+s];s=-1;for(var c=Array(t+1);++s<t;)c[s]=o[s];return c[t]=r(a),n(e,this,c)}}},37574:(e,t,r)=>{var n=r(84173),i=r(27708);e.exports=function(e,t){return t.length<2?e:n(e,i(t,0,-1))}},76169:(e,t,r)=>{var n=r(68399),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},74785:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},87760:e=>{e.exports=function(e){return this.__data__.has(e)}},7442:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},3111:(e,t,r)=>{var n=r(4899),i=r(19908)(n);e.exports=i},19908:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var i=t(),o=16-(i-n);if(n=i,o>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},35678:(e,t,r)=>{var n=r(29197);e.exports=function(){this.__data__=new n,this.size=0}},33336:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},97163:e=>{e.exports=function(e){return this.__data__.get(e)}},43737:e=>{e.exports=function(e){return this.__data__.has(e)}},48548:(e,t,r)=>{var n=r(29197),i=r(63603),o=r(75009);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var s=r.__data__;if(!i||s.length<199)return s.push([e,t]),this.size=++r.size,this;r=this.__data__=new o(s)}return r.set(e,t),this.size=r.size,this}},95145:e=>{e.exports=function(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}},30475:(e,t,r)=>{var n=r(1051),i=r(93024),o=r(297);e.exports=function(e){return i(e)?o(e):n(e)}},8689:(e,t,r)=>{var n=r(31948),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,s=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,r,n,i){t.push(n?i.replace(o,"$1"):r||e)})),t}));e.exports=s},49874:(e,t,r)=>{var n=r(65558);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},76384:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},297:e=>{var t="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",o="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",A="(?:"+r+"|"+n+")"+"?",a="[\\ufe0e\\ufe0f]?"+A+("(?:\\u200d(?:"+[i,o,s].join("|")+")[\\ufe0e\\ufe0f]?"+A+")*"),c="(?:"+[i+r+"?",r,o,s,t].join("|")+")",u=RegExp(n+"(?="+n+")|"+c+a,"g");e.exports=function(e){return e.match(u)||[]}},89887:e=>{var t="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+t+"]",n="\\d+",i="[\\u2700-\\u27bf]",o="[a-z\\xdf-\\xf6\\xf8-\\xff]",s="[^\\ud800-\\udfff"+t+n+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",a="[\\ud800-\\udbff][\\udc00-\\udfff]",c="[A-Z\\xc0-\\xd6\\xd8-\\xde]",u="(?:"+o+"|"+s+")",l="(?:"+c+"|"+s+")",h="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",g="[\\ufe0e\\ufe0f]?"+h+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",A,a].join("|")+")[\\ufe0e\\ufe0f]?"+h+")*"),f="(?:"+[i,A,a].join("|")+")"+g,p=RegExp([c+"?"+o+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,c,"$"].join("|")+")",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,c+u,"$"].join("|")+")",c+"?"+u+"+(?:['’](?:d|ll|m|re|s|t|ve))?",c+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",n,f].join("|"),"g");e.exports=function(e){return e.match(p)||[]}},9682:(e,t,r)=>{var n=r(65759),i=r(75182),o=r(27913),s=r(41929),A=r(89513),a=r(42185),c=Object.prototype.hasOwnProperty,u=o((function(e,t){if(A(t)||s(t))i(t,a(t),e);else for(var r in t)c.call(t,r)&&n(e,r,t[r])}));e.exports=u},88863:(e,t,r)=>{var n=r(75182),i=r(27913),o=r(24887),s=i((function(e,t){n(t,o(t),e)}));e.exports=s},89170:(e,t,r)=>{var n=r(61814),i=r(30369)((function(e,t,r){return t=t.toLowerCase(),e+(r?n(t):t)}));e.exports=i},61814:(e,t,r)=>{var n=r(33580),i=r(72609);e.exports=function(e){return i(n(e).toLowerCase())}},22254:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,4)}},82558:(e,t,r)=>{var n=r(41076);e.exports=function(e){return n(e,5)}},26052:(e,t,r)=>{var n=r(41076);e.exports=function(e,t){return n(e,5,t="function"==typeof t?t:void 0)}},4967:e=>{e.exports=function(e){return function(){return e}}},68968:(e,t,r)=>{var n=r(69922),i=r(33580),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,s=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=i(e))&&e.replace(o,n).replace(s,"")}},99906:(e,t,r)=>{var n=r(30383),i=r(71074),o=r(33193),s=r(24887),A=Object.prototype,a=A.hasOwnProperty,c=n((function(e,t){e=Object(e);var r=-1,n=t.length,c=n>2?t[2]:void 0;for(c&&o(t[0],t[1],c)&&(n=1);++r<n;)for(var u=t[r],l=s(u),h=-1,g=l.length;++h<g;){var f=l[h],p=e[f];(void 0===p||i(p,A[f])&&!a.call(e,f))&&(e[f]=u[f])}return e}));e.exports=c},71074:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},94501:(e,t,r)=>{e.exports=r(88863)},59181:(e,t,r)=>{var n=r(9073),i=r(3691),o=r(42208),s=r(82664);e.exports=function(e,t){return(s(e)?n:i)(e,o(t,3))}},98347:(e,t,r)=>{var n=r(80937)(r(17506));e.exports=n},17506:(e,t,r)=>{var n=r(72151),i=r(42208),o=r(864),s=Math.max;e.exports=function(e,t,r){var A=null==e?0:e.length;if(!A)return-1;var a=null==r?0:o(r);return a<0&&(a=s(A+a,0)),n(e,i(t,3),a)}},54690:(e,t,r)=>{var n=r(93274);e.exports=function(e){return(null==e?0:e.length)?n(e,1):[]}},44674:(e,t,r)=>{var n=r(84173);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},15215:(e,t,r)=>{var n=r(95325),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},34878:(e,t,r)=>{var n=r(3881),i=r(71507);e.exports=function(e,t){return null!=e&&i(e,t,n)}},61977:e=>{e.exports=function(e){return e}},61771:(e,t,r)=>{var n=r(76357),i=r(38496),o=Object.prototype,s=o.hasOwnProperty,A=o.propertyIsEnumerable,a=n(function(){return arguments}())?n:function(e){return i(e)&&s.call(e,"callee")&&!A.call(e,"callee")};e.exports=a},82664:e=>{var t=Array.isArray;e.exports=t},41929:(e,t,r)=>{var n=r(92533),i=r(46369);e.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},66807:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return!0===e||!1===e||i(e)&&"[object Boolean]"==n(e)}},10667:(e,t,r)=>{e=r.nmd(e);var n=r(76169),i=r(88988),o=t&&!t.nodeType&&t,s=o&&e&&!e.nodeType&&e,A=s&&s.exports===o?n.Buffer:void 0,a=(A?A.isBuffer:void 0)||i;e.exports=a},92533:(e,t,r)=>{var n=r(52502),i=r(46778);e.exports=function(e){if(!i(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},46369:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},13349:(e,t,r)=>{var n=r(55994),i=r(73635),o=r(26391),s=o&&o.isMap,A=s?i(s):n;e.exports=A},71044:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"number"==typeof e||i(e)&&"[object Number]"==n(e)}},46778:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},38496:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},11672:(e,t,r)=>{var n=r(52502),i=r(41181),o=r(38496),s=Function.prototype,A=Object.prototype,a=s.toString,c=A.hasOwnProperty,u=a.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=n(e))return!1;var t=i(e);if(null===t)return!0;var r=c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&a.call(r)==u}},33931:(e,t,r)=>{var n=r(28612),i=r(73635),o=r(26391),s=o&&o.isSet,A=s?i(s):n;e.exports=A},221:(e,t,r)=>{var n=r(52502),i=r(82664),o=r(38496);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==n(e)}},65558:(e,t,r)=>{var n=r(52502),i=r(38496);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==n(e)}},32565:(e,t,r)=>{var n=r(98998),i=r(73635),o=r(26391),s=o&&o.isTypedArray,A=s?i(s):n;e.exports=A},42185:(e,t,r)=>{var n=r(11886),i=r(50994),o=r(41929);e.exports=function(e){return o(e)?n(e):i(e)}},24887:(e,t,r)=>{var n=r(11886),i=r(8372),o=r(41929);e.exports=function(e){return o(e)?n(e,!0):i(e)}},49845:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},7564:function(e,t,r){var n;
-/**
- * @license
- * Lodash <https://lodash.com/>
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */e=r.nmd(e),function(){var i="Expected a function",o="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],A="[object Arguments]",a="[object Array]",c="[object Boolean]",u="[object Date]",l="[object Error]",h="[object Function]",g="[object GeneratorFunction]",f="[object Map]",p="[object Number]",d="[object Object]",C="[object RegExp]",E="[object Set]",I="[object String]",m="[object Symbol]",y="[object WeakMap]",w="[object ArrayBuffer]",B="[object DataView]",Q="[object Float32Array]",v="[object Float64Array]",D="[object Int8Array]",b="[object Int16Array]",S="[object Int32Array]",k="[object Uint8Array]",x="[object Uint16Array]",F="[object Uint32Array]",M=/\b__p \+= '';/g,N=/\b(__p \+=) '' \+/g,R=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,T=RegExp(K.source),P=RegExp(L.source),U=/<%-([\s\S]+?)%>/g,_=/<%([\s\S]+?)%>/g,O=/<%=([\s\S]+?)%>/g,j=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Y=/^\w*$/,G=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,J=/[\\^$.*+?()[\]{}|]/g,H=RegExp(J.source),q=/^\s+|\s+$/g,z=/^\s+/,W=/\s+$/,V=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,X=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,$=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ee=/\\(\\)?/g,te=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,ne=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,oe=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,Ae=/^(?:0|[1-9]\d*)$/,ae=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ce=/($^)/,ue=/['\n\r\u2028\u2029\\]/g,le="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",he="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ge="[\\ud800-\\udfff]",fe="["+he+"]",pe="["+le+"]",de="\\d+",Ce="[\\u2700-\\u27bf]",Ee="[a-z\\xdf-\\xf6\\xf8-\\xff]",Ie="[^\\ud800-\\udfff"+he+de+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",me="\\ud83c[\\udffb-\\udfff]",ye="[^\\ud800-\\udfff]",we="(?:\\ud83c[\\udde6-\\uddff]){2}",Be="[\\ud800-\\udbff][\\udc00-\\udfff]",Qe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ve="(?:"+Ee+"|"+Ie+")",De="(?:"+Qe+"|"+Ie+")",be="(?:"+pe+"|"+me+")"+"?",Se="[\\ufe0e\\ufe0f]?"+be+("(?:\\u200d(?:"+[ye,we,Be].join("|")+")[\\ufe0e\\ufe0f]?"+be+")*"),ke="(?:"+[Ce,we,Be].join("|")+")"+Se,xe="(?:"+[ye+pe+"?",pe,we,Be,ge].join("|")+")",Fe=RegExp("['’]","g"),Me=RegExp(pe,"g"),Ne=RegExp(me+"(?="+me+")|"+xe+Se,"g"),Re=RegExp([Qe+"?"+Ee+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[fe,Qe,"$"].join("|")+")",De+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[fe,Qe+ve,"$"].join("|")+")",Qe+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Qe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",de,ke].join("|"),"g"),Ke=RegExp("[\\u200d\\ud800-\\udfff"+le+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Te=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Pe=-1,Ue={};Ue[Q]=Ue[v]=Ue[D]=Ue[b]=Ue[S]=Ue[k]=Ue["[object Uint8ClampedArray]"]=Ue[x]=Ue[F]=!0,Ue[A]=Ue[a]=Ue[w]=Ue[c]=Ue[B]=Ue[u]=Ue[l]=Ue[h]=Ue[f]=Ue[p]=Ue[d]=Ue[C]=Ue[E]=Ue[I]=Ue[y]=!1;var _e={};_e[A]=_e[a]=_e[w]=_e[B]=_e[c]=_e[u]=_e[Q]=_e[v]=_e[D]=_e[b]=_e[S]=_e[f]=_e[p]=_e[d]=_e[C]=_e[E]=_e[I]=_e[m]=_e[k]=_e["[object Uint8ClampedArray]"]=_e[x]=_e[F]=!0,_e[l]=_e[h]=_e[y]=!1;var Oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},je=parseFloat,Ye=parseInt,Ge="object"==typeof global&&global&&global.Object===Object&&global,Je="object"==typeof self&&self&&self.Object===Object&&self,He=Ge||Je||Function("return this")(),qe=t&&!t.nodeType&&t,ze=qe&&e&&!e.nodeType&&e,We=ze&&ze.exports===qe,Ve=We&&Ge.process,Xe=function(){try{var e=ze&&ze.require&&ze.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch(e){}}(),Ze=Xe&&Xe.isArrayBuffer,$e=Xe&&Xe.isDate,et=Xe&&Xe.isMap,tt=Xe&&Xe.isRegExp,rt=Xe&&Xe.isSet,nt=Xe&&Xe.isTypedArray;function it(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function ot(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i<o;){var s=e[i];t(n,s,r(s),e)}return n}function st(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function At(e,t){for(var r=null==e?0:e.length;r--&&!1!==t(e[r],r,e););return e}function at(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}function ct(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var s=e[r];t(s,r,e)&&(o[i++]=s)}return o}function ut(e,t){return!!(null==e?0:e.length)&&mt(e,t,0)>-1}function lt(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function ht(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}function gt(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}function ft(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}function pt(e,t,r,n){var i=null==e?0:e.length;for(n&&i&&(r=e[--i]);i--;)r=t(r,e[i],i,e);return r}function dt(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var Ct=Qt("length");function Et(e,t,r){var n;return r(e,(function(e,r,i){if(t(e,r,i))return n=r,!1})),n}function It(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function mt(e,t,r){return t==t?function(e,t,r){var n=r-1,i=e.length;for(;++n<i;)if(e[n]===t)return n;return-1}(e,t,r):It(e,wt,r)}function yt(e,t,r,n){for(var i=r-1,o=e.length;++i<o;)if(n(e[i],t))return i;return-1}function wt(e){return e!=e}function Bt(e,t){var r=null==e?0:e.length;return r?bt(e,t)/r:NaN}function Qt(e){return function(t){return null==t?void 0:t[e]}}function vt(e){return function(t){return null==e?void 0:e[t]}}function Dt(e,t,r,n,i){return i(e,(function(e,i,o){r=n?(n=!1,e):t(r,e,i,o)})),r}function bt(e,t){for(var r,n=-1,i=e.length;++n<i;){var o=t(e[n]);void 0!==o&&(r=void 0===r?o:r+o)}return r}function St(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function kt(e){return function(t){return e(t)}}function xt(e,t){return ht(t,(function(t){return e[t]}))}function Ft(e,t){return e.has(t)}function Mt(e,t){for(var r=-1,n=e.length;++r<n&&mt(t,e[r],0)>-1;);return r}function Nt(e,t){for(var r=e.length;r--&&mt(t,e[r],0)>-1;);return r}function Rt(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}var Kt=vt({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",Ĳ:"IJ",ĳ:"ij",Œ:"Oe",œ:"oe",ŉ:"'n",ſ:"s"}),Lt=vt({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Tt(e){return"\\"+Oe[e]}function Pt(e){return Ke.test(e)}function Ut(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function _t(e,t){return function(r){return e(t(r))}}function Ot(e,t){for(var r=-1,n=e.length,i=0,s=[];++r<n;){var A=e[r];A!==t&&A!==o||(e[r]=o,s[i++]=r)}return s}function jt(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}function Yt(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=[e,e]})),r}function Gt(e){return Pt(e)?function(e){var t=Ne.lastIndex=0;for(;Ne.test(e);)++t;return t}(e):Ct(e)}function Jt(e){return Pt(e)?function(e){return e.match(Ne)||[]}(e):function(e){return e.split("")}(e)}var Ht=vt({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"});var qt=function e(t){var r,n=(t=null==t?He:qt.defaults(He.Object(),t,qt.pick(He,Te))).Array,le=t.Date,he=t.Error,ge=t.Function,fe=t.Math,pe=t.Object,de=t.RegExp,Ce=t.String,Ee=t.TypeError,Ie=n.prototype,me=ge.prototype,ye=pe.prototype,we=t["__core-js_shared__"],Be=me.toString,Qe=ye.hasOwnProperty,ve=0,De=(r=/[^.]+$/.exec(we&&we.keys&&we.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",be=ye.toString,Se=Be.call(pe),ke=He._,xe=de("^"+Be.call(Qe).replace(J,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ne=We?t.Buffer:void 0,Ke=t.Symbol,Oe=t.Uint8Array,Ge=Ne?Ne.allocUnsafe:void 0,Je=_t(pe.getPrototypeOf,pe),qe=pe.create,ze=ye.propertyIsEnumerable,Ve=Ie.splice,Xe=Ke?Ke.isConcatSpreadable:void 0,Ct=Ke?Ke.iterator:void 0,vt=Ke?Ke.toStringTag:void 0,zt=function(){try{var e=$i(pe,"defineProperty");return e({},"",{}),e}catch(e){}}(),Wt=t.clearTimeout!==He.clearTimeout&&t.clearTimeout,Vt=le&&le.now!==He.Date.now&&le.now,Xt=t.setTimeout!==He.setTimeout&&t.setTimeout,Zt=fe.ceil,$t=fe.floor,er=pe.getOwnPropertySymbols,tr=Ne?Ne.isBuffer:void 0,rr=t.isFinite,nr=Ie.join,ir=_t(pe.keys,pe),or=fe.max,sr=fe.min,Ar=le.now,ar=t.parseInt,cr=fe.random,ur=Ie.reverse,lr=$i(t,"DataView"),hr=$i(t,"Map"),gr=$i(t,"Promise"),fr=$i(t,"Set"),pr=$i(t,"WeakMap"),dr=$i(pe,"create"),Cr=pr&&new pr,Er={},Ir=bo(lr),mr=bo(hr),yr=bo(gr),wr=bo(fr),Br=bo(pr),Qr=Ke?Ke.prototype:void 0,vr=Qr?Qr.valueOf:void 0,Dr=Qr?Qr.toString:void 0;function br(e){if(Gs(e)&&!Ns(e)&&!(e instanceof Fr)){if(e instanceof xr)return e;if(Qe.call(e,"__wrapped__"))return So(e)}return new xr(e)}var Sr=function(){function e(){}return function(t){if(!Ys(t))return{};if(qe)return qe(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();function kr(){}function xr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function Fr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Nr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Rr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Kr(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new Rr;++t<r;)this.add(e[t])}function Lr(e){var t=this.__data__=new Nr(e);this.size=t.size}function Tr(e,t){var r=Ns(e),n=!r&&Ms(e),i=!r&&!n&&Ts(e),o=!r&&!n&&!i&&Zs(e),s=r||n||i||o,A=s?St(e.length,Ce):[],a=A.length;for(var c in e)!t&&!Qe.call(e,c)||s&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||so(c,a))||A.push(c);return A}function Pr(e){var t=e.length;return t?e[Ln(0,t-1)]:void 0}function Ur(e,t){return Qo(Ci(e),zr(t,0,e.length))}function _r(e){return Qo(Ci(e))}function Or(e,t,r){(void 0!==r&&!ks(e[t],r)||void 0===r&&!(t in e))&&Hr(e,t,r)}function jr(e,t,r){var n=e[t];Qe.call(e,t)&&ks(n,r)&&(void 0!==r||t in e)||Hr(e,t,r)}function Yr(e,t){for(var r=e.length;r--;)if(ks(e[r][0],t))return r;return-1}function Gr(e,t,r,n){return $r(e,(function(e,i,o){t(n,e,r(e),o)})),n}function Jr(e,t){return e&&Ei(t,mA(t),e)}function Hr(e,t,r){"__proto__"==t&&zt?zt(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function qr(e,t){for(var r=-1,i=t.length,o=n(i),s=null==e;++r<i;)o[r]=s?void 0:pA(e,t[r]);return o}function zr(e,t,r){return e==e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}function Wr(e,t,r,n,i,o){var s,a=1&t,l=2&t,y=4&t;if(r&&(s=i?r(e,n,i,o):r(e)),void 0!==s)return s;if(!Ys(e))return e;var M=Ns(e);if(M){if(s=function(e){var t=e.length,r=new e.constructor(t);t&&"string"==typeof e[0]&&Qe.call(e,"index")&&(r.index=e.index,r.input=e.input);return r}(e),!a)return Ci(e,s)}else{var N=ro(e),R=N==h||N==g;if(Ts(e))return li(e,a);if(N==d||N==A||R&&!i){if(s=l||R?{}:io(e),!a)return l?function(e,t){return Ei(e,to(e),t)}(e,function(e,t){return e&&Ei(t,yA(t),e)}(s,e)):function(e,t){return Ei(e,eo(e),t)}(e,Jr(s,e))}else{if(!_e[N])return i?e:{};s=function(e,t,r){var n=e.constructor;switch(t){case w:return hi(e);case c:case u:return new n(+e);case B:return function(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case Q:case v:case D:case b:case S:case k:case"[object Uint8ClampedArray]":case x:case F:return gi(e,r);case f:return new n;case p:case I:return new n(e);case C:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case E:return new n;case m:return i=e,vr?pe(vr.call(i)):{}}var i}(e,N,a)}}o||(o=new Lr);var K=o.get(e);if(K)return K;o.set(e,s),Ws(e)?e.forEach((function(n){s.add(Wr(n,t,r,n,e,o))})):Js(e)&&e.forEach((function(n,i){s.set(i,Wr(n,t,r,i,e,o))}));var L=M?void 0:(y?l?Hi:Ji:l?yA:mA)(e);return st(L||e,(function(n,i){L&&(n=e[i=n]),jr(s,i,Wr(n,t,r,i,e,o))})),s}function Vr(e,t,r){var n=r.length;if(null==e)return!n;for(e=pe(e);n--;){var i=r[n],o=t[i],s=e[i];if(void 0===s&&!(i in e)||!o(s))return!1}return!0}function Xr(e,t,r){if("function"!=typeof e)throw new Ee(i);return mo((function(){e.apply(void 0,r)}),t)}function Zr(e,t,r,n){var i=-1,o=ut,s=!0,A=e.length,a=[],c=t.length;if(!A)return a;r&&(t=ht(t,kt(r))),n?(o=lt,s=!1):t.length>=200&&(o=Ft,s=!1,t=new Kr(t));e:for(;++i<A;){var u=e[i],l=null==r?u:r(u);if(u=n||0!==u?u:0,s&&l==l){for(var h=c;h--;)if(t[h]===l)continue e;a.push(u)}else o(t,l,n)||a.push(u)}return a}br.templateSettings={escape:U,evaluate:_,interpolate:O,variable:"",imports:{_:br}},br.prototype=kr.prototype,br.prototype.constructor=br,xr.prototype=Sr(kr.prototype),xr.prototype.constructor=xr,Fr.prototype=Sr(kr.prototype),Fr.prototype.constructor=Fr,Mr.prototype.clear=function(){this.__data__=dr?dr(null):{},this.size=0},Mr.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Mr.prototype.get=function(e){var t=this.__data__;if(dr){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return Qe.call(t,e)?t[e]:void 0},Mr.prototype.has=function(e){var t=this.__data__;return dr?void 0!==t[e]:Qe.call(t,e)},Mr.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=dr&&void 0===t?"__lodash_hash_undefined__":t,this},Nr.prototype.clear=function(){this.__data__=[],this.size=0},Nr.prototype.delete=function(e){var t=this.__data__,r=Yr(t,e);return!(r<0)&&(r==t.length-1?t.pop():Ve.call(t,r,1),--this.size,!0)},Nr.prototype.get=function(e){var t=this.__data__,r=Yr(t,e);return r<0?void 0:t[r][1]},Nr.prototype.has=function(e){return Yr(this.__data__,e)>-1},Nr.prototype.set=function(e,t){var r=this.__data__,n=Yr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},Rr.prototype.clear=function(){this.size=0,this.__data__={hash:new Mr,map:new(hr||Nr),string:new Mr}},Rr.prototype.delete=function(e){var t=Xi(this,e).delete(e);return this.size-=t?1:0,t},Rr.prototype.get=function(e){return Xi(this,e).get(e)},Rr.prototype.has=function(e){return Xi(this,e).has(e)},Rr.prototype.set=function(e,t){var r=Xi(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},Kr.prototype.add=Kr.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Kr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.clear=function(){this.__data__=new Nr,this.size=0},Lr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Lr.prototype.get=function(e){return this.__data__.get(e)},Lr.prototype.has=function(e){return this.__data__.has(e)},Lr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Nr){var n=r.__data__;if(!hr||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Rr(n)}return r.set(e,t),this.size=r.size,this};var $r=yi(an),en=yi(cn,!0);function tn(e,t){var r=!0;return $r(e,(function(e,n,i){return r=!!t(e,n,i)})),r}function rn(e,t,r){for(var n=-1,i=e.length;++n<i;){var o=e[n],s=t(o);if(null!=s&&(void 0===A?s==s&&!Xs(s):r(s,A)))var A=s,a=o}return a}function nn(e,t){var r=[];return $r(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function on(e,t,r,n,i){var o=-1,s=e.length;for(r||(r=oo),i||(i=[]);++o<s;){var A=e[o];t>0&&r(A)?t>1?on(A,t-1,r,n,i):gt(i,A):n||(i[i.length]=A)}return i}var sn=wi(),An=wi(!0);function an(e,t){return e&&sn(e,t,mA)}function cn(e,t){return e&&An(e,t,mA)}function un(e,t){return ct(t,(function(t){return _s(e[t])}))}function ln(e,t){for(var r=0,n=(t=Ai(t,e)).length;null!=e&&r<n;)e=e[Do(t[r++])];return r&&r==n?e:void 0}function hn(e,t,r){var n=t(e);return Ns(e)?n:gt(n,r(e))}function gn(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":vt&&vt in pe(e)?function(e){var t=Qe.call(e,vt),r=e[vt];try{e[vt]=void 0;var n=!0}catch(e){}var i=be.call(e);n&&(t?e[vt]=r:delete e[vt]);return i}(e):function(e){return be.call(e)}(e)}function fn(e,t){return e>t}function pn(e,t){return null!=e&&Qe.call(e,t)}function dn(e,t){return null!=e&&t in pe(e)}function Cn(e,t,r){for(var i=r?lt:ut,o=e[0].length,s=e.length,A=s,a=n(s),c=1/0,u=[];A--;){var l=e[A];A&&t&&(l=ht(l,kt(t))),c=sr(l.length,c),a[A]=!r&&(t||o>=120&&l.length>=120)?new Kr(A&&l):void 0}l=e[0];var h=-1,g=a[0];e:for(;++h<o&&u.length<c;){var f=l[h],p=t?t(f):f;if(f=r||0!==f?f:0,!(g?Ft(g,p):i(u,p,r))){for(A=s;--A;){var d=a[A];if(!(d?Ft(d,p):i(e[A],p,r)))continue e}g&&g.push(p),u.push(f)}}return u}function En(e,t,r){var n=null==(e=po(e,t=Ai(t,e)))?e:e[Do(Uo(t))];return null==n?void 0:it(n,e,r)}function In(e){return Gs(e)&&gn(e)==A}function mn(e,t,r,n,i){return e===t||(null==e||null==t||!Gs(e)&&!Gs(t)?e!=e&&t!=t:function(e,t,r,n,i,o){var s=Ns(e),h=Ns(t),g=s?a:ro(e),y=h?a:ro(t),Q=(g=g==A?d:g)==d,v=(y=y==A?d:y)==d,D=g==y;if(D&&Ts(e)){if(!Ts(t))return!1;s=!0,Q=!1}if(D&&!Q)return o||(o=new Lr),s||Zs(e)?Yi(e,t,r,n,i,o):function(e,t,r,n,i,o,s){switch(r){case B:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case w:return!(e.byteLength!=t.byteLength||!o(new Oe(e),new Oe(t)));case c:case u:case p:return ks(+e,+t);case l:return e.name==t.name&&e.message==t.message;case C:case I:return e==t+"";case f:var A=Ut;case E:var a=1&n;if(A||(A=jt),e.size!=t.size&&!a)return!1;var h=s.get(e);if(h)return h==t;n|=2,s.set(e,t);var g=Yi(A(e),A(t),n,i,o,s);return s.delete(e),g;case m:if(vr)return vr.call(e)==vr.call(t)}return!1}(e,t,g,r,n,i,o);if(!(1&r)){var b=Q&&Qe.call(e,"__wrapped__"),S=v&&Qe.call(t,"__wrapped__");if(b||S){var k=b?e.value():e,x=S?t.value():t;return o||(o=new Lr),i(k,x,r,n,o)}}if(!D)return!1;return o||(o=new Lr),function(e,t,r,n,i,o){var s=1&r,A=Ji(e),a=A.length,c=Ji(t).length;if(a!=c&&!s)return!1;var u=a;for(;u--;){var l=A[u];if(!(s?l in t:Qe.call(t,l)))return!1}var h=o.get(e);if(h&&o.get(t))return h==t;var g=!0;o.set(e,t),o.set(t,e);var f=s;for(;++u<a;){l=A[u];var p=e[l],d=t[l];if(n)var C=s?n(d,p,l,t,e,o):n(p,d,l,e,t,o);if(!(void 0===C?p===d||i(p,d,r,n,o):C)){g=!1;break}f||(f="constructor"==l)}if(g&&!f){var E=e.constructor,I=t.constructor;E==I||!("constructor"in e)||!("constructor"in t)||"function"==typeof E&&E instanceof E&&"function"==typeof I&&I instanceof I||(g=!1)}return o.delete(e),o.delete(t),g}(e,t,r,n,i,o)}(e,t,r,n,mn,i))}function yn(e,t,r,n){var i=r.length,o=i,s=!n;if(null==e)return!o;for(e=pe(e);i--;){var A=r[i];if(s&&A[2]?A[1]!==e[A[0]]:!(A[0]in e))return!1}for(;++i<o;){var a=(A=r[i])[0],c=e[a],u=A[1];if(s&&A[2]){if(void 0===c&&!(a in e))return!1}else{var l=new Lr;if(n)var h=n(c,u,a,e,t,l);if(!(void 0===h?mn(u,c,3,n,l):h))return!1}}return!0}function wn(e){return!(!Ys(e)||(t=e,De&&De in t))&&(_s(e)?xe:oe).test(bo(e));var t}function Bn(e){return"function"==typeof e?e:null==e?HA:"object"==typeof e?Ns(e)?kn(e[0],e[1]):Sn(e):ta(e)}function Qn(e){if(!lo(e))return ir(e);var t=[];for(var r in pe(e))Qe.call(e,r)&&"constructor"!=r&&t.push(r);return t}function vn(e){if(!Ys(e))return function(e){var t=[];if(null!=e)for(var r in pe(e))t.push(r);return t}(e);var t=lo(e),r=[];for(var n in e)("constructor"!=n||!t&&Qe.call(e,n))&&r.push(n);return r}function Dn(e,t){return e<t}function bn(e,t){var r=-1,i=Ks(e)?n(e.length):[];return $r(e,(function(e,n,o){i[++r]=t(e,n,o)})),i}function Sn(e){var t=Zi(e);return 1==t.length&&t[0][2]?go(t[0][0],t[0][1]):function(r){return r===e||yn(r,e,t)}}function kn(e,t){return ao(e)&&ho(t)?go(Do(e),t):function(r){var n=pA(r,e);return void 0===n&&n===t?dA(r,e):mn(t,n,3)}}function xn(e,t,r,n,i){e!==t&&sn(t,(function(o,s){if(i||(i=new Lr),Ys(o))!function(e,t,r,n,i,o,s){var A=Eo(e,r),a=Eo(t,r),c=s.get(a);if(c)return void Or(e,r,c);var u=o?o(A,a,r+"",e,t,s):void 0,l=void 0===u;if(l){var h=Ns(a),g=!h&&Ts(a),f=!h&&!g&&Zs(a);u=a,h||g||f?Ns(A)?u=A:Ls(A)?u=Ci(A):g?(l=!1,u=li(a,!0)):f?(l=!1,u=gi(a,!0)):u=[]:qs(a)||Ms(a)?(u=A,Ms(A)?u=sA(A):Ys(A)&&!_s(A)||(u=io(a))):l=!1}l&&(s.set(a,u),i(u,a,n,o,s),s.delete(a));Or(e,r,u)}(e,t,s,r,xn,n,i);else{var A=n?n(Eo(e,s),o,s+"",e,t,i):void 0;void 0===A&&(A=o),Or(e,s,A)}}),yA)}function Fn(e,t){var r=e.length;if(r)return so(t+=t<0?r:0,r)?e[t]:void 0}function Mn(e,t,r){var n=-1;return t=ht(t.length?t:[HA],kt(Vi())),function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}(bn(e,(function(e,r,i){return{criteria:ht(t,(function(t){return t(e)})),index:++n,value:e}})),(function(e,t){return function(e,t,r){var n=-1,i=e.criteria,o=t.criteria,s=i.length,A=r.length;for(;++n<s;){var a=fi(i[n],o[n]);if(a){if(n>=A)return a;var c=r[n];return a*("desc"==c?-1:1)}}return e.index-t.index}(e,t,r)}))}function Nn(e,t,r){for(var n=-1,i=t.length,o={};++n<i;){var s=t[n],A=ln(e,s);r(A,s)&&On(o,Ai(s,e),A)}return o}function Rn(e,t,r,n){var i=n?yt:mt,o=-1,s=t.length,A=e;for(e===t&&(t=Ci(t)),r&&(A=ht(e,kt(r)));++o<s;)for(var a=0,c=t[o],u=r?r(c):c;(a=i(A,u,a,n))>-1;)A!==e&&Ve.call(A,a,1),Ve.call(e,a,1);return e}function Kn(e,t){for(var r=e?t.length:0,n=r-1;r--;){var i=t[r];if(r==n||i!==o){var o=i;so(i)?Ve.call(e,i,1):$n(e,i)}}return e}function Ln(e,t){return e+$t(cr()*(t-e+1))}function Tn(e,t){var r="";if(!e||t<1||t>9007199254740991)return r;do{t%2&&(r+=e),(t=$t(t/2))&&(e+=e)}while(t);return r}function Pn(e,t){return yo(fo(e,t,HA),e+"")}function Un(e){return Pr(kA(e))}function _n(e,t){var r=kA(e);return Qo(r,zr(t,0,r.length))}function On(e,t,r,n){if(!Ys(e))return e;for(var i=-1,o=(t=Ai(t,e)).length,s=o-1,A=e;null!=A&&++i<o;){var a=Do(t[i]),c=r;if(i!=s){var u=A[a];void 0===(c=n?n(u,a,A):void 0)&&(c=Ys(u)?u:so(t[i+1])?[]:{})}jr(A,a,c),A=A[a]}return e}var jn=Cr?function(e,t){return Cr.set(e,t),e}:HA,Yn=zt?function(e,t){return zt(e,"toString",{configurable:!0,enumerable:!1,value:YA(t),writable:!0})}:HA;function Gn(e){return Qo(kA(e))}function Jn(e,t,r){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=n(o);++i<o;)s[i]=e[i+t];return s}function Hn(e,t){var r;return $r(e,(function(e,n,i){return!(r=t(e,n,i))})),!!r}function qn(e,t,r){var n=0,i=null==e?n:e.length;if("number"==typeof t&&t==t&&i<=2147483647){for(;n<i;){var o=n+i>>>1,s=e[o];null!==s&&!Xs(s)&&(r?s<=t:s<t)?n=o+1:i=o}return i}return zn(e,t,HA,r)}function zn(e,t,r,n){t=r(t);for(var i=0,o=null==e?0:e.length,s=t!=t,A=null===t,a=Xs(t),c=void 0===t;i<o;){var u=$t((i+o)/2),l=r(e[u]),h=void 0!==l,g=null===l,f=l==l,p=Xs(l);if(s)var d=n||f;else d=c?f&&(n||h):A?f&&h&&(n||!g):a?f&&h&&!g&&(n||!p):!g&&!p&&(n?l<=t:l<t);d?i=u+1:o=u}return sr(o,4294967294)}function Wn(e,t){for(var r=-1,n=e.length,i=0,o=[];++r<n;){var s=e[r],A=t?t(s):s;if(!r||!ks(A,a)){var a=A;o[i++]=0===s?0:s}}return o}function Vn(e){return"number"==typeof e?e:Xs(e)?NaN:+e}function Xn(e){if("string"==typeof e)return e;if(Ns(e))return ht(e,Xn)+"";if(Xs(e))return Dr?Dr.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Zn(e,t,r){var n=-1,i=ut,o=e.length,s=!0,A=[],a=A;if(r)s=!1,i=lt;else if(o>=200){var c=t?null:Ti(e);if(c)return jt(c);s=!1,i=Ft,a=new Kr}else a=t?[]:A;e:for(;++n<o;){var u=e[n],l=t?t(u):u;if(u=r||0!==u?u:0,s&&l==l){for(var h=a.length;h--;)if(a[h]===l)continue e;t&&a.push(l),A.push(u)}else i(a,l,r)||(a!==A&&a.push(l),A.push(u))}return A}function $n(e,t){return null==(e=po(e,t=Ai(t,e)))||delete e[Do(Uo(t))]}function ei(e,t,r,n){return On(e,t,r(ln(e,t)),n)}function ti(e,t,r,n){for(var i=e.length,o=n?i:-1;(n?o--:++o<i)&&t(e[o],o,e););return r?Jn(e,n?0:o,n?o+1:i):Jn(e,n?o+1:0,n?i:o)}function ri(e,t){var r=e;return r instanceof Fr&&(r=r.value()),ft(t,(function(e,t){return t.func.apply(t.thisArg,gt([e],t.args))}),r)}function ni(e,t,r){var i=e.length;if(i<2)return i?Zn(e[0]):[];for(var o=-1,s=n(i);++o<i;)for(var A=e[o],a=-1;++a<i;)a!=o&&(s[o]=Zr(s[o]||A,e[a],t,r));return Zn(on(s,1),t,r)}function ii(e,t,r){for(var n=-1,i=e.length,o=t.length,s={};++n<i;){var A=n<o?t[n]:void 0;r(s,e[n],A)}return s}function oi(e){return Ls(e)?e:[]}function si(e){return"function"==typeof e?e:HA}function Ai(e,t){return Ns(e)?e:ao(e,t)?[e]:vo(AA(e))}var ai=Pn;function ci(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:Jn(e,t,r)}var ui=Wt||function(e){return He.clearTimeout(e)};function li(e,t){if(t)return e.slice();var r=e.length,n=Ge?Ge(r):new e.constructor(r);return e.copy(n),n}function hi(e){var t=new e.constructor(e.byteLength);return new Oe(t).set(new Oe(e)),t}function gi(e,t){var r=t?hi(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function fi(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=e==e,o=Xs(e),s=void 0!==t,A=null===t,a=t==t,c=Xs(t);if(!A&&!c&&!o&&e>t||o&&s&&a&&!A&&!c||n&&s&&a||!r&&a||!i)return 1;if(!n&&!o&&!c&&e<t||c&&r&&i&&!n&&!o||A&&r&&i||!s&&i||!a)return-1}return 0}function pi(e,t,r,i){for(var o=-1,s=e.length,A=r.length,a=-1,c=t.length,u=or(s-A,0),l=n(c+u),h=!i;++a<c;)l[a]=t[a];for(;++o<A;)(h||o<s)&&(l[r[o]]=e[o]);for(;u--;)l[a++]=e[o++];return l}function di(e,t,r,i){for(var o=-1,s=e.length,A=-1,a=r.length,c=-1,u=t.length,l=or(s-a,0),h=n(l+u),g=!i;++o<l;)h[o]=e[o];for(var f=o;++c<u;)h[f+c]=t[c];for(;++A<a;)(g||o<s)&&(h[f+r[A]]=e[o++]);return h}function Ci(e,t){var r=-1,i=e.length;for(t||(t=n(i));++r<i;)t[r]=e[r];return t}function Ei(e,t,r,n){var i=!r;r||(r={});for(var o=-1,s=t.length;++o<s;){var A=t[o],a=n?n(r[A],e[A],A,r,e):void 0;void 0===a&&(a=e[A]),i?Hr(r,A,a):jr(r,A,a)}return r}function Ii(e,t){return function(r,n){var i=Ns(r)?ot:Gr,o=t?t():{};return i(r,e,Vi(n,2),o)}}function mi(e){return Pn((function(t,r){var n=-1,i=r.length,o=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,s&&Ao(r[0],r[1],s)&&(o=i<3?void 0:o,i=1),t=pe(t);++n<i;){var A=r[n];A&&e(t,A,n,o)}return t}))}function yi(e,t){return function(r,n){if(null==r)return r;if(!Ks(r))return e(r,n);for(var i=r.length,o=t?i:-1,s=pe(r);(t?o--:++o<i)&&!1!==n(s[o],o,s););return r}}function wi(e){return function(t,r,n){for(var i=-1,o=pe(t),s=n(t),A=s.length;A--;){var a=s[e?A:++i];if(!1===r(o[a],a,o))break}return t}}function Bi(e){return function(t){var r=Pt(t=AA(t))?Jt(t):void 0,n=r?r[0]:t.charAt(0),i=r?ci(r,1).join(""):t.slice(1);return n[e]()+i}}function Qi(e){return function(t){return ft(_A(MA(t).replace(Fe,"")),e,"")}}function vi(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=Sr(e.prototype),n=e.apply(r,t);return Ys(n)?n:r}}function Di(e){return function(t,r,n){var i=pe(t);if(!Ks(t)){var o=Vi(r,3);t=mA(t),r=function(e){return o(i[e],e,i)}}var s=e(t,r,n);return s>-1?i[o?t[s]:s]:void 0}}function bi(e){return Gi((function(t){var r=t.length,n=r,o=xr.prototype.thru;for(e&&t.reverse();n--;){var s=t[n];if("function"!=typeof s)throw new Ee(i);if(o&&!A&&"wrapper"==zi(s))var A=new xr([],!0)}for(n=A?n:r;++n<r;){var a=zi(s=t[n]),c="wrapper"==a?qi(s):void 0;A=c&&co(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?A[zi(c[0])].apply(A,c[3]):1==s.length&&co(s)?A[a]():A.thru(s)}return function(){var e=arguments,n=e[0];if(A&&1==e.length&&Ns(n))return A.plant(n).value();for(var i=0,o=r?t[i].apply(this,e):n;++i<r;)o=t[i].call(this,o);return o}}))}function Si(e,t,r,i,o,s,A,a,c,u){var l=128&t,h=1&t,g=2&t,f=24&t,p=512&t,d=g?void 0:vi(e);return function C(){for(var E=arguments.length,I=n(E),m=E;m--;)I[m]=arguments[m];if(f)var y=Wi(C),w=Rt(I,y);if(i&&(I=pi(I,i,o,f)),s&&(I=di(I,s,A,f)),E-=w,f&&E<u){var B=Ot(I,y);return Ki(e,t,Si,C.placeholder,r,I,B,a,c,u-E)}var Q=h?r:this,v=g?Q[e]:e;return E=I.length,a?I=Co(I,a):p&&E>1&&I.reverse(),l&&c<E&&(I.length=c),this&&this!==He&&this instanceof C&&(v=d||vi(v)),v.apply(Q,I)}}function ki(e,t){return function(r,n){return function(e,t,r,n){return an(e,(function(e,i,o){t(n,r(e),i,o)})),n}(r,e,t(n),{})}}function xi(e,t){return function(r,n){var i;if(void 0===r&&void 0===n)return t;if(void 0!==r&&(i=r),void 0!==n){if(void 0===i)return n;"string"==typeof r||"string"==typeof n?(r=Xn(r),n=Xn(n)):(r=Vn(r),n=Vn(n)),i=e(r,n)}return i}}function Fi(e){return Gi((function(t){return t=ht(t,kt(Vi())),Pn((function(r){var n=this;return e(t,(function(e){return it(e,n,r)}))}))}))}function Mi(e,t){var r=(t=void 0===t?" ":Xn(t)).length;if(r<2)return r?Tn(t,e):t;var n=Tn(t,Zt(e/Gt(t)));return Pt(t)?ci(Jt(n),0,e).join(""):n.slice(0,e)}function Ni(e){return function(t,r,i){return i&&"number"!=typeof i&&Ao(t,r,i)&&(r=i=void 0),t=rA(t),void 0===r?(r=t,t=0):r=rA(r),function(e,t,r,i){for(var o=-1,s=or(Zt((t-e)/(r||1)),0),A=n(s);s--;)A[i?s:++o]=e,e+=r;return A}(t,r,i=void 0===i?t<r?1:-1:rA(i),e)}}function Ri(e){return function(t,r){return"string"==typeof t&&"string"==typeof r||(t=oA(t),r=oA(r)),e(t,r)}}function Ki(e,t,r,n,i,o,s,A,a,c){var u=8&t;t|=u?32:64,4&(t&=~(u?64:32))||(t&=-4);var l=[e,t,i,u?o:void 0,u?s:void 0,u?void 0:o,u?void 0:s,A,a,c],h=r.apply(void 0,l);return co(e)&&Io(h,l),h.placeholder=n,wo(h,e,t)}function Li(e){var t=fe[e];return function(e,r){if(e=oA(e),(r=null==r?0:sr(nA(r),292))&&rr(e)){var n=(AA(e)+"e").split("e");return+((n=(AA(t(n[0]+"e"+(+n[1]+r)))+"e").split("e"))[0]+"e"+(+n[1]-r))}return t(e)}}var Ti=fr&&1/jt(new fr([,-0]))[1]==1/0?function(e){return new fr(e)}:XA;function Pi(e){return function(t){var r=ro(t);return r==f?Ut(t):r==E?Yt(t):function(e,t){return ht(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Ui(e,t,r,s,A,a,c,u){var l=2&t;if(!l&&"function"!=typeof e)throw new Ee(i);var h=s?s.length:0;if(h||(t&=-97,s=A=void 0),c=void 0===c?c:or(nA(c),0),u=void 0===u?u:nA(u),h-=A?A.length:0,64&t){var g=s,f=A;s=A=void 0}var p=l?void 0:qi(e),d=[e,t,r,s,A,g,f,a,c,u];if(p&&function(e,t){var r=e[1],n=t[1],i=r|n,s=i<131,A=128==n&&8==r||128==n&&256==r&&e[7].length<=t[8]||384==n&&t[7].length<=t[8]&&8==r;if(!s&&!A)return e;1&n&&(e[2]=t[2],i|=1&r?0:4);var a=t[3];if(a){var c=e[3];e[3]=c?pi(c,a,t[4]):a,e[4]=c?Ot(e[3],o):t[4]}(a=t[5])&&(c=e[5],e[5]=c?di(c,a,t[6]):a,e[6]=c?Ot(e[5],o):t[6]);(a=t[7])&&(e[7]=a);128&n&&(e[8]=null==e[8]?t[8]:sr(e[8],t[8]));null==e[9]&&(e[9]=t[9]);e[0]=t[0],e[1]=i}(d,p),e=d[0],t=d[1],r=d[2],s=d[3],A=d[4],!(u=d[9]=void 0===d[9]?l?0:e.length:or(d[9]-h,0))&&24&t&&(t&=-25),t&&1!=t)C=8==t||16==t?function(e,t,r){var i=vi(e);return function o(){for(var s=arguments.length,A=n(s),a=s,c=Wi(o);a--;)A[a]=arguments[a];var u=s<3&&A[0]!==c&&A[s-1]!==c?[]:Ot(A,c);if((s-=u.length)<r)return Ki(e,t,Si,o.placeholder,void 0,A,u,void 0,void 0,r-s);var l=this&&this!==He&&this instanceof o?i:e;return it(l,this,A)}}(e,t,u):32!=t&&33!=t||A.length?Si.apply(void 0,d):function(e,t,r,i){var o=1&t,s=vi(e);return function t(){for(var A=-1,a=arguments.length,c=-1,u=i.length,l=n(u+a),h=this&&this!==He&&this instanceof t?s:e;++c<u;)l[c]=i[c];for(;a--;)l[c++]=arguments[++A];return it(h,o?r:this,l)}}(e,t,r,s);else var C=function(e,t,r){var n=1&t,i=vi(e);return function t(){var o=this&&this!==He&&this instanceof t?i:e;return o.apply(n?r:this,arguments)}}(e,t,r);return wo((p?jn:Io)(C,d),e,t)}function _i(e,t,r,n){return void 0===e||ks(e,ye[r])&&!Qe.call(n,r)?t:e}function Oi(e,t,r,n,i,o){return Ys(e)&&Ys(t)&&(o.set(t,e),xn(e,t,void 0,Oi,o),o.delete(t)),e}function ji(e){return qs(e)?void 0:e}function Yi(e,t,r,n,i,o){var s=1&r,A=e.length,a=t.length;if(A!=a&&!(s&&a>A))return!1;var c=o.get(e);if(c&&o.get(t))return c==t;var u=-1,l=!0,h=2&r?new Kr:void 0;for(o.set(e,t),o.set(t,e);++u<A;){var g=e[u],f=t[u];if(n)var p=s?n(f,g,u,t,e,o):n(g,f,u,e,t,o);if(void 0!==p){if(p)continue;l=!1;break}if(h){if(!dt(t,(function(e,t){if(!Ft(h,t)&&(g===e||i(g,e,r,n,o)))return h.push(t)}))){l=!1;break}}else if(g!==f&&!i(g,f,r,n,o)){l=!1;break}}return o.delete(e),o.delete(t),l}function Gi(e){return yo(fo(e,void 0,Ro),e+"")}function Ji(e){return hn(e,mA,eo)}function Hi(e){return hn(e,yA,to)}var qi=Cr?function(e){return Cr.get(e)}:XA;function zi(e){for(var t=e.name+"",r=Er[t],n=Qe.call(Er,t)?r.length:0;n--;){var i=r[n],o=i.func;if(null==o||o==e)return i.name}return t}function Wi(e){return(Qe.call(br,"placeholder")?br:e).placeholder}function Vi(){var e=br.iteratee||qA;return e=e===qA?Bn:e,arguments.length?e(arguments[0],arguments[1]):e}function Xi(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function Zi(e){for(var t=mA(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,ho(i)]}return t}function $i(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return wn(r)?r:void 0}var eo=er?function(e){return null==e?[]:(e=pe(e),ct(er(e),(function(t){return ze.call(e,t)})))}:ia,to=er?function(e){for(var t=[];e;)gt(t,eo(e)),e=Je(e);return t}:ia,ro=gn;function no(e,t,r){for(var n=-1,i=(t=Ai(t,e)).length,o=!1;++n<i;){var s=Do(t[n]);if(!(o=null!=e&&r(e,s)))break;e=e[s]}return o||++n!=i?o:!!(i=null==e?0:e.length)&&js(i)&&so(s,i)&&(Ns(e)||Ms(e))}function io(e){return"function"!=typeof e.constructor||lo(e)?{}:Sr(Je(e))}function oo(e){return Ns(e)||Ms(e)||!!(Xe&&e&&e[Xe])}function so(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&Ae.test(e))&&e>-1&&e%1==0&&e<t}function Ao(e,t,r){if(!Ys(r))return!1;var n=typeof t;return!!("number"==n?Ks(r)&&so(t,r.length):"string"==n&&t in r)&&ks(r[t],e)}function ao(e,t){if(Ns(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!Xs(e))||(Y.test(e)||!j.test(e)||null!=t&&e in pe(t))}function co(e){var t=zi(e),r=br[t];if("function"!=typeof r||!(t in Fr.prototype))return!1;if(e===r)return!0;var n=qi(r);return!!n&&e===n[0]}(lr&&ro(new lr(new ArrayBuffer(1)))!=B||hr&&ro(new hr)!=f||gr&&"[object Promise]"!=ro(gr.resolve())||fr&&ro(new fr)!=E||pr&&ro(new pr)!=y)&&(ro=function(e){var t=gn(e),r=t==d?e.constructor:void 0,n=r?bo(r):"";if(n)switch(n){case Ir:return B;case mr:return f;case yr:return"[object Promise]";case wr:return E;case Br:return y}return t});var uo=we?_s:oa;function lo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ho(e){return e==e&&!Ys(e)}function go(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in pe(r)))}}function fo(e,t,r){return t=or(void 0===t?e.length-1:t,0),function(){for(var i=arguments,o=-1,s=or(i.length-t,0),A=n(s);++o<s;)A[o]=i[t+o];o=-1;for(var a=n(t+1);++o<t;)a[o]=i[o];return a[t]=r(A),it(e,this,a)}}function po(e,t){return t.length<2?e:ln(e,Jn(t,0,-1))}function Co(e,t){for(var r=e.length,n=sr(t.length,r),i=Ci(e);n--;){var o=t[n];e[n]=so(o,r)?i[o]:void 0}return e}function Eo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Io=Bo(jn),mo=Xt||function(e,t){return He.setTimeout(e,t)},yo=Bo(Yn);function wo(e,t,r){var n=t+"";return yo(e,function(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(V,"{\n/* [wrapped with "+t+"] */\n")}(n,function(e,t){return st(s,(function(r){var n="_."+r[0];t&r[1]&&!ut(e,n)&&e.push(n)})),e.sort()}(function(e){var t=e.match(X);return t?t[1].split(Z):[]}(n),r)))}function Bo(e){var t=0,r=0;return function(){var n=Ar(),i=16-(n-r);if(r=n,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Qo(e,t){var r=-1,n=e.length,i=n-1;for(t=void 0===t?n:t;++r<t;){var o=Ln(r,i),s=e[o];e[o]=e[r],e[r]=s}return e.length=t,e}var vo=function(e){var t=Bs(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(G,(function(e,r,n,i){t.push(n?i.replace(ee,"$1"):r||e)})),t}));function Do(e){if("string"==typeof e||Xs(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function bo(e){if(null!=e){try{return Be.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function So(e){if(e instanceof Fr)return e.clone();var t=new xr(e.__wrapped__,e.__chain__);return t.__actions__=Ci(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var ko=Pn((function(e,t){return Ls(e)?Zr(e,on(t,1,Ls,!0)):[]})),xo=Pn((function(e,t){var r=Uo(t);return Ls(r)&&(r=void 0),Ls(e)?Zr(e,on(t,1,Ls,!0),Vi(r,2)):[]})),Fo=Pn((function(e,t){var r=Uo(t);return Ls(r)&&(r=void 0),Ls(e)?Zr(e,on(t,1,Ls,!0),void 0,r):[]}));function Mo(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:nA(r);return i<0&&(i=or(n+i,0)),It(e,Vi(t,3),i)}function No(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=n-1;return void 0!==r&&(i=nA(r),i=r<0?or(n+i,0):sr(i,n-1)),It(e,Vi(t,3),i,!0)}function Ro(e){return(null==e?0:e.length)?on(e,1):[]}function Ko(e){return e&&e.length?e[0]:void 0}var Lo=Pn((function(e){var t=ht(e,oi);return t.length&&t[0]===e[0]?Cn(t):[]})),To=Pn((function(e){var t=Uo(e),r=ht(e,oi);return t===Uo(r)?t=void 0:r.pop(),r.length&&r[0]===e[0]?Cn(r,Vi(t,2)):[]})),Po=Pn((function(e){var t=Uo(e),r=ht(e,oi);return(t="function"==typeof t?t:void 0)&&r.pop(),r.length&&r[0]===e[0]?Cn(r,void 0,t):[]}));function Uo(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var _o=Pn(Oo);function Oo(e,t){return e&&e.length&&t&&t.length?Rn(e,t):e}var jo=Gi((function(e,t){var r=null==e?0:e.length,n=qr(e,t);return Kn(e,ht(t,(function(e){return so(e,r)?+e:e})).sort(fi)),n}));function Yo(e){return null==e?e:ur.call(e)}var Go=Pn((function(e){return Zn(on(e,1,Ls,!0))})),Jo=Pn((function(e){var t=Uo(e);return Ls(t)&&(t=void 0),Zn(on(e,1,Ls,!0),Vi(t,2))})),Ho=Pn((function(e){var t=Uo(e);return t="function"==typeof t?t:void 0,Zn(on(e,1,Ls,!0),void 0,t)}));function qo(e){if(!e||!e.length)return[];var t=0;return e=ct(e,(function(e){if(Ls(e))return t=or(e.length,t),!0})),St(t,(function(t){return ht(e,Qt(t))}))}function zo(e,t){if(!e||!e.length)return[];var r=qo(e);return null==t?r:ht(r,(function(e){return it(t,void 0,e)}))}var Wo=Pn((function(e,t){return Ls(e)?Zr(e,t):[]})),Vo=Pn((function(e){return ni(ct(e,Ls))})),Xo=Pn((function(e){var t=Uo(e);return Ls(t)&&(t=void 0),ni(ct(e,Ls),Vi(t,2))})),Zo=Pn((function(e){var t=Uo(e);return t="function"==typeof t?t:void 0,ni(ct(e,Ls),void 0,t)})),$o=Pn(qo);var es=Pn((function(e){var t=e.length,r=t>1?e[t-1]:void 0;return r="function"==typeof r?(e.pop(),r):void 0,zo(e,r)}));function ts(e){var t=br(e);return t.__chain__=!0,t}function rs(e,t){return t(e)}var ns=Gi((function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,i=function(t){return qr(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Fr&&so(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:rs,args:[i],thisArg:void 0}),new xr(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(i)}));var is=Ii((function(e,t,r){Qe.call(e,r)?++e[r]:Hr(e,r,1)}));var os=Di(Mo),ss=Di(No);function As(e,t){return(Ns(e)?st:$r)(e,Vi(t,3))}function as(e,t){return(Ns(e)?At:en)(e,Vi(t,3))}var cs=Ii((function(e,t,r){Qe.call(e,r)?e[r].push(t):Hr(e,r,[t])}));var us=Pn((function(e,t,r){var i=-1,o="function"==typeof t,s=Ks(e)?n(e.length):[];return $r(e,(function(e){s[++i]=o?it(t,e,r):En(e,t,r)})),s})),ls=Ii((function(e,t,r){Hr(e,r,t)}));function hs(e,t){return(Ns(e)?ht:bn)(e,Vi(t,3))}var gs=Ii((function(e,t,r){e[r?0:1].push(t)}),(function(){return[[],[]]}));var fs=Pn((function(e,t){if(null==e)return[];var r=t.length;return r>1&&Ao(e,t[0],t[1])?t=[]:r>2&&Ao(t[0],t[1],t[2])&&(t=[t[0]]),Mn(e,on(t,1),[])})),ps=Vt||function(){return He.Date.now()};function ds(e,t,r){return t=r?void 0:t,Ui(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function Cs(e,t){var r;if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=void 0),r}}var Es=Pn((function(e,t,r){var n=1;if(r.length){var i=Ot(r,Wi(Es));n|=32}return Ui(e,n,t,r,i)})),Is=Pn((function(e,t,r){var n=3;if(r.length){var i=Ot(r,Wi(Is));n|=32}return Ui(t,n,e,r,i)}));function ms(e,t,r){var n,o,s,A,a,c,u=0,l=!1,h=!1,g=!0;if("function"!=typeof e)throw new Ee(i);function f(t){var r=n,i=o;return n=o=void 0,u=t,A=e.apply(i,r)}function p(e){return u=e,a=mo(C,t),l?f(e):A}function d(e){var r=e-c;return void 0===c||r>=t||r<0||h&&e-u>=s}function C(){var e=ps();if(d(e))return E(e);a=mo(C,function(e){var r=t-(e-c);return h?sr(r,s-(e-u)):r}(e))}function E(e){return a=void 0,g&&n?f(e):(n=o=void 0,A)}function I(){var e=ps(),r=d(e);if(n=arguments,o=this,c=e,r){if(void 0===a)return p(c);if(h)return ui(a),a=mo(C,t),f(c)}return void 0===a&&(a=mo(C,t)),A}return t=oA(t)||0,Ys(r)&&(l=!!r.leading,s=(h="maxWait"in r)?or(oA(r.maxWait)||0,t):s,g="trailing"in r?!!r.trailing:g),I.cancel=function(){void 0!==a&&ui(a),u=0,n=c=o=a=void 0},I.flush=function(){return void 0===a?A:E(ps())},I}var ys=Pn((function(e,t){return Xr(e,1,t)})),ws=Pn((function(e,t,r){return Xr(e,oA(t)||0,r)}));function Bs(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ee(i);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(Bs.Cache||Rr),r}function Qs(e){if("function"!=typeof e)throw new Ee(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Bs.Cache=Rr;var vs=ai((function(e,t){var r=(t=1==t.length&&Ns(t[0])?ht(t[0],kt(Vi())):ht(on(t,1),kt(Vi()))).length;return Pn((function(n){for(var i=-1,o=sr(n.length,r);++i<o;)n[i]=t[i].call(this,n[i]);return it(e,this,n)}))})),Ds=Pn((function(e,t){return Ui(e,32,void 0,t,Ot(t,Wi(Ds)))})),bs=Pn((function(e,t){return Ui(e,64,void 0,t,Ot(t,Wi(bs)))})),Ss=Gi((function(e,t){return Ui(e,256,void 0,void 0,void 0,t)}));function ks(e,t){return e===t||e!=e&&t!=t}var xs=Ri(fn),Fs=Ri((function(e,t){return e>=t})),Ms=In(function(){return arguments}())?In:function(e){return Gs(e)&&Qe.call(e,"callee")&&!ze.call(e,"callee")},Ns=n.isArray,Rs=Ze?kt(Ze):function(e){return Gs(e)&&gn(e)==w};function Ks(e){return null!=e&&js(e.length)&&!_s(e)}function Ls(e){return Gs(e)&&Ks(e)}var Ts=tr||oa,Ps=$e?kt($e):function(e){return Gs(e)&&gn(e)==u};function Us(e){if(!Gs(e))return!1;var t=gn(e);return t==l||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qs(e)}function _s(e){if(!Ys(e))return!1;var t=gn(e);return t==h||t==g||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Os(e){return"number"==typeof e&&e==nA(e)}function js(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ys(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Gs(e){return null!=e&&"object"==typeof e}var Js=et?kt(et):function(e){return Gs(e)&&ro(e)==f};function Hs(e){return"number"==typeof e||Gs(e)&&gn(e)==p}function qs(e){if(!Gs(e)||gn(e)!=d)return!1;var t=Je(e);if(null===t)return!0;var r=Qe.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&Be.call(r)==Se}var zs=tt?kt(tt):function(e){return Gs(e)&&gn(e)==C};var Ws=rt?kt(rt):function(e){return Gs(e)&&ro(e)==E};function Vs(e){return"string"==typeof e||!Ns(e)&&Gs(e)&&gn(e)==I}function Xs(e){return"symbol"==typeof e||Gs(e)&&gn(e)==m}var Zs=nt?kt(nt):function(e){return Gs(e)&&js(e.length)&&!!Ue[gn(e)]};var $s=Ri(Dn),eA=Ri((function(e,t){return e<=t}));function tA(e){if(!e)return[];if(Ks(e))return Vs(e)?Jt(e):Ci(e);if(Ct&&e[Ct])return function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[Ct]());var t=ro(e);return(t==f?Ut:t==E?jt:kA)(e)}function rA(e){return e?(e=oA(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function nA(e){var t=rA(e),r=t%1;return t==t?r?t-r:t:0}function iA(e){return e?zr(nA(e),0,4294967295):0}function oA(e){if("number"==typeof e)return e;if(Xs(e))return NaN;if(Ys(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ys(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(q,"");var r=ie.test(e);return r||se.test(e)?Ye(e.slice(2),r?2:8):ne.test(e)?NaN:+e}function sA(e){return Ei(e,yA(e))}function AA(e){return null==e?"":Xn(e)}var aA=mi((function(e,t){if(lo(t)||Ks(t))Ei(t,mA(t),e);else for(var r in t)Qe.call(t,r)&&jr(e,r,t[r])})),cA=mi((function(e,t){Ei(t,yA(t),e)})),uA=mi((function(e,t,r,n){Ei(t,yA(t),e,n)})),lA=mi((function(e,t,r,n){Ei(t,mA(t),e,n)})),hA=Gi(qr);var gA=Pn((function(e,t){e=pe(e);var r=-1,n=t.length,i=n>2?t[2]:void 0;for(i&&Ao(t[0],t[1],i)&&(n=1);++r<n;)for(var o=t[r],s=yA(o),A=-1,a=s.length;++A<a;){var c=s[A],u=e[c];(void 0===u||ks(u,ye[c])&&!Qe.call(e,c))&&(e[c]=o[c])}return e})),fA=Pn((function(e){return e.push(void 0,Oi),it(BA,void 0,e)}));function pA(e,t,r){var n=null==e?void 0:ln(e,t);return void 0===n?r:n}function dA(e,t){return null!=e&&no(e,t,dn)}var CA=ki((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=be.call(t)),e[t]=r}),YA(HA)),EA=ki((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=be.call(t)),Qe.call(e,t)?e[t].push(r):e[t]=[r]}),Vi),IA=Pn(En);function mA(e){return Ks(e)?Tr(e):Qn(e)}function yA(e){return Ks(e)?Tr(e,!0):vn(e)}var wA=mi((function(e,t,r){xn(e,t,r)})),BA=mi((function(e,t,r,n){xn(e,t,r,n)})),QA=Gi((function(e,t){var r={};if(null==e)return r;var n=!1;t=ht(t,(function(t){return t=Ai(t,e),n||(n=t.length>1),t})),Ei(e,Hi(e),r),n&&(r=Wr(r,7,ji));for(var i=t.length;i--;)$n(r,t[i]);return r}));var vA=Gi((function(e,t){return null==e?{}:function(e,t){return Nn(e,t,(function(t,r){return dA(e,r)}))}(e,t)}));function DA(e,t){if(null==e)return{};var r=ht(Hi(e),(function(e){return[e]}));return t=Vi(t),Nn(e,r,(function(e,r){return t(e,r[0])}))}var bA=Pi(mA),SA=Pi(yA);function kA(e){return null==e?[]:xt(e,mA(e))}var xA=Qi((function(e,t,r){return t=t.toLowerCase(),e+(r?FA(t):t)}));function FA(e){return UA(AA(e).toLowerCase())}function MA(e){return(e=AA(e))&&e.replace(ae,Kt).replace(Me,"")}var NA=Qi((function(e,t,r){return e+(r?"-":"")+t.toLowerCase()})),RA=Qi((function(e,t,r){return e+(r?" ":"")+t.toLowerCase()})),KA=Bi("toLowerCase");var LA=Qi((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));var TA=Qi((function(e,t,r){return e+(r?" ":"")+UA(t)}));var PA=Qi((function(e,t,r){return e+(r?" ":"")+t.toUpperCase()})),UA=Bi("toUpperCase");function _A(e,t,r){return e=AA(e),void 0===(t=r?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Re)||[]}(e):function(e){return e.match($)||[]}(e):e.match(t)||[]}var OA=Pn((function(e,t){try{return it(e,void 0,t)}catch(e){return Us(e)?e:new he(e)}})),jA=Gi((function(e,t){return st(t,(function(t){t=Do(t),Hr(e,t,Es(e[t],e))})),e}));function YA(e){return function(){return e}}var GA=bi(),JA=bi(!0);function HA(e){return e}function qA(e){return Bn("function"==typeof e?e:Wr(e,1))}var zA=Pn((function(e,t){return function(r){return En(r,e,t)}})),WA=Pn((function(e,t){return function(r){return En(e,r,t)}}));function VA(e,t,r){var n=mA(t),i=un(t,n);null!=r||Ys(t)&&(i.length||!n.length)||(r=t,t=e,e=this,i=un(t,mA(t)));var o=!(Ys(r)&&"chain"in r&&!r.chain),s=_s(e);return st(i,(function(r){var n=t[r];e[r]=n,s&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__),i=r.__actions__=Ci(this.__actions__);return i.push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,gt([this.value()],arguments))})})),e}function XA(){}var ZA=Fi(ht),$A=Fi(at),ea=Fi(dt);function ta(e){return ao(e)?Qt(Do(e)):function(e){return function(t){return ln(t,e)}}(e)}var ra=Ni(),na=Ni(!0);function ia(){return[]}function oa(){return!1}var sa=xi((function(e,t){return e+t}),0),Aa=Li("ceil"),aa=xi((function(e,t){return e/t}),1),ca=Li("floor");var ua,la=xi((function(e,t){return e*t}),1),ha=Li("round"),ga=xi((function(e,t){return e-t}),0);return br.after=function(e,t){if("function"!=typeof t)throw new Ee(i);return e=nA(e),function(){if(--e<1)return t.apply(this,arguments)}},br.ary=ds,br.assign=aA,br.assignIn=cA,br.assignInWith=uA,br.assignWith=lA,br.at=hA,br.before=Cs,br.bind=Es,br.bindAll=jA,br.bindKey=Is,br.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ns(e)?e:[e]},br.chain=ts,br.chunk=function(e,t,r){t=(r?Ao(e,t,r):void 0===t)?1:or(nA(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var o=0,s=0,A=n(Zt(i/t));o<i;)A[s++]=Jn(e,o,o+=t);return A},br.compact=function(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var o=e[t];o&&(i[n++]=o)}return i},br.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),r=arguments[0],i=e;i--;)t[i-1]=arguments[i];return gt(Ns(r)?Ci(r):[r],on(t,1))},br.cond=function(e){var t=null==e?0:e.length,r=Vi();return e=t?ht(e,(function(e){if("function"!=typeof e[1])throw new Ee(i);return[r(e[0]),e[1]]})):[],Pn((function(r){for(var n=-1;++n<t;){var i=e[n];if(it(i[0],this,r))return it(i[1],this,r)}}))},br.conforms=function(e){return function(e){var t=mA(e);return function(r){return Vr(r,e,t)}}(Wr(e,1))},br.constant=YA,br.countBy=is,br.create=function(e,t){var r=Sr(e);return null==t?r:Jr(r,t)},br.curry=function e(t,r,n){var i=Ui(t,8,void 0,void 0,void 0,void 0,void 0,r=n?void 0:r);return i.placeholder=e.placeholder,i},br.curryRight=function e(t,r,n){var i=Ui(t,16,void 0,void 0,void 0,void 0,void 0,r=n?void 0:r);return i.placeholder=e.placeholder,i},br.debounce=ms,br.defaults=gA,br.defaultsDeep=fA,br.defer=ys,br.delay=ws,br.difference=ko,br.differenceBy=xo,br.differenceWith=Fo,br.drop=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,(t=r||void 0===t?1:nA(t))<0?0:t,n):[]},br.dropRight=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,0,(t=n-(t=r||void 0===t?1:nA(t)))<0?0:t):[]},br.dropRightWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!0,!0):[]},br.dropWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!0):[]},br.fill=function(e,t,r,n){var i=null==e?0:e.length;return i?(r&&"number"!=typeof r&&Ao(e,t,r)&&(r=0,n=i),function(e,t,r,n){var i=e.length;for((r=nA(r))<0&&(r=-r>i?0:i+r),(n=void 0===n||n>i?i:nA(n))<0&&(n+=i),n=r>n?0:iA(n);r<n;)e[r++]=t;return e}(e,t,r,n)):[]},br.filter=function(e,t){return(Ns(e)?ct:nn)(e,Vi(t,3))},br.flatMap=function(e,t){return on(hs(e,t),1)},br.flatMapDeep=function(e,t){return on(hs(e,t),1/0)},br.flatMapDepth=function(e,t,r){return r=void 0===r?1:nA(r),on(hs(e,t),r)},br.flatten=Ro,br.flattenDeep=function(e){return(null==e?0:e.length)?on(e,1/0):[]},br.flattenDepth=function(e,t){return(null==e?0:e.length)?on(e,t=void 0===t?1:nA(t)):[]},br.flip=function(e){return Ui(e,512)},br.flow=GA,br.flowRight=JA,br.fromPairs=function(e){for(var t=-1,r=null==e?0:e.length,n={};++t<r;){var i=e[t];n[i[0]]=i[1]}return n},br.functions=function(e){return null==e?[]:un(e,mA(e))},br.functionsIn=function(e){return null==e?[]:un(e,yA(e))},br.groupBy=cs,br.initial=function(e){return(null==e?0:e.length)?Jn(e,0,-1):[]},br.intersection=Lo,br.intersectionBy=To,br.intersectionWith=Po,br.invert=CA,br.invertBy=EA,br.invokeMap=us,br.iteratee=qA,br.keyBy=ls,br.keys=mA,br.keysIn=yA,br.map=hs,br.mapKeys=function(e,t){var r={};return t=Vi(t,3),an(e,(function(e,n,i){Hr(r,t(e,n,i),e)})),r},br.mapValues=function(e,t){var r={};return t=Vi(t,3),an(e,(function(e,n,i){Hr(r,n,t(e,n,i))})),r},br.matches=function(e){return Sn(Wr(e,1))},br.matchesProperty=function(e,t){return kn(e,Wr(t,1))},br.memoize=Bs,br.merge=wA,br.mergeWith=BA,br.method=zA,br.methodOf=WA,br.mixin=VA,br.negate=Qs,br.nthArg=function(e){return e=nA(e),Pn((function(t){return Fn(t,e)}))},br.omit=QA,br.omitBy=function(e,t){return DA(e,Qs(Vi(t)))},br.once=function(e){return Cs(2,e)},br.orderBy=function(e,t,r,n){return null==e?[]:(Ns(t)||(t=null==t?[]:[t]),Ns(r=n?void 0:r)||(r=null==r?[]:[r]),Mn(e,t,r))},br.over=ZA,br.overArgs=vs,br.overEvery=$A,br.overSome=ea,br.partial=Ds,br.partialRight=bs,br.partition=gs,br.pick=vA,br.pickBy=DA,br.property=ta,br.propertyOf=function(e){return function(t){return null==e?void 0:ln(e,t)}},br.pull=_o,br.pullAll=Oo,br.pullAllBy=function(e,t,r){return e&&e.length&&t&&t.length?Rn(e,t,Vi(r,2)):e},br.pullAllWith=function(e,t,r){return e&&e.length&&t&&t.length?Rn(e,t,void 0,r):e},br.pullAt=jo,br.range=ra,br.rangeRight=na,br.rearg=Ss,br.reject=function(e,t){return(Ns(e)?ct:nn)(e,Qs(Vi(t,3)))},br.remove=function(e,t){var r=[];if(!e||!e.length)return r;var n=-1,i=[],o=e.length;for(t=Vi(t,3);++n<o;){var s=e[n];t(s,n,e)&&(r.push(s),i.push(n))}return Kn(e,i),r},br.rest=function(e,t){if("function"!=typeof e)throw new Ee(i);return Pn(e,t=void 0===t?t:nA(t))},br.reverse=Yo,br.sampleSize=function(e,t,r){return t=(r?Ao(e,t,r):void 0===t)?1:nA(t),(Ns(e)?Ur:_n)(e,t)},br.set=function(e,t,r){return null==e?e:On(e,t,r)},br.setWith=function(e,t,r,n){return n="function"==typeof n?n:void 0,null==e?e:On(e,t,r,n)},br.shuffle=function(e){return(Ns(e)?_r:Gn)(e)},br.slice=function(e,t,r){var n=null==e?0:e.length;return n?(r&&"number"!=typeof r&&Ao(e,t,r)?(t=0,r=n):(t=null==t?0:nA(t),r=void 0===r?n:nA(r)),Jn(e,t,r)):[]},br.sortBy=fs,br.sortedUniq=function(e){return e&&e.length?Wn(e):[]},br.sortedUniqBy=function(e,t){return e&&e.length?Wn(e,Vi(t,2)):[]},br.split=function(e,t,r){return r&&"number"!=typeof r&&Ao(e,t,r)&&(t=r=void 0),(r=void 0===r?4294967295:r>>>0)?(e=AA(e))&&("string"==typeof t||null!=t&&!zs(t))&&!(t=Xn(t))&&Pt(e)?ci(Jt(e),0,r):e.split(t,r):[]},br.spread=function(e,t){if("function"!=typeof e)throw new Ee(i);return t=null==t?0:or(nA(t),0),Pn((function(r){var n=r[t],i=ci(r,0,t);return n&&gt(i,n),it(e,this,i)}))},br.tail=function(e){var t=null==e?0:e.length;return t?Jn(e,1,t):[]},br.take=function(e,t,r){return e&&e.length?Jn(e,0,(t=r||void 0===t?1:nA(t))<0?0:t):[]},br.takeRight=function(e,t,r){var n=null==e?0:e.length;return n?Jn(e,(t=n-(t=r||void 0===t?1:nA(t)))<0?0:t,n):[]},br.takeRightWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3),!1,!0):[]},br.takeWhile=function(e,t){return e&&e.length?ti(e,Vi(t,3)):[]},br.tap=function(e,t){return t(e),e},br.throttle=function(e,t,r){var n=!0,o=!0;if("function"!=typeof e)throw new Ee(i);return Ys(r)&&(n="leading"in r?!!r.leading:n,o="trailing"in r?!!r.trailing:o),ms(e,t,{leading:n,maxWait:t,trailing:o})},br.thru=rs,br.toArray=tA,br.toPairs=bA,br.toPairsIn=SA,br.toPath=function(e){return Ns(e)?ht(e,Do):Xs(e)?[e]:Ci(vo(AA(e)))},br.toPlainObject=sA,br.transform=function(e,t,r){var n=Ns(e),i=n||Ts(e)||Zs(e);if(t=Vi(t,4),null==r){var o=e&&e.constructor;r=i?n?new o:[]:Ys(e)&&_s(o)?Sr(Je(e)):{}}return(i?st:an)(e,(function(e,n,i){return t(r,e,n,i)})),r},br.unary=function(e){return ds(e,1)},br.union=Go,br.unionBy=Jo,br.unionWith=Ho,br.uniq=function(e){return e&&e.length?Zn(e):[]},br.uniqBy=function(e,t){return e&&e.length?Zn(e,Vi(t,2)):[]},br.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zn(e,void 0,t):[]},br.unset=function(e,t){return null==e||$n(e,t)},br.unzip=qo,br.unzipWith=zo,br.update=function(e,t,r){return null==e?e:ei(e,t,si(r))},br.updateWith=function(e,t,r,n){return n="function"==typeof n?n:void 0,null==e?e:ei(e,t,si(r),n)},br.values=kA,br.valuesIn=function(e){return null==e?[]:xt(e,yA(e))},br.without=Wo,br.words=_A,br.wrap=function(e,t){return Ds(si(t),e)},br.xor=Vo,br.xorBy=Xo,br.xorWith=Zo,br.zip=$o,br.zipObject=function(e,t){return ii(e||[],t||[],jr)},br.zipObjectDeep=function(e,t){return ii(e||[],t||[],On)},br.zipWith=es,br.entries=bA,br.entriesIn=SA,br.extend=cA,br.extendWith=uA,VA(br,br),br.add=sa,br.attempt=OA,br.camelCase=xA,br.capitalize=FA,br.ceil=Aa,br.clamp=function(e,t,r){return void 0===r&&(r=t,t=void 0),void 0!==r&&(r=(r=oA(r))==r?r:0),void 0!==t&&(t=(t=oA(t))==t?t:0),zr(oA(e),t,r)},br.clone=function(e){return Wr(e,4)},br.cloneDeep=function(e){return Wr(e,5)},br.cloneDeepWith=function(e,t){return Wr(e,5,t="function"==typeof t?t:void 0)},br.cloneWith=function(e,t){return Wr(e,4,t="function"==typeof t?t:void 0)},br.conformsTo=function(e,t){return null==t||Vr(e,t,mA(t))},br.deburr=MA,br.defaultTo=function(e,t){return null==e||e!=e?t:e},br.divide=aa,br.endsWith=function(e,t,r){e=AA(e),t=Xn(t);var n=e.length,i=r=void 0===r?n:zr(nA(r),0,n);return(r-=t.length)>=0&&e.slice(r,i)==t},br.eq=ks,br.escape=function(e){return(e=AA(e))&&P.test(e)?e.replace(L,Lt):e},br.escapeRegExp=function(e){return(e=AA(e))&&H.test(e)?e.replace(J,"\\$&"):e},br.every=function(e,t,r){var n=Ns(e)?at:tn;return r&&Ao(e,t,r)&&(t=void 0),n(e,Vi(t,3))},br.find=os,br.findIndex=Mo,br.findKey=function(e,t){return Et(e,Vi(t,3),an)},br.findLast=ss,br.findLastIndex=No,br.findLastKey=function(e,t){return Et(e,Vi(t,3),cn)},br.floor=ca,br.forEach=As,br.forEachRight=as,br.forIn=function(e,t){return null==e?e:sn(e,Vi(t,3),yA)},br.forInRight=function(e,t){return null==e?e:An(e,Vi(t,3),yA)},br.forOwn=function(e,t){return e&&an(e,Vi(t,3))},br.forOwnRight=function(e,t){return e&&cn(e,Vi(t,3))},br.get=pA,br.gt=xs,br.gte=Fs,br.has=function(e,t){return null!=e&&no(e,t,pn)},br.hasIn=dA,br.head=Ko,br.identity=HA,br.includes=function(e,t,r,n){e=Ks(e)?e:kA(e),r=r&&!n?nA(r):0;var i=e.length;return r<0&&(r=or(i+r,0)),Vs(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&mt(e,t,r)>-1},br.indexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:nA(r);return i<0&&(i=or(n+i,0)),mt(e,t,i)},br.inRange=function(e,t,r){return t=rA(t),void 0===r?(r=t,t=0):r=rA(r),function(e,t,r){return e>=sr(t,r)&&e<or(t,r)}(e=oA(e),t,r)},br.invoke=IA,br.isArguments=Ms,br.isArray=Ns,br.isArrayBuffer=Rs,br.isArrayLike=Ks,br.isArrayLikeObject=Ls,br.isBoolean=function(e){return!0===e||!1===e||Gs(e)&&gn(e)==c},br.isBuffer=Ts,br.isDate=Ps,br.isElement=function(e){return Gs(e)&&1===e.nodeType&&!qs(e)},br.isEmpty=function(e){if(null==e)return!0;if(Ks(e)&&(Ns(e)||"string"==typeof e||"function"==typeof e.splice||Ts(e)||Zs(e)||Ms(e)))return!e.length;var t=ro(e);if(t==f||t==E)return!e.size;if(lo(e))return!Qn(e).length;for(var r in e)if(Qe.call(e,r))return!1;return!0},br.isEqual=function(e,t){return mn(e,t)},br.isEqualWith=function(e,t,r){var n=(r="function"==typeof r?r:void 0)?r(e,t):void 0;return void 0===n?mn(e,t,void 0,r):!!n},br.isError=Us,br.isFinite=function(e){return"number"==typeof e&&rr(e)},br.isFunction=_s,br.isInteger=Os,br.isLength=js,br.isMap=Js,br.isMatch=function(e,t){return e===t||yn(e,t,Zi(t))},br.isMatchWith=function(e,t,r){return r="function"==typeof r?r:void 0,yn(e,t,Zi(t),r)},br.isNaN=function(e){return Hs(e)&&e!=+e},br.isNative=function(e){if(uo(e))throw new he("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return wn(e)},br.isNil=function(e){return null==e},br.isNull=function(e){return null===e},br.isNumber=Hs,br.isObject=Ys,br.isObjectLike=Gs,br.isPlainObject=qs,br.isRegExp=zs,br.isSafeInteger=function(e){return Os(e)&&e>=-9007199254740991&&e<=9007199254740991},br.isSet=Ws,br.isString=Vs,br.isSymbol=Xs,br.isTypedArray=Zs,br.isUndefined=function(e){return void 0===e},br.isWeakMap=function(e){return Gs(e)&&ro(e)==y},br.isWeakSet=function(e){return Gs(e)&&"[object WeakSet]"==gn(e)},br.join=function(e,t){return null==e?"":nr.call(e,t)},br.kebabCase=NA,br.last=Uo,br.lastIndexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=n;return void 0!==r&&(i=(i=nA(r))<0?or(n+i,0):sr(i,n-1)),t==t?function(e,t,r){for(var n=r+1;n--;)if(e[n]===t)return n;return n}(e,t,i):It(e,wt,i,!0)},br.lowerCase=RA,br.lowerFirst=KA,br.lt=$s,br.lte=eA,br.max=function(e){return e&&e.length?rn(e,HA,fn):void 0},br.maxBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),fn):void 0},br.mean=function(e){return Bt(e,HA)},br.meanBy=function(e,t){return Bt(e,Vi(t,2))},br.min=function(e){return e&&e.length?rn(e,HA,Dn):void 0},br.minBy=function(e,t){return e&&e.length?rn(e,Vi(t,2),Dn):void 0},br.stubArray=ia,br.stubFalse=oa,br.stubObject=function(){return{}},br.stubString=function(){return""},br.stubTrue=function(){return!0},br.multiply=la,br.nth=function(e,t){return e&&e.length?Fn(e,nA(t)):void 0},br.noConflict=function(){return He._===this&&(He._=ke),this},br.noop=XA,br.now=ps,br.pad=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;if(!t||n>=t)return e;var i=(t-n)/2;return Mi($t(i),r)+e+Mi(Zt(i),r)},br.padEnd=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;return t&&n<t?e+Mi(t-n,r):e},br.padStart=function(e,t,r){e=AA(e);var n=(t=nA(t))?Gt(e):0;return t&&n<t?Mi(t-n,r)+e:e},br.parseInt=function(e,t,r){return r||null==t?t=0:t&&(t=+t),ar(AA(e).replace(z,""),t||0)},br.random=function(e,t,r){if(r&&"boolean"!=typeof r&&Ao(e,t,r)&&(t=r=void 0),void 0===r&&("boolean"==typeof t?(r=t,t=void 0):"boolean"==typeof e&&(r=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=rA(e),void 0===t?(t=e,e=0):t=rA(t)),e>t){var n=e;e=t,t=n}if(r||e%1||t%1){var i=cr();return sr(e+i*(t-e+je("1e-"+((i+"").length-1))),t)}return Ln(e,t)},br.reduce=function(e,t,r){var n=Ns(e)?ft:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,$r)},br.reduceRight=function(e,t,r){var n=Ns(e)?pt:Dt,i=arguments.length<3;return n(e,Vi(t,4),r,i,en)},br.repeat=function(e,t,r){return t=(r?Ao(e,t,r):void 0===t)?1:nA(t),Tn(AA(e),t)},br.replace=function(){var e=arguments,t=AA(e[0]);return e.length<3?t:t.replace(e[1],e[2])},br.result=function(e,t,r){var n=-1,i=(t=Ai(t,e)).length;for(i||(i=1,e=void 0);++n<i;){var o=null==e?void 0:e[Do(t[n])];void 0===o&&(n=i,o=r),e=_s(o)?o.call(e):o}return e},br.round=ha,br.runInContext=e,br.sample=function(e){return(Ns(e)?Pr:Un)(e)},br.size=function(e){if(null==e)return 0;if(Ks(e))return Vs(e)?Gt(e):e.length;var t=ro(e);return t==f||t==E?e.size:Qn(e).length},br.snakeCase=LA,br.some=function(e,t,r){var n=Ns(e)?dt:Hn;return r&&Ao(e,t,r)&&(t=void 0),n(e,Vi(t,3))},br.sortedIndex=function(e,t){return qn(e,t)},br.sortedIndexBy=function(e,t,r){return zn(e,t,Vi(r,2))},br.sortedIndexOf=function(e,t){var r=null==e?0:e.length;if(r){var n=qn(e,t);if(n<r&&ks(e[n],t))return n}return-1},br.sortedLastIndex=function(e,t){return qn(e,t,!0)},br.sortedLastIndexBy=function(e,t,r){return zn(e,t,Vi(r,2),!0)},br.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var r=qn(e,t,!0)-1;if(ks(e[r],t))return r}return-1},br.startCase=TA,br.startsWith=function(e,t,r){return e=AA(e),r=null==r?0:zr(nA(r),0,e.length),t=Xn(t),e.slice(r,r+t.length)==t},br.subtract=ga,br.sum=function(e){return e&&e.length?bt(e,HA):0},br.sumBy=function(e,t){return e&&e.length?bt(e,Vi(t,2)):0},br.template=function(e,t,r){var n=br.templateSettings;r&&Ao(e,t,r)&&(t=void 0),e=AA(e),t=uA({},t,n,_i);var i,o,s=uA({},t.imports,n.imports,_i),A=mA(s),a=xt(s,A),c=0,u=t.interpolate||ce,l="__p += '",h=de((t.escape||ce).source+"|"+u.source+"|"+(u===O?te:ce).source+"|"+(t.evaluate||ce).source+"|$","g"),g="//# sourceURL="+(Qe.call(t,"sourceURL")?(t.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++Pe+"]")+"\n";e.replace(h,(function(t,r,n,s,A,a){return n||(n=s),l+=e.slice(c,a).replace(ue,Tt),r&&(i=!0,l+="' +\n__e("+r+") +\n'"),A&&(o=!0,l+="';\n"+A+";\n__p += '"),n&&(l+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),c=a+t.length,t})),l+="';\n";var f=Qe.call(t,"variable")&&t.variable;f||(l="with (obj) {\n"+l+"\n}\n"),l=(o?l.replace(M,""):l).replace(N,"$1").replace(R,"$1;"),l="function("+(f||"obj")+") {\n"+(f?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var p=OA((function(){return ge(A,g+"return "+l).apply(void 0,a)}));if(p.source=l,Us(p))throw p;return p},br.times=function(e,t){if((e=nA(e))<1||e>9007199254740991)return[];var r=4294967295,n=sr(e,4294967295);e-=4294967295;for(var i=St(n,t=Vi(t));++r<e;)t(r);return i},br.toFinite=rA,br.toInteger=nA,br.toLength=iA,br.toLower=function(e){return AA(e).toLowerCase()},br.toNumber=oA,br.toSafeInteger=function(e){return e?zr(nA(e),-9007199254740991,9007199254740991):0===e?e:0},br.toString=AA,br.toUpper=function(e){return AA(e).toUpperCase()},br.trim=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(q,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e),i=Jt(t);return ci(n,Mt(n,i),Nt(n,i)+1).join("")},br.trimEnd=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(W,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e);return ci(n,0,Nt(n,Jt(t))+1).join("")},br.trimStart=function(e,t,r){if((e=AA(e))&&(r||void 0===t))return e.replace(z,"");if(!e||!(t=Xn(t)))return e;var n=Jt(e);return ci(n,Mt(n,Jt(t))).join("")},br.truncate=function(e,t){var r=30,n="...";if(Ys(t)){var i="separator"in t?t.separator:i;r="length"in t?nA(t.length):r,n="omission"in t?Xn(t.omission):n}var o=(e=AA(e)).length;if(Pt(e)){var s=Jt(e);o=s.length}if(r>=o)return e;var A=r-Gt(n);if(A<1)return n;var a=s?ci(s,0,A).join(""):e.slice(0,A);if(void 0===i)return a+n;if(s&&(A+=a.length-A),zs(i)){if(e.slice(A).search(i)){var c,u=a;for(i.global||(i=de(i.source,AA(re.exec(i))+"g")),i.lastIndex=0;c=i.exec(u);)var l=c.index;a=a.slice(0,void 0===l?A:l)}}else if(e.indexOf(Xn(i),A)!=A){var h=a.lastIndexOf(i);h>-1&&(a=a.slice(0,h))}return a+n},br.unescape=function(e){return(e=AA(e))&&T.test(e)?e.replace(K,Ht):e},br.uniqueId=function(e){var t=++ve;return AA(e)+t},br.upperCase=PA,br.upperFirst=UA,br.each=As,br.eachRight=as,br.first=Ko,VA(br,(ua={},an(br,(function(e,t){Qe.call(br.prototype,t)||(ua[t]=e)})),ua),{chain:!1}),br.VERSION="4.17.15",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){br[e].placeholder=br})),st(["drop","take"],(function(e,t){Fr.prototype[e]=function(r){r=void 0===r?1:or(nA(r),0);var n=this.__filtered__&&!t?new Fr(this):this.clone();return n.__filtered__?n.__takeCount__=sr(r,n.__takeCount__):n.__views__.push({size:sr(r,4294967295),type:e+(n.__dir__<0?"Right":"")}),n},Fr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var r=t+1,n=1==r||3==r;Fr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Vi(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}})),st(["head","last"],(function(e,t){var r="take"+(t?"Right":"");Fr.prototype[e]=function(){return this[r](1).value()[0]}})),st(["initial","tail"],(function(e,t){var r="drop"+(t?"":"Right");Fr.prototype[e]=function(){return this.__filtered__?new Fr(this):this[r](1)}})),Fr.prototype.compact=function(){return this.filter(HA)},Fr.prototype.find=function(e){return this.filter(e).head()},Fr.prototype.findLast=function(e){return this.reverse().find(e)},Fr.prototype.invokeMap=Pn((function(e,t){return"function"==typeof e?new Fr(this):this.map((function(r){return En(r,e,t)}))})),Fr.prototype.reject=function(e){return this.filter(Qs(Vi(e)))},Fr.prototype.slice=function(e,t){e=nA(e);var r=this;return r.__filtered__&&(e>0||t<0)?new Fr(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),void 0!==t&&(r=(t=nA(t))<0?r.dropRight(-t):r.take(t-e)),r)},Fr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Fr.prototype.toArray=function(){return this.take(4294967295)},an(Fr.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),i=br[n?"take"+("last"==t?"Right":""):t],o=n||/^find/.test(t);i&&(br.prototype[t]=function(){var t=this.__wrapped__,s=n?[1]:arguments,A=t instanceof Fr,a=s[0],c=A||Ns(t),u=function(e){var t=i.apply(br,gt([e],s));return n&&l?t[0]:t};c&&r&&"function"==typeof a&&1!=a.length&&(A=c=!1);var l=this.__chain__,h=!!this.__actions__.length,g=o&&!l,f=A&&!h;if(!o&&c){t=f?t:new Fr(this);var p=e.apply(t,s);return p.__actions__.push({func:rs,args:[u],thisArg:void 0}),new xr(p,l)}return g&&f?e.apply(this,s):(p=this.thru(u),g?n?p.value()[0]:p.value():p)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ie[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);br.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return t.apply(Ns(i)?i:[],e)}return this[r]((function(r){return t.apply(Ns(r)?r:[],e)}))}})),an(Fr.prototype,(function(e,t){var r=br[t];if(r){var n=r.name+"";Qe.call(Er,n)||(Er[n]=[]),Er[n].push({name:t,func:r})}})),Er[Si(void 0,2).name]=[{name:"wrapper",func:void 0}],Fr.prototype.clone=function(){var e=new Fr(this.__wrapped__);return e.__actions__=Ci(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Ci(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Ci(this.__views__),e},Fr.prototype.reverse=function(){if(this.__filtered__){var e=new Fr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Fr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,r=Ns(e),n=t<0,i=r?e.length:0,o=function(e,t,r){var n=-1,i=r.length;for(;++n<i;){var o=r[n],s=o.size;switch(o.type){case"drop":e+=s;break;case"dropRight":t-=s;break;case"take":t=sr(t,e+s);break;case"takeRight":e=or(e,t-s)}}return{start:e,end:t}}(0,i,this.__views__),s=o.start,A=o.end,a=A-s,c=n?A:s-1,u=this.__iteratees__,l=u.length,h=0,g=sr(a,this.__takeCount__);if(!r||!n&&i==a&&g==a)return ri(e,this.__actions__);var f=[];e:for(;a--&&h<g;){for(var p=-1,d=e[c+=t];++p<l;){var C=u[p],E=C.iteratee,I=C.type,m=E(d);if(2==I)d=m;else if(!m){if(1==I)continue e;break e}}f[h++]=d}return f},br.prototype.at=ns,br.prototype.chain=function(){return ts(this)},br.prototype.commit=function(){return new xr(this.value(),this.__chain__)},br.prototype.next=function(){void 0===this.__values__&&(this.__values__=tA(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},br.prototype.plant=function(e){for(var t,r=this;r instanceof kr;){var n=So(r);n.__index__=0,n.__values__=void 0,t?i.__wrapped__=n:t=n;var i=n;r=r.__wrapped__}return i.__wrapped__=e,t},br.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Fr){var t=e;return this.__actions__.length&&(t=new Fr(this)),(t=t.reverse()).__actions__.push({func:rs,args:[Yo],thisArg:void 0}),new xr(t,this.__chain__)}return this.thru(Yo)},br.prototype.toJSON=br.prototype.valueOf=br.prototype.value=function(){return ri(this.__wrapped__,this.__actions__)},br.prototype.first=br.prototype.head,Ct&&(br.prototype[Ct]=function(){return this}),br}();He._=qt,void 0===(n=function(){return qt}.call(t,r,t,e))||(e.exports=n)}.call(this)},27869:(e,t,r)=>{var n=r(60783),i=r(42208),o=r(26309),s=r(82664);e.exports=function(e,t){return(s(e)?n:o)(e,i(t,3))}},5253:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,t(e,i,o),e)})),r}},89612:(e,t,r)=>{var n=r(91198),i=r(62164),o=r(42208);e.exports=function(e,t){var r={};return t=o(t,3),i(e,(function(e,i,o){n(r,i,t(e,i,o))})),r}},74499:(e,t,r)=>{var n=r(75009);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var s=e.apply(this,n);return r.cache=o.set(i,s)||o,s};return r.cache=new(i.Cache||n),r}i.Cache=n,e.exports=i},34791:e=>{e.exports=function(){}},82740:(e,t,r)=>{var n=r(60783),i=r(41076),o=r(81622),s=r(56725),A=r(75182),a=r(37306),c=r(87298),u=r(64420),l=c((function(e,t){var r={};if(null==e)return r;var c=!1;t=n(t,(function(t){return t=s(t,e),c||(c=t.length>1),t})),A(e,u(e),r),c&&(r=i(r,7,a));for(var l=t.length;l--;)o(r,t[l]);return r}));e.exports=l},7430:(e,t,r)=>{var n=r(35400),i=r(43018),o=r(70474),s=r(49874);e.exports=function(e){return o(e)?n(s(e)):i(e)}},81534:(e,t,r)=>{var n=r(10624);e.exports=function(e,t,r){return null==e?e:n(e,t,r)}},36494:(e,t,r)=>{var n=r(30369)((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}));e.exports=n},62162:e=>{e.exports=function(){return[]}},88988:e=>{e.exports=function(){return!1}},2614:(e,t,r)=>{var n=r(96815),i=r(61977);e.exports=function(e){return e&&e.length?n(e,i):0}},78700:(e,t,r)=>{var n=r(69976),i=r(87229),o=r(79435),s=r(41929),A=r(221),a=r(82262),c=r(7877),u=r(7442),l=r(30475),h=r(24448),g=n?n.iterator:void 0;e.exports=function(e){if(!e)return[];if(s(e))return A(e)?l(e):i(e);if(g&&e[g])return a(e[g]());var t=o(e);return("[object Map]"==t?c:"[object Set]"==t?u:h)(e)}},67770:(e,t,r)=>{var n=r(90257);e.exports=function(e){return e?(e=n(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},864:(e,t,r)=>{var n=r(67770);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},90257:(e,t,r)=>{var n=r(46778),i=r(65558),o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,A=/^0b[01]+$/i,a=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=A.test(e);return r||a.test(e)?c(e.slice(2),r?2:8):s.test(e)?NaN:+e}},33580:(e,t,r)=>{var n=r(35);e.exports=function(e){return null==e?"":n(e)}},44852:(e,t,r)=>{var n=r(42150);e.exports=function(e){return e&&e.length?n(e):[]}},72609:(e,t,r)=>{var n=r(56989)("toUpperCase");e.exports=n},24448:(e,t,r)=>{var n=r(18290),i=r(42185);e.exports=function(e){return null==e?[]:n(e,i(e))}},97684:(e,t,r)=>{var n=r(11852),i=r(60466),o=r(33580),s=r(89887);e.exports=function(e,t,r){return e=o(e),void 0===(t=r?void 0:t)?i(e)?s(e):n(e):e.match(t)||[]}},58708:(e,t,r)=>{var n,i=r(73789),o=r(5817),s=function(e,t){return t.description=e,t},A=function(e,t,r){return s(e,(function(e){return e instanceof t[r]}))};(n={}).isNumTerm=s("a NumTerm (non-zero integer)",(function(e){return e===(0|e)&&0!==e})),n.isNameTerm=s("a NameTerm (string)",(function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)})),n.isTerm=s("a Term (appropriate string or number)",(function(e){return n.isNumTerm(e)||n.isNameTerm(e)})),n.isWholeNumber=s("a whole number (integer >= 0)",(function(e){return e===(0|e)&&e>=0})),n.isFormula=A("a Formula",n,"Formula"),n.isClause=A("a Clause",n,"Clause"),n.isBits=A("a Bits",n,"Bits"),n._isInteger=s("an integer",(function(e){return e===(0|e)})),n._isFunction=s("a Function",(function(e){return"function"==typeof e})),n._isString=s("a String",(function(e){return"string"==typeof e})),n._isArrayWhere=function(e){var t="an array";return e.description&&(t+=" of "+e.description),s(t,(function(t){if(o.isArray(t)){for(var r=0;r<t.length;r++)if(!e(t[r]))return!1;return!0}return!1}))},n._isFormulaOrTerm=s("a Formula or Term",(function(e){return n.isFormula(e)||n.isTerm(e)})),n._isFormulaOrTermOrBits=s("a Formula, Term, or Bits",(function(e){return n.isFormula(e)||n.isBits(e)||n.isTerm(e)})),n._MiniSat=i;var a=n._isInteger,c=n._isFunction,u=n._isString,l=n._isArrayWhere,h=n._isFormulaOrTerm,g=n._isFormulaOrTermOrBits;n._assert=function(e,t,r){if(!t(e)){var n="string"==typeof e?JSON.stringify(e):e;throw new Error(n+" is not "+(t.description||r))}};var f=function(e,t,r){if(e!==t)throw new Error("Expected "+t+" args in "+r+", got "+e)},p=n._assert;n._assertIfEnabled=function(e,t,r){p&&p(e,t,r)},n.disablingAssertions=function(e){var t=p;try{return p=null,e()}finally{p=t}},n._disablingTypeChecks=n.disablingAssertions,n.not=function(e){return p&&p(e,h),e instanceof n.Formula?new n.NotFormula(e):"number"==typeof e?-e:"-"===e.charAt(0)?e.slice(1):"-"+e},n.NAME_FALSE="$F",n.NAME_TRUE="$T",n.NUM_FALSE=1,n.NUM_TRUE=2,n.TRUE=n.NAME_TRUE,n.FALSE=n.NAME_FALSE,n.Formula=function(){},n._defineFormula=function(e,t,r){p&&p(e,c),p&&p(t,u),e.prototype=new n.Formula,e.prototype.type=t,r&&o.extend(e.prototype,r)},n.Formula.prototype.generateClauses=function(e,t){throw new Error("Cannot generate this Formula; it must be expanded")},n.Formula._nextGuid=1,n.Formula.prototype._guid=null,n.Formula.prototype.guid=function(){return null===this._guid&&(this._guid=n.Formula._nextGuid++),this._guid},n.Clause=function(){var e=o.flatten(arguments);p&&p(e,l(n.isNumTerm)),this.terms=e},n.Clause.prototype.append=function(){return new n.Clause(this.terms.concat(o.flatten(arguments)))};var d=function(){this.varName=null,this.varNum=null,this.occursPositively=!1,this.occursNegatively=!1,this.isRequired=!1,this.isForbidden=!1};n.Termifier=function(e){this.solver=e},n.Termifier.prototype.clause=function(){var e=this,t=o.flatten(arguments);return p&&p(t,l(h)),new n.Clause(o.map(t,(function(t){return e.term(t)})))},n.Termifier.prototype.term=function(e){return this.solver._formulaToTerm(e)},n.Termifier.prototype.generate=function(e,t){return this.solver._generateFormula(e,t,this)},n.Solver=function(){this.clauses=[],this._num2name=[null],this._name2num={};var e=this.getVarNum(n.NAME_FALSE,!1,!0),t=this.getVarNum(n.NAME_TRUE,!1,!0);if(e!==n.NUM_FALSE||t!==n.NUM_TRUE)throw new Error("Assertion failure: $T and $F have wrong numeric value");this._F_used=!1,this._T_used=!1,this.clauses.push(new n.Clause(-n.NUM_FALSE)),this.clauses.push(new n.Clause(n.NUM_TRUE)),this._formulaInfo={},this._nextFormulaNumByType={},this._ungeneratedFormulas={},this._numClausesAddedToMiniSat=0,this._unsat=!1,this._minisat=new i,this._termifier=new n.Termifier(this)},n.Solver.prototype.getVarNum=function(e,t,r){var n=" "+e;if(o.has(this._name2num,n))return this._name2num[n];if(t)return 0;if("$"===e.charAt(0)&&!r)throw new Error("Only generated variable names can start with $");var i=this._num2name.length;return this._name2num[n]=i,this._num2name.push(e),i},n.Solver.prototype.getVarName=function(e){p&&p(e,a);var t=this._num2name;if(e<1||e>=t.length)throw new Error("Bad variable num: "+e);return t[e]},n.Solver.prototype.toNumTerm=function(e,t){if(p&&p(e,n.isTerm),"number"==typeof e)return e;for(var r=!1;"-"===e.charAt(0);)e=e.slice(1),r=!r;var i=this.getVarNum(e,t);return i?r?-i:i:0},n.Solver.prototype.toNameTerm=function(e){if(p&&p(e,n.isTerm),"string"==typeof e){for(;"--"===e.slice(0,2);)e=e.slice(2);return e}var t=!1;return e<0&&(t=!0,e=-e),e=this.getVarName(e),t&&(e="-"+e),e},n.Solver.prototype._addClause=function(e,t,r){p&&p(e,n.isClause);var i=null;t&&(i=t,p&&p(i,l(n.isNumTerm)));var o=!1,s=!1,A=e.terms.length;i&&(e=e.append(i));for(var a=0;a<e.terms.length;a++){var c=e.terms[a],u=c<0?-c:c;if(u===n.NUM_FALSE)o=!0;else if(u===n.NUM_TRUE)s=!0;else{if(u<1||u>=this._num2name.length)throw new Error("Bad variable number: "+u);a<A&&(r?r(c):this._useFormulaTerm(c))}}this._F_used=this._F_used||o,this._T_used=this._T_used||s,this.clauses.push(e)},n.Solver.prototype._useFormulaTerm=function(e,t){var r=this;p&&p(e,n.isNumTerm);var i=e<0?-e:e;if(o.has(r._ungeneratedFormulas,i)){var s,A=r._ungeneratedFormulas[i],a=r._getFormulaInfo(A),c=e>0,u=null;if(t?s=t:(u=[],s=function(e,t){u.push({clauses:e,extraTerms:t})}),c&&!a.occursPositively){a.occursPositively=!0;var l=r._generateFormula(!0,A);s(l,[-i])}else if(!c&&!a.occursNegatively){a.occursNegatively=!0;l=r._generateFormula(!1,A);s(l,[i])}if(a.occursPositively&&a.occursNegatively&&delete r._ungeneratedFormulas[i],u&&u.length)for(var h=function(e){r._useFormulaTerm(e,s)};u.length;){var g=u.pop();r._addClauses(g.clauses,g.extraTerms,h)}}},n.Solver.prototype._addClauses=function(e,t,r){p&&p(e,l(n.isClause));var i=this;o.each(e,(function(e){i._addClause(e,t,r)}))},n.Solver.prototype.require=function(){this._requireForbidImpl(!0,o.flatten(arguments))},n.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,o.flatten(arguments))},n.Solver.prototype._requireForbidImpl=function(e,t){var r=this;p&&p(t,l(h)),o.each(t,(function(t){if(t instanceof n.NotFormula)r._requireForbidImpl(!e,[t.operand]);else if(t instanceof n.Formula){var i=r._getFormulaInfo(t);if(null!==i.varNum){var o=e?1:-1;r._addClause(new n.Clause(o*i.varNum))}else r._addClauses(r._generateFormula(e,t));e?i.isRequired=!0:i.isForbidden=!0}else r._addClauses(r._generateFormula(e,t))}))},n.Solver.prototype._generateFormula=function(e,t,r){if(p&&p(t,h),t instanceof n.NotFormula)return this._generateFormula(!e,t.operand);if(t instanceof n.Formula){var i=this._getFormulaInfo(t);if(e&&i.isRequired||!e&&i.isForbidden)return[];if(e&&i.isForbidden||!e&&i.isRequired)return[new n.Clause];var s=t.generateClauses(e,r||this._termifier);return o.isArray(s)?s:[s]}var A=this.toNumTerm(t),a=e?1:-1;return A===a*n.NUM_TRUE||A===-a*n.NUM_FALSE?[]:A===a*n.NUM_FALSE||A===-a*n.NUM_TRUE?[new n.Clause]:[new n.Clause(a*A)]},n.Solver.prototype._clauseData=function(){var e=o.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},n.Solver.prototype._clauseStrings=function(){var e=this,t=e._clauseData();return o.map(t,(function(t){return o.map(t,(function(t){var r=e.toNameTerm(t);if(/\s/.test(r)){var n="";"-"===r.charAt(0)&&(n="-",r=r.slice(1)),r=n+'"'+r+'"'}return r})).join(" v ")}))},n.Solver.prototype._getFormulaInfo=function(e,t){var r=e.guid();if(!this._formulaInfo[r]){if(t)return null;this._formulaInfo[r]=new d}return this._formulaInfo[r]},n.Solver.prototype._formulaToTerm=function(e){if(o.isArray(e))return p&&p(e,l(h)),o.map(e,o.bind(this._formulaToTerm,this));if(p&&p(e,h),e instanceof n.NotFormula)return n.not(this._formulaToTerm(e.operand));if(e instanceof n.Formula){var t=this._getFormulaInfo(e);if(t.isRequired)return n.NUM_TRUE;if(t.isForbidden)return n.NUM_FALSE;if(null===t.varNum){var r=e.type;this._nextFormulaNumByType[r]||(this._nextFormulaNumByType[r]=1);var i=this._nextFormulaNumByType[r]++;t.varName="$"+e.type+i,t.varNum=this.getVarNum(t.varName,!1,!0),this._ungeneratedFormulas[t.varNum]=e}return t.varNum}return this.toNumTerm(e)},n.or=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.OrFormula(e)},n.OrFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.OrFormula,"or",{generateClauses:function(e,t){if(e)return t.clause(this.operands);var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!1,e))})),r}}),n.NotFormula=function(e){p&&p(e,h),this.operand=e},n._defineFormula(n.NotFormula,"not"),n.and=function(){var e=o.flatten(arguments);return 0===e.length?n.TRUE:1===e.length?(p&&p(e[0],h),e[0]):new n.AndFormula(e)},n.AndFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AndFormula,"and",{generateClauses:function(e,t){if(e){var r=[];return o.each(this.operands,(function(e){r.push.apply(r,t.generate(!0,e))})),r}return t.clause(o.map(this.operands,n.not))}});var C=function(e,t){for(var r=[],n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r};n.xor=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.XorFormula(e)},n.XorFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.XorFormula,"xor",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length>3)return t.generate(e,n.xor(o.map(C(this.operands,3),(function(e){return n.xor(e)}))));if(e){if(0===r.length)return t.clause();if(1===r.length)return t.clause(r[0]);if(2===r.length){var s=r[0],A=r[1];return[t.clause(s,A),t.clause(i(s),i(A))]}if(3===r.length){s=r[0],A=r[1];var a=r[2];return[t.clause(s,A,a),t.clause(s,i(A),i(a)),t.clause(i(s),A,i(a)),t.clause(i(s),i(A),a)]}}else{if(0===r.length)return[];if(1===r.length)return t.clause(i(r[0]));if(2===r.length){s=r[0],A=r[1];return[t.clause(s,i(A)),t.clause(i(s),A)]}if(3===r.length){s=r[0],A=r[1],a=r[2];return[t.clause(i(s),i(A),i(a)),t.clause(i(s),A,a),t.clause(s,i(A),a),t.clause(s,A,i(a))]}}}}),n.atMostOne=function(){var e=o.flatten(arguments);return e.length<=1?n.TRUE:new n.AtMostOneFormula(e)},n.AtMostOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.AtMostOneFormula,"atMostOne",{generateClauses:function(e,t){var r=this.operands,i=n.not;if(r.length<=1)return[];if(2===r.length)return t.generate(e,n.not(n.and(r)));if(e&&3===r.length){for(var s=[],A=0;A<r.length;A++)for(var a=A+1;a<r.length;a++)s.push(t.clause(i(r[A]),i(r[a])));return s}if(e||3!==r.length){var c=C(r,3),u=o.map(c,(function(e){return n.or(e)}));c[c.length-1].length<2&&c.pop();var l=o.map(c,(function(e){return n.atMostOne(e)}));return t.generate(e,n.and(n.atMostOne(u),l))}var h=r[0],g=r[1],f=r[2];return[t.clause(h,g),t.clause(h,f),t.clause(g,f)]}}),n.implies=function(e,t){return p&&f(arguments.length,2,"Logic.implies"),new n.ImpliesFormula(e,t)},n.ImpliesFormula=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.implies"),this.A=e,this.B=t},n._defineFormula(n.ImpliesFormula,"implies",{generateClauses:function(e,t){return t.generate(e,n.or(n.not(this.A),this.B))}}),n.equiv=function(e,t){return p&&f(arguments.length,2,"Logic.equiv"),new n.EquivFormula(e,t)},n.EquivFormula=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.equiv"),this.A=e,this.B=t},n._defineFormula(n.EquivFormula,"equiv",{generateClauses:function(e,t){return t.generate(!e,n.xor(this.A,this.B))}}),n.exactlyOne=function(){var e=o.flatten(arguments);return 0===e.length?n.FALSE:1===e.length?(p&&p(e[0],h),e[0]):new n.ExactlyOneFormula(e)},n.ExactlyOneFormula=function(e){p&&p(e,l(h)),this.operands=e},n._defineFormula(n.ExactlyOneFormula,"exactlyOne",{generateClauses:function(e,t){var r=this.operands;return r.length<3?t.generate(e,n.xor(r)):t.generate(e,n.and(n.atMostOne(r),n.or(r)))}}),n.Bits=function(e){p&&p(e,l(h)),this.bits=e},n.constantBits=function(e){p&&p(e,n.isWholeNumber);for(var t=[];e;)t.push(1&e?n.TRUE:n.FALSE),e>>>=1;return new n.Bits(t)},n.variableBits=function(e,t){p&&p(t,n.isWholeNumber);for(var r=[],i=0;i<t;i++)r.push(e+"$"+i);return new n.Bits(r)},n.lessThanOrEqual=function(e,t){return new n.LessThanOrEqualFormula(e,t)},n.LessThanOrEqualFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t};var E=function(e,t,r,i){var s=[],A=e.bits.slice(),a=t.bits.slice();if(i&&!t.bits.length)return r.clause();for(;A.length>a.length;){var c=A.pop();s.push(r.clause(n.not(c)))}for(var u=o.map(a,(function(e,t){return t<A.length?n.xor(A[t],e):e})),l=A.length-1;l>=0;l--)s.push(r.clause(u.slice(l+1),n.not(A[l]),a[l]));return i&&s.push.apply(s,r.generate(!0,n.or(u))),s};n._defineFormula(n.LessThanOrEqualFormula,"lte",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!1):E(this.bits2,this.bits1,t,!0)}}),n.lessThan=function(e,t){return new n.LessThanFormula(e,t)},n.LessThanFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Bits comparison function"),this.bits1=e,this.bits2=t},n._defineFormula(n.LessThanFormula,"lt",{generateClauses:function(e,t){return e?E(this.bits1,this.bits2,t,!0):E(this.bits2,this.bits1,t,!1)}}),n.greaterThan=function(e,t){return n.lessThan(t,e)},n.greaterThanOrEqual=function(e,t){return n.lessThanOrEqual(t,e)},n.equalBits=function(e,t){return new n.EqualBitsFormula(e,t)},n.EqualBitsFormula=function(e,t){p&&p(e,n.isBits),p&&p(t,n.isBits),p&&f(arguments.length,2,"Logic.equalBits"),this.bits1=e,this.bits2=t},n._defineFormula(n.EqualBitsFormula,"equalBits",{generateClauses:function(e,t){for(var r=this.bits1.bits,i=this.bits2.bits,o=Math.max(r.length,i.length),s=[],A=0;A<o;A++)A>=r.length?s.push(n.not(i[A])):A>=i.length?s.push(n.not(r[A])):s.push(n.equiv(r[A],i[A]));return t.generate(e,n.and(s))}}),n.HalfAdderSum=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderSum,"hsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b))}}),n.HalfAdderCarry=function(e,t){p&&p(e,h),p&&p(t,h),p&&f(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=t},n._defineFormula(n.HalfAdderCarry,"hcarry",{generateClauses:function(e,t){return t.generate(e,n.and(this.a,this.b))}}),n.FullAdderSum=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderSum,"fsum",{generateClauses:function(e,t){return t.generate(e,n.xor(this.a,this.b,this.c))}}),n.FullAdderCarry=function(e,t,r){p&&p(e,h),p&&p(t,h),p&&p(r,h),p&&f(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=t,this.c=r},n._defineFormula(n.FullAdderCarry,"fcarry",{generateClauses:function(e,t){return t.generate(!e,n.atMostOne(this.a,this.b,this.c))}});var I=function(e){p&&p(e,l(l(h)));for(var t=o.map(e,o.clone),r=0,i=[];r<t.length;){var s=t[r];if(s.length)if(1===s.length)i.push(s[0]),r++;else if(2===s.length){var A=new n.HalfAdderSum(s[0],s[1]),a=new n.HalfAdderCarry(s[0],s[1]);s.length=0,s.push(A),m(t,r+1,a)}else{var c=s.pop(),u=s.pop(),g=s.pop();A=new n.FullAdderSum(g,u,c),a=new n.FullAdderCarry(g,u,c);s.push(A),m(t,r+1,a)}else i.push(n.FALSE),r++}return i},m=function(e,t,r){for(;t>=e.length;)e.push([]);e[t].push(r)},y=function(e,t){if(p&&p(e,l(h)),"number"==typeof t)p&&p(t,n.isWholeNumber);else if(p&&p(t,l(n.isWholeNumber)),e.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+e.length+" and "+t.length)};n.weightedSum=function(e,t){if(y(e,t),0===e.length)return new n.Bits([]);"number"==typeof t&&(t=o.map(e,(function(){return t})));var r=[];return o.each(e,(function(e,n){for(var i=t[n],o=0;i;)1&i&&m(r,o,e),i>>>=1,o++})),new n.Bits(I(r))},n.sum=function(){var e=o.flatten(arguments);p&&p(e,l(g));var t=[];return o.each(e,(function(e){e instanceof n.Bits?o.each(e.bits,(function(e,r){m(t,r,e)})):m(t,0,e)})),new n.Bits(I(t))},n.Solver.prototype.solve=function(e){if(void 0!==e&&!(e>=1))throw new Error("_assumpVar must be a variable number");if(this._unsat)return null;for(;this._numClausesAddedToMiniSat<this.clauses.length;){var t=this._numClausesAddedToMiniSat,r=this.clauses[t].terms;p&&p(r,l(n.isNumTerm));var i=this._minisat.addClause(r);if(this._numClausesAddedToMiniSat++,!i)return this._unsat=!0,null}return p&&p(this._num2name.length-1,n.isWholeNumber),this._minisat.ensureVar(this._num2name.length-1),(i=e?this._minisat.solveAssuming(e):this._minisat.solve())?new n.Solution(this,this._minisat.getSolution()):(e||(this._unsat=!0),null)},n.Solver.prototype.solveAssuming=function(e){p&&p(e,h);var t=new n.Assumption(e),r=this._formulaToTerm(t);if(!("number"==typeof r&&r>0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(r);var i=this.solve(r);return this._minisat.retireVar(r),i},n.Assumption=function(e){p&&p(e,h),this.formula=e},n._defineFormula(n.Assumption,"assump",{generateClauses:function(e,t){return e?t.clause(this.formula):t.clause(n.not(this.formula))}}),n.Solution=function(e,t){var r=this;r._solver=e,r._assignment=t,r._ungeneratedFormulas=o.clone(e._ungeneratedFormulas),r._formulaValueCache={},r._termifier=new n.Termifier(r._solver),r._termifier.term=function(e){return r.evaluate(e)?n.NUM_TRUE:n.NUM_FALSE},r._ignoreUnknownVariables=!1},n.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},n.Solution.prototype.getMap=function(){for(var e=this._solver,t=this._assignment,r={},n=1;n<t.length;n++){var i=e.getVarName(n);i&&"$"!==i.charAt(0)&&(r[i]=t[n])}return r},n.Solution.prototype.getTrueVars=function(){for(var e=this._solver,t=this._assignment,r=[],n=1;n<t.length;n++)if(t[n]){var i=e.getVarName(n);i&&"$"!==i.charAt(0)&&r.push(i)}return r.sort(),r},n.Solution.prototype.getFormula=function(){for(var e=this._solver,t=this._assignment,r=[],i=1;i<t.length;i++){var o=e.getVarName(i);o&&"$"!==o.charAt(0)&&r.push(t[i]?i:-i)}return n.and(r)},n.Solution.prototype.evaluate=function(e){var t=this;if(p&&p(e,g),e instanceof n.Bits){var r=0;return o.each(e.bits,(function(e,n){t.evaluate(e)&&(r+=1<<n)})),r}var i=t._solver,s=t._ignoreUnknownVariables,A=t._assignment,a=e;if(a instanceof n.NotFormula)return!t.evaluate(a.operand);if(a instanceof n.Formula){var c=t._formulaValueCache[a.guid()];if("boolean"==typeof c)return c;var u=i._getFormulaInfo(a,!0);if(u&&u.varNum&&u.varNum<A.length&&!o.has(t._ungeneratedFormulas,u.varNum))h=A[u.varNum];else var l=i._generateFormula(!0,a,t._termifier),h=o.all(l,(function(e){return o.any(e.terms,(function(e){return t.evaluate(e)}))}));return t._formulaValueCache[a.guid()]=h,h}var f=i.toNumTerm(a,!0);if(!f){if(s)return!1;var d=String(a).replace(/^-*/,"");throw new Error("No such variable: "+d)}var C=f,E=!1;if(f<0&&(C=-C,E=!0),C<1||C>=A.length){d=C;if(C>=1&&C<i._num2name.length&&(d=i._num2name[C]),s)return!1;throw new Error("Variable not part of solution: "+d)}r=A[C];return E&&(r=!r),r},n.Solution.prototype.getWeightedSum=function(e,t){y(e,t);var r=0;if("number"==typeof t)for(var n=0;n<e.length;n++)r+=t*(this.evaluate(e[n])?1:0);else for(n=0;n<e.length;n++)r+=t[n]*(this.evaluate(e[n])?1:0);return r};var w=function(e,t){if("number"==typeof t)return t?e:[];for(var r=[],n=0;n<e.length;n++)t[n]&&r.push(e[n]);return r},B=function(e,t,r,i,o,s){var A=t,a=A.getWeightedSum(r,i),c=o&&o.formula||n.weightedSum(r,i),u=o&&o.progress,l=o&&o.strategy,h=null;if(s&&a>0){u&&u("trying",0);var g=null;h=w(r,i),(g=e.solveAssuming(n.not(n.or(h))))&&(A=g,a=0)}if(s&&"bottom-up"===l)for(var f=1;f<a;f++){u&&u("trying",f);var p=n.equalBits(c,n.constantBits(f));if(d=e.solveAssuming(p)){A=d,a=f;break}}else{if(l&&"default"!==l)throw new Error("Bad strategy: "+l);l="default"}if("default"===l)for(;!s||a>0;){u&&u("improving",a);var d,C=(s?n.lessThan:n.greaterThan)(c,n.constantBits(a));if(!(d=e.solveAssuming(C)))break;e.require(C),a=(A=d).getWeightedSum(r,i)}return s&&0===a?(h||(h=w(r,i)),e.forbid(h)):e.require(n.equalBits(c,n.constantBits(a))),u&&u("finished",a),A};n.Solver.prototype.minimizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!0)},n.Solver.prototype.maximizeWeightedSum=function(e,t,r,n){return B(this,e,t,r,n,!1)},e.exports=n},98312:module=>{var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},window=0,Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require("fs"),nodePath=require("path");Module.read=function(e,t){e=nodePath.normalize(e);var r=nodeFS.readFileSync(e);return r||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),r=nodeFS.readFileSync(e)),r&&!t&&(r=r.toString()),r},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e}))}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var t=read(e,"binary");return assert("object"==typeof t),t},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WEB?window.Module=Module:Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var t=parseInt(e.substr(1));return assert(t%8==0),t/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,t,r){return r||"i64"!=e&&"double"!=e?e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8):8},dynCall:function(e,t,r){return r&&r.length?(r.splice||(r=Array.prototype.slice.call(r)),r.splice(0,0,t),Module["dynCall_"+e].apply(null,r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t<Runtime.functionPointers.length;t++)if(!Runtime.functionPointers[t])return Runtime.functionPointers[t]=e,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;i<numArgs;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,void 0!==FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,t){assert(t),Runtime.funcWrappers[t]||(Runtime.funcWrappers[t]={});var r=Runtime.funcWrappers[t];return r[e]||(r[e]=function(){return Runtime.dynCall(t,e,arguments)}),r[e]},UTF8Processor:function(){var e=[],t=0;this.processCChar=function(r){if(r&=255,0==e.length)return 0==(128&r)?String.fromCharCode(r):(e.push(r),t=192==(224&r)?1:224==(240&r)?2:3,"");if(t&&(e.push(r),--t>0))return"";var n,i=e[0],o=e[1],s=e[2],A=e[3];if(2==e.length)n=String.fromCharCode((31&i)<<6|63&o);else if(3==e.length)n=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s);else{var a=(7&i)<<18|(63&o)<<12|(63&s)<<6|63&A;n=String.fromCharCode(55296+((a-65536)/1024|0),(a-65536)%1024+56320)}return e.length=0,n},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r<e.length;r++)t.push(e.charCodeAt(r));return t}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var t=STACKTOP;return STACKTOP=(STACKTOP=STACKTOP+e|0)+15&-16,t},staticAlloc:function(e){var t=STATICTOP;return STATICTOP=(STATICTOP=STATICTOP+e|0)+15&-16,t},dynamicAlloc:function(e){var t=DYNAMICTOP;return(DYNAMICTOP=(DYNAMICTOP=DYNAMICTOP+e|0)+15&-16)>=TOTAL_MEMORY&&enlargeMemory(),t},alignMemory:function(e,t){return e=Math.ceil(e/(t||16))*(t||16)},makeBigInt:function(e,t,r){return r?+(e>>>0)+4294967296*+(t>>>0):+(e>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var __THREW__=0,ABORT=!1,EXITSTATUS=0,undef=0,tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat,tempI64,tempI64b,tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(e,t){e||abort("Assertion failed: "+t)}var globalScope=this,cwrap,ccall;function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,t,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}function getValue(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}!function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;return null!=e&&0!==e&&writeStringToMemory(e,t=Runtime.stackAlloc(1+(e.length<<2))),t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,t,r,n){var i=getCFunc(e),o=[],s=0;if(n)for(var A=0;A<n.length;A++){var a=toC[r[A]];a?(0===s&&(s=Runtime.stackSave()),o[A]=a(n[A])):o[A]=n[A]}var c=i.apply(null,o);return"string"===t&&(c=Pointer_stringify(c)),0!==s&&Runtime.stackRestore(s),c};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var t=e.toString().match(sourceRegex).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var JSsource={};for(var fun in JSfuncs)JSfuncs.hasOwnProperty(fun)&&(JSsource[fun]=parseJSFunc(JSfuncs[fun]));cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every((function(e){return"number"===e})),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map((function(e,t){return"$"+t})),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"="+convertCode.returnValue+";"}}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,t,r,n){var i,o;"number"==typeof e?(i=!0,o=e):(i=!1,o=e.length);var s,A="string"==typeof t?t:null;if(s=r==ALLOC_NONE?n:[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===r?ALLOC_STATIC:r](Math.max(o,A?1:t.length)),i){var a;n=s;for(assert(0==(3&s)),a=s+(-4&o);n<a;n+=4)HEAP32[n>>2]=0;for(a=s+o;n<a;)HEAP8[n++>>0]=0;return s}if("i8"===A)return e.subarray||e.slice?HEAPU8.set(e,s):HEAPU8.set(new Uint8Array(e),s),s;for(var c,u,l,h=0;h<o;){var g=e[h];"function"==typeof g&&(g=Runtime.getFunctionIndex(g)),0!==(c=A||t[h])?("i64"==c&&(c="i32"),setValue(s+h,g,c),l!==c&&(u=Runtime.getNativeTypeSize(c),l=c),h+=u):h++}return s}function Pointer_stringify(e,t){if(0===t||!e)return"";for(var r,n=!1,i=0;;){if((r=HEAPU8[e+i>>0])>=128)n=!0;else if(0==r&&!t)break;if(i++,t&&i==t)break}t||(t=i);var o="";if(!n){for(var s;t>0;)s=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,1024))),o=o?o+s:s,e+=1024,t-=1024;return o}var A=new Runtime.UTF8Processor;for(i=0;i<t;i++)r=HEAPU8[e+i>>0],o+=A.processCChar(r);return o}function UTF16ToString(e){for(var t=0,r="";;){var n=HEAP16[e+2*t>>1];if(0==n)return r;++t,r+=String.fromCharCode(n)}}function stringToUTF16(e,t){for(var r=0;r<e.length;++r){var n=e.charCodeAt(r);HEAP16[t+2*r>>1]=n}HEAP16[t+2*e.length>>1]=0}function UTF32ToString(e){for(var t=0,r="";;){var n=HEAP32[e+4*t>>2];if(0==n)return r;if(++t,n>=65536){var i=n-65536;r+=String.fromCharCode(55296|i>>10,56320|1023&i)}else r+=String.fromCharCode(n)}}function stringToUTF32(e,t){for(var r=0,n=0;n<e.length;++n){var i=e.charCodeAt(n);if(i>=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++n);HEAP32[t+4*r>>2]=i,++r}HEAP32[t+4*r>>2]=0}function demangle(e){var t=!!Module.___cxa_demangle;if(t)try{var r=_malloc(e.length);writeStringToMemory(e.substr(1),r);var n=_malloc(4),i=Module.___cxa_demangle(r,0,0,n);if(0===getValue(n,"i32")&&i)return Pointer_stringify(i)}catch(e){}finally{r&&_free(r),n&&_free(n),i&&_free(i)}var o=3,s={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},A=[],a=!0;var c=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}c=function t(r,n,i){n=n||1/0;var c,u="",l=[];if("N"===e[o]){if(c=function(){o++,"K"===e[o]&&o++;for(var t=[];"E"!==e[o];)if("S"!==e[o])if("C"!==e[o]){var r=parseInt(e.substr(o)),n=r.toString().length;if(!r||!n){o--;break}var i=e.substr(o+n,r);t.push(i),A.push(i),o+=n+r}else t.push(t[t.length-1]),o+=2;else{o++;var s=e.indexOf("_",o),a=e.substring(o,s)||0;t.push(A[a]||"?"),o=s+1}return o++,t}().join("::"),0===--n)return r?[c]:c}else if(("K"===e[o]||a&&"L"===e[o])&&o++,p=parseInt(e.substr(o))){var h=p.toString().length;c=e.substr(o+h,p),o+=h+p}if(a=!1,"I"===e[o]){o++;var g=t(!0);u+=t(!0,1,!0)[0]+" "+c+"<"+g.join(", ")+">"}else u=c;e:for(;o<e.length&&n-- >0;){var f=e[o++];if(f in s)l.push(s[f]);else switch(f){case"P":l.push(t(!0,1,!0)[0]+"*");break;case"R":l.push(t(!0,1,!0)[0]+"&");break;case"L":o++;var p=e.indexOf("E",o)-o;l.push(e.substr(o,p)),o+=p+2;break;case"A":p=parseInt(e.substr(o));if(o+=p.toString().length,"_"!==e[o])throw"?";o++,l.push(t(!0,1,!0)[0]+" ["+p+"]");break;case"E":break e;default:u+="?"+f;break e}}return i||1!==l.length||"void"!==l[0]||(l=[]),r?(u&&l.push(u+"?"),l):u+"("+l.join(", ")+")"}()}catch(e){c+="?"}return c.indexOf("?")>=0&&!t&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling"),c}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:e+" ["+t+"]"}))}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,staticSealed=!1,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}for(var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864,FAST_MEMORY=Module.FAST_MEMORY||2097152,totalMemory=65536;totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK;)totalMemory<16777216?totalMemory*=2:totalMemory+=16777216;totalMemory!==TOTAL_MEMORY&&(Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec"),TOTAL_MEMORY=totalMemory),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Runtime.dynCall("v",r):Runtime.dynCall("vi",r,[t.arg]):r(void 0===t.arg?null:t.arg)}else t()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,t,r){var n=(new Runtime.UTF8Processor).processJSString(e);return r&&(n.length=r),t||n.push(0),n}function intArrayToString(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];n>255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}function writeStringToMemory(e,t,r){for(var n=intArrayFromString(e,r),i=0;i<n.length;){var o=n[i];HEAP8[t+i>>0]=o,i+=1}}function writeArrayToMemory(e,t){for(var r=0;r<e.length;r++)HEAP8[t+r>>0]=e[r]}function writeAsciiToMemory(e,t,r){for(var n=0;n<e.length;n++)HEAP8[t+n>>0]=e.charCodeAt(n);r||(HEAP8[t+e.length>>0]=0)}function unSign(e,t,r){return e>=0?e:t<=32?2*Math.abs(1<<t-1)+e:Math.pow(2,t)+e}function reSign(e,t,r){if(e<=0)return e;var n=t<=32?Math.abs(1<<t-1):Math.pow(2,t-1);return e>=n&&(t<=32||e>n)&&(e=-2*n+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,t){var r=65535&e,n=65535&t;return r*n+((e>>>16)*n+r*(t>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;STATIC_BASE=8,STATICTOP=STATIC_BASE+5664,__ATINIT__.push({func:function(){__GLOBAL__I_a()}},{func:function(){__GLOBAL__I_a127()}}),allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,1,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,1,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,12,0,0,0,13,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,14,0,0,0,18,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,18,0,0,160,18,0,0,208,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3]}function copyTempDouble(e){HEAP8[tempDoublePtr]=HEAP8[e],HEAP8[tempDoublePtr+1]=HEAP8[e+1],HEAP8[tempDoublePtr+2]=HEAP8[e+2],HEAP8[tempDoublePtr+3]=HEAP8[e+3],HEAP8[tempDoublePtr+4]=HEAP8[e+4],HEAP8[tempDoublePtr+5]=HEAP8[e+5],HEAP8[tempDoublePtr+6]=HEAP8[e+6],HEAP8[tempDoublePtr+7]=HEAP8[e+7]}function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var ___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var t in EXCEPTIONS.infos){if(EXCEPTIONS.infos[t].adjusted===e)return t}return e},addRef:function(e){e&&EXCEPTIONS.infos[e].refcount++},decRef:function(e){if(e){var t=EXCEPTIONS.infos[e];assert(t.refcount>0),t.refcount--,0===t.refcount&&(t.destructor&&Runtime.dynCall("vi",t.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){e&&(EXCEPTIONS.infos[e].refcount=0)}};function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(e)),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(asm.setTempRet0(0),0);var t=EXCEPTIONS.infos[e],r=t.type;if(!r)return 0|(asm.setTempRet0(0),e);var n=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(r);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var i=0;i<n.length;i++)if(n[i]&&Module.___cxa_can_catch(n[i],r,e))return e=HEAP32[e>>2],t.adjusted=e,0|(asm.setTempRet0(n[i]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(r),e)}function ___cxa_throw(e,t,r){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:t,destructor:r,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _abort(){Module.abort()}Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl;var FS=void 0,SOCKFS=void 0;function _send(e,t,r,n){return SOCKFS.getSocket(e)?_write(e,t,r):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,t,r,n){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var o=HEAP8;return FS.write(i,o,t,r,n)}catch(e){return FS.handleFSError(e),-1}}function _write(e,t,r){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var i=HEAP8;return FS.write(n,i,t,r)}catch(e){return FS.handleFSError(e),-1}}function _fileno(e){return(e=FS.getStreamFromPtr(e))?e.fd:-1}function _fwrite(e,t,r,n){var i=r*t;if(0==i)return 0;var o=_write(_fileno(n),e,i);if(-1==o){var s=FS.getStreamFromPtr(n);return s&&(s.error=!0),0}return o/t|0}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,t){var r=e,n=0;function i(e){var r;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[t+n>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[t+(n+4)>>2],r=+HEAPF64[tempDoublePtr>>3]):"i64"==e?r=[HEAP32[t+n>>2],HEAP32[t+(n+4)>>2]]:(e="i32",r=HEAP32[t+n>>2]),n+=Runtime.getNativeFieldSize(e),r}for(var o,s,A=[];;){var a=r;if(0===(o=HEAP8[r>>0]))break;if(s=HEAP8[r+1>>0],37==o){var c=!1,u=!1,l=!1,h=!1,g=!1;e:for(;;){switch(s){case 43:c=!0;break;case 45:u=!0;break;case 35:l=!0;break;case 48:if(h)break e;h=!0;break;case 32:g=!0;break;default:break e}r++,s=HEAP8[r+1>>0]}var f=0;if(42==s)f=i("i32"),r++,s=HEAP8[r+1>>0];else for(;s>=48&&s<=57;)f=10*f+(s-48),r++,s=HEAP8[r+1>>0];var p,d=!1,C=-1;if(46==s){if(C=0,d=!0,r++,42==(s=HEAP8[r+1>>0]))C=i("i32"),r++;else for(;;){var E=HEAP8[r+1>>0];if(E<48||E>57)break;C=10*C+(E-48),r++}s=HEAP8[r+1>>0]}switch(C<0&&(C=6,d=!1),String.fromCharCode(s)){case"h":104==HEAP8[r+2>>0]?(r++,p=1):p=2;break;case"l":108==HEAP8[r+2>>0]?(r++,p=8):p=4;break;case"L":case"q":case"j":p=8;break;case"z":case"t":case"I":p=4;break;default:p=null}switch(p&&r++,s=HEAP8[r+1>>0],String.fromCharCode(s)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var I=100==s||105==s,m=b=i("i"+8*(p=p||4));if(8==p&&(b=Runtime.makeBigInt(b[0],b[1],117==s)),p<=4)b=(I?reSign:unSign)(b&Math.pow(256,p)-1,8*p);var y=Math.abs(b),w="";if(100==s||105==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],null):reSign(b,8*p,1).toString(10);else if(117==s)D=8==p&&i64Math?i64Math.stringify(m[0],m[1],!0):unSign(b,8*p,1).toString(10),b=Math.abs(b);else if(111==s)D=(l?"0":"")+y.toString(8);else if(120==s||88==s){if(w=l&&0!=b?"0x":"",8==p&&i64Math)if(m[1]){D=(m[1]>>>0).toString(16);for(var B=(m[0]>>>0).toString(16);B.length<8;)B="0"+B;D+=B}else D=(m[0]>>>0).toString(16);else if(b<0){b=-b,D=(y-1).toString(16);for(var Q=[],v=0;v<D.length;v++)Q.push((15-parseInt(D[v],16)).toString(16));for(D=Q.join("");D.length<2*p;)D="f"+D}else D=y.toString(16);88==s&&(w=w.toUpperCase(),D=D.toUpperCase())}else 112==s&&(0===y?D="(nil)":(w="0x",D=y.toString(16)));if(d)for(;D.length<C;)D="0"+D;for(b>=0&&(c?w="+"+w:g&&(w=" "+w)),"-"==D.charAt(0)&&(w="-"+w,D=D.substr(1));w.length+D.length<f;)u?D+=" ":h?D="0"+D:w=" "+w;(D=w+D).split("").forEach((function(e){A.push(e.charCodeAt(0))}));break;case"f":case"F":case"e":case"E":case"g":case"G":var D,b=i("double");if(isNaN(b))D="nan",h=!1;else if(isFinite(b)){var S=!1,k=Math.min(C,20);if(103==s||71==s){S=!0,C=C||1;var x=parseInt(b.toExponential(k).split("e")[1],10);C>x&&x>=-4?(s=(103==s?"f":"F").charCodeAt(0),C-=x+1):(s=(103==s?"e":"E").charCodeAt(0),C--),k=Math.min(C,20)}101==s||69==s?(D=b.toExponential(k),/[eE][-+]\d$/.test(D)&&(D=D.slice(0,-1)+"0"+D.slice(-1))):102!=s&&70!=s||(D=b.toFixed(k),0===b&&__reallyNegative(b)&&(D="-"+D));var F=D.split("e");if(S&&!l)for(;F[0].length>1&&-1!=F[0].indexOf(".")&&("0"==F[0].slice(-1)||"."==F[0].slice(-1));)F[0]=F[0].slice(0,-1);else for(l&&-1==D.indexOf(".")&&(F[0]+=".");C>k++;)F[0]+="0";D=F[0]+(F.length>1?"e"+F[1]:""),69==s&&(D=D.toUpperCase()),b>=0&&(c?D="+"+D:g&&(D=" "+D))}else D=(b<0?"-":"")+"inf",h=!1;for(;D.length<f;)u?D+=" ":D=!h||"-"!=D[0]&&"+"!=D[0]?(h?"0":" ")+D:D[0]+"0"+D.slice(1);s<97&&(D=D.toUpperCase()),D.split("").forEach((function(e){A.push(e.charCodeAt(0))}));break;case"s":var M=i("i8*"),N=M?_strlen(M):"(null)".length;if(d&&(N=Math.min(N,C)),!u)for(;N<f--;)A.push(32);if(M)for(v=0;v<N;v++)A.push(HEAPU8[M++>>0]);else A=A.concat(intArrayFromString("(null)".substr(0,N),!0));if(u)for(;N<f--;)A.push(32);break;case"c":for(u&&A.push(i("i8"));--f>0;)A.push(32);u||A.push(i("i8"));break;case"n":var R=i("i32*");HEAP32[R>>2]=A.length;break;case"%":A.push(o);break;default:for(v=a;v<r+2;v++)A.push(HEAP8[v>>0])}r+=2}else A.push(o),r+=1}return A}function _fprintf(e,t,r){var n=__formatString(t,r),i=Runtime.stackSave(),o=_fwrite(allocate(n,"i8",ALLOC_STACK),1,n.length,e);return Runtime.stackRestore(i),o}function _printf(e,t){var r=__formatString(e,t),n=intArrayToString(r);return"\n"===n[n.length-1]&&(n=n.substr(0,n.length-1)),Module.print(n),r.length}function _pthread_once(e,t){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Runtime.dynCall("v",t),_pthread_once.seen[e]=1)}function _fputc(e,t){var r=unSign(255&e);if(HEAP8[_fputc.ret>>0]=r,-1==_write(_fileno(t),_fputc.ret,1)){var n=FS.getStreamFromPtr(t);return n&&(n.error=!0),-1}return r}Module._strlen=_strlen;var PTHREAD_SPECIFIC={};function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function _fputs(e,t){return _write(_fileno(t),e,_strlen(e))}Module._i64Add=_i64Add;var _stdout=allocate(1,"i32*",ALLOC_STATIC);function _puts(e){var t=Pointer_stringify(e),r=t.substr(0);return"\n"===r[r.length-1]&&(r=r.substr(0,r.length-1)),Module.print(r),t.length}function _pthread_setspecific(e,t){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=t,0):ERRNO_CODES.EINVAL}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}var _UItoD=!0;function _malloc(e){return Runtime.dynamicAlloc(e+8)+8&4294967288}function ___cxa_allocate_exception(e){return _malloc(e)}function _fmod(e,t){return e%t}function _fmodl(){return _fmod.apply(null,arguments)}function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}function _time(e){var t=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=t),t}Module._malloc=_malloc,Module._bitshift64Lshr=_bitshift64Lshr;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(e,t){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___cxa_guard_acquire(e){return HEAP8[e>>0]?0:(HEAP8[e>>0]=1,1)}function ___cxa_guard_release(){}function _vfprintf(e,t,r){return _fprintf(e,t,HEAP32[r>>2])}function ___cxa_begin_catch(e){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _emscripten_memcpy_big(e,t,r){return HEAPU8.set(HEAPU8.subarray(t,t+r),e),e}Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(e){var t=_sbrk;t.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),t.called=!0,assert(Runtime.dynamicAlloc),t.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var r=DYNAMICTOP;return 0!=e&&t.alloc(e),r}var _fabs=Math_abs;function ___errno_location(){return ___errno_state}var _BItoD=!0;function _copysign(e,t){return __reallyNegative(e)===__reallyNegative(t)?e:-e}function _copysignl(){return _copysign.apply(null,arguments)}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,_fputc.ret=allocate([0],"i8",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),staticSealed=!0,STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var ctlz_i8=allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_DYNAMIC),cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_iiii(e,t,r,n){try{return Module.dynCall_iiii(e,t,r,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiii(e,t,r,n,i,o){try{Module.dynCall_viiiii(e,t,r,n,i,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vii(e,t,r){try{Module.dynCall_vii(e,t,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiiii(e,t,r,n,i,o,s){try{Module.dynCall_viiiiii(e,t,r,n,i,o,s)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iii(e,t,r){try{return Module.dynCall_iii(e,t,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiii(e,t,r,n,i){try{Module.dynCall_viiii(e,t,r,n,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array},Module.asmLibraryArg={abort,assert,min:Math_min,invoke_iiii,invoke_viiiii,invoke_vi,invoke_vii,invoke_ii,invoke_v,invoke_viiiiii,invoke_iii,invoke_viiii,_fabs,_llvm_pow_f64,_send,_fmod,___cxa_guard_acquire,___setErrNo,_vfprintf,___cxa_allocate_exception,___cxa_find_matching_catch,___cxa_guard_release,_pwrite,__reallyNegative,_sbrk,___cxa_begin_catch,_emscripten_memcpy_big,_fileno,___resumeException,__ZSt18uncaught_exceptionv,_sysconf,_pthread_getspecific,_atexit,_pthread_once,_puts,_printf,_pthread_key_create,_write,___errno_location,_pthread_setspecific,___cxa_atexit,_copysign,_fputc,___cxa_throw,__exit,_copysignl,_abort,_fwrite,_time,_fprintf,__formatString,_fputs,_exit,___cxa_pure_virtual,_fmodl,STACKTOP,STACK_MAX,tempDoublePtr,ABORT,cttz_i8,ctlz_i8,NaN:NaN,Infinity:1/0,___dso_handle,_stderr};var asm=function(e,t,r){"use asm";var n=new e.Int8Array(r);var i=new e.Int16Array(r);var o=new e.Int32Array(r);var s=new e.Uint8Array(r);var A=new e.Uint16Array(r);var a=new e.Uint32Array(r);var c=new e.Float32Array(r);var u=new e.Float64Array(r);var l=t.STACKTOP|0;var h=t.STACK_MAX|0;var g=t.tempDoublePtr|0;var f=t.ABORT|0;var p=t.cttz_i8|0;var d=t.ctlz_i8|0;var C=t.___dso_handle|0;var E=t._stderr|0;var I=0;var m=0;var y=0;var w=0;var B=+t.NaN,Q=+t.Infinity;var v=0,D=0,b=0,S=0,k=0.0,x=0,F=0,M=0,N=0.0;var R=0;var K=0;var L=0;var T=0;var P=0;var U=0;var _=0;var O=0;var j=0;var Y=0;var G=e.Math.floor;var J=e.Math.abs;var H=e.Math.sqrt;var q=e.Math.pow;var z=e.Math.cos;var W=e.Math.sin;var V=e.Math.tan;var X=e.Math.acos;var Z=e.Math.asin;var $=e.Math.atan;var ee=e.Math.atan2;var te=e.Math.exp;var re=e.Math.log;var ne=e.Math.ceil;var ie=e.Math.imul;var oe=t.abort;var se=t.assert;var Ae=t.min;var ae=t.invoke_iiii;var ce=t.invoke_viiiii;var ue=t.invoke_vi;var le=t.invoke_vii;var he=t.invoke_ii;var ge=t.invoke_v;var fe=t.invoke_viiiiii;var pe=t.invoke_iii;var de=t.invoke_viiii;var Ce=t._fabs;var Ee=t._llvm_pow_f64;var Ie=t._send;var me=t._fmod;var ye=t.___cxa_guard_acquire;var we=t.___setErrNo;var Be=t._vfprintf;var Qe=t.___cxa_allocate_exception;var ve=t.___cxa_find_matching_catch;var De=t.___cxa_guard_release;var be=t._pwrite;var Se=t.__reallyNegative;var ke=t._sbrk;var xe=t.___cxa_begin_catch;var Fe=t._emscripten_memcpy_big;var Me=t._fileno;var Ne=t.___resumeException;var Re=t.__ZSt18uncaught_exceptionv;var Ke=t._sysconf;var Le=t._pthread_getspecific;var Te=t._atexit;var Pe=t._pthread_once;var Ue=t._puts;var _e=t._printf;var Oe=t._pthread_key_create;var je=t._write;var Ye=t.___errno_location;var Ge=t._pthread_setspecific;var Je=t.___cxa_atexit;var He=t._copysign;var qe=t._fputc;var ze=t.___cxa_throw;var We=t.__exit;var Ve=t._copysignl;var Xe=t._abort;var Ze=t._fwrite;var $e=t._time;var et=t._fprintf;var tt=t.__formatString;var rt=t._fputs;var nt=t._exit;var it=t.___cxa_pure_virtual;var ot=t._fmodl;var st=0.0;function At(e){e=e|0;var t=0;t=l;l=l+e|0;l=l+15&-16;return t|0}function at(){return l|0}function ct(e){e=e|0;l=e}function ut(e,t){e=e|0;t=t|0;if(!I){I=e;m=t}}function lt(e){e=e|0;n[g>>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0]}function ht(e){e=e|0;n[g>>0]=n[e>>0];n[g+1>>0]=n[e+1>>0];n[g+2>>0]=n[e+2>>0];n[g+3>>0]=n[e+3>>0];n[g+4>>0]=n[e+4>>0];n[g+5>>0]=n[e+5>>0];n[g+6>>0]=n[e+6>>0];n[g+7>>0]=n[e+7>>0]}function gt(e){e=e|0;R=e}function ft(){return R|0}function pt(e){e=e|0;xe(e|0)|0;pn()}function dt(e){e=e|0;return}function Ct(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;A=l;o[e>>2]=112;o[e+4>>2]=t;o[e+8>>2]=r;o[e+12>>2]=i;o[e+16>>2]=s;if((n[144]|0)==0?(ye(144)|0)!=0:0){o[32]=0;o[33]=0;o[34]=0;Je(19,128,C|0)|0;De(144)}s=o[33]|0;if((s|0)==(o[34]|0)){i=(s>>1)+2&-2;i=(i|0)<2?2:i;if((i|0)>(2147483647-s|0)){t=Qe(1)|0;ze(t|0,48,0)}r=o[32]|0;t=i+s|0;o[34]=t;t=On(r,t<<2)|0;o[32]=t;if((t|0)==0?(o[(Ye()|0)>>2]|0)==12:0){t=Qe(1)|0;ze(t|0,48,0)}s=o[33]|0}o[33]=s+1;s=(o[32]|0)+(s<<2)|0;if(!s){l=A;return}o[s>>2]=e;l=A;return}function Et(e){e=e|0;var t=0;t=l;un(e);l=t;return}function It(e){e=e|0;var t=0,r=0;t=l;r=o[e>>2]|0;if(!r){l=t;return}o[e+4>>2]=0;_n(r);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function mt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function yt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;r=l;if((n[t>>0]|0)!=45){c=0;l=r;return c|0}i=t+1|0;s=110;a=i;c=0;while(1){A=c+1|0;if((n[a>>0]|0)!=s<<24>>24){s=1;break}a=t+(c+2)|0;if((A|0)==3){s=0;i=a;break}else{s=n[264+A>>0]|0;c=A}}if($n(i,o[e+4>>2]|0)|0){c=0;l=r;return c|0}n[e+20>>0]=s;c=1;l=r;return c|0}function wt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0;A=l;l=l+16|0;r=A;i=o[E>>2]|0;s=e+4|0;a=o[s>>2]|0;o[r>>2]=a;o[r+4>>2]=a;et(i|0,216,r|0)|0;a=0;while(1){c=a>>>0<(32-((Ai(o[s>>2]|0)|0)<<1)|0)>>>0;qe(32,i|0)|0;if(c)a=a+1|0;else break}o[r>>2]=(n[e+20>>0]|0)!=0?248:256;et(i|0,232,r|0)|0;if(!t){l=A;return}o[r>>2]=o[e+8>>2];et(i|0,88,r|0)|0;qe(10,i|0)|0;l=A;return}function Bt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){g=0;l=r;return g|0}u=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){h=0;while(1){g=h;h=h+1|0;if((n[u>>0]|0)!=c<<24>>24){e=0;break}c=n[a+h>>0]|0;u=t+(g+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[u>>0]|0)!=61){g=0;l=r;return g|0}t=u+1|0;a=Zn(t,s,10)|0;if(!(o[s>>2]|0)){g=0;l=r;return g|0}if((a|0)>(o[e+24>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,416,A|0)|0;nt(1)}if((a|0)<(o[e+20>>2]|0)){g=o[E>>2]|0;h=o[i>>2]|0;o[A>>2]=t;o[A+4>>2]=h;et(g|0,472,A|0)|0;nt(1)}o[e+28>>2]=a;g=1;l=r;return g|0}function vt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;l=l+16|0;n=r;i=o[E>>2]|0;s=o[e+16>>2]|0;o[n>>2]=o[e+4>>2];o[n+4>>2]=s;et(i|0,336,n|0)|0;s=o[e+20>>2]|0;if((s|0)==-2147483648)Ze(360,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}Ze(376,4,1,i|0)|0;s=o[e+24>>2]|0;if((s|0)==2147483647)Ze(384,4,1,i|0)|0;else{o[n>>2]=s;et(i|0,368,n|0)|0}o[n>>2]=o[e+28>>2];et(i|0,392,n|0)|0;if(!t){l=r;return}o[n>>2]=o[e+8>>2];et(i|0,88,n|0)|0;qe(10,i|0)|0;l=r;return}function Dt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0;s=l;o[e>>2]=1816;i=e+4|0;r=e+32|0;A=e+48|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;u[A>>3]=+u[75];u[e+56>>3]=+u[89];u[e+64>>3]=+u[103];u[e+72>>3]=+u[123];n[e+80>>0]=n[1364]|0;o[e+84>>2]=o[269];o[e+88>>2]=o[297];n[e+92>>0]=0;n[e+93>>0]=n[1292]|0;u[e+96>>3]=+u[204];o[e+104>>2]=o[439];o[e+108>>2]=o[359];u[e+112>>3]=+u[191];u[e+120>>3]=.3333333333333333;u[e+128>>3]=1.1;o[e+136>>2]=100;u[e+144>>3]=1.5;A=e+316|0;o[e+332>>2]=0;o[e+336>>2]=0;o[e+340>>2]=0;o[e+348>>2]=0;o[e+352>>2]=0;o[e+356>>2]=0;o[e+364>>2]=0;o[e+368>>2]=0;o[e+372>>2]=0;o[e+380>>2]=0;o[e+384>>2]=0;o[e+388>>2]=0;o[e+396>>2]=0;o[e+400>>2]=0;o[e+404>>2]=0;r=e+544|0;o[e+412>>2]=0;o[e+416>>2]=0;o[e+420>>2]=0;o[e+428>>2]=0;o[e+432>>2]=0;o[e+436>>2]=0;o[e+444>>2]=0;o[e+448>>2]=0;o[e+452>>2]=0;oi(e+152|0,0,176)|0;o[e+456>>2]=r;i=e+460|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;o[i+20>>2]=0;o[e+488>>2]=A;n[e+492>>0]=1;u[e+496>>3]=1.0;u[e+504>>3]=1.0;o[e+512>>2]=0;o[e+516>>2]=-1;A=e+520|0;i=e+536|0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;n[i>>0]=1;i=e+540|0;o[i+0>>2]=0;o[i+4>>2]=0;o[i+8>>2]=0;o[i+12>>2]=0;o[i+16>>2]=0;er(r,1048576);n[e+560>>0]=0;r=e+604|0;i=e+664|0;A=e+564|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=r+0|0;t=A+36|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(t|0));A=e+680|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;n[A>>0]=0;l=s;return}function bt(e){e=e|0;var t=0;t=l;St(e);un(e);l=t;return}function St(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=1816;r=e+628|0;n=o[r>>2]|0;if(n){o[e+632>>2]=0;_n(n);o[r>>2]=0;o[e+636>>2]=0}r=e+616|0;n=o[r>>2]|0;if(n){o[e+620>>2]=0;_n(n);o[r>>2]=0;o[e+624>>2]=0}r=e+604|0;n=o[r>>2]|0;if(n){o[e+608>>2]=0;_n(n);o[r>>2]=0;o[e+612>>2]=0}r=e+588|0;n=o[r>>2]|0;if(n){o[e+592>>2]=0;_n(n);o[r>>2]=0;o[e+596>>2]=0}r=e+576|0;n=o[r>>2]|0;if(n){o[e+580>>2]=0;_n(n);o[r>>2]=0;o[e+584>>2]=0}r=e+564|0;n=o[r>>2]|0;if(n){o[e+568>>2]=0;_n(n);o[r>>2]=0;o[e+572>>2]=0}r=o[e+544>>2]|0;if(r)_n(r);r=e+472|0;n=o[r>>2]|0;if(n){o[e+476>>2]=0;_n(n);o[r>>2]=0;o[e+480>>2]=0}r=e+460|0;n=o[r>>2]|0;if(n){o[e+464>>2]=0;_n(n);o[r>>2]=0;o[e+468>>2]=0}tr(e+412|0);r=e+396|0;n=o[r>>2]|0;if(n){o[e+400>>2]=0;_n(n);o[r>>2]=0;o[e+404>>2]=0}r=e+380|0;n=o[r>>2]|0;if(n){o[e+384>>2]=0;_n(n);o[r>>2]=0;o[e+388>>2]=0}n=e+364|0;r=o[n>>2]|0;if(r){o[e+368>>2]=0;_n(r);o[n>>2]=0;o[e+372>>2]=0}r=e+348|0;n=o[r>>2]|0;if(n){o[e+352>>2]=0;_n(n);o[r>>2]=0;o[e+356>>2]=0}r=e+332|0;n=o[r>>2]|0;if(n){o[e+336>>2]=0;_n(n);o[r>>2]=0;o[e+340>>2]=0}r=e+316|0;n=o[r>>2]|0;if(n){o[e+320>>2]=0;_n(n);o[r>>2]=0;o[e+324>>2]=0}r=e+304|0;n=o[r>>2]|0;if(n){o[e+308>>2]=0;_n(n);o[r>>2]=0;o[e+312>>2]=0}r=e+292|0;n=o[r>>2]|0;if(n){o[e+296>>2]=0;_n(n);o[r>>2]=0;o[e+300>>2]=0}r=e+280|0;n=o[r>>2]|0;if(n){o[e+284>>2]=0;_n(n);o[r>>2]=0;o[e+288>>2]=0}r=e+268|0;n=o[r>>2]|0;if(n){o[e+272>>2]=0;_n(n);o[r>>2]=0;o[e+276>>2]=0}r=e+256|0;n=o[r>>2]|0;if(n){o[e+260>>2]=0;_n(n);o[r>>2]=0;o[e+264>>2]=0}r=e+32|0;n=o[r>>2]|0;if(n){o[e+36>>2]=0;_n(n);o[r>>2]=0;o[e+40>>2]=0}r=e+16|0;n=o[r>>2]|0;if(n){o[e+20>>2]=0;_n(n);o[r>>2]=0;o[e+24>>2]=0}n=e+4|0;r=o[n>>2]|0;if(!r){l=t;return}o[e+8>>2]=0;_n(r);o[n>>2]=0;o[e+12>>2]=0;l=t;return}function kt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0.0,h=0,g=0,f=0,p=0,d=0,C=0;i=l;l=l+16|0;a=i+4|0;A=i;s=e+580|0;h=o[s>>2]|0;if((h|0)>0){f=h+-1|0;p=o[(o[e+576>>2]|0)+(f<<2)>>2]|0;o[s>>2]=f;s=p}else{p=e+540|0;s=o[p>>2]|0;o[p>>2]=s+1}h=e+412|0;p=s<<1;o[a>>2]=p;rr(h,a);o[A>>2]=p|1;rr(h,A);a=e+332|0;h=n[544]|0;A=s+1|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=h;a=e+396|0;h=e+400|0;if((o[h>>2]|0)<(A|0)){f=e+404|0;p=o[f>>2]|0;if((p|0)<(A|0)){d=s+2-p&-2;g=(p>>1)+2&-2;g=(d|0)>(g|0)?d:g;if((g|0)>(2147483647-p|0)){d=Qe(1)|0;ze(d|0,48,0)}C=o[a>>2]|0;d=g+p|0;o[f>>2]=d;d=On(C,d<<3)|0;o[a>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}f=o[h>>2]|0;if((f|0)<(A|0))do{g=(o[a>>2]|0)+(f<<3)|0;if(g){C=g;o[C>>2]=0;o[C+4>>2]=0}f=f+1|0}while((f|0)!=(A|0));o[h>>2]=A}h=(o[a>>2]|0)+(s<<3)|0;o[h>>2]=-1;o[h+4>>2]=0;h=e+316|0;if(!(n[e+93>>0]|0))c=0.0;else{C=e+72|0;c=+u[C>>3]*1389796.0;c=c-+(~~(c/2147483647.0)|0)*2147483647.0;u[C>>3]=c;c=c/2147483647.0*1.0e-5}a=e+320|0;if((o[a>>2]|0)<(A|0)){g=e+324|0;f=o[g>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;p=(f>>1)+2&-2;p=(C|0)>(p|0)?C:p;if((p|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[h>>2]|0;C=p+f|0;o[g>>2]=C;C=On(d,C<<3)|0;o[h>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}p=o[a>>2]|0;if((p|0)<(A|0)){g=o[h>>2]|0;do{f=g+(p<<3)|0;if(f)u[f>>3]=0.0;p=p+1|0}while((p|0)!=(A|0))}o[a>>2]=A}u[(o[h>>2]|0)+(s<<3)>>3]=c;ir(e+588|0,s,0);ir(e+348|0,s,1);a=e+364|0;t=n[t>>0]|0;nr(a,A);n[(o[a>>2]|0)+s>>0]=t;a=e+380|0;t=e+384|0;if((o[t>>2]|0)<(A|0)){h=e+388|0;f=o[h>>2]|0;if((f|0)<(A|0)){C=s+2-f&-2;g=(f>>1)+2&-2;g=(C|0)>(g|0)?C:g;if((g|0)>(2147483647-f|0)){C=Qe(1)|0;ze(C|0,48,0)}d=o[a>>2]|0;C=g+f|0;o[h>>2]=C;C=On(d,C)|0;o[a>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}h=o[t>>2]|0;if((h|0)<(A|0))do{g=(o[a>>2]|0)+h|0;if(g)n[g>>0]=0;h=h+1|0}while((h|0)!=(A|0));o[t>>2]=A}t=e+288|0;a=o[t>>2]|0;if((a|0)<(A|0)){C=s+2-a&-2;A=(a>>1)+2&-2;A=(C|0)>(A|0)?C:A;if((A|0)>(2147483647-a|0)){C=Qe(1)|0;ze(C|0,48,0)}d=e+280|0;p=o[d>>2]|0;C=A+a|0;o[t>>2]=C;C=On(p,C<<2)|0;o[d>>2]=C;if((C|0)==0?(o[(Ye()|0)>>2]|0)==12:0){C=Qe(1)|0;ze(C|0,48,0)}}A=e+380|0;t=(o[A>>2]|0)+s|0;a=(n[t>>0]|0)==0;if(r){if(a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,1,0)|0;o[C>>2]=d;o[C+4>>2]=R}}else if(!a){C=e+200|0;d=C;d=ai(o[d>>2]|0,o[d+4>>2]|0,-1,-1)|0;o[C>>2]=d;o[C+4>>2]=R}n[t>>0]=r&1;r=e+460|0;if((o[e+476>>2]|0)>(s|0)?(o[(o[e+472>>2]|0)+(s<<2)>>2]|0)>-1:0){l=i;return s|0}if(!(n[(o[A>>2]|0)+s>>0]|0)){l=i;return s|0}or(r,s);l=i;return s|0}function xt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;l=l+16|0;c=r+1|0;a=r;i=e+492|0;if(!(n[i>>0]|0)){E=0;l=r;return E|0}E=o[t>>2]|0;A=t+4|0;u=o[A>>2]|0;n[c+0>>0]=n[a+0>>0]|0;ar(E,u,c);u=o[A>>2]|0;e:do{if((u|0)>0){c=e+332|0;a=n[528]|0;h=0;g=0;p=-2;while(1){E=o[t>>2]|0;f=o[E+(h<<2)>>2]|0;C=s[(o[c>>2]|0)+(f>>1)>>0]|0;I=C^f&1;d=I&255;m=a&255;if((f|0)==(p^1|0)?1:(d<<24>>24==a<<24>>24&(m>>>1^1)|m&2&I|0)!=0){e=1;break}I=n[536]|0;m=I&255;if((f|0)!=(p|0)?((m>>>1^1)&d<<24>>24==I<<24>>24|C&2&m|0)==0:0){o[E+(g<<2)>>2]=f;u=o[A>>2]|0;g=g+1|0}else f=p;h=h+1|0;if((h|0)<(u|0))p=f;else break e}l=r;return e|0}else{h=0;g=0}}while(0);a=h-g|0;if((a|0)>0){u=u-a|0;o[A>>2]=u}if(!u){n[i>>0]=0;m=0;l=r;return m|0}else if((u|0)==1){I=o[o[t>>2]>>2]|0;E=I>>1;n[(o[e+332>>2]|0)+E>>0]=(I&1^1)&255^1;m=o[e+296>>2]|0;E=(o[e+396>>2]|0)+(E<<3)|0;o[E>>2]=-1;o[E+4>>2]=m;E=e+284|0;m=o[E>>2]|0;o[E>>2]=m+1;o[(o[e+280>>2]|0)+(m<<2)>>2]=I;m=(Mt(e)|0)==-1;n[i>>0]=m&1;l=r;return m|0}else{t=cr(e+544|0,t,0)|0;A=e+256|0;i=e+260|0;c=o[i>>2]|0;a=e+264|0;if((c|0)==(o[a>>2]|0)){u=(c>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-c|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=u+c|0;o[a>>2]=m;m=On(I,m<<2)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}c=o[i>>2]|0}o[i>>2]=c+1;i=(o[A>>2]|0)+(c<<2)|0;if(i)o[i>>2]=t;Nt(e,t);m=1;l=r;return m|0}return 0}function Ft(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0;i=o[t>>2]|0;t=i>>1;n[(o[e+332>>2]|0)+t>>0]=(i&1^1)&255^1;s=o[e+296>>2]|0;t=(o[e+396>>2]|0)+(t<<3)|0;o[t>>2]=r;o[t+4>>2]=s;r=e+284|0;t=o[r>>2]|0;o[r>>2]=t+1;o[(o[e+280>>2]|0)+(t<<2)>>2]=i;return}function Mt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;c=l;l=l+16|0;C=c;A=e+512|0;I=o[A>>2]|0;d=e+284|0;if((I|0)>=(o[d>>2]|0)){P=0;L=0;_=-1;U=e+184|0;N=U;T=N;T=o[T>>2]|0;N=N+4|0;N=o[N>>2]|0;N=ai(T|0,N|0,P|0,L|0)|0;T=R;K=U;o[K>>2]=N;U=U+4|0;o[U>>2]=T;U=e+520|0;T=U;K=T;K=o[K>>2]|0;T=T+4|0;T=o[T>>2]|0;L=ii(K|0,T|0,P|0,L|0)|0;P=R;T=U;o[T>>2]=L;U=U+4|0;o[U>>2]=P;l=c;return _|0}f=e+280|0;a=e+428|0;i=e+412|0;u=e+332|0;h=e+544|0;g=C+4|0;t=e+396|0;p=e+296|0;r=e+456|0;v=-1;E=0;do{o[A>>2]=I+1;w=o[(o[f>>2]|0)+(I<<2)>>2]|0;if(n[(o[a>>2]|0)+w>>0]|0){m=o[i>>2]|0;I=m+(w*12|0)+4|0;Q=o[I>>2]|0;if((Q|0)>0){m=m+(w*12|0)|0;y=0;B=0;do{b=o[m>>2]|0;D=b+(y<<3)|0;if((o[(o[o[r>>2]>>2]|0)+(o[D>>2]<<2)>>2]&3|0)!=1){U=D;_=o[U+4>>2]|0;Q=b+(B<<3)|0;o[Q>>2]=o[U>>2];o[Q+4>>2]=_;Q=o[I>>2]|0;B=B+1|0}y=y+1|0}while((y|0)<(Q|0))}else{y=0;B=0}m=y-B|0;if((m|0)>0)o[I>>2]=Q-m;n[(o[a>>2]|0)+w>>0]=0}I=o[i>>2]|0;E=E+1|0;m=o[I+(w*12|0)>>2]|0;I=I+(w*12|0)+4|0;B=o[I>>2]|0;y=m+(B<<3)|0;e:do{if(!B){y=m;Q=m}else{w=w^1;B=(B<<3)+-1|0;b=m;Q=m;while(1){while(1){t:while(1){M=o[b+4>>2]|0;_=s[(o[u>>2]|0)+(M>>1)>>0]^M&1;K=n[528]|0;N=K&255;L=N&2;N=N>>>1^1;if((_&255)<<24>>24==K<<24>>24&N|L&_){x=19;break}D=o[b>>2]|0;x=o[h>>2]|0;F=x+(D<<2)|0;S=x+(D+1<<2)|0;k=o[S>>2]|0;if((k|0)==(w|0)){_=x+(D+2<<2)|0;k=o[_>>2]|0;o[S>>2]=k;o[_>>2]=w}S=b+8|0;o[C>>2]=D;o[g>>2]=k;if((k|0)!=(M|0)?(_=s[(o[u>>2]|0)+(k>>1)>>0]^k&1,((_&255)<<24>>24==K<<24>>24&N|L&_|0)!=0):0){x=27;break}L=o[F>>2]|0;if(L>>>0<=95){x=31;break}N=o[u>>2]|0;K=n[536]|0;M=K&255;_=M&2;M=M>>>1^1;U=2;while(1){T=F+(U<<2)+4|0;P=o[T>>2]|0;O=s[N+(P>>1)>>0]^P&1;U=U+1|0;if(!((O&255)<<24>>24==K<<24>>24&M|_&O))break;if((U|0)>=(L>>>5|0)){x=32;break t}}O=x+(D+2<<2)|0;o[O>>2]=P;o[T>>2]=w;ur((o[i>>2]|0)+((o[O>>2]^1)*12|0)|0,C);if((S|0)==(y|0))break e;else b=S}if((x|0)==19){x=0;U=b;_=o[U+4>>2]|0;O=Q;o[O>>2]=o[U>>2];o[O+4>>2]=_;b=b+8|0;Q=Q+8|0}else if((x|0)==27){x=0;_=C;O=o[_+4>>2]|0;b=Q;o[b>>2]=o[_>>2];o[b+4>>2]=O;b=S;Q=Q+8|0}else if((x|0)==31){K=n[536]|0;x=32}if((x|0)==32){x=Q+8|0;F=C;N=o[F+4>>2]|0;M=Q;o[M>>2]=o[F>>2];o[M+4>>2]=N;M=k>>1;N=k&1;F=(o[u>>2]|0)+M|0;O=s[F>>0]^N;_=K&255;if((O&255)<<24>>24==K<<24>>24&(_>>>1^1)|_&2&O)break;n[F>>0]=(N^1)&255^1;Q=o[p>>2]|0;b=(o[t>>2]|0)+(M<<3)|0;o[b>>2]=D;o[b+4>>2]=Q;b=o[d>>2]|0;o[d>>2]=b+1;o[(o[f>>2]|0)+(b<<2)>>2]=k;b=S;Q=x}if((b|0)==(y|0))break e}o[A>>2]=o[d>>2];if(S>>>0<y>>>0){v=(m+(B-S)|0)>>>3;while(1){U=S;S=S+8|0;_=o[U+4>>2]|0;O=x;o[O>>2]=o[U>>2];o[O+4>>2]=_;if(S>>>0>=y>>>0)break;else x=x+8|0}b=b+(v+2<<3)|0;Q=Q+(v+2<<3)|0}else{b=S;Q=x}if((b|0)==(y|0)){v=D;break}else v=D}}}while(0);m=y-Q|0;if((m|0)>0)o[I>>2]=(o[I>>2]|0)-(m>>3);I=o[A>>2]|0}while((I|0)<(o[d>>2]|0));U=E;T=((E|0)<0)<<31>>31;O=v;_=e+184|0;K=_;P=K;P=o[P>>2]|0;K=K+4|0;K=o[K>>2]|0;K=ai(P|0,K|0,U|0,T|0)|0;P=R;L=_;o[L>>2]=K;_=_+4|0;o[_>>2]=P;_=e+520|0;P=_;L=P;L=o[L>>2]|0;P=P+4|0;P=o[P>>2]|0;T=ii(L|0,P|0,U|0,T|0)|0;U=R;P=_;o[P>>2]=T;_=_+4|0;o[_>>2]=U;l=c;return O|0}function Nt(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;l=l+16|0;c=r+8|0;i=r;s=o[e+544>>2]|0;n=s+(t<<2)|0;A=s+(t+1<<2)|0;a=e+412|0;u=(o[a>>2]|0)+((o[A>>2]^1)*12|0)|0;s=s+(t+2<<2)|0;h=o[s>>2]|0;o[c>>2]=t;o[c+4>>2]=h;ur(u,c);s=(o[a>>2]|0)+((o[s>>2]^1)*12|0)|0;A=o[A>>2]|0;o[i>>2]=t;o[i+4>>2]=A;ur(s,i);if(!(o[n>>2]&4)){h=e+208|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+224|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}else{h=e+216|0;u=h;u=ai(o[u>>2]|0,o[u+4>>2]|0,1,0)|0;o[h>>2]=u;o[h+4>>2]=R;h=e+232|0;u=h;u=ai((o[n>>2]|0)>>>5|0,0,o[u>>2]|0,o[u+4>>2]|0)|0;o[h>>2]=u;o[h+4>>2]=R;l=r;return}}function Rt(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;s=l;l=l+16|0;u=s+4|0;a=s;A=o[e+544>>2]|0;i=A+(t<<2)|0;c=o[A+(t+1<<2)>>2]^1;if(!r){o[u>>2]=c;r=e+428|0;h=o[r>>2]|0;c=h+c|0;if(!(n[c>>0]|0)){n[c>>0]=1;sr(e+444|0,u);h=o[r>>2]|0}t=o[A+(t+2<<2)>>2]^1;o[a>>2]=t;t=h+t|0;if(!(n[t>>0]|0)){n[t>>0]=1;sr(e+444|0,a)}}else{a=e+412|0;r=o[a>>2]|0;u=r+(c*12|0)|0;A=A+(t+2<<2)|0;c=r+(c*12|0)+4|0;h=o[c>>2]|0;e:do{if((h|0)>0){p=o[u>>2]|0;f=0;while(1){g=f+1|0;if((o[p+(f<<3)>>2]|0)==(t|0)){g=f;break e}if((g|0)<(h|0))f=g;else break}}else g=0}while(0);h=h+-1|0;if((g|0)<(h|0)){do{r=o[u>>2]|0;h=g;g=g+1|0;f=r+(g<<3)|0;p=o[f+4>>2]|0;h=r+(h<<3)|0;o[h>>2]=o[f>>2];o[h+4>>2]=p;h=(o[c>>2]|0)+-1|0}while((g|0)<(h|0));r=o[a>>2]|0}o[c>>2]=h;a=o[A>>2]^1;A=r+(a*12|0)|0;a=r+(a*12|0)+4|0;c=o[a>>2]|0;e:do{if((c|0)>0){r=o[A>>2]|0;h=0;while(1){u=h+1|0;if((o[r+(h<<3)>>2]|0)==(t|0)){u=h;break e}if((u|0)<(c|0))h=u;else break}}else u=0}while(0);t=c+-1|0;if((u|0)<(t|0))do{g=o[A>>2]|0;t=u;u=u+1|0;f=g+(u<<3)|0;p=o[f+4>>2]|0;t=g+(t<<3)|0;o[t>>2]=o[f>>2];o[t+4>>2]=p;t=(o[a>>2]|0)+-1|0}while((u|0)<(t|0));o[a>>2]=t}if(!(o[i>>2]&4)){p=e+208|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+224|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}else{p=e+216|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,-1,-1)|0;o[p>>2]=f;o[p+4>>2]=R;p=e+232|0;f=p;f=ii(o[f>>2]|0,o[f+4>>2]|0,(o[i>>2]|0)>>>5|0,0)|0;o[p>>2]=f;o[p+4>>2]=R;l=s;return}}function Kt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;A=l;i=e+544|0;h=o[i>>2]|0;r=h+(t<<2)|0;Rt(e,t,0);h=o[h+(t+1<<2)>>2]|0;a=h>>1;h=(s[(o[e+332>>2]|0)+a>>0]|0)^h&1;f=n[528]|0;g=f&255;if((((h&255)<<24>>24==f<<24>>24&(g>>>1^1)|g&2&h|0)!=0?(c=(o[e+396>>2]|0)+(a<<3)|0,u=o[c>>2]|0,(u|0)!=-1):0)?((o[i>>2]|0)+(u<<2)|0)==(r|0):0)o[c>>2]=-1;o[r>>2]=o[r>>2]&-4|1;g=o[(o[i>>2]|0)+(t<<2)>>2]|0;f=e+556|0;o[f>>2]=((((g>>>3&1)+(g>>>5)<<2)+4|0)>>>2)+(o[f>>2]|0);l=A;return}function Lt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0;r=l;i=o[t>>2]|0;if(i>>>0<=31){u=0;l=r;return u|0}A=o[e+332>>2]|0;a=n[528]|0;c=a&255;u=c&2;c=c>>>1^1;e=0;while(1){h=o[t+(e<<2)+4>>2]|0;h=(s[A+(h>>1)>>0]|0)^h&1;e=e+1|0;if((h&255)<<24>>24==a<<24>>24&c|u&h){i=1;t=5;break}if((e|0)>=(i>>>5|0)){i=0;t=5;break}}if((t|0)==5){l=r;return i|0}return 0}function Tt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;s=l;r=e+296|0;if((o[r>>2]|0)<=(t|0)){l=s;return}i=e+284|0;E=o[i>>2]|0;a=e+292|0;I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0;if((E|0)>(m|0)){C=e+280|0;h=e+332|0;u=e+88|0;c=e+348|0;g=e+460|0;p=e+476|0;d=e+472|0;f=e+380|0;do{E=E+-1|0;m=o[(o[C>>2]|0)+(E<<2)>>2]>>1;n[(o[h>>2]|0)+m>>0]=n[544]|0;I=o[u>>2]|0;if((I|0)<=1){if((I|0)==1?(E|0)>(o[(o[a>>2]|0)+((o[r>>2]|0)+-1<<2)>>2]|0):0)A=7}else A=7;if((A|0)==7){A=0;n[(o[c>>2]|0)+m>>0]=o[(o[C>>2]|0)+(E<<2)>>2]&1}if(!((o[p>>2]|0)>(m|0)?(o[(o[d>>2]|0)+(m<<2)>>2]|0)>-1:0))A=11;if((A|0)==11?(A=0,(n[(o[f>>2]|0)+m>>0]|0)!=0):0)or(g,m);I=o[a>>2]|0;m=o[I+(t<<2)>>2]|0}while((E|0)>(m|0));E=o[i>>2]|0}o[e+512>>2]=m;e=o[I+(t<<2)>>2]|0;if((E-e|0)>0)o[i>>2]=e;if(((o[r>>2]|0)-t|0)<=0){l=s;return}o[r>>2]=t;l=s;return}function Pt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0;t=l;i=e+72|0;d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;c=e+464|0;if(d/2147483647.0<+u[e+64>>3]?(h=o[c>>2]|0,(h|0)!=0):0){d=d*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;h=o[(o[e+460>>2]|0)+(~~(+(h|0)*(d/2147483647.0))<<2)>>2]|0;f=n[(o[e+332>>2]|0)+h>>0]|0;g=n[544]|0;p=g&255;if(((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p|0)!=0?(n[(o[e+380>>2]|0)+h>>0]|0)!=0:0){p=e+176|0;f=p;f=ai(o[f>>2]|0,o[f+4>>2]|0,1,0)|0;o[p>>2]=f;o[p+4>>2]=R}}else h=-1;g=e+460|0;p=e+332|0;f=e+380|0;while(1){if(((h|0)!=-1?(C=n[(o[p>>2]|0)+h>>0]|0,A=n[544]|0,r=A&255,s=r>>>1^1,(s&C<<24>>24==A<<24>>24|C&2&r|0)!=0):0)?(n[(o[f>>2]|0)+h>>0]|0)!=0:0)break;if(!(o[c>>2]|0)){r=-2;a=17;break}h=lr(g)|0}if((a|0)==17){l=t;return r|0}c=n[(o[e+364>>2]|0)+h>>0]|0;a=c&255;if(!(s&c<<24>>24==A<<24>>24|r&2&a)){p=n[528]|0;C=p&255;C=((C>>>1^1)&c<<24>>24==p<<24>>24|a&2&C|0)!=0|h<<1;l=t;return C|0}if(!(n[e+92>>0]|0)){C=(n[(o[e+348>>2]|0)+h>>0]|0)!=0|h<<1;l=t;return C|0}else{d=+u[i>>3]*1389796.0;d=d-+(~~(d/2147483647.0)|0)*2147483647.0;u[i>>3]=d;C=d/2147483647.0<.5|h<<1;l=t;return C|0}return 0}function Ut(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0,a=0,h=0,g=0,f=0,p=0,d=0,C=0.0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0.0,H=0;s=l;l=l+16|0;p=s+8|0;I=s+4|0;g=s;h=r+4|0;A=o[h>>2]|0;a=r+8|0;if((A|0)==(o[a>>2]|0)){d=(A>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-A|0)){G=Qe(1)|0;ze(G|0,48,0)}Y=o[r>>2]|0;G=d+A|0;o[a>>2]=G;G=On(Y,G<<2)|0;o[r>>2]=G;if((G|0)==0?(o[(Ye()|0)>>2]|0)==12:0){G=Qe(1)|0;ze(G|0,48,0)}A=o[h>>2]|0}a=(o[r>>2]|0)+(A<<2)|0;if(a){o[a>>2]=0;A=o[h>>2]|0}o[h>>2]=A+1;d=e+544|0;M=e+280|0;A=e+588|0;a=e+396|0;S=e+504|0;x=e+316|0;k=e+540|0;b=e+476|0;D=e+472|0;v=e+460|0;Q=e+488|0;B=e+296|0;y=e+496|0;w=e+272|0;F=e+268|0;K=-2;N=(o[e+284>>2]|0)+-1|0;L=0;do{T=o[d>>2]|0;t=T+(t<<2)|0;P=o[t>>2]|0;if((P&4|0)!=0?(C=+u[y>>3],G=t+(P>>>5<<2)+4|0,J=C+ +c[G>>2],c[G>>2]=J,J>1.0e20):0){_=o[w>>2]|0;if((_|0)>0){U=o[F>>2]|0;P=0;do{G=T+(o[U+(P<<2)>>2]<<2)|0;G=G+((o[G>>2]|0)>>>5<<2)+4|0;c[G>>2]=+c[G>>2]*1.0e-20;P=P+1|0}while((P|0)!=(_|0))}u[y>>3]=C*1.0e-20}K=(K|0)!=-2&1;if(K>>>0<(o[t>>2]|0)>>>5>>>0)do{P=o[t+(K<<2)+4>>2]|0;o[I>>2]=P;P=P>>1;T=(o[A>>2]|0)+P|0;do{if((n[T>>0]|0)==0?(o[(o[a>>2]|0)+(P<<3)+4>>2]|0)>0:0){_=o[x>>2]|0;G=_+(P<<3)|0;J=+u[S>>3]+ +u[G>>3];u[G>>3]=J;if(J>1.0e+100){O=o[k>>2]|0;if((O|0)>0){U=0;do{G=_+(U<<3)|0;u[G>>3]=+u[G>>3]*1.0e-100;U=U+1|0}while((U|0)!=(O|0))}u[S>>3]=+u[S>>3]*1.0e-100}if((o[b>>2]|0)>(P|0)?(m=o[D>>2]|0,E=o[m+(P<<2)>>2]|0,(E|0)>-1):0){U=o[v>>2]|0;_=o[U+(E<<2)>>2]|0;e:do{if(!E)Y=0;else{G=E;while(1){Y=G;G=G+-1>>1;j=U+(G<<2)|0;O=o[j>>2]|0;H=o[o[Q>>2]>>2]|0;if(!(+u[H+(_<<3)>>3]>+u[H+(O<<3)>>3]))break e;o[U+(Y<<2)>>2]=O;o[m+(o[j>>2]<<2)>>2]=Y;if(!G){Y=0;break}}}}while(0);o[U+(Y<<2)>>2]=_;o[m+(_<<2)>>2]=Y}n[T>>0]=1;if((o[(o[a>>2]|0)+(P<<3)+4>>2]|0)<(o[B>>2]|0)){sr(r,I);break}else{L=L+1|0;break}}}while(0);K=K+1|0}while((K|0)<((o[t>>2]|0)>>>5|0));t=o[M>>2]|0;T=o[A>>2]|0;do{K=N;N=N+-1|0;K=o[t+(K<<2)>>2]|0;U=K>>1;P=T+U|0}while((n[P>>0]|0)==0);t=o[(o[a>>2]|0)+(U<<3)>>2]|0;n[P>>0]=0;L=L+-1|0}while((L|0)>0);o[o[r>>2]>>2]=K^1;I=e+616|0;y=o[I>>2]|0;E=e+620|0;if(!y)w=o[E>>2]|0;else{o[E>>2]=0;w=0}m=o[h>>2]|0;if((w|0)<(m|0)){Q=e+624|0;B=o[Q>>2]|0;if((B|0)<(m|0)){H=m+1-B&-2;w=(B>>1)+2&-2;w=(H|0)>(w|0)?H:w;if((w|0)>(2147483647-B|0)){H=Qe(1)|0;ze(H|0,48,0)}H=w+B|0;o[Q>>2]=H;y=On(y,H<<2)|0;o[I>>2]=y;if((y|0)==0?(o[(Ye()|0)>>2]|0)==12:0){H=Qe(1)|0;ze(H|0,48,0)}}w=o[E>>2]|0;e:do{if((w|0)<(m|0))while(1){y=y+(w<<2)|0;if(y)o[y>>2]=0;w=w+1|0;if((w|0)==(m|0))break e;y=o[I>>2]|0}}while(0);o[E>>2]=m;m=o[h>>2]|0}if((m|0)>0){w=o[I>>2]|0;y=o[r>>2]|0;B=0;do{o[w+(B<<2)>>2]=o[y+(B<<2)>>2];B=B+1|0;m=o[h>>2]|0}while((B|0)<(m|0))}y=o[e+84>>2]|0;if((y|0)==1)if((m|0)>1){g=o[r>>2]|0;f=1;y=1;while(1){m=o[g+(f<<2)>>2]|0;p=o[a>>2]|0;w=o[p+(m>>1<<3)>>2]|0;e:do{if((w|0)!=-1){B=(o[d>>2]|0)+(w<<2)|0;Q=o[B>>2]|0;if(Q>>>0>63){w=o[A>>2]|0;v=1;while(1){H=o[B+(v<<2)+4>>2]>>1;if((n[w+H>>0]|0)==0?(o[p+(H<<3)+4>>2]|0)>0:0)break;v=v+1|0;if((v|0)>=(Q>>>5|0))break e}o[g+(y<<2)>>2]=m;y=y+1|0}}else{o[g+(y<<2)>>2]=m;y=y+1|0}}while(0);f=f+1|0;p=o[h>>2]|0;if((f|0)>=(p|0)){g=p;break}}}else{g=m;f=1;y=1}else if((y|0)==2)if((m|0)>1){d=1;y=1;do{w=o[r>>2]|0;m=o[w+(d<<2)>>2]|0;if((o[(o[a>>2]|0)+(m>>1<<3)>>2]|0)!=-1){o[g>>2]=m;o[p+0>>2]=o[g+0>>2];if(!(_t(e,p)|0)){m=o[r>>2]|0;w=m;m=o[m+(d<<2)>>2]|0;f=62}}else f=62;if((f|0)==62){f=0;o[w+(y<<2)>>2]=m;y=y+1|0}d=d+1|0;m=o[h>>2]|0}while((d|0)<(m|0));g=m;f=d}else{g=m;f=1;y=1}else{g=m;f=m;y=m}H=e+240|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;f=f-y|0;if((f|0)>0){g=g-f|0;o[h>>2]=g}H=e+248|0;G=H;G=ai(o[G>>2]|0,o[G+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;o[H>>2]=G;o[H+4>>2]=R;if((g|0)==1)r=0;else{r=o[r>>2]|0;if((g|0)>2){e=o[a>>2]|0;h=2;f=1;do{f=(o[e+(o[r+(h<<2)>>2]>>1<<3)+4>>2]|0)>(o[e+(o[r+(f<<2)>>2]>>1<<3)+4>>2]|0)?h:f;h=h+1|0}while((h|0)<(g|0))}else f=1;G=r+(f<<2)|0;H=o[G>>2]|0;r=r+4|0;o[G>>2]=o[r>>2];o[r>>2]=H;r=o[(o[a>>2]|0)+(H>>1<<3)+4>>2]|0}o[i>>2]=r;if((o[E>>2]|0)>0)i=0;else{l=s;return}do{n[(o[A>>2]|0)+(o[(o[I>>2]|0)+(i<<2)>>2]>>1)>>0]=0;i=i+1|0}while((i|0)<(o[E>>2]|0));l=s;return}function _t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;g=o[t>>2]|0;u=e+396|0;d=o[u>>2]|0;c=e+544|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;A=e+604|0;i=e+608|0;if(o[A>>2]|0)o[i>>2]=0;s=e+588|0;a=e+612|0;e=e+616|0;f=1;while(1){if(f>>>0<(o[E>>2]|0)>>>5>>>0){C=o[E+(f<<2)+4>>2]|0;p=C>>1;if((o[d+(p<<3)+4>>2]|0)!=0?(h=n[(o[s>>2]|0)+p>>0]|0,(h+-1<<24>>24&255)>=2):0){E=o[i>>2]|0;I=(E|0)==(o[a>>2]|0);if(h<<24>>24==3?1:(o[d+(p<<3)>>2]|0)==-1){c=8;break}if(I){d=(E>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-E|0)){c=24;break}m=o[A>>2]|0;I=d+E|0;o[a>>2]=I;I=On(m,I<<3)|0;o[A>>2]=I;if((I|0)==0?(o[(Ye()|0)>>2]|0)==12:0){c=24;break}E=o[i>>2]|0}o[i>>2]=E+1;d=(o[A>>2]|0)+(E<<3)|0;if(d){m=d;o[m>>2]=f;o[m+4>>2]=g}o[t>>2]=C;E=o[u>>2]|0;g=C;d=E;E=(o[c>>2]|0)+(o[E+(p<<3)>>2]<<2)|0;f=0}}else{g=(o[s>>2]|0)+(g>>1)|0;if(!(n[g>>0]|0)){n[g>>0]=2;sr(e,t)}g=o[i>>2]|0;if(!g){i=1;c=34;break}m=g+-1|0;g=o[A>>2]|0;f=o[g+(m<<3)>>2]|0;g=o[g+(m<<3)+4>>2]|0;o[t>>2]=g;d=o[u>>2]|0;E=(o[c>>2]|0)+(o[d+(g>>1<<3)>>2]<<2)|0;o[i>>2]=m}f=f+1|0}if((c|0)==8){if(I){c=(E>>1)+2&-2;c=(c|0)<2?2:c;if((c|0)>(2147483647-E|0)){m=Qe(1)|0;ze(m|0,48,0)}I=o[A>>2]|0;m=c+E|0;o[a>>2]=m;m=On(I,m<<3)|0;o[A>>2]=m;if((m|0)==0?(o[(Ye()|0)>>2]|0)==12:0){m=Qe(1)|0;ze(m|0,48,0)}E=o[i>>2]|0}a=E+1|0;o[i>>2]=a;c=(o[A>>2]|0)+(E<<3)|0;if(c){a=c;o[a>>2]=0;o[a+4>>2]=g;a=o[i>>2]|0}if((a|0)>0)c=0;else{m=0;l=r;return m|0}do{u=(o[s>>2]|0)+(o[(o[A>>2]|0)+(c<<3)+4>>2]>>1)|0;if(!(n[u>>0]|0)){n[u>>0]=3;sr(e,(o[A>>2]|0)+(c<<3)+4|0);a=o[i>>2]|0}c=c+1|0}while((c|0)<(a|0));i=0;l=r;return i|0}else if((c|0)==24)ze(Qe(1)|0,48,0);else if((c|0)==34){l=r;return i|0}return 0}function Ot(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;a=l;l=l+32|0;A=a+16|0;s=a+12|0;c=a+8|0;i=a;g=r+20|0;u=r+16|0;if((o[g>>2]|0)>0){h=0;do{n[(o[r>>2]|0)+(o[(o[u>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[g>>2]|0))}if(o[u>>2]|0)o[g>>2]=0;h=o[t>>2]|0;o[c>>2]=h;o[s>>2]=h;o[A+0>>2]=o[s+0>>2];hr(r,A,0);u=(o[r>>2]|0)+h|0;if(!(n[u>>0]|0)){n[u>>0]=1;sr(r+16|0,c)}if(!(o[e+296>>2]|0)){l=a;return}t=h>>1;f=e+588|0;n[(o[f>>2]|0)+t>>0]=1;p=o[e+284>>2]|0;g=e+292|0;E=o[o[g>>2]>>2]|0;if((p|0)>(E|0)){c=e+280|0;u=e+396|0;h=r+16|0;e=e+544|0;do{p=p+-1|0;C=o[(o[c>>2]|0)+(p<<2)>>2]|0;d=C>>1;if(n[(o[f>>2]|0)+d>>0]|0){E=o[u>>2]|0;I=o[E+(d<<3)>>2]|0;e:do{if((I|0)==-1){C=C^1;o[i>>2]=C;o[s>>2]=C;o[A+0>>2]=o[s+0>>2];hr(r,A,0);C=(o[r>>2]|0)+C|0;if(!(n[C>>0]|0)){n[C>>0]=1;sr(h,i)}}else{C=(o[e>>2]|0)+(I<<2)|0;I=o[C>>2]|0;if(I>>>0>63){m=1;while(1){y=o[C+(m<<2)+4>>2]>>1;if((o[E+(y<<3)+4>>2]|0)>0){n[(o[f>>2]|0)+y>>0]=1;I=o[C>>2]|0}m=m+1|0;if((m|0)>=(I>>>5|0))break e;E=o[u>>2]|0}}}}while(0);n[(o[f>>2]|0)+d>>0]=0;E=o[o[g>>2]>>2]|0}}while((p|0)>(E|0))}n[(o[f>>2]|0)+t>>0]=0;l=a;return}function jt(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,h=0,g=0.0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0;r=l;l=l+16|0;p=r+4|0;m=r;t=e+272|0;w=o[t>>2]|0;g=+u[e+496>>3]/+(w|0);A=e+544|0;a=e+268|0;y=o[a>>2]|0;o[m>>2]=A;o[p+0>>2]=o[m+0>>2];gr(y,w,p);p=o[t>>2]|0;if((p|0)>0){h=e+332|0;f=e+396|0;d=0;y=0;do{I=o[a>>2]|0;m=o[I+(d<<2)>>2]|0;w=o[A>>2]|0;C=w+(m<<2)|0;E=o[C>>2]|0;do{if(E>>>0>95){B=o[w+(m+1<<2)>>2]|0;w=B>>1;B=(s[(o[h>>2]|0)+w>>0]|0)^B&1;v=n[528]|0;Q=v&255;if(((B&255)<<24>>24==v<<24>>24&(Q>>>1^1)|Q&2&B|0)!=0?(v=o[(o[f>>2]|0)+(w<<3)>>2]|0,(v|0)!=-1&(v|0)==(m|0)):0){i=9;break}if((d|0)>=((p|0)/2|0|0)?!(+c[C+(E>>>5<<2)+4>>2]<g):0){i=9;break}Kt(e,m)}else i=9}while(0);if((i|0)==9){i=0;o[I+(y<<2)>>2]=m;y=y+1|0}d=d+1|0;p=o[t>>2]|0}while((d|0)<(p|0))}else{d=0;y=0}i=d-y|0;if((i|0)>0)o[t>>2]=p-i;if(!(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))){l=r;return}ji[o[(o[e>>2]|0)+8>>2]&31](e);l=r;return}function Yt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;r=l;i=t+4|0;h=o[i>>2]|0;if((h|0)>0){a=e+544|0;A=e+332|0;c=0;u=0;do{m=o[t>>2]|0;p=o[m+(c<<2)>>2]|0;h=(o[a>>2]|0)+(p<<2)|0;f=o[h>>2]|0;do{if(f>>>0>31){y=o[A>>2]|0;C=n[528]|0;d=C&255;w=d&2;d=d>>>1^1;E=f>>>5;I=0;do{B=o[h+(I<<2)+4>>2]|0;B=(s[y+(B>>1)>>0]|0)^B&1;I=I+1|0;if((B&255)<<24>>24==C<<24>>24&d|w&B){g=7;break}}while((I|0)<(E|0));if((g|0)==7){g=0;Kt(e,p);break}if(f>>>0>95){g=n[536]|0;d=f>>>5;p=2;do{C=h+(p<<2)+4|0;B=o[C>>2]|0;B=(s[(o[A>>2]|0)+(B>>1)>>0]|0)^B&1;w=g&255;if((B&255)<<24>>24==g<<24>>24&(w>>>1^1)|w&2&B){o[C>>2]=o[h+(d+-1<<2)+4>>2];f=o[h>>2]|0;if(f&8){f=f>>>5;o[h+(f+-1<<2)+4>>2]=o[h+(f<<2)+4>>2];f=o[h>>2]|0}f=f+-32|0;o[h>>2]=f;p=p+-1|0}p=p+1|0;d=f>>>5}while((p|0)<(d|0));p=o[t>>2]|0;m=p;p=o[p+(c<<2)>>2]|0;g=16}else g=16}else g=16}while(0);if((g|0)==16){g=0;o[m+(u<<2)>>2]=p;u=u+1|0}c=c+1|0;h=o[i>>2]|0}while((c|0)<(h|0))}else{c=0;u=0}t=c-u|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Gt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;s=l;l=l+16|0;r=s+4|0;A=s;o[r>>2]=0;t=r+4|0;o[t>>2]=0;i=r+8|0;o[i>>2]=0;o[A>>2]=0;a=e+540|0;g=o[a>>2]|0;if((g|0)>0){u=e+380|0;c=e+332|0;h=0;do{if((n[(o[u>>2]|0)+h>>0]|0)!=0?(p=n[(o[c>>2]|0)+h>>0]|0,d=n[544]|0,f=d&255,((f>>>1^1)&p<<24>>24==d<<24>>24|p&2&f|0)!=0):0){Ar(r,A);g=o[a>>2]|0}h=h+1|0;o[A>>2]=h}while((h|0)<(g|0))}fr(e+460|0,r);e=o[r>>2]|0;if(!e){l=s;return}o[t>>2]=0;_n(e);o[r>>2]=0;o[i>>2]=0;l=s;return}function Jt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;t=l;i=e+492|0;if((n[i>>0]|0)!=0?(Mt(e)|0)==-1:0){i=e+284|0;s=e+516|0;if((o[i>>2]|0)==(o[s>>2]|0)){E=1;l=t;return E|0}A=e+520|0;E=A;C=o[E+4>>2]|0;if((C|0)>0|(C|0)==0&(o[E>>2]|0)>>>0>0){E=1;l=t;return E|0}Yt(e,e+268|0);if(n[e+536>>0]|0){Yt(e,e+256|0);c=e+564|0;a=e+568|0;if((o[a>>2]|0)>0){g=e+588|0;h=0;do{n[(o[g>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=1;h=h+1|0}while((h|0)<(o[a>>2]|0))}p=o[i>>2]|0;if((p|0)>0){h=o[e+280>>2]|0;g=o[e+588>>2]|0;d=0;f=0;do{C=o[h+(d<<2)>>2]|0;if(!(n[g+(C>>1)>>0]|0)){o[h+(f<<2)>>2]=C;p=o[i>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}h=d-f|0;if((h|0)>0){p=p-h|0;o[i>>2]=p}o[e+512>>2]=p;e:do{if((o[a>>2]|0)>0){f=e+588|0;h=0;do{n[(o[f>>2]|0)+(o[(o[c>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0;g=o[a>>2]|0}while((h|0)<(g|0));if((g|0)>0){g=e+580|0;f=e+584|0;h=e+576|0;p=0;while(1){C=o[g>>2]|0;if((C|0)==(o[f>>2]|0)){d=(C>>1)+2&-2;d=(d|0)<2?2:d;if((d|0)>(2147483647-C|0)){r=28;break}E=o[h>>2]|0;d=d+C|0;o[f>>2]=d;d=On(E,d<<2)|0;o[h>>2]=d;if((d|0)==0?(o[(Ye()|0)>>2]|0)==12:0){r=28;break}C=o[g>>2]|0}else d=o[h>>2]|0;E=d+(C<<2)|0;if(E){o[E>>2]=0;C=o[g>>2]|0}o[g>>2]=C+1;E=o[c>>2]|0;o[d+(C<<2)>>2]=o[E+(p<<2)>>2];p=p+1|0;if((p|0)>=(o[a>>2]|0))break e}if((r|0)==28)ze(Qe(1)|0,48,0)}else r=21}else r=21}while(0);if((r|0)==21)E=o[c>>2]|0;if(E)o[a>>2]=0}if(+((o[e+556>>2]|0)>>>0)>+u[e+96>>3]*+((o[e+548>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e);Gt(e);o[s>>2]=o[i>>2];C=e+224|0;E=e+232|0;C=ai(o[E>>2]|0,o[E+4>>2]|0,o[C>>2]|0,o[C+4>>2]|0)|0;E=A;o[E>>2]=C;o[E+4>>2]=R;E=1;l=t;return E|0}n[i>>0]=0;E=0;l=t;return E|0}function Ht(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,z=0,W=0,V=0,X=0,Z=0,$=0,ee=0,te=0,re=0,ne=0,ie=0,oe=0.0,se=0,Ae=0,ae=0,ce=0.0,ue=0,le=0,he=0,ge=0,fe=0,pe=0,de=0.0,Ce=0,Ee=0,Ie=0.0;h=l;l=l+64|0;Z=h;F=h+60|0;b=h+56|0;i=h+44|0;$=h+40|0;o[i>>2]=0;a=i+4|0;o[a>>2]=0;A=i+8|0;o[A>>2]=0;U=t+160|0;P=U;P=ai(o[P>>2]|0,o[P+4>>2]|0,1,0)|0;o[U>>2]=P;o[U+4>>2]=R;U=(r|0)<0;P=t+680|0;T=t+664|0;L=t+672|0;d=t+296|0;w=t+272|0;f=t+284|0;N=t+640|0;x=t+308|0;k=t+304|0;C=t+332|0;M=t+292|0;te=t+168|0;I=t+396|0;y=t+280|0;K=t+184|0;S=t+192|0;m=t+48|0;J=t+504|0;V=t+56|0;ee=t+496|0;re=t+656|0;_=t+144|0;O=t+648|0;j=t+128|0;Y=t+44|0;G=t+200|0;H=t+208|0;z=t+224|0;W=t+216|0;E=t+232|0;X=t+540|0;p=t+292|0;B=t+544|0;v=t+276|0;Q=t+268|0;D=t+268|0;ne=0;e:while(1){ie=U|(ne|0)<(r|0);while(1){se=Mt(t)|0;if((se|0)!=-1)break;if(!ie){se=41;break e}if(n[P>>0]|0){se=41;break e}se=T;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=S,Ce=o[Ee+4>>2]|0,!(Ce>>>0<Ae>>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}se=L;Ae=o[se+4>>2]|0;if((Ae|0)>=0?(Ee=K,Ce=o[Ee+4>>2]|0,!(Ce>>>0<Ae>>>0|((Ce|0)==(Ae|0)?(o[Ee>>2]|0)>>>0<(o[se>>2]|0)>>>0:0))):0){se=41;break e}if((o[d>>2]|0)==0?!(Jt(t)|0):0){se=50;break e}if(+((o[w>>2]|0)-(o[f>>2]|0)|0)>=+u[N>>3])jt(t);while(1){se=o[d>>2]|0;if((se|0)>=(o[x>>2]|0)){se=59;break}ue=o[(o[k>>2]|0)+(se<<2)>>2]|0;Ae=s[(o[C>>2]|0)+(ue>>1)>>0]|0;Ee=Ae^ue&1;ae=Ee&255;pe=n[528]|0;Ce=pe&255;if(!(ae<<24>>24==pe<<24>>24&(Ce>>>1^1)|Ce&2&Ee)){se=56;break}o[F>>2]=o[f>>2];Ar(M,F)}if((se|0)==56){se=0;Ce=n[536]|0;Ee=Ce&255;if((Ee>>>1^1)&ae<<24>>24==Ce<<24>>24|Ae&2&Ee){se=57;break e}if((ue|0)==-2)se=59}if((se|0)==59){Ee=te;Ee=ai(o[Ee>>2]|0,o[Ee+4>>2]|0,1,0)|0;ue=te;o[ue>>2]=Ee;o[ue+4>>2]=R;ue=Pt(t)|0;if((ue|0)==-2){se=60;break e}}o[Z>>2]=o[f>>2];Ar(M,Z);Ee=ue>>1;n[(o[C>>2]|0)+Ee>>0]=(ue&1^1)&255^1;Ce=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=Ce;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=ue}Ce=S;Ce=ai(o[Ce>>2]|0,o[Ce+4>>2]|0,1,0)|0;Ee=S;o[Ee>>2]=Ce;o[Ee+4>>2]=R;ne=ne+1|0;if(!(o[d>>2]|0)){se=5;break}if(o[i>>2]|0)o[a>>2]=0;Ut(t,se,i,b);Tt(t,o[b>>2]|0);if((o[a>>2]|0)==1){Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=-1;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}else{ie=cr(B,i,1)|0;se=o[w>>2]|0;if((se|0)==(o[v>>2]|0)){Ae=(se>>1)+2&-2;Ae=(Ae|0)<2?2:Ae;if((Ae|0)>(2147483647-se|0)){se=14;break}Ce=o[Q>>2]|0;Ee=Ae+se|0;o[v>>2]=Ee;Ee=On(Ce,Ee<<2)|0;o[Q>>2]=Ee;if((Ee|0)==0?(o[(Ye()|0)>>2]|0)==12:0){se=14;break}se=o[w>>2]|0}o[w>>2]=se+1;se=(o[Q>>2]|0)+(se<<2)|0;if(se)o[se>>2]=ie;Nt(t,ie);ae=o[B>>2]|0;Ee=ae+(ie<<2)|0;oe=+u[ee>>3];Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;Ie=oe+ +c[Ee>>2];c[Ee>>2]=Ie;if(Ie>1.0e20){Ae=o[w>>2]|0;if((Ae|0)>0){se=o[D>>2]|0;ue=0;do{Ee=ae+(o[se+(ue<<2)>>2]<<2)|0;Ee=Ee+((o[Ee>>2]|0)>>>5<<2)+4|0;c[Ee>>2]=+c[Ee>>2]*1.0e-20;ue=ue+1|0}while((ue|0)!=(Ae|0))}u[ee>>3]=oe*1.0e-20}Ce=o[o[i>>2]>>2]|0;Ee=Ce>>1;n[(o[C>>2]|0)+Ee>>0]=(Ce&1^1)&255^1;pe=o[d>>2]|0;Ee=(o[I>>2]|0)+(Ee<<3)|0;o[Ee>>2]=ie;o[Ee+4>>2]=pe;Ee=o[f>>2]|0;o[f>>2]=Ee+1;o[(o[y>>2]|0)+(Ee<<2)>>2]=Ce}u[J>>3]=1.0/+u[m>>3]*+u[J>>3];u[ee>>3]=1.0/+u[V>>3]*+u[ee>>3];Ee=(o[re>>2]|0)+-1|0;o[re>>2]=Ee;if(Ee)continue;oe=+u[_>>3]*+u[O>>3];u[O>>3]=oe;o[re>>2]=~~oe;oe=+u[j>>3]*+u[N>>3];u[N>>3]=oe;if((o[Y>>2]|0)<=0)continue;se=o[S>>2]|0;ie=o[G>>2]|0;fe=o[d>>2]|0;if(!fe)Ae=f;else Ae=o[p>>2]|0;Ae=o[Ae>>2]|0;ge=o[H>>2]|0;he=o[z>>2]|0;le=o[W>>2]|0;ue=E;ae=o[ue>>2]|0;ue=o[ue+4>>2]|0;ce=+(o[X>>2]|0);de=1.0/ce;if((fe|0)<0)Ie=0.0;else{pe=0;Ie=0.0;while(1){if(!pe)Ce=0;else Ce=o[(o[p>>2]|0)+(pe+-1<<2)>>2]|0;if((pe|0)==(fe|0))Ee=f;else Ee=(o[p>>2]|0)+(pe<<2)|0;Ie=Ie+ +q(+de,+ +(pe|0))*+((o[Ee>>2]|0)-Ce|0);if((pe|0)==(fe|0))break;else pe=pe+1|0}}o[Z>>2]=se;o[Z+4>>2]=ie-Ae;o[Z+8>>2]=ge;o[Z+12>>2]=he;o[Z+16>>2]=~~oe;o[Z+20>>2]=le;Ee=Z+24|0;u[g>>3]=(+(ae>>>0)+4294967296.0*+(ue>>>0))/+(le|0);o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];Ee=Z+32|0;u[g>>3]=Ie/ce*100.0;o[Ee>>2]=o[g>>2];o[Ee+4>>2]=o[g+4>>2];_e(1832,Z|0)|0}if((se|0)==5)n[e>>0]=n[536]|0;else if((se|0)==14)ze(Qe(1)|0,48,0);else if((se|0)==41){oe=+(o[X>>2]|0);ce=1.0/oe;C=o[d>>2]|0;if((C|0)<0)de=0.0;else{d=0;de=0.0;while(1){if(!d)E=0;else E=o[(o[p>>2]|0)+(d+-1<<2)>>2]|0;if((d|0)==(C|0))I=f;else I=(o[p>>2]|0)+(d<<2)|0;de=de+ +q(+ce,+ +(d|0))*+((o[I>>2]|0)-E|0);if((d|0)==(C|0))break;else d=d+1|0}}u[t+528>>3]=de/oe;Tt(t,0);n[e>>0]=n[544]|0}else if((se|0)==50)n[e>>0]=n[536]|0;else if((se|0)==57){o[$>>2]=ue^1;Ee=t+16|0;o[Z+0>>2]=o[$+0>>2];Ot(t,Z,Ee);n[e>>0]=n[536]|0}else if((se|0)==60)n[e>>0]=n[528]|0;e=o[i>>2]|0;if(!e){l=h;return}o[a>>2]=0;_n(e);o[i>>2]=0;o[A>>2]=0;l=h;return}function qt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0.0,w=0,B=0,Q=0,v=0.0,D=0,b=0;i=l;l=l+16|0;A=i;r=t+4|0;if(o[r>>2]|0)o[t+8>>2]=0;s=t+36|0;a=t+32|0;if((o[s>>2]|0)>0){c=t+16|0;h=0;do{n[(o[c>>2]|0)+(o[(o[a>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(o[s>>2]|0))}if(o[a>>2]|0)o[s>>2]=0;a=t+492|0;if(!(n[a>>0]|0)){n[e>>0]=n[536]|0;l=i;return}c=t+152|0;Q=c;Q=ai(o[Q>>2]|0,o[Q+4>>2]|0,1,0)|0;o[c>>2]=Q;o[c+4>>2]=R;v=+u[t+120>>3]*+(o[t+208>>2]|0);c=t+640|0;u[c>>3]=v;y=+(o[t+104>>2]|0);if(v<y)u[c>>3]=y;w=o[t+136>>2]|0;u[t+648>>3]=+(w|0);o[t+656>>2]=w;w=n[544]|0;c=t+44|0;if((o[c>>2]|0)>0){Ue(2288)|0;Ue(2368)|0;Ue(2448)|0;Ue(2528)|0;f=n[544]|0}else f=w;g=t+192|0;h=t+184|0;Q=f&255;e:do{if((Q>>>1^1)&w<<24>>24==f<<24>>24|w&2&Q){d=t+80|0;I=t+112|0;p=t+108|0;f=t+680|0;C=t+664|0;E=t+672|0;m=0;while(1){y=+u[I>>3];if(!(n[d>>0]|0))y=+q(+y,+ +(m|0));else{Q=m+1|0;if((m|0)>0){B=0;w=1;do{B=B+1|0;w=w<<1|1}while((w|0)<(Q|0));Q=w+-1|0}else{B=0;Q=0}if((Q|0)!=(m|0)){w=m;do{D=Q>>1;B=B+-1|0;w=(w|0)%(D|0)|0;Q=D+-1|0}while((Q|0)!=(w|0))}y=+q(+y,+ +(B|0))}Ht(A,t,~~(y*+(o[p>>2]|0)));w=n[A>>0]|0;if(n[f>>0]|0)break e;Q=C;B=o[Q+4>>2]|0;if((B|0)>=0?(D=g,b=o[D+4>>2]|0,!(b>>>0<B>>>0|((b|0)==(B|0)?(o[D>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;Q=E;B=o[Q+4>>2]|0;if((B|0)>=0?(b=h,D=o[b+4>>2]|0,!(D>>>0<B>>>0|((D|0)==(B|0)?(o[b>>2]|0)>>>0<(o[Q>>2]|0)>>>0:0))):0)break e;D=n[544]|0;b=D&255;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|w&2&b))break;else m=m+1|0}}}while(0);if((o[c>>2]|0)>0)Ue(2528)|0;D=n[528]|0;b=D&255;A=w&2;if(!((b>>>1^1)&w<<24>>24==D<<24>>24|A&b)){D=n[536]|0;b=D&255;if(((b>>>1^1)&w<<24>>24==D<<24>>24|A&b|0)!=0?(o[s>>2]|0)==0:0)n[a>>0]=0}else{s=t+540|0;nr(r,o[s>>2]|0);if((o[s>>2]|0)>0){A=t+332|0;a=0;do{n[(o[r>>2]|0)+a>>0]=n[(o[A>>2]|0)+a>>0]|0;a=a+1|0}while((a|0)<(o[s>>2]|0))}}Tt(t,0);n[e>>0]=w;l=i;return}function zt(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;r=l;A=e+412|0;pr(A);c=e+540|0;if((o[c>>2]|0)>0){a=e+544|0;i=0;do{u=i<<1;g=o[A>>2]|0;h=g+(u*12|0)+4|0;if((o[h>>2]|0)>0){p=g+(u*12|0)|0;f=0;do{E=(o[p>>2]|0)+(f<<3)|0;g=o[E>>2]|0;d=o[a>>2]|0;C=d+(g<<2)|0;if(!(o[C>>2]&16)){I=dr(t,C)|0;o[E>>2]=I;o[C>>2]=o[C>>2]|16;o[d+(g+1<<2)>>2]=I}else o[E>>2]=o[d+(g+1<<2)>>2];f=f+1|0}while((f|0)<(o[h>>2]|0));h=o[A>>2]|0}else h=g;g=u|1;u=h+(g*12|0)+4|0;if((o[u>>2]|0)>0){C=h+(g*12|0)|0;d=0;do{h=(o[C>>2]|0)+(d<<3)|0;p=o[h>>2]|0;f=o[a>>2]|0;g=f+(p<<2)|0;if(!(o[g>>2]&16)){I=dr(t,g)|0;o[h>>2]=I;o[g>>2]=o[g>>2]|16;o[f+(p+1<<2)>>2]=I}else o[h>>2]=o[f+(p+1<<2)>>2];d=d+1|0}while((d|0)<(o[u>>2]|0))}i=i+1|0}while((i|0)<(o[c>>2]|0))}i=e+284|0;if((o[i>>2]|0)>0){u=e+280|0;c=e+396|0;a=e+544|0;A=e+332|0;h=0;do{C=o[c>>2]|0;p=C+(o[(o[u>>2]|0)+(h<<2)>>2]>>1<<3)|0;d=o[p>>2]|0;do{if((d|0)!=-1){I=o[a>>2]|0;E=I+(d<<2)|0;f=(o[E>>2]&16|0)==0;if(f){m=o[I+(d+1<<2)>>2]|0;g=m>>1;m=(s[(o[A>>2]|0)+g>>0]|0)^m&1;w=n[528]|0;y=w&255;if(!((m&255)<<24>>24==w<<24>>24&(y>>>1^1)|y&2&m))break;w=o[C+(g<<3)>>2]|0;if(!((w|0)!=-1&(w|0)==(d|0)))break;if(f){w=dr(t,E)|0;o[p>>2]=w;o[E>>2]=o[E>>2]|16;o[I+(d+1<<2)>>2]=w;break}}o[p>>2]=o[I+(d+1<<2)>>2]}}while(0);h=h+1|0}while((h|0)<(o[i>>2]|0))}i=e+272|0;g=o[i>>2]|0;if((g|0)>0){a=e+268|0;A=e+544|0;h=o[a>>2]|0;c=0;u=0;do{p=h+(c<<2)|0;f=o[p>>2]|0;C=o[A>>2]|0;d=C+(f<<2)|0;E=o[d>>2]|0;if((E&3|0)!=1){if(!(E&16)){g=dr(t,d)|0;o[p>>2]=g;o[d>>2]=o[d>>2]|16;o[C+(f+1<<2)>>2]=g;g=o[a>>2]|0;h=g;g=o[g+(c<<2)>>2]|0}else{g=o[C+(f+1<<2)>>2]|0;o[p>>2]=g}o[h+(u<<2)>>2]=g;g=o[i>>2]|0;u=u+1|0}c=c+1|0}while((c|0)<(g|0))}else{c=0;u=0}A=c-u|0;if((A|0)>0)o[i>>2]=g-A;i=e+260|0;h=o[i>>2]|0;if((h|0)>0){A=e+256|0;e=e+544|0;u=o[A>>2]|0;a=0;c=0;do{g=u+(a<<2)|0;p=o[g>>2]|0;f=o[e>>2]|0;C=f+(p<<2)|0;d=o[C>>2]|0;if((d&3|0)!=1){if(!(d&16)){h=dr(t,C)|0;o[g>>2]=h;o[C>>2]=o[C>>2]|16;o[f+(p+1<<2)>>2]=h;h=o[A>>2]|0;u=h;h=o[h+(a<<2)>>2]|0}else{h=o[f+(p+1<<2)>>2]|0;o[g>>2]=h}o[u+(c<<2)>>2]=h;h=o[i>>2]|0;c=c+1|0}a=a+1|0}while((a|0)<(h|0))}else{a=0;c=0}t=a-c|0;if((t|0)<=0){l=r;return}o[i>>2]=h-t;l=r;return}function Wt(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0;s=l;l=l+32|0;a=s;t=s+8|0;r=e+548|0;i=e+556|0;A=(o[r>>2]|0)-(o[i>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,A);A=t+16|0;n[A>>0]=0;zt(e,t);if((o[e+44>>2]|0)>1){c=o[t+4>>2]<<2;o[a>>2]=o[r>>2]<<2;o[a+4>>2]=c;_e(1888,a|0)|0}n[e+560>>0]=n[A>>0]|0;A=e+544|0;a=o[A>>2]|0;if(a)_n(a);o[A>>2]=o[t>>2];o[r>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[i>>2]=o[t+12>>2];l=s;return}function Vt(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[528]=0;n[536]=1;n[544]=2;Ct(552,608,624,2136,2144);o[138]=2168;u[72]=0.0;u[73]=1.0;n[592]=0;n[593]=0;i[297]=i[t+0>>1]|0;i[298]=i[t+2>>1]|0;i[299]=i[t+4>>1]|0;u[75]=.95;Ct(664,720,736,2136,2144);o[166]=2168;u[86]=0.0;u[87]=1.0;n[704]=0;n[705]=0;i[353]=i[t+0>>1]|0;i[354]=i[t+2>>1]|0;i[355]=i[t+4>>1]|0;u[89]=.999;Ct(776,832,848,2136,2144);o[194]=2168;u[100]=0.0;u[101]=1.0;n[816]=1;n[817]=1;i[409]=i[t+0>>1]|0;i[410]=i[t+2>>1]|0;i[411]=i[t+4>>1]|0;u[103]=0.0;Ct(936,992,1008,2136,2144);o[234]=2168;u[120]=0.0;u[121]=Q;n[976]=0;n[977]=0;i[489]=i[t+0>>1]|0;i[490]=i[t+2>>1]|0;i[491]=i[t+4>>1]|0;u[123]=91648253.0;Ct(1048,1080,1096,2136,2016);o[262]=280;r=1068|0;o[r>>2]=0;o[r+4>>2]=2;o[269]=2;Ct(1160,1192,1208,2136,2016);o[290]=280;r=1180|0;o[r>>2]=0;o[r+4>>2]=2;o[297]=2;Ct(1272,1296,1312,2136,1992);o[318]=160;n[1292]=0;Ct(1344,1368,1376,2136,1992);o[336]=160;n[1364]=1;Ct(1408,1440,1448,2136,2016);o[352]=280;r=1428|0;o[r>>2]=1;o[r+4>>2]=2147483647;o[359]=100;Ct(1480,1536,1544,2136,2144);o[370]=2168;u[188]=1.0;u[189]=Q;n[1520]=0;n[1521]=0;i[761]=i[t+0>>1]|0;i[762]=i[t+2>>1]|0;i[763]=i[t+4>>1]|0;u[191]=2.0;Ct(1584,1640,1648,2136,2144);o[396]=2168;u[201]=0.0;u[202]=Q;n[1624]=0;n[1625]=0;i[813]=i[t+0>>1]|0;i[814]=i[t+2>>1]|0;i[815]=i[t+4>>1]|0;u[204]=.2;Ct(1728,1760,1776,2136,2016);o[432]=280;t=1748|0;o[t>>2]=0;o[t+4>>2]=2147483647;o[439]=0;l=e;return}function Xt(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Zt(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0.0,d=0.0;r=l;l=l+16|0;A=r;s=r+8|0;if((n[t>>0]|0)!=45){f=0;l=r;return f|0}h=t+1|0;i=e+4|0;a=o[i>>2]|0;c=n[a>>0]|0;e:do{if(c<<24>>24){g=0;while(1){f=g;g=g+1|0;if((n[h>>0]|0)!=c<<24>>24){e=0;break}c=n[a+g>>0]|0;h=t+(f+2)|0;if(!(c<<24>>24))break e}l=r;return e|0}}while(0);if((n[h>>0]|0)!=61){f=0;l=r;return f|0}a=h+1|0;p=+Xn(a,s);if(!(o[s>>2]|0)){f=0;l=r;return f|0}d=+u[e+32>>3];if(p>=d?(n[e+41>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2024,A|0)|0;nt(1)}d=+u[e+24>>3];if(p<=d?(n[e+40>>0]|0)==0|p!=d:0){f=o[E>>2]|0;g=o[i>>2]|0;o[A>>2]=a;o[A+4>>2]=g;et(f|0,2080,A|0)|0;nt(1)}u[e+48>>3]=p;f=1;l=r;return f|0}function $t(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0.0,c=0,h=0.0,f=0.0,p=0;r=l;l=l+48|0;i=r;s=o[E>>2]|0;p=o[e+16>>2]|0;c=(n[e+40>>0]|0)!=0?91:40;f=+u[e+24>>3];h=+u[e+32>>3];A=(n[e+41>>0]|0)!=0?93:41;a=+u[e+48>>3];o[i>>2]=o[e+4>>2];o[i+4>>2]=p;o[i+8>>2]=c;c=i+12|0;u[g>>3]=f;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];c=i+20|0;u[g>>3]=h;o[c>>2]=o[g>>2];o[c+4>>2]=o[g+4>>2];o[i+28>>2]=A;A=i+32|0;u[g>>3]=a;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];et(s|0,2232,i|0)|0;if(!t){l=r;return}o[i>>2]=o[e+8>>2];et(s|0,2e3,i|0)|0;qe(10,s|0)|0;l=r;return}function er(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0;r=l;n=e+8|0;i=o[n>>2]|0;if(i>>>0<t>>>0)A=i;else{l=r;return}while(1){if(A>>>0>=t>>>0)break;A=((A>>>3)+2+(A>>>1)&-2)+A|0;o[n>>2]=A;if(A>>>0<=i>>>0){s=4;break}}if((s|0)==4)ze(Qe(1)|0,48,0);n=On(o[e>>2]|0,A<<2)|0;if((n|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[e>>2]=n;l=r;return}function tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function rr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;i=l;l=l+16|0;n=i+4|0;r=i;u=o[t>>2]|0;A=u+1|0;s=e+4|0;if((o[s>>2]|0)<(A|0)){c=e+8|0;a=o[c>>2]|0;if((a|0)<(A|0)){h=u+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h*12|0)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}c=o[s>>2]|0;if((c|0)<(A|0)){a=o[e>>2]|0;do{u=a+(c*12|0)|0;if(u){o[u>>2]=0;o[a+(c*12|0)+4>>2]=0;o[a+(c*12|0)+8>>2]=0}c=c+1|0}while((c|0)!=(A|0))}o[s>>2]=A;u=o[t>>2]|0}s=o[e>>2]|0;if(!(o[s+(u*12|0)>>2]|0)){h=u;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}o[s+(u*12|0)+4>>2]=0;h=o[t>>2]|0;g=e+16|0;o[r>>2]=h;o[n+0>>2]=o[r+0>>2];hr(g,n,0);l=i;return}function nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0;i=l;r=e+4|0;if((o[r>>2]|0)>=(t|0)){l=i;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<(t|0)){c=t+1-s&-2;a=(s>>1)+2&-2;a=(c|0)>(a|0)?c:a;if((a|0)>(2147483647-s|0)){c=Qe(1)|0;ze(c|0,48,0)}u=o[e>>2]|0;c=a+s|0;o[A>>2]=c;c=On(u,c)|0;o[e>>2]=c;if((c|0)==0?(o[(Ye()|0)>>2]|0)==12:0){u=Qe(1)|0;ze(u|0,48,0)}}s=o[r>>2]|0;if((s|0)<(t|0)){e=o[e>>2]|0;do{A=e+s|0;if(A)n[A>>0]=0;s=s+1|0}while((s|0)!=(t|0))}o[r>>2]=t;l=i;return}function ir(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;A=l;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){u=o[e>>2]|0;u=u+t|0;n[u>>0]=r;l=A;return}c=e+8|0;a=o[c>>2]|0;if((a|0)<(s|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[e>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h)|0;o[e>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0))do{c=(o[e>>2]|0)+a|0;if(c)n[c>>0]=0;a=a+1|0}while((a|0)!=(s|0));o[i>>2]=s;g=o[e>>2]|0;g=g+t|0;n[g>>0]=r;l=A;return}function or(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0;r=l;l=l+16|0;s=r;o[s>>2]=t;A=e+12|0;i=t+1|0;n=e+16|0;if((o[n>>2]|0)<(i|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(i|0)){g=t+2-a&-2;h=(a>>1)+2&-2;h=(g|0)>(h|0)?g:h;if((h|0)>(2147483647-a|0)){g=Qe(1)|0;ze(g|0,48,0)}f=o[A>>2]|0;g=h+a|0;o[c>>2]=g;g=On(f,g<<2)|0;o[A>>2]=g;if((g|0)==0?(o[(Ye()|0)>>2]|0)==12:0){f=Qe(1)|0;ze(f|0,48,0)}}a=o[n>>2]|0;if((i|0)>(a|0))oi((o[A>>2]|0)+(a<<2)|0,-1,i-a<<2|0)|0;o[n>>2]=i}o[(o[A>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[A>>2]|0;s=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(s<<2)>>2]|0;if(!s){g=0;f=t+(g<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=g;l=r;return}e=e+28|0;while(1){A=s;s=s+-1>>1;a=t+(s<<2)|0;c=o[a>>2]|0;f=o[o[e>>2]>>2]|0;if(!(+u[f+(i<<3)>>3]>+u[f+(c<<3)>>3])){e=14;break}o[t+(A<<2)>>2]=c;o[n+(o[a>>2]<<2)>>2]=A;if(!s){A=0;e=14;break}}if((e|0)==14){f=t+(A<<2)|0;o[f>>2]=i;f=n+(i<<2)|0;o[f>>2]=A;l=r;return}}function sr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function Ar(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function ar(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0;r=l;l=l+16|0;i=r+2|0;A=r+1|0;s=r;if((t|0)<16){s=t+-1|0;if((s|0)>0)A=0;else{l=r;return}do{i=A;A=A+1|0;if((A|0)<(t|0)){c=i;a=A;do{c=(o[e+(a<<2)>>2]|0)<(o[e+(c<<2)>>2]|0)?a:c;a=a+1|0}while((a|0)!=(t|0))}else c=i;g=e+(i<<2)|0;f=o[g>>2]|0;p=e+(c<<2)|0;o[g>>2]=o[p>>2];o[p>>2]=f}while((A|0)!=(s|0));l=r;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;h=-1;g=t;while(1){do{h=h+1|0;u=e+(h<<2)|0;c=o[u>>2]|0}while((c|0)<(a|0));do{g=g+-1|0;f=e+(g<<2)|0;p=o[f>>2]|0}while((a|0)<(p|0));if((h|0)>=(g|0))break;o[u>>2]=p;o[f>>2]=c}n[i+0>>0]=n[A+0>>0]|0;ar(e,h,i);p=t-h|0;n[i+0>>0]=n[s+0>>0]|0;ar(u,p,i);l=r;return}function cr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,A=0,a=0,u=0,h=0;n=l;a=r&1;A=s[e+16>>0]|0|a;i=t+4|0;u=((A+(o[i>>2]|0)<<2)+4|0)>>>2;h=e+4|0;er(e,u+(o[h>>2]|0)|0);r=o[h>>2]|0;u=u+r|0;o[h>>2]=u;if(u>>>0<r>>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}A=A<<3|a<<2;o[e>>2]=o[e>>2]&-32|A;A=o[i>>2]<<5|A;o[e>>2]=A;if((o[i>>2]|0)>0){A=o[t>>2]|0;t=0;do{o[e+(t<<2)+4>>2]=o[A+(t<<2)>>2];t=t+1|0}while((t|0)<(o[i>>2]|0));A=o[e>>2]|0}if(!(A&8)){l=n;return r|0}i=A>>>5;if(A&4){c[e+(i<<2)+4>>2]=0.0;l=n;return r|0}if(!i){i=0;A=0}else{A=0;t=0;do{A=1<<((o[e+(t<<2)+4>>2]|0)>>>1&31)|A;t=t+1|0}while((t|0)<(i|0))}o[e+(i<<2)+4>>2]=A;l=n;return r|0}function ur(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<3)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<3)|0;if(!n){l=r;return}s=t;A=o[s+4>>2]|0;a=n;o[a>>2]=o[s>>2];o[a+4>>2]=A;l=r;return}function lr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;t=l;r=o[e>>2]|0;i=o[r>>2]|0;a=e+4|0;f=o[r+((o[a>>2]|0)+-1<<2)>>2]|0;o[r>>2]=f;n=o[e+12>>2]|0;o[n+(f<<2)>>2]=0;o[n+(i<<2)>>2]=-1;f=(o[a>>2]|0)+-1|0;o[a>>2]=f;if((f|0)<=1){l=t;return i|0}s=o[r>>2]|0;c=e+28|0;e=0;h=1;while(1){g=(e<<1)+2|0;if((g|0)<(f|0)){p=o[r+(g<<2)>>2]|0;E=o[r+(h<<2)>>2]|0;f=o[o[c>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;A=6}}else{f=o[o[c>>2]>>2]|0;A=o[r+(h<<2)>>2]|0;p=A;d=+u[f+(A<<3)>>3];A=6}if((A|0)==6){A=0;g=h}if(!(d>+u[f+(s<<3)>>3]))break;o[r+(e<<2)>>2]=p;o[n+(p<<2)>>2]=e;h=g<<1|1;f=o[a>>2]|0;if((h|0)>=(f|0)){e=g;break}else e=g}o[r+(e<<2)>>2]=s;o[n+(s<<2)>>2]=e;l=t;return i|0}function hr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0,h=0;i=l;c=o[t>>2]|0;t=c+1|0;s=e+4|0;if((o[s>>2]|0)>=(t|0)){l=i;return}a=e+8|0;A=o[a>>2]|0;if((A|0)<(t|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}A=o[s>>2]|0;if((A|0)<(t|0))do{n[(o[e>>2]|0)+A>>0]=r;A=A+1|0}while((A|0)!=(t|0));o[s>>2]=t;l=i;return}function gr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;n=l;l=l+16|0;s=n+8|0;i=n+4|0;A=n;if((t|0)<16){i=t+-1|0;if((i|0)<=0){l=n;return}s=o[r>>2]|0;r=0;do{A=r;r=r+1|0;if((r|0)<(t|0)){a=o[s>>2]|0;h=A;u=r;do{g=a+(o[e+(u<<2)>>2]<<2)|0;m=o[g>>2]|0;d=m>>>5;if(m>>>0>95){f=a+(o[e+(h<<2)>>2]<<2)|0;p=(o[f>>2]|0)>>>5;if((p|0)==2)h=u;else h=+c[g+(d<<2)+4>>2]<+c[f+(p<<2)+4>>2]?u:h}u=u+1|0}while((u|0)!=(t|0))}else h=A;E=e+(A<<2)|0;I=o[E>>2]|0;m=e+(h<<2)|0;o[E>>2]=o[m>>2];o[m>>2]=I}while((r|0)!=(i|0));l=n;return}a=o[e+(((t|0)/2|0)<<2)>>2]|0;d=-1;f=t;while(1){I=d+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;u=o[r>>2]|0;h=o[u>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;d=h+(a<<2)|0;g=o[d>>2]|0;e:do{if(C>>>0>95)while(1){y=g>>>5;if((y|0)!=2?!(+c[E+(C>>>5<<2)+4>>2]<+c[d+(y<<2)+4>>2]):0){d=I;break e}I=I+1|0;p=e+(I<<2)|0;m=o[p>>2]|0;E=h+(m<<2)|0;C=o[E>>2]|0;if(C>>>0<=95){d=I;break}}else d=I}while(0);f=f+-1|0;E=e+(f<<2)|0;C=h+(a<<2)|0;e:do{if(g>>>0>95)while(1){I=h+(o[E>>2]<<2)|0;y=(o[I>>2]|0)>>>5;if((y|0)!=2?!(+c[C+(g>>>5<<2)+4>>2]<+c[I+(y<<2)+4>>2]):0)break e;y=f+-1|0;E=e+(y<<2)|0;f=y}}while(0);if((d|0)>=(f|0))break;o[p>>2]=o[E>>2];o[E>>2]=m}o[i>>2]=u;o[s+0>>2]=o[i+0>>2];gr(e,d,s);y=t-d|0;o[A>>2]=u;o[s+0>>2]=o[A+0>>2];gr(p,y,s);l=n;return}function fr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,h=0,g=0,f=0,p=0,d=0.0,C=0.0,E=0;n=l;i=e+4|0;A=o[i>>2]|0;s=o[e>>2]|0;if((A|0)>0){c=o[e+12>>2]|0;a=0;do{o[c+(o[s+(a<<2)>>2]<<2)>>2]=-1;a=a+1|0;A=o[i>>2]|0}while((a|0)<(A|0))}if(s){o[i>>2]=0;A=0}s=t+4|0;if((o[s>>2]|0)>0){a=e+12|0;A=0;do{E=(o[t>>2]|0)+(A<<2)|0;o[(o[a>>2]|0)+(o[E>>2]<<2)>>2]=A;Ar(e,E);A=A+1|0}while((A|0)<(o[s>>2]|0));A=o[i>>2]|0}if((A|0)<=1){l=n;return}s=o[e>>2]|0;t=e+28|0;e=e+12|0;f=A;a=(A|0)/2|0;while(1){a=a+-1|0;A=o[s+(a<<2)>>2]|0;h=a<<1|1;e:do{if((h|0)<(f|0)){c=a;while(1){g=(c<<1)+2|0;if((g|0)<(f|0)){p=o[s+(g<<2)>>2]|0;E=o[s+(h<<2)>>2]|0;f=o[o[t>>2]>>2]|0;d=+u[f+(p<<3)>>3];C=+u[f+(E<<3)>>3];if(!(d>C)){p=E;d=C;r=16}}else{f=o[o[t>>2]>>2]|0;r=o[s+(h<<2)>>2]|0;p=r;d=+u[f+(r<<3)>>3];r=16}if((r|0)==16){r=0;g=h}if(!(d>+u[f+(A<<3)>>3]))break e;o[s+(c<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=c;h=g<<1|1;f=o[i>>2]|0;if((h|0)>=(f|0)){c=g;break}else c=g}}else c=a}while(0);o[s+(c<<2)>>2]=A;o[(o[e>>2]|0)+(A<<2)>>2]=c;if((a|0)<=0)break;f=o[i>>2]|0}l=n;return}function pr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;r=l;t=e+36|0;u=o[t>>2]|0;i=e+32|0;g=o[i>>2]|0;if((u|0)>0){A=e+16|0;s=e+44|0;a=0;do{c=g+(a<<2)|0;h=o[c>>2]|0;if(n[(o[A>>2]|0)+h>>0]|0){g=o[e>>2]|0;u=g+(h*12|0)+4|0;p=o[u>>2]|0;if((p|0)>0){h=g+(h*12|0)|0;g=0;f=0;do{d=o[h>>2]|0;C=d+(g<<3)|0;if((o[(o[o[s>>2]>>2]|0)+(o[C>>2]<<2)>>2]&3|0)!=1){E=C;C=o[E+4>>2]|0;p=d+(f<<3)|0;o[p>>2]=o[E>>2];o[p+4>>2]=C;p=o[u>>2]|0;f=f+1|0}g=g+1|0}while((g|0)<(p|0))}else{g=0;f=0}h=g-f|0;if((h|0)>0)o[u>>2]=p-h;n[(o[A>>2]|0)+(o[c>>2]|0)>>0]=0;u=o[t>>2]|0;g=o[i>>2]|0}a=a+1|0}while((a|0)<(u|0))}if(!g){l=r;return}o[t>>2]=0;l=r;return}function dr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0;n=l;A=o[t>>2]|0;i=A>>>2&1|(s[e+16>>0]|0);A=((i+(A>>>5)<<2)+4|0)>>>2;a=e+4|0;er(e,A+(o[a>>2]|0)|0);r=o[a>>2]|0;A=A+r|0;o[a>>2]=A;if(A>>>0<r>>>0)ze(Qe(1)|0,48,0);e=(o[e>>2]|0)+(r<<2)|0;if(!e){l=n;return r|0}i=o[t>>2]&-9|i<<3;o[e>>2]=i;if((o[t>>2]|0)>>>0>31){i=0;do{o[e+(i<<2)+4>>2]=o[t+(i<<2)+4>>2];i=i+1|0}while((i|0)<((o[t>>2]|0)>>>5|0));i=o[e>>2]|0}if(!(i&8)){l=n;return r|0}A=i>>>5;t=t+(A<<2)+4|0;if(!(i&4)){o[e+(A<<2)+4>>2]=o[t>>2];l=n;return r|0}else{c[e+(A<<2)+4>>2]=+c[t>>2];l=n;return r|0}return 0}function Cr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+16|0;s=t;Dt(e);o[e>>2]=3424;o[e+684>>2]=o[719];o[e+688>>2]=o[747];o[e+692>>2]=o[785];u[e+696>>3]=+u[411];n[e+704>>0]=n[2652]|0;n[e+705>>0]=n[2724]|0;n[e+706>>0]=n[2804]|0;n[e+707>>0]=1;o[e+708>>2]=0;o[e+712>>2]=0;o[e+716>>2]=0;o[e+720>>2]=1;n[e+724>>0]=1;r=e+732|0;a=e+544|0;o[e+760>>2]=0;o[e+764>>2]=0;o[e+768>>2]=0;o[e+776>>2]=0;o[e+780>>2]=0;o[e+784>>2]=0;o[e+792>>2]=0;o[e+796>>2]=0;o[e+800>>2]=0;A=e+804|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[A>>2]=a;A=e+808|0;o[A>>2]=0;o[e+812>>2]=0;o[e+816>>2]=0;r=e+824|0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;o[e+852>>2]=A;Lr(e+856|0,1);A=e+868|0;r=e+892|0;o[e+920>>2]=0;o[e+924>>2]=0;o[A+0>>2]=0;o[A+4>>2]=0;o[A+8>>2]=0;o[A+12>>2]=0;o[A+16>>2]=0;o[r+0>>2]=0;o[r+4>>2]=0;o[r+8>>2]=0;o[r+12>>2]=0;o[r+16>>2]=0;o[r+20>>2]=0;r=s+4|0;o[r>>2]=0;A=s+8|0;o[A>>2]=2;i=On(0,8)|0;o[s>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);o[i>>2]=-2;o[r>>2]=1;n[e+560>>0]=1;o[e+928>>2]=cr(a,s,0)|0;n[e+536>>0]=0;if(!i){l=t;return}o[r>>2]=0;_n(i);o[s>>2]=0;o[A>>2]=0;l=t;return}function Er(e){e=e|0;var t=0;t=l;Ir(e);un(e);l=t;return}function Ir(e){e=e|0;var t=0,r=0,n=0;t=l;o[e>>2]=3424;r=e+904|0;n=o[r>>2]|0;if(n){o[e+908>>2]=0;_n(n);o[r>>2]=0;o[e+912>>2]=0}r=e+892|0;n=o[r>>2]|0;if(n){o[e+896>>2]=0;_n(n);o[r>>2]=0;o[e+900>>2]=0}r=e+876|0;n=o[r>>2]|0;if(n){o[e+880>>2]=0;_n(n);o[r>>2]=0;o[e+884>>2]=0}r=e+856|0;n=o[r>>2]|0;if(n){o[e+860>>2]=0;_n(n);o[r>>2]=0;o[e+864>>2]=0}n=e+836|0;r=o[n>>2]|0;if(r){o[e+840>>2]=0;_n(r);o[n>>2]=0;o[e+844>>2]=0}r=e+824|0;n=o[r>>2]|0;if(n){o[e+828>>2]=0;_n(n);o[r>>2]=0;o[e+832>>2]=0}r=e+808|0;n=o[r>>2]|0;if(n){o[e+812>>2]=0;_n(n);o[r>>2]=0;o[e+816>>2]=0}Tr(e+760|0);r=e+744|0;n=o[r>>2]|0;if(n){o[e+748>>2]=0;_n(n);o[r>>2]=0;o[e+752>>2]=0}r=e+732|0;n=o[r>>2]|0;if(!n){St(e);l=t;return}o[e+736>>2]=0;_n(n);o[r>>2]=0;o[e+740>>2]=0;St(e);l=t;return}function mr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+32|0;A=i+12|0;c=i+8|0;u=i+16|0;s=i+4|0;a=i;n[u>>0]=n[t>>0]|0;n[A+0>>0]=n[u+0>>0]|0;r=kt(e,A,r)|0;o[c>>2]=r;ir(e+876|0,r,0);ir(e+904|0,r,0);if(!(n[e+724>>0]|0)){l=i;return r|0}u=e+808|0;t=r<<1;o[s>>2]=t;o[A+0>>2]=o[s+0>>2];Pr(u,A,0);o[a>>2]=t|1;o[A+0>>2]=o[a+0>>2];Pr(u,A,0);Ur(e+760|0,c);ir(e+744|0,r,0);_r(e+824|0,r);l=i;return r|0}function yr(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0;c=l;l=l+32|0;A=c+4|0;C=c;p=c+16|0;o[A>>2]=0;a=A+4|0;o[a>>2]=0;u=A+8|0;o[u>>2]=0;E=n[2608]|0;n[e>>0]=E;h=t+724|0;r=(s[h>>0]&(r&1)|0)!=0;if(r){m=t+308|0;B=o[m>>2]|0;if((B|0)>0){I=t+304|0;E=t+876|0;y=0;do{w=o[(o[I>>2]|0)+(y<<2)>>2]>>1;o[C>>2]=w;w=(o[E>>2]|0)+w|0;if(!(n[w>>0]|0)){n[w>>0]=1;Ar(A,C);B=o[m>>2]|0}y=y+1|0}while((y|0)<(B|0))}C=(wr(t,i)|0)&1^1;n[e>>0]=C;i=n[2608]|0}else{i=E;C=E}B=i&255;if(!((B>>>1^1)&C<<24>>24==i<<24>>24|B&2&(C&255))){if((o[t+44>>2]|0)>0)Ue(3760)|0}else{qt(p,t);C=n[p>>0]|0;n[e>>0]=C}w=n[2608]|0;B=w&255;if((((B>>>1^1)&C<<24>>24==w<<24>>24|B&2&(C&255)|0)!=0?(n[t+707>>0]|0)!=0:0)?(d=(o[t+736>>2]|0)+-1|0,(d|0)>0):0){e=t+732|0;p=t+4|0;do{i=o[e>>2]|0;m=o[i+(d<<2)>>2]|0;y=d+-1|0;w=o[i+(y<<2)>>2]|0;d=o[p>>2]|0;e:do{if((m|0)>1){E=n[2616]|0;C=E&255;I=C&2;C=C>>>1^1;B=y;while(1){w=s[d+(w>>1)>>0]^w&1;y=m+-1|0;if(!((w&255)<<24>>24==E<<24>>24&C|I&w))break e;m=B+-1|0;w=o[i+(m<<2)>>2]|0;if((y|0)>1){B=m;m=y}else{B=m;m=y;f=20;break}}}else{B=y;f=20}}while(0);if((f|0)==20){f=0;n[d+(w>>1)>>0]=(w&1^1)&255^1}d=B-m|0}while((d|0)>0)}if(r?(g=o[a>>2]|0,(g|0)>0):0){f=o[A>>2]|0;r=t+876|0;p=0;do{e=o[f+(p<<2)>>2]|0;n[(o[r>>2]|0)+e>>0]=0;if(n[h>>0]|0)Or(t,e);p=p+1|0}while((p|0)<(g|0))}t=o[A>>2]|0;if(!t){l=c;return}o[a>>2]=0;_n(t);o[A>>2]=0;o[u>>2]=0;l=c;return}function wr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,h=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0;c=l;l=l+16|0;A=c;if(!(Jt(e)|0)){N=0;l=c;return N|0}a=e+724|0;if(!(n[a>>0]|0)){N=1;l=c;return N|0}B=e+924|0;y=e+872|0;w=e+868|0;m=e+860|0;C=e+680|0;Q=e+824|0;s=e+828|0;f=e+836|0;v=e+904|0;D=e+332|0;r=e+44|0;b=e+704|0;k=e+706|0;x=e+696|0;p=e+556|0;d=e+548|0;S=e+876|0;E=e+920|0;I=e+284|0;e:while(1){if(((o[B>>2]|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0)?(o[s>>2]|0)<=0:0)break;Sr(e);M=o[y>>2]|0;N=o[w>>2]|0;F=M-N|0;if((M|0)<(N|0))F=(o[m>>2]|0)+F|0;if(!((F|0)<=0?(o[E>>2]|0)>=(o[I>>2]|0):0))h=11;if((h|0)==11?(h=0,!(kr(e,1)|0)):0){h=12;break}N=o[s>>2]|0;if(n[C>>0]|0){h=15;break}if(!N)continue;else F=0;while(1){K=o[Q>>2]|0;M=o[K>>2]|0;R=o[K+(N+-1<<2)>>2]|0;o[K>>2]=R;N=o[f>>2]|0;o[N+(R<<2)>>2]=0;o[N+(M<<2)>>2]=-1;N=(o[s>>2]|0)+-1|0;o[s>>2]=N;if((N|0)>1)jr(Q,0);if(n[C>>0]|0)continue e;if((n[(o[v>>2]|0)+M>>0]|0)==0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0){if((o[r>>2]|0)>1&((F|0)%100|0|0)==0){o[A>>2]=o[s>>2];_e(3504,A|0)|0}if(n[b>>0]|0){K=(o[S>>2]|0)+M|0;N=n[K>>0]|0;n[K>>0]=1;if(!(Fr(e,M)|0)){h=29;break e}n[(o[S>>2]|0)+M>>0]=N<<24>>24!=0&1}if((((n[k>>0]|0)!=0?(R=n[(o[D>>2]|0)+M>>0]|0,N=n[2624]|0,K=N&255,((K>>>1^1)&R<<24>>24==N<<24>>24|R&2&K|0)!=0):0)?(n[(o[S>>2]|0)+M>>0]|0)==0:0)?!(Mr(e,M)|0):0){h=35;break e}if(+((o[p>>2]|0)>>>0)>+u[x>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}N=o[s>>2]|0;if(!N)continue e;else F=F+1|0}}do{if((h|0)==12)n[e+492>>0]=0;else if((h|0)==15){C=o[e+824>>2]|0;if((N|0)<=0){if(!C)break}else{I=o[f>>2]|0;E=0;do{o[I+(o[C+(E<<2)>>2]<<2)>>2]=-1;E=E+1|0}while((E|0)<(o[s>>2]|0))}o[s>>2]=0}else if((h|0)==29)n[e+492>>0]=0;else if((h|0)==35)n[e+492>>0]=0}while(0);if(!t){if(+((o[p>>2]|0)>>>0)>+u[e+96>>3]*+((o[d>>2]|0)>>>0))ji[o[(o[e>>2]|0)+8>>2]&31](e)}else{t=e+744|0;p=o[t>>2]|0;if(p){o[e+748>>2]=0;_n(p);o[t>>2]=0;o[e+752>>2]=0}Yr(e+760|0,1);t=e+808|0;p=o[t>>2]|0;if(p){o[e+812>>2]=0;_n(p);o[t>>2]=0;o[e+816>>2]=0}p=e+824|0;t=o[p>>2]|0;if((o[s>>2]|0)<=0){if(t)h=48}else{h=o[f>>2]|0;f=0;do{o[h+(o[t+(f<<2)>>2]<<2)>>2]=-1;f=f+1|0}while((f|0)<(o[s>>2]|0));h=48}if((h|0)==48){o[s>>2]=0;_n(t);o[p>>2]=0;o[e+832>>2]=0}Gr(e+856|0,1);n[a>>0]=0;n[e+536>>0]=1;n[e+560>>0]=0;o[e+728>>2]=o[e+540>>2];Gt(e);ji[o[(o[e>>2]|0)+8>>2]&31](e)}if((o[r>>2]|0)>0?(i=o[e+736>>2]|0,(i|0)>0):0){u[g>>3]=+(i<<2>>>0)*9.5367431640625e-7;o[A>>2]=o[g>>2];o[A+4>>2]=o[g+4>>2];_e(3528,A|0)|0}K=(n[e+492>>0]|0)!=0;l=c;return K|0}function Br(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;r=l;l=l+16|0;s=r;a=e+256|0;c=e+260|0;A=o[c>>2]|0;if((n[e+705>>0]|0)!=0?Qr(e,t)|0:0){p=1;l=r;return p|0}if(!(xt(e,t)|0)){p=0;l=r;return p|0}if(!(n[e+724>>0]|0)){p=1;l=r;return p|0}t=o[c>>2]|0;if((t|0)!=(A+1|0)){p=1;l=r;return p|0}p=o[(o[a>>2]|0)+(t+-1<<2)>>2]|0;o[s>>2]=p;h=(o[e+544>>2]|0)+(p<<2)|0;Jr(e+856|0,p);if((o[h>>2]|0)>>>0<=31){p=1;l=r;return p|0}u=e+760|0;c=e+808|0;a=e+744|0;A=e+924|0;t=e+824|0;g=e+840|0;e=e+836|0;f=0;do{p=h+(f<<2)+4|0;Hr((o[u>>2]|0)+((o[p>>2]>>1)*12|0)|0,s);d=(o[c>>2]|0)+(o[p>>2]<<2)|0;o[d>>2]=(o[d>>2]|0)+1;n[(o[a>>2]|0)+(o[p>>2]>>1)>>0]=1;o[A>>2]=(o[A>>2]|0)+1;p=o[p>>2]>>1;if((o[g>>2]|0)>(p|0)?(i=o[(o[e>>2]|0)+(p<<2)>>2]|0,(i|0)>-1):0)jr(t,i);f=f+1|0}while((f|0)<((o[h>>2]|0)>>>5|0));i=1;l=r;return i|0}function Qr(e,t){e=e|0;t=t|0;var r=0,i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;c=l;l=l+16|0;A=c+8|0;a=c+4|0;i=c;o[a>>2]=o[e+284>>2];Ar(e+292|0,a);a=t+4|0;h=o[a>>2]|0;e:do{if((h|0)>0){r=e+332|0;u=0;while(1){g=o[(o[t>>2]|0)+(u<<2)>>2]|0;p=s[(o[r>>2]|0)+(g>>1)>>0]|0;d=p^g&1;f=d&255;E=n[2608]|0;C=E&255;if(f<<24>>24==E<<24>>24&(C>>>1^1)|C&2&d)break;C=n[2616]|0;E=C&255;if(!((E>>>1^1)&f<<24>>24==C<<24>>24|p&2&E)){o[i>>2]=g^1;o[A+0>>2]=o[i+0>>2];Ft(e,A,-1);h=o[a>>2]|0}u=u+1|0;if((u|0)>=(h|0))break e}Tt(e,0);E=1;l=c;return E|0}}while(0);E=(Mt(e)|0)!=-1;Tt(e,0);l=c;return E|0}function vr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0;r=l;l=l+16|0;s=r;i=(o[e+544>>2]|0)+(t<<2)|0;if(!(n[e+724>>0]|0)){Kt(e,t);l=r;return}if((o[i>>2]|0)>>>0<=31){Kt(e,t);l=r;return}a=e+808|0;c=e+776|0;A=e+792|0;u=0;do{h=i+(u<<2)+4|0;g=(o[a>>2]|0)+(o[h>>2]<<2)|0;o[g>>2]=(o[g>>2]|0)+-1;Or(e,o[h>>2]>>1);h=o[h>>2]>>1;o[s>>2]=h;h=(o[c>>2]|0)+h|0;if(!(n[h>>0]|0)){n[h>>0]=1;Ar(A,s)}u=u+1|0}while((u|0)<((o[i>>2]|0)>>>5|0));Kt(e,t);l=r;return}function Dr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0;i=l;l=l+16|0;a=i+4|0;A=i;u=o[e+544>>2]|0;c=u+(t<<2)|0;Jr(e+856|0,t);if((o[c>>2]&-32|0)==64){vr(e,t);p=o[r>>2]|0;r=o[c>>2]|0;e:do{if(r>>>0>31){h=r>>>5;g=0;while(1){f=g+1|0;if((o[c+(g<<2)+4>>2]|0)==(p|0)){f=g;break e}if((f|0)<(h|0))g=f;else break}}else{h=0;f=0}}while(0);g=h+-1|0;if((f|0)<(g|0))do{r=f;f=f+1|0;o[c+(r<<2)+4>>2]=o[c+(f<<2)+4>>2];r=o[c>>2]|0;h=r>>>5;g=h+-1|0}while((f|0)<(g|0));if(r&8){o[c+(g<<2)+4>>2]=o[c+(h<<2)+4>>2];r=o[c>>2]|0}h=r+-32|0;o[c>>2]=h;h=h>>>5;if(!h){h=0;r=0}else{r=0;g=0;do{r=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|r;g=g+1|0}while((g|0)<(h|0))}o[c+(h<<2)+4>>2]=r}else{Rt(e,t,1);r=o[r>>2]|0;g=o[c>>2]|0;e:do{if(g>>>0>31){h=g>>>5;f=0;while(1){p=f+1|0;if((o[c+(f<<2)+4>>2]|0)==(r|0)){p=f;break e}if((p|0)<(h|0))f=p;else break}}else{h=0;p=0}}while(0);f=h+-1|0;if((p|0)<(f|0))do{g=p;p=p+1|0;o[c+(g<<2)+4>>2]=o[c+(p<<2)+4>>2];g=o[c>>2]|0;h=g>>>5;f=h+-1|0}while((p|0)<(f|0));if(g&8){o[c+(f<<2)+4>>2]=o[c+(h<<2)+4>>2];g=o[c>>2]|0}f=g+-32|0;o[c>>2]=f;f=f>>>5;if(!f){f=0;h=0}else{h=0;g=0;do{h=1<<((o[c+(g<<2)+4>>2]|0)>>>1&31)|h;g=g+1|0}while((g|0)<(f|0))}o[c+(f<<2)+4>>2]=h;Nt(e,t);h=r>>1;g=o[e+760>>2]|0;f=g+(h*12|0)|0;g=g+(h*12|0)+4|0;p=o[g>>2]|0;e:do{if((p|0)>0){E=o[f>>2]|0;d=0;while(1){C=d+1|0;if((o[E+(d<<2)>>2]|0)==(t|0))break e;if((C|0)<(p|0))d=C;else{d=C;break}}}else d=0}while(0);p=p+-1|0;if((d|0)<(p|0)){f=o[f>>2]|0;do{p=d;d=d+1|0;o[f+(p<<2)>>2]=o[f+(d<<2)>>2];p=(o[g>>2]|0)+-1|0}while((d|0)<(p|0))}o[g>>2]=p;E=(o[e+808>>2]|0)+(r<<2)|0;o[E>>2]=(o[E>>2]|0)+-1;Or(e,h)}if((o[c>>2]&-32|0)!=32){E=1;l=i;return E|0}u=o[u+(t+1<<2)>>2]|0;c=s[(o[e+332>>2]|0)+(u>>1)>>0]|0;E=c^u&1;t=E&255;d=n[2624]|0;C=d&255;if(!(t<<24>>24==d<<24>>24&(C>>>1^1)|C&2&E)){C=n[2616]|0;E=C&255;if((E>>>1^1)&t<<24>>24==C<<24>>24|c&2&E){E=0;l=i;return E|0}}else{o[A>>2]=u;o[a+0>>2]=o[A+0>>2];Ft(e,a,-1)}E=(Mt(e)|0)==-1;l=i;return E|0}function br(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;s=l;l=l+16|0;a=s+4|0;A=s;f=e+708|0;o[f>>2]=(o[f>>2]|0)+1;if(o[i>>2]|0)o[i+4>>2]=0;c=(o[t>>2]|0)>>>5>>>0<(o[r>>2]|0)>>>5>>>0;e=c?r:t;t=c?t:r;c=o[t>>2]|0;e:do{if(c>>>0>31){r=0;t:while(1){u=o[t+(r<<2)+4>>2]|0;r:do{if((u>>1|0)!=(n|0)){h=o[e>>2]|0;n:do{if(h>>>0>31){g=0;while(1){f=o[e+(g<<2)+4>>2]|0;g=g+1|0;if((u^f)>>>0<2)break;if((g|0)>=(h>>>5|0))break n}if((f|0)==(u^1|0)){i=0;break t}else break r}}while(0);o[a>>2]=u;sr(i,a);c=o[t>>2]|0}}while(0);r=r+1|0;if((r|0)>=(c>>>5|0))break e}l=s;return i|0}}while(0);r=o[e>>2]|0;if(r>>>0<=31){f=1;l=s;return f|0}a=0;do{t=o[e+(a<<2)+4>>2]|0;if((t>>1|0)!=(n|0)){o[A>>2]=t;sr(i,A);r=o[e>>2]|0}a=a+1|0}while((a|0)<(r>>>5|0));i=1;l=s;return i|0}function Sr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;c=e+924|0;if(!(o[c>>2]|0)){l=t;return}A=e+856|0;r=e+872|0;i=e+868|0;a=e+860|0;s=e+544|0;u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;g=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;h=o[g>>2]|0;if(!(h&3))o[g>>2]=h&-4|2;u=u+1|0}u=e+540|0;d=o[u>>2]|0;if((d|0)>0){g=e+744|0;f=e+776|0;h=e+760|0;e=e+804|0;p=0;do{if(n[(o[g>>2]|0)+p>>0]|0){C=(o[f>>2]|0)+p|0;if(n[C>>0]|0){E=o[h>>2]|0;d=E+(p*12|0)+4|0;m=o[d>>2]|0;if((m|0)>0){E=o[E+(p*12|0)>>2]|0;y=0;I=0;do{w=o[E+(y<<2)>>2]|0;if((o[(o[o[e>>2]>>2]|0)+(w<<2)>>2]&3|0)!=1){o[E+(I<<2)>>2]=w;m=o[d>>2]|0;I=I+1|0}y=y+1|0}while((y|0)<(m|0))}else{y=0;I=0}E=y-I|0;if((E|0)>0)o[d>>2]=m-E;n[C>>0]=0}C=o[h>>2]|0;d=C+(p*12|0)+4|0;I=o[d>>2]|0;if((I|0)>0){C=C+(p*12|0)|0;E=0;do{m=o[(o[C>>2]|0)+(E<<2)>>2]|0;if(!(o[(o[s>>2]|0)+(m<<2)>>2]&3)){Jr(A,m);I=(o[s>>2]|0)+(o[(o[C>>2]|0)+(E<<2)>>2]<<2)|0;o[I>>2]=o[I>>2]&-4|2;I=o[d>>2]|0}E=E+1|0}while((E|0)<(I|0))}n[(o[g>>2]|0)+p>>0]=0;d=o[u>>2]|0}p=p+1|0}while((p|0)<(d|0));u=0}else u=0;while(1){w=o[r>>2]|0;h=o[i>>2]|0;g=w-h|0;if((w|0)<(h|0))g=(o[a>>2]|0)+g|0;if((u|0)>=(g|0))break;h=(o[s>>2]|0)+(o[(o[A>>2]|0)+(((h+u|0)%(o[a>>2]|0)|0)<<2)>>2]<<2)|0;g=o[h>>2]|0;if((g&3|0)==2)o[h>>2]=g&-4;u=u+1|0}o[c>>2]=0;l=t;return}function kr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,R=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0;r=l;l=l+16|0;h=r;B=r+12|0;s=e+856|0;u=e+872|0;d=e+868|0;a=e+860|0;m=e+680|0;i=e+920|0;A=e+284|0;I=e+280|0;C=e+544|0;E=e+928|0;f=e+44|0;g=e+776|0;y=e+692|0;p=e+804|0;c=e+760|0;S=0;F=0;k=0;e:while(1){x=o[d>>2]|0;do{D=o[u>>2]|0;b=(D|0)<(x|0);D=D-x|0;if(b)M=(o[a>>2]|0)+D|0;else M=D;if((M|0)<=0?(o[i>>2]|0)>=(o[A>>2]|0):0){i=1;a=53;break e}if(n[m>>0]|0){a=8;break e}if(b)D=(o[a>>2]|0)+D|0;if((D|0)==0?(v=o[i>>2]|0,(v|0)<(o[A>>2]|0)):0){o[i>>2]=v+1;o[(o[C>>2]|0)+((o[E>>2]|0)+1<<2)>>2]=o[(o[I>>2]|0)+(v<<2)>>2];D=(o[C>>2]|0)+(o[E>>2]<<2)|0;b=(o[D>>2]|0)>>>5;if(!b){b=0;M=0}else{M=0;x=0;do{M=1<<((o[D+(x<<2)+4>>2]|0)>>>1&31)|M;x=x+1|0}while((x|0)<(b|0))}o[D+(b<<2)+4>>2]=M;Jr(s,o[E>>2]|0);x=o[d>>2]|0}D=o[(o[s>>2]|0)+(x<<2)>>2]|0;x=x+1|0;K=o[a>>2]|0;x=(x|0)==(K|0)?0:x;o[d>>2]=x;M=o[C>>2]|0;b=M+(D<<2)|0;R=o[b>>2]|0}while((R&3|0)!=0);if(t?(o[f>>2]|0)>1:0){N=S+1|0;if(!((S|0)%1e3|0)){R=o[u>>2]|0;o[h>>2]=R-x+((R|0)<(x|0)?K:0);o[h+4>>2]=k;o[h+8>>2]=F;_e(3440,h|0)|0;R=o[b>>2]|0;S=N}else S=N}x=M+(D+1<<2)|0;M=o[x>>2]>>1;if(R>>>0>63){N=o[c>>2]|0;R=R>>>5;K=1;do{O=o[b+(K<<2)+4>>2]>>1;M=(o[N+(O*12|0)+4>>2]|0)<(o[N+(M*12|0)+4>>2]|0)?O:M;K=K+1|0}while((K|0)<(R|0))}R=(o[g>>2]|0)+M|0;if(n[R>>0]|0){K=o[c>>2]|0;N=K+(M*12|0)+4|0;P=o[N>>2]|0;if((P|0)>0){K=o[K+(M*12|0)>>2]|0;T=0;L=0;do{U=o[K+(T<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(U<<2)>>2]&3|0)!=1){o[K+(L<<2)>>2]=U;P=o[N>>2]|0;L=L+1|0}T=T+1|0}while((T|0)<(P|0))}else{T=0;L=0}K=T-L|0;if((K|0)>0)o[N>>2]=P-K;n[R>>0]=0}R=o[c>>2]|0;N=o[R+(M*12|0)>>2]|0;R=R+(M*12|0)+4|0;if((o[R>>2]|0)>0)K=0;else continue;while(1){U=o[b>>2]|0;if(U&3)continue e;L=o[N+(K<<2)>>2]|0;T=o[C>>2]|0;_=T+(L<<2)|0;P=o[_>>2]|0;t:do{if(((!((P&3|0)!=0|(L|0)==(D|0))?(O=o[y>>2]|0,Q=P>>>5,(O|0)==-1|(Q|0)<(O|0)):0)?(w=U>>>5,Q>>>0>=w>>>0):0)?(o[b+(w<<2)+4>>2]&~o[_+(Q<<2)+4>>2]|0)==0:0){T=T+(L+1<<2)|0;do{if(U>>>0>31){if(P>>>0>31){_=-2;P=0}else break t;while(1){U=o[x+(P<<2)>>2]|0;r:do{if((_|0)==-2){O=0;while(1){_=o[T+(O<<2)>>2]|0;if((U|0)==(_|0)){U=-2;break r}O=O+1|0;if((U|0)==(_^1|0))break r;if(O>>>0>=Q>>>0)break t}}else{O=0;while(1){if((U|0)==(o[T+(O<<2)>>2]|0)){U=_;break r}O=O+1|0;if(O>>>0>=Q>>>0)break t}}}while(0);P=P+1|0;if(P>>>0>=w>>>0)break;else _=U}if((U|0)==-2)break;else if((U|0)==-1)break t;o[B>>2]=U^1;o[h+0>>2]=o[B+0>>2];if(!(Dr(e,L,h)|0)){i=0;a=53;break e}F=F+1|0;K=(((U>>1|0)==(M|0))<<31>>31)+K|0;break t}}while(0);vr(e,L);k=k+1|0}}while(0);K=K+1|0;if((K|0)>=(o[R>>2]|0))continue e}}if((a|0)==8){Gr(s,0);o[i>>2]=o[A>>2];O=1;l=r;return O|0}else if((a|0)==53){l=r;return i|0}return 0}function xr(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;A=l;l=l+16|0;i=A+12|0;h=A+8|0;c=A+4|0;a=A;u=(o[e+544>>2]|0)+(r<<2)|0;if(o[u>>2]&3){C=1;l=A;return C|0}if(Lt(e,u)|0){C=1;l=A;return C|0}o[h>>2]=o[e+284>>2];Ar(e+292|0,h);p=o[u>>2]|0;if(p>>>0>31){h=e+332|0;g=0;f=-2;do{d=o[u+(g<<2)+4>>2]|0;C=d>>1;if((C|0)!=(t|0)?(C=(s[(o[h>>2]|0)+C>>0]|0)^d&1,I=n[2616]|0,E=I&255,((C&255)<<24>>24==I<<24>>24&(E>>>1^1)|E&2&C|0)==0):0){o[c>>2]=d^1;o[i+0>>2]=o[c+0>>2];Ft(e,i,-1);p=o[u>>2]|0}else f=d;g=g+1|0}while((g|0)<(p>>>5|0))}else f=-2;I=(Mt(e)|0)==-1;Tt(e,0);if(!I){I=e+712|0;o[I>>2]=(o[I>>2]|0)+1;o[a>>2]=f;o[i+0>>2]=o[a+0>>2];if(!(Dr(e,r,i)|0)){I=0;l=A;return I|0}}I=1;l=A;return I|0}function Fr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0;r=l;A=(o[e+776>>2]|0)+t|0;i=e+760|0;if(n[A>>0]|0){c=o[i>>2]|0;s=c+(t*12|0)+4|0;g=o[s>>2]|0;if((g|0)>0){a=e+804|0;c=o[c+(t*12|0)>>2]|0;h=0;u=0;do{f=o[c+(h<<2)>>2]|0;if((o[(o[o[a>>2]>>2]|0)+(f<<2)>>2]&3|0)!=1){o[c+(u<<2)>>2]=f;g=o[s>>2]|0;u=u+1|0}h=h+1|0}while((h|0)<(g|0))}else{h=0;u=0}a=h-u|0;if((a|0)>0)o[s>>2]=g-a;n[A>>0]=0}s=o[i>>2]|0;g=n[(o[e+332>>2]|0)+t>>0]|0;h=n[2624]|0;f=h&255;if(!((f>>>1^1)&g<<24>>24==h<<24>>24|g&2&f)){f=1;l=r;return f|0}i=s+(t*12|0)+4|0;A=o[i>>2]|0;if(!A){f=1;l=r;return f|0}e:do{if((A|0)>0){s=s+(t*12|0)|0;A=0;while(1){if(!(xr(e,t,o[(o[s>>2]|0)+(A<<2)>>2]|0)|0)){e=0;break}A=A+1|0;if((A|0)>=(o[i>>2]|0))break e}l=r;return e|0}}while(0);f=kr(e,0)|0;l=r;return f|0}function Mr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0,K=0,L=0,T=0,P=0,U=0,_=0,O=0,j=0,Y=0,G=0,J=0,H=0,q=0,z=0,W=0,V=0,X=0;r=l;l=l+48|0;E=r+36|0;C=r+32|0;I=r+28|0;m=r+24|0;i=r+12|0;s=r;g=(o[e+776>>2]|0)+t|0;h=e+760|0;if(n[g>>0]|0){d=o[h>>2]|0;f=d+(t*12|0)+4|0;Q=o[f>>2]|0;if((Q|0)>0){p=e+804|0;d=o[d+(t*12|0)>>2]|0;w=0;y=0;do{v=o[d+(w<<2)>>2]|0;if((o[(o[o[p>>2]>>2]|0)+(v<<2)>>2]&3|0)!=1){o[d+(y<<2)>>2]=v;Q=o[f>>2]|0;y=y+1|0}w=w+1|0}while((w|0)<(Q|0))}else{w=0;y=0}p=w-y|0;if((p|0)>0)o[f>>2]=Q-p;n[g>>0]=0}y=o[h>>2]|0;w=y+(t*12|0)|0;o[i>>2]=0;g=i+4|0;o[g>>2]=0;f=i+8|0;o[f>>2]=0;o[s>>2]=0;d=s+4|0;o[d>>2]=0;p=s+8|0;o[p>>2]=0;y=y+(t*12|0)+4|0;e:do{if((o[y>>2]|0)>0){Q=e+544|0;b=t<<1;D=0;do{S=(o[w>>2]|0)+(D<<2)|0;x=(o[Q>>2]|0)+(o[S>>2]<<2)|0;X=o[x>>2]|0;v=X>>>5;t:do{if(X>>>0>31){F=0;while(1){k=F+1|0;if((o[x+(F<<2)+4>>2]|0)==(b|0)){k=F;break t}if((k|0)<(v|0))F=k;else break}}else k=0}while(0);Hr((k|0)<(v|0)?i:s,S);D=D+1|0;v=o[y>>2]|0}while((D|0)<(v|0));Q=o[g>>2]|0;b=(Q|0)>0;if(b){S=o[d>>2]|0;L=(S|0)>0;K=e+544|0;k=o[i>>2]|0;D=o[s>>2]|0;x=e+708|0;N=e+684|0;M=e+688|0;O=0;F=0;while(1){if(L){P=k+(F<<2)|0;T=o[K>>2]|0;U=o[x>>2]|0;_=0;do{G=T+(o[P>>2]<<2)|0;H=T+(o[D+(_<<2)>>2]<<2)|0;U=U+1|0;o[x>>2]=U;j=(o[G>>2]|0)>>>5>>>0<(o[H>>2]|0)>>>5>>>0;Y=j?H:G;H=j?G:H;G=Y+4|0;j=H+4|0;Y=o[Y>>2]|0;J=Y>>>5;z=J+-1|0;H=o[H>>2]|0;t:do{if(H>>>0>31){q=0;while(1){X=o[j+(q<<2)>>2]|0;r:do{if((X>>1|0)!=(t|0)){n:do{if(Y>>>0>31){V=0;while(1){W=o[G+(V<<2)>>2]|0;V=V+1|0;if((W^X)>>>0<2)break;if((V|0)>=(J|0))break n}if((W|0)==(X^1|0))break t;else break r}}while(0);z=z+1|0}}while(0);q=q+1|0;if((q|0)>=(H>>>5|0)){B=28;break}}}else B=28}while(0);if((B|0)==28){B=0;if((O|0)>=((o[N>>2]|0)+v|0)){e=1;break e}X=o[M>>2]|0;if((X|0)!=-1&(z|0)>(X|0)){e=1;break e}else O=O+1|0}_=_+1|0}while((_|0)<(S|0))}F=F+1|0;if((F|0)>=(Q|0)){B=32;break}}}else{b=0;B=32}}else{Q=0;b=0;B=32}}while(0);e:do{if((B|0)==32){n[(o[e+904>>2]|0)+t>>0]=1;v=e+380|0;D=(o[v>>2]|0)+t|0;if(n[D>>0]|0){X=e+200|0;V=X;V=ai(o[V>>2]|0,o[V+4>>2]|0,-1,-1)|0;o[X>>2]=V;o[X+4>>2]=R}n[D>>0]=0;D=e+460|0;if(!((o[e+476>>2]|0)>(t|0)?(o[(o[e+472>>2]|0)+(t<<2)>>2]|0)>-1:0))B=36;if((B|0)==36?(n[(o[v>>2]|0)+t>>0]|0)!=0:0)or(D,t);B=e+716|0;o[B>>2]=(o[B>>2]|0)+1;B=o[d>>2]|0;if((Q|0)>(B|0)){D=e+732|0;if((B|0)>0){m=e+544|0;I=o[s>>2]|0;x=e+736|0;k=0;do{S=(o[m>>2]|0)+(o[I+(k<<2)>>2]<<2)|0;v=o[x>>2]|0;if((o[S>>2]|0)>>>0>31){F=0;M=-1;do{X=S+(F<<2)+4|0;o[E>>2]=o[X>>2];Hr(D,E);M=(o[X>>2]>>1|0)==(t|0)?F+v|0:M;F=F+1|0}while((F|0)<((o[S>>2]|0)>>>5|0))}else M=-1;X=o[D>>2]|0;W=X+(M<<2)|0;V=o[W>>2]|0;X=X+(v<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(D,C);k=k+1|0}while((k|0)<(B|0))}o[E>>2]=t<<1;Hr(D,E);o[C>>2]=1;Hr(D,C)}else{k=e+732|0;if(b){F=e+544|0;x=o[i>>2]|0;v=e+736|0;M=0;do{S=(o[F>>2]|0)+(o[x+(M<<2)>>2]<<2)|0;D=o[v>>2]|0;if((o[S>>2]|0)>>>0>31){N=0;K=-1;do{X=S+(N<<2)+4|0;o[E>>2]=o[X>>2];Hr(k,E);K=(o[X>>2]>>1|0)==(t|0)?N+D|0:K;N=N+1|0}while((N|0)<((o[S>>2]|0)>>>5|0))}else K=-1;X=o[k>>2]|0;W=X+(K<<2)|0;V=o[W>>2]|0;X=X+(D<<2)|0;o[W>>2]=o[X>>2];o[X>>2]=V;o[C>>2]=(o[S>>2]|0)>>>5;Hr(k,C);M=M+1|0}while((M|0)<(Q|0))}o[I>>2]=t<<1|1;Hr(k,I);o[m>>2]=1;Hr(k,m)}if((o[y>>2]|0)>0){C=0;do{vr(e,o[(o[w>>2]|0)+(C<<2)>>2]|0);C=C+1|0}while((C|0)<(o[y>>2]|0))}C=e+628|0;t:do{if(b){E=e+544|0;w=o[i>>2]|0;D=o[s>>2]|0;if((B|0)>0)y=0;else{C=0;while(1){C=C+1|0;if((C|0)>=(Q|0))break t}}do{m=w+(y<<2)|0;I=0;do{X=o[E>>2]|0;if(br(e,X+(o[m>>2]<<2)|0,X+(o[D+(I<<2)>>2]<<2)|0,t,C)|0?!(Br(e,C)|0):0){e=0;break e}I=I+1|0}while((I|0)<(B|0));y=y+1|0}while((y|0)<(Q|0))}}while(0);C=o[h>>2]|0;h=C+(t*12|0)|0;E=o[h>>2]|0;if(E){o[C+(t*12|0)+4>>2]=0;_n(E);o[h>>2]=0;o[C+(t*12|0)+8>>2]=0}h=e+412|0;t=t<<1;E=o[h>>2]|0;C=E+(t*12|0)+4|0;if((o[C>>2]|0)==0?(u=E+(t*12|0)|0,c=o[u>>2]|0,(c|0)!=0):0){o[C>>2]=0;_n(c);o[u>>2]=0;o[E+(t*12|0)+8>>2]=0;E=o[h>>2]|0}c=t|1;u=E+(c*12|0)+4|0;if((o[u>>2]|0)==0?(a=E+(c*12|0)|0,A=o[a>>2]|0,(A|0)!=0):0){o[u>>2]=0;_n(A);o[a>>2]=0;o[E+(c*12|0)+8>>2]=0}e=kr(e,0)|0;D=o[s>>2]|0}}while(0);if(D){o[d>>2]=0;_n(D);o[s>>2]=0;o[p>>2]=0}s=o[i>>2]|0;if(!s){l=r;return e|0}o[g>>2]=0;_n(s);o[i>>2]=0;o[f>>2]=0;l=r;return e|0}function Nr(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;r=l;if(!(n[e+724>>0]|0)){l=r;return}u=e+540|0;if((o[u>>2]|0)>0){a=e+760|0;i=e+804|0;s=e+776|0;c=e+544|0;A=0;do{g=o[a>>2]|0;h=g+(A*12|0)+4|0;p=o[h>>2]|0;if((p|0)>0){g=o[g+(A*12|0)>>2]|0;d=0;f=0;do{C=o[g+(d<<2)>>2]|0;if((o[(o[o[i>>2]>>2]|0)+(C<<2)>>2]&3|0)!=1){o[g+(f<<2)>>2]=C;p=o[h>>2]|0;f=f+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;f=0}g=d-f|0;if((g|0)>0)o[h>>2]=p-g;n[(o[s>>2]|0)+A>>0]=0;g=o[a>>2]|0;h=g+(A*12|0)+4|0;if((o[h>>2]|0)>0){C=g+(A*12|0)|0;p=0;do{g=(o[C>>2]|0)+(p<<2)|0;f=o[g>>2]|0;d=o[c>>2]|0;E=d+(f<<2)|0;if(!(o[E>>2]&16)){I=dr(t,E)|0;o[g>>2]=I;o[E>>2]=o[E>>2]|16;o[d+(f+1<<2)>>2]=I}else o[g>>2]=o[d+(f+1<<2)>>2];p=p+1|0}while((p|0)<(o[h>>2]|0))}A=A+1|0}while((A|0)<(o[u>>2]|0))}i=e+856|0;I=o[e+872>>2]|0;s=e+868|0;h=o[s>>2]|0;c=I-h|0;if((I|0)<(h|0))c=(o[e+860>>2]|0)+c|0;e:do{if((c|0)>0){A=e+860|0;a=e+544|0;while(1){u=o[(o[i>>2]|0)+(h<<2)>>2]|0;g=h+1|0;o[s>>2]=(g|0)==(o[A>>2]|0)?0:g;g=o[a>>2]|0;f=g+(u<<2)|0;h=o[f>>2]|0;if(!(h&3)){if(!(h&16)){I=dr(t,f)|0;o[f>>2]=o[f>>2]|16;o[g+(u+1<<2)>>2]=I;u=I}else u=o[g+(u+1<<2)>>2]|0;Jr(i,u)}c=c+-1|0;if((c|0)<=0)break e;h=o[s>>2]|0}}else a=e+544|0}while(0);e=e+928|0;i=o[e>>2]|0;A=o[a>>2]|0;s=A+(i<<2)|0;if(!(o[s>>2]&16)){I=dr(t,s)|0;o[e>>2]=I;o[s>>2]=o[s>>2]|16;o[A+(i+1<<2)>>2]=I;l=r;return}else{o[e>>2]=o[A+(i+1<<2)>>2];l=r;return}}function Rr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;A=l;l=l+32|0;u=A;t=A+8|0;r=e+544|0;i=e+548|0;s=e+556|0;a=(o[i>>2]|0)-(o[s>>2]|0)|0;o[t+0>>2]=0;o[t+4>>2]=0;o[t+8>>2]=0;o[t+12>>2]=0;er(t,a);a=t+16|0;c=e+560|0;n[a>>0]=n[c>>0]|0;Nr(e,t);zt(e,t);if((o[e+44>>2]|0)>1){h=o[t+4>>2]<<2;o[u>>2]=o[i>>2]<<2;o[u+4>>2]=h;_e(3608,u|0)|0}n[c>>0]=n[a>>0]|0;a=o[r>>2]|0;if(a)_n(a);o[r>>2]=o[t>>2];o[i>>2]=o[t+4>>2];o[e+552>>2]=o[t+8>>2];o[s>>2]=o[t+12>>2];l=A;return}function Kr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;n[2608]=0;n[2616]=1;n[2624]=2;Ct(2632,2656,2664,3744,3752);o[658]=160;n[2652]=0;Ct(2704,2728,2736,3744,3752);o[676]=160;n[2724]=0;Ct(2784,2808,2816,3744,3752);o[696]=160;n[2804]=1;Ct(2848,2880,2888,3744,3736);o[712]=280;r=2868|0;o[r>>2]=-2147483648;o[r+4>>2]=2147483647;o[719]=0;Ct(2960,2992,3e3,3744,3736);o[740]=280;r=2980|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[747]=20;Ct(3112,3144,3152,3744,3736);o[778]=280;r=3132|0;o[r>>2]=-1;o[r+4>>2]=2147483647;o[785]=1e3;Ct(3240,3296,3312,3744,3720);o[810]=2168;u[408]=0.0;u[409]=Q;n[3280]=0;n[3281]=0;i[1641]=i[t+0>>1]|0;i[1642]=i[t+2>>1]|0;i[1643]=i[t+4>>1]|0;u[411]=.5;l=e;return}function Lr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e>>2]=0;n=e+4|0;o[n>>2]=0;i=e+8|0;o[i>>2]=0;if((t|0)<=0){l=r;return}s=t+1&-2;s=(s|0)>2?s:2;o[i>>2]=s;i=On(0,s<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0)ze(Qe(1)|0,48,0);e=o[n>>2]|0;if((e|0)<(t|0))do{s=i+(e<<2)|0;if(s)o[s>>2]=0;e=e+1|0}while((e|0)!=(t|0));o[n>>2]=t;l=r;return}function Tr(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0;t=l;n=e+32|0;r=o[n>>2]|0;if(r){o[e+36>>2]=0;_n(r);o[n>>2]=0;o[e+40>>2]=0}n=e+16|0;r=o[n>>2]|0;if(r){o[e+20>>2]=0;_n(r);o[n>>2]=0;o[e+24>>2]=0}n=o[e>>2]|0;if(!n){l=t;return}r=e+4|0;s=o[r>>2]|0;if((s|0)>0){i=0;do{a=n+(i*12|0)|0;A=o[a>>2]|0;if(A){o[n+(i*12|0)+4>>2]=0;_n(A);o[a>>2]=0;o[n+(i*12|0)+8>>2]=0;n=o[e>>2]|0;s=o[r>>2]|0}i=i+1|0}while((i|0)<(s|0))}o[r>>2]=0;_n(n);o[e>>2]=0;o[e+8>>2]=0;l=t;return}function Pr(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;t=o[t>>2]|0;s=t+1|0;i=e+4|0;if((o[i>>2]|0)>=(s|0)){c=o[e>>2]|0;c=c+(t<<2)|0;o[c>>2]=r;l=n;return}A=e+8|0;c=o[A>>2]|0;if((c|0)<(s|0)){u=t+2-c&-2;a=(c>>1)+2&-2;a=(u|0)>(a|0)?u:a;if((a|0)>(2147483647-c|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=a+c|0;o[A>>2]=u;u=On(h,u<<2)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}c=o[i>>2]|0;if((c|0)<(s|0)){A=o[e>>2]|0;do{a=A+(c<<2)|0;if(a)o[a>>2]=0;c=c+1|0}while((c|0)!=(s|0))}o[i>>2]=s;h=o[e>>2]|0;h=h+(t<<2)|0;o[h>>2]=r;l=n;return}function Ur(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;c=o[t>>2]|0;s=c+1|0;i=e+4|0;if((o[i>>2]|0)<(s|0)){a=e+8|0;A=o[a>>2]|0;if((A|0)<(s|0)){u=c+2-A&-2;c=(A>>1)+2&-2;c=(u|0)>(c|0)?u:c;if((c|0)>(2147483647-A|0)){u=Qe(1)|0;ze(u|0,48,0)}h=o[e>>2]|0;u=c+A|0;o[a>>2]=u;u=On(h,u*12|0)|0;o[e>>2]=u;if((u|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[i>>2]|0;if((a|0)<(s|0)){A=o[e>>2]|0;do{c=A+(a*12|0)|0;if(c){o[c>>2]=0;o[A+(a*12|0)+4>>2]=0;o[A+(a*12|0)+8>>2]=0}a=a+1|0}while((a|0)!=(s|0))}o[i>>2]=s;A=o[t>>2]|0}else A=c;i=o[e>>2]|0;if(o[i+(A*12|0)>>2]|0){o[i+(A*12|0)+4>>2]=0;A=o[t>>2]|0}t=e+16|0;i=A+1|0;s=e+20|0;if((o[s>>2]|0)>=(i|0)){l=r;return}a=e+24|0;e=o[a>>2]|0;if((e|0)<(i|0)){h=A+2-e&-2;A=(e>>1)+2&-2;A=(h|0)>(A|0)?h:A;if((A|0)>(2147483647-e|0)){h=Qe(1)|0;ze(h|0,48,0)}u=o[t>>2]|0;h=A+e|0;o[a>>2]=h;h=On(u,h)|0;o[t>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}e=o[s>>2]|0;if((e|0)<(i|0))do{n[(o[t>>2]|0)+e>>0]=0;e=e+1|0}while((e|0)!=(i|0));o[s>>2]=i;l=r;return}function _r(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;l=l+16|0;s=r;o[s>>2]=t;i=e+12|0;n=t+1|0;A=e+16|0;if((o[A>>2]|0)<(n|0)){c=e+20|0;a=o[c>>2]|0;if((a|0)<(n|0)){h=t+2-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}g=o[i>>2]|0;h=u+a|0;o[c>>2]=h;h=On(g,h<<2)|0;o[i>>2]=h;if((h|0)==0?(o[(Ye()|0)>>2]|0)==12:0){g=Qe(1)|0;ze(g|0,48,0)}}a=o[A>>2]|0;if((n|0)>(a|0))oi((o[i>>2]|0)+(a<<2)|0,-1,n-a<<2|0)|0;o[A>>2]=n}o[(o[i>>2]|0)+(t<<2)>>2]=o[e+4>>2];Ar(e,s);n=o[i>>2]|0;a=o[n+(t<<2)>>2]|0;t=o[e>>2]|0;i=o[t+(a<<2)>>2]|0;if(!a){h=0;g=t+(h<<2)|0;o[g>>2]=i;g=n+(i<<2)|0;o[g>>2]=h;l=r;return}e=e+28|0;s=i<<1;A=s|1;while(1){h=a;a=a+-1>>1;u=t+(a<<2)|0;c=o[u>>2]|0;C=o[o[e>>2]>>2]|0;f=o[C+(s<<2)>>2]|0;d=o[C+(A<<2)>>2]|0;f=Ci(d|0,((d|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0;d=R;p=c<<1;g=o[C+(p<<2)>>2]|0;p=o[C+((p|1)<<2)>>2]|0;g=Ci(p|0,((p|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;p=R;if(!(d>>>0<p>>>0|(d|0)==(p|0)&f>>>0<g>>>0)){e=14;break}o[t+(h<<2)>>2]=c;o[n+(o[u>>2]<<2)>>2]=h;if(!a){h=0;e=14;break}}if((e|0)==14){C=t+(h<<2)|0;o[C>>2]=i;C=n+(i<<2)|0;o[C>>2]=h;l=r;return}}function Or(e,t){e=e|0;t=t|0;var r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;A=e+824|0;u=(o[e+840>>2]|0)>(t|0);if(u?(o[(o[e+836>>2]|0)+(t<<2)>>2]|0)>-1:0)a=7;else a=3;do{if((a|0)==3){if(n[(o[e+876>>2]|0)+t>>0]|0){l=r;return}if(n[(o[e+904>>2]|0)+t>>0]|0){l=r;return}f=n[(o[e+332>>2]|0)+t>>0]|0;g=n[2624]|0;p=g&255;if((p>>>1^1)&f<<24>>24==g<<24>>24|f&2&p)if(u){a=7;break}else break;else{l=r;return}}}while(0);if((a|0)==7?(i=o[e+836>>2]|0,s=i+(t<<2)|0,c=o[s>>2]|0,(c|0)>-1):0){t=o[A>>2]|0;a=o[t+(c<<2)>>2]|0;e:do{if(!c)f=0;else{u=e+852|0;h=a<<1;e=h|1;while(1){f=c;c=c+-1>>1;p=t+(c<<2)|0;g=o[p>>2]|0;m=o[o[u>>2]>>2]|0;C=o[m+(h<<2)>>2]|0;I=o[m+(e<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;E=g<<1;d=o[m+(E<<2)>>2]|0;E=o[m+((E|1)<<2)>>2]|0;d=Ci(E|0,((E|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;E=R;if(!(I>>>0<E>>>0|(I|0)==(E|0)&C>>>0<d>>>0))break e;o[t+(f<<2)>>2]=g;o[i+(o[p>>2]<<2)>>2]=f;if(!c){f=0;break}}}}while(0);o[t+(f<<2)>>2]=a;o[i+(a<<2)>>2]=f;jr(A,o[s>>2]|0);l=r;return}_r(A,t);l=r;return}function jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0;r=l;n=o[e>>2]|0;i=o[n+(t<<2)>>2]|0;h=t<<1|1;u=e+4|0;f=o[u>>2]|0;if((h|0)>=(f|0)){p=t;d=e+12|0;f=n+(p<<2)|0;o[f>>2]=i;d=o[d>>2]|0;d=d+(i<<2)|0;o[d>>2]=p;l=r;return}A=e+28|0;c=i<<1;a=c|1;e=e+12|0;while(1){g=(t<<1)+2|0;if((g|0)<(f|0)){p=o[n+(g<<2)>>2]|0;d=o[n+(h<<2)>>2]|0;m=p<<1;f=o[o[A>>2]>>2]|0;E=o[f+(m<<2)>>2]|0;m=o[f+((m|1)<<2)>>2]|0;E=Ci(m|0,((m|0)<0)<<31>>31|0,E|0,((E|0)<0)<<31>>31|0)|0;m=R;I=d<<1;C=o[f+(I<<2)>>2]|0;I=o[f+((I|1)<<2)>>2]|0;C=Ci(I|0,((I|0)<0)<<31>>31|0,C|0,((C|0)<0)<<31>>31|0)|0;I=R;if(!(m>>>0<I>>>0|(m|0)==(I|0)&E>>>0<C>>>0)){p=d;s=7}}else{p=o[n+(h<<2)>>2]|0;f=o[o[A>>2]>>2]|0;s=7}if((s|0)==7){s=0;g=h}C=p<<1;I=o[f+(C<<2)>>2]|0;C=o[f+((C|1)<<2)>>2]|0;I=Ci(C|0,((C|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;C=R;m=o[f+(c<<2)>>2]|0;E=o[f+(a<<2)>>2]|0;m=Ci(E|0,((E|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;E=R;if(!(C>>>0<E>>>0|(C|0)==(E|0)&I>>>0<m>>>0)){s=10;break}o[n+(t<<2)>>2]=p;o[(o[e>>2]|0)+(p<<2)>>2]=t;h=g<<1|1;f=o[u>>2]|0;if((h|0)>=(f|0)){t=g;s=10;break}else t=g}if((s|0)==10){m=n+(t<<2)|0;o[m>>2]=i;m=o[e>>2]|0;m=m+(i<<2)|0;o[m>>2]=t;l=r;return}}function Yr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0;r=l;A=o[e>>2]|0;if(A){n=e+4|0;i=o[n>>2]|0;e:do{if((i|0)>0){s=0;while(1){a=A+(s*12|0)|0;c=o[a>>2]|0;if(c){o[A+(s*12|0)+4>>2]=0;_n(c);o[a>>2]=0;o[A+(s*12|0)+8>>2]=0;i=o[n>>2]|0}s=s+1|0;if((s|0)>=(i|0))break e;A=o[e>>2]|0}}}while(0);o[n>>2]=0;if(t){_n(o[e>>2]|0);o[e>>2]=0;o[e+8>>2]=0}}n=e+16|0;i=o[n>>2]|0;if((i|0)!=0?(o[e+20>>2]=0,t):0){_n(i);o[n>>2]=0;o[e+24>>2]=0}i=e+32|0;n=o[i>>2]|0;if(!n){l=r;return}o[e+36>>2]=0;if(!t){l=r;return}_n(n);o[i>>2]=0;o[e+40>>2]=0;l=r;return}function Gr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;n=l;i=o[e>>2]|0;r=e+4|0;if(i){o[r>>2]=0;if(t){_n(i);o[e>>2]=0;o[e+8>>2]=0;i=0}}else i=0;if((o[r>>2]|0)>=1){A=e+16|0;o[A>>2]=0;A=e+12|0;o[A>>2]=0;l=n;return}A=e+8|0;s=o[A>>2]|0;if((s|0)<1){a=2-s&-2;t=(s>>1)+2&-2;t=(a|0)>(t|0)?a:t;if((t|0)>(2147483647-s|0)){a=Qe(1)|0;ze(a|0,48,0)}a=t+s|0;o[A>>2]=a;i=On(i,a<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}t=o[r>>2]|0;if((t|0)<1)while(1){s=i+(t<<2)|0;if(s)o[s>>2]=0;if(!t)break;else t=t+1|0}o[r>>2]=1;a=e+16|0;o[a>>2]=0;a=e+12|0;o[a>>2]=0;l=n;return}function Jr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;n=l;l=l+16|0;r=n;i=e+16|0;a=o[i>>2]|0;o[i>>2]=a+1;o[(o[e>>2]|0)+(a<<2)>>2]=t;a=o[i>>2]|0;t=e+4|0;A=o[t>>2]|0;if((a|0)==(A|0)){o[i>>2]=0;a=0}s=e+12|0;if((o[s>>2]|0)!=(a|0)){l=n;return}Lr(r,(A*3|0)+1>>1);u=o[s>>2]|0;h=o[t>>2]|0;if((u|0)<(h|0)){a=o[e>>2]|0;c=o[r>>2]|0;h=0;while(1){A=h+1|0;o[c+(h<<2)>>2]=o[a+(u<<2)>>2];u=u+1|0;h=o[t>>2]|0;if((u|0)>=(h|0)){c=A;break}else h=A}}else c=0;A=o[e>>2]|0;if((o[i>>2]|0)>0){a=o[r>>2]|0;u=0;while(1){o[a+(c<<2)>>2]=o[A+(u<<2)>>2];u=u+1|0;if((u|0)>=(o[i>>2]|0))break;else c=c+1|0}h=o[t>>2]|0}o[s>>2]=0;o[i>>2]=h;if(!A)i=e+8|0;else{o[t>>2]=0;_n(A);o[e>>2]=0;i=e+8|0;o[i>>2]=0}o[e>>2]=o[r>>2];u=r+4|0;o[t>>2]=o[u>>2];h=r+8|0;o[i>>2]=o[h>>2];o[r>>2]=0;o[u>>2]=0;o[h>>2]=0;l=n;return}function Hr(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0;r=l;n=e+4|0;i=o[n>>2]|0;s=e+8|0;A=o[s>>2]|0;if((i|0)==(A|0)&(A|0)<(i+1|0)){A=(i>>1)+2&-2;A=(A|0)<2?2:A;if((A|0)>(2147483647-i|0)){A=Qe(1)|0;ze(A|0,48,0)}a=o[e>>2]|0;i=A+i|0;o[s>>2]=i;i=On(a,i<<2)|0;o[e>>2]=i;if((i|0)==0?(o[(Ye()|0)>>2]|0)==12:0){a=Qe(1)|0;ze(a|0,48,0)}}else i=o[e>>2]|0;a=o[n>>2]|0;o[n>>2]=a+1;n=i+(a<<2)|0;if(!n){l=r;return}o[n>>2]=o[t>>2];l=r;return}function qr(){var e=0,t=0;t=l;Ue(3864)|0;e=cn(936)|0;Cr(e);l=t;return e|0}function zr(e){e=e|0;var t=0;t=l;if(!e){l=t;return}ji[o[(o[e>>2]|0)+4>>2]&31](e);l=t;return}function Wr(){var e=0,t=0,r=0;e=l;l=l+16|0;t=e;r=cn(936)|0;Cr(r);o[964]=r;wr(r,1)|0;r=o[964]|0;n[t+0>>0]=n[3840]|0;mr(r,t,1)|0;l=e;return}function Vr(e){e=e|0;var t=0,r=0,i=0;t=l;l=l+16|0;r=t;if((o[962]|0)>=(e|0)){l=t;return}do{i=o[964]|0;n[r+0>>0]=n[3840]|0;mr(i,r,1)|0;i=(o[962]|0)+1|0;o[962]=i}while((i|0)<(e|0));l=t;return}function Xr(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;s=l;l=l+32|0;A=s+16|0;r=s+4|0;a=s;o[r>>2]=0;i=r+4|0;o[i>>2]=0;t=r+8|0;o[t>>2]=0;c=o[e>>2]|0;if(c)do{u=(c|0)<0?0-c|0:c;if((o[962]|0)<(u|0))do{h=o[964]|0;n[A+0>>0]=n[3840]|0;mr(h,A,1)|0;h=(o[962]|0)+1|0;o[962]=h}while((h|0)<(u|0));o[a>>2]=u<<1|c>>>31;sr(r,a);e=e+4|0;c=o[e>>2]|0}while((c|0)!=0);a=o[964]|0;A=a+628|0;sn(r,A);A=Br(a,A)|0;a=o[r>>2]|0;if(!a){l=s;return A|0}o[i>>2]=0;_n(a);o[r>>2]=0;o[t>>2]=0;l=s;return A|0}function Zr(){var e=0,t=0,r=0,i=0;t=l;l=l+16|0;e=t;r=o[964]|0;i=r+664|0;o[i+0>>2]=-1;o[i+4>>2]=-1;o[i+8>>2]=-1;o[i+12>>2]=-1;if(o[r+304>>2]|0)o[r+308>>2]=0;yr(e,r,1,0);l=t;return(n[e>>0]|0)==0|0}function $r(){return(o[(o[964]|0)+4>>2]|0)+1|0}function en(){return o[962]|0}function tn(e){e=e|0;var t=0,r=0,i=0,s=0,A=0,a=0;t=l;l=l+32|0;A=t+16|0;i=t+4|0;a=t;o[i>>2]=0;r=i+4|0;o[r>>2]=0;s=i+8|0;o[s>>2]=0;o[a>>2]=e<<1;sr(i,a);e=o[964]|0;a=e+664|0;o[a+0>>2]=-1;o[a+4>>2]=-1;o[a+8>>2]=-1;o[a+12>>2]=-1;sn(i,e+304|0);yr(A,e,1,0);e=(n[A>>0]|0)==0;A=o[i>>2]|0;if(!A){l=t;return e|0}o[r>>2]=0;_n(A);o[i>>2]=0;o[s>>2]=0;l=t;return e|0}function rn(e){e=e|0;var t=0,r=0,n=0;t=l;l=l+16|0;n=t;r=o[964]|0;o[n>>2]=e<<1|1;e=r+628|0;if(o[e>>2]|0)o[r+632>>2]=0;sr(e,n);Br(r,e)|0;l=t;return}function nn(){return o[(o[964]|0)+36>>2]|0}function on(){return o[(o[964]|0)+32>>2]|0}function sn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0;r=l;A=o[t>>2]|0;n=t+4|0;if(!A)a=o[n>>2]|0;else{o[n>>2]=0;a=0}n=e+4|0;i=o[n>>2]|0;s=t+4|0;if((a|0)<(i|0)){c=t+8|0;a=o[c>>2]|0;if((a|0)<(i|0)){h=i+1-a&-2;u=(a>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-a|0)){h=Qe(1)|0;ze(h|0,48,0)}h=u+a|0;o[c>>2]=h;A=On(A,h<<2)|0;o[t>>2]=A;if((A|0)==0?(o[(Ye()|0)>>2]|0)==12:0){h=Qe(1)|0;ze(h|0,48,0)}}a=o[s>>2]|0;e:do{if((a|0)<(i|0))while(1){A=A+(a<<2)|0;if(A)o[A>>2]=0;a=a+1|0;if((a|0)==(i|0))break e;A=o[t>>2]|0}}while(0);o[s>>2]=i;i=o[n>>2]|0}if((i|0)<=0){l=r;return}t=o[t>>2]|0;e=o[e>>2]|0;i=0;do{o[t+(i<<2)>>2]=o[e+(i<<2)>>2];i=i+1|0}while((i|0)<(o[n>>2]|0));l=r;return}function An(e,t){e=e|0;t=t|0;var r=0;r=l;l=l+16|0;o[r>>2]=t;t=o[E>>2]|0;Be(t|0,e|0,r|0)|0;qe(10,t|0)|0;Xe()}function an(){var e=0,t=0;e=l;l=l+16|0;if(!(Pe(4064,3)|0)){t=Le(o[1014]|0)|0;l=e;return t|0}else An(4072,e);return 0}function cn(e){e=e|0;var t=0,r=0;t=l;e=(e|0)==0?1:e;r=Un(e)|0;if(r){l=t;return r|0}while(1){r=dn()|0;if(!r){e=4;break}Ji[r&3]();r=Un(e)|0;if(r){e=5;break}}if((e|0)==4){r=Qe(4)|0;o[r>>2]=4248;ze(r|0,4296,12)}else if((e|0)==5){l=t;return r|0}return 0}function un(e){e=e|0;var t=0;t=l;_n(e);l=t;return}function ln(e){e=e|0;var t=0;t=l;un(e);l=t;return}function hn(e){e=e|0;return}function gn(e){e=e|0;return 4264}function fn(e){e=e|0;var t=0;t=l;l=l+16|0;Ji[e&3]();An(4312,t)}function pn(){var e=0,t=0;t=an()|0;if(((t|0)!=0?(e=o[t>>2]|0,(e|0)!=0):0)?(t=e+48|0,(o[t>>2]&-256|0)==1126902528?(o[t+4>>2]|0)==1129074247:0):0)fn(o[e+12>>2]|0);t=o[968]|0;o[968]=t+0;fn(t)}function dn(){var e=0;e=o[1102]|0;o[1102]=e+0;return e|0}function Cn(e){e=e|0;return}function En(e){e=e|0;return}function In(e){e=e|0;return}function mn(e){e=e|0;return}function yn(e){e=e|0;return}function wn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Bn(e){e=e|0;var t=0;t=l;un(e);l=t;return}function Qn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0,A=0;n=l;l=l+64|0;i=n;if((e|0)==(t|0)){A=1;l=n;return A|0}if(!t){A=0;l=n;return A|0}t=Sn(t,4504,4560,0)|0;if(!t){A=0;l=n;return A|0}A=i+0|0;s=A+56|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));o[i>>2]=t;o[i+8>>2]=e;o[i+12>>2]=-1;o[i+48>>2]=1;zi[o[(o[t>>2]|0)+28>>2]&3](t,i,o[r>>2]|0,1);if((o[i+24>>2]|0)!=1){A=0;l=n;return A|0}o[r>>2]=o[i+16>>2];A=1;l=n;return A|0}function vn(e,t,r,i){e=e|0;t=t|0;r=r|0;i=i|0;var s=0,A=0;e=l;s=t+16|0;A=o[s>>2]|0;if(!A){o[s>>2]=r;o[t+24>>2]=i;o[t+36>>2]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;o[t+24>>2]=2;n[t+54>>0]=1;l=e;return}r=t+24|0;if((o[r>>2]|0)!=2){l=e;return}o[r>>2]=i;l=e;return}function Dn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((o[t+8>>2]|0)!=(e|0)){l=i;return}vn(0,t,r,n);l=i;return}function bn(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;i=l;if((e|0)==(o[t+8>>2]|0)){vn(0,t,r,n);l=i;return}else{e=o[e+8>>2]|0;zi[o[(o[e>>2]|0)+28>>2]&3](e,t,r,n);l=i;return}}function Sn(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;var A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0;A=l;l=l+64|0;a=A;c=o[e>>2]|0;u=e+(o[c+-8>>2]|0)|0;c=o[c+-4>>2]|0;o[a>>2]=r;o[a+4>>2]=e;o[a+8>>2]=t;o[a+12>>2]=s;g=a+16|0;f=a+20|0;t=a+24|0;h=a+28|0;s=a+32|0;e=a+40|0;p=(c|0)==(r|0);d=g+0|0;r=d+36|0;do{o[d>>2]=0;d=d+4|0}while((d|0)<(r|0));i[g+36>>1]=0;n[g+38>>0]=0;if(p){o[a+48>>2]=1;Hi[o[(o[c>>2]|0)+20>>2]&3](c,a,u,u,1,0);d=(o[t>>2]|0)==1?u:0;l=A;return d|0}Oi[o[(o[c>>2]|0)+24>>2]&3](c,a,u,1,0);a=o[a+36>>2]|0;if(!a){d=(o[e>>2]|0)==1&(o[h>>2]|0)==1&(o[s>>2]|0)==1?o[f>>2]|0:0;l=A;return d|0}else if((a|0)==1){if((o[t>>2]|0)!=1?!((o[e>>2]|0)==0&(o[h>>2]|0)==1&(o[s>>2]|0)==1):0){d=0;l=A;return d|0}d=o[g>>2]|0;l=A;return d|0}else{d=0;l=A;return d|0}return 0}function kn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;e=l;n[t+53>>0]=1;if((o[t+4>>2]|0)!=(i|0)){l=e;return}n[t+52>>0]=1;i=t+16|0;A=o[i>>2]|0;if(!A){o[i>>2]=r;o[t+24>>2]=s;o[t+36>>2]=1;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}if((A|0)!=(r|0)){A=t+36|0;o[A>>2]=(o[A>>2]|0)+1;n[t+54>>0]=1;l=e;return}r=t+24|0;i=o[r>>2]|0;if((i|0)==2)o[r>>2]=s;else s=i;if(!((s|0)==1?(o[t+48>>2]|0)==1:0)){l=e;return}n[t+54>>0]=1;l=e;return}function xn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0,a=0,c=0,u=0,h=0;A=l;if((e|0)==(o[t+8>>2]|0)){if((o[t+4>>2]|0)!=(r|0)){l=A;return}a=t+28|0;if((o[a>>2]|0)==1){l=A;return}o[a>>2]=i;l=A;return}if((e|0)!=(o[t>>2]|0)){u=o[e+8>>2]|0;Oi[o[(o[u>>2]|0)+24>>2]&3](u,t,r,i,s);l=A;return}if((o[t+16>>2]|0)!=(r|0)?(c=t+20|0,(o[c>>2]|0)!=(r|0)):0){o[t+32>>2]=i;i=t+44|0;if((o[i>>2]|0)==4){l=A;return}u=t+52|0;n[u>>0]=0;h=t+53|0;n[h>>0]=0;e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,r,1,s);if(n[h>>0]|0){if(!(n[u>>0]|0)){e=1;a=13}}else{e=0;a=13}do{if((a|0)==13){o[c>>2]=r;h=t+40|0;o[h>>2]=(o[h>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0){n[t+54>>0]=1;if(e)break}else a=16;if((a|0)==16?e:0)break;o[i>>2]=4;l=A;return}}while(0);o[i>>2]=3;l=A;return}if((i|0)!=1){l=A;return}o[t+32>>2]=1;l=A;return}function Fn(e,t,r,i,s){e=e|0;t=t|0;r=r|0;i=i|0;s=s|0;var A=0;s=l;if((o[t+8>>2]|0)==(e|0)){if((o[t+4>>2]|0)!=(r|0)){l=s;return}t=t+28|0;if((o[t>>2]|0)==1){l=s;return}o[t>>2]=i;l=s;return}if((o[t>>2]|0)!=(e|0)){l=s;return}if((o[t+16>>2]|0)!=(r|0)?(A=t+20|0,(o[A>>2]|0)!=(r|0)):0){o[t+32>>2]=i;o[A>>2]=r;e=t+40|0;o[e>>2]=(o[e>>2]|0)+1;if((o[t+36>>2]|0)==1?(o[t+24>>2]|0)==2:0)n[t+54>>0]=1;o[t+44>>2]=4;l=s;return}if((i|0)!=1){l=s;return}o[t+32>>2]=1;l=s;return}function Mn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;var A=0;A=l;if((e|0)==(o[t+8>>2]|0)){kn(0,t,r,n,i);l=A;return}else{e=o[e+8>>2]|0;Hi[o[(o[e>>2]|0)+20>>2]&3](e,t,r,n,i,s);l=A;return}}function Nn(e,t,r,n,i,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;s=s|0;s=l;if((o[t+8>>2]|0)!=(e|0)){l=s;return}kn(0,t,r,n,i);l=s;return}function Rn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0;n=l;l=l+16|0;i=n;o[i>>2]=o[r>>2];e=_i[o[(o[e>>2]|0)+16>>2]&1](e,t,i)|0;t=e&1;if(!e){l=n;return t|0}o[r>>2]=o[i>>2];l=n;return t|0}function Kn(e){e=e|0;var t=0;t=l;if(!e)e=0;else e=(Sn(e,4504,4672,0)|0)!=0;l=t;return e&1|0}function Ln(){var e=0,t=0,r=0,n=0,i=0;e=l;l=l+16|0;t=e;e=e+12|0;r=an()|0;if(!r)An(4040,t);r=o[r>>2]|0;if(!r)An(4040,t);i=r+48|0;n=o[i>>2]|0;i=o[i+4>>2]|0;if(!((n&-256|0)==1126902528&(i|0)==1129074247)){o[t>>2]=o[970];An(4e3,t)}if((n|0)==1126902529&(i|0)==1129074247)n=o[r+44>>2]|0;else n=r+80|0;o[e>>2]=n;i=o[r>>2]|0;r=o[i+4>>2]|0;if(_i[o[(o[4432>>2]|0)+16>>2]&1](4432,i,e)|0){i=o[e>>2]|0;n=o[970]|0;i=Gi[o[(o[i>>2]|0)+8>>2]&1](i)|0;o[t>>2]=n;o[t+4>>2]=r;o[t+8>>2]=i;An(3904,t)}else{o[t>>2]=o[970];o[t+4>>2]=r;An(3952,t)}}function Tn(){var e=0;e=l;l=l+16|0;if(!(Oe(4056,20)|0)){l=e;return}else An(4128,e)}function Pn(e){e=e|0;var t=0;t=l;l=l+16|0;_n(e);if(!(Ge(o[1014]|0,0)|0)){l=t;return}else An(4184,t)}function Un(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0,B=0,Q=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0,M=0,N=0;t=l;do{if(e>>>0<245){if(e>>>0<11)e=16;else e=e+11&-8;B=e>>>3;p=o[1206]|0;w=p>>>B;if(w&3){s=(w&1^1)+B|0;i=s<<1;r=4864+(i<<2)|0;i=4864+(i+2<<2)|0;A=o[i>>2]|0;a=A+8|0;n=o[a>>2]|0;do{if((r|0)!=(n|0)){if(n>>>0<(o[1210]|0)>>>0)Xe();c=n+12|0;if((o[c>>2]|0)==(A|0)){o[c>>2]=r;o[i>>2]=n;break}else Xe()}else o[1206]=p&~(1<<s)}while(0);N=s<<3;o[A+4>>2]=N|3;N=A+(N|4)|0;o[N>>2]=o[N>>2]|1;N=a;l=t;return N|0}y=o[1208]|0;if(e>>>0>y>>>0){if(w){A=2<<B;A=w<<B&(A|0-A);A=(A&0-A)+-1|0;r=A>>>12&16;A=A>>>r;a=A>>>5&8;A=A>>>a;i=A>>>2&4;A=A>>>i;s=A>>>1&2;A=A>>>s;n=A>>>1&1;n=(a|r|i|s|n)+(A>>>n)|0;A=n<<1;s=4864+(A<<2)|0;A=4864+(A+2<<2)|0;i=o[A>>2]|0;r=i+8|0;a=o[r>>2]|0;do{if((s|0)!=(a|0)){if(a>>>0<(o[1210]|0)>>>0)Xe();c=a+12|0;if((o[c>>2]|0)==(i|0)){o[c>>2]=s;o[A>>2]=a;x=o[1208]|0;break}else Xe()}else{o[1206]=p&~(1<<n);x=y}}while(0);N=n<<3;n=N-e|0;o[i+4>>2]=e|3;s=i+e|0;o[i+(e|4)>>2]=n|1;o[i+N>>2]=n;if(x){i=o[1211]|0;u=x>>>3;a=u<<1;A=4864+(a<<2)|0;c=o[1206]|0;u=1<<u;if(c&u){a=4864+(a+2<<2)|0;c=o[a>>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{k=a;S=c}}else{o[1206]=c|u;k=4864+(a+2<<2)|0;S=A}o[k>>2]=i;o[S+12>>2]=i;o[i+8>>2]=S;o[i+12>>2]=A}o[1208]=n;o[1211]=s;N=r;l=t;return N|0}p=o[1207]|0;if(p){r=(p&0-p)+-1|0;M=r>>>12&16;r=r>>>M;F=r>>>5&8;r=r>>>F;N=r>>>2&4;r=r>>>N;i=r>>>1&2;r=r>>>i;n=r>>>1&1;n=o[5128+((F|M|N|i|n)+(r>>>n)<<2)>>2]|0;r=(o[n+4>>2]&-8)-e|0;i=n;while(1){s=o[i+16>>2]|0;if(!s){s=o[i+20>>2]|0;if(!s)break}i=(o[s+4>>2]&-8)-e|0;N=i>>>0<r>>>0;r=N?i:r;i=s;n=N?s:n}A=o[1210]|0;if(n>>>0<A>>>0)Xe();i=n+e|0;if(n>>>0>=i>>>0)Xe();s=o[n+24>>2]|0;c=o[n+12>>2]|0;do{if((c|0)==(n|0)){c=n+20|0;a=o[c>>2]|0;if(!a){c=n+16|0;a=o[c>>2]|0;if(!a){b=0;break}}while(1){u=a+20|0;h=o[u>>2]|0;if(h){a=h;c=u;continue}u=a+16|0;h=o[u>>2]|0;if(!h)break;else{a=h;c=u}}if(c>>>0<A>>>0)Xe();else{o[c>>2]=0;b=a;break}}else{a=o[n+8>>2]|0;if(a>>>0<A>>>0)Xe();A=a+12|0;if((o[A>>2]|0)!=(n|0))Xe();u=c+8|0;if((o[u>>2]|0)==(n|0)){o[A>>2]=c;o[u>>2]=a;b=c;break}else Xe()}}while(0);do{if(s){a=o[n+28>>2]|0;A=5128+(a<<2)|0;if((n|0)==(o[A>>2]|0)){o[A>>2]=b;if(!b){o[1207]=o[1207]&~(1<<a);break}}else{if(s>>>0<(o[1210]|0)>>>0)Xe();A=s+16|0;if((o[A>>2]|0)==(n|0))o[A>>2]=b;else o[s+20>>2]=b;if(!b)break}A=o[1210]|0;if(b>>>0<A>>>0)Xe();o[b+24>>2]=s;s=o[n+16>>2]|0;do{if(s)if(s>>>0<A>>>0)Xe();else{o[b+16>>2]=s;o[s+24>>2]=b;break}}while(0);s=o[n+20>>2]|0;if(s)if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[b+20>>2]=s;o[s+24>>2]=b;break}}}while(0);if(r>>>0<16){N=r+e|0;o[n+4>>2]=N|3;N=n+(N+4)|0;o[N>>2]=o[N>>2]|1}else{o[n+4>>2]=e|3;o[n+(e|4)>>2]=r|1;o[n+(r+e)>>2]=r;A=o[1208]|0;if(A){s=o[1211]|0;c=A>>>3;u=c<<1;A=4864+(u<<2)|0;a=o[1206]|0;c=1<<c;if(a&c){a=4864+(u+2<<2)|0;c=o[a>>2]|0;if(c>>>0<(o[1210]|0)>>>0)Xe();else{D=a;v=c}}else{o[1206]=a|c;D=4864+(u+2<<2)|0;v=A}o[D>>2]=s;o[v+12>>2]=s;o[s+8>>2]=v;o[s+12>>2]=A}o[1208]=r;o[1211]=i}N=n+8|0;l=t;return N|0}}}else if(e>>>0<=4294967231){v=e+11|0;e=v&-8;b=o[1207]|0;if(b){D=0-e|0;v=v>>>8;if(v)if(e>>>0>16777215)S=31;else{M=(v+1048320|0)>>>16&8;N=v<<M;F=(N+520192|0)>>>16&4;N=N<<F;S=(N+245760|0)>>>16&2;S=14-(F|M|S)+(N<<S>>>15)|0;S=e>>>(S+7|0)&1|S<<1}else S=0;k=o[5128+(S<<2)>>2]|0;e:do{if(!k){F=0;v=0}else{if((S|0)==31)v=0;else v=25-(S>>>1)|0;F=0;x=e<<v;v=0;while(1){M=o[k+4>>2]&-8;N=M-e|0;if(N>>>0<D>>>0)if((M|0)==(e|0)){D=N;F=k;v=k;break e}else{D=N;v=k}N=o[k+20>>2]|0;k=o[k+(x>>>31<<2)+16>>2]|0;F=(N|0)==0|(N|0)==(k|0)?F:N;if(!k)break;else x=x<<1}}}while(0);if((F|0)==0&(v|0)==0){N=2<<S;b=b&(N|0-N);if(!b)break;N=(b&0-b)+-1|0;k=N>>>12&16;N=N>>>k;S=N>>>5&8;N=N>>>S;x=N>>>2&4;N=N>>>x;M=N>>>1&2;N=N>>>M;F=N>>>1&1;F=o[5128+((S|k|x|M|F)+(N>>>F)<<2)>>2]|0}if(F)while(1){N=(o[F+4>>2]&-8)-e|0;b=N>>>0<D>>>0;D=b?N:D;v=b?F:v;b=o[F+16>>2]|0;if(b){F=b;continue}F=o[F+20>>2]|0;if(!F)break}if((v|0)!=0?D>>>0<((o[1208]|0)-e|0)>>>0:0){i=o[1210]|0;if(v>>>0<i>>>0)Xe();r=v+e|0;if(v>>>0>=r>>>0)Xe();n=o[v+24>>2]|0;s=o[v+12>>2]|0;do{if((s|0)==(v|0)){A=v+20|0;s=o[A>>2]|0;if(!s){A=v+16|0;s=o[A>>2]|0;if(!s){B=0;break}}while(1){a=s+20|0;c=o[a>>2]|0;if(c){s=c;A=a;continue}a=s+16|0;c=o[a>>2]|0;if(!c)break;else{s=c;A=a}}if(A>>>0<i>>>0)Xe();else{o[A>>2]=0;B=s;break}}else{A=o[v+8>>2]|0;if(A>>>0<i>>>0)Xe();a=A+12|0;if((o[a>>2]|0)!=(v|0))Xe();i=s+8|0;if((o[i>>2]|0)==(v|0)){o[a>>2]=s;o[i>>2]=A;B=s;break}else Xe()}}while(0);do{if(n){i=o[v+28>>2]|0;s=5128+(i<<2)|0;if((v|0)==(o[s>>2]|0)){o[s>>2]=B;if(!B){o[1207]=o[1207]&~(1<<i);break}}else{if(n>>>0<(o[1210]|0)>>>0)Xe();i=n+16|0;if((o[i>>2]|0)==(v|0))o[i>>2]=B;else o[n+20>>2]=B;if(!B)break}i=o[1210]|0;if(B>>>0<i>>>0)Xe();o[B+24>>2]=n;n=o[v+16>>2]|0;do{if(n)if(n>>>0<i>>>0)Xe();else{o[B+16>>2]=n;o[n+24>>2]=B;break}}while(0);n=o[v+20>>2]|0;if(n)if(n>>>0<(o[1210]|0)>>>0)Xe();else{o[B+20>>2]=n;o[n+24>>2]=B;break}}}while(0);e:do{if(D>>>0>=16){o[v+4>>2]=e|3;o[v+(e|4)>>2]=D|1;o[v+(D+e)>>2]=D;i=D>>>3;if(D>>>0<256){A=i<<1;n=4864+(A<<2)|0;s=o[1206]|0;i=1<<i;do{if(!(s&i)){o[1206]=s|i;w=4864+(A+2<<2)|0;y=n}else{i=4864+(A+2<<2)|0;s=o[i>>2]|0;if(s>>>0>=(o[1210]|0)>>>0){w=i;y=s;break}Xe()}}while(0);o[w>>2]=r;o[y+12>>2]=r;o[v+(e+8)>>2]=y;o[v+(e+12)>>2]=n;break}n=D>>>8;if(n)if(D>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=D>>>(n+7|0)&1|n<<1}else n=0;i=5128+(n<<2)|0;o[v+(e+28)>>2]=n;o[v+(e+20)>>2]=0;o[v+(e+16)>>2]=0;s=o[1207]|0;A=1<<n;if(!(s&A)){o[1207]=s|A;o[i>>2]=r;o[v+(e+24)>>2]=i;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break}A=o[i>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[A+4>>2]&-8|0)!=(D|0)){n=D<<n;while(1){s=A+(n>>>31<<2)+16|0;i=o[s>>2]|0;if(!i)break;if((o[i+4>>2]&-8|0)==(D|0)){p=i;break t}else{n=n<<1;A=i}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=r;o[v+(e+24)>>2]=A;o[v+(e+12)>>2]=r;o[v+(e+8)>>2]=r;break e}}else p=A}while(0);i=p+8|0;n=o[i>>2]|0;N=o[1210]|0;if(p>>>0>=N>>>0&n>>>0>=N>>>0){o[n+12>>2]=r;o[i>>2]=r;o[v+(e+8)>>2]=n;o[v+(e+12)>>2]=p;o[v+(e+24)>>2]=0;break}else Xe()}else{N=D+e|0;o[v+4>>2]=N|3;N=v+(N+4)|0;o[N>>2]=o[N>>2]|1}}while(0);N=v+8|0;l=t;return N|0}}}else e=-1}while(0);p=o[1208]|0;if(p>>>0>=e>>>0){n=p-e|0;r=o[1211]|0;if(n>>>0>15){o[1211]=r+e;o[1208]=n;o[r+(e+4)>>2]=n|1;o[r+p>>2]=n;o[r+4>>2]=e|3}else{o[1208]=0;o[1211]=0;o[r+4>>2]=p|3;N=r+(p+4)|0;o[N>>2]=o[N>>2]|1}N=r+8|0;l=t;return N|0}p=o[1209]|0;if(p>>>0>e>>>0){M=p-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}do{if(!(o[1324]|0)){p=Ke(30)|0;if(!(p+-1&p)){o[1326]=p;o[1325]=p;o[1327]=-1;o[1328]=-1;o[1329]=0;o[1317]=0;o[1324]=($e(0)|0)&-16^1431655768;break}else Xe()}}while(0);B=e+48|0;p=o[1326]|0;w=e+47|0;D=p+w|0;p=0-p|0;y=D&p;if(y>>>0<=e>>>0){N=0;l=t;return N|0}v=o[1316]|0;if((v|0)!=0?(M=o[1314]|0,N=M+y|0,N>>>0<=M>>>0|N>>>0>v>>>0):0){N=0;l=t;return N|0}e:do{if(!(o[1317]&4)){b=o[1212]|0;t:do{if(b){v=5272|0;while(1){S=o[v>>2]|0;if(S>>>0<=b>>>0?(Q=v+4|0,(S+(o[Q>>2]|0)|0)>>>0>b>>>0):0)break;v=o[v+8>>2]|0;if(!v){f=181;break t}}if(v){D=D-(o[1209]|0)&p;if(D>>>0<2147483647){p=ke(D|0)|0;if((p|0)==((o[v>>2]|0)+(o[Q>>2]|0)|0)){v=D;f=190}else{v=D;f=191}}else v=0}else f=181}else f=181}while(0);do{if((f|0)==181){Q=ke(0)|0;if((Q|0)!=(-1|0)){D=Q;v=o[1325]|0;p=v+-1|0;if(!(p&D))v=y;else v=y-D+(p+D&0-v)|0;p=o[1314]|0;D=p+v|0;if(v>>>0>e>>>0&v>>>0<2147483647){N=o[1316]|0;if((N|0)!=0?D>>>0<=p>>>0|D>>>0>N>>>0:0){v=0;break}p=ke(v|0)|0;if((p|0)==(Q|0)){p=Q;f=190}else f=191}else v=0}else v=0}}while(0);t:do{if((f|0)==190){if((p|0)!=(-1|0)){d=v;f=201;break e}}else if((f|0)==191){f=0-v|0;do{if((p|0)!=(-1|0)&v>>>0<2147483647&B>>>0>v>>>0?(m=o[1326]|0,m=w-v+m&0-m,m>>>0<2147483647):0)if((ke(m|0)|0)==(-1|0)){ke(f|0)|0;v=0;break t}else{v=m+v|0;break}}while(0);if((p|0)==(-1|0))v=0;else{d=v;f=201;break e}}}while(0);o[1317]=o[1317]|4;f=198}else{v=0;f=198}}while(0);if((((f|0)==198?y>>>0<2147483647:0)?(I=ke(y|0)|0,E=ke(0)|0,(I|0)!=(-1|0)&(E|0)!=(-1|0)&I>>>0<E>>>0):0)?(C=E-I|0,d=C>>>0>(e+40|0)>>>0,d):0){p=I;d=d?C:v;f=201}if((f|0)==201){C=(o[1314]|0)+d|0;o[1314]=C;if(C>>>0>(o[1315]|0)>>>0)o[1315]=C;C=o[1212]|0;e:do{if(C){I=5272|0;while(1){E=o[I>>2]|0;y=I+4|0;w=o[y>>2]|0;if((p|0)==(E+w|0)){f=213;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if(((f|0)==213?(o[I+12>>2]&8|0)==0:0)?C>>>0>=E>>>0&C>>>0<p>>>0:0){o[y>>2]=w+d;r=(o[1209]|0)+d|0;n=C+8|0;if(!(n&7))n=0;else n=0-n&7;N=r-n|0;o[1212]=C+n;o[1209]=N;o[C+(n+4)>>2]=N|1;o[C+(r+4)>>2]=40;o[1213]=o[1328];break}E=o[1210]|0;if(p>>>0<E>>>0){o[1210]=p;E=p}y=p+d|0;I=5272|0;while(1){if((o[I>>2]|0)==(y|0)){f=223;break}m=o[I+8>>2]|0;if(!m)break;else I=m}if((f|0)==223?(o[I+12>>2]&8|0)==0:0){o[I>>2]=p;A=I+4|0;o[A>>2]=(o[A>>2]|0)+d;A=p+8|0;if(!(A&7))A=0;else A=0-A&7;a=p+(d+8)|0;if(!(a&7))g=0;else g=0-a&7;f=p+(g+d)|0;c=A+e|0;a=p+c|0;h=f-(p+A)-e|0;o[p+(A+4)>>2]=e|3;t:do{if((f|0)!=(C|0)){if((f|0)==(o[1211]|0)){N=(o[1208]|0)+h|0;o[1208]=N;o[1211]=a;o[p+(c+4)>>2]=N|1;o[p+(N+c)>>2]=N;break}C=d+4|0;m=o[p+(C+g)>>2]|0;if((m&3|0)==1){e=m&-8;I=m>>>3;r:do{if(m>>>0>=256){u=o[p+((g|24)+d)>>2]|0;I=o[p+(d+12+g)>>2]|0;do{if((I|0)==(f|0)){y=g|16;m=p+(C+y)|0;I=o[m>>2]|0;if(!I){m=p+(y+d)|0;I=o[m>>2]|0;if(!I){s=0;break}}while(1){w=I+20|0;y=o[w>>2]|0;if(y){I=y;m=w;continue}w=I+16|0;y=o[w>>2]|0;if(!y)break;else{I=y;m=w}}if(m>>>0<E>>>0)Xe();else{o[m>>2]=0;s=I;break}}else{m=o[p+((g|8)+d)>>2]|0;if(m>>>0<E>>>0)Xe();y=m+12|0;if((o[y>>2]|0)!=(f|0))Xe();E=I+8|0;if((o[E>>2]|0)==(f|0)){o[y>>2]=I;o[E>>2]=m;s=I;break}else Xe()}}while(0);if(!u)break;E=o[p+(d+28+g)>>2]|0;I=5128+(E<<2)|0;do{if((f|0)!=(o[I>>2]|0)){if(u>>>0<(o[1210]|0)>>>0)Xe();E=u+16|0;if((o[E>>2]|0)==(f|0))o[E>>2]=s;else o[u+20>>2]=s;if(!s)break r}else{o[I>>2]=s;if(s)break;o[1207]=o[1207]&~(1<<E);break r}}while(0);f=o[1210]|0;if(s>>>0<f>>>0)Xe();o[s+24>>2]=u;E=g|16;u=o[p+(E+d)>>2]|0;do{if(u)if(u>>>0<f>>>0)Xe();else{o[s+16>>2]=u;o[u+24>>2]=s;break}}while(0);u=o[p+(C+E)>>2]|0;if(!u)break;if(u>>>0<(o[1210]|0)>>>0)Xe();else{o[s+20>>2]=u;o[u+24>>2]=s;break}}else{s=o[p+((g|8)+d)>>2]|0;C=o[p+(d+12+g)>>2]|0;m=4864+(I<<1<<2)|0;do{if((s|0)!=(m|0)){if(s>>>0<E>>>0)Xe();if((o[s+12>>2]|0)==(f|0))break;Xe()}}while(0);if((C|0)==(s|0)){o[1206]=o[1206]&~(1<<I);break}do{if((C|0)==(m|0))u=C+8|0;else{if(C>>>0<E>>>0)Xe();E=C+8|0;if((o[E>>2]|0)==(f|0)){u=E;break}Xe()}}while(0);o[s+12>>2]=C;o[u>>2]=s}}while(0);f=p+((e|g)+d)|0;h=e+h|0}s=f+4|0;o[s>>2]=o[s>>2]&-2;o[p+(c+4)>>2]=h|1;o[p+(h+c)>>2]=h;s=h>>>3;if(h>>>0<256){u=s<<1;r=4864+(u<<2)|0;h=o[1206]|0;s=1<<s;do{if(!(h&s)){o[1206]=h|s;i=4864+(u+2<<2)|0;n=r}else{u=4864+(u+2<<2)|0;s=o[u>>2]|0;if(s>>>0>=(o[1210]|0)>>>0){i=u;n=s;break}Xe()}}while(0);o[i>>2]=a;o[n+12>>2]=a;o[p+(c+8)>>2]=n;o[p+(c+12)>>2]=r;break}n=h>>>8;do{if(!n)n=0;else{if(h>>>0>16777215){n=31;break}M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=h>>>(n+7|0)&1|n<<1}}while(0);u=5128+(n<<2)|0;o[p+(c+28)>>2]=n;o[p+(c+20)>>2]=0;o[p+(c+16)>>2]=0;s=o[1207]|0;i=1<<n;if(!(s&i)){o[1207]=s|i;o[u>>2]=a;o[p+(c+24)>>2]=u;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break}i=o[u>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;r:do{if((o[i+4>>2]&-8|0)!=(h|0)){n=h<<n;while(1){s=i+(n>>>31<<2)+16|0;u=o[s>>2]|0;if(!u)break;if((o[u+4>>2]&-8|0)==(h|0)){r=u;break r}else{n=n<<1;i=u}}if(s>>>0<(o[1210]|0)>>>0)Xe();else{o[s>>2]=a;o[p+(c+24)>>2]=i;o[p+(c+12)>>2]=a;o[p+(c+8)>>2]=a;break t}}else r=i}while(0);n=r+8|0;i=o[n>>2]|0;N=o[1210]|0;if(r>>>0>=N>>>0&i>>>0>=N>>>0){o[i+12>>2]=a;o[n>>2]=a;o[p+(c+8)>>2]=i;o[p+(c+12)>>2]=r;o[p+(c+24)>>2]=0;break}else Xe()}else{N=(o[1209]|0)+h|0;o[1209]=N;o[1212]=a;o[p+(c+4)>>2]=N|1}}while(0);N=p+(A|8)|0;l=t;return N|0}n=5272|0;while(1){r=o[n>>2]|0;if(r>>>0<=C>>>0?(g=o[n+4>>2]|0,h=r+g|0,h>>>0>C>>>0):0)break;n=o[n+8>>2]|0}n=r+(g+-39)|0;if(!(n&7))n=0;else n=0-n&7;r=r+(g+-47+n)|0;r=r>>>0<(C+16|0)>>>0?C:r;n=r+8|0;i=p+8|0;if(!(i&7))i=0;else i=0-i&7;N=d+-40-i|0;o[1212]=p+i;o[1209]=N;o[p+(i+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328];o[r+4>>2]=27;o[n+0>>2]=o[1318];o[n+4>>2]=o[1319];o[n+8>>2]=o[1320];o[n+12>>2]=o[1321];o[1318]=p;o[1319]=d;o[1321]=0;o[1320]=n;n=r+28|0;o[n>>2]=7;if((r+32|0)>>>0<h>>>0)do{N=n;n=n+4|0;o[n>>2]=7}while((N+8|0)>>>0<h>>>0);if((r|0)!=(C|0)){r=r-C|0;n=C+(r+4)|0;o[n>>2]=o[n>>2]&-2;o[C+4>>2]=r|1;o[C+r>>2]=r;n=r>>>3;if(r>>>0<256){i=n<<1;r=4864+(i<<2)|0;s=o[1206]|0;n=1<<n;do{if(!(s&n)){o[1206]=s|n;c=4864+(i+2<<2)|0;a=r}else{i=4864+(i+2<<2)|0;n=o[i>>2]|0;if(n>>>0>=(o[1210]|0)>>>0){c=i;a=n;break}Xe()}}while(0);o[c>>2]=C;o[a+12>>2]=C;o[C+8>>2]=a;o[C+12>>2]=r;break}n=r>>>8;if(n)if(r>>>0>16777215)n=31;else{M=(n+1048320|0)>>>16&8;N=n<<M;F=(N+520192|0)>>>16&4;N=N<<F;n=(N+245760|0)>>>16&2;n=14-(F|M|n)+(N<<n>>>15)|0;n=r>>>(n+7|0)&1|n<<1}else n=0;a=5128+(n<<2)|0;o[C+28>>2]=n;o[C+20>>2]=0;o[C+16>>2]=0;i=o[1207]|0;s=1<<n;if(!(i&s)){o[1207]=i|s;o[a>>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break}i=o[a>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;t:do{if((o[i+4>>2]&-8|0)!=(r|0)){n=r<<n;a=i;while(1){i=a+(n>>>31<<2)+16|0;s=o[i>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(r|0)){A=s;break t}else{n=n<<1;a=s}}if(i>>>0<(o[1210]|0)>>>0)Xe();else{o[i>>2]=C;o[C+24>>2]=a;o[C+12>>2]=C;o[C+8>>2]=C;break e}}else A=i}while(0);n=A+8|0;r=o[n>>2]|0;N=o[1210]|0;if(A>>>0>=N>>>0&r>>>0>=N>>>0){o[r+12>>2]=C;o[n>>2]=C;o[C+8>>2]=r;o[C+12>>2]=A;o[C+24>>2]=0;break}else Xe()}}else{N=o[1210]|0;if((N|0)==0|p>>>0<N>>>0)o[1210]=p;o[1318]=p;o[1319]=d;o[1321]=0;o[1215]=o[1324];o[1214]=-1;r=0;do{N=r<<1;M=4864+(N<<2)|0;o[4864+(N+3<<2)>>2]=M;o[4864+(N+2<<2)>>2]=M;r=r+1|0}while((r|0)!=32);r=p+8|0;if(!(r&7))r=0;else r=0-r&7;N=d+-40-r|0;o[1212]=p+r;o[1209]=N;o[p+(r+4)>>2]=N|1;o[p+(d+-36)>>2]=40;o[1213]=o[1328]}}while(0);r=o[1209]|0;if(r>>>0>e>>>0){M=r-e|0;o[1209]=M;N=o[1212]|0;o[1212]=N+e;o[N+(e+4)>>2]=M|1;o[N+4>>2]=e|3;N=N+8|0;l=t;return N|0}}o[(Ye()|0)>>2]=12;N=0;l=t;return N|0}function _n(e){e=e|0;var t=0,r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0,w=0;t=l;if(!e){l=t;return}d=e+-8|0;C=o[1210]|0;if(d>>>0<C>>>0)Xe();g=o[e+-4>>2]|0;h=g&3;if((h|0)==1)Xe();a=g&-8;A=e+(a+-8)|0;do{if(!(g&1)){m=o[d>>2]|0;if(!h){l=t;return}d=-8-m|0;g=e+d|0;h=m+a|0;if(g>>>0<C>>>0)Xe();if((g|0)==(o[1211]|0)){n=e+(a+-4)|0;f=o[n>>2]|0;if((f&3|0)!=3){n=g;f=h;break}o[1208]=h;o[n>>2]=f&-2;o[e+(d+4)>>2]=h|1;o[A>>2]=h;l=t;return}I=m>>>3;if(m>>>0<256){n=o[e+(d+8)>>2]|0;f=o[e+(d+12)>>2]|0;p=4864+(I<<1<<2)|0;if((n|0)!=(p|0)){if(n>>>0<C>>>0)Xe();if((o[n+12>>2]|0)!=(g|0))Xe()}if((f|0)==(n|0)){o[1206]=o[1206]&~(1<<I);n=g;f=h;break}if((f|0)!=(p|0)){if(f>>>0<C>>>0)Xe();p=f+8|0;if((o[p>>2]|0)==(g|0))E=p;else Xe()}else E=f+8|0;o[n+12>>2]=f;o[E>>2]=n;n=g;f=h;break}E=o[e+(d+24)>>2]|0;I=o[e+(d+12)>>2]|0;do{if((I|0)==(g|0)){m=e+(d+20)|0;I=o[m>>2]|0;if(!I){m=e+(d+16)|0;I=o[m>>2]|0;if(!I){p=0;break}}while(1){y=I+20|0;w=o[y>>2]|0;if(w){I=w;m=y;continue}y=I+16|0;w=o[y>>2]|0;if(!w)break;else{I=w;m=y}}if(m>>>0<C>>>0)Xe();else{o[m>>2]=0;p=I;break}}else{m=o[e+(d+8)>>2]|0;if(m>>>0<C>>>0)Xe();C=m+12|0;if((o[C>>2]|0)!=(g|0))Xe();y=I+8|0;if((o[y>>2]|0)==(g|0)){o[C>>2]=I;o[y>>2]=m;p=I;break}else Xe()}}while(0);if(E){C=o[e+(d+28)>>2]|0;I=5128+(C<<2)|0;if((g|0)==(o[I>>2]|0)){o[I>>2]=p;if(!p){o[1207]=o[1207]&~(1<<C);n=g;f=h;break}}else{if(E>>>0<(o[1210]|0)>>>0)Xe();C=E+16|0;if((o[C>>2]|0)==(g|0))o[C>>2]=p;else o[E+20>>2]=p;if(!p){n=g;f=h;break}}C=o[1210]|0;if(p>>>0<C>>>0)Xe();o[p+24>>2]=E;E=o[e+(d+16)>>2]|0;do{if(E)if(E>>>0<C>>>0)Xe();else{o[p+16>>2]=E;o[E+24>>2]=p;break}}while(0);d=o[e+(d+20)>>2]|0;if(d)if(d>>>0<(o[1210]|0)>>>0)Xe();else{o[p+20>>2]=d;o[d+24>>2]=p;n=g;f=h;break}else{n=g;f=h}}else{n=g;f=h}}else{n=d;f=a}}while(0);if(n>>>0>=A>>>0)Xe();h=e+(a+-4)|0;g=o[h>>2]|0;if(!(g&1))Xe();if(!(g&2)){if((A|0)==(o[1212]|0)){w=(o[1209]|0)+f|0;o[1209]=w;o[1212]=n;o[n+4>>2]=w|1;if((n|0)!=(o[1211]|0)){l=t;return}o[1211]=0;o[1208]=0;l=t;return}if((A|0)==(o[1211]|0)){w=(o[1208]|0)+f|0;o[1208]=w;o[1211]=n;o[n+4>>2]=w|1;o[n+w>>2]=w;l=t;return}f=(g&-8)+f|0;h=g>>>3;do{if(g>>>0>=256){u=o[e+(a+16)>>2]|0;h=o[e+(a|4)>>2]|0;do{if((h|0)==(A|0)){g=e+(a+12)|0;h=o[g>>2]|0;if(!h){g=e+(a+8)|0;h=o[g>>2]|0;if(!h){c=0;break}}while(1){d=h+20|0;p=o[d>>2]|0;if(p){h=p;g=d;continue}p=h+16|0;d=o[p>>2]|0;if(!d)break;else{h=d;g=p}}if(g>>>0<(o[1210]|0)>>>0)Xe();else{o[g>>2]=0;c=h;break}}else{g=o[e+a>>2]|0;if(g>>>0<(o[1210]|0)>>>0)Xe();p=g+12|0;if((o[p>>2]|0)!=(A|0))Xe();d=h+8|0;if((o[d>>2]|0)==(A|0)){o[p>>2]=h;o[d>>2]=g;c=h;break}else Xe()}}while(0);if(u){h=o[e+(a+20)>>2]|0;g=5128+(h<<2)|0;if((A|0)==(o[g>>2]|0)){o[g>>2]=c;if(!c){o[1207]=o[1207]&~(1<<h);break}}else{if(u>>>0<(o[1210]|0)>>>0)Xe();h=u+16|0;if((o[h>>2]|0)==(A|0))o[h>>2]=c;else o[u+20>>2]=c;if(!c)break}A=o[1210]|0;if(c>>>0<A>>>0)Xe();o[c+24>>2]=u;u=o[e+(a+8)>>2]|0;do{if(u)if(u>>>0<A>>>0)Xe();else{o[c+16>>2]=u;o[u+24>>2]=c;break}}while(0);A=o[e+(a+12)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=A;o[A+24>>2]=c;break}}}else{c=o[e+a>>2]|0;a=o[e+(a|4)>>2]|0;e=4864+(h<<1<<2)|0;if((c|0)!=(e|0)){if(c>>>0<(o[1210]|0)>>>0)Xe();if((o[c+12>>2]|0)!=(A|0))Xe()}if((a|0)==(c|0)){o[1206]=o[1206]&~(1<<h);break}if((a|0)!=(e|0)){if(a>>>0<(o[1210]|0)>>>0)Xe();e=a+8|0;if((o[e>>2]|0)==(A|0))u=e;else Xe()}else u=a+8|0;o[c+12>>2]=a;o[u>>2]=c}}while(0);o[n+4>>2]=f|1;o[n+f>>2]=f;if((n|0)==(o[1211]|0)){o[1208]=f;l=t;return}}else{o[h>>2]=g&-2;o[n+4>>2]=f|1;o[n+f>>2]=f}A=f>>>3;if(f>>>0<256){a=A<<1;r=4864+(a<<2)|0;c=o[1206]|0;A=1<<A;if(c&A){a=4864+(a+2<<2)|0;A=o[a>>2]|0;if(A>>>0<(o[1210]|0)>>>0)Xe();else{i=a;s=A}}else{o[1206]=c|A;i=4864+(a+2<<2)|0;s=r}o[i>>2]=n;o[s+12>>2]=n;o[n+8>>2]=s;o[n+12>>2]=r;l=t;return}i=f>>>8;if(i)if(f>>>0>16777215)i=31;else{y=(i+1048320|0)>>>16&8;w=i<<y;m=(w+520192|0)>>>16&4;w=w<<m;i=(w+245760|0)>>>16&2;i=14-(m|y|i)+(w<<i>>>15)|0;i=f>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;a=o[1207]|0;A=1<<i;e:do{if(a&A){s=o[s>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;t:do{if((o[s+4>>2]&-8|0)!=(f|0)){i=f<<i;while(1){a=s+(i>>>31<<2)+16|0;A=o[a>>2]|0;if(!A)break;if((o[A+4>>2]&-8|0)==(f|0)){r=A;break t}else{i=i<<1;s=A}}if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[a>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;break e}}else r=s}while(0);s=r+8|0;i=o[s>>2]|0;w=o[1210]|0;if(r>>>0>=w>>>0&i>>>0>=w>>>0){o[i+12>>2]=n;o[s>>2]=n;o[n+8>>2]=i;o[n+12>>2]=r;o[n+24>>2]=0;break}else Xe()}else{o[1207]=a|A;o[s>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n}}while(0);w=(o[1214]|0)+-1|0;o[1214]=w;if(!w)r=5280|0;else{l=t;return}while(1){r=o[r>>2]|0;if(!r)break;else r=r+8|0}o[1214]=-1;l=t;return}function On(e,t){e=e|0;t=t|0;var r=0,n=0,i=0;r=l;do{if(e){if(t>>>0>4294967231){o[(Ye()|0)>>2]=12;n=0;break}if(t>>>0<11)n=16;else n=t+11&-8;n=ei(e+-8|0,n)|0;if(n){n=n+8|0;break}n=Un(t)|0;if(!n)n=0;else{i=o[e+-4>>2]|0;i=(i&-8)-((i&3|0)==0?8:4)|0;ui(n|0,e|0,(i>>>0<t>>>0?i:t)|0)|0;_n(e)}}else n=Un(t)|0}while(0);l=r;return n|0}function jn(e){e=e|0;if((e|0)==32)e=1;else e=(e+-9|0)>>>0<5;return e&1|0}function Yn(e,t,r,i,A){e=e|0;t=t|0;r=r|0;i=i|0;A=A|0;var a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0;a=l;if(t>>>0>36){o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}c=e+4|0;u=e+100|0;do{h=o[c>>2]|0;if(h>>>0<(o[u>>2]|0)>>>0){o[c>>2]=h+1;f=s[h>>0]|0}else f=Hn(e)|0}while((jn(f)|0)!=0);do{if((f|0)==43|(f|0)==45){h=((f|0)==45)<<31>>31;g=o[c>>2]|0;if(g>>>0<(o[u>>2]|0)>>>0){o[c>>2]=g+1;f=s[g>>0]|0;break}else{f=Hn(e)|0;break}}else h=0}while(0);g=(t|0)==0;do{if((t&-17|0)==0&(f|0)==48){f=o[c>>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;f=s[f>>0]|0}else f=Hn(e)|0;if((f|32|0)!=120)if(g){t=8;r=46;break}else{r=32;break}t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;if((s[f+5321>>0]|0)>15){i=(o[u>>2]|0)==0;if(!i)o[c>>2]=(o[c>>2]|0)+-1;if(!r){Jn(e,0);E=0;I=0;R=E;l=a;return I|0}if(i){E=0;I=0;R=E;l=a;return I|0}o[c>>2]=(o[c>>2]|0)+-1;E=0;I=0;R=E;l=a;return I|0}else{t=16;r=46}}else{t=g?10:t;if((s[f+5321>>0]|0)>>>0<t>>>0)r=32;else{if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;Jn(e,0);o[(Ye()|0)>>2]=22;E=0;I=0;R=E;l=a;return I|0}}}while(0);if((r|0)==32)if((t|0)==10){t=f+-48|0;if(t>>>0<10){g=0;do{g=(g*10|0)+t|0;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&g>>>0<429496729);p=0}else{g=0;p=0}t=f+-48|0;if(t>>>0<10){do{d=Ci(g|0,p|0,10,0)|0;C=R;E=((t|0)<0)<<31>>31;I=~E;if(C>>>0>I>>>0|(C|0)==(I|0)&d>>>0>~t>>>0)break;g=ai(d|0,C|0,t|0,E|0)|0;p=R;t=o[c>>2]|0;if(t>>>0<(o[u>>2]|0)>>>0){o[c>>2]=t+1;f=s[t>>0]|0}else f=Hn(e)|0;t=f+-48|0}while(t>>>0<10&(p>>>0<429496729|(p|0)==429496729&g>>>0<2576980378));if(t>>>0<=9){t=10;r=72}}}else r=46;e:do{if((r|0)==46){if(!(t+-1&t)){r=n[5584+((t*23|0)>>>5&7)>>0]|0;C=n[f+5321>>0]|0;g=C&255;if(g>>>0<t>>>0){f=g;g=0;do{g=f|g<<r;f=o[c>>2]|0;if(f>>>0<(o[u>>2]|0)>>>0){o[c>>2]=f+1;E=s[f>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;f=C&255}while(f>>>0<t>>>0&g>>>0<134217728);p=0}else{p=0;g=0;E=f}f=ci(-1,-1,r|0)|0;d=R;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break}while(1){g=si(g|0,p|0,r|0)|0;p=R;g=C&255|g;C=o[c>>2]|0;if(C>>>0<(o[u>>2]|0)>>>0){o[c>>2]=C+1;E=s[C>>0]|0}else E=Hn(e)|0;C=n[E+5321>>0]|0;if((C&255)>>>0>=t>>>0|(p>>>0>d>>>0|(p|0)==(d|0)&g>>>0>f>>>0)){f=E;r=72;break e}}}C=n[f+5321>>0]|0;r=C&255;if(r>>>0<t>>>0){g=0;do{g=r+(ie(g,t)|0)|0;r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;d=s[r>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;r=C&255}while(r>>>0<t>>>0&g>>>0<119304647);p=0}else{g=0;p=0;d=f}if((C&255)>>>0<t>>>0){r=Ei(-1,-1,t|0,0)|0;f=R;while(1){if(p>>>0>f>>>0|(p|0)==(f|0)&g>>>0>r>>>0){f=d;r=72;break e}E=Ci(g|0,p|0,t|0,0)|0;I=R;C=C&255;if(I>>>0>4294967295|(I|0)==-1&E>>>0>~C>>>0){f=d;r=72;break e}g=ai(C|0,0,E|0,I|0)|0;p=R;d=o[c>>2]|0;if(d>>>0<(o[u>>2]|0)>>>0){o[c>>2]=d+1;d=s[d>>0]|0}else d=Hn(e)|0;C=n[d+5321>>0]|0;if((C&255)>>>0>=t>>>0){f=d;r=72;break}}}else{f=d;r=72}}}while(0);if((r|0)==72)if((s[f+5321>>0]|0)>>>0<t>>>0){do{r=o[c>>2]|0;if(r>>>0<(o[u>>2]|0)>>>0){o[c>>2]=r+1;r=s[r>>0]|0}else r=Hn(e)|0}while((s[r+5321>>0]|0)>>>0<t>>>0);o[(Ye()|0)>>2]=34;p=A;g=i}if(o[u>>2]|0)o[c>>2]=(o[c>>2]|0)+-1;if(!(p>>>0<A>>>0|(p|0)==(A|0)&g>>>0<i>>>0)){if(!((i&1|0)!=0|0!=0|(h|0)!=0)){o[(Ye()|0)>>2]=34;I=ai(i|0,A|0,-1,-1)|0;E=R;R=E;l=a;return I|0}if(p>>>0>A>>>0|(p|0)==(A|0)&g>>>0>i>>>0){o[(Ye()|0)>>2]=34;E=A;I=i;R=E;l=a;return I|0}}I=((h|0)<0)<<31>>31;I=ii(g^h|0,p^I|0,h|0,I|0)|0;E=R;R=E;l=a;return I|0}function Gn(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0.0,C=0,E=0,I=0,m=0,y=0,w=0,v=0,D=0,b=0,S=0,k=0,x=0,F=0.0,M=0,N=0.0,K=0.0,L=0.0,T=0.0;i=l;l=l+512|0;c=i;if(!t){t=24;a=-149}else if((t|0)==2){t=53;a=-1074}else if((t|0)==1){t=53;a=-1074}else{K=0.0;l=i;return+K}g=e+4|0;f=e+100|0;do{A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;m=s[A>>0]|0}else m=Hn(e)|0}while((jn(m)|0)!=0);do{if((m|0)==43|(m|0)==45){A=1-(((m|0)==45&1)<<1)|0;h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}else A=1}while(0);C=0;do{if((m|32|0)!=(n[5600+C>>0]|0))break;do{if(C>>>0<7){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;m=s[h>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<8);do{if((C|0)==3)p=23;else if((C|0)!=8){h=(r|0)!=0;if(C>>>0>3&h)if((C|0)==8)break;else{p=23;break}e:do{if(!C){C=0;do{if((m|32|0)!=(n[5616+C>>0]|0))break e;do{if(C>>>0<2){E=o[g>>2]|0;if(E>>>0<(o[f>>2]|0)>>>0){o[g>>2]=E+1;m=s[E>>0]|0;break}else{m=Hn(e)|0;break}}}while(0);C=C+1|0}while(C>>>0<3)}}while(0);if(!C){do{if((m|0)==48){h=o[g>>2]|0;if(h>>>0<(o[f>>2]|0)>>>0){o[g>>2]=h+1;h=s[h>>0]|0}else h=Hn(e)|0;if((h|32|0)!=120){if(!(o[f>>2]|0)){m=48;break}o[g>>2]=(o[g>>2]|0)+-1;m=48;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=0}else{v=Hn(e)|0;y=0}while(1){if((v|0)==46){p=70;break}else if((v|0)!=48){c=0;h=0;E=0;C=0;m=0;w=0;F=1.0;I=0;d=0.0;break}c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0;y=1;continue}else{v=Hn(e)|0;y=1;continue}}if((p|0)==70){c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;if((v|0)==48){E=0;C=0;do{c=o[g>>2]|0;if(c>>>0<(o[f>>2]|0)>>>0){o[g>>2]=c+1;v=s[c>>0]|0}else v=Hn(e)|0;E=ai(E|0,C|0,-1,-1)|0;C=R}while((v|0)==48);c=0;h=0;y=1;m=1;w=0;F=1.0;I=0;d=0.0}else{c=0;h=0;E=0;C=0;m=1;w=0;F=1.0;I=0;d=0.0}}e:while(1){b=v+-48|0;do{if(b>>>0>=10){D=v|32;S=(v|0)==46;if(!((D+-97|0)>>>0<6|S))break e;if(S)if(!m){E=h;C=c;m=1;break}else{v=46;break e}else{b=(v|0)>57?D+-87|0:b;p=83;break}}else p=83}while(0);if((p|0)==83){p=0;do{if(!((c|0)<0|(c|0)==0&h>>>0<8)){if((c|0)<0|(c|0)==0&h>>>0<14){K=F*.0625;N=K;d=d+K*+(b|0);break}if((b|0)==0|(w|0)!=0)N=F;else{w=1;N=F;d=d+F*.5}}else{N=F;I=b+(I<<4)|0}}while(0);h=ai(h|0,c|0,1,0)|0;c=R;y=1;F=N}v=o[g>>2]|0;if(v>>>0<(o[f>>2]|0)>>>0){o[g>>2]=v+1;v=s[v>>0]|0;continue}else{v=Hn(e)|0;continue}}if(!y){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(r){if(!t?(u=o[g>>2]|0,o[g>>2]=u+-1,(m|0)!=0):0)o[g>>2]=u+-2}else Jn(e,0);K=+(A|0)*0.0;l=i;return+K}p=(m|0)==0;u=p?h:E;p=p?c:C;if((c|0)<0|(c|0)==0&h>>>0<8)do{I=I<<4;h=ai(h|0,c|0,1,0)|0;c=R}while((c|0)<0|(c|0)==0&h>>>0<8);do{if((v|32|0)==112){h=ri(e,r)|0;c=R;if((h|0)==0&(c|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){h=0;c=0;break}o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0;break}}else if(!(o[f>>2]|0)){h=0;c=0}else{o[g>>2]=(o[g>>2]|0)+-1;h=0;c=0}}while(0);u=si(u|0,p|0,2)|0;u=ai(u|0,R|0,-32,-1)|0;c=ai(u|0,R|0,h|0,c|0)|0;u=R;if(!I){K=+(A|0)*0.0;l=i;return+K}if((u|0)>0|(u|0)==0&c>>>0>(0-a|0)>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((u|0)<(x|0)|(u|0)==(x|0)&c>>>0<M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if((I|0)>-1)do{I=I<<1;if(!(d>=.5))F=d;else{F=d+-1.0;I=I|1}d=d+F;c=ai(c|0,u|0,-1,-1)|0;u=R}while((I|0)>-1);a=ii(32,0,a|0,((a|0)<0)<<31>>31|0)|0;a=ai(c|0,u|0,a|0,R|0)|0;M=R;if(0>(M|0)|0==(M|0)&t>>>0>a>>>0)if((a|0)<0){t=0;p=126}else{t=a;p=124}else p=124;if((p|0)==124)if((t|0)<53)p=126;else{a=t;F=+(A|0);N=0.0}if((p|0)==126){N=+(A|0);a=t;F=N;N=+Ve(+ +qn(1.0,84-t|0),+N)}M=(a|0)<32&d!=0.0&(I&1|0)==0;d=F*(M?0.0:d)+(N+F*+(((M&1)+I|0)>>>0))-N;if(!(d!=0.0))o[(Ye()|0)>>2]=34;K=+zn(d,c);l=i;return+K}}while(0);h=a+t|0;u=0-h|0;b=0;while(1){if((m|0)==46){p=137;break}else if((m|0)!=48){k=0;S=0;D=0;break}C=o[g>>2]|0;if(C>>>0<(o[f>>2]|0)>>>0){o[g>>2]=C+1;m=s[C>>0]|0;b=1;continue}else{m=Hn(e)|0;b=1;continue}}if((p|0)==137){p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0;if((m|0)==48){k=0;S=0;do{k=ai(k|0,S|0,-1,-1)|0;S=R;p=o[g>>2]|0;if(p>>>0<(o[f>>2]|0)>>>0){o[g>>2]=p+1;m=s[p>>0]|0}else m=Hn(e)|0}while((m|0)==48);b=1;D=1}else{k=0;S=0;D=1}}o[c>>2]=0;v=m+-48|0;x=(m|0)==46;e:do{if(v>>>0<10|x){p=c+496|0;w=0;y=0;I=0;E=0;C=0;t:while(1){do{if(x)if(!D){k=w;S=y;D=1}else break t;else{x=ai(w|0,y|0,1,0)|0;y=R;M=(m|0)!=48;if((E|0)>=125){if(!M){w=x;break}o[p>>2]=o[p>>2]|1;w=x;break}w=c+(E<<2)|0;if(I)v=m+-48+((o[w>>2]|0)*10|0)|0;o[w>>2]=v;I=I+1|0;v=(I|0)==9;w=x;b=1;I=v?0:I;E=(v&1)+E|0;C=M?x:C}}while(0);m=o[g>>2]|0;if(m>>>0<(o[f>>2]|0)>>>0){o[g>>2]=m+1;m=s[m>>0]|0}else m=Hn(e)|0;v=m+-48|0;x=(m|0)==46;if(!(v>>>0<10|x)){p=160;break e}}v=(b|0)!=0;p=168}else{w=0;y=0;I=0;E=0;C=0;p=160}}while(0);do{if((p|0)==160){v=(D|0)==0;k=v?w:k;S=v?y:S;v=(b|0)!=0;if(!(v&(m|32|0)==101))if((m|0)>-1){p=168;break}else{p=170;break}v=ri(e,r)|0;m=R;do{if((v|0)==0&(m|0)==-2147483648)if(!r){Jn(e,0);K=0.0;l=i;return+K}else{if(!(o[f>>2]|0)){v=0;m=0;break}o[g>>2]=(o[g>>2]|0)+-1;v=0;m=0;break}}while(0);e=ai(v|0,m|0,k|0,S|0)|0;S=R}}while(0);if((p|0)==168)if(o[f>>2]|0){o[g>>2]=(o[g>>2]|0)+-1;if(v)e=k;else p=171}else p=170;if((p|0)==170)if(v)e=k;else p=171;if((p|0)==171){o[(Ye()|0)>>2]=22;Jn(e,0);K=0.0;l=i;return+K}g=o[c>>2]|0;if(!g){K=+(A|0)*0.0;l=i;return+K}if((e|0)==(w|0)&(S|0)==(y|0)&((y|0)<0|(y|0)==0&w>>>0<10)?t>>>0>30|(g>>>t|0)==0:0){K=+(A|0)*+(g>>>0);l=i;return+K}M=(a|0)/-2|0;x=((M|0)<0)<<31>>31;if((S|0)>(x|0)|(S|0)==(x|0)&e>>>0>M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*1.7976931348623157e+308*1.7976931348623157e+308;l=i;return+K}M=a+-106|0;x=((M|0)<0)<<31>>31;if((S|0)<(x|0)|(S|0)==(x|0)&e>>>0<M>>>0){o[(Ye()|0)>>2]=34;K=+(A|0)*2.2250738585072014e-308*2.2250738585072014e-308;l=i;return+K}if(I){if((I|0)<9){g=c+(E<<2)|0;f=o[g>>2]|0;do{f=f*10|0;I=I+1|0}while((I|0)!=9);o[g>>2]=f}E=E+1|0}if((C|0)<9?(C|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){K=+(A|0)*+((o[c>>2]|0)>>>0);l=i;return+K}if((e|0)<9){K=+(A|0)*+((o[c>>2]|0)>>>0)/+(o[5632+(8-e<<2)>>2]|0);l=i;return+K}M=t+27+(ie(e,-3)|0)|0;g=o[c>>2]|0;if((M|0)>30|(g>>>M|0)==0){K=+(A|0)*+(g>>>0)*+(o[5632+(e+-10<<2)>>2]|0);l=i;return+K}}g=(e|0)%9|0;if(!g){g=0;f=0}else{r=(e|0)>-1?g:g+9|0;p=o[5632+(8-r<<2)>>2]|0;if(E){C=1e9/(p|0)|0;g=0;f=0;I=0;do{k=c+(I<<2)|0;x=o[k>>2]|0;M=((x>>>0)/(p>>>0)|0)+f|0;o[k>>2]=M;f=ie((x>>>0)%(p>>>0)|0,C)|0;x=I;I=I+1|0;if((x|0)==(g|0)&(M|0)==0){g=I&127;e=e+-9|0}}while((I|0)!=(E|0));if(f){o[c+(E<<2)>>2]=f;E=E+1|0}}else{g=0;E=0}f=0;e=9-r+e|0}e:while(1){r=c+(g<<2)|0;if((e|0)<18){do{C=0;r=E+127|0;while(1){r=r&127;p=c+(r<<2)|0;I=si(o[p>>2]|0,0,29)|0;I=ai(I|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&I>>>0>1e9){M=Ei(I|0,C|0,1e9,0)|0;I=Ii(I|0,C|0,1e9,0)|0;C=M}else C=0;o[p>>2]=I;p=(r|0)==(g|0);if(!((r|0)!=(E+127&127|0)|p))E=(I|0)==0?r:E;if(p)break;else r=r+-1|0}f=f+-29|0}while((C|0)==0)}else{if((e|0)!=18)break;do{if((o[r>>2]|0)>>>0>=9007199){e=18;break e}C=0;p=E+127|0;while(1){p=p&127;I=c+(p<<2)|0;m=si(o[I>>2]|0,0,29)|0;m=ai(m|0,R|0,C|0,0)|0;C=R;if(C>>>0>0|(C|0)==0&m>>>0>1e9){M=Ei(m|0,C|0,1e9,0)|0;m=Ii(m|0,C|0,1e9,0)|0;C=M}else C=0;o[I>>2]=m;I=(p|0)==(g|0);if(!((p|0)!=(E+127&127|0)|I))E=(m|0)==0?p:E;if(I)break;else p=p+-1|0}f=f+-29|0}while((C|0)==0)}g=g+127&127;if((g|0)==(E|0)){M=E+127&127;E=c+((E+126&127)<<2)|0;o[E>>2]=o[E>>2]|o[c+(M<<2)>>2];E=M}o[c+(g<<2)>>2]=C;e=e+9|0}e:while(1){r=E+1&127;p=c+((E+127&127)<<2)|0;while(1){I=(e|0)==18;C=(e|0)>27?9:1;while(1){m=0;while(1){y=m+g&127;if((y|0)==(E|0)){m=2;break}w=o[c+(y<<2)>>2]|0;v=o[5624+(m<<2)>>2]|0;if(w>>>0<v>>>0){m=2;break}y=m+1|0;if(w>>>0>v>>>0)break;if((y|0)<2)m=y;else{m=y;break}}if((m|0)==2&I)break e;f=C+f|0;if((g|0)==(E|0))g=E;else break}I=(1<<C)+-1|0;m=1e9>>>C;y=g;w=0;do{k=c+(g<<2)|0;x=o[k>>2]|0;M=(x>>>C)+w|0;o[k>>2]=M;w=ie(x&I,m)|0;M=(g|0)==(y|0)&(M|0)==0;g=g+1&127;e=M?e+-9|0:e;y=M?g:y}while((g|0)!=(E|0));if(!w){g=y;continue}if((r|0)!=(y|0))break;o[p>>2]=o[p>>2]|1;g=y}o[c+(E<<2)>>2]=w;g=y;E=r}e=g&127;if((e|0)==(E|0)){o[c+(r+-1<<2)>>2]=0;E=r}F=+((o[c+(e<<2)>>2]|0)>>>0);e=g+1&127;if((e|0)==(E|0)){E=E+1&127;o[c+(E+-1<<2)>>2]=0}d=+(A|0);N=d*(F*1.0e9+ +((o[c+(e<<2)>>2]|0)>>>0));A=f+53|0;a=A-a|0;if((a|0)<(t|0))if((a|0)<0){t=0;e=1;p=244}else{t=a;e=1;p=243}else{e=0;p=243}if((p|0)==243)if((t|0)<53)p=244;else{F=0.0;K=0.0}if((p|0)==244){T=+Ve(+ +qn(1.0,105-t|0),+N);L=+ot(+N,+ +qn(1.0,53-t|0));F=T;K=L;N=T+(N-L)}r=g+2&127;do{if((r|0)!=(E|0)){c=o[c+(r<<2)>>2]|0;do{if(c>>>0>=5e8){if(c>>>0>5e8){K=d*.75+K;break}if((g+3&127|0)==(E|0)){K=d*.5+K;break}else{K=d*.75+K;break}}else{if((c|0)==0?(g+3&127|0)==(E|0):0)break;K=d*.25+K}}while(0);if((53-t|0)<=1)break;if(+ot(+K,1.0)!=0.0)break;K=K+1.0}}while(0);d=N+K-F;do{if((A&2147483647|0)>(-2-h|0)){if(+J(+d)>=9007199254740992.0){e=(e|0)!=0&(t|0)==(a|0)?0:e;f=f+1|0;d=d*.5}if((f+50|0)<=(u|0)?!((e|0)!=0&K!=0.0):0)break;o[(Ye()|0)>>2]=34}}while(0);T=+zn(d,f);l=i;return+T}else if((C|0)==3){t=o[g>>2]|0;if(t>>>0<(o[f>>2]|0)>>>0){o[g>>2]=t+1;t=s[t>>0]|0}else t=Hn(e)|0;if((t|0)==40)t=1;else{if(!(o[f>>2]|0)){T=B;l=i;return+T}o[g>>2]=(o[g>>2]|0)+-1;T=B;l=i;return+T}while(1){A=o[g>>2]|0;if(A>>>0<(o[f>>2]|0)>>>0){o[g>>2]=A+1;A=s[A>>0]|0}else A=Hn(e)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A+-97|0)>>>0<26|(A|0)==95):0)break;t=t+1|0}if((A|0)==41){T=B;l=i;return+T}A=(o[f>>2]|0)==0;if(!A)o[g>>2]=(o[g>>2]|0)+-1;if(!h){o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}if((t|0)==0|A){T=B;l=i;return+T}do{t=t+-1|0;o[g>>2]=(o[g>>2]|0)+-1}while((t|0)!=0);d=B;l=i;return+d}else{if(o[f>>2]|0)o[g>>2]=(o[g>>2]|0)+-1;o[(Ye()|0)>>2]=22;Jn(e,0);T=0.0;l=i;return+T}}}while(0);if((p|0)==23){t=(o[f>>2]|0)==0;if(!t)o[g>>2]=(o[g>>2]|0)+-1;if(!(C>>>0<4|(r|0)==0|t))do{o[g>>2]=(o[g>>2]|0)+-1;C=C+-1|0}while(C>>>0>3)}T=+(A|0)*Q;l=i;return+T}function Jn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0;r=l;o[e+104>>2]=t;i=o[e+8>>2]|0;n=o[e+4>>2]|0;s=i-n|0;o[e+108>>2]=s;if((t|0)!=0&(s|0)>(t|0)){o[e+100>>2]=n+t;l=r;return}else{o[e+100>>2]=i;l=r;return}}function Hn(e){e=e|0;var t=0,r=0,i=0,A=0,a=0,c=0,u=0;r=l;a=e+104|0;u=o[a>>2]|0;if(!((u|0)!=0?(o[e+108>>2]|0)>=(u|0):0))c=3;if((c|0)==3?(t=Vn(e)|0,(t|0)>=0):0){c=o[a>>2]|0;a=o[e+8>>2]|0;if((c|0)!=0?(i=o[e+4>>2]|0,A=c-(o[e+108>>2]|0)+-1|0,(a-i|0)>(A|0)):0)o[e+100>>2]=i+A;else o[e+100>>2]=a;i=o[e+4>>2]|0;if(a){u=e+108|0;o[u>>2]=a+1-i+(o[u>>2]|0)}e=i+-1|0;if((s[e>>0]|0|0)==(t|0)){u=t;l=r;return u|0}n[e>>0]=t;u=t;l=r;return u|0}o[e+100>>2]=0;u=-1;l=r;return u|0}function qn(e,t){e=+e;t=t|0;var r=0,n=0;r=l;if((t|0)>1023){e=e*8.98846567431158e+307;n=t+-1023|0;if((n|0)>1023){t=t+-2046|0;t=(t|0)>1023?1023:t;e=e*8.98846567431158e+307}else t=n}else if((t|0)<-1022){e=e*2.2250738585072014e-308;n=t+1022|0;if((n|0)<-1022){t=t+2044|0;t=(t|0)<-1022?-1022:t;e=e*2.2250738585072014e-308}else t=n}t=si(t+1023|0,0,52)|0;n=R;o[g>>2]=t;o[g+4>>2]=n;e=e*+u[g>>3];l=r;return+e}function zn(e,t){e=+e;t=t|0;var r=0;r=l;e=+qn(e,t);l=r;return+e}function Wn(e){e=e|0;var t=0,r=0,i=0;r=l;i=e+74|0;t=n[i>>0]|0;n[i>>0]=t+255|t;i=e+20|0;t=e+44|0;if((o[i>>2]|0)>>>0>(o[t>>2]|0)>>>0)_i[o[e+36>>2]&1](e,0,0)|0;o[e+16>>2]=0;o[e+28>>2]=0;o[i>>2]=0;i=o[e>>2]|0;if(!(i&20)){i=o[t>>2]|0;o[e+8>>2]=i;o[e+4>>2]=i;i=0;l=r;return i|0}if(!(i&4)){i=-1;l=r;return i|0}o[e>>2]=i|32;i=-1;l=r;return i|0}function Vn(e){e=e|0;var t=0,r=0;t=l;l=l+16|0;r=t;if((o[e+8>>2]|0)==0?(Wn(e)|0)!=0:0)e=-1;else if((_i[o[e+32>>2]&1](e,r,1)|0)==1)e=s[r>>0]|0;else e=-1;l=t;return e|0}function Xn(e,t){e=e|0;t=t|0;var r=0,n=0,i=0.0,s=0,A=0;r=l;l=l+112|0;n=r;A=n+0|0;s=A+112|0;do{o[A>>2]=0;A=A+4|0}while((A|0)<(s|0));s=n+4|0;o[s>>2]=e;A=n+8|0;o[A>>2]=-1;o[n+44>>2]=e;o[n+76>>2]=-1;Jn(n,0);i=+Gn(n,1,1);n=(o[s>>2]|0)-(o[A>>2]|0)+(o[n+108>>2]|0)|0;if(!t){l=r;return+i}if(n)e=e+n|0;o[t>>2]=e;l=r;return+i}function Zn(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,i=0,s=0;n=l;l=l+112|0;s=n;o[s>>2]=0;i=s+4|0;o[i>>2]=e;o[s+44>>2]=e;if((e|0)<0)o[s+8>>2]=-1;else o[s+8>>2]=e+2147483647;o[s+76>>2]=-1;Jn(s,0);r=Yn(s,r,1,-2147483648,0)|0;if(!t){l=n;return r|0}o[t>>2]=e+((o[i>>2]|0)+(o[s+108>>2]|0)-(o[s+8>>2]|0));l=n;return r|0}function $n(e,t){e=e|0;t=t|0;var r=0,i=0,o=0;r=l;o=n[e>>0]|0;i=n[t>>0]|0;if(o<<24>>24==0?1:o<<24>>24!=i<<24>>24)t=o;else{do{e=e+1|0;t=t+1|0;o=n[e>>0]|0;i=n[t>>0]|0}while(!(o<<24>>24==0?1:o<<24>>24!=i<<24>>24));t=o}l=r;return(t&255)-(i&255)|0}function ei(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0;r=l;i=e+4|0;n=o[i>>2]|0;u=n&-8;a=e+u|0;h=o[1210]|0;A=n&3;if(!((A|0)!=1&e>>>0>=h>>>0&e>>>0<a>>>0))Xe();s=e+(u|4)|0;p=o[s>>2]|0;if(!(p&1))Xe();if(!A){if(t>>>0<256){C=0;l=r;return C|0}if(u>>>0>=(t+4|0)>>>0?(u-t|0)>>>0<=o[1326]<<1>>>0:0){C=e;l=r;return C|0}C=0;l=r;return C|0}if(u>>>0>=t>>>0){A=u-t|0;if(A>>>0<=15){C=e;l=r;return C|0}o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;o[s>>2]=o[s>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}if((a|0)==(o[1212]|0)){s=(o[1209]|0)+u|0;if(s>>>0<=t>>>0){C=0;l=r;return C|0}C=s-t|0;o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=C|1;o[1212]=e+t;o[1209]=C;C=e;l=r;return C|0}if((a|0)==(o[1211]|0)){A=(o[1208]|0)+u|0;if(A>>>0<t>>>0){C=0;l=r;return C|0}s=A-t|0;if(s>>>0>15){o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=s|1;o[e+A>>2]=s;n=e+(A+4)|0;o[n>>2]=o[n>>2]&-2;n=e+t|0}else{o[i>>2]=n&1|A|2;n=e+(A+4)|0;o[n>>2]=o[n>>2]|1;n=0;s=0}o[1208]=s;o[1211]=n;C=e;l=r;return C|0}if(p&2){C=0;l=r;return C|0}s=(p&-8)+u|0;if(s>>>0<t>>>0){C=0;l=r;return C|0}A=s-t|0;f=p>>>3;do{if(p>>>0>=256){g=o[e+(u+24)>>2]|0;f=o[e+(u+12)>>2]|0;do{if((f|0)==(a|0)){p=e+(u+20)|0;f=o[p>>2]|0;if(!f){p=e+(u+16)|0;f=o[p>>2]|0;if(!f){c=0;break}}while(1){C=f+20|0;d=o[C>>2]|0;if(d){f=d;p=C;continue}d=f+16|0;C=o[d>>2]|0;if(!C)break;else{f=C;p=d}}if(p>>>0<h>>>0)Xe();else{o[p>>2]=0;c=f;break}}else{p=o[e+(u+8)>>2]|0;if(p>>>0<h>>>0)Xe();h=p+12|0;if((o[h>>2]|0)!=(a|0))Xe();d=f+8|0;if((o[d>>2]|0)==(a|0)){o[h>>2]=f;o[d>>2]=p;c=f;break}else Xe()}}while(0);if(g){h=o[e+(u+28)>>2]|0;f=5128+(h<<2)|0;if((a|0)==(o[f>>2]|0)){o[f>>2]=c;if(!c){o[1207]=o[1207]&~(1<<h);break}}else{if(g>>>0<(o[1210]|0)>>>0)Xe();h=g+16|0;if((o[h>>2]|0)==(a|0))o[h>>2]=c;else o[g+20>>2]=c;if(!c)break}a=o[1210]|0;if(c>>>0<a>>>0)Xe();o[c+24>>2]=g;h=o[e+(u+16)>>2]|0;do{if(h)if(h>>>0<a>>>0)Xe();else{o[c+16>>2]=h;o[h+24>>2]=c;break}}while(0);a=o[e+(u+20)>>2]|0;if(a)if(a>>>0<(o[1210]|0)>>>0)Xe();else{o[c+20>>2]=a;o[a+24>>2]=c;break}}}else{c=o[e+(u+8)>>2]|0;u=o[e+(u+12)>>2]|0;p=4864+(f<<1<<2)|0;if((c|0)!=(p|0)){if(c>>>0<h>>>0)Xe();if((o[c+12>>2]|0)!=(a|0))Xe()}if((u|0)==(c|0)){o[1206]=o[1206]&~(1<<f);break}if((u|0)!=(p|0)){if(u>>>0<h>>>0)Xe();h=u+8|0;if((o[h>>2]|0)==(a|0))g=h;else Xe()}else g=u+8|0;o[c+12>>2]=u;o[g>>2]=c}}while(0);if(A>>>0<16){o[i>>2]=s|n&1|2;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;C=e;l=r;return C|0}else{o[i>>2]=n&1|t|2;o[e+(t+4)>>2]=A|3;C=e+(s|4)|0;o[C>>2]=o[C>>2]|1;ti(e+t|0,A);C=e;l=r;return C|0}return 0}function ti(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,s=0,A=0,a=0,c=0,u=0,h=0,g=0,f=0,p=0,d=0,C=0,E=0,I=0,m=0,y=0;r=l;A=e+t|0;u=o[e+4>>2]|0;do{if(!(u&1)){p=o[e>>2]|0;if(!(u&3)){l=r;return}u=e+(0-p)|0;h=p+t|0;C=o[1210]|0;if(u>>>0<C>>>0)Xe();if((u|0)==(o[1211]|0)){n=e+(t+4)|0;g=o[n>>2]|0;if((g&3|0)!=3){n=u;g=h;break}o[1208]=h;o[n>>2]=g&-2;o[e+(4-p)>>2]=h|1;o[A>>2]=h;l=r;return}E=p>>>3;if(p>>>0<256){n=o[e+(8-p)>>2]|0;g=o[e+(12-p)>>2]|0;f=4864+(E<<1<<2)|0;if((n|0)!=(f|0)){if(n>>>0<C>>>0)Xe();if((o[n+12>>2]|0)!=(u|0))Xe()}if((g|0)==(n|0)){o[1206]=o[1206]&~(1<<E);n=u;g=h;break}if((g|0)!=(f|0)){if(g>>>0<C>>>0)Xe();f=g+8|0;if((o[f>>2]|0)==(u|0))d=f;else Xe()}else d=g+8|0;o[n+12>>2]=g;o[d>>2]=n;n=u;g=h;break}d=o[e+(24-p)>>2]|0;E=o[e+(12-p)>>2]|0;do{if((E|0)==(u|0)){m=16-p|0;I=e+(m+4)|0;E=o[I>>2]|0;if(!E){I=e+m|0;E=o[I>>2]|0;if(!E){f=0;break}}while(1){y=E+20|0;m=o[y>>2]|0;if(m){E=m;I=y;continue}m=E+16|0;y=o[m>>2]|0;if(!y)break;else{E=y;I=m}}if(I>>>0<C>>>0)Xe();else{o[I>>2]=0;f=E;break}}else{I=o[e+(8-p)>>2]|0;if(I>>>0<C>>>0)Xe();C=I+12|0;if((o[C>>2]|0)!=(u|0))Xe();m=E+8|0;if((o[m>>2]|0)==(u|0)){o[C>>2]=E;o[m>>2]=I;f=E;break}else Xe()}}while(0);if(d){E=o[e+(28-p)>>2]|0;C=5128+(E<<2)|0;if((u|0)==(o[C>>2]|0)){o[C>>2]=f;if(!f){o[1207]=o[1207]&~(1<<E);n=u;g=h;break}}else{if(d>>>0<(o[1210]|0)>>>0)Xe();C=d+16|0;if((o[C>>2]|0)==(u|0))o[C>>2]=f;else o[d+20>>2]=f;if(!f){n=u;g=h;break}}C=o[1210]|0;if(f>>>0<C>>>0)Xe();o[f+24>>2]=d;p=16-p|0;d=o[e+p>>2]|0;do{if(d)if(d>>>0<C>>>0)Xe();else{o[f+16>>2]=d;o[d+24>>2]=f;break}}while(0);p=o[e+(p+4)>>2]|0;if(p)if(p>>>0<(o[1210]|0)>>>0)Xe();else{o[f+20>>2]=p;o[p+24>>2]=f;n=u;g=h;break}else{n=u;g=h}}else{n=u;g=h}}else{n=e;g=t}}while(0);u=o[1210]|0;if(A>>>0<u>>>0)Xe();h=e+(t+4)|0;f=o[h>>2]|0;if(!(f&2)){if((A|0)==(o[1212]|0)){y=(o[1209]|0)+g|0;o[1209]=y;o[1212]=n;o[n+4>>2]=y|1;if((n|0)!=(o[1211]|0)){l=r;return}o[1211]=0;o[1208]=0;l=r;return}if((A|0)==(o[1211]|0)){y=(o[1208]|0)+g|0;o[1208]=y;o[1211]=n;o[n+4>>2]=y|1;o[n+y>>2]=y;l=r;return}g=(f&-8)+g|0;h=f>>>3;do{if(f>>>0>=256){c=o[e+(t+24)>>2]|0;f=o[e+(t+12)>>2]|0;do{if((f|0)==(A|0)){f=e+(t+20)|0;h=o[f>>2]|0;if(!h){f=e+(t+16)|0;h=o[f>>2]|0;if(!h){a=0;break}}while(1){p=h+20|0;d=o[p>>2]|0;if(d){h=d;f=p;continue}d=h+16|0;p=o[d>>2]|0;if(!p)break;else{h=p;f=d}}if(f>>>0<u>>>0)Xe();else{o[f>>2]=0;a=h;break}}else{h=o[e+(t+8)>>2]|0;if(h>>>0<u>>>0)Xe();p=h+12|0;if((o[p>>2]|0)!=(A|0))Xe();u=f+8|0;if((o[u>>2]|0)==(A|0)){o[p>>2]=f;o[u>>2]=h;a=f;break}else Xe()}}while(0);if(c){h=o[e+(t+28)>>2]|0;u=5128+(h<<2)|0;if((A|0)==(o[u>>2]|0)){o[u>>2]=a;if(!a){o[1207]=o[1207]&~(1<<h);break}}else{if(c>>>0<(o[1210]|0)>>>0)Xe();u=c+16|0;if((o[u>>2]|0)==(A|0))o[u>>2]=a;else o[c+20>>2]=a;if(!a)break}A=o[1210]|0;if(a>>>0<A>>>0)Xe();o[a+24>>2]=c;c=o[e+(t+16)>>2]|0;do{if(c)if(c>>>0<A>>>0)Xe();else{o[a+16>>2]=c;o[c+24>>2]=a;break}}while(0);A=o[e+(t+20)>>2]|0;if(A)if(A>>>0<(o[1210]|0)>>>0)Xe();else{o[a+20>>2]=A;o[A+24>>2]=a;break}}}else{a=o[e+(t+8)>>2]|0;e=o[e+(t+12)>>2]|0;t=4864+(h<<1<<2)|0;if((a|0)!=(t|0)){if(a>>>0<u>>>0)Xe();if((o[a+12>>2]|0)!=(A|0))Xe()}if((e|0)==(a|0)){o[1206]=o[1206]&~(1<<h);break}if((e|0)!=(t|0)){if(e>>>0<u>>>0)Xe();t=e+8|0;if((o[t>>2]|0)==(A|0))c=t;else Xe()}else c=e+8|0;o[a+12>>2]=e;o[c>>2]=a}}while(0);o[n+4>>2]=g|1;o[n+g>>2]=g;if((n|0)==(o[1211]|0)){o[1208]=g;l=r;return}}else{o[h>>2]=f&-2;o[n+4>>2]=g|1;o[n+g>>2]=g}t=g>>>3;if(g>>>0<256){e=t<<1;A=4864+(e<<2)|0;a=o[1206]|0;t=1<<t;if(a&t){e=4864+(e+2<<2)|0;a=o[e>>2]|0;if(a>>>0<(o[1210]|0)>>>0)Xe();else{s=e;i=a}}else{o[1206]=a|t;s=4864+(e+2<<2)|0;i=A}o[s>>2]=n;o[i+12>>2]=n;o[n+8>>2]=i;o[n+12>>2]=A;l=r;return}i=g>>>8;if(i)if(g>>>0>16777215)i=31;else{m=(i+1048320|0)>>>16&8;y=i<<m;I=(y+520192|0)>>>16&4;y=y<<I;i=(y+245760|0)>>>16&2;i=14-(I|m|i)+(y<<i>>>15)|0;i=g>>>(i+7|0)&1|i<<1}else i=0;s=5128+(i<<2)|0;o[n+28>>2]=i;o[n+20>>2]=0;o[n+16>>2]=0;e=o[1207]|0;A=1<<i;if(!(e&A)){o[1207]=e|A;o[s>>2]=n;o[n+24>>2]=s;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}s=o[s>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;e:do{if((o[s+4>>2]&-8|0)!=(g|0)){i=g<<i;e=s;while(1){A=e+(i>>>31<<2)+16|0;s=o[A>>2]|0;if(!s)break;if((o[s+4>>2]&-8|0)==(g|0))break e;else{i=i<<1;e=s}}if(A>>>0<(o[1210]|0)>>>0)Xe();o[A>>2]=n;o[n+24>>2]=e;o[n+12>>2]=n;o[n+8>>2]=n;l=r;return}}while(0);i=s+8|0;A=o[i>>2]|0;y=o[1210]|0;if(!(s>>>0>=y>>>0&A>>>0>=y>>>0))Xe();o[A+12>>2]=n;o[i>>2]=n;o[n+8>>2]=A;o[n+12>>2]=s;o[n+24>>2]=0;l=r;return}function ri(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,A=0,a=0,c=0;r=l;i=e+4|0;A=o[i>>2]|0;n=e+100|0;if(A>>>0<(o[n>>2]|0)>>>0){o[i>>2]=A+1;a=s[A>>0]|0}else a=Hn(e)|0;if((a|0)==43|(a|0)==45){c=o[i>>2]|0;A=(a|0)==45&1;if(c>>>0<(o[n>>2]|0)>>>0){o[i>>2]=c+1;a=s[c>>0]|0}else a=Hn(e)|0;if((a+-48|0)>>>0>9&(t|0)!=0?(o[n>>2]|0)!=0:0)o[i>>2]=(o[i>>2]|0)+-1}else A=0;if((a+-48|0)>>>0>9){if(!(o[n>>2]|0)){a=-2147483648;c=0;R=a;l=r;return c|0}o[i>>2]=(o[i>>2]|0)+-1;a=-2147483648;c=0;R=a;l=r;return c|0}else t=0;do{t=a+-48+(t*10|0)|0;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&(t|0)<214748364);c=((t|0)<0)<<31>>31;if((a+-48|0)>>>0<10)do{c=Ci(t|0,c|0,10,0)|0;t=R;a=ai(a|0,((a|0)<0)<<31>>31|0,-48,-1)|0;t=ai(a|0,R|0,c|0,t|0)|0;c=R;a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10&((c|0)<21474836|(c|0)==21474836&t>>>0<2061584302));if((a+-48|0)>>>0<10)do{a=o[i>>2]|0;if(a>>>0<(o[n>>2]|0)>>>0){o[i>>2]=a+1;a=s[a>>0]|0}else a=Hn(e)|0}while((a+-48|0)>>>0<10);if(o[n>>2]|0)o[i>>2]=(o[i>>2]|0)+-1;i=(A|0)!=0;A=ii(0,0,t|0,c|0)|0;a=i?R:c;c=i?A:t;R=a;l=r;return c|0}function ni(){}function ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;t=t-n-(r>>>0>e>>>0|0)>>>0;return(R=t,e-r>>>0|0)|0}function oi(e,t,r){e=e|0;t=t|0;r=r|0;var i=0,s=0,A=0,a=0;i=e+r|0;if((r|0)>=20){t=t&255;a=e&3;A=t|t<<8|t<<16|t<<24;s=i&~3;if(a){a=e+4-a|0;while((e|0)<(a|0)){n[e>>0]=t;e=e+1|0}}while((e|0)<(s|0)){o[e>>2]=A;e=e+4|0}}while((e|0)<(i|0)){n[e>>0]=t;e=e+1|0}return e-r|0}function si(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t<<r|(e&(1<<r)-1<<32-r)>>>32-r;return e<<r}R=e<<r-32;return 0}function Ai(e){e=e|0;var t=0;t=e;while(n[t>>0]|0)t=t+1|0;return t-e|0}function ai(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;r=e+r>>>0;return(R=t+n+(r>>>0<e>>>0|0)>>>0,r|0)|0}function ci(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>>r;return e>>>r|(t&(1<<r)-1)<<32-r}R=0;return t>>>r-32|0}function ui(e,t,r){e=e|0;t=t|0;r=r|0;var i=0;if((r|0)>=4096)return Fe(e|0,t|0,r|0)|0;i=e|0;if((e&3)==(t&3)){while(e&3){if(!r)return i|0;n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}while((r|0)>=4){o[e>>2]=o[t>>2];e=e+4|0;t=t+4|0;r=r-4|0}}while((r|0)>0){n[e>>0]=n[t>>0]|0;e=e+1|0;t=t+1|0;r=r-1|0}return i|0}function li(e,t,r){e=e|0;t=t|0;r=r|0;if((r|0)<32){R=t>>r;return e>>>r|(t&(1<<r)-1)<<32-r}R=(t|0)<0?-1:0;return t>>r-32|0}function hi(e){e=e|0;var t=0;t=n[d+(e>>>24)>>0]|0;if((t|0)<8)return t|0;t=n[d+(e>>16&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[d+(e>>8&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[d+(e&255)>>0]|0)+24|0}function gi(e){e=e|0;var t=0;t=n[p+(e&255)>>0]|0;if((t|0)<8)return t|0;t=n[p+(e>>8&255)>>0]|0;if((t|0)<8)return t+8|0;t=n[p+(e>>16&255)>>0]|0;if((t|0)<8)return t+16|0;return(n[p+(e>>>24)>>0]|0)+24|0}function fi(e,t){e=e|0;t=t|0;var r=0,n=0,i=0,o=0;o=e&65535;n=t&65535;r=ie(n,o)|0;i=e>>>16;n=(r>>>16)+(ie(n,i)|0)|0;t=t>>>16;e=ie(t,o)|0;return(R=(n>>>16)+(ie(t,i)|0)+(((n&65535)+e|0)>>>16)|0,n+e<<16|r&65535|0)|0}function pi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0,s=0,A=0,a=0,c=0;c=t>>31|((t|0)<0?-1:0)<<1;a=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;o=n>>31|((n|0)<0?-1:0)<<1;i=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;A=ii(c^e,a^t,c,a)|0;s=R;t=o^c;e=i^a;e=ii((mi(A,s,ii(o^r,i^n,o,i)|0,R,0)|0)^t,R^e,t,e)|0;return e|0}function di(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0,A=0,a=0,c=0,u=0;i=l;l=l+8|0;a=i|0;A=t>>31|((t|0)<0?-1:0)<<1;s=((t|0)<0?-1:0)>>31|((t|0)<0?-1:0)<<1;u=n>>31|((n|0)<0?-1:0)<<1;c=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1;t=ii(A^e,s^t,A,s)|0;e=R;mi(t,e,ii(u^r,c^n,u,c)|0,R,a)|0;e=ii(o[a>>2]^A,o[a+4>>2]^s,A,s)|0;t=R;l=i;return(R=t,e)|0}function Ci(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,o=0;i=e;o=r;e=fi(i,o)|0;r=R;return(R=(ie(t,o)|0)+(ie(n,i)|0)+r|r&0,e|0|0)|0}function Ei(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;e=mi(e,t,r,n,0)|0;return e|0}function Ii(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0,s=0;s=l;l=l+8|0;i=s|0;mi(e,t,r,n,i)|0;l=s;return(R=o[i+4>>2]|0,o[i>>2]|0)|0}function mi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;var s=0,A=0,a=0,c=0,u=0,l=0,h=0,g=0,f=0,p=0;A=e;c=t;a=c;l=r;s=n;u=s;if(!a){s=(i|0)!=0;if(!u){if(s){o[i>>2]=(A>>>0)%(l>>>0);o[i+4>>2]=0}u=0;h=(A>>>0)/(l>>>0)>>>0;return(R=u,h)|0}else{if(!s){l=0;h=0;return(R=l,h)|0}o[i>>2]=e|0;o[i+4>>2]=t&0;l=0;h=0;return(R=l,h)|0}}h=(u|0)==0;do{if(l){if(!h){u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=31){h=u+1|0;l=31-u|0;e=u-31>>31;c=h;t=A>>>(h>>>0)&e|a<<l;e=a>>>(h>>>0)&e;u=0;l=A<<l;break}if(!i){l=0;h=0;return(R=l,h)|0}o[i>>2]=e|0;o[i+4>>2]=c|t&0;l=0;h=0;return(R=l,h)|0}u=l-1|0;if(u&l){l=(hi(l|0)|0)+33-(hi(a|0)|0)|0;p=64-l|0;h=32-l|0;g=h>>31;f=l-32|0;e=f>>31;c=l;t=h-1>>31&a>>>(f>>>0)|(a<<h|A>>>(l>>>0))&e;e=e&a>>>(l>>>0);u=A<<p&g;l=(a<<p|A>>>(f>>>0))&g|A<<h&l-33>>31;break}if(i){o[i>>2]=u&A;o[i+4>>2]=0}if((l|0)==1){f=c|t&0;p=e|0|0;return(R=f,p)|0}else{p=gi(l|0)|0;f=a>>>(p>>>0)|0;p=a<<32-p|A>>>(p>>>0)|0;return(R=f,p)|0}}else{if(h){if(i){o[i>>2]=(a>>>0)%(l>>>0);o[i+4>>2]=0}f=0;p=(a>>>0)/(l>>>0)>>>0;return(R=f,p)|0}if(!A){if(i){o[i>>2]=0;o[i+4>>2]=(a>>>0)%(u>>>0)}f=0;p=(a>>>0)/(u>>>0)>>>0;return(R=f,p)|0}l=u-1|0;if(!(l&u)){if(i){o[i>>2]=e|0;o[i+4>>2]=l&a|t&0}f=0;p=a>>>((gi(u|0)|0)>>>0);return(R=f,p)|0}u=(hi(u|0)|0)-(hi(a|0)|0)|0;if(u>>>0<=30){e=u+1|0;l=31-u|0;c=e;t=a<<l|A>>>(e>>>0);e=a>>>(e>>>0);u=0;l=A<<l;break}if(!i){f=0;p=0;return(R=f,p)|0}o[i>>2]=e|0;o[i+4>>2]=c|t&0;f=0;p=0;return(R=f,p)|0}}while(0);if(!c){s=l;n=0;a=0}else{A=r|0|0;s=s|n&0;n=ai(A,s,-1,-1)|0;r=R;a=0;do{h=l;l=u>>>31|l<<1;u=a|u<<1;h=t<<1|h>>>31|0;g=t>>>31|e<<1|0;ii(n,r,h,g)|0;p=R;f=p>>31|((p|0)<0?-1:0)<<1;a=f&1;t=ii(h,g,f&A,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&s)|0;e=R;c=c-1|0}while((c|0)!=0);s=l;n=0}A=0;if(i){o[i>>2]=t;o[i+4>>2]=e}f=(u|0)>>>31|(s|A)<<1|(A<<1|u>>>31)&0|n;p=(u<<1|0>>>31)&-2|a;return(R=f,p)|0}function yi(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;return _i[e&1](t|0,r|0,n|0)|0}function wi(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;Oi[e&3](t|0,r|0,n|0,i|0,o|0)}function Bi(e,t){e=e|0;t=t|0;ji[e&31](t|0)}function Qi(e,t,r){e=e|0;t=t|0;r=r|0;Yi[e&3](t|0,r|0)}function vi(e,t){e=e|0;t=t|0;return Gi[e&1](t|0)|0}function Di(e){e=e|0;Ji[e&3]()}function bi(e,t,r,n,i,o,s){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;s=s|0;Hi[e&3](t|0,r|0,n|0,i|0,o|0,s|0)}function Si(e,t,r){e=e|0;t=t|0;r=r|0;return qi[e&3](t|0,r|0)|0}function ki(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;zi[e&3](t|0,r|0,n|0,i|0)}function xi(e,t,r){e=e|0;t=t|0;r=r|0;oe(0);return 0}function Fi(e,t,r,n,i){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;oe(1)}function Mi(e){e=e|0;oe(2)}function Ni(e,t){e=e|0;t=t|0;oe(3)}function Ri(e){e=e|0;oe(4);return 0}function Ki(){oe(5)}function Li(){it()}function Ti(e,t,r,n,i,o){e=e|0;t=t|0;r=r|0;n=n|0;i=i|0;o=o|0;oe(6)}function Pi(e,t){e=e|0;t=t|0;oe(7);return 0}function Ui(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;oe(8)}var _i=[xi,Qn];var Oi=[Fi,Fn,xn,Fi];var ji=[Mi,dt,Et,mt,Bt,St,bt,Wt,Xt,Ir,Er,Rr,hn,ln,In,wn,mn,yn,Bn,It,Pn,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi,Mi];var Yi=[Ni,wt,vt,$t];var Gi=[Ri,gn];var Ji=[Ki,Li,Ln,Tn];var Hi=[Ti,Nn,Mn,Ti];var qi=[Pi,yt,Qt,Zt];var zi=[Ui,Dn,bn,Ui];return{_yo:qr,_strlen:Ai,_retireVar:rn,_bitshift64Lshr:ci,_unyo:zr,_solve:Zr,_bitshift64Shl:si,_getSolution:$r,___cxa_is_pointer_type:Kn,_memset:oi,_getNumVars:en,_memcpy:ui,_getConflictClauseSize:nn,_addClause:Xr,_i64Subtract:ii,_createTheSolver:Wr,_realloc:On,_i64Add:ai,_solveAssuming:tn,___cxa_can_catch:Rn,_ensureVar:Vr,_getConflictClause:on,_free:_n,_malloc:Un,__GLOBAL__I_a:Vt,__GLOBAL__I_a127:Kr,runPostSets:ni,stackAlloc:At,stackSave:at,stackRestore:ct,setThrew:ut,setTempRet0:gt,getTempRet0:ft,dynCall_iiii:yi,dynCall_viiiii:wi,dynCall_vi:Bi,dynCall_vii:Qi,dynCall_ii:vi,dynCall_v:Di,dynCall_viiiiii:bi,dynCall_iii:Si,dynCall_viiii:ki}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_yo=Module._yo=asm._yo,_strlen=Module._strlen=asm._strlen,_retireVar=Module._retireVar=asm._retireVar,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_unyo=Module._unyo=asm._unyo,_solve=Module._solve=asm._solve,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_getSolution=Module._getSolution=asm._getSolution,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,_memset=Module._memset=asm._memset,_getNumVars=Module._getNumVars=asm._getNumVars,_memcpy=Module._memcpy=asm._memcpy,_getConflictClauseSize=Module._getConflictClauseSize=asm._getConflictClauseSize,_addClause=Module._addClause=asm._addClause,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_createTheSolver=Module._createTheSolver=asm._createTheSolver,_realloc=Module._realloc=asm._realloc,_i64Add=Module._i64Add=asm._i64Add,_solveAssuming=Module._solveAssuming=asm._solveAssuming,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_ensureVar=Module._ensureVar=asm._ensureVar,_getConflictClause=Module._getConflictClause=asm._getConflictClause,_free=Module._free=asm._free,_malloc=Module._malloc=asm._malloc,__GLOBAL__I_a=Module.__GLOBAL__I_a=asm.__GLOBAL__I_a,__GLOBAL__I_a127=Module.__GLOBAL__I_a127=asm.__GLOBAL__I_a127,runPostSets=Module.runPostSets=asm.runPostSets,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};e.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},e.math.Long.IntCache_={},e.math.Long.fromInt=function(t){if(-128<=t&&t<128){var r=e.math.Long.IntCache_[t];if(r)return r}var n=new e.math.Long(0|t,t<0?-1:0);return-128<=t&&t<128&&(e.math.Long.IntCache_[t]=n),n},e.math.Long.fromNumber=function(t){return isNaN(t)||!isFinite(t)?e.math.Long.ZERO:t<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:t+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:t<0?e.math.Long.fromNumber(-t).negate():new e.math.Long(t%e.math.Long.TWO_PWR_32_DBL_|0,t/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(t,r){return new e.math.Long(t,r)},e.math.Long.fromString=function(t,r){if(0==t.length)throw Error("number format error: empty string");var n=r||10;if(n<2||36<n)throw Error("radix out of range: "+n);if("-"==t.charAt(0))return e.math.Long.fromString(t.substring(1),n).negate();if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+t);for(var i=e.math.Long.fromNumber(Math.pow(n,8)),o=e.math.Long.ZERO,s=0;s<t.length;s+=8){var A=Math.min(8,t.length-s),a=parseInt(t.substring(s,s+A),n);if(A<8){var c=e.math.Long.fromNumber(Math.pow(n,A));o=o.multiply(c).add(e.math.Long.fromNumber(a))}else o=(o=o.multiply(i)).add(e.math.Long.fromNumber(a))}return o},e.math.Long.TWO_PWR_16_DBL_=65536,e.math.Long.TWO_PWR_24_DBL_=1<<24,e.math.Long.TWO_PWR_32_DBL_=e.math.Long.TWO_PWR_16_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_31_DBL_=e.math.Long.TWO_PWR_32_DBL_/2,e.math.Long.TWO_PWR_48_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_64_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_32_DBL_,e.math.Long.TWO_PWR_63_DBL_=e.math.Long.TWO_PWR_64_DBL_/2,e.math.Long.ZERO=e.math.Long.fromInt(0),e.math.Long.ONE=e.math.Long.fromInt(1),e.math.Long.NEG_ONE=e.math.Long.fromInt(-1),e.math.Long.MAX_VALUE=e.math.Long.fromBits(-1,2147483647),e.math.Long.MIN_VALUE=e.math.Long.fromBits(0,-2147483648),e.math.Long.TWO_PWR_24_=e.math.Long.fromInt(1<<24),e.math.Long.prototype.toInt=function(){return this.low_},e.math.Long.prototype.toNumber=function(){return this.high_*e.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},e.math.Long.prototype.toString=function(t){var r=t||10;if(r<2||36<r)throw Error("radix out of range: "+r);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(e.math.Long.MIN_VALUE)){var n=e.math.Long.fromNumber(r),i=this.div(n),o=i.multiply(n).subtract(this);return i.toString(r)+o.toInt().toString(r)}return"-"+this.negate().toString(r)}for(var s=e.math.Long.fromNumber(Math.pow(r,6)),A=(o=this,"");;){var a=o.div(s),c=o.subtract(a.multiply(s)).toInt().toString(r);if((o=a).isZero())return c+A;for(;c.length<6;)c="0"+c;A=""+c+A}},e.math.Long.prototype.getHighBits=function(){return this.high_},e.math.Long.prototype.getLowBits=function(){return this.low_},e.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var t=0!=this.high_?this.high_:this.low_,r=31;r>0&&0==(t&1<<r);r--);return 0!=this.high_?r+33:r+1},e.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},e.math.Long.prototype.isNegative=function(){return this.high_<0},e.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},e.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},e.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},e.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},e.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},e.math.Long.prototype.greaterThan=function(e){return this.compare(e)>0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(t){var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=0,u=0,l=0,h=0;return l+=(h+=o+(65535&t.low_))>>>16,h&=65535,u+=(l+=i+a)>>>16,l&=65535,c+=(u+=n+A)>>>16,u&=65535,c+=r+s,c&=65535,e.math.Long.fromBits(l<<16|h,c<<16|u)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(t){if(this.isZero())return e.math.Long.ZERO;if(t.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return t.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(t.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().multiply(t.negate()):this.negate().multiply(t).negate();if(t.isNegative())return this.multiply(t.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&t.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*t.toNumber());var r=this.high_>>>16,n=65535&this.high_,i=this.low_>>>16,o=65535&this.low_,s=t.high_>>>16,A=65535&t.high_,a=t.low_>>>16,c=65535&t.low_,u=0,l=0,h=0,g=0;return h+=(g+=o*c)>>>16,g&=65535,l+=(h+=i*c)>>>16,h&=65535,l+=(h+=o*a)>>>16,h&=65535,u+=(l+=n*c)>>>16,l&=65535,u+=(l+=i*a)>>>16,l&=65535,u+=(l+=o*A)>>>16,l&=65535,u+=r*c+n*a+i*A+o*s,u&=65535,e.math.Long.fromBits(h<<16|g,u<<16|l)},e.math.Long.prototype.div=function(t){if(t.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(t.equals(e.math.Long.ONE)||t.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((i=this.shiftRight(1).div(t).shiftLeft(1)).equals(e.math.Long.ZERO))return t.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var r=this.subtract(t.multiply(i));return i.add(r.div(t))}if(t.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().div(t.negate()):this.negate().div(t).negate();if(t.isNegative())return this.div(t.negate()).negate();var n=e.math.Long.ZERO;for(r=this;r.greaterThanOrEqual(t);){for(var i=Math.max(1,Math.floor(r.toNumber()/t.toNumber())),o=Math.ceil(Math.log(i)/Math.LN2),s=o<=48?1:Math.pow(2,o-48),A=e.math.Long.fromNumber(i),a=A.multiply(t);a.isNegative()||a.greaterThan(r);)i-=s,a=(A=e.math.Long.fromNumber(i)).multiply(t);A.isZero()&&(A=e.math.Long.ONE),n=n.add(A),r=r.subtract(a)}return n},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(t){return e.math.Long.fromBits(this.low_&t.low_,this.high_&t.high_)},e.math.Long.prototype.or=function(t){return e.math.Long.fromBits(this.low_|t.low_,this.high_|t.high_)},e.math.Long.prototype.xor=function(t){return e.math.Long.fromBits(this.low_^t.low_,this.high_^t.high_)},e.math.Long.prototype.shiftLeft=function(t){if(0==(t&=63))return this;var r=this.low_;if(t<32){var n=this.high_;return e.math.Long.fromBits(r<<t,n<<t|r>>>32-t)}return e.math.Long.fromBits(0,r<<t-32)},e.math.Long.prototype.shiftRight=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>t)}return e.math.Long.fromBits(r>>t-32,r>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(t){if(0==(t&=63))return this;var r=this.high_;if(t<32){var n=this.low_;return e.math.Long.fromBits(n>>>t|r<<32-t,r>>>t)}return 32==t?e.math.Long.fromBits(r,0):e.math.Long.fromBits(r>>>t-32,0)};var t,r="Modern Browser";function n(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function i(){return new n(null)}"Microsoft Internet Explorer"==r?(n.prototype.am=function(e,t,r,n,i,o){for(var s=32767&t,A=t>>15;--o>=0;){var a=32767&this[e],c=this[e++]>>15,u=A*a+c*s;i=((a=s*a+((32767&u)<<15)+r[n]+(1073741823&i))>>>30)+(u>>>15)+A*c+(i>>>30),r[n++]=1073741823&a}return i},t=30):"Netscape"!=r?(n.prototype.am=function(e,t,r,n,i,o){for(;--o>=0;){var s=t*this[e++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},t=26):(n.prototype.am=function(e,t,r,n,i,o){for(var s=16383&t,A=t>>14;--o>=0;){var a=16383&this[e],c=this[e++]>>14,u=A*a+c*s;i=((a=s*a+((16383&u)<<14)+r[n]+i)>>28)+(u>>14)+A*c,r[n++]=268435455&a}return i},t=28),n.prototype.DB=t,n.prototype.DM=(1<<t)-1,n.prototype.DV=1<<t;n.prototype.FV=Math.pow(2,52),n.prototype.F1=52-t,n.prototype.F2=2*t-52;var o,s,A=new Array;for(o="0".charCodeAt(0),s=0;s<=9;++s)A[o++]=s;for(o="a".charCodeAt(0),s=10;s<36;++s)A[o++]=s;for(o="A".charCodeAt(0),s=10;s<36;++s)A[o++]=s;function a(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function c(e,t){var r=A[e.charCodeAt(t)];return null==r?-1:r}function u(e){var t=i();return t.fromInt(e),t}function l(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function h(e){this.m=e}function g(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}h.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},h.prototype.revert=function(e){return e},h.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},h.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},h.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},g.prototype.convert=function(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t},g.prototype.revert=function(e){var t=i();return e.copyTo(t),this.reduce(t),t},g.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e[t],n=r*this.mpl+((r*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},g.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},g.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},n.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},n.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},n.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var i=e.length,o=!1,s=0;--i>=0;){var A=8==r?255&e[i]:c(e,i);A<0?"-"==e.charAt(i)&&(o=!0):(o=!1,0==s?this[this.t++]=A:s+r>this.DB?(this[this.t-1]|=(A&(1<<this.DB-s)-1)<<s,this[this.t++]=A>>this.DB-s):this[this.t-1]|=A<<s,(s+=r)>=this.DB&&(s-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),o&&n.ZERO.subTo(this,this)},n.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},n.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},n.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t[r-e]=this[r];t.t=Math.max(this.t-e,0),t.s=this.s},n.prototype.lShiftTo=function(e,t){var r,n=e%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(e/this.DB),A=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)t[r+s+1]=this[r]>>i|A,A=(this[r]&o)<<n;for(r=s-1;r>=0;--r)t[r]=0;t[s]=A,t.t=this.t+s+1,t.s=this.s,t.clamp()},n.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t[0]=this[r]>>n;for(var s=r+1;s<this.t;++s)t[s-r-1]|=(this[s]&o)<<i,t[s-r]=this[s]>>n;n>0&&(t[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}},n.prototype.subTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this[r]-e[r],t[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this[r],t[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e[r],t[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:n>0&&(t[r++]=n),t.t=r,t.clamp()},n.prototype.multiplyTo=function(e,t){var r=this.abs(),i=e.abs(),o=r.t;for(t.t=o+i.t;--o>=0;)t[o]=0;for(o=0;o<i.t;++o)t[o+r.t]=r.am(0,i[o],t,o,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&n.ZERO.subTo(t,t)},n.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t[r],e,2*r,0,1);(e[r+t.t]+=t.am(r+1,2*t[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},n.prototype.divRemTo=function(e,t,r){var o=e.abs();if(!(o.t<=0)){var s=this.abs();if(s.t<o.t)return null!=t&&t.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=i());var A=i(),a=this.s,c=e.s,u=this.DB-l(o[o.t-1]);u>0?(o.lShiftTo(u,A),s.lShiftTo(u,r)):(o.copyTo(A),s.copyTo(r));var h=A.t,g=A[h-1];if(0!=g){var f=g*(1<<this.F1)+(h>1?A[h-2]>>this.F2:0),p=this.FV/f,d=(1<<this.F1)/f,C=1<<this.F2,E=r.t,I=E-h,m=null==t?i():t;for(A.dlShiftTo(I,m),r.compareTo(m)>=0&&(r[r.t++]=1,r.subTo(m,r)),n.ONE.dlShiftTo(h,m),m.subTo(A,A);A.t<h;)A[A.t++]=0;for(;--I>=0;){var y=r[--E]==g?this.DM:Math.floor(r[E]*p+(r[E-1]+C)*d);if((r[E]+=A.am(0,y,r,I,0,h))<y)for(A.dlShiftTo(I,m),r.subTo(m,r);r[E]<--y;)r.subTo(m,r)}null!=t&&(r.drShiftTo(h,t),a!=c&&n.ZERO.subTo(t,t)),r.t=h,r.clamp(),u>0&&r.rShiftTo(u,r),a<0&&n.ZERO.subTo(r,r)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(e,t){if(e>4294967295||e<1)return n.ONE;var r=i(),o=i(),s=t.convert(this),A=l(e)-1;for(s.copyTo(r);--A>=0;)if(t.sqrTo(r,o),(e&1<<A)>0)t.mulTo(o,s,r);else{var a=r;r=o,o=a}return t.revert(r)},n.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<<t)-1,i=!1,o="",s=this.t,A=this.DB-s*this.DB%t;if(s-- >0)for(A<this.DB&&(r=this[s]>>A)>0&&(i=!0,o=a(r));s>=0;)A<t?(r=(this[s]&(1<<A)-1)<<t-A,r|=this[--s]>>(A+=this.DB-t)):(r=this[s]>>(A-=t)&n,A<=0&&(A+=this.DB,--s)),r>0&&(i=!0),i&&(o+=a(r));return i?o:"0"},n.prototype.negate=function(){var e=i();return n.ZERO.subTo(this,e),e},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+l(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t},n.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new h(t):new g(t),this.exp(e,r)},n.ZERO=u(0),n.ONE=u(1),n.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),i=Math.pow(t,r),o=!1,s=0,A=0,a=0;a<e.length;++a){var u=c(e,a);u<0?"-"==e.charAt(a)&&0==this.signum()&&(o=!0):(A=t*A+u,++s>=r&&(this.dMultiply(i),this.dAddOffset(A,0),s=0,A=0))}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(A,0)),o&&n.ZERO.subTo(this,this)},n.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},n.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=u(r),o=i(),s=i(),A="";for(this.divRemTo(n,o,s);o.signum()>0;)A=(r+s.intValue()).toString(e).substr(1)+A,o.divRemTo(n,o,s);return s.intValue().toString(e)+A},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},n.prototype.addTo=function(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this[r]+e[r],t[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this[r],t[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e[r],t[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[r++]=n:n<-1&&(t[r++]=this.DV+n),t.t=r,t.clamp()};var f={abs:function(t,r){var n,i=new e.math.Long(t,r);n=i.isNegative()?i.negate():i,HEAP32[tempDoublePtr>>2]=n.low_,HEAP32[tempDoublePtr+4>>2]=n.high_},ensureTemps:function(){f.ensuredTemps||(f.ensuredTemps=!0,f.two32=new n,f.two32.fromString("4294967296",10),f.two64=new n,f.two64.fromString("18446744073709551616",10),f.temp1=new n,f.temp2=new n)},lh2bignum:function(e,t){var r=new n;r.fromString(t.toString(),10);var i=new n;r.multiplyTo(f.two32,i);var o=new n;o.fromString(e.toString(),10);var s=new n;return o.addTo(i,s),s},stringify:function(t,r,i){var o=new e.math.Long(t,r).toString();if(i&&"-"==o[0]){f.ensureTemps();var s=new n;s.fromString(o,10),o=new n,f.two64.addTo(s,o),o=o.toString(10)}return o},fromString:function(t,r,i,o,s){f.ensureTemps();var A=new n;A.fromString(t,r);var a=new n;a.fromString(i,10);var c=new n;if(c.fromString(o,10),s&&A.compareTo(n.ZERO)<0){var u=new n;A.addTo(f.two64,u),A=u}var l=!1;A.compareTo(a)<0?(A=a,l=!0):A.compareTo(c)>0&&(A=c,l=!0);var h=e.math.Long.fromString(A.toString());if(HEAP32[tempDoublePtr>>2]=h.low_,HEAP32[tempDoublePtr+4>>2]=h.high_,l)throw"range error"}};return f}(),initialStackTop;if(memoryInitializer)if("function"==typeof Module.locateFile?memoryInitializer=Module.locateFile(memoryInitializer):Module.memoryInitializerPrefixURL&&(memoryInitializer=Module.memoryInitializerPrefixURL+memoryInitializer),ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module.readBinary(memoryInitializer);HEAPU8.set(data,STATIC_BASE)}else addRunDependency("memory initializer"),Browser.asyncLoad(memoryInitializer,(function(e){HEAPU8.set(e,STATIC_BASE),removeRunDependency("memory initializer")}),(function(e){throw"could not load memory initializer "+memoryInitializer}));function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var preloadStartTime=null,calledMain=!1;function run(e){function t(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),ENVIRONMENT_IS_WEB&&null!==preloadStartTime&&Module.printErr("pre-main prep time: "+(Date.now()-preloadStartTime)+" ms"),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t()))}function exit(e){if(!Module.noExitRuntime)throw ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",(function(){process.exit(e)})),console.log(" "),setTimeout((function(){process.exit(e)}),500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){e&&(Module.print(e),Module.printErr(e)),ABORT=!0,EXITSTATUS=1;throw"abort() at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var t=e.length+1;function r(){for(var e=0;e<3;e++)n.push(0)}var n=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i<t-1;i+=1)n.push(allocate(intArrayFromString(e[i]),"i8",ALLOC_NORMAL)),r();n.push(0),n=allocate(n,"i32",ALLOC_NORMAL),initialStackTop=STACKTOP;try{exit(Module._main(t,n,0))}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit,Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var origMalloc=Module._malloc,origFree=Module._free,MEMSTATS={totalMemory:Module.HEAPU8.length,heapUsed:0},MEMSTATS_DATA={pointerToSizeMap:{},getSizeOfPointer:function(e){return MEMSTATS_DATA.pointerToSizeMap[e]}};Module.MEMSTATS=MEMSTATS,Module.MEMSTATS_DATA=MEMSTATS_DATA;var hookedMalloc=function(e){var t=origMalloc(e);return t?(MEMSTATS.heapUsed+=e,MEMSTATS_DATA.pointerToSizeMap[t]=e,t):0},hookedFree=function(e){return e&&(MEMSTATS.heapUsed-=MEMSTATS_DATA.getSizeOfPointer(e)||0,delete MEMSTATS_DATA.pointerToSizeMap[e]),origFree(e)},setInnerMalloc,setInnerFree;return Module._malloc=hookedMalloc,Module._free=hookedFree,_malloc=hookedMalloc,_free=hookedFree,setInnerMalloc&&(setInnerMalloc(hookedMalloc),setInnerFree(hookedFree)),module.exports},module.exports=C_MINISAT},73789:(e,t,r)=>{var n,i=r(98312),o=r(5817);(n=function(){var e=this._C=i();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(t){e.Runtime.stackRestore(t)},allocateBytes:function(t){return e.allocate(t,"i8",e.ALLOC_STACK)},pushString:function(t){return this.allocateBytes(e.intArrayFromString(t))},savingStack:function(t){var r=this.getStackPointer();try{return t(this,e)}finally{this.setStackPointer(r)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},n.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack((function(t,r){var n=r.allocate(4*(e.length+1),"i32",r.ALLOC_STACK);return o.each(e,(function(e,t){r.setValue(n+4*t,e,"i32")})),r.setValue(n+4*e.length,0,"i32"),!!r._addClause(n)}))},n.prototype.solve=function(){return!!this._C._solve()},n.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},n.prototype.getSolution=function(){for(var e=[null],t=this._C,r=t._getNumVars(),n=t._getSolution(),i=0;i<r;i++)e[i+1]=0===t.getValue(n+i,"i8");return e},n.prototype.retireVar=function(e){this._C._retireVar(e)},n.prototype.getConflictClause=function(){for(var e=this._C,t=e._getConflictClauseSize(),r=e._getConflictClause(),n=[],i=0;i<t;i++){var o=e.getValue(r+4*i,"i32"),s=o>>>1,A=1&o?-1:1;n[i]=s*A}return n},e.exports=n},55737:e=>{"use strict";e.exports=e=>{const t={};for(const[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}},46227:(e,t,r)=>{"use strict";const n=r(35747),i=r(85622),{promisify:o}=r(31669),s=r(95584).satisfies(process.version,">=10.12.0"),A=e=>{if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(i.parse(e).root,""))){const t=new Error("Path contains invalid characters: "+e);throw t.code="EINVAL",t}}},a=e=>({...{mode:511,fs:n},...e}),c=e=>{const t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t};e.exports=async(e,t)=>{A(e),t=a(t);const r=o(t.fs.mkdir),u=o(t.fs.stat);if(s&&t.fs.mkdir===n.mkdir){const n=i.resolve(e);return await r(n,{mode:t.mode,recursive:!0}),n}const l=async e=>{try{return await r(e,t.mode),e}catch(t){if("EPERM"===t.code)throw t;if("ENOENT"===t.code){if(i.dirname(e)===e)throw c(e);if(t.message.includes("null bytes"))throw t;return await l(i.dirname(e)),l(e)}try{if(!(await u(e)).isDirectory())throw new Error("The path is not a directory")}catch(e){throw t}return e}};return l(i.resolve(e))},e.exports.sync=(e,t)=>{if(A(e),t=a(t),s&&t.fs.mkdirSync===n.mkdirSync){const r=i.resolve(e);return n.mkdirSync(r,{mode:t.mode,recursive:!0}),r}const r=e=>{try{t.fs.mkdirSync(e,t.mode)}catch(n){if("EPERM"===n.code)throw n;if("ENOENT"===n.code){if(i.dirname(e)===e)throw c(e);if(n.message.includes("null bytes"))throw n;return r(i.dirname(e)),r(e)}try{if(!t.fs.statSync(e).isDirectory())throw new Error("The path is not a directory")}catch(e){throw n}}return e};return r(i.resolve(e))}},55598:(e,t,r)=>{"use strict";const n=r(92413).PassThrough,i=Array.prototype.slice;function o(e,t){if(Array.isArray(e))for(let r=0,n=e.length;r<n;r++)e[r]=o(e[r],t);else{if(!e._readableState&&e.pipe&&(e=e.pipe(n(t))),!e._readableState||!e.pause||!e.pipe)throw new Error("Only readable stream can be merged.");e.pause()}return e}e.exports=function(){const e=[];let t=!1;const r=i.call(arguments);let s=r[r.length-1];s&&!Array.isArray(s)&&null==s.pipe?r.pop():s={};const A=!1!==s.end;null==s.objectMode&&(s.objectMode=!0);null==s.highWaterMark&&(s.highWaterMark=65536);const a=n(s);function c(){for(let t=0,r=arguments.length;t<r;t++)e.push(o(arguments[t],s));return u(),this}function u(){if(t)return;t=!0;let r=e.shift();if(!r)return void process.nextTick(l);Array.isArray(r)||(r=[r]);let n=r.length+1;function i(){--n>0||(t=!1,u())}function o(e){function t(){e.removeListener("merge2UnpipeEnd",t),e.removeListener("end",t),i()}if(e._readableState.endEmitted)return i();e.on("merge2UnpipeEnd",t),e.on("end",t),e.pipe(a,{end:!1}),e.resume()}for(let e=0;e<r.length;e++)o(r[e]);i()}function l(){return t=!1,a.emit("queueDrain"),A&&a.end()}a.setMaxListeners(0),a.add=c,a.on("unpipe",(function(e){e.emit("merge2UnpipeEnd")})),r.length&&c.apply(null,r);return a}},2401:(e,t,r)=>{"use strict";const n=r(31669),i=r(12235),o=r(54722),s=r(3598),A=e=>"string"==typeof e&&(""===e||"./"===e),a=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,i=new Set,s=new Set,A=0,a=e=>{s.add(e.output),r&&r.onResult&&r.onResult(e)};for(let s=0;s<t.length;s++){let c=o(String(t[s]),{...r,onResult:a},!0),u=c.state.negated||c.state.negatedExtglob;u&&A++;for(let t of e){let e=c(t,!0);(u?!e.isMatch:e.isMatch)&&(u?n.add(e.output):(n.delete(e.output),i.add(e.output)))}}let c=(A===t.length?[...s]:[...i]).filter(e=>!n.has(e));if(r&&0===c.length){if(!0===r.failglob)throw new Error(`No matches found for "${t.join(", ")}"`);if(!0===r.nonull||!0===r.nullglob)return r.unescape?t.map(e=>e.replace(/\\/g,"")):t}return c};a.match=a,a.matcher=(e,t)=>o(e,t),a.any=a.isMatch=(e,t,r)=>o(t,r)(e),a.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,i=[],o=a(e,t,{...r,onResult:e=>{r.onResult&&r.onResult(e),i.push(e.output)}});for(let e of i)o.includes(e)||n.add(e);return[...n]},a.contains=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);if(Array.isArray(t))return t.some(t=>a.contains(e,t,r));if("string"==typeof t){if(A(e)||A(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return a.isMatch(e,t,{...r,contains:!0})},a.matchKeys=(e,t,r)=>{if(!s.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=a(Object.keys(e),t,r),i={};for(let t of n)i[t]=e[t];return i},a.some=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(n.some(e=>t(e)))return!0}return!1},a.every=(e,t,r)=>{let n=[].concat(e);for(let e of[].concat(t)){let t=o(String(e),r);if(!n.every(e=>t(e)))return!1}return!0},a.all=(e,t,r)=>{if("string"!=typeof e)throw new TypeError(`Expected a string: "${n.inspect(e)}"`);return[].concat(t).every(t=>o(t,r)(e))},a.capture=(e,t,r)=>{let n=s.isWindows(r),i=o.makeRe(String(e),{...r,capture:!0}).exec(n?s.toPosixSlashes(t):t);if(i)return i.slice(1).map(e=>void 0===e?"":e)},a.makeRe=(...e)=>o.makeRe(...e),a.scan=(...e)=>o.scan(...e),a.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let e of i(String(n),t))r.push(o.parse(e,t));return r},a.braces=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return t&&!0===t.nobrace||!/\{.*\}/.test(e)?[e]:i(e,t)},a.braceExpand=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");return a.braces(e,{...t,expand:!0})},e.exports=a},81573:e=>{"use strict";const t=(e,t)=>{for(const r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};e.exports=t,e.exports.default=t},65007:e=>{"use strict";const t=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},60102:e=>{"use strict";const t=["aborted","complete","destroy","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];e.exports=(e,r)=>{const n=new Set(Object.keys(e).concat(t));for(const t of n)t in r||(r[t]="function"==typeof e[t]?e[t].bind(e):e[t])}},52670:(e,t,r)=>{e.exports=u,u.Minimatch=l;var n={sep:"/"};try{n=r(85622)}catch(e){}var i=u.GLOBSTAR=l.GLOBSTAR={},o=r(1289),s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},A="().*{}+?[]^$\\!".split("").reduce((function(e,t){return e[t]=!0,e}),{});var a=/\/+/;function c(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach((function(e){r[e]=t[e]})),Object.keys(e).forEach((function(t){r[t]=e[t]})),r}function u(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new l(t,r).match(e))}function l(e,t){if(!(this instanceof l))return new l(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==n.sep&&(e=e.split(n.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function h(e,t){if(t||(t=this instanceof l?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:o(e)}u.filter=function(e,t){return t=t||{},function(r,n,i){return u(r,e,t)}},u.defaults=function(e){if(!e||!Object.keys(e).length)return u;var t=u,r=function(r,n,i){return t.minimatch(r,n,c(e,i))};return r.Minimatch=function(r,n){return new t.Minimatch(r,c(e,n))},r},l.defaults=function(e){return e&&Object.keys(e).length?u.defaults(e).Minimatch:l},l.prototype.debug=function(){},l.prototype.make=function(){if(this._made)return;var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error);this.debug(this.pattern,r),r=this.globParts=r.map((function(e){return e.split(a)})),this.debug(this.pattern,r),r=r.map((function(e,t,r){return e.map(this.parse,this)}),this),this.debug(this.pattern,r),r=r.filter((function(e){return-1===e.indexOf(!1)})),this.debug(this.pattern,r),this.set=r},l.prototype.parseNegate=function(){var e=this.pattern,t=!1,r=this.options,n=0;if(r.nonegate)return;for(var i=0,o=e.length;i<o&&"!"===e.charAt(i);i++)t=!t,n++;n&&(this.pattern=e.substr(n));this.negate=t},u.braceExpand=function(e,t){return h(e,t)},l.prototype.braceExpand=h,l.prototype.parse=function(e,t){if(e.length>65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return i;if(""===e)return"";var n,o="",a=!!r.nocase,c=!1,u=[],l=[],h=!1,f=-1,p=-1,d="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",C=this;function E(){if(n){switch(n){case"*":o+="[^/]*?",a=!0;break;case"?":o+="[^/]",a=!0;break;default:o+="\\"+n}C.debug("clearStateChar %j %j",n,o),n=!1}}for(var I,m=0,y=e.length;m<y&&(I=e.charAt(m));m++)if(this.debug("%s\t%s %s %j",e,m,o,I),c&&A[I])o+="\\"+I,c=!1;else switch(I){case"/":return!1;case"\\":E(),c=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,m,o,I),h){this.debug("  in class"),"!"===I&&m===p+1&&(I="^"),o+=I;continue}C.debug("call clearStateChar %j",n),E(),n=I,r.noext&&E();continue;case"(":if(h){o+="(";continue}if(!n){o+="\\(";continue}u.push({type:n,start:m-1,reStart:o.length,open:s[n].open,close:s[n].close}),o+="!"===n?"(?:(?!(?:":"(?:",this.debug("plType %j %j",n,o),n=!1;continue;case")":if(h||!u.length){o+="\\)";continue}E(),a=!0;var w=u.pop();o+=w.close,"!"===w.type&&l.push(w),w.reEnd=o.length;continue;case"|":if(h||!u.length||c){o+="\\|",c=!1;continue}E(),o+="|";continue;case"[":if(E(),h){o+="\\"+I;continue}h=!0,p=m,f=o.length,o+=I;continue;case"]":if(m===p+1||!h){o+="\\"+I,c=!1;continue}if(h){var B=e.substring(p+1,m);try{RegExp("["+B+"]")}catch(e){var Q=this.parse(B,g);o=o.substr(0,f)+"\\["+Q[0]+"\\]",a=a||Q[1],h=!1;continue}}a=!0,h=!1,o+=I;continue;default:E(),c?c=!1:!A[I]||"^"===I&&h||(o+="\\"),o+=I}h&&(B=e.substr(p+1),Q=this.parse(B,g),o=o.substr(0,f)+"\\["+Q[0],a=a||Q[1]);for(w=u.pop();w;w=u.pop()){var v=o.slice(w.reStart+w.open.length);this.debug("setting tail",o,w),v=v.replace(/((?:\\{2}){0,64})(\\?)\|/g,(function(e,t,r){return r||(r="\\"),t+t+r+"|"})),this.debug("tail=%j\n   %s",v,v,w,o);var D="*"===w.type?"[^/]*?":"?"===w.type?"[^/]":"\\"+w.type;a=!0,o=o.slice(0,w.reStart)+D+"\\("+v}E(),c&&(o+="\\\\");var b=!1;switch(o.charAt(0)){case".":case"[":case"(":b=!0}for(var S=l.length-1;S>-1;S--){var k=l[S],x=o.slice(0,k.reStart),F=o.slice(k.reStart,k.reEnd-8),M=o.slice(k.reEnd-8,k.reEnd),N=o.slice(k.reEnd);M+=N;var R=x.split("(").length-1,K=N;for(m=0;m<R;m++)K=K.replace(/\)[+*?]?/,"");var L="";""===(N=K)&&t!==g&&(L="$"),o=x+F+N+L+M}""!==o&&a&&(o="(?=.)"+o);b&&(o=d+o);if(t===g)return[o,a];if(!a)return function(e){return e.replace(/\\(.)/g,"$1")}(e);var T=r.nocase?"i":"";try{var P=new RegExp("^"+o+"$",T)}catch(e){return new RegExp("$.")}return P._glob=e,P._src=o,P};var g={};u.makeRe=function(e,t){return new l(e,t||{}).makeRe()},l.prototype.makeRe=function(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?"[^/]*?":t.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=t.nocase?"i":"",o=e.map((function(e){return e.map((function(e){return e===i?r:"string"==typeof e?function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}(e):e._src})).join("\\/")})).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,n)}catch(e){this.regexp=!1}return this.regexp},u.match=function(e,t,r){var n=new l(t,r=r||{});return e=e.filter((function(e){return n.match(e)})),n.options.nonull&&!e.length&&e.push(t),e},l.prototype.match=function(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==n.sep&&(e=e.split(n.sep).join("/"));e=e.split(a),this.debug(this.pattern,"split",e);var i,o,s=this.set;for(this.debug(this.pattern,"set",s),o=e.length-1;o>=0&&!(i=e[o]);o--);for(o=0;o<s.length;o++){var A=s[o],c=e;if(r.matchBase&&1===A.length&&(c=[i]),this.matchOne(c,A,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate},l.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var o=0,s=0,A=e.length,a=t.length;o<A&&s<a;o++,s++){this.debug("matchOne loop");var c,u=t[s],l=e[o];if(this.debug(t,u,l),!1===u)return!1;if(u===i){this.debug("GLOBSTAR",[t,u,l]);var h=o,g=s+1;if(g===a){for(this.debug("** at the end");o<A;o++)if("."===e[o]||".."===e[o]||!n.dot&&"."===e[o].charAt(0))return!1;return!0}for(;h<A;){var f=e[h];if(this.debug("\nglobstar while",e,h,t,g,f),this.matchOne(e.slice(h),t.slice(g),r))return this.debug("globstar found match!",h,A,f),!0;if("."===f||".."===f||!n.dot&&"."===f.charAt(0)){this.debug("dot detected!",e,h,t,g);break}this.debug("globstar swallow a segment, and continue"),h++}return!(!r||(this.debug("\n>>> no match, partial?",e,h,t,g),h!==A))}if("string"==typeof u?(c=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,c)):(c=l.match(u),this.debug("pattern match",u,l,c)),!c)return!1}if(o===A&&s===a)return!0;if(o===A)return r;if(s===a)return o===A-1&&""===e[o];throw new Error("wtf?")}},44380:(e,t,r)=>{"use strict";const n=r(28614),i=r(80800),o=r(24304).StringDecoder,s=Symbol("EOF"),A=Symbol("maybeEmitEnd"),a=Symbol("emittedEnd"),c=Symbol("emittingEnd"),u=Symbol("closed"),l=Symbol("read"),h=Symbol("flush"),g=Symbol("flushChunk"),f=Symbol("encoding"),p=Symbol("decoder"),d=Symbol("flowing"),C=Symbol("paused"),E=Symbol("resume"),I=Symbol("bufferLength"),m=Symbol("bufferPush"),y=Symbol("bufferShift"),w=Symbol("objectMode"),B=Symbol("destroyed"),Q="1"!==global._MP_NO_ITERATOR_SYMBOLS_,v=Q&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),D=Q&&Symbol.iterator||Symbol("iterator not implemented"),b=Buffer.alloc?Buffer:r(13499).Buffer,S=e=>"end"===e||"finish"===e||"prefinish"===e;e.exports=class e extends n{constructor(e){super(),this[d]=!1,this[C]=!1,this.pipes=new i,this.buffer=new i,this[w]=e&&e.objectMode||!1,this[w]?this[f]=null:this[f]=e&&e.encoding||null,"buffer"===this[f]&&(this[f]=null),this[p]=this[f]?new o(this[f]):null,this[s]=!1,this[a]=!1,this[c]=!1,this[u]=!1,this.writable=!0,this.readable=!0,this[I]=0,this[B]=!1}get bufferLength(){return this[I]}get encoding(){return this[f]}set encoding(e){if(this[w])throw new Error("cannot set encoding in objectMode");if(this[f]&&e!==this[f]&&(this[p]&&this[p].lastNeed||this[I]))throw new Error("cannot change encoding");this[f]!==e&&(this[p]=e?new o(e):null,this.buffer.length&&(this.buffer=this.buffer.map(e=>this[p].write(e)))),this[f]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[w]}set objectMode(e){this[w]=this[w]||!!e}write(e,t,r){if(this[s])throw new Error("write after end");if(this[B])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;var n;if("function"==typeof t&&(r=t,t="utf8"),t||(t="utf8"),this[w]||b.isBuffer(e)||(n=e,!b.isBuffer(n)&&ArrayBuffer.isView(n)?e=b.from(e.buffer,e.byteOffset,e.byteLength):(e=>e instanceof ArrayBuffer||"object"==typeof e&&e.constructor&&"ArrayBuffer"===e.constructor.name&&e.byteLength>=0)(e)?e=b.from(e):"string"!=typeof e&&(this.objectMode=!0)),!this.objectMode&&!e.length){const e=this.flowing;return 0!==this[I]&&this.emit("readable"),r&&r(),e}"string"!=typeof e||this[w]||t===this[f]&&!this[p].lastNeed||(e=b.from(e,t)),b.isBuffer(e)&&this[f]&&(e=this[p].write(e));try{return this.flowing?(this.emit("data",e),this.flowing):(this[m](e),!1)}finally{0!==this[I]&&this.emit("readable"),r&&r()}}read(e){if(this[B])return null;try{return 0===this[I]||0===e||e>this[I]?null:(this[w]&&(e=null),this.buffer.length>1&&!this[w]&&(this.encoding?this.buffer=new i([Array.from(this.buffer).join("")]):this.buffer=new i([b.concat(Array.from(this.buffer),this[I])])),this[l](e||null,this.buffer.head.value))}finally{this[A]()}}[l](e,t){return e===t.length||null===e?this[y]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[I]-=e),this.emit("data",t),this.buffer.length||this[s]||this.emit("drain"),t}end(e,t,r){return"function"==typeof e&&(r=e,e=null),"function"==typeof t&&(r=t,t="utf8"),e&&this.write(e,t),r&&this.once("end",r),this[s]=!0,this.writable=!1,!this.flowing&&this[C]||this[A](),this}[E](){this[B]||(this[C]=!1,this[d]=!0,this.emit("resume"),this.buffer.length?this[h]():this[s]?this[A]():this.emit("drain"))}resume(){return this[E]()}pause(){this[d]=!1,this[C]=!0}get destroyed(){return this[B]}get flowing(){return this[d]}get paused(){return this[C]}[m](e){return this[w]?this[I]+=1:this[I]+=e.length,this.buffer.push(e)}[y](){return this.buffer.length&&(this[w]?this[I]-=1:this[I]-=this.buffer.head.value.length),this.buffer.shift()}[h](){do{}while(this[g](this[y]()));this.buffer.length||this[s]||this.emit("drain")}[g](e){return!!e&&(this.emit("data",e),this.flowing)}pipe(e,t){if(this[B])return;const r=this[a];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=!1!==t.end;const n={dest:e,opts:t,ondrain:e=>this[E]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[E](),r&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{"data"!==e||this.pipes.length||this.flowing?S(e)&&this[a]&&(super.emit(e),this.removeAllListeners(e)):this[E]()}}get emittedEnd(){return this[a]}[A](){this[c]||this[a]||this[B]||0!==this.buffer.length||!this[s]||(this[c]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[u]&&this.emit("close"),this[c]=!1)}emit(e,t){if("error"!==e&&"close"!==e&&e!==B&&this[B])return;if("data"===e){if(!t)return;this.pipes.length&&this.pipes.forEach(e=>!1===e.dest.write(t)&&this.pause())}else if("end"===e){if(!0===this[a])return;this[a]=!0,this.readable=!1,this[p]&&(t=this[p].end())&&(this.pipes.forEach(e=>e.dest.write(t)),super.emit("data",t)),this.pipes.forEach(e=>{e.dest.removeListener("drain",e.ondrain),e.opts.end&&e.dest.end()})}else if("close"===e&&(this[u]=!0,!this[a]&&!this[B]))return;const r=new Array(arguments.length);if(r[0]=e,r[1]=t,arguments.length>2)for(let e=2;e<arguments.length;e++)r[e]=arguments[e];try{return super.emit.apply(this,r)}finally{S(e)?this.removeAllListeners(e):this[A]()}}collect(){const e=[];return e.dataLength=0,this.on("data",t=>{e.push(t),e.dataLength+=t.length}),this.promise().then(()=>e)}concat(){return this[w]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[w]?Promise.reject(new Error("cannot concat in objectMode")):this[f]?e.join(""):b.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(B,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",e=>t(e))})}[v](){return{next:()=>{const e=this.read();if(null!==e)return Promise.resolve({done:!1,value:e});if(this[s])return Promise.resolve({done:!0});let t=null,r=null;const n=e=>{this.removeListener("data",i),this.removeListener("end",o),r(e)},i=e=>{this.removeListener("error",n),this.removeListener("end",o),this.pause(),t({value:e,done:!!this[s]})},o=()=>{this.removeListener("error",n),this.removeListener("data",i),t({done:!0})},A=()=>n(new Error("stream destroyed"));return new Promise((e,s)=>{r=s,t=e,this.once(B,A),this.once("error",n),this.once("end",o),this.once("data",i)})}}}[D](){return{next:()=>{const e=this.read();return{value:e,done:null===e}}}}destroy(e){return this[B]?(e?this.emit("error",e):this.emit(B),this):(this[B]=!0,this.buffer=new i,this[I]=0,"function"!=typeof this.close||this[u]||this.close(),e?this.emit("error",e):this.emit(B),this)}static isStream(t){return!!t&&(t instanceof e||t instanceof n&&("function"==typeof t.pipe||"function"==typeof t.write&&"function"==typeof t.end))}}},90051:e=>{e.exports=Object.freeze({Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,ZLIB_VERNUM:4736,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1})},20671:(e,t,r)=>{"use strict";const n=r(42357),i=r(64293).Buffer,o=r(78761),s=t.constants=r(90051),A=r(44380),a=i.concat;class c extends Error{constructor(e,t){super("zlib: "+e),this.errno=t,this.code=u.get(t)}get name(){return"ZlibError"}}const u=new Map([[s.Z_OK,"Z_OK"],[s.Z_STREAM_END,"Z_STREAM_END"],[s.Z_NEED_DICT,"Z_NEED_DICT"],[s.Z_ERRNO,"Z_ERRNO"],[s.Z_STREAM_ERROR,"Z_STREAM_ERROR"],[s.Z_DATA_ERROR,"Z_DATA_ERROR"],[s.Z_MEM_ERROR,"Z_MEM_ERROR"],[s.Z_BUF_ERROR,"Z_BUF_ERROR"],[s.Z_VERSION_ERROR,"Z_VERSION_ERROR"]]),l=new Set([s.Z_NO_FLUSH,s.Z_PARTIAL_FLUSH,s.Z_SYNC_FLUSH,s.Z_FULL_FLUSH,s.Z_FINISH,s.Z_BLOCK]),h=new Set([s.Z_FILTERED,s.Z_HUFFMAN_ONLY,s.Z_RLE,s.Z_FIXED,s.Z_DEFAULT_STRATEGY]),g=Symbol("opts"),f=Symbol("flushFlag"),p=Symbol("finishFlush"),d=Symbol("handle"),C=Symbol("onError"),E=Symbol("level"),I=Symbol("strategy"),m=Symbol("ended");class y extends A{constructor(e,t){if(super(e),this[m]=!1,this[g]=e=e||{},e.flush&&!l.has(e.flush))throw new TypeError("Invalid flush flag: "+e.flush);if(e.finishFlush&&!l.has(e.finishFlush))throw new TypeError("Invalid flush flag: "+e.finishFlush);if(this[f]=e.flush||s.Z_NO_FLUSH,this[p]=void 0!==e.finishFlush?e.finishFlush:s.Z_FINISH,e.chunkSize&&e.chunkSize<s.Z_MIN_CHUNK)throw new RangeError("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<s.Z_MIN_WINDOWBITS||e.windowBits>s.Z_MAX_WINDOWBITS))throw new RangeError("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<s.Z_MIN_LEVEL||e.level>s.Z_MAX_LEVEL))throw new RangeError("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<s.Z_MIN_MEMLEVEL||e.memLevel>s.Z_MAX_MEMLEVEL))throw new RangeError("Invalid memLevel: "+e.memLevel);if(e.strategy&&!h.has(e.strategy))throw new TypeError("Invalid strategy: "+e.strategy);if(e.dictionary&&!(e.dictionary instanceof i))throw new TypeError("Invalid dictionary: it should be a Buffer instance");this[d]=new o[t](e),this[C]=e=>{this.close();const t=new c(e.message,e.errno);this.emit("error",t)},this[d].on("error",this[C]);const r="number"==typeof e.level?e.level:s.Z_DEFAULT_COMPRESSION;var n="number"==typeof e.strategy?e.strategy:s.Z_DEFAULT_STRATEGY;this[E]=r,this[I]=n,this.once("end",this.close)}close(){this[d]&&(this[d].close(),this[d]=null,this.emit("close"))}params(e,t){if(!this[d])throw new Error("cannot switch params when binding is closed");if(!this[d].params)throw new Error("not supported in this implementation");if(e<s.Z_MIN_LEVEL||e>s.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(!h.has(t))throw new TypeError("Invalid strategy: "+t);if(this[E]!==e||this[I]!==t){this.flush(s.Z_SYNC_FLUSH),n(this[d],"zlib binding closed");const r=this[d].flush;this[d].flush=(e,t)=>{this[d].flush=r,this.flush(e),t()},this[d].params(e,t),this[d]&&(this[E]=e,this[I]=t)}}reset(){return n(this[d],"zlib binding closed"),this[d].reset()}flush(e){if(void 0===e&&(e=s.Z_FULL_FLUSH),this.ended)return;const t=this[f];this[f]=e,this.write(i.alloc(0)),this[f]=t}end(e,t,r){return e&&this.write(e,t),this.flush(this[p]),this[m]=!0,super.end(null,null,r)}get ended(){return this[m]}write(e,t,r){"function"==typeof t&&(r=t,t="utf8"),"string"==typeof e&&(e=i.from(e,t)),n(this[d],"zlib binding closed");const o=this[d]._handle,s=o.close;o.close=()=>{};const A=this[d].close;let c,u;this[d].close=()=>{},i.concat=e=>e;try{c=this[d]._processChunk(e,this[f])}catch(e){this[C](e)}finally{i.concat=a,this[d]&&(this[d]._handle=o,o.close=s,this[d].close=A,this[d].removeAllListeners("error"))}if(c)if(Array.isArray(c)&&c.length>0){u=super.write(i.from(c[0]));for(let e=1;e<c.length;e++)u=super.write(c[e])}else u=super.write(i.from(c));return r&&r(),u}}t.Deflate=class extends y{constructor(e){super(e,"Deflate")}},t.Inflate=class extends y{constructor(e){super(e,"Inflate")}},t.Gzip=class extends y{constructor(e){super(e,"Gzip")}},t.Gunzip=class extends y{constructor(e){super(e,"Gunzip")}},t.DeflateRaw=class extends y{constructor(e){super(e,"DeflateRaw")}},t.InflateRaw=class extends y{constructor(e){super(e,"InflateRaw")}},t.Unzip=class extends y{constructor(e){super(e,"Unzip")}}},11436:(e,t,r)=>{var n=r(85622),i=r(35747),o=parseInt("0777",8);function s(e,t,r,A){"function"==typeof t?(r=t,t={}):t&&"object"==typeof t||(t={mode:t});var a=t.mode,c=t.fs||i;void 0===a&&(a=o&~process.umask()),A||(A=null);var u=r||function(){};e=n.resolve(e),c.mkdir(e,a,(function(r){if(!r)return u(null,A=A||e);switch(r.code){case"ENOENT":s(n.dirname(e),t,(function(r,n){r?u(r,n):s(e,t,u,n)}));break;default:c.stat(e,(function(e,t){e||!t.isDirectory()?u(r,A):u(null,A)}))}}))}e.exports=s.mkdirp=s.mkdirP=s,s.sync=function e(t,r,s){r&&"object"==typeof r||(r={mode:r});var A=r.mode,a=r.fs||i;void 0===A&&(A=o&~process.umask()),s||(s=null),t=n.resolve(t);try{a.mkdirSync(t,A),s=s||t}catch(i){switch(i.code){case"ENOENT":s=e(n.dirname(t),r,s),e(t,r,s);break;default:var c;try{c=a.statSync(t)}catch(e){throw i}if(!c.isDirectory())throw i}}return s}},75319:(e,t,r)=>{var n=r(92413);function i(e){n.apply(this),e=e||{},this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=e.replace,this._prompt=e.prompt||null,this._hadControl=!1}function o(e){return function(){var t=this._dest,r=this._src;t&&t[e]&&t[e].apply(t,arguments),r&&r[e]&&r[e].apply(r,arguments)}}e.exports=i,i.prototype=Object.create(n.prototype),Object.defineProperty(i.prototype,"constructor",{value:i,enumerable:!1}),i.prototype.mute=function(){this.muted=!0},i.prototype.unmute=function(){this.muted=!1},Object.defineProperty(i.prototype,"_onpipe",{value:function(e){this._src=e},enumerable:!1,writable:!0,configurable:!0}),Object.defineProperty(i.prototype,"isTTY",{get:function(){return this._dest?this._dest.isTTY:!!this._src&&this._src.isTTY},set:function(e){Object.defineProperty(this,"isTTY",{value:e,enumerable:!0,writable:!0,configurable:!0})},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"rows",{get:function(){return this._dest?this._dest.rows:this._src?this._src.rows:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"columns",{get:function(){return this._dest?this._dest.columns:this._src?this._src.columns:void 0},enumerable:!0,configurable:!0}),i.prototype.pipe=function(e,t){return this._dest=e,n.prototype.pipe.call(this,e,t)},i.prototype.pause=function(){if(this._src)return this._src.pause()},i.prototype.resume=function(){if(this._src)return this._src.resume()},i.prototype.write=function(e){if(this.muted){if(!this.replace)return!0;if(e.match(/^\u001b/))return 0===e.indexOf(this._prompt)&&(e=(e=e.substr(this._prompt.length)).replace(/./g,this.replace),e=this._prompt+e),this._hadControl=!0,this.emit("data",e);this._prompt&&this._hadControl&&0===e.indexOf(this._prompt)&&(this._hadControl=!1,this.emit("data",this._prompt),e=e.substr(this._prompt.length)),e=e.toString().replace(/./g,this.replace)}this.emit("data",e)},i.prototype.end=function(e){this.muted&&(e=e&&this.replace?e.toString().replace(/./g,this.replace):null),e&&this.emit("data",e),this.emit("end")},i.prototype.destroy=o("destroy"),i.prototype.destroySoon=o("destroySoon"),i.prototype.close=o("close")},19793:(e,t,r)=>{"use strict";const n="undefined"==typeof URL?r(78835).URL:URL,i=(e,t)=>t.some(t=>t instanceof RegExp?t.test(e):t===e),o=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},Reflect.has(t,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(t,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(t,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(e=e.trim(),/^data:/i.test(e))return((e,{stripHash:t})=>{const r=e.match(/^data:(.*?),(.*?)(?:#(.*))?$/);if(!r)throw new Error("Invalid URL: "+e);const n=r[1].split(";"),i=r[2],o=t?"":r[3];let s=!1;"base64"===n[n.length-1]&&(n.pop(),s=!0);const A=(n.shift()||"").toLowerCase(),a=[...n.map(e=>{let[t,r=""]=e.split("=").map(e=>e.trim());return"charset"===t&&(r=r.toLowerCase(),"us-ascii"===r)?"":`${t}${r?"="+r:""}`}).filter(Boolean)];return s&&a.push("base64"),(0!==a.length||A&&"text/plain"!==A)&&a.unshift(A),`data:${a.join(";")},${s?i.trim():i}${o?"#"+o:""}`})(e,t);const r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));const o=new n(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&"https:"===o.protocol&&(o.protocol="http:"),t.forceHttps&&"http:"===o.protocol&&(o.protocol="https:"),t.stripAuthentication&&(o.username="",o.password=""),t.stripHash&&(o.hash=""),o.pathname&&(o.pathname=o.pathname.replace(/((?!:).|^)\/{2,}/g,(e,t)=>/^(?!\/)/g.test(t)?t+"/":"/")),o.pathname&&(o.pathname=decodeURI(o.pathname)),!0===t.removeDirectoryIndex&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let e=o.pathname.split("/");const r=e[e.length-1];i(r,t.removeDirectoryIndex)&&(e=e.slice(0,e.length-1),o.pathname=e.slice(1).join("/")+"/")}if(o.hostname&&(o.hostname=o.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(o.hostname)&&(o.hostname=o.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(const e of[...o.searchParams.keys()])i(e,t.removeQueryParameters)&&o.searchParams.delete(e);return t.sortQueryParameters&&o.searchParams.sort(),t.removeTrailingSlash&&(o.pathname=o.pathname.replace(/\/$/,"")),e=o.toString(),!t.removeTrailingSlash&&"/"!==o.pathname||""!==o.hash||(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};e.exports=o,e.exports.default=o},91162:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}e.exports=n(i),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0})}))},27180:(e,t,r)=>{var n=r(98984);function i(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function o(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}e.exports=n(i),e.exports.strict=n(o),i.proto=i((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return i(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return o(this)},configurable:!0})}))},90834:(e,t,r)=>{"use strict";const n=r(81573),i=new WeakMap,o=(e,t={})=>{if("function"!=typeof e)throw new TypeError("Expected a function");let r,o=!1,s=0;const A=e.displayName||e.name||"<anonymous>",a=function(...n){if(i.set(a,++s),o){if(!0===t.throw)throw new Error(`Function \`${A}\` can only be called once`);return r}return o=!0,r=e.apply(this,n),e=null,r};return n(a,e),i.set(a,s),a};e.exports=o,e.exports.default=o,e.exports.callCount=e=>{if(!i.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return i.get(e)}},82941:e=>{"use strict";var t="win32"===process.platform,r=t?/[^:]\\$/:/.\/$/;e.exports=function(){var e;return e=t?process.env.TEMP||process.env.TMP||(process.env.SystemRoot||process.env.windir)+"\\temp":process.env.TMPDIR||process.env.TMP||process.env.TEMP||"/tmp",r.test(e)&&(e=e.slice(0,-1)),e}},59351:e=>{"use strict";class t extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}}class r{static fn(e){return(...t)=>new r((r,n,i)=>{t.push(i),e(...t).then(r,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,r)=>{this._reject=r;const n=e=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(e)};return Object.defineProperties(n,{shouldReject:{get:()=>this._rejectOnCancel,set:e=>{this._rejectOnCancel=e}}}),e(e=>{this._isPending=!1,t(e)},e=>{this._isPending=!1,r(e)},n)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(this._isPending&&!this._isCanceled){if(this._cancelHandlers.length>0)try{for(const e of this._cancelHandlers)e()}catch(e){this._reject(e)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new t(e))}}get isCanceled(){return this._isCanceled}}Object.setPrototypeOf(r.prototype,Promise.prototype),e.exports=r,e.exports.CancelError=t},61578:(e,t,r)=>{"use strict";const n=r(60550),i=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let r=0;const i=()=>{r--,t.length>0&&t.shift()()},o=(e,t,...o)=>{r++;const s=n(e,...o);t(s),s.then(i,i)},s=(n,...i)=>new Promise(s=>((n,i,...s)=>{r<e?o(n,i,...s):t.push(o.bind(null,n,i,...s))})(n,s,...i));return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),s};e.exports=i,e.exports.default=i},60550:e=>{"use strict";e.exports=(e,...t)=>new Promise(r=>{r(e(...t))})},71471:e=>{"use strict";function t(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}e.exports="win32"===process.platform?r:t,e.exports.posix=t,e.exports.win32=r},37127:e=>{"use strict";const t=(e={})=>{const t=e.env||process.env;return"win32"!==(e.platform||process.platform)?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path"};e.exports=t,e.exports.default=t},5763:(e,t,r)=>{"use strict";const{promisify:n}=r(31669),i=r(35747);async function o(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return(await n(i[e])(r))[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}function s(e,t,r){if("string"!=typeof r)throw new TypeError("Expected a string, got "+typeof r);try{return i[e](r)[t]()}catch(e){if("ENOENT"===e.code)return!1;throw e}}t.isFile=o.bind(null,"stat","isFile"),t.isDirectory=o.bind(null,"stat","isDirectory"),t.isSymlink=o.bind(null,"lstat","isSymbolicLink"),t.isFileSync=s.bind(null,"statSync","isFile"),t.isDirectorySync=s.bind(null,"statSync","isDirectory"),t.isSymlinkSync=s.bind(null,"lstatSync","isSymbolicLink")},54722:(e,t,r)=>{"use strict";e.exports=r(18828)},71086:(e,t,r)=>{"use strict";const n=r(85622),i={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},o={...i,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"};e.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:n.sep,extglobChars:e=>({"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}),globChars:e=>!0===e?o:i}},47974:(e,t,r)=>{"use strict";const n=r(71086),i=r(3598),{MAX_LENGTH:o,POSIX_REGEX_SOURCE:s,REGEX_NON_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_BACKREF:a,REPLACEMENTS:c}=n,u=(e,t)=>{if("function"==typeof t.expandRange)return t.expandRange(...e,t);e.sort();const r=`[${e.join("-")}]`;try{new RegExp(r)}catch(t){return e.map(e=>i.escapeRegex(e)).join("..")}return r},l=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,h=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected a string");e=c[e]||e;const r={...t},h="number"==typeof r.maxLength?Math.min(o,r.maxLength):o;let g=e.length;if(g>h)throw new SyntaxError(`Input length: ${g}, exceeds maximum allowed length: ${h}`);const f={type:"bos",value:"",output:r.prepend||""},p=[f],d=r.capture?"":"?:",C=i.isWindows(t),E=n.globChars(C),I=n.extglobChars(E),{DOT_LITERAL:m,PLUS_LITERAL:y,SLASH_LITERAL:w,ONE_CHAR:B,DOTS_SLASH:Q,NO_DOT:v,NO_DOT_SLASH:D,NO_DOTS_SLASH:b,QMARK:S,QMARK_NO_DOT:k,STAR:x,START_ANCHOR:F}=E,M=e=>`(${d}(?:(?!${F}${e.dot?Q:m}).)*?)`,N=r.dot?"":v,R=r.dot?S:k;let K=!0===r.bash?M(r):x;r.capture&&(K=`(${K})`),"boolean"==typeof r.noext&&(r.noextglob=r.noext);const L={input:e,index:-1,start:0,dot:!0===r.dot,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:p};e=i.removePrefix(e,L),g=e.length;const T=[],P=[],U=[];let _,O=f;const j=()=>L.index===g-1,Y=L.peek=(t=1)=>e[L.index+t],G=L.advance=()=>e[++L.index],J=()=>e.slice(L.index+1),H=(e="",t=0)=>{L.consumed+=e,L.index+=t},q=e=>{L.output+=null!=e.output?e.output:e.value,H(e.value)},z=()=>{let e=1;for(;"!"===Y()&&("("!==Y(2)||"?"===Y(3));)G(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},W=e=>{L[e]++,U.push(e)},V=e=>{L[e]--,U.pop()},X=e=>{if("globstar"===O.type){const t=L.braces>0&&("comma"===e.type||"brace"===e.type),r=!0===e.extglob||T.length&&("pipe"===e.type||"paren"===e.type);"slash"===e.type||"paren"===e.type||t||r||(L.output=L.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=K,L.output+=O.output)}if(T.length&&"paren"!==e.type&&!I[e.value]&&(T[T.length-1].inner+=e.value),(e.value||e.output)&&q(e),O&&"text"===O.type&&"text"===e.type)return O.value+=e.value,void(O.output=(O.output||"")+e.value);e.prev=O,p.push(e),O=e},Z=(e,t)=>{const n={...I[t],conditions:1,inner:""};n.prev=O,n.parens=L.parens,n.output=L.output;const i=(r.capture?"(":"")+n.open;W("parens"),X({type:e,value:t,output:L.output?"":B}),X({type:"paren",extglob:!0,value:G(),output:i}),T.push(n)},$=e=>{let t=e.close+(r.capture?")":"");if("negate"===e.type){let n=K;e.inner&&e.inner.length>1&&e.inner.includes("/")&&(n=M(r)),(n!==K||j()||/^\)+$/.test(J()))&&(t=e.close=")$))"+n),"bos"===e.prev.type&&j()&&(L.negatedExtglob=!0)}X({type:"paren",extglob:!0,value:_,output:t}),V("parens")};if(!1!==r.fastpaths&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,o=e.replace(a,(e,t,r,i,o,s)=>"\\"===i?(n=!0,e):"?"===i?t?t+i+(o?S.repeat(o.length):""):0===s?R+(o?S.repeat(o.length):""):S.repeat(r.length):"."===i?m.repeat(r.length):"*"===i?t?t+i+(o?K:""):K:t?e:"\\"+e);return!0===n&&(o=!0===r.unescape?o.replace(/\\/g,""):o.replace(/\\+/g,e=>e.length%2==0?"\\\\":e?"\\":"")),o===e&&!0===r.contains?(L.output=e,L):(L.output=i.wrapOutput(o,L,t),L)}for(;!j();){if(_=G(),"\0"===_)continue;if("\\"===_){const e=Y();if("/"===e&&!0!==r.bash)continue;if("."===e||";"===e)continue;if(!e){_+="\\",X({type:"text",value:_});continue}const t=/^\\+/.exec(J());let n=0;if(t&&t[0].length>2&&(n=t[0].length,L.index+=n,n%2!=0&&(_+="\\")),!0===r.unescape?_=G()||"":_+=G()||"",0===L.brackets){X({type:"text",value:_});continue}}if(L.brackets>0&&("]"!==_||"["===O.value||"[^"===O.value)){if(!1!==r.posix&&":"===_){const e=O.value.slice(1);if(e.includes("[")&&(O.posix=!0,e.includes(":"))){const e=O.value.lastIndexOf("["),t=O.value.slice(0,e),r=O.value.slice(e+2),n=s[r];if(n){O.value=t+n,L.backtrack=!0,G(),f.output||1!==p.indexOf(O)||(f.output=B);continue}}}("["===_&&":"!==Y()||"-"===_&&"]"===Y())&&(_="\\"+_),"]"!==_||"["!==O.value&&"[^"!==O.value||(_="\\"+_),!0===r.posix&&"!"===_&&"["===O.value&&(_="^"),O.value+=_,q({value:_});continue}if(1===L.quotes&&'"'!==_){_=i.escapeRegex(_),O.value+=_,q({value:_});continue}if('"'===_){L.quotes=1===L.quotes?0:1,!0===r.keepQuotes&&X({type:"text",value:_});continue}if("("===_){W("parens"),X({type:"paren",value:_});continue}if(")"===_){if(0===L.parens&&!0===r.strictBrackets)throw new SyntaxError(l("opening","("));const e=T[T.length-1];if(e&&L.parens===e.parens+1){$(T.pop());continue}X({type:"paren",value:_,output:L.parens?")":"\\)"}),V("parens");continue}if("["===_){if(!0!==r.nobracket&&J().includes("]"))W("brackets");else{if(!0!==r.nobracket&&!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));_="\\"+_}X({type:"bracket",value:_});continue}if("]"===_){if(!0===r.nobracket||O&&"bracket"===O.type&&1===O.value.length){X({type:"text",value:_,output:"\\"+_});continue}if(0===L.brackets){if(!0===r.strictBrackets)throw new SyntaxError(l("opening","["));X({type:"text",value:_,output:"\\"+_});continue}V("brackets");const e=O.value.slice(1);if(!0===O.posix||"^"!==e[0]||e.includes("/")||(_="/"+_),O.value+=_,q({value:_}),!1===r.literalBrackets||i.hasRegexChars(e))continue;const t=i.escapeRegex(O.value);if(L.output=L.output.slice(0,-O.value.length),!0===r.literalBrackets){L.output+=t,O.value=t;continue}O.value=`(${d}${t}|${O.value})`,L.output+=O.value;continue}if("{"===_&&!0!==r.nobrace){W("braces");const e={type:"brace",value:_,output:"(",outputIndex:L.output.length,tokensIndex:L.tokens.length};P.push(e),X(e);continue}if("}"===_){const e=P[P.length-1];if(!0===r.nobrace||!e){X({type:"text",value:_,output:_});continue}let t=")";if(!0===e.dots){const e=p.slice(),n=[];for(let t=e.length-1;t>=0&&(p.pop(),"brace"!==e[t].type);t--)"dots"!==e[t].type&&n.unshift(e[t].value);t=u(n,r),L.backtrack=!0}if(!0!==e.comma&&!0!==e.dots){const r=L.output.slice(0,e.outputIndex),n=L.tokens.slice(e.tokensIndex);e.value=e.output="\\{",_=t="\\}",L.output=r;for(const e of n)L.output+=e.output||e.value}X({type:"brace",value:_,output:t}),V("braces"),P.pop();continue}if("|"===_){T.length>0&&T[T.length-1].conditions++,X({type:"text",value:_});continue}if(","===_){let e=_;const t=P[P.length-1];t&&"braces"===U[U.length-1]&&(t.comma=!0,e="|"),X({type:"comma",value:_,output:e});continue}if("/"===_){if("dot"===O.type&&L.index===L.start+1){L.start=L.index+1,L.consumed="",L.output="",p.pop(),O=f;continue}X({type:"slash",value:_,output:w});continue}if("."===_){if(L.braces>0&&"dot"===O.type){"."===O.value&&(O.output=m);const e=P[P.length-1];O.type="dots",O.output+=_,O.value+=_,e.dots=!0;continue}if(L.braces+L.parens===0&&"bos"!==O.type&&"slash"!==O.type){X({type:"text",value:_,output:m});continue}X({type:"dot",value:_,output:m});continue}if("?"===_){if(!(O&&"("===O.value)&&!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("qmark",_);continue}if(O&&"paren"===O.type){const e=Y();let t=_;if("<"===e&&!i.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");("("===O.value&&!/[!=<:]/.test(e)||"<"===e&&!/<([!=]|\w+>)/.test(J()))&&(t="\\"+_),X({type:"text",value:_,output:t});continue}if(!0!==r.dot&&("slash"===O.type||"bos"===O.type)){X({type:"qmark",value:_,output:k});continue}X({type:"qmark",value:_,output:S});continue}if("!"===_){if(!0!==r.noextglob&&"("===Y()&&("?"!==Y(2)||!/[!=<:]/.test(Y(3)))){Z("negate",_);continue}if(!0!==r.nonegate&&0===L.index){z();continue}}if("+"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){Z("plus",_);continue}if(O&&"("===O.value||!1===r.regex){X({type:"plus",value:_,output:y});continue}if(O&&("bracket"===O.type||"paren"===O.type||"brace"===O.type)||L.parens>0){X({type:"plus",value:_});continue}X({type:"plus",value:y});continue}if("@"===_){if(!0!==r.noextglob&&"("===Y()&&"?"!==Y(2)){X({type:"at",extglob:!0,value:_,output:""});continue}X({type:"text",value:_});continue}if("*"!==_){"$"!==_&&"^"!==_||(_="\\"+_);const e=A.exec(J());e&&(_+=e[0],L.index+=e[0].length),X({type:"text",value:_});continue}if(O&&("globstar"===O.type||!0===O.star)){O.type="star",O.star=!0,O.value+=_,O.output=K,L.backtrack=!0,L.globstar=!0,H(_);continue}let t=J();if(!0!==r.noextglob&&/^\([^?]/.test(t)){Z("star",_);continue}if("star"===O.type){if(!0===r.noglobstar){H(_);continue}const n=O.prev,i=n.prev,o="slash"===n.type||"bos"===n.type,s=i&&("star"===i.type||"globstar"===i.type);if(!0===r.bash&&(!o||t[0]&&"/"!==t[0])){X({type:"star",value:_,output:""});continue}const A=L.braces>0&&("comma"===n.type||"brace"===n.type),a=T.length&&("pipe"===n.type||"paren"===n.type);if(!o&&"paren"!==n.type&&!A&&!a){X({type:"star",value:_,output:""});continue}for(;"/**"===t.slice(0,3);){const r=e[L.index+4];if(r&&"/"!==r)break;t=t.slice(3),H("/**",3)}if("bos"===n.type&&j()){O.type="globstar",O.value+=_,O.output=M(r),L.output=O.output,L.globstar=!0,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&!s&&j()){L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=M(r)+(r.strictSlashes?")":"|$)"),O.value+=_,L.globstar=!0,L.output+=n.output+O.output,H(_);continue}if("slash"===n.type&&"bos"!==n.prev.type&&"/"===t[0]){const e=void 0!==t[1]?"|$":"";L.output=L.output.slice(0,-(n.output+O.output).length),n.output="(?:"+n.output,O.type="globstar",O.output=`${M(r)}${w}|${w}${e})`,O.value+=_,L.output+=n.output+O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}if("bos"===n.type&&"/"===t[0]){O.type="globstar",O.value+=_,O.output=`(?:^|${w}|${M(r)}${w})`,L.output=O.output,L.globstar=!0,H(_+G()),X({type:"slash",value:"/",output:""});continue}L.output=L.output.slice(0,-O.output.length),O.type="globstar",O.output=M(r),O.value+=_,L.output+=O.output,L.globstar=!0,H(_);continue}const n={type:"star",value:_,output:K};!0!==r.bash?!O||"bracket"!==O.type&&"paren"!==O.type||!0!==r.regex?(L.index!==L.start&&"slash"!==O.type&&"dot"!==O.type||("dot"===O.type?(L.output+=D,O.output+=D):!0===r.dot?(L.output+=b,O.output+=b):(L.output+=N,O.output+=N),"*"!==Y()&&(L.output+=B,O.output+=B)),X(n)):(n.output=_,X(n)):(n.output=".*?","bos"!==O.type&&"slash"!==O.type||(n.output=N+n.output),X(n))}for(;L.brackets>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","]"));L.output=i.escapeLast(L.output,"["),V("brackets")}for(;L.parens>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing",")"));L.output=i.escapeLast(L.output,"("),V("parens")}for(;L.braces>0;){if(!0===r.strictBrackets)throw new SyntaxError(l("closing","}"));L.output=i.escapeLast(L.output,"{"),V("braces")}if(!0===r.strictSlashes||"star"!==O.type&&"bracket"!==O.type||X({type:"maybe_slash",value:"",output:w+"?"}),!0===L.backtrack){L.output="";for(const e of L.tokens)L.output+=null!=e.output?e.output:e.value,e.suffix&&(L.output+=e.suffix)}return L};h.fastpaths=(e,t)=>{const r={...t},s="number"==typeof r.maxLength?Math.min(o,r.maxLength):o,A=e.length;if(A>s)throw new SyntaxError(`Input length: ${A}, exceeds maximum allowed length: ${s}`);e=c[e]||e;const a=i.isWindows(t),{DOT_LITERAL:u,SLASH_LITERAL:l,ONE_CHAR:h,DOTS_SLASH:g,NO_DOT:f,NO_DOTS:p,NO_DOTS_SLASH:d,STAR:C,START_ANCHOR:E}=n.globChars(a),I=r.dot?p:f,m=r.dot?d:f,y=r.capture?"":"?:";let w=!0===r.bash?".*?":C;r.capture&&(w=`(${w})`);const B=e=>!0===e.noglobstar?w:`(${y}(?:(?!${E}${e.dot?g:u}).)*?)`,Q=e=>{switch(e){case"*":return`${I}${h}${w}`;case".*":return`${u}${h}${w}`;case"*.*":return`${I}${w}${u}${h}${w}`;case"*/*":return`${I}${w}${l}${h}${m}${w}`;case"**":return I+B(r);case"**/*":return`(?:${I}${B(r)}${l})?${m}${h}${w}`;case"**/*.*":return`(?:${I}${B(r)}${l})?${m}${w}${u}${h}${w}`;case"**/.*":return`(?:${I}${B(r)}${l})?${u}${h}${w}`;default:{const t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;const r=Q(t[1]);if(!r)return;return r+u+t[2]}}},v=i.removePrefix(e,{negated:!1,prefix:""});let D=Q(v);return D&&!0!==r.strictSlashes&&(D+=l+"?"),D},e.exports=h},18828:(e,t,r)=>{"use strict";const n=r(85622),i=r(95321),o=r(47974),s=r(3598),A=r(71086),a=(e,t,r=!1)=>{if(Array.isArray(e)){const n=e.map(e=>a(e,t,r));return e=>{for(const t of n){const r=t(e);if(r)return r}return!1}}const n=(i=e)&&"object"==typeof i&&!Array.isArray(i)&&e.tokens&&e.input;var i;if(""===e||"string"!=typeof e&&!n)throw new TypeError("Expected pattern to be a non-empty string");const o=t||{},A=s.isWindows(t),c=n?a.compileRe(e,t):a.makeRe(e,t,!1,!0),u=c.state;delete c.state;let l=()=>!1;if(o.ignore){const e={...t,ignore:null,onMatch:null,onResult:null};l=a(o.ignore,e,r)}const h=(r,n=!1)=>{const{isMatch:i,match:s,output:h}=a.test(r,c,t,{glob:e,posix:A}),g={glob:e,state:u,regex:c,posix:A,input:r,output:h,match:s,isMatch:i};return"function"==typeof o.onResult&&o.onResult(g),!1===i?(g.isMatch=!1,!!n&&g):l(r)?("function"==typeof o.onIgnore&&o.onIgnore(g),g.isMatch=!1,!!n&&g):("function"==typeof o.onMatch&&o.onMatch(g),!n||g)};return r&&(h.state=u),h};a.test=(e,t,r,{glob:n,posix:i}={})=>{if("string"!=typeof e)throw new TypeError("Expected input to be a string");if(""===e)return{isMatch:!1,output:""};const o=r||{},A=o.format||(i?s.toPosixSlashes:null);let c=e===n,u=c&&A?A(e):e;return!1===c&&(u=A?A(e):e,c=u===n),!1!==c&&!0!==o.capture||(c=!0===o.matchBase||!0===o.basename?a.matchBase(e,t,r,i):t.exec(u)),{isMatch:Boolean(c),match:c,output:u}},a.matchBase=(e,t,r,i=s.isWindows(r))=>(t instanceof RegExp?t:a.makeRe(t,r)).test(n.basename(e)),a.isMatch=(e,t,r)=>a(t,r)(e),a.parse=(e,t)=>Array.isArray(e)?e.map(e=>a.parse(e,t)):o(e,{...t,fastpaths:!1}),a.scan=(e,t)=>i(e,t),a.compileRe=(e,t,r=!1,n=!1)=>{if(!0===r)return e.output;const i=t||{},o=i.contains?"":"^",s=i.contains?"":"$";let A=`${o}(?:${e.output})${s}`;e&&!0===e.negated&&(A=`^(?!${A}).*$`);const c=a.toRegex(A,t);return!0===n&&(c.state=e),c},a.makeRe=(e,t,r=!1,n=!1)=>{if(!e||"string"!=typeof e)throw new TypeError("Expected a non-empty string");const i=t||{};let s,A={negated:!1,fastpaths:!0},c="";return e.startsWith("./")&&(e=e.slice(2),c=A.prefix="./"),!1===i.fastpaths||"."!==e[0]&&"*"!==e[0]||(s=o.fastpaths(e,t)),void 0===s?(A=o(e,t),A.prefix=c+(A.prefix||"")):A.output=s,a.compileRe(A,t,r,n)},a.toRegex=(e,t)=>{try{const r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(e){if(t&&!0===t.debug)throw e;return/$^/}},a.constants=A,e.exports=a},95321:(e,t,r)=>{"use strict";const n=r(3598),{CHAR_ASTERISK:i,CHAR_AT:o,CHAR_BACKWARD_SLASH:s,CHAR_COMMA:A,CHAR_DOT:a,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:u,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:h,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:f,CHAR_QUESTION_MARK:p,CHAR_RIGHT_CURLY_BRACE:d,CHAR_RIGHT_PARENTHESES:C,CHAR_RIGHT_SQUARE_BRACKET:E}=r(71086),I=e=>e===u||e===s,m=e=>{!0!==e.isPrefix&&(e.depth=e.isGlobstar?1/0:1)};e.exports=(e,t)=>{const r=t||{},y=e.length-1,w=!0===r.parts||!0===r.scanToEnd,B=[],Q=[],v=[];let D,b,S=e,k=-1,x=0,F=0,M=!1,N=!1,R=!1,K=!1,L=!1,T=!1,P=!1,U=!1,_=!1,O=0,j={value:"",depth:0,isGlob:!1};const Y=()=>k>=y,G=()=>(D=b,S.charCodeAt(++k));for(;k<y;){let e;if(b=G(),b!==s){if(!0===T||b===l){for(O++;!0!==Y()&&(b=G());)if(b!==s)if(b!==l){if(!0!==T&&b===a&&(b=G())===a){if(M=j.isBrace=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}if(!0!==T&&b===A){if(M=j.isBrace=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===d&&(O--,0===O)){T=!1,M=j.isBrace=!0,_=!0;break}}else O++;else P=j.backslashes=!0,G();if(!0===w)continue;break}if(b!==u){if(!0!==r.noext){if(!0===(b===f||b===o||b===i||b===p||b===c)&&S.charCodeAt(k+1)===h){if(R=j.isGlob=!0,K=j.isExtglob=!0,_=!0,!0===w){for(;!0!==Y()&&(b=G());)if(b!==s){if(b===C){R=j.isGlob=!0,_=!0;break}}else P=j.backslashes=!0,b=G();continue}break}}if(b===i){if(D===i&&(L=j.isGlobstar=!0),R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===p){if(R=j.isGlob=!0,_=!0,!0===w)continue;break}if(b===g)for(;!0!==Y()&&(e=G());)if(e!==s){if(e===E){if(N=j.isBracket=!0,R=j.isGlob=!0,_=!0,!0===w)continue;break}}else P=j.backslashes=!0,G();if(!0===r.nonegate||b!==c||k!==x){if(!0!==r.noparen&&b===h){if(R=j.isGlob=!0,!0===w){for(;!0!==Y()&&(b=G());)if(b!==h){if(b===C){_=!0;break}}else P=j.backslashes=!0,b=G();continue}break}if(!0===R){if(_=!0,!0===w)continue;break}}else U=j.negated=!0,x++}else{if(B.push(k),Q.push(j),j={value:"",depth:0,isGlob:!1},!0===_)continue;if(D===a&&k===x+1){x+=2;continue}F=k+1}}else P=j.backslashes=!0,b=G(),b===l&&(T=!0)}!0===r.noext&&(K=!1,R=!1);let J=S,H="",q="";x>0&&(H=S.slice(0,x),S=S.slice(x),F-=x),J&&!0===R&&F>0?(J=S.slice(0,F),q=S.slice(F)):!0===R?(J="",q=S):J=S,J&&""!==J&&"/"!==J&&J!==S&&I(J.charCodeAt(J.length-1))&&(J=J.slice(0,-1)),!0===r.unescape&&(q&&(q=n.removeBackslashes(q)),J&&!0===P&&(J=n.removeBackslashes(J)));const z={prefix:H,input:e,start:x,base:J,glob:q,isBrace:M,isBracket:N,isGlob:R,isExtglob:K,isGlobstar:L,negated:U};if(!0===r.tokens&&(z.maxDepth=0,I(b)||Q.push(j),z.tokens=Q),!0===r.parts||!0===r.tokens){let t;for(let n=0;n<B.length;n++){const i=t?t+1:x,o=B[n],s=e.slice(i,o);r.tokens&&(0===n&&0!==x?(Q[n].isPrefix=!0,Q[n].value=H):Q[n].value=s,m(Q[n]),z.maxDepth+=Q[n].depth),0===n&&""===s||v.push(s),t=o}if(t&&t+1<e.length){const n=e.slice(t+1);v.push(n),r.tokens&&(Q[Q.length-1].value=n,m(Q[Q.length-1]),z.maxDepth+=Q[Q.length-1].depth)}z.slashes=B,z.parts=v}return z}},3598:(e,t,r)=>{"use strict";const n=r(85622),i="win32"===process.platform,{REGEX_BACKSLASH:o,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:A,REGEX_SPECIAL_CHARS_GLOBAL:a}=r(71086);t.isObject=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),t.hasRegexChars=e=>A.test(e),t.isRegexChar=e=>1===e.length&&t.hasRegexChars(e),t.escapeRegex=e=>e.replace(a,"\\$1"),t.toPosixSlashes=e=>e.replace(o,"/"),t.removeBackslashes=e=>e.replace(s,e=>"\\"===e?"":e),t.supportsLookbehinds=()=>{const e=process.version.slice(1).split(".").map(Number);return 3===e.length&&e[0]>=9||8===e[0]&&e[1]>=10},t.isWindows=e=>e&&"boolean"==typeof e.windows?e.windows:!0===i||"\\"===n.sep,t.escapeLast=(e,r,n)=>{const i=e.lastIndexOf(r,n);return-1===i?e:"\\"===e[i-1]?t.escapeLast(e,r,i-1):`${e.slice(0,i)}\\${e.slice(i)}`},t.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r},t.wrapOutput=(e,t={},r={})=>{let n=`${r.contains?"":"^"}(?:${e})${r.contains?"":"$"}`;return!0===t.negated&&(n=`(?:^(?!${n}).*$)`),n}},79588:e=>{"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values={}},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),this._values.hasOwnProperty(e)||this._size++,this._values[e]=t};var r=/[^.^\]^[]+|(?=\[\]|\.\.)/g,n=/^\d+$/,i=/^\d/,o=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,s=/^\s*(['"]?)(.*?)(\1)\s*$/,A=!1,a=new t(512),c=new t(512),u=new t(512);try{new Function("")}catch(e){A=!0}function l(e){return a.get(e)||a.set(e,h(e).map((function(e){return e.replace(s,"$2")})))}function h(e){return e.match(r)}function g(e,t,r){return"string"==typeof t&&(r=t,t=!1),r=r||"data",(e=e||"")&&"["!==e.charAt(0)&&(e="."+e),t?function(e,t){var r,n=t,i=h(e);return f(i,(function(e,t,i,o,s){r=o===s.length-1,n+=(e=t||i?"["+e+"]":"."+e)+(r?")":" || {})")})),new Array(i.length+1).join("(")+n}(e,r):r+e}function f(e,t,r){var n,i,o,s,A=e.length;for(i=0;i<A;i++)(n=e[i])&&(d(n)&&(n='"'+n+'"'),o=!(s=p(n))&&/^\d+$/.test(n),t.call(r,n,s,o,i,e))}function p(e){return"string"==typeof e&&e&&-1!==["'",'"'].indexOf(e.charAt(0))}function d(e){return!p(e)&&(function(e){return e.match(i)&&!e.match(n)}(e)||function(e){return o.test(e)}(e))}e.exports={Cache:t,expr:g,split:h,normalizePath:l,setter:A?function(e){var t=l(e);return function(e,r){return function(e,t,r){var n=0,i=e.length;for(;n<i-1;)t=t[e[n++]];t[e[n]]=r}(t,e,r)}}:function(e){return c.get(e)||c.set(e,new Function("data, value",g(e,"data")+" = value"))},getter:A?function(e,t){var r=l(e);return function(e){return function(e,t,r){var n=0,i=e.length;for(;n<i;){if(null==r&&t)return;r=r[e[n++]]}return r}(r,t,e)}}:function(e,t){var r=e+"_"+t;return u.get(r)||u.set(r,new Function("data","return "+g(e,t,"data")))},join:function(e){return e.reduce((function(e,t){return e+(p(t)||n.test(t)?"["+t+"]":(e?".":"")+t)}),"")},forEach:function(e,t,r){f(h(e),t,r)}}},50372:(e,t,r)=>{var n=r(91162),i=r(97681),o=r(35747),s=function(){},A=/^v?\.0/.test(process.version),a=function(e){return"function"==typeof e},c=function(e,t,r,c){c=n(c);var u=!1;e.on("close",(function(){u=!0})),i(e,{readable:t,writable:r},(function(e){if(e)return c(e);u=!0,c()}));var l=!1;return function(t){if(!u&&!l)return l=!0,function(e){return!!A&&(!!o&&((e instanceof(o.ReadStream||s)||e instanceof(o.WriteStream||s))&&a(e.close)))}(e)?e.close(s):function(e){return e.setHeader&&a(e.abort)}(e)?e.abort():a(e.destroy)?e.destroy():void c(t||new Error("stream was destroyed"))}},u=function(e){e()},l=function(e,t){return e.pipe(t)};e.exports=function(){var e,t=Array.prototype.slice.call(arguments),r=a(t[t.length-1]||s)&&t.pop()||s;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var n=t.map((function(i,o){var s=o<t.length-1;return c(i,s,o>0,(function(t){e||(e=t),t&&n.forEach(u),s||(n.forEach(u),r(e))}))}));return t.reduce(l)}},82905:e=>{"use strict";class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,"function"==typeof this.onEviction)for(const[e,t]of this.oldCache.entries())this.onEviction(e,t);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}}e.exports=t},20663:e=>{"use strict";const t={};function r(e,r,n){n||(n=Error);class i extends n{constructor(e,t,n){super(function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(e,t,n))}}i.prototype.name=n.name,i.prototype.code=e,t[e]=i}function n(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>String(e)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:2===r?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}return`of ${t} ${String(e)}`}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){let i;var o,s;let A;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))A=`The ${e} ${i} ${n(t,"type")}`;else{A=`The "${e}" ${function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument"} ${i} ${n(t,"type")}`}return A+=". Received type "+typeof r,A}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},39138:e=>{"use strict";var t=new Set;e.exports.emitExperimentalWarning=process.emitWarning?function(e){if(!t.has(e)){var r=e+" is an experimental feature. This feature could change at any time";t.add(e),process.emitWarning(r,"ExperimentalWarning")}}:function(){}},72434:(e,t,r)=>{"use strict";var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=c;var i=r(58020),o=r(6729);r(85870)(c,i);for(var s=n(o.prototype),A=0;A<s.length;A++){var a=s[A];c.prototype[a]||(c.prototype[a]=o.prototype[a])}function c(e){if(!(this instanceof c))return new c(e);i.call(this,e),o.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||process.nextTick(l,this)}function l(e){e.end()}Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},52444:(e,t,r)=>{"use strict";e.exports=i;var n=r(54801);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(85870)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},58020:(e,t,r)=>{"use strict";var n;e.exports=B,B.ReadableState=w;r(28614).EventEmitter;var i=function(e,t){return e.listeners(t).length},o=r(49298),s=r(64293).Buffer,A=global.Uint8Array||function(){};var a,c=r(31669);a=c&&c.debuglog?c.debuglog("stream"):function(){};var u,l,h=r(43117),g=r(32340),f=r(77433).getHighWaterMark,p=r(20663).q,d=p.ERR_INVALID_ARG_TYPE,C=p.ERR_STREAM_PUSH_AFTER_EOF,E=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,m=r(39138).emitExperimentalWarning;r(85870)(B,o);var y=["error","close","destroy","pause","resume"];function w(e,t,i){n=n||r(72434),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=f(this,e,"readableHighWaterMark",i),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=r(69538).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function B(e){if(n=n||r(72434),!(this instanceof B))return new B(e);var t=this instanceof n;this._readableState=new w(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function Q(e,t,r,n,i){a("readableAddChunk",t);var o,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?b(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,S(e)))}(e,c);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof A||"string"==typeof t||void 0===t||e.objectMode||(r=new d("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(c,t)),o)e.emit("error",o);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)c.endEmitted?e.emit("error",new I):v(e,c,t,!0);else if(c.ended)e.emit("error",new C);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?v(e,c,t,!1):k(e,c)):v(e,c,t,!1)}else n||(c.reading=!1,k(e,c));return!c.ended&&(c.length<c.highWaterMark||0===c.length)}function v(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&b(e)),k(e,t)}Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),B.prototype.destroy=g.destroy,B.prototype._undestroy=g.undestroy,B.prototype._destroy=function(e,t){t(e)},B.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=s.from(e,t),t=""),r=!0),Q(this,e,t,!1,r)},B.prototype.unshift=function(e){return Q(this,e,null,!0,!1)},B.prototype.isPaused=function(){return!1===this._readableState.flowing},B.prototype.setEncoding=function(e){return u||(u=r(69538).s),this._readableState.decoder=new u(e),this._readableState.encoding=this._readableState.decoder.encoding,this};function D(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function b(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(a("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(S,e))}function S(e){var t=e._readableState;a("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||e.emit("readable"),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,R(e)}function k(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(x,e,t))}function x(e,t){for(var r=t.length;!t.reading&&!t.ended&&t.length<t.highWaterMark&&(a("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function F(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function M(e){a("readable nexttick read 0"),e.read(0)}function N(e,t){a("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),R(e),t.flowing&&!t.reading&&e.read(0)}function R(e){var t=e._readableState;for(a("flow",t.flowing);t.flowing&&null!==e.read(););}function K(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;a("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){a("endReadableNT",e.endEmitted,e.length),e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function P(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}B.prototype.read=function(e){a("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return a("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):b(this),null;if(0===(e=D(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return a("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&a("length less than watermark",i=!0),t.ended||t.reading?a("reading or ended",i=!1):i&&(a("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=D(r,t))),null===(n=e>0?K(e,t):null)?(t.needReadable=!0,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},B.prototype._read=function(e){this.emit("error",new E("_read()"))},B.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,t);var o=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?A:p;function s(t,i){a("onunpipe"),t===r&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,a("cleanup"),e.removeListener("close",g),e.removeListener("finish",f),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",s),r.removeListener("end",A),r.removeListener("end",p),r.removeListener("data",l),u=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function A(){a("onend"),e.end()}n.endEmitted?process.nextTick(o):r.once("end",o),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;a("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&i(e,"data")&&(t.flowing=!0,R(e))}}(r);e.on("drain",c);var u=!1;function l(t){a("ondata");var i=e.write(t);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==P(n.pipes,e))&&!u&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(t){a("onerror",t),p(),e.removeListener("error",h),0===i(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",f),p()}function f(){a("onfinish"),e.removeListener("close",g),p()}function p(){a("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",g),e.once("finish",f),e.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),e},B.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o<i;o++)n[o].emit("unpipe",this,{hasUnpiped:!1});return this}var s=P(t.pipes,e);return-1===s||(t.pipes.splice(s,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},B.prototype.on=function(e,t){var r=o.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?b(this):n.reading||process.nextTick(M,this))),r},B.prototype.addListener=B.prototype.on,B.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(F,this),r},B.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(F,this),t},B.prototype.resume=function(){var e=this._readableState;return e.flowing||(a("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(N,e,t))}(this,e)),e.paused=!1,this},B.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},B.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o<y.length;o++)e.on(y[o],this.emit.bind(this,y[o]));return this._read=function(t){a("wrapped _read",t),n&&(n=!1,e.resume())},this},"function"==typeof Symbol&&(B.prototype[Symbol.asyncIterator]=function(){return m("Readable[Symbol.asyncIterator]"),void 0===l&&(l=r(4245)),l(this)}),Object.defineProperty(B.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(B.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(B.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),B._fromList=K,Object.defineProperty(B.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}})},54801:(e,t,r)=>{"use strict";e.exports=u;var n=r(20663).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,s=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,A=n.ERR_TRANSFORM_WITH_LENGTH_0,a=r(72434);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);a.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",l)}function l(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?h(this,null,null):this._flush((function(t,r){h(e,t,r)}))}function h(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new A;if(e._transformState.transforming)throw new s;return e.push(null)}r(85870)(u,a),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,a.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,r){r(new i("_transform()"))},u.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){a.prototype._destroy.call(this,e,(function(e){t(e)}))}},6729:(e,t,r)=>{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var i;e.exports=B,B.WritableState=w;var o={deprecate:r(73212)},s=r(49298),A=r(64293).Buffer,a=global.Uint8Array||function(){};var c,u=r(32340),l=r(77433).getHighWaterMark,h=r(20663).q,g=h.ERR_INVALID_ARG_TYPE,f=h.ERR_METHOD_NOT_IMPLEMENTED,p=h.ERR_MULTIPLE_CALLBACK,d=h.ERR_STREAM_CANNOT_PIPE,C=h.ERR_STREAM_DESTROYED,E=h.ERR_STREAM_NULL_VALUES,I=h.ERR_STREAM_WRITE_AFTER_END,m=h.ERR_UNKNOWN_ENCODING;function y(){}function w(e,t,o){i=i||r(72434),e=e||{},"boolean"!=typeof o&&(o=t instanceof i),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if("function"!=typeof i)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(process.nextTick(i,n),process.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),k(e,t))}(e,r,n,t,i);else{var o=b(r)||e.destroyed;o||r.corked||r.bufferProcessing||!r.bufferedRequest||D(e,r),n?process.nextTick(v,e,r,o,i):v(e,r,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function B(e){var t=this instanceof(i=i||r(72434));if(!t&&!c.call(B,this))return new B(e);this._writableState=new w(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function Q(e,t,r,n,i,o,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new C("write")):r?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function v(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),k(e,t)}function D(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var i=t.bufferedRequestCount,o=new Array(i),s=t.corkedRequestsFree;s.entry=r;for(var A=0,a=!0;r;)o[A]=r,r.isBuf||(a=!1),r=r.next,A+=1;o.allBuffers=a,Q(e,t,!0,t.length,o,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,u=r.encoding,l=r.callback;if(Q(e,t,!1,t.objectMode?1:c.length,c,u,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var r=b(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}r(85870)(B,s),w.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(w.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(c=Function.prototype[Symbol.hasInstance],Object.defineProperty(B,Symbol.hasInstance,{value:function(e){return!!c.call(this,e)||this===B&&(e&&e._writableState instanceof w)}})):c=function(e){return e instanceof this},B.prototype.pipe=function(){this.emit("error",new d)},B.prototype.write=function(e,t,r){var n,i=this._writableState,o=!1,s=!i.objectMode&&(n=e,A.isBuffer(n)||n instanceof a);return s&&!A.isBuffer(e)&&(e=function(e){return A.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=y),i.ending?function(e,t){var r=new I;e.emit("error",r),process.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var i;return null===r?i=new E:"string"==typeof r||t.objectMode||(i=new g("chunk",["string","Buffer"],r)),!i||(e.emit("error",i),process.nextTick(n,i),!1)}(this,i,e,r))&&(i.pendingcb++,o=function(e,t,r,n,i,o){if(!r){var s=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=A.from(t,r));return t}(t,n,i);n!==s&&(r=!0,i="buffer",n=s)}var a=t.objectMode?1:n.length;t.length+=a;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else Q(e,t,!1,a,n,i,o);return c}(this,i,s,e,t,r)),o},B.prototype.cork=function(){this._writableState.corked++},B.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||D(this,e))},B.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new m(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(B.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(B.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),B.prototype._write=function(e,t,r){r(new f("_write()"))},B.prototype._writev=null,B.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,k(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(B.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(B.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),B.prototype.destroy=u.destroy,B.prototype._undestroy=u.undestroy,B.prototype._destroy=function(e,t){t(e)}},4245:(e,t,r)=>{"use strict";var n;function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var o=r(91327),s=Symbol("lastResolve"),A=Symbol("lastReject"),a=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),l=Symbol("handlePromise"),h=Symbol("stream");function g(e,t){return{value:e,done:t}}function f(e){var t=e[s];if(null!==t){var r=e[h].read();null!==r&&(e[u]=null,e[s]=null,e[A]=null,t(g(r,!1)))}}function p(e){process.nextTick(f,e)}var d=Object.getPrototypeOf((function(){})),C=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var e=this,t=this[a];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(g(null,!0));if(this[h].destroyed)return new Promise((function(t,r){process.nextTick((function(){e[a]?r(e[a]):t(g(null,!0))}))}));var r,n=this[u];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l](r,n)}),n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(g(i,!1));r=new Promise(this[l])}return this[u]=r,r}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var e=this;return new Promise((function(t,r){e[h].destroy(null,(function(e){e?r(e):t(g(null,!0))}))}))})),n),d);e.exports=function(e){var t,r=Object.create(C,(i(t={},h,{value:e,writable:!0}),i(t,s,{value:null,writable:!0}),i(t,A,{value:null,writable:!0}),i(t,a,{value:null,writable:!0}),i(t,c,{value:e._readableState.endEmitted,writable:!0}),i(t,u,{value:null,writable:!0}),i(t,l,{value:function(e,t){var n=r[h].read();n?(r[u]=null,r[s]=null,r[A]=null,e(g(n,!1))):(r[s]=e,r[A]=t)},writable:!0}),t));return o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[A];return null!==t&&(r[u]=null,r[s]=null,r[A]=null,t(e)),void(r[a]=e)}var n=r[s];null!==n&&(r[u]=null,r[s]=null,r[A]=null,n(g(null,!0))),r[c]=!0})),e.on("readable",p.bind(null,r)),r}},43117:(e,t,r)=>{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(64293).Buffer,o=r(31669).inspect,s=o&&o.custom||"inspect";e.exports=function(){function e(){this.head=null,this.tail=null,this.length=0}var t=e.prototype;return t.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},t.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},t.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},t.clear=function(){this.head=this.tail=null,this.length=0},t.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},t.concat=function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,o=i.allocUnsafe(e>>>0),s=this.head,A=0;s;)t=s.data,r=o,n=A,i.prototype.copy.call(t,r,n),A+=s.data.length,s=s.next;return o},t.consume=function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r},t.first=function(){return this.head.data},t._getString=function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,o=e>i.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0===(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n},t._getBuffer=function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,s),0===(e-=s)){s===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(s));break}++n}return this.length-=n,t},t[s]=function(e,t){return o(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},i=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),i.forEach((function(t){n(e,t,r[t])}))}return e}({},t,{depth:0,customInspect:!1}))},e}()},32340:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,i){var o=this,s=this._readableState&&this._readableState.destroyed,A=this._writableState&&this._writableState.destroyed;return s||A?(i?i(e):!e||this._writableState&&this._writableState.errorEmitted||process.nextTick(n,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!i&&e?(process.nextTick(t,o,e),o._writableState&&(o._writableState.errorEmitted=!0)):i?(process.nextTick(r,o),i(e)):process.nextTick(r,o)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},91327:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(r){t||(t=!0,e.call(this,r))}}(o||i);var s=t._writableState,A=t._readableState,a=r.readable||!1!==r.readable&&t.readable,c=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||l()},l=function(){c=!1,a||o.call(t)},h=function(){a=!1,c||o.call(t)},g=function(e){o.call(t,e)},f=function(){return(!a||A&&A.ended)&&(!c||s&&s.ended)?void 0:o.call(t,new n)},p=function(){t.req.on("finish",l)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?c&&!s&&(t.on("end",u),t.on("close",u)):(t.on("complete",l),t.on("abort",f),t.req?p():t.on("request",p)),t.on("end",h),t.on("finish",l),!1!==r.error&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",p),t.req&&t.req.removeListener("finish",l),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",l),t.removeListener("end",h),t.removeListener("error",g),t.removeListener("close",f)}}},4939:(e,t,r)=>{"use strict";var n;var i=r(20663).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function A(e){if(e)throw e}function a(e,t,i,o){o=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(o);var A=!1;e.on("close",(function(){A=!0})),void 0===n&&(n=r(91327)),n(e,{readable:t,writable:i},(function(e){if(e)return o(e);A=!0,o()}));var a=!1;return function(t){if(!A&&!a)return a=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function c(e){e()}function u(e,t){return e.pipe(t)}function l(e){return e.length?"function"!=typeof e[e.length-1]?A:e.pop():A}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n,i=l(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new o("streams");var s=t.map((function(e,r){var o=r<t.length-1;return a(e,o,r>0,(function(e){n||(n=e),e&&s.forEach(c),o||(s.forEach(c),i(n))}))}));return t.reduce(u)}},77433:(e,t,r)=>{"use strict";var n=r(20663).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var o=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},49298:(e,t,r)=>{e.exports=r(92413)},86897:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):((t=e.exports=r(58020)).Stream=n||t,t.Readable=t,t.Writable=r(6729),t.Duplex=r(72434),t.Transform=r(54801),t.PassThrough=r(52444),t.finished=r(91327),t.pipeline=r(4939))},19476:(e,t,r)=>{"use strict";const n=r(4016);e.exports=(e={})=>new Promise((t,r)=>{const i=n.connect(e,()=>{e.resolveSocket?(i.off("error",r),t({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),t({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})},48491:(e,t,r)=>{"use strict";const n=r(92413).Readable,i=r(55737);e.exports=class extends n{constructor(e,t,r,n){if("number"!=typeof e)throw new TypeError("Argument `statusCode` should be a number");if("object"!=typeof t)throw new TypeError("Argument `headers` should be an object");if(!(r instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if("string"!=typeof n)throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=i(t),this.body=r,this.url=n}_read(){this.push(this.body),this.push(null)}}},3390:(e,t,r)=>{"use strict";const n=r(90834),i=r(76458);e.exports=n(()=>{i(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})},2383:e=>{"use strict";e.exports=function(e){var t=new e,r=t;return{get:function(){var n=t;return n.next?t=n.next:(t=new e,r=t),n.next=null,n},release:function(e){r.next=e,r=e}}}},28855:(e,t,r)=>{"use strict";var n=r(61047),i=e.exports=function(e,t){return t=t||function(){},function(){var r=arguments,i=new Promise((function(t,i){var o=!1;const s=function(e){o&&console.warn("Run-async promise already resolved."),o=!0,t(e)};var A=!1;const a=function(e){A&&console.warn("Run-async promise already rejected."),A=!0,i(e)};var c=!1,u=!1,l=!1,h=e.apply({async:function(){return l?(console.warn("Run-async async() called outside a valid run-async context, callback will be ignored."),function(){}):(u&&console.warn("Run-async wrapped function (async) returned a promise.\nCalls to async() callback can have unexpected results."),c=!0,function(e,t){e?a(e):s(t)})}},Array.prototype.slice.call(r));c?n(h)&&console.warn("Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve."):n(h)?(u=!0,h.then(s,a)):s(h),l=!0}));return i.then(t.bind(null,null),t),i}};i.cb=function(e,t){return i((function(){var t=Array.prototype.slice.call(arguments);return t.length===e.length-1&&t.push(this.async()),e.apply(this,t)}),t)}},69078:e=>{e.exports=function(e,t){var r,n,i,o=!0;Array.isArray(e)?(r=[],n=e.length):(i=Object.keys(e),r={},n=i.length);function s(e){function n(){t&&t(e,r),t=null}o?process.nextTick(n):n()}function A(e,t,i){r[e]=i,(0==--n||t)&&s(t)}n?i?i.forEach((function(t){e[t]((function(e,r){A(t,e,r)}))})):e.forEach((function(e,t){e((function(e,r){A(t,e,r)}))})):s(null);o=!1}},86596:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Observable:()=>n.y,ConnectableObservable:()=>i.c,GroupedObservable:()=>o.T,observable:()=>s.L,Subject:()=>A.xQ,BehaviorSubject:()=>a.X,ReplaySubject:()=>c.t,AsyncSubject:()=>u.c,asapScheduler:()=>l.e,asyncScheduler:()=>h.P,queueScheduler:()=>g.c,animationFrameScheduler:()=>E,VirtualTimeScheduler:()=>I,VirtualAction:()=>m,Scheduler:()=>y.b,Subscription:()=>w.w,Subscriber:()=>B.L,Notification:()=>Q.P,NotificationKind:()=>Q.W,pipe:()=>v.z,noop:()=>D.Z,identity:()=>b.y,isObservable:()=>S,ArgumentOutOfRangeError:()=>k.W,EmptyError:()=>x.K,ObjectUnsubscribedError:()=>F.N,UnsubscriptionError:()=>M.B,TimeoutError:()=>N.W,bindCallback:()=>P,bindNodeCallback:()=>O,combineLatest:()=>J.aj,concat:()=>H.z,defer:()=>q.P,empty:()=>z.c,forkJoin:()=>X,from:()=>V.D,fromEvent:()=>ee,fromEventPattern:()=>te,generate:()=>re,iif:()=>ie,interval:()=>se,merge:()=>ae.T,never:()=>ue,of:()=>le.of,onErrorResumeNext:()=>he,pairs:()=>ge,partition:()=>Ee,race:()=>Ie.S3,range:()=>me,throwError:()=>we._,timer:()=>Be.H,using:()=>Qe,zip:()=>ve.$R,scheduled:()=>De.x,EMPTY:()=>z.E,NEVER:()=>ce,config:()=>be.v});var n=r(98789),i=r(24311),o=r(92564),s=r(68511),A=r(92915),a=r(14753),c=r(52493),u=r(73582),l=r(94097),h=r(59873),g=r(55031),f=r(36370),p=r(99944),d=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return f.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame((function(){return t.flush(null)}))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(cancelAnimationFrame(r),t.scheduled=void 0)},t}(p.o),C=r(43548),E=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return f.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n<i&&(e=r.shift()));if(this.active=!1,t){for(;++n<i&&(e=r.shift());)e.unsubscribe();throw t}},t}(C.v))(d),I=function(e){function t(t,r){void 0===t&&(t=m),void 0===r&&(r=Number.POSITIVE_INFINITY);var n=e.call(this,t,(function(){return n.frame}))||this;return n.maxFrames=r,n.frame=0,n.index=-1,n}return f.ZT(t,e),t.prototype.flush=function(){for(var e,t,r=this.actions,n=this.maxFrames;(t=r[0])&&t.delay<=n&&(r.shift(),this.frame=t.delay,!(e=t.execute(t.state,t.delay))););if(e){for(;t=r.shift();)t.unsubscribe();throw e}},t.frameTimeFactor=10,t}(C.v),m=function(e){function t(t,r,n){void 0===n&&(n=t.index+=1);var i=e.call(this,t,r)||this;return i.scheduler=t,i.work=r,i.index=n,i.active=!0,i.index=t.index=n,i}return f.ZT(t,e),t.prototype.schedule=function(r,n){if(void 0===n&&(n=0),!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var i=new t(this.scheduler,this.work);return this.add(i),i.schedule(r,n)},t.prototype.requestAsyncId=function(e,r,n){void 0===n&&(n=0),this.delay=e.frame+n;var i=e.actions;return i.push(this),i.sort(t.sortActions),!0},t.prototype.recycleAsyncId=function(e,t,r){void 0===r&&(r=0)},t.prototype._execute=function(t,r){if(!0===this.active)return e.prototype._execute.call(this,t,r)},t.sortActions=function(e,t){return e.delay===t.delay?e.index===t.index?0:e.index>t.index?1:-1:e.delay>t.delay?1:-1},t}(p.o),y=r(42476),w=r(73504),B=r(28732),Q=r(4094),v=r(97836),D=r(57781),b=r(80433);function S(e){return!!e&&(e instanceof n.y||"function"==typeof e.lift&&"function"==typeof e.subscribe)}var k=r(3551),x=r(30943),F=r(90265),M=r(43347),N=r(87299),R=r(98082),K=r(58880),L=r(47182),T=r(64986);function P(e,t,r){if(t){if(!(0,T.K)(t))return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return P(e,r).apply(void 0,n).pipe((0,R.U)((function(e){return(0,L.k)(e)?t.apply(void 0,e):t(e)})))};r=t}return function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var o,s=this,A={context:s,subject:o,callbackFunc:e,scheduler:r};return new n.y((function(n){if(r){var i={args:t,subscriber:n,params:A};return r.schedule(U,0,i)}if(!o){o=new u.c;try{e.apply(s,t.concat([function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];o.next(e.length<=1?e[0]:e),o.complete()}]))}catch(e){(0,K._)(o)?o.error(e):console.warn(e)}}return o.subscribe(n)}))}}function U(e){var t=this,r=e.args,n=e.subscriber,i=e.params,o=i.callbackFunc,s=i.context,A=i.scheduler,a=i.subject;if(!a){a=i.subject=new u.c;try{o.apply(s,r.concat([function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=e.length<=1?e[0]:e;t.add(A.schedule(_,0,{value:n,subject:a}))}]))}catch(e){a.error(e)}}this.add(a.subscribe(n))}function _(e){var t=e.value,r=e.subject;r.next(t),r.complete()}function O(e,t,r){if(t){if(!(0,T.K)(t))return function(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];return O(e,r).apply(void 0,n).pipe((0,R.U)((function(e){return(0,L.k)(e)?t.apply(void 0,e):t(e)})))};r=t}return function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var o={subject:void 0,args:t,callbackFunc:e,scheduler:r,context:this};return new n.y((function(n){var i=o.context,s=o.subject;if(r)return r.schedule(j,0,{params:o,subscriber:n,context:i});if(!s){s=o.subject=new u.c;try{e.apply(i,t.concat([function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.shift();r?s.error(r):(s.next(e.length<=1?e[0]:e),s.complete())}]))}catch(e){(0,K._)(s)?s.error(e):console.warn(e)}}return s.subscribe(n)}))}}function j(e){var t=this,r=e.params,n=e.subscriber,i=e.context,o=r.callbackFunc,s=r.args,A=r.scheduler,a=r.subject;if(!a){a=r.subject=new u.c;try{o.apply(i,s.concat([function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=e.shift();if(n)t.add(A.schedule(G,0,{err:n,subject:a}));else{var i=e.length<=1?e[0]:e;t.add(A.schedule(Y,0,{value:i,subject:a}))}}]))}catch(e){this.add(A.schedule(G,0,{err:e,subject:a}))}}this.add(a.subscribe(n))}function Y(e){var t=e.value,r=e.subject;r.next(t),r.complete()}function G(e){var t=e.err;e.subject.error(t)}var J=r(20995),H=r(14023),q=r(58721),z=r(61775),W=r(29929),V=r(85861);function X(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(1===e.length){var r=e[0];if((0,L.k)(r))return Z(r,null);if((0,W.K)(r)&&Object.getPrototypeOf(r)===Object.prototype){var n=Object.keys(r);return Z(n.map((function(e){return r[e]})),n)}}if("function"==typeof e[e.length-1]){var i=e.pop();return Z(e=1===e.length&&(0,L.k)(e[0])?e[0]:e,null).pipe((0,R.U)((function(e){return i.apply(void 0,e)})))}return Z(e,null)}function Z(e,t){return new n.y((function(r){var n=e.length;if(0!==n)for(var i=new Array(n),o=0,s=0,A=function(A){var a=(0,V.D)(e[A]),c=!1;r.add(a.subscribe({next:function(e){c||(c=!0,s++),i[A]=e},error:function(e){return r.error(e)},complete:function(){++o!==n&&c||(s===n&&r.next(t?t.reduce((function(e,t,r){return e[t]=i[r],e}),{}):i),r.complete())}}))},a=0;a<n;a++)A(a);else r.complete()}))}var $=r(38394);function ee(e,t,r,i){return(0,$.m)(r)&&(i=r,r=void 0),i?ee(e,t,r).pipe((0,R.U)((function(e){return(0,L.k)(e)?i.apply(void 0,e):i(e)}))):new n.y((function(n){!function e(t,r,n,i,o){var s;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(t)){var A=t;t.addEventListener(r,n,o),s=function(){return A.removeEventListener(r,n,o)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(t)){var a=t;t.on(r,n),s=function(){return a.off(r,n)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(t)){var c=t;t.addListener(r,n),s=function(){return c.removeListener(r,n)}}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(var u=0,l=t.length;u<l;u++)e(t[u],r,n,i,o)}i.add(s)}(e,t,(function(e){arguments.length>1?n.next(Array.prototype.slice.call(arguments)):n.next(e)}),n,r)}))}function te(e,t,r){return r?te(e,t).pipe((0,R.U)((function(e){return(0,L.k)(e)?r.apply(void 0,e):r(e)}))):new n.y((function(r){var n,i=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.next(1===e.length?e[0]:e)};try{n=e(i)}catch(e){return void r.error(e)}if((0,$.m)(t))return function(){return t(i,n)}}))}function re(e,t,r,i,o){var s,A;if(1==arguments.length){var a=e;A=a.initialState,t=a.condition,r=a.iterate,s=a.resultSelector||b.y,o=a.scheduler}else void 0===i||(0,T.K)(i)?(A=e,s=b.y,o=i):(A=e,s=i);return new n.y((function(e){var n=A;if(o)return o.schedule(ne,0,{subscriber:e,iterate:r,condition:t,resultSelector:s,state:n});for(;;){if(t){var i=void 0;try{i=t(n)}catch(t){return void e.error(t)}if(!i){e.complete();break}}var a=void 0;try{a=s(n)}catch(t){return void e.error(t)}if(e.next(a),e.closed)break;try{n=r(n)}catch(t){return void e.error(t)}}}))}function ne(e){var t=e.subscriber,r=e.condition;if(!t.closed){if(e.needIterate)try{e.state=e.iterate(e.state)}catch(e){return void t.error(e)}else e.needIterate=!0;if(r){var n=void 0;try{n=r(e.state)}catch(e){return void t.error(e)}if(!n)return void t.complete();if(t.closed)return}var i;try{i=e.resultSelector(e.state)}catch(e){return void t.error(e)}if(!t.closed&&(t.next(i),!t.closed))return this.schedule(e)}}function ie(e,t,r){return void 0===t&&(t=z.E),void 0===r&&(r=z.E),(0,q.P)((function(){return e()?t:r}))}var oe=r(23820);function se(e,t){return void 0===e&&(e=0),void 0===t&&(t=h.P),(!(0,oe.k)(e)||e<0)&&(e=0),t&&"function"==typeof t.schedule||(t=h.P),new n.y((function(r){return r.add(t.schedule(Ae,e,{subscriber:r,counter:0,period:e})),r}))}function Ae(e){var t=e.subscriber,r=e.counter,n=e.period;t.next(r),this.schedule({subscriber:t,counter:r+1,period:n},n)}var ae=r(80810),ce=new n.y(D.Z);function ue(){return ce}var le=r(29686);function he(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(0===e.length)return z.E;var r=e[0],i=e.slice(1);return 1===e.length&&(0,L.k)(r)?he.apply(void 0,r):new n.y((function(e){var t=function(){return e.add(he.apply(void 0,i).subscribe(e))};return(0,V.D)(r).subscribe({next:function(t){e.next(t)},error:t,complete:t})}))}function ge(e,t){return t?new n.y((function(r){var n=Object.keys(e),i=new w.w;return i.add(t.schedule(fe,0,{keys:n,index:0,subscriber:r,subscription:i,obj:e})),i})):new n.y((function(t){for(var r=Object.keys(e),n=0;n<r.length&&!t.closed;n++){var i=r[n];e.hasOwnProperty(i)&&t.next([i,e[i]])}t.complete()}))}function fe(e){var t=e.keys,r=e.index,n=e.subscriber,i=e.subscription,o=e.obj;if(!n.closed)if(r<t.length){var s=t[r];n.next([s,o[s]]),i.add(this.schedule({keys:t,index:r+1,subscriber:n,subscription:i,obj:o}))}else n.complete()}var pe=r(65868),de=r(92402),Ce=r(39063);function Ee(e,t,r){return[(0,Ce.h)(t,r)(new n.y((0,de.s)(e))),(0,Ce.h)((0,pe.f)(t,r))(new n.y((0,de.s)(e)))]}var Ie=r(2332);function me(e,t,r){return void 0===e&&(e=0),new n.y((function(n){void 0===t&&(t=e,e=0);var i=0,o=e;if(r)return r.schedule(ye,0,{index:i,count:t,start:e,subscriber:n});for(;;){if(i++>=t){n.complete();break}if(n.next(o++),n.closed)break}}))}function ye(e){var t=e.start,r=e.index,n=e.count,i=e.subscriber;r>=n?i.complete():(i.next(t),i.closed||(e.index=r+1,e.start=t+1,this.schedule(e)))}var we=r(9491),Be=r(13028);function Qe(e,t){return new n.y((function(r){var n,i;try{n=e()}catch(e){return void r.error(e)}try{i=t(n)}catch(e){return void r.error(e)}var o=(i?(0,V.D)(i):z.E).subscribe(r);return function(){o.unsubscribe(),n&&n.unsubscribe()}}))}var ve=r(21336),De=r(14109),be=r(21894)},73582:(e,t,r)=>{"use strict";r.d(t,{c:()=>s});var n=r(36370),i=r(92915),o=r(73504),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.value=null,t.hasNext=!1,t.hasCompleted=!1,t}return n.ZT(t,e),t.prototype._subscribe=function(t){return this.hasError?(t.error(this.thrownError),o.w.EMPTY):this.hasCompleted&&this.hasNext?(t.next(this.value),t.complete(),o.w.EMPTY):e.prototype._subscribe.call(this,t)},t.prototype.next=function(e){this.hasCompleted||(this.value=e,this.hasNext=!0)},t.prototype.error=function(t){this.hasCompleted||e.prototype.error.call(this,t)},t.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&e.prototype.next.call(this,this.value),e.prototype.complete.call(this)},t}(i.xQ)},14753:(e,t,r)=>{"use strict";r.d(t,{X:()=>s});var n=r(36370),i=r(92915),o=r(90265),s=function(e){function t(t){var r=e.call(this)||this;return r._value=t,r}return n.ZT(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return r&&!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.N;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.xQ)},28907:(e,t,r)=>{"use strict";r.d(t,{d:()=>i});var n=r(36370),i=function(e){function t(t,r,n){var i=e.call(this)||this;return i.parent=t,i.outerValue=r,i.outerIndex=n,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(r(28732).L)},4094:(e,t,r)=>{"use strict";r.d(t,{W:()=>n,P:()=>A});var n,i=r(61775),o=r(29686),s=r(9491);n||(n={});var A=function(){function e(e,t,r){this.kind=e,this.value=t,this.error=r,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return r&&r()}},e.prototype.accept=function(e,t,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,r)},e.prototype.toObservable=function(){switch(this.kind){case"N":return(0,o.of)(this.value);case"E":return(0,s._)(this.error);case"C":return(0,i.c)()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}()},98789:(e,t,r)=>{"use strict";r.d(t,{y:()=>u});var n=r(58880),i=r(28732),o=r(92515),s=r(32103);var A=r(68511),a=r(97836),c=r(21894),u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n=this.operator,A=function(e,t,r){if(e){if(e instanceof i.L)return e;if(e[o.b])return e[o.b]()}return e||t||r?new i.L(e,t,r):new i.L(s.c)}(e,t,r);if(n?A.add(n.call(A,this.source)):A.add(this.source||c.v.useDeprecatedSynchronousErrorHandling&&!A.syncErrorThrowable?this._subscribe(A):this._trySubscribe(A)),c.v.useDeprecatedSynchronousErrorHandling&&A.syncErrorThrowable&&(A.syncErrorThrowable=!1,A.syncErrorThrown))throw A.syncErrorValue;return A},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){c.v.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),(0,n._)(e)?e.error(t):console.warn(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=l(t))((function(t,n){var i;i=r.subscribe((function(t){try{e(t)}catch(e){n(e),i&&i.unsubscribe()}}),n,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[A.L]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:(0,a.U)(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=l(e))((function(e,r){var n;t.subscribe((function(e){return n=e}),(function(e){return r(e)}),(function(){return e(n)}))}))},e.create=function(t){return new e(t)},e}();function l(e){if(e||(e=c.v.Promise||Promise),!e)throw new Error("no Promise impl found");return e}},32103:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(21894),i=r(13109),o={closed:!0,next:function(e){},error:function(e){if(n.v.useDeprecatedSynchronousErrorHandling)throw e;(0,i.z)(e)},complete:function(){}}},20242:(e,t,r)=>{"use strict";r.d(t,{L:()=>i});var n=r(36370),i=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(r(28732).L)},52493:(e,t,r)=>{"use strict";r.d(t,{t:()=>u});var n=r(36370),i=r(92915),o=r(55031),s=r(73504),A=r(32746),a=r(90265),c=r(73066),u=function(e){function t(t,r,n){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY);var i=e.call(this)||this;return i.scheduler=n,i._events=[],i._infiniteTimeWindow=!1,i._bufferSize=t<1?1:t,i._windowTime=r<1?1:r,r===Number.POSITIVE_INFINITY?(i._infiniteTimeWindow=!0,i.next=i.nextInfiniteTimeWindow):i.next=i.nextTimeWindow,i}return n.ZT(t,e),t.prototype.nextInfiniteTimeWindow=function(t){var r=this._events;r.push(t),r.length>this._bufferSize&&r.shift(),e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this._events.push(new l(this._getNow(),t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,r=this._infiniteTimeWindow,n=r?this._events:this._trimBufferThenGetEvents(),i=this.scheduler,o=n.length;if(this.closed)throw new a.N;if(this.isStopped||this.hasError?t=s.w.EMPTY:(this.observers.push(e),t=new c.W(this,e)),i&&e.add(e=new A.ht(e,i)),r)for(var u=0;u<o&&!e.closed;u++)e.next(n[u]);else for(u=0;u<o&&!e.closed;u++)e.next(n[u].value);return this.hasError?e.error(this.thrownError):this.isStopped&&e.complete(),t},t.prototype._getNow=function(){return(this.scheduler||o.c).now()},t.prototype._trimBufferThenGetEvents=function(){for(var e=this._getNow(),t=this._bufferSize,r=this._windowTime,n=this._events,i=n.length,o=0;o<i&&!(e-n[o].time<r);)o++;return i>t&&(o=Math.max(o,i-t)),o>0&&n.splice(0,o),n},t}(i.xQ),l=function(){return function(e,t){this.time=e,this.value=t}}()},42476:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){function e(t,r){void 0===r&&(r=e.now),this.SchedulerAction=t,this.now=r}return e.prototype.schedule=function(e,t,r){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(r,t)},e.now=function(){return Date.now()},e}()},92915:(e,t,r)=>{"use strict";r.d(t,{Yc:()=>u,xQ:()=>l});var n=r(36370),i=r(98789),o=r(28732),s=r(73504),A=r(90265),a=r(73066),c=r(92515),u=function(e){function t(t){var r=e.call(this,t)||this;return r.destination=t,r}return n.ZT(t,e),t}(o.L),l=function(e){function t(){var t=e.call(this)||this;return t.observers=[],t.closed=!1,t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return n.ZT(t,e),t.prototype[c.b]=function(){return new u(this)},t.prototype.lift=function(e){var t=new h(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new A.N;if(!this.isStopped)for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].next(e)},t.prototype.error=function(e){if(this.closed)throw new A.N;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,r=t.length,n=t.slice(),i=0;i<r;i++)n[i].error(e);this.observers.length=0},t.prototype.complete=function(){if(this.closed)throw new A.N;this.isStopped=!0;for(var e=this.observers,t=e.length,r=e.slice(),n=0;n<t;n++)r[n].complete();this.observers.length=0},t.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},t.prototype._trySubscribe=function(t){if(this.closed)throw new A.N;return e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){if(this.closed)throw new A.N;return this.hasError?(e.error(this.thrownError),s.w.EMPTY):this.isStopped?(e.complete(),s.w.EMPTY):(this.observers.push(e),new a.W(this,e))},t.prototype.asObservable=function(){var e=new i.y;return e.source=this,e},t.create=function(e,t){return new h(e,t)},t}(i.y),h=function(e){function t(t,r){var n=e.call(this)||this;return n.destination=t,n.source=r,n}return n.ZT(t,e),t.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},t.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},t.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},t.prototype._subscribe=function(e){return this.source?this.source.subscribe(e):s.w.EMPTY},t}(l)},73066:(e,t,r)=>{"use strict";r.d(t,{W:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this)||this;return n.subject=t,n.subscriber=r,n.closed=!1,n}return n.ZT(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}},t}(r(73504).w)},28732:(e,t,r)=>{"use strict";r.d(t,{L:()=>u});var n=r(36370),i=r(38394),o=r(32103),s=r(73504),A=r(92515),a=r(21894),c=r(13109),u=function(e){function t(r,n,i){var s=e.call(this)||this;switch(s.syncErrorValue=null,s.syncErrorThrown=!1,s.syncErrorThrowable=!1,s.isStopped=!1,arguments.length){case 0:s.destination=o.c;break;case 1:if(!r){s.destination=o.c;break}if("object"==typeof r){r instanceof t?(s.syncErrorThrowable=r.syncErrorThrowable,s.destination=r,r.add(s)):(s.syncErrorThrowable=!0,s.destination=new l(s,r));break}default:s.syncErrorThrowable=!0,s.destination=new l(s,r,n,i)}return s}return n.ZT(t,e),t.prototype[A.b]=function(){return this},t.create=function(e,r,n){var i=new t(e,r,n);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(s.w),l=function(e){function t(t,r,n,s){var A,a=e.call(this)||this;a._parentSubscriber=t;var c=a;return(0,i.m)(r)?A=r:r&&(A=r.next,n=r.error,s=r.complete,r!==o.c&&(c=Object.create(r),(0,i.m)(c.unsubscribe)&&a.add(c.unsubscribe.bind(c)),c.unsubscribe=a.unsubscribe.bind(a))),a._context=c,a._next=A,a._error=n,a._complete=s,a}return n.ZT(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,r=a.v.useDeprecatedSynchronousErrorHandling;if(this._error)r&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)r?(t.syncErrorValue=e,t.syncErrorThrown=!0):(0,c.z)(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;(0,c.z)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var r=function(){return e._complete.call(e._context)};a.v.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,r),this.unsubscribe()):(this.__tryOrUnsub(r),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),a.v.useDeprecatedSynchronousErrorHandling)throw e;(0,c.z)(e)}},t.prototype.__tryOrSetError=function(e,t,r){if(!a.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,r)}catch(t){return a.v.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):((0,c.z)(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},73504:(e,t,r)=>{"use strict";r.d(t,{w:()=>A});var n=r(47182),i=r(29929),o=r(38394),s=r(43347),A=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}var t;return e.prototype.unsubscribe=function(){var t;if(!this.closed){var r=this._parentOrParents,A=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var u=0;u<r.length;++u){r[u].remove(this)}if((0,o.m)(A))try{A.call(this)}catch(e){t=e instanceof s.B?a(e.errors):[e]}if((0,n.k)(c)){u=-1;for(var l=c.length;++u<l;){var h=c[u];if((0,i.K)(h))try{h.unsubscribe()}catch(e){t=t||[],e instanceof s.B?t=t.concat(a(e.errors)):t.push(e)}}}if(t)throw new s.B(t)}},e.prototype.add=function(t){var r=t;if(!t)return e.EMPTY;switch(typeof t){case"function":r=new e(t);case"object":if(r===this||r.closed||"function"!=typeof r.unsubscribe)return r;if(this.closed)return r.unsubscribe(),r;if(!(r instanceof e)){var n=r;(r=new e)._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var i=r._parentOrParents;if(null===i)r._parentOrParents=this;else if(i instanceof e){if(i===this)return r;r._parentOrParents=[i,this]}else{if(-1!==i.indexOf(this))return r;i.push(this)}var o=this._subscriptions;return null===o?this._subscriptions=[r]:o.push(r),r},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var r=t.indexOf(e);-1!==r&&t.splice(r,1)}},e.EMPTY=((t=new e).closed=!0,t),e}();function a(e){return e.reduce((function(e,t){return e.concat(t instanceof s.B?t.errors:t)}),[])}},21894:(e,t,r)=>{"use strict";r.d(t,{v:()=>i});var n=!1,i={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;n=e},get useDeprecatedSynchronousErrorHandling(){return n}}},24311:(e,t,r)=>{"use strict";r.d(t,{c:()=>c,N:()=>u});var n=r(36370),i=r(92915),o=r(98789),s=r(28732),A=r(73504),a=r(97566),c=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subjectFactory=r,n._refCount=0,n._isComplete=!1,n}return n.ZT(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new A.w).add(this.source.subscribe(new l(this.getSubject(),this))),e.closed&&(this._connection=null,e=A.w.EMPTY)),e},t.prototype.refCount=function(){return(0,a.x)()(this)},t}(o.y),u=function(){var e=c.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:e._subscribe},_isComplete:{value:e._isComplete,writable:!0},getSubject:{value:e.getSubject},connect:{value:e.connect},refCount:{value:e.refCount}}}(),l=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(i.Yc);s.L},20995:(e,t,r)=>{"use strict";r.d(t,{aj:()=>u,Ms:()=>l});var n=r(36370),i=r(64986),o=r(47182),s=r(20242),A=r(93590),a=r(56329),c={};function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=null,n=null;return(0,i.K)(e[e.length-1])&&(n=e.pop()),"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&(0,o.k)(e[0])&&(e=e[0]),(0,a.n)(e,n).lift(new l(r))}var l=function(){function e(e){this.resultSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.resultSelector))},e}(),h=function(e){function t(t,r){var n=e.call(this,t)||this;return n.resultSelector=r,n.active=0,n.values=[],n.observables=[],n}return n.ZT(t,e),t.prototype._next=function(e){this.values.push(c),this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var r=0;r<t;r++){var n=e[r];this.add((0,A.D)(this,n,n,r))}}},t.prototype.notifyComplete=function(e){0==(this.active-=1)&&this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.values,s=o[r],A=this.toRespond?s===c?--this.toRespond:this.toRespond:0;o[r]=t,0===A&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))},t.prototype._tryResultSelector=function(e){var t;try{t=this.resultSelector.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.L)},14023:(e,t,r)=>{"use strict";r.d(t,{z:()=>o});var n=r(29686),i=r(37339);function o(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return(0,i.u)()(n.of.apply(void 0,e))}},58721:(e,t,r)=>{"use strict";r.d(t,{P:()=>s});var n=r(98789),i=r(85861),o=r(61775);function s(e){return new n.y((function(t){var r;try{r=e()}catch(e){return void t.error(e)}return(r?(0,i.D)(r):(0,o.c)()).subscribe(t)}))}},61775:(e,t,r)=>{"use strict";r.d(t,{E:()=>i,c:()=>o});var n=r(98789),i=new n.y((function(e){return e.complete()}));function o(e){return e?function(e){return new n.y((function(t){return e.schedule((function(){return t.complete()}))}))}(e):i}},85861:(e,t,r)=>{"use strict";r.d(t,{D:()=>s});var n=r(98789),i=r(92402),o=r(14109);function s(e,t){return t?(0,o.x)(e,t):e instanceof n.y?e:new n.y((0,i.s)(e))}},56329:(e,t,r)=>{"use strict";r.d(t,{n:()=>s});var n=r(98789),i=r(22335),o=r(59430);function s(e,t){return t?(0,o.r)(e,t):new n.y((0,i.V)(e))}},80810:(e,t,r)=>{"use strict";r.d(t,{T:()=>A});var n=r(98789),i=r(64986),o=r(66852),s=r(56329);function A(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=Number.POSITIVE_INFINITY,A=null,a=e[e.length-1];return(0,i.K)(a)?(A=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(r=e.pop())):"number"==typeof a&&(r=e.pop()),null===A&&1===e.length&&e[0]instanceof n.y?e[0]:(0,o.J)(r)((0,s.n)(e,A))}},29686:(e,t,r)=>{"use strict";r.d(t,{of:()=>s});var n=r(64986),i=r(56329),o=r(59430);function s(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return(0,n.K)(r)?(e.pop(),(0,o.r)(e,r)):(0,i.n)(e)}},2332:(e,t,r)=>{"use strict";r.d(t,{S3:()=>a});var n=r(36370),i=r(47182),o=r(56329),s=r(20242),A=r(93590);function a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(1===e.length){if(!(0,i.k)(e[0]))return e[0];e=e[0]}return(0,o.n)(e,void 0).lift(new c)}var c=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new u(e))},e}(),u=function(e){function t(t){var r=e.call(this,t)||this;return r.hasFirst=!1,r.observables=[],r.subscriptions=[],r}return n.ZT(t,e),t.prototype._next=function(e){this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{for(var r=0;r<t&&!this.hasFirst;r++){var n=e[r],i=(0,A.D)(this,n,n,r);this.subscriptions&&this.subscriptions.push(i),this.add(i)}this.observables=null}},t.prototype.notifyNext=function(e,t,r,n,i){if(!this.hasFirst){this.hasFirst=!0;for(var o=0;o<this.subscriptions.length;o++)if(o!==r){var s=this.subscriptions[o];s.unsubscribe(),this.remove(s)}this.subscriptions=null}this.destination.next(t)},t}(s.L)},9491:(e,t,r)=>{"use strict";r.d(t,{_:()=>i});var n=r(98789);function i(e,t){return t?new n.y((function(r){return t.schedule(o,0,{error:e,subscriber:r})})):new n.y((function(t){return t.error(e)}))}function o(e){var t=e.error;e.subscriber.error(t)}},13028:(e,t,r)=>{"use strict";r.d(t,{H:()=>A});var n=r(98789),i=r(59873),o=r(23820),s=r(64986);function A(e,t,r){void 0===e&&(e=0);var A=-1;return(0,o.k)(t)?A=Number(t)<1?1:Number(t):(0,s.K)(t)&&(r=t),(0,s.K)(r)||(r=i.P),new n.y((function(t){var n=(0,o.k)(e)?e:+e-r.now();return r.schedule(a,n,{index:0,period:A,subscriber:t})}))}function a(e){var t=e.index,r=e.period,n=e.subscriber;if(n.next(t),!n.closed){if(-1===r)return n.complete();e.index=t+1,this.schedule(e,r)}}},21336:(e,t,r)=>{"use strict";r.d(t,{$R:()=>u,mx:()=>l});var n=r(36370),i=r(56329),o=r(47182),s=r(28732),A=r(20242),a=r(93590),c=r(8094);function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return"function"==typeof r&&e.pop(),(0,i.n)(e,void 0).lift(new l(r))}var l=function(){function e(e){this.resultSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new h(e,this.resultSelector))},e}(),h=function(e){function t(t,r,n){void 0===n&&(n=Object.create(null));var i=e.call(this,t)||this;return i.iterators=[],i.active=0,i.resultSelector="function"==typeof r?r:null,i.values=n,i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.iterators;(0,o.k)(e)?t.push(new f(e)):"function"==typeof e[c.hZ]?t.push(new g(e[c.hZ]())):t.push(new p(this.destination,this,e))},t.prototype._complete=function(){var e=this.iterators,t=e.length;if(this.unsubscribe(),0!==t){this.active=t;for(var r=0;r<t;r++){var n=e[r];if(n.stillUnsubscribed)this.destination.add(n.subscribe(n,r));else this.active--}}else this.destination.complete()},t.prototype.notifyInactive=function(){this.active--,0===this.active&&this.destination.complete()},t.prototype.checkIterators=function(){for(var e=this.iterators,t=e.length,r=this.destination,n=0;n<t;n++){if("function"==typeof(s=e[n]).hasValue&&!s.hasValue())return}var i=!1,o=[];for(n=0;n<t;n++){var s,A=(s=e[n]).next();if(s.hasCompleted()&&(i=!0),A.done)return void r.complete();o.push(A.value)}this.resultSelector?this._tryresultSelector(o):r.next(o),i&&r.complete()},t.prototype._tryresultSelector=function(e){var t;try{t=this.resultSelector.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(s.L),g=function(){function e(e){this.iterator=e,this.nextResult=e.next()}return e.prototype.hasValue=function(){return!0},e.prototype.next=function(){var e=this.nextResult;return this.nextResult=this.iterator.next(),e},e.prototype.hasCompleted=function(){var e=this.nextResult;return e&&e.done},e}(),f=function(){function e(e){this.array=e,this.index=0,this.length=0,this.length=e.length}return e.prototype[c.hZ]=function(){return this},e.prototype.next=function(e){var t=this.index++,r=this.array;return t<this.length?{value:r[t],done:!1}:{value:null,done:!0}},e.prototype.hasValue=function(){return this.array.length>this.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),p=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.parent=r,i.observable=n,i.stillUnsubscribed=!0,i.buffer=[],i.isComplete=!1,i}return n.ZT(t,e),t.prototype[c.hZ]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e,t,r,n,i){this.buffer.push(t),this.parent.checkIterators()},t.prototype.subscribe=function(e,t){return(0,a.D)(this,this.observable,this,t)},t}(A.L)},37339:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(66852);function i(){return(0,n.J)(1)}},39063:(e,t,r)=>{"use strict";r.d(t,{h:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.predicate,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.thisArg=n,i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.L)},92564:(e,t,r)=>{"use strict";r.d(t,{v:()=>a,T:()=>h});var n=r(36370),i=r(28732),o=r(73504),s=r(98789),A=r(92915);function a(e,t,r,n){return function(i){return i.lift(new c(e,t,r,n))}}var c=function(){function e(e,t,r,n){this.keySelector=e,this.elementSelector=t,this.durationSelector=r,this.subjectSelector=n}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},e}(),u=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.keySelector=r,s.elementSelector=n,s.durationSelector=i,s.subjectSelector=o,s.groups=null,s.attemptedToUnsubscribe=!1,s.count=0,s}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.keySelector(e)}catch(e){return void this.error(e)}this._group(e,t)},t.prototype._group=function(e,t){var r=this.groups;r||(r=this.groups=new Map);var n,i=r.get(t);if(this.elementSelector)try{n=this.elementSelector(e)}catch(e){this.error(e)}else n=e;if(!i){i=this.subjectSelector?this.subjectSelector():new A.xQ,r.set(t,i);var o=new h(t,i,this);if(this.destination.next(o),this.durationSelector){var s=void 0;try{s=this.durationSelector(new h(t,i))}catch(e){return void this.error(e)}this.add(s.subscribe(new l(t,i,this)))}}i.closed||i.next(n)},t.prototype._error=function(e){var t=this.groups;t&&(t.forEach((function(t,r){t.error(e)})),t.clear()),this.destination.error(e)},t.prototype._complete=function(){var e=this.groups;e&&(e.forEach((function(e,t){e.complete()})),e.clear()),this.destination.complete()},t.prototype.removeGroup=function(e){this.groups.delete(e)},t.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&e.prototype.unsubscribe.call(this))},t}(i.L),l=function(e){function t(t,r,n){var i=e.call(this,r)||this;return i.key=t,i.group=r,i.parent=n,i}return n.ZT(t,e),t.prototype._next=function(e){this.complete()},t.prototype._unsubscribe=function(){var e=this.parent,t=this.key;this.key=this.parent=null,e&&e.removeGroup(t)},t}(i.L),h=function(e){function t(t,r,n){var i=e.call(this)||this;return i.key=t,i.groupSubject=r,i.refCountSubscription=n,i}return n.ZT(t,e),t.prototype._subscribe=function(e){var t=new o.w,r=this.refCountSubscription,n=this.groupSubject;return r&&!r.closed&&t.add(new g(r)),t.add(n.subscribe(e)),t},t}(s.y),g=function(e){function t(t){var r=e.call(this)||this;return r.parent=t,t.count++,r}return n.ZT(t,e),t.prototype.unsubscribe=function(){var t=this.parent;t.closed||this.closed||(e.prototype.unsubscribe.call(this),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())},t}(o.w)},98082:(e,t,r)=>{"use strict";r.d(t,{U:()=>o});var n=r(36370),i=r(28732);function o(e,t){return function(r){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new s(e,t))}}var s=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new A(e,this.project,this.thisArg))},e}(),A=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.project=r,i.count=0,i.thisArg=n||i,i}return n.ZT(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L)},66852:(e,t,r)=>{"use strict";r.d(t,{J:()=>o});var n=r(20259),i=r(80433);function o(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),(0,n.zg)(i.y,e)}},20259:(e,t,r)=>{"use strict";r.d(t,{zg:()=>c});var n=r(36370),i=r(93590),o=r(20242),s=r(28907),A=r(98082),a=r(85861);function c(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?function(n){return n.pipe(c((function(r,n){return(0,a.D)(e(r,n)).pipe((0,A.U)((function(e,i){return t(r,e,n,i)})))}),r))}:("number"==typeof t&&(r=t),function(t){return t.lift(new u(e,r))})}var u=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))},e}(),l=function(e){function t(t,r,n){void 0===n&&(n=Number.POSITIVE_INFINITY);var i=e.call(this,t)||this;return i.project=r,i.concurrent=n,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=new s.d(this,t,r),o=this.destination;o.add(n);var A=(0,i.D)(this,e,void 0,void 0,n);A!==n&&o.add(A)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.L)},32746:(e,t,r)=>{"use strict";r.d(t,{QV:()=>s,ht:()=>a});var n=r(36370),i=r(28732),o=r(4094);function s(e,t){return void 0===t&&(t=0),function(r){return r.lift(new A(e,t))}}var A=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.scheduler,this.delay))},e}(),a=function(e){function t(t,r,n){void 0===n&&(n=0);var i=e.call(this,t)||this;return i.scheduler=r,i.delay=n,i}return n.ZT(t,e),t.dispatch=function(e){var t=e.notification,r=e.destination;t.observe(r),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.destination.add(this.scheduler.schedule(t.dispatch,this.delay,new c(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.P.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.P.createError(e)),this.unsubscribe()},t.prototype._complete=function(){this.scheduleMessage(o.P.createComplete()),this.unsubscribe()},t}(i.L),c=function(){return function(e,t){this.notification=e,this.destination=t}}()},97566:(e,t,r)=>{"use strict";r.d(t,{x:()=>o});var n=r(36370),i=r(28732);function o(){return function(e){return e.lift(new s(e))}}var s=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var r=this.connectable;r._refCount++;var n=new A(e,r),i=t.subscribe(n);return n.closed||(n.connection=r.connect()),i},e}(),A=function(e){function t(t,r){var n=e.call(this,t)||this;return n.connectable=r,n}return n.ZT(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var r=this.connection,n=e._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()}}else this.connection=null},t}(i.L)},59430:(e,t,r)=>{"use strict";r.d(t,{r:()=>o});var n=r(98789),i=r(73504);function o(e,t){return new n.y((function(r){var n=new i.w,o=0;return n.add(t.schedule((function(){o!==e.length?(r.next(e[o++]),r.closed||n.add(this.schedule())):r.complete()}))),n}))}},14109:(e,t,r)=>{"use strict";r.d(t,{x:()=>u});var n=r(98789),i=r(73504),o=r(68511);var s=r(59430),A=r(8094);var a=r(79886),c=r(61997);function u(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[o.L]}(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){var i=e[o.L]();n.add(i.subscribe({next:function(e){n.add(t.schedule((function(){return r.next(e)})))},error:function(e){n.add(t.schedule((function(){return r.error(e)})))},complete:function(){n.add(t.schedule((function(){return r.complete()})))}}))}))),n}))}(e,t);if((0,a.t)(e))return function(e,t){return new n.y((function(r){var n=new i.w;return n.add(t.schedule((function(){return e.then((function(e){n.add(t.schedule((function(){r.next(e),n.add(t.schedule((function(){return r.complete()})))})))}),(function(e){n.add(t.schedule((function(){return r.error(e)})))}))}))),n}))}(e,t);if((0,c.z)(e))return(0,s.r)(e,t);if(function(e){return e&&"function"==typeof e[A.hZ]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new n.y((function(r){var n,o=new i.w;return o.add((function(){n&&"function"==typeof n.return&&n.return()})),o.add(t.schedule((function(){n=e[A.hZ](),o.add(t.schedule((function(){if(!r.closed){var e,t;try{var i=n.next();e=i.value,t=i.done}catch(e){return void r.error(e)}t?r.complete():(r.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}},99944:(e,t,r)=>{"use strict";r.d(t,{o:()=>i});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n.pending=!1,n}return n.ZT(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(n,this.id,t),this},t.prototype.requestAsyncId=function(e,t,r){return void 0===r&&(r=0),setInterval(e.flush.bind(e,this),r)},t.prototype.recycleAsyncId=function(e,t,r){if(void 0===r&&(r=0),null!==r&&this.delay===r&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var r=!1,n=void 0;try{this.work(e)}catch(e){r=!0,n=!!e&&e||new Error(e)}if(r)return this.unsubscribe(),n},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,r=t.actions,n=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==n&&r.splice(n,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,r){return e.call(this)||this}return n.ZT(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(r(73504).w))},43548:(e,t,r)=>{"use strict";r.d(t,{v:()=>o});var n=r(36370),i=r(42476),o=function(e){function t(r,n){void 0===n&&(n=i.b.now);var o=e.call(this,r,(function(){return t.delegate&&t.delegate!==o?t.delegate.now():n()}))||this;return o.actions=[],o.active=!1,o.scheduled=void 0,o}return n.ZT(t,e),t.prototype.schedule=function(r,n,i){return void 0===n&&(n=0),t.delegate&&t.delegate!==this?t.delegate.schedule(r,n,i):e.prototype.schedule.call(this,r,n,i)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}},t}(i.b)},94097:(e,t,r)=>{"use strict";r.d(t,{e:()=>l});var n=r(36370),i=1,o=function(){return Promise.resolve()}(),s={};function A(e){return e in s&&(delete s[e],!0)}var a=function(e){var t=i++;return s[t]=!0,o.then((function(){return A(t)&&e()})),t},c=function(e){A(e)},u=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0?e.prototype.requestAsyncId.call(this,t,r,n):(t.actions.push(this),t.scheduled||(t.scheduled=a(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,r,n){if(void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,r,n);0===t.actions.length&&(c(r),t.scheduled=void 0)},t}(r(99944).o),l=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,r=this.actions,n=-1,i=r.length;e=e||r.shift();do{if(t=e.execute(e.state,e.delay))break}while(++n<i&&(e=r.shift()));if(this.active=!1,t){for(;++n<i&&(e=r.shift());)e.unsubscribe();throw t}},t}(r(43548).v))(u)},59873:(e,t,r)=>{"use strict";r.d(t,{P:()=>i});var n=r(99944),i=new(r(43548).v)(n.o)},55031:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(36370),i=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.scheduler=t,n.work=r,n}return n.ZT(t,e),t.prototype.schedule=function(t,r){return void 0===r&&(r=0),r>0?e.prototype.schedule.call(this,t,r):(this.delay=r,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,r){return r>0||this.closed?e.prototype.execute.call(this,t,r):this._execute(t,r)},t.prototype.requestAsyncId=function(t,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?e.prototype.requestAsyncId.call(this,t,r,n):t.flush(this)},t}(r(99944).o),o=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t}(r(43548).v))(i)},8094:(e,t,r)=>{"use strict";function n(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}r.d(t,{hZ:()=>i});var i=n()},68511:(e,t,r)=>{"use strict";r.d(t,{L:()=>n});var n=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}()},92515:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var n=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}()},3551:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return e.prototype=Object.create(Error.prototype),e}()},30943:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});var n=function(){function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e}()},90265:(e,t,r)=>{"use strict";r.d(t,{N:()=>n});var n=function(){function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e}()},87299:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});var n=function(){function e(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return e.prototype=Object.create(Error.prototype),e}()},43347:(e,t,r)=>{"use strict";r.d(t,{B:()=>n});var n=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n  "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}()},58880:(e,t,r)=>{"use strict";r.d(t,{_:()=>i});var n=r(28732);function i(e){for(;e;){var t=e,r=t.closed,i=t.destination,o=t.isStopped;if(r||o)return!1;e=i&&i instanceof n.L?i:null}return!0}},13109:(e,t,r)=>{"use strict";function n(e){setTimeout((function(){throw e}),0)}r.d(t,{z:()=>n})},80433:(e,t,r)=>{"use strict";function n(e){return e}r.d(t,{y:()=>n})},47182:(e,t,r)=>{"use strict";r.d(t,{k:()=>n});var n=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}()},61997:(e,t,r)=>{"use strict";r.d(t,{z:()=>n});var n=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e}},38394:(e,t,r)=>{"use strict";function n(e){return"function"==typeof e}r.d(t,{m:()=>n})},23820:(e,t,r)=>{"use strict";r.d(t,{k:()=>i});var n=r(47182);function i(e){return!(0,n.k)(e)&&e-parseFloat(e)+1>=0}},29929:(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e}r.d(t,{K:()=>n})},79886:(e,t,r)=>{"use strict";function n(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}r.d(t,{t:()=>n})},64986:(e,t,r)=>{"use strict";function n(e){return e&&"function"==typeof e.schedule}r.d(t,{K:()=>n})},57781:(e,t,r)=>{"use strict";function n(){}r.d(t,{Z:()=>n})},65868:(e,t,r)=>{"use strict";function n(e,t){function r(){return!r.pred.apply(r.thisArg,arguments)}return r.pred=e,r.thisArg=t,r}r.d(t,{f:()=>n})},97836:(e,t,r)=>{"use strict";r.d(t,{z:()=>i,U:()=>o});var n=r(57781);function i(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o(e)}function o(e){return e?1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}:n.Z}},92402:(e,t,r)=>{"use strict";r.d(t,{s:()=>u});var n=r(22335),i=r(13109),o=r(8094),s=r(68511),A=r(61997),a=r(79886),c=r(29929),u=function(e){if(e&&"function"==typeof e[s.L])return u=e,function(e){var t=u[s.L]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if((0,A.z)(e))return(0,n.V)(e);if((0,a.t)(e))return r=e,function(e){return r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,i.z),e};if(e&&"function"==typeof e[o.hZ])return t=e,function(e){for(var r=t[o.hZ]();;){var n=r.next();if(n.done){e.complete();break}if(e.next(n.value),e.closed)break}return"function"==typeof r.return&&e.add((function(){r.return&&r.return()})),e};var t,r,u,l=(0,c.K)(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+l+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},22335:(e,t,r)=>{"use strict";r.d(t,{V:()=>n});var n=function(e){return function(t){for(var r=0,n=e.length;r<n&&!t.closed;r++)t.next(e[r]);t.complete()}}},93590:(e,t,r)=>{"use strict";r.d(t,{D:()=>s});var n=r(28907),i=r(92402),o=r(98789);function s(e,t,r,s,A){if(void 0===A&&(A=new n.d(e,r,s)),!A.closed)return t instanceof o.y?t.subscribe(A):(0,i.s)(t)(A)}},20683:(e,t,r)=>{"use strict";r.r(t),r.d(t,{audit:()=>s,auditTime:()=>l,buffer:()=>h,bufferCount:()=>d,bufferTime:()=>y,bufferToggle:()=>k,bufferWhen:()=>M,catchError:()=>L,combineAll:()=>_,combineLatest:()=>Y,concat:()=>J,concatAll:()=>H.u,concatMap:()=>z,concatMapTo:()=>W,count:()=>V,debounce:()=>$,debounceTime:()=>re,defaultIfEmpty:()=>se,delay:()=>le,delayWhen:()=>de,dematerialize:()=>ye,distinct:()=>Qe,distinctUntilChanged:()=>be,distinctUntilKeyChanged:()=>xe,elementAt:()=>je,endWith:()=>Ge,every:()=>Je,exhaust:()=>ze,exhaustMap:()=>Ze,expand:()=>tt,filter:()=>Me.h,finalize:()=>it,find:()=>At,findIndex:()=>ut,first:()=>ht,groupBy:()=>gt.v,ignoreElements:()=>ft,isEmpty:()=>Ct,last:()=>Bt,map:()=>Xe.U,mapTo:()=>Qt,materialize:()=>bt,max:()=>Kt,merge:()=>Tt,mergeAll:()=>Pt.J,mergeMap:()=>q.zg,flatMap:()=>q.zg,mergeMapTo:()=>Ut,mergeScan:()=>_t,min:()=>Yt,multicast:()=>Jt,observeOn:()=>qt.QV,onErrorResumeNext:()=>zt,pairwise:()=>Xt,partition:()=>tr,pluck:()=>rr,publish:()=>or,publishBehavior:()=>Ar,publishLast:()=>cr,publishReplay:()=>lr,race:()=>gr,reduce:()=>Rt,repeat:()=>fr,repeatWhen:()=>Cr,retry:()=>mr,retryWhen:()=>Br,refCount:()=>Dr.x,sample:()=>br,sampleTime:()=>xr,scan:()=>xt,sequenceEqual:()=>Rr,share:()=>Ur,shareReplay:()=>_r,single:()=>Or,skip:()=>Gr,skipLast:()=>qr,skipUntil:()=>Vr,skipWhile:()=>$r,startWith:()=>rn,subscribeOn:()=>An,switchAll:()=>hn,switchMap:()=>cn,switchMapTo:()=>gn,take:()=>Ue,takeLast:()=>mt,takeUntil:()=>fn,takeWhile:()=>Cn,tap:()=>wn,throttle:()=>Dn,throttleTime:()=>kn,throwIfEmpty:()=>Re,timeInterval:()=>Rn,timeout:()=>On,timeoutWith:()=>Tn,timestamp:()=>jn,toArray:()=>Jn,window:()=>Hn,windowCount:()=>Wn,windowTime:()=>Zn,windowToggle:()=>oi,windowWhen:()=>ai,withLatestFrom:()=>li,zip:()=>pi,zipAll:()=>di});var n=r(36370),i=r(20242),o=r(93590);function s(e){return function(t){return t.lift(new A(e))}}var A=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.durationSelector))},e}(),a=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=void 0;try{t=(0,this.durationSelector)(e)}catch(e){return this.destination.error(e)}var r=(0,o.D)(this,t);!r||r.closed?this.clearThrottle():this.add(this.throttled=r)}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,r=this.throttled;r&&(this.remove(r),this.throttled=null,r.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,r,n){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(i.L),c=r(59873),u=r(13028);function l(e,t){return void 0===t&&(t=c.P),s((function(){return(0,u.H)(e,t)}))}function h(e){return function(t){return t.lift(new g(e))}}var g=function(){function e(e){this.closingNotifier=e}return e.prototype.call=function(e,t){return t.subscribe(new f(e,this.closingNotifier))},e}(),f=function(e){function t(t,r){var n=e.call(this,t)||this;return n.buffer=[],n.add((0,o.D)(n,r)),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.buffer;this.buffer=[],this.destination.next(o)},t}(i.L),p=r(28732);function d(e,t){return void 0===t&&(t=null),function(r){return r.lift(new C(e,t))}}var C=function(){function e(e,t){this.bufferSize=e,this.startBufferEvery=t,this.subscriberClass=t&&e!==t?I:E}return e.prototype.call=function(e,t){return t.subscribe(new this.subscriberClass(e,this.bufferSize,this.startBufferEvery))},e}(),E=function(e){function t(t,r){var n=e.call(this,t)||this;return n.bufferSize=r,n.buffer=[],n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.buffer;t.push(e),t.length==this.bufferSize&&(this.destination.next(t),this.buffer=[])},t.prototype._complete=function(){var t=this.buffer;t.length>0&&this.destination.next(t),e.prototype._complete.call(this)},t}(p.L),I=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.bufferSize=r,i.startBufferEvery=n,i.buffers=[],i.count=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.bufferSize,r=this.startBufferEvery,n=this.buffers,i=this.count;this.count++,i%r==0&&n.push([]);for(var o=n.length;o--;){var s=n[o];s.push(e),s.length===t&&(n.splice(o,1),this.destination.next(s))}},t.prototype._complete=function(){for(var t=this.buffers,r=this.destination;t.length>0;){var n=t.shift();n.length>0&&r.next(n)}e.prototype._complete.call(this)},t}(p.L),m=r(64986);function y(e){var t=arguments.length,r=c.P;(0,m.K)(arguments[arguments.length-1])&&(r=arguments[arguments.length-1],t--);var n=null;t>=2&&(n=arguments[1]);var i=Number.POSITIVE_INFINITY;return t>=3&&(i=arguments[2]),function(t){return t.lift(new w(e,n,i,r))}}var w=function(){function e(e,t,r,n){this.bufferTimeSpan=e,this.bufferCreationInterval=t,this.maxBufferSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Q(e,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},e}(),B=function(){return function(){this.buffer=[]}}(),Q=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.bufferTimeSpan=r,s.bufferCreationInterval=n,s.maxBufferSize=i,s.scheduler=o,s.contexts=[];var A=s.openContext();if(s.timespanOnly=null==n||n<0,s.timespanOnly){var a={subscriber:s,context:A,bufferTimeSpan:r};s.add(A.closeAction=o.schedule(v,r,a))}else{var c={subscriber:s,context:A},u={bufferTimeSpan:r,bufferCreationInterval:n,subscriber:s,scheduler:o};s.add(A.closeAction=o.schedule(b,r,c)),s.add(o.schedule(D,n,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t,r=this.contexts,n=r.length,i=0;i<n;i++){var o=r[i],s=o.buffer;s.push(e),s.length==this.maxBufferSize&&(t=o)}t&&this.onBufferFull(t)},t.prototype._error=function(t){this.contexts.length=0,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts,r=this.destination;t.length>0;){var n=t.shift();r.next(n.buffer)}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.contexts=null},t.prototype.onBufferFull=function(e){this.closeContext(e);var t=e.closeAction;if(t.unsubscribe(),this.remove(t),!this.closed&&this.timespanOnly){e=this.openContext();var r=this.bufferTimeSpan,n={subscriber:this,context:e,bufferTimeSpan:r};this.add(e.closeAction=this.scheduler.schedule(v,r,n))}},t.prototype.openContext=function(){var e=new B;return this.contexts.push(e),e},t.prototype.closeContext=function(e){this.destination.next(e.buffer);var t=this.contexts;(t?t.indexOf(e):-1)>=0&&t.splice(t.indexOf(e),1)},t}(p.L);function v(e){var t=e.subscriber,r=e.context;r&&t.closeContext(r),t.closed||(e.context=t.openContext(),e.context.closeAction=this.schedule(e,e.bufferTimeSpan))}function D(e){var t=e.bufferCreationInterval,r=e.bufferTimeSpan,n=e.subscriber,i=e.scheduler,o=n.openContext();n.closed||(n.add(o.closeAction=i.schedule(b,r,{subscriber:n,context:o})),this.schedule(e,t))}function b(e){var t=e.subscriber,r=e.context;t.closeContext(r)}var S=r(73504);function k(e,t){return function(r){return r.lift(new x(e,t))}}var x=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new F(e,this.openings,this.closingSelector))},e}(),F=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add((0,o.D)(i,r)),i}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.contexts,r=t.length,n=0;n<r;n++)t[n].buffer.push(e)},t.prototype._error=function(t){for(var r=this.contexts;r.length>0;){var n=r.shift();n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,e.prototype._error.call(this,t)},t.prototype._complete=function(){for(var t=this.contexts;t.length>0;){var r=t.shift();this.destination.next(r.buffer),r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){e?this.closeBuffer(e):this.openBuffer(t)},t.prototype.notifyComplete=function(e){this.closeBuffer(e.context)},t.prototype.openBuffer=function(e){try{var t=this.closingSelector.call(this,e);t&&this.trySubscribe(t)}catch(e){this._error(e)}},t.prototype.closeBuffer=function(e){var t=this.contexts;if(t&&e){var r=e.buffer,n=e.subscription;this.destination.next(r),t.splice(t.indexOf(e),1),this.remove(n),n.unsubscribe()}},t.prototype.trySubscribe=function(e){var t=this.contexts,r=new S.w,n={buffer:[],subscription:r};t.push(n);var i=(0,o.D)(this,e,n);!i||i.closed?this.closeBuffer(n):(i.context=n,this.add(i),r.add(i))},t}(i.L);function M(e){return function(t){return t.lift(new N(e))}}var N=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new R(e,this.closingSelector))},e}(),R=function(e){function t(t,r){var n=e.call(this,t)||this;return n.closingSelector=r,n.subscribing=!1,n.openBuffer(),n}return n.ZT(t,e),t.prototype._next=function(e){this.buffer.push(e)},t.prototype._complete=function(){var t=this.buffer;t&&this.destination.next(t),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},t.prototype.notifyNext=function(e,t,r,n,i){this.openBuffer()},t.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},t.prototype.openBuffer=function(){var e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe());var t,r=this.buffer;this.buffer&&this.destination.next(r),this.buffer=[];try{t=(0,this.closingSelector)()}catch(e){return this.error(e)}e=new S.w,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add((0,o.D)(this,t)),this.subscribing=!1},t}(i.L),K=r(28907);function L(e){return function(t){var r=new T(e),n=t.lift(r);return r.caught=n}}var T=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new P(e,this.selector,this.caught))},e}(),P=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.selector=r,i.caught=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=void 0;try{r=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle();var n=new K.d(this,void 0,void 0);this.add(n);var i=(0,o.D)(this,r,void 0,void 0,n);i!==n&&this.add(i)}},t}(i.L),U=r(20995);function _(e){return function(t){return t.lift(new U.Ms(e))}}var O=r(47182),j=r(85861);function Y(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=null;return"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&(0,O.k)(e[0])&&(e=e[0].slice()),function(t){return t.lift.call((0,j.D)([t].concat(e)),new U.Ms(r))}}var G=r(14023);function J(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(G.z.apply(void 0,[t].concat(e)))}}var H=r(37339),q=r(20259);function z(e,t){return(0,q.zg)(e,t,1)}function W(e,t){return z((function(){return e}),t)}function V(e){return function(t){return t.lift(new X(e,t))}}var X=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Z(e,this.predicate,this.source))},e}(),Z=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.count=0,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){this.predicate?this._tryPredicate(e):this.count++},t.prototype._tryPredicate=function(e){var t;try{t=this.predicate(e,this.index++,this.source)}catch(e){return void this.destination.error(e)}t&&this.count++},t.prototype._complete=function(){this.destination.next(this.count),this.destination.complete()},t}(p.L);function $(e){return function(t){return t.lift(new ee(e))}}var ee=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new te(e,this.durationSelector))},e}(),te=function(e){function t(t,r){var n=e.call(this,t)||this;return n.durationSelector=r,n.hasValue=!1,n.durationSubscription=null,n}return n.ZT(t,e),t.prototype._next=function(e){try{var t=this.durationSelector.call(this,e);t&&this._tryNext(e,t)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.emitValue(),this.destination.complete()},t.prototype._tryNext=function(e,t){var r=this.durationSubscription;this.value=e,this.hasValue=!0,r&&(r.unsubscribe(),this.remove(r)),(r=(0,o.D)(this,t))&&!r.closed&&this.add(this.durationSubscription=r)},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){if(this.hasValue){var t=this.value,r=this.durationSubscription;r&&(this.durationSubscription=null,r.unsubscribe(),this.remove(r)),this.value=null,this.hasValue=!1,e.prototype._next.call(this,t)}},t}(i.L);function re(e,t){return void 0===t&&(t=c.P),function(r){return r.lift(new ne(e,t))}}var ne=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ie(e,this.dueTime,this.scheduler))},e}(),ie=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.dueTime=r,i.scheduler=n,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return n.ZT(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(oe,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var e=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(e)}},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(p.L);function oe(e){e.debouncedNext()}function se(e){return void 0===e&&(e=null),function(t){return t.lift(new Ae(e))}}var Ae=function(){function e(e){this.defaultValue=e}return e.prototype.call=function(e,t){return t.subscribe(new ae(e,this.defaultValue))},e}(),ae=function(e){function t(t,r){var n=e.call(this,t)||this;return n.defaultValue=r,n.isEmpty=!0,n}return n.ZT(t,e),t.prototype._next=function(e){this.isEmpty=!1,this.destination.next(e)},t.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},t}(p.L);function ce(e){return e instanceof Date&&!isNaN(+e)}var ue=r(4094);function le(e,t){void 0===t&&(t=c.P);var r=ce(e)?+e-t.now():Math.abs(e);return function(e){return e.lift(new he(r,t))}}var he=function(){function e(e,t){this.delay=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new ge(e,this.delay,this.scheduler))},e}(),ge=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.delay=r,i.scheduler=n,i.queue=[],i.active=!1,i.errored=!1,i}return n.ZT(t,e),t.dispatch=function(e){for(var t=e.source,r=t.queue,n=e.scheduler,i=e.destination;r.length>0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i);if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(e,o)}else this.unsubscribe(),t.active=!1},t.prototype._schedule=function(e){this.active=!0,this.destination.add(e.schedule(t.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))},t.prototype.scheduleNotification=function(e){if(!0!==this.errored){var t=this.scheduler,r=new fe(t.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(t)}},t.prototype._next=function(e){this.scheduleNotification(ue.P.createNext(e))},t.prototype._error=function(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.scheduleNotification(ue.P.createComplete()),this.unsubscribe()},t}(p.L),fe=function(){return function(e,t){this.time=e,this.notification=t}}(),pe=r(98789);function de(e,t){return t?function(r){return new Ie(r,t).lift(new Ce(e))}:function(t){return t.lift(new Ce(e))}}var Ce=function(){function e(e){this.delayDurationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new Ee(e,this.delayDurationSelector))},e}(),Ee=function(e){function t(t,r){var n=e.call(this,t)||this;return n.delayDurationSelector=r,n.completed=!1,n.delayNotifierSubscriptions=[],n.index=0,n}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(e),this.removeSubscription(i),this.tryComplete()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){var t=this.removeSubscription(e);t&&this.destination.next(t),this.tryComplete()},t.prototype._next=function(e){var t=this.index++;try{var r=this.delayDurationSelector(e,t);r&&this.tryDelay(r,e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},t.prototype.removeSubscription=function(e){e.unsubscribe();var t=this.delayNotifierSubscriptions.indexOf(e);return-1!==t&&this.delayNotifierSubscriptions.splice(t,1),e.outerValue},t.prototype.tryDelay=function(e,t){var r=(0,o.D)(this,e,t);r&&!r.closed&&(this.destination.add(r),this.delayNotifierSubscriptions.push(r))},t.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},t}(i.L),Ie=function(e){function t(t,r){var n=e.call(this)||this;return n.source=t,n.subscriptionDelay=r,n}return n.ZT(t,e),t.prototype._subscribe=function(e){this.subscriptionDelay.subscribe(new me(e,this.source))},t}(pe.y),me=function(e){function t(t,r){var n=e.call(this)||this;return n.parent=t,n.source=r,n.sourceSubscribed=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.subscribeToSource()},t.prototype._error=function(e){this.unsubscribe(),this.parent.error(e)},t.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},t.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},t}(p.L);function ye(){return function(e){return e.lift(new we)}}var we=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Be(e))},e}(),Be=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){e.observe(this.destination)},t}(p.L);function Qe(e,t){return function(r){return r.lift(new ve(e,t))}}var ve=function(){function e(e,t){this.keySelector=e,this.flushes=t}return e.prototype.call=function(e,t){return t.subscribe(new De(e,this.keySelector,this.flushes))},e}(),De=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=r,i.values=new Set,n&&i.add((0,o.D)(i,n)),i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values.clear()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype._next=function(e){this.keySelector?this._useKeySelector(e):this._finalizeNext(e,e)},t.prototype._useKeySelector=function(e){var t,r=this.destination;try{t=this.keySelector(e)}catch(e){return void r.error(e)}this._finalizeNext(t,e)},t.prototype._finalizeNext=function(e,t){var r=this.values;r.has(e)||(r.add(e),this.destination.next(t))},t}(i.L);function be(e,t){return function(r){return r.lift(new Se(e,t))}}var Se=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new ke(e,this.compare,this.keySelector))},e}(),ke=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.keySelector=n,i.hasKey=!1,"function"==typeof r&&(i.compare=r),i}return n.ZT(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t;try{var r=this.keySelector;t=r?r(e):e}catch(e){return this.destination.error(e)}var n=!1;if(this.hasKey)try{n=(0,this.compare)(this.key,t)}catch(e){return this.destination.error(e)}else this.hasKey=!0;n||(this.key=t,this.destination.next(e))},t}(p.L);function xe(e,t){return be((function(r,n){return t?t(r[e],n[e]):r[e]===n[e]}))}var Fe=r(3551),Me=r(39063),Ne=r(30943);function Re(e){return void 0===e&&(e=Te),function(t){return t.lift(new Ke(e))}}var Ke=function(){function e(e){this.errorFactory=e}return e.prototype.call=function(e,t){return t.subscribe(new Le(e,this.errorFactory))},e}(),Le=function(e){function t(t,r){var n=e.call(this,t)||this;return n.errorFactory=r,n.hasValue=!1,n}return n.ZT(t,e),t.prototype._next=function(e){this.hasValue=!0,this.destination.next(e)},t.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var e=void 0;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)},t}(p.L);function Te(){return new Ne.K}var Pe=r(61775);function Ue(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new _e(e))}}var _e=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new Oe(e,this.total))},e}(),Oe=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))},t}(p.L);function je(e,t){if(e<0)throw new Fe.W;var r=arguments.length>=2;return function(n){return n.pipe((0,Me.h)((function(t,r){return r===e})),Ue(1),r?se(t):Re((function(){return new Fe.W})))}}var Ye=r(29686);function Ge(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return(0,G.z)(t,Ye.of.apply(void 0,e))}}function Je(e,t){return function(r){return r.lift(new He(e,t,r))}}var He=function(){function e(e,t,r){this.predicate=e,this.thisArg=t,this.source=r}return e.prototype.call=function(e,t){return t.subscribe(new qe(e,this.predicate,this.thisArg,this.source))},e}(),qe=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.predicate=r,o.thisArg=n,o.source=i,o.index=0,o.thisArg=n||o,o}return n.ZT(t,e),t.prototype.notifyComplete=function(e){this.destination.next(e),this.destination.complete()},t.prototype._next=function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(e){return void this.destination.error(e)}t||this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.L);function ze(){return function(e){return e.lift(new We)}}var We=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Ve(e))},e}(),Ve=function(e){function t(t){var r=e.call(this,t)||this;return r.hasCompleted=!1,r.hasSubscription=!1,r}return n.ZT(t,e),t.prototype._next=function(e){this.hasSubscription||(this.hasSubscription=!0,this.add((0,o.D)(this,e)))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},t.prototype.notifyComplete=function(e){this.remove(e),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},t}(i.L),Xe=r(98082);function Ze(e,t){return t?function(r){return r.pipe(Ze((function(r,n){return(0,j.D)(e(r,n)).pipe((0,Xe.U)((function(e,i){return t(r,e,n,i)})))})))}:function(t){return t.lift(new $e(e))}}var $e=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new et(e,this.project))},e}(),et=function(e){function t(t,r){var n=e.call(this,t)||this;return n.project=r,n.hasSubscription=!1,n.hasCompleted=!1,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){this.hasSubscription||this.tryNext(e)},t.prototype.tryNext=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this.hasSubscription=!0,this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=new K.d(this,t,r),i=this.destination;i.add(n);var s=(0,o.D)(this,e,void 0,void 0,n);s!==n&&i.add(s)},t.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.remove(e),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},t}(i.L);function tt(e,t,r){return void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),t=(t||0)<1?Number.POSITIVE_INFINITY:t,function(n){return n.lift(new rt(e,t,r))}}var rt=function(){function e(e,t,r){this.project=e,this.concurrent=t,this.scheduler=r}return e.prototype.call=function(e,t){return t.subscribe(new nt(e,this.project,this.concurrent,this.scheduler))},e}(),nt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.project=r,o.concurrent=n,o.scheduler=i,o.index=0,o.active=0,o.hasCompleted=!1,n<Number.POSITIVE_INFINITY&&(o.buffer=[]),o}return n.ZT(t,e),t.dispatch=function(e){var t=e.subscriber,r=e.result,n=e.value,i=e.index;t.subscribeToProjection(r,n,i)},t.prototype._next=function(e){var r=this.destination;if(r.closed)this._complete();else{var n=this.index++;if(this.active<this.concurrent){r.next(e);try{var i=(0,this.project)(e,n);if(this.scheduler){var o={subscriber:this,result:i,value:e,index:n};this.destination.add(this.scheduler.schedule(t.dispatch,0,o))}else this.subscribeToProjection(i,e,n)}catch(e){r.error(e)}}else this.buffer.push(e)}},t.prototype.subscribeToProjection=function(e,t,r){this.active++,this.destination.add((0,o.D)(this,e,t,r))},t.prototype._complete=function(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){this._next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.destination.remove(e),this.active--,t&&t.length>0&&this._next(t.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},t}(i.L);function it(e){return function(t){return t.lift(new ot(e))}}var ot=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new st(e,this.callback))},e}(),st=function(e){function t(t,r){var n=e.call(this,t)||this;return n.add(new S.w(r)),n}return n.ZT(t,e),t}(p.L);function At(e,t){if("function"!=typeof e)throw new TypeError("predicate is not a function");return function(r){return r.lift(new at(e,r,!1,t))}}var at=function(){function e(e,t,r,n){this.predicate=e,this.source=t,this.yieldIndex=r,this.thisArg=n}return e.prototype.call=function(e,t){return t.subscribe(new ct(e,this.predicate,this.source,this.yieldIndex,this.thisArg))},e}(),ct=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.predicate=r,s.source=n,s.yieldIndex=i,s.thisArg=o,s.index=0,s}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete(),this.unsubscribe()},t.prototype._next=function(e){var t=this.predicate,r=this.thisArg,n=this.index++;try{t.call(r||this,e,n,this.source)&&this.notifyComplete(this.yieldIndex?n:e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},t}(p.L);function ut(e,t){return function(r){return r.lift(new at(e,r,!0,t))}}var lt=r(80433);function ht(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,Ue(1),r?se(t):Re((function(){return new Ne.K})))}}var gt=r(92564);function ft(){return function(e){return e.lift(new pt)}}var pt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new dt(e))},e}(),dt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.ZT(t,e),t.prototype._next=function(e){},t}(p.L);function Ct(){return function(e){return e.lift(new Et)}}var Et=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new It(e))},e}(),It=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype.notifyComplete=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype._next=function(e){this.notifyComplete(!1)},t.prototype._complete=function(){this.notifyComplete(!0)},t}(p.L);function mt(e){return function(t){return 0===e?(0,Pe.c)():t.lift(new yt(e))}}var yt=function(){function e(e){if(this.total=e,this.total<0)throw new Fe.W}return e.prototype.call=function(e,t){return t.subscribe(new wt(e,this.total))},e}(),wt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.ring=new Array,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.ring,r=this.total,n=this.count++;t.length<r?t.push(e):t[n%r]=e},t.prototype._complete=function(){var e=this.destination,t=this.count;if(t>0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i<r;i++){var o=t++%r;e.next(n[o])}e.complete()},t}(p.L);function Bt(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?(0,Me.h)((function(t,r){return e(t,r,n)})):lt.y,mt(1),r?se(t):Re((function(){return new Ne.K})))}}function Qt(e){return function(t){return t.lift(new vt(e))}}var vt=function(){function e(e){this.value=e}return e.prototype.call=function(e,t){return t.subscribe(new Dt(e,this.value))},e}(),Dt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.value=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(this.value)},t}(p.L);function bt(){return function(e){return e.lift(new St)}}var St=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new kt(e))},e}(),kt=function(e){function t(t){return e.call(this,t)||this}return n.ZT(t,e),t.prototype._next=function(e){this.destination.next(ue.P.createNext(e))},t.prototype._error=function(e){var t=this.destination;t.next(ue.P.createError(e)),t.complete()},t.prototype._complete=function(){var e=this.destination;e.next(ue.P.createComplete()),e.complete()},t}(p.L);function xt(e,t){var r=!1;return arguments.length>=2&&(r=!0),function(n){return n.lift(new Ft(e,t,r))}}var Ft=function(){function e(e,t,r){void 0===r&&(r=!1),this.accumulator=e,this.seed=t,this.hasSeed=r}return e.prototype.call=function(e,t){return t.subscribe(new Mt(e,this.accumulator,this.seed,this.hasSeed))},e}(),Mt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o._seed=n,o.hasSeed=i,o.index=0,o}return n.ZT(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,r=this.index++;try{t=this.accumulator(this.seed,e,r)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(p.L),Nt=r(97836);function Rt(e,t){return arguments.length>=2?function(r){return(0,Nt.z)(xt(e,t),mt(1),se(t))(r)}:function(t){return(0,Nt.z)(xt((function(t,r,n){return e(t,r,n+1)})),mt(1))(t)}}function Kt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)>0?t:r}:function(e,t){return e>t?e:t})}var Lt=r(80810);function Tt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(Lt.T.apply(void 0,[t].concat(e)))}}var Pt=r(66852);function Ut(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"function"==typeof t?(0,q.zg)((function(){return e}),t,r):("number"==typeof t&&(r=t),(0,q.zg)((function(){return e}),r))}function _t(e,t,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),function(n){return n.lift(new Ot(e,t,r))}}var Ot=function(){function e(e,t,r){this.accumulator=e,this.seed=t,this.concurrent=r}return e.prototype.call=function(e,t){return t.subscribe(new jt(e,this.accumulator,this.seed,this.concurrent))},e}(),jt=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.accumulator=r,o.acc=n,o.concurrent=i,o.hasValue=!1,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return n.ZT(t,e),t.prototype._next=function(e){if(this.active<this.concurrent){var t=this.index++,r=this.destination,n=void 0;try{n=(0,this.accumulator)(this.acc,e,t)}catch(e){return r.error(e)}this.active++,this._innerSub(n,e,t)}else this.buffer.push(e)},t.prototype._innerSub=function(e,t,r){var n=new K.d(this,t,r),i=this.destination;i.add(n);var s=(0,o.D)(this,e,void 0,void 0,n);s!==n&&i.add(s)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete()),this.unsubscribe()},t.prototype.notifyNext=function(e,t,r,n,i){var o=this.destination;this.acc=t,this.hasValue=!0,o.next(t)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.destination.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},t}(i.L);function Yt(e){return Rt("function"==typeof e?function(t,r){return e(t,r)<0?t:r}:function(e,t){return e<t?e:t})}var Gt=r(24311);function Jt(e,t){return function(r){var n;if(n="function"==typeof e?e:function(){return e},"function"==typeof t)return r.lift(new Ht(n,t));var i=Object.create(r,Gt.N);return i.source=r,i.subjectFactory=n,i}}var Ht=function(){function e(e,t){this.subjectFactory=e,this.selector=t}return e.prototype.call=function(e,t){var r=this.selector,n=this.subjectFactory(),i=r(n).subscribe(e);return i.add(t.subscribe(n)),i},e}(),qt=r(32746);function zt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 1===e.length&&(0,O.k)(e[0])&&(e=e[0]),function(t){return t.lift(new Wt(e))}}var Wt=function(){function e(e){this.nextSources=e}return e.prototype.call=function(e,t){return t.subscribe(new Vt(e,this.nextSources))},e}(),Vt=function(e){function t(t,r){var n=e.call(this,t)||this;return n.destination=t,n.nextSources=r,n}return n.ZT(t,e),t.prototype.notifyError=function(e,t){this.subscribeToNextSource()},t.prototype.notifyComplete=function(e){this.subscribeToNextSource()},t.prototype._error=function(e){this.subscribeToNextSource(),this.unsubscribe()},t.prototype._complete=function(){this.subscribeToNextSource(),this.unsubscribe()},t.prototype.subscribeToNextSource=function(){var e=this.nextSources.shift();if(e){var t=new K.d(this,void 0,void 0),r=this.destination;r.add(t);var n=(0,o.D)(this,e,void 0,void 0,t);n!==t&&r.add(n)}else this.destination.complete()},t}(i.L);function Xt(){return function(e){return e.lift(new Zt)}}var Zt=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new $t(e))},e}(),$t=function(e){function t(t){var r=e.call(this,t)||this;return r.hasPrev=!1,r}return n.ZT(t,e),t.prototype._next=function(e){var t;this.hasPrev?t=[this.prev,e]:this.hasPrev=!0,this.prev=e,t&&this.destination.next(t)},t}(p.L),er=r(65868);function tr(e,t){return function(r){return[(0,Me.h)(e,t)(r),(0,Me.h)((0,er.f)(e,t))(r)]}}function rr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e.length;if(0===r)throw new Error("list of properties cannot be empty.");return function(t){return(0,Xe.U)(nr(e,r))(t)}}function nr(e,t){return function(r){for(var n=r,i=0;i<t;i++){var o=n[e[i]];if(void 0===o)return;n=o}return n}}var ir=r(92915);function or(e){return e?Jt((function(){return new ir.xQ}),e):Jt(new ir.xQ)}var sr=r(14753);function Ar(e){return function(t){return Jt(new sr.X(e))(t)}}var ar=r(73582);function cr(){return function(e){return Jt(new ar.c)(e)}}var ur=r(52493);function lr(e,t,r,n){r&&"function"!=typeof r&&(n=r);var i="function"==typeof r?r:void 0,o=new ur.t(e,t,n);return function(e){return Jt((function(){return o}),i)(e)}}var hr=r(2332);function gr(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return 1===e.length&&(0,O.k)(e[0])&&(e=e[0]),t.lift.call(hr.S3.apply(void 0,[t].concat(e)))}}function fr(e){return void 0===e&&(e=-1),function(t){return 0===e?(0,Pe.c)():e<0?t.lift(new pr(-1,t)):t.lift(new pr(e-1,t))}}var pr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new dr(e,this.count,this.source))},e}(),dr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.ZT(t,e),t.prototype.complete=function(){if(!this.isStopped){var t=this.source,r=this.count;if(0===r)return e.prototype.complete.call(this);r>-1&&(this.count=r-1),t.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Cr(e){return function(t){return t.lift(new Er(e))}}var Er=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Ir(e,this.notifier,t))},e}(),Ir=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i.sourceIsBeingSubscribedTo=!0,i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},t.prototype.notifyComplete=function(t){if(!1===this.sourceIsBeingSubscribedTo)return e.prototype.complete.call(this)},t.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return e.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},t.prototype._unsubscribe=function(){var e=this.notifications,t=this.retriesSubscription;e&&(e.unsubscribe(),this.notifications=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype._unsubscribeAndRecycle=function(){var t=this._unsubscribe;return this._unsubscribe=null,e.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=t,this},t.prototype.subscribeToRetries=function(){var t;this.notifications=new ir.xQ;try{t=(0,this.notifier)(this.notifications)}catch(t){return e.prototype.complete.call(this)}this.retries=t,this.retriesSubscription=(0,o.D)(this,t)},t}(i.L);function mr(e){return void 0===e&&(e=-1),function(t){return t.lift(new yr(e,t))}}var yr=function(){function e(e,t){this.count=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new wr(e,this.count,this.source))},e}(),wr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.count=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.source,n=this.count;if(0===n)return e.prototype.error.call(this,t);n>-1&&(this.count=n-1),r.subscribe(this._unsubscribeAndRecycle())}},t}(p.L);function Br(e){return function(t){return t.lift(new Qr(e,t))}}var Qr=function(){function e(e,t){this.notifier=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new vr(e,this.notifier,this.source))},e}(),vr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.notifier=r,i.source=n,i}return n.ZT(t,e),t.prototype.error=function(t){if(!this.isStopped){var r=this.errors,n=this.retries,i=this.retriesSubscription;if(n)this.errors=null,this.retriesSubscription=null;else{r=new ir.xQ;try{n=(0,this.notifier)(r)}catch(t){return e.prototype.error.call(this,t)}i=(0,o.D)(this,n)}this._unsubscribeAndRecycle(),this.errors=r,this.retries=n,this.retriesSubscription=i,r.next(t)}},t.prototype._unsubscribe=function(){var e=this.errors,t=this.retriesSubscription;e&&(e.unsubscribe(),this.errors=null),t&&(t.unsubscribe(),this.retriesSubscription=null),this.retries=null},t.prototype.notifyNext=function(e,t,r,n,i){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},t}(i.L),Dr=r(97566);function br(e){return function(t){return t.lift(new Sr(e))}}var Sr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new kr(e),n=t.subscribe(r);return n.add((0,o.D)(r,this.notifier)),n},e}(),kr=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.hasValue=!1,t}return n.ZT(t,e),t.prototype._next=function(e){this.value=e,this.hasValue=!0},t.prototype.notifyNext=function(e,t,r,n,i){this.emitValue()},t.prototype.notifyComplete=function(){this.emitValue()},t.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},t}(i.L);function xr(e,t){return void 0===t&&(t=c.P),function(r){return r.lift(new Fr(e,t))}}var Fr=function(){function e(e,t){this.period=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new Mr(e,this.period,this.scheduler))},e}(),Mr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.period=r,i.scheduler=n,i.hasValue=!1,i.add(n.schedule(Nr,r,{subscriber:i,period:r})),i}return n.ZT(t,e),t.prototype._next=function(e){this.lastValue=e,this.hasValue=!0},t.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},t}(p.L);function Nr(e){var t=e.subscriber,r=e.period;t.notifyNext(),this.schedule(e,r)}function Rr(e,t){return function(r){return r.lift(new Kr(e,t))}}var Kr=function(){function e(e,t){this.compareTo=e,this.comparator=t}return e.prototype.call=function(e,t){return t.subscribe(new Lr(e,this.compareTo,this.comparator))},e}(),Lr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.compareTo=r,i.comparator=n,i._a=[],i._b=[],i._oneComplete=!1,i.destination.add(r.subscribe(new Tr(t,i))),i}return n.ZT(t,e),t.prototype._next=function(e){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(e),this.checkValues())},t.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},t.prototype.checkValues=function(){for(var e=this._a,t=this._b,r=this.comparator;e.length>0&&t.length>0;){var n=e.shift(),i=t.shift(),o=!1;try{o=r?r(n,i):n===i}catch(e){this.destination.error(e)}o||this.emit(!1)}},t.prototype.emit=function(e){var t=this.destination;t.next(e),t.complete()},t.prototype.nextB=function(e){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(e),this.checkValues())},t.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},t}(p.L),Tr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.parent=r,n}return n.ZT(t,e),t.prototype._next=function(e){this.parent.nextB(e)},t.prototype._error=function(e){this.parent.error(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},t}(p.L);function Pr(){return new ir.xQ}function Ur(){return function(e){return(0,Dr.x)()(Jt(Pr)(e))}}function _r(e,t,r){var n;return n=e&&"object"==typeof e?e:{bufferSize:e,windowTime:t,refCount:!1,scheduler:r},function(e){return e.lift(function(e){var t,r,n=e.bufferSize,i=void 0===n?Number.POSITIVE_INFINITY:n,o=e.windowTime,s=void 0===o?Number.POSITIVE_INFINITY:o,A=e.refCount,a=e.scheduler,c=0,u=!1,l=!1;return function(e){c++,t&&!u||(u=!1,t=new ur.t(i,s,a),r=e.subscribe({next:function(e){t.next(e)},error:function(e){u=!0,t.error(e)},complete:function(){l=!0,r=void 0,t.complete()}}));var n=t.subscribe(this);this.add((function(){c--,n.unsubscribe(),r&&!l&&A&&0===c&&(r.unsubscribe(),r=void 0,t=void 0)}))}}(n))}}function Or(e){return function(t){return t.lift(new jr(e,t))}}var jr=function(){function e(e,t){this.predicate=e,this.source=t}return e.prototype.call=function(e,t){return t.subscribe(new Yr(e,this.predicate,this.source))},e}(),Yr=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.source=n,i.seenValue=!1,i.index=0,i}return n.ZT(t,e),t.prototype.applySingleValue=function(e){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=e)},t.prototype._next=function(e){var t=this.index++;this.predicate?this.tryNext(e,t):this.applySingleValue(e)},t.prototype.tryNext=function(e,t){try{this.predicate(e,t,this.source)&&this.applySingleValue(e)}catch(e){this.destination.error(e)}},t.prototype._complete=function(){var e=this.destination;this.index>0?(e.next(this.seenValue?this.singleValue:void 0),e.complete()):e.error(new Ne.K)},t}(p.L);function Gr(e){return function(t){return t.lift(new Jr(e))}}var Jr=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new Hr(e,this.total))},e}(),Hr=function(e){function t(t,r){var n=e.call(this,t)||this;return n.total=r,n.count=0,n}return n.ZT(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(p.L);function qr(e){return function(t){return t.lift(new zr(e))}}var zr=function(){function e(e){if(this._skipCount=e,this._skipCount<0)throw new Fe.W}return e.prototype.call=function(e,t){return 0===this._skipCount?t.subscribe(new p.L(e)):t.subscribe(new Wr(e,this._skipCount))},e}(),Wr=function(e){function t(t,r){var n=e.call(this,t)||this;return n._skipCount=r,n._count=0,n._ring=new Array(r),n}return n.ZT(t,e),t.prototype._next=function(e){var t=this._skipCount,r=this._count++;if(r<t)this._ring[r]=e;else{var n=r%t,i=this._ring,o=i[n];i[n]=e,this.destination.next(o)}},t}(p.L);function Vr(e){return function(t){return t.lift(new Xr(e))}}var Xr=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new Zr(e,this.notifier))},e}(),Zr=function(e){function t(t,r){var n=e.call(this,t)||this;n.hasValue=!1;var i=new K.d(n,void 0,void 0);n.add(i),n.innerSubscription=i;var s=(0,o.D)(n,r,void 0,void 0,i);return s!==i&&(n.add(s),n.innerSubscription=s),n}return n.ZT(t,e),t.prototype._next=function(t){this.hasValue&&e.prototype._next.call(this,t)},t.prototype.notifyNext=function(e,t,r,n,i){this.hasValue=!0,this.innerSubscription&&this.innerSubscription.unsubscribe()},t.prototype.notifyComplete=function(){},t}(i.L);function $r(e){return function(t){return t.lift(new en(e))}}var en=function(){function e(e){this.predicate=e}return e.prototype.call=function(e,t){return t.subscribe(new tn(e,this.predicate))},e}(),tn=function(e){function t(t,r){var n=e.call(this,t)||this;return n.predicate=r,n.skipping=!0,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t=this.destination;this.skipping&&this.tryCallPredicate(e),this.skipping||t.next(e)},t.prototype.tryCallPredicate=function(e){try{var t=this.predicate(e,this.index++);this.skipping=Boolean(t)}catch(e){this.destination.error(e)}},t}(p.L);function rn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=e[e.length-1];return(0,m.K)(r)?(e.pop(),function(t){return(0,G.z)(e,t,r)}):function(t){return(0,G.z)(e,t)}}var nn=r(94097),on=r(23820),sn=function(e){function t(t,r,n){void 0===r&&(r=0),void 0===n&&(n=nn.e);var i=e.call(this)||this;return i.source=t,i.delayTime=r,i.scheduler=n,(!(0,on.k)(r)||r<0)&&(i.delayTime=0),n&&"function"==typeof n.schedule||(i.scheduler=nn.e),i}return n.ZT(t,e),t.create=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=nn.e),new t(e,r,n)},t.dispatch=function(e){var t=e.source,r=e.subscriber;return this.add(t.subscribe(r))},t.prototype._subscribe=function(e){var r=this.delayTime,n=this.source;return this.scheduler.schedule(t.dispatch,r,{source:n,subscriber:e})},t}(pe.y);function An(e,t){return void 0===t&&(t=0),function(r){return r.lift(new an(e,t))}}var an=function(){function e(e,t){this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return new sn(t,this.delay,this.scheduler).subscribe(e)},e}();function cn(e,t){return"function"==typeof t?function(r){return r.pipe(cn((function(r,n){return(0,j.D)(e(r,n)).pipe((0,Xe.U)((function(e,i){return t(r,e,n,i)})))})))}:function(t){return t.lift(new un(e))}}var un=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new ln(e,this.project))},e}(),ln=function(e){function t(t,r){var n=e.call(this,t)||this;return n.project=r,n.index=0,n}return n.ZT(t,e),t.prototype._next=function(e){var t,r=this.index++;try{t=this.project(e,r)}catch(e){return void this.destination.error(e)}this._innerSub(t,e,r)},t.prototype._innerSub=function(e,t,r){var n=this.innerSubscription;n&&n.unsubscribe();var i=new K.d(this,t,r),s=this.destination;s.add(i),this.innerSubscription=(0,o.D)(this,e,void 0,void 0,i),this.innerSubscription!==i&&s.add(this.innerSubscription)},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this),this.unsubscribe()},t.prototype._unsubscribe=function(){this.innerSubscription=null},t.prototype.notifyComplete=function(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,r,n,i){this.destination.next(t)},t}(i.L);function hn(){return cn(lt.y)}function gn(e,t){return t?cn((function(){return e}),t):cn((function(){return e}))}function fn(e){return function(t){return t.lift(new pn(e))}}var pn=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){var r=new dn(e),n=(0,o.D)(r,this.notifier);return n&&!r.seenValue?(r.add(n),t.subscribe(r)):r},e}(),dn=function(e){function t(t){var r=e.call(this,t)||this;return r.seenValue=!1,r}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.seenValue=!0,this.complete()},t.prototype.notifyComplete=function(){},t}(i.L);function Cn(e,t){return void 0===t&&(t=!1),function(r){return r.lift(new En(e,t))}}var En=function(){function e(e,t){this.predicate=e,this.inclusive=t}return e.prototype.call=function(e,t){return t.subscribe(new In(e,this.predicate,this.inclusive))},e}(),In=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.predicate=r,i.inclusive=n,i.index=0,i}return n.ZT(t,e),t.prototype._next=function(e){var t,r=this.destination;try{t=this.predicate(e,this.index++)}catch(e){return void r.error(e)}this.nextOrComplete(e,t)},t.prototype.nextOrComplete=function(e,t){var r=this.destination;Boolean(t)?r.next(e):(this.inclusive&&r.next(e),r.complete())},t}(p.L),mn=r(57781),yn=r(38394);function wn(e,t,r){return function(n){return n.lift(new Bn(e,t,r))}}var Bn=function(){function e(e,t,r){this.nextOrObserver=e,this.error=t,this.complete=r}return e.prototype.call=function(e,t){return t.subscribe(new Qn(e,this.nextOrObserver,this.error,this.complete))},e}(),Qn=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o._tapNext=mn.Z,o._tapError=mn.Z,o._tapComplete=mn.Z,o._tapError=n||mn.Z,o._tapComplete=i||mn.Z,(0,yn.m)(r)?(o._context=o,o._tapNext=r):r&&(o._context=r,o._tapNext=r.next||mn.Z,o._tapError=r.error||mn.Z,o._tapComplete=r.complete||mn.Z),o}return n.ZT(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(p.L),vn={leading:!0,trailing:!1};function Dn(e,t){return void 0===t&&(t=vn),function(r){return r.lift(new bn(e,t.leading,t.trailing))}}var bn=function(){function e(e,t,r){this.durationSelector=e,this.leading=t,this.trailing=r}return e.prototype.call=function(e,t){return t.subscribe(new Sn(e,this.durationSelector,this.leading,this.trailing))},e}(),Sn=function(e){function t(t,r,n,i){var o=e.call(this,t)||this;return o.destination=t,o.durationSelector=r,o._leading=n,o._trailing=i,o._hasValue=!1,o}return n.ZT(t,e),t.prototype._next=function(e){this._hasValue=!0,this._sendValue=e,this._throttled||(this._leading?this.send():this.throttle(e))},t.prototype.send=function(){var e=this._hasValue,t=this._sendValue;e&&(this.destination.next(t),this.throttle(t)),this._hasValue=!1,this._sendValue=null},t.prototype.throttle=function(e){var t=this.tryDurationSelector(e);t&&this.add(this._throttled=(0,o.D)(this,t))},t.prototype.tryDurationSelector=function(e){try{return this.durationSelector(e)}catch(e){return this.destination.error(e),null}},t.prototype.throttlingDone=function(){var e=this._throttled,t=this._trailing;e&&e.unsubscribe(),this._throttled=null,t&&this.send()},t.prototype.notifyNext=function(e,t,r,n,i){this.throttlingDone()},t.prototype.notifyComplete=function(){this.throttlingDone()},t}(i.L);function kn(e,t,r){return void 0===t&&(t=c.P),void 0===r&&(r=vn),function(n){return n.lift(new xn(e,t,r.leading,r.trailing))}}var xn=function(){function e(e,t,r,n){this.duration=e,this.scheduler=t,this.leading=r,this.trailing=n}return e.prototype.call=function(e,t){return t.subscribe(new Fn(e,this.duration,this.scheduler,this.leading,this.trailing))},e}(),Fn=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.duration=r,s.scheduler=n,s.leading=i,s.trailing=o,s._hasTrailingValue=!1,s._trailingValue=null,s}return n.ZT(t,e),t.prototype._next=function(e){this.throttled?this.trailing&&(this._trailingValue=e,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Mn,this.duration,{subscriber:this})),this.leading?this.destination.next(e):this.trailing&&(this._trailingValue=e,this._hasTrailingValue=!0))},t.prototype._complete=function(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()},t.prototype.clearThrottle=function(){var e=this.throttled;e&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),e.unsubscribe(),this.remove(e),this.throttled=null)},t}(p.L);function Mn(e){e.subscriber.clearThrottle()}var Nn=r(58721);function Rn(e){return void 0===e&&(e=c.P),function(t){return(0,Nn.P)((function(){return t.pipe(xt((function(t,r){var n=t.current;return{value:r,current:e.now(),last:n}}),{current:e.now(),value:void 0,last:void 0}),(0,Xe.U)((function(e){var t=e.current,r=e.last,n=e.value;return new Kn(n,t-r)})))}))}}var Kn=function(){return function(e,t){this.value=e,this.interval=t}}(),Ln=r(87299);function Tn(e,t,r){return void 0===r&&(r=c.P),function(n){var i=ce(e),o=i?+e-r.now():Math.abs(e);return n.lift(new Pn(o,i,t,r))}}var Pn=function(){function e(e,t,r,n){this.waitFor=e,this.absoluteTimeout=t,this.withObservable=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new Un(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},e}(),Un=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;return s.absoluteTimeout=r,s.waitFor=n,s.withObservable=i,s.scheduler=o,s.action=null,s.scheduleTimeout(),s}return n.ZT(t,e),t.dispatchTimeout=function(e){var t=e.withObservable;e._unsubscribeAndRecycle(),e.add((0,o.D)(e,t))},t.prototype.scheduleTimeout=function(){var e=this.action;e?this.action=e.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(t.dispatchTimeout,this.waitFor,this))},t.prototype._next=function(t){this.absoluteTimeout||this.scheduleTimeout(),e.prototype._next.call(this,t)},t.prototype._unsubscribe=function(){this.action=null,this.scheduler=null,this.withObservable=null},t}(i.L),_n=r(9491);function On(e,t){return void 0===t&&(t=c.P),Tn(e,(0,_n._)(new Ln.W),t)}function jn(e){return void 0===e&&(e=c.P),(0,Xe.U)((function(t){return new Yn(t,e.now())}))}var Yn=function(){return function(e,t){this.value=e,this.timestamp=t}}();function Gn(e,t,r){return 0===r?[t]:(e.push(t),e)}function Jn(){return Rt(Gn,[])}function Hn(e){return function(t){return t.lift(new qn(e))}}var qn=function(){function e(e){this.windowBoundaries=e}return e.prototype.call=function(e,t){var r=new zn(e),n=t.subscribe(r);return n.closed||r.add((0,o.D)(r,this.windowBoundaries)),n},e}(),zn=function(e){function t(t){var r=e.call(this,t)||this;return r.window=new ir.xQ,t.next(r.window),r}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.openWindow()},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){this._complete()},t.prototype._next=function(e){this.window.next(e)},t.prototype._error=function(e){this.window.error(e),this.destination.error(e)},t.prototype._complete=function(){this.window.complete(),this.destination.complete()},t.prototype._unsubscribe=function(){this.window=null},t.prototype.openWindow=function(){var e=this.window;e&&e.complete();var t=this.destination,r=this.window=new ir.xQ;t.next(r)},t}(i.L);function Wn(e,t){return void 0===t&&(t=0),function(r){return r.lift(new Vn(e,t))}}var Vn=function(){function e(e,t){this.windowSize=e,this.startWindowEvery=t}return e.prototype.call=function(e,t){return t.subscribe(new Xn(e,this.windowSize,this.startWindowEvery))},e}(),Xn=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.destination=t,i.windowSize=r,i.startWindowEvery=n,i.windows=[new ir.xQ],i.count=0,t.next(i.windows[0]),i}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.startWindowEvery>0?this.startWindowEvery:this.windowSize,r=this.destination,n=this.windowSize,i=this.windows,o=i.length,s=0;s<o&&!this.closed;s++)i[s].next(e);var A=this.count-n+1;if(A>=0&&A%t==0&&!this.closed&&i.shift().complete(),++this.count%t==0&&!this.closed){var a=new ir.xQ;i.push(a),r.next(a)}},t.prototype._error=function(e){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().complete();this.destination.complete()},t.prototype._unsubscribe=function(){this.count=0,this.windows=null},t}(p.L);function Zn(e){var t=c.P,r=null,n=Number.POSITIVE_INFINITY;return(0,m.K)(arguments[3])&&(t=arguments[3]),(0,m.K)(arguments[2])?t=arguments[2]:(0,on.k)(arguments[2])&&(n=arguments[2]),(0,m.K)(arguments[1])?t=arguments[1]:(0,on.k)(arguments[1])&&(r=arguments[1]),function(i){return i.lift(new $n(e,r,n,t))}}var $n=function(){function e(e,t,r,n){this.windowTimeSpan=e,this.windowCreationInterval=t,this.maxWindowSize=r,this.scheduler=n}return e.prototype.call=function(e,t){return t.subscribe(new ti(e,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},e}(),ei=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._numberOfNextedValues=0,t}return n.ZT(t,e),t.prototype.next=function(t){this._numberOfNextedValues++,e.prototype.next.call(this,t)},Object.defineProperty(t.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),t}(ir.xQ),ti=function(e){function t(t,r,n,i,o){var s=e.call(this,t)||this;s.destination=t,s.windowTimeSpan=r,s.windowCreationInterval=n,s.maxWindowSize=i,s.scheduler=o,s.windows=[];var A=s.openWindow();if(null!==n&&n>=0){var a={subscriber:s,window:A,context:null},c={windowTimeSpan:r,windowCreationInterval:n,subscriber:s,scheduler:o};s.add(o.schedule(ii,r,a)),s.add(o.schedule(ni,n,c))}else{var u={subscriber:s,window:A,windowTimeSpan:r};s.add(o.schedule(ri,r,u))}return s}return n.ZT(t,e),t.prototype._next=function(e){for(var t=this.windows,r=t.length,n=0;n<r;n++){var i=t[n];i.closed||(i.next(e),i.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(i))}},t.prototype._error=function(e){for(var t=this.windows;t.length>0;)t.shift().error(e);this.destination.error(e)},t.prototype._complete=function(){for(var e=this.windows;e.length>0;){var t=e.shift();t.closed||t.complete()}this.destination.complete()},t.prototype.openWindow=function(){var e=new ei;return this.windows.push(e),this.destination.next(e),e},t.prototype.closeWindow=function(e){e.complete();var t=this.windows;t.splice(t.indexOf(e),1)},t}(p.L);function ri(e){var t=e.subscriber,r=e.windowTimeSpan,n=e.window;n&&t.closeWindow(n),e.window=t.openWindow(),this.schedule(e,r)}function ni(e){var t=e.windowTimeSpan,r=e.subscriber,n=e.scheduler,i=e.windowCreationInterval,o=r.openWindow(),s={action:this,subscription:null},A={subscriber:r,window:o,context:s};s.subscription=n.schedule(ii,t,A),this.add(s.subscription),this.schedule(e,i)}function ii(e){var t=e.subscriber,r=e.window,n=e.context;n&&n.action&&n.subscription&&n.action.remove(n.subscription),t.closeWindow(r)}function oi(e,t){return function(r){return r.lift(new si(e,t))}}var si=function(){function e(e,t){this.openings=e,this.closingSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new Ai(e,this.openings,this.closingSelector))},e}(),Ai=function(e){function t(t,r,n){var i=e.call(this,t)||this;return i.openings=r,i.closingSelector=n,i.contexts=[],i.add(i.openSubscription=(0,o.D)(i,r,r)),i}return n.ZT(t,e),t.prototype._next=function(e){var t=this.contexts;if(t)for(var r=t.length,n=0;n<r;n++)t[n].window.next(e)},t.prototype._error=function(t){var r=this.contexts;if(this.contexts=null,r)for(var n=r.length,i=-1;++i<n;){var o=r[i];o.window.error(t),o.subscription.unsubscribe()}e.prototype._error.call(this,t)},t.prototype._complete=function(){var t=this.contexts;if(this.contexts=null,t)for(var r=t.length,n=-1;++n<r;){var i=t[n];i.window.complete(),i.subscription.unsubscribe()}e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.contexts;if(this.contexts=null,e)for(var t=e.length,r=-1;++r<t;){var n=e[r];n.window.unsubscribe(),n.subscription.unsubscribe()}},t.prototype.notifyNext=function(e,t,r,n,i){if(e===this.openings){var s=void 0;try{s=(0,this.closingSelector)(t)}catch(e){return this.error(e)}var A=new ir.xQ,a=new S.w,c={window:A,subscription:a};this.contexts.push(c);var u=(0,o.D)(this,s,c);u.closed?this.closeWindow(this.contexts.length-1):(u.context=c,a.add(u)),this.destination.next(A)}else this.closeWindow(this.contexts.indexOf(e))},t.prototype.notifyError=function(e){this.error(e)},t.prototype.notifyComplete=function(e){e!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(e.context))},t.prototype.closeWindow=function(e){if(-1!==e){var t=this.contexts,r=t[e],n=r.window,i=r.subscription;t.splice(e,1),n.complete(),i.unsubscribe()}},t}(i.L);function ai(e){return function(t){return t.lift(new ci(e))}}var ci=function(){function e(e){this.closingSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new ui(e,this.closingSelector))},e}(),ui=function(e){function t(t,r){var n=e.call(this,t)||this;return n.destination=t,n.closingSelector=r,n.openWindow(),n}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.openWindow(i)},t.prototype.notifyError=function(e,t){this._error(e)},t.prototype.notifyComplete=function(e){this.openWindow(e)},t.prototype._next=function(e){this.window.next(e)},t.prototype._error=function(e){this.window.error(e),this.destination.error(e),this.unsubscribeClosingNotification()},t.prototype._complete=function(){this.window.complete(),this.destination.complete(),this.unsubscribeClosingNotification()},t.prototype.unsubscribeClosingNotification=function(){this.closingNotification&&this.closingNotification.unsubscribe()},t.prototype.openWindow=function(e){void 0===e&&(e=null),e&&(this.remove(e),e.unsubscribe());var t=this.window;t&&t.complete();var r,n=this.window=new ir.xQ;this.destination.next(n);try{r=(0,this.closingSelector)()}catch(e){return this.destination.error(e),void this.window.error(e)}this.add(this.closingNotification=(0,o.D)(this,r))},t}(i.L);function li(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){var r;"function"==typeof e[e.length-1]&&(r=e.pop());var n=e;return t.lift(new hi(n,r))}}var hi=function(){function e(e,t){this.observables=e,this.project=t}return e.prototype.call=function(e,t){return t.subscribe(new gi(e,this.observables,this.project))},e}(),gi=function(e){function t(t,r,n){var i=e.call(this,t)||this;i.observables=r,i.project=n,i.toRespond=[];var s=r.length;i.values=new Array(s);for(var A=0;A<s;A++)i.toRespond.push(A);for(A=0;A<s;A++){var a=r[A];i.add((0,o.D)(i,a,a,A))}return i}return n.ZT(t,e),t.prototype.notifyNext=function(e,t,r,n,i){this.values[r]=t;var o=this.toRespond;if(o.length>0){var s=o.indexOf(r);-1!==s&&o.splice(s,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.L),fi=r(21336);function pi(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return t.lift.call(fi.$R.apply(void 0,[t].concat(e)))}}function di(e){return function(t){return t.lift(new fi.mx(e))}}},13499:(e,t,r)=>{var n=r(64293),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function s(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=s),o(i,s),s.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},s.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},44765:(e,t,r)=>{"use strict";var n,i=r(64293),o=i.Buffer,s={};for(n in i)i.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(s[n]=i[n]);var A=s.Buffer={};for(n in o)o.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(A[n]=o[n]);if(s.Buffer.prototype=o.prototype,A.from&&A.from!==Uint8Array.from||(A.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return o(e,t,r)}),A.alloc||(A.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=o(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s},95584:(e,t)=>{var r;t=e.exports=l,r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var n=Number.MAX_SAFE_INTEGER||9007199254740991,i=t.re=[],o=t.src=[],s=t.tokens={},A=0;function a(e){s[e]=A++}a("NUMERICIDENTIFIER"),o[s.NUMERICIDENTIFIER]="0|[1-9]\\d*",a("NUMERICIDENTIFIERLOOSE"),o[s.NUMERICIDENTIFIERLOOSE]="[0-9]+",a("NONNUMERICIDENTIFIER"),o[s.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",a("MAINVERSION"),o[s.MAINVERSION]="("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")\\.("+o[s.NUMERICIDENTIFIER]+")",a("MAINVERSIONLOOSE"),o[s.MAINVERSIONLOOSE]="("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")\\.("+o[s.NUMERICIDENTIFIERLOOSE]+")",a("PRERELEASEIDENTIFIER"),o[s.PRERELEASEIDENTIFIER]="(?:"+o[s.NUMERICIDENTIFIER]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASEIDENTIFIERLOOSE"),o[s.PRERELEASEIDENTIFIERLOOSE]="(?:"+o[s.NUMERICIDENTIFIERLOOSE]+"|"+o[s.NONNUMERICIDENTIFIER]+")",a("PRERELEASE"),o[s.PRERELEASE]="(?:-("+o[s.PRERELEASEIDENTIFIER]+"(?:\\."+o[s.PRERELEASEIDENTIFIER]+")*))",a("PRERELEASELOOSE"),o[s.PRERELEASELOOSE]="(?:-?("+o[s.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+o[s.PRERELEASEIDENTIFIERLOOSE]+")*))",a("BUILDIDENTIFIER"),o[s.BUILDIDENTIFIER]="[0-9A-Za-z-]+",a("BUILD"),o[s.BUILD]="(?:\\+("+o[s.BUILDIDENTIFIER]+"(?:\\."+o[s.BUILDIDENTIFIER]+")*))",a("FULL"),a("FULLPLAIN"),o[s.FULLPLAIN]="v?"+o[s.MAINVERSION]+o[s.PRERELEASE]+"?"+o[s.BUILD]+"?",o[s.FULL]="^"+o[s.FULLPLAIN]+"$",a("LOOSEPLAIN"),o[s.LOOSEPLAIN]="[v=\\s]*"+o[s.MAINVERSIONLOOSE]+o[s.PRERELEASELOOSE]+"?"+o[s.BUILD]+"?",a("LOOSE"),o[s.LOOSE]="^"+o[s.LOOSEPLAIN]+"$",a("GTLT"),o[s.GTLT]="((?:<|>)?=?)",a("XRANGEIDENTIFIERLOOSE"),o[s.XRANGEIDENTIFIERLOOSE]=o[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",a("XRANGEIDENTIFIER"),o[s.XRANGEIDENTIFIER]=o[s.NUMERICIDENTIFIER]+"|x|X|\\*",a("XRANGEPLAIN"),o[s.XRANGEPLAIN]="[v=\\s]*("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:\\.("+o[s.XRANGEIDENTIFIER]+")(?:"+o[s.PRERELEASE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGEPLAINLOOSE"),o[s.XRANGEPLAINLOOSE]="[v=\\s]*("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+o[s.XRANGEIDENTIFIERLOOSE]+")(?:"+o[s.PRERELEASELOOSE]+")?"+o[s.BUILD]+"?)?)?",a("XRANGE"),o[s.XRANGE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAIN]+"$",a("XRANGELOOSE"),o[s.XRANGELOOSE]="^"+o[s.GTLT]+"\\s*"+o[s.XRANGEPLAINLOOSE]+"$",a("COERCE"),o[s.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",a("COERCERTL"),i[s.COERCERTL]=new RegExp(o[s.COERCE],"g"),a("LONETILDE"),o[s.LONETILDE]="(?:~>?)",a("TILDETRIM"),o[s.TILDETRIM]="(\\s*)"+o[s.LONETILDE]+"\\s+",i[s.TILDETRIM]=new RegExp(o[s.TILDETRIM],"g");a("TILDE"),o[s.TILDE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAIN]+"$",a("TILDELOOSE"),o[s.TILDELOOSE]="^"+o[s.LONETILDE]+o[s.XRANGEPLAINLOOSE]+"$",a("LONECARET"),o[s.LONECARET]="(?:\\^)",a("CARETTRIM"),o[s.CARETTRIM]="(\\s*)"+o[s.LONECARET]+"\\s+",i[s.CARETTRIM]=new RegExp(o[s.CARETTRIM],"g");a("CARET"),o[s.CARET]="^"+o[s.LONECARET]+o[s.XRANGEPLAIN]+"$",a("CARETLOOSE"),o[s.CARETLOOSE]="^"+o[s.LONECARET]+o[s.XRANGEPLAINLOOSE]+"$",a("COMPARATORLOOSE"),o[s.COMPARATORLOOSE]="^"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+")$|^$",a("COMPARATOR"),o[s.COMPARATOR]="^"+o[s.GTLT]+"\\s*("+o[s.FULLPLAIN]+")$|^$",a("COMPARATORTRIM"),o[s.COMPARATORTRIM]="(\\s*)"+o[s.GTLT]+"\\s*("+o[s.LOOSEPLAIN]+"|"+o[s.XRANGEPLAIN]+")",i[s.COMPARATORTRIM]=new RegExp(o[s.COMPARATORTRIM],"g");a("HYPHENRANGE"),o[s.HYPHENRANGE]="^\\s*("+o[s.XRANGEPLAIN]+")\\s+-\\s+("+o[s.XRANGEPLAIN]+")\\s*$",a("HYPHENRANGELOOSE"),o[s.HYPHENRANGELOOSE]="^\\s*("+o[s.XRANGEPLAINLOOSE]+")\\s+-\\s+("+o[s.XRANGEPLAINLOOSE]+")\\s*$",a("STAR"),o[s.STAR]="(<|>)?=?\\s*\\*";for(var c=0;c<A;c++)r(c,o[c]),i[c]||(i[c]=new RegExp(o[c]));function u(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l)return e;if("string"!=typeof e)return null;if(e.length>256)return null;if(!(t.loose?i[s.LOOSE]:i[s.FULL]).test(e))return null;try{return new l(e,t)}catch(e){return null}}function l(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof l){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof l))return new l(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var o=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!o)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map((function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<n)return t}return e})):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}t.parse=u,t.valid=function(e,t){var r=u(e,t);return r?r.version:null},t.clean=function(e,t){var r=u(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},t.SemVer=l,l.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},l.prototype.toString=function(){return this.version},l.prototype.compare=function(e){return r("SemVer.compare",this.version,this.options,e),e instanceof l||(e=new l(e,this.options)),this.compareMain(e)||this.comparePre(e)},l.prototype.compareMain=function(e){return e instanceof l||(e=new l(e,this.options)),g(this.major,e.major)||g(this.minor,e.minor)||g(this.patch,e.patch)},l.prototype.comparePre=function(e){if(e instanceof l||(e=new l(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var n=this.prerelease[t],i=e.prerelease[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return g(n,i)}while(++t)},l.prototype.compareBuild=function(e){e instanceof l||(e=new l(e,this.options));var t=0;do{var n=this.build[t],i=e.build[t];if(r("prerelease compare",t,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return g(n,i)}while(++t)},l.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,n){"string"==typeof r&&(n=r,r=void 0);try{return new l(e,r).inc(t,n).version}catch(e){return null}},t.diff=function(e,t){if(C(e,t))return null;var r=u(e),n=u(t),i="";if(r.prerelease.length||n.prerelease.length){i="pre";var o="prerelease"}for(var s in r)if(("major"===s||"minor"===s||"patch"===s)&&r[s]!==n[s])return i+s;return o},t.compareIdentifiers=g;var h=/^[0-9]+$/;function g(e,t){var r=h.test(e),n=h.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1}function f(e,t,r){return new l(e,r).compare(new l(t,r))}function p(e,t,r){return f(e,t,r)>0}function d(e,t,r){return f(e,t,r)<0}function C(e,t,r){return 0===f(e,t,r)}function E(e,t,r){return 0!==f(e,t,r)}function I(e,t,r){return f(e,t,r)>=0}function m(e,t,r){return f(e,t,r)<=0}function y(e,t,r,n){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return C(e,r,n);case"!=":return E(e,r,n);case">":return p(e,r,n);case">=":return I(e,r,n);case"<":return d(e,r,n);case"<=":return m(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}function w(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof w){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof w))return new w(e,t);r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===B?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return g(t,e)},t.major=function(e,t){return new l(e,t).major},t.minor=function(e,t){return new l(e,t).minor},t.patch=function(e,t){return new l(e,t).patch},t.compare=f,t.compareLoose=function(e,t){return f(e,t,!0)},t.compareBuild=function(e,t,r){var n=new l(e,r),i=new l(t,r);return n.compare(i)||n.compareBuild(i)},t.rcompare=function(e,t,r){return f(t,e,r)},t.sort=function(e,r){return e.sort((function(e,n){return t.compareBuild(e,n,r)}))},t.rsort=function(e,r){return e.sort((function(e,n){return t.compareBuild(n,e,r)}))},t.gt=p,t.lt=d,t.eq=C,t.neq=E,t.gte=I,t.lte=m,t.cmp=y,t.Comparator=w;var B={};function Q(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof Q)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Q(e.raw,t);if(e instanceof w)return new Q(e.value,t);if(!(this instanceof Q))return new Q(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((function(e){return this.parseRange(e.trim())}),this).filter((function(e){return e.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function v(e,t){for(var r=!0,n=e.slice(),i=n.pop();r&&n.length;)r=n.every((function(e){return i.intersects(e,t)})),i=n.pop();return r}function D(e){return!e||"x"===e.toLowerCase()||"*"===e}function b(e,t,r,n,i,o,s,A,a,c,u,l,h){return((t=D(r)?"":D(n)?">="+r+".0.0":D(i)?">="+r+"."+n+".0":">="+t)+" "+(A=D(a)?"":D(c)?"<"+(+a+1)+".0.0":D(u)?"<"+a+"."+(+c+1)+".0":l?"<="+a+"."+c+"."+u+"-"+l:"<="+A)).trim()}function S(e,t,n){for(var i=0;i<e.length;i++)if(!e[i].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(i=0;i<e.length;i++)if(r(e[i].semver),e[i].semver!==B&&e[i].semver.prerelease.length>0){var o=e[i].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}function k(e,t,r){try{t=new Q(t,r)}catch(e){return!1}return t.test(e)}function x(e,t,r,n){var i,o,s,A,a;switch(e=new l(e,n),t=new Q(t,n),r){case">":i=p,o=m,s=d,A=">",a=">=";break;case"<":i=d,o=I,s=p,A="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(k(e,t,n))return!1;for(var c=0;c<t.set.length;++c){var u=t.set[c],h=null,g=null;if(u.forEach((function(e){e.semver===B&&(e=new w(">=0.0.0")),h=h||e,g=g||e,i(e.semver,h.semver,n)?h=e:s(e.semver,g.semver,n)&&(g=e)})),h.operator===A||h.operator===a)return!1;if((!g.operator||g.operator===A)&&o(e,g.semver))return!1;if(g.operator===a&&s(e,g.semver))return!1}return!0}w.prototype.parse=function(e){var t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new l(r[2],this.options.loose):this.semver=B},w.prototype.toString=function(){return this.value},w.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===B||e===B)return!0;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}return y(e,this.operator,this.semver,this.options)},w.prototype.intersects=function(e,t){if(!(e instanceof w))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new Q(e.value,t),k(this.value,r,t));if(""===e.operator)return""===e.value||(r=new Q(this.value,t),k(e.semver,r,t));var n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),i=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),A=y(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),a=y(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||i||o&&s||A||a},t.Range=Q,Q.prototype.format=function(){return this.range=this.set.map((function(e){return e.join(" ").trim()})).join("||").trim(),this.range},Q.prototype.toString=function(){return this.range},Q.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var n=t?i[s.HYPHENRANGELOOSE]:i[s.HYPHENRANGE];e=e.replace(n,b),r("hyphen replace",e),e=e.replace(i[s.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[s.COMPARATORTRIM]),e=(e=(e=e.replace(i[s.TILDETRIM],"$1~")).replace(i[s.CARETTRIM],"$1^")).split(/\s+/).join(" ");var o=t?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],A=e.split(" ").map((function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){r("caret",e,t);var n=t.loose?i[s.CARETLOOSE]:i[s.CARET];return e.replace(n,(function(t,n,i,o,s){var A;return r("caret",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A="0"===n?">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":">="+n+"."+i+".0 <"+(+n+1)+".0.0":s?(r("replaceCaret pr",s),A="0"===n?"0"===i?">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+"-"+s+" <"+(+n+1)+".0.0"):(r("no pr"),A="0"===n?"0"===i?">="+n+"."+i+"."+o+" <"+n+"."+i+"."+(+o+1):">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0":">="+n+"."+i+"."+o+" <"+(+n+1)+".0.0"),r("caret return",A),A}))}(e,t)})).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map((function(e){return function(e,t){var n=t.loose?i[s.TILDELOOSE]:i[s.TILDE];return e.replace(n,(function(t,n,i,o,s){var A;return r("tilde",e,t,n,i,o,s),D(n)?A="":D(i)?A=">="+n+".0.0 <"+(+n+1)+".0.0":D(o)?A=">="+n+"."+i+".0 <"+n+"."+(+i+1)+".0":s?(r("replaceTilde pr",s),A=">="+n+"."+i+"."+o+"-"+s+" <"+n+"."+(+i+1)+".0"):A=">="+n+"."+i+"."+o+" <"+n+"."+(+i+1)+".0",r("tilde return",A),A}))}(e,t)})).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map((function(e){return function(e,t){e=e.trim();var n=t.loose?i[s.XRANGELOOSE]:i[s.XRANGE];return e.replace(n,(function(n,i,o,s,A,a){r("xRange",e,n,i,o,s,A,a);var c=D(o),u=c||D(s),l=u||D(A),h=l;return"="===i&&h&&(i=""),a=t.includePrerelease?"-0":"",c?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&h?(u&&(s=0),A=0,">"===i?(i=">=",u?(o=+o+1,s=0,A=0):(s=+s+1,A=0)):"<="===i&&(i="<",u?o=+o+1:s=+s+1),n=i+o+"."+s+"."+A+a):u?n=">="+o+".0.0"+a+" <"+(+o+1)+".0.0"+a:l&&(n=">="+o+"."+s+".0"+a+" <"+o+"."+(+s+1)+".0"+a),r("xRange return",n),n}))}(e,t)})).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[s.STAR],"")}(e,t),r("stars",e),e}(e,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(A=A.filter((function(e){return!!e.match(o)}))),A=A.map((function(e){return new w(e,this.options)}),this)},Q.prototype.intersects=function(e,t){if(!(e instanceof Q))throw new TypeError("a Range is required");return this.set.some((function(r){return v(r,t)&&e.set.some((function(e){return v(e,t)&&r.every((function(r){return e.every((function(e){return r.intersects(e,t)}))}))}))}))},t.toComparators=function(e,t){return new Q(e,t).set.map((function(e){return e.map((function(e){return e.value})).join(" ").trim().split(" ")}))},Q.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(var t=0;t<this.set.length;t++)if(S(this.set[t],e,this.options))return!0;return!1},t.satisfies=k,t.maxSatisfying=function(e,t,r){var n=null,i=null;try{var o=new Q(t,r)}catch(e){return null}return e.forEach((function(e){o.test(e)&&(n&&-1!==i.compare(e)||(i=new l(n=e,r)))})),n},t.minSatisfying=function(e,t,r){var n=null,i=null;try{var o=new Q(t,r)}catch(e){return null}return e.forEach((function(e){o.test(e)&&(n&&1!==i.compare(e)||(i=new l(n=e,r)))})),n},t.minVersion=function(e,t){e=new Q(e,t);var r=new l("0.0.0");if(e.test(r))return r;if(r=new l("0.0.0-0"),e.test(r))return r;r=null;for(var n=0;n<e.set.length;++n){e.set[n].forEach((function(e){var t=new l(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!p(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}}))}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new Q(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return x(e,t,"<",r)},t.gtr=function(e,t,r){return x(e,t,">",r)},t.outside=x,t.prerelease=function(e,t){var r=u(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new Q(e,r),t=new Q(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof l)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var n;(n=i[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&n.index+n[0].length===r.index+r[0].length||(r=n),i[s.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;i[s.COERCERTL].lastIndex=-1}else r=e.match(i[s.COERCE]);if(null===r)return null;return u(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}},29069:(e,t,r)=>{const n=Symbol("SemVer ANY");class i{static get ANY(){return n}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof i){if(e.loose===!!t.loose)return e;e=e.value}a("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===n?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(e){const t=this.options.loose?o[s.COMPARATORLOOSE]:o[s.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new c(r[2],this.options.loose):this.semver=n}toString(){return this.value}test(e){if(a("Comparator.test",e,this.options.loose),this.semver===n||e===n)return!0;if("string"==typeof e)try{e=new c(e,this.options)}catch(e){return!1}return A(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof i))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new u(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new u(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=A(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=A(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||o&&s||a||c}}e.exports=i;const{re:o,t:s}=r(49439),A=r(38754),a=r(6029),c=r(14772),u=r(73004)},73004:(e,t,r)=>{class n{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?A[a.HYPHENRANGELOOSE]:A[a.HYPHENRANGE];e=e.replace(r,B(this.options.includePrerelease)),o("hyphen replace",e),e=e.replace(A[a.COMPARATORTRIM],c),o("comparator trim",e,A[a.COMPARATORTRIM]),e=(e=(e=e.replace(A[a.TILDETRIM],u)).replace(A[a.CARETTRIM],l)).split(/\s+/).join(" ");const n=t?A[a.COMPARATORLOOSE]:A[a.COMPARATOR];return e.split(" ").map(e=>g(e,this.options)).join(" ").split(/\s+/).map(e=>w(e,this.options)).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new i(e,this.options))}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Range is required");return this.set.some(r=>h(r,t)&&e.set.some(e=>h(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new s(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(Q(this.set[t],e,this.options))return!0;return!1}}e.exports=n;const i=r(29069),o=r(6029),s=r(14772),{re:A,t:a,comparatorTrimReplace:c,tildeTrimReplace:u,caretTrimReplace:l}=r(49439),h=(e,t)=>{let r=!0;const n=e.slice();let i=n.pop();for(;r&&n.length;)r=n.every(e=>i.intersects(e,t)),i=n.pop();return r},g=(e,t)=>(o("comp",e,t),e=C(e,t),o("caret",e),e=p(e,t),o("tildes",e),e=I(e,t),o("xrange",e),e=y(e,t),o("stars",e),e),f=e=>!e||"x"===e.toLowerCase()||"*"===e,p=(e,t)=>e.trim().split(/\s+/).map(e=>d(e,t)).join(" "),d=(e,t)=>{const r=t.loose?A[a.TILDELOOSE]:A[a.TILDE];return e.replace(r,(t,r,n,i,s)=>{let A;return o("tilde",e,t,r,n,i,s),f(r)?A="":f(n)?A=`>=${r}.0.0 <${+r+1}.0.0-0`:f(i)?A=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:s?(o("replaceTilde pr",s),A=`>=${r}.${n}.${i}-${s} <${r}.${+n+1}.0-0`):A=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,o("tilde return",A),A})},C=(e,t)=>e.trim().split(/\s+/).map(e=>E(e,t)).join(" "),E=(e,t)=>{o("caret",e,t);const r=t.loose?A[a.CARETLOOSE]:A[a.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(t,r,i,s,A)=>{let a;return o("caret",e,t,r,i,s,A),f(r)?a="":f(i)?a=`>=${r}.0.0${n} <${+r+1}.0.0-0`:f(s)?a="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:A?(o("replaceCaret pr",A),a="0"===r?"0"===i?`>=${r}.${i}.${s}-${A} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}-${A} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s}-${A} <${+r+1}.0.0-0`):(o("no pr"),a="0"===r?"0"===i?`>=${r}.${i}.${s}${n} <${r}.${i}.${+s+1}-0`:`>=${r}.${i}.${s}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${s} <${+r+1}.0.0-0`),o("caret return",a),a})},I=(e,t)=>(o("replaceXRanges",e,t),e.split(/\s+/).map(e=>m(e,t)).join(" ")),m=(e,t)=>{e=e.trim();const r=t.loose?A[a.XRANGELOOSE]:A[a.XRANGE];return e.replace(r,(r,n,i,s,A,a)=>{o("xRange",e,r,n,i,s,A,a);const c=f(i),u=c||f(s),l=u||f(A),h=l;return"="===n&&h&&(n=""),a=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&h?(u&&(s=0),A=0,">"===n?(n=">=",u?(i=+i+1,s=0,A=0):(s=+s+1,A=0)):"<="===n&&(n="<",u?i=+i+1:s=+s+1),"<"===n&&(a="-0"),r=`${n+i}.${s}.${A}${a}`):u?r=`>=${i}.0.0${a} <${+i+1}.0.0-0`:l&&(r=`>=${i}.${s}.0${a} <${i}.${+s+1}.0-0`),o("xRange return",r),r})},y=(e,t)=>(o("replaceStars",e,t),e.trim().replace(A[a.STAR],"")),w=(e,t)=>(o("replaceGTE0",e,t),e.trim().replace(A[t.includePrerelease?a.GTE0PRE:a.GTE0],"")),B=e=>(t,r,n,i,o,s,A,a,c,u,l,h,g)=>`${r=f(n)?"":f(i)?`>=${n}.0.0${e?"-0":""}`:f(o)?`>=${n}.${i}.0${e?"-0":""}`:s?">="+r:`>=${r}${e?"-0":""}`} ${a=f(c)?"":f(u)?`<${+c+1}.0.0-0`:f(l)?`<${c}.${+u+1}.0-0`:h?`<=${c}.${u}.${l}-${h}`:e?`<${c}.${u}.${+l+1}-0`:"<="+a}`.trim(),Q=(e,t,r)=>{for(let r=0;r<e.length;r++)if(!e[r].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let r=0;r<e.length;r++)if(o(e[r].semver),e[r].semver!==i.ANY&&e[r].semver.prerelease.length>0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}},14772:(e,t,r)=>{const n=r(6029),{MAX_LENGTH:i,MAX_SAFE_INTEGER:o}=r(76483),{re:s,t:A}=r(49439),{compareIdentifiers:a}=r(99297);class c{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?s[A.LOOSE]:s[A.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version}toString(){return this.version}compare(e){if(n("SemVer.compare",this.version,this.options,e),!(e instanceof c)){if("string"==typeof e&&e===this.version)return 0;e=new c(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof c||(e=new c(e,this.options)),a(this.major,e.major)||a(this.minor,e.minor)||a(this.patch,e.patch)}comparePre(e){if(e instanceof c||(e=new c(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],i=e.prerelease[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return a(r,i)}while(++t)}compareBuild(e){e instanceof c||(e=new c(e,this.options));let t=0;do{const r=this.build[t],i=e.build[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return a(r,i)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}e.exports=c},31192:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null}},38754:(e,t,r)=>{const n=r(78760),i=r(83286),o=r(26544),s=r(44984),A=r(65069),a=r(93845);e.exports=(e,t,r,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return i(e,r,c);case">":return o(e,r,c);case">=":return s(e,r,c);case"<":return A(e,r,c);case"<=":return a(e,r,c);default:throw new TypeError("Invalid operator: "+t)}}},38113:(e,t,r)=>{const n=r(14772),i=r(21883),{re:o,t:s}=r(49439);e.exports=(e,t)=>{if(e instanceof n)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=o[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),o[s.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[s.COERCERTL].lastIndex=-1}else r=e.match(o[s.COERCE]);return null===r?null:i(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)}},63353:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>{const i=new n(e,r),o=new n(t,r);return i.compare(o)||i.compareBuild(o)}},58566:(e,t,r)=>{const n=r(17340);e.exports=(e,t)=>n(e,t,!0)},17340:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},29301:(e,t,r)=>{const n=r(21883),i=r(78760);e.exports=(e,t)=>{if(i(e,t))return null;{const r=n(e),i=n(t),o=r.prerelease.length||i.prerelease.length,s=o?"pre":"",A=o?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==i[e])return s+e;return A}}},78760:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0===n(e,t,r)},26544:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>0},44984:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)>=0},24063:(e,t,r)=>{const n=r(14772);e.exports=(e,t,r,i)=>{"string"==typeof r&&(i=r,r=void 0);try{return new n(e,r).inc(t,i).version}catch(e){return null}}},65069:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<0},93845:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(e,t,r)<=0},75157:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).major},5195:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).minor},83286:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>0!==n(e,t,r)},21883:(e,t,r)=>{const{MAX_LENGTH:n}=r(76483),{re:i,t:o}=r(49439),s=r(14772);e.exports=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof s)return e;if("string"!=typeof e)return null;if(e.length>n)return null;if(!(t.loose?i[o.LOOSE]:i[o.FULL]).test(e))return null;try{return new s(e,t)}catch(e){return null}}},39592:(e,t,r)=>{const n=r(14772);e.exports=(e,t)=>new n(e,t).patch},27050:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null}},93788:(e,t,r)=>{const n=r(17340);e.exports=(e,t,r)=>n(t,e,r)},15213:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(r,e,t))},73011:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}},71102:(e,t,r)=>{const n=r(63353);e.exports=(e,t)=>e.sort((e,r)=>n(e,r,t))},99589:(e,t,r)=>{const n=r(21883);e.exports=(e,t)=>{const r=n(e,t);return r?r.version:null}},53887:(e,t,r)=>{const n=r(49439);e.exports={re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:r(76483).SEMVER_SPEC_VERSION,SemVer:r(14772),compareIdentifiers:r(99297).compareIdentifiers,rcompareIdentifiers:r(99297).rcompareIdentifiers,parse:r(21883),valid:r(99589),clean:r(31192),inc:r(24063),diff:r(29301),major:r(75157),minor:r(5195),patch:r(39592),prerelease:r(27050),compare:r(17340),rcompare:r(93788),compareLoose:r(58566),compareBuild:r(63353),sort:r(71102),rsort:r(15213),gt:r(26544),lt:r(65069),eq:r(78760),neq:r(83286),gte:r(44984),lte:r(93845),cmp:r(38754),coerce:r(38113),Comparator:r(29069),Range:r(73004),satisfies:r(73011),toComparators:r(47753),maxSatisfying:r(1895),minSatisfying:r(33252),minVersion:r(4224),validRange:r(44315),outside:r(842),gtr:r(69258),ltr:r(36928),intersects:r(87395),simplifyRange:r(3530),subset:r(74264)}},76483:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},6029:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},99297:e=>{const t=/^[0-9]+$/,r=(e,r)=>{const n=t.test(e),i=t.test(r);return n&&i&&(e=+e,r=+r),e===r?0:n&&!i?-1:i&&!n?1:e<r?-1:1};e.exports={compareIdentifiers:r,rcompareIdentifiers:(e,t)=>r(t,e)}},49439:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n}=r(76483),i=r(6029),o=(t=e.exports={}).re=[],s=t.src=[],A=t.t={};let a=0;const c=(e,t,r)=>{const n=a++;i(n,t),A[e]=n,s[n]=t,o[n]=new RegExp(t,r?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})\\.(${s[A.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})\\.(${s[A.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${s[A.NUMERICIDENTIFIER]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${s[A.NUMERICIDENTIFIERLOOSE]}|${s[A.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${s[A.PRERELEASEIDENTIFIER]}(?:\\.${s[A.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${s[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[A.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${s[A.BUILDIDENTIFIER]}(?:\\.${s[A.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${s[A.MAINVERSION]}${s[A.PRERELEASE]}?${s[A.BUILD]}?`),c("FULL",`^${s[A.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${s[A.MAINVERSIONLOOSE]}${s[A.PRERELEASELOOSE]}?${s[A.BUILD]}?`),c("LOOSE",`^${s[A.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",s[A.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),c("XRANGEIDENTIFIER",s[A.NUMERICIDENTIFIER]+"|x|X|\\*"),c("XRANGEPLAIN",`[v=\\s]*(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:\\.(${s[A.XRANGEIDENTIFIER]})(?:${s[A.PRERELEASE]})?${s[A.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[A.XRANGEIDENTIFIERLOOSE]})(?:${s[A.PRERELEASELOOSE]})?${s[A.BUILD]}?)?)?`),c("XRANGE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${s[A.GTLT]}\\s*${s[A.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),c("COERCERTL",s[A.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${s[A.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${s[A.LONETILDE]}${s[A.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${s[A.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${s[A.LONECARET]}${s[A.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${s[A.LONECARET]}${s[A.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${s[A.GTLT]}\\s*(${s[A.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${s[A.GTLT]}\\s*(${s[A.LOOSEPLAIN]}|${s[A.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${s[A.XRANGEPLAIN]})\\s+-\\s+(${s[A.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${s[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[A.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},89153:e=>{"use strict";e.exports={u2:"semver"}},69258:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,">",r)},87395:(e,t,r)=>{const n=r(73004);e.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t))},36928:(e,t,r)=>{const n=r(842);e.exports=(e,t,r)=>n(e,t,"<",r)},1895:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&-1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},33252:(e,t,r)=>{const n=r(14772),i=r(73004);e.exports=(e,t,r)=>{let o=null,s=null,A=null;try{A=new i(t,r)}catch(e){return null}return e.forEach(e=>{A.test(e)&&(o&&1!==s.compare(e)||(o=e,s=new n(o,r)))}),o}},4224:(e,t,r)=>{const n=r(14772),i=r(73004),o=r(26544);e.exports=(e,t)=>{e=new i(e,t);let r=new n("0.0.0");if(e.test(r))return r;if(r=new n("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t<e.set.length;++t){e.set[t].forEach(e=>{const t=new n(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!o(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}return r&&e.test(r)?r:null}},842:(e,t,r)=>{const n=r(14772),i=r(29069),{ANY:o}=i,s=r(73004),A=r(73011),a=r(26544),c=r(65069),u=r(93845),l=r(44984);e.exports=(e,t,r,h)=>{let g,f,p,d,C;switch(e=new n(e,h),t=new s(t,h),r){case">":g=a,f=u,p=c,d=">",C=">=";break;case"<":g=c,f=l,p=a,d="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(A(e,t,h))return!1;for(let r=0;r<t.set.length;++r){const n=t.set[r];let s=null,A=null;if(n.forEach(e=>{e.semver===o&&(e=new i(">=0.0.0")),s=s||e,A=A||e,g(e.semver,s.semver,h)?s=e:p(e.semver,A.semver,h)&&(A=e)}),s.operator===d||s.operator===C)return!1;if((!A.operator||A.operator===d)&&f(e,A.semver))return!1;if(A.operator===C&&p(e,A.semver))return!1}return!0}},3530:(e,t,r)=>{const n=r(73011),i=r(17340);e.exports=(e,t,r)=>{const o=[];let s=null,A=null;const a=e.sort((e,t)=>i(e,t,r));for(const e of a){n(e,t,r)?(A=e,s||(s=e)):(A&&o.push([s,A]),A=null,s=null)}s&&o.push([s,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==a[0]?t?e===a[0]?c.push("<="+t):c.push(`${e} - ${t}`):c.push(">="+e):c.push("*");const u=c.join(" || "),l="string"==typeof t.raw?t.raw:String(t);return u.length<l.length?u:t}},74264:(e,t,r)=>{const n=r(73004),{ANY:i}=r(29069),o=r(73011),s=r(17340),A=(e,t,r)=>{if(1===e.length&&e[0].semver===i)return 1===t.length&&t[0].semver===i;const n=new Set;let A,u,l,h,g,f,p;for(const t of e)">"===t.operator||">="===t.operator?A=a(A,t,r):"<"===t.operator||"<="===t.operator?u=c(u,t,r):n.add(t.semver);if(n.size>1)return null;if(A&&u){if(l=s(A.semver,u.semver,r),l>0)return null;if(0===l&&(">="!==A.operator||"<="!==u.operator))return null}for(const e of n){if(A&&!o(e,String(A),r))return null;if(u&&!o(e,String(u),r))return null;for(const n of t)if(!o(e,String(n),r))return!1;return!0}for(const e of t){if(p=p||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,A)if(">"===e.operator||">="===e.operator){if(h=a(A,e,r),h===e)return!1}else if(">="===A.operator&&!o(A.semver,String(e),r))return!1;if(u)if("<"===e.operator||"<="===e.operator){if(g=c(u,e,r),g===e)return!1}else if("<="===u.operator&&!o(u.semver,String(e),r))return!1;if(!e.operator&&(u||A)&&0!==l)return!1}return!(A&&f&&!u&&0!==l)&&!(u&&p&&!A&&0!==l)},a=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},c=(e,t,r)=>{if(!e)return t;const n=s(e.semver,t.semver,r);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,r)=>{e=new n(e,r),t=new n(t,r);let i=!1;e:for(const n of e.set){for(const e of t.set){const t=A(n,e,r);if(i=i||null!==t,t)continue e}if(i)return!1}return!0}},47753:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>new n(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))},44315:(e,t,r)=>{const n=r(73004);e.exports=(e,t)=>{try{return new n(e,t).range||"*"}catch(e){return null}}},91470:(e,t,r)=>{"use strict";const n=r(67719);e.exports=(e="")=>{const t=e.match(n);if(!t)return null;const[r,i]=t[0].replace(/#! ?/,"").split(" "),o=r.split("/").pop();return"env"===o?i:i?`${o} ${i}`:o}},67719:e=>{"use strict";e.exports=/^#!(.*)/},76458:(e,t,r)=>{var n,i=r(42357),o=r(48082),s=r(28614);function A(){u&&(u=!1,o.forEach((function(e){try{process.removeListener(e,c[e])}catch(e){}})),process.emit=f,process.reallyExit=h,n.count-=1)}function a(e,t,r){n.emitted[e]||(n.emitted[e]=!0,n.emit(e,t,r))}"function"!=typeof s&&(s=s.EventEmitter),process.__signal_exit_emitter__?n=process.__signal_exit_emitter__:((n=process.__signal_exit_emitter__=new s).count=0,n.emitted={}),n.infinite||(n.setMaxListeners(1/0),n.infinite=!0),e.exports=function(e,t){i.equal(typeof e,"function","a callback must be provided for exit handler"),!1===u&&l();var r="exit";t&&t.alwaysLast&&(r="afterexit");return n.on(r,e),function(){n.removeListener(r,e),0===n.listeners("exit").length&&0===n.listeners("afterexit").length&&A()}},e.exports.unload=A;var c={};o.forEach((function(e){c[e]=function(){process.listeners(e).length===n.count&&(A(),a("exit",null,e),a("afterexit",null,e),process.kill(process.pid,e))}})),e.exports.signals=function(){return o},e.exports.load=l;var u=!1;function l(){u||(u=!0,n.count+=1,o=o.filter((function(e){try{return process.on(e,c[e]),!0}catch(e){return!1}})),process.emit=p,process.reallyExit=g)}var h=process.reallyExit;function g(e){process.exitCode=e||0,a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),h.call(process,process.exitCode)}var f=process.emit;function p(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var r=f.apply(this,arguments);return a("exit",process.exitCode,null),a("afterexit",process.exitCode,null),r}return f.apply(this,arguments)}},48082:e=>{e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},17234:e=>{"use strict";e.exports=e=>{const t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},10129:(e,t,r)=>{"use strict";const n=r(76417),i=r(19184),o=r(92413).Transform,s=["sha256","sha384","sha512"],A=/^[a-z0-9+/]+(?:=?=?)$/i,a=/^([^-]+)-([^?]+)([?\S*]*)$/,c=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,u=/^[\x21-\x7E]+$/,l=i({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>m},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}});class h{get isHash(){return!0}constructor(e,t){const r=!!(t=l(t)).strict;this.source=e.trim();const n=this.source.match(r?c:a);if(!n)return;if(r&&!s.some(e=>e===n[1]))return;this.algorithm=n[1],this.digest=n[2];const i=n[3];this.options=i?i.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if((e=l(e)).strict&&!(s.some(e=>e===this.algorithm)&&this.digest.match(A)&&(this.options||[]).every(e=>e.match(u))))return"";const t=this.options&&this.options.length?"?"+this.options.join("?"):"";return`${this.algorithm}-${this.digest}${t}`}}class g{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){let t=(e=l(e)).sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(r=>this[r].map(t=>h.prototype.toString.call(t,e)).filter(e=>e.length).join(t)).filter(e=>e.length).join(t)}concat(e,t){t=l(t);const r="string"==typeof e?e:d(e,t);return f(`${this.toString(t)} ${r}`,t)}hexDigest(){return f(this,{single:!0}).hexDigest()}match(e,t){const r=f(e,t=l(t)),n=r.pickAlgorithm(t);return this[n]&&r[n]&&this[n].find(e=>r[n].find(t=>e.digest===t.digest))||!1}pickAlgorithm(e){const t=(e=l(e)).pickAlgorithm,r=Object.keys(this);if(!r.length)throw new Error("No algorithms available for "+JSON.stringify(this.toString()));return r.reduce((e,r)=>t(e,r)||e)}}function f(e,t){if(t=l(t),"string"==typeof e)return p(e,t);if(e.algorithm&&e.digest){const r=new g;return r[e.algorithm]=[e],p(d(r,t),t)}return p(d(e,t),t)}function p(e,t){return t.single?new h(e,t):e.trim().split(/\s+/).reduce((e,r)=>{const n=new h(r,t);if(n.algorithm&&n.digest){const t=n.algorithm;e[t]||(e[t]=[]),e[t].push(n)}return e},new g)}function d(e,t){return t=l(t),e.algorithm&&e.digest?h.prototype.toString.call(e,t):"string"==typeof e?d(f(e,t),t):g.prototype.toString.call(e,t)}function C(e){const t=(e=l(e)).integrity&&f(e.integrity,e),r=t&&Object.keys(t).length,i=r&&t.pickAlgorithm(e),s=r&&t[i],A=Array.from(new Set(e.algorithms.concat(i?[i]:[]))),a=A.map(n.createHash);let c=0;const u=new o({transform(e,t,r){c+=e.length,a.forEach(r=>r.update(e,t)),r(null,e,t)}}).on("end",()=>{const n=e.options&&e.options.length?"?"+e.options.join("?"):"",o=f(a.map((e,t)=>`${A[t]}-${e.digest("base64")}${n}`).join(" "),e),l=r&&o.match(t,e);if("number"==typeof e.size&&c!==e.size){const r=new Error(`stream size mismatch when checking ${t}.\n  Wanted: ${e.size}\n  Found: ${c}`);r.code="EBADSIZE",r.found=c,r.expected=e.size,r.sri=t,u.emit("error",r)}else if(e.integrity&&!l){const e=new Error(`${t} integrity checksum failed when using ${i}: wanted ${s} but got ${o}. (${c} bytes)`);e.code="EINTEGRITY",e.found=o,e.expected=s,e.algorithm=i,e.sri=t,u.emit("error",e)}else u.emit("size",c),u.emit("integrity",o),l&&u.emit("verified",l)});return u}e.exports.Sd=function(e,t){const r=(t=l(t)).algorithms,i=t.options&&t.options.length?"?"+t.options.join("?"):"";return r.reduce((r,o)=>{const s=n.createHash(o).update(e).digest("base64"),A=new h(`${o}-${s}${i}`,t);if(A.algorithm&&A.digest){const e=A.algorithm;r[e]||(r[e]=[]),r[e].push(A)}return r},new g)};const E=new Set(n.getHashes()),I=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>E.has(e));function m(e,t){return I.indexOf(e.toLowerCase())>=I.indexOf(t.toLowerCase())?e:t}},55043:(e,t,r)=>{"use strict";const n=r(7915),i=r(7347),o=r(1013),s=e=>{if("string"!=typeof(e=e.replace(o(),"  "))||0===e.length)return 0;e=n(e);let t=0;for(let r=0;r<e.length;r++){const n=e.codePointAt(r);n<=31||n>=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=i(n)?2:1))}return t};e.exports=s,e.exports.default=s},69538:(e,t,r)=>{"use strict";var n=r(13499).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=a,this.end=c,t=4;break;case"utf8":this.fillLast=A,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=h,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function A(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function g(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},o.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var i=s(t[n]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--n<r||-2===i)return 0;if((i=s(t[n]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--n<r||-2===i)return 0;if((i=s(t[n]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},7915:(e,t,r)=>{"use strict";const n=r(81337);e.exports=e=>"string"==typeof e?e.replace(n(),""):e},59428:(e,t,r)=>{"use strict";const n=r(12087),i=r(33867),o=r(72918),{env:s}=process;let A;function a(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function c(e,t){if(0===A)return 0;if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2;if(e&&!t&&void 0===A)return 0;const r=A||0;if("dumb"===s.TERM)return r;if("win32"===process.platform){const e=n.release().split(".");return Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in s)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in s)||"codeship"===s.CI_NAME?1:r;if("TEAMCITY_VERSION"in s)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in s)return 1;if("truecolor"===s.COLORTERM)return 3;if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(s.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)||"COLORTERM"in s?1:r}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?A=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(A=1),"FORCE_COLOR"in s&&(A="true"===s.FORCE_COLOR?1:"false"===s.FORCE_COLOR?0:0===s.FORCE_COLOR.length?1:Math.min(parseInt(s.FORCE_COLOR,10),3)),e.exports={supportsColor:function(e){return a(c(e,e&&e.isTTY))},stdout:a(c(!0,i.isatty(1))),stderr:a(c(!0,i.isatty(2)))}},93255:e=>{"use strict";function t(e){return Array.prototype.slice.apply(e)}function r(e){this.status="pending",this._continuations=[],this._parent=null,this._paused=!1,e&&e.call(this,this._continueWith.bind(this),this._failWith.bind(this))}function n(e){return e&&"function"==typeof e.then}function i(e){return e}if(r.prototype={then:function(e,t){var i=r.unresolved()._setParent(this);if(this._isRejected()){if(this._paused)return this._continuations.push({promise:i,nextFn:e,catchFn:t}),i;if(t)try{var o=t(this._error);return n(o)?(this._chainPromiseData(o,i),i):r.resolve(o)._setParent(this)}catch(e){return r.reject(e)._setParent(this)}return r.reject(this._error)._setParent(this)}return this._continuations.push({promise:i,nextFn:e,catchFn:t}),this._runResolutions(),i},catch:function(e){if(this._isResolved())return r.resolve(this._data)._setParent(this);var t=r.unresolved()._setParent(this);return this._continuations.push({promise:t,catchFn:e}),this._runRejections(),t},finally:function(e){var t=!1;function r(r,o){if(!t){t=!0,e||(e=i);var s=e(r);return n(s)?s.then((function(){if(o)throw o;return r})):r}}return this.then((function(e){return r(e)})).catch((function(e){return r(null,e)}))},pause:function(){return this._paused=!0,this},resume:function(){var e=this._findFirstPaused();return e&&(e._paused=!1,e._runResolutions(),e._runRejections()),this},_findAncestry:function(){return this._continuations.reduce((function(e,t){if(t.promise){var r={promise:t.promise,children:t.promise._findAncestry()};e.push(r)}return e}),[])},_setParent:function(e){if(this._parent)throw new Error("parent already set");return this._parent=e,this},_continueWith:function(e){var t=this._findFirstPending();t&&(t._data=e,t._setResolved())},_findFirstPending:function(){return this._findFirstAncestor((function(e){return e._isPending&&e._isPending()}))},_findFirstPaused:function(){return this._findFirstAncestor((function(e){return e._paused}))},_findFirstAncestor:function(e){for(var t,r=this;r;)e(r)&&(t=r),r=r._parent;return t},_failWith:function(e){var t=this._findFirstPending();t&&(t._error=e,t._setRejected())},_takeContinuations:function(){return this._continuations.splice(0,this._continuations.length)},_runRejections:function(){if(!this._paused&&this._isRejected()){var e=this._error,t=this._takeContinuations(),r=this;t.forEach((function(t){if(t.catchFn)try{var n=t.catchFn(e);r._handleUserFunctionResult(n,t.promise)}catch(e){t.promise.reject(e)}else t.promise.reject(e)}))}},_runResolutions:function(){if(!this._paused&&this._isResolved()&&!this._isPending()){var e=this._takeContinuations();if(n(this._data))return this._handleWhenResolvedDataIsPromise(this._data);var t=this._data,r=this;e.forEach((function(e){if(e.nextFn)try{var n=e.nextFn(t);r._handleUserFunctionResult(n,e.promise)}catch(t){r._handleResolutionError(t,e)}else e.promise&&e.promise.resolve(t)}))}},_handleResolutionError:function(e,t){if(this._setRejected(),t.catchFn)try{return void t.catchFn(e)}catch(t){e=t}t.promise&&t.promise.reject(e)},_handleWhenResolvedDataIsPromise:function(e){var t=this;return e.then((function(e){t._data=e,t._runResolutions()})).catch((function(e){t._error=e,t._setRejected(),t._runRejections()}))},_handleUserFunctionResult:function(e,t){n(e)?this._chainPromiseData(e,t):t.resolve(e)},_chainPromiseData:function(e,t){e.then((function(e){t.resolve(e)})).catch((function(e){t.reject(e)}))},_setResolved:function(){this.status="resolved",this._paused||this._runResolutions()},_setRejected:function(){this.status="rejected",this._paused||this._runRejections()},_isPending:function(){return"pending"===this.status},_isResolved:function(){return"resolved"===this.status},_isRejected:function(){return"rejected"===this.status}},r.resolve=function(e){return new r((function(t,r){n(e)?e.then((function(e){t(e)})).catch((function(e){r(e)})):t(e)}))},r.reject=function(e){return new r((function(t,r){r(e)}))},r.unresolved=function(){return new r((function(e,t){this.resolve=e,this.reject=t}))},r.all=function(){var e=t(arguments);return Array.isArray(e[0])&&(e=e[0]),e.length?new r((function(t,n){var i=[],o=0,s=!1;e.forEach((function(A,a){r.resolve(A).then((function(r){i[a]=r,(o+=1)===e.length&&t(i)})).catch((function(e){!function(e){s||(s=!0,n(e))}(e)}))}))})):r.resolve([])},Promise===r)throw new Error("Please use SynchronousPromise.installGlobally() to install globally");var o=Promise;r.installGlobally=function(e){if(Promise===r)return e;var n=function(e){if(void 0===e||e.__patched)return e;var r=e;return(e=function(){r.apply(this,t(arguments))}).__patched=!0,e}(e);return Promise=r,n},r.uninstallGlobally=function(){Promise===r&&(Promise=o)},e.exports={SynchronousPromise:r}},27700:(e,t,r)=>{"use strict";r(78886),r(84208),r(54768),r(68965),r(26842),r(29231),r(43915),t.Ze=r(67501),r(88658),r(27052),r(46464),r(76516),r(6464)},15135:(e,t,r)=>{"use strict";let n=Buffer;n.alloc||(n=r(13499).Buffer),e.exports=n},78886:(e,t,r)=>{"use strict";const n=r(59087),i=r(29231),o=(r(35747),r(28123)),s=r(54768),A=r(85622),a=(e.exports=(e,t,r)=>{if("function"==typeof t&&(r=t),Array.isArray(e)&&(t=e,e={}),!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");t=Array.from(t);const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return i.file&&i.sync?a(i,t):i.file?c(i,t,r):i.sync?h(i,t):g(i,t)},(e,t)=>{const r=new i.Sync(e),n=new o.WriteStreamSync(e.file,{mode:e.mode||438});r.pipe(n),u(r,t)}),c=(e,t,r)=>{const n=new i(e),s=new o.WriteStream(e.file,{mode:e.mode||438});n.pipe(s);const A=new Promise((e,t)=>{s.on("error",t),s.on("close",e),n.on("error",t)});return l(n,t),r?A.then(r,r):A},u=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?s({file:A.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},l=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return s({file:A.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>l(e,t));e.add(r)}e.end()},h=(e,t)=>{const r=new i.Sync(e);return u(r,t),r},g=(e,t)=>{const r=new i(e);return l(r,t),r}},26842:(e,t,r)=>{"use strict";const n=r(59087),i=r(43915),o=r(35747),s=r(28123),A=r(85622),a=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const i=n(e);if(i.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!i.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&a(i,t),i.file&&i.sync?c(i):i.file?u(i,r):i.sync?l(i):h(i)},(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||A.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(A.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))}),c=e=>{const t=new i.Sync(e),r=e.file;const n=o.statSync(r),A=e.maxReadSize||16777216;new s.ReadStreamSync(r,{readSize:A,size:n.size}).pipe(t)},u=(e,t)=>{const r=new i(e),n=e.maxReadSize||16777216,A=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("close",e),o.stat(A,(e,i)=>{if(e)t(e);else{const e=new s.ReadStream(A,{readSize:n,size:i.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},l=e=>new i.Sync(e),h=e=>new i(e)},46464:(e,t,r)=>{"use strict";const n=r(15135),i=r(6464),o=r(85622).posix,s=r(62488),A=Symbol("slurp"),a=Symbol("type");const c=(e,t)=>{let r,i=e,s="";const A=o.parse(e).root||".";if(n.byteLength(i)<100)r=[i,s,!1];else{s=o.dirname(i),i=o.basename(i);do{n.byteLength(i)<=100&&n.byteLength(s)<=t?r=[i,s,!1]:n.byteLength(i)>100&&n.byteLength(s)<=t?r=[i.substr(0,99),s,!0]:(i=o.join(o.basename(s),i),s=o.dirname(s))}while(s!==A&&!r);r||(r=[e.substr(0,99),"",!0])}return r},u=(e,t,r)=>e.slice(t,t+r).toString("utf8").replace(/\0.*/,""),l=(e,t,r)=>h(g(e,t,r)),h=e=>null===e?null:new Date(1e3*e),g=(e,t,r)=>128&e[t]?s.parse(e.slice(t,t+r)):f(e,t,r),f=(e,t,r)=>{return n=parseInt(e.slice(t,t+r).toString("utf8").replace(/\0.*$/,"").trim(),8),isNaN(n)?null:n;var n},p={12:8589934591,8:2097151},d=(e,t,r,n)=>null!==n&&(n>p[r]||n<0?(s.encode(n,e.slice(t,t+r)),!0):(C(e,t,r,n),!1)),C=(e,t,r,n)=>e.write(E(n,r),t,r,"ascii"),E=(e,t)=>I(Math.floor(e).toString(8),t),I=(e,t)=>(e.length===t-1?e:new Array(t-e.length-1).join("0")+e+" ")+"\0",m=(e,t,r,n)=>null!==n&&d(e,t,r,n.getTime()/1e3),y=new Array(156).join("\0"),w=(e,t,r,i)=>null!==i&&(e.write(i+y,t,r,"utf8"),i.length!==n.byteLength(i)||i.length>r);e.exports=class{constructor(e,t,r,i){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[a]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,n.isBuffer(e)?this.decode(e,t||0,r,i):e&&this.set(e)}decode(e,t,r,n){if(t||(t=0),!(e&&e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=u(e,t,100),this.mode=g(e,t+100,8),this.uid=g(e,t+108,8),this.gid=g(e,t+116,8),this.size=g(e,t+124,12),this.mtime=l(e,t+136,12),this.cksum=g(e,t+148,12),this[A](r),this[A](n,!0),this[a]=u(e,t+156,1),""===this[a]&&(this[a]="0"),"0"===this[a]&&"/"===this.path.substr(-1)&&(this[a]="5"),"5"===this[a]&&(this.size=0),this.linkpath=u(e,t+157,100),"ustar\x0000"===e.slice(t+257,t+265).toString())if(this.uname=u(e,t+265,32),this.gname=u(e,t+297,32),this.devmaj=g(e,t+329,8),this.devmin=g(e,t+337,8),0!==e[t+475]){const r=u(e,t+345,155);this.path=r+"/"+this.path}else{const r=u(e,t+345,130);r&&(this.path=r+"/"+this.path),this.atime=l(e,t+476,12),this.ctime=l(e,t+488,12)}let i=256;for(let r=t;r<t+148;r++)i+=e[r];for(let r=t+156;r<t+512;r++)i+=e[r];this.cksumValid=i===this.cksum,null===this.cksum&&256===i&&(this.nullBlock=!0)}[A](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}encode(e,t){if(e||(e=this.block=n.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");const r=this.ctime||this.atime?130:155,i=c(this.path||"",r),o=i[0],s=i[1];this.needPax=i[2],this.needPax=w(e,t,100,o)||this.needPax,this.needPax=d(e,t+100,8,this.mode)||this.needPax,this.needPax=d(e,t+108,8,this.uid)||this.needPax,this.needPax=d(e,t+116,8,this.gid)||this.needPax,this.needPax=d(e,t+124,12,this.size)||this.needPax,this.needPax=m(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[a].charCodeAt(0),this.needPax=w(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=w(e,t+265,32,this.uname)||this.needPax,this.needPax=w(e,t+297,32,this.gname)||this.needPax,this.needPax=d(e,t+329,8,this.devmaj)||this.needPax,this.needPax=d(e,t+337,8,this.devmin)||this.needPax,this.needPax=w(e,t+345,r,s)||this.needPax,0!==e[t+475]?this.needPax=w(e,t+345,155,s)||this.needPax:(this.needPax=w(e,t+345,130,s)||this.needPax,this.needPax=m(e,t+476,12,this.atime)||this.needPax,this.needPax=m(e,t+488,12,this.ctime)||this.needPax);let A=256;for(let r=t;r<t+148;r++)A+=e[r];for(let r=t+156;r<t+512;r++)A+=e[r];return this.cksum=A,d(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)null!==e[t]&&void 0!==e[t]&&(this[t]=e[t])}get type(){return i.name.get(this[a])||this[a]}get typeKey(){return this[a]}set type(e){i.code.has(e)?this[a]=i.code.get(e):this[a]=e}}},59087:e=>{"use strict";const t=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);e.exports=e=>e?Object.keys(e).map(r=>[t.has(r)?t.get(r):r,e[r]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}},62488:(e,t)=>{"use strict";t.encode=(e,t)=>{if(!Number.isSafeInteger(e))throw TypeError("cannot encode number outside of javascript safe integer range");return e<0?n(e,t):r(e,t),t};const r=(e,t)=>{t[0]=128;for(var r=t.length;r>1;r--)t[r-1]=255&e,e=Math.floor(e/256)},n=(e,t)=>{t[0]=255;var r=!1;e*=-1;for(var n=t.length;n>1;n--){var i=255&e;e=Math.floor(e/256),r?t[n-1]=s(i):0===i?t[n-1]=0:(r=!0,t[n-1]=A(i))}},i=(t.parse=e=>{e[e.length-1];var t,r=e[0];if(128===r)t=o(e.slice(1,e.length));else{if(255!==r)throw TypeError("invalid base256 encoding");t=i(e)}if(!Number.isSafeInteger(t))throw TypeError("parsed number outside of javascript safe integer range");return t},e=>{for(var t=e.length,r=0,n=!1,i=t-1;i>-1;i--){var o,a=e[i];n?o=s(a):0===a?o=a:(n=!0,o=A(a)),0!==o&&(r-=o*Math.pow(256,t-i-1))}return r}),o=e=>{for(var t=e.length,r=0,n=t-1;n>-1;n--){var i=e[n];0!==i&&(r+=i*Math.pow(256,t-n-1))}return r},s=e=>255&(255^e),A=e=>1+(255^e)&255},54768:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(67501),s=r(35747),A=r(28123),a=r(85622),c=(e.exports=(e,t,r)=>{"function"==typeof e?(r=e,t=null,e={}):Array.isArray(e)&&(t=e,e={}),"function"==typeof t&&(r=t,t=null),t=t?Array.from(t):[];const n=i(e);if(n.sync&&"function"==typeof r)throw new TypeError("callback not supported for sync tar functions");if(!n.file&&"function"==typeof r)throw new TypeError("callback only supported with file option");return t.length&&u(n,t),n.noResume||c(n),n.file&&n.sync?l(n):n.file?h(n,r):g(n)},e=>{const t=e.onentry;e.onentry=t?e=>{t(e),e.resume()}:e=>e.resume()}),u=(e,t)=>{const r=new Map(t.map(e=>[e.replace(/\/+$/,""),!0])),n=e.filter,i=(e,t)=>{const n=t||a.parse(e).root||".",o=e!==n&&(r.has(e)?r.get(e):i(a.dirname(e),n));return r.set(e,o),o};e.filter=n?(e,t)=>n(e,t)&&i(e.replace(/\/+$/,"")):e=>i(e.replace(/\/+$/,""))},l=e=>{const t=g(e),r=e.file;let i,o=!0;try{const A=s.statSync(r),a=e.maxReadSize||16777216;if(A.size<a)t.end(s.readFileSync(r));else{let e=0;const o=n.allocUnsafe(a);for(i=s.openSync(r,"r");e<A.size;){let r=s.readSync(i,o,0,a,e);e+=r,t.write(o.slice(0,r))}t.end()}o=!1}finally{if(o&&i)try{s.closeSync(i)}catch(e){}}},h=(e,t)=>{const r=new o(e),n=e.maxReadSize||16777216,i=e.file,a=new Promise((e,t)=>{r.on("error",t),r.on("end",e),s.stat(i,(e,o)=>{if(e)t(e);else{const e=new A.ReadStream(i,{readSize:n,size:o.size});e.on("error",t),e.pipe(r)}})});return t?a.then(t,t):a},g=e=>new o(e)},65865:(e,t,r)=>{"use strict";const n=r(11436),i=r(35747),o=r(85622),s=r(82758);class A extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}}class a extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}}e.exports=(e,t,r)=>{const A=t.umask,u=448|t.mode,l=0!=(u&A),h=t.uid,g=t.gid,f="number"==typeof h&&"number"==typeof g&&(h!==t.processUid||g!==t.processGid),p=t.preserve,d=t.unlink,C=t.cache,E=t.cwd,I=(t,n)=>{t?r(t):(C.set(e,!0),n&&f?s(n,h,g,e=>I(e)):l?i.chmod(e,u,r):r())};if(C&&!0===C.get(e))return I();if(e===E)return i.stat(e,(t,r)=>{!t&&r.isDirectory()||(t=new a(e,t&&t.code||"ENOTDIR")),I(t)});if(p)return n(e,u,I);const m=o.relative(E,e).split(/\/|\\/);c(E,m,u,C,d,E,null,I)};const c=(e,t,r,n,o,s,A,a)=>{if(!t.length)return a(null,A);const l=e+"/"+t.shift();if(n.get(l))return c(l,t,r,n,o,s,A,a);i.mkdir(l,r,u(l,t,r,n,o,s,A,a))},u=(e,t,r,n,s,l,h,g)=>f=>{if(f){if(f.path&&o.dirname(f.path)===l&&("ENOTDIR"===f.code||"ENOENT"===f.code))return g(new a(l,f.code));i.lstat(e,(o,a)=>{if(o)g(o);else if(a.isDirectory())c(e,t,r,n,s,l,h,g);else if(s)i.unlink(e,o=>{if(o)return g(o);i.mkdir(e,r,u(e,t,r,n,s,l,h,g))});else{if(a.isSymbolicLink())return g(new A(e,e+"/"+t.join("/")));g(f)}})}else c(e,t,r,n,s,l,h=h||e,g)};e.exports.sync=(e,t)=>{const r=t.umask,c=448|t.mode,u=0!=(c&r),l=t.uid,h=t.gid,g="number"==typeof l&&"number"==typeof h&&(l!==t.processUid||h!==t.processGid),f=t.preserve,p=t.unlink,d=t.cache,C=t.cwd,E=t=>{d.set(e,!0),t&&g&&s.sync(t,l,h),u&&i.chmodSync(e,c)};if(d&&!0===d.get(e))return E();if(e===C){let t=!1,r="ENOTDIR";try{t=i.statSync(e).isDirectory()}catch(e){r=e.code}finally{if(!t)throw new a(e,r)}return void E()}if(f)return E(n.sync(e,c));const I=o.relative(C,e).split(/\/|\\/);let m=null;for(let e=I.shift(),t=C;e&&(t+="/"+e);e=I.shift())if(!d.get(t))try{i.mkdirSync(t,c),m=m||t,d.set(t,!0)}catch(e){if(e.path&&o.dirname(e.path)===C&&("ENOTDIR"===e.code||"ENOENT"===e.code))return new a(C,e.code);const r=i.lstatSync(t);if(r.isDirectory()){d.set(t,!0);continue}if(p){i.unlinkSync(t),i.mkdirSync(t,c),m=m||t,d.set(t,!0);continue}if(r.isSymbolicLink())return new A(t,t+"/"+I.join("/"))}return E(m)}},11754:e=>{"use strict";e.exports=(e,t)=>(e&=4095,t&&(256&e&&(e|=64),32&e&&(e|=8),4&e&&(e|=1)),e)},29231:(e,t,r)=>{"use strict";const n=r(15135);class i{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}}const o=r(44380),s=r(20671),A=r(88658),a=r(27052),c=a.Sync,u=a.Tar,l=r(80800),h=n.alloc(1024),g=Symbol("onStat"),f=Symbol("ended"),p=Symbol("queue"),d=Symbol("current"),C=Symbol("process"),E=Symbol("processing"),I=Symbol("processJob"),m=Symbol("jobs"),y=Symbol("jobDone"),w=Symbol("addFSEntry"),B=Symbol("addTarEntry"),Q=Symbol("stat"),v=Symbol("readdir"),D=Symbol("onreaddir"),b=Symbol("pipe"),S=Symbol("entry"),k=Symbol("entryOpt"),x=Symbol("writeEntryClass"),F=Symbol("write"),M=Symbol("ondrain"),N=r(35747),R=r(85622),K=r(7994)(class extends o{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[x]=a,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),this.zip=null,e.gzip?("object"!=typeof e.gzip&&(e.gzip={}),this.zip=new s.Gzip(e.gzip),this.zip.on("data",e=>super.write(e)),this.zip.on("end",e=>super.end()),this.zip.on("drain",e=>this[M]()),this.on("resume",e=>this.zip.resume())):this.on("drain",this[M]),this.portable=!!e.portable,this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter="function"==typeof e.filter?e.filter:e=>!0,this[p]=new l,this[m]=0,this.jobs=+e.jobs||4,this[E]=!1,this[f]=!1}[F](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[f]=!0,this[C](),this}write(e){if(this[f])throw new Error("write after end");return e instanceof A?this[B](e):this[w](e),this.flowing}[B](e){const t=R.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),this.filter(e.path,e)){const r=new i(e.path,t,!1);r.entry=new u(e,this[k](r)),r.entry.on("end",e=>this[y](r)),this[m]+=1,this[p].push(r)}else e.resume();this[C]()}[w](e){const t=R.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[p].push(new i(e,t)),this[C]()}[Q](e){e.pending=!0,this[m]+=1;const t=this.follow?"stat":"lstat";N[t](e.absolute,(t,r)=>{e.pending=!1,this[m]-=1,t?this.emit("error",t):this[g](e,r)})}[g](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[C]()}[v](e){e.pending=!0,this[m]+=1,N.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[m]-=1,t)return this.emit("error",t);this[D](e,r)})}[D](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[C]()}[C](){if(!this[E]){this[E]=!0;for(let e=this[p].head;null!==e&&this[m]<this.jobs;e=e.next)if(this[I](e.value),e.value.ignore){const t=e.next;this[p].removeNode(e),e.next=t}this[E]=!1,this[f]&&!this[p].length&&0===this[m]&&(this.zip?this.zip.end(h):(super.write(h),super.end()))}}get[d](){return this[p]&&this[p].head&&this[p].head.value}[y](e){this[p].shift(),this[m]-=1,this[C]()}[I](e){e.pending||(e.entry?e!==this[d]||e.piped||this[b](e):(e.stat||(this.statCache.has(e.absolute)?this[g](e,this.statCache.get(e.absolute)):this[Q](e)),e.stat&&(e.ignore||(this.noDirRecurse||!e.stat.isDirectory()||e.readdir||(this.readdirCache.has(e.absolute)?this[D](e,this.readdirCache.get(e.absolute)):this[v](e),e.readdir))&&(e.entry=this[S](e),e.entry?e!==this[d]||e.piped||this[b](e):e.ignore=!0))))}[k](e){return{onwarn:(e,t)=>{this.warn(e,t)},noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[S](e){this[m]+=1;try{return new this[x](e.path,this[k](e)).on("end",()=>this[y](e)).on("error",e=>this.emit("error",e))}catch(e){this.emit("error",e)}}[M](){this[d]&&this[d].entry&&this[d].entry.resume()}[b](e){e.piped=!0,e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)});const t=e.entry,r=this.zip;r?t.on("data",e=>{r.write(e)||t.pause()}):t.on("data",e=>{super.write(e)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}});K.Sync=class extends K{constructor(e){super(e),this[x]=c}pause(){}resume(){}[Q](e){const t=this.follow?"statSync":"lstatSync";this[g](e,N[t](e.absolute))}[v](e,t){this[D](e,N.readdirSync(e.absolute))}[b](e){const t=e.entry,r=this.zip;e.readdir&&e.readdir.forEach(t=>{const r=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,n="./"===r?"":r.replace(/\/*$/,"/");this[w](n+t)}),r?t.on("data",e=>{r.write(e)}):t.on("data",e=>{super[F](e)})}},e.exports=K},67501:(e,t,r)=>{"use strict";const n=r(7994),i=(r(85622),r(46464)),o=r(28614),s=r(80800),A=r(88658),a=r(76516),c=r(20671),u=r(15135),l=u.from([31,139]),h=Symbol("state"),g=Symbol("writeEntry"),f=Symbol("readEntry"),p=Symbol("nextEntry"),d=Symbol("processEntry"),C=Symbol("extendedHeader"),E=Symbol("globalExtendedHeader"),I=Symbol("meta"),m=Symbol("emitMeta"),y=Symbol("buffer"),w=Symbol("queue"),B=Symbol("ended"),Q=Symbol("emittedEnd"),v=Symbol("emit"),D=Symbol("unzip"),b=Symbol("consumeChunk"),S=Symbol("consumeChunkSub"),k=Symbol("consumeBody"),x=Symbol("consumeMeta"),F=Symbol("consumeHeader"),M=Symbol("consuming"),N=Symbol("bufferConcat"),R=Symbol("maybeEnd"),K=Symbol("writing"),L=Symbol("aborted"),T=Symbol("onDone"),P=e=>!0;e.exports=n(class extends o{constructor(e){super(e=e||{}),e.ondone?this.on(T,e.ondone):this.on(T,e=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||1048576,this.filter="function"==typeof e.filter?e.filter:P,this.writable=!0,this.readable=!1,this[w]=new s,this[y]=null,this[f]=null,this[g]=null,this[h]="begin",this[I]="",this[C]=null,this[E]=null,this[B]=!1,this[D]=null,this[L]=!1,"function"==typeof e.onwarn&&this.on("warn",e.onwarn),"function"==typeof e.onentry&&this.on("entry",e.onentry)}[F](e,t){let r;try{r=new i(e,t,this[C],this[E])}catch(e){return this.warn("invalid entry",e)}if(r.nullBlock)this[v]("nullBlock");else if(r.cksumValid)if(r.path){const e=r.type;if(/^(Symbolic)?Link$/.test(e)&&!r.linkpath)this.warn("invalid: linkpath required",r);else if(!/^(Symbolic)?Link$/.test(e)&&r.linkpath)this.warn("invalid: linkpath forbidden",r);else{const e=this[g]=new A(r,this[C],this[E]);e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[v]("ignoredEntry",e),this[h]="ignore"):e.size>0&&(this[I]="",e.on("data",e=>this[I]+=e),this[h]="meta"):(this[C]=null,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[v]("ignoredEntry",e),this[h]=e.remain?"ignore":"begin"):(e.remain?this[h]="body":(this[h]="begin",e.end()),this[f]?this[w].push(e):(this[w].push(e),this[p]())))}}else this.warn("invalid: path is required",r);else this.warn("invalid entry",r)}[d](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[f]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",e=>this[p]()),t=!1)):(this[f]=null,t=!1),t}[p](){do{}while(this[d](this[w].shift()));if(!this[w].length){const e=this[f];!e||e.flowing||e.size===e.remain?this[K]||this.emit("drain"):e.once("drain",e=>this.emit("drain"))}}[k](e,t){const r=this[g],n=r.blockRemain,i=n>=e.length&&0===t?e:e.slice(t,t+n);return r.write(i),r.blockRemain||(this[h]="begin",this[g]=null,r.end()),i.length}[x](e,t){const r=this[g],n=this[k](e,t);return this[g]||this[m](r),n}[v](e,t,r){this[w].length||this[f]?this[w].push([e,t,r]):this.emit(e,t,r)}[m](e){switch(this[v]("meta",this[I]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[C]=a.parse(this[I],this[C],!1);break;case"GlobalExtendedHeader":this[E]=a.parse(this[I],this[E],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[C]=this[C]||Object.create(null),this[C].path=this[I].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[C]=this[C]||Object.create(null),this[C].linkpath=this[I].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e,t){this[L]=!0,this.warn(e,t),this.emit("abort",t),this.emit("error",t)}write(e){if(this[L])return;if(null===this[D]&&e){if(this[y]&&(e=u.concat([this[y],e]),this[y]=null),e.length<l.length)return this[y]=e,!0;for(let t=0;null===this[D]&&t<l.length;t++)e[t]!==l[t]&&(this[D]=!1);if(null===this[D]){const t=this[B];this[B]=!1,this[D]=new c.Unzip,this[D].on("data",e=>this[b](e)),this[D].on("error",e=>this.abort(e.message,e)),this[D].on("end",e=>{this[B]=!0,this[b]()}),this[K]=!0;const r=this[D][t?"end":"write"](e);return this[K]=!1,r}}this[K]=!0,this[D]?this[D].write(e):this[b](e),this[K]=!1;const t=!this[w].length&&(!this[f]||this[f].flowing);return t||this[w].length||this[f].once("drain",e=>this.emit("drain")),t}[N](e){e&&!this[L]&&(this[y]=this[y]?u.concat([this[y],e]):e)}[R](){if(this[B]&&!this[Q]&&!this[L]&&!this[M]){this[Q]=!0;const e=this[g];if(e&&e.blockRemain){const t=this[y]?this[y].length:0;this.warn("Truncated input (needed "+e.blockRemain+" more bytes, only "+t+" available)",e),this[y]&&e.write(this[y]),e.end()}this[v](T)}}[b](e){if(this[M])this[N](e);else if(e||this[y]){if(this[M]=!0,this[y]){this[N](e);const t=this[y];this[y]=null,this[S](t)}else this[S](e);for(;this[y]&&this[y].length>=512&&!this[L];){const e=this[y];this[y]=null,this[S](e)}this[M]=!1}else this[R]();this[y]&&!this[B]||this[R]()}[S](e){let t=0,r=e.length;for(;t+512<=r&&!this[L];)switch(this[h]){case"begin":this[F](e,t),t+=512;break;case"ignore":case"body":t+=this[k](e,t);break;case"meta":t+=this[x](e,t);break;default:throw new Error("invalid state: "+this[h])}t<r&&(this[y]?this[y]=u.concat([e.slice(t),this[y]]):this[y]=e.slice(t))}end(e){this[L]||(this[D]?this[D].end(e):(this[B]=!0,this.write(e)))}})},76516:(e,t,r)=>{"use strict";const n=r(15135),i=r(46464),o=r(85622);class s{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){const e=this.encodeBody();if(""===e)return null;const t=n.byteLength(e),r=512*Math.ceil(1+t/512),s=n.allocUnsafe(r);for(let e=0;e<512;e++)s[e]=0;new i({path:("PaxHeader/"+o.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(s),s.write(e,512,t,"utf8");for(let e=t+512;e<s.length;e++)s[e]=0;return s}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(null===this[e]||void 0===this[e])return"";const t=" "+("dev"===e||"ino"===e||"nlink"===e?"SCHILY.":"")+e+"="+(this[e]instanceof Date?this[e].getTime()/1e3:this[e])+"\n",r=n.byteLength(t);let i=Math.floor(Math.log(r)/Math.log(10))+1;r+i>=Math.pow(10,i)&&(i+=1);return i+r+t}}s.parse=(e,t,r)=>new s(A(a(e),t),r);const A=(e,t)=>t?Object.keys(e).reduce((t,r)=>(t[r]=e[r],t),t):e,a=e=>e.replace(/\n$/,"").split("\n").reduce(c,Object.create(null)),c=(e,t)=>{const r=parseInt(t,10);if(r!==n.byteLength(t)+1)return e;const i=(t=t.substr((r+" ").length)).split("="),o=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!o)return e;const s=i.join("=");return e[o]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(o)?new Date(1e3*s):/^[0-9]+$/.test(s)?+s:s,e};e.exports=s},88658:(e,t,r)=>{"use strict";r(6464);const n=r(44380),i=Symbol("slurp");e.exports=class extends n{constructor(e,t,r){switch(super(),this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=4095&this.mode),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[i](t),r&&this[i](r,!0)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");const r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),!!this.ignore||(r>=t?super.write(e):super.write(e.slice(0,r)))}[i](e,t){for(let r in e)null===e[r]||void 0===e[r]||t&&"path"===r||(this[r]=e[r])}}},84208:(e,t,r)=>{"use strict";const n=r(15135),i=r(59087),o=r(29231),s=(r(67501),r(35747)),A=r(28123),a=r(54768),c=r(85622),u=r(46464),l=(e.exports=(e,t,r)=>{const n=i(e);if(!n.file)throw new TypeError("file is required");if(n.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),n.sync?l(n,t):g(n,t,r)},(e,t)=>{const r=new o.Sync(e);let i,A,a=!0;try{try{i=s.openSync(e.file,"r+")}catch(t){if("ENOENT"!==t.code)throw t;i=s.openSync(e.file,"w+")}const o=s.fstatSync(i),c=n.alloc(512);e:for(A=0;A<o.size;A+=512){for(let e=0,t=0;e<512;e+=t){if(t=s.readSync(i,c,e,c.length-e,A+e),0===A&&31===c[0]&&139===c[1])throw new Error("cannot append to compressed archives");if(!t)break e}let t=new u(c);if(!t.cksumValid)break;let r=512*Math.ceil(t.size/512);if(A+r+512>o.size)break;A+=r,e.mtimeCache&&e.mtimeCache.set(t.path,t.mtime)}a=!1,h(e,r,A,i,t)}finally{if(a)try{s.closeSync(i)}catch(e){}}}),h=(e,t,r,n,i)=>{const o=new A.WriteStreamSync(e.file,{fd:n,start:r});t.pipe(o),f(t,i)},g=(e,t,r)=>{t=Array.from(t);const i=new o(e),a=new Promise((r,o)=>{i.on("error",o);let a="r+";const c=(l,h)=>l&&"ENOENT"===l.code&&"r+"===a?(a="w+",s.open(e.file,a,c)):l?o(l):void s.fstat(h,(a,c)=>{if(a)return o(a);((t,r,i)=>{const o=(e,r)=>{e?s.close(t,t=>i(e)):i(null,r)};let A=0;if(0===r)return o(null,0);let a=0;const c=n.alloc(512),l=(n,i)=>{if(n)return o(n);if(a+=i,a<512&&i)return s.read(t,c,a,c.length-a,A+a,l);if(0===A&&31===c[0]&&139===c[1])return o(new Error("cannot append to compressed archives"));if(a<512)return o(null,A);const h=new u(c);if(!h.cksumValid)return o(null,A);const g=512*Math.ceil(h.size/512);return A+g+512>r?o(null,A):(A+=g+512,A>=r?o(null,A):(e.mtimeCache&&e.mtimeCache.set(h.path,h.mtime),a=0,void s.read(t,c,0,512,A,l)))};s.read(t,c,0,512,A,l)})(h,c.size,(n,s)=>{if(n)return o(n);const a=new A.WriteStream(e.file,{fd:h,start:s});i.pipe(a),a.on("error",o),a.on("close",r),p(i,t)})});s.open(e.file,a,c)});return r?a.then(r,r):a},f=(e,t)=>{t.forEach(t=>{"@"===t.charAt(0)?a({file:c.resolve(e.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:t=>e.add(t)}):e.add(t)}),e.end()},p=(e,t)=>{for(;t.length;){const r=t.shift();if("@"===r.charAt(0))return a({file:c.resolve(e.cwd,r.substr(1)),noResume:!0,onentry:t=>e.add(t)}).then(r=>p(e,t));e.add(r)}e.end()}},6464:(e,t)=>{"use strict";t.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),t.code=new Map(Array.from(t.name).map(e=>[e[1],e[0]]))},43915:(e,t,r)=>{"use strict";const n=r(42357),i=(r(28614).EventEmitter,r(67501)),o=r(35747),s=r(28123),A=r(85622),a=r(65865),c=(a.sync,r(86895)),u=Symbol("onEntry"),l=Symbol("checkFs"),h=Symbol("isReusable"),g=Symbol("makeFs"),f=Symbol("file"),p=Symbol("directory"),d=Symbol("link"),C=Symbol("symlink"),E=Symbol("hardlink"),I=Symbol("unsupported"),m=(Symbol("unknown"),Symbol("checkPath")),y=Symbol("mkdir"),w=Symbol("onError"),B=Symbol("pending"),Q=Symbol("pend"),v=Symbol("unpend"),D=Symbol("ended"),b=Symbol("maybeClose"),S=Symbol("skip"),k=Symbol("doChown"),x=Symbol("uid"),F=Symbol("gid"),M=r(76417),N=(e,t,r)=>e===e>>>0?e:t===t>>>0?t:r;class R extends i{constructor(e){if(e||(e={}),e.ondone=e=>{this[D]=!0,this[b]()},super(e),this.transform="function"==typeof e.transform?e.transform:null,this.writable=!0,this.readable=!1,this[B]=0,this[D]=!1,this.dirCache=e.dirCache||new Map,"number"==typeof e.uid||"number"==typeof e.gid){if("number"!=typeof e.uid||"number"!=typeof e.gid)throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;void 0===e.preserveOwner&&"number"!=typeof e.uid?this.preserveOwner=process.getuid&&0===process.getuid():this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=!0===e.forceChown,this.win32=!!e.win32||"win32"===process.platform,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=A.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask="number"==typeof e.umask?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",e=>this[u](e))}[b](){this[D]&&0===this[B]&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[m](e){if(this.strip){const t=e.path.split(/\/|\\/);if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),"Link"===e.type){const t=e.linkpath.split(/\/|\\/);t.length>=this.strip&&(e.linkpath=t.slice(this.strip).join("/"))}}if(!this.preservePaths){const t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("path contains '..'",t),!1;if(A.win32.isAbsolute(t)){const r=A.win32.parse(t);this.warn("stripping "+r.root+" from absolute path",t),e.path=t.substr(r.root.length)}}if(this.win32){const t=A.win32.parse(e.path);e.path=""===t.root?c.encode(e.path):t.root+c.encode(e.path.substr(t.root.length))}return A.isAbsolute(e.path)?e.absolute=e.path:e.absolute=A.resolve(this.cwd,e.path),!0}[u](e){if(!this[m](e))return e.resume();switch(n.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=448|e.mode);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[l](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[I](e)}}[w](e,t){"CwdError"===e.name?this.emit("error",e):(this.warn(e.message,e),this[v](),t.resume())}[y](e,t,r){a(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},r)}[k](e){return this.forceChown||this.preserveOwner&&("number"==typeof e.uid&&e.uid!==this.processUid||"number"==typeof e.gid&&e.gid!==this.processGid)||"number"==typeof this.uid&&this.uid!==this.processUid||"number"==typeof this.gid&&this.gid!==this.processGid}[x](e){return N(this.uid,e.uid,this.processUid)}[F](e){return N(this.gid,e.gid,this.processGid)}[f](e){const t=4095&e.mode||this.fmode,r=new s.WriteStream(e.absolute,{mode:t,autoClose:!1});r.on("error",t=>this[w](t,e));let n=1;const i=t=>{if(t)return this[w](t,e);0==--n&&o.close(r.fd,e=>this[v]())};r.on("finish",t=>{const s=e.absolute,A=r.fd;if(e.mtime&&!this.noMtime){n++;const t=e.atime||new Date,r=e.mtime;o.futimes(A,t,r,e=>e?o.utimes(s,t,r,t=>i(t&&e)):i())}if(this[k](e)){n++;const t=this[x](e),r=this[F](e);o.fchown(A,t,r,e=>e?o.chown(s,t,r,t=>i(t&&e)):i())}i()});const A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",t=>this[w](t,e)),e.pipe(A)),A.pipe(r)}[p](e){const t=4095&e.mode||this.dmode;this[y](e.absolute,t,t=>{if(t)return this[w](t,e);let r=1;const n=t=>{0==--r&&(this[v](),e.resume())};e.mtime&&!this.noMtime&&(r++,o.utimes(e.absolute,e.atime||new Date,e.mtime,n)),this[k](e)&&(r++,o.chown(e.absolute,this[x](e),this[F](e),n)),n()})}[I](e){this.warn("unsupported entry type: "+e.type,e),e.resume()}[C](e){this[d](e,e.linkpath,"symlink")}[E](e){this[d](e,A.resolve(this.cwd,e.linkpath),"link")}[Q](){this[B]++}[v](){this[B]--,this[b]()}[S](e){this[v](),e.resume()}[h](e,t){return"File"===e.type&&!this.unlink&&t.isFile()&&t.nlink<=1&&"win32"!==process.platform}[l](e){this[Q](),this[y](A.dirname(e.absolute),this.dmode,t=>{if(t)return this[w](t,e);o.lstat(e.absolute,(t,r)=>{r&&(this.keep||this.newer&&r.mtime>e.mtime)?this[S](e):t||this[h](e,r)?this[g](null,e):r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode?o.chmod(e.absolute,e.mode,t=>this[g](t,e)):this[g](null,e):o.rmdir(e.absolute,t=>this[g](t,e)):((e,t)=>{if("win32"!==process.platform)return o.unlink(e,t);const r=e+".DELETE."+M.randomBytes(16).toString("hex");o.rename(e,r,e=>{if(e)return t(e);o.unlink(r,t)})})(e.absolute,t=>this[g](t,e))})})}[g](e,t){if(e)return this[w](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[f](t);case"Link":return this[E](t);case"SymbolicLink":return this[C](t);case"Directory":case"GNUDumpDir":return this[p](t)}}[d](e,t,r){o[r](t,e.absolute,t=>{if(t)return this[w](t,e);this[v](),e.resume()})}}R.Sync=class extends R{constructor(e){super(e)}[l](e){const t=this[y](A.dirname(e.absolute),this.dmode);if(t)return this[w](t,e);try{const r=o.lstatSync(e.absolute);if(this.keep||this.newer&&r.mtime>e.mtime)return this[S](e);if(this[h](e,r))return this[g](null,e);try{return r.isDirectory()?"Directory"===e.type?e.mode&&(4095&r.mode)!==e.mode&&o.chmodSync(e.absolute,e.mode):o.rmdirSync(e.absolute):(e=>{if("win32"!==process.platform)return o.unlinkSync(e);const t=e+".DELETE."+M.randomBytes(16).toString("hex");o.renameSync(e,t),o.unlinkSync(t)})(e.absolute),this[g](null,e)}catch(t){return this[w](t,e)}}catch(t){return this[g](null,e)}}[f](e){const t=4095&e.mode||this.fmode,r=t=>{try{o.closeSync(n)}catch(e){}t&&this[w](t,e)};let n;try{n=o.openSync(e.absolute,"w",t)}catch(e){return r(e)}const i=this.transform&&this.transform(e)||e;i!==e&&(i.on("error",t=>this[w](t,e)),e.pipe(i)),i.on("data",e=>{try{o.writeSync(n,e,0,e.length)}catch(e){r(e)}}),i.on("end",t=>{let i=null;if(e.mtime&&!this.noMtime){const t=e.atime||new Date,r=e.mtime;try{o.futimesSync(n,t,r)}catch(n){try{o.utimesSync(e.absolute,t,r)}catch(e){i=n}}}if(this[k](e)){const t=this[x](e),r=this[F](e);try{o.fchownSync(n,t,r)}catch(n){try{o.chownSync(e.absolute,t,r)}catch(e){i=i||n}}}r(i)})}[p](e){const t=4095&e.mode||this.dmode,r=this[y](e.absolute,t);if(r)return this[w](r,e);if(e.mtime&&!this.noMtime)try{o.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(r){}if(this[k](e))try{o.chownSync(e.absolute,this[x](e),this[F](e))}catch(r){}e.resume()}[y](e,t){try{return a.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(e){return e}}[d](e,t,r){try{o[r+"Sync"](t,e.absolute),e.resume()}catch(t){return this[w](t,e)}}},e.exports=R},68965:(e,t,r)=>{"use strict";const n=r(59087),i=r(84208),o=(e.exports=(e,t,r)=>{const s=n(e);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!t||!Array.isArray(t)||!t.length)throw new TypeError("no files or directories specified");return t=Array.from(t),o(s),i(s,t,r)},e=>{const t=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=t?(r,n)=>t(r,n)&&!(e.mtimeCache.get(r)>n.mtime):(t,r)=>!(e.mtimeCache.get(t)>r.mtime)})},7994:e=>{"use strict";e.exports=e=>class extends e{warn(e,t){if(this.strict)if(t instanceof Error)this.emit("error",t);else{const r=new Error(e);r.data=t,this.emit("error",r)}else this.emit("warn",e,t)}}},86895:e=>{"use strict";const t=["|","<",">","?",":"],r=t.map(e=>String.fromCharCode(61440+e.charCodeAt(0))),n=new Map(t.map((e,t)=>[e,r[t]])),i=new Map(r.map((e,r)=>[e,t[r]]));e.exports={encode:e=>t.reduce((e,t)=>e.split(t).join(n.get(t)),e),decode:e=>r.reduce((e,t)=>e.split(t).join(i.get(t)),e)}},27052:(e,t,r)=>{"use strict";const n=r(15135),i=r(44380),o=r(76516),s=r(46464),A=(r(88658),r(35747)),a=r(85622),c=(r(6464),Symbol("process")),u=Symbol("file"),l=Symbol("directory"),h=Symbol("symlink"),g=Symbol("hardlink"),f=Symbol("header"),p=Symbol("read"),d=Symbol("lstat"),C=Symbol("onlstat"),E=Symbol("onread"),I=Symbol("onreadlink"),m=Symbol("openfile"),y=Symbol("onopenfile"),w=Symbol("close"),B=Symbol("mode"),Q=r(7994),v=r(86895),D=r(11754),b=Q(class extends i{constructor(e,t){if(super(t=t||{}),"string"!=typeof e)throw new TypeError("path is required");if(this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||16777216,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),!this.preservePaths&&a.win32.isAbsolute(e)){const t=a.win32.parse(e);this.warn("stripping "+t.root+" from absolute path",e),this.path=e.substr(t.root.length)}this.win32=!!t.win32||"win32"===process.platform,this.win32&&(this.path=v.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||a.resolve(this.cwd,e),""===this.path&&(this.path="./"),this.statCache.has(this.absolute)?this[C](this.statCache.get(this.absolute)):this[d]()}[d](){A.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[C](t)})}[C](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=k(e),this.emit("stat",e),this[c]()}[c](){switch(this.type){case"File":return this[u]();case"Directory":return this[l]();case"SymbolicLink":return this[h]();default:return this.end()}}[B](e){return D(e,"Directory"===this.type)}[f](){"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.header=new s({path:this.path,linkpath:this.linkpath,mode:this[B](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new o({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[l](){"/"!==this.path.substr(-1)&&(this.path+="/"),this.stat.size=0,this[f](),this.end()}[h](){A.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[I](t)})}[I](e){this.linkpath=e,this[f](),this.end()}[g](e){this.type="Link",this.linkpath=a.relative(this.cwd,e),this.stat.size=0,this[f](),this.end()}[u](){if(this.stat.nlink>1){const e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){const t=this.linkCache.get(e);if(0===t.indexOf(this.cwd))return this[g](t)}this.linkCache.set(e,this.absolute)}if(this[f](),0===this.stat.size)return this.end();this[m]()}[m](){A.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[y](t)})}[y](e){const t=512*Math.ceil(this.stat.size/512),r=Math.min(t,this.maxReadSize),i=n.allocUnsafe(r);this[p](e,i,0,i.length,0,this.stat.size,t)}[p](e,t,r,n,i,o,s){A.read(e,t,r,n,i,(A,a)=>{if(A)return this[w](e,e=>this.emit("error",A));this[E](e,t,r,n,i,o,s,a)})}[w](e,t){A.close(e,t)}[E](e,t,r,i,o,s,A,a){if(a<=0&&s>0){const t=new Error("encountered unexpected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a>s){const t=new Error("did not encounter expected EOF");return t.path=this.absolute,t.syscall="read",t.code="EOF",this[w](e,e=>e),this.emit("error",t)}if(a===s)for(let e=a;e<i&&a<A;e++)t[e+r]=0,a++,s++;const c=0===r&&a===t.length?t:t.slice(r,r+a);if(s-=a,A-=a,o+=a,r+=a,this.write(c),!s)return A&&this.write(n.alloc(A)),this.end(),void this[w](e,e=>e);r>=i&&(t=n.allocUnsafe(i),r=0),i=t.length-r,this[p](e,t,r,i,o,s,A)}});const S=Q(class extends i{constructor(e,t){if(super(t=t||{}),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,"Directory"===this.type&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[B](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,"function"==typeof t.onwarn&&this.on("warn",t.onwarn),a.isAbsolute(this.path)&&!this.preservePaths){const e=a.parse(this.path);this.warn("stripping "+e.root+" from absolute path",this.path),this.path=this.path.substr(e.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new s({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),this.header.encode()&&!this.noPax&&super.write(new o({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[B](e){return D(e,"Directory"===this.type)}write(e){const t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(n.alloc(this.blockRemain)),super.end()}});b.Sync=class extends b{constructor(e,t){super(e,t)}[d](){this[C](A.lstatSync(this.absolute))}[h](){this[I](A.readlinkSync(this.absolute))}[m](){this[y](A.openSync(this.absolute,"r"))}[p](e,t,r,n,i,o,s){let a=!0;try{const c=A.readSync(e,t,r,n,i);this[E](e,t,r,n,i,o,s,c),a=!1}finally{if(a)try{this[w](e)}catch(e){}}}[w](e){A.closeSync(e)}},b.Tar=S;const k=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported";e.exports=b},75799:(e,t,r)=>{var n=r(31669),i=r(73975),o=r(77686),s=r(86897).Writable,A=r(86897).PassThrough,a=function(){},c=function(e){return(e&=511)&&512-e},u=function(e,t){this._parent=e,this.offset=t,A.call(this)};n.inherits(u,A),u.prototype.destroy=function(e){this._parent.destroy(e)};var l=function(e){if(!(this instanceof l))return new l(e);s.call(this,e),e=e||{},this._offset=0,this._buffer=i(),this._missing=0,this._partial=!1,this._onparse=a,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},A=function(e){if(t._locked=!1,e)return t.destroy(e);t._stream||n()},h=function(){t._stream=null;var e=c(t._header.size);e?t._parse(e,g):t._parse(512,E),t._locked||n()},g=function(){t._buffer.consume(c(t._header.size)),t._parse(512,E),n()},f=function(){var e=t._header.size;t._paxGlobal=o.decodePax(r.slice(0,e)),r.consume(e),h()},p=function(){var e=t._header.size;t._pax=o.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),h()},d=function(){var n=t._header.size;this._gnuLongPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},C=function(){var n=t._header.size;this._gnuLongLinkPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),h()},E=function(){var i,s=t._offset;try{i=t._header=o.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return r.consume(512),i?"gnu-long-path"===i.type?(t._parse(i.size,d),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,C),void n()):"pax-global-header"===i.type?(t._parse(i.size,f),void n()):"pax-header"===i.type?(t._parse(i.size,p),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e}(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?(t._stream=new u(t,s),t.emit("entry",i,t._stream,A),t._parse(i.size,h),void n()):(t._parse(512,E),void t.emit("entry",i,function(e,t){var r=new u(e,t);return r.end(),r}(t,s),A))):(t._parse(512,E),void n())};this._onheader=E,this._parse(512,E)};n.inherits(l,s),l.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},l.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},l.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=a,this._overflow?this._write(this._overflow,void 0,e):e()}},l.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,i=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.length<o)return this._missing-=e.length,this._overflow=null,n?n.write(e,r):(i.append(e),r());this._cb=r,this._missing=0;var s=null;e.length>o&&(s=e.slice(o),e=e.slice(0,o)),n?n.end(e):i.append(e),this._overflow=s,this._onparse()}},l.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()},e.exports=l},77686:(e,t)=>{var r=Buffer.alloc,n="0".charCodeAt(0),i=parseInt("7777",8),o=function(e,t,r,n){for(;r<n;r++)if(e[r]===t)return r;return n},s=function(e){for(var t=256,r=0;r<148;r++)t+=e[r];for(var n=156;n<512;n++)t+=e[n];return t},A=function(e,t){return(e=e.toString(8)).length>t?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "};var a=function(e,t,r){if(128&(e=e.slice(t,t+r))[t=0])return function(e){var t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}for(var r=!1,n=[],i=e.length-1;i>0;i--){var o=e[i];t?n.push(o):r&&0===o?n.push(0):r?(r=!1,n.push(256-o)):n.push(255-o)}var s=0,A=n.length;for(i=0;i<A;i++)s+=n[i]*Math.pow(256,i);return t?s:-1*s}(e);for(;t<e.length&&32===e[t];)t++;for(var n=(i=o(e,32,t,e.length),s=e.length,A=e.length,"number"!=typeof i?A:(i=~~i)>=s?s:i>=0||(i+=s)>=0?i:0);t<n&&0===e[t];)t++;return n===t?0:parseInt(e.slice(t,n).toString(),8);var i,s,A},c=function(e,t,r,n){return e.slice(t,o(e,0,t,t+r)).toString(n)},u=function(e){var t=Buffer.byteLength(e),r=Math.floor(Math.log(t)/Math.log(10))+1;return t+r>=Math.pow(10,r)&&r++,t+r+e};t.decodeLongPath=function(e,t){return c(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=u(" path="+e.name+"\n")),e.linkname&&(t+=u(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=u(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r<e.length&&32!==e[r];)r++;var n=parseInt(e.slice(0,r).toString(),10);if(!n)return t;var i=e.slice(r+1,n-1).toString(),o=i.indexOf("=");if(-1===o)return t;t[i.slice(0,o)]=i.slice(o+1),e=e.slice(n)}return t},t.encode=function(e){var t=r(512),o=e.name,a="";if(5===e.typeflag&&"/"!==o[o.length-1]&&(o+="/"),Buffer.byteLength(o)!==o.length)return null;for(;Buffer.byteLength(o)>100;){var c=o.indexOf("/");if(-1===c)return null;a+=a?"/"+o.slice(0,c):o.slice(0,c),o=o.slice(c+1)}return Buffer.byteLength(o)>100||Buffer.byteLength(a)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(o),t.write(A(e.mode&i,6),100),t.write(A(e.uid,6),108),t.write(A(e.gid,6),116),t.write(A(e.size,11),124),t.write(A(e.mtime.getTime()/1e3|0,11),136),t[156]=n+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&t.write(e.linkname,157),t.write("ustar\x0000",257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(A(e.devmajor||0,6),329),t.write(A(e.devminor||0,6),337),a&&t.write(a,345),t.write(A(s(t),6),148),t)},t.decode=function(e,t){var r=0===e[156]?0:e[156]-n,i=c(e,0,100,t),o=a(e,100,8),A=a(e,108,8),u=a(e,116,8),l=a(e,124,12),h=a(e,136,12),g=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(r),f=0===e[157]?null:c(e,157,100,t),p=c(e,265,32),d=c(e,297,32),C=a(e,329,8),E=a(e,337,8);e[345]&&(i=c(e,345,155,t)+"/"+i),0===r&&i&&"/"===i[i.length-1]&&(r=5);var I=s(e);if(256===I)return null;if(I!==a(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:i,mode:o,uid:A,gid:u,size:l,mtime:new Date(1e3*h),type:g,linkname:f,uname:p,gname:d,devmajor:C,devminor:E}}},59938:(e,t,r)=>{r(75799),t.P=r(72203)},72203:(e,t,r)=>{var n=r(13302),i=r(17067),o=r(85870),s=Buffer.alloc,A=r(86897).Readable,a=r(86897).Writable,c=r(24304).StringDecoder,u=r(77686),l=parseInt("755",8),h=parseInt("644",8),g=s(1024),f=function(){},p=function(e,t){(t&=511)&&e.push(g.slice(0,512-t))};var d=function(e){a.call(this),this.written=0,this._to=e,this._destroyed=!1};o(d,a),d.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r},d.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var C=function(){a.call(this),this.linkname="",this._decoder=new c("utf-8"),this._destroyed=!1};o(C,a),C.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},C.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var E=function(){a.call(this),this._destroyed=!1};o(E,a),E.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},E.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var I=function(e){if(!(this instanceof I))return new I(e);A.call(this,e),this._drain=f,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};o(I,A),I.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!this._finalized&&!this._destroyed){"function"==typeof t&&(r=t,t=null),r||(r=f);var o=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=function(e){switch(e&n.S_IFMT){case n.S_IFBLK:return"block-device";case n.S_IFCHR:return"character-device";case n.S_IFDIR:return"directory";case n.S_IFIFO:return"fifo";case n.S_IFLNK:return"symlink"}return"file"}(e.mode)),e.mode||(e.mode="directory"===e.type?l:h),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t))return e.size=t.length,this._encode(e),this.push(t),p(o,e.size),process.nextTick(r),new E;if("symlink"===e.type&&!e.linkname){var s=new C;return i(s,(function(t){if(t)return o.destroy(),r(t);e.linkname=s.linkname,o._encode(e),r()})),s}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new E;var A=new d(this);return this._stream=A,i(A,(function(t){return o._stream=null,t?(o.destroy(),r(t)):A.written!==e.size?(o.destroy(),r(new Error("size mismatch"))):(p(o,e.size),o._finalizing&&o.finalize(),void r())})),A}},I.prototype.finalize=function(){this._stream?this._finalizing=!0:this._finalized||(this._finalized=!0,this.push(g),this.push(null))},I.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},I.prototype._encode=function(e){if(!e.pax){var t=u.encode(e);if(t)return void this.push(t)}this._encodePax(e)},I.prototype._encodePax=function(e){var t=u.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(u.encode(r)),this.push(t),p(this,t.length),r.size=e.size,r.type=e.type,this.push(u.encode(r))},I.prototype._read=function(e){var t=this._drain;this._drain=f,t()},e.exports=I},94864:(e,t,r)=>{var n=r(92413);function i(e,t,r){e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var i=!1,o=!1,s=[],A=!1,a=new n;function c(){for(;s.length&&!a.paused;){var e=s.shift();if(null===e)return a.emit("end");a.emit("data",e)}}function u(){a.writable=!1,t.call(a),!a.readable&&a.autoDestroy&&a.destroy()}return a.readable=a.writable=!0,a.paused=!1,a.autoDestroy=!(r&&!1===r.autoDestroy),a.write=function(t){return e.call(this,t),!a.paused},a.queue=a.push=function(e){return A||(null===e&&(A=!0),s.push(e),c()),a},a.on("end",(function(){a.readable=!1,!a.writable&&a.autoDestroy&&process.nextTick((function(){a.destroy()}))})),a.end=function(e){if(!i)return i=!0,arguments.length&&a.write(e),u(),a},a.destroy=function(){if(!o)return o=!0,i=!0,s.length=0,a.writable=a.readable=!1,a.emit("close"),a},a.pause=function(){if(!a.paused)return a.paused=!0,a},a.resume=function(){return a.paused&&(a.paused=!1,a.emit("resume")),c(),a.paused||a.emit("drain"),a},a}e.exports=i,i.through=i},67783:(e,t,r)=>{
-/*!
- * Tmp
- *
- * Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
- *
- * MIT Licensed
- */
-const n=r(35747),i=r(85622),o=r(76417),s=r(82941),A=process.binding("constants"),a=s(),c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=/XXXXXX/,l=(A.O_CREAT||A.fs.O_CREAT)|(A.O_EXCL||A.fs.O_EXCL)|(A.O_RDWR||A.fs.O_RDWR),h=A.EBADF||A.os.errno.EBADF,g=A.ENOENT||A.os.errno.ENOENT,f=[];var p=!1,d=!1;function C(e){var t=[],r=null;try{r=o.randomBytes(e)}catch(t){r=o.pseudoRandomBytes(e)}for(var n=0;n<e;n++)t.push(c[r[n]%c.length]);return t.join("")}function E(e){return void 0===e}function I(e,t){return"function"==typeof e?[t||{},e]:E(e)?[{},t]:[e,t]}function m(e){if(e.name)return i.join(e.dir||a,e.name);if(e.template)return e.template.replace(u,C(6));const t=[e.prefix||"tmp-",process.pid,C(12),e.postfix||""].join("");return i.join(e.dir||a,t)}function y(e,t){var r=I(e,t),i=r[0],o=r[1],s=i.name?1:i.tries||3;return isNaN(s)||s<0?o(new Error("Invalid tries")):i.template&&!i.template.match(u)?o(new Error("Invalid template provided")):void function e(){const t=m(i);n.stat(t,(function(r){if(!r)return s-- >0?e():o(new Error("Could not get a unique tmp filename, max tries reached "+t));o(null,t)}))}()}function w(e){var t=I(e)[0],r=t.name?1:t.tries||3;if(isNaN(r)||r<0)throw new Error("Invalid tries");if(t.template&&!t.template.match(u))throw new Error("Invalid template provided");do{const e=m(t);try{n.statSync(e)}catch(t){return e}}while(r-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function B(e){const t=[e];do{for(var r=t.pop(),o=!1,s=n.readdirSync(r),A=0,a=s.length;A<a;A++){var c=i.join(r,s[A]);n.lstatSync(c).isDirectory()?(o||(o=!0,t.push(r)),t.push(c)):n.unlinkSync(c)}o||n.rmdirSync(r)}while(0!==t.length)}function Q(e,t,r){const i=D((function(e){try{0<=e[0]&&n.closeSync(e[0])}catch(e){if(!(t=e,k(t,-h,"EBADF")||S(e)))throw e}var t;try{n.unlinkSync(e[1])}catch(e){if(!S(e))throw e}}),[t,e]);return r.keep||f.unshift(i),i}function v(e,t){const r=D(t.unsafeCleanup?B:n.rmdirSync.bind(n),e);return t.keep||f.unshift(r),r}function D(e,t){var r=!1;return function n(i){if(!r){const i=f.indexOf(n);i>=0&&f.splice(i,1),r=!0,e(t)}i&&i(null)}}function b(){if(!d||p)for(;f.length;)try{f[0].call(null)}catch(e){}}function S(e){return k(e,-g,"ENOENT")}function k(e,t,r){return e.code==t||e.code==r}const x=process.versions.node.split(".").map((function(e){return parseInt(e,10)}));0===x[0]&&(x[1]<9||9===x[1]&&x[2]<5)&&process.addListener("uncaughtException",(function(e){throw d=!0,b(),e})),process.addListener("exit",(function(e){e&&(d=!0),b()})),e.exports.tmpdir=a,e.exports.dir=function(e,t){var r=I(e,t),i=r[0],o=r[1];y(i,(function(e,t){if(e)return o(e);n.mkdir(t,i.mode||448,(function(e){if(e)return o(e);o(null,t,v(t,i))}))}))},e.exports.dirSync=function(e){var t=I(e)[0];const r=w(t);return n.mkdirSync(r,t.mode||448),{name:r,removeCallback:v(r,t)}},e.exports.file=function(e,t){var r=I(e,t),i=r[0],o=r[1];i.postfix=E(i.postfix)?".tmp":i.postfix,y(i,(function(e,t){if(e)return o(e);n.open(t,l,i.mode||384,(function(e,r){return e?o(e):i.discardDescriptor?n.close(r,(function(e){if(e){try{n.unlinkSync(t)}catch(t){S(t)||(e=t)}return o(e)}o(null,t,void 0,Q(t,-1,i))})):i.detachDescriptor?o(null,t,r,Q(t,-1,i)):void o(null,t,r,Q(t,r,i))}))}))},e.exports.fileSync=function(e){var t=I(e)[0];t.postfix=t.postfix||".tmp";const r=t.discardDescriptor||t.detachDescriptor,i=w(t);var o=n.openSync(i,l,t.mode||384);return t.discardDescriptor&&(n.closeSync(o),o=void 0),{name:i,fd:o,removeCallback:Q(i,r?-1:o,t)}},e.exports.tmpName=y,e.exports.tmpNameSync=w,e.exports.setGracefulCleanup=function(){p=!0}},84615:(e,t,r)=>{"use strict";
-/*!
- * to-regex-range <https://github.com/micromatch/to-regex-range>
- *
- * Copyright (c) 2015-present, Jon Schlinkert.
- * Released under the MIT License.
- */const n=r(59235),i=(e,t,r)=>{if(!1===n(e))throw new TypeError("toRegexRange: expected the first argument to be a number");if(void 0===t||e===t)return String(e);if(!1===n(t))throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};"boolean"==typeof o.strictZeros&&(o.relaxZeros=!1===o.strictZeros);let a=e+":"+t+"="+String(o.relaxZeros)+String(o.shorthand)+String(o.capture)+String(o.wrap);if(i.cache.hasOwnProperty(a))return i.cache[a].result;let c=Math.min(e,t),u=Math.max(e,t);if(1===Math.abs(c-u)){let r=e+"|"+t;return o.capture?`(${r})`:!1===o.wrap?r:`(?:${r})`}let l=f(e)||f(t),h={min:e,max:t,a:c,b:u},g=[],p=[];if(l&&(h.isPadded=l,h.maxLen=String(h.max).length),c<0){p=s(u<0?Math.abs(u):1,Math.abs(c),h,o),c=h.a=0}return u>=0&&(g=s(c,u,h,o)),h.negatives=p,h.positives=g,h.result=function(e,t,r){let n=A(e,t,"-",!1,r)||[],i=A(t,e,"",!1,r)||[],o=A(e,t,"-?",!0,r)||[];return n.concat(o).concat(i).join("|")}(p,g,o),!0===o.capture?h.result=`(${h.result})`:!1!==o.wrap&&g.length+p.length>1&&(h.result=`(?:${h.result})`),i.cache[a]=h,h.result};function o(e,t,r){if(e===t)return{pattern:e,count:[],digits:0};let n=function(e,t){let r=[];for(let n=0;n<e.length;n++)r.push([e[n],t[n]]);return r}(e,t),i=n.length,o="",s=0;for(let e=0;e<i;e++){let[t,i]=n[e];t===i?o+=t:"0"!==t||"9"!==i?o+=g(t,i,r):s++}return s&&(o+=!0===r.shorthand?"\\d":"[0-9]"),{pattern:o,count:[s],digits:i}}function s(e,t,r,n){let i,s=function(e,t){let r=1,n=1,i=u(e,r),o=new Set([t]);for(;e<=i&&i<=t;)o.add(i),r+=1,i=u(e,r);for(i=l(t+1,n)-1;e<i&&i<=t;)o.add(i),n+=1,i=l(t+1,n)-1;return o=[...o],o.sort(a),o}(e,t),A=[],c=e;for(let e=0;e<s.length;e++){let t=s[e],a=o(String(c),String(t),n),u="";r.isPadded||!i||i.pattern!==a.pattern?(r.isPadded&&(u=p(t,r,n)),a.string=u+a.pattern+h(a.count),A.push(a),c=t+1,i=a):(i.count.length>1&&i.count.pop(),i.count.push(a.count[0]),i.string=i.pattern+h(i.count),c=t+1)}return A}function A(e,t,r,n,i){let o=[];for(let i of e){let{string:e}=i;n||c(t,"string",e)||o.push(r+e),n&&c(t,"string",e)&&o.push(r+e)}return o}function a(e,t){return e>t?1:t>e?-1:0}function c(e,t,r){return e.some(e=>e[t]===r)}function u(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function l(e,t){return e-e%Math.pow(10,t)}function h(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function g(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function f(e){return/^-?(0+)\d/.test(e)}function p(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),i=!1!==r.relaxZeros;switch(n){case 0:return"";case 1:return i?"0?":"0";case 2:return i?"0{0,2}":"00";default:return i?`0{0,${n}}`:`0{${n}}`}}i.cache={},i.clearCache=()=>i.cache={},e.exports=i},75158:e=>{function t(e,t){var r=e.length,n=new Array(r),i={},o=r,s=function(e){for(var t=new Map,r=0,n=e.length;r<n;r++){var i=e[r];t.has(i[0])||t.set(i[0],new Set),t.has(i[1])||t.set(i[1],new Set),t.get(i[0]).add(i[1])}return t}(t),A=function(e){for(var t=new Map,r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}(e);for(t.forEach((function(e){if(!A.has(e[0])||!A.has(e[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")}));o--;)i[o]||a(e[o],o,new Set);return n;function a(e,t,o){if(o.has(e)){var c;try{c=", node was:"+JSON.stringify(e)}catch(e){c=""}throw new Error("Cyclic dependency"+c)}if(!A.has(e))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(e));if(!i[t]){i[t]=!0;var u=s.get(e)||new Set;if(t=(u=Array.from(u)).length){o.add(e);do{var l=u[--t];a(l,A.get(l),o)}while(t);o.delete(e)}n[--r]=e}}}e.exports=function(e){return t(function(e){for(var t=new Set,r=0,n=e.length;r<n;r++){var i=e[r];t.add(i[0]),t.add(i[1])}return Array.from(t)}(e),e)},e.exports.array=t},94682:function(e){e.exports=function(){function e(t,r,n,i,o,s,A){var a,c,u="",l=0,h=i.slice(0);if(h.push([r,n])&&i.length>0&&(i.forEach((function(e,t){t>0&&(u+=(e[1]?" ":"│")+"  "),c||e[0]!==r||(c=!0)})),u+=function(e,t){var r=t?"└":"├";return r+=e?"─ ":"──┐"}(t,n)+t,o&&("object"!=typeof r||r instanceof Date)&&(u+=": "+r),c&&(u+=" (circular ref.)"),A(u)),!c&&"object"==typeof r){var g=function(e,t){var r=[];for(var n in e)e.hasOwnProperty(n)&&(t&&"function"==typeof e[n]||r.push(n));return r}(r,s);g.forEach((function(t){a=++l===g.length,e(t,r[t],a,h,o,s,A)}))}}var t={asLines:function(t,r,n,i){e(".",t,!1,[],r,"function"!=typeof n&&n,i||n)},asTree:function(t,r,n){var i="";return e(".",t,!1,[],r,n,(function(e){i+=e+"\n"})),i}};return t}()},36370:(e,t,r)=>{"use strict";r.d(t,{ZT:()=>i,gn:()=>o});
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-var n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function i(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function o(e,t,r,n){var i,o=arguments.length,s=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(i=e[A])&&(s=(o<3?i(s):o>3?i(t,r,s):i(t,r))||s);return o>3&&s&&Object.defineProperty(t,r,s),s}},98161:(e,t,r)=>{e.exports=r(69876)},69876:(e,t,r)=>{"use strict";r(11631);var n,i=r(4016),o=r(98605),s=r(57211),A=r(28614),a=(r(42357),r(31669));function c(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||o.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,r,n,i){for(var o=l(r,n,i),s=0,A=t.requests.length;s<A;++s){var a=t.requests[s];if(a.host===o.host&&a.port===o.port)return t.requests.splice(s,1),void a.request.onSocket(e)}e.destroy(),t.removeSocket(e)}))}function u(e,t){var r=this;c.prototype.createSocket.call(r,e,(function(n){var o=e.request.getHeader("host"),s=h({},r.options,{socket:n,servername:o?o.replace(/:.*$/,""):e.host}),A=i.connect(0,s);r.sockets[r.sockets.indexOf(n)]=A,t(A)}))}function l(e,t,r){return"string"==typeof e?{host:e,port:t,localAddress:r}:e}function h(e){for(var t=1,r=arguments.length;t<r;++t){var n=arguments[t];if("object"==typeof n)for(var i=Object.keys(n),o=0,s=i.length;o<s;++o){var A=i[o];void 0!==n[A]&&(e[A]=n[A])}}return e}t.httpOverHttp=function(e){var t=new c(e);return t.request=o.request,t},t.httpsOverHttp=function(e){var t=new c(e);return t.request=o.request,t.createSocket=u,t.defaultPort=443,t},t.httpOverHttps=function(e){var t=new c(e);return t.request=s.request,t},t.httpsOverHttps=function(e){var t=new c(e);return t.request=s.request,t.createSocket=u,t.defaultPort=443,t},a.inherits(c,A.EventEmitter),c.prototype.addRequest=function(e,t,r,n){var i=this,o=h({request:e},i.options,l(t,r,n));i.sockets.length>=this.maxSockets?i.requests.push(o):i.createSocket(o,(function(t){function r(){i.emit("free",t,o)}function n(e){i.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)}))},c.prototype.createSocket=function(e,t){var r=this,i={};r.sockets.push(i);var o=h({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(o.localAddress=e.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),n("making CONNECT request");var s=r.request(o);function A(o,A,a){var c;return s.removeAllListeners(),A.removeAllListeners(),200!==o.statusCode?(n("tunneling socket could not be established, statusCode=%d",o.statusCode),A.destroy(),(c=new Error("tunneling socket could not be established, statusCode="+o.statusCode)).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):a.length>0?(n("got illegal response body from proxy"),A.destroy(),(c=new Error("got illegal response body from proxy")).code="ECONNRESET",e.request.emit("error",c),void r.removeSocket(i)):(n("tunneling connection has established"),r.sockets[r.sockets.indexOf(i)]=A,t(A))}s.useChunkedEncodingByDefault=!1,s.once("response",(function(e){e.upgrade=!0})),s.once("upgrade",(function(e,t,r){process.nextTick((function(){A(e,t,r)}))})),s.once("connect",A),s.once("error",(function(t){s.removeAllListeners(),n("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var o=new Error("tunneling socket could not be established, cause="+t.message);o.code="ECONNRESET",e.request.emit("error",o),r.removeSocket(i)})),s.end()},c.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(-1!==t){this.sockets.splice(t,1);var r=this.requests.shift();r&&this.createSocket(r,(function(e){r.request.onSocket(e)}))}},n=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=n},5817:(e,t,r)=>{var n;e=r.nmd(e),function(){var r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},i=r._,o=Array.prototype,s=Object.prototype,A="undefined"!=typeof Symbol?Symbol.prototype:null,a=o.push,c=o.slice,u=s.toString,l=s.hasOwnProperty,h=Array.isArray,g=Object.keys,f=Object.create,p=function(){},d=function(e){return e instanceof d?e:this instanceof d?void(this._wrapped=e):new d(e)};t.nodeType?r._=d:(!e.nodeType&&e.exports&&(t=e.exports=d),t._=d),d.VERSION="1.9.1";var C,E=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}},I=function(e,t,r){return d.iteratee!==C?d.iteratee(e,t):null==e?d.identity:d.isFunction(e)?E(e,t,r):d.isObject(e)&&!d.isArray(e)?d.matcher(e):d.property(e)};d.iteratee=C=function(e,t){return I(e,t,1/0)};var m=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i<r;i++)n[i]=arguments[i+t];switch(t){case 0:return e.call(this,n);case 1:return e.call(this,arguments[0],n);case 2:return e.call(this,arguments[0],arguments[1],n)}var o=Array(t+1);for(i=0;i<t;i++)o[i]=arguments[i];return o[t]=n,e.apply(this,o)}},y=function(e){if(!d.isObject(e))return{};if(f)return f(e);p.prototype=e;var t=new p;return p.prototype=null,t},w=function(e){return function(t){return null==t?void 0:t[e]}},B=function(e,t){return null!=e&&l.call(e,t)},Q=function(e,t){for(var r=t.length,n=0;n<r;n++){if(null==e)return;e=e[t[n]]}return r?e:void 0},v=Math.pow(2,53)-1,D=w("length"),b=function(e){var t=D(e);return"number"==typeof t&&t>=0&&t<=v};d.each=d.forEach=function(e,t,r){var n,i;if(t=E(t,r),b(e))for(n=0,i=e.length;n<i;n++)t(e[n],n,e);else{var o=d.keys(e);for(n=0,i=o.length;n<i;n++)t(e[o[n]],o[n],e)}return e},d.map=d.collect=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=Array(i),s=0;s<i;s++){var A=n?n[s]:s;o[s]=t(e[A],A,e)}return o};var S=function(e){var t=function(t,r,n,i){var o=!b(t)&&d.keys(t),s=(o||t).length,A=e>0?0:s-1;for(i||(n=t[o?o[A]:A],A+=e);A>=0&&A<s;A+=e){var a=o?o[A]:A;n=r(n,t[a],a,t)}return n};return function(e,r,n,i){var o=arguments.length>=3;return t(e,E(r,i,4),n,o)}};d.reduce=d.foldl=d.inject=S(1),d.reduceRight=d.foldr=S(-1),d.find=d.detect=function(e,t,r){var n=(b(e)?d.findIndex:d.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},d.filter=d.select=function(e,t,r){var n=[];return t=I(t,r),d.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},d.reject=function(e,t,r){return d.filter(e,d.negate(I(t)),r)},d.every=d.all=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(!t(e[s],s,e))return!1}return!0},d.some=d.any=function(e,t,r){t=I(t,r);for(var n=!b(e)&&d.keys(e),i=(n||e).length,o=0;o<i;o++){var s=n?n[o]:o;if(t(e[s],s,e))return!0}return!1},d.contains=d.includes=d.include=function(e,t,r,n){return b(e)||(e=d.values(e)),("number"!=typeof r||n)&&(r=0),d.indexOf(e,t,r)>=0},d.invoke=m((function(e,t,r){var n,i;return d.isFunction(t)?i=t:d.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),d.map(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=Q(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))})),d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,r){var n,i,o=-1/0,s=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;A<a;A++)null!=(n=e[A])&&n>o&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&o===-1/0)&&(o=e,s=i)}));return o},d.min=function(e,t,r){var n,i,o=1/0,s=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var A=0,a=(e=b(e)?e:d.values(e)).length;A<a;A++)null!=(n=e[A])&&n<o&&(o=n);else t=I(t,r),d.each(e,(function(e,r,n){((i=t(e,r,n))<s||i===1/0&&o===1/0)&&(o=e,s=i)}));return o},d.shuffle=function(e){return d.sample(e,1/0)},d.sample=function(e,t,r){if(null==t||r)return b(e)||(e=d.values(e)),e[d.random(e.length-1)];var n=b(e)?d.clone(e):d.values(e),i=D(n);t=Math.max(Math.min(t,i),0);for(var o=i-1,s=0;s<t;s++){var A=d.random(s,o),a=n[s];n[s]=n[A],n[A]=a}return n.slice(0,t)},d.sortBy=function(e,t,r){var n=0;return t=I(t,r),d.pluck(d.map(e,(function(e,r,i){return{value:e,index:n++,criteria:t(e,r,i)}})).sort((function(e,t){var r=e.criteria,n=t.criteria;if(r!==n){if(r>n||void 0===r)return 1;if(r<n||void 0===n)return-1}return e.index-t.index})),"value")};var k=function(e,t){return function(r,n,i){var o=t?[[],[]]:{};return n=I(n,i),d.each(r,(function(t,i){var s=n(t,i,r);e(o,t,s)})),o}};d.groupBy=k((function(e,t,r){B(e,r)?e[r].push(t):e[r]=[t]})),d.indexBy=k((function(e,t,r){e[r]=t})),d.countBy=k((function(e,t,r){B(e,r)?e[r]++:e[r]=1}));var x=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;d.toArray=function(e){return e?d.isArray(e)?c.call(e):d.isString(e)?e.match(x):b(e)?d.map(e,d.identity):d.values(e):[]},d.size=function(e){return null==e?0:b(e)?e.length:d.keys(e).length},d.partition=k((function(e,t,r){e[r?0:1].push(t)}),!0),d.first=d.head=d.take=function(e,t,r){return null==e||e.length<1?null==t?void 0:[]:null==t||r?e[0]:d.initial(e,e.length-t)},d.initial=function(e,t,r){return c.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))},d.last=function(e,t,r){return null==e||e.length<1?null==t?void 0:[]:null==t||r?e[e.length-1]:d.rest(e,Math.max(0,e.length-t))},d.rest=d.tail=d.drop=function(e,t,r){return c.call(e,null==t||r?1:t)},d.compact=function(e){return d.filter(e,Boolean)};var F=function(e,t,r,n){for(var i=(n=n||[]).length,o=0,s=D(e);o<s;o++){var A=e[o];if(b(A)&&(d.isArray(A)||d.isArguments(A)))if(t)for(var a=0,c=A.length;a<c;)n[i++]=A[a++];else F(A,t,r,n),i=n.length;else r||(n[i++]=A)}return n};d.flatten=function(e,t){return F(e,t,!1)},d.without=m((function(e,t){return d.difference(e,t)})),d.uniq=d.unique=function(e,t,r,n){d.isBoolean(t)||(n=r,r=t,t=!1),null!=r&&(r=I(r,n));for(var i=[],o=[],s=0,A=D(e);s<A;s++){var a=e[s],c=r?r(a,s,e):a;t&&!r?(s&&o===c||i.push(a),o=c):r?d.contains(o,c)||(o.push(c),i.push(a)):d.contains(i,a)||i.push(a)}return i},d.union=m((function(e){return d.uniq(F(e,!0,!0))})),d.intersection=function(e){for(var t=[],r=arguments.length,n=0,i=D(e);n<i;n++){var o=e[n];if(!d.contains(t,o)){var s;for(s=1;s<r&&d.contains(arguments[s],o);s++);s===r&&t.push(o)}}return t},d.difference=m((function(e,t){return t=F(t,!0,!0),d.filter(e,(function(e){return!d.contains(t,e)}))})),d.unzip=function(e){for(var t=e&&d.max(e,D).length||0,r=Array(t),n=0;n<t;n++)r[n]=d.pluck(e,n);return r},d.zip=m(d.unzip),d.object=function(e,t){for(var r={},n=0,i=D(e);n<i;n++)t?r[e[n]]=t[n]:r[e[n][0]]=e[n][1];return r};var M=function(e){return function(t,r,n){r=I(r,n);for(var i=D(t),o=e>0?0:i-1;o>=0&&o<i;o+=e)if(r(t[o],o,t))return o;return-1}};d.findIndex=M(1),d.findLastIndex=M(-1),d.sortedIndex=function(e,t,r,n){for(var i=(r=I(r,n,1))(t),o=0,s=D(e);o<s;){var A=Math.floor((o+s)/2);r(e[A])<i?o=A+1:s=A}return o};var N=function(e,t,r){return function(n,i,o){var s=0,A=D(n);if("number"==typeof o)e>0?s=o>=0?o:Math.max(o+A,s):A=o>=0?Math.min(o+1,A):o+A+1;else if(r&&o&&A)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(c.call(n,s,A),d.isNaN))>=0?o+s:-1;for(o=e>0?s:A-1;o>=0&&o<A;o+=e)if(n[o]===i)return o;return-1}};d.indexOf=N(1,d.findIndex,d.sortedIndex),d.lastIndexOf=N(-1,d.findLastIndex),d.range=function(e,t,r){null==t&&(t=e||0,e=0),r||(r=t<e?-1:1);for(var n=Math.max(Math.ceil((t-e)/r),0),i=Array(n),o=0;o<n;o++,e+=r)i[o]=e;return i},d.chunk=function(e,t){if(null==t||t<1)return[];for(var r=[],n=0,i=e.length;n<i;)r.push(c.call(e,n,n+=t));return r};var R=function(e,t,r,n,i){if(!(n instanceof t))return e.apply(r,i);var o=y(e.prototype),s=e.apply(o,i);return d.isObject(s)?s:o};d.bind=m((function(e,t,r){if(!d.isFunction(e))throw new TypeError("Bind must be called on a function");var n=m((function(i){return R(e,n,t,this,r.concat(i))}));return n})),d.partial=m((function(e,t){var r=d.partial.placeholder,n=function(){for(var i=0,o=t.length,s=Array(o),A=0;A<o;A++)s[A]=t[A]===r?arguments[i++]:t[A];for(;i<arguments.length;)s.push(arguments[i++]);return R(e,n,this,this,s)};return n})),d.partial.placeholder=d,d.bindAll=m((function(e,t){var r=(t=F(t,!1,!1)).length;if(r<1)throw new Error("bindAll must be passed function names");for(;r--;){var n=t[r];e[n]=d.bind(e[n],e)}})),d.memoize=function(e,t){var r=function(n){var i=r.cache,o=""+(t?t.apply(this,arguments):n);return B(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return r.cache={},r},d.delay=m((function(e,t,r){return setTimeout((function(){return e.apply(null,r)}),t)})),d.defer=d.partial(d.delay,d,1),d.throttle=function(e,t,r){var n,i,o,s,A=0;r||(r={});var a=function(){A=!1===r.leading?0:d.now(),n=null,s=e.apply(i,o),n||(i=o=null)},c=function(){var c=d.now();A||!1!==r.leading||(A=c);var u=t-(c-A);return i=this,o=arguments,u<=0||u>t?(n&&(clearTimeout(n),n=null),A=c,s=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(a,u)),s};return c.cancel=function(){clearTimeout(n),A=0,n=i=o=null},c},d.debounce=function(e,t,r){var n,i,o=function(t,r){n=null,r&&(i=e.apply(t,r))},s=m((function(s){if(n&&clearTimeout(n),r){var A=!n;n=setTimeout(o,t),A&&(i=e.apply(this,s))}else n=d.delay(o,t,this,s);return i}));return s.cancel=function(){clearTimeout(n),n=null},s},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},d.once=d.partial(d.before,2),d.restArguments=m;var K=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],T=function(e,t){var r=L.length,n=e.constructor,i=d.isFunction(n)&&n.prototype||s,o="constructor";for(B(e,o)&&!d.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!d.contains(t,o)&&t.push(o)};d.keys=function(e){if(!d.isObject(e))return[];if(g)return g(e);var t=[];for(var r in e)B(e,r)&&t.push(r);return K&&T(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var r in e)t.push(r);return K&&T(e,t),t},d.values=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=e[t[i]];return n},d.mapObject=function(e,t,r){t=I(t,r);for(var n=d.keys(e),i=n.length,o={},s=0;s<i;s++){var A=n[s];o[A]=t(e[A],A,e)}return o},d.pairs=function(e){for(var t=d.keys(e),r=t.length,n=Array(r),i=0;i<r;i++)n[i]=[t[i],e[t[i]]];return n},d.invert=function(e){for(var t={},r=d.keys(e),n=0,i=r.length;n<i;n++)t[e[r[n]]]=r[n];return t},d.functions=d.methods=function(e){var t=[];for(var r in e)d.isFunction(e[r])&&t.push(r);return t.sort()};var P=function(e,t){return function(r){var n=arguments.length;if(t&&(r=Object(r)),n<2||null==r)return r;for(var i=1;i<n;i++)for(var o=arguments[i],s=e(o),A=s.length,a=0;a<A;a++){var c=s[a];t&&void 0!==r[c]||(r[c]=o[c])}return r}};d.extend=P(d.allKeys),d.extendOwn=d.assign=P(d.keys),d.findKey=function(e,t,r){t=I(t,r);for(var n,i=d.keys(e),o=0,s=i.length;o<s;o++)if(t(e[n=i[o]],n,e))return n};var U,_,O=function(e,t,r){return t in r};d.pick=m((function(e,t){var r={},n=t[0];if(null==e)return r;d.isFunction(n)?(t.length>1&&(n=E(n,t[1])),t=d.allKeys(e)):(n=O,t=F(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i<o;i++){var s=t[i],A=e[s];n(A,s,e)&&(r[s]=A)}return r})),d.omit=m((function(e,t){var r,n=t[0];return d.isFunction(n)?(n=d.negate(n),t.length>1&&(r=t[1])):(t=d.map(F(t,!1,!1),String),n=function(e,r){return!d.contains(t,r)}),d.pick(e,n,r)})),d.defaults=P(d.allKeys,!0),d.create=function(e,t){var r=y(e);return t&&d.extendOwn(r,t),r},d.clone=function(e){return d.isObject(e)?d.isArray(e)?e.slice():d.extend({},e):e},d.tap=function(e,t){return t(e),e},d.isMatch=function(e,t){var r=d.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o<n;o++){var s=r[o];if(t[s]!==i[s]||!(s in i))return!1}return!0},U=function(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&_(e,t,r,n)},_=function(e,t,r,n){e instanceof d&&(e=e._wrapped),t instanceof d&&(t=t._wrapped);var i=u.call(e);if(i!==u.call(t))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return A.valueOf.call(e)===A.valueOf.call(t)}var o="[object Array]"===i;if(!o){if("object"!=typeof e||"object"!=typeof t)return!1;var s=e.constructor,a=t.constructor;if(s!==a&&!(d.isFunction(s)&&s instanceof s&&d.isFunction(a)&&a instanceof a)&&"constructor"in e&&"constructor"in t)return!1}n=n||[];for(var c=(r=r||[]).length;c--;)if(r[c]===e)return n[c]===t;if(r.push(e),n.push(t),o){if((c=e.length)!==t.length)return!1;for(;c--;)if(!U(e[c],t[c],r,n))return!1}else{var l,h=d.keys(e);if(c=h.length,d.keys(t).length!==c)return!1;for(;c--;)if(l=h[c],!B(t,l)||!U(e[l],t[l],r,n))return!1}return r.pop(),n.pop(),!0},d.isEqual=function(e,t){return U(e,t)},d.isEmpty=function(e){return null==e||(b(e)&&(d.isArray(e)||d.isString(e)||d.isArguments(e))?0===e.length:0===d.keys(e).length)},d.isElement=function(e){return!(!e||1!==e.nodeType)},d.isArray=h||function(e){return"[object Array]"===u.call(e)},d.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},d.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],(function(e){d["is"+e]=function(t){return u.call(t)==="[object "+e+"]"}})),d.isArguments(arguments)||(d.isArguments=function(e){return B(e,"callee")});var j=r.document&&r.document.childNodes;"object"!=typeof Int8Array&&"function"!=typeof j&&(d.isFunction=function(e){return"function"==typeof e||!1}),d.isFinite=function(e){return!d.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},d.isNaN=function(e){return d.isNumber(e)&&isNaN(e)},d.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===u.call(e)},d.isNull=function(e){return null===e},d.isUndefined=function(e){return void 0===e},d.has=function(e,t){if(!d.isArray(t))return B(e,t);for(var r=t.length,n=0;n<r;n++){var i=t[n];if(null==e||!l.call(e,i))return!1;e=e[i]}return!!r},d.noConflict=function(){return r._=i,this},d.identity=function(e){return e},d.constant=function(e){return function(){return e}},d.noop=function(){},d.property=function(e){return d.isArray(e)?function(t){return Q(t,e)}:w(e)},d.propertyOf=function(e){return null==e?function(){}:function(t){return d.isArray(t)?Q(e,t):e[t]}},d.matcher=d.matches=function(e){return e=d.extendOwn({},e),function(t){return d.isMatch(t,e)}},d.times=function(e,t,r){var n=Array(Math.max(0,e));t=E(t,r,1);for(var i=0;i<e;i++)n[i]=t(i);return n},d.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},d.now=Date.now||function(){return(new Date).getTime()};var Y={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},G=d.invert(Y),J=function(e){var t=function(t){return e[t]},r="(?:"+d.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};d.escape=J(Y),d.unescape=J(G),d.result=function(e,t,r){d.isArray(t)||(t=[t]);var n=t.length;if(!n)return d.isFunction(r)?r.call(e):r;for(var i=0;i<n;i++){var o=null==e?void 0:e[t[i]];void 0===o&&(o=r,i=n),e=d.isFunction(o)?o.call(e):o}return e};var H=0;d.uniqueId=function(e){var t=++H+"";return e?e+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,V=function(e){return"\\"+z[e]};d.template=function(e,t,r){!t&&r&&(t=r),t=d.defaults({},t,d.templateSettings);var n,i=RegExp([(t.escape||q).source,(t.interpolate||q).source,(t.evaluate||q).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,(function(t,r,n,i,A){return s+=e.slice(o,A).replace(W,V),o=A+t.length,r?s+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?s+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(s+="';\n"+i+"\n__p+='"),t})),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{n=new Function(t.variable||"obj","_",s)}catch(e){throw e.source=s,e}var A=function(e){return n.call(this,e,d)},a=t.variable||"obj";return A.source="function("+a+"){\n"+s+"}",A},d.chain=function(e){var t=d(e);return t._chain=!0,t};var X=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){return d.each(d.functions(e),(function(t){var r=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return a.apply(e,arguments),X(this,r.apply(d,e))}})),d},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];d.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],X(this,r)}})),d.each(["concat","join","slice"],(function(e){var t=o[e];d.prototype[e]=function(){return X(this,t.apply(this._wrapped,arguments))}})),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return String(this._wrapped)},void 0===(n=function(){return d}.apply(t,[]))||(e.exports=n)}()},73212:(e,t,r)=>{e.exports=r(31669).deprecate},87945:(e,t,r)=>{const n="win32"===process.platform||"cygwin"===process.env.OSTYPE||"msys"===process.env.OSTYPE,i=r(85622),o=n?";":":",s=r(64151),A=e=>Object.assign(new Error("not found: "+e),{code:"ENOENT"}),a=(e,t)=>{const r=t.colon||o,i=e.match(/\//)||n&&e.match(/\\/)?[""]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],s=n?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",A=n?s.split(r):[""];return n&&-1!==e.indexOf(".")&&""!==A[0]&&A.unshift(""),{pathEnv:i,pathExt:A,pathExtExe:s}},c=(e,t,r)=>{"function"==typeof t&&(r=t,t={}),t||(t={});const{pathEnv:n,pathExt:o,pathExtExe:c}=a(e,t),u=[],l=r=>new Promise((o,s)=>{if(r===n.length)return t.all&&u.length?o(u):s(A(e));const a=n[r],c=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(c,e),g=!c&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;o(h(g,r,0))}),h=(e,r,n)=>new Promise((i,A)=>{if(n===o.length)return i(l(r+1));const a=o[n];s(e+a,{pathExt:c},(o,s)=>{if(!o&&s){if(!t.all)return i(e+a);u.push(e+a)}return i(h(e,r,n+1))})});return r?l(0).then(e=>r(null,e),r):l(0)};e.exports=c,c.sync=(e,t)=>{t=t||{};const{pathEnv:r,pathExt:n,pathExtExe:o}=a(e,t),c=[];for(let A=0;A<r.length;A++){const a=r[A],u=/^".*"$/.test(a)?a.slice(1,-1):a,l=i.join(u,e),h=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+l:l;for(let e=0;e<n.length;e++){const r=h+n[e];try{if(s.sync(r,{pathExt:o})){if(!t.all)return r;c.push(r)}}catch(e){}}}if(t.all&&c.length)return c;if(t.nothrow)return null;throw A(e)}},98984:e=>{e.exports=function e(t,r){if(t&&r)return e(t)(r);if("function"!=typeof t)throw new TypeError("need wrapper function");return Object.keys(t).forEach((function(e){n[e]=t[e]})),n;function n(){for(var e=new Array(arguments.length),r=0;r<e.length;r++)e[r]=arguments[r];var n=t.apply(this,e),i=e[e.length-1];return"function"==typeof n&&n!==i&&Object.keys(i).forEach((function(e){n[e]=i[e]})),n}}},99770:e=>{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},80800:(e,t,r)=>{"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}function i(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function o(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,r,n){if(!(this instanceof s))return new s(e,t,r,n);this.list=n,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}e.exports=n,n.Node=s,n.create=n,n.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null},n.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},n.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},n.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},n.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},n.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},n.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},n.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,n=0;null!==r;n++)e.call(t,r.value,n,this),r=r.next},n.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,n=this.length-1;null!==r;n--)e.call(t,r.value,n,this),r=r.prev},n.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&t<e;t++)r=r.next;if(t===e&&null!==r)return r.value},n.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&t<e;t++)r=r.prev;if(t===e&&null!==r)return r.value},n.prototype.map=function(e,t){t=t||this;for(var r=new n,i=this.head;null!==i;)r.push(e.call(t,i.value,this)),i=i.next;return r},n.prototype.mapReverse=function(e,t){t=t||this;for(var r=new n,i=this.tail;null!==i;)r.push(e.call(t,i.value,this)),i=i.prev;return r},n.prototype.reduce=function(e,t){var r,n=this.head;if(arguments.length>1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var i=0;null!==n;i++)r=e(r,n.value,i),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var i=this.length-1;null!==n;i--)r=e(r,n.value,i),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,o=this.head;null!==o&&i<e;i++)o=o.next;for(;null!==o&&i<t;i++,o=o.next)r.push(o.value);return r},n.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,o=this.tail;null!==o&&i>t;i--)o=o.prev;for(;null!==o&&i>e;i--,o=o.prev)r.push(o.value);return r},n.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;null!==r;r=r.prev){var n=r.prev;r.prev=r.next,r.next=n}return this.head=t,this.tail=e,this};try{r(99770)(n)}catch(e){}},94916:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(15215)),o=n(r(11050)),s=function(){function e(e,t){if(this.refs=e,"function"!=typeof t){if(!(0,i.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");var r=t.is,n=t.then,o=t.otherwise,s="function"==typeof r?r:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.every((function(e){return e===r}))};this.fn=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var i=t.pop(),A=t.pop(),a=s.apply(void 0,t)?n:o;if(a)return"function"==typeof a?a(A):A.concat(a.resolve(i))}}else this.fn=t}return e.prototype.resolve=function(e,t){var r=this.refs.map((function(e){return e.getValue(t)})),n=this.fn.apply(e,r.concat(e,t));if(void 0===n||n===e)return e;if(!(0,o.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)},e}();t.default=s,e.exports=t.default},6856:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(11050)),o=function(){function e(e){this._resolve=function(t,r){var n=e(t,r);if(!(0,i.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(r)}}var t=e.prototype;return t.resolve=function(e){return this._resolve(e.value,e)},t.cast=function(e,t){return this._resolve(e,t).cast(e,t)},t.validate=function(e,t){return this._resolve(e,t).validate(e,t)},t.validateSync=function(e,t){return this._resolve(e,t).validateSync(e,t)},t.validateAt=function(e,t,r){return this._resolve(t,r).validateAt(e,t,r)},t.validateSyncAt=function(e,t,r){return this._resolve(t,r).validateSyncAt(e,t,r)},e}();o.prototype.__isYupSchema__=!0;var s=o;t.default=s,e.exports=t.default},95814:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(72912)),o=r(79588),s="$",A=".",a=function(){function e(e,t){if(void 0===t&&(t={}),"string"!=typeof e)throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),""===e)throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===s,this.isValue=this.key[0]===A,this.isSibling=!this.isContext&&!this.isValue;var r=this.isContext?s:this.isValue?A:"";this.path=this.key.slice(r.length),this.getter=this.path&&(0,o.getter)(this.path,!0),this.map=t.map}var t=e.prototype;return t.getValue=function(e){var t=this.isContext?e.context:this.isValue?e.value:e.parent;return this.getter&&(t=this.getter(t||{})),this.map&&(t=this.map(t)),t},t.cast=function(e,t){return this.getValue((0,i.default)({},t,{value:e}))},t.resolve=function(){return this},t.describe=function(){return{type:"ref",key:this.key}},t.toString=function(){return"Ref("+this.key+")"},e.isRef=function(e){return e&&e.__isYupRef},e}();t.default=a,a.prototype.__isYupRef=!0,e.exports=t.default},40828:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=A;var i=n(r(21043)),o=/\$\{\s*(\w+)\s*\}/g,s=function(e){return function(t){return e.replace(o,(function(e,r){return(0,i.default)(t[r])}))}};function A(e,t,r,n){var i=this;this.name="ValidationError",this.value=t,this.path=r,this.type=n,this.errors=[],this.inner=[],e&&[].concat(e).forEach((function(e){i.errors=i.errors.concat(e.errors||e),e.inner&&(i.inner=i.inner.concat(e.inner.length?e.inner:e))})),this.message=this.errors.length>1?this.errors.length+" errors occurred":this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,A)}A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A.isError=function(e){return e&&"ValidationError"===e.name},A.formatError=function(e,t){"string"==typeof e&&(e=s(e));var r=function(t){return t.path=t.label||t.path||"this","function"==typeof e?e(t):e};return 1===arguments.length?r:r(t)},e.exports=t.default},18830:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=void 0;var o=i(r(72912)),s=i(r(62407)),A=i(r(31490)),a=i(r(71665)),c=i(r(11050)),u=i(r(7045)),l=i(r(21043)),h=i(r(16434)),g=r(63802),f=n(r(80180));function p(){var e=(0,s.default)(["","[","]"]);return p=function(){return e},e}var d=C;function C(e){var t=this;if(!(this instanceof C))return new C(e);h.default.call(this,{type:"array"}),this._subType=void 0,this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.of(e)}))}t.default=d,(0,A.default)(C,h.default,{_typeCheck:function(e){return Array.isArray(e)},_cast:function(e,t){var r=this,n=h.default.prototype._cast.call(this,e,t);if(!this._typeCheck(n)||!this._subType)return n;var i=!1,o=n.map((function(e){var n=r._subType.cast(e,t);return n!==e&&(i=!0),n}));return i?o:n},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=[],i=t.sync,s=t.path,A=this._subType,a=this._option("abortEarly",t),c=this._option("recursive",t),l=null!=t.originalValue?t.originalValue:e;return h.default.prototype._validate.call(this,e,t).catch((0,f.propagateErrors)(a,n)).then((function(e){if(!c||!A||!r._typeCheck(e)){if(n.length)throw n[0];return e}l=l||e;var h=e.map((function(r,n){var i=(0,u.default)(p(),t.path,n),s=(0,o.default)({},t,{path:i,strict:!0,parent:e,originalValue:l[n]});return!A.validate||A.validate(r,s)}));return(0,f.default)({sync:i,path:s,value:e,errors:n,endEarly:a,validations:h})}))},_isPresent:function(e){return h.default.prototype._cast.call(this,e)&&e.length>0},of:function(e){var t=this.clone();if(!1!==e&&!(0,c.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema, or `false` to negate a current sub-schema. not: "+(0,l.default)(e));return t._subType=e,t},min:function(e,t){return t=t||g.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,a.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return t=t||g.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,a.default)(t)||t.length<=this.resolve(e)}})},ensure:function(){var e=this;return this.default((function(){return[]})).transform((function(t){return e.isType(t)?t:null===t?[]:[].concat(t)}))},compact:function(e){var t=e?function(t,r,n){return!e(t,r,n)}:function(e){return!!e};return this.transform((function(e){return null!=e?e.filter(t):e}))},describe:function(){var e=h.default.prototype.describe.call(this);return this._subType&&(e.innerType=this._subType.describe()),e}}),e.exports=t.default},76595:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(31490)),o=n(r(16434)),s=A;function A(){var e=this;if(!(this instanceof A))return new A;o.default.call(this,{type:"boolean"}),this.withMutation((function(){e.transform((function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(e))return!0;if(/^(false|0)$/i.test(e))return!1}return e}))}))}t.default=s,(0,i.default)(A,o.default,{_typeCheck:function(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}}),e.exports=t.default},41755:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=void 0;var i=n(r(16434)),o=n(r(31490)),s=n(r(76813)),A=r(63802),a=n(r(71665)),c=n(r(95814)),u=new Date(""),l=h;function h(){var e=this;if(!(this instanceof h))return new h;i.default.call(this,{type:"date"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:(e=(0,s.default)(e))?new Date(e):u}))}))}t.default=l,(0,o.default)(h,i.default,{_typeCheck:function(e){return t=e,"[object Date]"===Object.prototype.toString.call(t)&&!isNaN(e.getTime());var t},min:function(e,t){void 0===t&&(t=A.date.min);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`min` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(e){return(0,a.default)(e)||e>=this.resolve(r)}})},max:function(e,t){void 0===t&&(t=A.date.max);var r=e;if(!c.default.isRef(r)&&(r=this.cast(e),!this._typeCheck(r)))throw new TypeError("`max` must be a Date or a value that can be `cast()` to a Date");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(e){return(0,a.default)(e)||e<=this.resolve(r)}})}}),e.exports=t.default},15966:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.addMethod=function(e,t,r){if(!e||!(0,p.default)(e.prototype))throw new TypeError("You must provide a yup schema constructor function");if("string"!=typeof t)throw new TypeError("A Method name must be provided");if("function"!=typeof r)throw new TypeError("Method function must be provided");e.prototype[t]=r},t.lazy=t.ref=t.boolean=void 0;var i=n(r(16434));t.mixed=i.default;var o=n(r(76595));t.bool=o.default;var s=n(r(45167));t.string=s.default;var A=n(r(72068));t.number=A.default;var a=n(r(41755));t.date=a.default;var c=n(r(51727));t.object=c.default;var u=n(r(18830));t.array=u.default;var l=n(r(95814)),h=n(r(6856)),g=n(r(40828));t.ValidationError=g.default;var f=n(r(43910));t.reach=f.default;var p=n(r(11050));t.isSchema=p.default;var d=n(r(24280));t.setLocale=d.default;var C=o.default;t.boolean=C;t.ref=function(e,t){return new l.default(e,t)};t.lazy=function(e){return new h.default(e)}},63802:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=t.array=t.object=t.boolean=t.date=t.number=t.string=t.mixed=void 0;var i=n(r(21043)),o={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:function(e){var t=e.path,r=e.type,n=e.value,o=e.originalValue,s=null!=o&&o!==n,A=t+" must be a `"+r+"` type, but the final value was: `"+(0,i.default)(n,!0)+"`"+(s?" (cast from the value `"+(0,i.default)(o,!0)+"`).":".");return null===n&&(A+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),A}};t.mixed=o;var s={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};t.string=s;var A={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",notEqual:"${path} must be not equal to ${notEqual}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};t.number=A;var a={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};t.date=a;var c={};t.boolean=c;var u={noUnknown:"${path} field cannot have keys not specified in the object shape"};t.object=u;var l={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items"};t.array=l;var h={mixed:o,string:s,number:A,date:a,object:u,array:l,boolean:c};t.default=h},16434:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=E;var i=n(r(72912)),o=n(r(15215)),s=n(r(26052)),A=n(r(78700)),a=r(63802),c=n(r(94916)),u=n(r(80180)),l=n(r(22808)),h=n(r(11050)),g=n(r(54107)),f=n(r(21043)),p=n(r(95814)),d=r(43910),C=function(){function e(){this.list=new Set,this.refs=new Map}var t=e.prototype;return t.toArray=function(){return(0,A.default)(this.list).concat((0,A.default)(this.refs.values()))},t.add=function(e){p.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)},t.delete=function(e){p.default.isRef(e)?this.refs.delete(e.key,e):this.list.delete(e)},t.has=function(e,t){if(this.list.has(e))return!0;for(var r,n=this.refs.values();!(r=n.next()).done;)if(t(r.value)===e)return!0;return!1},e}();function E(e){var t=this;if(void 0===e&&(e={}),!(this instanceof E))return new E;this._deps=[],this._conditions=[],this._options={abortEarly:!0,recursive:!0},this._exclusive=Object.create(null),this._whitelist=new C,this._blacklist=new C,this.tests=[],this.transforms=[],this.withMutation((function(){t.typeError(a.mixed.notType)})),(0,o.default)(e,"default")&&(this._defaultDefault=e.default),this._type=e.type||"mixed"}for(var I=E.prototype={__isYupSchema__:!0,constructor:E,clone:function(){var e=this;return this._mutate?this:(0,s.default)(this,(function(t){if((0,h.default)(t)&&t!==e)return t}))},label:function(e){var t=this.clone();return t._label=e,t},meta:function(e){if(0===arguments.length)return this._meta;var t=this.clone();return t._meta=(0,i.default)(t._meta||{},e),t},withMutation:function(e){var t=this._mutate;this._mutate=!0;var r=e(this);return this._mutate=t,r},concat:function(e){if(!e||e===this)return this;if(e._type!==this._type&&"mixed"!==this._type)throw new TypeError("You cannot `concat()` schema's of different types: "+this._type+" and "+e._type);var t=(0,l.default)(e.clone(),this);return(0,o.default)(e,"_default")&&(t._default=e._default),t.tests=this.tests,t._exclusive=this._exclusive,t.withMutation((function(t){e.tests.forEach((function(e){t.test(e.OPTIONS)}))})),t},isType:function(e){return!(!this._nullable||null!==e)||(!this._typeCheck||this._typeCheck(e))},resolve:function(e){var t=this;if(t._conditions.length){var r=t._conditions;(t=t.clone())._conditions=[],t=(t=r.reduce((function(t,r){return r.resolve(t,e)}),t)).resolve(e)}return t},cast:function(e,t){void 0===t&&(t={});var r=this.resolve((0,i.default)({},t,{value:e})),n=r._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==r.isType(n)){var o=(0,f.default)(e),s=(0,f.default)(n);throw new TypeError("The value of "+(t.path||"field")+' could not be cast to a value that satisfies the schema type: "'+r._type+'". \n\nattempted value: '+o+" \n"+(s!==o?"result of cast: "+s:""))}return n},_cast:function(e){var t=this,r=void 0===e?e:this.transforms.reduce((function(r,n){return n.call(t,r,e)}),e);return void 0===r&&(0,o.default)(this,"_default")&&(r=this.default()),r},_validate:function(e,t){var r=this;void 0===t&&(t={});var n=e,o=null!=t.originalValue?t.originalValue:e,s=this._option("strict",t),A=this._option("abortEarly",t),a=t.sync,c=t.path,l=this._label;s||(n=this._cast(n,(0,i.default)({assert:!1},t)));var h={value:n,path:c,schema:this,options:t,label:l,originalValue:o,sync:a},g=[];return this._typeError&&g.push(this._typeError(h)),this._whitelistError&&g.push(this._whitelistError(h)),this._blacklistError&&g.push(this._blacklistError(h)),(0,u.default)({validations:g,endEarly:A,value:n,path:c,sync:a}).then((function(e){return(0,u.default)({path:c,sync:a,value:e,endEarly:A,validations:r.tests.map((function(e){return e(h)}))})}))},validate:function(e,t){return void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,t)},validateSync:function(e,t){var r,n;if(void 0===t&&(t={}),this.resolve((0,i.default)({},t,{value:e}))._validate(e,(0,i.default)({},t,{sync:!0})).then((function(e){return r=e})).catch((function(e){return n=e})),n)throw n;return r},isValid:function(e,t){return this.validate(e,t).then((function(){return!0})).catch((function(e){if("ValidationError"===e.name)return!1;throw e}))},isValidSync:function(e,t){try{return this.validateSync(e,t),!0}catch(e){if("ValidationError"===e.name)return!1;throw e}},getDefault:function(e){return void 0===e&&(e={}),this.resolve(e).default()},default:function(e){if(0===arguments.length){var t=(0,o.default)(this,"_default")?this._default:this._defaultDefault;return"function"==typeof t?t.call(this):(0,s.default)(t)}var r=this.clone();return r._default=e,r},strict:function(e){void 0===e&&(e=!0);var t=this.clone();return t._options.strict=e,t},_isPresent:function(e){return null!=e},required:function(e){return void 0===e&&(e=a.mixed.required),this.test({message:e,name:"required",exclusive:!0,test:function(e){return this.schema._isPresent(e)}})},notRequired:function(){var e=this.clone();return e.tests=e.tests.filter((function(e){return"required"!==e.OPTIONS.name})),e},nullable:function(e){void 0===e&&(e=!0);var t=this.clone();return t._nullable=e,t},transform:function(e){var t=this.clone();return t.transforms.push(e),t},test:function(){var e;if(void 0===(e=1===arguments.length?"function"==typeof(arguments.length<=0?void 0:arguments[0])?{test:arguments.length<=0?void 0:arguments[0]}:arguments.length<=0?void 0:arguments[0]:2===arguments.length?{name:arguments.length<=0?void 0:arguments[0],test:arguments.length<=1?void 0:arguments[1]}:{name:arguments.length<=0?void 0:arguments[0],message:arguments.length<=1?void 0:arguments[1],test:arguments.length<=2?void 0:arguments[2]}).message&&(e.message=a.mixed.default),"function"!=typeof e.test)throw new TypeError("`test` is a required parameters");var t=this.clone(),r=(0,g.default)(e),n=e.exclusive||e.name&&!0===t._exclusive[e.name];if(e.exclusive&&!e.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t._exclusive[e.name]=!!e.exclusive,t.tests=t.tests.filter((function(t){if(t.OPTIONS.name===e.name){if(n)return!1;if(t.OPTIONS.test===r.OPTIONS.test)return!1}return!0})),t.tests.push(r),t},when:function(e,t){1===arguments.length&&(t=e,e=".");var r=this.clone(),n=[].concat(e).map((function(e){return new p.default(e)}));return n.forEach((function(e){e.isSibling&&r._deps.push(e.key)})),r._conditions.push(new c.default(n,t)),r},typeError:function(e){var t=this.clone();return t._typeError=(0,g.default)({message:e,name:"typeError",test:function(e){return!(void 0!==e&&!this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t},oneOf:function(e,t){void 0===t&&(t=a.mixed.oneOf);var r=this.clone();return e.forEach((function(e){r._whitelist.add(e),r._blacklist.delete(e)})),r._whitelistError=(0,g.default)({message:t,name:"oneOf",test:function(e){if(void 0===e)return!0;var t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},notOneOf:function(e,t){void 0===t&&(t=a.mixed.notOneOf);var r=this.clone();return e.forEach((function(e){r._blacklist.add(e),r._whitelist.delete(e)})),r._blacklistError=(0,g.default)({message:t,name:"notOneOf",test:function(e){var t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),r},strip:function(e){void 0===e&&(e=!0);var t=this.clone();return t._strip=e,t},_option:function(e,t){return(0,o.default)(t,e)?t[e]:this._options[e]},describe:function(){var e=this.clone();return{type:e._type,meta:e._meta,label:e._label,tests:e.tests.map((function(e){return{name:e.OPTIONS.name,params:e.OPTIONS.params}})).filter((function(e,t,r){return r.findIndex((function(t){return t.name===e.name}))===t}))}}},m=["validate","validateSync"],y=function(){var e=m[w];I[e+"At"]=function(t,r,n){void 0===n&&(n={});var o=(0,d.getIn)(this,t,r,n.context),s=o.parent,A=o.parentPath;return o.schema[e](s&&s[A],(0,i.default)({},n,{parent:s,path:t}))}},w=0;w<m.length;w++)y();for(var B=["equals","is"],Q=0;Q<B.length;Q++){I[B[Q]]=I.oneOf}for(var v=["not","nope"],D=0;D<v.length;D++){I[v[D]]=I.notOneOf}I.optional=I.notRequired,e.exports=t.default},72068:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=c;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=function(e){return(0,A.default)(e)||e===(0|e)};function c(){var e=this;if(!(this instanceof c))return new c;o.default.call(this,{type:"number"}),this.withMutation((function(){e.transform((function(e){var t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)}))}))}(0,i.default)(c,o.default,{_typeCheck:function(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!function(e){return e!=+e}(e)},min:function(e,t){return void 0===t&&(t=s.number.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.number.max),this.test({message:t,name:"max",exclusive:!0,params:{max:e},test:function(t){return(0,A.default)(t)||t<=this.resolve(e)}})},lessThan:function(e,t){return void 0===t&&(t=s.number.lessThan),this.test({message:t,name:"max",exclusive:!0,params:{less:e},test:function(t){return(0,A.default)(t)||t<this.resolve(e)}})},moreThan:function(e,t){return void 0===t&&(t=s.number.moreThan),this.test({message:t,name:"min",exclusive:!0,params:{more:e},test:function(t){return(0,A.default)(t)||t>this.resolve(e)}})},positive:function(e){return void 0===e&&(e=s.number.positive),this.moreThan(0,e)},negative:function(e){return void 0===e&&(e=s.number.negative),this.lessThan(0,e)},integer:function(e){return void 0===e&&(e=s.number.integer),this.test({name:"integer",message:e,test:a})},truncate:function(){return this.transform((function(e){return(0,A.default)(e)?e:0|e}))},round:function(e){var t=["ceil","floor","round","trunc"];if("trunc"===(e=e&&e.toLowerCase()||"round"))return this.truncate();if(-1===t.indexOf(e.toLowerCase()))throw new TypeError("Only valid options for round() are: "+t.join(", "));return this.transform((function(t){return(0,A.default)(t)?t:Math[e](t)}))}}),e.exports=t.default},51727:(e,t,r)=>{"use strict";var n=r(19228),i=r(60087);t.__esModule=!0,t.default=B;var o=i(r(62407)),s=i(r(72912)),A=i(r(15215)),a=i(r(36494)),c=i(r(89170)),u=i(r(5253)),l=i(r(89612)),h=r(79588),g=i(r(16434)),f=r(63802),p=i(r(18417)),d=i(r(23316)),C=i(r(31490)),E=i(r(7045)),I=n(r(80180));function m(){var e=(0,o.default)(["",".",""]);return m=function(){return e},e}function y(){var e=(0,o.default)(["",".",""]);return y=function(){return e},e}var w=function(e){return"[object Object]"===Object.prototype.toString.call(e)};function B(e){var t=this;if(!(this instanceof B))return new B(e);g.default.call(this,{type:"object",default:function(){var e=this;if(this._nodes.length){var t={};return this._nodes.forEach((function(r){t[r]=e.fields[r].default?e.fields[r].default():void 0})),t}}}),this.fields=Object.create(null),this._nodes=[],this._excludedEdges=[],this.withMutation((function(){t.transform((function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})),e&&t.shape(e)}))}(0,C.default)(B,g.default,{_typeCheck:function(e){return w(e)||"function"==typeof e},_cast:function(e,t){var r=this;void 0===t&&(t={});var n=g.default.prototype._cast.call(this,e,t);if(void 0===n)return this.default();if(!this._typeCheck(n))return n;var i=this.fields,o=!0===this._option("stripUnknown",t),a=this._nodes.concat(Object.keys(n).filter((function(e){return-1===r._nodes.indexOf(e)}))),c={},u=(0,s.default)({},t,{parent:c,__validating:!1}),l=!1;return a.forEach((function(e){var r=i[e],s=(0,A.default)(n,e);if(r){var a,h=r._options&&r._options.strict;if(u.path=(0,E.default)(y(),t.path,e),u.value=n[e],!0===(r=r.resolve(u))._strip)return void(l=l||e in n);void 0!==(a=t.__validating&&h?n[e]:r.cast(n[e],u))&&(c[e]=a)}else s&&!o&&(c[e]=n[e]);c[e]!==n[e]&&(l=!0)})),l?c:n},_validate:function(e,t){var r,n,i=this;void 0===t&&(t={});var o=t.sync,A=[],a=null!=t.originalValue?t.originalValue:e;return r=this._option("abortEarly",t),n=this._option("recursive",t),t=(0,s.default)({},t,{__validating:!0,originalValue:a}),g.default.prototype._validate.call(this,e,t).catch((0,I.propagateErrors)(r,A)).then((function(e){if(!n||!w(e)){if(A.length)throw A[0];return e}a=a||e;var c=i._nodes.map((function(r){var n=(0,E.default)(m(),t.path,r),o=i.fields[r],A=(0,s.default)({},t,{path:n,parent:e,originalValue:a[r]});return o&&o.validate?(A.strict=!0,o.validate(e[r],A)):Promise.resolve(!0)}));return(0,I.default)({sync:o,validations:c,value:e,errors:A,endEarly:r,path:t.path,sort:(0,d.default)(i.fields)})}))},concat:function(e){var t=g.default.prototype.concat.call(this,e);return t._nodes=(0,p.default)(t.fields,t._excludedEdges),t},shape:function(e,t){void 0===t&&(t=[]);var r=this.clone(),n=(0,s.default)(r.fields,e);if(r.fields=n,t.length){Array.isArray(t[0])||(t=[t]);var i=t.map((function(e){return e[0]+"-"+e[1]}));r._excludedEdges=r._excludedEdges.concat(i)}return r._nodes=(0,p.default)(n,r._excludedEdges),r},from:function(e,t,r){var n=(0,h.getter)(e,!0);return this.transform((function(i){if(null==i)return i;var o=i;return(0,A.default)(i,e)&&(o=(0,s.default)({},i),r||delete o[e],o[t]=n(i)),o}))},noUnknown:function(e,t){void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),"string"==typeof e&&(t=e,e=!0);var r=this.test({name:"noUnknown",exclusive:!0,message:t,test:function(t){return null==t||!e||0===function(e,t){var r=Object.keys(e.fields);return Object.keys(t).filter((function(e){return-1===r.indexOf(e)}))}(this.schema,t).length}});return r._options.stripUnknown=e,r},unknown:function(e,t){return void 0===e&&(e=!0),void 0===t&&(t=f.object.noUnknown),this.noUnknown(!e,t)},transformKeys:function(e){return this.transform((function(t){return t&&(0,u.default)(t,(function(t,r){return e(r)}))}))},camelCase:function(){return this.transformKeys(c.default)},snakeCase:function(){return this.transformKeys(a.default)},constantCase:function(){return this.transformKeys((function(e){return(0,a.default)(e).toUpperCase()}))},describe:function(){var e=g.default.prototype.describe.call(this);return e.fields=(0,l.default)(this.fields,(function(e){return e.describe()})),e}}),e.exports=t.default},24280:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e){Object.keys(e).forEach((function(t){Object.keys(e[t]).forEach((function(r){i.default[t][r]=e[t][r]}))}))};var i=n(r(63802));e.exports=t.default},45167:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=l;var i=n(r(31490)),o=n(r(16434)),s=r(63802),A=n(r(71665)),a=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,c=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,u=function(e){return(0,A.default)(e)||e===e.trim()};function l(){var e=this;if(!(this instanceof l))return new l;o.default.call(this,{type:"string"}),this.withMutation((function(){e.transform((function(e){return this.isType(e)?e:null!=e&&e.toString?e.toString():e}))}))}(0,i.default)(l,o.default,{_typeCheck:function(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e},_isPresent:function(e){return o.default.prototype._cast.call(this,e)&&e.length>0},length:function(e,t){return void 0===t&&(t=s.string.length),this.test({message:t,name:"length",exclusive:!0,params:{length:e},test:function(t){return(0,A.default)(t)||t.length===this.resolve(e)}})},min:function(e,t){return void 0===t&&(t=s.string.min),this.test({message:t,name:"min",exclusive:!0,params:{min:e},test:function(t){return(0,A.default)(t)||t.length>=this.resolve(e)}})},max:function(e,t){return void 0===t&&(t=s.string.max),this.test({name:"max",exclusive:!0,message:t,params:{max:e},test:function(t){return(0,A.default)(t)||t.length<=this.resolve(e)}})},matches:function(e,t){var r,n=!1;return t&&(t.message||t.hasOwnProperty("excludeEmptyString")?(n=t.excludeEmptyString,r=t.message):r=t),this.test({message:r||s.string.matches,params:{regex:e},test:function(t){return(0,A.default)(t)||""===t&&n||e.test(t)}})},email:function(e){return void 0===e&&(e=s.string.email),this.matches(a,{message:e,excludeEmptyString:!0})},url:function(e){return void 0===e&&(e=s.string.url),this.matches(c,{message:e,excludeEmptyString:!0})},ensure:function(){return this.default("").transform((function(e){return null===e?"":e}))},trim:function(e){return void 0===e&&(e=s.string.trim),this.transform((function(e){return null!=e?e.trim():e})).test({message:e,name:"trim",test:u})},lowercase:function(e){return void 0===e&&(e=s.string.lowercase),this.transform((function(e){return(0,A.default)(e)?e:e.toLowerCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toLowerCase()}})},uppercase:function(e){return void 0===e&&(e=s.string.uppercase),this.transform((function(e){return(0,A.default)(e)?e:e.toUpperCase()})).test({message:e,name:"string_case",exclusive:!0,test:function(e){return(0,A.default)(e)||e===e.toUpperCase()}})}}),e.exports=t.default},54107:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.createErrorFactory=l,t.default=function(e){var t=e.name,r=e.message,n=e.test,s=e.params;function u(e){var u=e.value,h=e.path,g=e.label,f=e.options,p=e.originalValue,d=e.sync,C=(0,i.default)(e,["value","path","label","options","originalValue","sync"]),E=f.parent,I=function(e){return a.default.isRef(e)?e.getValue({value:u,parent:E,context:f.context}):e},m=l({message:r,path:h,value:u,originalValue:p,params:s,label:g,resolve:I,name:t}),y=(0,o.default)({path:h,parent:E,type:t,createError:m,resolve:I,options:f},C);return function(e,t,r,n){var i=e.call(t,r);if(!n)return Promise.resolve(i);if(o=i,o&&"function"==typeof o.then&&"function"==typeof o.catch)throw new Error('Validation test of type: "'+t.type+'" returned a Promise during a synchronous validate. This test will finish after the validate call has returned');var o;return c.SynchronousPromise.resolve(i)}(n,y,u,d).then((function(e){if(A.default.isError(e))throw e;if(!e)throw m()}))}return u.OPTIONS=e,u};var i=n(r(74943)),o=n(r(72912)),s=n(r(89612)),A=n(r(40828)),a=n(r(95814)),c=r(93255),u=A.default.formatError;function l(e){var t=e.value,r=e.label,n=e.resolve,a=e.originalValue,c=(0,i.default)(e,["value","label","resolve","originalValue"]);return function(e){var i=void 0===e?{}:e,l=i.path,h=void 0===l?c.path:l,g=i.message,f=void 0===g?c.message:g,p=i.type,d=void 0===p?c.name:p,C=i.params;return C=(0,o.default)({path:h,value:t,originalValue:a,label:r},function(e,t,r){return(0,s.default)((0,o.default)({},e,t),r)}(c.params,C,n)),(0,o.default)(new A.default(u(f,C),t,h,d),{params:C})}}},31490:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t,r){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),(0,i.default)(e.prototype,r)};var i=n(r(72912));e.exports=t.default},71665:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return null==e},e.exports=t.default},11050:(e,t)=>{"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e&&e.__isYupSchema__},e.exports=t.default},76813:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){var t,n,i=[1,4,5,6,7,10,11],o=0;if(n=r.exec(e)){for(var s,A=0;s=i[A];++A)n[s]=+n[s]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,void 0!==n[8]&&""!==n[8]||void 0!==n[9]&&""!==n[9]?("Z"!==n[8]&&void 0!==n[9]&&(o=60*n[10]+n[11],"+"===n[9]&&(o=0-o)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+o,n[6],n[7])):t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7])}else t=Date.parse?Date.parse(e):NaN;return t};var r=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;e.exports=t.default},7045:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=e.reduce((function(e,t){var n=r.shift();return e+(null==n?"":n)+t}));return i.replace(/^\./,"")},e.exports=t.default},22808:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function e(t,r){for(var n in r)if((0,i.default)(r,n)){var A=r[n],a=t[n];if(void 0===a)t[n]=A;else{if(a===A)continue;(0,o.default)(a)?(0,o.default)(A)&&(t[n]=A.concat(a)):s(a)?s(A)&&(t[n]=e(a,A)):Array.isArray(a)&&Array.isArray(A)&&(t[n]=A.concat(a))}}return t};var i=n(r(15215)),o=n(r(11050)),s=function(e){return"[object Object]"===Object.prototype.toString.call(e)};e.exports=t.default},21043:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){var r=A(e,t);return null!==r?r:JSON.stringify(e,(function(e,r){var n=A(this[e],t);return null!==n?n:r}),2)};var r=Object.prototype.toString,n=Error.prototype.toString,i=RegExp.prototype.toString,o="undefined"!=typeof Symbol?Symbol.prototype.toString:function(){return""},s=/^Symbol\((.*)\)(.*)$/;function A(e,t){if(void 0===t&&(t=!1),null==e||!0===e||!1===e)return""+e;var A=typeof e;if("number"===A)return function(e){return e!=+e?"NaN":0===e&&1/e<0?"-0":""+e}(e);if("string"===A)return t?'"'+e+'"':e;if("function"===A)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===A)return o.call(e).replace(s,"Symbol($1)");var a=r.call(e).slice(8,-1);return"Date"===a?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===a||e instanceof Error?"["+n.call(e)+"]":"RegExp"===a?i.call(e):null}e.exports=t.default},43910:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.getIn=s,t.default=void 0;var i=r(79588),o=n(r(15215));function s(e,t,r,n){var s,A,a;return n=n||r,t?((0,i.forEach)(t,(function(i,c,u){var l=c?function(e){return e.substr(0,e.length-1).substr(1)}(i):i;if(u||(0,o.default)(e,"_subType")){var h=u?parseInt(l,10):0;if(e=e.resolve({context:n,parent:s,value:r})._subType,r){if(u&&h>=r.length)throw new Error("Yup.reach cannot resolve an array item at index: "+i+", in the path: "+t+". because there is no value at that index. ");r=r[h]}}if(!u){if(e=e.resolve({context:n,parent:s,value:r}),!(0,o.default)(e,"fields")||!(0,o.default)(e.fields,l))throw new Error("The schema does not contain the path: "+t+". (failed at: "+a+' which is a type: "'+e._type+'") ');e=e.fields[l],s=r,r=r&&r[l],A=l,a=c?"["+i+"]":"."+i}})),{schema:e,parent:s,parentPath:A}):{parent:s,parentPath:t,schema:e}}var A=function(e,t,r,n){return s(e,t,r,n).schema};t.default=A},80180:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.propagateErrors=function(e,t){return e?null:function(e){return t.push(e),e.value}},t.settled=a,t.collectErrors=c,t.default=function(e){var t=e.endEarly,r=(0,i.default)(e,["endEarly"]);return t?function(e,t,r){return A(r).all(e).catch((function(e){throw"ValidationError"===e.name&&(e.value=t),e})).then((function(){return t}))}(r.validations,r.value,r.sync):c(r)};var i=n(r(74943)),o=r(93255),s=n(r(40828)),A=function(e){return e?o.SynchronousPromise:Promise};function a(e,t){var r=A(t);return r.all(e.map((function(e){return r.resolve(e).then((function(e){return{fulfilled:!0,value:e}}),(function(e){return{fulfilled:!1,value:e}}))})))}function c(e){var t=e.validations,r=e.value,n=e.path,i=e.sync,o=e.errors,A=e.sort;return o=function(e){return void 0===e&&(e=[]),e.inner&&e.inner.length?e.inner:[].concat(e)}(o),a(t,i).then((function(e){var t=e.filter((function(e){return!e.fulfilled})).reduce((function(e,t){var r=t.value;if(!s.default.isError(r))throw r;return e.concat(r)}),[]);if(A&&t.sort(A),(o=t.concat(o)).length)throw new s.default(o,r,n);return r}))}},23316:(e,t)=>{"use strict";function r(e,t){var r=1/0;return e.some((function(e,n){if(-1!==t.path.indexOf(e))return r=n,!0})),r}t.__esModule=!0,t.default=function(e){var t=Object.keys(e);return function(e,n){return r(t,e)-r(t,n)}},e.exports=t.default},18417:(e,t,r)=>{"use strict";var n=r(60087);t.__esModule=!0,t.default=function(e,t){void 0===t&&(t=[]);var r=[],n=[];function c(e,i){var o=(0,s.split)(e)[0];~n.indexOf(o)||n.push(o),~t.indexOf(i+"-"+o)||r.push([i,o])}for(var u in e)if((0,i.default)(e,u)){var l=e[u];~n.indexOf(u)||n.push(u),A.default.isRef(l)&&l.isSibling?c(l.path,u):(0,a.default)(l)&&l._deps&&l._deps.forEach((function(e){return c(e,u)}))}return o.default.array(n,r).reverse()};var i=n(r(15215)),o=n(r(75158)),s=r(79588),A=n(r(95814)),a=n(r(11050));e.exports=t.default},38422:e=>{"use strict";e.exports={u2:"yup"}},60306:e=>{"use strict";e.exports=JSON.parse('{"name":"@yarnpkg/cli","version":"2.1.1","license":"BSD-2-Clause","main":"./sources/index.ts","dependencies":{"@yarnpkg/core":"workspace:^2.1.1","@yarnpkg/fslib":"workspace:^2.1.0","@yarnpkg/libzip":"workspace:^2.1.0","@yarnpkg/parsers":"workspace:^2.1.0","@yarnpkg/plugin-compat":"workspace:^2.1.0","@yarnpkg/plugin-dlx":"workspace:^2.1.0","@yarnpkg/plugin-essentials":"workspace:^2.1.0","@yarnpkg/plugin-file":"workspace:^2.1.0","@yarnpkg/plugin-git":"workspace:^2.1.0","@yarnpkg/plugin-github":"workspace:^2.1.0","@yarnpkg/plugin-http":"workspace:^2.1.0","@yarnpkg/plugin-init":"workspace:^2.1.0","@yarnpkg/plugin-link":"workspace:^2.1.0","@yarnpkg/plugin-node-modules":"workspace:^2.1.0","@yarnpkg/plugin-npm":"workspace:^2.1.0","@yarnpkg/plugin-npm-cli":"workspace:^2.1.0","@yarnpkg/plugin-pack":"workspace:^2.1.0","@yarnpkg/plugin-patch":"workspace:^2.1.0","@yarnpkg/plugin-pnp":"workspace:^2.1.0","@yarnpkg/shell":"workspace:^2.1.0","chalk":"^3.0.0","clipanion":"^2.4.2","fromentries":"^1.2.0","semver":"^7.1.2","tslib":"^1.13.0","yup":"^0.27.0"},"devDependencies":{"@types/yup":"0.26.12","@yarnpkg/builder":"workspace:^2.1.0","@yarnpkg/monorepo":"workspace:0.0.0","@yarnpkg/pnpify":"workspace:^2.1.0","micromatch":"^4.0.2","typescript":"^3.9.5"},"peerDependencies":{"@yarnpkg/core":"^2.1.1"},"scripts":{"postpack":"rm -rf lib","prepack":"run build:compile \\"$(pwd)\\"","build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},"publishConfig":{"main":"./lib/index.js","types":"./lib/index.d.ts","bin":null},"files":["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{"bundles":{"standard":["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-node-modules","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp"]}},"repository":{"type":"git","url":"ssh://git@github.com/yarnpkg/berry.git"},"engines":{"node":">=10.19.0"}}')},98497:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=98497,e.exports=t},73841:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/core"}')},32178:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=32178,e.exports=t},4670:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/fslib"}')},81386:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/libzip"}')},3368:(e,t,r)=>{var n,i=Object.assign({},r(35747)),o=void 0!==o?o:{},s={};for(n in o)o.hasOwnProperty(n)&&(s[n]=o[n]);var A,a,c,u,l=[],h="";h=__dirname+"/",A=function(e,t){var n=Be(e);return n?t?n:n.toString():(c||(c=i),u||(u=r(85622)),e=u.normalize(e),c.readFileSync(e,t?null:"utf8"))},a=function(e){var t=A(e,!0);return t.buffer||(t=new Uint8Array(t)),I(t.buffer),t},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),l=process.argv.slice(2),e.exports=o,o.inspect=function(){return"[Emscripten Module object]"};var g=o.print||console.log.bind(console),f=o.printErr||console.warn.bind(console);for(n in s)s.hasOwnProperty(n)&&(o[n]=s[n]);s=null,o.arguments&&(l=o.arguments),o.thisProgram&&o.thisProgram,o.quit&&o.quit;var p,d;o.wasmBinary&&(p=o.wasmBinary),o.noExitRuntime&&o.noExitRuntime,"object"!=typeof WebAssembly&&f("no native wasm support detected");var C=new WebAssembly.Table({initial:31,maximum:31,element:"anyfunc"}),E=!1;function I(e,t){e||Z("Assertion failed: "+t)}function m(e){var t=o["_"+e];return I(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function y(e,t,r,n,i){var o={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);D(e,t=Re(r),r)}return t},array:function(e){var t=Re(e.length);return function(e,t){x.set(e,t)}(e,t),t}};var s=m(e),A=[],a=0;if(n)for(var c=0;c<n.length;c++){var u=o[r[c]];u?(0===a&&(a=Me()),A[c]=u(n[c])):A[c]=n[c]}var l=s.apply(null,A);return l=function(e){return"string"===t?Q(e):"boolean"===t?Boolean(e):e}(l),0!==a&&Ne(a),l}var w="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function B(e,t,r){for(var n=t+r,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.subarray&&w)return w.decode(e.subarray(t,i));for(var o="";t<i;){var s=e[t++];if(128&s){var A=63&e[t++];if(192!=(224&s)){var a=63&e[t++];if((s=224==(240&s)?(15&s)<<12|A<<6|a:(7&s)<<18|A<<12|a<<6|63&e[t++])<65536)o+=String.fromCharCode(s);else{var c=s-65536;o+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else o+=String.fromCharCode((31&s)<<6|A)}else o+=String.fromCharCode(s)}return o}function Q(e,t){return e?B(F,e,t):""}function v(e,t,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,s=0;s<e.length;++s){var A=e.charCodeAt(s);if(A>=55296&&A<=57343)A=65536+((1023&A)<<10)|1023&e.charCodeAt(++s);if(A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|63&A}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|63&A}else{if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|63&A}}return t[r]=0,r-i}function D(e,t,r){return v(e,F,t,r)}function b(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}function S(e){var t=b(e)+1,r=Ke(t);return r&&v(e,x,r,t),r}var k,x,F,M,N,R,K;function L(e){k=e,o.HEAP8=x=new Int8Array(e),o.HEAP16=M=new Int16Array(e),o.HEAP32=N=new Int32Array(e),o.HEAPU8=F=new Uint8Array(e),o.HEAPU16=new Uint16Array(e),o.HEAPU32=new Uint32Array(e),o.HEAPF32=R=new Float32Array(e),o.HEAPF64=K=new Float64Array(e)}var T=o.INITIAL_MEMORY||16777216;function P(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?o.dynCall_v(r):o.dynCall_vi(r,t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}(d=o.wasmMemory?o.wasmMemory:new WebAssembly.Memory({initial:T/65536,maximum:32768}))&&(k=d.buffer),T=k.byteLength,L(k),N[5160]=5263680;var U=[],_=[],O=[],j=[];var Y=Math.abs,G=Math.ceil,J=Math.floor,H=Math.min,q=0,z=null,W=null;function V(e){q++,o.monitorRunDependencies&&o.monitorRunDependencies(q)}function X(e){if(q--,o.monitorRunDependencies&&o.monitorRunDependencies(q),0==q&&(null!==z&&(clearInterval(z),z=null),W)){var t=W;W=null,t()}}function Z(e){throw o.onAbort&&o.onAbort(e),g(e+=""),f(e),E=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}o.preloadedImages={},o.preloadedAudios={};function $(e){return t=e,r="data:application/octet-stream;base64,",String.prototype.startsWith?t.startsWith(r):0===t.indexOf(r);var t,r}var ee,te,re="data:application/octet-stream;base64,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BRAiGiABKAIMKAIABEAgASgCDCgCABAcCyABKAIMEBYLIAFBEGokAAuBAgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMKAIcNgIEIAEoAgQQ6gIgASABKAIEKAIUNgIIIAEoAgggASgCDCgCEEsEQCABIAEoAgwoAhA2AggLAkAgASgCCEUNACABKAIMKAIMIAEoAgQoAhAgASgCCBAaGiABKAIMIgAgASgCCCAAKAIMajYCDCABKAIEIgAgASgCCCAAKAIQajYCECABKAIMIgAgASgCCCAAKAIUajYCFCABKAIMIgAgACgCECABKAIIazYCECABKAIEIgAgACgCFCABKAIIazYCFCABKAIEKAIUDQAgASgCBCABKAIEKAIINgIQCyABQRBqJAALYAEBfyMAQRBrIgEkACABIAA2AgggASABKAIIQgIQHzYCBAJAIAEoAgRFBEAgAUEAOwEODAELIAEgASgCBC0AACABKAIELQABQQh0ajsBDgsgAS8BDiEAIAFBEGokACAAC1oBAX8jAEEgayICJAAgAiAANgIcIAIgATcDECACIAIoAhwgAikDEBDPATYCDCACKAIMBEAgAigCHCIAIAIpAxAgACkDEHw3AxALIAIoAgwhACACQSBqJAAgAAtvAQF/IwBBEGsiAiQAIAIgADYCCCACIAE7AQYgAiACKAIIQgIQHzYCAAJAIAIoAgBFBEAgAkF/NgIMDAELIAIoAgAgAi8BBjoAACACKAIAIAIvAQZBCHU6AAEgAkEANgIMCyACKAIMGiACQRBqJAALjwEBAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAghCBBAfNgIAAkAgAigCAEUEQCACQX82AgwMAQsgAigCACACKAIEOgAAIAIoAgAgAigCBEEIdjoAASACKAIAIAIoAgRBEHY6AAIgAigCACACKAIEQRh2OgADIAJBADYCDAsgAigCDBogAkEQaiQAC7YCAQF/IwBBMGsiBCQAIAQgADYCJCAEIAE2AiAgBCACNwMYIAQgAzYCFAJAIAQoAiQpAxhCASAEKAIUrYaDUARAIAQoAiRBDGpBHEEAEBUgBEJ/NwMoDAELAkAgBCgCJCgCAEUEQCAEIAQoAiQoAgggBCgCICAEKQMYIAQoAhQgBCgCJCgCBBEPADcDCAwBCyAEIAQoAiQoAgAg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BCgCLEGUAWogBCgCLEGIE2oQtgELCyAEKAIsELkBIAQoAiAEQCAEKAIsELgBCyAEQTBqJAAL1AEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhFOgAPAkAgAigCGEUEQCACIAIpAxCnEBkiADYCGCAARQRAIAJBADYCHAwCCwsgAkEYEBkiADYCCCAARQRAIAItAA9BAXEEQCACKAIYEBYLIAJBADYCHAwBCyACKAIIQQE6AAAgAigCCCACKAIYNgIEIAIoAgggAikDEDcDCCACKAIIQgA3AxAgAigCCCACLQAPQQFxOgABIAIgAigCCDYCHAsgAigCHCEAIAJBIGokACAAC3gBAX8jAEEQayIBJAAgASAANgIIIAEgASgCCEIEEB82AgQCQCABKAIERQRAIAFBADYCDAwBCyABIAEoAgQtAAAgASgCBC0AASABKAIELQACIAEoAgQtAANBCHRqQQh0akEIdGo2AgwLIAEoAgwhACABQRBqJAAgAAuQAQEDfyAAIQECQAJAIABBA3FFDQAgAC0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQf/9+3dqcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAfNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMg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KAIUIANBngFqIANBnAFqEMQBIAMoAkwgAy8BngEQICADKAJMIAMvAZwBECACQAJAIAMtAIUBQQFxRQ0AIAMoAqQBKQMoQhRaDQAgAygCTEEAECEMAQsgAygCTCADKAKkASgCGBAhCwJAAkAgAygCoAFBgAJxQYACRw0AIAMoAqQBKQMgQv////8PVARAIAMoAqQBKQMoQv////8PVA0BCyADKAJMQX8QISADKAJMQX8QIQwBCwJAIAMoAqQBKQMgQv////8PVARAIAMoAkwgAygCpAEpAyCnECEMAQsgAygCTEF/ECELAkAgAygCpAEpAyhC/////w9UBEAgAygCTCADKAKkASkDKKcQIQwBCyADKAJMQX8QIQsLIAMoAkwgAygCpAEoAjAQUkH//wNxECAgAyADKAKkASgCNCADKAKgARCEAUH//wNxIAMoApABQYAGEIQBQf//A3FqNgKIASADKAJMIAMoAogBQf//A3EQICADKAKgAUGAAnFFBEAgAygCTCADKAKkASgCOBBSQf//A3EQICADKAJMIAMoAqQBKAI8Qf//A3EQICADKAJMIAMoAqQBLwFAECAgAygCTCADKAKkASgCRBAhAkAgAygCpAEpA0hC/////w9UBEAgAygCTCADKAKkASkDSKcQIQwBCyADKAJMQX8QIQsLAn8jAEEQayIAIAMoAkw2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCTBAXIAMoApABECQgA0F/NgKsAQwBCyADKAKoASADQdAAagJ+IwBBEGsiACADKAJMNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAkwQFyADKAKkASgCMARAIAMoAqgBIAMoAqQBKAIwEIgBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQAQRAIAMoAqgBIAMoApABQYAGEIMBQQBIBEAgAygCkAEQJCADQX82AqwBDAILCyADKAKQARAkIAMoAqQBKAI0BEAgAygCqAEgAygCpAEoAjQgAygCoAEQgwFBAEgEQCADQX82AqwBDAILCyADKAKgAUGAAnFFBEAgAygCpAEoAjgEQCADKAKoASADKAKkASgCOBCIAUEASARAIANBfzYC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AygCgAEoAgAgAykDcKdBBHRqKAIAKAI0IAMoAjQQhwEhACADKAKAASgCACADKQNwp0EEdGooAgAgADYCNCADKAKAASgCACADKQNwp0EEdGooAgBBAToABCADQQA2AjQgAxBcIAMgAykDcEIBfDcDcAwCCwALCyADAn4gAykDYCADKQNofUL///////////8AVARAIAMpA2AgAykDaH0MAQtC////////////AAs3A4gBCyADKQOIASEEIANBkAFqJAAgBAumAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhAQ+gEiADYCDAJAIABFBEAgA0EANgIcDAELIAMoAgwgAygCGDYCACADKAIMIAMoAhQ2AgQgAygCFEEQcQRAIAMoAgwiACAAKAIUQQJyNgIUIAMoAgwiACAAKAIYQQJyNgIYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAvVAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQAJAIAQpAxBC////////////AFcEQCAEKQMQQoCAgICAgICAgH9ZDQELIAQoAghBBEE9EBUgBEF/NgIcDAELAn8gBCkDECEBIAQoAgwhACAEKAIYIgIoAkxBf0wEQCACIAEgABCXAQwBCyACIAEgABCXAQtBAEgEQCAEKAIIQQRBtJwBKAIAEBUgBEF/NgIcDAELIARBADYCHAsgBCgCHCEAIARBIGokACAACycAAn9BAEEAIAAQBSIAIABBG0YbIgBFDQAaQbScASAANgIAQQALGgteAQF/IwBBEGsiAyQAIAMgAUHAgIACcQR/IAMgAkEEajYCDCACKAIABUEACzYCACAAIAFBgIACciADEBEiAEGBYE8EQEG0nAFBACAAazYCAEF/IQALIANBEGokACAACzMBAX8CfyAAEAYiAUFhRgRAIAAQEiEBCyABQYFgTwsEf0G0nAFBACABazYCAEF/BSABCwtpAQJ/AkAgACgCFCAAKAIcTQ0AIABBAEEAIAAoAiQRAQAaIAAoAhQNAEF/DwsgACgCBCIBIAAoAggiAkkEQCAAIAEgAmusQQEgACgCKBEQABoLIABBADYCHCAAQgA3AxAgAEIANwIEQQALpgEBAX8jAEEQayICJAAgAiAANgIIIAIgATYC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AX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC7QCAQF/IwBBMGsiAyQAIAMgADYCKCADIAE3AyAgAyACNgIcAkAgAykDIFAEQCADQQE6AC8MAQsgAyADKAIoKQMQIAMpAyB8NwMIAkAgAykDCCADKQMgWgRAIAMpAwhC/////wBYDQELIAMoAhxBDkEAEBUgA0EAOgAvDAELIAMgAygCKCgCACADKQMIp0EEdBBPIgA2AgQgAEUEQCADKAIcQQ5BABAVIANBADoALwwBCyADKAIoIAMoAgQ2AgAgAyADKAIoKQMINwMQA0AgAykDECADKQMIWkUEQCADKAIoKAIAIAMpAxCnQQR0ahCOASADIAMpAxBCAXw3AxAMAQsLIAMoAiggAykDCCIBNwMQIAMoAiggATcDCCADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAvMAQEBfyMAQSBrIgIkACACIAA3AxAgAiABNgIMIAJBMBAZIgE2AggCQCABRQRAIAIoAgxBDkEAEBUgAkEANgIcDAELIAIoAghBADYCACACKAIIQgA3AxAgAigCCEIANwMIIAIoAghCADcDICACKAIIQgA3AxggAigCCEEANgIoIAIoAghBADoALCACKAIIIAIpAxAgAigCDBCBAUEBcUUEQCACKAIIECUgAkEANgIcDAELIAIgAigCCDYCHAsgAigCHCEBIAJBIGokACABC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMo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AgggASgCBEEANgIgIAEoAgRBADYCJCABKAIEQQA6ACggASgCBEEANgIsIAEoAgRBATYCMCMAQRBrIgAgASgCBEEMajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ADQgASgCBEEAOgA1IAEgASgCBDYCDAsgASgCDCEAIAFBEGokACAAC4IFAQF/IwBB4ABrIgMkACADIAA2AlggAyABNgJUIAMgAjYCUAJAAkAgAygCVEEATgRAIAMoAlgNAQsgAygCUEESQQAQFSADQQA2AlwMAQsgAyADKAJUNgJMIwBBEGsiACADKAJYNgIMIAMgACgCDCkDGDcDQEHgmwEpAwBCf1EEQCADQX82AhQgA0EDNgIQIANBBzYCDCADQQY2AgggA0ECNgIEIANBATYCAEHgmwFBACADEDc3AwAgA0F/NgI0IANBDzYCMCADQQ02AiwgA0EMNgIoIANBCjYCJCADQQk2AiBB6JsBQQggA0EgahA3NwMAC0HgmwEpAwAgAykDQEHgmwEpAwCDUgRAIAMoAlBBHEEAEBUgA0EANgJcDAELQeibASkDACADKQNAQeibASkDAINSBEAgAyADKAJMQRByNgJMCyADKAJMQRhxQRhGBEAgAygCUEEZQQAQFSADQQA2AlwMAQsgAyADKAJYIAMoAlAQ+AE2AjwCQAJAAkAgAygCPEEBag4CAAECCyADQQA2AlwMAgsgAygCTEEBcUUEQCADKAJQQQlBABAVIANBADYCXAwCCyADIAMoAlggAygCTCADKAJQEGY2AlwMAQsgAygCTEECcQRAIAMoAlBBCkEAEBUgA0EANgJcDAELIAMoAlgQSUEASARAIAMoAlAgAygCWBAYIANBADYCXAwBCwJAIAMoAkxBCHEEQCADIAMoAlggAygCTCADKAJQEGY2AjgMAQsgAyADKAJYIAMoAkwgAygCUBD3ATYCOAsgAygCOEUEQCADKAJYEDIaIANBADYCXAwBCyADIAMoAjg2AlwLIAMoAlwhACADQeAAaiQAIAALjgEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACQQA2AgQgAigCCARAIwBBEGsiACACKAIINgIMIAIgACgCDCgCADYCBCACKAIIELABQQFGBEAjAEEQayIAIAIoAgg2AgxBtJwBIAAoAgwoAgQ2AgALCyACKAIMBEAgAigCDCACKAIENgIACyACQRBqJAALlQEBAX8jAEEQayIBJAAgASAANgIIAkACfyMAQRBrIgAgASgCCDYCDCAAKAIMKQMYQoCAEINQCwRAIAEoAggoAgAEQCABIAEoAggoAgAQlAFBAXE6AA8MAgsgAUEBOgAPDAELIAEgASgCCEEAQgBBEhAiPgIEIAEgASgCBEEARzoADwsgAS0AD0EBcSEAIAFBEGokACAAC7ABAgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIQEJEBIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIMIAMoAhg2AgQgAygCDCADKAIUNgIIIAMoAhRBAEIAQQ4gAygCGBEPACEEIAMoAgwgBDcDGCADKAIMKQMYQgBTBEAgAygCDEI/NwMYCyADIAMoAgw2AhwLIAMoAhwhACADQSBqJAAgAAt/AQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgA0EANgIMIAMgAjYCCAJAIAMpAxBC////////////AFYEQCADKAIIQQRBPRAVIANBfzYCHAwBCyADIAMoAhggAykDECADKAIMIAMoAggQZzYCHAsgAygCHCEAIANBIGokACAAC30AIAJBAUYEQCABIAAoAgggACgCBGusfSEBCwJAIAAoAhQgACgCHEsEQCAAQQBBACAAKAIkEQEAGiAAKAIURQ0BCyAAQQA2AhwgAEIANwMQIAAgASACIAAoAigREABCAFMNACAAQgA3AgQgACAAKAIAQW9xNgIAQQAPC0F/C+ICAQJ/IwBBIGsiAyQAAn8CQAJAQfSXASABLAAAEJkBRQRAQbScAUEcNgIADAELQZgJEBkiAg0BC0EADAELIAJBAEGQARAzIAFBKxCZAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02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GCACKAIoKAIAKAIEaksEQCACIAIoAhggAigCKCgCACgCBGo2AhwLIAIoAhwgAigCFEsEQCACIAIoAhQ2AhwLAkAgAigCHCACKAIgTw0AAkAgAigCHEUEQCACKAIkQQRHDQELIAIoAiRFDQAgAigCHCACKAIYIAIoAigoAgAoAgRqRg0BCwwBC0EAIQAgAkEBQQAgAigCJEEERgR/IAIoAhwgAigCGCACKAIoKAIAKAIEakYFQQALQQFxGzYCECACKAIoQQBBACACKAIQEFcgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHSACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGhogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQcxogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGhogAigCKCACKAIoKAIsNgJsDAELIAIoAigoAjwgAigCKCgCbGsgAigCDE0EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAaGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAg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akECdGovAQI2AhQgAyADKAIQQQFqIgA2AhACQAJAIAAgAygCDE4NACADKAIYIAMoAhRHDQAMAQsCQCADKAIQIAMoAghIBEAgAygCLEH8FGogAygCGEECdGoiACADKAIQIAAvAQBqOwEADAELAkAgAygCGARAIAMoAhggAygCHEcEQCADKAIsIAMoAhhBAnRqQfwUaiIAIAAvAQBBAWo7AQALIAMoAiwiACAAQbwVai8BAEEBajsBvBUMAQsCQCADKAIQQQpMBEAgAygCLCIAIABBwBVqLwEAQQFqOwHAFQwBCyADKAIsIgAgAEHEFWovAQBBAWo7AcQVCwsLIANBADYCECADIAMoAhg2AhwCQCADKAIURQRAIANBigE2AgwgA0EDNgIIDAELAkAgAygCGCADKAIURgRAIANBBjYCDCADQQM2AggMAQsgA0EHNgIMIANBBDYCCAsLCyADIAMoAiBBAWo2AiAMAQsLC6cSAQJ/IwBB0ABrIgMgADYCTCADIAE2AkggAyACNgJEIANBADYCOCADKAJMKAKgLQRAA0AgAyADKAJMKAKkLSADKAI4QQF0ai8BADYCQCADKAJMKAKYLSEAIAMgAygCOCIBQQFqNgI4IAMgACABai0AADYCPAJAIAMoAkBFBEAgAyADKAJIIAMoAjxBAnRqLwECNgIsAkAgAygCTCgCvC1BECADKAIsa0oEQCADIAMoAkggAygCPEECdGovAQA2AiggAygCTCIAIAAvAbgtIAMoAihB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCKEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAixBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCSCADKAI8QQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCLCAAKAK8LWo2ArwtCwwBCyADIAMoAjwtAIBZNgI0IAMgAygCSCADKAI0QYECakECdGovAQI2AiQCQCADKAJMKAK8LUEQIAMoAiRr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AixBLRAgIAMoAixBABAhIAMoAixBABAhIAMoAiwgAykDqAEQLiADKAIsIAMpA6gBEC4gAygCLCADKQOYARAuIAMoAiwgAykDoAEQLiADKAIsQbvTAEEEEEAgAygCLEEAECEgAygCLCADKQOgASADKQOYAXwQLiADKAIsQQEQIQsgAygCLEHA0wBBBBBAIAMoAixBABAhIAMoAiwCfkL//wMgAykDqAFC//8DWg0AGiADKQOoAQunQf//A3EQICADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ/QX8gAykDmAFC/////w9aDQAaIAMpA5gBpwsQISADKAIsAn9BfyADKQOgAUL/////D1oNABogAykDoAGnCxAhIAMCfyADKAK0AS0AKEEBcQRAIAMoArQBKAIkDAELIAMoArQBKAIgCzYClAEgAygCLAJ/IAMoApQBBEAgAygClAEvAQQMAQtBAAtB//8DcRAgAn8jAEEQayIAIAMoAiw2AgwgACgCDC0AAEEBcUULBEAgAygCtAFBCGpBFEEAEBUgAygCLBAXIANCfzcDuAEMAQsgAygCtAECfyMAQRBrIgAgAygCLDYCDCAAKAIMKAIECwJ+IwBBEGsiACADKAIsNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAsLEDZBAEgEQCADKAIsEBcgA0J/NwO4AQwBCyADKAIsEBcgAygClAEEQCADKAK0ASADKAKUASgCACADKAKUAS8BBK0QNkEASARAIANCfzcDuAEMAgsLIAMgAykDmAE3A7gBCyADKQO4ASECIANBwAFqJAAgAgu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhgFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCFATYCDCACKAIcKAIAKAI0IAIoAgwQhwEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsGAEG0nAELjAEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACQQA2AhACQCACKAIURQRAIAJBADYCHAwBCyACIAIoAhQQGTYCDCACKAIMRQRAIAIoAhBBDkEAEBUgAkEANgIcDAELIAIoAgwgAigCGCACKAIUEBoaIAIgAigCDDYCHAsgAigCHCEAIAJBIGokACAACxgAQaicAUIANwIAQbCcAUEANgIAQaicAQuIAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCAJAAkAgAygCFCgCJEEBRgRAIAMpAwhC////////////AFgNAQsgAygCFEEMakESQQAQFSADQn83AxgMAQsgAyADKAIUIAMoAhAgAykDCEELECI3AxgLIAMpAxghAiADQSBqJAAgAgtzAQF/IwBBIGsiASQAIAEgADYCGCABQgg3AxAgASABKAIYKQMQIAEpAxB8NwMIAkAgASkDCCABKAIYKQMQVARAIAEoAhhBADoAACABQX82AhwMAQsgASABKAIYIAEpAwgQLTYCHAsgASgCHBogAUEgaiQACwgAQQFBDBB9CwcAIAAoAigLlgEBAX8jAEEgayICIAA2Ahgg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QRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIIDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwh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AUEJSyEEIAMhASAEDQALDwsgA0EwOgAAIABBADoADws3AQF/IwBBIGsiASQAAn9BASAAIAFBCGoQCCIARQ0AGkG0nAEgADYCAEEACyEAIAFBIGokACAACyABAn8gABAsQQFqIgEQGSICRQRAQQAPCyACIAAgARAaC6UBAQF/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQEEAIQAgAikDCEIAVgR/IAIoAhQoAkAgAikDCEIBfadBBHRqKAIARQVBAAtBAXEEQCACIAIpAwhCf3w3AwgMAQsLIAIgAikDCDcDGAwBCyACIAIoAhQpAzA3AxgLIAIpAxgL8gEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQCADKAIURQRAIANCfzcDGAwBCyADKAIUKAIEBEAgA0J/NwMYDAELIAMpAwhC////////////AFYEQCADKAIUQQRqQRJBABAVIANCfzcDGAwBCwJAIAMoAhQtABBBAXFFBEAgAykDCFBFDQELIANCADcDGAwBCyADIAMoAhQoAhQgAygCECADKQMIEC8iAjcDACACQgBTBEAgAygCFEEEaiADKAIUKAIUEBggA0J/NwMYDAELIAMgAykDADcDGAsgAykDGCECIANBIGokACACC0cBAX8jAEEgayIDJAAgAyAANgIcIAMgATcDECADIAI2AgwgAygCHCADKQMQIAMoAgwgAygCHCgCHBCfASEAIANBIGokACAAC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEG4iBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEJ8BNgIcCyADKAIcIQAgA0EgaiQAIAALqgEBAX8jAEEQayIBJAAgASAANgIIIAFBGBAZIgA2AgQCQCAARQRAIAEoAghBCGpBDkEAEBUgAUEANgIMDAELIAEoAgQgASgCCDYCACMAQRBrIgAgASgCBEEEajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCABKAIEQQA6ABAgASgCBEEANgIUIAEgASgCBDYCDAsgASgCDCEAIAFBEGok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QdAAaiADQaABahBwIARFDQAaIABBAEEAIAAoAiQRAQAaIABBADYCMCAAIAQ2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAFcjYCACACRQ0ACyADQdABaiQACy8AIAECfyACKAJMQX9MBEAgACABIAIQcQwBCyAAIAEgAhBxCyIARgRAIAEPCyAAC1kBAX8gACAALQBKIgFBf2ogAXI6AEogACgCACIBQQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQfSgAQsGAEHwoAELBgBB6KABC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELQCIAIgACAEQYH4ACADaxCzAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBDGASICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtgI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQvAIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsg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BEAgASgCGEEGNgIkCyABIAEoAhgoAihBAUHQNyABKAIYKAIgEQEANgIEIAEoAgRFBEAgAUF8NgIcDAELIAEoAhggASgCBDYCHCABKAIEIAEoAhg2AgAgASgCBEEANgI4IAEoAgRBtP4ANgIEIAEgASgCGCABKAIUENICNgIIIAEoAggEQCABKAIYKAIoIAEoAgQgASgCGCgCJBEEACABKAIYQQA2AhwLIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC60CAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYEEsEQCACQX42AhwMAQsgAiACKAIYKAIcNgIMAkAgAigCFEEASARAIAJBADYCECACQQAgAigCFGs2AhQMAQsgAiACKAIUQQR1QQVqNgIQIAIoAhRBMEgEQCACIAIoAhRBD3E2AhQLCwJAIAIoAhRFDQAgAigCFEEITgRAIAIoAhRBD0wNAQsgAkF+NgIcDAELAkAgAigCDCgCOEUNACACKAIMKAIoIAIoAhRGDQAgAigCGCgCKCACKAIMKAI4IAIoAhgoAiQRBAAgAigCDEEANgI4CyACKAIMIAIoAhA2AgwgAigCDCACKAIUNgIoIAIgAigCGBDTAjYCHAsgAigCHCEAIAJBIGokACAAC3IBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCBBLBEAgAUF+NgIMDAELIAEgASgCCCgCHDYCBCABKAIEQQA2AiwgASgCBEEANgIwIAEoAgRBADYCNCABIAEoAggQ1AI2AgwLIAEoAgwhACABQRBqJAAgAAubAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEEsEQCABQX42AgwMAQsgASABKAIIKAIcNgIEIAEoAgRBADYCICABKAIIQQA2AhQgASgCCEEANgIIIAEoAghBADYCGCABKAIEKAIMBEAgASgCCCABKAIEKAIMQQFxNgIwCyABKAIEQbT+ADYCBCABKAIEQQA2AgggASgCBEEANgIQIAEoAgRBgIACNgIYIAEoAgRBADYCJCABKAIEQQA2AjwgASgCBEEANgJAIAEoAgQgASgCBEG0CmoiADYCcCABKAIEIAA2AlQgASgCBCAANgJQIAEoAgRBATYCxDcgASgCBEF/NgLINyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAuI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AgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsLCwNAIAIoAghBAk1FBEAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIDAELCwwBCyACIAIoAkggAigCBGs2AgADQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAghBA2s2AgggAigCCEECSw0ACwsgAigCCARAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAigCCEEBSwRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAALCwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiAgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAlxBzu0ANgIYIAIoAlRB0f4ANgIEDAQLDAILIAIoAgxBwABxRQRAIAJBEGogAigCJCACLwESIAIoAixBASACKAIMdEEBa3FqQQJ0aigBADYBAAwBCwsgAigCDEEgcQRAIAIoAlRBv/4ANgIEDAILIAIoAlxB5O0ANgIYIAIoAlRB0f4ANgIEDAELQQAhACACKAJQIAIoAkxJBH8gAigCSCACKAJASQVBAAtBAXENAQsLIAIgAigCKEEDdjYCCCACIAIoAlAgAigCCGs2AlAgAiACKAIoIAIoAghBA3RrNgIoIAIgAigCLEEBIAIoAih0QQFrcTYCLCACKAJcIAIoAlA2AgAgAigCXCAC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AghBASACKAIIKAIwdDYCLCACKAIIIAIoAggoAixBAWs2AjQgAigCCCACKAIYQQdqNgJQIAIoAghBASACKAIIKAJQdDYCTCACKAIIIAIoAggoAkxBAWs2AlQgAigCCCACKAIIKAJQQQJqQQNuNgJYIAIoAigoAiggAigCCCgCLEECIAIoAigoAiARAQAhACACKAIIIAA2AjggAigCKCgCKCACKAIIKAIsQQIgAigCKCgCIBEBACEAIAIoAgggADYCQCACKAIoKAIoIAIoAggoAkxBAiACKAIoKAIgEQEAIQAgAigCCCAANgJEIAIoAghBADYCwC0gAigCCEEBIAIoAhhBBmp0NgKcLSACIAIoAigoAiggAigCCCgCnC1BBCACKAIoKAIgEQEANgIAIAIoAgggAigCADYCCCACKAIIIAIoAggoApwtQQJ0NgIMAkACQCACKAIIKAI4RQ0AIAIoAggoAkBFDQAgAigCCCgCREUNACACKAIIKAIIDQELIAIoAghBmgU2AgQgAigCKEHo1AAoAgA2AhggAigCKBCzARogAkF8NgIsDAELIAIoAgggAigCACACKAIIKAKcLUEBdkEBdGo2AqQtIAIoAgggAigCCCgCCCACKAIIKAKcLUEDbGo2ApgtIAIoAgggAigCJDYChAEgAigCCCACKAIUNgKIASACKAIIIAIoAiA6ACQgAiACKAIoEOACNgIsCyACKAIsIQAgAkEwaiQAIAALGAEBfyMAQRBrIgEgADYCDCABKAIMQQxqC2wBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBANAIAIgAigCBCACKAIMQQFxcjYCBCACIAIoAgxBAXY2AgwgAiACKAIEQQF0NgIEIAIgAigCCEF/aiIANgIIIABBAEoNAAsgAigCBEEBdguVAgEBfyMAQUBqIgMkACADIAA2AjwgAyABNgI4IAMgAjYCNCADQQA2AgwgA0EBNgIIA0AgAygCCEEPSkUEQCADIAMoAgwgAygCNCADKAIIQQFrQQF0ai8BAGpBAXQ2AgwgA0EQaiADKAIIQQF0aiADKAIMOwEAIAMgAygCCEEBajYCCAwBCwsgA0EANgIEA0AgAygCBCADKAI4TARAIAMgAygCPCADKAIEQQJ0ai8BAjYCACADKAIABEAgA0EQaiADKAIAQQF0aiIBLwEAIQAg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ACAALwG4LUHA4wAvAQAgASgCHCgCvC10cjsBuC0gASgCHCIAIAEoAhAgACgCvC1qNgK8LQsgASgCHBC3ASABQSBqJAALIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBC3ASABQRBqJAALlgEBAX8jAEEQayIBJAAgASAANgIMIAEoAgwgASgCDEGUAWo2ApgWIAEoAgxBgNsANgKgFiABKAIMIAEoAgxBiBNqNgKkFiABKAIMQZTbADYCrBYgASgCDCABKAIMQfwUajYCsBYgASgCDEGo2wA2ArgWIAEoAgxBADsBuC0gASgCDEEANgK8LSABKAIMELkBIAFBEGokAAvXDQEBfyMAQSBrIgMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGEEQdjYCDCADIAMoAhhB//8DcTYCGAJAIAMoAhBBAUYEQCADIAMoAhQtAAAgAygCGGo2AhggAygCGEHx/wNPBEAgAyADKAIYQfH/A2s2AhgLIAMgAygCGCADKAIMajYCDCADKAIMQfH/A08EQCADIAMoAgxB8f8DazYCDAsgAyADKAIYIAMoAgxBEHRyNgIcDAELIAMoAhRFBEAgA0EBNgIcDAELIAMoAhBBEEkEQANAIAMgAygCECIAQX9qNgIQIAAEQCADIAMoAhQiAEEBajYCFCADIAAtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMDAELCyADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIMQfH/A3A2AgwgAyADKAIYIAMoAgxBEHRyNgIcDAELA0AgAygCEEGwK0lFBEAgAyADKAIQQbArazYCECADQdsCNgIIA0AgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAPIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhRBEGo2AhQgAyADKAIIQX9qIgA2AgggAA0ACyADIAMoAhhB8f8DcDYCGCADIAMoAgxB8f8DcDYCDAwBCwsgAygCEARAA0AgAygCEEEQSUUEQCADIAMoAhBBEGs2AhAgAyADKAIULQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAEgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AAiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQADIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAQgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAGIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAcgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAJIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAogAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACyADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAMIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA0gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygC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JCADIAE3AxggAyACNgIUIAMgAygCJCADKQMYIAMoAhQQfyIBNwMIAkAgAVAEQCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCADYCBAJAIAMpAwggAygCBCkDIHwgAykDCFoEQCADKQMIIAMoAgQpAyB8Qv///////////wBYDQELIAMoAhRBBEEWEBUgA0IANwMoDAELIAMgAygCBCkDICADKQMIfDcDCCADKAIELwEMQQhxBEAgAygCJCgCACADKQMIQQAQKEEASARAIAMoAhQgAygCJCgCABAYIANCADcDKAwCCyADKAIkKAIAIANCBBAvQgRSBEAgAygCFCADKAIkKAIAEBggA0IANwMoDAILIAMoAABB0JadwABGBEAgAyADKQMIQgR8NwMICyADIAMpAwhCDHw3AwggAygCBEEAEIABQQFxBEAgAyADKQMIQgh8NwMICyADKQMIQv///////////wBWBEAgAygCFEEEQRYQFSADQgA3AygMAgsLIAMgAykDCDcDKAsgAykDKCEBIANBMGokACABC/8BAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABCAAUEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBSIgA7AQggAEH//wNxQQBKBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAALwAIBAX8jAEEwayICJAAgAiAANgIoIAJBgAI7ASYgAiABNgIgIAIgAi8BJkGAAnFBAEc6ABsgAkEeQS4gAi0AG0EBcRs2AhwCQCACKAIoQRpBHCACLQAbQQFxG6xBARAoQQBIBEAgAigCICACKAIoEBggAkF/NgIsDAELIAIgAigCKEEEQQYgAi0AG0EBcRusIAJBDmogAigCIBBBIgA2AgggAEUEQCACQX82AiwMAQsgAkEANgIUA0AgAigCFEECQQMgAi0AG0EBcRtIBEAgAiACKAIIEB5B//8DcSACKAIcajYCHCACIAIoAhRBAWo2AhQMAQsLIAIoAggQSEEBcUUEQCACKAIgQRRBABAVIAIoAggQFyACQX82AiwMAQsgAigCCBAXIAIgAigCHDYCLAsgAigCLCEAIAJBMGokACAAC/8DAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYKAIQQeMARwRAIAJBAToAHwwBCyACIAIoAhgoAjQgAkESakGBsgJBgAZBABBfNgIIAkAgAigCCARAIAIvARJBB04NAQsgAigCFEEVQQAQFSACQQA6AB8MAQsgAiACKAIIIAIvARKtECoiADYCDCAARQRAIAIoAhRBFEEAEBUgAkEAOgAfDAELIAJBAToABwJAAkACQCACKAIMEB5Bf2oOAgIAAQsgAigCGCkDKEIUVARAIAJBADoABwsMAQsgAigCFEEYQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAgxCAhAfLwAAQcGKAUcEQCACKAIUQRhBABAVIAIoAgwQFyACQQA6AB8MAQsCQAJAAkACQAJAIAIoAgwQjQFBf2oOAwABAgMLIAJBgQI7AQQMAwsgAkGCAjsBBAwCCyACQYMCOwEEDAELIAIoAhRBGEEAEBUgAigCDBAXIAJBADoAHwwBCyACLwESQQdHBEAgAigCFEEVQQAQFSACKAIMEBcgAkEAOgAfDAELIAIoAhggAi0AB0EBcToABiACKAIYIAIvAQQ7AVIgAigCDBAeQf//A3EhACACKAIYIAA2AhAgAigCDBAXIAJBAToAHwsgAi0AH0EBcSEAIAJBIGokACAAC7kBAQF/IwBBMGsiAiQAIAIgADsBLiACIAE7ASwgAkIANwIAIAJBADYCKCACQgA3AiAgAkIANwIYIAJCADcCECACQgA3AgggAkEANgIgIAIgAi8BLEEJdUHQAGo2AhQgAiACLwEsQQV1QQ9xQQFrNgIQIAIgAi8BLEEfcTYCDCACIAIvAS5BC3U2AgggAiACLwEuQQV1QT9xNgIEIAIgAi8BLkEBdEE+cTYCACACEAwhACACQTBqJAAgAAtMAQJ/IwBBEGsiACQAIABB2AAQGSIBNgIIAkAgAUUEQCAAQQA2AgwMAQsgACgCCBBdIAAgACgCCDYCDAsgACgCDCEBIABBEGokACABCwgAQQFBOBB9CwMAAQsL8o0BJwBBgAgLlAVObyBlcnJvcgBNdWx0aS1kaXNrIHppcCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABTZWVrIGVycm9yAFJlYWQgZXJyb3IAV3JpdGUgZXJyb3IAQ1JDIGVycm9yAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABObyBzdWNoIGZpbGUARmlsZSBhbHJlYWR5IGV4aXN0cwBDYW4ndCBvcGVuIGZpbGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAWmxpYiBlcnJvcgBNYWxsb2MgZmFpbHVyZQBFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBJbnZhbGlkIGFyZ3VtZW50AE5vdCBhIHppcCBhcmNoaXZlAEludGVybmFsIGVycm9yAFppcCBhcmNoaXZlIGluY29uc2lzdGVudABDYW4ndCByZW1vdmUgZmlsZQBFbnRyeSBoYXMgYmVlbiBkZWxldGVkAEVuY3J5cHRpb24gbWV0aG9kIG5vdCBzdXBwb3J0ZWQAUmVhZC1vbmx5IGFyY2hpdmUATm8gcGFzc3dvcmQgcHJvdmlkZWQAV3JvbmcgcGFzc3dvcmQgcHJvdmlkZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAFRlbGwgZXJyb3IAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQAQaENC4ABBAAACQQAAC8EAABOBAAAaQQAAHQEAAB/BAAAiwQAAJUEAAC3BAAAxAQAANgEAADoBAAACQUAABQFAAAjBQAAOgUAAFsFAABxBQAAggUAAJQFAACjBQAAvAUAAM4FAADlBQAABQYAABcGAAAsBgAARAYAAFwGAAByBgAAfQYAACAAQbgOCxEBAAAAAQAAAAEAAAABAAAAAQBB3A4LCQEAAAABAAAAAgBBiA8LAQEAQagPCwEBAEG0DwuSRZYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2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AAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0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AAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAMS4yLjExAC0rICAgMFgweAAobnVsbCkAQbCDAQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQtLDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGLTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAEHchwELARcAQYOIAQsF//////8AQdCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGwiQEL3Q5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAVW5rbm93biBlcnJvciAlZAAlcyVzJXMAADogAC9wcm9jL3NlbGYvZmQvAC9kZXYvdXJhbmRvbQByd2EAJXMuWFhYWFhYAHIrYgByYgBQSwUGAEGQmAELTgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAABAAAACAAAABBMAAAwTABBkJoBCwJQUABByJoBCwkfAAAAZE0AAAMAQeSaAQuMAS30UVjPjLHARva1yykxA8cEW3AwtF39IHh/i5rYWSlQaEiJq6dWA2z/t82IP9R3tCulo3DxuuSo/EGD/dlv4Yp6Ly10lgcfDQleA3YscPdApSynb1dBqKp036BYZANKx8Q8U66vXxgEFbHjbSiGqwykv0Pw6VCBOVcWUjf/////////////////////";function ne(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return o.extraStackTrace&&(e+="\n"+o.extraStackTrace()),e.replace(/\b_Z[\w\d_]+/g,(function(e){return e==e?e:e+" ["+e+"]"}))}$(re)||(re=function(e){return o.locateFile?o.locateFile(e,h):h+e}(re)),_.push({func:function(){be()}});var ie={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=ie.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return ie.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ie.normalize(e.join("/"))},join2:function(e,t){return ie.normalize(e+"/"+t)}};function oe(e){return N[Se()>>2]=e,e}var se={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:he.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=se.resolve(e).substr(1),t=se.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),s=o,A=0;A<o;A++)if(n[A]!==i[A]){s=A;break}var a=[];for(A=s;A<n.length;A++)a.push("..");return(a=a.concat(i.slice(s))).join("/")}},Ae={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ae.ttys[e]={input:[],output:[],ops:t},he.registerDevice(e,Ae.stream_ops)},stream_ops:{open:function(e){var t=Ae.ttys[e.node.rdev];if(!t)throw new he.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.get_char)throw new he.ErrnoError(60);for(var o=0,s=0;s<n;s++){var A;try{A=e.tty.ops.get_char(e.tty)}catch(e){throw new he.ErrnoError(29)}if(void 0===A&&0===o)throw new he.ErrnoError(6);if(null==A)break;o++,t[r+s]=A}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.put_char)throw new he.ErrnoError(60);try{for(var o=0;o<n;o++)e.tty.ops.put_char(e.tty,t[r+o])}catch(e){throw new he.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null,r=Buffer.alloc?Buffer.alloc(256):new Buffer(256),n=0;try{n=c.readSync(process.stdin.fd,r,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;n=0}if(!(t=n>0?r.slice(0,n).toString("utf-8"):null))return null;e.input=we(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(g(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(g(B(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(f(B(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(f(B(e.output,0)),e.output=[])}}},ae={ops_table:null,mount:function(e){return ae.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(he.isBlkdev(r)||he.isFIFO(r))throw new he.ErrnoError(63);ae.ops_table||(ae.ops_table={dir:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,lookup:ae.node_ops.lookup,mknod:ae.node_ops.mknod,rename:ae.node_ops.rename,unlink:ae.node_ops.unlink,rmdir:ae.node_ops.rmdir,readdir:ae.node_ops.readdir,symlink:ae.node_ops.symlink},stream:{llseek:ae.stream_ops.llseek}},file:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:{llseek:ae.stream_ops.llseek,read:ae.stream_ops.read,write:ae.stream_ops.write,allocate:ae.stream_ops.allocate,mmap:ae.stream_ops.mmap,msync:ae.stream_ops.msync}},link:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr,readlink:ae.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ae.node_ops.getattr,setattr:ae.node_ops.setattr},stream:he.chrdev_stream_ops}});var i=he.createNode(e,t,r,n);return he.isDir(i.mode)?(i.node_ops=ae.ops_table.dir.node,i.stream_ops=ae.ops_table.dir.stream,i.contents={}):he.isFile(i.mode)?(i.node_ops=ae.ops_table.file.node,i.stream_ops=ae.ops_table.file.stream,i.usedBytes=0,i.contents=null):he.isLink(i.mode)?(i.node_ops=ae.ops_table.link.node,i.stream_ops=ae.ops_table.link.stream):he.isChrdev(i.mode)&&(i.node_ops=ae.ops_table.chrdev.node,i.stream_ops=ae.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i),i},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=he.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,he.isDir(e.mode)?t.size=4096:he.isFile(e.mode)?t.size=e.usedBytes:he.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ae.resizeFileStorage(e,t.size)},lookup:function(e,t){throw he.genericErrors[44]},mknod:function(e,t,r,n){return ae.createNode(e,t,r,n)},rename:function(e,t,r){if(he.isDir(e.mode)){var n;try{n=he.lookupNode(t,r)}catch(e){}if(n)for(var i in n.contents)throw new he.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=he.lookupNode(e,t);for(var n in r.contents)throw new he.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=ae.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!he.isLink(e.mode))throw new he.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,i){var o=e.node.contents;if(i>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-i,n);if(s>8&&o.subarray)t.set(o.subarray(i,i+s),r);else for(var A=0;A<s;A++)t[r+A]=o[i+A];return s},write:function(e,t,r,n,i,o){if(t.buffer===x.buffer&&(o=!1),!n)return 0;var s=e.node;if(s.timestamp=Date.now(),t.subarray&&(!s.contents||s.contents.subarray)){if(o)return s.contents=t.subarray(r,r+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===i)return s.contents=t.slice(r,r+n),s.usedBytes=n,n;if(i+n<=s.usedBytes)return s.contents.set(t.subarray(r,r+n),i),n}if(ae.expandFileStorage(s,i+n),s.contents.subarray&&t.subarray)s.contents.set(t.subarray(r,r+n),i);else for(var A=0;A<n;A++)s.contents[i+A]=t[r+A];return s.usedBytes=Math.max(s.usedBytes,i+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&he.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new he.ErrnoError(28);return n},allocate:function(e,t,r){ae.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,i,o){if(I(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var s,A,a=e.node.contents;if(2&o||a.buffer!==k){if((n>0||n+r<a.length)&&(a=a.subarray?a.subarray(n,n+r):Array.prototype.slice.call(a,n,n+r)),A=!0,!(s=Ke(r)))throw new he.ErrnoError(48);x.set(a,s)}else A=!1,s=a.byteOffset;return{ptr:s,allocated:A}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;ae.stream_ops.write(e,t,0,n,r,!1);return 0}}},ce={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},ue={isWindows:!1,staticInit:function(){ue.isWindows=!!process.platform.match(/^win/);var e={fs:Ce.constants};e.fs&&(e=e.fs),ue.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY}},bufferFrom:function(e){return Buffer.alloc?Buffer.from(e):new Buffer(e)},convertNodeCode:function(e){var t=e.code;return ce[t]},mount:function(e){return ue.createNode(null,"/",ue.getMode(e.opts.root),0)},createNode:function(e,t,r,n){if(!he.isDir(r)&&!he.isFile(r)&&!he.isLink(r))throw new he.ErrnoError(28);var i=he.createNode(e,t,r);return i.node_ops=ue.node_ops,i.stream_ops=ue.stream_ops,i},getMode:function(e){var t;try{t=Ce.lstatSync(e),ue.isWindows&&(t.mode=t.mode|(292&t.mode)>>2)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return t.mode},realPath:function(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),ie.join.apply(null,t)},flagsForNode:function(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289;var t=0;for(var r in ue.flagsForNodeMap)e&r&&(t|=ue.flagsForNodeMap[r],e^=r);if(e)throw new he.ErrnoError(28);return t},node_ops:{getattr:function(e){var t,r=ue.realPath(e);try{t=Ce.lstatSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return ue.isWindows&&!t.blksize&&(t.blksize=4096),ue.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(e,t){var r=ue.realPath(e);try{if(void 0!==t.mode&&(Ce.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);Ce.utimesSync(r,n,n)}void 0!==t.size&&Ce.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},lookup:function(e,t){var r=ie.join2(ue.realPath(e),t),n=ue.getMode(r);return ue.createNode(e,t,n)},mknod:function(e,t,r,n){var i=ue.createNode(e,t,r,n),o=ue.realPath(i);try{he.isDir(i.mode)?Ce.mkdirSync(o,i.mode):Ce.writeFileSync(o,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}return i},rename:function(e,t,r){var n=ue.realPath(e),i=ie.join2(ue.realPath(t),r);try{Ce.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}e.name=r},unlink:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},rmdir:function(e,t){var r=ie.join2(ue.realPath(e),t);try{Ce.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readdir:function(e){var t=ue.realPath(e);try{return Ce.readdirSync(t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},symlink:function(e,t,r){var n=ie.join2(ue.realPath(e),t);try{Ce.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},readlink:function(e){var t=ue.realPath(e);try{return t=Ce.readlinkSync(t),t=Ee.relative(Ee.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}}},stream_ops:{open:function(e){var t=ue.realPath(e.node);try{he.isFile(e.node.mode)&&(e.nfd=Ce.openSync(t,ue.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},close:function(e){try{he.isFile(e.node.mode)&&e.nfd&&Ce.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ue.convertNodeCode(e))}},read:function(e,t,r,n,i){if(0===n)return 0;try{return Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},write:function(e,t,r,n,i){try{return Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i)}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}},llseek:function(e,t,r){var n=t;if(1===r)n+=e.position;else if(2===r&&he.isFile(e.node.mode))try{n+=Ce.fstatSync(e.nfd).size}catch(e){throw new he.ErrnoError(ue.convertNodeCode(e))}if(n<0)throw new he.ErrnoError(28);return n},mmap:function(e,t,r,n,i,o){if(I(0===t),!he.isFile(e.node.mode))throw new he.ErrnoError(43);var s=Ke(r);return ue.stream_ops.read(e,x,s,r,n),{ptr:s,allocated:!0}},msync:function(e,t,r,n,i){if(!he.isFile(e.node.mode))throw new he.ErrnoError(43);if(2&i)return 0;ue.stream_ops.write(e,t,0,n,r,!1);return 0}}},le={lookupPath:function(e){return{path:e,node:{mode:ue.getMode(e)}}},createStandardStreams:function(){he.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var e=1;e<3;e++)he.streams[e]={fd:e,nfd:e,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(e,t){he.isDir(e)?Ce.mkdirSync(e,t):Ce.writeFileSync(e,"",{mode:t})},mkdir:function(){Ce.mkdirSync.apply(void 0,arguments)},symlink:function(){Ce.symlinkSync.apply(void 0,arguments)},rename:function(){Ce.renameSync.apply(void 0,arguments)},rmdir:function(){Ce.rmdirSync.apply(void 0,arguments)},readdir:function(){Ce.readdirSync.apply(void 0,arguments)},unlink:function(){Ce.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ce.readlinkSync.apply(void 0,arguments)},stat:function(){return Ce.statSync.apply(void 0,arguments)},lstat:function(){return Ce.lstatSync.apply(void 0,arguments)},chmod:function(){Ce.chmodSync.apply(void 0,arguments)},fchmod:function(){Ce.fchmodSync.apply(void 0,arguments)},chown:function(){Ce.chownSync.apply(void 0,arguments)},fchown:function(){Ce.fchownSync.apply(void 0,arguments)},truncate:function(){Ce.truncateSync.apply(void 0,arguments)},ftruncate:function(){Ce.ftruncateSync.apply(void 0,arguments)},utime:function(){Ce.utimesSync.apply(void 0,arguments)},open:function(e,t,r,n){"string"==typeof t&&(t=me.modeStringToFlags(t));var i=Ce.openSync(e,ue.flagsForNode(t),r),o=null!=n?n:he.nextfd(i),s={fd:o,nfd:i,position:0,path:e,flags:t,seekable:!0};return he.streams[o]=s,s},close:function(e){e.stream_ops||Ce.closeSync(e.nfd),he.closeStream(e.fd)},llseek:function(e,t,r){if(e.stream_ops)return me.llseek(e,t,r);var n=t;if(1===r)n+=e.position;else if(2===r)n+=Ce.fstatSync(e.nfd).size;else if(0!==r)throw new he.ErrnoError(ce.EINVAL);if(n<0)throw new he.ErrnoError(ce.EINVAL);return e.position=n,n},read:function(e,t,r,n,i){if(e.stream_ops)return me.read(e,t,r,n,i);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.readSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},write:function(e,t,r,n,i){if(e.stream_ops)return me.write(e,t,r,n,i);1024&e.flags&&he.llseek(e,0,2);var o=void 0!==i;!o&&e.seekable&&(i=e.position);var s=Ce.writeSync(e.nfd,ue.bufferFrom(t.buffer),r,n,i);return o||(e.position+=s),s},allocate:function(){throw new he.ErrnoError(ce.EOPNOTSUPP)},mmap:function(){throw new he.ErrnoError(ce.ENODEV)},msync:function(){return 0},munmap:function(){return 0},ioctl:function(){throw new he.ErrnoError(ce.ENOTTY)}},he={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof he.ErrnoError))throw e+" : "+ne();return oe(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=se.resolve(he.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new he.ErrnoError(32);for(var i=ie.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),o=he.root,s="/",A=0;A<i.length;A++){var a=A===i.length-1;if(a&&t.parent)break;if(o=he.lookupNode(o,i[A]),s=ie.join2(s,i[A]),he.isMountpoint(o)&&(!a||a&&t.follow_mount)&&(o=o.mounted.root),!a||t.follow)for(var c=0;he.isLink(o.mode);){var u=he.readlink(s);if(s=se.resolve(ie.dirname(s),u),o=he.lookupPath(s,{recurse_count:t.recurse_count}).node,c++>40)throw new he.ErrnoError(32)}}return{path:s,node:o}},getPath:function(e){for(var t;;){if(he.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%he.nameTable.length},hashAddNode:function(e){var t=he.hashName(e.parent.id,e.name);e.name_next=he.nameTable[t],he.nameTable[t]=e},hashRemoveNode:function(e){var t=he.hashName(e.parent.id,e.name);if(he.nameTable[t]===e)he.nameTable[t]=e.name_next;else for(var r=he.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=he.mayLookup(e);if(r)throw new he.ErrnoError(r,e);for(var n=he.hashName(e.id,t),i=he.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===e.id&&o===t)return i}return he.lookup(e,t)},createNode:function(e,t,r,n){var i=new he.FSNode(e,t,r,n);return he.hashAddNode(i),i},destroyNode:function(e){he.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=he.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return he.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=he.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{he.lookupNode(e,t);return 20}catch(e){}return he.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=he.lookupNode(e,t)}catch(e){return e.errno}var i=he.nodePermissions(e,"wx");if(i)return i;if(r){if(!he.isDir(n.mode))return 54;if(he.isRoot(n)||he.getPath(n)===he.cwd())return 10}else if(he.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?he.isLink(e.mode)?32:he.isDir(e.mode)&&("r"!==he.flagsToPermissionString(t)||512&t)?31:he.nodePermissions(e,he.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||he.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!he.streams[r])return r;throw new he.ErrnoError(33)},getStream:function(e){return he.streams[e]},createStream:function(e,t,r){he.FSStream||(he.FSStream=function(){},he.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new he.FSStream;for(var i in e)n[i]=e[i];e=n;var o=he.nextfd(t,r);return e.fd=o,he.streams[o]=e,e},closeStream:function(e){he.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=he.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new he.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){he.devices[e]={stream_ops:t}},getDevice:function(e){return he.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),he.syncFSRequests++,he.syncFSRequests>1&&f("warning: "+he.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=he.getMounts(he.root.mount),n=0;function i(e){return he.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((function(t){if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:function(e,t,r){var n,i="/"===r,o=!r;if(i&&he.root)throw new he.ErrnoError(10);if(!i&&!o){var s=he.lookupPath(r,{follow_mount:!1});if(r=s.path,n=s.node,he.isMountpoint(n))throw new he.ErrnoError(10);if(!he.isDir(n.mode))throw new he.ErrnoError(54)}var A={type:e,opts:t,mountpoint:r,mounts:[]},a=e.mount(A);return a.mount=A,A.root=a,i?he.root=a:n&&(n.mounted=A,n.mount&&n.mount.mounts.push(A)),a},unmount:function(e){var t=he.lookupPath(e,{follow_mount:!1});if(!he.isMountpoint(t.node))throw new he.ErrnoError(28);var r=t.node,n=r.mounted,i=he.getMounts(n);Object.keys(he.nameTable).forEach((function(e){for(var t=he.nameTable[e];t;){var r=t.name_next;-1!==i.indexOf(t.mount)&&he.destroyNode(t),t=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);r.mount.mounts.splice(o,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=he.lookupPath(e,{parent:!0}).node,i=ie.basename(e);if(!i||"."===i||".."===i)throw new he.ErrnoError(28);var o=he.mayCreate(n,i);if(o)throw new he.ErrnoError(o);if(!n.node_ops.mknod)throw new he.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,he.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,he.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",i=0;i<r.length;++i)if(r[i]){n+="/"+r[i];try{he.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,he.mknod(e,t,r)},symlink:function(e,t){if(!se.resolve(e))throw new he.ErrnoError(44);var r=he.lookupPath(t,{parent:!0}).node;if(!r)throw new he.ErrnoError(44);var n=ie.basename(t),i=he.mayCreate(r,n);if(i)throw new he.ErrnoError(i);if(!r.node_ops.symlink)throw new he.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,i=ie.dirname(e),o=ie.dirname(t),s=ie.basename(e),A=ie.basename(t);try{r=he.lookupPath(e,{parent:!0}).node,n=he.lookupPath(t,{parent:!0}).node}catch(e){throw new he.ErrnoError(10)}if(!r||!n)throw new he.ErrnoError(44);if(r.mount!==n.mount)throw new he.ErrnoError(75);var a,c=he.lookupNode(r,s),u=se.relative(e,o);if("."!==u.charAt(0))throw new he.ErrnoError(28);if("."!==(u=se.relative(t,i)).charAt(0))throw new he.ErrnoError(55);try{a=he.lookupNode(n,A)}catch(e){}if(c!==a){var l=he.isDir(c.mode),h=he.mayDelete(r,s,l);if(h)throw new he.ErrnoError(h);if(h=a?he.mayDelete(n,A,l):he.mayCreate(n,A))throw new he.ErrnoError(h);if(!r.node_ops.rename)throw new he.ErrnoError(63);if(he.isMountpoint(c)||a&&he.isMountpoint(a))throw new he.ErrnoError(10);if(n!==r&&(h=he.nodePermissions(r,"w")))throw new he.ErrnoError(h);try{he.trackingDelegate.willMovePath&&he.trackingDelegate.willMovePath(e,t)}catch(r){f("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}he.hashRemoveNode(c);try{r.node_ops.rename(c,n,A)}catch(e){throw e}finally{he.hashAddNode(c)}try{he.trackingDelegate.onMovePath&&he.trackingDelegate.onMovePath(e,t)}catch(r){f("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=he.lookupPath(e,{parent:!0}).node,r=ie.basename(e),n=he.lookupNode(t,r),i=he.mayDelete(t,r,!0);if(i)throw new he.ErrnoError(i);if(!t.node_ops.rmdir)throw new he.ErrnoError(63);if(he.isMountpoint(n))throw new he.ErrnoError(10);try{he.trackingDelegate.willDeletePath&&he.trackingDelegate.willDeletePath(e)}catch(t){f("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),he.destroyNode(n);try{he.trackingDelegate.onDeletePath&&he.trackingDelegate.onDeletePath(e)}catch(t){f("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=he.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new he.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=he.lookupPath(e,{parent:!0}).node,r=ie.basename(e),n=he.lookupNode(t,r),i=he.mayDelete(t,r,!1);if(i)throw new he.ErrnoError(i);if(!t.node_ops.unlink)throw new he.ErrnoError(63);if(he.isMountpoint(n))throw new he.ErrnoError(10);try{he.trackingDelegate.willDeletePath&&he.trackingDelegate.willDeletePath(e)}catch(t){f("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),he.destroyNode(n);try{he.trackingDelegate.onDeletePath&&he.trackingDelegate.onDeletePath(e)}catch(t){f("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=he.lookupPath(e).node;if(!t)throw new he.ErrnoError(44);if(!t.node_ops.readlink)throw new he.ErrnoError(28);return se.resolve(he.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=he.lookupPath(e,{follow:!t}).node;if(!r)throw new he.ErrnoError(44);if(!r.node_ops.getattr)throw new he.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return he.stat(e,!0)},chmod:function(e,t,r){var n;"string"==typeof e?n=he.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new he.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){he.chmod(e,t,!0)},fchmod:function(e,t){var r=he.getStream(e);if(!r)throw new he.ErrnoError(8);he.chmod(r.node,t)},chown:function(e,t,r,n){var i;"string"==typeof e?i=he.lookupPath(e,{follow:!n}).node:i=e;if(!i.node_ops.setattr)throw new he.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:function(e,t,r){he.chown(e,t,r,!0)},fchown:function(e,t,r){var n=he.getStream(e);if(!n)throw new he.ErrnoError(8);he.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new he.ErrnoError(28);var r;"string"==typeof e?r=he.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new he.ErrnoError(63);if(he.isDir(r.mode))throw new he.ErrnoError(31);if(!he.isFile(r.mode))throw new he.ErrnoError(28);var n=he.nodePermissions(r,"w");if(n)throw new he.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=he.getStream(e);if(!r)throw new he.ErrnoError(8);if(0==(2097155&r.flags))throw new he.ErrnoError(28);he.truncate(r.node,t)},utime:function(e,t,r){var n=he.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,n,i){if(""===e)throw new he.ErrnoError(44);var s;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?he.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)s=e;else{e=ie.normalize(e);try{s=he.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var A=!1;if(64&t)if(s){if(128&t)throw new he.ErrnoError(20)}else s=he.mknod(e,r,0),A=!0;if(!s)throw new he.ErrnoError(44);if(he.isChrdev(s.mode)&&(t&=-513),65536&t&&!he.isDir(s.mode))throw new he.ErrnoError(54);if(!A){var a=he.mayOpen(s,t);if(a)throw new he.ErrnoError(a)}512&t&&he.truncate(s,0),t&=-131713;var c=he.createStream({node:s,path:he.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},n,i);c.stream_ops.open&&c.stream_ops.open(c),!o.logReadFiles||1&t||(he.readFiles||(he.readFiles={}),e in he.readFiles||(he.readFiles[e]=1,f("FS.trackingDelegate error on read file: "+e)));try{if(he.trackingDelegate.onOpenFile){var u=0;1!=(2097155&t)&&(u|=he.tracking.openFlags.READ),0!=(2097155&t)&&(u|=he.tracking.openFlags.WRITE),he.trackingDelegate.onOpenFile(e,u)}}catch(t){f("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return c},close:function(e){if(he.isClosed(e))throw new he.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{he.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new he.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new he.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,i){if(n<0||i<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(1==(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.read)throw new he.ErrnoError(28);var o=void 0!==i;if(o){if(!e.seekable)throw new he.ErrnoError(70)}else i=e.position;var s=e.stream_ops.read(e,t,r,n,i);return o||(e.position+=s),s},write:function(e,t,r,n,i,o){if(n<0||i<0)throw new he.ErrnoError(28);if(he.isClosed(e))throw new he.ErrnoError(8);if(0==(2097155&e.flags))throw new he.ErrnoError(8);if(he.isDir(e.node.mode))throw new he.ErrnoError(31);if(!e.stream_ops.write)throw new he.ErrnoError(28);e.seekable&&1024&e.flags&&he.llseek(e,0,2);var s=void 0!==i;if(s){if(!e.seekable)throw new he.ErrnoError(70)}else i=e.position;var A=e.stream_ops.write(e,t,r,n,i,o);s||(e.position+=A);try{e.path&&he.trackingDelegate.onWriteToFile&&he.trackingDelegate.onWriteToFile(e.path)}catch(t){f("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return A},allocate:function(e,t,r){if(he.isClosed(e))throw new he.ErrnoError(8);if(t<0||r<=0)throw new he.ErrnoError(28);if(0==(2097155&e.flags))throw new he.ErrnoError(8);if(!he.isFile(e.node.mode)&&!he.isDir(e.node.mode))throw new he.ErrnoError(43);if(!e.stream_ops.allocate)throw new he.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,i,o){if(0!=(2&i)&&0==(2&o)&&2!=(2097155&e.flags))throw new he.ErrnoError(2);if(1==(2097155&e.flags))throw new he.ErrnoError(2);if(!e.stream_ops.mmap)throw new he.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,i,o)},msync:function(e,t,r,n,i){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,i):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new he.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=he.open(e,t.flags),i=he.stat(e).size,o=new Uint8Array(i);return he.read(n,o,0,i,0),"utf8"===t.encoding?r=B(o,0):"binary"===t.encoding&&(r=o),he.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var n=he.open(e,r.flags,r.mode);if("string"==typeof t){var i=new Uint8Array(b(t)+1),o=v(t,i,0,i.length);he.write(n,i,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");he.write(n,t,0,t.byteLength,void 0,r.canOwn)}he.close(n)},cwd:function(){return he.currentPath},chdir:function(e){var t=he.lookupPath(e,{follow:!0});if(null===t.node)throw new he.ErrnoError(44);if(!he.isDir(t.node.mode))throw new he.ErrnoError(54);var r=he.nodePermissions(t.node,"x");if(r)throw new he.ErrnoError(r);he.currentPath=t.path},createDefaultDirectories:function(){he.mkdir("/tmp"),he.mkdir("/home"),he.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(he.mkdir("/dev"),he.registerDevice(he.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,i){return n}}),he.mkdev("/dev/null",he.makedev(1,3)),Ae.register(he.makedev(5,0),Ae.default_tty_ops),Ae.register(he.makedev(6,0),Ae.default_tty1_ops),he.mkdev("/dev/tty",he.makedev(5,0)),he.mkdev("/dev/tty1",he.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);e=function(){return crypto.getRandomValues(t),t[0]}}else{try{var n=r(76417);e=function(){return n.randomBytes(1)[0]}}catch(e){}}e||(e=function(){Z("random_device")}),he.createDevice("/dev","random",e),he.createDevice("/dev","urandom",e),he.mkdir("/dev/shm"),he.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){he.mkdir("/proc"),he.mkdir("/proc/self"),he.mkdir("/proc/self/fd"),he.mount({mount:function(){var e=he.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=+t,n=he.getStream(r);if(!n)throw new he.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return i.parent=i,i}},e}},{},"/proc/self/fd")},createStandardStreams:function(){o.stdin?he.createDevice("/dev","stdin",o.stdin):he.symlink("/dev/tty","/dev/stdin"),o.stdout?he.createDevice("/dev","stdout",null,o.stdout):he.symlink("/dev/tty","/dev/stdout"),o.stderr?he.createDevice("/dev","stderr",null,o.stderr):he.symlink("/dev/tty1","/dev/stderr");he.open("/dev/stdin","r"),he.open("/dev/stdout","w"),he.open("/dev/stderr","w")},ensureErrnoError:function(){he.ErrnoError||(he.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},he.ErrnoError.prototype=new Error,he.ErrnoError.prototype.constructor=he.ErrnoError,[44].forEach((function(e){he.genericErrors[e]=new he.ErrnoError(e),he.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){he.ensureErrnoError(),he.nameTable=new Array(4096),he.mount(ae,{},"/"),he.createDefaultDirectories(),he.createDefaultDevices(),he.createSpecialDirectories(),he.filesystems={MEMFS:ae,NODEFS:ue}},init:function(e,t,r){he.init.initialized=!0,he.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,he.createStandardStreams()},quit:function(){he.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<he.streams.length;t++){var r=he.streams[t];r&&he.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},joinPath:function(e,t){var r=ie.join.apply(null,e);return t&&"/"==r[0]&&(r=r.substr(1)),r},absolutePath:function(e,t){return se.resolve(t,e)},standardizePath:function(e){return ie.normalize(e)},findObject:function(e,t){var r=he.analyzePath(e,t);return r.exists?r.object:(oe(r.error),null)},analyzePath:function(e,t){try{e=(n=he.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=he.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=ie.basename(e),n=he.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createFolder:function(e,t,r,n){var i=ie.join2("string"==typeof e?e:he.getPath(e),t),o=he.getMode(r,n);return he.mkdir(i,o)},createPath:function(e,t,r,n){e="string"==typeof e?e:he.getPath(e);for(var i=t.split("/").reverse();i.length;){var o=i.pop();if(o){var s=ie.join2(e,o);try{he.mkdir(s)}catch(e){}e=s}}return s},createFile:function(e,t,r,n,i){var o=ie.join2("string"==typeof e?e:he.getPath(e),t),s=he.getMode(n,i);return he.create(o,s)},createDataFile:function(e,t,r,n,i,o){var s=t?ie.join2("string"==typeof e?e:he.getPath(e),t):e,A=he.getMode(n,i),a=he.create(s,A);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,l=r.length;u<l;++u)c[u]=r.charCodeAt(u);r=c}he.chmod(a,146|A);var h=he.open(a,"w");he.write(h,r,0,r.length,0,o),he.close(h),he.chmod(a,A)}return a},createDevice:function(e,t,r,n){var i=ie.join2("string"==typeof e?e:he.getPath(e),t),o=he.getMode(!!r,!!n);he.createDevice.major||(he.createDevice.major=64);var s=he.makedev(he.createDevice.major++,0);return he.registerDevice(s,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,i,o){for(var s=0,A=0;A<i;A++){var a;try{a=r()}catch(e){throw new he.ErrnoError(29)}if(void 0===a&&0===s)throw new he.ErrnoError(6);if(null==a)break;s++,t[n+A]=a}return s&&(e.node.timestamp=Date.now()),s},write:function(e,t,r,i,o){for(var s=0;s<i;s++)try{n(t[r+s])}catch(e){throw new he.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),s}}),he.mkdev(i,o,s)},createLink:function(e,t,r,n,i){var o=ie.join2("string"==typeof e?e:he.getPath(e),t);return he.symlink(r,o)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!A)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=we(A(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||oe(29),t},createLazyFile:function(e,t,r,n,i){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,s=1048576;i||(s=n);var A=this;A.setDataGetter((function(e){var t=e*s,i=(e+1)*s-1;if(i=Math.min(i,n-1),void 0===A.chunks[e]&&(A.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==s&&i.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):we(i.responseText||"",!0)}(t,i)),void 0===A.chunks[e])throw new Error("doXHR failed!");return A.chunks[e]})),!o&&n||(s=n=1,n=this.getter(0).length,s=n,g("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s={isDevice:!1,url:r},A=he.createFile(e,t,s,n,i);s.contents?A.contents=s.contents:s.url&&(A.contents=null,A.url=s.url),Object.defineProperties(A,{usedBytes:{get:function(){return this.contents.length}}});var a={};return Object.keys(A.stream_ops).forEach((function(e){var t=A.stream_ops[e];a[e]=function(){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);return t.apply(null,arguments)}})),a.read=function(e,t,r,n,i){if(!he.forceLoadFile(A))throw new he.ErrnoError(29);var o=e.node.contents;if(i>=o.length)return 0;var s=Math.min(o.length-i,n);if(o.slice)for(var a=0;a<s;a++)t[r+a]=o[i+a];else for(a=0;a<s;a++)t[r+a]=o.get(i+a);return s},A.stream_ops=a,A},createPreloadedFile:function(e,t,r,n,i,s,A,a,c,u){Browser.init();var l=t?se.resolve(ie.join2(e,t)):e;function h(r){function h(r){u&&u(),a||he.createDataFile(e,t,r,n,i,c),s&&s(),X()}var g=!1;o.preloadPlugins.forEach((function(e){g||e.canHandle(l)&&(e.handle(r,l,h,(function(){A&&A(),X()})),g=!0)})),g||h(r)}V(),"string"==typeof r?Browser.asyncLoad(r,(function(e){h(e)}),A):h(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=he.indexedDB();try{var i=n.open(he.DB_NAME(),he.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=function(){g("creating db"),i.result.createObjectStore(he.DB_STORE_NAME)},i.onsuccess=function(){var n=i.result.transaction([he.DB_STORE_NAME],"readwrite"),o=n.objectStore(he.DB_STORE_NAME),s=0,A=0,a=e.length;function c(){0==A?t():r()}e.forEach((function(e){var t=o.put(he.analyzePath(e).object.contents,e);t.onsuccess=function(){++s+A==a&&c()},t.onerror=function(){A++,s+A==a&&c()}})),n.onerror=r},i.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=he.indexedDB();try{var i=n.open(he.DB_NAME(),he.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=r,i.onsuccess=function(){var n=i.result;try{var o=n.transaction([he.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var s=o.objectStore(he.DB_STORE_NAME),A=0,a=0,c=e.length;function u(){0==a?t():r()}e.forEach((function(e){var t=s.get(e);t.onsuccess=function(){he.analyzePath(e).exists&&he.unlink(e),he.createDataFile(ie.dirname(e),ie.basename(e),t.result,!0,!0,!0),++A+a==c&&u()},t.onerror=function(){a++,A+a==c&&u()}})),o.onerror=r},i.onerror=r}},ge={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=he.cwd();else{var n=he.getStream(e);if(!n)throw new he.ErrnoError(8);r=n.path}t=ie.join2(r,t)}return t},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&ie.normalize(t)!==ie.normalize(he.getPath(e.node)))return-54;throw e}return N[r>>2]=n.dev,N[r+4>>2]=0,N[r+8>>2]=n.ino,N[r+12>>2]=n.mode,N[r+16>>2]=n.nlink,N[r+20>>2]=n.uid,N[r+24>>2]=n.gid,N[r+28>>2]=n.rdev,N[r+32>>2]=0,te=[n.size>>>0,(ee=n.size,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+40>>2]=te[0],N[r+44>>2]=te[1],N[r+48>>2]=4096,N[r+52>>2]=n.blocks,N[r+56>>2]=n.atime.getTime()/1e3|0,N[r+60>>2]=0,N[r+64>>2]=n.mtime.getTime()/1e3|0,N[r+68>>2]=0,N[r+72>>2]=n.ctime.getTime()/1e3|0,N[r+76>>2]=0,te=[n.ino>>>0,(ee=n.ino,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[r+80>>2]=te[0],N[r+84>>2]=te[1],0},doMsync:function(e,t,r,n,i){var o=F.slice(e,e+r);he.msync(t,o,i,r,n)},doMkdir:function(e,t){return"/"===(e=ie.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),he.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return he.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=he.readlink(e),i=Math.min(r,b(n)),o=x[t+i];return D(n,t,r+1),x[t+i]=o,i},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=he.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&he.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=he.getStream(r);return n&&he.close(n),he.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var s=N[t+8*o>>2],A=N[t+(8*o+4)>>2],a=he.read(e,x,s,A,n);if(a<0)return-1;if(i+=a,a<A)break}return i},doWritev:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var s=N[t+8*o>>2],A=N[t+(8*o+4)>>2],a=he.write(e,x,s,A,n);if(a<0)return-1;i+=a}return i},varargs:void 0,get:function(){return ge.varargs+=4,N[ge.varargs-4>>2]},getStr:function(e){return Q(e)},getStreamFromFD:function(e){var t=he.getStream(e);if(!t)throw new he.ErrnoError(8);return t},get64:function(e,t){return e}};function fe(e){try{return d.grow(e-k.byteLength+65535>>>16),L(d.buffer),1}catch(e){}}var pe=(D("GMT",20704,4),20704);var de=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=he.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(de.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return he.isDir(this.mode)}},isDevice:{get:function(){return he.isChrdev(this.mode)}}}),he.FSNode=de,he.staticInit();var Ce=i,Ee=r(85622);ue.staticInit();var Ie=function(e){return function(){try{return e.apply(this,arguments)}catch(e){if(!e.code)throw e;throw new he.ErrnoError(ce[e.code])}}},me=Object.assign({},he);for(var ye in le)he[ye]=Ie(le[ye]);function we(e,t,r){var n=r>0?r:b(e)+1,i=new Array(n),o=v(e,i,0,i.length);return t&&(i.length=o),i}"function"==typeof atob&&atob;function Be(e){if($(e))return function(e){var t;try{t=Buffer.from(e,"base64")}catch(r){t=new Buffer(e,"base64")}return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}(e.slice("data:application/octet-stream;base64,".length))}var Qe,ve={p:function(e,t){try{return e=ge.getStr(e),he.chmod(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},e:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 0:return(i=ge.get())<0?-28:he.open(n.path,n.flags,0,i).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var i=ge.get();return n.flags|=i,0;case 12:i=ge.get();return M[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return oe(28),-1;default:return-28}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},j:function(e,t){try{var r=ge.getStreamFromFD(e);return ge.doStat(he.stat,r.path,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},o:function(e,t,r){ge.varargs=r;try{var n=ge.getStreamFromFD(e);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var i=ge.get();return N[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:i=ge.get();return he.ioctl(n,t,i);case 21523:case 21524:return n.tty?0:-59;default:Z("bad ioctl syscall "+t)}}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},r:function(e,t,r){ge.varargs=r;try{var n=ge.getStr(e),i=ge.get();return he.open(n,t,i).fd}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},q:function(e,t,r){try{var n=ge.getStreamFromFD(e);return he.read(n,x,t,r)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},h:function(e,t){try{return e=ge.getStr(e),t=ge.getStr(t),he.rename(e,t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},s:function(e){try{return e=ge.getStr(e),he.rmdir(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},c:function(e,t){try{return e=ge.getStr(e),ge.doStat(he.stat,e,t)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},g:function(e){try{return e=ge.getStr(e),he.unlink(e),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),-e.errno}},t:function(e,t,r){F.copyWithin(e,t,t+r)},u:function(e){e>>>=0;var t=F.length;if(e>2147483648)return!1;for(var r,n,i=1;i<=4;i*=2){var o=t*(1+.2/i);if(o=Math.min(o,e+100663296),fe(Math.min(2147483648,((r=Math.max(16777216,e,o))%(n=65536)>0&&(r+=n-r%n),r))))return!0}return!1},f:function(e){try{var t=ge.getStreamFromFD(e);return he.close(t),0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},i:function(e,t){try{var r=ge.getStreamFromFD(e),n=r.tty?2:he.isDir(r.mode)?3:he.isLink(r.mode)?7:4;return x[t>>0]=n,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},n:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doReadv(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},l:function(e,t,r,n,i){try{var o=ge.getStreamFromFD(e),s=4294967296*r+(t>>>0);return s<=-9007199254740992||s>=9007199254740992?-61:(he.llseek(o,s,n),te=[o.position>>>0,(ee=o.position,+Y(ee)>=1?ee>0?(0|H(+J(ee/4294967296),4294967295))>>>0:~~+G((ee-+(~~ee>>>0))/4294967296)>>>0:0)],N[i>>2]=te[0],N[i+4>>2]=te[1],o.getdents&&0===s&&0===n&&(o.getdents=null),0)}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},d:function(e,t,r,n){try{var i=ge.getStreamFromFD(e),o=ge.doWritev(i,t,r);return N[n>>2]=o,0}catch(e){return void 0!==he&&e instanceof he.ErrnoError||Z(e),e.errno}},k:function(e){return function(e,t){var r=new Date(1e3*N[e>>2]);N[t>>2]=r.getUTCSeconds(),N[t+4>>2]=r.getUTCMinutes(),N[t+8>>2]=r.getUTCHours(),N[t+12>>2]=r.getUTCDate(),N[t+16>>2]=r.getUTCMonth(),N[t+20>>2]=r.getUTCFullYear()-1900,N[t+24>>2]=r.getUTCDay(),N[t+36>>2]=0,N[t+32>>2]=0;var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[t+28>>2]=i,N[t+40>>2]=pe,t}(e,20656)},memory:d,a:function(e){0|e},table:C,b:function(e){var t=Date.now()/1e3|0;return e&&(N[e>>2]=t),t},m:function(e){!function e(){if(!e.called){e.called=!0,N[Fe()>>2]=60*(new Date).getTimezoneOffset();var t=(new Date).getFullYear(),r=new Date(t,0,1),n=new Date(t,6,1);N[xe()>>2]=Number(r.getTimezoneOffset()!=n.getTimezoneOffset());var i=a(r),o=a(n),s=S(i),A=S(o);n.getTimezoneOffset()<r.getTimezoneOffset()?(N[ke()>>2]=s,N[ke()+4>>2]=A):(N[ke()>>2]=A,N[ke()+4>>2]=s)}function a(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}();var t=Date.UTC(N[e+20>>2]+1900,N[e+16>>2],N[e+12>>2],N[e+8>>2],N[e+4>>2],N[e>>2],0),r=new Date(t);N[e+24>>2]=r.getUTCDay();var n=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),i=(r.getTime()-n)/864e5|0;return N[e+28>>2]=i,r.getTime()/1e3|0}},De=function(){var e={a:ve};function t(e,t){var r=e.exports;o.asm=r,X()}if(V(),o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return f("Module.instantiateWasm callback failed with error: "+e),!1}return function(){var r,n,i;try{i=function(){try{if(p)return new Uint8Array(p);var e=Be(re);if(e)return e;if(a)return a(re);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){Z(e)}}(),n=new WebAssembly.Module(i),r=new WebAssembly.Instance(n,e)}catch(e){var o=e.toString();throw f("failed to compile wasm module: "+o),(o.indexOf("imported Memory")>=0||o.indexOf("memory import")>=0)&&f("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),e}t(r)}(),o.asm}(),be=o.___wasm_call_ctors=De.v,Se=(o._zipstruct_stat=De.w,o._zipstruct_statS=De.x,o._zipstruct_stat_name=De.y,o._zipstruct_stat_index=De.z,o._zipstruct_stat_size=De.A,o._zipstruct_stat_mtime=De.B,o._zipstruct_error=De.C,o._zipstruct_errorS=De.D,o._zip_close=De.E,o._zip_dir_add=De.F,o._zip_discard=De.G,o._zip_error_init_with_code=De.H,o._zip_get_error=De.I,o._zip_file_get_error=De.J,o._zip_error_strerror=De.K,o._zip_fclose=De.L,o._zip_file_add=De.M,o._zip_file_get_external_attributes=De.N,o._zip_file_set_external_attributes=De.O,o._zip_file_set_mtime=De.P,o._zip_fopen=De.Q,o._zip_fopen_index=De.R,o._zip_fread=De.S,o._zip_get_name=De.T,o._zip_get_num_entries=De.U,o._zip_name_locate=De.V,o._zip_open=De.W,o._zip_open_from_source=De.X,o._zip_set_file_compression=De.Y,o._zip_source_buffer=De.Z,o._zip_source_buffer_create=De._,o._zip_source_close=De.$,o._zip_source_error=De.aa,o._zip_source_free=De.ba,o._zip_source_keep=De.ca,o._zip_source_open=De.da,o._zip_source_read=De.ea,o._zip_source_seek=De.fa,o._zip_source_set_mtime=De.ga,o._zip_source_tell=De.ha,o._zip_stat=De.ia,o._zip_stat_index=De.ja,o._zip_ext_count_symlinks=De.ka,o.___errno_location=De.la),ke=o.__get_tzname=De.ma,xe=o.__get_daylight=De.na,Fe=o.__get_timezone=De.oa,Me=o.stackSave=De.pa,Ne=o.stackRestore=De.qa,Re=o.stackAlloc=De.ra,Ke=o._malloc=De.sa;o._free=De.ta,o.dynCall_vi=De.ua;function Le(e){function t(){Qe||(Qe=!0,o.calledRun=!0,E||(!0,o.noFSInit||he.init.initialized||he.init(),Ae.init(),P(_),he.ignorePermissions=!1,P(O),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),j.unshift(e);var e;P(j)}()))}e=e||l,q>0||(!function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)e=o.preRun.shift(),U.unshift(e);var e;P(U)}(),q>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t()))}if(o.cwrap=function(e,t,r,n){var i=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&i&&!n?m(e):function(){return y(e,t,r,arguments)}},o.getValue=function(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return x[e>>0];case"i16":return M[e>>1];case"i32":case"i64":return N[e>>2];case"float":return R[e>>2];case"double":return K[e>>3];default:Z("invalid type for getValue: "+t)}return null},W=function e(){Qe||Le(),Qe||(W=e)},o.run=Le,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();Le()},54920:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/parsers"}')},98261:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?`${o(e.parts[t][0])}-${o(e.parts[t][1])}`:o(e.parts[t]);return`[${e.inverted?"^":""}${r}]`},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return`Expected ${function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return`${o[0]} or ${o[1]}`;default:return`${o.slice(0,-1).join(", ")}, or ${o[o.length-1]}`}}(e)} but ${function(e){return e?`"${i(e)}"`:"end of input"}(t)} found.`},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={resolution:v},s=v,A=I("/",!1),a=I("@",!1),c=function(){return e.substring(p,f)},u=/^[^\/@]/,l=m(["/","@"],!0,!1),h=/^[^\/]/,g=m(["/"],!0,!1),f=0,p=0,d=[{line:1,column:1}],C=0,E=[];if("startRule"in r){if(!(r.startRule in o))throw new Error(`Can't start parsing from rule "${r.startRule}".`);s=o[r.startRule]}function I(e,t){return{type:"literal",text:e,ignoreCase:t}}function m(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function y(t){var r,n=d[t];if(n)return n;for(r=t-1;!d[r];)r--;for(n={line:(n=d[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return d[t]=n,n}function w(e,t){var r=y(e),n=y(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function B(e){f<C||(f>C&&(C=f,E=[]),E.push(e))}function Q(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function v(){var t,r,n,o;return t=f,(r=D())!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&(o=D())!==i?(p=t,t=r={from:r,descriptor:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=D())!==i&&(p=t,r=function(e){return{descriptor:e}}(r)),t=r),t}function D(){var t,r,n,o;return t=f,(r=b())!==i?(64===e.charCodeAt(f)?(n="@",f++):(n=i,B(a)),n!==i&&(o=function(){var t,r,n;t=f,r=[],h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));if(n!==i)for(;n!==i;)r.push(n),h.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(g));else r=i;r!==i&&(p=t,r=c());return t=r}())!==i?(p=t,t=r={fullName:r,description:o}):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=b())!==i&&(p=t,r=function(e){return{fullName:e}}(r)),t=r),t}function b(){var t,r,n;return t=f,64===e.charCodeAt(f)?(r="@",f++):(r=i,B(a)),r!==i&&S()!==i?(47===e.charCodeAt(f)?(n="/",f++):(n=i,B(A)),n!==i&&S()!==i?(p=t,t=r=c()):(f=t,t=i)):(f=t,t=i),t===i&&(t=f,(r=S())!==i&&(p=t,r=c()),t=r),t}function S(){var t,r,n;if(t=f,r=[],u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l)),n!==i)for(;n!==i;)r.push(n),u.test(e.charAt(f))?(n=e.charAt(f),f++):(n=i,B(l));else r=i;return r!==i&&(p=t,r=c()),t=r}if((n=s())!==i&&f===e.length)return n;throw n!==i&&f<e.length&&B({type:"end"}),Q(E,C<e.length?e.charAt(C):null,C<e.length?w(C,C+1):w(C,C))}}},92962:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return'"'+i(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?o(e.parts[t][0])+"-"+o(e.parts[t][1]):o(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return o[0]+" or "+o[1];default:return o.slice(0,-1).join(", ")+", or "+o[o.length-1]}}(e)+" but "+function(e){return e?'"'+i(e)+'"':"end of input"}(t)+" found."},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={Start:oe},s=oe,A=$(";",!1),a=$("&&",!1),c=$("||",!1),u=$("|&",!1),l=$("|",!1),h=$("=",!1),g=$("(",!1),f=$(")",!1),p=$(">>",!1),d=$(">",!1),C=$("<<<",!1),E=$("<",!1),I=$("'",!1),m=$('"',!1),y=function(e){return{type:"text",text:e}},w=$("\\",!1),B={type:"any"},Q=/^[^']/,v=ee(["'"],!0,!1),D=function(e){return e.join("")},b=/^[^$"]/,S=ee(["$",'"'],!0,!1),k=$("$(",!1),x=$("${",!1),F=$(":-",!1),M=$("}",!1),N=$(":-}",!1),R=function(e){return{name:e}},K=$("$",!1),L=/^[a-zA-Z0-9_]/,T=ee([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),P=function(){return e.substring(z,q)},U=/^[@*?#a-zA-Z0-9_\-]/,_=ee(["@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),O=/^[(){}<>$|&; \t"']/,j=ee(["(",")","{","}","<",">","$","|","&",";"," ","\t",'"',"'"],!1,!1),Y=/^[<>&; \t"']/,G=ee(["<",">","&",";"," ","\t",'"',"'"],!1,!1),J=/^[ \t]/,H=ee([" ","\t"],!1,!1),q=0,z=0,W=[{line:1,column:1}],V=0,X=[],Z=0;if("startRule"in r){if(!(r.startRule in o))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=o[r.startRule]}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function ee(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function te(t){var r,n=W[t];if(n)return n;for(r=t-1;!W[r];)r--;for(n={line:(n=W[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return W[t]=n,n}function re(e,t){var r=te(e),n=te(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ne(e){q<V||(q>V&&(V=q,X=[]),X.push(e))}function ie(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function oe(){var e,t;return e=q,(t=se())===i&&(t=null),t!==i&&(z=e,t=t||[]),e=t}function se(){var t,r,n;return t=q,(r=Ae())!==i?((n=function(){var t,r,n,o,s,a,c;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(59===e.charCodeAt(q)?(n=";",q++):(n=i,0===Z&&ne(A)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(a=[],c=Be();c!==i;)a.push(c),c=Be();a!==i?(z=t,t=r=s):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,t=r=[r].concat(n||[])):(q=t,t=i)):(q=t,t=i),t}function Ae(){var t,r,n,o,s;return t=q,(r=ae())!==i?((n=function(){var t,r,n,o,s,A,u;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"&&"===e.substr(q,2)?(t="&&",q+=2):(t=i,0===Z&&ne(a));t===i&&("||"===e.substr(q,2)?(t="||",q+=2):(t=i,0===Z&&ne(c)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=Ae())!==i){for(A=[],u=Be();u!==i;)A.push(u),u=Be();A!==i?(z=t,t=r={type:n,line:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{chain:o,then:s}:{chain:o}):(q=t,t=i)):(q=t,t=i),t}function ae(){var t,r,n,o,s;return t=q,(r=function(){var t,r,n,o,s,A,a,c,u,l,h;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if(40===e.charCodeAt(q)?(n="(",q++):(n=i,0===Z&&ne(g)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=se())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();if(A!==i)if(41===e.charCodeAt(q)?(a=")",q++):(a=i,0===Z&&ne(f)),a!==i){for(c=[],u=Be();u!==i;)c.push(u),u=Be();if(c!==i){for(u=[],l=le();l!==i;)u.push(l),l=le();if(u!==i){for(l=[],h=Be();h!==i;)l.push(h),h=Be();l!==i?(z=t,t=r={type:"subshell",subshell:s,args:u}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){for(n=[],o=ce();o!==i;)n.push(o),o=ce();if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i){if(s=[],(A=ue())!==i)for(;A!==i;)s.push(A),A=ue();else s=i;if(s!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,r=function(e,t){return{type:"command",args:t,envs:e}}(n,s),t=r):(q=t,t=i)}else q=t,t=i}else q=t,t=i}else q=t,t=i}else q=t,t=i;if(t===i){for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();if(r!==i){if(n=[],(o=ce())!==i)for(;o!==i;)n.push(o),o=ce();else n=i;if(n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r={type:"envs",envs:n}):(q=t,t=i)}else q=t,t=i}else q=t,t=i}}return t}())!==i?((n=function(){var t,r,n,o,s,A,a;t=q,r=[],n=Be();for(;n!==i;)r.push(n),n=Be();if(r!==i)if((n=function(){var t;"|&"===e.substr(q,2)?(t="|&",q+=2):(t=i,0===Z&&ne(u));t===i&&(124===e.charCodeAt(q)?(t="|",q++):(t=i,0===Z&&ne(l)));return t}())!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();if(o!==i)if((s=ae())!==i){for(A=[],a=Be();a!==i;)A.push(a),a=Be();A!==i?(z=t,t=r={type:n,chain:s}):(q=t,t=i)}else q=t,t=i;else q=t,t=i}else q=t,t=i;else q=t,t=i;return t}())===i&&(n=null),n!==i?(z=t,o=r,t=r=(s=n)?{...o,then:s}:o):(q=t,t=i)):(q=t,t=i),t}function ce(){var t,r,n,o,s,A;if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i)if((o=ge())!==i){for(s=[],A=Be();A!==i;)s.push(A),A=Be();s!==i?(z=t,t=r={name:r,args:[o]}):(q=t,t=i)}else q=t,t=i;else q=t,t=i;else q=t,t=i;if(t===i)if(t=q,(r=Ie())!==i)if(61===e.charCodeAt(q)?(n="=",q++):(n=i,0===Z&&ne(h)),n!==i){for(o=[],s=Be();s!==i;)o.push(s),s=Be();o!==i?(z=t,t=r=function(e){return{name:e,args:[]}}(r)):(q=t,t=i)}else q=t,t=i;else q=t,t=i;return t}function ue(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i&&(r=le())!==i?(z=e,e=t=r):(q=e,e=i),e===i){for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();t!==i&&(r=he())!==i?(z=e,e=t=r):(q=e,e=i)}return e}function le(){var t,r,n,o;for(t=q,r=[],n=Be();n!==i;)r.push(n),n=Be();return r!==i?(">>"===e.substr(q,2)?(n=">>",q+=2):(n=i,0===Z&&ne(p)),n===i&&(62===e.charCodeAt(q)?(n=">",q++):(n=i,0===Z&&ne(d)),n===i&&("<<<"===e.substr(q,3)?(n="<<<",q+=3):(n=i,0===Z&&ne(C)),n===i&&(60===e.charCodeAt(q)?(n="<",q++):(n=i,0===Z&&ne(E))))),n!==i&&(o=he())!==i?(z=t,t=r={type:"redirection",subtype:n,args:[o]}):(q=t,t=i)):(q=t,t=i),t}function he(){var e,t,r;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();return t!==i&&(r=ge())!==i?(z=e,e=t=r):(q=e,e=i),e}function ge(){var e,t,r,n;if(e=q,t=[],(r=fe())!==i)for(;r!==i;)t.push(r),r=fe();else t=i;return t!==i&&(z=e,n=t,t={type:"argument",segments:[].concat(...n)}),e=t}function fe(){var t,r;return t=q,(r=function(){var t,r,n,o;t=q,39===e.charCodeAt(q)?(r="'",q++):(r=i,0===Z&&ne(I));r!==i&&(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(Q.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(v)));r!==i&&(z=t,r=D(r));return t=r}())!==i?(39===e.charCodeAt(q)?(o="'",q++):(o=i,0===Z&&ne(I)),o!==i?(z=t,r=function(e){return[{type:"text",text:e}]}(n),t=r):(q=t,t=i)):(q=t,t=i);return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var t,r,n,o;t=q,34===e.charCodeAt(q)?(r='"',q++):(r=i,0===Z&&ne(m));if(r!==i){for(n=[],o=pe();o!==i;)n.push(o),o=pe();n!==i?(34===e.charCodeAt(q)?(o='"',q++):(o=i,0===Z&&ne(m)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i)}else q=t,t=i;return t}())!==i&&(z=t,r=r),(t=r)===i&&(t=q,(r=function(){var e,t,r;if(e=q,t=[],(r=de())!==i)for(;r!==i;)t.push(r),r=de();else t=i;t!==i&&(z=e,t=t);return e=t}())!==i&&(z=t,r=r),t=r)),t}function pe(){var t,r,n;return t=q,(r=Ce())!==i&&(z=t,r={type:"shell",shell:r,quoted:!0}),(t=r)===i&&(t=q,(r=Ee())!==i&&(z=t,n=r,r={type:"variable",...n,quoted:!0}),(t=r)===i&&(t=q,(r=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(b.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(S)));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,r=y(r)),t=r)),t}function de(){var t,n,o;return t=q,(n=Ce())!==i&&(z=t,n={type:"shell",shell:n,quoted:!1}),(t=n)===i&&(t=q,(n=Ee())!==i&&(z=t,o=n,n={type:"variable",...o,quoted:!1}),(t=n)===i&&(t=q,(n=function(){var t,n;t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i);o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);if(n!==i)for(;n!==i;)r.push(n),n=q,o=q,Z++,s=we(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i?(z=q,o=n,(r.isGlobPattern(o)?void 0:i)!==i?(z=t,t=n=n):(q=t,t=i)):(q=t,t=i);var o;return t}())!==i&&(z=t,n={type:"glob",pattern:n}),(t=n)===i&&(t=q,(n=function(){var t,r,n,o,s;t=q,r=[],n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w));o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i);n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));if(n!==i)for(;n!==i;)r.push(n),n=q,92===e.charCodeAt(q)?(o="\\",q++):(o=i,0===Z&&ne(w)),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i),n===i&&(n=q,o=q,Z++,s=ye(),Z--,s===i?o=void 0:(q=o,o=i),o!==i?(e.length>q?(s=e.charAt(q),q++):(s=i,0===Z&&ne(B)),s!==i?(z=n,n=o=s):(q=n,n=i)):(q=n,n=i));else r=i;r!==i&&(z=t,r=D(r));return t=r}())!==i&&(z=t,n=y(n)),t=n))),t}function Ce(){var t,r,n,o;return t=q,"$("===e.substr(q,2)?(r="$(",q+=2):(r=i,0===Z&&ne(k)),r!==i&&(n=se())!==i?(41===e.charCodeAt(q)?(o=")",q++):(o=i,0===Z&&ne(f)),o!==i?(z=t,t=r=n):(q=t,t=i)):(q=t,t=i),t}function Ee(){var t,r,n,o,s,A;return t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-"===e.substr(q,2)?(o=":-",q+=2):(o=i,0===Z&&ne(F)),o!==i&&(s=function(){var e,t,r,n,o;for(e=q,t=[],r=Be();r!==i;)t.push(r),r=Be();if(t!==i){if(r=[],(n=he())!==i)for(;n!==i;)r.push(n),n=he();else r=i;if(r!==i){for(n=[],o=Be();o!==i;)n.push(o),o=Be();n!==i?(z=e,e=t=r):(q=e,e=i)}else q=e,e=i}else q=e,e=i;return e}())!==i?(125===e.charCodeAt(q)?(A="}",q++):(A=i,0===Z&&ne(M)),A!==i?(z=t,t=r={name:n,defaultValue:s}):(q=t,t=i)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(":-}"===e.substr(q,3)?(o=":-}",q+=3):(o=i,0===Z&&ne(N)),o!==i?(z=t,t=r=function(e){return{name:e,defaultValue:[]}}(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,"${"===e.substr(q,2)?(r="${",q+=2):(r=i,0===Z&&ne(x)),r!==i&&(n=me())!==i?(125===e.charCodeAt(q)?(o="}",q++):(o=i,0===Z&&ne(M)),o!==i?(z=t,t=r=R(n)):(q=t,t=i)):(q=t,t=i),t===i&&(t=q,36===e.charCodeAt(q)?(r="$",q++):(r=i,0===Z&&ne(K)),r!==i&&(n=me())!==i?(z=t,t=r=R(n)):(q=t,t=i)))),t}function Ie(){var t,r,n;if(t=q,r=[],L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T)),n!==i)for(;n!==i;)r.push(n),L.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(T));else r=i;return r!==i&&(z=t,r=P()),t=r}function me(){var t,r,n;if(t=q,r=[],U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_)),n!==i)for(;n!==i;)r.push(n),U.test(e.charAt(q))?(n=e.charAt(q),q++):(n=i,0===Z&&ne(_));else r=i;return r!==i&&(z=t,r=P()),t=r}function ye(){var t;return O.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(j)),t}function we(){var t;return Y.test(e.charAt(q))?(t=e.charAt(q),q++):(t=i,0===Z&&ne(G)),t}function Be(){var t,r;if(t=[],J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H)),r!==i)for(;r!==i;)t.push(r),J.test(e.charAt(q))?(r=e.charAt(q),q++):(r=i,0===Z&&ne(H));else t=i;return t}if((n=s())!==i&&q===e.length)return n;throw n!==i&&q<e.length&&ne({type:"end"}),ie(X,V<e.length?e.charAt(V):null,V<e.length?re(V,V+1):re(V,V))}}},85443:e=>{"use strict";function t(e,r,n,i){this.message=e,this.expected=r,this.found=n,this.location=i,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(t,Error),t.buildMessage=function(e,t){var r={literal:function(e){return`"${i(e.text)}"`},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?`${o(e.parts[t][0])}-${o(e.parts[t][1])}`:o(e.parts[t]);return`[${e.inverted?"^":""}${r}]`},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function i(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return`Expected ${function(e){var t,n,i,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(i=e[t],r[i.type](i));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return`${o[0]} or ${o[1]}`;default:return`${o.slice(0,-1).join(", ")}, or ${o[o.length-1]}`}}(e)} but ${function(e){return e?`"${i(e)}"`:"end of input"}(t)} found.`},e.exports={SyntaxError:t,parse:function(e,r){r=void 0!==r?r:{};var n,i={},o={Start:le},s=le,A=ie("-",!1),a=ie("#",!1),c={type:"any"},u=ie(":",!1),l=function(e,t){return{[e]:t}},h=ie(",",!1),g=function(e,t){return t},f=se("correct indentation"),p=ie(" ",!1),d=se("pseudostring"),C=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,E=oe(["\r","\n","\t"," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),I=/^[^\r\n\t ,\][{}:#"']/,m=oe(["\r","\n","\t"," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),y=function(){return ne().replace(/^ *| *$/g,"")},w=ie("--",!1),B=/^[a-zA-Z\/0-9]/,Q=oe([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),v=/^[^\r\n\t :,]/,D=oe(["\r","\n","\t"," ",":",","],!0,!1),b=ie("null",!1),S=ie("true",!1),k=ie("false",!1),x=se("string"),F=ie('"',!1),M=/^[^"\\\0-\x1F\x7F]/,N=oe(['"',"\\",["\0",""],""],!0,!1),R=ie('\\"',!1),K=ie("\\\\",!1),L=ie("\\/",!1),T=ie("\\b",!1),P=ie("\\f",!1),U=ie("\\n",!1),_=ie("\\r",!1),O=ie("\\t",!1),j=ie("\\u",!1),Y=/^[0-9a-fA-F]/,G=oe([["0","9"],["a","f"],["A","F"]],!1,!1),J=se("blank space"),H=/^[ \t]/,q=oe([" ","\t"],!1,!1),z=(se("white space"),oe([" ","\t","\n","\r"],!1,!1),ie("\r\n",!1)),W=ie("\n",!1),V=ie("\r",!1),X=0,Z=0,$=[{line:1,column:1}],ee=0,te=[],re=0;if("startRule"in r){if(!(r.startRule in o))throw new Error(`Can't start parsing from rule "${r.startRule}".`);s=o[r.startRule]}function ne(){return e.substring(Z,X)}function ie(e,t){return{type:"literal",text:e,ignoreCase:t}}function oe(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function se(e){return{type:"other",description:e}}function Ae(t){var r,n=$[t];if(n)return n;for(r=t-1;!$[r];)r--;for(n={line:(n=$[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return $[t]=n,n}function ae(e,t){var r=Ae(e),n=Ae(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ce(e){X<ee||(X>ee&&(ee=X,te=[]),te.push(e))}function ue(e,r,n){return new t(t.buildMessage(e,r),e,r,n)}function le(){return ge()}function he(){var t,r,n;return t=X,de()!==i?(45===e.charCodeAt(X)?(r="-",X++):(r=i,0===re&&ce(A)),r!==i&&De()!==i&&(n=pe())!==i?(Z=t,t=n):(X=t,t=i)):(X=t,t=i),t}function ge(){var e,t,r,n;for(e=X,t=[],r=fe();r!==i;)t.push(r),r=fe();return t!==i&&(Z=e,n=t,t=Object.assign({},...n)),e=t}function fe(){var t,r,n,o,s,A,f,p,d,C,E,I;if(t=X,(r=De())===i&&(r=null),r!==i){if(n=X,35===e.charCodeAt(X)?(o="#",X++):(o=i,0===re&&ce(a)),o!==i){if(s=[],A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i),A!==i)for(;A!==i;)s.push(A),A=X,f=X,re++,p=Se(),re--,p===i?f=void 0:(X=f,f=i),f!==i?(e.length>X?(p=e.charAt(X),X++):(p=i,0===re&&ce(c)),p!==i?A=f=[f,p]:(X=A,A=i)):(X=A,A=i);else s=i;s!==i?n=o=[o,s]:(X=n,n=i)}else X=n,n=i;if(n===i&&(n=null),n!==i){if(o=[],(s=be())!==i)for(;s!==i;)o.push(s),s=be();else o=i;o!==i?(Z=t,t=r={}):(X=t,t=i)}else X=t,t=i}else X=t,t=i;if(t===i&&(t=X,(r=de())!==i&&(n=function(){var e;(e=Be())===i&&(e=me());return e}())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,(r=de())!==i&&(n=Ie())!==i?((o=De())===i&&(o=null),o!==i?(58===e.charCodeAt(X)?(s=":",X++):(s=i,0===re&&ce(u)),s!==i?((A=De())===i&&(A=null),A!==i&&(f=pe())!==i?(Z=t,t=r=l(n,f)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i),t===i))){if(t=X,(r=de())!==i)if((n=Ie())!==i)if((o=De())!==i)if((s=function(){var e;(e=we())===i&&(e=Be())===i&&(e=ye());return e}())!==i){if(A=[],(f=be())!==i)for(;f!==i;)A.push(f),f=be();else A=i;A!==i?(Z=t,t=r=l(n,s)):(X=t,t=i)}else X=t,t=i;else X=t,t=i;else X=t,t=i;else X=t,t=i;if(t===i)if(t=X,(r=de())!==i)if((n=Ie())!==i){if(o=[],s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i),s!==i)for(;s!==i;)o.push(s),s=X,(A=De())===i&&(A=null),A!==i?(44===e.charCodeAt(X)?(f=",",X++):(f=i,0===re&&ce(h)),f!==i?((p=De())===i&&(p=null),p!==i&&(d=Ie())!==i?(Z=s,s=A=g(0,d)):(X=s,s=i)):(X=s,s=i)):(X=s,s=i);else o=i;o!==i?((s=De())===i&&(s=null),s!==i?(58===e.charCodeAt(X)?(A=":",X++):(A=i,0===re&&ce(u)),A!==i?((f=De())===i&&(f=null),f!==i&&(p=pe())!==i?(Z=t,C=n,E=o,I=p,t=r=Object.assign({},...[C].concat(E).map(e=>({[e]:I})))):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)):(X=t,t=i)}else X=t,t=i;else X=t,t=i}return t}function pe(){var t,r,n,o,s,a,c;if(t=X,r=X,re++,n=X,(o=Se())!==i&&(s=function(){var t,r,n;t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));for(;n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));r!==i?(Z=X,(n=(n=r.length===(xe+1)*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i);return t}())!==i?(45===e.charCodeAt(X)?(a="-",X++):(a=i,0===re&&ce(A)),a!==i&&(c=De())!==i?n=o=[o,s,a,c]:(X=n,n=i)):(X=n,n=i),re--,n!==i?(X=r,r=void 0):r=i,r!==i&&(n=be())!==i&&(o=Ce())!==i&&(s=function(){var e,t,r,n;for(e=X,t=[],r=he();r!==i;)t.push(r),r=he();return t!==i&&(Z=e,n=t,t=[].concat(...n)),e=t}())!==i&&(a=Ee())!==i?(Z=t,t=r=s):(X=t,t=i),t===i&&(t=X,(r=Se())!==i&&(n=Ce())!==i&&(o=ge())!==i&&(s=Ee())!==i?(Z=t,t=r=o):(X=t,t=i),t===i))if(t=X,(r=function(){var t;(t=we())===i&&(t=function(){var t,r;t=X,"true"===e.substr(X,4)?(r="true",X+=4):(r=i,0===re&&ce(S));r!==i&&(Z=t,r=!0);(t=r)===i&&(t=X,"false"===e.substr(X,5)?(r="false",X+=5):(r=i,0===re&&ce(k)),r!==i&&(Z=t,r=!1),t=r);return t}())===i&&(t=Be())===i&&(t=me());return t}())!==i){if(n=[],(o=be())!==i)for(;o!==i;)n.push(o),o=be();else n=i;n!==i?(Z=t,t=r=r):(X=t,t=i)}else X=t,t=i;return t}function de(){var t,r,n;for(re++,t=X,r=[],32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));n!==i;)r.push(n),32===e.charCodeAt(X)?(n=" ",X++):(n=i,0===re&&ce(p));return r!==i?(Z=X,(n=(n=r.length===xe*ke)?void 0:i)!==i?t=r=[r,n]:(X=t,t=i)):(X=t,t=i),re--,t===i&&(r=i,0===re&&ce(f)),t}function Ce(){return Z=X,xe++,!0?void 0:i}function Ee(){return Z=X,xe--,!0?void 0:i}function Ie(){var e,t,r;if((e=Be())===i){if(e=X,t=[],(r=ye())!==i)for(;r!==i;)t.push(r),r=ye();else t=i;t!==i&&(Z=e,t=ne()),e=t}return e}function me(){var t,r,n,o,s,A;if(re++,t=X,C.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(E)),r!==i){for(n=[],o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);o!==i;)n.push(o),o=X,(s=De())===i&&(s=null),s!==i?(I.test(e.charAt(X))?(A=e.charAt(X),X++):(A=i,0===re&&ce(m)),A!==i?o=s=[s,A]:(X=o,o=i)):(X=o,o=i);n!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;return re--,t===i&&(r=i,0===re&&ce(d)),t}function ye(){var t,r,n,o,s;if(t=X,"--"===e.substr(X,2)?(r="--",X+=2):(r=i,0===re&&ce(w)),r===i&&(r=null),r!==i)if(B.test(e.charAt(X))?(n=e.charAt(X),X++):(n=i,0===re&&ce(Q)),n!==i){for(o=[],v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));s!==i;)o.push(s),v.test(e.charAt(X))?(s=e.charAt(X),X++):(s=i,0===re&&ce(D));o!==i?(Z=t,t=r=y()):(X=t,t=i)}else X=t,t=i;else X=t,t=i;return t}function we(){var t,r;return t=X,"null"===e.substr(X,4)?(r="null",X+=4):(r=i,0===re&&ce(b)),r!==i&&(Z=t,r=null),t=r}function Be(){var t,r,n,o;return re++,t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i?(34===e.charCodeAt(X)?(n='"',X++):(n=i,0===re&&ce(F)),n!==i?(Z=t,t=r=""):(X=t,t=i)):(X=t,t=i),t===i&&(t=X,34===e.charCodeAt(X)?(r='"',X++):(r=i,0===re&&ce(F)),r!==i&&(n=function(){var e,t,r;if(e=X,t=[],(r=Qe())!==i)for(;r!==i;)t.push(r),r=Qe();else t=i;t!==i&&(Z=e,t=t.join(""));return e=t}())!==i?(34===e.charCodeAt(X)?(o='"',X++):(o=i,0===re&&ce(F)),o!==i?(Z=t,t=r=n):(X=t,t=i)):(X=t,t=i)),re--,t===i&&(r=i,0===re&&ce(x)),t}function Qe(){var t,r,n,o,s,A,a,c,u,l;return M.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(N)),t===i&&(t=X,'\\"'===e.substr(X,2)?(r='\\"',X+=2):(r=i,0===re&&ce(R)),r!==i&&(Z=t,r='"'),(t=r)===i&&(t=X,"\\\\"===e.substr(X,2)?(r="\\\\",X+=2):(r=i,0===re&&ce(K)),r!==i&&(Z=t,r="\\"),(t=r)===i&&(t=X,"\\/"===e.substr(X,2)?(r="\\/",X+=2):(r=i,0===re&&ce(L)),r!==i&&(Z=t,r="/"),(t=r)===i&&(t=X,"\\b"===e.substr(X,2)?(r="\\b",X+=2):(r=i,0===re&&ce(T)),r!==i&&(Z=t,r="\b"),(t=r)===i&&(t=X,"\\f"===e.substr(X,2)?(r="\\f",X+=2):(r=i,0===re&&ce(P)),r!==i&&(Z=t,r="\f"),(t=r)===i&&(t=X,"\\n"===e.substr(X,2)?(r="\\n",X+=2):(r=i,0===re&&ce(U)),r!==i&&(Z=t,r="\n"),(t=r)===i&&(t=X,"\\r"===e.substr(X,2)?(r="\\r",X+=2):(r=i,0===re&&ce(_)),r!==i&&(Z=t,r="\r"),(t=r)===i&&(t=X,"\\t"===e.substr(X,2)?(r="\\t",X+=2):(r=i,0===re&&ce(O)),r!==i&&(Z=t,r="\t"),(t=r)===i&&(t=X,"\\u"===e.substr(X,2)?(r="\\u",X+=2):(r=i,0===re&&ce(j)),r!==i&&(n=ve())!==i&&(o=ve())!==i&&(s=ve())!==i&&(A=ve())!==i?(Z=t,a=n,c=o,u=s,l=A,t=r=String.fromCharCode(parseInt(`0x${a}${c}${u}${l}`))):(X=t,t=i)))))))))),t}function ve(){var t;return Y.test(e.charAt(X))?(t=e.charAt(X),X++):(t=i,0===re&&ce(G)),t}function De(){var t,r;if(re++,t=[],H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q)),r!==i)for(;r!==i;)t.push(r),H.test(e.charAt(X))?(r=e.charAt(X),X++):(r=i,0===re&&ce(q));else t=i;return re--,t===i&&(r=i,0===re&&ce(J)),t}function be(){var e,t,r,n,o,s;if(e=X,(t=Se())!==i){for(r=[],n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);n!==i;)r.push(n),n=X,(o=De())===i&&(o=null),o!==i&&(s=Se())!==i?n=o=[o,s]:(X=n,n=i);r!==i?e=t=[t,r]:(X=e,e=i)}else X=e,e=i;return e}function Se(){var t;return"\r\n"===e.substr(X,2)?(t="\r\n",X+=2):(t=i,0===re&&ce(z)),t===i&&(10===e.charCodeAt(X)?(t="\n",X++):(t=i,0===re&&ce(W)),t===i&&(13===e.charCodeAt(X)?(t="\r",X++):(t=i,0===re&&ce(V)))),t}const ke=2;let xe=0;if((n=s())!==i&&X===e.length)return n;throw n!==i&&X<e.length&&ce({type:"end"}),ue(te,ee<e.length?e.charAt(ee):null,ee<e.length?ae(ee,ee+1):ae(ee,ee))}}},20103:(e,t,r)=>{e.exports=r(78761).brotliDecompressSync(Buffer.from("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","base64")).toString()},75418:e=>{"use strict";e.exports=JSON.parse('{"u2":"@yarnpkg/shell"}')},42357:e=>{"use strict";e.exports=require("assert")},64293:e=>{"use strict";e.exports=require("buffer")},63129:e=>{"use strict";e.exports=require("child_process")},27619:e=>{"use strict";e.exports=require("constants")},76417:e=>{"use strict";e.exports=require("crypto")},40881:e=>{"use strict";e.exports=require("dns")},28614:e=>{"use strict";e.exports=require("events")},35747:e=>{"use strict";e.exports=require("fs")},98605:e=>{"use strict";e.exports=require("http")},97565:e=>{"use strict";e.exports=require("http2")},57211:e=>{"use strict";e.exports=require("https")},32282:e=>{"use strict";e.exports=require("module")},11631:e=>{"use strict";e.exports=require("net")},12087:e=>{"use strict";e.exports=require("os")},85622:e=>{"use strict";e.exports=require("path")},71191:e=>{"use strict";e.exports=require("querystring")},51058:e=>{"use strict";e.exports=require("readline")},92413:e=>{"use strict";e.exports=require("stream")},24304:e=>{"use strict";e.exports=require("string_decoder")},4016:e=>{"use strict";e.exports=require("tls")},33867:e=>{"use strict";e.exports=require("tty")},78835:e=>{"use strict";e.exports=require("url")},31669:e=>{"use strict";e.exports=require("util")},68987:e=>{"use strict";e.exports=require("v8")},92184:e=>{"use strict";e.exports=require("vm")},78761:e=>{"use strict";e.exports=require("zlib")}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(28638)})();
\ No newline at end of file
diff --git a/Timeline/ClientApp/.yarn/sdks/eslint/lib/api.js b/Timeline/ClientApp/.yarn/sdks/eslint/lib/api.js
deleted file mode 100644
index ac3c9fc0..00000000
--- a/Timeline/ClientApp/.yarn/sdks/eslint/lib/api.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-const {existsSync} = require(`fs`);
-const {createRequire, createRequireFromPath} = require(`module`);
-const {resolve} = require(`path`);
-
-const relPnpApiPath = "../../../../.pnp.js";
-
-const absPnpApiPath = resolve(__dirname, relPnpApiPath);
-const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
-
-if (existsSync(absPnpApiPath)) {
-  if (!process.versions.pnp) {
-    // Setup the environment to be able to require eslint/lib/api.js
-    require(absPnpApiPath).setup();
-  }
-}
-
-// Defer to the real eslint/lib/api.js your application uses
-module.exports = absRequire(`eslint/lib/api.js`);
diff --git a/Timeline/ClientApp/.yarn/sdks/eslint/package.json b/Timeline/ClientApp/.yarn/sdks/eslint/package.json
deleted file mode 100644
index 517ac919..00000000
--- a/Timeline/ClientApp/.yarn/sdks/eslint/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "name": "eslint",
-  "version": "7.5.0-pnpify",
-  "main": "./lib/api.js",
-  "type": "commonjs"
-}
\ No newline at end of file
diff --git a/Timeline/ClientApp/.yarn/sdks/integrations.yml b/Timeline/ClientApp/.yarn/sdks/integrations.yml
deleted file mode 100644
index bce9333e..00000000
--- a/Timeline/ClientApp/.yarn/sdks/integrations.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file is automatically generated by PnPify.
-# Manual changes will be lost!
-
-integrations:
-  - vscode
diff --git a/Timeline/ClientApp/.yarn/sdks/prettier/index.js b/Timeline/ClientApp/.yarn/sdks/prettier/index.js
deleted file mode 100644
index db0cd170..00000000
--- a/Timeline/ClientApp/.yarn/sdks/prettier/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-const {existsSync} = require(`fs`);
-const {createRequire, createRequireFromPath} = require(`module`);
-const {resolve} = require(`path`);
-
-const relPnpApiPath = "../../../.pnp.js";
-
-const absPnpApiPath = resolve(__dirname, relPnpApiPath);
-const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
-
-if (existsSync(absPnpApiPath)) {
-  if (!process.versions.pnp) {
-    // Setup the environment to be able to require prettier/index.js
-    require(absPnpApiPath).setup();
-  }
-}
-
-// Defer to the real prettier/index.js your application uses
-module.exports = absRequire(`prettier/index.js`);
diff --git a/Timeline/ClientApp/.yarn/sdks/prettier/package.json b/Timeline/ClientApp/.yarn/sdks/prettier/package.json
deleted file mode 100644
index 3f4429dc..00000000
--- a/Timeline/ClientApp/.yarn/sdks/prettier/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "name": "prettier",
-  "version": "2.0.5-pnpify",
-  "main": "./index.js",
-  "type": "commonjs"
-}
\ No newline at end of file
diff --git a/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsc.js b/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsc.js
deleted file mode 100644
index e030711c..00000000
--- a/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsc.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-const {existsSync} = require(`fs`);
-const {createRequire, createRequireFromPath} = require(`module`);
-const {resolve} = require(`path`);
-
-const relPnpApiPath = "../../../../.pnp.js";
-
-const absPnpApiPath = resolve(__dirname, relPnpApiPath);
-const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
-
-if (existsSync(absPnpApiPath)) {
-  if (!process.versions.pnp) {
-    // Setup the environment to be able to require typescript/lib/tsc.js
-    require(absPnpApiPath).setup();
-  }
-}
-
-// Defer to the real typescript/lib/tsc.js your application uses
-module.exports = absRequire(`typescript/lib/tsc.js`);
diff --git a/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsserver.js b/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsserver.js
deleted file mode 100644
index 75c31bd3..00000000
--- a/Timeline/ClientApp/.yarn/sdks/typescript/lib/tsserver.js
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env node
-
-const {existsSync} = require(`fs`);
-const {createRequire, createRequireFromPath} = require(`module`);
-const {resolve} = require(`path`);
-
-const relPnpApiPath = "../../../../.pnp.js";
-
-const absPnpApiPath = resolve(__dirname, relPnpApiPath);
-const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
-
-const moduleWrapper = tsserver => {
-  // VSCode sends the zip paths to TS using the "zip://" prefix, that TS
-  // doesn't understand. This layer makes sure to remove the protocol
-  // before forwarding it to TS, and to add it back on all returned paths.
-
-  const {isAbsolute} = require(`path`);
-
-  const Session = tsserver.server.Session;
-  const {onMessage: originalOnMessage, send: originalSend} = Session.prototype;
-
-  return Object.assign(Session.prototype, {
-    onMessage(/** @type {string} */ message) {
-      return originalOnMessage.call(this, JSON.stringify(JSON.parse(message), (key, value) => {
-        return typeof value === 'string' ? removeZipPrefix(value) : value;
-      }));
-    },
-
-    send(/** @type {any} */ msg) {
-      return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => {
-        return typeof value === 'string' ? addZipPrefix(value) : value;
-      })));
-    }
-  });
-
-  function addZipPrefix(str) {
-    // We add the `zip:` prefix to both `.zip/` paths and virtual paths
-    if (isAbsolute(str) && !str.match(/^zip:/) && (str.match(/\.zip\//) || str.match(/\$\$virtual\//))) {
-      // Absolute VSCode `Uri.fsPath`s need to start with a slash.
-      // VSCode only adds it automatically for supported schemes,
-      // so we have to do it manually for the `zip` scheme.
-      return `zip:${str.replace(/^\/?/, `/`)}`;
-    } else {
-      return str;
-    }
-  }
-
-  function removeZipPrefix(str) {
-    return process.platform === 'win32'
-      ? str.replace(/^zip:\//, ``)
-      : str.replace(/^zip:/, ``);
-  }
-};
-
-if (existsSync(absPnpApiPath)) {
-  if (!process.versions.pnp) {
-    // Setup the environment to be able to require typescript/lib/tsserver.js
-    require(absPnpApiPath).setup();
-  }
-}
-
-// Defer to the real typescript/lib/tsserver.js your application uses
-module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`));
diff --git a/Timeline/ClientApp/.yarn/sdks/typescript/lib/typescript.js b/Timeline/ClientApp/.yarn/sdks/typescript/lib/typescript.js
deleted file mode 100644
index 7e3c852f..00000000
--- a/Timeline/ClientApp/.yarn/sdks/typescript/lib/typescript.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-const {existsSync} = require(`fs`);
-const {createRequire, createRequireFromPath} = require(`module`);
-const {resolve} = require(`path`);
-
-const relPnpApiPath = "../../../../.pnp.js";
-
-const absPnpApiPath = resolve(__dirname, relPnpApiPath);
-const absRequire = (createRequire || createRequireFromPath)(absPnpApiPath);
-
-if (existsSync(absPnpApiPath)) {
-  if (!process.versions.pnp) {
-    // Setup the environment to be able to require typescript/lib/typescript.js
-    require(absPnpApiPath).setup();
-  }
-}
-
-// Defer to the real typescript/lib/typescript.js your application uses
-module.exports = absRequire(`typescript/lib/typescript.js`);
diff --git a/Timeline/ClientApp/.yarn/sdks/typescript/package.json b/Timeline/ClientApp/.yarn/sdks/typescript/package.json
deleted file mode 100644
index 4b400ac3..00000000
--- a/Timeline/ClientApp/.yarn/sdks/typescript/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "name": "typescript",
-  "version": "3.9.7-pnpify",
-  "main": "./lib/typescript.js",
-  "type": "commonjs"
-}
\ No newline at end of file
diff --git a/Timeline/ClientApp/.yarnrc.yml b/Timeline/ClientApp/.yarnrc.yml
deleted file mode 100644
index 2e4e43a7..00000000
--- a/Timeline/ClientApp/.yarnrc.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-plugins:
-  - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
-    spec: "@yarnpkg/plugin-interactive-tools"
-
-yarnPath: .yarn/releases/yarn-2.1.1.cjs
diff --git a/Timeline/ClientApp/LICENSE b/Timeline/ClientApp/LICENSE
deleted file mode 100644
index 238cd2d9..00000000
--- a/Timeline/ClientApp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 杨宇千
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/Timeline/ClientApp/package.json b/Timeline/ClientApp/package.json
deleted file mode 100644
index 65c5cbe2..00000000
--- a/Timeline/ClientApp/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
-  "name": "timeline",
-  "version": "0.1.0",
-  "private": true,
-  "homepage": "https://crupest.xyz",
-  "keywords": [],
-  "description": "Timeline app.",
-  "dependencies": {
-    "axios": "^0.21.0",
-    "bootstrap": "^4.5.3",
-    "bootstrap-icons": "^1.0.0",
-    "classnames": "^2.2.6",
-    "clsx": "^1.1.1",
-    "core-js": "^3.6.5",
-    "i18next": "^19.8.3",
-    "i18next-browser-languagedetector": "^6.0.1",
-    "localforage": "^1.9.0",
-    "lodash": "^4.17.20",
-    "pepjs": "^0.5.2",
-    "react": "^17.0.1",
-    "react-bootstrap": "^1.4.0",
-    "react-dom": "^17.0.1",
-    "react-hot-loader": "^4.13.0",
-    "react-i18next": "^11.7.3",
-    "react-inlinesvg": "^2.1.1",
-    "react-responsive": "^8.1.0",
-    "react-router": "^5.2.0",
-    "react-router-bootstrap": "^0.25.0",
-    "react-router-dom": "^5.2.0",
-    "regenerator-runtime": "^0.13.7",
-    "rxjs": "^6.6.3",
-    "workbox-precaching": "^5.1.4",
-    "workbox-routing": "^5.1.4",
-    "workbox-strategies": "^5.1.4",
-    "workbox-window": "^5.1.4",
-    "xregexp": "^4.3.0"
-  },
-  "scripts": {
-    "start": "webpack-dev-server --config ./webpack.config.dev.js",
-    "build": "webpack --config ./webpack.config.prod.js",
-    "lint": "eslint src/ --ext .js --ext .jsx --ext .ts --ext .tsx"
-  },
-  "browserslist": {
-    "production": [
-      ">0.2%",
-      "not dead",
-      "not op_mini all"
-    ],
-    "development": [
-      "last 1 chrome version",
-      "last 1 firefox version",
-      "last 1 safari version"
-    ]
-  },
-  "devDependencies": {
-    "@babel/core": "^7.12.3",
-    "@babel/plugin-proposal-class-properties": "^7.12.1",
-    "@babel/plugin-proposal-decorators": "^7.12.1",
-    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
-    "@babel/plugin-proposal-optional-chaining": "^7.12.1",
-    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
-    "@babel/preset-env": "^7.12.1",
-    "@babel/preset-react": "^7.12.1",
-    "@babel/preset-typescript": "^7.12.1",
-    "@hot-loader/react-dom": "^17.0.0",
-    "@types/classnames": "^2.2.10",
-    "@types/lodash": "^4.14.162",
-    "@types/node": "^14.14.5",
-    "@types/react": "^16.9.53",
-    "@types/react-dom": "^16.9.8",
-    "@types/react-responsive": "^8.0.2",
-    "@types/react-router": "^5.1.8",
-    "@types/react-router-bootstrap": "^0.24.5",
-    "@types/react-router-dom": "^5.1.6",
-    "@types/webpack-env": "^1.15.3",
-    "@types/xregexp": "^4.3.0",
-    "@typescript-eslint/eslint-plugin": "^4.6.0",
-    "@typescript-eslint/parser": "^4.6.0",
-    "@yarnpkg/pnpify": "^2.3.3",
-    "babel-loader": "^8.1.0",
-    "babel-plugin-transform-builtin-extend": "^1.1.2",
-    "clean-webpack-plugin": "^3.0.0",
-    "copy-webpack-plugin": "^6.2.1",
-    "css-loader": "^5.0.0",
-    "eslint": "^7.12.1",
-    "eslint-config-prettier": "^6.14.0",
-    "eslint-plugin-import": "^2.22.1",
-    "eslint-plugin-prettier": "^3.1.4",
-    "eslint-plugin-react": "^7.21.5",
-    "eslint-plugin-react-hooks": "^4.2.0",
-    "file-loader": "^6.1.1",
-    "html-webpack-plugin": "^4.5.0",
-    "http-server": "^0.12.3",
-    "mini-css-extract-plugin": "^1.2.0",
-    "postcss": "^8.1.4",
-    "postcss-loader": "^4.0.4",
-    "postcss-preset-env": "^6.7.0",
-    "prettier": "^2.1.2",
-    "sass": "^1.27.0",
-    "sass-loader": "^10.0.4",
-    "style-loader": "^2.0.0",
-    "ts-loader": "^8.0.7",
-    "typescript": "^4.0.5",
-    "url-loader": "^4.1.1",
-    "webpack": "^5.2.0",
-    "webpack-chain": "^6.5.1",
-    "webpack-cli": "^4.1.0",
-    "webpack-dev-server": "^3.11.0",
-    "workbox-webpack-plugin": "^5.1.4"
-  }
-}
diff --git a/Timeline/ClientApp/postcss.config.js b/Timeline/ClientApp/postcss.config.js
deleted file mode 100644
index 74ee8155..00000000
--- a/Timeline/ClientApp/postcss.config.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
-  plugins: [
-    [
-      "postcss-preset-env",
-      {
-        // Options
-      },
-    ],
-  ],
-};
diff --git a/Timeline/ClientApp/public/android-chrome-192x192.png b/Timeline/ClientApp/public/android-chrome-192x192.png
deleted file mode 100644
index da9b6b81..00000000
Binary files a/Timeline/ClientApp/public/android-chrome-192x192.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/android-chrome-512x512.png b/Timeline/ClientApp/public/android-chrome-512x512.png
deleted file mode 100644
index fa84e055..00000000
Binary files a/Timeline/ClientApp/public/android-chrome-512x512.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/apple-touch-icon.png b/Timeline/ClientApp/public/apple-touch-icon.png
deleted file mode 100644
index d5a3fb45..00000000
Binary files a/Timeline/ClientApp/public/apple-touch-icon.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/browserconfig.xml b/Timeline/ClientApp/public/browserconfig.xml
deleted file mode 100644
index f2c89409..00000000
--- a/Timeline/ClientApp/public/browserconfig.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<browserconfig>
-    <msapplication>
-        <tile>
-            <square150x150logo src="/mstile-150x150.png"/>
-            <TileColor>#2d89ef</TileColor>
-        </tile>
-    </msapplication>
-</browserconfig>
diff --git a/Timeline/ClientApp/public/favicon-16x16.png b/Timeline/ClientApp/public/favicon-16x16.png
deleted file mode 100644
index 6c978995..00000000
Binary files a/Timeline/ClientApp/public/favicon-16x16.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/favicon-32x32.png b/Timeline/ClientApp/public/favicon-32x32.png
deleted file mode 100644
index bbde902f..00000000
Binary files a/Timeline/ClientApp/public/favicon-32x32.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/favicon.ico b/Timeline/ClientApp/public/favicon.ico
deleted file mode 100644
index d4cd3db6..00000000
Binary files a/Timeline/ClientApp/public/favicon.ico and /dev/null differ
diff --git a/Timeline/ClientApp/public/mstile-144x144.png b/Timeline/ClientApp/public/mstile-144x144.png
deleted file mode 100644
index 61eaaf43..00000000
Binary files a/Timeline/ClientApp/public/mstile-144x144.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/mstile-150x150.png b/Timeline/ClientApp/public/mstile-150x150.png
deleted file mode 100644
index 85fa83ee..00000000
Binary files a/Timeline/ClientApp/public/mstile-150x150.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/mstile-310x150.png b/Timeline/ClientApp/public/mstile-310x150.png
deleted file mode 100644
index 41889953..00000000
Binary files a/Timeline/ClientApp/public/mstile-310x150.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/mstile-310x310.png b/Timeline/ClientApp/public/mstile-310x310.png
deleted file mode 100644
index cddce02e..00000000
Binary files a/Timeline/ClientApp/public/mstile-310x310.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/mstile-70x70.png b/Timeline/ClientApp/public/mstile-70x70.png
deleted file mode 100644
index 52f59d43..00000000
Binary files a/Timeline/ClientApp/public/mstile-70x70.png and /dev/null differ
diff --git a/Timeline/ClientApp/public/safari-pinned-tab.svg b/Timeline/ClientApp/public/safari-pinned-tab.svg
deleted file mode 100644
index e91f046a..00000000
--- a/Timeline/ClientApp/public/safari-pinned-tab.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
-<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
- width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
- preserveAspectRatio="xMidYMid meet">
-<metadata>
-Created by potrace 1.11, written by Peter Selinger 2001-2013
-</metadata>
-<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
-fill="#000000" stroke="none">
-<path d="M3080 6207 l0 -794 -57 -13 c-148 -33 -321 -102 -503 -202 -250 -136
--519 -398 -687 -669 -122 -196 -224 -463 -264 -694 -24 -139 -32 -418 -16
--560 72 -648 485 -1236 1069 -1523 68 -33 139 -67 158 -75 51 -22 219 -74 263
--82 l37 -7 0 -794 0 -794 420 0 420 0 0 794 0 794 38 7 c128 23 423 146 573
-238 503 309 846 851 916 1447 10 83 10 355 1 441 -15 127 -49 283 -89 399 -38
-111 -36 105 -108 252 -151 310 -366 554 -673 765 -62 43 -260 149 -306 164
--20 6 -41 15 -47 19 -15 11 -183 66 -248 81 l-57 14 0 792 0 793 -420 0 -420
-0 0 -793z m600 -1601 c14 -3 39 -9 55 -12 17 -2 48 -10 70 -16 22 -6 42 -12
-45 -13 21 -4 117 -45 170 -74 277 -145 492 -417 565 -716 24 -100 26 -116 31
--235 12 -327 -107 -619 -344 -847 -342 -329 -846 -405 -1272 -192 -293 147
--488 387 -584 719 -24 81 -31 151 -31 300 1 234 65 432 203 630 57 82 177 201
-263 263 137 97 323 173 474 193 28 3 52 8 54 10 6 5 274 -3 301 -10z"/>
-</g>
-</svg>
diff --git a/Timeline/ClientApp/public/site.webmanifest b/Timeline/ClientApp/public/site.webmanifest
deleted file mode 100644
index 74f0901a..00000000
--- a/Timeline/ClientApp/public/site.webmanifest
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "$schema": "http://json.schemastore.org/web-manifest",
-
-  "name": "Timeline",
-  "short_name": "Timeline",
-  "description": "Record your life in Timeline! Created by crupest.",
-  "icons": [
-    {
-      "src": "/android-chrome-192x192.png",
-      "sizes": "192x192",
-      "type": "image/png"
-    },
-    {
-      "src": "/android-chrome-512x512.png",
-      "sizes": "512x512",
-      "type": "image/png"
-    }
-  ],
-  "theme_color": "#ffffff",
-  "background_color": "#ffffff",
-  "display": "standalone"
-}
diff --git a/Timeline/ClientApp/sandbox.config.json b/Timeline/ClientApp/sandbox.config.json
deleted file mode 100644
index 42b540ce..00000000
--- a/Timeline/ClientApp/sandbox.config.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "infiniteLoopProtection": true,
-  "hardReloadOnChange": false,
-  "view": "browser",
-  "container": {
-    "port": 3000,
-    "startScript": "start:mock"
-  },
-  "port": 3000,
-  "startScript": "start:mock"
-}
diff --git a/Timeline/ClientApp/src/app/App.tsx b/Timeline/ClientApp/src/app/App.tsx
deleted file mode 100644
index b68eddb6..00000000
--- a/Timeline/ClientApp/src/app/App.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-import React from "react";
-import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
-import { hot } from "react-hot-loader/root";
-
-import AppBar from "./views/common/AppBar";
-import LoadingPage from "./views/common/LoadingPage";
-import Home from "./views/home";
-import Login from "./views/login";
-import Settings from "./views/settings";
-import About from "./views/about";
-import User from "./views/user";
-import TimelinePage from "./views/timeline";
-import AlertHost from "./views/common/alert/AlertHost";
-
-import { dataStorage } from "./services/common";
-import { userService, useRawUser } from "./services/user";
-
-const NoMatch: React.FC = () => {
-  return (
-    <>
-      <AppBar />
-      <div style={{ height: 56 }} />
-      <div>Ah-oh, 404!</div>
-    </>
-  );
-};
-
-const LazyAdmin = React.lazy(
-  () => import(/* webpackChunkName: "admin" */ "./views/admin/Admin")
-);
-
-const App: React.FC = () => {
-  const [loading, setLoading] = React.useState<boolean>(true);
-
-  const user = useRawUser();
-
-  React.useEffect(() => {
-    void userService.checkLoginState();
-    void dataStorage.ready().then(() => setLoading(false));
-  }, []);
-
-  if (user === undefined || loading) {
-    return <LoadingPage />;
-  } else {
-    return (
-      <React.Suspense fallback={<LoadingPage />}>
-        <Router>
-          <AppBar />
-          <Switch>
-            <Route exact path="/">
-              <Home />
-            </Route>
-            <Route exact path="/login">
-              <Login />
-            </Route>
-            <Route path="/settings">
-              <Settings />
-            </Route>
-            <Route path="/about">
-              <About />
-            </Route>
-            <Route path="/timelines/:name">
-              <TimelinePage />
-            </Route>
-            <Route path="/users/:username">
-              <User />
-            </Route>
-            {user && user.administrator && (
-              <Route path="/admin">
-                <LazyAdmin user={user} />
-              </Route>
-            )}
-            <Route>
-              <NoMatch />
-            </Route>
-          </Switch>
-          <AlertHost />
-        </Router>
-      </React.Suspense>
-    );
-  }
-};
-
-export default hot(App);
diff --git a/Timeline/ClientApp/src/app/common.ts b/Timeline/ClientApp/src/app/common.ts
deleted file mode 100644
index 0a2d345f..00000000
--- a/Timeline/ClientApp/src/app/common.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import React from "react";
-import { Observable, Subject } from "rxjs";
-
-// This error is thrown when ui goes wrong with bad logic.
-// Such as a variable should not be null, but it does.
-// This error should never occur. If it does, it indicates there is some logic bug in codes.
-export class UiLogicError extends Error {}
-
-export function useEventEmiiter(): [() => Observable<null>, () => void] {
-  const ref = React.useRef<Subject<null> | null>(null);
-
-  return React.useMemo(() => {
-    const getter = (): Subject<null> => {
-      if (ref.current == null) {
-        ref.current = new Subject<null>();
-      }
-      return ref.current;
-    };
-    const trigger = (): void => {
-      getter().next(null);
-    };
-    return [getter, trigger];
-  }, []);
-}
-
-export function useValueEventEmiiter<T>(): [
-  () => Observable<T>,
-  (value: T) => void
-] {
-  const ref = React.useRef<Subject<T> | null>(null);
-
-  return React.useMemo(() => {
-    const getter = (): Subject<T> => {
-      if (ref.current == null) {
-        ref.current = new Subject<T>();
-      }
-      return ref.current;
-    };
-    const trigger = (value: T): void => {
-      getter().next(value);
-    };
-    return [getter, trigger];
-  }, []);
-}
diff --git a/Timeline/ClientApp/src/app/http/common.ts b/Timeline/ClientApp/src/app/http/common.ts
deleted file mode 100644
index 54203d1a..00000000
--- a/Timeline/ClientApp/src/app/http/common.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import { AxiosError, AxiosResponse } from "axios";
-
-export const apiBaseUrl = "/api";
-
-export function base64(blob: Blob): Promise<string> {
-  return new Promise<string>((resolve) => {
-    const reader = new FileReader();
-    reader.onload = function () {
-      resolve((reader.result as string).replace(/^data:.+;base64,/, ""));
-    };
-    reader.readAsDataURL(blob);
-  });
-}
-
-export function extractStatusCode(error: AxiosError): number | null {
-  if (error.isAxiosError) {
-    const code = error?.response?.status;
-    if (typeof code === "number") {
-      return code;
-    }
-  }
-  return null;
-}
-
-export interface CommonErrorResponse {
-  code: number;
-  message: string;
-}
-
-export function extractErrorCode(
-  error: AxiosError<CommonErrorResponse>
-): number | null {
-  if (error.isAxiosError) {
-    const code = error.response?.data?.code;
-    if (typeof code === "number") {
-      return code;
-    }
-  }
-  return null;
-}
-
-export class HttpNetworkError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export class HttpForbiddenError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export class NotModified {}
-
-export interface BlobWithEtag {
-  data: Blob;
-  etag: string;
-}
-
-export function extractResponseData<T>(res: AxiosResponse<T>): T {
-  return res.data;
-}
-
-export function catchIfStatusCodeIs<
-  TResult,
-  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
->(
-  statusCode: number,
-  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
-): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
-  return (error: AxiosError<CommonErrorResponse>) => {
-    if (extractStatusCode(error) == statusCode) {
-      return errorHandler(error);
-    } else {
-      throw error;
-    }
-  };
-}
-
-export function convertToIfStatusCodeIs<NewError>(
-  statusCode: number,
-  newErrorType: {
-    new (innerError: AxiosError): NewError;
-  }
-): (error: AxiosError<CommonErrorResponse>) => never {
-  return catchIfStatusCodeIs(statusCode, (error) => {
-    throw new newErrorType(error);
-  });
-}
-
-export function catchIfErrorCodeIs<
-  TResult,
-  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
->(
-  errorCode: number,
-  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
-): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
-  return (error: AxiosError<CommonErrorResponse>) => {
-    if (extractErrorCode(error) == errorCode) {
-      return errorHandler(error);
-    } else {
-      throw error;
-    }
-  };
-}
-export function convertToIfErrorCodeIs<NewError>(
-  errorCode: number,
-  newErrorType: {
-    new (innerError: AxiosError): NewError;
-  }
-): (error: AxiosError<CommonErrorResponse>) => never {
-  return catchIfErrorCodeIs(errorCode, (error) => {
-    throw new newErrorType(error);
-  });
-}
-
-export function convertToNetworkError(
-  error: AxiosError<CommonErrorResponse>
-): never {
-  if (error.isAxiosError && error.response == null) {
-    throw new HttpNetworkError(error);
-  } else {
-    throw error;
-  }
-}
-
-export function convertToForbiddenError(
-  error: AxiosError<CommonErrorResponse>
-): never {
-  if (
-    error.isAxiosError &&
-    error.response != null &&
-    (error.response.status == 401 || error.response.status == 403)
-  ) {
-    throw new HttpForbiddenError(error);
-  } else {
-    throw error;
-  }
-}
-
-export function convertToNotModified(
-  error: AxiosError<CommonErrorResponse>
-): NotModified {
-  if (
-    error.isAxiosError &&
-    error.response != null &&
-    error.response.status == 304
-  ) {
-    return new NotModified();
-  } else {
-    throw error;
-  }
-}
-
-export function convertToBlobWithEtag(res: AxiosResponse<Blob>): BlobWithEtag {
-  return {
-    data: res.data,
-    etag: (res.headers as Record<"etag", string>)["etag"],
-  };
-}
diff --git a/Timeline/ClientApp/src/app/http/timeline.ts b/Timeline/ClientApp/src/app/http/timeline.ts
deleted file mode 100644
index eb7d5065..00000000
--- a/Timeline/ClientApp/src/app/http/timeline.ts
+++ /dev/null
@@ -1,544 +0,0 @@
-import axios, { AxiosError } from "axios";
-
-import { updateQueryString, applyQueryParameters } from "../utilities/url";
-
-import {
-  apiBaseUrl,
-  extractResponseData,
-  convertToNetworkError,
-  base64,
-  convertToIfStatusCodeIs,
-  convertToIfErrorCodeIs,
-  BlobWithEtag,
-  NotModified,
-  convertToNotModified,
-  convertToForbiddenError,
-  convertToBlobWithEtag,
-} from "./common";
-import { HttpUser } from "./user";
-
-export const kTimelineVisibilities = ["Public", "Register", "Private"] as const;
-
-export type TimelineVisibility = typeof kTimelineVisibilities[number];
-
-export interface HttpTimelineInfo {
-  uniqueId: string;
-  name: string;
-  description: string;
-  owner: HttpUser;
-  visibility: TimelineVisibility;
-  lastModified: Date;
-  members: HttpUser[];
-}
-
-export interface HttpTimelineListQuery {
-  visibility?: TimelineVisibility;
-  relate?: string;
-  relateType?: "own" | "join";
-}
-
-export interface HttpTimelinePostRequest {
-  name: string;
-}
-
-export interface HttpTimelinePostTextContent {
-  type: "text";
-  text: string;
-}
-
-export interface HttpTimelinePostImageContent {
-  type: "image";
-}
-
-export type HttpTimelinePostContent =
-  | HttpTimelinePostTextContent
-  | HttpTimelinePostImageContent;
-
-export interface HttpTimelinePostInfo {
-  id: number;
-  content: HttpTimelinePostContent;
-  time: Date;
-  lastUpdated: Date;
-  author: HttpUser;
-  deleted: false;
-}
-
-export interface HttpTimelineDeletedPostInfo {
-  id: number;
-  time: Date;
-  lastUpdated: Date;
-  author?: HttpUser;
-  deleted: true;
-}
-
-export type HttpTimelineGenericPostInfo =
-  | HttpTimelinePostInfo
-  | HttpTimelineDeletedPostInfo;
-
-export interface HttpTimelinePostPostRequestTextContent {
-  type: "text";
-  text: string;
-}
-
-export interface HttpTimelinePostPostRequestImageContent {
-  type: "image";
-  data: Blob;
-}
-
-export type HttpTimelinePostPostRequestContent =
-  | HttpTimelinePostPostRequestTextContent
-  | HttpTimelinePostPostRequestImageContent;
-
-export interface HttpTimelinePostPostRequest {
-  content: HttpTimelinePostPostRequestContent;
-  time?: Date;
-}
-
-export interface HttpTimelinePatchRequest {
-  visibility?: TimelineVisibility;
-  description?: string;
-}
-
-export class HttpTimelineNotExistError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export class HttpTimelinePostNotExistError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export class HttpTimelineNameConflictError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-//-------------------- begin: internal model --------------------
-
-interface RawTimelineInfo {
-  uniqueId: string;
-  name: string;
-  description: string;
-  owner: HttpUser;
-  visibility: TimelineVisibility;
-  lastModified: string;
-  members: HttpUser[];
-}
-
-interface RawTimelinePostTextContent {
-  type: "text";
-  text: string;
-}
-
-interface RawTimelinePostImageContent {
-  type: "image";
-  url: string;
-}
-
-type RawTimelinePostContent =
-  | RawTimelinePostTextContent
-  | RawTimelinePostImageContent;
-
-interface RawTimelinePostInfo {
-  id: number;
-  content: RawTimelinePostContent;
-  time: string;
-  lastUpdated: string;
-  author: HttpUser;
-  deleted: false;
-}
-
-interface RawTimelineDeletedPostInfo {
-  id: number;
-  time: string;
-  lastUpdated: string;
-  author: HttpUser;
-  deleted: true;
-}
-
-type RawTimelineGenericPostInfo =
-  | RawTimelinePostInfo
-  | RawTimelineDeletedPostInfo;
-
-interface RawTimelinePostPostRequestTextContent {
-  type: "text";
-  text: string;
-}
-
-interface RawTimelinePostPostRequestImageContent {
-  type: "image";
-  data: string;
-}
-
-type RawTimelinePostPostRequestContent =
-  | RawTimelinePostPostRequestTextContent
-  | RawTimelinePostPostRequestImageContent;
-
-interface RawTimelinePostPostRequest {
-  content: RawTimelinePostPostRequestContent;
-  time?: string;
-}
-
-//-------------------- end: internal model --------------------
-
-function processRawTimelineInfo(raw: RawTimelineInfo): HttpTimelineInfo {
-  return {
-    ...raw,
-    lastModified: new Date(raw.lastModified),
-  };
-}
-
-function processRawTimelinePostInfo(
-  raw: RawTimelinePostInfo
-): HttpTimelinePostInfo;
-function processRawTimelinePostInfo(
-  raw: RawTimelineGenericPostInfo
-): HttpTimelineGenericPostInfo;
-function processRawTimelinePostInfo(
-  raw: RawTimelineGenericPostInfo
-): HttpTimelineGenericPostInfo {
-  return {
-    ...raw,
-    time: new Date(raw.time),
-    lastUpdated: new Date(raw.lastUpdated),
-  };
-}
-
-export interface IHttpTimelineClient {
-  listTimeline(query: HttpTimelineListQuery): Promise<HttpTimelineInfo[]>;
-  getTimeline(timelineName: string): Promise<HttpTimelineInfo>;
-  getTimeline(
-    timelineName: string,
-    query: {
-      checkUniqueId?: string;
-    }
-  ): Promise<HttpTimelineInfo>;
-  getTimeline(
-    timelineName: string,
-    query: {
-      checkUniqueId?: string;
-      ifModifiedSince: Date;
-    }
-  ): Promise<HttpTimelineInfo | NotModified>;
-  postTimeline(
-    req: HttpTimelinePostRequest,
-    token: string
-  ): Promise<HttpTimelineInfo>;
-  patchTimeline(
-    timelineName: string,
-    req: HttpTimelinePatchRequest,
-    token: string
-  ): Promise<HttpTimelineInfo>;
-  deleteTimeline(timelineName: string, token: string): Promise<void>;
-  memberPut(
-    timelineName: string,
-    username: string,
-    token: string
-  ): Promise<void>;
-  memberDelete(
-    timelineName: string,
-    username: string,
-    token: string
-  ): Promise<void>;
-  listPost(
-    timelineName: string,
-    token?: string
-  ): Promise<HttpTimelinePostInfo[]>;
-  listPost(
-    timelineName: string,
-    token: string | undefined,
-    query: {
-      modifiedSince?: Date;
-      includeDeleted?: false;
-    }
-  ): Promise<HttpTimelinePostInfo[]>;
-  listPost(
-    timelineName: string,
-    token: string | undefined,
-    query: {
-      modifiedSince?: Date;
-      includeDeleted: true;
-    }
-  ): Promise<HttpTimelineGenericPostInfo[]>;
-  getPostData(
-    timelineName: string,
-    postId: number,
-    token?: string
-  ): Promise<BlobWithEtag>;
-  getPostData(
-    timelineName: string,
-    postId: number,
-    token: string | undefined,
-    etag: string
-  ): Promise<BlobWithEtag | NotModified>;
-  postPost(
-    timelineName: string,
-    req: HttpTimelinePostPostRequest,
-    token: string
-  ): Promise<HttpTimelinePostInfo>;
-  deletePost(
-    timelineName: string,
-    postId: number,
-    token: string
-  ): Promise<void>;
-}
-
-export class HttpTimelineClient implements IHttpTimelineClient {
-  listTimeline(query: HttpTimelineListQuery): Promise<HttpTimelineInfo[]> {
-    return axios
-      .get<RawTimelineInfo[]>(
-        applyQueryParameters(`${apiBaseUrl}/timelines`, query)
-      )
-      .then(extractResponseData)
-      .then((list) => list.map(processRawTimelineInfo))
-      .catch(convertToNetworkError);
-  }
-
-  getTimeline(timelineName: string): Promise<HttpTimelineInfo>;
-  getTimeline(
-    timelineName: string,
-    query: {
-      checkUniqueId?: string;
-    }
-  ): Promise<HttpTimelineInfo>;
-  getTimeline(
-    timelineName: string,
-    query: {
-      checkUniqueId?: string;
-      ifModifiedSince: Date;
-    }
-  ): Promise<HttpTimelineInfo | NotModified>;
-  getTimeline(
-    timelineName: string,
-    query?: {
-      checkUniqueId?: string;
-      ifModifiedSince?: Date;
-    }
-  ): Promise<HttpTimelineInfo | NotModified> {
-    return axios
-      .get<RawTimelineInfo>(
-        applyQueryParameters(`${apiBaseUrl}/timelines/${timelineName}`, query)
-      )
-      .then((res) => {
-        if (res.status === 304) {
-          return new NotModified();
-        } else {
-          return processRawTimelineInfo(res.data);
-        }
-      })
-      .catch(convertToIfStatusCodeIs(404, HttpTimelineNotExistError))
-      .catch(convertToNetworkError);
-  }
-
-  postTimeline(
-    req: HttpTimelinePostRequest,
-    token: string
-  ): Promise<HttpTimelineInfo> {
-    return axios
-      .post<RawTimelineInfo>(`${apiBaseUrl}/timelines?token=${token}`, req)
-      .then(extractResponseData)
-      .then(processRawTimelineInfo)
-      .catch(convertToIfErrorCodeIs(11040101, HttpTimelineNameConflictError))
-      .catch(convertToNetworkError);
-  }
-
-  patchTimeline(
-    timelineName: string,
-    req: HttpTimelinePatchRequest,
-    token: string
-  ): Promise<HttpTimelineInfo> {
-    return axios
-      .patch<RawTimelineInfo>(
-        `${apiBaseUrl}/timelines/${timelineName}?token=${token}`,
-        req
-      )
-      .then(extractResponseData)
-      .then(processRawTimelineInfo)
-      .catch(convertToNetworkError);
-  }
-
-  deleteTimeline(timelineName: string, token: string): Promise<void> {
-    return axios
-      .delete(`${apiBaseUrl}/timelines/${timelineName}?token=${token}`)
-      .catch(convertToNetworkError)
-      .then();
-  }
-
-  memberPut(
-    timelineName: string,
-    username: string,
-    token: string
-  ): Promise<void> {
-    return axios
-      .put(
-        `${apiBaseUrl}/timelines/${timelineName}/members/${username}?token=${token}`
-      )
-      .catch(convertToNetworkError)
-      .then();
-  }
-
-  memberDelete(
-    timelineName: string,
-    username: string,
-    token: string
-  ): Promise<void> {
-    return axios
-      .delete(
-        `${apiBaseUrl}/timelines/${timelineName}/members/${username}?token=${token}`
-      )
-      .catch(convertToNetworkError)
-      .then();
-  }
-
-  listPost(
-    timelineName: string,
-    token?: string
-  ): Promise<HttpTimelinePostInfo[]>;
-  listPost(
-    timelineName: string,
-    token: string | undefined,
-    query: {
-      modifiedSince?: Date;
-      includeDeleted?: false;
-    }
-  ): Promise<HttpTimelinePostInfo[]>;
-  listPost(
-    timelineName: string,
-    token: string | undefined,
-    query: {
-      modifiedSince?: Date;
-      includeDeleted: true;
-    }
-  ): Promise<HttpTimelineGenericPostInfo[]>;
-  listPost(
-    timelineName: string,
-    token?: string,
-    query?: {
-      modifiedSince?: Date;
-      includeDeleted?: boolean;
-    }
-  ): Promise<HttpTimelineGenericPostInfo[]> {
-    let url = `${apiBaseUrl}/timelines/${timelineName}/posts`;
-    url = updateQueryString("token", token, url);
-    if (query != null) {
-      if (query.modifiedSince != null) {
-        url = updateQueryString(
-          "modifiedSince",
-          query.modifiedSince.toISOString(),
-          url
-        );
-      }
-      if (query.includeDeleted != null) {
-        url = updateQueryString(
-          "includeDeleted",
-          query.includeDeleted ? "true" : "false",
-          url
-        );
-      }
-    }
-
-    return axios
-      .get<RawTimelineGenericPostInfo[]>(url)
-      .then(extractResponseData)
-      .catch(convertToIfStatusCodeIs(404, HttpTimelineNotExistError))
-      .catch(convertToForbiddenError)
-      .catch(convertToNetworkError)
-      .then((rawPosts) =>
-        rawPosts.map((raw) => processRawTimelinePostInfo(raw))
-      );
-  }
-
-  getPostData(
-    timelineName: string,
-    postId: number,
-    token: string
-  ): Promise<BlobWithEtag>;
-  getPostData(
-    timelineName: string,
-    postId: number,
-    token?: string,
-    etag?: string
-  ): Promise<BlobWithEtag | NotModified> {
-    const headers =
-      etag != null
-        ? {
-            "If-None-Match": etag,
-          }
-        : undefined;
-
-    let url = `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}/data`;
-    url = updateQueryString("token", token, url);
-
-    return axios
-      .get(url, {
-        responseType: "blob",
-        headers,
-      })
-      .then(convertToBlobWithEtag)
-      .catch(convertToNotModified)
-      .catch(convertToIfStatusCodeIs(404, HttpTimelinePostNotExistError))
-      .catch(convertToNetworkError);
-  }
-
-  async postPost(
-    timelineName: string,
-    req: HttpTimelinePostPostRequest,
-    token: string
-  ): Promise<HttpTimelinePostInfo> {
-    let content: RawTimelinePostPostRequestContent;
-    if (req.content.type === "image") {
-      const base64Data = await base64(req.content.data);
-      content = {
-        ...req.content,
-        data: base64Data,
-      } as RawTimelinePostPostRequestImageContent;
-    } else {
-      content = req.content;
-    }
-    const rawReq: RawTimelinePostPostRequest = {
-      content,
-    };
-    if (req.time != null) {
-      rawReq.time = req.time.toISOString();
-    }
-    return await axios
-      .post<RawTimelinePostInfo>(
-        `${apiBaseUrl}/timelines/${timelineName}/posts?token=${token}`,
-        rawReq
-      )
-      .then(extractResponseData)
-      .catch(convertToNetworkError)
-      .then((rawPost) => processRawTimelinePostInfo(rawPost));
-  }
-
-  deletePost(
-    timelineName: string,
-    postId: number,
-    token: string
-  ): Promise<void> {
-    return axios
-      .delete(
-        `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}?token=${token}`
-      )
-      .catch(convertToNetworkError)
-      .then();
-  }
-}
-
-let client: IHttpTimelineClient = new HttpTimelineClient();
-
-export function getHttpTimelineClient(): IHttpTimelineClient {
-  return client;
-}
-
-export function setHttpTimelineClient(
-  newClient: IHttpTimelineClient
-): IHttpTimelineClient {
-  const old = client;
-  client = newClient;
-  return old;
-}
diff --git a/Timeline/ClientApp/src/app/http/token.ts b/Timeline/ClientApp/src/app/http/token.ts
deleted file mode 100644
index ae0cf3f6..00000000
--- a/Timeline/ClientApp/src/app/http/token.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import axios, { AxiosError } from "axios";
-
-import {
-  apiBaseUrl,
-  convertToNetworkError,
-  convertToIfErrorCodeIs,
-  extractResponseData,
-} from "./common";
-import { HttpUser } from "./user";
-
-export interface HttpCreateTokenRequest {
-  username: string;
-  password: string;
-  expire: number;
-}
-
-export interface HttpCreateTokenResponse {
-  token: string;
-  user: HttpUser;
-}
-
-export interface HttpVerifyTokenRequest {
-  token: string;
-}
-
-export interface HttpVerifyTokenResponse {
-  user: HttpUser;
-}
-
-export class HttpCreateTokenBadCredentialError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export interface IHttpTokenClient {
-  create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse>;
-  verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse>;
-}
-
-export class HttpTokenClient implements IHttpTokenClient {
-  create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse> {
-    return axios
-      .post<HttpCreateTokenResponse>(`${apiBaseUrl}/token/create`, req)
-      .then(extractResponseData)
-      .catch(
-        convertToIfErrorCodeIs(11010101, HttpCreateTokenBadCredentialError)
-      )
-      .catch(convertToNetworkError);
-  }
-
-  verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse> {
-    return axios
-      .post<HttpVerifyTokenResponse>(`${apiBaseUrl}/token/verify`, req)
-      .then(extractResponseData)
-      .catch(convertToNetworkError);
-  }
-}
-
-let client: IHttpTokenClient = new HttpTokenClient();
-
-export function getHttpTokenClient(): IHttpTokenClient {
-  return client;
-}
-
-export function setHttpTokenClient(
-  newClient: IHttpTokenClient
-): IHttpTokenClient {
-  const old = client;
-  client = newClient;
-  return old;
-}
diff --git a/Timeline/ClientApp/src/app/http/user.ts b/Timeline/ClientApp/src/app/http/user.ts
deleted file mode 100644
index a0a02cce..00000000
--- a/Timeline/ClientApp/src/app/http/user.ts
+++ /dev/null
@@ -1,134 +0,0 @@
-import axios, { AxiosError } from "axios";
-
-import {
-  apiBaseUrl,
-  convertToNetworkError,
-  extractResponseData,
-  convertToIfStatusCodeIs,
-  convertToIfErrorCodeIs,
-  NotModified,
-  BlobWithEtag,
-  convertToBlobWithEtag,
-  convertToNotModified,
-} from "./common";
-
-export interface HttpUser {
-  uniqueId: string;
-  username: string;
-  administrator: boolean;
-  nickname: string;
-}
-
-export interface HttpUserPatchRequest {
-  nickname?: string;
-}
-
-export interface HttpChangePasswordRequest {
-  oldPassword: string;
-  newPassword: string;
-}
-
-export class HttpUserNotExistError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export class HttpChangePasswordBadCredentialError extends Error {
-  constructor(public innerError?: AxiosError) {
-    super();
-  }
-}
-
-export interface IHttpUserClient {
-  get(username: string): Promise<HttpUser>;
-  patch(
-    username: string,
-    req: HttpUserPatchRequest,
-    token: string
-  ): Promise<HttpUser>;
-  getAvatar(username: string): Promise<BlobWithEtag>;
-  getAvatar(
-    username: string,
-    etag: string
-  ): Promise<BlobWithEtag | NotModified>;
-  putAvatar(username: string, data: Blob, token: string): Promise<void>;
-  changePassword(req: HttpChangePasswordRequest, token: string): Promise<void>;
-}
-
-export class HttpUserClient implements IHttpUserClient {
-  get(username: string): Promise<HttpUser> {
-    return axios
-      .get<HttpUser>(`${apiBaseUrl}/users/${username}`)
-      .then(extractResponseData)
-      .catch(convertToIfStatusCodeIs(404, HttpUserNotExistError))
-      .catch(convertToNetworkError);
-  }
-
-  patch(
-    username: string,
-    req: HttpUserPatchRequest,
-    token: string
-  ): Promise<HttpUser> {
-    return axios
-      .patch<HttpUser>(`${apiBaseUrl}/users/${username}?token=${token}`, req)
-      .then(extractResponseData)
-      .catch(convertToNetworkError);
-  }
-
-  getAvatar(username: string): Promise<BlobWithEtag>;
-  getAvatar(
-    username: string,
-    etag?: string
-  ): Promise<BlobWithEtag | NotModified> {
-    const headers =
-      etag != null
-        ? {
-            "If-None-Match": etag,
-          }
-        : undefined;
-
-    return axios
-      .get(`${apiBaseUrl}/users/${username}/avatar`, {
-        responseType: "blob",
-        headers,
-      })
-      .then(convertToBlobWithEtag)
-      .catch(convertToNotModified)
-      .catch(convertToIfStatusCodeIs(404, HttpUserNotExistError))
-      .catch(convertToNetworkError);
-  }
-
-  putAvatar(username: string, data: Blob, token: string): Promise<void> {
-    return axios
-      .put(`${apiBaseUrl}/users/${username}/avatar?token=${token}`, data, {
-        headers: {
-          "Content-Type": data.type,
-        },
-      })
-      .catch(convertToNetworkError)
-      .then();
-  }
-
-  changePassword(req: HttpChangePasswordRequest, token: string): Promise<void> {
-    return axios
-      .post(`${apiBaseUrl}/userop/changepassword?token=${token}`, req)
-      .catch(
-        convertToIfErrorCodeIs(11020201, HttpChangePasswordBadCredentialError)
-      )
-      .catch(convertToNetworkError)
-      .then();
-  }
-}
-
-let client: IHttpUserClient = new HttpUserClient();
-
-export function getHttpUserClient(): IHttpUserClient {
-  return client;
-}
-
-export function setHttpUserClient(newClient: IHttpUserClient): IHttpUserClient {
-  const old = client;
-  client = newClient;
-  return old;
-}
diff --git a/Timeline/ClientApp/src/app/i18n.ts b/Timeline/ClientApp/src/app/i18n.ts
deleted file mode 100644
index cdced7bf..00000000
--- a/Timeline/ClientApp/src/app/i18n.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import i18n, { BackendModule, ResourceKey } from "i18next";
-import LanguageDetector from "i18next-browser-languagedetector";
-import { initReactI18next } from "react-i18next";
-
-const backend: BackendModule = {
-  type: "backend",
-  async read(language, namespace, callback) {
-    function error(message: string): void {
-      callback(new Error(message), false);
-    }
-
-    function success(result: ResourceKey): void {
-      callback(null, result);
-    }
-
-    if (namespace !== "translation") {
-      error("Namespace must be 'translation'.");
-    }
-
-    if (language === "en") {
-      const res = (
-        await import(
-          /* webpackChunkName: "locales-en" */ "./locales/en/translation"
-        )
-      ).default;
-      success(res);
-    } else if (language === "zh-cn" || language === "zh") {
-      const res = (
-        await import(
-          /* webpackChunkName: "locales-zh" */ "./locales/zh/translation"
-        )
-      ).default;
-      success(res);
-    } else {
-      error(`Language ${language} is not supported.`);
-    }
-  },
-  init() {}, // eslint-disable-line @typescript-eslint/no-empty-function
-  create() {}, // eslint-disable-line @typescript-eslint/no-empty-function
-};
-
-export const i18nPromise = i18n
-  .use(LanguageDetector)
-  .use(backend)
-  .use(initReactI18next) // bind react-i18next to the instance
-  .init({
-    fallbackLng: false,
-    lowerCaseLng: true,
-
-    debug: process.env.NODE_ENV === "development",
-
-    interpolation: {
-      escapeValue: false, // not needed for react!!
-    },
-
-    // react i18next special options (optional)
-    // override if needed - omit if ok with defaults
-    /*
-    react: {
-      bindI18n: 'languageChanged',
-      bindI18nStore: '',
-      transEmptyNodeValue: '',
-      transSupportBasicHtmlNodes: true,
-      transKeepBasicHtmlNodesFor: ['br', 'strong', 'i'],
-      useSuspense: true,
-    }
-    */
-  });
-
-if (module.hot) {
-  module.hot.accept(
-    ["./locales/en/translation", "./locales/zh/translation"],
-    () => {
-      void i18n.reloadResources();
-    }
-  );
-}
-
-export default i18n;
diff --git a/Timeline/ClientApp/src/app/index.ejs b/Timeline/ClientApp/src/app/index.ejs
deleted file mode 100644
index 49306786..00000000
--- a/Timeline/ClientApp/src/app/index.ejs
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8" />
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
-
-    <link rel="icon" href="/favicon.ico" />
-    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
-    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
-    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
-    <link rel="manifest" href="/site.webmanifest" />
-    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
-    <meta name="msapplication-TileColor" content="#2d89ef" />
-    <meta name="theme-color" content="#ffffff" />
-
-    <title><%= htmlWebpackPlugin.options.title %></title>
-  </head>
-  <body>
-    <noscript>
-      <strong>
-        We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
-        properly without JavaScript enabled. Please enable it to continue.
-      </strong>
-    </noscript>
-    <div id="app"></div>
-    <!-- built files will be auto injected -->
-  </body>
-</html>
diff --git a/Timeline/ClientApp/src/app/index.sass b/Timeline/ClientApp/src/app/index.sass
deleted file mode 100644
index 08e03bac..00000000
--- a/Timeline/ClientApp/src/app/index.sass
+++ /dev/null
@@ -1,66 +0,0 @@
-@import '~bootstrap/scss/bootstrap'
-
-@import './views/common/common'
-@import './views/common/alert/alert'
-@import './views/home/home'
-@import './views/about/about'
-@import './views/login/login'
-@import './views/timeline-common/timeline-common'
-@import './views/timeline/timeline'
-@import './views/user/user'
-
-body
-  margin: 0
-
-small
-  line-height: 1.2
-
-.flex-fix-length
-  flex-grow: 0
-  flex-shrink: 0
-
-.position-lt
-  left: 0
-  top: 0
-
-.avatar
-  width: 60px
-  &.large
-    width: 100px
-  &.small
-    width: 40px
-
-.mt-appbar
-  margin-top: 56px
-
-.icon-button
-  font-size: 1.4em
-  &.large
-    font-size: 1.6em
-
-.cursor-pointer
-  cursor: pointer
-
-textarea
-  resize: none
-
-.white-space-no-wrap
-  white-space: nowrap
-
-.cru-card
-  @extend .shadow
-  @extend .border
-  @extend .border-primary
-  @extend .rounded
-  @extend .bg-light
-
-.full-viewport-center-child
-  position: fixed
-  width: 100vw
-  height: 100vh
-  display: flex
-  justify-content: center
-  align-items: center
-
-.text-orange
-  color: $orange
diff --git a/Timeline/ClientApp/src/app/index.tsx b/Timeline/ClientApp/src/app/index.tsx
deleted file mode 100644
index 00a75a4a..00000000
--- a/Timeline/ClientApp/src/app/index.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import "regenerator-runtime";
-import "core-js/modules/es.promise";
-import "core-js/modules/es.array.iterator";
-import "pepjs";
-
-import React from "react";
-import ReactDOM from "react-dom";
-
-import "./index.sass";
-
-import "./i18n";
-
-import App from "./App";
-
-ReactDOM.render(<App />, document.getElementById("app"));
diff --git a/Timeline/ClientApp/src/app/locales/en/translation.ts b/Timeline/ClientApp/src/app/locales/en/translation.ts
deleted file mode 100644
index c7f33d1e..00000000
--- a/Timeline/ClientApp/src/app/locales/en/translation.ts
+++ /dev/null
@@ -1,202 +0,0 @@
-import TranslationResource from "../scheme";
-
-const translation: TranslationResource = {
-  welcome: "Welcome!",
-  search: "Search",
-  loadFailReload: "Load failed, click <1>here</1> to reload.",
-  serviceWorker: {
-    availableOffline:
-      "Timeline is now cached in your computer and you can use it offline. 🎉🎉🎉",
-    upgradePrompt: "App is getting a new version!",
-    upgradeNow: "Update Now",
-    upgradeSuccess:
-      "Congratulations! App update succeeded! Still you can use it offline. 🎉🎉🎉",
-    externalActivatedPrompt:
-      "A new version of app is activated. Please refresh the page. Or it may be broken.",
-    reloadNow: "Refresh Now",
-  },
-  nav: {
-    settings: "Settings",
-    login: "Login",
-    about: "About",
-  },
-  chooseImage: "Choose a image",
-  loadImageError: "Failed to load image.",
-  home: {
-    go: "Go!",
-    allTimeline: "All Timelines",
-    joinTimeline: "Joined Timelines",
-    ownTimeline: "Owned Timelines",
-    offlinePrompt:
-      "Oh oh, it seems you are offline. Here list some timelines cached locally. You can view them or click <1>here</1> to refresh.",
-    createButton: "Create Timeline",
-    createDialog: {
-      title: "Create Timeline!",
-      name: "Name",
-      nameFormat:
-        "Name must consist of only letter including non-English letter, digit, hyphen(-) and underline(_) and be no longer than 26.",
-      badFormat: "Bad format.",
-      noEmpty: "Empty is not allowed.",
-      tooLong: "Too long.",
-    },
-  },
-  operationDialog: {
-    retry: "Retry",
-    nextStep: "Next",
-    previousStep: "Previous",
-    confirm: "Confirm",
-    cancel: "Cancel",
-    ok: "OK!",
-    processing: "Processing...",
-    success: "Success!",
-    error: "An error occured.",
-  },
-  timeline: {
-    messageCantSee: "Sorry, you are not allowed to see this timeline.😅",
-    userNotExist: "The user does not exist!",
-    timelineNotExist: "The timeline does not exist!",
-    manage: "Manage",
-    memberButton: "Member",
-    send: "Send",
-    deletePostFailed: "Failed to delete post.",
-    sendPostFailed: "Failed to send post.",
-    visibility: {
-      public: "public to everyone",
-      register: "only registed people can see",
-      private: "only members can see",
-    },
-    visibilityTooltip: {
-      public:
-        "Everyone including those without accounts can see content of the timeline.",
-      register:
-        "Only those who have an account and logined can see content of the timeline.",
-      private: "Only members of this timeline can see content of the timeline.",
-    },
-    dialogChangeProperty: {
-      title: "Change Timeline Properties",
-      visibility: "Visibility",
-      description: "Description",
-    },
-    member: {
-      alreadyMember: "The user is already a member.",
-      add: "Add",
-      remove: "Remove",
-    },
-    manageItem: {
-      nickname: "Nickname",
-      avatar: "Avatar",
-      property: "Timeline Property",
-      member: "Timeline Member",
-      delete: "Delete Timeline",
-    },
-    deleteDialog: {
-      title: "Delete Timeline",
-      inputPrompt:
-        "This is a dangerous action. If you are sure to delete timeline<1>{{name}}</1>, please input its name below and click confirm button.",
-      notMatch: "Name does not match.",
-    },
-    postSyncState: {
-      syncing: "Syncing",
-      synced: "Synced",
-      offline: "Offline",
-    },
-    post: {
-      deleteDialog: {
-        title: "Confirm Delete",
-        prompt:
-          "Are you sure to delete the post? This operation is not recoverable.",
-      },
-    },
-  },
-  user: {
-    username: "username",
-    password: "password",
-    login: "login",
-    rememberMe: "Remember Me",
-    welcomeBack: "Welcome back!",
-    verifyTokenFailed: "User login info is expired. Please login again!",
-    verifyTokenFailedNetwork:
-      "Verifying user login info failed. Please check your network and refresh page!",
-  },
-  login: {
-    emptyUsername: "Username can't be empty.",
-    emptyPassword: "Password can't be empty.",
-    badCredential: "Username or password is invalid.",
-    alreadyLogin: "Already login! Redirect to home page in 3s!",
-  },
-  userPage: {
-    dialogChangeNickname: {
-      title: "Change Nickname",
-      inputLabel: "New nickname",
-    },
-    dialogChangeAvatar: {
-      title: "Change Avatar",
-      previewImgAlt: "preview",
-      prompt: {
-        select: "Please select a picture.",
-        crop: "Please crop the picture.",
-        processingCrop: "Cropping picture...",
-        uploading: "Uploading...",
-        preview: "Please preview avatar",
-      },
-      upload: "upload",
-    },
-  },
-  settings: {
-    subheaders: {
-      account: "Account",
-      customization: "Customization",
-    },
-    languagePrimary: "Choose display language.",
-    languageSecondary:
-      "You language preference will be saved locally. Next time you visit this page, last language option will be used.",
-    changePassword: "Change account's password.",
-    logout: "Log out this account.",
-    gotoSelf:
-      "Click here to go to timeline of myself to change nickname and avatar.",
-    dialogChangePassword: {
-      title: "Change Password",
-      prompt:
-        "You are changing your password. You need to input the correct old password. After change, you need to login again and all old login will be invalid.",
-      inputOldPassword: "Old password",
-      inputNewPassword: "New password",
-      inputRetypeNewPassword: "Retype new password",
-      errorEmptyOldPassword: "Old password can't be empty.",
-      errorEmptyNewPassword: "New password can't be empty.",
-      errorRetypeNotMatch: "Password retyped does not match.",
-    },
-    dialogConfirmLogout: {
-      title: "Confirm Logout",
-      prompt:
-        "Are you sure to log out? All cached data in the browser will be deleted.",
-    },
-  },
-  about: {
-    author: {
-      title: "Site Developer",
-      fullname: "Fullname: ",
-      nickname: "Nickname: ",
-      introduction: "Introduction: ",
-      introductionContent: "A programmer coding based on coincidence",
-      links: "Links: ",
-    },
-    site: {
-      title: "Site Information",
-      content:
-        "The name of this site is <1>Timeline</1>, which is a Web App with <3>timeline</3> as its core concept. Its frontend and backend are both developed by <5>me</5>, and open source on GitHub. It is relatively easy to deploy it on your own server, which is also one of my goals. Welcome to comment anything in GitHub repository.",
-      repo: "GitHub Repo",
-    },
-    credits: {
-      title: "Credits",
-      content:
-        "Timeline is works standing on shoulders of gaints. Special appreciation for many open source projects listed below or not. Related licenses could be found in GitHub repository.",
-      frontend: "Frontend: ",
-      backend: "Backend: ",
-    },
-  },
-  admin: {
-    title: "admin",
-  },
-};
-
-export default translation;
diff --git a/Timeline/ClientApp/src/app/locales/scheme.ts b/Timeline/ClientApp/src/app/locales/scheme.ts
deleted file mode 100644
index 9e3534ac..00000000
--- a/Timeline/ClientApp/src/app/locales/scheme.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-export default interface TranslationResource {
-  welcome: string;
-  search: string;
-  chooseImage: string;
-  loadImageError: string;
-  loadFailReload: string;
-  serviceWorker: {
-    availableOffline: string;
-    upgradePrompt: string;
-    upgradeNow: string;
-    upgradeSuccess: string;
-    externalActivatedPrompt: string;
-    reloadNow: string;
-  };
-  nav: {
-    settings: string;
-    login: string;
-    about: string;
-  };
-  home: {
-    go: string;
-    allTimeline: string;
-    joinTimeline: string;
-    ownTimeline: string;
-    offlinePrompt: string;
-    createButton: string;
-    createDialog: {
-      title: string;
-      name: string;
-      nameFormat: string;
-      badFormat: string;
-      noEmpty: string;
-      tooLong: string;
-    };
-  };
-  operationDialog: {
-    retry: string;
-    nextStep: string;
-    previousStep: string;
-    confirm: string;
-    cancel: string;
-    ok: string;
-    processing: string;
-    success: string;
-    error: string;
-  };
-  timeline: {
-    messageCantSee: string;
-    userNotExist: string;
-    timelineNotExist: string;
-    manage: string;
-    memberButton: string;
-    send: string;
-    deletePostFailed: string;
-    sendPostFailed: string;
-    visibility: {
-      public: string;
-      register: string;
-      private: string;
-    };
-    visibilityTooltip: {
-      public: string;
-      register: string;
-      private: string;
-    };
-    dialogChangeProperty: {
-      title: string;
-      visibility: string;
-      description: string;
-    };
-    member: {
-      alreadyMember: string;
-      add: string;
-      remove: string;
-    };
-    manageItem: {
-      nickname: string;
-      avatar: string;
-      property: string;
-      member: string;
-      delete: string;
-    };
-    deleteDialog: {
-      title: string;
-      inputPrompt: string;
-      notMatch: string;
-    };
-    postSyncState: {
-      syncing: string;
-      synced: string;
-      offline: string;
-    };
-    post: {
-      deleteDialog: {
-        title: string;
-        prompt: string;
-      };
-    };
-  };
-  user: {
-    username: string;
-    password: string;
-    login: string;
-    rememberMe: string;
-    welcomeBack: string;
-    verifyTokenFailed: string;
-    verifyTokenFailedNetwork: string;
-  };
-  login: {
-    emptyUsername: string;
-    emptyPassword: string;
-    badCredential: string;
-    alreadyLogin: string;
-  };
-  userPage: {
-    dialogChangeNickname: {
-      title: string;
-      inputLabel: string;
-    };
-    dialogChangeAvatar: {
-      title: string;
-      previewImgAlt: string;
-      prompt: {
-        select: string;
-        crop: string;
-        processingCrop: string;
-        preview: string;
-        uploading: string;
-      };
-      upload: string;
-    };
-  };
-  settings: {
-    subheaders: {
-      account: string;
-      customization: string;
-    };
-    languagePrimary: string;
-    languageSecondary: string;
-    changePassword: string;
-    logout: string;
-    gotoSelf: string;
-    dialogChangePassword: {
-      title: string;
-      prompt: string;
-      inputOldPassword: string;
-      inputNewPassword: string;
-      inputRetypeNewPassword: string;
-      errorEmptyOldPassword: string;
-      errorEmptyNewPassword: string;
-      errorRetypeNotMatch: string;
-    };
-    dialogConfirmLogout: {
-      title: string;
-      prompt: string;
-    };
-  };
-  about: {
-    author: {
-      title: string;
-      fullname: string;
-      nickname: string;
-      introduction: string;
-      introductionContent: string;
-      links: string;
-    };
-    site: {
-      title: string;
-      content: string;
-      repo: string;
-    };
-    credits: {
-      title: string;
-      content: string;
-      frontend: string;
-      backend: string;
-    };
-  };
-  admin: {
-    title: string;
-  };
-}
diff --git a/Timeline/ClientApp/src/app/locales/zh/translation.ts b/Timeline/ClientApp/src/app/locales/zh/translation.ts
deleted file mode 100644
index df316366..00000000
--- a/Timeline/ClientApp/src/app/locales/zh/translation.ts
+++ /dev/null
@@ -1,195 +0,0 @@
-import TranslationResource from "../scheme";
-
-const translation: TranslationResource = {
-  welcome: "欢迎！",
-  search: "搜索",
-  loadFailReload: "加载失败，<1>点击</1>重试。",
-  serviceWorker: {
-    availableOffline: "Timeline 已经缓存在本地，你可以离线使用它。🎉🎉🎉",
-    upgradePrompt: "App 有新版本！",
-    upgradeNow: "现在升级",
-    upgradeSuccess: "App 升级成功，当然，你仍可以离线使用它。 🎉🎉🎉",
-    externalActivatedPrompt:
-      "一个新的 App 版本已经激活，请刷新页面使用，否则页面可能会出现故障。",
-    reloadNow: "立刻刷新",
-  },
-  nav: {
-    settings: "设置",
-    login: "登陆",
-    about: "关于",
-  },
-  chooseImage: "选择一个图片",
-  loadImageError: "加载图片失败",
-  home: {
-    go: "冲！",
-    allTimeline: "所有的时间线",
-    joinTimeline: "加入的时间线",
-    ownTimeline: "拥有的时间线",
-    offlinePrompt:
-      "你好像处于离线状态。以下是一些缓存在本地的时间线。你可以查看它们或者<1>点击</1>重新获取在线信息。",
-    createButton: "创建时间线",
-    createDialog: {
-      title: "创建时间线！",
-      name: "名字",
-      nameFormat:
-        "名字只能由字母、汉字、数字、下划线（_）和连字符（-）构成，且长度不能超过26.",
-      badFormat: "格式错误",
-      noEmpty: "不能为空",
-      tooLong: "太长了",
-    },
-  },
-  operationDialog: {
-    retry: "重试",
-    nextStep: "下一步",
-    previousStep: "上一步",
-    confirm: "确定",
-    cancel: "取消",
-    ok: "好的！",
-    processing: "处理中...",
-    success: "成功！",
-    error: "出错啦！",
-  },
-  timeline: {
-    messageCantSee: "不好意思，你没有权限查看这个时间线。😅",
-    userNotExist: "该用户不存在！",
-    timelineNotExist: "该时间线不存在！",
-    manage: "管理",
-    memberButton: "成员",
-    send: "发送",
-    deletePostFailed: "删除消息失败。",
-    sendPostFailed: "发送消息失败。",
-    visibility: {
-      public: "对所有人公开",
-      register: "仅注册可见",
-      private: "仅成员可见",
-    },
-    visibilityTooltip: {
-      public: "所有人都可以看到这个时间线的内容，包括没有注册的人。",
-      register: "只有拥有本网站的账号且登陆了的人才能看到这个时间线的内容。",
-      private: "只有这个时间线的成员可以看到这个时间线的内容。",
-    },
-    dialogChangeProperty: {
-      title: "修改时间线属性",
-      visibility: "可见性",
-      description: "描述",
-    },
-    member: {
-      alreadyMember: "该用户已经是一个成员。",
-      add: "添加",
-      remove: "移除",
-    },
-    manageItem: {
-      nickname: "昵称",
-      avatar: "头像",
-      property: "时间线属性",
-      member: "时间线成员",
-      delete: "删除时间线",
-    },
-    deleteDialog: {
-      title: "删除时间线",
-      inputPrompt:
-        "这是一个危险的操作。如果您确认要删除时间线<1>{{name}}</1>，请在下面输入它的名字并点击确认。",
-      notMatch: "名字不匹配",
-    },
-    postSyncState: {
-      syncing: "同步中",
-      synced: "同步成功",
-      offline: "离线",
-    },
-    post: {
-      deleteDialog: {
-        title: "确认删除",
-        prompt: "确定删除这个消息？这个操作不可撤销。",
-      },
-    },
-  },
-  user: {
-    username: "用户名",
-    password: "密码",
-    login: "登录",
-    rememberMe: "记住我",
-    welcomeBack: "欢迎回来！",
-    verifyTokenFailed: "用户登录信息已过期，请重新登陆！",
-    verifyTokenFailedNetwork:
-      "验证用户登录信息失败，请检查网络连接并刷新页面！",
-  },
-  login: {
-    emptyUsername: "用户名不能为空。",
-    emptyPassword: "密码不能为空。",
-    badCredential: "用户名或密码错误。",
-    alreadyLogin: "已经登陆，三秒后导航到首页！",
-  },
-  userPage: {
-    dialogChangeNickname: {
-      title: "更改昵称",
-      inputLabel: "新昵称",
-    },
-    dialogChangeAvatar: {
-      title: "修改头像",
-      previewImgAlt: "预览",
-      prompt: {
-        select: "请选择一个图片",
-        crop: "请裁剪图片",
-        processingCrop: "正在裁剪图片",
-        uploading: "正在上传",
-        preview: "请预览图片",
-      },
-      upload: "上传",
-    },
-  },
-  settings: {
-    subheaders: {
-      account: "账户",
-      customization: "个性化",
-    },
-    languagePrimary: "选择显示的语言。",
-    languageSecondary:
-      "您的语言偏好将会存储在本地，下次浏览时将自动使用上次保存的语言选项。",
-    changePassword: "更改账号的密码。",
-    logout: "注销此账号。",
-    gotoSelf: "点击前往个人时间线修改昵称和头像！",
-    dialogChangePassword: {
-      title: "修改密码",
-      prompt:
-        "您正在修改密码，您需要输入正确的旧密码。成功修改后您需要重新登陆，而且以前所有的登录都会失效。",
-      inputOldPassword: "旧密码",
-      inputNewPassword: "新密码",
-      inputRetypeNewPassword: "再次输入新密码",
-      errorEmptyOldPassword: "旧密码不能为空。",
-      errorEmptyNewPassword: "新密码不能为空",
-      errorRetypeNotMatch: "两次输入的密码不一致",
-    },
-    dialogConfirmLogout: {
-      title: "确定注销",
-      prompt: "您确定注销此账号？这将删除所有已经缓存在浏览器的数据。",
-    },
-  },
-  about: {
-    author: {
-      title: "网站作者",
-      fullname: "姓名：",
-      nickname: "昵称：",
-      introduction: "简介：",
-      introductionContent: "一个基于巧合编程的代码爱好者。",
-      links: "链接：",
-    },
-    site: {
-      title: "网站信息",
-      content:
-        "这个网站的名字叫 <1>Timeline</1>，是一个以<3>时间线</3>为核心概念的 Web App . 它的前端和后端都是由<5>我</5>开发，并且在 GitHub 上开源。大家可以相对轻松的把它们部署在自己的服务器上，这也是我的目标之一。欢迎大家前往 GitHub 仓库提出任何意见。",
-      repo: "GitHub 仓库",
-    },
-    credits: {
-      title: "鸣谢",
-      content:
-        "Timeline 是站在巨人肩膀上的作品，感谢以下列出的和其他未列出的许多开源项目，相关 License 请在 GitHub 仓库中查看。",
-      frontend: "前端：",
-      backend: "后端：",
-    },
-  },
-  admin: {
-    title: "管理",
-  },
-};
-
-export default translation;
diff --git a/Timeline/ClientApp/src/app/service-worker.tsx b/Timeline/ClientApp/src/app/service-worker.tsx
deleted file mode 100644
index 3be54bc1..00000000
--- a/Timeline/ClientApp/src/app/service-worker.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { Button } from "react-bootstrap";
-
-import { pushAlert } from "./services/alert";
-
-if ("serviceWorker" in navigator) {
-  let isThisTriggerUpgrade = false;
-
-  const upgradeSuccessLocalStorageKey = "TIMELINE_UPGRADE_SUCCESS";
-
-  if (window.localStorage.getItem(upgradeSuccessLocalStorageKey)) {
-    pushAlert({
-      message: {
-        type: "i18n",
-        key: "serviceWorker.upgradeSuccess",
-      },
-      type: "success",
-    });
-    window.localStorage.removeItem(upgradeSuccessLocalStorageKey);
-  }
-
-  void import("workbox-window").then(({ Workbox, messageSW }) => {
-    const wb = new Workbox("/sw.js");
-    let registration: ServiceWorkerRegistration | undefined;
-
-    // externalactivated is not usable but I still use its name.
-    wb.addEventListener("controlling", () => {
-      const upgradeReload = (): void => {
-        window.localStorage.setItem(upgradeSuccessLocalStorageKey, "true");
-        window.location.reload();
-      };
-
-      if (isThisTriggerUpgrade) {
-        upgradeReload();
-      } else {
-        const Message: React.FC = () => {
-          const { t } = useTranslation();
-          return (
-            <>
-              {t("serviceWorker.externalActivatedPrompt")}
-              <Button
-                variant="outline-success"
-                size="sm"
-                onClick={upgradeReload}
-              >
-                {t("serviceWorker.reloadNow")}
-              </Button>
-            </>
-          );
-        };
-
-        pushAlert({
-          message: Message,
-          dismissTime: "never",
-          type: "warning",
-        });
-      }
-    });
-
-    wb.addEventListener("activated", (event) => {
-      if (!event.isUpdate) {
-        pushAlert({
-          message: {
-            type: "i18n",
-            key: "serviceWorker.availableOffline",
-          },
-          type: "success",
-        });
-      }
-    });
-
-    const showSkipWaitingPrompt = (): void => {
-      const upgrade = (): void => {
-        isThisTriggerUpgrade = true;
-        if (registration && registration.waiting) {
-          // Send a message to the waiting service worker,
-          // instructing it to activate.
-          // Note: for this to work, you have to add a message
-          // listener in your service worker. See below.
-          void messageSW(registration.waiting, { type: "SKIP_WAITING" });
-        }
-      };
-
-      const UpgradeMessage: React.FC = () => {
-        const { t } = useTranslation();
-        return (
-          <>
-            {t("serviceWorker.upgradePrompt")}
-            <Button variant="outline-success" size="sm" onClick={upgrade}>
-              {t("serviceWorker.upgradeNow")}
-            </Button>
-          </>
-        );
-      };
-
-      pushAlert({
-        message: UpgradeMessage,
-        dismissTime: "never",
-        type: "success",
-      });
-    };
-
-    // Add an event listener to detect when the registered
-    // service worker has installed but is waiting to activate.
-    wb.addEventListener("waiting", showSkipWaitingPrompt);
-    wb.addEventListener("externalwaiting", showSkipWaitingPrompt);
-
-    void wb.register().then((reg) => {
-      registration = reg;
-    });
-  });
-}
diff --git a/Timeline/ClientApp/src/app/services/DataHub.ts b/Timeline/ClientApp/src/app/services/DataHub.ts
deleted file mode 100644
index 93a9b41f..00000000
--- a/Timeline/ClientApp/src/app/services/DataHub.ts
+++ /dev/null
@@ -1,225 +0,0 @@
-import { pull } from "lodash";
-import { Observable, BehaviorSubject, combineLatest } from "rxjs";
-import { map } from "rxjs/operators";
-
-export type Subscriber<TData> = (data: TData) => void;
-
-export type WithSyncStatus<T> = T & { syncing: boolean };
-
-export class DataLine<TData> {
-  private _current: TData | undefined = undefined;
-
-  private _syncPromise: Promise<void> | null = null;
-  private _syncingSubject = new BehaviorSubject<boolean>(false);
-
-  private _observers: Subscriber<TData>[] = [];
-
-  constructor(
-    private config: {
-      sync: () => Promise<void>;
-      destroyable?: (value: TData | undefined) => boolean;
-      disableInitSync?: boolean;
-    }
-  ) {
-    if (config.disableInitSync !== true) {
-      setImmediate(() => void this.sync());
-    }
-  }
-
-  private subscribe(subscriber: Subscriber<TData>): void {
-    this._observers.push(subscriber);
-    if (this._current !== undefined) {
-      subscriber(this._current);
-    }
-  }
-
-  private unsubscribe(subscriber: Subscriber<TData>): void {
-    if (!this._observers.includes(subscriber)) return;
-    pull(this._observers, subscriber);
-  }
-
-  getObservable(): Observable<TData> {
-    return new Observable<TData>((observer) => {
-      const f = (data: TData): void => {
-        observer.next(data);
-      };
-      this.subscribe(f);
-
-      return () => {
-        this.unsubscribe(f);
-      };
-    });
-  }
-
-  getSyncStatusObservable(): Observable<boolean> {
-    return this._syncingSubject.asObservable();
-  }
-
-  getDataWithSyncStatusObservable(): Observable<WithSyncStatus<TData>> {
-    return combineLatest([
-      this.getObservable(),
-      this.getSyncStatusObservable(),
-    ]).pipe(
-      map(([data, syncing]) => ({
-        ...data,
-        syncing,
-      }))
-    );
-  }
-
-  get value(): TData | undefined {
-    return this._current;
-  }
-
-  next(value: TData): void {
-    this._current = value;
-    this._observers.forEach((observer) => observer(value));
-  }
-
-  get isSyncing(): boolean {
-    return this._syncPromise != null;
-  }
-
-  sync(): Promise<void> {
-    if (this._syncPromise == null) {
-      this._syncingSubject.next(true);
-      this._syncPromise = this.config.sync().then(() => {
-        this._syncingSubject.next(false);
-        this._syncPromise = null;
-      });
-    }
-
-    return this._syncPromise;
-  }
-
-  syncWithAction(
-    syncAction: (line: DataLine<TData>) => Promise<void>
-  ): Promise<void> {
-    if (this._syncPromise == null) {
-      this._syncingSubject.next(true);
-      this._syncPromise = syncAction(this).then(() => {
-        this._syncingSubject.next(false);
-        this._syncPromise = null;
-      });
-    }
-
-    return this._syncPromise;
-  }
-
-  get destroyable(): boolean {
-    const customDestroyable = this.config?.destroyable;
-
-    return (
-      this._observers.length === 0 &&
-      !this.isSyncing &&
-      (customDestroyable != null ? customDestroyable(this._current) : true)
-    );
-  }
-}
-
-export class DataHub<TKey, TData> {
-  private sync: (key: TKey, line: DataLine<TData>) => Promise<void>;
-  private keyToString: (key: TKey) => string;
-  private destroyable?: (key: TKey, value: TData | undefined) => boolean;
-
-  private readonly subscriptionLineMap = new Map<string, DataLine<TData>>();
-
-  private cleanTimerId = 0;
-
-  // setup is called after creating line and if it returns a function as destroyer, then when the line is destroyed the destroyer will be called.
-  constructor(config: {
-    sync: (key: TKey, line: DataLine<TData>) => Promise<void>;
-    keyToString?: (key: TKey) => string;
-    destroyable?: (key: TKey, value: TData | undefined) => boolean;
-  }) {
-    this.sync = config.sync;
-    this.keyToString =
-      config.keyToString ??
-      ((value): string => {
-        if (typeof value === "string") return value;
-        else
-          throw new Error(
-            "Default keyToString function only pass string value."
-          );
-      });
-
-    this.destroyable = config.destroyable;
-  }
-
-  private cleanLines(): void {
-    const toDelete: string[] = [];
-    for (const [key, line] of this.subscriptionLineMap.entries()) {
-      if (line.destroyable) {
-        toDelete.push(key);
-      }
-    }
-
-    if (toDelete.length === 0) return;
-
-    for (const key of toDelete) {
-      this.subscriptionLineMap.delete(key);
-    }
-
-    if (this.subscriptionLineMap.size === 0) {
-      window.clearInterval(this.cleanTimerId);
-      this.cleanTimerId = 0;
-    }
-  }
-
-  private createLine(key: TKey, disableInitSync = false): DataLine<TData> {
-    const keyString = this.keyToString(key);
-    const { destroyable } = this;
-    const newLine: DataLine<TData> = new DataLine<TData>({
-      sync: () => this.sync(key, newLine),
-      destroyable:
-        destroyable != null ? (value) => destroyable(key, value) : undefined,
-      disableInitSync: disableInitSync,
-    });
-    this.subscriptionLineMap.set(keyString, newLine);
-    if (this.subscriptionLineMap.size === 1) {
-      this.cleanTimerId = window.setInterval(this.cleanLines.bind(this), 20000);
-    }
-    return newLine;
-  }
-
-  getObservable(key: TKey): Observable<TData> {
-    return this.getLineOrCreate(key).getObservable();
-  }
-
-  getSyncStatusObservable(key: TKey): Observable<boolean> {
-    return this.getLineOrCreate(key).getSyncStatusObservable();
-  }
-
-  getDataWithSyncStatusObservable(
-    key: TKey
-  ): Observable<WithSyncStatus<TData>> {
-    return this.getLineOrCreate(key).getDataWithSyncStatusObservable();
-  }
-
-  getLine(key: TKey): DataLine<TData> | null {
-    const keyString = this.keyToString(key);
-    return this.subscriptionLineMap.get(keyString) ?? null;
-  }
-
-  getLineOrCreate(key: TKey): DataLine<TData> {
-    const keyString = this.keyToString(key);
-    return this.subscriptionLineMap.get(keyString) ?? this.createLine(key);
-  }
-
-  getLineOrCreateWithoutInitSync(key: TKey): DataLine<TData> {
-    const keyString = this.keyToString(key);
-    return (
-      this.subscriptionLineMap.get(keyString) ?? this.createLine(key, true)
-    );
-  }
-
-  optionalInitLineWithSyncAction(
-    key: TKey,
-    syncAction: (line: DataLine<TData>) => Promise<void>
-  ): Promise<void> {
-    const optionalLine = this.getLine(key);
-    if (optionalLine != null) return Promise.resolve();
-    const line = this.createLine(key, true);
-    return line.syncWithAction(syncAction);
-  }
-}
diff --git a/Timeline/ClientApp/src/app/services/alert.ts b/Timeline/ClientApp/src/app/services/alert.ts
deleted file mode 100644
index e4c0e653..00000000
--- a/Timeline/ClientApp/src/app/services/alert.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import React from "react";
-import pull from "lodash/pull";
-
-export interface AlertInfo {
-  type?: "primary" | "secondary" | "success" | "danger" | "warning" | "info";
-  message: string | React.FC<unknown> | { type: "i18n"; key: string };
-  dismissTime?: number | "never";
-}
-
-export interface AlertInfoEx extends AlertInfo {
-  id: number;
-}
-
-export type AlertConsumer = (alerts: AlertInfoEx) => void;
-
-export class AlertService {
-  private consumers: AlertConsumer[] = [];
-  private savedAlerts: AlertInfoEx[] = [];
-  private currentId = 1;
-
-  private produce(alert: AlertInfoEx): void {
-    for (const consumer of this.consumers) {
-      consumer(alert);
-    }
-  }
-
-  registerConsumer(consumer: AlertConsumer): void {
-    this.consumers.push(consumer);
-    if (this.savedAlerts.length !== 0) {
-      for (const alert of this.savedAlerts) {
-        this.produce(alert);
-      }
-      this.savedAlerts = [];
-    }
-  }
-
-  unregisterConsumer(consumer: AlertConsumer): void {
-    pull(this.consumers, consumer);
-  }
-
-  push(alert: AlertInfo): void {
-    const newAlert: AlertInfoEx = { ...alert, id: this.currentId++ };
-    if (this.consumers.length === 0) {
-      this.savedAlerts.push(newAlert);
-    } else {
-      this.produce(newAlert);
-    }
-  }
-}
-
-export const alertService = new AlertService();
-
-export function pushAlert(alert: AlertInfo): void {
-  alertService.push(alert);
-}
-
-export const kAlertHostId = "alert-host";
-
-export function getAlertHost(): HTMLElement | null {
-  return document.getElementById(kAlertHostId);
-}
diff --git a/Timeline/ClientApp/src/app/services/common.ts b/Timeline/ClientApp/src/app/services/common.ts
deleted file mode 100644
index 3bb6b9d7..00000000
--- a/Timeline/ClientApp/src/app/services/common.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import localforage from "localforage";
-
-import { HttpNetworkError } from "@/http/common";
-
-export const dataStorage = localforage.createInstance({
-  name: "data",
-  description: "Database for offline data.",
-  driver: localforage.INDEXEDDB,
-});
-
-export class ForbiddenError extends Error {
-  constructor(message?: string) {
-    super(message);
-  }
-}
-
-export function throwIfNotNetworkError(e: unknown): void {
-  if (!(e instanceof HttpNetworkError)) {
-    throw e;
-  }
-}
-
-export type BlobOrStatus = Blob | "loading" | "error";
diff --git a/Timeline/ClientApp/src/app/services/timeline.ts b/Timeline/ClientApp/src/app/services/timeline.ts
deleted file mode 100644
index 9db76281..00000000
--- a/Timeline/ClientApp/src/app/services/timeline.ts
+++ /dev/null
@@ -1,702 +0,0 @@
-import React from "react";
-import XRegExp from "xregexp";
-import { Observable, from, combineLatest, of } from "rxjs";
-import { map, switchMap, startWith } from "rxjs/operators";
-import { uniqBy } from "lodash";
-
-import { convertError } from "@/utilities/rxjs";
-import {
-  TimelineVisibility,
-  HttpTimelineInfo,
-  HttpTimelinePatchRequest,
-  HttpTimelinePostPostRequest,
-  HttpTimelinePostPostRequestContent,
-  HttpTimelinePostPostRequestTextContent,
-  HttpTimelinePostPostRequestImageContent,
-  HttpTimelinePostInfo,
-  HttpTimelinePostTextContent,
-  getHttpTimelineClient,
-  HttpTimelineNotExistError,
-  HttpTimelineNameConflictError,
-} from "@/http/timeline";
-import { BlobWithEtag, NotModified, HttpForbiddenError } from "@/http/common";
-import { HttpUser } from "@/http/user";
-
-export { kTimelineVisibilities } from "@/http/timeline";
-
-export type { TimelineVisibility } from "@/http/timeline";
-
-import { dataStorage, throwIfNotNetworkError, BlobOrStatus } from "./common";
-import { DataHub, WithSyncStatus } from "./DataHub";
-import { UserAuthInfo, checkLogin, userService, userInfoService } from "./user";
-
-export type TimelineInfo = HttpTimelineInfo;
-export type TimelineChangePropertyRequest = HttpTimelinePatchRequest;
-export type TimelineCreatePostRequest = HttpTimelinePostPostRequest;
-export type TimelineCreatePostContent = HttpTimelinePostPostRequestContent;
-export type TimelineCreatePostTextContent = HttpTimelinePostPostRequestTextContent;
-export type TimelineCreatePostImageContent = HttpTimelinePostPostRequestImageContent;
-
-export type TimelinePostTextContent = HttpTimelinePostTextContent;
-
-export interface TimelinePostImageContent {
-  type: "image";
-  data: BlobOrStatus;
-}
-
-export type TimelinePostContent =
-  | TimelinePostTextContent
-  | TimelinePostImageContent;
-
-export interface TimelinePostInfo {
-  id: number;
-  content: TimelinePostContent;
-  time: Date;
-  lastUpdated: Date;
-  author: HttpUser;
-}
-
-export const timelineVisibilityTooltipTranslationMap: Record<
-  TimelineVisibility,
-  string
-> = {
-  Public: "timeline.visibilityTooltip.public",
-  Register: "timeline.visibilityTooltip.register",
-  Private: "timeline.visibilityTooltip.private",
-};
-
-export class TimelineNotExistError extends Error {}
-export class TimelineNameConflictError extends Error {}
-
-export type TimelineWithSyncStatus = WithSyncStatus<
-  | {
-      type: "cache";
-      timeline: TimelineInfo;
-    }
-  | {
-      type: "offline" | "synced";
-      timeline: TimelineInfo | null;
-    }
->;
-
-export type TimelinePostsWithSyncState = WithSyncStatus<{
-  type:
-    | "cache"
-    | "offline" // Sync failed and use cache.
-    | "synced" // Sync succeeded.
-    | "forbid" // The list is forbidden to see.
-    | "notexist"; // The timeline does not exist.
-  posts: TimelinePostInfo[];
-}>;
-
-type TimelineData = Omit<HttpTimelineInfo, "owner" | "members"> & {
-  owner: string;
-  members: string[];
-};
-
-type TimelinePostData = Omit<HttpTimelinePostInfo, "author"> & {
-  author: string;
-};
-
-export class TimelineService {
-  private getCachedTimeline(
-    timelineName: string
-  ): Promise<TimelineData | null> {
-    return dataStorage.getItem<TimelineData | null>(`timeline.${timelineName}`);
-  }
-
-  private saveTimeline(
-    timelineName: string,
-    data: TimelineData
-  ): Promise<void> {
-    return dataStorage
-      .setItem<TimelineData>(`timeline.${timelineName}`, data)
-      .then();
-  }
-
-  private async clearTimelineData(timelineName: string): Promise<void> {
-    const keys = (await dataStorage.keys()).filter((k) =>
-      k.startsWith(`timeline.${timelineName}`)
-    );
-    await Promise.all(keys.map((k) => dataStorage.removeItem(k)));
-  }
-
-  private convertHttpTimelineToData(timeline: HttpTimelineInfo): TimelineData {
-    return {
-      ...timeline,
-      owner: timeline.owner.username,
-      members: timeline.members.map((m) => m.username),
-    };
-  }
-
-  private _timelineHub = new DataHub<
-    string,
-    | {
-        type: "cache";
-        timeline: TimelineData;
-      }
-    | {
-        type: "offline" | "synced";
-        timeline: TimelineData | null;
-      }
-  >({
-    sync: async (key, line) => {
-      const cache = await this.getCachedTimeline(key);
-
-      if (line.value == undefined) {
-        if (cache != null) {
-          line.next({ type: "cache", timeline: cache });
-        }
-      }
-
-      try {
-        const httpTimeline = await getHttpTimelineClient().getTimeline(key);
-
-        userInfoService.saveUsers([
-          httpTimeline.owner,
-          ...httpTimeline.members,
-        ]);
-
-        const timeline = this.convertHttpTimelineToData(httpTimeline);
-
-        if (cache != null && timeline.uniqueId !== cache.uniqueId) {
-          console.log(
-            `Timeline with name ${key} has changed to a new one. Clear old data.`
-          );
-          await this.clearTimelineData(key); // If timeline has changed, clear all old data.
-        }
-
-        await this.saveTimeline(key, timeline);
-
-        line.next({ type: "synced", timeline });
-      } catch (e) {
-        if (e instanceof HttpTimelineNotExistError) {
-          line.next({ type: "synced", timeline: null });
-        } else {
-          if (cache == null) {
-            line.next({ type: "offline", timeline: null });
-          } else {
-            line.next({ type: "offline", timeline: cache });
-          }
-          throwIfNotNetworkError(e);
-        }
-      }
-    },
-  });
-
-  syncTimeline(timelineName: string): Promise<void> {
-    return this._timelineHub.getLineOrCreate(timelineName).sync();
-  }
-
-  getTimeline$(timelineName: string): Observable<TimelineWithSyncStatus> {
-    return this._timelineHub.getDataWithSyncStatusObservable(timelineName).pipe(
-      switchMap((state) => {
-        const { timeline } = state;
-        if (timeline != null) {
-          return combineLatest(
-            [timeline.owner, ...timeline.members].map((u) =>
-              userInfoService.getUser$(u)
-            )
-          ).pipe(
-            map((users) => {
-              return {
-                ...state,
-                timeline: {
-                  ...timeline,
-                  owner: users[0],
-                  members: users.slice(1),
-                },
-              };
-            })
-          );
-        } else {
-          return of(state as TimelineWithSyncStatus);
-        }
-      })
-    );
-  }
-
-  createTimeline(timelineName: string): Observable<TimelineInfo> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient().postTimeline(
-        {
-          name: timelineName,
-        },
-        user.token
-      )
-    ).pipe(
-      convertError(HttpTimelineNameConflictError, TimelineNameConflictError)
-    );
-  }
-
-  changeTimelineProperty(
-    timelineName: string,
-    req: TimelineChangePropertyRequest
-  ): Observable<TimelineInfo> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient()
-        .patchTimeline(timelineName, req, user.token)
-        .then((timeline) => {
-          void this.syncTimeline(timelineName);
-          return timeline;
-        })
-    );
-  }
-
-  deleteTimeline(timelineName: string): Observable<unknown> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient().deleteTimeline(timelineName, user.token)
-    );
-  }
-
-  addMember(timelineName: string, username: string): Observable<unknown> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient()
-        .memberPut(timelineName, username, user.token)
-        .then(() => {
-          void this.syncTimeline(timelineName);
-        })
-    );
-  }
-
-  removeMember(timelineName: string, username: string): Observable<unknown> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient()
-        .memberDelete(timelineName, username, user.token)
-        .then(() => {
-          void this.syncTimeline(timelineName);
-        })
-    );
-  }
-
-  private convertHttpPostToData(post: HttpTimelinePostInfo): TimelinePostData {
-    return {
-      ...post,
-      author: post.author.username,
-    };
-  }
-
-  private convertHttpPostToDataList(
-    posts: HttpTimelinePostInfo[]
-  ): TimelinePostData[] {
-    return posts.map((post) => this.convertHttpPostToData(post));
-  }
-
-  private getCachedPosts(
-    timelineName: string
-  ): Promise<TimelinePostData[] | null> {
-    return dataStorage.getItem<TimelinePostData[] | null>(
-      `timeline.${timelineName}.posts`
-    );
-  }
-
-  private savePosts(
-    timelineName: string,
-    data: TimelinePostData[]
-  ): Promise<void> {
-    return dataStorage
-      .setItem<TimelinePostData[]>(`timeline.${timelineName}.posts`, data)
-      .then();
-  }
-
-  private syncPosts(timelineName: string): Promise<void> {
-    return this._postsHub.getLineOrCreate(timelineName).sync();
-  }
-
-  private _postsHub = new DataHub<
-    string,
-    {
-      type: "cache" | "offline" | "synced" | "forbid" | "notexist";
-      posts: TimelinePostData[];
-    }
-  >({
-    sync: async (key, line) => {
-      // Wait for timeline synced. In case the timeline has changed to another and old data has been cleaned.
-      await this.syncTimeline(key);
-
-      if (line.value == null) {
-        const cache = await this.getCachedPosts(key);
-        if (cache != null) {
-          line.next({ type: "cache", posts: cache });
-        }
-      }
-
-      const now = new Date();
-
-      const lastUpdatedTime = await dataStorage.getItem<Date | null>(
-        `timeline.${key}.lastUpdated`
-      );
-
-      try {
-        if (lastUpdatedTime == null) {
-          const httpPosts = await getHttpTimelineClient().listPost(
-            key,
-            userService.currentUser?.token
-          );
-
-          userInfoService.saveUsers(
-            uniqBy(
-              httpPosts.map((post) => post.author),
-              "username"
-            )
-          );
-
-          const posts = this.convertHttpPostToDataList(httpPosts);
-          await this.savePosts(key, posts);
-          await dataStorage.setItem<Date>(`timeline.${key}.lastUpdated`, now);
-
-          line.next({ type: "synced", posts });
-        } else {
-          const httpPosts = await getHttpTimelineClient().listPost(
-            key,
-            userService.currentUser?.token,
-            {
-              modifiedSince: lastUpdatedTime,
-              includeDeleted: true,
-            }
-          );
-
-          const deletedIds = httpPosts
-            .filter((p) => p.deleted)
-            .map((p) => p.id);
-          const changed = httpPosts.filter(
-            (p): p is HttpTimelinePostInfo => !p.deleted
-          );
-
-          userInfoService.saveUsers(
-            uniqBy(
-              httpPosts
-                .map((post) => post.author)
-                .filter((u): u is HttpUser => u != null),
-              "username"
-            )
-          );
-
-          const cache = (await this.getCachedPosts(key)) ?? [];
-
-          const posts = cache.filter((p) => !deletedIds.includes(p.id));
-
-          for (const changedPost of changed) {
-            const savedChangedPostIndex = posts.findIndex(
-              (p) => p.id === changedPost.id
-            );
-            if (savedChangedPostIndex === -1) {
-              posts.push(this.convertHttpPostToData(changedPost));
-            } else {
-              posts[savedChangedPostIndex] = this.convertHttpPostToData(
-                changedPost
-              );
-            }
-          }
-
-          await this.savePosts(key, posts);
-          await dataStorage.setItem<Date>(`timeline.${key}.lastUpdated`, now);
-          line.next({ type: "synced", posts });
-        }
-      } catch (e) {
-        if (e instanceof HttpTimelineNotExistError) {
-          line.next({ type: "notexist", posts: [] });
-        } else if (e instanceof HttpForbiddenError) {
-          line.next({ type: "forbid", posts: [] });
-        } else {
-          const cache = await this.getCachedPosts(key);
-          if (cache == null) {
-            line.next({ type: "offline", posts: [] });
-          } else {
-            line.next({ type: "offline", posts: cache });
-          }
-          throwIfNotNetworkError(e);
-        }
-      }
-    },
-  });
-
-  getPosts$(timelineName: string): Observable<TimelinePostsWithSyncState> {
-    return this._postsHub.getDataWithSyncStatusObservable(timelineName).pipe(
-      switchMap((state) => {
-        if (state.posts.length === 0) {
-          return of({
-            ...state,
-            posts: [],
-          });
-        }
-
-        return combineLatest([
-          combineLatest(
-            state.posts.map((post) => userInfoService.getUser$(post.author))
-          ),
-          combineLatest(
-            state.posts.map((post) => {
-              if (post.content.type === "image") {
-                return this.getPostData$(timelineName, post.id);
-              } else {
-                return of(null);
-              }
-            })
-          ),
-        ]).pipe(
-          map(([authors, datas]) => {
-            return {
-              ...state,
-              posts: state.posts.map((post, i) => {
-                const { content } = post;
-
-                return {
-                  ...post,
-                  author: authors[i],
-                  content: (() => {
-                    if (content.type === "text") return content;
-                    else
-                      return {
-                        type: "image",
-                        data: datas[i],
-                      } as TimelinePostImageContent;
-                  })(),
-                };
-              }),
-            };
-          })
-        );
-      })
-    );
-  }
-
-  private getCachedPostData(key: {
-    timelineName: string;
-    postId: number;
-  }): Promise<BlobWithEtag | null> {
-    return dataStorage.getItem<BlobWithEtag | null>(
-      `timeline.${key.timelineName}.post.${key.postId}.data`
-    );
-  }
-
-  private savePostData(
-    key: {
-      timelineName: string;
-      postId: number;
-    },
-    data: BlobWithEtag
-  ): Promise<void> {
-    return dataStorage
-      .setItem<BlobWithEtag>(
-        `timeline.${key.timelineName}.post.${key.postId}.data`,
-        data
-      )
-      .then();
-  }
-
-  private syncPostData(key: {
-    timelineName: string;
-    postId: number;
-  }): Promise<void> {
-    return this._postDataHub.getLineOrCreate(key).sync();
-  }
-
-  private _postDataHub = new DataHub<
-    { timelineName: string; postId: number },
-    | { data: Blob; type: "cache" | "synced" | "offline" }
-    | { data?: undefined; type: "notexist" | "offline" }
-  >({
-    keyToString: (key) => `${key.timelineName}.${key.postId}`,
-    sync: async (key, line) => {
-      const cache = await this.getCachedPostData(key);
-      if (line.value == null) {
-        if (cache != null) {
-          line.next({ type: "cache", data: cache.data });
-        }
-      }
-
-      if (cache == null) {
-        try {
-          const res = await getHttpTimelineClient().getPostData(
-            key.timelineName,
-            key.postId
-          );
-          await this.savePostData(key, res);
-          line.next({ data: res.data, type: "synced" });
-        } catch (e) {
-          line.next({ type: "offline" });
-          throwIfNotNetworkError(e);
-        }
-      } else {
-        try {
-          const res = await getHttpTimelineClient().getPostData(
-            key.timelineName,
-            key.postId,
-            cache.etag
-          );
-          if (res instanceof NotModified) {
-            line.next({ data: cache.data, type: "synced" });
-          } else {
-            await this.savePostData(key, res);
-            line.next({ data: res.data, type: "synced" });
-          }
-        } catch (e) {
-          line.next({ data: cache.data, type: "offline" });
-          throwIfNotNetworkError(e);
-        }
-      }
-    },
-  });
-
-  getPostData$(timelineName: string, postId: number): Observable<BlobOrStatus> {
-    return this._postDataHub.getObservable({ timelineName, postId }).pipe(
-      map((state): BlobOrStatus => state.data ?? "error"),
-      startWith("loading")
-    );
-  }
-
-  createPost(
-    timelineName: string,
-    request: TimelineCreatePostRequest
-  ): Observable<unknown> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient()
-        .postPost(timelineName, request, user.token)
-        .then(() => {
-          void this.syncPosts(timelineName);
-        })
-    );
-  }
-
-  deletePost(timelineName: string, postId: number): Observable<unknown> {
-    const user = checkLogin();
-    return from(
-      getHttpTimelineClient()
-        .deletePost(timelineName, postId, user.token)
-        .then(() => {
-          void this.syncPosts(timelineName);
-        })
-    );
-  }
-
-  isMemberOf(username: string, timeline: TimelineInfo): boolean {
-    return timeline.members.findIndex((m) => m.username == username) >= 0;
-  }
-
-  hasReadPermission(
-    user: UserAuthInfo | null | undefined,
-    timeline: TimelineInfo
-  ): boolean {
-    if (user != null && user.administrator) return true;
-
-    const { visibility } = timeline;
-    if (visibility === "Public") {
-      return true;
-    } else if (visibility === "Register") {
-      if (user != null) return true;
-    } else if (visibility === "Private") {
-      if (
-        user != null &&
-        (user.username === timeline.owner.username ||
-          this.isMemberOf(user.username, timeline))
-      ) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  hasPostPermission(
-    user: UserAuthInfo | null | undefined,
-    timeline: TimelineInfo
-  ): boolean {
-    if (user != null && user.administrator) return true;
-
-    return (
-      user != null &&
-      (timeline.owner.username === user.username ||
-        this.isMemberOf(user.username, timeline))
-    );
-  }
-
-  hasManagePermission(
-    user: UserAuthInfo | null | undefined,
-    timeline: TimelineInfo
-  ): boolean {
-    if (user != null && user.administrator) return true;
-
-    return user != null && user.username == timeline.owner.username;
-  }
-
-  hasModifyPostPermission(
-    user: UserAuthInfo | null | undefined,
-    timeline: TimelineInfo,
-    post: TimelinePostInfo
-  ): boolean {
-    if (user != null && user.administrator) return true;
-
-    return (
-      user != null &&
-      (user.username === timeline.owner.username ||
-        user.username === post.author.username)
-    );
-  }
-}
-
-export const timelineService = new TimelineService();
-
-const timelineNameReg = XRegExp("^[-_\\p{L}]*$", "u");
-
-export function validateTimelineName(name: string): boolean {
-  return timelineNameReg.test(name);
-}
-
-export function useTimelineInfo(
-  timelineName: string
-): TimelineWithSyncStatus | undefined {
-  const [state, setState] = React.useState<TimelineWithSyncStatus | undefined>(
-    undefined
-  );
-  React.useEffect(() => {
-    const subscription = timelineService
-      .getTimeline$(timelineName)
-      .subscribe((data) => {
-        setState(data);
-      });
-    return () => {
-      subscription.unsubscribe();
-    };
-  }, [timelineName]);
-  return state;
-}
-
-export function usePostList(
-  timelineName: string | null | undefined
-): TimelinePostsWithSyncState | undefined {
-  const [state, setState] = React.useState<
-    TimelinePostsWithSyncState | undefined
-  >(undefined);
-  React.useEffect(() => {
-    if (timelineName == null) {
-      setState(undefined);
-      return;
-    }
-
-    const subscription = timelineService
-      .getPosts$(timelineName)
-      .subscribe((data) => {
-        setState(data);
-      });
-    return () => {
-      subscription.unsubscribe();
-    };
-  }, [timelineName]);
-  return state;
-}
-
-export async function getAllCachedTimelineNames(): Promise<string[]> {
-  const keys = await dataStorage.keys();
-  return keys
-    .filter(
-      (key) =>
-        key.startsWith("timeline.") && (key.match(/\./g) ?? []).length === 1
-    )
-    .map((key) => key.substr("timeline.".length));
-}
diff --git a/Timeline/ClientApp/src/app/services/user.ts b/Timeline/ClientApp/src/app/services/user.ts
deleted file mode 100644
index f253fc19..00000000
--- a/Timeline/ClientApp/src/app/services/user.ts
+++ /dev/null
@@ -1,393 +0,0 @@
-import React, { useState, useEffect } from "react";
-import { BehaviorSubject, Observable, from } from "rxjs";
-import { map, filter } from "rxjs/operators";
-
-import { UiLogicError } from "@/common";
-import { convertError } from "@/utilities/rxjs";
-
-import { HttpNetworkError, BlobWithEtag, NotModified } from "@/http/common";
-import {
-  getHttpTokenClient,
-  HttpCreateTokenBadCredentialError,
-} from "@/http/token";
-import {
-  getHttpUserClient,
-  HttpUserNotExistError,
-  HttpUser,
-} from "@/http/user";
-
-import { dataStorage, throwIfNotNetworkError } from "./common";
-import { DataHub } from "./DataHub";
-import { pushAlert } from "./alert";
-
-export type User = HttpUser;
-
-export interface UserAuthInfo {
-  username: string;
-  administrator: boolean;
-}
-
-export interface UserWithToken extends User {
-  token: string;
-}
-
-export interface LoginCredentials {
-  username: string;
-  password: string;
-}
-
-export class BadCredentialError {
-  message = "login.badCredential";
-}
-
-const USER_STORAGE_KEY = "currentuser";
-
-export class UserService {
-  private userSubject = new BehaviorSubject<UserWithToken | null | undefined>(
-    undefined
-  );
-
-  get user$(): Observable<UserWithToken | null | undefined> {
-    return this.userSubject;
-  }
-
-  get currentUser(): UserWithToken | null | undefined {
-    return this.userSubject.value;
-  }
-
-  async checkLoginState(): Promise<UserWithToken | null> {
-    if (this.currentUser !== undefined) {
-      console.warn("Already checked user. Can't check twice.");
-    }
-
-    const savedUser = await dataStorage.getItem<UserWithToken | null>(
-      USER_STORAGE_KEY
-    );
-
-    if (savedUser == null) {
-      this.userSubject.next(null);
-      return null;
-    }
-
-    this.userSubject.next(savedUser);
-
-    const savedToken = savedUser.token;
-    try {
-      const res = await getHttpTokenClient().verify({ token: savedToken });
-      const user: UserWithToken = { ...res.user, token: savedToken };
-      await dataStorage.setItem<UserWithToken>(USER_STORAGE_KEY, user);
-      this.userSubject.next(user);
-      pushAlert({
-        type: "success",
-        message: {
-          type: "i18n",
-          key: "user.welcomeBack",
-        },
-      });
-      return user;
-    } catch (error) {
-      if (error instanceof HttpNetworkError) {
-        pushAlert({
-          type: "danger",
-          message: { type: "i18n", key: "user.verifyTokenFailedNetwork" },
-        });
-        return savedUser;
-      } else {
-        await dataStorage.removeItem(USER_STORAGE_KEY);
-        this.userSubject.next(null);
-        pushAlert({
-          type: "danger",
-          message: { type: "i18n", key: "user.verifyTokenFailed" },
-        });
-        return null;
-      }
-    }
-  }
-
-  async login(
-    credentials: LoginCredentials,
-    rememberMe: boolean
-  ): Promise<void> {
-    if (this.currentUser) {
-      throw new UiLogicError("Already login.");
-    }
-    try {
-      const res = await getHttpTokenClient().create({
-        ...credentials,
-        expire: 30,
-      });
-      const user: UserWithToken = {
-        ...res.user,
-        token: res.token,
-      };
-      if (rememberMe) {
-        await dataStorage.setItem<UserWithToken>(USER_STORAGE_KEY, user);
-      }
-      this.userSubject.next(user);
-    } catch (e) {
-      if (e instanceof HttpCreateTokenBadCredentialError) {
-        throw new BadCredentialError();
-      } else {
-        throw e;
-      }
-    }
-  }
-
-  async logout(): Promise<void> {
-    if (this.currentUser === undefined) {
-      throw new UiLogicError("Please check user first.");
-    }
-    if (this.currentUser === null) {
-      throw new UiLogicError("No login.");
-    }
-    await dataStorage.removeItem(USER_STORAGE_KEY);
-    this.userSubject.next(null);
-  }
-
-  changePassword(
-    oldPassword: string,
-    newPassword: string
-  ): Observable<unknown> {
-    if (this.currentUser == undefined) {
-      throw new UiLogicError("Not login or checked now, can't log out.");
-    }
-    const $ = from(
-      getHttpUserClient().changePassword(
-        {
-          oldPassword,
-          newPassword,
-        },
-        this.currentUser.token
-      )
-    );
-    $.subscribe(() => {
-      void this.logout();
-    });
-    return $;
-  }
-}
-
-export const userService = new UserService();
-
-export function useRawUser(): UserWithToken | null | undefined {
-  const [user, setUser] = useState<UserWithToken | null | undefined>(
-    userService.currentUser
-  );
-  useEffect(() => {
-    const subscription = userService.user$.subscribe((u) => setUser(u));
-    return () => {
-      subscription.unsubscribe();
-    };
-  });
-  return user;
-}
-
-export function useUser(): UserWithToken | null {
-  const [user, setUser] = useState<UserWithToken | null>(() => {
-    const initUser = userService.currentUser;
-    if (initUser === undefined) {
-      throw new UiLogicError(
-        "This is a logic error in user module. Current user can't be undefined in useUser."
-      );
-    }
-    return initUser;
-  });
-  useEffect(() => {
-    const sub = userService.user$.subscribe((u) => {
-      if (u === undefined) {
-        throw new UiLogicError(
-          "This is a logic error in user module. User emitted can't be undefined later."
-        );
-      }
-      setUser(u);
-    });
-    return () => {
-      sub.unsubscribe();
-    };
-  });
-  return user;
-}
-
-export function useUserLoggedIn(): UserWithToken {
-  const user = useUser();
-  if (user == null) {
-    throw new UiLogicError("You assert user has logged in but actually not.");
-  }
-  return user;
-}
-
-export function checkLogin(): UserWithToken {
-  const user = userService.currentUser;
-  if (user == null) {
-    throw new UiLogicError("You must login to perform the operation.");
-  }
-  return user;
-}
-
-export class UserNotExistError extends Error {}
-
-export class UserInfoService {
-  saveUser(user: HttpUser): void {
-    const key = user.username;
-    void this._userHub.optionalInitLineWithSyncAction(key, async (line) => {
-      await this.doSaveUser(user);
-      line.next({ user, type: "synced" });
-    });
-  }
-
-  saveUsers(users: HttpUser[]): void {
-    return users.forEach((user) => this.saveUser(user));
-  }
-
-  private getCachedUser(username: string): Promise<User | null> {
-    return dataStorage.getItem<HttpUser | null>(`user.${username}`);
-  }
-
-  private doSaveUser(user: HttpUser): Promise<void> {
-    return dataStorage.setItem<HttpUser>(`user.${user.username}`, user).then();
-  }
-
-  syncUser(username: string): Promise<void> {
-    return this._userHub.getLineOrCreate(username).sync();
-  }
-
-  private _userHub = new DataHub<
-    string,
-    | { user: User; type: "cache" | "synced" | "offline" }
-    | { user?: undefined; type: "notexist" | "offline" }
-  >({
-    sync: async (key, line) => {
-      if (line.value == undefined) {
-        const cache = await this.getCachedUser(key);
-        if (cache != null) {
-          line.next({ user: cache, type: "cache" });
-        }
-      }
-
-      try {
-        const res = await getHttpUserClient().get(key);
-        await this.doSaveUser(res);
-        line.next({ user: res, type: "synced" });
-      } catch (e) {
-        if (e instanceof HttpUserNotExistError) {
-          line.next({ type: "notexist" });
-        } else {
-          const cache = await this.getCachedUser(key);
-          line.next({ user: cache ?? undefined, type: "offline" });
-          throwIfNotNetworkError(e);
-        }
-      }
-    },
-  });
-
-  getUser$(username: string): Observable<User> {
-    return this._userHub.getObservable(username).pipe(
-      map((state) => state?.user),
-      filter((user): user is User => user != null)
-    );
-  }
-
-  private getCachedAvatar(username: string): Promise<BlobWithEtag | null> {
-    return dataStorage.getItem<BlobWithEtag | null>(`user.${username}.avatar`);
-  }
-
-  private saveAvatar(username: string, data: BlobWithEtag): Promise<void> {
-    return dataStorage
-      .setItem<BlobWithEtag>(`user.${username}.avatar`, data)
-      .then();
-  }
-
-  syncAvatar(username: string): Promise<void> {
-    return this._avatarHub.getLineOrCreate(username).sync();
-  }
-
-  private _avatarHub = new DataHub<
-    string,
-    | { data: Blob; type: "cache" | "synced" | "offline" }
-    | { data?: undefined; type: "notexist" | "offline" }
-  >({
-    sync: async (key, line) => {
-      const cache = await this.getCachedAvatar(key);
-      if (line.value == null) {
-        if (cache != null) {
-          line.next({ data: cache.data, type: "cache" });
-        }
-      }
-
-      if (cache == null) {
-        try {
-          const avatar = await getHttpUserClient().getAvatar(key);
-          await this.saveAvatar(key, avatar);
-          line.next({ data: avatar.data, type: "synced" });
-        } catch (e) {
-          line.next({ type: "offline" });
-          throwIfNotNetworkError(e);
-        }
-      } else {
-        try {
-          const res = await getHttpUserClient().getAvatar(key, cache.etag);
-          if (res instanceof NotModified) {
-            line.next({ data: cache.data, type: "synced" });
-          } else {
-            const avatar = res;
-            await this.saveAvatar(key, avatar);
-            line.next({ data: avatar.data, type: "synced" });
-          }
-        } catch (e) {
-          line.next({ data: cache.data, type: "offline" });
-          throwIfNotNetworkError(e);
-        }
-      }
-    },
-  });
-
-  getAvatar$(username: string): Observable<Blob> {
-    return this._avatarHub.getObservable(username).pipe(
-      map((state) => state.data),
-      filter((blob): blob is Blob => blob != null)
-    );
-  }
-
-  getUserInfo(username: string): Observable<User> {
-    return from(getHttpUserClient().get(username)).pipe(
-      convertError(HttpUserNotExistError, UserNotExistError)
-    );
-  }
-
-  async setAvatar(username: string, blob: Blob): Promise<void> {
-    const user = checkLogin();
-    await getHttpUserClient().putAvatar(username, blob, user.token);
-    this._avatarHub.getLine(username)?.next({ data: blob, type: "synced" });
-  }
-
-  async setNickname(username: string, nickname: string): Promise<void> {
-    const user = checkLogin();
-    return getHttpUserClient()
-      .patch(username, { nickname }, user.token)
-      .then((user) => {
-        this.saveUser(user);
-      });
-  }
-}
-
-export const userInfoService = new UserInfoService();
-
-export function useAvatar(username?: string): Blob | undefined {
-  const [state, setState] = React.useState<Blob | undefined>(undefined);
-  React.useEffect(() => {
-    if (username == null) {
-      setState(undefined);
-      return;
-    }
-
-    const subscription = userInfoService
-      .getAvatar$(username)
-      .subscribe((blob) => {
-        setState(blob);
-      });
-    return () => {
-      subscription.unsubscribe();
-    };
-  }, [username]);
-  return state;
-}
diff --git a/Timeline/ClientApp/src/app/tsconfig.json b/Timeline/ClientApp/src/app/tsconfig.json
deleted file mode 100644
index 14e6327f..00000000
--- a/Timeline/ClientApp/src/app/tsconfig.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "extends": "../tsconfig.json",
-  "compilerOptions": {
-    "lib": [
-      "dom",
-      "dom.iterable",
-      "esnext"
-    ]
-  },
-  "include": [
-    "."
-  ]
-}
diff --git a/Timeline/ClientApp/src/app/typings.d.ts b/Timeline/ClientApp/src/app/typings.d.ts
deleted file mode 100644
index 34381682..00000000
--- a/Timeline/ClientApp/src/app/typings.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-declare module "*.png" {
-  const content: string;
-  export default content;
-}
-
-declare module "*.jpeg" {
-  const content: string;
-  export default content;
-}
-
-declare module "*.jpg" {
-  const content: string;
-  export default content;
-}
-
-declare module "*.gif" {
-  const content: string;
-  export default content;
-}
-
-declare module "*.svg" {
-  const content: string;
-  export default content;
-}
diff --git a/Timeline/ClientApp/src/app/utilities/rxjs.ts b/Timeline/ClientApp/src/app/utilities/rxjs.ts
deleted file mode 100644
index 0730b899..00000000
--- a/Timeline/ClientApp/src/app/utilities/rxjs.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { OperatorFunction } from "rxjs";
-import { catchError } from "rxjs/operators";
-
-export function convertError<T, NewError>(
-  oldErrorType: { new (...args: never[]): unknown },
-  newErrorType: { new (): NewError }
-): OperatorFunction<T, T> {
-  return catchError((error) => {
-    if (error instanceof oldErrorType) {
-      throw new newErrorType();
-    }
-    throw error;
-  });
-}
diff --git a/Timeline/ClientApp/src/app/utilities/url.ts b/Timeline/ClientApp/src/app/utilities/url.ts
deleted file mode 100644
index 17ead5b2..00000000
--- a/Timeline/ClientApp/src/app/utilities/url.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-//copied from https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter
-export function updateQueryString(
-  key: string,
-  value: undefined | string | null,
-  url: string
-): string {
-  const re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi");
-  let hash;
-
-  if (re.test(url)) {
-    if (typeof value !== "undefined" && value !== null) {
-      return url.replace(re, "$1" + key + "=" + value + "$2$3");
-    } else {
-      hash = url.split("#");
-      url = hash[0].replace(re, "$1$3").replace(/(&|\?)$/, "");
-      if (typeof hash[1] !== "undefined" && hash[1] !== null) {
-        url += "#" + hash[1];
-      }
-      return url;
-    }
-  } else {
-    if (typeof value !== "undefined" && value !== null) {
-      const separator = url.includes("?") ? "&" : "?";
-      hash = url.split("#");
-      url = hash[0] + separator + key + "=" + value;
-      if (typeof hash[1] !== "undefined" && hash[1] !== null) {
-        url += "#" + hash[1];
-      }
-      return url;
-    } else {
-      return url;
-    }
-  }
-}
-
-export function applyQueryParameters<T>(url: string, query: T): string {
-  if (query == null) return url;
-
-  for (const [key, value] of Object.entries(query)) {
-    if (typeof value === "string") url = updateQueryString(key, value, url);
-    else if (typeof value === "number")
-      url = updateQueryString(key, String(value), url);
-    else if (typeof value === "boolean")
-      url = updateQueryString(key, value ? "true" : "false", url);
-    else if (value instanceof Date)
-      url = updateQueryString(key, value.toISOString(), url);
-    else {
-      console.error("Unknown query parameter type. Param: ", value);
-    }
-  }
-  return url;
-}
diff --git a/Timeline/ClientApp/src/app/views/about/about.sass b/Timeline/ClientApp/src/app/views/about/about.sass
deleted file mode 100644
index 3b5840cd..00000000
--- a/Timeline/ClientApp/src/app/views/about/about.sass
+++ /dev/null
@@ -1,4 +0,0 @@
-.about-link-icon
-  @extend .mx-2
-  width: 1.2em
-  height: 1.2em
diff --git a/Timeline/ClientApp/src/app/views/about/author-avatar.png b/Timeline/ClientApp/src/app/views/about/author-avatar.png
deleted file mode 100644
index d890d8d0..00000000
Binary files a/Timeline/ClientApp/src/app/views/about/author-avatar.png and /dev/null differ
diff --git a/Timeline/ClientApp/src/app/views/about/github.png b/Timeline/ClientApp/src/app/views/about/github.png
deleted file mode 100644
index ea6ff545..00000000
Binary files a/Timeline/ClientApp/src/app/views/about/github.png and /dev/null differ
diff --git a/Timeline/ClientApp/src/app/views/about/index.tsx b/Timeline/ClientApp/src/app/views/about/index.tsx
deleted file mode 100644
index e7771cec..00000000
--- a/Timeline/ClientApp/src/app/views/about/index.tsx
+++ /dev/null
@@ -1,164 +0,0 @@
-import React from "react";
-import { useTranslation, Trans } from "react-i18next";
-
-import authorAvatarUrl from "./author-avatar.png";
-import githubLogoUrl from "./github.png";
-
-const frontendCredits: {
-  name: string;
-  url: string;
-}[] = [
-  {
-    name: "reactjs",
-    url: "https://reactjs.org",
-  },
-  {
-    name: "typescript",
-    url: "https://www.typescriptlang.org",
-  },
-  {
-    name: "bootstrap",
-    url: "https://getbootstrap.com",
-  },
-  {
-    name: "react-bootstrap",
-    url: "https://react-bootstrap.github.io",
-  },
-  {
-    name: "babeljs",
-    url: "https://babeljs.io",
-  },
-  {
-    name: "webpack",
-    url: "https://webpack.js.org",
-  },
-  {
-    name: "sass",
-    url: "https://sass-lang.com",
-  },
-  {
-    name: "eslint",
-    url: "https://eslint.org",
-  },
-  {
-    name: "prettier",
-    url: "https://prettier.io",
-  },
-  {
-    name: "pepjs",
-    url: "https://github.com/jquery/PEP",
-  },
-  {
-    name: "react-inlinesvg",
-    url: "https://github.com/gilbarbara/react-inlinesvg",
-  },
-];
-
-const backendCredits: {
-  name: string;
-  url: string;
-}[] = [
-  {
-    name: "ASP.NET Core",
-    url: "https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core",
-  },
-  { name: "sqlite", url: "https://sqlite.org" },
-  {
-    name: "ImageSharp",
-    url: "https://github.com/SixLabors/ImageSharp",
-  },
-];
-
-const AboutPage: React.FC = () => {
-  const { t } = useTranslation();
-
-  return (
-    <div className="mt-appbar px-2 mb-4">
-      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
-        <h4 id="author-info">{t("about.author.title")}</h4>
-        <div>
-          <div className="d-flex">
-            <img
-              src={authorAvatarUrl}
-              className="align-self-start avatar large rounded-circle"
-            />
-            <div>
-              <p>
-                <small>{t("about.author.fullname")}</small>
-                <span className="text-primary">杨宇千</span>
-              </p>
-              <p>
-                <small>{t("about.author.nickname")}</small>
-                <span className="text-primary">crupest</span>
-              </p>
-              <p>
-                <small>{t("about.author.introduction")}</small>
-                {t("about.author.introductionContent")}
-              </p>
-            </div>
-          </div>
-          <p>
-            <small>{t("about.author.links")}</small>
-            <a
-              href="https://github.com/crupest"
-              target="_blank"
-              rel="noopener noreferrer"
-            >
-              <img src={githubLogoUrl} className="about-link-icon text-body" />
-            </a>
-          </p>
-        </div>
-      </div>
-      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
-        <h4>{t("about.site.title")}</h4>
-        <p>
-          <Trans i18nKey="about.site.content">
-            0<span className="text-primary">1</span>2<b>3</b>4
-            <a href="#author-info">5</a>6
-          </Trans>
-        </p>
-        <p>
-          <a
-            href="https://github.com/crupest/Timeline"
-            target="_blank"
-            rel="noopener noreferrer"
-          >
-            {t("about.site.repo")}
-          </a>
-        </p>
-      </div>
-      <div className="container mt-4 py-3 shadow border border-primary rounded bg-light">
-        <h4>{t("about.credits.title")}</h4>
-        <p>{t("about.credits.content")}</p>
-        <p>{t("about.credits.frontend")}</p>
-        <ul>
-          {frontendCredits.map((item, index) => {
-            return (
-              <li key={index}>
-                <a href={item.url} target="_blank" rel="noopener noreferrer">
-                  {item.name}
-                </a>
-              </li>
-            );
-          })}
-          <li>...</li>
-        </ul>
-        <p>{t("about.credits.backend")}</p>
-        <ul>
-          {backendCredits.map((item, index) => {
-            return (
-              <li key={index}>
-                <a href={item.url} target="_blank" rel="noopener noreferrer">
-                  {item.name}
-                </a>
-              </li>
-            );
-          })}
-          <li>...</li>
-        </ul>
-      </div>
-    </div>
-  );
-};
-
-export default AboutPage;
diff --git a/Timeline/ClientApp/src/app/views/admin/Admin.tsx b/Timeline/ClientApp/src/app/views/admin/Admin.tsx
deleted file mode 100644
index 9c0250e7..00000000
--- a/Timeline/ClientApp/src/app/views/admin/Admin.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import React, { Fragment } from "react";
-import {
-  Redirect,
-  Route,
-  Switch,
-  useRouteMatch,
-  useHistory,
-} from "react-router";
-import { Nav } from "react-bootstrap";
-
-import { UserWithToken } from "@/services/user";
-
-import UserAdmin from "./UserAdmin";
-
-interface AdminProps {
-  user: UserWithToken;
-}
-
-const Admin: React.FC<AdminProps> = (props) => {
-  const match = useRouteMatch();
-  const history = useHistory();
-  type TabNames = "users" | "more";
-
-  const tabName = history.location.pathname.replace(match.path + "/", "");
-
-  function toggle(newTab: TabNames): void {
-    history.push(`${match.url}/${newTab}`);
-  }
-
-  const createRoute = (
-    name: string,
-    body: React.ReactNode
-  ): React.ReactNode => {
-    return (
-      <Route path={`${match.path}/${name}`}>
-        <div style={{ height: 56 }} className="flex-fix-length" />
-        <Nav variant="tabs">
-          <Nav.Item>
-            <Nav.Link
-              active={tabName === "users"}
-              onClick={() => {
-                toggle("users");
-              }}
-            >
-              Users
-            </Nav.Link>
-          </Nav.Item>
-          <Nav.Item>
-            <Nav.Link
-              active={tabName === "more"}
-              onClick={() => {
-                toggle("more");
-              }}
-            >
-              More
-            </Nav.Link>
-          </Nav.Item>
-        </Nav>
-        {body}
-      </Route>
-    );
-  };
-
-  return (
-    <Fragment>
-      <Switch>
-        <Redirect from={match.path} to={`${match.path}/users`} exact />
-        {createRoute("users", <UserAdmin user={props.user} />)}
-        {createRoute("more", <div>More Page Works</div>)}
-      </Switch>
-    </Fragment>
-  );
-};
-
-export default Admin;
diff --git a/Timeline/ClientApp/src/app/views/admin/UserAdmin.tsx b/Timeline/ClientApp/src/app/views/admin/UserAdmin.tsx
deleted file mode 100644
index 18b77ca8..00000000
--- a/Timeline/ClientApp/src/app/views/admin/UserAdmin.tsx
+++ /dev/null
@@ -1,460 +0,0 @@
-import React, { useState, useEffect } from "react";
-import axios from "axios";
-import {
-  ListGroup,
-  Row,
-  Col,
-  Dropdown,
-  Spinner,
-  Button,
-} from "react-bootstrap";
-
-import OperationDialog from "../common/OperationDialog";
-import { User, UserWithToken } from "@/services/user";
-
-const apiBaseUrl = "/api";
-
-async function fetchUserList(_token: string): Promise<User[]> {
-  const res = await axios.get<User[]>(`${apiBaseUrl}/users`);
-  return res.data;
-}
-
-interface CreateUserInfo {
-  username: string;
-  password: string;
-  administrator: boolean;
-}
-
-async function createUser(user: CreateUserInfo, token: string): Promise<User> {
-  const res = await axios.post<User>(
-    `${apiBaseUrl}/userop/createuser?token=${token}`,
-    user
-  );
-  return res.data;
-}
-
-function deleteUser(username: string, token: string): Promise<void> {
-  return axios.delete(`${apiBaseUrl}/users/${username}?token=${token}`);
-}
-
-function changeUsername(
-  oldUsername: string,
-  newUsername: string,
-  token: string
-): Promise<void> {
-  return axios.patch(`${apiBaseUrl}/users/${oldUsername}?token=${token}`, {
-    username: newUsername,
-  });
-}
-
-function changePassword(
-  username: string,
-  newPassword: string,
-  token: string
-): Promise<void> {
-  return axios.patch(`${apiBaseUrl}/users/${username}?token=${token}`, {
-    password: newPassword,
-  });
-}
-
-function changePermission(
-  username: string,
-  newPermission: boolean,
-  token: string
-): Promise<void> {
-  return axios.patch(`${apiBaseUrl}/users/${username}?token=${token}`, {
-    administrator: newPermission,
-  });
-}
-
-const kChangeUsername = "changeusername";
-const kChangePassword = "changepassword";
-const kChangePermission = "changepermission";
-const kDelete = "delete";
-
-type TChangeUsername = typeof kChangeUsername;
-type TChangePassword = typeof kChangePassword;
-type TChangePermission = typeof kChangePermission;
-type TDelete = typeof kDelete;
-
-type ContextMenuItem =
-  | TChangeUsername
-  | TChangePassword
-  | TChangePermission
-  | TDelete;
-
-interface UserCardProps {
-  onContextMenu: (item: ContextMenuItem) => void;
-  user: User;
-}
-
-const UserItem: React.FC<UserCardProps> = (props) => {
-  const user = props.user;
-
-  const createClickCallback = (item: ContextMenuItem): (() => void) => {
-    return () => {
-      props.onContextMenu(item);
-    };
-  };
-
-  return (
-    <ListGroup.Item className="container">
-      <Row className="align-items-center">
-        <Col>
-          <p className="mb-0 text-primary">{user.username}</p>
-          <small
-            className={user.administrator ? "text-danger" : "text-secondary"}
-          >
-            {user.administrator ? "administrator" : "user"}
-          </small>
-        </Col>
-        <Col className="col-auto">
-          <Dropdown>
-            <Dropdown.Toggle variant="warning" className="text-light">
-              Manage
-            </Dropdown.Toggle>
-            <Dropdown.Menu>
-              <Dropdown.Item onClick={createClickCallback(kChangeUsername)}>
-                Change Username
-              </Dropdown.Item>
-              <Dropdown.Item onClick={createClickCallback(kChangePassword)}>
-                Change Password
-              </Dropdown.Item>
-              <Dropdown.Item onClick={createClickCallback(kChangePermission)}>
-                Change Permission
-              </Dropdown.Item>
-              <Dropdown.Item
-                className="text-danger"
-                onClick={createClickCallback(kDelete)}
-              >
-                Delete
-              </Dropdown.Item>
-            </Dropdown.Menu>
-          </Dropdown>
-        </Col>
-      </Row>
-    </ListGroup.Item>
-  );
-};
-
-interface DialogProps {
-  open: boolean;
-  close: () => void;
-}
-
-interface CreateUserDialogProps extends DialogProps {
-  process: (user: CreateUserInfo) => Promise<void>;
-}
-
-const CreateUserDialog: React.FC<CreateUserDialogProps> = (props) => {
-  return (
-    <OperationDialog
-      title="Create"
-      titleColor="create"
-      inputPrompt="You are creating a new user."
-      inputScheme={[
-        { type: "text", label: "Username" },
-        { type: "text", label: "Password" },
-        { type: "bool", label: "Administrator" },
-      ]}
-      onProcess={([username, password, administrator]) =>
-        props.process({
-          username: username as string,
-          password: password as string,
-          administrator: administrator as boolean,
-        })
-      }
-      close={props.close}
-      open={props.open}
-    />
-  );
-};
-
-const UsernameLabel: React.FC = (props) => {
-  return <span style={{ color: "blue" }}>{props.children}</span>;
-};
-
-interface UserDeleteDialogProps extends DialogProps {
-  username: string;
-  process: () => Promise<void>;
-}
-
-const UserDeleteDialog: React.FC<UserDeleteDialogProps> = (props) => {
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      title="Dangerous"
-      titleColor="dangerous"
-      inputPrompt={() => (
-        <>
-          {"You are deleting user "}
-          <UsernameLabel>{props.username}</UsernameLabel>
-          {" !"}
-        </>
-      )}
-      onProcess={props.process}
-    />
-  );
-};
-
-interface UserModifyDialogProps<T> extends DialogProps {
-  username: string;
-  process: (value: T) => Promise<void>;
-}
-
-const UserChangeUsernameDialog: React.FC<UserModifyDialogProps<string>> = (
-  props
-) => {
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      title="Caution"
-      titleColor="dangerous"
-      inputPrompt={() => (
-        <>
-          {"You are change the username of user "}
-          <UsernameLabel>{props.username}</UsernameLabel>
-          {" !"}
-        </>
-      )}
-      inputScheme={[{ type: "text", label: "New Username" }]}
-      onProcess={([newUsername]) => {
-        return props.process(newUsername as string);
-      }}
-    />
-  );
-};
-
-const UserChangePasswordDialog: React.FC<UserModifyDialogProps<string>> = (
-  props
-) => {
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      title="Caution"
-      titleColor="dangerous"
-      inputPrompt={() => (
-        <>
-          {"You are change the password of user "}
-          <UsernameLabel>{props.username}</UsernameLabel>
-          {" !"}
-        </>
-      )}
-      inputScheme={[{ type: "text", label: "New Password" }]}
-      onProcess={([newPassword]) => {
-        return props.process(newPassword as string);
-      }}
-    />
-  );
-};
-
-interface UserChangePermissionDialogProps extends DialogProps {
-  username: string;
-  newPermission: boolean;
-  process: () => Promise<void>;
-}
-
-const UserChangePermissionDialog: React.FC<UserChangePermissionDialogProps> = (
-  props
-) => {
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      title="Caution"
-      titleColor="dangerous"
-      inputPrompt={() => (
-        <>
-          {"You are change user "}
-          <UsernameLabel>{props.username}</UsernameLabel>
-          {" to "}
-          <span style={{ color: "orange" }}>
-            {props.newPermission ? "administrator" : "normal user"}
-          </span>
-          {" !"}
-        </>
-      )}
-      onProcess={props.process}
-    />
-  );
-};
-
-interface UserAdminProps {
-  user: UserWithToken;
-}
-
-const UserAdmin: React.FC<UserAdminProps> = (props) => {
-  type DialogInfo =
-    | null
-    | {
-        type: "create";
-      }
-    | { type: TDelete; username: string }
-    | {
-        type: TChangeUsername;
-        username: string;
-      }
-    | {
-        type: TChangePassword;
-        username: string;
-      }
-    | {
-        type: TChangePermission;
-        username: string;
-        newPermission: boolean;
-      };
-
-  const [users, setUsers] = useState<User[] | null>(null);
-  const [dialog, setDialog] = useState<DialogInfo>(null);
-
-  const token = props.user.token;
-
-  useEffect(() => {
-    let subscribe = true;
-    void fetchUserList(props.user.token).then((us) => {
-      if (subscribe) {
-        setUsers(us);
-      }
-    });
-    return () => {
-      subscribe = false;
-    };
-  }, [props.user]);
-
-  let dialogNode: React.ReactNode;
-  if (dialog)
-    switch (dialog.type) {
-      case "create":
-        dialogNode = (
-          <CreateUserDialog
-            open
-            close={() => setDialog(null)}
-            process={async (user) => {
-              const u = await createUser(user, token);
-              setUsers((oldUsers) => [...(oldUsers ?? []), u]);
-            }}
-          />
-        );
-        break;
-      case "delete":
-        dialogNode = (
-          <UserDeleteDialog
-            open
-            close={() => setDialog(null)}
-            username={dialog.username}
-            process={async () => {
-              await deleteUser(dialog.username, token);
-              setUsers((oldUsers) =>
-                (oldUsers ?? []).filter((u) => u.username !== dialog.username)
-              );
-            }}
-          />
-        );
-        break;
-      case kChangeUsername:
-        dialogNode = (
-          <UserChangeUsernameDialog
-            open
-            close={() => setDialog(null)}
-            username={dialog.username}
-            process={async (newUsername) => {
-              await changeUsername(dialog.username, newUsername, token);
-              setUsers((oldUsers) => {
-                const users = (oldUsers ?? []).slice();
-                const findedUser = users.find(
-                  (u) => u.username === dialog.username
-                );
-                if (findedUser) findedUser.username = newUsername;
-                return users;
-              });
-            }}
-          />
-        );
-        break;
-      case kChangePassword:
-        dialogNode = (
-          <UserChangePasswordDialog
-            open
-            close={() => setDialog(null)}
-            username={dialog.username}
-            process={async (newPassword) => {
-              await changePassword(dialog.username, newPassword, token);
-            }}
-          />
-        );
-        break;
-      case kChangePermission: {
-        const newPermission = dialog.newPermission;
-        dialogNode = (
-          <UserChangePermissionDialog
-            open
-            close={() => setDialog(null)}
-            username={dialog.username}
-            newPermission={newPermission}
-            process={async () => {
-              await changePermission(dialog.username, newPermission, token);
-              setUsers((oldUsers) => {
-                const users = (oldUsers ?? []).slice();
-                const findedUser = users.find(
-                  (u) => u.username === dialog.username
-                );
-                if (findedUser) findedUser.administrator = newPermission;
-                return users;
-              });
-            }}
-          />
-        );
-        break;
-      }
-    }
-
-  if (users) {
-    const userComponents = users.map((user) => {
-      return (
-        <UserItem
-          key={user.username}
-          user={user}
-          onContextMenu={(item) => {
-            setDialog(
-              item === kChangePermission
-                ? {
-                    type: kChangePermission,
-                    username: user.username,
-                    newPermission: !user.administrator,
-                  }
-                : {
-                    type: item,
-                    username: user.username,
-                  }
-            );
-          }}
-        />
-      );
-    });
-
-    return (
-      <>
-        <Button
-          variant="success"
-          onClick={() =>
-            setDialog({
-              type: "create",
-            })
-          }
-          className="align-self-end"
-        >
-          Create User
-        </Button>
-        {userComponents}
-        {dialogNode}
-      </>
-    );
-  } else {
-    return <Spinner animation="border" />;
-  }
-};
-
-export default UserAdmin;
diff --git a/Timeline/ClientApp/src/app/views/common/AppBar.tsx b/Timeline/ClientApp/src/app/views/common/AppBar.tsx
deleted file mode 100644
index ee4ead8f..00000000
--- a/Timeline/ClientApp/src/app/views/common/AppBar.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { LinkContainer } from "react-router-bootstrap";
-import { Navbar, Nav } from "react-bootstrap";
-
-import { useUser, useAvatar } from "@/services/user";
-
-import TimelineLogo from "./TimelineLogo";
-import BlobImage from "./BlobImage";
-
-const AppBar: React.FC = (_) => {
-  const user = useUser();
-  const avatar = useAvatar(user?.username);
-
-  const { t } = useTranslation();
-
-  const isAdministrator = user && user.administrator;
-
-  return (
-    <Navbar bg="primary" variant="dark" expand="md" sticky="top">
-      <LinkContainer to="/">
-        <Navbar.Brand className="d-flex align-items-center">
-          <TimelineLogo style={{ height: "1em" }} />
-          Timeline
-        </Navbar.Brand>
-      </LinkContainer>
-
-      <Navbar.Toggle />
-      <Navbar.Collapse>
-        <Nav className="mr-auto">
-          <LinkContainer to="/settings">
-            <Nav.Link>{t("nav.settings")}</Nav.Link>
-          </LinkContainer>
-
-          <LinkContainer to="/about">
-            <Nav.Link>{t("nav.about")}</Nav.Link>
-          </LinkContainer>
-
-          {isAdministrator && (
-            <LinkContainer to="/admin">
-              <Nav.Link>Administration</Nav.Link>
-            </LinkContainer>
-          )}
-        </Nav>
-        <Nav className="ml-auto mr-2">
-          {user != null ? (
-            <LinkContainer to={`/users/${user.username}`}>
-              <BlobImage
-                className="avatar small rounded-circle bg-white"
-                blob={avatar}
-              />
-            </LinkContainer>
-          ) : (
-            <LinkContainer to="/login">
-              <Nav.Link>{t("nav.login")}</Nav.Link>
-            </LinkContainer>
-          )}
-        </Nav>
-      </Navbar.Collapse>
-    </Navbar>
-  );
-};
-
-export default AppBar;
diff --git a/Timeline/ClientApp/src/app/views/common/BlobImage.tsx b/Timeline/ClientApp/src/app/views/common/BlobImage.tsx
deleted file mode 100644
index 0dd25c52..00000000
--- a/Timeline/ClientApp/src/app/views/common/BlobImage.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import React from "react";
-
-const BlobImage: React.FC<
-  Omit<React.ImgHTMLAttributes<HTMLImageElement>, "src"> & {
-    blob?: Blob | unknown;
-  }
-> = (props) => {
-  const { blob, ...otherProps } = props;
-
-  const [url, setUrl] = React.useState<string | undefined>(undefined);
-
-  React.useEffect(() => {
-    if (blob instanceof Blob) {
-      const url = URL.createObjectURL(blob);
-      setUrl(url);
-      return () => {
-        URL.revokeObjectURL(url);
-      };
-    } else {
-      setUrl(undefined);
-    }
-  }, [blob]);
-
-  return <img {...otherProps} src={url} />;
-};
-
-export default BlobImage;
diff --git a/Timeline/ClientApp/src/app/views/common/ImageCropper.tsx b/Timeline/ClientApp/src/app/views/common/ImageCropper.tsx
deleted file mode 100644
index b9db8b99..00000000
--- a/Timeline/ClientApp/src/app/views/common/ImageCropper.tsx
+++ /dev/null
@@ -1,306 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-
-import { UiLogicError } from "@/common";
-
-export interface Clip {
-  left: number;
-  top: number;
-  width: number;
-}
-
-interface NormailizedClip extends Clip {
-  height: number;
-}
-
-interface ImageInfo {
-  width: number;
-  height: number;
-  landscape: boolean;
-  ratio: number;
-  maxClipWidth: number;
-  maxClipHeight: number;
-}
-
-interface ImageCropperSavedState {
-  clip: NormailizedClip;
-  x: number;
-  y: number;
-  pointerId: number;
-}
-
-export interface ImageCropperProps {
-  clip: Clip | null;
-  imageUrl: string;
-  onChange: (clip: Clip) => void;
-  imageElementCallback?: (element: HTMLImageElement | null) => void;
-  className?: string;
-}
-
-const ImageCropper = (props: ImageCropperProps): React.ReactElement => {
-  const { clip, imageUrl, onChange, imageElementCallback, className } = props;
-
-  const [oldState, setOldState] = React.useState<ImageCropperSavedState | null>(
-    null
-  );
-  const [imageInfo, setImageInfo] = React.useState<ImageInfo | null>(null);
-
-  const normalizeClip = (c: Clip | null | undefined): NormailizedClip => {
-    if (c == null) {
-      return { left: 0, top: 0, width: 0, height: 0 };
-    }
-
-    return {
-      left: c.left || 0,
-      top: c.top || 0,
-      width: c.width || 0,
-      height: imageInfo != null ? (c.width || 0) / imageInfo.ratio : 0,
-    };
-  };
-
-  const c = normalizeClip(clip);
-
-  const imgElementRef = React.useRef<HTMLImageElement | null>(null);
-
-  const onImageRef = React.useCallback(
-    (e: HTMLImageElement | null) => {
-      imgElementRef.current = e;
-      if (imageElementCallback != null && e == null) {
-        imageElementCallback(null);
-      }
-    },
-    [imageElementCallback]
-  );
-
-  const onImageLoad = React.useCallback(
-    (e: React.SyntheticEvent<HTMLImageElement>) => {
-      const img = e.currentTarget;
-      const landscape = img.naturalWidth >= img.naturalHeight;
-
-      const info = {
-        width: img.naturalWidth,
-        height: img.naturalHeight,
-        landscape,
-        ratio: img.naturalHeight / img.naturalWidth,
-        maxClipWidth: landscape ? img.naturalHeight / img.naturalWidth : 1,
-        maxClipHeight: landscape ? 1 : img.naturalWidth / img.naturalHeight,
-      };
-      setImageInfo(info);
-      onChange({ left: 0, top: 0, width: info.maxClipWidth });
-      if (imageElementCallback != null) {
-        imageElementCallback(img);
-      }
-    },
-    [onChange, imageElementCallback]
-  );
-
-  const onPointerDown = React.useCallback(
-    (e: React.PointerEvent) => {
-      if (oldState != null) return;
-      e.currentTarget.setPointerCapture(e.pointerId);
-      setOldState({
-        x: e.clientX,
-        y: e.clientY,
-        clip: c,
-        pointerId: e.pointerId,
-      });
-    },
-    [oldState, c]
-  );
-
-  const onPointerUp = React.useCallback(
-    (e: React.PointerEvent) => {
-      if (oldState == null || oldState.pointerId !== e.pointerId) return;
-      e.currentTarget.releasePointerCapture(e.pointerId);
-      setOldState(null);
-    },
-    [oldState]
-  );
-
-  const onPointerMove = React.useCallback(
-    (e: React.PointerEvent) => {
-      if (oldState == null) return;
-
-      const oldClip = oldState.clip;
-
-      const movement = { x: e.clientX - oldState.x, y: e.clientY - oldState.y };
-
-      const { current: imgElement } = imgElementRef;
-
-      if (imgElement == null) throw new UiLogicError("Image element is null.");
-
-      const moveRatio = {
-        x: movement.x / imgElement.width,
-        y: movement.y / imgElement.height,
-      };
-
-      const newRatio = {
-        x: oldClip.left + moveRatio.x,
-        y: oldClip.top + moveRatio.y,
-      };
-      if (newRatio.x < 0) {
-        newRatio.x = 0;
-      } else if (newRatio.x > 1 - oldClip.width) {
-        newRatio.x = 1 - oldClip.width;
-      }
-      if (newRatio.y < 0) {
-        newRatio.y = 0;
-      } else if (newRatio.y > 1 - oldClip.height) {
-        newRatio.y = 1 - oldClip.height;
-      }
-
-      onChange({ left: newRatio.x, top: newRatio.y, width: oldClip.width });
-    },
-    [oldState, onChange]
-  );
-
-  const onHandlerPointerMove = React.useCallback(
-    (e: React.PointerEvent) => {
-      if (oldState == null) return;
-
-      const oldClip = oldState.clip;
-
-      const movement = { x: e.clientX - oldState.x, y: e.clientY - oldState.y };
-
-      const ratio = imageInfo == null ? 1 : imageInfo.ratio;
-
-      const { current: imgElement } = imgElementRef;
-
-      if (imgElement == null) throw new UiLogicError("Image element is null.");
-
-      const moveRatio = {
-        x: movement.x / imgElement.width,
-        y: movement.x / imgElement.width / ratio,
-      };
-
-      const newRatio = {
-        x: oldClip.width + moveRatio.x,
-        y: oldClip.height + moveRatio.y,
-      };
-
-      const maxRatio = {
-        x: Math.min(1 - oldClip.left, newRatio.x),
-        y: Math.min(1 - oldClip.top, newRatio.y),
-      };
-
-      const maxWidthRatio = Math.min(maxRatio.x, maxRatio.y * ratio);
-
-      let newWidth;
-      if (newRatio.x < 0) {
-        newWidth = 0;
-      } else if (newRatio.x > maxWidthRatio) {
-        newWidth = maxWidthRatio;
-      } else {
-        newWidth = newRatio.x;
-      }
-
-      onChange({ left: oldClip.left, top: oldClip.top, width: newWidth });
-    },
-    [imageInfo, oldState, onChange]
-  );
-
-  const toPercentage = (n: number): string => `${n}%`;
-
-  // fuck!!! I just can't find a better way to implement this in pure css
-  const containerStyle: React.CSSProperties = (() => {
-    if (imageInfo == null) {
-      return { width: "100%", paddingTop: "100%", height: 0 };
-    } else {
-      if (imageInfo.ratio > 1) {
-        return {
-          width: toPercentage(100 / imageInfo.ratio),
-          paddingTop: "100%",
-          height: 0,
-        };
-      } else {
-        return {
-          width: "100%",
-          paddingTop: toPercentage(100 * imageInfo.ratio),
-          height: 0,
-        };
-      }
-    }
-  })();
-
-  return (
-    <div
-      className={clsx("image-cropper-container", className)}
-      style={containerStyle}
-    >
-      <img ref={onImageRef} src={imageUrl} onLoad={onImageLoad} alt="to crop" />
-      <div className="image-cropper-mask-container">
-        <div
-          className="image-cropper-mask"
-          touch-action="none"
-          style={{
-            left: toPercentage(c.left * 100),
-            top: toPercentage(c.top * 100),
-            width: toPercentage(c.width * 100),
-            height: toPercentage(c.height * 100),
-          }}
-          onPointerMove={onPointerMove}
-          onPointerDown={onPointerDown}
-          onPointerUp={onPointerUp}
-        />
-      </div>
-      <div
-        className="image-cropper-handler"
-        touch-action="none"
-        style={{
-          left: `calc(${(c.left + c.width) * 100}% - 15px)`,
-          top: `calc(${(c.top + c.height) * 100}% - 15px)`,
-        }}
-        onPointerMove={onHandlerPointerMove}
-        onPointerDown={onPointerDown}
-        onPointerUp={onPointerUp}
-      />
-    </div>
-  );
-};
-
-export default ImageCropper;
-
-export function applyClipToImage(
-  image: HTMLImageElement,
-  clip: Clip,
-  mimeType: string
-): Promise<Blob> {
-  return new Promise((resolve, reject) => {
-    const naturalSize = {
-      width: image.naturalWidth,
-      height: image.naturalHeight,
-    };
-    const clipArea = {
-      x: naturalSize.width * clip.left,
-      y: naturalSize.height * clip.top,
-      length: naturalSize.width * clip.width,
-    };
-
-    const canvas = document.createElement("canvas");
-    canvas.width = clipArea.length;
-    canvas.height = clipArea.length;
-    const context = canvas.getContext("2d");
-
-    if (context == null) throw new Error("Failed to create context.");
-
-    context.drawImage(
-      image,
-      clipArea.x,
-      clipArea.y,
-      clipArea.length,
-      clipArea.length,
-      0,
-      0,
-      clipArea.length,
-      clipArea.length
-    );
-
-    canvas.toBlob((blob) => {
-      if (blob == null) {
-        reject(new Error("canvas.toBlob returns null"));
-      } else {
-        resolve(blob);
-      }
-    }, mimeType);
-  });
-}
diff --git a/Timeline/ClientApp/src/app/views/common/LoadingButton.tsx b/Timeline/ClientApp/src/app/views/common/LoadingButton.tsx
deleted file mode 100644
index 154334a7..00000000
--- a/Timeline/ClientApp/src/app/views/common/LoadingButton.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from "react";
-import { Button, ButtonProps, Spinner } from "react-bootstrap";
-
-const LoadingButton: React.FC<{ loading?: boolean } & ButtonProps> = ({
-  loading,
-  variant,
-  disabled,
-  ...otherProps
-}) => {
-  return (
-    <Button
-      variant={variant != null ? `outline-${variant}` : "outline-primary"}
-      disabled={disabled || loading}
-      {...otherProps}
-    >
-      {otherProps.children}
-      {loading ? (
-        <Spinner
-          className="ml-1"
-          variant={variant}
-          animation="grow"
-          size="sm"
-        />
-      ) : null}
-    </Button>
-  );
-};
-
-export default LoadingButton;
diff --git a/Timeline/ClientApp/src/app/views/common/LoadingPage.tsx b/Timeline/ClientApp/src/app/views/common/LoadingPage.tsx
deleted file mode 100644
index 590fafa0..00000000
--- a/Timeline/ClientApp/src/app/views/common/LoadingPage.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from "react";
-import { Spinner } from "react-bootstrap";
-
-const LoadingPage: React.FC = () => {
-  return (
-    <div className="position-fixed w-100 h-100 d-flex justify-content-center align-items-center">
-      <Spinner variant="primary" animation="border" />
-    </div>
-  );
-};
-
-export default LoadingPage;
diff --git a/Timeline/ClientApp/src/app/views/common/OperationDialog.tsx b/Timeline/ClientApp/src/app/views/common/OperationDialog.tsx
deleted file mode 100644
index 841392a6..00000000
--- a/Timeline/ClientApp/src/app/views/common/OperationDialog.tsx
+++ /dev/null
@@ -1,364 +0,0 @@
-import React, { useState } from "react";
-import { useTranslation } from "react-i18next";
-import { Form, Button, Modal } from "react-bootstrap";
-
-import { UiLogicError } from "@/common";
-
-import LoadingButton from "./LoadingButton";
-
-interface DefaultErrorPromptProps {
-  error?: string;
-}
-
-const DefaultErrorPrompt: React.FC<DefaultErrorPromptProps> = (props) => {
-  const { t } = useTranslation();
-
-  let result = <p className="text-danger">{t("operationDialog.error")}</p>;
-
-  if (props.error != null) {
-    result = (
-      <>
-        {result}
-        <p className="text-danger">{props.error}</p>
-      </>
-    );
-  }
-
-  return result;
-};
-
-export type OperationInputOptionalError = undefined | null | string;
-
-export interface OperationInputErrorInfo {
-  [index: number]: OperationInputOptionalError;
-}
-
-export type OperationInputValidator<TValue> = (
-  value: TValue,
-  values: (string | boolean)[]
-) => OperationInputOptionalError | OperationInputErrorInfo;
-
-export interface OperationTextInputInfo {
-  type: "text";
-  password?: boolean;
-  label?: string;
-  initValue?: string;
-  textFieldProps?: Omit<
-    React.InputHTMLAttributes<HTMLInputElement>,
-    "type" | "value" | "onChange" | "aria-relevant"
-  >;
-  helperText?: string;
-  validator?: OperationInputValidator<string>;
-}
-
-export interface OperationBoolInputInfo {
-  type: "bool";
-  label: string;
-  initValue?: boolean;
-}
-
-export interface OperationSelectInputInfoOption {
-  value: string;
-  label: string;
-  icon?: React.ReactElement;
-}
-
-export interface OperationSelectInputInfo {
-  type: "select";
-  label: string;
-  options: OperationSelectInputInfoOption[];
-  initValue?: string;
-}
-
-export type OperationInputInfo =
-  | OperationTextInputInfo
-  | OperationBoolInputInfo
-  | OperationSelectInputInfo;
-
-interface OperationResult {
-  type: "success" | "failure";
-  data: unknown;
-}
-
-interface OperationDialogProps {
-  open: boolean;
-  close: () => void;
-  title: React.ReactNode;
-  titleColor?: "default" | "dangerous" | "create" | string;
-  onProcess: (inputs: (string | boolean)[]) => Promise<unknown>;
-  inputScheme?: OperationInputInfo[];
-  inputPrompt?: string | (() => React.ReactNode);
-  processPrompt?: () => React.ReactNode;
-  successPrompt?: (data: unknown) => React.ReactNode;
-  failurePrompt?: (error: unknown) => React.ReactNode;
-  onSuccessAndClose?: () => void;
-}
-
-const OperationDialog: React.FC<OperationDialogProps> = (props) => {
-  const inputScheme = props.inputScheme ?? [];
-
-  const { t } = useTranslation();
-
-  type Step = "input" | "process" | OperationResult;
-  const [step, setStep] = useState<Step>("input");
-  const [values, setValues] = useState<(boolean | string)[]>(
-    inputScheme.map((i) => {
-      if (i.type === "bool") {
-        return i.initValue ?? false;
-      } else if (i.type === "text" || i.type === "select") {
-        return i.initValue ?? "";
-      } else {
-        throw new UiLogicError("Unknown input scheme.");
-      }
-    })
-  );
-  const [inputError, setInputError] = useState<OperationInputErrorInfo>({});
-
-  const close = (): void => {
-    if (step !== "process") {
-      props.close();
-      if (
-        typeof step === "object" &&
-        step.type === "success" &&
-        props.onSuccessAndClose
-      ) {
-        props.onSuccessAndClose();
-      }
-    } else {
-      console.log("Attempt to close modal when processing.");
-    }
-  };
-
-  const onConfirm = (): void => {
-    setStep("process");
-    props.onProcess(values).then(
-      (d: unknown) => {
-        setStep({
-          type: "success",
-          data: d,
-        });
-      },
-      (e: unknown) => {
-        setStep({
-          type: "failure",
-          data: e,
-        });
-      }
-    );
-  };
-
-  let body: React.ReactNode;
-  if (step === "input" || step === "process") {
-    const process = step === "process";
-
-    let inputPrompt =
-      typeof props.inputPrompt === "function"
-        ? props.inputPrompt()
-        : props.inputPrompt;
-    inputPrompt = <h6>{inputPrompt}</h6>;
-
-    const updateValue = (
-      index: number,
-      newValue: string | boolean
-    ): (string | boolean)[] => {
-      const oldValues = values;
-      const newValues = oldValues.slice();
-      newValues[index] = newValue;
-      setValues(newValues);
-      return newValues;
-    };
-
-    const testErrorInfo = (errorInfo: OperationInputErrorInfo): boolean => {
-      for (let i = 0; i < inputScheme.length; i++) {
-        if (inputScheme[i].type === "text" && errorInfo[i] != null) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    const calculateError = (
-      oldError: OperationInputErrorInfo,
-      index: number,
-      newError: OperationInputOptionalError | OperationInputErrorInfo
-    ): OperationInputErrorInfo => {
-      if (newError === undefined) {
-        return oldError;
-      } else if (newError === null || typeof newError === "string") {
-        return { ...oldError, [index]: newError };
-      } else {
-        const newInputError: OperationInputErrorInfo = { ...oldError };
-        for (const [index, error] of Object.entries(newError)) {
-          if (error !== undefined) {
-            newInputError[+index] = error as OperationInputOptionalError;
-          }
-        }
-        return newInputError;
-      }
-    };
-
-    const validateAll = (): boolean => {
-      let newInputError = inputError;
-      for (let i = 0; i < inputScheme.length; i++) {
-        const item = inputScheme[i];
-        if (item.type === "text") {
-          newInputError = calculateError(
-            newInputError,
-            i,
-            item.validator?.(values[i] as string, values)
-          );
-        }
-      }
-      const result = !testErrorInfo(newInputError);
-      setInputError(newInputError);
-      return result;
-    };
-
-    body = (
-      <>
-        <Modal.Body>
-          {inputPrompt}
-          {inputScheme.map((item, index) => {
-            const value = values[index];
-            const error: string | undefined = ((e) =>
-              typeof e === "string" ? t(e) : undefined)(inputError?.[index]);
-
-            if (item.type === "text") {
-              return (
-                <Form.Group key={index}>
-                  {item.label && <Form.Label>{t(item.label)}</Form.Label>}
-                  <Form.Control
-                    type={item.password === true ? "password" : "text"}
-                    value={value as string}
-                    onChange={(e) => {
-                      const v = e.target.value;
-                      const newValues = updateValue(index, v);
-                      setInputError(
-                        calculateError(
-                          inputError,
-                          index,
-                          item.validator?.(v, newValues)
-                        )
-                      );
-                    }}
-                    isInvalid={error != null}
-                    disabled={process}
-                  />
-                  {error != null && (
-                    <Form.Control.Feedback type="invalid">
-                      {error}
-                    </Form.Control.Feedback>
-                  )}
-                  {item.helperText && (
-                    <Form.Text>{t(item.helperText)}</Form.Text>
-                  )}
-                </Form.Group>
-              );
-            } else if (item.type === "bool") {
-              return (
-                <Form.Group key={index}>
-                  <Form.Check<"input">
-                    type="checkbox"
-                    checked={value as boolean}
-                    onChange={(event) => {
-                      updateValue(index, event.currentTarget.checked);
-                    }}
-                    label={t(item.label)}
-                    disabled={process}
-                  />
-                </Form.Group>
-              );
-            } else if (item.type === "select") {
-              return (
-                <Form.Group key={index}>
-                  <Form.Label>{t(item.label)}</Form.Label>
-                  <Form.Control
-                    as="select"
-                    value={value as string}
-                    onChange={(event) => {
-                      updateValue(index, event.target.value);
-                    }}
-                    disabled={process}
-                  >
-                    {item.options.map((option, i) => {
-                      return (
-                        <option value={option.value} key={i}>
-                          {option.icon}
-                          {t(option.label)}
-                        </option>
-                      );
-                    })}
-                  </Form.Control>
-                </Form.Group>
-              );
-            }
-          })}
-        </Modal.Body>
-        <Modal.Footer>
-          <Button variant="outline-secondary" onClick={close}>
-            {t("operationDialog.cancel")}
-          </Button>
-          <LoadingButton
-            variant="primary"
-            loading={process}
-            disabled={testErrorInfo(inputError)}
-            onClick={() => {
-              if (validateAll()) {
-                onConfirm();
-              }
-            }}
-          >
-            {t("operationDialog.confirm")}
-          </LoadingButton>
-        </Modal.Footer>
-      </>
-    );
-  } else {
-    let content: React.ReactNode;
-    const result = step;
-    if (result.type === "success") {
-      content =
-        props.successPrompt?.(result.data) ?? t("operationDialog.success");
-      if (typeof content === "string")
-        content = <p className="text-success">{content}</p>;
-    } else {
-      content = props.failurePrompt?.(result.data) ?? <DefaultErrorPrompt />;
-      if (typeof content === "string")
-        content = <DefaultErrorPrompt error={content} />;
-    }
-    body = (
-      <>
-        <Modal.Body>{content}</Modal.Body>
-        <Modal.Footer>
-          <Button variant="primary" onClick={close}>
-            {t("operationDialog.ok")}
-          </Button>
-        </Modal.Footer>
-      </>
-    );
-  }
-
-  const title = typeof props.title === "string" ? t(props.title) : props.title;
-
-  return (
-    <Modal show={props.open} onHide={close}>
-      <Modal.Header
-        className={
-          props.titleColor != null
-            ? "text-" +
-              (props.titleColor === "create"
-                ? "success"
-                : props.titleColor === "dangerous"
-                ? "danger"
-                : props.titleColor)
-            : undefined
-        }
-      >
-        {title}
-      </Modal.Header>
-      {body}
-    </Modal>
-  );
-};
-
-export default OperationDialog;
diff --git a/Timeline/ClientApp/src/app/views/common/SearchInput.tsx b/Timeline/ClientApp/src/app/views/common/SearchInput.tsx
deleted file mode 100644
index 9833d515..00000000
--- a/Timeline/ClientApp/src/app/views/common/SearchInput.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import React, { useCallback } from "react";
-import clsx from "clsx";
-import { useTranslation } from "react-i18next";
-import { Spinner, Form, Button } from "react-bootstrap";
-
-export interface SearchInputProps {
-  value: string;
-  onChange: (value: string) => void;
-  onButtonClick: () => void;
-  className?: string;
-  loading?: boolean;
-  buttonText?: string;
-  placeholder?: string;
-  additionalButton?: React.ReactNode;
-}
-
-const SearchInput: React.FC<SearchInputProps> = (props) => {
-  const { onChange, onButtonClick } = props;
-
-  const { t } = useTranslation();
-
-  const onInputChange = useCallback(
-    (event: React.ChangeEvent<HTMLInputElement>): void => {
-      onChange(event.currentTarget.value);
-    },
-    [onChange]
-  );
-
-  const onInputKeyPress = useCallback(
-    (event: React.KeyboardEvent<HTMLInputElement>): void => {
-      if (event.key === "Enter") {
-        onButtonClick();
-      }
-    },
-    [onButtonClick]
-  );
-
-  return (
-    <Form inline className={clsx("my-2", props.className)}>
-      <Form.Control
-        className="mr-sm-2 flex-grow-1"
-        value={props.value}
-        onChange={onInputChange}
-        onKeyPress={onInputKeyPress}
-        placeholder={props.placeholder}
-      />
-      <div className="mt-2 mt-sm-0 order-sm-last ml-sm-3">
-        {props.additionalButton}
-      </div>
-      <div className="mt-2 mt-sm-0 ml-auto ml-sm-0">
-        {props.loading ? (
-          <Spinner variant="primary" animation="border" />
-        ) : (
-          <Button variant="outline-primary" onClick={props.onButtonClick}>
-            {props.buttonText ?? t("search")}
-          </Button>
-        )}
-      </div>
-    </Form>
-  );
-};
-
-export default SearchInput;
diff --git a/Timeline/ClientApp/src/app/views/common/TimelineLogo.tsx b/Timeline/ClientApp/src/app/views/common/TimelineLogo.tsx
deleted file mode 100644
index 27d188fc..00000000
--- a/Timeline/ClientApp/src/app/views/common/TimelineLogo.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import React, { SVGAttributes } from "react";
-
-export interface TimelineLogoProps extends SVGAttributes<SVGElement> {
-  color?: string;
-}
-
-const TimelineLogo: React.FC<TimelineLogoProps> = (props) => {
-  const { color, ...forwardProps } = props;
-  const coercedColor = color ?? "currentcolor";
-  return (
-    <svg
-      className={props.className}
-      viewBox="0 0 100 100"
-      fill="none"
-      strokeWidth="12"
-      stroke={coercedColor}
-      {...forwardProps}
-    >
-      <line x1="50" y1="0" x2="50" y2="25" />
-      <circle cx="50" cy="50" r="22" />
-      <line x1="50" y1="75" x2="50" y2="100" />
-    </svg>
-  );
-};
-
-export default TimelineLogo;
diff --git a/Timeline/ClientApp/src/app/views/common/UserTimelineLogo.tsx b/Timeline/ClientApp/src/app/views/common/UserTimelineLogo.tsx
deleted file mode 100644
index 29f6a69f..00000000
--- a/Timeline/ClientApp/src/app/views/common/UserTimelineLogo.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import React, { SVGAttributes } from "react";
-
-export interface UserTimelineLogoProps extends SVGAttributes<SVGElement> {
-  color?: string;
-}
-
-const UserTimelineLogo: React.FC<UserTimelineLogoProps> = (props) => {
-  const { color, ...forwardProps } = props;
-  const coercedColor = color ?? "currentcolor";
-
-  return (
-    <svg viewBox="0 0 100 100" {...forwardProps}>
-      <g fill="none" stroke={coercedColor} strokeWidth="12">
-        <line x1="50" x2="50" y1="0" y2="25" />
-        <circle cx="50" cy="50" r="22" />
-        <line x1="50" x2="50" y1="75" y2="100" />
-      </g>
-      <g fill={color}>
-        <circle cx="85" cy="75" r="10" />
-        <path d="m70,100c0,0 15,-30 30,0.25" />
-      </g>
-    </svg>
-  );
-};
-
-export default UserTimelineLogo;
diff --git a/Timeline/ClientApp/src/app/views/common/alert/AlertHost.tsx b/Timeline/ClientApp/src/app/views/common/alert/AlertHost.tsx
deleted file mode 100644
index c74f18e2..00000000
--- a/Timeline/ClientApp/src/app/views/common/alert/AlertHost.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import React, { useCallback } from "react";
-import without from "lodash/without";
-import concat from "lodash/concat";
-import { useTranslation } from "react-i18next";
-import { Alert } from "react-bootstrap";
-
-import {
-  alertService,
-  AlertInfoEx,
-  kAlertHostId,
-  AlertInfo,
-} from "@/services/alert";
-
-interface AutoCloseAlertProps {
-  alert: AlertInfo;
-  close: () => void;
-}
-
-export const AutoCloseAlert: React.FC<AutoCloseAlertProps> = (props) => {
-  const { alert } = props;
-  const { dismissTime } = alert;
-
-  const { t } = useTranslation();
-
-  React.useEffect(() => {
-    const tag =
-      dismissTime === "never"
-        ? null
-        : typeof dismissTime === "number"
-        ? window.setTimeout(props.close, dismissTime)
-        : window.setTimeout(props.close, 5000);
-    return () => {
-      if (tag != null) {
-        window.clearTimeout(tag);
-      }
-    };
-  }, [dismissTime, props.close]);
-
-  return (
-    <Alert
-      className="m-3"
-      variant={alert.type ?? "primary"}
-      onClose={props.close}
-      dismissible
-    >
-      {(() => {
-        const { message } = alert;
-        if (typeof message === "function") {
-          const Message = message;
-          return <Message />;
-        } else if (typeof message === "object" && message.type === "i18n") {
-          return t(message.key);
-        } else return alert.message;
-      })()}
-    </Alert>
-  );
-};
-
-// oh what a bad name!
-interface AlertInfoExEx extends AlertInfoEx {
-  close: () => void;
-}
-
-const AlertHost: React.FC = () => {
-  const [alerts, setAlerts] = React.useState<AlertInfoExEx[]>([]);
-
-  // react guarantee that state setters are stable, so we don't need to add it to dependency list
-
-  const consume = useCallback((alert: AlertInfoEx): void => {
-    const alertEx: AlertInfoExEx = {
-      ...alert,
-      close: () => {
-        setAlerts((oldAlerts) => {
-          return without(oldAlerts, alertEx);
-        });
-      },
-    };
-    setAlerts((oldAlerts) => {
-      return concat(oldAlerts, alertEx);
-    });
-  }, []);
-
-  React.useEffect(() => {
-    alertService.registerConsumer(consume);
-    return () => {
-      alertService.unregisterConsumer(consume);
-    };
-  }, [consume]);
-
-  return (
-    <div id={kAlertHostId} className="alert-container">
-      {alerts.map((alert) => {
-        return (
-          <AutoCloseAlert key={alert.id} alert={alert} close={alert.close} />
-        );
-      })}
-    </div>
-  );
-};
-
-export default AlertHost;
diff --git a/Timeline/ClientApp/src/app/views/common/alert/alert.sass b/Timeline/ClientApp/src/app/views/common/alert/alert.sass
deleted file mode 100644
index 5b6e65c2..00000000
--- a/Timeline/ClientApp/src/app/views/common/alert/alert.sass
+++ /dev/null
@@ -1,15 +0,0 @@
-.alert-container
-  position: fixed
-  z-index: $zindex-popover
-
-@include media-breakpoint-up(sm)
-  .alert-container
-    bottom: 0
-    right: 0
-
-@include media-breakpoint-down(sm)
-  .alert-container
-    bottom: 0
-    right: 0
-    left: 0
-    text-align: center
diff --git a/Timeline/ClientApp/src/app/views/common/common.sass b/Timeline/ClientApp/src/app/views/common/common.sass
deleted file mode 100644
index 15d34d7c..00000000
--- a/Timeline/ClientApp/src/app/views/common/common.sass
+++ /dev/null
@@ -1,33 +0,0 @@
-.image-cropper-container
-  position: relative
-  box-sizing: border-box
-  user-select: none
-
-.image-cropper-container img
-  position: absolute
-  left: 0
-  top: 0
-  width: 100%
-  height: 100%
-
-.image-cropper-mask-container
-  position: absolute
-  left: 0
-  top: 0
-  right: 0
-  bottom: 0
-  overflow: hidden
-
-.image-cropper-mask
-  position: absolute
-  box-shadow: 0 0 0 10000px rgba(255, 255, 255, 80%)
-  touch-action: none
-
-.image-cropper-handler
-  position: absolute
-  width: 26px
-  height: 26px
-  border: black solid 2px
-  border-radius: 50%
-  background: white
-  touch-action: none
diff --git a/Timeline/ClientApp/src/app/views/home/BoardWithUser.tsx b/Timeline/ClientApp/src/app/views/home/BoardWithUser.tsx
deleted file mode 100644
index dcd39cbe..00000000
--- a/Timeline/ClientApp/src/app/views/home/BoardWithUser.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import React from "react";
-import { Row, Col } from "react-bootstrap";
-import { useTranslation } from "react-i18next";
-
-import { UserWithToken } from "@/services/user";
-import { TimelineInfo } from "@/services/timeline";
-import { getHttpTimelineClient } from "@/http/timeline";
-
-import TimelineBoard from "./TimelineBoard";
-import OfflineBoard from "./OfflineBoard";
-
-const BoardWithUser: React.FC<{ user: UserWithToken }> = ({ user }) => {
-  const { t } = useTranslation();
-
-  const [ownTimelines, setOwnTimelines] = React.useState<
-    TimelineInfo[] | "offline" | "loading"
-  >("loading");
-  const [joinTimelines, setJoinTimelines] = React.useState<
-    TimelineInfo[] | "offline" | "loading"
-  >("loading");
-
-  React.useEffect(() => {
-    let subscribe = true;
-    if (ownTimelines === "loading") {
-      void getHttpTimelineClient()
-        .listTimeline({ relate: user.username, relateType: "own" })
-        .then(
-          (timelines) => {
-            if (subscribe) {
-              setOwnTimelines(timelines);
-            }
-          },
-          () => {
-            setOwnTimelines("offline");
-          }
-        );
-    }
-    return () => {
-      subscribe = false;
-    };
-  }, [user, ownTimelines]);
-
-  React.useEffect(() => {
-    let subscribe = true;
-    if (joinTimelines === "loading") {
-      void getHttpTimelineClient()
-        .listTimeline({ relate: user.username, relateType: "join" })
-        .then(
-          (timelines) => {
-            if (subscribe) {
-              setJoinTimelines(timelines);
-            }
-          },
-          () => {
-            setJoinTimelines("offline");
-          }
-        );
-    }
-    return () => {
-      subscribe = false;
-    };
-  }, [user, joinTimelines]);
-
-  return (
-    <Row className="my-2 justify-content-center">
-      {ownTimelines === "offline" && joinTimelines === "offline" ? (
-        <Col className="py-2" sm="8" lg="6">
-          <OfflineBoard
-            onReload={() => {
-              setOwnTimelines("loading");
-              setJoinTimelines("loading");
-            }}
-          />
-        </Col>
-      ) : (
-        <>
-          <Col sm="6" lg="5" className="py-2">
-            <TimelineBoard
-              title={t("home.ownTimeline")}
-              timelines={ownTimelines}
-              onReload={() => {
-                setOwnTimelines("loading");
-              }}
-            />
-          </Col>
-          <Col sm="6" lg="5" className="py-2">
-            <TimelineBoard
-              title={t("home.joinTimeline")}
-              timelines={joinTimelines}
-              onReload={() => {
-                setJoinTimelines("loading");
-              }}
-            />
-          </Col>
-        </>
-      )}
-    </Row>
-  );
-};
-
-export default BoardWithUser;
diff --git a/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx b/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx
deleted file mode 100644
index ebfddb50..00000000
--- a/Timeline/ClientApp/src/app/views/home/BoardWithoutUser.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import React from "react";
-import { Row, Col } from "react-bootstrap";
-
-import { TimelineInfo } from "@/services/timeline";
-import { getHttpTimelineClient } from "@/http/timeline";
-
-import TimelineBoard from "./TimelineBoard";
-import OfflineBoard from "./OfflineBoard";
-
-const BoardWithoutUser: React.FC = () => {
-  const [publicTimelines, setPublicTimelines] = React.useState<
-    TimelineInfo[] | "offline" | "loading"
-  >("loading");
-
-  React.useEffect(() => {
-    let subscribe = true;
-    if (publicTimelines === "loading") {
-      void getHttpTimelineClient()
-        .listTimeline({ visibility: "Public" })
-        .then(
-          (timelines) => {
-            if (subscribe) {
-              setPublicTimelines(timelines);
-            }
-          },
-          () => {
-            setPublicTimelines("offline");
-          }
-        );
-    }
-    return () => {
-      subscribe = false;
-    };
-  }, [publicTimelines]);
-
-  return (
-    <Row className="my-2 justify-content-center">
-      {publicTimelines === "offline" ? (
-        <Col sm="8" lg="6">
-          <OfflineBoard
-            onReload={() => {
-              setPublicTimelines("loading");
-            }}
-          />
-        </Col>
-      ) : (
-        <Col sm="8" lg="6">
-          <TimelineBoard
-            timelines={publicTimelines}
-            onReload={() => {
-              setPublicTimelines("loading");
-            }}
-          />
-        </Col>
-      )}
-    </Row>
-  );
-};
-
-export default BoardWithoutUser;
diff --git a/Timeline/ClientApp/src/app/views/home/OfflineBoard.tsx b/Timeline/ClientApp/src/app/views/home/OfflineBoard.tsx
deleted file mode 100644
index fc05bd74..00000000
--- a/Timeline/ClientApp/src/app/views/home/OfflineBoard.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-import React from "react";
-import { Link } from "react-router-dom";
-import { Trans } from "react-i18next";
-
-import { getAllCachedTimelineNames } from "@/services/timeline";
-import UserTimelineLogo from "../common/UserTimelineLogo";
-import TimelineLogo from "../common/TimelineLogo";
-
-export interface OfflineBoardProps {
-  onReload: () => void;
-}
-
-const OfflineBoard: React.FC<OfflineBoardProps> = ({ onReload }) => {
-  const [timelines, setTimelines] = React.useState<string[]>([]);
-
-  React.useEffect(() => {
-    let subscribe = true;
-    void getAllCachedTimelineNames().then((t) => {
-      if (subscribe) setTimelines(t);
-    });
-    return () => {
-      subscribe = false;
-    };
-  });
-
-  return (
-    <>
-      <Trans i18nKey="home.offlinePrompt">
-        0
-        <a
-          href="#"
-          onClick={(e) => {
-            onReload();
-            e.preventDefault();
-          }}
-        >
-          1
-        </a>
-        2
-      </Trans>
-      {timelines.map((timeline) => {
-        const isPersonal = timeline.startsWith("@");
-        const url = isPersonal
-          ? `/users/${timeline.slice(1)}`
-          : `/timelines/${timeline}`;
-        return (
-          <div key={timeline} className="timeline-board-item">
-            {isPersonal ? (
-              <UserTimelineLogo className="icon" />
-            ) : (
-              <TimelineLogo className="icon" />
-            )}
-            <Link to={url}>{timeline}</Link>
-          </div>
-        );
-      })}
-    </>
-  );
-};
-
-export default OfflineBoard;
diff --git a/Timeline/ClientApp/src/app/views/home/TimelineBoard.tsx b/Timeline/ClientApp/src/app/views/home/TimelineBoard.tsx
deleted file mode 100644
index a3d176e1..00000000
--- a/Timeline/ClientApp/src/app/views/home/TimelineBoard.tsx
+++ /dev/null
@@ -1,73 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-import { Link } from "react-router-dom";
-import { Trans } from "react-i18next";
-import { Spinner } from "react-bootstrap";
-
-import { TimelineInfo } from "@/services/timeline";
-import TimelineLogo from "../common/TimelineLogo";
-import UserTimelineLogo from "../common/UserTimelineLogo";
-
-export interface TimelineBoardProps {
-  title?: string;
-  timelines: TimelineInfo[] | "offline" | "loading";
-  onReload: () => void;
-  className?: string;
-}
-
-const TimelineBoard: React.FC<TimelineBoardProps> = (props) => {
-  const { title, timelines, className } = props;
-
-  return (
-    <div className={clsx("timeline-board", className)}>
-      {title != null && <h3 className="text-center">{title}</h3>}
-      {(() => {
-        if (timelines === "loading") {
-          return (
-            <div className="d-flex flex-grow-1 justify-content-center align-items-center">
-              <Spinner variant="primary" animation="border" />
-            </div>
-          );
-        } else if (timelines === "offline") {
-          return (
-            <div className="d-flex flex-grow-1 justify-content-center align-items-center">
-              <Trans i18nKey="loadFailReload" parent="div">
-                0
-                <a
-                  href="#"
-                  onClick={(e) => {
-                    props.onReload();
-                    e.preventDefault();
-                  }}
-                >
-                  1
-                </a>
-                2
-              </Trans>
-            </div>
-          );
-        } else {
-          return timelines.map((timeline) => {
-            const { name } = timeline;
-            const isPersonal = name.startsWith("@");
-            const url = isPersonal
-              ? `/users/${timeline.owner.username}`
-              : `/timelines/${name}`;
-            return (
-              <div key={name} className="timeline-board-item">
-                {isPersonal ? (
-                  <UserTimelineLogo className="icon" />
-                ) : (
-                  <TimelineLogo className="icon" />
-                )}
-                <Link to={url}>{name}</Link>
-              </div>
-            );
-          });
-        }
-      })()}
-    </div>
-  );
-};
-
-export default TimelineBoard;
diff --git a/Timeline/ClientApp/src/app/views/home/TimelineCreateDialog.tsx b/Timeline/ClientApp/src/app/views/home/TimelineCreateDialog.tsx
deleted file mode 100644
index d9467719..00000000
--- a/Timeline/ClientApp/src/app/views/home/TimelineCreateDialog.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React from "react";
-import { useHistory } from "react-router";
-
-import { validateTimelineName, timelineService } from "@/services/timeline";
-import OperationDialog from "../common/OperationDialog";
-
-interface TimelineCreateDialogProps {
-  open: boolean;
-  close: () => void;
-}
-
-const TimelineCreateDialog: React.FC<TimelineCreateDialogProps> = (props) => {
-  const history = useHistory();
-
-  let nameSaved: string;
-
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      titleColor="success"
-      title="home.createDialog.title"
-      inputScheme={[
-        {
-          type: "text",
-          label: "home.createDialog.name",
-          helperText: "home.createDialog.nameFormat",
-          validator: (name) => {
-            if (name.length === 0) {
-              return "home.createDialog.noEmpty";
-            } else if (name.length > 26) {
-              return "home.createDialog.tooLong";
-            } else if (!validateTimelineName(name)) {
-              return "home.createDialog.badFormat";
-            } else {
-              return null;
-            }
-          },
-        },
-      ]}
-      onProcess={([name]) => {
-        nameSaved = name as string;
-        return timelineService.createTimeline(nameSaved).toPromise();
-      }}
-      onSuccessAndClose={() => {
-        history.push(`timelines/${nameSaved}`);
-      }}
-      failurePrompt={(e) => `${e as string}`}
-    />
-  );
-};
-
-export default TimelineCreateDialog;
diff --git a/Timeline/ClientApp/src/app/views/home/home.sass b/Timeline/ClientApp/src/app/views/home/home.sass
deleted file mode 100644
index f5d6ffc3..00000000
--- a/Timeline/ClientApp/src/app/views/home/home.sass
+++ /dev/null
@@ -1,13 +0,0 @@
-.timeline-board-item
-  font-size: 1.1em
-  @extend .my-2
-  .icon
-    height: 1.3em
-    @extend .mr-2
-
-.timeline-board
-  @extend .cru-card
-  @extend .d-flex
-  @extend .flex-column
-  @extend .p-3
-  min-height: 200px
diff --git a/Timeline/ClientApp/src/app/views/home/index.tsx b/Timeline/ClientApp/src/app/views/home/index.tsx
deleted file mode 100644
index 760adcea..00000000
--- a/Timeline/ClientApp/src/app/views/home/index.tsx
+++ /dev/null
@@ -1,99 +0,0 @@
-import React from "react";
-import { useHistory } from "react-router";
-import { useTranslation } from "react-i18next";
-import { Row, Container, Button, Col } from "react-bootstrap";
-
-import { useUser } from "@/services/user";
-import SearchInput from "../common/SearchInput";
-
-import BoardWithoutUser from "./BoardWithoutUser";
-import BoardWithUser from "./BoardWithUser";
-import TimelineCreateDialog from "./TimelineCreateDialog";
-
-const HomePage: React.FC = () => {
-  const history = useHistory();
-
-  const { t } = useTranslation();
-
-  const user = useUser();
-
-  const [navText, setNavText] = React.useState<string>("");
-
-  const [dialog, setDialog] = React.useState<"create" | null>(null);
-
-  const goto = React.useCallback((): void => {
-    if (navText === "") {
-      history.push("users/crupest");
-    } else if (navText.startsWith("@")) {
-      history.push(`users/${navText.slice(1)}`);
-    } else {
-      history.push(`timelines/${navText}`);
-    }
-  }, [navText, history]);
-
-  return (
-    <>
-      <Container fluid>
-        <Row className="justify-content-center">
-          <Col xs={12} sm={10} md={8} lg={6}>
-            <SearchInput
-              className="justify-content-center"
-              value={navText}
-              onChange={setNavText}
-              onButtonClick={goto}
-              buttonText={t("home.go")}
-              placeholder="@crupest"
-              additionalButton={
-                user != null && (
-                  <Button
-                    variant="outline-success"
-                    onClick={() => {
-                      setDialog("create");
-                    }}
-                  >
-                    {t("home.createButton")}
-                  </Button>
-                )
-              }
-            />
-          </Col>
-        </Row>
-        {(() => {
-          if (user == null) {
-            return <BoardWithoutUser />;
-          } else {
-            return <BoardWithUser user={user} />;
-          }
-        })()}
-      </Container>
-      <footer className="text-right">
-        <a
-          className="mx-3 text-muted"
-          href="http://beian.miit.gov.cn/"
-          target="_blank"
-          rel="noopener noreferrer"
-        >
-          <small>鄂ICP备18030913号-1</small>
-        </a>
-        <a
-          className="mx-3 text-muted"
-          href="http://www.beian.gov.cn/"
-          target="_blank"
-          rel="noopener noreferrer"
-        >
-          <small className="white-space-no-wrap">公安备案 42112102000124</small>
-        </a>
-      </footer>
-      {dialog === "create" && (
-        <TimelineCreateDialog
-          open
-          close={() => {
-            setDialog(null);
-          }}
-        />
-      )}
-    </>
-  );
-};
-
-export default HomePage;
diff --git a/Timeline/ClientApp/src/app/views/login/index.tsx b/Timeline/ClientApp/src/app/views/login/index.tsx
deleted file mode 100644
index 61b9a525..00000000
--- a/Timeline/ClientApp/src/app/views/login/index.tsx
+++ /dev/null
@@ -1,151 +0,0 @@
-import React from "react";
-import { useHistory } from "react-router";
-import { useTranslation } from "react-i18next";
-import { Container, Form } from "react-bootstrap";
-
-import { useUser, userService } from "@/services/user";
-
-import AppBar from "../common/AppBar";
-import LoadingButton from "../common/LoadingButton";
-
-const LoginPage: React.FC = (_) => {
-  const { t } = useTranslation();
-  const history = useHistory();
-  const [username, setUsername] = React.useState<string>("");
-  const [usernameDirty, setUsernameDirty] = React.useState<boolean>(false);
-  const [password, setPassword] = React.useState<string>("");
-  const [passwordDirty, setPasswordDirty] = React.useState<boolean>(false);
-  const [rememberMe, setRememberMe] = React.useState<boolean>(true);
-  const [process, setProcess] = React.useState<boolean>(false);
-  const [error, setError] = React.useState<string | null>(null);
-
-  const user = useUser();
-
-  React.useEffect(() => {
-    if (user != null) {
-      const id = setTimeout(() => history.push("/"), 3000);
-      return () => {
-        clearTimeout(id);
-      };
-    }
-  }, [history, user]);
-
-  if (user != null) {
-    return (
-      <>
-        <AppBar />
-        <p className="mt-appbar">{t("login.alreadyLogin")}</p>
-      </>
-    );
-  }
-
-  const submit = (): void => {
-    if (username === "" || password === "") {
-      setUsernameDirty(true);
-      setPasswordDirty(true);
-      return;
-    }
-
-    setProcess(true);
-    userService
-      .login(
-        {
-          username: username,
-          password: password,
-        },
-        rememberMe
-      )
-      .then(
-        () => {
-          if (history.length === 0) {
-            history.push("/");
-          } else {
-            history.goBack();
-          }
-        },
-        (e: Error) => {
-          setProcess(false);
-          setError(e.message);
-        }
-      );
-  };
-
-  const onEnterPressInPassword: React.KeyboardEventHandler = (e) => {
-    if (e.key === "Enter") {
-      submit();
-    }
-  };
-
-  return (
-    <Container fluid className="login-container mt-2">
-      <h1 className="text-center">{t("welcome")}</h1>
-      <Form>
-        <Form.Group>
-          <Form.Label htmlFor="username">{t("user.username")}</Form.Label>
-          <Form.Control
-            id="username"
-            disabled={process}
-            onChange={(e) => {
-              setUsername(e.target.value);
-              setUsernameDirty(true);
-            }}
-            value={username}
-            isInvalid={usernameDirty && username === ""}
-          />
-          {usernameDirty && username === "" && (
-            <Form.Control.Feedback type="invalid">
-              {t("login.emptyUsername")}
-            </Form.Control.Feedback>
-          )}
-        </Form.Group>
-        <Form.Group>
-          <Form.Label htmlFor="password">{t("user.password")}</Form.Label>
-          <Form.Control
-            id="password"
-            type="password"
-            disabled={process}
-            onChange={(e) => {
-              setPassword(e.target.value);
-              setPasswordDirty(true);
-            }}
-            value={password}
-            onKeyDown={onEnterPressInPassword}
-            isInvalid={passwordDirty && password === ""}
-          />
-          {passwordDirty && password === "" && (
-            <Form.Control.Feedback type="invalid">
-              {t("login.emptyPassword")}
-            </Form.Control.Feedback>
-          )}
-        </Form.Group>
-        <Form.Group>
-          <Form.Check<"input">
-            id="remember-me"
-            type="checkbox"
-            checked={rememberMe}
-            onChange={(e) => {
-              setRememberMe(e.currentTarget.checked);
-            }}
-            label={t("user.rememberMe")}
-          />
-        </Form.Group>
-        {error ? <p className="text-danger">{t(error)}</p> : null}
-        <div className="text-right">
-          <LoadingButton
-            loading={process}
-            variant="primary"
-            onClick={(e) => {
-              submit();
-              e.preventDefault();
-            }}
-            disabled={username === "" || password === "" ? true : undefined}
-          >
-            {t("user.login")}
-          </LoadingButton>
-        </div>
-      </Form>
-    </Container>
-  );
-};
-
-export default LoginPage;
diff --git a/Timeline/ClientApp/src/app/views/login/login.sass b/Timeline/ClientApp/src/app/views/login/login.sass
deleted file mode 100644
index 0bf385f5..00000000
--- a/Timeline/ClientApp/src/app/views/login/login.sass
+++ /dev/null
@@ -1,2 +0,0 @@
-.login-container
-  max-width: 600px
diff --git a/Timeline/ClientApp/src/app/views/settings/index.tsx b/Timeline/ClientApp/src/app/views/settings/index.tsx
deleted file mode 100644
index 964e7442..00000000
--- a/Timeline/ClientApp/src/app/views/settings/index.tsx
+++ /dev/null
@@ -1,209 +0,0 @@
-import React, { useState } from "react";
-import { useHistory } from "react-router";
-import { useTranslation } from "react-i18next";
-import { Form, Container, Row, Col, Button, Modal } from "react-bootstrap";
-
-import { useUser, userService } from "@/services/user";
-import OperationDialog, {
-  OperationInputErrorInfo,
-} from "../common/OperationDialog";
-
-interface ChangePasswordDialogProps {
-  open: boolean;
-  close: () => void;
-}
-
-const ChangePasswordDialog: React.FC<ChangePasswordDialogProps> = (props) => {
-  const history = useHistory();
-  const { t } = useTranslation();
-
-  const [redirect, setRedirect] = useState<boolean>(false);
-
-  return (
-    <OperationDialog
-      open={props.open}
-      title={t("settings.dialogChangePassword.title")}
-      titleColor="dangerous"
-      inputPrompt={t("settings.dialogChangePassword.prompt")}
-      inputScheme={[
-        {
-          type: "text",
-          label: t("settings.dialogChangePassword.inputOldPassword"),
-          password: true,
-          validator: (v) =>
-            v === ""
-              ? "settings.dialogChangePassword.errorEmptyOldPassword"
-              : null,
-        },
-        {
-          type: "text",
-          label: t("settings.dialogChangePassword.inputNewPassword"),
-          password: true,
-          validator: (v, values) => {
-            const error: OperationInputErrorInfo = {};
-            error[1] =
-              v === ""
-                ? "settings.dialogChangePassword.errorEmptyNewPassword"
-                : null;
-            if (v === values[2]) {
-              error[2] = null;
-            } else {
-              if (values[2] !== "") {
-                error[2] = "settings.dialogChangePassword.errorRetypeNotMatch";
-              }
-            }
-            return error;
-          },
-        },
-        {
-          type: "text",
-          label: t("settings.dialogChangePassword.inputRetypeNewPassword"),
-          password: true,
-          validator: (v, values) =>
-            v !== values[1]
-              ? "settings.dialogChangePassword.errorRetypeNotMatch"
-              : null,
-        },
-      ]}
-      onProcess={async ([oldPassword, newPassword]) => {
-        await userService
-          .changePassword(oldPassword as string, newPassword as string)
-          .toPromise();
-        await userService.logout();
-        setRedirect(true);
-      }}
-      close={() => {
-        props.close();
-        if (redirect) {
-          history.push("/login");
-        }
-      }}
-    />
-  );
-};
-
-const ConfirmLogoutDialog: React.FC<{
-  toggle: () => void;
-  onConfirm: () => void;
-}> = ({ toggle, onConfirm }) => {
-  const { t } = useTranslation();
-
-  return (
-    <Modal show centered onHide={toggle}>
-      <Modal.Header>
-        <Modal.Title className="text-danger">
-          {t("settings.dialogConfirmLogout.title")}
-        </Modal.Title>
-      </Modal.Header>
-      <Modal.Body>{t("settings.dialogConfirmLogout.prompt")}</Modal.Body>
-      <Modal.Footer>
-        <Button variant="secondary" onClick={toggle}>
-          {t("operationDialog.cancel")}
-        </Button>
-        <Button variant="danger" onClick={onConfirm}>
-          {t("operationDialog.confirm")}
-        </Button>
-      </Modal.Footer>
-    </Modal>
-  );
-};
-
-const SettingsPage: React.FC = (_) => {
-  const { i18n, t } = useTranslation();
-  const user = useUser();
-  const history = useHistory();
-
-  const [dialog, setDialog] = useState<null | "changepassword" | "logout">(
-    null
-  );
-
-  const language = i18n.language.slice(0, 2);
-
-  return (
-    <Container fluid>
-      {user ? (
-        <>
-          <Row className="border-bottom p-3 cursor-pointer">
-            <Col xs="12">
-              <h5
-                onClick={() => {
-                  history.push(`/users/${user.username}`);
-                }}
-              >
-                {t("settings.gotoSelf")}
-              </h5>
-            </Col>
-          </Row>
-          <Row className="border-bottom p-3 cursor-pointer">
-            <Col xs="12">
-              <h5
-                className="text-danger"
-                onClick={() => setDialog("changepassword")}
-              >
-                {t("settings.changePassword")}
-              </h5>
-            </Col>
-          </Row>
-          <Row className="border-bottom p-3 cursor-pointer">
-            <Col xs="12">
-              <h5
-                className="text-danger"
-                onClick={() => {
-                  setDialog("logout");
-                }}
-              >
-                {t("settings.logout")}
-              </h5>
-            </Col>
-          </Row>
-        </>
-      ) : null}
-      <Row className="align-items-center border-bottom p-3">
-        <Col xs="12" sm="auto">
-          <h5>{t("settings.languagePrimary")}</h5>
-          <p>{t("settings.languageSecondary")}</p>
-        </Col>
-        <Col xs="auto" className="ml-auto">
-          <Form.Control
-            as="select"
-            value={language}
-            onChange={(e) => {
-              void i18n.changeLanguage(e.target.value);
-            }}
-          >
-            <option value="zh">中文</option>
-            <option value="en">English</option>
-          </Form.Control>
-        </Col>
-      </Row>
-      {(() => {
-        switch (dialog) {
-          case "changepassword":
-            return (
-              <ChangePasswordDialog
-                open
-                close={() => {
-                  setDialog(null);
-                }}
-              />
-            );
-          case "logout":
-            return (
-              <ConfirmLogoutDialog
-                toggle={() => setDialog(null)}
-                onConfirm={() => {
-                  void userService.logout().then(() => {
-                    history.push("/");
-                  });
-                }}
-              />
-            );
-          default:
-            return null;
-        }
-      })()}
-    </Container>
-  );
-};
-
-export default SettingsPage;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/CollapseButton.tsx b/Timeline/ClientApp/src/app/views/timeline-common/CollapseButton.tsx
deleted file mode 100644
index 3c52150f..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/CollapseButton.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-import Svg from "react-inlinesvg";
-import arrowsAngleContractIcon from "bootstrap-icons/icons/arrows-angle-contract.svg";
-import arrowsAngleExpandIcon from "bootstrap-icons/icons/arrows-angle-expand.svg";
-
-const CollapseButton: React.FC<{
-  collapse: boolean;
-  onClick: () => void;
-  className?: string;
-  style?: React.CSSProperties;
-}> = ({ collapse, onClick, className, style }) => {
-  return (
-    <Svg
-      src={collapse ? arrowsAngleExpandIcon : arrowsAngleContractIcon}
-      onClick={onClick}
-      className={clsx("text-primary icon-button", className)}
-      style={style}
-    />
-  );
-};
-
-export default CollapseButton;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/InfoCardTemplate.tsx b/Timeline/ClientApp/src/app/views/timeline-common/InfoCardTemplate.tsx
deleted file mode 100644
index a8de20aa..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/InfoCardTemplate.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-
-import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
-import SyncStatusBadge from "../timeline-common/SyncStatusBadge";
-import CollapseButton from "../timeline-common/CollapseButton";
-
-const InfoCardTemplate: React.FC<
-  Pick<
-    TimelineCardComponentProps<"">,
-    "collapse" | "toggleCollapse" | "syncStatus" | "className"
-  > & { children: React.ReactElement[] }
-> = ({ collapse, toggleCollapse, syncStatus, className, children }) => {
-  return (
-    <div className={clsx("cru-card p-2 clearfix", className)}>
-      <div className="float-right d-flex align-items-center">
-        <SyncStatusBadge status={syncStatus} className="mr-2" />
-        <CollapseButton collapse={collapse} onClick={toggleCollapse} />
-      </div>
-
-      <div style={{ display: collapse ? "none" : "block" }}>{children}</div>
-    </div>
-  );
-};
-
-export default InfoCardTemplate;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/SyncStatusBadge.tsx b/Timeline/ClientApp/src/app/views/timeline-common/SyncStatusBadge.tsx
deleted file mode 100644
index e67cfb43..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/SyncStatusBadge.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-import { useTranslation } from "react-i18next";
-
-import { UiLogicError } from "@/common";
-
-export type TimelineSyncStatus = "syncing" | "synced" | "offline";
-
-const SyncStatusBadge: React.FC<{
-  status: TimelineSyncStatus;
-  style?: React.CSSProperties;
-  className?: string;
-}> = ({ status, style, className }) => {
-  const { t } = useTranslation();
-
-  return (
-    <div style={style} className={clsx("timeline-sync-state-badge", className)}>
-      {(() => {
-        switch (status) {
-          case "syncing": {
-            return (
-              <>
-                <span className="timeline-sync-state-badge-pin bg-warning" />
-                <span className="text-warning">
-                  {t("timeline.postSyncState.syncing")}
-                </span>
-              </>
-            );
-          }
-          case "synced": {
-            return (
-              <>
-                <span className="timeline-sync-state-badge-pin bg-success" />
-                <span className="text-success">
-                  {t("timeline.postSyncState.synced")}
-                </span>
-              </>
-            );
-          }
-          case "offline": {
-            return (
-              <>
-                <span className="timeline-sync-state-badge-pin bg-danger" />
-                <span className="text-danger">
-                  {t("timeline.postSyncState.offline")}
-                </span>
-              </>
-            );
-          }
-          default:
-            throw new UiLogicError("Unknown sync state.");
-        }
-      })()}
-    </div>
-  );
-};
-
-export default SyncStatusBadge;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/Timeline.tsx b/Timeline/ClientApp/src/app/views/timeline-common/Timeline.tsx
deleted file mode 100644
index fd051d45..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/Timeline.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-
-import { TimelinePostInfo } from "@/services/timeline";
-
-import TimelineItem from "./TimelineItem";
-
-export interface TimelinePostInfoEx extends TimelinePostInfo {
-  deletable: boolean;
-}
-
-export type TimelineDeleteCallback = (index: number, id: number) => void;
-
-export interface TimelineProps {
-  className?: string;
-  posts: TimelinePostInfoEx[];
-  onDelete: TimelineDeleteCallback;
-  onResize?: () => void;
-  containerRef?: React.Ref<HTMLDivElement>;
-}
-
-const Timeline: React.FC<TimelineProps> = (props) => {
-  const { posts, onDelete, onResize } = props;
-
-  const [indexShowDeleteButton, setIndexShowDeleteButton] = React.useState<
-    number
-  >(-1);
-
-  const onItemClick = React.useCallback(() => {
-    setIndexShowDeleteButton(-1);
-  }, []);
-
-  const onToggleDelete = React.useMemo(() => {
-    return posts.map((post, i) => {
-      return post.deletable
-        ? () => {
-            setIndexShowDeleteButton((oldIndexShowDeleteButton) => {
-              return oldIndexShowDeleteButton !== i ? i : -1;
-            });
-          }
-        : undefined;
-    });
-  }, [posts]);
-
-  const onItemDelete = React.useMemo(() => {
-    return posts.map((post, i) => {
-      return () => {
-        onDelete(i, post.id);
-      };
-    });
-  }, [posts, onDelete]);
-
-  return (
-    <div ref={props.containerRef} className={clsx("timeline", props.className)}>
-      {(() => {
-        const length = posts.length;
-        return posts.map((post, i) => {
-          const toggleMore = onToggleDelete[i];
-
-          return (
-            <TimelineItem
-              post={post}
-              key={post.id}
-              current={length - 1 === i}
-              more={
-                toggleMore
-                  ? {
-                      isOpen: indexShowDeleteButton === i,
-                      toggle: toggleMore,
-                      onDelete: onItemDelete[i],
-                    }
-                  : undefined
-              }
-              onClick={onItemClick}
-              onResize={onResize}
-            />
-          );
-        });
-      })()}
-    </div>
-  );
-};
-
-export default Timeline;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelineItem.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelineItem.tsx
deleted file mode 100644
index 4db23371..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelineItem.tsx
+++ /dev/null
@@ -1,172 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-import { Link } from "react-router-dom";
-import { useTranslation } from "react-i18next";
-import Svg from "react-inlinesvg";
-import chevronDownIcon from "bootstrap-icons/icons/chevron-down.svg";
-import trashIcon from "bootstrap-icons/icons/trash.svg";
-import { Modal, Button } from "react-bootstrap";
-
-import { useAvatar } from "@/services/user";
-import { TimelinePostInfo } from "@/services/timeline";
-
-import BlobImage from "../common/BlobImage";
-
-const TimelinePostDeleteConfirmDialog: React.FC<{
-  toggle: () => void;
-  onConfirm: () => void;
-}> = ({ toggle, onConfirm }) => {
-  const { t } = useTranslation();
-
-  return (
-    <Modal toggle={toggle} isOpen centered>
-      <Modal.Header>
-        <Modal.Title className="text-danger">
-          {t("timeline.post.deleteDialog.title")}
-        </Modal.Title>
-      </Modal.Header>
-      <Modal.Body>{t("timeline.post.deleteDialog.prompt")}</Modal.Body>
-      <Modal.Footer>
-        <Button variant="secondary" onClick={toggle}>
-          {t("operationDialog.cancel")}
-        </Button>
-        <Button
-          variant="danger"
-          onClick={() => {
-            onConfirm();
-            toggle();
-          }}
-        >
-          {t("operationDialog.confirm")}
-        </Button>
-      </Modal.Footer>
-    </Modal>
-  );
-};
-
-export interface TimelineItemProps {
-  post: TimelinePostInfo;
-  current?: boolean;
-  more?: {
-    isOpen: boolean;
-    toggle: () => void;
-    onDelete: () => void;
-  };
-  onClick?: () => void;
-  onResize?: () => void;
-  className?: string;
-  style?: React.CSSProperties;
-}
-
-const TimelineItem: React.FC<TimelineItemProps> = (props) => {
-  const { i18n } = useTranslation();
-
-  const current = props.current === true;
-
-  const { more, onResize } = props;
-
-  const avatar = useAvatar(props.post.author.username);
-
-  const [deleteDialog, setDeleteDialog] = React.useState<boolean>(false);
-  const toggleDeleteDialog = React.useCallback(
-    () => setDeleteDialog((old) => !old),
-    []
-  );
-
-  return (
-    <div
-      className={clsx(
-        "timeline-item position-relative",
-        current && "current",
-        props.className
-      )}
-      onClick={props.onClick}
-      style={props.style}
-    >
-      <div className="timeline-line-area-container">
-        <div className="timeline-line-area">
-          <div className="timeline-line-segment start"></div>
-          <div className="timeline-line-node-container">
-            <div className="timeline-line-node"></div>
-          </div>
-          <div className="timeline-line-segment end"></div>
-          {current && <div className="timeline-line-segment current-end" />}
-        </div>
-      </div>
-      <div className="timeline-content-area">
-        <div>
-          <span className="mr-2">
-            <span className="text-primary white-space-no-wrap mr-2">
-              {props.post.time.toLocaleString(i18n.languages)}
-            </span>
-            <small className="text-dark">{props.post.author.nickname}</small>
-          </span>
-          {more != null ? (
-            <Svg
-              src={chevronDownIcon}
-              className="text-info icon-button"
-              onClick={(e) => {
-                more.toggle();
-                e.stopPropagation();
-              }}
-            />
-          ) : null}
-        </div>
-        <div className="timeline-content">
-          <Link
-            className="float-left m-2"
-            to={"/users/" + props.post.author.username}
-          >
-            <BlobImage
-              onLoad={onResize}
-              blob={avatar}
-              className="avatar rounded"
-            />
-          </Link>
-          {(() => {
-            const { content } = props.post;
-            if (content.type === "text") {
-              return content.text;
-            } else {
-              return (
-                <BlobImage
-                  onLoad={onResize}
-                  blob={content.data}
-                  className="timeline-content-image"
-                />
-              );
-            }
-          })()}
-        </div>
-      </div>
-      {more != null && more.isOpen ? (
-        <>
-          <div
-            className="position-absolute position-lt w-100 h-100 mask d-flex justify-content-center align-items-center"
-            onClick={more.toggle}
-          >
-            <Svg
-              src={trashIcon}
-              className="text-danger icon-button large"
-              onClick={(e) => {
-                toggleDeleteDialog();
-                e.stopPropagation();
-              }}
-            />
-          </div>
-          {deleteDialog ? (
-            <TimelinePostDeleteConfirmDialog
-              toggle={() => {
-                toggleDeleteDialog();
-                more.toggle();
-              }}
-              onConfirm={more.onDelete}
-            />
-          ) : null}
-        </>
-      ) : null}
-    </div>
-  );
-};
-
-export default TimelineItem;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelineMember.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelineMember.tsx
deleted file mode 100644
index 67a8543a..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelineMember.tsx
+++ /dev/null
@@ -1,211 +0,0 @@
-import React, { useState } from "react";
-import { useTranslation } from "react-i18next";
-import { Container, ListGroup, Modal, Row, Col, Button } from "react-bootstrap";
-
-import { User, useAvatar } from "@/services/user";
-
-import SearchInput from "../common/SearchInput";
-import BlobImage from "../common/BlobImage";
-
-const TimelineMemberItem: React.FC<{
-  user: User;
-  owner: boolean;
-  onRemove?: (username: string) => void;
-}> = ({ user, owner, onRemove }) => {
-  const { t } = useTranslation();
-
-  const avatar = useAvatar(user.username);
-
-  return (
-    <ListGroup.Item className="container">
-      <Row>
-        <Col xs="auto">
-          <BlobImage blob={avatar} className="avatar small" />
-        </Col>
-        <Col>
-          <Row>{user.nickname}</Row>
-          <Row>
-            <small>{"@" + user.username}</small>
-          </Row>
-        </Col>
-        {(() => {
-          if (owner) {
-            return null;
-          }
-          if (onRemove == null) {
-            return null;
-          }
-          return (
-            <Button
-              className="align-self-center"
-              variant="danger"
-              onClick={() => {
-                onRemove(user.username);
-              }}
-            >
-              {t("timeline.member.remove")}
-            </Button>
-          );
-        })()}
-      </Row>
-    </ListGroup.Item>
-  );
-};
-
-export interface TimelineMemberCallbacks {
-  onCheckUser: (username: string) => Promise<User | null>;
-  onAddUser: (user: User) => Promise<void>;
-  onRemoveUser: (username: string) => void;
-}
-
-export interface TimelineMemberProps {
-  members: User[];
-  edit: TimelineMemberCallbacks | null | undefined;
-}
-
-const TimelineMember: React.FC<TimelineMemberProps> = (props) => {
-  const { t } = useTranslation();
-
-  const [userSearchText, setUserSearchText] = useState<string>("");
-  const [userSearchState, setUserSearchState] = useState<
-    | {
-        type: "user";
-        data: User;
-      }
-    | { type: "error"; data: string }
-    | { type: "loading" }
-    | { type: "init" }
-  >({ type: "init" });
-
-  const userSearchAvatar = useAvatar(
-    userSearchState.type === "user" ? userSearchState.data.username : undefined
-  );
-
-  const members = props.members;
-
-  return (
-    <Container className="px-4">
-      <ListGroup className="my-3">
-        {members.map((member, index) => (
-          <TimelineMemberItem
-            key={member.username}
-            user={member}
-            owner={index === 0}
-            onRemove={props.edit?.onRemoveUser}
-          />
-        ))}
-      </ListGroup>
-      {(() => {
-        const edit = props.edit;
-        if (edit != null) {
-          return (
-            <>
-              <SearchInput
-                value={userSearchText}
-                onChange={(v) => {
-                  setUserSearchText(v);
-                }}
-                loading={userSearchState.type === "loading"}
-                onButtonClick={() => {
-                  if (userSearchText === "") {
-                    setUserSearchState({
-                      type: "error",
-                      data: "login.emptyUsername",
-                    });
-                    return;
-                  }
-
-                  setUserSearchState({ type: "loading" });
-                  edit.onCheckUser(userSearchText).then(
-                    (u) => {
-                      if (u == null) {
-                        setUserSearchState({
-                          type: "error",
-                          data: "timeline.userNotExist",
-                        });
-                      } else {
-                        setUserSearchState({ type: "user", data: u });
-                      }
-                    },
-                    (e) => {
-                      setUserSearchState({
-                        type: "error",
-                        data: `${e as string}`,
-                      });
-                    }
-                  );
-                }}
-              />
-              {(() => {
-                if (userSearchState.type === "user") {
-                  const u = userSearchState.data;
-                  const addable =
-                    members.findIndex((m) => m.username === u.username) === -1;
-                  return (
-                    <>
-                      {!addable ? (
-                        <p>{t("timeline.member.alreadyMember")}</p>
-                      ) : null}
-                      <Container className="mb-3">
-                        <Row>
-                          <Col className="col-auto">
-                            <BlobImage
-                              blob={userSearchAvatar}
-                              className="avatar small"
-                            />
-                          </Col>
-                          <Col>
-                            <Row>{u.nickname}</Row>
-                            <Row>
-                              <small>{"@" + u.username}</small>
-                            </Row>
-                          </Col>
-                          <Button
-                            variant="primary"
-                            className="align-self-center"
-                            disabled={!addable}
-                            onClick={() => {
-                              void edit.onAddUser(u).then((_) => {
-                                setUserSearchText("");
-                                setUserSearchState({ type: "init" });
-                              });
-                            }}
-                          >
-                            {t("timeline.member.add")}
-                          </Button>
-                        </Row>
-                      </Container>
-                    </>
-                  );
-                } else if (userSearchState.type === "error") {
-                  return (
-                    <p className="text-danger">{t(userSearchState.data)}</p>
-                  );
-                }
-              })()}
-            </>
-          );
-        } else {
-          return null;
-        }
-      })()}
-    </Container>
-  );
-};
-
-export default TimelineMember;
-
-export interface TimelineMemberDialogProps extends TimelineMemberProps {
-  open: boolean;
-  onClose: () => void;
-}
-
-export const TimelineMemberDialog: React.FC<TimelineMemberDialogProps> = (
-  props
-) => {
-  return (
-    <Modal show centered onHide={props.onClose}>
-      <TimelineMember {...props} />
-    </Modal>
-  );
-};
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplate.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplate.tsx
deleted file mode 100644
index d5c91622..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplate.tsx
+++ /dev/null
@@ -1,185 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { of } from "rxjs";
-import { catchError } from "rxjs/operators";
-
-import { UiLogicError } from "@/common";
-import { pushAlert } from "@/services/alert";
-import { useUser, userInfoService, UserNotExistError } from "@/services/user";
-import {
-  timelineService,
-  usePostList,
-  useTimelineInfo,
-} from "@/services/timeline";
-
-import { TimelineDeleteCallback } from "./Timeline";
-import { TimelineMemberDialog } from "./TimelineMember";
-import TimelinePropertyChangeDialog from "./TimelinePropertyChangeDialog";
-import { TimelinePageTemplateUIProps } from "./TimelinePageTemplateUI";
-import { TimelinePostSendCallback } from "./TimelinePostEdit";
-
-export interface TimelinePageTemplateProps<TManageItem> {
-  name: string;
-  onManage: (item: TManageItem) => void;
-  UiComponent: React.ComponentType<
-    Omit<TimelinePageTemplateUIProps<TManageItem>, "CardComponent">
-  >;
-  notFoundI18nKey: string;
-}
-
-export default function TimelinePageTemplate<TManageItem>(
-  props: TimelinePageTemplateProps<TManageItem>
-): React.ReactElement | null {
-  const { t } = useTranslation();
-
-  const { name } = props;
-
-  const service = timelineService;
-
-  const user = useUser();
-
-  const [dialog, setDialog] = React.useState<null | "property" | "member">(
-    null
-  );
-
-  const timelineState = useTimelineInfo(name);
-
-  const timeline = timelineState?.timeline;
-
-  const postListState = usePostList(name);
-
-  const error: string | undefined = (() => {
-    if (timelineState != null) {
-      const { type, timeline } = timelineState;
-      if (type === "offline" && timeline == null) return "Network Error";
-      if (type === "synced" && timeline == null)
-        return t(props.notFoundI18nKey);
-    }
-    return undefined;
-  })();
-
-  const closeDialog = React.useCallback((): void => {
-    setDialog(null);
-  }, []);
-
-  let dialogElement: React.ReactElement | undefined;
-
-  if (dialog === "property") {
-    if (timeline == null) {
-      throw new UiLogicError(
-        "Timeline is null but attempt to open change property dialog."
-      );
-    }
-
-    dialogElement = (
-      <TimelinePropertyChangeDialog
-        open
-        close={closeDialog}
-        oldInfo={{
-          visibility: timeline.visibility,
-          description: timeline.description,
-        }}
-        onProcess={(req) => {
-          return service.changeTimelineProperty(name, req).toPromise().then();
-        }}
-      />
-    );
-  } else if (dialog === "member") {
-    if (timeline == null) {
-      throw new UiLogicError(
-        "Timeline is null but attempt to open change property dialog."
-      );
-    }
-
-    dialogElement = (
-      <TimelineMemberDialog
-        open
-        onClose={closeDialog}
-        members={[timeline.owner, ...timeline.members]}
-        edit={
-          service.hasManagePermission(user, timeline)
-            ? {
-                onCheckUser: (u) => {
-                  return userInfoService
-                    .getUserInfo(u)
-                    .pipe(
-                      catchError((e) => {
-                        if (e instanceof UserNotExistError) {
-                          return of(null);
-                        } else {
-                          throw e;
-                        }
-                      })
-                    )
-                    .toPromise();
-                },
-                onAddUser: (u) => {
-                  return service.addMember(name, u.username).toPromise().then();
-                },
-                onRemoveUser: (u) => {
-                  service.removeMember(name, u);
-                },
-              }
-            : null
-        }
-      />
-    );
-  }
-
-  const { UiComponent } = props;
-
-  const onDelete: TimelineDeleteCallback = React.useCallback(
-    (index, id) => {
-      service.deletePost(name, id).subscribe(null, () => {
-        pushAlert({
-          type: "danger",
-          message: t("timeline.deletePostFailed"),
-        });
-      });
-    },
-    [service, name, t]
-  );
-
-  const onPost: TimelinePostSendCallback = React.useCallback(
-    (req) => {
-      return service.createPost(name, req).toPromise().then();
-    },
-    [service, name]
-  );
-
-  const onManageProp = props.onManage;
-
-  const onManage = React.useCallback(
-    (item: "property" | TManageItem) => {
-      if (item === "property") {
-        setDialog(item);
-      } else {
-        onManageProp(item);
-      }
-    },
-    [onManageProp]
-  );
-
-  return (
-    <>
-      <UiComponent
-        error={error}
-        timeline={timeline ?? undefined}
-        postListState={postListState}
-        onDelete={onDelete}
-        onPost={
-          timeline != null && service.hasPostPermission(user, timeline)
-            ? onPost
-            : undefined
-        }
-        onManage={
-          timeline != null && service.hasManagePermission(user, timeline)
-            ? onManage
-            : undefined
-        }
-        onMember={() => setDialog("member")}
-      />
-      {dialogElement}
-    </>
-  );
-}
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplateUI.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
deleted file mode 100644
index 6c2c43c1..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePageTemplateUI.tsx
+++ /dev/null
@@ -1,243 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { fromEvent } from "rxjs";
-import { Spinner } from "react-bootstrap";
-
-import { getAlertHost } from "@/services/alert";
-import { useEventEmiiter, UiLogicError } from "@/common";
-import {
-  TimelineInfo,
-  TimelinePostsWithSyncState,
-  timelineService,
-} from "@/services/timeline";
-import { userService } from "@/services/user";
-
-import Timeline, {
-  TimelinePostInfoEx,
-  TimelineDeleteCallback,
-} from "./Timeline";
-import TimelineTop from "./TimelineTop";
-import TimelinePostEdit, { TimelinePostSendCallback } from "./TimelinePostEdit";
-import { TimelineSyncStatus } from "./SyncStatusBadge";
-
-export interface TimelineCardComponentProps<TManageItems> {
-  timeline: TimelineInfo;
-  onManage?: (item: TManageItems | "property") => void;
-  onMember: () => void;
-  className?: string;
-  collapse: boolean;
-  syncStatus: TimelineSyncStatus;
-  toggleCollapse: () => void;
-}
-
-export interface TimelinePageTemplateUIProps<TManageItems> {
-  timeline?: TimelineInfo;
-  postListState?: TimelinePostsWithSyncState;
-  CardComponent: React.ComponentType<TimelineCardComponentProps<TManageItems>>;
-  onMember: () => void;
-  onManage?: (item: TManageItems | "property") => void;
-  onPost?: TimelinePostSendCallback;
-  onDelete: TimelineDeleteCallback;
-  error?: string;
-}
-
-export default function TimelinePageTemplateUI<TManageItems>(
-  props: TimelinePageTemplateUIProps<TManageItems>
-): React.ReactElement | null {
-  const { timeline, postListState } = props;
-
-  const { t } = useTranslation();
-
-  const bottomSpaceRef = React.useRef<HTMLDivElement | null>(null);
-
-  const onPostEditHeightChange = React.useCallback((height: number): void => {
-    const { current: bottomSpaceDiv } = bottomSpaceRef;
-    if (bottomSpaceDiv != null) {
-      bottomSpaceDiv.style.height = `${height}px`;
-    }
-    if (height === 0) {
-      const alertHost = getAlertHost();
-      if (alertHost != null) {
-        alertHost.style.removeProperty("margin-bottom");
-      }
-    } else {
-      const alertHost = getAlertHost();
-      if (alertHost != null) {
-        alertHost.style.marginBottom = `${height}px`;
-      }
-    }
-  }, []);
-
-  const timelineRef = React.useRef<HTMLDivElement | null>(null);
-
-  const [getResizeEvent, triggerResizeEvent] = useEventEmiiter();
-
-  React.useEffect(() => {
-    const { current: timelineElement } = timelineRef;
-    if (timelineElement != null) {
-      let loadingScrollToBottom = true;
-      let pinBottom = false;
-
-      const isAtBottom = (): boolean =>
-        window.innerHeight + window.scrollY + 10 >= document.body.scrollHeight;
-
-      const disableLoadingScrollToBottom = (): void => {
-        loadingScrollToBottom = false;
-        if (isAtBottom()) pinBottom = true;
-      };
-
-      const checkAndScrollToBottom = (): void => {
-        if (loadingScrollToBottom || pinBottom) {
-          window.scrollTo(0, document.body.scrollHeight);
-        }
-      };
-
-      const subscriptions = [
-        fromEvent(timelineElement, "wheel").subscribe(
-          disableLoadingScrollToBottom
-        ),
-        fromEvent(timelineElement, "pointerdown").subscribe(
-          disableLoadingScrollToBottom
-        ),
-        fromEvent(timelineElement, "keydown").subscribe(
-          disableLoadingScrollToBottom
-        ),
-        fromEvent(window, "scroll").subscribe(() => {
-          if (loadingScrollToBottom) return;
-
-          if (isAtBottom()) {
-            pinBottom = true;
-          } else {
-            pinBottom = false;
-          }
-        }),
-        fromEvent(window, "resize").subscribe(checkAndScrollToBottom),
-        getResizeEvent().subscribe(checkAndScrollToBottom),
-      ];
-
-      return () => {
-        subscriptions.forEach((s) => s.unsubscribe());
-      };
-    }
-  }, [getResizeEvent, triggerResizeEvent, timeline, postListState]);
-
-  const genCardCollapseLocalStorageKey = (uniqueId: string): string =>
-    `timeline.${uniqueId}.cardCollapse`;
-
-  const cardCollapseLocalStorageKey =
-    timeline != null ? genCardCollapseLocalStorageKey(timeline.uniqueId) : null;
-
-  const [cardCollapse, setCardCollapse] = React.useState<boolean>(true);
-  React.useEffect(() => {
-    if (cardCollapseLocalStorageKey != null) {
-      const savedCollapse =
-        window.localStorage.getItem(cardCollapseLocalStorageKey) === "true";
-      setCardCollapse(savedCollapse);
-    }
-  }, [cardCollapseLocalStorageKey]);
-
-  const toggleCardCollapse = (): void => {
-    const newState = !cardCollapse;
-    setCardCollapse(newState);
-    if (timeline != null) {
-      window.localStorage.setItem(
-        genCardCollapseLocalStorageKey(timeline.uniqueId),
-        newState.toString()
-      );
-    }
-  };
-
-  let body: React.ReactElement;
-
-  if (props.error != null) {
-    body = <p className="text-danger">{t(props.error)}</p>;
-  } else {
-    if (timeline != null) {
-      let timelineBody: React.ReactElement;
-      if (postListState != null) {
-        if (postListState.type === "notexist") {
-          throw new UiLogicError(
-            "Timeline is not null but post list state is notexist."
-          );
-        }
-        if (postListState.type === "forbid") {
-          timelineBody = (
-            <p className="text-danger">{t("timeline.messageCantSee")}</p>
-          );
-        } else {
-          const posts: TimelinePostInfoEx[] = postListState.posts.map(
-            (post) => ({
-              ...post,
-              deletable: timelineService.hasModifyPostPermission(
-                userService.currentUser,
-                timeline,
-                post
-              ),
-            })
-          );
-
-          timelineBody = (
-            <Timeline
-              containerRef={timelineRef}
-              posts={posts}
-              onDelete={props.onDelete}
-              onResize={triggerResizeEvent}
-            />
-          );
-          if (props.onPost != null) {
-            timelineBody = (
-              <>
-                {timelineBody}
-                <div ref={bottomSpaceRef} className="flex-fix-length" />
-                <TimelinePostEdit
-                  className="fixed-bottom"
-                  onPost={props.onPost}
-                  onHeightChange={onPostEditHeightChange}
-                  timelineUniqueId={timeline.uniqueId}
-                />
-              </>
-            );
-          }
-        }
-      } else {
-        timelineBody = (
-          <div className="full-viewport-center-child">
-            <Spinner variant="primary" animation="grow" />
-          </div>
-        );
-      }
-
-      const { CardComponent } = props;
-      const syncStatus: TimelineSyncStatus =
-        postListState == null || postListState.syncing
-          ? "syncing"
-          : postListState.type === "synced"
-          ? "synced"
-          : "offline";
-
-      body = (
-        <>
-          <CardComponent
-            className="timeline-template-card"
-            timeline={timeline}
-            onManage={props.onManage}
-            onMember={props.onMember}
-            syncStatus={syncStatus}
-            collapse={cardCollapse}
-            toggleCollapse={toggleCardCollapse}
-          />
-          <TimelineTop height="56px" />
-          {timelineBody}
-        </>
-      );
-    } else {
-      body = (
-        <div className="full-viewport-center-child">
-          <Spinner variant="primary" animation="grow" />
-        </div>
-      );
-    }
-  }
-
-  return body;
-}
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePostEdit.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelinePostEdit.tsx
deleted file mode 100644
index dfa2f879..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePostEdit.tsx
+++ /dev/null
@@ -1,241 +0,0 @@
-import React from "react";
-import clsx from "clsx";
-import { useTranslation } from "react-i18next";
-import Svg from "react-inlinesvg";
-import { Button, Spinner, Row, Col, Form } from "react-bootstrap";
-import textIcon from "bootstrap-icons/icons/card-text.svg";
-import imageIcon from "bootstrap-icons/icons/image.svg";
-
-import { UiLogicError } from "@/common";
-
-import { pushAlert } from "@/services/alert";
-import { TimelineCreatePostRequest } from "@/services/timeline";
-
-interface TimelinePostEditImageProps {
-  onSelect: (blob: Blob | null) => void;
-}
-
-const TimelinePostEditImage: React.FC<TimelinePostEditImageProps> = (props) => {
-  const { onSelect } = props;
-  const { t } = useTranslation();
-
-  const [file, setFile] = React.useState<File | null>(null);
-  const [fileUrl, setFileUrl] = React.useState<string | null>(null);
-  const [error, setError] = React.useState<string | null>(null);
-
-  React.useEffect(() => {
-    if (file != null) {
-      const url = URL.createObjectURL(file);
-      setFileUrl(url);
-      return () => {
-        URL.revokeObjectURL(url);
-      };
-    }
-  }, [file]);
-
-  const onInputChange: React.ChangeEventHandler<HTMLInputElement> = React.useCallback(
-    (e) => {
-      const files = e.target.files;
-      if (files == null || files.length === 0) {
-        setFile(null);
-        setFileUrl(null);
-      } else {
-        setFile(files[0]);
-      }
-      onSelect(null);
-      setError(null);
-    },
-    [onSelect]
-  );
-
-  const onImgLoad = React.useCallback(() => {
-    onSelect(file);
-  }, [onSelect, file]);
-
-  const onImgError = React.useCallback(() => {
-    setError("loadImageError");
-  }, []);
-
-  return (
-    <>
-      <Form.File
-        label={t("chooseImage")}
-        onChange={onInputChange}
-        accept="image/*"
-        className="mx-3 my-1 d-inline-block"
-      />
-      {fileUrl && error == null && (
-        <img
-          src={fileUrl}
-          className="timeline-post-edit-image"
-          onLoad={onImgLoad}
-          onError={onImgError}
-        />
-      )}
-      {error != null && <div className="text-danger">{t(error)}</div>}
-    </>
-  );
-};
-
-export type TimelinePostSendCallback = (
-  content: TimelineCreatePostRequest
-) => Promise<void>;
-
-export interface TimelinePostEditProps {
-  className?: string;
-  onPost: TimelinePostSendCallback;
-  onHeightChange?: (height: number) => void;
-  timelineUniqueId: string;
-}
-
-const TimelinePostEdit: React.FC<TimelinePostEditProps> = (props) => {
-  const { onPost } = props;
-
-  const { t } = useTranslation();
-
-  const [state, setState] = React.useState<"input" | "process">("input");
-  const [kind, setKind] = React.useState<"text" | "image">("text");
-  const [text, setText] = React.useState<string>("");
-  const [imageBlob, setImageBlob] = React.useState<Blob | null>(null);
-
-  const draftLocalStorageKey = `timeline.${props.timelineUniqueId}.postDraft`;
-
-  React.useEffect(() => {
-    setText(window.localStorage.getItem(draftLocalStorageKey) ?? "");
-  }, [draftLocalStorageKey]);
-
-  const canSend = kind === "text" || (kind === "image" && imageBlob != null);
-
-  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-  const containerRef = React.useRef<HTMLDivElement>(null!);
-
-  const notifyHeightChange = (): void => {
-    if (props.onHeightChange) {
-      props.onHeightChange(containerRef.current.clientHeight);
-    }
-  };
-
-  React.useEffect(() => {
-    if (props.onHeightChange) {
-      props.onHeightChange(containerRef.current.clientHeight);
-    }
-    return () => {
-      if (props.onHeightChange) {
-        props.onHeightChange(0);
-      }
-    };
-  });
-
-  const toggleKind = React.useCallback(() => {
-    setKind((oldKind) => (oldKind === "text" ? "image" : "text"));
-    setImageBlob(null);
-  }, []);
-
-  const onSend = React.useCallback(() => {
-    setState("process");
-
-    const req: TimelineCreatePostRequest = (() => {
-      switch (kind) {
-        case "text":
-          return {
-            content: {
-              type: "text",
-              text: text,
-            },
-          } as TimelineCreatePostRequest;
-        case "image":
-          if (imageBlob == null) {
-            throw new UiLogicError(
-              "Content type is image but image blob is null."
-            );
-          }
-          return {
-            content: {
-              type: "image",
-              data: imageBlob,
-            },
-          } as TimelineCreatePostRequest;
-        default:
-          throw new UiLogicError("Unknown content type.");
-      }
-    })();
-
-    onPost(req).then(
-      (_) => {
-        if (kind === "text") {
-          setText("");
-          window.localStorage.removeItem(draftLocalStorageKey);
-        }
-        setState("input");
-        setKind("text");
-      },
-      (_) => {
-        pushAlert({
-          type: "danger",
-          message: t("timeline.sendPostFailed"),
-        });
-        setState("input");
-      }
-    );
-  }, [onPost, kind, text, imageBlob, t, draftLocalStorageKey]);
-
-  const onImageSelect = React.useCallback((blob: Blob | null) => {
-    setImageBlob(blob);
-  }, []);
-
-  return (
-    <div
-      ref={containerRef}
-      className={clsx("container-fluid bg-light", props.className)}
-    >
-      <Row>
-        <Col className="px-1 py-1">
-          {kind === "text" ? (
-            <Form.Control
-              as="textarea"
-              className="w-100 h-100 timeline-post-edit"
-              value={text}
-              disabled={state === "process"}
-              onChange={(event: React.ChangeEvent<HTMLTextAreaElement>) => {
-                const value = event.currentTarget.value;
-                setText(value);
-                window.localStorage.setItem(draftLocalStorageKey, value);
-              }}
-            />
-          ) : (
-            <TimelinePostEditImage onSelect={onImageSelect} />
-          )}
-        </Col>
-        <Col xs="auto" className="align-self-end m-1">
-          {(() => {
-            if (state === "input") {
-              return (
-                <>
-                  <div className="d-block text-center mt-1 mb-2">
-                    <Svg
-                      onLoad={notifyHeightChange}
-                      src={kind === "text" ? imageIcon : textIcon}
-                      className="icon-button"
-                      onClick={toggleKind}
-                    />
-                  </div>
-                  <Button
-                    variant="primary"
-                    onClick={onSend}
-                    disabled={!canSend}
-                  >
-                    {t("timeline.send")}
-                  </Button>
-                </>
-              );
-            } else {
-              return <Spinner variant="primary" animation="border" />;
-            }
-          })()}
-        </Col>
-      </Row>
-    </div>
-  );
-};
-
-export default TimelinePostEdit;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
deleted file mode 100644
index 87638f31..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelinePropertyChangeDialog.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import React from "react";
-
-import {
-  TimelineVisibility,
-  kTimelineVisibilities,
-  TimelineChangePropertyRequest,
-} from "@/services/timeline";
-
-import OperationDialog, {
-  OperationSelectInputInfoOption,
-} from "../common/OperationDialog";
-
-export interface TimelinePropertyInfo {
-  visibility: TimelineVisibility;
-  description: string;
-}
-
-export interface TimelinePropertyChangeDialogProps {
-  open: boolean;
-  close: () => void;
-  oldInfo: TimelinePropertyInfo;
-  onProcess: (request: TimelineChangePropertyRequest) => Promise<void>;
-}
-
-const labelMap: { [key in TimelineVisibility]: string } = {
-  Private: "timeline.visibility.private",
-  Public: "timeline.visibility.public",
-  Register: "timeline.visibility.register",
-};
-
-const TimelinePropertyChangeDialog: React.FC<TimelinePropertyChangeDialogProps> = (
-  props
-) => {
-  return (
-    <OperationDialog
-      title={"timeline.dialogChangeProperty.title"}
-      titleColor="default"
-      inputScheme={[
-        {
-          type: "select",
-          label: "timeline.dialogChangeProperty.visibility",
-          options: kTimelineVisibilities.map<OperationSelectInputInfoOption>(
-            (v) => ({
-              label: labelMap[v],
-              value: v,
-            })
-          ),
-          initValue: props.oldInfo.visibility,
-        },
-        {
-          type: "text",
-          label: "timeline.dialogChangeProperty.description",
-          initValue: props.oldInfo.description,
-        },
-      ]}
-      open={props.open}
-      close={props.close}
-      onProcess={([newVisibility, newDescription]) => {
-        const req: TimelineChangePropertyRequest = {};
-        if (newVisibility !== props.oldInfo.visibility) {
-          req.visibility = newVisibility as TimelineVisibility;
-        }
-        if (newDescription !== props.oldInfo.description) {
-          req.description = newDescription as string;
-        }
-        return props.onProcess(req);
-      }}
-    />
-  );
-};
-
-export default TimelinePropertyChangeDialog;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/TimelineTop.tsx b/Timeline/ClientApp/src/app/views/timeline-common/TimelineTop.tsx
deleted file mode 100644
index 93a2a32c..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/TimelineTop.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react";
-
-export interface TimelineTopProps {
-  height?: number | string;
-  children?: React.ReactElement;
-}
-
-const TimelineTop: React.FC<TimelineTopProps> = ({ height, children }) => {
-  return (
-    <div style={{ height: height }} className="timeline-top">
-      <div className="timeline-line-area-container">
-        <div className="timeline-line-area">
-          <div className="timeline-line-segment"></div>
-        </div>
-      </div>
-      {children}
-    </div>
-  );
-};
-
-export default TimelineTop;
diff --git a/Timeline/ClientApp/src/app/views/timeline-common/timeline-common.sass b/Timeline/ClientApp/src/app/views/timeline-common/timeline-common.sass
deleted file mode 100644
index 4151bfcc..00000000
--- a/Timeline/ClientApp/src/app/views/timeline-common/timeline-common.sass
+++ /dev/null
@@ -1,146 +0,0 @@
-@use 'sass:color'
-
-.timeline
-  z-index: 0
-  position: relative
-
-  &-item
-    display: flex
-
-$timeline-line-width: 7px
-$timeline-line-node-radius: 18px
-$timeline-line-color: $primary
-$timeline-line-color-current: #36c2e6
-
-@keyframes timeline-line-node-noncurrent
-  from
-    background: $timeline-line-color
-
-  to
-    background: color.adjust($timeline-line-color, $lightness: +10%)
-    box-shadow: 0 0 20px 3px color.adjust($timeline-line-color, $lightness: +10%, $alpha: -0.1)
-
-@keyframes timeline-line-node-current
-  from
-    background: $timeline-line-color-current
-
-  to
-    background: color.adjust($timeline-line-color-current, $lightness: +10%)
-    box-shadow: 0 0 20px 3px color.adjust($timeline-line-color-current, $lightness: +10%, $alpha: -0.1)
-
-.timeline-line
-  &-area-container
-    display: flex
-    justify-content: flex-end
-    padding-right: 5px
-
-    flex: 0 0 auto
-    width: 60px
-
-  &-area
-    display: flex
-    flex-direction: column
-    align-items: center
-    width: 30px
-
-  &-segment
-    width: $timeline-line-width
-    background: $timeline-line-color
-
-    &.start
-      height: 14px
-      flex: 0 0 auto
-
-    &.end
-      flex: 1 1 auto
-
-    &.current-end
-      height: 20px
-      flex: 0 0 auto
-      background: linear-gradient($timeline-line-color-current, transparent)
-
-  &-node-container
-    flex: 0 0 auto
-    position: relative
-    width: $timeline-line-node-radius
-    height: $timeline-line-node-radius
-
-  &-node
-    width: $timeline-line-node-radius + 2
-    height: $timeline-line-node-radius + 2
-    position: absolute
-    left: -1px
-    top: -1px
-    border-radius: 50%
-    box-sizing: border-box
-    z-index: 1
-    animation: 1s infinite alternate
-    animation-name: timeline-line-node-noncurrent
-
-.timeline-top
-  display: flex
-  justify-content: space-between
-
-  .timeline-line-segment
-    flex: 1 1 auto
-
-.current
-  .timeline-line
-    &-segment
-
-      &.start
-        background: linear-gradient($timeline-line-color, $timeline-line-color-current)
-
-      &.end
-        background: $timeline-line-color-current
-
-    &-node
-      animation-name: timeline-line-node-current
-
-.timeline-content-area
-  padding: 10px 0
-  flex-grow: 1
-
-.timeline-item-delete-button
-  position: absolute
-  right: 0
-  bottom: 0
-
-.timeline-content
-  white-space: pre-line
-
-.timeline-content-image
-  max-width: 60%
-  max-height: 200px
-
-.timeline-post-edit-image
-  max-width: 100px
-  max-height: 100px
-
-.mask
-  background: change-color($color: white, $alpha: 0.8)
-  z-index: 100
-
-.timeline-page-top-space
-  transition: height 0.5s
-
-.timeline-sync-state-badge
-  font-size: 0.8em
-  padding: 3px 8px
-  border-radius: 5px
-  background: #e8fbff
-
-.timeline-sync-state-badge-pin
-  display: inline-block
-  width: 0.4em
-  height: 0.4em
-  border-radius: 50%
-  vertical-align: middle
-  margin-right: 0.6em
-
-.timeline-template-card
-  position: fixed
-  z-index: 1
-  top: 56px
-  right: 0
-  margin: 0.5em
diff --git a/Timeline/ClientApp/src/app/views/timeline/TimelineDeleteDialog.tsx b/Timeline/ClientApp/src/app/views/timeline/TimelineDeleteDialog.tsx
deleted file mode 100644
index 894b8195..00000000
--- a/Timeline/ClientApp/src/app/views/timeline/TimelineDeleteDialog.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import React from "react";
-import { useHistory } from "react-router";
-import { Trans } from "react-i18next";
-
-import { timelineService } from "@/services/timeline";
-
-import OperationDialog from "../common/OperationDialog";
-
-interface TimelineDeleteDialog {
-  open: boolean;
-  name: string;
-  close: () => void;
-}
-
-const TimelineDeleteDialog: React.FC<TimelineDeleteDialog> = (props) => {
-  const history = useHistory();
-
-  const { name } = props;
-
-  return (
-    <OperationDialog
-      open={props.open}
-      close={props.close}
-      title="timeline.deleteDialog.title"
-      titleColor="danger"
-      inputPrompt={() => {
-        return (
-          <Trans i18nKey="timeline.deleteDialog.inputPrompt">
-            0<code className="mx-2">{{ name }}</code>2
-          </Trans>
-        );
-      }}
-      inputScheme={[
-        {
-          type: "text",
-          validator: (value) => {
-            if (value !== name) {
-              return "timeline.deleteDialog.notMatch";
-            } else {
-              return null;
-            }
-          },
-        },
-      ]}
-      onProcess={() => {
-        return timelineService.deleteTimeline(name).toPromise();
-      }}
-      onSuccessAndClose={() => {
-        history.replace("/");
-      }}
-    />
-  );
-};
-
-export default TimelineDeleteDialog;
diff --git a/Timeline/ClientApp/src/app/views/timeline/TimelineInfoCard.tsx b/Timeline/ClientApp/src/app/views/timeline/TimelineInfoCard.tsx
deleted file mode 100644
index 2d787709..00000000
--- a/Timeline/ClientApp/src/app/views/timeline/TimelineInfoCard.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { Dropdown, Button } from "react-bootstrap";
-
-import { useAvatar } from "@/services/user";
-import { timelineVisibilityTooltipTranslationMap } from "@/services/timeline";
-
-import BlobImage from "../common/BlobImage";
-import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
-import InfoCardTemplate from "../timeline-common/InfoCardTemplate";
-
-export type OrdinaryTimelineManageItem = "delete";
-
-export type TimelineInfoCardProps = TimelineCardComponentProps<
-  OrdinaryTimelineManageItem
->;
-
-const TimelineInfoCard: React.FC<TimelineInfoCardProps> = (props) => {
-  const {
-    timeline,
-    collapse,
-    onMember,
-    onManage,
-    syncStatus,
-    toggleCollapse,
-  } = props;
-
-  const { t } = useTranslation();
-
-  const avatar = useAvatar(timeline?.owner?.username);
-
-  return (
-    <InfoCardTemplate
-      className={props.className}
-      syncStatus={syncStatus}
-      collapse={collapse}
-      toggleCollapse={toggleCollapse}
-    >
-      <h3 className="text-primary mx-3 d-inline-block align-middle">
-        {timeline.name}
-      </h3>
-      <div className="d-inline-block align-middle">
-        <BlobImage blob={avatar} className="avatar small rounded-circle" />
-        {timeline.owner.nickname}
-        <small className="ml-3 text-secondary">
-          @{timeline.owner.username}
-        </small>
-      </div>
-      <p className="mb-0">{timeline.description}</p>
-      <small className="mt-1 d-block">
-        {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])}
-      </small>
-      <div className="text-right mt-2">
-        {onManage != null ? (
-          <Dropdown>
-            <Dropdown.Toggle variant="outline-primary">
-              {t("timeline.manage")}
-            </Dropdown.Toggle>
-            <Dropdown.Menu>
-              <Dropdown.Item onClick={() => onManage("property")}>
-                {t("timeline.manageItem.property")}
-              </Dropdown.Item>
-              <Dropdown.Item onClick={onMember}>
-                {t("timeline.manageItem.member")}
-              </Dropdown.Item>
-              <Dropdown.Divider />
-              <Dropdown.Item
-                className="text-danger"
-                onClick={() => onManage("delete")}
-              >
-                {t("timeline.manageItem.delete")}
-              </Dropdown.Item>
-            </Dropdown.Menu>
-          </Dropdown>
-        ) : (
-          <Button variant="outline-primary" onClick={onMember}>
-            {t("timeline.memberButton")}
-          </Button>
-        )}
-      </div>
-    </InfoCardTemplate>
-  );
-};
-
-export default TimelineInfoCard;
diff --git a/Timeline/ClientApp/src/app/views/timeline/TimelinePageUI.tsx b/Timeline/ClientApp/src/app/views/timeline/TimelinePageUI.tsx
deleted file mode 100644
index 67ea699e..00000000
--- a/Timeline/ClientApp/src/app/views/timeline/TimelinePageUI.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from "react";
-
-import TimelinePageTemplateUI, {
-  TimelinePageTemplateUIProps,
-} from "../timeline-common/TimelinePageTemplateUI";
-
-import TimelineInfoCard, {
-  OrdinaryTimelineManageItem,
-} from "./TimelineInfoCard";
-
-export type TimelinePageUIProps = Omit<
-  TimelinePageTemplateUIProps<OrdinaryTimelineManageItem>,
-  "CardComponent"
->;
-
-const TimelinePageUI: React.FC<TimelinePageUIProps> = (props) => {
-  return <TimelinePageTemplateUI {...props} CardComponent={TimelineInfoCard} />;
-};
-
-export default TimelinePageUI;
diff --git a/Timeline/ClientApp/src/app/views/timeline/index.tsx b/Timeline/ClientApp/src/app/views/timeline/index.tsx
deleted file mode 100644
index 225a1a59..00000000
--- a/Timeline/ClientApp/src/app/views/timeline/index.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import React from "react";
-import { useParams } from "react-router";
-
-import TimelinePageTemplate from "../timeline-common/TimelinePageTemplate";
-
-import TimelinePageUI from "./TimelinePageUI";
-import { OrdinaryTimelineManageItem } from "./TimelineInfoCard";
-import TimelineDeleteDialog from "./TimelineDeleteDialog";
-
-const TimelinePage: React.FC = (_) => {
-  const { name } = useParams<{ name: string }>();
-
-  const [dialog, setDialog] = React.useState<OrdinaryTimelineManageItem | null>(
-    null
-  );
-
-  let dialogElement: React.ReactElement | undefined;
-  if (dialog === "delete") {
-    dialogElement = (
-      <TimelineDeleteDialog open close={() => setDialog(null)} name={name} />
-    );
-  }
-
-  return (
-    <>
-      <TimelinePageTemplate
-        name={name}
-        UiComponent={TimelinePageUI}
-        onManage={(item) => setDialog(item)}
-        notFoundI18nKey="timeline.timelineNotExist"
-      />
-      {dialogElement}
-    </>
-  );
-};
-
-export default TimelinePage;
diff --git a/Timeline/ClientApp/src/app/views/timeline/timeline.sass b/Timeline/ClientApp/src/app/views/timeline/timeline.sass
deleted file mode 100644
index e69de29b..00000000
diff --git a/Timeline/ClientApp/src/app/views/user/ChangeAvatarDialog.tsx b/Timeline/ClientApp/src/app/views/user/ChangeAvatarDialog.tsx
deleted file mode 100644
index ffa2218b..00000000
--- a/Timeline/ClientApp/src/app/views/user/ChangeAvatarDialog.tsx
+++ /dev/null
@@ -1,302 +0,0 @@
-import React, { useState, useEffect } from "react";
-import { useTranslation } from "react-i18next";
-import { AxiosError } from "axios";
-import { Modal, Row, Button } from "react-bootstrap";
-
-import { UiLogicError } from "@/common";
-
-import ImageCropper, { Clip, applyClipToImage } from "../common/ImageCropper";
-
-export interface ChangeAvatarDialogProps {
-  open: boolean;
-  close: () => void;
-  process: (blob: Blob) => Promise<void>;
-}
-
-const ChangeAvatarDialog: React.FC<ChangeAvatarDialogProps> = (props) => {
-  const { t } = useTranslation();
-
-  const [file, setFile] = React.useState<File | null>(null);
-  const [fileUrl, setFileUrl] = React.useState<string | null>(null);
-  const [clip, setClip] = React.useState<Clip | null>(null);
-  const [
-    cropImgElement,
-    setCropImgElement,
-  ] = React.useState<HTMLImageElement | null>(null);
-  const [resultBlob, setResultBlob] = React.useState<Blob | null>(null);
-  const [resultUrl, setResultUrl] = React.useState<string | null>(null);
-
-  const [state, setState] = React.useState<
-    | "select"
-    | "crop"
-    | "processcrop"
-    | "preview"
-    | "uploading"
-    | "success"
-    | "error"
-  >("select");
-
-  const [message, setMessage] = useState<
-    string | { type: "custom"; text: string } | null
-  >("userPage.dialogChangeAvatar.prompt.select");
-
-  const trueMessage =
-    message == null
-      ? null
-      : typeof message === "string"
-      ? t(message)
-      : message.text;
-
-  const closeDialog = props.close;
-
-  const close = React.useCallback((): void => {
-    if (!(state === "uploading")) {
-      closeDialog();
-    }
-  }, [state, closeDialog]);
-
-  useEffect(() => {
-    if (file != null) {
-      const url = URL.createObjectURL(file);
-      setClip(null);
-      setFileUrl(url);
-      setState("crop");
-      return () => {
-        URL.revokeObjectURL(url);
-      };
-    } else {
-      setFileUrl(null);
-      setState("select");
-    }
-  }, [file]);
-
-  React.useEffect(() => {
-    if (resultBlob != null) {
-      const url = URL.createObjectURL(resultBlob);
-      setResultUrl(url);
-      setState("preview");
-      return () => {
-        URL.revokeObjectURL(url);
-      };
-    } else {
-      setResultUrl(null);
-    }
-  }, [resultBlob]);
-
-  const onSelectFile = React.useCallback(
-    (e: React.ChangeEvent<HTMLInputElement>): void => {
-      const files = e.target.files;
-      if (files == null || files.length === 0) {
-        setFile(null);
-      } else {
-        setFile(files[0]);
-      }
-    },
-    []
-  );
-
-  const onCropNext = React.useCallback(() => {
-    if (
-      cropImgElement == null ||
-      clip == null ||
-      clip.width === 0 ||
-      file == null
-    ) {
-      throw new UiLogicError();
-    }
-
-    setState("processcrop");
-    void applyClipToImage(cropImgElement, clip, file.type).then((b) => {
-      setResultBlob(b);
-    });
-  }, [cropImgElement, clip, file]);
-
-  const onCropPrevious = React.useCallback(() => {
-    setFile(null);
-    setState("select");
-  }, []);
-
-  const onPreviewPrevious = React.useCallback(() => {
-    setResultBlob(null);
-    setState("crop");
-  }, []);
-
-  const process = props.process;
-
-  const upload = React.useCallback(() => {
-    if (resultBlob == null) {
-      throw new UiLogicError();
-    }
-
-    setState("uploading");
-    process(resultBlob).then(
-      () => {
-        setState("success");
-      },
-      (e: unknown) => {
-        setState("error");
-        setMessage({ type: "custom", text: (e as AxiosError).message });
-      }
-    );
-  }, [resultBlob, process]);
-
-  const createPreviewRow = (): React.ReactElement => {
-    if (resultUrl == null) {
-      throw new UiLogicError();
-    }
-    return (
-      <Row className="justify-content-center">
-        <img
-          className="change-avatar-img"
-          src={resultUrl}
-          alt={t("userPage.dialogChangeAvatar.previewImgAlt")}
-        />
-      </Row>
-    );
-  };
-
-  return (
-    <Modal show={props.open} onHide={close}>
-      <Modal.Header>
-        <Modal.Title> {t("userPage.dialogChangeAvatar.title")}</Modal.Title>
-      </Modal.Header>
-      {(() => {
-        if (state === "select") {
-          return (
-            <>
-              <Modal.Body className="container">
-                <Row>{t("userPage.dialogChangeAvatar.prompt.select")}</Row>
-                <Row>
-                  <input type="file" accept="image/*" onChange={onSelectFile} />
-                </Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="secondary" onClick={close}>
-                  {t("operationDialog.cancel")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        } else if (state === "crop") {
-          if (fileUrl == null) {
-            throw new UiLogicError();
-          }
-          return (
-            <>
-              <Modal.Body className="container">
-                <Row className="justify-content-center">
-                  <ImageCropper
-                    clip={clip}
-                    onChange={setClip}
-                    imageUrl={fileUrl}
-                    imageElementCallback={setCropImgElement}
-                  />
-                </Row>
-                <Row>{t("userPage.dialogChangeAvatar.prompt.crop")}</Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="secondary" onClick={close}>
-                  {t("operationDialog.cancel")}
-                </Button>
-                <Button variant="secondary" onClick={onCropPrevious}>
-                  {t("operationDialog.previousStep")}
-                </Button>
-                <Button
-                  color="primary"
-                  onClick={onCropNext}
-                  disabled={
-                    cropImgElement == null || clip == null || clip.width === 0
-                  }
-                >
-                  {t("operationDialog.nextStep")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        } else if (state === "processcrop") {
-          return (
-            <>
-              <Modal.Body className="container">
-                <Row>
-                  {t("userPage.dialogChangeAvatar.prompt.processingCrop")}
-                </Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="secondary" onClick={close}>
-                  {t("operationDialog.cancel")}
-                </Button>
-                <Button variant="secondary" onClick={onPreviewPrevious}>
-                  {t("operationDialog.previousStep")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        } else if (state === "preview") {
-          return (
-            <>
-              <Modal.Body className="container">
-                {createPreviewRow()}
-                <Row>{t("userPage.dialogChangeAvatar.prompt.preview")}</Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="secondary" onClick={close}>
-                  {t("operationDialog.cancel")}
-                </Button>
-                <Button variant="secondary" onClick={onPreviewPrevious}>
-                  {t("operationDialog.previousStep")}
-                </Button>
-                <Button variant="primary" onClick={upload}>
-                  {t("userPage.dialogChangeAvatar.upload")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        } else if (state === "uploading") {
-          return (
-            <>
-              <Modal.Body className="container">
-                {createPreviewRow()}
-                <Row>{t("userPage.dialogChangeAvatar.prompt.uploading")}</Row>
-              </Modal.Body>
-              <Modal.Footer></Modal.Footer>
-            </>
-          );
-        } else if (state === "success") {
-          return (
-            <>
-              <Modal.Body className="container">
-                <Row className="p-4 text-success">
-                  {t("operationDialog.success")}
-                </Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="success" onClick={close}>
-                  {t("operationDialog.ok")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        } else {
-          return (
-            <>
-              <Modal.Body className="container">
-                {createPreviewRow()}
-                <Row className="text-danger">{trueMessage}</Row>
-              </Modal.Body>
-              <Modal.Footer>
-                <Button variant="secondary" onClick={close}>
-                  {t("operationDialog.cancel")}
-                </Button>
-                <Button variant="primary" onClick={upload}>
-                  {t("operationDialog.retry")}
-                </Button>
-              </Modal.Footer>
-            </>
-          );
-        }
-      })()}
-    </Modal>
-  );
-};
-
-export default ChangeAvatarDialog;
diff --git a/Timeline/ClientApp/src/app/views/user/ChangeNicknameDialog.tsx b/Timeline/ClientApp/src/app/views/user/ChangeNicknameDialog.tsx
deleted file mode 100644
index 251b18c5..00000000
--- a/Timeline/ClientApp/src/app/views/user/ChangeNicknameDialog.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from "react";
-
-import OperationDialog from "../common/OperationDialog";
-
-export interface ChangeNicknameDialogProps {
-  open: boolean;
-  close: () => void;
-  onProcess: (newNickname: string) => Promise<void>;
-}
-
-const ChangeNicknameDialog: React.FC<ChangeNicknameDialogProps> = (props) => {
-  return (
-    <OperationDialog
-      open={props.open}
-      title="userPage.dialogChangeNickname.title"
-      titleColor="default"
-      inputScheme={[
-        { type: "text", label: "userPage.dialogChangeNickname.inputLabel" },
-      ]}
-      onProcess={([newNickname]) => {
-        return props.onProcess(newNickname as string);
-      }}
-      close={props.close}
-    />
-  );
-};
-
-export default ChangeNicknameDialog;
diff --git a/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx b/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx
deleted file mode 100644
index 888fb18a..00000000
--- a/Timeline/ClientApp/src/app/views/user/UserInfoCard.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-import React from "react";
-import { useTranslation } from "react-i18next";
-import { Dropdown, Button } from "react-bootstrap";
-
-import { timelineVisibilityTooltipTranslationMap } from "@/services/timeline";
-import { useAvatar } from "@/services/user";
-
-import BlobImage from "../common/BlobImage";
-import { TimelineCardComponentProps } from "../timeline-common/TimelinePageTemplateUI";
-import InfoCardTemplate from "../timeline-common/InfoCardTemplate";
-
-export type PersonalTimelineManageItem = "avatar" | "nickname";
-
-export type UserInfoCardProps = TimelineCardComponentProps<
-  PersonalTimelineManageItem
->;
-
-const UserInfoCard: React.FC<UserInfoCardProps> = (props) => {
-  const {
-    timeline,
-    collapse,
-    onMember,
-    onManage,
-    syncStatus,
-    toggleCollapse,
-  } = props;
-  const { t } = useTranslation();
-
-  const avatar = useAvatar(timeline?.owner?.username);
-
-  return (
-    <InfoCardTemplate
-      className={props.className}
-      syncStatus={syncStatus}
-      collapse={collapse}
-      toggleCollapse={toggleCollapse}
-    >
-      <div>
-        <BlobImage blob={avatar} className="avatar" />
-        {timeline.owner.nickname}
-        <small className="ml-3 text-secondary">
-          @{timeline.owner.username}
-        </small>
-      </div>
-      <p className="mb-0">{timeline.description}</p>
-      <small className="mt-1 d-block">
-        {t(timelineVisibilityTooltipTranslationMap[timeline.visibility])}
-      </small>
-      <div className="text-right mt-2">
-        {onManage != null ? (
-          <Dropdown>
-            <Dropdown.Toggle variant="outline-primary">
-              {t("timeline.manage")}
-            </Dropdown.Toggle>
-            <Dropdown.Menu>
-              <Dropdown.Item onClick={() => onManage("nickname")}>
-                {t("timeline.manageItem.nickname")}
-              </Dropdown.Item>
-              <Dropdown.Item onClick={() => onManage("avatar")}>
-                {t("timeline.manageItem.avatar")}
-              </Dropdown.Item>
-              <Dropdown.Item onClick={() => onManage("property")}>
-                {t("timeline.manageItem.property")}
-              </Dropdown.Item>
-              <Dropdown.Item onClick={onMember}>
-                {t("timeline.manageItem.member")}
-              </Dropdown.Item>
-            </Dropdown.Menu>
-          </Dropdown>
-        ) : (
-          <Button variant="outline-primary" onClick={onMember}>
-            {t("timeline.memberButton")}
-          </Button>
-        )}
-      </div>
-    </InfoCardTemplate>
-  );
-};
-
-export default UserInfoCard;
diff --git a/Timeline/ClientApp/src/app/views/user/UserPageUI.tsx b/Timeline/ClientApp/src/app/views/user/UserPageUI.tsx
deleted file mode 100644
index d405399c..00000000
--- a/Timeline/ClientApp/src/app/views/user/UserPageUI.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import React from "react";
-
-import TimelinePageTemplateUI, {
-  TimelinePageTemplateUIProps,
-} from "../timeline-common/TimelinePageTemplateUI";
-
-import UserInfoCard, { PersonalTimelineManageItem } from "./UserInfoCard";
-
-export type UserPageUIProps = Omit<
-  TimelinePageTemplateUIProps<PersonalTimelineManageItem>,
-  "CardComponent"
->;
-
-const UserPageUI: React.FC<UserPageUIProps> = (props) => {
-  return <TimelinePageTemplateUI {...props} CardComponent={UserInfoCard} />;
-};
-
-export default UserPageUI;
diff --git a/Timeline/ClientApp/src/app/views/user/index.tsx b/Timeline/ClientApp/src/app/views/user/index.tsx
deleted file mode 100644
index 7c0b1563..00000000
--- a/Timeline/ClientApp/src/app/views/user/index.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import React, { useState } from "react";
-import { useParams } from "react-router";
-
-import { UiLogicError } from "@/common";
-import { useUser, userInfoService } from "@/services/user";
-
-import TimelinePageTemplate from "../timeline-common/TimelinePageTemplate";
-
-import UserPageUI from "./UserPageUI";
-import { PersonalTimelineManageItem } from "./UserInfoCard";
-import ChangeNicknameDialog from "./ChangeNicknameDialog";
-import ChangeAvatarDialog from "./ChangeAvatarDialog";
-
-const UserPage: React.FC = (_) => {
-  const { username } = useParams<{ username: string }>();
-
-  const user = useUser();
-
-  const [dialog, setDialog] = useState<null | PersonalTimelineManageItem>(null);
-
-  let dialogElement: React.ReactElement | undefined;
-
-  const closeDialogHandler = (): void => {
-    setDialog(null);
-  };
-
-  if (dialog === "nickname") {
-    if (user == null) {
-      throw new UiLogicError("Change nickname without login.");
-    }
-
-    dialogElement = (
-      <ChangeNicknameDialog
-        open
-        close={closeDialogHandler}
-        onProcess={(newNickname) =>
-          userInfoService.setNickname(username, newNickname)
-        }
-      />
-    );
-  } else if (dialog === "avatar") {
-    if (user == null) {
-      throw new UiLogicError("Change avatar without login.");
-    }
-
-    dialogElement = (
-      <ChangeAvatarDialog
-        open
-        close={closeDialogHandler}
-        process={(file) => userInfoService.setAvatar(username, file)}
-      />
-    );
-  }
-
-  const onManage = React.useCallback((item: PersonalTimelineManageItem) => {
-    setDialog(item);
-  }, []);
-
-  return (
-    <>
-      <TimelinePageTemplate
-        name={`@${username}`}
-        UiComponent={UserPageUI}
-        onManage={onManage}
-        notFoundI18nKey="timeline.userNotExist"
-      />
-      {dialogElement}
-    </>
-  );
-};
-
-export default UserPage;
diff --git a/Timeline/ClientApp/src/app/views/user/user.sass b/Timeline/ClientApp/src/app/views/user/user.sass
deleted file mode 100644
index 5b7fcae7..00000000
--- a/Timeline/ClientApp/src/app/views/user/user.sass
+++ /dev/null
@@ -1,7 +0,0 @@
-.change-avatar-cropper-row
-  max-height: 400px
-
-.change-avatar-img
-  min-width: 50%
-  max-width: 100%
-  max-height: 400px
diff --git a/Timeline/ClientApp/src/sw/sw.ts b/Timeline/ClientApp/src/sw/sw.ts
deleted file mode 100644
index d6202f36..00000000
--- a/Timeline/ClientApp/src/sw/sw.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { precacheAndRoute, matchPrecache } from "workbox-precaching";
-import { setDefaultHandler } from "workbox-routing";
-import { NetworkOnly } from "workbox-strategies";
-
-declare let self: ServiceWorkerGlobalScope;
-
-self.addEventListener("message", (event) => {
-  if (event.data && (event.data as { type: string }).type === "SKIP_WAITING") {
-    void self.skipWaiting();
-  }
-});
-
-precacheAndRoute(self.__WB_MANIFEST);
-
-const networkOnly = new NetworkOnly();
-
-setDefaultHandler((options) => {
-  const { request, url } = options;
-  if (url && url.pathname.startsWith("/api/")) {
-    return networkOnly.handle(options);
-  }
-
-  if (request instanceof Request && request.destination === "document")
-    return matchPrecache("/index.html").then((r) =>
-      r == null ? Response.error() : r
-    );
-  else return networkOnly.handle(options);
-});
diff --git a/Timeline/ClientApp/src/sw/tsconfig.json b/Timeline/ClientApp/src/sw/tsconfig.json
deleted file mode 100644
index aac99e59..00000000
--- a/Timeline/ClientApp/src/sw/tsconfig.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "extends": "../tsconfig.json",
-  "compilerOptions": {
-    "lib": [
-      "esnext",
-      "webworker"
-    ]
-  },
-  "include": [
-    "."
-  ]
-}
diff --git a/Timeline/ClientApp/src/tsconfig.json b/Timeline/ClientApp/src/tsconfig.json
deleted file mode 100644
index 6937be63..00000000
--- a/Timeline/ClientApp/src/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "compilerOptions": {
-    "target": "esnext",
-    "allowJs": true,
-    "skipLibCheck": true,
-    "esModuleInterop": true,
-    "allowSyntheticDefaultImports": true,
-    "strict": true,
-    "forceConsistentCasingInFileNames": true,
-    "module": "esnext",
-    "moduleResolution": "node",
-    "resolveJsonModule": true,
-    "isolatedModules": true,
-    "jsx": "preserve",
-    "sourceMap": true,
-    "baseUrl": "./",
-    "paths": {
-      "@/*": [
-        "app/*"
-      ]
-    }
-  }
-}
diff --git a/Timeline/ClientApp/webpack.common.js b/Timeline/ClientApp/webpack.common.js
deleted file mode 100644
index 3779003e..00000000
--- a/Timeline/ClientApp/webpack.common.js
+++ /dev/null
@@ -1,86 +0,0 @@
-const path = require("path");
-const HtmlWebpackPlugin = require("html-webpack-plugin");
-const postcssPresetEnv = require("postcss-preset-env");
-const Config = require("webpack-chain");
-
-const config = new Config();
-
-config.entry("index").add(path.resolve(__dirname, "src/app/index.tsx"));
-
-config.module
-  .rule("ts")
-  .test(/\.ts(x?)$/)
-  .exclude.add(/node_modules/)
-  .end()
-  .use("babel")
-  .loader("babel-loader")
-  .end()
-  .use("ts")
-  .loader("ts-loader")
-  .end();
-
-config.module
-  .rule("js")
-  .test(/\.js(x?)$/)
-  .exclude.add(/node_modules/)
-  .end()
-  .use("babel")
-  .loader("babel-loader")
-  .end();
-
-config.module
-  .rule("css")
-  .test(/\.css$/)
-  .use("css")
-  .loader("css-loader")
-  .end()
-  .use("postcss")
-  .loader("postcss-loader")
-  .end();
-
-config.module
-  .rule("sass")
-  .test(/\.(scss|sass)$/)
-  .use("css")
-  .loader("css-loader")
-  .end()
-  .use("postcss")
-  .loader("postcss-loader")
-  .end()
-  .use("sass")
-  .loader("sass-loader")
-  .end();
-
-config.module
-  .rule("file")
-  .test(/\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot)$/i)
-  .use("url")
-  .loader("url-loader")
-  .options({
-    limit: 8192,
-  });
-
-config.resolve.extensions
-  .add("*")
-  .add(".js")
-  .add(".jsx")
-  .add(".ts")
-  .add(".tsx")
-  .end();
-
-config.resolve.alias.set("@", path.resolve(__dirname, "src/app"));
-
-config.output
-  .path(path.resolve(__dirname, "dist/"))
-  .filename("[name].[contenthash].js")
-  .chunkFilename("[name].[contenthash].js")
-  .publicPath("/");
-
-config.plugin("html").use(HtmlWebpackPlugin, [
-  {
-    template: "src/app/index.ejs",
-    title: "Timeline",
-  },
-]);
-
-module.exports = config;
diff --git a/Timeline/ClientApp/webpack.config.dev.js b/Timeline/ClientApp/webpack.config.dev.js
deleted file mode 100644
index c88e1aaf..00000000
--- a/Timeline/ClientApp/webpack.config.dev.js
+++ /dev/null
@@ -1,52 +0,0 @@
-const path = require("path");
-const webpack = require("webpack");
-
-const config = require("./webpack.common");
-
-config.mode("development");
-
-config.entry("index").add("react-hot-loader/patch");
-
-config.module
-  .rule("ts")
-  .use("babel")
-  .options({
-    plugins: ["react-hot-loader/babel"],
-  });
-
-config.module
-  .rule("js")
-  .use("babel")
-  .options({
-    plugins: ["react-hot-loader/babel"],
-  });
-
-config.module
-  .rule("css")
-  .use("style")
-  .before("css")
-  .loader("style-loader")
-  .end();
-
-config.module
-  .rule("sass")
-  .use("style")
-  .before("css")
-  .loader("style-loader")
-  .end();
-
-config.devtool("eval-cheap-module-source-map");
-
-config.resolve.alias.set("react-dom", "@hot-loader/react-dom");
-
-config.devServer
-  .contentBase(path.resolve(__dirname, "public/"))
-  .host("0.0.0.0")
-  .port(3000)
-  .historyApiFallback(true)
-  .hotOnly(true)
-  .allowedHosts.add(".myide.io");
-
-config.plugin("hot").use(webpack.HotModuleReplacementPlugin);
-
-module.exports = config.toConfig();
diff --git a/Timeline/ClientApp/webpack.config.prod.js b/Timeline/ClientApp/webpack.config.prod.js
deleted file mode 100644
index 188cb940..00000000
--- a/Timeline/ClientApp/webpack.config.prod.js
+++ /dev/null
@@ -1,53 +0,0 @@
-const path = require("path");
-const { CleanWebpackPlugin } = require("clean-webpack-plugin");
-const CopyPlugin = require("copy-webpack-plugin");
-const WorkboxPlugin = require("workbox-webpack-plugin");
-const MiniCssExtractPlugin = require("mini-css-extract-plugin");
-
-const config = require("./webpack.common");
-
-config.mode("production");
-
-config
-  .entry("index")
-  .add(path.resolve(__dirname, "src/app/service-worker.tsx"));
-
-config.module
-  .rule("css")
-  .use("mini-css-extract")
-  .before("css")
-  .loader(MiniCssExtractPlugin.loader)
-  .end();
-
-config.module
-  .rule("sass")
-  .use("mini-css-extract")
-  .before("css")
-  .loader(MiniCssExtractPlugin.loader)
-  .end();
-
-config.devtool("source-map");
-
-config.plugin("mini-css-extract").use(MiniCssExtractPlugin);
-
-config.plugin("clean").use(CleanWebpackPlugin);
-
-config.plugin("copy").use(CopyPlugin, [
-  {
-    patterns: [
-      {
-        from: path.resolve(__dirname, "public/"),
-        to: path.resolve(__dirname, "dist/"),
-      },
-    ],
-  },
-]);
-
-config.plugin("workbox").use(WorkboxPlugin.InjectManifest, [
-  {
-    swSrc: path.resolve(__dirname, "src/sw/sw.ts"),
-    maximumFileSizeToCacheInBytes: 15000000,
-  },
-]);
-
-module.exports = config.toConfig();
diff --git a/Timeline/ClientApp/yarn.lock b/Timeline/ClientApp/yarn.lock
deleted file mode 100644
index 5d5a9e4d..00000000
--- a/Timeline/ClientApp/yarn.lock
+++ /dev/null
@@ -1,13002 +0,0 @@
-# This file is generated by running "yarn install" inside your project.
-# Manual changes might be lost - proceed with caution!
-
-__metadata:
-  version: 4
-  cacheKey: 5
-
-"@arcanis/slice-ansi@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "@arcanis/slice-ansi@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40arcanis%2Fslice-ansi%2Fdownload%2F%40arcanis%2Fslice-ansi-1.0.2.tgz"
-  dependencies:
-    grapheme-splitter: ^1.0.4
-  checksum: 1b4539363054608b37f65d49d5c920a557d55f6231a73440213e3fd809fce8ed8c72b8b7939c4dbbbfd14647ce6e8d76c0df6cec19a744400c847ef6e76a1988
-  languageName: node
-  linkType: hard
-
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.5.5":
-  version: 7.10.4
-  resolution: "@babel/code-frame@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz"
-  dependencies:
-    "@babel/highlight": ^7.10.4
-  checksum: 05245d3b22a3ae849439195c4ee9ce9903dfd8c3fcb5124e77923c45e9f1ceac971cce4c61505974f411a9db432949531abe10ddee92937a0a9c306dc380a5b2
-  languageName: node
-  linkType: hard
-
-"@babel/compat-data@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/compat-data@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz"
-  dependencies:
-    browserslist: ^4.12.0
-    invariant: ^2.2.4
-    semver: ^5.5.0
-  checksum: 788af12585d847fffc2e8d14502ca3a3592c931b1cd8d45493a512c2824f325a358fe52397fba9d4b1d0f1ae4e624932ba2162640b3577637d06d9d903c96fe4
-  languageName: node
-  linkType: hard
-
-"@babel/compat-data@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/compat-data@npm:7.12.1"
-  checksum: 07bc6cfe7cde58c3b6f78d95c8f727fb306eba16c3012a1c80f09bfe93156349f8331908d3651532f936dda1333d6f96285a6df9f7c43d600060b02ef7cb306a
-  languageName: node
-  linkType: hard
-
-"@babel/core@npm:^7.12.3":
-  version: 7.12.3
-  resolution: "@babel/core@npm:7.12.3"
-  dependencies:
-    "@babel/code-frame": ^7.10.4
-    "@babel/generator": ^7.12.1
-    "@babel/helper-module-transforms": ^7.12.1
-    "@babel/helpers": ^7.12.1
-    "@babel/parser": ^7.12.3
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.12.1
-    "@babel/types": ^7.12.1
-    convert-source-map: ^1.7.0
-    debug: ^4.1.0
-    gensync: ^1.0.0-beta.1
-    json5: ^2.1.2
-    lodash: ^4.17.19
-    resolve: ^1.3.2
-    semver: ^5.4.1
-    source-map: ^0.5.0
-  checksum: 110eb092da34c8061db81647d3110e72438a805418195238ac0bb5ab5aec0fa9be9a1ce6350d442865254e088c7ee6edafafc2fbb72f105eb70414ac211e0995
-  languageName: node
-  linkType: hard
-
-"@babel/core@npm:^7.8.4":
-  version: 7.10.5
-  resolution: "@babel/core@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz"
-  dependencies:
-    "@babel/code-frame": ^7.10.4
-    "@babel/generator": ^7.10.5
-    "@babel/helper-module-transforms": ^7.10.5
-    "@babel/helpers": ^7.10.4
-    "@babel/parser": ^7.10.5
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.10.5
-    "@babel/types": ^7.10.5
-    convert-source-map: ^1.7.0
-    debug: ^4.1.0
-    gensync: ^1.0.0-beta.1
-    json5: ^2.1.2
-    lodash: ^4.17.19
-    resolve: ^1.3.2
-    semver: ^5.4.1
-    source-map: ^0.5.0
-  checksum: 1b7ddcb578a937245e63889b4648b44c28e04257ef52bf506f61c751ec2def9c9c586883b669be2e66a2b829037a1d78e19ee23a371966c94e0728f9598799e1
-  languageName: node
-  linkType: hard
-
-"@babel/generator@npm:^7.10.5":
-  version: 7.10.5
-  resolution: "@babel/generator@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz"
-  dependencies:
-    "@babel/types": ^7.10.5
-    jsesc: ^2.5.1
-    source-map: ^0.5.0
-  checksum: 6e3fd8065268e1ef128bfd6ccb3053d98816f09f130f26ed12101ce6de39801b3b422605bcf0f8f4011ea39ff2ccf14e0ff1d2b9ecf70941319660e15cb0e82b
-  languageName: node
-  linkType: hard
-
-"@babel/generator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/generator@npm:7.12.1"
-  dependencies:
-    "@babel/types": ^7.12.1
-    jsesc: ^2.5.1
-    source-map: ^0.5.0
-  checksum: e0f5f9af4f5e1ed3afd02a57b1f15a85c7adb7e4deafbda2534bb49d889d6443b1fb5494e4543e31525788db20e1426e4a89c8cbd0c55289a8fdc6da0a9700cf
-  languageName: node
-  linkType: hard
-
-"@babel/helper-annotate-as-pure@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-annotate-as-pure@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: 535cdf631e1e6c0bfd6820d2509c69373e2f48148505ddc2325ce8fe85302dc5681d6f6fd41261cacc458a0431edeff7c6115056144b80b02c10e111d2941c36
-  languageName: node
-  linkType: hard
-
-"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-explode-assignable-expression": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 369530a1971c92d09bd3fae3387bf752abffa9a1f285ab55f45cdf0ac9a2e8ed1a28cd4dc31b0d5672ee0aac91435e3fdcf1196f67870ac0f9a768e3d9295d60
-  languageName: node
-  linkType: hard
-
-"@babel/helper-builder-react-jsx-experimental@npm:^7.12.1":
-  version: 7.12.4
-  resolution: "@babel/helper-builder-react-jsx-experimental@npm:7.12.4"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-module-imports": ^7.12.1
-    "@babel/types": ^7.12.1
-  checksum: 246b77aedf5ee458338319450dbd092549f00fe4c3915521fdb8e80af2061ee86b875410482bed07bb906fc8e623cafd46e0751c5317b4c27f9041bcf7d09501
-  languageName: node
-  linkType: hard
-
-"@babel/helper-builder-react-jsx@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-builder-react-jsx@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-react-jsx%2Fdownload%2F%40babel%2Fhelper-builder-react-jsx-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: f14f786b5e5d4728ecfae8679d26da6460056dee4c8c2ae7432cd0e64332a289cf44e43b0e2b349f8ce1d281595fafb6824988d9674fa29389b1e5ab2055b3be
-  languageName: node
-  linkType: hard
-
-"@babel/helper-compilation-targets@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-compilation-targets@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz"
-  dependencies:
-    "@babel/compat-data": ^7.10.4
-    browserslist: ^4.12.0
-    invariant: ^2.2.4
-    levenary: ^1.1.1
-    semver: ^5.5.0
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: 7603388e451012154ac6b8f6ec3792f2f35abbee21efa338fa87a851d88b72bee4a8aa5b016e53a5dc011dc616d803eda2cb030ec55a4a6673f1f587f95275e0
-  languageName: node
-  linkType: hard
-
-"@babel/helper-compilation-targets@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-compilation-targets@npm:7.12.1"
-  dependencies:
-    "@babel/compat-data": ^7.12.1
-    "@babel/helper-validator-option": ^7.12.1
-    browserslist: ^4.12.0
-    semver: ^5.5.0
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: a1b750f3279dda3b311b600aca55e7b0af1c946f20fa0b165308f8c311b757f5c806d35aab4a9996223fe81ad10f7348cee3f514ab823f1487bd25f6e7699e63
-  languageName: node
-  linkType: hard
-
-"@babel/helper-create-class-features-plugin@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/helper-create-class-features-plugin@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-member-expression-to-functions": ^7.10.5
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-replace-supers": ^7.10.4
-    "@babel/helper-split-export-declaration": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: ba8fb0f7b7788d0fde2341314a86d0d5705ed17537eba1e319bb0e532125c5b97fc142633ae1605615be9f45cb6cbf19879c13e626610ecd3be1821d651a1423
-  languageName: node
-  linkType: hard
-
-"@babel/helper-create-class-features-plugin@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-create-class-features-plugin@npm:7.12.1"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-member-expression-to-functions": ^7.12.1
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/helper-replace-supers": ^7.12.1
-    "@babel/helper-split-export-declaration": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: d686eae70dc985b5e0dae85b7ec690930939b564be7f2c09ca2838a52f562f5753fa5d8a12f7305303597f9f8658d51cb36ec71e6e234b1d1385a36c632ea61f
-  languageName: node
-  linkType: hard
-
-"@babel/helper-create-regexp-features-plugin@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-create-regexp-features-plugin@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-regex": ^7.10.4
-    regexpu-core: ^4.7.0
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: 6d1728b614b35daf5f4cef73769286685f86aaebf6caec1d50b8f2edbcb7a74399cf4381c436405476f97ef3411d025c54f2a2674f1c01580a970e634d492963
-  languageName: node
-  linkType: hard
-
-"@babel/helper-create-regexp-features-plugin@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-create-regexp-features-plugin@npm:7.12.1"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-regex": ^7.10.4
-    regexpu-core: ^4.7.1
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: bf4b72eaedfb09c15177d83ce31988b6eba0afffae1de51b0932c767affbe0091bc5306e22e2b5af1f12cd85a46fa13b324a7ec851e496b9b7cf7c55f5676780
-  languageName: node
-  linkType: hard
-
-"@babel/helper-define-map@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/helper-define-map@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/types": ^7.10.5
-    lodash: ^4.17.19
-  checksum: 964cab640de84daa572d75e07216cf9d1aeeca3552acec0516d3aa10533836741f7391ab957e8b22624bd6b25473d8bd53f4b8d4af8713871601af02d31072ae
-  languageName: node
-  linkType: hard
-
-"@babel/helper-explode-assignable-expression@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-explode-assignable-expression@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz"
-  dependencies:
-    "@babel/traverse": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 3348549a83dbb81ae44e97504134460069c648cc9add914856aec281fdc712a68b012f110778d84f098a94588178ba5261221ea6f46abd6892e5ec4281c41be0
-  languageName: node
-  linkType: hard
-
-"@babel/helper-function-name@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-function-name@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-get-function-arity": ^7.10.4
-    "@babel/template": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 41ab8f48bbb7d4a65a90a4cf50c79c386d3c30e0dac10bc3ce311fda2ca971d82289a07570a785ebac92686854237ea1e511e74f2577a38c7ec2d67f2a250a9e
-  languageName: node
-  linkType: hard
-
-"@babel/helper-get-function-arity@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-get-function-arity@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: 4f0ddd43405e5a43c0638ddeb9fd6fc562ce8f338983ae603d4824ce4b586c2ca2fbc0ca93864357ba3a28f699029653749c6b49ec8576cb512ab0f404500999
-  languageName: node
-  linkType: hard
-
-"@babel/helper-hoist-variables@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-hoist-variables@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: 0bc1976366e1535920ac46ecf89700a738bb38f1413ca42f1bc11bef708f297f011078077355dfe81b3e5af8ef696c5fb752408d6b65f85c71839c28ce95afaa
-  languageName: node
-  linkType: hard
-
-"@babel/helper-member-expression-to-functions@npm:^7.10.4, @babel/helper-member-expression-to-functions@npm:^7.10.5":
-  version: 7.10.5
-  resolution: "@babel/helper-member-expression-to-functions@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz"
-  dependencies:
-    "@babel/types": ^7.10.5
-  checksum: f239d2dfdbbace14aaef6b1acf38e94e126682a739462b0b5ee1aafa86d58c3aeb082cf8913fd03ad184e0b4b222a09f7c6010fc70d7571209a5bcda47f15626
-  languageName: node
-  linkType: hard
-
-"@babel/helper-member-expression-to-functions@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-member-expression-to-functions@npm:7.12.1"
-  dependencies:
-    "@babel/types": ^7.12.1
-  checksum: ae0cd0594bcc0343663747b28aa3433a312164eab259f919d184d39aed60dc2602b4cf0c7e287a22583c244cfc467b9097a289c1c4fd383f435ad10642c6a3d6
-  languageName: node
-  linkType: hard
-
-"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-module-imports@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: 84d03b58e7f04daf7c5a80765c527c24021ddbf4051567381528e2b351a550451dd87f67bf7a66f251dffcc979cd2ddaa01e1defd8b8db1095d38005e18eb806
-  languageName: node
-  linkType: hard
-
-"@babel/helper-module-imports@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-module-imports@npm:7.12.1"
-  dependencies:
-    "@babel/types": ^7.12.1
-  checksum: 261205f2e2c8da282af7c402089af49add550116b330cc2e9191af349da5f7930893bf147fcb1324ce71f515a287899d67ca3e644a4c94b5a1487d9dbfcda3b0
-  languageName: node
-  linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.10.4, @babel/helper-module-transforms@npm:^7.10.5":
-  version: 7.10.5
-  resolution: "@babel/helper-module-transforms@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-module-imports": ^7.10.4
-    "@babel/helper-replace-supers": ^7.10.4
-    "@babel/helper-simple-access": ^7.10.4
-    "@babel/helper-split-export-declaration": ^7.10.4
-    "@babel/template": ^7.10.4
-    "@babel/types": ^7.10.5
-    lodash: ^4.17.19
-  checksum: 02a2b607058da060cc704583025a9c6585503ed40ba346f0630c017c0042c1cc5ab6887fa5f549f4a0b3d728ac89b9388dc224ba1e4601ae75b2286e16f8336f
-  languageName: node
-  linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-module-transforms@npm:7.12.1"
-  dependencies:
-    "@babel/helper-module-imports": ^7.12.1
-    "@babel/helper-replace-supers": ^7.12.1
-    "@babel/helper-simple-access": ^7.12.1
-    "@babel/helper-split-export-declaration": ^7.11.0
-    "@babel/helper-validator-identifier": ^7.10.4
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.12.1
-    "@babel/types": ^7.12.1
-    lodash: ^4.17.19
-  checksum: 902ed2b8e9ff45d33d20379f84b2269741a3a6108eb6c5e9e139186fd72e5bb405fac84bdcb7fae135c0cf4a5464d30bfb78ad00fc163b329aa9caa3630e7dd2
-  languageName: node
-  linkType: hard
-
-"@babel/helper-optimise-call-expression@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-optimise-call-expression@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: 70dd5a6daf6dc9f176dbfcac4afc1390d872821abe4ffaedf3ff0b1dbda8fb4b49efdeb612ae86c08f0773340583ce6e393a7a059727991aaa51b18de1fc0960
-  languageName: node
-  linkType: hard
-
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
-  version: 7.10.4
-  resolution: "@babel/helper-plugin-utils@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz"
-  checksum: 9f617e619a3557cb5fae8885e91cd94ba4ee16fb345e0360de0d7dc037efb10cc604939ecc1038ccdb71aa37e7e78f20133d7bbbebecb8f6dcdb557650366d92
-  languageName: node
-  linkType: hard
-
-"@babel/helper-regex@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/helper-regex@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz"
-  dependencies:
-    lodash: ^4.17.19
-  checksum: 956b9f22da2e996670b5f0b61450d3ed4efa462a5ebec5af7967da7a7759670a04ec4887152d43ea6b695c320370cac022987a9647d4caa86f0662605d7fc82f
-  languageName: node
-  linkType: hard
-
-"@babel/helper-remap-async-to-generator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-remap-async-to-generator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-wrap-function": ^7.10.4
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 258395dbab35546aecaf8f8b0b5a2c223cddbd11a41cd85e7571911adf1742ff7146dbf6cf53f14ba3d8f3ae2c54ec9bc396fcf31c66aa56d1dd692b10e99299
-  languageName: node
-  linkType: hard
-
-"@babel/helper-remap-async-to-generator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-remap-async-to-generator@npm:7.12.1"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-wrap-function": ^7.10.4
-    "@babel/types": ^7.12.1
-  checksum: 8bc24e91f106edd627f60ce416a20c4313caa6224f778a81b8ab56612c0ba2e84be403996f449bc8d0132ab47bf8a21a9bc66faea95643e0a50843807cd4591e
-  languageName: node
-  linkType: hard
-
-"@babel/helper-replace-supers@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-replace-supers@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-member-expression-to-functions": ^7.10.4
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/traverse": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 2d7e0627cda8d6f360e52d9c962746fb5818cb6599072d4473fc1e7a2eacfb1a2605a1727d95ae9af66e06e1b84c0a67d40ae16446f838d367de11ae198ee0f8
-  languageName: node
-  linkType: hard
-
-"@babel/helper-replace-supers@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-replace-supers@npm:7.12.1"
-  dependencies:
-    "@babel/helper-member-expression-to-functions": ^7.12.1
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/traverse": ^7.12.1
-    "@babel/types": ^7.12.1
-  checksum: e745f78b48647975392517c64df9311308f1badec3ca911d21126ba2f3f4aa36b4c31ad42f4cba4813d5b44f6c0417b2649d2d9991332f881d59ff25ab32c2a2
-  languageName: node
-  linkType: hard
-
-"@babel/helper-simple-access@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-simple-access@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz"
-  dependencies:
-    "@babel/template": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: a7ce52a2295b9290b70cfbdd5667ec42de1a170de2f9d6e8321b3864e631bca729fbb537fbcc85396b7ce921abc2c844a452e70996fcd582dd31433c33ef0f9d
-  languageName: node
-  linkType: hard
-
-"@babel/helper-simple-access@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-simple-access@npm:7.12.1"
-  dependencies:
-    "@babel/types": ^7.12.1
-  checksum: ca44e3f694957d4026e2837905cd4f4ec60d73f49f8d65d8592afa6d797cb000f261ce7db1ed3e14b51200467f4c04917cb84ebe395f3d153462ccce1b980322
-  languageName: node
-  linkType: hard
-
-"@babel/helper-skip-transparent-expression-wrappers@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.12.1"
-  dependencies:
-    "@babel/types": ^7.12.1
-  checksum: 2e690ed5659534f46387bde713d7c511865a309c5cd6f1d64ff94abdb64fe2e4d5e6cb6ed6c9856cbb16e9de60ecac86534b9d1eb93e877830442610889f6144
-  languageName: node
-  linkType: hard
-
-"@babel/helper-split-export-declaration@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-split-export-declaration@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz"
-  dependencies:
-    "@babel/types": ^7.10.4
-  checksum: d8536faa40a026f57c48d18ac4e7e3979941af2164beb281aff96af5668984827b6a18f357b903ada6474357a24045b4d0c4409a77139b0207ea62bcdfc108e3
-  languageName: node
-  linkType: hard
-
-"@babel/helper-split-export-declaration@npm:^7.11.0":
-  version: 7.11.0
-  resolution: "@babel/helper-split-export-declaration@npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz"
-  dependencies:
-    "@babel/types": ^7.11.0
-  checksum: ddfc44d0cf75ee3a73e71b18e8b9b67d256f6e8496e550ab0b1342ef8cd62dd232c13ac77569e319869b1515a9733863e69a143e76f52e9fc1b51ee374b8869b
-  languageName: node
-  linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-validator-identifier@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz"
-  checksum: 25098ef842e3ffecdd9a7216f6173da7ad7be1b0b3e454a9f6965055154b9ad7a4acd2f218ba3d2efc0821bdab97837b3cb815844af7d72f66f89d446a54efc6
-  languageName: node
-  linkType: hard
-
-"@babel/helper-validator-option@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helper-validator-option@npm:7.12.1"
-  checksum: 5d9a8f67500baf464151d15ca281388e7272ed22e3b909e13ccff89b2b4cc83a3e29972f9feaacb8a372e749028b252187982a59c6e6944ce30e0d15d905ab5c
-  languageName: node
-  linkType: hard
-
-"@babel/helper-wrap-function@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helper-wrap-function@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 4d5fe2db333b8f64f85057562ab49d825ad64ec53b94b92d2229645f7373e6e67a51e9eb108ac5d91933687a576ab4cd1f663a66caf140a6911d2a07e7efba24
-  languageName: node
-  linkType: hard
-
-"@babel/helpers@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/helpers@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz"
-  dependencies:
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 96859c490ac07fe30fe2b6ad8e474325d2504ffcc8b720b0f22a01e8334d79b4fb3051720c2146390579f7781cbc5923cb32d4e23e51b811c83aaa644fe17f2a
-  languageName: node
-  linkType: hard
-
-"@babel/helpers@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/helpers@npm:7.12.1"
-  dependencies:
-    "@babel/template": ^7.10.4
-    "@babel/traverse": ^7.12.1
-    "@babel/types": ^7.12.1
-  checksum: bbea976e6900dfe1c55bd8425ef982839650a1190859eae9a7cae737332b71375ea74e83863399d2941800142bdbe876829827907096d36685d7a980511c1d86
-  languageName: node
-  linkType: hard
-
-"@babel/highlight@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/highlight@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-validator-identifier": ^7.10.4
-    chalk: ^2.0.0
-    js-tokens: ^4.0.0
-  checksum: c167b938af9797e7630dd922398ceb1a079469085b9c0a7274f093f9f2b1ef9f0a5efec89592e81cbab7c87a537d32c238cea97d288b7af9a0d26b2bceb7a439
-  languageName: node
-  linkType: hard
-
-"@babel/parser@npm:^7.10.4, @babel/parser@npm:^7.10.5":
-  version: 7.10.5
-  resolution: "@babel/parser@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz"
-  bin:
-    parser: ./bin/babel-parser.js
-  checksum: c7b4d7183fb89a6b74a4d6c690a9ffd0c33942814ae902a909642fb77495b9ca9ab5420d7f86c2a82e6721469477830e42c7e9f5a49f7471d4ba13819f7913b6
-  languageName: node
-  linkType: hard
-
-"@babel/parser@npm:^7.12.1, @babel/parser@npm:^7.12.3":
-  version: 7.12.3
-  resolution: "@babel/parser@npm:7.12.3"
-  bin:
-    parser: ./bin/babel-parser.js
-  checksum: 3605bcf97e956ef36506ccb7e0ca4432025d8992c7e1f5d5b03976750a1198a0b27f461ab9304dbc5319a154b5ea19c09e72f87bfc5c08dd2780428734e13339
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-async-generator-functions@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-remap-async-to-generator": ^7.10.4
-    "@babel/plugin-syntax-async-generators": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d43c72c3308dbf70a6f437919af6e8de6e59170876443d3785554805272901f2eb226a95535aaffde397ff664cce74425fd50986908195741714860986aade85
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-async-generator-functions@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-remap-async-to-generator": ^7.12.1
-    "@babel/plugin-syntax-async-generators": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 59f8c4e46900f8982507fc2bee65a39a831469e1ed7862af8b78c4244386c5bb0eaa416c30964c30e64c0ca24abd5e39b900f83686b4e86c45db07263bb6a629
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-class-properties@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-class-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 32cf34c077eb2612e7f9a599078a51ed53807167b8cfe01702a777bf9efaec254820e2c3c52ce801e8619d40226065f311b8190b36c21f8b853c7f340dccca1f
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-class-properties@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-class-properties@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 690cbec3df2c4a1ec12c8a99b87dd4cc9aee07627dea957031549997267ee6ce59727ba44266dd83d3c6fb4cf759d14017ad9a530bf3d8f4447780947031449a
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-decorators@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-decorators@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-decorators": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 148c01c4ce42efc033c5c307c4de3aa32b3babd0e06b4fab03a116ee370614e1e5b82f0b92ae6e11842cb0a759db25a1daa3214331ffe5055323c7b2fbebb7c0
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-dynamic-import@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-dynamic-import@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-dynamic-import": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 0ded8305a774d2885ead96e9fda66ec0fc01085c123427b4ecd71314ea08a2b753e8bdbf28f127eafa9cbd7d2d08c7302506ae6f9c0e1c0895818a4c1604f45b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-dynamic-import@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-dynamic-import@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-dynamic-import": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 4428439b483912c898d70a858f86e48f28247f55b05f4ca4ebc1f6746e63cc73e2704ed85c8fc65f2761154f4fcfa08220ac413c9edd5758d1ace03b4dcd4551
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-export-namespace-from@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-export-namespace-from": ^7.8.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: ae5317ca008cc9eb2890b1f238156fbb990e5030fd1b7f123a5d11d89f8617a867b11db129aeafe51ef3bb4dddc4059e8172ddf99e8cdc42cbfa2a45dce1a16b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-json-strings@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-json-strings@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-json-strings": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 340397166125ea2d4e2b2c15b5bb8845dc6cb5dc2bcd9ff52b5e767b8337e38ff1daa66aa7eb461b4abed3d242376e93d972ebe6799b5a1a3c65b1feb8833dfe
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-json-strings@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-json-strings@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-json-strings": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: fbe4f3241c3edfb432138745657386c049cde9c39fbe9cb86f2a6ec10809cb4aafebf3f78b351bae3acf2cffca6cfd319d26d8c899c50b4bd7a39675ebb57f6b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-logical-assignment-operators@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 08af656aaa40c554ba079c5b6cae9fe9dff95cf817debcbfc2ba5e7b7e051d6b2b04aa727d4e77404ea147758e513da7be8b35626e8053f50caceeaeff8f9763
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 5a20d8bcbf2926dde3e9edcf847eaa5485d0d0fea76d0683ef1cafb11e0c35e46620391916283e1a9c0f76351e8c5ecccebf0d3a6bdf24559c5ad381433a0e3a
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 9c825901a13aa52330b7ec44f2b6355112d9e2dce9f3e0230c66a7536d542424d19a08b797cd72a00c18fe2e11b1d4037b365012eddfe69c169500b02ed83964
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-numeric-separator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-numeric-separator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-numeric-separator": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 344eff491f0a7bb17958ce00db34af5671ec3d9dc87c29766208ab7a3c8ea769730c9f2420c55c54ecd24ffdd5df01f258d54eb41ccd35911e974c549a697e4b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-numeric-separator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-numeric-separator@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-numeric-separator": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 7c825cc90305ab55f17a363857f5a31b8db4008a627a9153c5778003231cda5da669c2a64b4ab5a309b54889f44f5e2332d8956d89be5d446484f51035b71147
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-object-rest-spread@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
-    "@babel/plugin-transform-parameters": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: eb09aa3de7ee0c89ba28e4e1a7e2e24d1d2ba8cb83288993798b37cb588a16c19b9bfe596108bf0e4e9b266c53baeb77aad6bb5d9c114af1e8828693ac7f2c28
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-object-rest-spread@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
-    "@babel/plugin-transform-parameters": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d14fc95dad725b72bc1d29f6ea3eee0ff436fa5ab2ac2dd486acb9c1e4cda9f68424581c87857fe4e2c58bf48386b38b3eac542157b040b0f25c1fbbd98dd8f0
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-optional-catch-binding@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 56a3a62131cdc7b7481a005dacd26f83ae10936e2dbe0b06a98cb767b13cdc859504d862a166be8d1e2ac4bc0ddfc7aa9fa7135a68e126bfcba1bcb0585928d0
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-optional-catch-binding@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: ca8c20fb7371a3e16d48d9989ec8c3a38eb46354dcd2edba70231fcb0959967920a01c9dee768f21e715ef679c4d2b10b9f04499655f719228e753e2d884e3e7
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-optional-chaining@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-optional-chaining@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-optional-chaining": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b08607650998af75a53324b8b72dd40153791a02bd738551ffe7a2b8b9d9cd9935db97e1b5f028124e74e53d80a703b13804fb0d90f7edfc77a0a8daeca0184d
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-optional-chaining@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-optional-chaining@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-skip-transparent-expression-wrappers": ^7.12.1
-    "@babel/plugin-syntax-optional-chaining": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 3cca1bf3b36de3727444178df99d78c36a181dde039032472a861e19d6a47cf1460752df7180d871e7e450434242223cdf92e67b70e5c6b27207b1f12daa6511
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-private-methods@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-private-methods@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 7a29e63aaf68e25059570253c0f3b1046000ed2d43f66cb458a90c6d5fa4f1cc58f2197778ee0d07f773520980bd076609f94789d7f6b8637b9927d62ddfe6fe
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-private-methods@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-private-methods@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 350a1a8c3df47096fe37f455f6fcedd185f514a72e3aa01df8a773fb4cd86370a34f3c14cdecf0dda609c7715061ebde87563a21ceccf9f5846d1b38dd97b2cf
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-unicode-property-regex@npm:^7.10.4, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 41e271cf08bad32a0e86dedb67ed4329a119466ec1531a69397915fbac6032f8452e5b0bb7205a069a6a728c370375a944efabaec155d861b9e4028e0f434667
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-proposal-unicode-property-regex@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b960b8c1af6f8420e0ae1107f5af00ac954a322117428330585230b3b28c0653be80d463d6c3c18fe629fd2f7439ecbee635c9d5a1867da58331e744b2613f90
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-async-generators@npm:^7.8.0":
-  version: 7.8.4
-  resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-async-generators%2Fdownload%2F%40babel%2Fplugin-syntax-async-generators-7.8.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 39685944ffe342981afb1fe3af824305e94ee249b1841c78c1112f93d256d3d405902ac146ab3bad8c243710f081621f9fbf53c62474800d398293c99521c8ef
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-class-properties@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-syntax-class-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 8d0c1a3f5a922c2cd9387c7313e5516d58bfb6e60885b8d953ae23b6432aafe14be0fa1a2d4348c02f2eaaca82fecd76b7f622bff439775505c021b00a12dcbb
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-class-properties@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-syntax-class-properties@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b5e354a0cd18f67f29e59cdaa80f9e50839ed9d3d8e1fca2964431fa474d08c3ca4cd1f61d0bcb577e8451c541e45e0e702e6feca5483ecd4e265ef5a0b70d42
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-decorators@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-syntax-decorators@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c64b9eedfd5af1f106a98978e386b51e04bb4849821cb889feef397df13f5fddf4ee7dec3d0d1319a606eeb8368622ca4bc4bf428c1c353920a0a1fddb16d440
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-dynamic-import@npm:^7.8.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.3":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 134a6f37feac0e6d55f8188232e11798ccf699b02d50a4daf9c040f52a22ee32923a6a979443ecc865f4014937ffe67ac11b81aa5668b6792238c647314f41c9
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-namespace-from-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 832e007319bc5040818012d51eb91c3ad4c38a1ea696e9a9805df4d601d8c4f061032cb61494946e7bdaa5db0422a6bb6f39577cd0e5c8323b6bb2c364406dcb
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-json-strings@npm:^7.8.0":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-json-strings%2Fdownload%2F%40babel%2Fplugin-syntax-json-strings-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 1a7dabf0a4b264cb235966c4256aad131567eba20e41de731fa9127d371454a2f702e27fd7bedac65efb0df847e5cece7bcb5507a931604d1c2ecb7390adaa1f
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-jsx@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-syntax-jsx@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2f0314608b171d0146dcb8283abfb0d48824da19b311b3aa875cb9977db23cb5e64e895390780f1839dd9679e6761b61e109d40741f174d73f200b6eceacfcbf
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-syntax-logical-assignment-operators-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 5b82f717707d278e58d12649932bf3327923361f051cd4517a5b63d7ebfe39cb6cdfb37aa199b5a441db305301a3c8de01c946d25d1f4c4ecb94322a23ac9e73
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.0":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 4ba03753759a2d9783b792c060147a20f474f76c42edf77cbf89c6669f9f22ffb3cbba4facdd8ce651129db6089a81feca1f7e42da75244eabedecba37bd20be
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 47ae8782939ccc41f94b1d46b8b7a63363b003b8b7544bddae8dd454a8d51b38bbd4f9c26e91ecfb5fc16dc5f2228700e3030def63c5d07046073ec8fabc4665
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-object-rest-spread@npm:^7.8.0":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: db5dfb39faceddba8b80c586e331e17c3a1f79941f80eaa070b91fb920582bffe8bba46f6bebbdaf7c1f9b0bbe2a68493c28e1c9fb0ced864da739c0cd52ce43
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.0":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-syntax-optional-catch-binding-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: f03d07526674ecdb3388e1d648ec250250968e13c037a7110e37d3eab0b82b07d6605332772afdf19f1831dfd3bdbbf0288a7d9097097d30b9548388ea693a07
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-optional-chaining@npm:^7.8.0":
-  version: 7.8.3
-  resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.8.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2a50685d023bc609b01a3fd7ed3af03bc36c575da8d02199ed51cb24e8e068f26a128a20486cd502abe9e1d4c02e0264b8a58f1a5143e1291ca3508a948ada97
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-top-level-await@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-syntax-top-level-await@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 998d87fbd38a2c7d1b630ccd0a90430a70dec6b7fb23fc37c60cbc10de7112a094c786602d9c8e3093568f538eb2642705006682ce58eb922f2eda889af3ad48
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-top-level-await@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-syntax-top-level-await@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 9767e46ddc1add9133a21f5d6c4452e9a62f891fe1db5d8291f62f9036f9e697bc118adad43109a8740ac15769e9489d68d134b17cfe9f3bdf06d2c50c9c6dce
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-syntax-typescript@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-syntax-typescript@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 37bdb828915d9193d5fc3b877fb479f1cef6ea3f1cfaa18908170fe23af043ba59d7bc723d3e27067b879e486f16e418d602d7212a7a1e93125bf80339c39668
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-arrow-functions@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-arrow-functions@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: ec5b1d6ec6b61baf93cff41016e30f9d410a6a24fd8adc6e8790b168781470ad52dbf34c8e6897bed7c62eb79c20f59f96e6014acb8f7fd6b91c89ed1c515acb
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-arrow-functions@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-arrow-functions@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 602be39f30dd1937a2ff8bb40af594a150998d6914fae61421cbfb99cc91ab7dbb9bd156f4f092e789fa0a8c16034d3e0f663b25521561a63da219529d816506
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-async-to-generator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-async-to-generator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-module-imports": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-remap-async-to-generator": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c4cddae691f303aecc5124dfd4cbc9eba09523b714b92fa4a567cf4add212c057b93d7598cd6dda79645230c777290fc13ec17f6384255c8bdce50692539abe1
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-async-to-generator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-async-to-generator@npm:7.12.1"
-  dependencies:
-    "@babel/helper-module-imports": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-remap-async-to-generator": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 96a48e5cbfb44f9d2a5d561ff96c9821a1dcb15c9b61d8cb7b0ba0f78ff21873f0e8f486075d5d75122dca53d87ae25f6743f04f4129ec912379127be1b4de74
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-block-scoped-functions@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d608f55104576798ec224d1b222ee33a22968bc0653b54c316c0a591bf4c2681b87c6222266d978ab273c19ef44e6976eaeac4da8928694312433a01616cc73f
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-block-scoped-functions@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2da63c6b92d35928d51d2d9782b5fac6a0aef07051bed78eeb8b6d1a57260ebb830c68b8eeb374e169c49ffaa032e49a04fe468259cf1dd7d7010ef07b1251c9
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-block-scoping@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-transform-block-scoping@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: f4df58ebe82dbb758e2bfe4fc0ad9b6746c244ec6ed6a6d4bbdae9979055e7a67fbb6e844c28fff6b614f79d98aaf1e554b9116f3a1f9c6bc9334f51022ae1d5
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-block-scoping@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-block-scoping@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 067f8b55a32ba53c7bc61e730f0a2dd063ee377afea88e153e9b8bd8069d666df3106b80777e37e418d14a21cabd1dee0f7dabfe8cb038d5080d9e332a202e36
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-classes@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-classes@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-define-map": ^7.10.4
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-replace-supers": ^7.10.4
-    "@babel/helper-split-export-declaration": ^7.10.4
-    globals: ^11.1.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c5ba85f73658eb060c83fafda960572c9ceb4e47650c539fbde474d37f133a0112031c4602964cf5f9ef967916e4bbd4afa8b1210cd64ec6fb71519521e28348
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-classes@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-classes@npm:7.12.1"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-define-map": ^7.10.4
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-optimise-call-expression": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-replace-supers": ^7.12.1
-    "@babel/helper-split-export-declaration": ^7.10.4
-    globals: ^11.1.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: ae895d1a201be7c038f220f49f00eb804cf5e2280199127469ce0962080574b9515117807c0f1c5d446df543b2fa8af1325d6bafb46aa4e6ecdfe1d30aae2047
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-computed-properties@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-computed-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c69c53881deaa1595fd974328997f1c4731586df5e6be310269107becb83efb0fd8abbe7177320c6b1fdd8828bfe42301f6649e7589da8472a65ecda72cd8d32
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-computed-properties@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-computed-properties@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b3680b9c0327e55ae58b16e9f77cebc857a30fcda45b863750396ff46e1714b5d57fe55b57ef6552004b0e110d5b66c6994753fa45d658b13c245907ffb72757
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-destructuring@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-destructuring@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2ea714834691b08805227a5335707e556aff087507c9fdccb7265ed56ca9ee39635945d102f5a6f418ade08f3f61ce3f4ebc345d36060254d06d6e08a5693f0a
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-destructuring@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-destructuring@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 704057fa7c9107efd19615e111517377a75f9c52c518870779effa225a220ba9f77206d60574e8ff15bc8be32996f0c0d21c01bf4095c4ca04a18e0b194a1f75
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-dotall-regex@npm:^7.10.4, @babel/plugin-transform-dotall-regex@npm:^7.4.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-dotall-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 284cce72dfade92b51e8a66742ac7e9449f3d9e379ea2185777e600b000fd1ba0614786ccd9f753a52e2a896235ba7381d82767d7ade0352fd32ec5c90781bc7
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-dotall-regex@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-dotall-regex@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: dd522110c9a981194cecbf8dbb8b9c668b6bdbffdbb4e601db3edca35398d778a9d4bc26a60af5965eba1230fc960e9a7588c3b90db87b5f243bd29332d788d8
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-duplicate-keys@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-duplicate-keys@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 60897c7c2f49f687b5699c486a84f91f16bd8951c306795199bbc908073000db3d693f4ca04058d62ef09bec61fccd4d9c379ef8086754297d4440b1677047f2
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-duplicate-keys@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-duplicate-keys@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: a8c45815fb51048ac6b6f8fdad583b6d9d48affc9d00c9ef67b030e3262e12694d51b026db90dae26bce5420c8e26bc7ee663fea973c1aebafb4636a0ffcbd20
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-exponentiation-operator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: fb086b4482cce50adc59dcc5713f4a4fe082bad176b360f5bb3fabc47461cdfed6bbf739a84535a78bc26f743bca74f31f195ec8c223cba8acafa299f5361fe1
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-exponentiation-operator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.12.1"
-  dependencies:
-    "@babel/helper-builder-binary-assignment-operator-visitor": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 9a01b9350660ea68318fa94c1486833e006f75bba236854e714662dc4f2674604b8cb377844fa45727f6a63fa3a379d10da9090f5f1cc6b95d59ed5e63f77c5c
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-for-of@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-for-of@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 86c02bbf98763179f881f58f7b3c6536ed6da36db9190f6a285a61298584ecbef253e1d1e7ffae3cdc216c47bca7987d96e3a4c652edd3134994a146da831e4e
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-for-of@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-for-of@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d51761cecb966bcde390a9ecb9651679d9a8c96e5f74182066028d496abeda26091986f64817e34c8cb2895fb722e364dd875645ca35ec1d6bcd759fd37b8907
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-function-name@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-function-name@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 64d8bf2de2a290d1c5d0c5f1d5f57fc64ff02705bc9740fc217f026d7aea7a1823ef22e28c6aa101ee7f81b55485801938bbc2210530845eee7fc0305ccdde0c
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-function-name@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-function-name@npm:7.12.1"
-  dependencies:
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 7dff23e9b56f4b2f715c5bbdb21388c67820c5a543344f01aaca580ce124fb6646d36786fb4e8a9ed550113b28946c559f4b3402fce8cffe0c8e124213bc1d0e
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-literals@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 53cd3f43672cb9361175e21cddb9eb39d260ddb1ca6206c669ec5a6519db16609cb46e88af700b3da5b2a9ce09ea035f9557ca60e679341d737b1988f5ba6088
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-literals@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-literals@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 1bc7a828e06ac4484cd26b521a3ce3da221899fd1dbf747e353c5d560749160ac104fb505d1deaccb46dc01d5f6fed134577c14a67f1608d1522223e22d3cfcf
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-member-expression-literals@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-member-expression-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: e6a1844cb542ea43a83fc0ac81f630ab5ac1547aaf595acfb9f9c17e98b5aa1f7aca21f84657c111260e6e7a2404643355ea8c2b5fd434915b106c3e1c2f431e
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-member-expression-literals@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-member-expression-literals@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2a216ee882d6046e2ccb949bf353c23f729f306a660139277b432c0cbe1db03e04cb9c0b03db86098799c705654a215dc9be714e22b91a8c238bab2c0ecea726
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-amd@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-transform-modules-amd@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.10.5
-    "@babel/helper-plugin-utils": ^7.10.4
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 6d2b80f3ca13d13589863288f75f9c9efaa7d80e6eeb93351c8994c3c15c4a675e8347f0b28fcc2afb2dce5cb17b499560a215ba7691719d6ab0ad164384e41e
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-amd@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-modules-amd@npm:7.12.1"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 0b22d7ccf3bf91aebc9a751bbb88f108ee553a047756dc5d83d34294561f94ee1f63cc23479eb2f17f34d118234143e8627c2a29beb14d151d04294721dd4fd0
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-commonjs@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-simple-access": ^7.10.4
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 42176865089a2800e888c41beaf3688e00b9b71b5bc65ca238342c83e9d38ec141eaa405182688a8294b344cd8a7ed36ab2da2662c38a40e2c736fed48ae7178
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-commonjs@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.12.1"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-simple-access": ^7.12.1
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 7201ad5f82f51f992e855909a99adc9dbade07146d86bd3b219fb6bc4111169adca4b082365365657f03ae025b5ce18d749125251a1aca111d06c2c647cfbfbe
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-systemjs@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-transform-modules-systemjs@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-hoist-variables": ^7.10.4
-    "@babel/helper-module-transforms": ^7.10.5
-    "@babel/helper-plugin-utils": ^7.10.4
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: eb08d7c7e58c45c14212b885d3aceea9742a4565fa561e171c53169834d5e42044c818447a7f055f098b92742eef392470cf16678c30b9775bf6b232130c259b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-systemjs@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-modules-systemjs@npm:7.12.1"
-  dependencies:
-    "@babel/helper-hoist-variables": ^7.10.4
-    "@babel/helper-module-transforms": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-validator-identifier": ^7.10.4
-    babel-plugin-dynamic-import-node: ^2.3.3
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: f47d070edac6c064a7a86764885b84bdb62ecea6ca8a6c33ae8bfa516bf4f3827df0ec72c720d8daa8d376a9a1669e9a9be3f1d6576544288b709f0556a4c806
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-umd@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-modules-umd@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b0c3f47b9e36dd2fffb8f31ee6449410b59bcb8c544552bc91c2f565ea34c8b9dc4396b478e38ba885b96777de6fdd38cf2053307c189837b54429290ecfa720
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-modules-umd@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-modules-umd@npm:7.12.1"
-  dependencies:
-    "@babel/helper-module-transforms": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 9998266d1ea4eada5fdda84fddc1611e733eb75ff363419c7884827cbb3229bc0c14e7abfbb1436354102ce085175f9a850cbc7a2bbe7c1493021414da3127ba
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: 6b868806fda6cab6ff011990473a424199059f75a9eb12d0e421e01460244e0164f837af8b76e415bc390bf6502d5372ad9d56fd270cd1cfff7e0d19facc237f
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0
-  checksum: 96eb5b35875d6065a934110bb04ce18feff437f085651c75cd64f32cecf3e87ac7526ff55b7592129bde3b1d61c9352da64fccd99baa6f5c58229bde67ab9d0b
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-new-target@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-new-target@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: a4742428d2c942d11b8cd91beaf6e3e1509416b563bf74959e4d103ffa954176d639cb44eb3b5992321897253eda6d921f21f18af1d20da30534dcccdd474bec
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-new-target@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-new-target@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d3b9f4f0c28211d7e2cafe7c20691259da9ec8931d870154c46132a9b6e4dfc575caa76bf60684eff58f0da75423cebae1ecc8b53f35f93eab4ccdf68bb0f633
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-object-super@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-object-super@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-replace-supers": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 30485dd88ba30dc1584d08a3c2b61f61e3ca5b0850a183e3c655a3bcd7fa49fd3c5c1d5de5da2baa811b97d65d52fec11a39deb3acca4acbacd63ae632335d0c
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-object-super@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-object-super@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-replace-supers": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 36cc06f539aee16a544151c096381cae1a13f3ac531fe3a340a687373a5c01fc368b9d3d53ced0caf1f5413b5176c4acf34132f39f00e8045bf31cd9d7ffaaad
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-parameters@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-transform-parameters@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-get-function-arity": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: f5da5726a22e981388640b152b7cdb75132e8a0d93a0228a4c6c72a9cd80052edf01e25829d24f71419f978de0512103d61328fd24d4df36c3b0b16064b5b1bb
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-parameters@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-parameters@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: a968ef99b6356b610bee1f933dfd64cfd3fe3d0971370bc31734fff65435a05fbdc42b59401e9dc9dfe4b310e92e417a3273f454eb0542ec4afde9088059b963
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-property-literals@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-property-literals@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 06ced62af42371e315830b84b71e043a08fbdac995945b7b15d9987430d3eea9f3aed646c3b50e4b4aaa2fadf46a824b2a2ce49e379db7157647a37d751603c6
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-property-literals@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-property-literals@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: dff34b03d88e0e4a333f1b046ecf3a396208266afa270ce40f87e8051ede4fdc351e59cbbd78f5e49601f57a00b99f76879dbcd2d79d237871ba54831ef393e9
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-display-name@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-display-name@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 88d6819169bd3d84ccf47614a363b46f7269fa6d086f1a05e0b306fffd72c73c9a07cc9865e8bee2889b37754816b8ab8f668bc18cc0aa8691fde12e3338db11
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-jsx-development@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-jsx-development@npm:7.12.1"
-  dependencies:
-    "@babel/helper-builder-react-jsx-experimental": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-jsx": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2af1228b5e259f44e474439605ebe875df1c87bbd0f2ce7ba15be1d4e204edeb34b0334d3d8ae93cb47255cab3ade7be9f6cfc1a7a8f6a3099355587caf675b5
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-jsx-self@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-jsx-self@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 89401f14f3ca08e8d4e3fe9ba91f09f6ad10e7f2636e7c569a392876ca04a376289b36e4a2853869d8c62de2ab08961574ee5b9d97542f933fd845ca246f5f85
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-jsx-source@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-jsx-source@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d5fd8818ad8539e1d74541185b038c952fc8a6a3179b0bcac9ee5644f0bba260ab57335d736b11838bb19b5078cbf5c14bdd5c93927b96e359ccb5414f4a9488
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-jsx@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-jsx@npm:7.12.1"
-  dependencies:
-    "@babel/helper-builder-react-jsx": ^7.10.4
-    "@babel/helper-builder-react-jsx-experimental": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-jsx": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 58dbb169e2a97a7cba0a6b204c8288827be7d8a5aa895240c0228eae9c889e9ec991ee84b32fc8be665709822febc4356e7ddff02168c24ccafa16641c5bab25
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-react-pure-annotations@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.12.1"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: b1984954daac2a02e5a105e616df273cc13b76e8ead061913ee80089d8f77722235cd1103ca8dc4c2bbda62a53736d15037dcffe6dd9a06acfa83600299a790a
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-regenerator@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-regenerator@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz"
-  dependencies:
-    regenerator-transform: ^0.14.2
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 932b35c5ed2f91b09afbea141789d561e8ce5af280f668107fb2768bc3e441c102c37051a964749837053c7be266a224a9ddc5acc562f997b9fef406ca47b179
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-regenerator@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-regenerator@npm:7.12.1"
-  dependencies:
-    regenerator-transform: ^0.14.2
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: a1722c284770776ea88a416c9c081dedbf1844f5c90a245998bb28243714d3275b5256d1531c565c53e5511d1e00404ca172fe47106af0a9c1aa52572b6b5c74
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-reserved-words@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-reserved-words@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 457433e66e54b527a4b27473eaab0302a868ed74c8b9fcb33a8a7fd24e66bdb764d6bff505de79fcfb35444debca66fd12b51c9df53e6cf817b784ad9f46ae91
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-reserved-words@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-reserved-words@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 41f589086b16cdd9b0783e0733ccf236ebdd68cd4def7641e9ff18efe1306fee21f096f6de0384c69854dd6445514b4a844ae5ea3e8a55a76ffb5bc1051085b4
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-shorthand-properties@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-shorthand-properties@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 91ba5aa0990a9ba2fdca39c98cdd687a7a0bc62c20c0243cbe02b8c580e51d55f2ee310df9decd7b8eb8e8395c68071ee69d22b953aafa0b2d436081d767317d
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-shorthand-properties@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-shorthand-properties@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 36cd37c9dd09d822c0707544c19539a01c5744ca8024f7dbaa3ca11284c6b1ec88ca631698351aa3302fd8dc7e8b3332ac1df0987146d707168c4951ae90c98a
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-spread@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-spread@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 67ac6ffa6492694caaa427522e4a550f5925e7f87496ee30b24c2f4ab7aa931a627e923211f7570e42101ec094a77643ce480bdf67b3f9c4812532efb3eff902
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-spread@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-spread@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-skip-transparent-expression-wrappers": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 905e1872e34b9aa5b8f95ac33accb6cbe8a1a5567043767adc3048e095aa20511d8555688a47129da2bb821d57cd77de1e1482cea7eebf2ee18b65b1f5ae05d7
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-sticky-regex@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-sticky-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-regex": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 56eed04e484f03645bc57228b3c6057460a2ded9ead109aa895edef4475410f480896319c04f1dbe66fcfe8b5a49ead110ce50595eefee01a0ac6fbb2b2f7f8c
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-sticky-regex@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-sticky-regex@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-regex": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c7d0f3948192e2136dc8138c62e7cb7a2844840102127cd67b22b34f638b23b0fc387a4f191d8606497b66208a33d897c9e6c2f3f5df5c4c7864d49cdb91e649
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-template-literals@npm:^7.10.4":
-  version: 7.10.5
-  resolution: "@babel/plugin-transform-template-literals@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-annotate-as-pure": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: bd5e87e4073d3b8ee437f5c3ee1316540110796a988a31ab238291ec3b6d99dde1f19733d34d4ac9e0f71419e37870519cd43e91f3f3896068b450df860982be
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-template-literals@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-template-literals@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2e37a8efa38cd856aa2336e285978c86d23d95066db96833fa2b38b879d81ff242531c1712c86e6b6b130144bd5a272cf7213ea9b585debaa6d877043d30e229
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-typeof-symbol@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 13f3e7537220788f3d1b6a100769897c23dc084abe38e5e893a8e71f729f74a675af10999ac672cd83f3206a942dc5e9200dea5b0d474f37119de677af142737
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-typeof-symbol@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 73bb34cb448ae2e953b36c8d0283c73b7979577ca470fccae036a0b7b2a8e9b266a377878495f9a5dea1b42b5b33f6f234dc08675600f1ae5e557e73f64bdc48
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-typescript@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-typescript@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-class-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-syntax-typescript": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: d93737e2350d0f7c36726c43af64ed4af566e67fd38400faf7f9057ede62eef4fa99235228167b27150e03b86aa53c2ef9f0ea346a02ad9a3070c147aa5e732d
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-unicode-escapes@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-unicode-escapes@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c7467a508fa834df8f251f714604fc1ed21c37e8a1443a24bcc1db353f647d28305f912c603924648081a717cb92557ea6bc47c5b011ebbe67f601e7dbaa6b5e
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-unicode-escapes@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-unicode-escapes@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 40f57b173a7d5623d58175692dfee966ced2f7d760bc50785e9ee5cb8b6360d836ae89677ef9b9a2e98f71b0a75e66306a21483d76d64047250bdc16006541c2
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-unicode-regex@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/plugin-transform-unicode-regex@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 2e0762e7fa222c1e2c936ec0e94af336dfe5c69130499ada734b20e2c86f83907528c748258f3ee99e728eea3b183f9e0c9d61e3b3d4c83daa92308078cc1888
-  languageName: node
-  linkType: hard
-
-"@babel/plugin-transform-unicode-regex@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/plugin-transform-unicode-regex@npm:7.12.1"
-  dependencies:
-    "@babel/helper-create-regexp-features-plugin": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 411ddc96ef17d33f063371d9bbf2841cc0907e8d65060776a78e793386239070c7c0699c72d975d9b82d9cbc60935255b0a86eb7f5ded7d8dc634df9e5d4c445
-  languageName: node
-  linkType: hard
-
-"@babel/preset-env@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/preset-env@npm:7.12.1"
-  dependencies:
-    "@babel/compat-data": ^7.12.1
-    "@babel/helper-compilation-targets": ^7.12.1
-    "@babel/helper-module-imports": ^7.12.1
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/helper-validator-option": ^7.12.1
-    "@babel/plugin-proposal-async-generator-functions": ^7.12.1
-    "@babel/plugin-proposal-class-properties": ^7.12.1
-    "@babel/plugin-proposal-dynamic-import": ^7.12.1
-    "@babel/plugin-proposal-export-namespace-from": ^7.12.1
-    "@babel/plugin-proposal-json-strings": ^7.12.1
-    "@babel/plugin-proposal-logical-assignment-operators": ^7.12.1
-    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1
-    "@babel/plugin-proposal-numeric-separator": ^7.12.1
-    "@babel/plugin-proposal-object-rest-spread": ^7.12.1
-    "@babel/plugin-proposal-optional-catch-binding": ^7.12.1
-    "@babel/plugin-proposal-optional-chaining": ^7.12.1
-    "@babel/plugin-proposal-private-methods": ^7.12.1
-    "@babel/plugin-proposal-unicode-property-regex": ^7.12.1
-    "@babel/plugin-syntax-async-generators": ^7.8.0
-    "@babel/plugin-syntax-class-properties": ^7.12.1
-    "@babel/plugin-syntax-dynamic-import": ^7.8.0
-    "@babel/plugin-syntax-export-namespace-from": ^7.8.3
-    "@babel/plugin-syntax-json-strings": ^7.8.0
-    "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4
-    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
-    "@babel/plugin-syntax-numeric-separator": ^7.10.4
-    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
-    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
-    "@babel/plugin-syntax-optional-chaining": ^7.8.0
-    "@babel/plugin-syntax-top-level-await": ^7.12.1
-    "@babel/plugin-transform-arrow-functions": ^7.12.1
-    "@babel/plugin-transform-async-to-generator": ^7.12.1
-    "@babel/plugin-transform-block-scoped-functions": ^7.12.1
-    "@babel/plugin-transform-block-scoping": ^7.12.1
-    "@babel/plugin-transform-classes": ^7.12.1
-    "@babel/plugin-transform-computed-properties": ^7.12.1
-    "@babel/plugin-transform-destructuring": ^7.12.1
-    "@babel/plugin-transform-dotall-regex": ^7.12.1
-    "@babel/plugin-transform-duplicate-keys": ^7.12.1
-    "@babel/plugin-transform-exponentiation-operator": ^7.12.1
-    "@babel/plugin-transform-for-of": ^7.12.1
-    "@babel/plugin-transform-function-name": ^7.12.1
-    "@babel/plugin-transform-literals": ^7.12.1
-    "@babel/plugin-transform-member-expression-literals": ^7.12.1
-    "@babel/plugin-transform-modules-amd": ^7.12.1
-    "@babel/plugin-transform-modules-commonjs": ^7.12.1
-    "@babel/plugin-transform-modules-systemjs": ^7.12.1
-    "@babel/plugin-transform-modules-umd": ^7.12.1
-    "@babel/plugin-transform-named-capturing-groups-regex": ^7.12.1
-    "@babel/plugin-transform-new-target": ^7.12.1
-    "@babel/plugin-transform-object-super": ^7.12.1
-    "@babel/plugin-transform-parameters": ^7.12.1
-    "@babel/plugin-transform-property-literals": ^7.12.1
-    "@babel/plugin-transform-regenerator": ^7.12.1
-    "@babel/plugin-transform-reserved-words": ^7.12.1
-    "@babel/plugin-transform-shorthand-properties": ^7.12.1
-    "@babel/plugin-transform-spread": ^7.12.1
-    "@babel/plugin-transform-sticky-regex": ^7.12.1
-    "@babel/plugin-transform-template-literals": ^7.12.1
-    "@babel/plugin-transform-typeof-symbol": ^7.12.1
-    "@babel/plugin-transform-unicode-escapes": ^7.12.1
-    "@babel/plugin-transform-unicode-regex": ^7.12.1
-    "@babel/preset-modules": ^0.1.3
-    "@babel/types": ^7.12.1
-    core-js-compat: ^3.6.2
-    semver: ^5.5.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 32a9f56fc405ce3545a48dca5daefed0a2ae418e5105c9b0cc26a4c9679346d2cc8b1efb01f1496d6b5d1d53d6037191acbd579b7e42d1f6d605c3ae26f6af22
-  languageName: node
-  linkType: hard
-
-"@babel/preset-env@npm:^7.8.4":
-  version: 7.10.4
-  resolution: "@babel/preset-env@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz"
-  dependencies:
-    "@babel/compat-data": ^7.10.4
-    "@babel/helper-compilation-targets": ^7.10.4
-    "@babel/helper-module-imports": ^7.10.4
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-proposal-async-generator-functions": ^7.10.4
-    "@babel/plugin-proposal-class-properties": ^7.10.4
-    "@babel/plugin-proposal-dynamic-import": ^7.10.4
-    "@babel/plugin-proposal-json-strings": ^7.10.4
-    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.10.4
-    "@babel/plugin-proposal-numeric-separator": ^7.10.4
-    "@babel/plugin-proposal-object-rest-spread": ^7.10.4
-    "@babel/plugin-proposal-optional-catch-binding": ^7.10.4
-    "@babel/plugin-proposal-optional-chaining": ^7.10.4
-    "@babel/plugin-proposal-private-methods": ^7.10.4
-    "@babel/plugin-proposal-unicode-property-regex": ^7.10.4
-    "@babel/plugin-syntax-async-generators": ^7.8.0
-    "@babel/plugin-syntax-class-properties": ^7.10.4
-    "@babel/plugin-syntax-dynamic-import": ^7.8.0
-    "@babel/plugin-syntax-json-strings": ^7.8.0
-    "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.0
-    "@babel/plugin-syntax-numeric-separator": ^7.10.4
-    "@babel/plugin-syntax-object-rest-spread": ^7.8.0
-    "@babel/plugin-syntax-optional-catch-binding": ^7.8.0
-    "@babel/plugin-syntax-optional-chaining": ^7.8.0
-    "@babel/plugin-syntax-top-level-await": ^7.10.4
-    "@babel/plugin-transform-arrow-functions": ^7.10.4
-    "@babel/plugin-transform-async-to-generator": ^7.10.4
-    "@babel/plugin-transform-block-scoped-functions": ^7.10.4
-    "@babel/plugin-transform-block-scoping": ^7.10.4
-    "@babel/plugin-transform-classes": ^7.10.4
-    "@babel/plugin-transform-computed-properties": ^7.10.4
-    "@babel/plugin-transform-destructuring": ^7.10.4
-    "@babel/plugin-transform-dotall-regex": ^7.10.4
-    "@babel/plugin-transform-duplicate-keys": ^7.10.4
-    "@babel/plugin-transform-exponentiation-operator": ^7.10.4
-    "@babel/plugin-transform-for-of": ^7.10.4
-    "@babel/plugin-transform-function-name": ^7.10.4
-    "@babel/plugin-transform-literals": ^7.10.4
-    "@babel/plugin-transform-member-expression-literals": ^7.10.4
-    "@babel/plugin-transform-modules-amd": ^7.10.4
-    "@babel/plugin-transform-modules-commonjs": ^7.10.4
-    "@babel/plugin-transform-modules-systemjs": ^7.10.4
-    "@babel/plugin-transform-modules-umd": ^7.10.4
-    "@babel/plugin-transform-named-capturing-groups-regex": ^7.10.4
-    "@babel/plugin-transform-new-target": ^7.10.4
-    "@babel/plugin-transform-object-super": ^7.10.4
-    "@babel/plugin-transform-parameters": ^7.10.4
-    "@babel/plugin-transform-property-literals": ^7.10.4
-    "@babel/plugin-transform-regenerator": ^7.10.4
-    "@babel/plugin-transform-reserved-words": ^7.10.4
-    "@babel/plugin-transform-shorthand-properties": ^7.10.4
-    "@babel/plugin-transform-spread": ^7.10.4
-    "@babel/plugin-transform-sticky-regex": ^7.10.4
-    "@babel/plugin-transform-template-literals": ^7.10.4
-    "@babel/plugin-transform-typeof-symbol": ^7.10.4
-    "@babel/plugin-transform-unicode-escapes": ^7.10.4
-    "@babel/plugin-transform-unicode-regex": ^7.10.4
-    "@babel/preset-modules": ^0.1.3
-    "@babel/types": ^7.10.4
-    browserslist: ^4.12.0
-    core-js-compat: ^3.6.2
-    invariant: ^2.2.2
-    levenary: ^1.1.1
-    semver: ^5.5.0
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: c13fe3c2c4caa42e1802b07baffc79db976474c69e089b3eccdff7a0f7282344fa1239980b323ef963c72e73a93ae24a2128987b9a8cf702766d1fda31d35a5d
-  languageName: node
-  linkType: hard
-
-"@babel/preset-modules@npm:^0.1.3":
-  version: 0.1.3
-  resolution: "@babel/preset-modules@npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.3.tgz"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.0.0
-    "@babel/plugin-proposal-unicode-property-regex": ^7.4.4
-    "@babel/plugin-transform-dotall-regex": ^7.4.4
-    "@babel/types": ^7.4.4
-    esutils: ^2.0.2
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 341c13de18779d682ec710c40e60e92285d9a557211c0448398b7308cffb7a1edaaaf4862c1dfe9b02c8b1184c3fdad73daead66cc48aa37b8e90602a49ac175
-  languageName: node
-  linkType: hard
-
-"@babel/preset-react@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/preset-react@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-transform-react-display-name": ^7.12.1
-    "@babel/plugin-transform-react-jsx": ^7.12.1
-    "@babel/plugin-transform-react-jsx-development": ^7.12.1
-    "@babel/plugin-transform-react-jsx-self": ^7.12.1
-    "@babel/plugin-transform-react-jsx-source": ^7.12.1
-    "@babel/plugin-transform-react-pure-annotations": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 67219d33110be1e6cb64b7a5470589cc4a0ada14fa80a86e676adf0baa3b3180c3586964e989509509b659b8c7744abb57d4a5513130fc40fca12fbc16aa6669
-  languageName: node
-  linkType: hard
-
-"@babel/preset-typescript@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/preset-typescript@npm:7.12.1"
-  dependencies:
-    "@babel/helper-plugin-utils": ^7.10.4
-    "@babel/plugin-transform-typescript": ^7.12.1
-  peerDependencies:
-    "@babel/core": ^7.0.0-0
-  checksum: 730eb743a4367db204c229183a3c2d669caa4f5234d98196c39368fc54f2cadd20a3d55f71104ebec8bc17cf3236b784f2737cac9ae4bb57b250cd1c609aabf9
-  languageName: node
-  linkType: hard
-
-"@babel/runtime-corejs3@npm:^7.8.3":
-  version: 7.10.5
-  resolution: "@babel/runtime-corejs3@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.10.5.tgz"
-  dependencies:
-    core-js-pure: ^3.0.0
-    regenerator-runtime: ^0.13.4
-  checksum: fc1caee034dae9fe4a411f3b09296debec728a059448c1e90f765ce1792f4229e658759103442825d5e6a2145a22417f75b181aecbe28914f2ee206df5fbafe7
-  languageName: node
-  linkType: hard
-
-"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4":
-  version: 7.10.5
-  resolution: "@babel/runtime@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz"
-  dependencies:
-    regenerator-runtime: ^0.13.4
-  checksum: 222bc7c75b83f73802c8c93c59281085d36ff4efebf58a81fb631af587ebaa0d0eaa187e30587448e65e8f50a4b8719fc13aa5214c02c2562e95be4c8230627e
-  languageName: node
-  linkType: hard
-
-"@babel/runtime@npm:^7.12.0":
-  version: 7.12.1
-  resolution: "@babel/runtime@npm:7.12.1"
-  dependencies:
-    regenerator-runtime: ^0.13.4
-  checksum: 979d1c099c386031f96a952ee903e7bc3c60ae6e4eefe2bf49e4224014542d4ac2b1e2fb708031da36501a3842d4442dfdab38ab359ab3f46634b3c7cb5f6c6e
-  languageName: node
-  linkType: hard
-
-"@babel/runtime@npm:^7.4.2, @babel/runtime@npm:^7.4.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.7":
-  version: 7.11.2
-  resolution: "@babel/runtime@npm:7.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz"
-  dependencies:
-    regenerator-runtime: ^0.13.4
-  checksum: 2f127ad60a0f0568faa0044e5b48329d8166c7fd3a0a3ce774070010a1c441ebf5570f526dd6bb26e214fb1a01bb987ab6a4c3f60a00f04d02448939f4c61e1e
-  languageName: node
-  linkType: hard
-
-"@babel/template@npm:^7.10.4":
-  version: 7.10.4
-  resolution: "@babel/template@npm:7.10.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz"
-  dependencies:
-    "@babel/code-frame": ^7.10.4
-    "@babel/parser": ^7.10.4
-    "@babel/types": ^7.10.4
-  checksum: 23a5c4f7ab77d3f0cfeca3f8462f3b8a85d605d7c56bd917b46e9061aca2c8e84558d1209b8e365eb0e038d92fc387d42382c3072e3ad75087f9a04649e7bea6
-  languageName: node
-  linkType: hard
-
-"@babel/traverse@npm:^7.10.4, @babel/traverse@npm:^7.10.5":
-  version: 7.10.5
-  resolution: "@babel/traverse@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz"
-  dependencies:
-    "@babel/code-frame": ^7.10.4
-    "@babel/generator": ^7.10.5
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-split-export-declaration": ^7.10.4
-    "@babel/parser": ^7.10.5
-    "@babel/types": ^7.10.5
-    debug: ^4.1.0
-    globals: ^11.1.0
-    lodash: ^4.17.19
-  checksum: 4292255a99167d215294c1b8bfb0ac94e721d7792ffb65fd1bba9b54a59a7ce0657b0889b22cfe0078e0d33cf2f71b097dda351f44341e83523074dd4440b50c
-  languageName: node
-  linkType: hard
-
-"@babel/traverse@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/traverse@npm:7.12.1"
-  dependencies:
-    "@babel/code-frame": ^7.10.4
-    "@babel/generator": ^7.12.1
-    "@babel/helper-function-name": ^7.10.4
-    "@babel/helper-split-export-declaration": ^7.11.0
-    "@babel/parser": ^7.12.1
-    "@babel/types": ^7.12.1
-    debug: ^4.1.0
-    globals: ^11.1.0
-    lodash: ^4.17.19
-  checksum: a3040d94b72ba4214dc63b3d5f3517874dc8a72991a4c6916f48b756567e20c53c796feca6340db6edad9d48e7a9075e351c9b8daa0ed179d498cb80865be9da
-  languageName: node
-  linkType: hard
-
-"@babel/types@npm:^7.10.4, @babel/types@npm:^7.10.5, @babel/types@npm:^7.4.4":
-  version: 7.10.5
-  resolution: "@babel/types@npm:7.10.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz"
-  dependencies:
-    "@babel/helper-validator-identifier": ^7.10.4
-    lodash: ^4.17.19
-    to-fast-properties: ^2.0.0
-  checksum: 00bdeb6f4687357750252f27d6f1a597596c6f727992df7b0c3d8f7ca6347a656f687c000e3ac141d7fc75f0171aa137126ecbe899f87b4ae5dd903bdccc1f01
-  languageName: node
-  linkType: hard
-
-"@babel/types@npm:^7.11.0":
-  version: 7.11.0
-  resolution: "@babel/types@npm:7.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.11.0.tgz"
-  dependencies:
-    "@babel/helper-validator-identifier": ^7.10.4
-    lodash: ^4.17.19
-    to-fast-properties: ^2.0.0
-  checksum: 46e2fcd49d1c6d3261fcc3e88906fa39661a193365325ca94b9b1d59f949cef8546e3aba3e13a122b1bf2a493120ad00c06533ae0c428ad60ce81ee2a2649964
-  languageName: node
-  linkType: hard
-
-"@babel/types@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "@babel/types@npm:7.12.1"
-  dependencies:
-    "@babel/helper-validator-identifier": ^7.10.4
-    lodash: ^4.17.19
-    to-fast-properties: ^2.0.0
-  checksum: 0747b064093126e3ceba410c78e8ea438ed84cd68ad8abb2f98ffe88e2b600406096553bb5ef28cd40b29e68122820fe98e31ddfd0318fbb0efc2f4080d3417a
-  languageName: node
-  linkType: hard
-
-"@csstools/convert-colors@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "@csstools/convert-colors@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40csstools%2Fconvert-colors%2Fdownload%2F%40csstools%2Fconvert-colors-1.4.0.tgz"
-  checksum: c8c8e6b5b3c2ae7e2c4a0ff376b79e09c8e350f3a3973eee8d42372f3e49d41c43172087c426e33fefdb9057de8a6f23cabf31e6201adce3f78d4b25e1722b50
-  languageName: node
-  linkType: hard
-
-"@eslint/eslintrc@npm:^0.2.1":
-  version: 0.2.1
-  resolution: "@eslint/eslintrc@npm:0.2.1"
-  dependencies:
-    ajv: ^6.12.4
-    debug: ^4.1.1
-    espree: ^7.3.0
-    globals: ^12.1.0
-    ignore: ^4.0.6
-    import-fresh: ^3.2.1
-    js-yaml: ^3.13.1
-    lodash: ^4.17.19
-    minimatch: ^3.0.4
-    strip-json-comments: ^3.1.1
-  checksum: 99310cddf0f1abb2de4b5278293db6e2639445aab4e525f3c5f5b3b8ad53a59d6003a306954fb7ad15edd2f8a02b658d43418fa8b52ae2d07e074b24d991de2a
-  languageName: node
-  linkType: hard
-
-"@hapi/address@npm:2.x.x":
-  version: 2.1.4
-  resolution: "@hapi/address@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz"
-  checksum: 5dc5d0d3d6aad953bef59c5f24af704ae349dce626460eb2df93bd1e4b560136e354f92ce1c573292dfc7edce84189859794d28381711b50f738e67042081278
-  languageName: node
-  linkType: hard
-
-"@hapi/bourne@npm:1.x.x":
-  version: 1.3.2
-  resolution: "@hapi/bourne@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz"
-  checksum: bc23796d94afbca6bf691161d181bf005e86eac3f16fa4a11c38ca1acc9ffabf4e83791a98e9234bd09539ac013675bb53ea2de119373f9e9349f3b94312b76d
-  languageName: node
-  linkType: hard
-
-"@hapi/hoek@npm:8.x.x, @hapi/hoek@npm:^8.3.0":
-  version: 8.5.1
-  resolution: "@hapi/hoek@npm:8.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz"
-  checksum: 17bf9a0b6f2f9ecb248824dab838c66c50b16b00b1d3785233fafd5abacb06cc6cdcbd6f4c7be87babb227fc02fff46ad1c23de3f5b6f48ffe36b6aac829d82c
-  languageName: node
-  linkType: hard
-
-"@hapi/joi@npm:^15.1.0":
-  version: 15.1.1
-  resolution: "@hapi/joi@npm:15.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz"
-  dependencies:
-    "@hapi/address": 2.x.x
-    "@hapi/bourne": 1.x.x
-    "@hapi/hoek": 8.x.x
-    "@hapi/topo": 3.x.x
-  checksum: 7edbb0d5a5c1ff376b66243427a3b98a559e9ea89f7d40ee55916e0519bc1be56a9ac69f1e446a2c39c153fe835c57e4ee71297d4266b0ca82c49f7a2e90f681
-  languageName: node
-  linkType: hard
-
-"@hapi/topo@npm:3.x.x":
-  version: 3.1.6
-  resolution: "@hapi/topo@npm:3.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz"
-  dependencies:
-    "@hapi/hoek": ^8.3.0
-  checksum: 4550d3d7498a203ce5c0e53753eb9f510aa2b74c08bfaf7d7c4676a0943b27d72f22297ff006e8396eb74e6b73154ebf98feab19c199b0768a084a777d024a50
-  languageName: node
-  linkType: hard
-
-"@hot-loader/react-dom@npm:^17.0.0":
-  version: 17.0.0
-  resolution: "@hot-loader/react-dom@npm:17.0.0"
-  dependencies:
-    loose-envify: ^1.1.0
-    object-assign: ^4.1.1
-    scheduler: ^0.20.0
-  peerDependencies:
-    react: 17.0.0
-  checksum: 9d2b060e884d085345a9a73116fe9aee1fbdd0872b6fd1ccb02bd81dc411bcb644e202270e9e0f8ae57957dc67a96f503ed21362b4a3802a0aaa50b86e0a27e0
-  languageName: node
-  linkType: hard
-
-"@nodelib/fs.scandir@npm:2.1.3":
-  version: 2.1.3
-  resolution: "@nodelib/fs.scandir@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.3.tgz"
-  dependencies:
-    "@nodelib/fs.stat": 2.0.3
-    run-parallel: ^1.1.9
-  checksum: 1f100655dd65cda70b92cd4497b34f85855fd7b8f439d1eb0d0304e605e5a7c97e100710bfff21447f792b2504d5c6a9918b74696ccc22f32b279fb557c1db47
-  languageName: node
-  linkType: hard
-
-"@nodelib/fs.stat@npm:2.0.3, @nodelib/fs.stat@npm:^2.0.2":
-  version: 2.0.3
-  resolution: "@nodelib/fs.stat@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.3.tgz"
-  checksum: 1bfdb2f419370fe5f8412ae2691cc50122c829103719627b36838e875feacc982a9d8d102ea6b5ab1479538a96867f324f63fe97440d8352d03ffa6337beec45
-  languageName: node
-  linkType: hard
-
-"@nodelib/fs.walk@npm:^1.2.3":
-  version: 1.2.4
-  resolution: "@nodelib/fs.walk@npm:1.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.4.tgz"
-  dependencies:
-    "@nodelib/fs.scandir": 2.1.3
-    fastq: ^1.6.0
-  checksum: f4bffba16cc5d527fa594e120065e6d2376e274fb5df42cc744fcd28805fe23844590db74b20e102805280794208438b574e6e7fc25c6c245896909992a65e83
-  languageName: node
-  linkType: hard
-
-"@npmcli/move-file@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "@npmcli/move-file@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.0.1.tgz"
-  dependencies:
-    mkdirp: ^1.0.4
-  checksum: ed2cb75eefe218113794416fae43b5307f7c30476506942ed6c6c51f702713323842f81102ae1327f9134130bec0360312e6f858ddef143c21d9e269e90737ac
-  languageName: node
-  linkType: hard
-
-"@popperjs/core@npm:^2.0.0":
-  version: 2.4.4
-  resolution: "@popperjs/core@npm:2.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.4.4.tgz"
-  checksum: 49a1e6cfa2ec5004c541b0a1bd7d523c8aa7d728aa26e05df10f0af8c1e6c0db7fb9ebc8bee6dbfcdc7ad422999d9bf7d8a1c2b07dff3292b7dfa61a63af8b49
-  languageName: node
-  linkType: hard
-
-"@restart/context@npm:^2.1.4":
-  version: 2.1.4
-  resolution: "@restart/context@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fcontext%2Fdownload%2F%40restart%2Fcontext-2.1.4.tgz"
-  peerDependencies:
-    react: ">=16.3.2"
-  checksum: f9dd1416c16988b5bd66d3306dedfc9b95665d3af2c5b88cd2040b0825dfcf778eb9bd992c6e810c62187f981a78ea34923fb582a023f896079634edb3b1bc2c
-  languageName: node
-  linkType: hard
-
-"@restart/hooks@npm:^0.3.12, @restart/hooks@npm:^0.3.21":
-  version: 0.3.25
-  resolution: "@restart/hooks@npm:0.3.25::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40restart%2Fhooks%2Fdownload%2F%40restart%2Fhooks-0.3.25.tgz"
-  dependencies:
-    lodash: ^4.17.15
-    lodash-es: ^4.17.15
-  peerDependencies:
-    react: ^16.8.0
-  checksum: 08aefc359f597f9def83454c182e40efef034ca6e0eac41d28e013d8a3940d354911f60f89e73bad72ac9aee1bff56e84d4b26b95d46877818b733483ed95cad
-  languageName: node
-  linkType: hard
-
-"@rollup/plugin-node-resolve@npm:^7.1.1":
-  version: 7.1.3
-  resolution: "@rollup/plugin-node-resolve@npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-node-resolve%2Fdownload%2F%40rollup%2Fplugin-node-resolve-7.1.3.tgz"
-  dependencies:
-    "@rollup/pluginutils": ^3.0.8
-    "@types/resolve": 0.0.8
-    builtin-modules: ^3.1.0
-    is-module: ^1.0.0
-    resolve: ^1.14.2
-  peerDependencies:
-    rollup: ^1.20.0||^2.0.0
-  checksum: 4d751a407f752a320dae3fed9cc8be293bf15c3b2a7f387945195275580612f540572f69ffe8bbeb1d89732e63dfb19694901172603a68f58968e3ff65ce7684
-  languageName: node
-  linkType: hard
-
-"@rollup/plugin-replace@npm:^2.3.1":
-  version: 2.3.3
-  resolution: "@rollup/plugin-replace@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fplugin-replace%2Fdownload%2F%40rollup%2Fplugin-replace-2.3.3.tgz"
-  dependencies:
-    "@rollup/pluginutils": ^3.0.8
-    magic-string: ^0.25.5
-  peerDependencies:
-    rollup: ^1.20.0 || ^2.0.0
-  checksum: d08a514b8f446a3fe3db7e9de7d1a57c4aaeaaa3d6f70c2e18925d893ed81480dbfd29fe939f61c1ef31194b036ab7b1df22a744ffd33196335f9fa1925d3c22
-  languageName: node
-  linkType: hard
-
-"@rollup/pluginutils@npm:^3.0.8":
-  version: 3.1.0
-  resolution: "@rollup/pluginutils@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40rollup%2Fpluginutils%2Fdownload%2F%40rollup%2Fpluginutils-3.1.0.tgz"
-  dependencies:
-    "@types/estree": 0.0.39
-    estree-walker: ^1.0.1
-    picomatch: ^2.2.2
-  peerDependencies:
-    rollup: ^1.20.0||^2.0.0
-  checksum: 45da6411e045d1b034242a8144f4a5e8c02ff1b68a2e0857807f5bb4b091c416f2015e075057f0f0dec200e7b35efe6ed4e301b43e365cedea09192f01a6839b
-  languageName: node
-  linkType: hard
-
-"@sindresorhus/is@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "@sindresorhus/is@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sindresorhus%2Fis%2Fdownload%2F%40sindresorhus%2Fis-3.0.0.tgz"
-  checksum: 77cdb085422e8bf44783441a7bafff16b456123084447e2cc1aebbb9958b95469a82fec71b185457b9ddf1caf6c2d098a16e4ffed74f283411724277223d9475
-  languageName: node
-  linkType: hard
-
-"@surma/rollup-plugin-off-main-thread@npm:^1.1.1":
-  version: 1.4.1
-  resolution: "@surma/rollup-plugin-off-main-thread@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40surma%2Frollup-plugin-off-main-thread%2Fdownload%2F%40surma%2Frollup-plugin-off-main-thread-1.4.1.tgz"
-  dependencies:
-    ejs: ^2.6.1
-    magic-string: ^0.25.0
-  checksum: 4f91dc8b394f216bfa49864b4c1ef3eac91e129adb054e27f61bae2ee6af73d3eb227d5b29dbec72f0044da182c75331bcbd78cf328f2e1ce0ebe7e9b2410b60
-  languageName: node
-  linkType: hard
-
-"@szmarczak/http-timer@npm:^4.0.5":
-  version: 4.0.5
-  resolution: "@szmarczak/http-timer@npm:4.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.5.tgz"
-  dependencies:
-    defer-to-connect: ^2.0.0
-  checksum: 13d8f71dbd792b620b2cd13d72d086ef031ebefd5263a9db2f34693a32e4d90920fa1d7075cd59bf0c9810b2b1b93ad36d89fc88aba4cd3b8022df7ecc5ffdec
-  languageName: node
-  linkType: hard
-
-"@types/anymatch@npm:*":
-  version: 1.3.1
-  resolution: "@types/anymatch@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz"
-  checksum: 1647865e528a168f66f57a077e9651c10a4c172b656cc3686fddf176555d42ca0a1647bfc626ea2fceb68fc7701426ab708224be1762b4a5216fe8368ffdba3c
-  languageName: node
-  linkType: hard
-
-"@types/cacheable-request@npm:^6.0.1":
-  version: 6.0.1
-  resolution: "@types/cacheable-request@npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.1.tgz"
-  dependencies:
-    "@types/http-cache-semantics": "*"
-    "@types/keyv": "*"
-    "@types/node": "*"
-    "@types/responselike": "*"
-  checksum: 3dae802a0808573986c56b92bf16cd031a5b648b6c893d20c7ef6bfda3fc72a2107c7978697d2b27b14febc597162d6959985eeb5befc307a9f9f3c5081d4905
-  languageName: node
-  linkType: hard
-
-"@types/classnames@npm:^2.2.10":
-  version: 2.2.10
-  resolution: "@types/classnames@npm:2.2.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fclassnames%2Fdownload%2F%40types%2Fclassnames-2.2.10.tgz"
-  checksum: 31b6380183c2123c69f5e50b9e40c7da2862ddfe634361d906a6e300dacd716656ce95e508541d0ec300f71aeed57d30a7ea46f36e881c01eb2334843700fadc
-  languageName: node
-  linkType: hard
-
-"@types/color-name@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "@types/color-name@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz"
-  checksum: 8311db94a9c4ecd247763b81e783ee49d87678b4ce6a7ee502e2bd5cea242b7357804a04855db009f713174bc654cc0c01c7303d40d757e5d710f5ac0368500f
-  languageName: node
-  linkType: hard
-
-"@types/emscripten@npm:^1.38.0":
-  version: 1.39.4
-  resolution: "@types/emscripten@npm:1.39.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Femscripten%2Fdownload%2F%40types%2Femscripten-1.39.4.tgz"
-  checksum: b848421e2597a0ce56b74c6427f843cfd8f26dec8eaaa1929317e9417bc06eaa934057c317cbb561ade2f5462b6906e37868608211e09f9f507dca62066795a8
-  languageName: node
-  linkType: hard
-
-"@types/eslint-scope@npm:^3.7.0":
-  version: 3.7.0
-  resolution: "@types/eslint-scope@npm:3.7.0"
-  dependencies:
-    "@types/eslint": "*"
-    "@types/estree": "*"
-  checksum: 1ee912a956f6fecd26bef9517ef33473498feda4a7fc7f191b705c750dcf8bbbd78a83d8c69e66d98c23cad4dfc8769a464780a3cf395948e3f0f85146729f68
-  languageName: node
-  linkType: hard
-
-"@types/eslint@npm:*":
-  version: 7.2.4
-  resolution: "@types/eslint@npm:7.2.4"
-  dependencies:
-    "@types/estree": "*"
-    "@types/json-schema": "*"
-  checksum: 281fbca931a7a9e4d9512cdb7f7ff92ecbc66362615712bb42f9fa7405b8cfad77e8fef35999c0533954effc0dfd153aa496bef08e3c160e0d89367166d7becb
-  languageName: node
-  linkType: hard
-
-"@types/estree@npm:*":
-  version: 0.0.45
-  resolution: "@types/estree@npm:0.0.45::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.45.tgz"
-  checksum: 9d339cbcf29a96a32e9d40efc21009c2342e93c4f653294dd1ef081ae474bca9e54707e5d4a1cff90b9e3566e8bdd71ac31e0c3d24bc2ff1d3d5aa75058b3937
-  languageName: node
-  linkType: hard
-
-"@types/estree@npm:0.0.39":
-  version: 0.0.39
-  resolution: "@types/estree@npm:0.0.39::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.39.tgz"
-  checksum: 43e5361de39969def145f32f4599391ab13055ec94841f1633a7cfe10f0e8a940ebf0e9a4b2770454a6bddd034b57e7e0d51a4d565cb2714ee2accf10a7718be
-  languageName: node
-  linkType: hard
-
-"@types/estree@npm:^0.0.45":
-  version: 0.0.45
-  resolution: "@types/estree@npm:0.0.45"
-  checksum: 9d339cbcf29a96a32e9d40efc21009c2342e93c4f653294dd1ef081ae474bca9e54707e5d4a1cff90b9e3566e8bdd71ac31e0c3d24bc2ff1d3d5aa75058b3937
-  languageName: node
-  linkType: hard
-
-"@types/glob@npm:^7.1.1":
-  version: 7.1.3
-  resolution: "@types/glob@npm:7.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz"
-  dependencies:
-    "@types/minimatch": "*"
-    "@types/node": "*"
-  checksum: 633bf1dda9a30899b233ed6b97c75cdd59f2ee856a12240c85474ce6889e26b3b3520b62de56f6bb61824af0ef51b311a0cae305f27ba0de8ddc4898a3673d42
-  languageName: node
-  linkType: hard
-
-"@types/history@npm:*":
-  version: 4.7.6
-  resolution: "@types/history@npm:4.7.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhistory%2Fdownload%2F%40types%2Fhistory-4.7.6.tgz"
-  checksum: 8782d92953946314f7a4c76c2f47168f2fe6e43f01c31d44acac128638d8d5cd599247d2e593c3ed829387e8d48d8bf67155a3d0f7ce57e1920b9c1f2de10783
-  languageName: node
-  linkType: hard
-
-"@types/html-minifier-terser@npm:^5.0.0":
-  version: 5.1.0
-  resolution: "@types/html-minifier-terser@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhtml-minifier-terser%2Fdownload%2F%40types%2Fhtml-minifier-terser-5.1.0.tgz"
-  checksum: e07f30cf9b3bfc3fcf4854c28b43cbdfb9c25180368a393749c762c4b980985037acddef50d894d722bf6e3d866b4c6d6d466ecb3b4db997429e5f75cc8bc422
-  languageName: node
-  linkType: hard
-
-"@types/http-cache-semantics@npm:*":
-  version: 4.0.0
-  resolution: "@types/http-cache-semantics@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.0.tgz"
-  checksum: e16fae56d4daea4ed678b4d5918b693b44ca12fb5e479b87d242d3a35bf3a014974dcf9ed7aba7e29149fdb6c3719f9987fca51b20ef10aa84b58f86553c2f74
-  languageName: node
-  linkType: hard
-
-"@types/invariant@npm:^2.2.33":
-  version: 2.2.34
-  resolution: "@types/invariant@npm:2.2.34::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Finvariant%2Fdownload%2F%40types%2Finvariant-2.2.34.tgz"
-  checksum: d0ecc665e5c95abf1ad7263c8cc32604d6b3444cfbc97657fede7e63f3751554a4f35f72ae565d70c28184dfb8b0cd4c058eaec1af972999edfd0a81b365f74b
-  languageName: node
-  linkType: hard
-
-"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.6":
-  version: 7.0.6
-  resolution: "@types/json-schema@npm:7.0.6"
-  checksum: 820cabe35ac915b93e38b0c01957e5c49d7d9f69251dddfbf39af0ff4fe24f6e08b39e55603e0d212dea7bcaa383b1218b58a738d1c02013dc22df06547ff238
-  languageName: node
-  linkType: hard
-
-"@types/json-schema@npm:^7.0.3, @types/json-schema@npm:^7.0.4":
-  version: 7.0.5
-  resolution: "@types/json-schema@npm:7.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz"
-  checksum: 6290f9fe93ac957b244262d5ff56cfd3045c63da6ed88dcc2d5b84131e6284c8e6213bf0cb81423a4f940182647bcd69057309c982f8db64dfff8f65f800ef80
-  languageName: node
-  linkType: hard
-
-"@types/json5@npm:^0.0.29":
-  version: 0.0.29
-  resolution: "@types/json5@npm:0.0.29::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz"
-  checksum: 66e9ac0143ec521522c7bb670301e9836ee886207eeed1aab6d4854a1b19b404ab3a54cd8d449f9b1f13acc357f540be96f8ac2d1e86e301eab52ae0f9a4066f
-  languageName: node
-  linkType: hard
-
-"@types/keyv@npm:*":
-  version: 3.1.1
-  resolution: "@types/keyv@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.1.tgz"
-  dependencies:
-    "@types/node": "*"
-  checksum: 3aaf557d5b82e733d5a17b7f55af5d6be953363c3a594f006d64265790fe87c301c6e1400c0b6b1cf72add50a0ceddc25afb8231ab8302a2e5b6ebfbfac30e5d
-  languageName: node
-  linkType: hard
-
-"@types/lodash@npm:^4.14.162":
-  version: 4.14.162
-  resolution: "@types/lodash@npm:4.14.162"
-  checksum: 16205a12995d659ac556f25405cfeec3b9fb427364ed8e24e4e4ab84f646b1a2f6f08f6aee155ebc6127ac6791fd7755fc15be10b6c8dd5a3ab3d3f4917f7173
-  languageName: node
-  linkType: hard
-
-"@types/minimatch@npm:*":
-  version: 3.0.3
-  resolution: "@types/minimatch@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz"
-  checksum: 672ccdac197e8176eed1a9441d0caf8a29a90eb139b1cefdd4c9e71b1c48f5c749f5d101a2d85da15c6259214ebda95072835021407d60330a731a2672964b82
-  languageName: node
-  linkType: hard
-
-"@types/node@npm:*":
-  version: 14.0.23
-  resolution: "@types/node@npm:14.0.23::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz"
-  checksum: 35415a294f536c2b14d29ec02a733af23405f4e7e87dace5b4392a69358aae7a14d28805a528b6e9a5f55cfbd9e035bd817e4db0325945fe0332db40ecabdf84
-  languageName: node
-  linkType: hard
-
-"@types/node@npm:^13.7.0":
-  version: 13.13.14
-  resolution: "@types/node@npm:13.13.14::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.13.14.tgz"
-  checksum: b2fa5163740c067303f41b06aa35bc67e67ea5284de2aceac4c3b4eb8e34c1c9f102ecba82d268f05a4d06fbcc82079160ca577a763cfe31ee38a0a123bd42dd
-  languageName: node
-  linkType: hard
-
-"@types/node@npm:^14.14.5":
-  version: 14.14.5
-  resolution: "@types/node@npm:14.14.5"
-  checksum: 4916d5c46e604be9b76c69300efdf26538f74ad63a5df572a6b66b95238ddbed3c2bcd5a9748c6ec2ef1bf529d84b3f3a53a0eed54d1f46eaa29471cbb7b1406
-  languageName: node
-  linkType: hard
-
-"@types/parse-json@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "@types/parse-json@npm:4.0.0"
-  checksum: 4a8f720afac47b474d3f2eece312340e72bc31bc9561cda37b596ce2ed218c0099765d302625bb67d659a8452a1f93d514f4863c11c7ebaf65430428687dc426
-  languageName: node
-  linkType: hard
-
-"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.3":
-  version: 15.7.3
-  resolution: "@types/prop-types@npm:15.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.3.tgz"
-  checksum: bd0eab69d5120ad3784d0c9985f902653d5924707a7f2b3702a330e762dfd61b6494954cb54ad0c52b918ffd6f1e7e27c9270e4442bc15250de348596f2f60cb
-  languageName: node
-  linkType: hard
-
-"@types/react-dom@npm:^16.9.8":
-  version: 16.9.8
-  resolution: "@types/react-dom@npm:16.9.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-16.9.8.tgz"
-  dependencies:
-    "@types/react": "*"
-  checksum: 53a223c0266178bca9161301d18ee6199e8f75f88caed5c4601c5aaedaf4c68f03bd72f6aafa979254beb20759f0b68a542ce04295d704eb67ae179769c50813
-  languageName: node
-  linkType: hard
-
-"@types/react-responsive@npm:^8.0.2":
-  version: 8.0.2
-  resolution: "@types/react-responsive@npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-responsive%2Fdownload%2F%40types%2Freact-responsive-8.0.2.tgz"
-  dependencies:
-    "@types/react": "*"
-  checksum: 48bc498859226af961233c1bf4764b5f0af132a81e3dcb7089c40ce14bf4e94eec40bb960a85621dd8bf798f40e2caaf0addc649d3ddb9ec6bda7f9bac5d30ac
-  languageName: node
-  linkType: hard
-
-"@types/react-router-bootstrap@npm:^0.24.5":
-  version: 0.24.5
-  resolution: "@types/react-router-bootstrap@npm:0.24.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-bootstrap%2Fdownload%2F%40types%2Freact-router-bootstrap-0.24.5.tgz"
-  dependencies:
-    "@types/react": "*"
-    "@types/react-router-dom": "*"
-  checksum: 08b8ed99b750ffa14546653f73bcc2e39ab5149c4a22e1ef8d8dd0d73874bd38b5c7873bba34753cee4942141d9eabd520d5e36a12ead6309626699ba8d85faa
-  languageName: node
-  linkType: hard
-
-"@types/react-router-dom@npm:*":
-  version: 5.1.5
-  resolution: "@types/react-router-dom@npm:5.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router-dom%2Fdownload%2F%40types%2Freact-router-dom-5.1.5.tgz"
-  dependencies:
-    "@types/history": "*"
-    "@types/react": "*"
-    "@types/react-router": "*"
-  checksum: d25c11cb718653a01b0e2cd5e4a44b1910fd506b3141c49e4b47ee197ddc06a05f3ee3c6853c60c15d83b96aeea534321ab200d4fbfd4ba047413b2c7176bfcb
-  languageName: node
-  linkType: hard
-
-"@types/react-router-dom@npm:^5.1.6":
-  version: 5.1.6
-  resolution: "@types/react-router-dom@npm:5.1.6"
-  dependencies:
-    "@types/history": "*"
-    "@types/react": "*"
-    "@types/react-router": "*"
-  checksum: dcff1d613899af1cbfb003eb3994f7ebce5f2633e0018588008be39af8e15971041644b7c99e6448122d661d509ee7cafce7bb5972598e8bb6701e77c9431def
-  languageName: node
-  linkType: hard
-
-"@types/react-router@npm:*, @types/react-router@npm:^5.1.8":
-  version: 5.1.8
-  resolution: "@types/react-router@npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-router%2Fdownload%2F%40types%2Freact-router-5.1.8.tgz"
-  dependencies:
-    "@types/history": "*"
-    "@types/react": "*"
-  checksum: 8b4c8fefdba877971aeaa642d81074d0fda0db9d8891709071c8586c32c75afca1baf478c3b26bcbd404503304599d8ea3243beb4e01080ee77f48f56815ee73
-  languageName: node
-  linkType: hard
-
-"@types/react-transition-group@npm:^4.4.0":
-  version: 4.4.0
-  resolution: "@types/react-transition-group@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact-transition-group%2Fdownload%2F%40types%2Freact-transition-group-4.4.0.tgz"
-  dependencies:
-    "@types/react": "*"
-  checksum: b761f70623ca2a386a310536886e7ceed15087e59a3b6c68478c9965d38edd819c5b29e3fb79a5d911ee4b1db5ab397ae0ebb5a5ddf98f08708a6d592cb7c256
-  languageName: node
-  linkType: hard
-
-"@types/react@npm:*":
-  version: 16.9.43
-  resolution: "@types/react@npm:16.9.43::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.43.tgz"
-  dependencies:
-    "@types/prop-types": "*"
-    csstype: ^2.2.0
-  checksum: b9d4491463ab013e0752bf6f99bd578f91504f74dfd1ebd7fbceebbdffe89762b040494a78403e249bb72d1645d2784f844890e7b1acdb3634432533ff9732fb
-  languageName: node
-  linkType: hard
-
-"@types/react@npm:^16.9.11, @types/react@npm:^16.9.35":
-  version: 16.9.49
-  resolution: "@types/react@npm:16.9.49::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Freact%2Fdownload%2F%40types%2Freact-16.9.49.tgz"
-  dependencies:
-    "@types/prop-types": "*"
-    csstype: ^3.0.2
-  checksum: cf5dabe1e9c893a19a338002ac4bf5a86c9bc3cd88eb07aece54e6d2e5af35debe2a8c72d211ad9133391543ce115219cd7c7f2a6f649b81caf4548e1cc99061
-  languageName: node
-  linkType: hard
-
-"@types/react@npm:^16.9.53":
-  version: 16.9.53
-  resolution: "@types/react@npm:16.9.53"
-  dependencies:
-    "@types/prop-types": "*"
-    csstype: ^3.0.2
-  checksum: 01c646c8f08306660441a14495e926c0362114da7813c3bc3d4d58b47590ee92274bbbff18f3fafd465a09369daa25982d68ba6628f1080120b62d40ce75ca40
-  languageName: node
-  linkType: hard
-
-"@types/resolve@npm:0.0.8":
-  version: 0.0.8
-  resolution: "@types/resolve@npm:0.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresolve%2Fdownload%2F%40types%2Fresolve-0.0.8.tgz"
-  dependencies:
-    "@types/node": "*"
-  checksum: f54f13e4b6ac46a6c7bde9e609cd730f4369b434aa59c5230478b9262bb75e7349c3247fd2cdb917e98d053a57f5609dd552379c612a720b59a8714914d324ed
-  languageName: node
-  linkType: hard
-
-"@types/responselike@npm:*, @types/responselike@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "@types/responselike@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz"
-  dependencies:
-    "@types/node": "*"
-  checksum: e6e6613c800aeda63e2331e753e8d21df1a2c9aa7a4bc71ed792a848e4811fc96e609759089355314a2318c76eff1f161499cd242044838ab1e6f56e463ebb9c
-  languageName: node
-  linkType: hard
-
-"@types/semver@npm:^7.1.0":
-  version: 7.3.4
-  resolution: "@types/semver@npm:7.3.4"
-  checksum: 7e8588aa55ecb344eda6954674b83a3c568d97d478e70e4617bd3ab22902590ac416ccf2cea48b58fb2f0fbd80f9ad1896332c9b3c3189ffd24e4350ff22094a
-  languageName: node
-  linkType: hard
-
-"@types/source-list-map@npm:*":
-  version: 0.1.2
-  resolution: "@types/source-list-map@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz"
-  checksum: 191f0e3b056b481e7a0bbb38f3d5b54b015556e38075726ca2637a35d3694df85cd16761b1b188729ac687a55aec3cbc2b07033ac090bcc13efe09ad10a3e935
-  languageName: node
-  linkType: hard
-
-"@types/tapable@npm:*, @types/tapable@npm:^1.0.5":
-  version: 1.0.6
-  resolution: "@types/tapable@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.6.tgz"
-  checksum: 01709a2f8dbea665a39c008ba6995c76210fabb52434815e7632c7fff22ecad1dd49a1d75b8f5b2e9b365c6d7a6407127bed834587df4777b800110c2a74fc36
-  languageName: node
-  linkType: hard
-
-"@types/treeify@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "@types/treeify@npm:1.0.0"
-  checksum: f7b82d91a4be51d5b93fb1e245ea71768e06a567daa1ff84fe075c3e62ce90f2703fa8258f0f093f92816416fe2f41c3177e5005114613adbdddabe2ddc3e593
-  languageName: node
-  linkType: hard
-
-"@types/uglify-js@npm:*":
-  version: 3.9.3
-  resolution: "@types/uglify-js@npm:3.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.9.3.tgz"
-  dependencies:
-    source-map: ^0.6.1
-  checksum: b12ae05d8faace173070c3ab2d0a7345a4fdefd9c1a248ac6256200f9ba5ad129c89f313e7e12544027906ffc620a56b458ab3731102f65c5412c0c068232374
-  languageName: node
-  linkType: hard
-
-"@types/warning@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "@types/warning@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwarning%2Fdownload%2F%40types%2Fwarning-3.0.0.tgz"
-  checksum: cb7a16aa88641beceec53ce765274c1ba3a9136e3c7c53cafd769d5063ea96f8899332ce7031c6f374bd23b5713a9a733d42c369ebdb4b62daf9b7562700848c
-  languageName: node
-  linkType: hard
-
-"@types/webpack-env@npm:^1.15.3":
-  version: 1.15.3
-  resolution: "@types/webpack-env@npm:1.15.3"
-  checksum: e37909d70e4940a431c912645dca781fd164c906f68be6419a09099cbf95e9936e958acd949c35d45f6f4f1144fa0ee46a3962bd6b46aa93173aed5a5bd5cdc2
-  languageName: node
-  linkType: hard
-
-"@types/webpack-sources@npm:*":
-  version: 1.4.0
-  resolution: "@types/webpack-sources@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-1.4.0.tgz"
-  dependencies:
-    "@types/node": "*"
-    "@types/source-list-map": "*"
-    source-map: ^0.7.3
-  checksum: fc237a6e8b04351329da179024b6fba4841ecc02374215f41b83693576ed553462c9c0cb3da59d044a3c7caa1153e40222843da073d8198f9eb20a5ce3e686e0
-  languageName: node
-  linkType: hard
-
-"@types/webpack@npm:^4.4.31, @types/webpack@npm:^4.41.8":
-  version: 4.41.21
-  resolution: "@types/webpack@npm:4.41.21::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.21.tgz"
-  dependencies:
-    "@types/anymatch": "*"
-    "@types/node": "*"
-    "@types/tapable": "*"
-    "@types/uglify-js": "*"
-    "@types/webpack-sources": "*"
-    source-map: ^0.6.0
-  checksum: 3a02667221be2d8ecdb2da8d78e74dbc6ef216a4f0c636017e9dbe243198ed80a258e0c9f9e0613eea76efe77b5293f6f052dee4d26adc3dd54e56f38a2031f2
-  languageName: node
-  linkType: hard
-
-"@types/xregexp@npm:^4.3.0":
-  version: 4.3.0
-  resolution: "@types/xregexp@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fxregexp%2Fdownload%2F%40types%2Fxregexp-4.3.0.tgz"
-  checksum: a25f5cc1e791d0a5e3359ad2daac293355ab195624aaae29141420cc5327226a8a9ca527947f70ca041039a7d2e57da6376f13ddad94340e0c48496f820cae58
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/eslint-plugin@npm:^4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/eslint-plugin@npm:4.6.0"
-  dependencies:
-    "@typescript-eslint/experimental-utils": 4.6.0
-    "@typescript-eslint/scope-manager": 4.6.0
-    debug: ^4.1.1
-    functional-red-black-tree: ^1.0.1
-    regexpp: ^3.0.0
-    semver: ^7.3.2
-    tsutils: ^3.17.1
-  peerDependencies:
-    "@typescript-eslint/parser": ^4.0.0
-    eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
-    typescript: "*"
-  peerDependenciesMeta:
-    typescript:
-      optional: true
-  checksum: 7bf5bb6a0c9103d7eb8a1f8fcf0d48e5cf4a736b0d003fb2e899d37a416c3ba79d697e9a9b43f99b3a0a0ba606d0f7a05312f63aff7fc3c435b9f59a6172f423
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/experimental-utils@npm:4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/experimental-utils@npm:4.6.0"
-  dependencies:
-    "@types/json-schema": ^7.0.3
-    "@typescript-eslint/scope-manager": 4.6.0
-    "@typescript-eslint/types": 4.6.0
-    "@typescript-eslint/typescript-estree": 4.6.0
-    eslint-scope: ^5.0.0
-    eslint-utils: ^2.0.0
-  peerDependencies:
-    eslint: "*"
-  checksum: ca0fdd7e51408ed79a7844abf91f9b549a6eabd5923463adfecc08e42ea4ac32d1b770dc41208a1a9f773626f963002015e5fde95fa209001864fd69fd0f2215
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/parser@npm:^4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/parser@npm:4.6.0"
-  dependencies:
-    "@typescript-eslint/scope-manager": 4.6.0
-    "@typescript-eslint/types": 4.6.0
-    "@typescript-eslint/typescript-estree": 4.6.0
-    debug: ^4.1.1
-  peerDependencies:
-    eslint: ^5.0.0 || ^6.0.0 || ^7.0.0
-    typescript: "*"
-  peerDependenciesMeta:
-    typescript:
-      optional: true
-  checksum: ada5fea21ccadf57a5c44d68c30ba8b07354c7f0c9bd7008c622386ebfe3887aa4cf17667d1e295f1c81dc354841645c6ec6d87e496ceda2f6eb45e4c690bdac
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/scope-manager@npm:4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/scope-manager@npm:4.6.0"
-  dependencies:
-    "@typescript-eslint/types": 4.6.0
-    "@typescript-eslint/visitor-keys": 4.6.0
-  checksum: 8bf4f4646e20e2b824cb799942890cefe56ee78fa50a383162ca4ec945eeb36490f42116c6482ab880c23c5fd3fc22eec02a412894f8b492a6b9b5488da1aad2
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/types@npm:4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/types@npm:4.6.0"
-  checksum: c136ebe791b82187d2fd9e0d5b76aa1ec3e644fe11465222faa114f3e170fd74929d4b5c4a3184346715a065cf8cf637cf9e599c0dc4162437bf5dca4511cb2a
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/typescript-estree@npm:4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/typescript-estree@npm:4.6.0"
-  dependencies:
-    "@typescript-eslint/types": 4.6.0
-    "@typescript-eslint/visitor-keys": 4.6.0
-    debug: ^4.1.1
-    globby: ^11.0.1
-    is-glob: ^4.0.1
-    lodash: ^4.17.15
-    semver: ^7.3.2
-    tsutils: ^3.17.1
-  peerDependencies:
-    typescript: "*"
-  peerDependenciesMeta:
-    typescript:
-      optional: true
-  checksum: 27d35ac3c49f22568d217d6560745a7f263747eeb42cf627fb64e910e90b32a78e3133e2151ea1aa43c04da5a37a6573b1237eca5bb829eb671cbe5e4d6ed6b0
-  languageName: node
-  linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:4.6.0":
-  version: 4.6.0
-  resolution: "@typescript-eslint/visitor-keys@npm:4.6.0"
-  dependencies:
-    "@typescript-eslint/types": 4.6.0
-    eslint-visitor-keys: ^2.0.0
-  checksum: ea1a701501f7e3f5818f026e8040a928b3dd47d6dcbe39aa825690bfb247fbdfdeafa85db204513def8fa0362850b3357256dd89c9c5bebe59943ed805994fca
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/ast@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/ast@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/helper-module-context": 1.9.0
-    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
-    "@webassemblyjs/wast-parser": 1.9.0
-  checksum: 25d93900cc32c2cfa34860b988a534c6671cf789159cc6b918afdf6099f9f2f70710a947501170d9ba0a24f0503fe3b3b45300ec14ec05c9d833c055795133c4
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/floating-point-hex-parser@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz"
-  checksum: af9e11a688b0748f2e4119379d64a8f990a0edf1fbf80df612d2fdf3874528f4917ba51c735b324266314b6587b229825eb53eacbc9e9d00ce1d21ebd2a7d9dc
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-api-error@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-api-error@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz"
-  checksum: ae7b9703ecbd0db50a2e95e23c9a1de2a0ba3d98187f4cd57473df4f2a88f9c3a2e53f98ce3a8ba0d73718a50733843ba0d8f88440d5e4a90704bb831f26a2e0
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-buffer@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-buffer@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz"
-  checksum: 94bcf27ccf4e5cfcdb92f89bb1e80a973656cab5d19e67eb61a8b5c9cf4ce060616e3afc3d900f6cffa2fc9746a4ad7be75fa448c06af4d4103e507584149a78
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-code-frame@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-code-frame@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/wast-printer": 1.9.0
-  checksum: 008fc534f21b3b054bd0bd863d3afcb30740d9c8cdc5044481747533bd276729ec196392a78c16f5a5ee8a6d067fd5fbaed16142b2b4097b1c5340451b5a5d1d
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-fsm@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-fsm@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz"
-  checksum: 3181e69c16aad1267fd471283b797e86f5e0b26abfddf1d0d2ddef8a758f486cd2482887ec317ecbb5c421aa1d11dea17a06e92c59ea9bd38513204e6c7b8f3d
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-module-context@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-module-context@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-  checksum: 9aa715a8d06a17ea92a6ec44322628f9418aa414b888632b5d8092a5125c2b6dcf2c6b80be2b6ad548201aa38e21d390e13c34f2edf7ba3335442739d88b0aef
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-wasm-bytecode@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz"
-  checksum: 27ba07f49514d49ccf62a6e7a460941a6794107c9d7ef9685fda8a7373169d6ebdb676071006ce20581abb9f62562fa447473fb0b031e9ef6b2f62fa819be3f1
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/helper-wasm-section@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/helper-wasm-section@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-buffer": 1.9.0
-    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
-    "@webassemblyjs/wasm-gen": 1.9.0
-  checksum: 0e2957efc4001b1e030cf088f41a81b779437bf073272fbb31e3fc36d979dc5dd4137611397a70fa308986597a09cbdcd7806f123a0a809ae1035c40495a59d3
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/ieee754@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/ieee754@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz"
-  dependencies:
-    "@xtuc/ieee754": ^1.2.0
-  checksum: 1474a87d8686542267b11b8ab0a1a37d3003cd6d4b797b8f96c58e348d483fec4e267ec1e128525e56e9250f90b75a79f1187a6beba2072d568b7a01faf3b8d4
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/leb128@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/leb128@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz"
-  dependencies:
-    "@xtuc/long": 4.2.2
-  checksum: af49765d067ca2db5ec6bda360a235b9063756092a6439b8a296cb1ee0ebff778bcd68f686d3c350d1375a3fdb80fd0a91ea9655da5d1ea10ea5d3eae19c1105
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/utf8@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/utf8@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz"
-  checksum: 172fd362aaf6760b826117177ec171ce63b5fabe172f09343b8cd24852f33475f3a596bc1d02088f64a498556a19f98dce00cafe3da3fb8d77367db5326d2d66
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wasm-edit@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wasm-edit@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-buffer": 1.9.0
-    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
-    "@webassemblyjs/helper-wasm-section": 1.9.0
-    "@webassemblyjs/wasm-gen": 1.9.0
-    "@webassemblyjs/wasm-opt": 1.9.0
-    "@webassemblyjs/wasm-parser": 1.9.0
-    "@webassemblyjs/wast-printer": 1.9.0
-  checksum: 16016c9ef5b69fed1d6a6f21926e6e4a9add41e316efb23f6aeadc6efe2035cfb528720965883ac7861a5584b679a2697416f19db983c8a0c8bd6c7de7a0c6f1
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wasm-gen@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wasm-gen@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
-    "@webassemblyjs/ieee754": 1.9.0
-    "@webassemblyjs/leb128": 1.9.0
-    "@webassemblyjs/utf8": 1.9.0
-  checksum: 1afcebfd1272b6f2aac2322b64ced22194d5fe91baf7cbc9fbd4e18a9cf9b1c2d31af5a02a7bf15d5880d598de822accc21d446a94ad0e70d7eb09eeab7de6c6
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wasm-opt@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wasm-opt@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-buffer": 1.9.0
-    "@webassemblyjs/wasm-gen": 1.9.0
-    "@webassemblyjs/wasm-parser": 1.9.0
-  checksum: 2ce89f206e40dbfc44ec4a04669b76d14810db70da2506f90a7d5ff45f8002e34d7eaed447c3423cdad76d60617012d1fd0c055b63a5ed863b0068e5ce3e4032
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wasm-parser@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wasm-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-api-error": 1.9.0
-    "@webassemblyjs/helper-wasm-bytecode": 1.9.0
-    "@webassemblyjs/ieee754": 1.9.0
-    "@webassemblyjs/leb128": 1.9.0
-    "@webassemblyjs/utf8": 1.9.0
-  checksum: b8cb346c9b7d1238d24a418bbc676c5adea7561202580527e3f6a8f74e38de8ba60962d5bda56fa7c1d652d28d787234dfae0b4777e2a8bcaf3e0d539ced8acf
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wast-parser@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wast-parser@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/floating-point-hex-parser": 1.9.0
-    "@webassemblyjs/helper-api-error": 1.9.0
-    "@webassemblyjs/helper-code-frame": 1.9.0
-    "@webassemblyjs/helper-fsm": 1.9.0
-    "@xtuc/long": 4.2.2
-  checksum: eaa0140a446be6138bbd19ecadf93119381f4cfabe5d7453397f2bd1716e00498666f12944b7da0b472ad1bcc27eca2fd9934785b57cfe97910189f0df59c3f1
-  languageName: node
-  linkType: hard
-
-"@webassemblyjs/wast-printer@npm:1.9.0":
-  version: 1.9.0
-  resolution: "@webassemblyjs/wast-printer@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz"
-  dependencies:
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/wast-parser": 1.9.0
-    "@xtuc/long": 4.2.2
-  checksum: 9f013b27e28b60cb215011079a15c94d1a7b0784eb3b59ec4936f8c0635ecdb58875c6809485cff814e01df170f02c18676cf782826795dc08553b98e69c1049
-  languageName: node
-  linkType: hard
-
-"@webpack-cli/info@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "@webpack-cli/info@npm:1.0.2"
-  dependencies:
-    envinfo: ^7.7.3
-  peerDependencies:
-    webpack-cli: 4.x.x
-  checksum: a961e982fbb4d6f0c25e328215c157775236b0bd19ea699ce46963e692b21abbc002f68f753f8d80e935757070b656aa5edeab4f3692346b308a3bc39ad52528
-  languageName: node
-  linkType: hard
-
-"@webpack-cli/serve@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "@webpack-cli/serve@npm:1.0.1"
-  peerDependencies:
-    webpack-cli: 4.x.x
-    webpack-dev-server: "*"
-  peerDependenciesMeta:
-    webpack-dev-server:
-      optional: true
-  checksum: d1dd4fb204a1937a7a2340d466b0e45ab0370fbf933244caa662627bc991893678755779b6d8e8c0775827c9dfb2b58274f58c948799f8c5efa80c83b4eb17b7
-  languageName: node
-  linkType: hard
-
-"@xtuc/ieee754@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "@xtuc/ieee754@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Fieee754%2Fdownload%2F%40xtuc%2Fieee754-1.2.0.tgz"
-  checksum: 65bb9c55a054e2d79bf2a8c4ea23a962bd23f654b84532f3555d158d06dedf1603a4131a2f685cad988e582824ef7b8179918e894537be9626ea357f8ea60a63
-  languageName: node
-  linkType: hard
-
-"@xtuc/long@npm:4.2.2":
-  version: 4.2.2
-  resolution: "@xtuc/long@npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40xtuc%2Flong%2Fdownload%2F%40xtuc%2Flong-4.2.2.tgz"
-  checksum: ec09a359f98e9f8c47bf6c965e73b520a1a65e93f1febf6472babc8b6b0b425a2084452be103da5be11aec8c502ecfa29400713d55ef774579d04f691db44a2d
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/core@npm:^2.3.1":
-  version: 2.3.1
-  resolution: "@yarnpkg/core@npm:2.3.1"
-  dependencies:
-    "@arcanis/slice-ansi": ^1.0.2
-    "@types/semver": ^7.1.0
-    "@types/treeify": ^1.0.0
-    "@yarnpkg/fslib": ^2.3.0
-    "@yarnpkg/json-proxy": ^2.1.0
-    "@yarnpkg/libzip": ^2.2.1
-    "@yarnpkg/parsers": ^2.3.0
-    "@yarnpkg/pnp": ^2.3.1
-    "@yarnpkg/shell": ^2.4.0
-    binjumper: ^0.1.2
-    camelcase: ^5.3.1
-    chalk: ^3.0.0
-    ci-info: ^2.0.0
-    clipanion: ^2.6.2
-    cross-spawn: 7.0.3
-    diff: ^4.0.1
-    globby: ^11.0.1
-    got: ^11.1.3
-    json-file-plus: ^3.3.1
-    lodash: ^4.17.15
-    logic-solver: ^2.0.1
-    micromatch: ^4.0.2
-    mkdirp: ^0.5.1
-    p-limit: ^2.2.0
-    pluralize: ^7.0.0
-    pretty-bytes: ^5.1.0
-    semver: ^7.1.2
-    stream-to-promise: ^2.2.0
-    tar-stream: ^2.0.1
-    treeify: ^1.1.0
-    tslib: ^1.13.0
-    tunnel: ^0.0.6
-  checksum: d2236acac238cd409df88be37ded30315fb0681abc6dbb5a1e9d3c7c8c08b842a7e19662ff8a7b3f31eb526a1c35fb95f3656270ba3ed1a075e6fa74732e0ab2
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/fslib@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "@yarnpkg/fslib@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Ffslib%2Fdownload%2F%40yarnpkg%2Ffslib-2.1.0.tgz"
-  dependencies:
-    "@yarnpkg/libzip": ^2.1.0
-    tslib: ^1.13.0
-  checksum: 5a77427f2b746b8003a7bd1352c94e31c26d580605f0db15a3a45c40eac0b538362a7371abeb17b939b35e87dbb2204eb1783afad386733ba0923d0d876962d1
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/fslib@npm:^2.3.0":
-  version: 2.3.0
-  resolution: "@yarnpkg/fslib@npm:2.3.0"
-  dependencies:
-    "@yarnpkg/libzip": ^2.2.1
-    tslib: ^1.13.0
-  checksum: 0969bd6b12cb5668f4c544aea080ed13c6196a4954efcddbcbf5629048b69e38e77ad705f20389cbd3ac201ba55ee0fc6aedb844f0bff20b850085c2b85fa2c3
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/json-proxy@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "@yarnpkg/json-proxy@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Fjson-proxy%2Fdownload%2F%40yarnpkg%2Fjson-proxy-2.1.0.tgz"
-  dependencies:
-    "@yarnpkg/fslib": ^2.1.0
-    tslib: ^1.13.0
-  checksum: 9c3877ca034d9f5a802a15853ae006aab8df7b0969b79a46a9dcec348b5342ec11c4027de73367e5c1a52d13620a96c15c9f040968ebb4c11e9407248f63555c
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/libzip@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "@yarnpkg/libzip@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2F%40yarnpkg%2Flibzip%2Fdownload%2F%40yarnpkg%2Flibzip-2.1.0.tgz"
-  dependencies:
-    "@types/emscripten": ^1.38.0
-    tslib: ^1.13.0
-  checksum: 886d4a269a91c229c52984cb2dd040aa8dfa8114c39b72a380f7dab7755f9c250c228f8e3fa45b985bee9a4ac602b6ec3c57b80e98d7320e260774d9a856c6d8
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/libzip@npm:^2.2.1":
-  version: 2.2.1
-  resolution: "@yarnpkg/libzip@npm:2.2.1"
-  dependencies:
-    "@types/emscripten": ^1.38.0
-    tslib: ^1.13.0
-  checksum: 75813c2dbed76fd81aa7ba04f592888c45c58334c901edf3782105baa9b11e084473db5a3da678626509a7de3196e5297c0a790424e86d6976e916502b576c81
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/parsers@npm:^2.3.0":
-  version: 2.3.0
-  resolution: "@yarnpkg/parsers@npm:2.3.0"
-  dependencies:
-    js-yaml: ^3.10.0
-    tslib: ^1.13.0
-  checksum: 3c221fe5e2259a71bbfab7fe03b4790c1cc4d139b64ae45701b5a0542ae7f15e06613a6c486687fbf90318d8f95508134b42591f5918421343981496b9e721f4
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/pnp@npm:^2.3.1":
-  version: 2.3.1
-  resolution: "@yarnpkg/pnp@npm:2.3.1"
-  dependencies:
-    "@types/node": ^13.7.0
-    "@yarnpkg/fslib": ^2.3.0
-    tslib: ^1.13.0
-  checksum: b04da36672da3dcd0fd2df3a9055a783f1056df157b5674a4c63c4e2269f73fa2ea877d61d6f5f7abd7d7b23a36dfcb3918b0c91635264d6272b0c3fe270a194
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/pnpify@npm:^2.3.3":
-  version: 2.3.3
-  resolution: "@yarnpkg/pnpify@npm:2.3.3"
-  dependencies:
-    "@yarnpkg/core": ^2.3.1
-    "@yarnpkg/fslib": ^2.3.0
-    "@yarnpkg/parsers": ^2.3.0
-    chalk: ^3.0.0
-    clipanion: ^2.6.2
-    comment-json: ^2.2.0
-    lodash: ^4.17.15
-    tslib: ^1.13.0
-  peerDependencies:
-    eslint: "*"
-    typescript: "*"
-  peerDependenciesMeta:
-    eslint:
-      optional: true
-    typescript:
-      optional: true
-  bin:
-    pnpify: ./lib/cli.js
-  checksum: 80ccd1a56083913c105d7028ca63bac2fd62883404bf929fe1bea12c0768d6e0f981a61654115e6bbe700309887cafe108c0bce7a4bd603d8cbaeb29773c5014
-  languageName: node
-  linkType: hard
-
-"@yarnpkg/shell@npm:^2.4.0":
-  version: 2.4.0
-  resolution: "@yarnpkg/shell@npm:2.4.0"
-  dependencies:
-    "@yarnpkg/fslib": ^2.3.0
-    "@yarnpkg/parsers": ^2.3.0
-    clipanion: ^2.6.2
-    cross-spawn: 7.0.3
-    fast-glob: ^3.2.2
-    micromatch: ^4.0.2
-    stream-buffers: ^3.0.2
-    tslib: ^1.13.0
-  bin:
-    shell: ./lib/cli.js
-  checksum: fd09d872d57d0e4d6b0eea5ba15148e277b2c875eb46f098405617987801d5a9f50c34ba51ccc5b4528d6724b212de8540a39668c1b438654ce549e7aa53dcde
-  languageName: node
-  linkType: hard
-
-"abbrev@npm:1":
-  version: 1.1.1
-  resolution: "abbrev@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fabbrev%2Fdownload%2Fabbrev-1.1.1.tgz"
-  checksum: 9f9236a3cc7f56c167be3aa81c77fcab2e08dfb8047b7861b91440f20b299b9442255856bdbe9d408d7e96a0b64a36e1c27384251126962490b4eee841b533e0
-  languageName: node
-  linkType: hard
-
-"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.7":
-  version: 1.3.7
-  resolution: "accepts@npm:1.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz"
-  dependencies:
-    mime-types: ~2.1.24
-    negotiator: 0.6.2
-  checksum: 2686fa30dbc850db1bf458dc8171fba13c54ed6cb25f4298ec7c2f88b8dfc50351f25c40abe3a948e4ec7a0cc8ea83d1c55c2f73ffa612d18840a8778d4a2ee0
-  languageName: node
-  linkType: hard
-
-"acorn-jsx@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "acorn-jsx@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz"
-  peerDependencies:
-    acorn: ^6.0.0 || ^7.0.0
-  checksum: 1247cc4b32e7883c70823eae643ef07faefb02ef6084bb92d650e5564bb22d6e6392771036c1e15428dc01e6350a5336c6741e272c30ab6bf9ce578e4701f6c0
-  languageName: node
-  linkType: hard
-
-"acorn@npm:^7.1.0":
-  version: 7.3.1
-  resolution: "acorn@npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz"
-  bin:
-    acorn: bin/acorn
-  checksum: 3fa70393843c3fd4af691f449563e983e064c5c3f655fd943f5f77fb767257623f8afc0a2454b0037aa0c4dd95374c75a9e0e6c54a5f497fc63e63449ad6327c
-  languageName: node
-  linkType: hard
-
-"acorn@npm:^7.4.0":
-  version: 7.4.1
-  resolution: "acorn@npm:7.4.1"
-  bin:
-    acorn: bin/acorn
-  checksum: 2bde98c28c1be9a08e41e581179b776b43396c9486ce52b2b9848d73c53df38c516b7edba4bacdc84cabc9d7a3299f3b46ef240ae261c38dbf8ddd89f635bd32
-  languageName: node
-  linkType: hard
-
-"acorn@npm:^8.0.4":
-  version: 8.0.4
-  resolution: "acorn@npm:8.0.4"
-  bin:
-    acorn: bin/acorn
-  checksum: d23a2df6c64845afd521f0df1f8f93f611c3647e01b8770b8ad2972c59246529fa42756bfd3ad6abf2d0cacb8e5203f5470c96637778ec583460f1637e1f6eb7
-  languageName: node
-  linkType: hard
-
-"aggregate-error@npm:^3.0.0":
-  version: 3.0.1
-  resolution: "aggregate-error@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz"
-  dependencies:
-    clean-stack: ^2.0.0
-    indent-string: ^4.0.0
-  checksum: aee96f00c21c9a8c005d949a448e656339235faeec5c050e041ed3d33812fc3478a777ffd6309eb61c17ceb66dd0d2c6220e06e565ec994f536d9a16814e0ebf
-  languageName: node
-  linkType: hard
-
-"ajv-errors@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "ajv-errors@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz"
-  peerDependencies:
-    ajv: ">=5.0.0"
-  checksum: d8356aadcb8a602c69c8eefca1aff93271316c45c42b975606346cfd7c3f9bf56569c15bd2fe18bee5ae16d4db15fb9b0b12cb48c057335980993978c5ff2450
-  languageName: node
-  linkType: hard
-
-"ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.4.1":
-  version: 3.5.1
-  resolution: "ajv-keywords@npm:3.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz"
-  peerDependencies:
-    ajv: ^6.9.1
-  checksum: f91a8a5304d1f314f5ec1429c9bd895964df50eb8455430ce51d79d38fd2ed63e807dbd1966eb759ac25c06b32485ccc8a2735145836ce01fffe13859c449ea0
-  languageName: node
-  linkType: hard
-
-"ajv-keywords@npm:^3.5.2":
-  version: 3.5.2
-  resolution: "ajv-keywords@npm:3.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz"
-  peerDependencies:
-    ajv: ^6.9.1
-  checksum: 01f26c292304870c03a1cd14fc1ddcf7c713a05611a122c5193694d4050063d5fba46cbf8b5b2ebde364166fddd3c2e0abdcd97df655b7a7fbb3e6634eeb056a
-  languageName: node
-  linkType: hard
-
-"ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.2, ajv@npm:^6.5.5":
-  version: 6.12.3
-  resolution: "ajv@npm:6.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz"
-  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
-  checksum: b20a171bf30ede1635c6b1955bcc1db5a6b3e7dfa77f75aace9fb0db87375430c46d5cdd84158a0bf0a8da91e4da97bdb1afe5604a0969d8468b7c11143fdbba
-  languageName: node
-  linkType: hard
-
-"ajv@npm:^6.12.4":
-  version: 6.12.4
-  resolution: "ajv@npm:6.12.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz"
-  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
-  checksum: 50d72b0a10326732072f5481b1b6bd5a43f8d770878b8f88ba5bb232abb745cefbf7f87a0e64679bd477d4a8bba0b3aea084675bd34943db5279c15907ee658f
-  languageName: node
-  linkType: hard
-
-"ajv@npm:^6.12.5":
-  version: 6.12.6
-  resolution: "ajv@npm:6.12.6"
-  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
-  checksum: 19a8f3b0a06001eb68e6268f4f9f04424b32baadd5df6ba8292cd473e22e5f4019ed9ab17c3e3510394178ed8bef9b42ad0bdb5c675d65f042421a774780ce1a
-  languageName: node
-  linkType: hard
-
-"ansi-colors@npm:^3.0.0":
-  version: 3.2.4
-  resolution: "ansi-colors@npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz"
-  checksum: 86ec4a476ae8661237c0da58c0b4c48ea57719fdd80eed00132db09ee88d69f5caa5889e13ccd07489e710bf3b9fd85123729e0660384d4373e92ef6125c1fad
-  languageName: node
-  linkType: hard
-
-"ansi-colors@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "ansi-colors@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz"
-  checksum: 50d8dfbce25602caea1b170ecf4c71c4c9c58d2d1e3186fb5712848c0610d05fe60b8bb6a9eaebd9b54f1db3baf6f603e04214cce597cc7799bc9f47fd9a797a
-  languageName: node
-  linkType: hard
-
-"ansi-escapes@npm:^4.3.1":
-  version: 4.3.1
-  resolution: "ansi-escapes@npm:4.3.1"
-  dependencies:
-    type-fest: ^0.11.0
-  checksum: bcb39e57bd32af0236c4ded96aaf8ef5d86c5a4683762b0be998c68cd11d5afd93296f4b5e087a3557da82a899b7c4d081483d603a4d4647e6a6613bf1aded8a
-  languageName: node
-  linkType: hard
-
-"ansi-html@npm:0.0.7":
-  version: 0.0.7
-  resolution: "ansi-html@npm:0.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz"
-  bin:
-    ansi-html: ./bin/ansi-html
-  checksum: 1178680548785b6557e67c197c343411ee1a334606058ebcfb4a3c79accddaa43edb511b0dcb79c15a18041fe0e8d1063bbbad95be8b5b1d56934b9a51d88c83
-  languageName: node
-  linkType: hard
-
-"ansi-regex@npm:^2.0.0":
-  version: 2.1.1
-  resolution: "ansi-regex@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz"
-  checksum: 93a53c923fd433f67cd3d5647dffa6790f37bbfb924cf73ad23e28a8e414bde142d1da260d9a2be52ac4aa382063196880b1d40cf8b547642c746ed538ebf6c4
-  languageName: node
-  linkType: hard
-
-"ansi-regex@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "ansi-regex@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz"
-  checksum: 53b6fe447cf92ee59739379de637af6f86b3b8a9537fbfe36a66f946f1d9d34afc3efe664ac31bcc7c3af042d43eabcfcfd3f790316d474bbc7b19a4b1d132dd
-  languageName: node
-  linkType: hard
-
-"ansi-regex@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "ansi-regex@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.0.tgz"
-  checksum: cbd9b5c9dbbb4a949c2a6e93f1c6cc19f0683d8a4724d08d2158627be6d373f0f3ba1f4ada01dce7ee141f2ba2628fbbd29932c7d49926e3b630c7f329f3178b
-  languageName: node
-  linkType: hard
-
-"ansi-styles@npm:^2.2.1":
-  version: 2.2.1
-  resolution: "ansi-styles@npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz"
-  checksum: 108c7496372982f1ee53f3f09975de89cc771d2f7c89a32d56ab7a542f67b7de97391c9c16b43b39eb7ea176d3cfbb15975b6b355ae827f15f5a457b1b9dec31
-  languageName: node
-  linkType: hard
-
-"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1":
-  version: 3.2.1
-  resolution: "ansi-styles@npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz"
-  dependencies:
-    color-convert: ^1.9.0
-  checksum: 456e1c23d9277512a47718da75e7fbb0a5ee215ef893c2f76d6b3efe8fceabc861121b80b0362146f5f995d21a1633f05a19bbf6283ae66ac11dc3b9c0bed779
-  languageName: node
-  linkType: hard
-
-"ansi-styles@npm:^4.1.0":
-  version: 4.2.1
-  resolution: "ansi-styles@npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz"
-  dependencies:
-    "@types/color-name": ^1.1.1
-    color-convert: ^2.0.1
-  checksum: c8c007d5dab7b4fea064c9ea318114e1f6fc714bb382d061ac09e66bc83c8f3ce12bb6354be01598722c14a5d710af280b7614d269354f80d2535946aefa82f4
-  languageName: node
-  linkType: hard
-
-"any-promise@npm:^1.1.0, any-promise@npm:~1.3.0":
-  version: 1.3.0
-  resolution: "any-promise@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz"
-  checksum: e829425e4aef532fb9063c638de4693feaf285dae8ba84bcabd9c6d49446264650d1e16b73af8a25ae1e4480f9a4dc7cae364b4c4d4753b57dd1900cdfab8183
-  languageName: node
-  linkType: hard
-
-"anymatch@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "anymatch@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz"
-  dependencies:
-    micromatch: ^3.1.4
-    normalize-path: ^2.1.1
-  checksum: 9e495910cca364b47ee125d451bae1bde542ef78a56ac2a1e9fe835a671ed6f3b05a0fedafc8afc58d0f5214c604cddd5ca2d27fa48f234faffa2bf26ffa7fcf
-  languageName: node
-  linkType: hard
-
-"anymatch@npm:~3.1.1":
-  version: 3.1.1
-  resolution: "anymatch@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.1.tgz"
-  dependencies:
-    normalize-path: ^3.0.0
-    picomatch: ^2.0.4
-  checksum: cf61bbaf7f34d9f94dd966230b7a7f8f1f24e3e2185540741a2561118e108206d85101ee2fc9876cd756475dbe6573d84d91115c3abdbf53a64e26a5f1f06b67
-  languageName: node
-  linkType: hard
-
-"aproba@npm:^1.0.3":
-  version: 1.2.0
-  resolution: "aproba@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faproba%2Fdownload%2Faproba-1.2.0.tgz"
-  checksum: d4bac3e640af1f35eea8d5ee2b96ce2682549e47289f071aa37ae56066e19d239e43dea170c207d0f71586d7634099089523dd5701f26d4ded7b31dd5848a24a
-  languageName: node
-  linkType: hard
-
-"are-we-there-yet@npm:~1.1.2":
-  version: 1.1.5
-  resolution: "are-we-there-yet@npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fare-we-there-yet%2Fdownload%2Fare-we-there-yet-1.1.5.tgz"
-  dependencies:
-    delegates: ^1.0.0
-    readable-stream: ^2.0.6
-  checksum: 2d6fdb0ddde9b8cb120b6851b42c75f6b6db78b540b579a00d144ad38cb9e1bdf1248e5454049fcf5b47ef61d1a6f2ea433a8e38984158afd441bc1e0db7a625
-  languageName: node
-  linkType: hard
-
-"argparse@npm:^1.0.7":
-  version: 1.0.10
-  resolution: "argparse@npm:1.0.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz"
-  dependencies:
-    sprintf-js: ~1.0.2
-  checksum: 435adaef5f6671c3ef1478a22be6fd54bdb99fdbbce8f5561b9cbbb05068ccce87b7df3b9f3322ff52a6ebb9cab2b427cbedac47a07611690a9beaa5184093e2
-  languageName: node
-  linkType: hard
-
-"arr-diff@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "arr-diff@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-diff%2Fdownload%2Farr-diff-4.0.0.tgz"
-  checksum: cbdff67cf52b9742d7ecfcf8614a1a458638679909fadcec2f91d18807dd5ba1cfa1e47984f52876063c8648146d385926e11bdac976a1db3f219bfde9668160
-  languageName: node
-  linkType: hard
-
-"arr-flatten@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "arr-flatten@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-flatten%2Fdownload%2Farr-flatten-1.1.0.tgz"
-  checksum: 564dc9c32cb20a1b5bc6eeea3b7a7271fcc5e9f1f3d7648b9db145b7abf68815562870267010f9f4976d788f3f79d2ccf176e94cee69af7da48943a71041ab57
-  languageName: node
-  linkType: hard
-
-"arr-union@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "arr-union@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farr-union%2Fdownload%2Farr-union-3.1.0.tgz"
-  checksum: 78f0f75c4778283023b723152bf12be65773ab3628e21493e1a1d3c316d472af9053d9b3dec4d814a130ad4f8ba45ae79b0f33d270a4ae0b0ff41eb743461aa8
-  languageName: node
-  linkType: hard
-
-"array-back@npm:^4.0.0, array-back@npm:^4.0.1":
-  version: 4.0.1
-  resolution: "array-back@npm:4.0.1"
-  checksum: 611f95e0398cc9f845ebb2ff6d611eae5d1c8063e8737a29e44033ee3cde6c04ab791f43f90899c001825aede8a9b60e987c3e20e446dccc12c4e4b9b848923b
-  languageName: node
-  linkType: hard
-
-"array-flatten@npm:1.1.1":
-  version: 1.1.1
-  resolution: "array-flatten@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz"
-  checksum: de7a056451ff7891bb1bcda6ce2a50448ca70f63cd0fa7aa90430d288b6dc2931517b6853ce16c473a7f40fa6eaa874e20b6151616db93375471d1ffadfb1d3d
-  languageName: node
-  linkType: hard
-
-"array-flatten@npm:^2.1.0":
-  version: 2.1.2
-  resolution: "array-flatten@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz"
-  checksum: 46bfb198da424765f26350a8d8b207deade75d493e6d26417bfebb4027857b9fef8f5ae3bacd0b912f9a9fd2c04e2ec140c7183c0408e10950579e9d5c9dea25
-  languageName: node
-  linkType: hard
-
-"array-includes@npm:^3.1.1":
-  version: 3.1.1
-  resolution: "array-includes@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.1.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0
-    is-string: ^1.0.5
-  checksum: 9fa86fdad9b07f733ab9994fe1058228d4835917ea26788cbd88eed0805f8b87baddb03e6f277498f96297532d6aac678be2a65694fb44ea561cba71d619a611
-  languageName: node
-  linkType: hard
-
-"array-union@npm:^1.0.1":
-  version: 1.0.2
-  resolution: "array-union@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz"
-  dependencies:
-    array-uniq: ^1.0.1
-  checksum: 5be2568acc80d284519ff2bed8385daa37074dccbf440d5a9ce911bcb9cf51486dd677d3f61903ba113196333d033b261c8eb901a491e15bb4e437e5c68f92c7
-  languageName: node
-  linkType: hard
-
-"array-union@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "array-union@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz"
-  checksum: 93af542eb854bf62a742192d0061c82788a963a9a6594628f367388f2b9f1bfd9215910febbbdd55074841555d8b59bda6a13ecba4a8e136f58b675499eda292
-  languageName: node
-  linkType: hard
-
-"array-uniq@npm:^1.0.1":
-  version: 1.0.3
-  resolution: "array-uniq@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz"
-  checksum: ae11b7fc1e624f7ed45f7a269b521f3f9f73dbff277be9c61fe0240c497bd3fba86367753e0ebdf49bcfd3fee14f4ebab80f573545878525eb48429514a02124
-  languageName: node
-  linkType: hard
-
-"array-unique@npm:^0.3.2":
-  version: 0.3.2
-  resolution: "array-unique@npm:0.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-unique%2Fdownload%2Farray-unique-0.3.2.tgz"
-  checksum: 7139dbbcaf48325224593f2f7a400b123b310c53365b4a1d49916928082ad862117a1e6d411c926ec540e9408786bbd1cf90805609040568059156d1d09feb70
-  languageName: node
-  linkType: hard
-
-"array.prototype.flat@npm:^1.2.3":
-  version: 1.2.3
-  resolution: "array.prototype.flat@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.3.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-  checksum: f88a474d1cb3bfb2cfa44a5d36047bad146324f1beabbc743689d34fa36f29fab277008446ab56601c48721e1d50c5f47e5b3fae2583cc3724d1e6073cbdd901
-  languageName: node
-  linkType: hard
-
-"array.prototype.flatmap@npm:^1.2.3":
-  version: 1.2.3
-  resolution: "array.prototype.flatmap@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flatmap%2Fdownload%2Farray.prototype.flatmap-1.2.3.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-    function-bind: ^1.1.1
-  checksum: adbf30f2711d6599769a762278b7a1f8b94c917db268eb81f1364d808f1502b4e8995fe5a678e70029edb30fa4d39c1e3af3af7121baa3b7afcb7b59cbf76a00
-  languageName: node
-  linkType: hard
-
-"asap@npm:~2.0.3":
-  version: 2.0.6
-  resolution: "asap@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasap%2Fdownload%2Fasap-2.0.6.tgz"
-  checksum: 3d314f8c598b625a98347bacdba609d4c889c616ca5d8ea65acaae8050ab8b7aa6630df2cfe9856c20b260b432adf2ee7a65a1021f268ef70408c70f809e3a39
-  languageName: node
-  linkType: hard
-
-"asn1@npm:~0.2.3":
-  version: 0.2.4
-  resolution: "asn1@npm:0.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasn1%2Fdownload%2Fasn1-0.2.4.tgz"
-  dependencies:
-    safer-buffer: ~2.1.0
-  checksum: 5743ace942e2faa0b72f3b14bf1826509c5ca707ea150c10520f52b04f90aa715cee4370ec2e6279ce1ceb7d3c472ca33270124e90b495bea4c9b02f41b9d8ac
-  languageName: node
-  linkType: hard
-
-"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "assert-plus@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassert-plus%2Fdownload%2Fassert-plus-1.0.0.tgz"
-  checksum: 1bda24f67343ccb75a7eee31179c92cf9f79bd6f6bc24101b0ce1495ef979376dd9b0f9b9064812bba564cdade5fbf851ed76b4a44b5e141d49cdaee6ffed6b2
-  languageName: node
-  linkType: hard
-
-"assign-symbols@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "assign-symbols@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fassign-symbols%2Fdownload%2Fassign-symbols-1.0.0.tgz"
-  checksum: 893e9389a5dde0690102ad8d6146e50d747b6f45d51996d39b04abb7774755a4a9b53883295abab4dd455704b1e10c1fa560d617db5404bae118526916472bec
-  languageName: node
-  linkType: hard
-
-"astral-regex@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "astral-regex@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fastral-regex%2Fdownload%2Fastral-regex-1.0.0.tgz"
-  checksum: 08e37f599604eb3894af4ec5f9845caec7a45d10c1b57b04c4fc21cc669091803f8386efc52957ec3c7ae8c3af60b933018926aab156e5696a7aab393d6e0874
-  languageName: node
-  linkType: hard
-
-"async-each@npm:^1.0.1":
-  version: 1.0.3
-  resolution: "async-each@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-each%2Fdownload%2Fasync-each-1.0.3.tgz"
-  checksum: 0cf01982ae42db5ce591aab153e45e77aa7c813c4fb282f1e7cac2259f90949f82542e82a33f73ef308e0126c9a8bc702ee117a87614549fe88840cf5a44aec4
-  languageName: node
-  linkType: hard
-
-"async-limiter@npm:~1.0.0":
-  version: 1.0.1
-  resolution: "async-limiter@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz"
-  checksum: d123312ace75c07399ddc58e06cc028dacce35f71cdf59cf9b22f6c31dde221c22285e6185ede823ecb67f3b3065e26205eb9f74fcbba3f12ce7a2c2b09d7763
-  languageName: node
-  linkType: hard
-
-"async@npm:^2.6.2":
-  version: 2.6.3
-  resolution: "async@npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-2.6.3.tgz"
-  dependencies:
-    lodash: ^4.17.14
-  checksum: 5c30ec6f3d64308dd96d56dae16a00a23b9e6278fe8f66492837896d958508698648c59c53457d3fdf05fd04484e16538efeca2be38337cd78df0284e764ab34
-  languageName: node
-  linkType: hard
-
-"asynckit@npm:^0.4.0":
-  version: 0.4.0
-  resolution: "asynckit@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fasynckit%2Fdownload%2Fasynckit-0.4.0.tgz"
-  checksum: a024000b9ddd938e2f27b3cb8188f96a5e1fff58185e98b84862fc4e01de279a547874a800340c2b106bb9de9b0fc61c6c683bc6892abf65e6be29a96addafd3
-  languageName: node
-  linkType: hard
-
-"atob@npm:^2.1.2":
-  version: 2.1.2
-  resolution: "atob@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fatob%2Fdownload%2Fatob-2.1.2.tgz"
-  bin:
-    atob: bin/atob.js
-  checksum: 597c0d1a740bb6522c98bea8fe362ae9420b4203af588d2bd470326d9abd4504264956b8355923d7019a21527ef5e6526a7b4455862ec5178ccd81e0ea289d5f
-  languageName: node
-  linkType: hard
-
-"autoprefixer@npm:^9.6.1":
-  version: 9.8.6
-  resolution: "autoprefixer@npm:9.8.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz"
-  dependencies:
-    browserslist: ^4.12.0
-    caniuse-lite: ^1.0.30001109
-    colorette: ^1.2.1
-    normalize-range: ^0.1.2
-    num2fraction: ^1.2.2
-    postcss: ^7.0.32
-    postcss-value-parser: ^4.1.0
-  bin:
-    autoprefixer: bin/autoprefixer
-  checksum: b406d8047a97fcc39c9c6d208fd6f1974e5957800461d9a79457a3ecaca2c0ea090bd06f30c8653f48f751c31115c63a80502ff8c9a6bb7b8a5a5063021827d4
-  languageName: node
-  linkType: hard
-
-"aws-sign2@npm:~0.7.0":
-  version: 0.7.0
-  resolution: "aws-sign2@npm:0.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz"
-  checksum: 7162b9b8fbd4cf451bd889b0ed27fc895f88e6a6cb5c5609de49759ea1a6e31646f86ca8e18d90bea0455c4caa466fc9692c1098a1784d2372a358cb68c1eea6
-  languageName: node
-  linkType: hard
-
-"aws4@npm:^1.8.0":
-  version: 1.10.0
-  resolution: "aws4@npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.0.tgz"
-  checksum: f8c20a0031a2ae88bb29a89d5e5f8139eb0cc8aa964d0a8d69a476a4b0f6cf3954e3dd40bd08cea69c95ee31e2e69226d82e804628261a2375223ac67582009d
-  languageName: node
-  linkType: hard
-
-"axios@npm:^0.21.0":
-  version: 0.21.0
-  resolution: "axios@npm:0.21.0"
-  dependencies:
-    follow-redirects: ^1.10.0
-  checksum: 4b08ecab39040948c03cae5fa726fdcf8bc299679818179c146e779a922ce887fad9261d82ad57ad1a3aa1fcba3612f14b490fdfa2cd28fa23c190fd48517f5f
-  languageName: node
-  linkType: hard
-
-"babel-code-frame@npm:^6.26.0":
-  version: 6.26.0
-  resolution: "babel-code-frame@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-code-frame%2Fdownload%2Fbabel-code-frame-6.26.0.tgz"
-  dependencies:
-    chalk: ^1.1.3
-    esutils: ^2.0.2
-    js-tokens: ^3.0.2
-  checksum: cc2a799ccc341ad2db8aa90762b680bbca1e15893c3b28a328e974f46443110b8c56bad25554efe26f8955d19cfa2955b5f3068310ab8a818a9d7e875c90e8b4
-  languageName: node
-  linkType: hard
-
-"babel-extract-comments@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "babel-extract-comments@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-extract-comments%2Fdownload%2Fbabel-extract-comments-1.0.0.tgz"
-  dependencies:
-    babylon: ^6.18.0
-  checksum: 2a291f1a3afb95052b98346e6fc41d36add460d557dc7f01bacaae92efd1dd98521a632d211801a7045ef563c1eebd8d6d88d1a86548e57ffb7c68b4aaab9d0a
-  languageName: node
-  linkType: hard
-
-"babel-loader@npm:^8.1.0":
-  version: 8.1.0
-  resolution: "babel-loader@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz"
-  dependencies:
-    find-cache-dir: ^2.1.0
-    loader-utils: ^1.4.0
-    mkdirp: ^0.5.3
-    pify: ^4.0.1
-    schema-utils: ^2.6.5
-  peerDependencies:
-    "@babel/core": ^7.0.0
-    webpack: ">=2"
-  checksum: f7b236a5f7b3f2c8a49ec41ed0a2905075ed4bb6d6ba85552b50be7c56b8fdb46e92270576ef29e6598f23919f7a00a515091c2410ced25c08992a4bd799124b
-  languageName: node
-  linkType: hard
-
-"babel-messages@npm:^6.23.0":
-  version: 6.23.0
-  resolution: "babel-messages@npm:6.23.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-messages%2Fdownload%2Fbabel-messages-6.23.0.tgz"
-  dependencies:
-    babel-runtime: ^6.22.0
-  checksum: 9a04e1b86bf68f0469efc7d09d04dbcd69d386ae0347d71c67b8867d6763f0b46616856ca3669b982e9e000642b0546271ecda51c1e1a321fc8cf179ad6d65ad
-  languageName: node
-  linkType: hard
-
-"babel-plugin-dynamic-import-node@npm:^2.3.3":
-  version: 2.3.3
-  resolution: "babel-plugin-dynamic-import-node@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz"
-  dependencies:
-    object.assign: ^4.1.0
-  checksum: 6745b8edca96f6c8bc34ab65935b5676358d2e55323e8e823b8de7aa353e3e6398a495ce434c9c36ad5fb1609467a1b1a0028946e1490bf7de8f97df3ae7f3b1
-  languageName: node
-  linkType: hard
-
-"babel-plugin-syntax-object-rest-spread@npm:^6.8.0":
-  version: 6.13.0
-  resolution: "babel-plugin-syntax-object-rest-spread@npm:6.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-syntax-object-rest-spread%2Fdownload%2Fbabel-plugin-syntax-object-rest-spread-6.13.0.tgz"
-  checksum: 459844d1a89dfe580876daa6c8be3f120931db2705cfc32ffacaa93442ca8036e38ad3f687fc889e9cd6e96f51d83cb4b520c063d8f12223baf6f8a34a07e4cc
-  languageName: node
-  linkType: hard
-
-"babel-plugin-transform-builtin-extend@npm:^1.1.2":
-  version: 1.1.2
-  resolution: "babel-plugin-transform-builtin-extend@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-builtin-extend%2Fdownload%2Fbabel-plugin-transform-builtin-extend-1.1.2.tgz"
-  dependencies:
-    babel-runtime: ^6.2.0
-    babel-template: ^6.3.0
-  checksum: 29040a2217234d99930485c0a7e20d93bcd26dc8f7d51e0824f982d0f93d1147042cf89ad78f4502cd5afc2d036fbadae6615f79ef70fd6c12fe9c235671e5f3
-  languageName: node
-  linkType: hard
-
-"babel-plugin-transform-object-rest-spread@npm:^6.26.0":
-  version: 6.26.0
-  resolution: "babel-plugin-transform-object-rest-spread@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-object-rest-spread%2Fdownload%2Fbabel-plugin-transform-object-rest-spread-6.26.0.tgz"
-  dependencies:
-    babel-plugin-syntax-object-rest-spread: ^6.8.0
-    babel-runtime: ^6.26.0
-  checksum: 1d8ff820576afd78850081dc71e36f77be08484b502a8fe87b959bad4463581bd0731c605b09307cd3ffabeb372c70524c0f8a303dc99c4d15085f84c06f26e3
-  languageName: node
-  linkType: hard
-
-"babel-runtime@npm:^6.2.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0":
-  version: 6.26.0
-  resolution: "babel-runtime@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"
-  dependencies:
-    core-js: ^2.4.0
-    regenerator-runtime: ^0.11.0
-  checksum: 5010bf1d81e484d9c6a5b4e4c32564a0dc180c2dc5a65f999729c3cb63b9c6e805d3d10c19a4ccc2112bce084e39e51e52daf5c21df0141ce8e6e37727af2e0b
-  languageName: node
-  linkType: hard
-
-"babel-template@npm:^6.3.0":
-  version: 6.26.0
-  resolution: "babel-template@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-template%2Fdownload%2Fbabel-template-6.26.0.tgz"
-  dependencies:
-    babel-runtime: ^6.26.0
-    babel-traverse: ^6.26.0
-    babel-types: ^6.26.0
-    babylon: ^6.18.0
-    lodash: ^4.17.4
-  checksum: 3c76998a19c90e1aa2c37c4fd6a83b01db685df169f83669a40c459deda30792c40de1f2a1ffe405c9c8c25e4cd00733c0185244f5c457e94579bbe272bb22ef
-  languageName: node
-  linkType: hard
-
-"babel-traverse@npm:^6.26.0":
-  version: 6.26.0
-  resolution: "babel-traverse@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-traverse%2Fdownload%2Fbabel-traverse-6.26.0.tgz"
-  dependencies:
-    babel-code-frame: ^6.26.0
-    babel-messages: ^6.23.0
-    babel-runtime: ^6.26.0
-    babel-types: ^6.26.0
-    babylon: ^6.18.0
-    debug: ^2.6.8
-    globals: ^9.18.0
-    invariant: ^2.2.2
-    lodash: ^4.17.4
-  checksum: 05030a5152139565a2fe1d277d6ff337df33fe406b9eedb04c8fb740d2c26008d051457437fbf32faace5ea3cee968dcfba0bc4f359743917a03d1ee945ca5f3
-  languageName: node
-  linkType: hard
-
-"babel-types@npm:^6.26.0":
-  version: 6.26.0
-  resolution: "babel-types@npm:6.26.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz"
-  dependencies:
-    babel-runtime: ^6.26.0
-    esutils: ^2.0.2
-    lodash: ^4.17.4
-    to-fast-properties: ^1.0.3
-  checksum: 9fb4b712afe5c19bfd2ab77e9888062d1b4888be22d8b21934fee03dbbd6add8d89ce9e435b7321a1047776c14f713301666112a5c5e505cb673e88d63076cca
-  languageName: node
-  linkType: hard
-
-"babylon@npm:^6.18.0":
-  version: 6.18.0
-  resolution: "babylon@npm:6.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz"
-  bin:
-    babylon: ./bin/babylon.js
-  checksum: af38302e3fd8b01004ab03e7f42e00d3d6b3e85190102a1ad7ffbed87bc025d96413a7c165b2b5f0b78e576b71e5306a67c1ae0368f6d12bef40fd00b0dbc7b5
-  languageName: node
-  linkType: hard
-
-"balanced-match@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "balanced-match@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.0.tgz"
-  checksum: f515a605fe1b59f476f7477c5e1d53ad55b4f42982fca1d57b6701906f4ad1f1ac90fd6587d92cc1af2edb43eecf979214dd847ee410a6de9db4ebf0dd128d62
-  languageName: node
-  linkType: hard
-
-"base64-js@npm:^1.0.2":
-  version: 1.3.1
-  resolution: "base64-js@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.3.1.tgz"
-  checksum: 8a0cc69d7c7c0ab75c164d3e2eccc3dd65fbaba17bcf440aab54636afd31255287ac3cd16a111e98d741c4a6e0b5631774b0c32818355089e645df3ae96a49bb
-  languageName: node
-  linkType: hard
-
-"base@npm:^0.11.1":
-  version: 0.11.2
-  resolution: "base@npm:0.11.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase%2Fdownload%2Fbase-0.11.2.tgz"
-  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
-  checksum: 84e30392fd028df388b209cfb800e1ab4156b3cc499bd46f96ce6271fd17f10302ba6b87d4a56c6946cc77b6571502d45d73c7948a63a84f9ffd421f81232dd5
-  languageName: node
-  linkType: hard
-
-"basic-auth@npm:^1.0.3":
-  version: 1.1.0
-  resolution: "basic-auth@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbasic-auth%2Fdownload%2Fbasic-auth-1.1.0.tgz"
-  checksum: dd75a3730b0e7199c6067a63598cbe39470bc9fcacd67c21c3e442d65124909001f0d37c0751fed51f06191d598663b3b2c766d42f3e70313e72e3881ab98f7d
-  languageName: node
-  linkType: hard
-
-"batch@npm:0.6.1":
-  version: 0.6.1
-  resolution: "batch@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbatch%2Fdownload%2Fbatch-0.6.1.tgz"
-  checksum: 4ec2d961e6af6e944e164eb1b8c5885bc4c85846d110ce2d55156ab2903dd1593f3c4a7b71c2cff81464a2973e1b91cc1bf86239a9ba44435a319eeae3346a91
-  languageName: node
-  linkType: hard
-
-"bcrypt-pbkdf@npm:^1.0.0":
-  version: 1.0.2
-  resolution: "bcrypt-pbkdf@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbcrypt-pbkdf%2Fdownload%2Fbcrypt-pbkdf-1.0.2.tgz"
-  dependencies:
-    tweetnacl: ^0.14.3
-  checksum: 3f57eb99bbc02352f68ff31e446997f4d21cc9a5e5286449dc1fe0116ec5dac5a4aa538967d45714fa9320312d2be8d16126f2d357da1dd40a3d546b96e097ed
-  languageName: node
-  linkType: hard
-
-"big.js@npm:^5.2.2":
-  version: 5.2.2
-  resolution: "big.js@npm:5.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz"
-  checksum: ea33d7d25674df4253ae3667da7f48ade6cc8828cb4f2c3a7753f53975f10cebae57e0d1ecf84f1b920b5467262dc0d4f357e5e497b138472d0e64992a8402a4
-  languageName: node
-  linkType: hard
-
-"binary-extensions@npm:^1.0.0":
-  version: 1.13.1
-  resolution: "binary-extensions@npm:1.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz"
-  checksum: 7cdacc6dadaffb6a4d250c39ca51e1fd7ba0fd846348e2813465dfaa7fce1e59a3465c1555578e7e4e7959023b47824cc387b37780e2160f52fface775cc0133
-  languageName: node
-  linkType: hard
-
-"binary-extensions@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "binary-extensions@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz"
-  checksum: 12bee2817930b211b88f6de5da2edb64f924ffde79e01516fcb17005a39e75374fae1ce1a9c58b52557a4d81eb6eb7a804cbe7170ea3a553919a7ce0053e2e4f
-  languageName: node
-  linkType: hard
-
-"bindings@npm:^1.5.0":
-  version: 1.5.0
-  resolution: "bindings@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz"
-  dependencies:
-    file-uri-to-path: 1.0.0
-  checksum: bd623dec58f126eb0c30f04a20da7080f06cdd5af26bf5a91615e70055fbba66c4cec5c88b156e8181c1d822f2392034a40a9121ef3ebc25638dc2163332b12d
-  languageName: node
-  linkType: hard
-
-"binjumper@npm:^0.1.2":
-  version: 0.1.3
-  resolution: "binjumper@npm:0.1.3"
-  checksum: 660000e5a55a9d6fedac4377f12595bcd114f2556200c7a44511ed6457d48d720f25719bdf85923188c0a3b467a753421a00e92fef44366d3998bb2e959d60db
-  languageName: node
-  linkType: hard
-
-"bl@npm:^4.0.1":
-  version: 4.0.3
-  resolution: "bl@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-4.0.3.tgz"
-  dependencies:
-    buffer: ^5.5.0
-    inherits: ^2.0.4
-    readable-stream: ^3.4.0
-  checksum: 1f33c5a3da08a87260a7f11acadf088ef331ebb4b86db1160ec332be9326afdf9f73dca1fd5cc431dba7cc9d5574b508192f9fd7c37a9a11c9e4a50025917690
-  languageName: node
-  linkType: hard
-
-"body-parser@npm:1.19.0":
-  version: 1.19.0
-  resolution: "body-parser@npm:1.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbody-parser%2Fdownload%2Fbody-parser-1.19.0.tgz"
-  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
-  checksum: 18c2a81df5eabc7e3541bc9ace394b88e6fbd390989b5e764ff34c3f9dbd097e19986c31baa9b855ec5c2cff2b79157449afb0cdfb97bb99c11d6239b2c47a34
-  languageName: node
-  linkType: hard
-
-"bonjour@npm:^3.5.0":
-  version: 3.5.0
-  resolution: "bonjour@npm:3.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbonjour%2Fdownload%2Fbonjour-3.5.0.tgz"
-  dependencies:
-    array-flatten: ^2.1.0
-    deep-equal: ^1.0.1
-    dns-equal: ^1.0.0
-    dns-txt: ^2.0.2
-    multicast-dns: ^6.0.1
-    multicast-dns-service-types: ^1.1.0
-  checksum: b6c49714a3e0015411878296d9db80894493c973f5bb4516811d75747b21429b1f807e9176d3f188165127feecdda8073abae47892426b25a4a1513f70daaeb8
-  languageName: node
-  linkType: hard
-
-"boolbase@npm:~1.0.0":
-  version: 1.0.0
-  resolution: "boolbase@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fboolbase%2Fdownload%2Fboolbase-1.0.0.tgz"
-  checksum: e827963c416fdb1dbcd57e066a43c40829518f4dcdc9f58ed04519daeebb610adacbb6cf102518bda9f08be593c5b1b49a83e36bf6b7d91b3403f7e35510eeae
-  languageName: node
-  linkType: hard
-
-"bootstrap-icons@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "bootstrap-icons@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbootstrap-icons%2Fdownload%2Fbootstrap-icons-1.0.0.tgz"
-  checksum: 082d8d2aff07217289b3a78c0d8eb80c45b42f2ee63ffa27a87c83072745177dd12b0b12d1b73d95a5e69d45b54c739b5db6e2eb7e310aa8b54b6b08ec57772c
-  languageName: node
-  linkType: hard
-
-"bootstrap@npm:^4.5.3":
-  version: 4.5.3
-  resolution: "bootstrap@npm:4.5.3"
-  peerDependencies:
-    jquery: 1.9.1 - 3
-    popper.js: ^1.16.1
-  checksum: 8c8850152f535ea1f3a24ceb06baaf12557423ad02fa17d8a1517a4a46b46cee58ecf0d031fca0e4d0cce2165d3bac0c90e782eb31cf7a84dae640531f7b2f7c
-  languageName: node
-  linkType: hard
-
-"brace-expansion@npm:^1.1.7":
-  version: 1.1.11
-  resolution: "brace-expansion@npm:1.1.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz"
-  dependencies:
-    balanced-match: ^1.0.0
-    concat-map: 0.0.1
-  checksum: 4c878e25e4858baf801945dfd63eb68feab2e502cf1122f25f3915c0e3bf397af3a93ff6bef0798db41c0d81ef28c08e55daac38058710f749a3b96eee6b8f40
-  languageName: node
-  linkType: hard
-
-"braces@npm:^2.3.1, braces@npm:^2.3.2":
-  version: 2.3.2
-  resolution: "braces@npm:2.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-2.3.2.tgz"
-  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
-  checksum: 5f2d5ae262a39e516c7266f1316bc1caade4dcc26c5f8454f1d35064abbccd51cfea1c2cfa5a7402026991448a2b0ed0be1adce76ff1db2dfca7d3263f58d24d
-  languageName: node
-  linkType: hard
-
-"braces@npm:^3.0.1, braces@npm:~3.0.2":
-  version: 3.0.2
-  resolution: "braces@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbraces%2Fdownload%2Fbraces-3.0.2.tgz"
-  dependencies:
-    fill-range: ^7.0.1
-  checksum: f3493181c3e91a1333d3c9afc9b3263a3f62f4ced0b033c372efc1373b48a7699557f4e04026b232a8556e043ca5360a9d3008c33852350138d4b0ea57558b8d
-  languageName: node
-  linkType: hard
-
-"browserslist@npm:^4.12.0, browserslist@npm:^4.8.5":
-  version: 4.13.0
-  resolution: "browserslist@npm:4.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz"
-  dependencies:
-    caniuse-lite: ^1.0.30001093
-    electron-to-chromium: ^1.3.488
-    escalade: ^3.0.1
-    node-releases: ^1.1.58
-  bin:
-    browserslist: cli.js
-  checksum: 91657dcc024f03f7b8a03f897e4a15c73774f39040f4e2fa9cb0e10b057113d71c97b29721590a80bf03dccfae1d69ad3fdf7326644c2c41cdd0410fb1a679a0
-  languageName: node
-  linkType: hard
-
-"browserslist@npm:^4.14.5":
-  version: 4.14.5
-  resolution: "browserslist@npm:4.14.5"
-  dependencies:
-    caniuse-lite: ^1.0.30001135
-    electron-to-chromium: ^1.3.571
-    escalade: ^3.1.0
-    node-releases: ^1.1.61
-  bin:
-    browserslist: cli.js
-  checksum: 18261764bd01f559059a57b1536b75b93e8b448c3e9ccd4de1699b40fcd0697feebbd2e76cc573cbfd0c3f308d29e441435591f93f81bc60596101f5a3d58bbb
-  languageName: node
-  linkType: hard
-
-"browserslist@npm:^4.6.4":
-  version: 4.14.0
-  resolution: "browserslist@npm:4.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.0.tgz"
-  dependencies:
-    caniuse-lite: ^1.0.30001111
-    electron-to-chromium: ^1.3.523
-    escalade: ^3.0.2
-    node-releases: ^1.1.60
-  bin:
-    browserslist: cli.js
-  checksum: 1ca4d424ae15266468d1635d41f4113b1f863a9892958a86be8642e93504ad4ebc488c1ab935b7e86753d0f2243e5d24c15a637c4bc5aaa40dfd6da8d0eaa73b
-  languageName: node
-  linkType: hard
-
-"buffer-from@npm:^1.0.0":
-  version: 1.1.1
-  resolution: "buffer-from@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-from%2Fdownload%2Fbuffer-from-1.1.1.tgz"
-  checksum: 540ceb79c4f5bfcadaabbc18324fa84c50dc52905084be7c03596a339cf5a88513bee6831ce9b36ddd046fab09257a7c80686e129d0559a0cfd141da196ad956
-  languageName: node
-  linkType: hard
-
-"buffer-indexof@npm:^1.0.0":
-  version: 1.1.1
-  resolution: "buffer-indexof@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer-indexof%2Fdownload%2Fbuffer-indexof-1.1.1.tgz"
-  checksum: f7114185678d4ebd66b68a8d76feda5a66ea5df57101e7af1c3faef6ff98ca6ac15891da200d7eea99153573e110d05bc9fdf493278e3bd2b0f117e84ff08f64
-  languageName: node
-  linkType: hard
-
-"buffer@npm:^5.5.0":
-  version: 5.6.0
-  resolution: "buffer@npm:5.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.6.0.tgz"
-  dependencies:
-    base64-js: ^1.0.2
-    ieee754: ^1.1.4
-  checksum: e18fdf099c25cae354d673c7deee0391978bde5a47b785cf81e118c75853f0f36838b0a5ea5ee7adf8c02eedb9664292608efdcac9945f4f4f514d14054656f7
-  languageName: node
-  linkType: hard
-
-"builtin-modules@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "builtin-modules@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltin-modules%2Fdownload%2Fbuiltin-modules-3.1.0.tgz"
-  checksum: 54f062393cd48ff6c7293d885a106faa0988cbffb8b5f7790bfd0148e56cedf21b13bd4c1e544911ec7b4b022c52fd4c606e8697469b342e8b3e529ce48d8831
-  languageName: node
-  linkType: hard
-
-"bytes@npm:3.0.0":
-  version: 3.0.0
-  resolution: "bytes@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz"
-  checksum: 98d6c0ab36f7a5527226fd928e65495ffd3d53cb22da627eba3300eed36bd283ae3dfdf3a0aa017df13a09115b5b8847e3d51f66c2f0304a262264c86a317c05
-  languageName: node
-  linkType: hard
-
-"bytes@npm:3.1.0":
-  version: 3.1.0
-  resolution: "bytes@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz"
-  checksum: c3f64645ef37922c8194fef88a052de2a28101882dfdf8a225493888c4941a26ea15164957e7492e5c5e3a8e98ee6276f4834efacb68e2d8ad4d91f903250b6c
-  languageName: node
-  linkType: hard
-
-"cacache@npm:^15.0.5":
-  version: 15.0.5
-  resolution: "cacache@npm:15.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.5.tgz"
-  dependencies:
-    "@npmcli/move-file": ^1.0.1
-    chownr: ^2.0.0
-    fs-minipass: ^2.0.0
-    glob: ^7.1.4
-    infer-owner: ^1.0.4
-    lru-cache: ^6.0.0
-    minipass: ^3.1.1
-    minipass-collect: ^1.0.2
-    minipass-flush: ^1.0.5
-    minipass-pipeline: ^1.2.2
-    mkdirp: ^1.0.3
-    p-map: ^4.0.0
-    promise-inflight: ^1.0.1
-    rimraf: ^3.0.2
-    ssri: ^8.0.0
-    tar: ^6.0.2
-    unique-filename: ^1.1.1
-  checksum: 8e371cbf3c5051585127e63a84c9f1e430032590e5c4ada17d57b7953e21f6d5722e7f29f80cfef26520175ea2d1705a0670897ed7fe64377c7bd2ee650be287
-  languageName: node
-  linkType: hard
-
-"cache-base@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "cache-base@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-base%2Fdownload%2Fcache-base-1.0.1.tgz"
-  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
-  checksum: 3f362ba824453d4043df82655314503e591a09a1bcb909ffdfcc74deb0fe4e7c58e40de31293153b07aeb5545610a1d81bf49b67cff5d3dd084d389e5a4d4849
-  languageName: node
-  linkType: hard
-
-"cacheable-lookup@npm:^5.0.3":
-  version: 5.0.3
-  resolution: "cacheable-lookup@npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.3.tgz"
-  checksum: a51e3ddb824865b87895a915fc41be6e2097b62932e5441c357711bb87ec23b0a738a7b7a5cefd9043dacd4ed31ca56b62528ec60ba020e360f07175b6ca5bfe
-  languageName: node
-  linkType: hard
-
-"cacheable-request@npm:^7.0.1":
-  version: 7.0.1
-  resolution: "cacheable-request@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-request%2Fdownload%2Fcacheable-request-7.0.1.tgz"
-  dependencies:
-    clone-response: ^1.0.2
-    get-stream: ^5.1.0
-    http-cache-semantics: ^4.0.0
-    keyv: ^4.0.0
-    lowercase-keys: ^2.0.0
-    normalize-url: ^4.1.0
-    responselike: ^2.0.0
-  checksum: fe0b6f3b8a145c98fecc00f0f1b13a9886cad9bf4537533c5568cba19db81c8ee09ace9c61967d5a4e72615e174d771b6b8080c3816f0b74fc6f9c69060c3ff0
-  languageName: node
-  linkType: hard
-
-"callsites@npm:^3.0.0":
-  version: 3.1.0
-  resolution: "callsites@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz"
-  checksum: f726bf10d752901174cae348e69c2e58206404d5eebcea485b3fedbcf7fcffdb397e10919fdf6ee2c8adb4be52a64eea2365d52583611939bfecd109260451c9
-  languageName: node
-  linkType: hard
-
-"camel-case@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "camel-case@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-4.1.1.tgz"
-  dependencies:
-    pascal-case: ^3.1.1
-    tslib: ^1.10.0
-  checksum: c202f62a74c020e51ab6d7d02c0367a6b8cd5d1803e69371421970186d6ca32a20437eb45257baa00a7bb976a202e8fbdb75d509145f5b022f7f80936997c6b8
-  languageName: node
-  linkType: hard
-
-"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1":
-  version: 5.3.1
-  resolution: "camelcase@npm:5.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz"
-  checksum: 6a3350c4ea8ab6e5109e0b443cfaf43dc40abfad7b2d79dcafbbafbe9b6b4059b4365b17ad822e24cf08e6627c1ffb65a9651d05cef9fcc6f64b6a0c2f327feb
-  languageName: node
-  linkType: hard
-
-"camelcase@npm:^6.1.0":
-  version: 6.1.0
-  resolution: "camelcase@npm:6.1.0"
-  checksum: 3e968d5efba3c08410437c097b6706aa2a3f1ff34c3ee11940cca932397d99e44693a314545e2d00cb36c1c05d8463ca6f3dabb005e9ce2b615edb7ef274b6c3
-  languageName: node
-  linkType: hard
-
-"caniuse-lite@npm:^1.0.30000981, caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001111":
-  version: 1.0.30001117
-  resolution: "caniuse-lite@npm:1.0.30001117::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001117.tgz"
-  checksum: 1e662b55088f83c50164f765d6a3d67109cb94bda943b8ac1efeb8be74c2320ea61eed3e49572d9f98d6de3d7968831cd3370ac29196b632a909ae25f5084bc7
-  languageName: node
-  linkType: hard
-
-"caniuse-lite@npm:^1.0.30001093":
-  version: 1.0.30001104
-  resolution: "caniuse-lite@npm:1.0.30001104::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz"
-  checksum: fdaf22cc7ddac06c6683bfb38e8b158fb09dcb4a8a6a082ea0da4b144ba6735cde1c177be40a1b52e296350219d0e51449d4b374a6e558543734fd549fe0d1a9
-  languageName: node
-  linkType: hard
-
-"caniuse-lite@npm:^1.0.30001135":
-  version: 1.0.30001151
-  resolution: "caniuse-lite@npm:1.0.30001151"
-  checksum: 3acb52ac17034d7abe4468e66293c9e5597cb5f123bd8f86ea3b87e758112ac4259fdbc35f8f4cbf5477e385dd975f11031bfbf26f4cec64d64a0c567a430b58
-  languageName: node
-  linkType: hard
-
-"caseless@npm:~0.12.0":
-  version: 0.12.0
-  resolution: "caseless@npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaseless%2Fdownload%2Fcaseless-0.12.0.tgz"
-  checksum: 147f48bff9bebf029d7050e2335da3f8d295f26d157edf08d8c3282c804dae04a462c4cd6efa8179755686aa3aeaca5c28f3e7f3559698bc0484c65e46c36c5b
-  languageName: node
-  linkType: hard
-
-"chalk@npm:^1.1.3":
-  version: 1.1.3
-  resolution: "chalk@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz"
-  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
-  checksum: bc2df54f6da63d0918254aa2d79dd87f75442e35c751b07f5ca37e5886dd0963472e37ee8c5fa6da27710fdfa0e10779c72be4a6c860c67e96769ba63ee2901e
-  languageName: node
-  linkType: hard
-
-"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.2":
-  version: 2.4.2
-  resolution: "chalk@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz"
-  dependencies:
-    ansi-styles: ^3.2.1
-    escape-string-regexp: ^1.0.5
-    supports-color: ^5.3.0
-  checksum: 22c7b7b5bc761c882bb6516454a1a671923f1c53ff972860065aa0b28a195f230163c1d46ee88bcc7a03e5539177d896457d8bc727de7f244c6e87032743038e
-  languageName: node
-  linkType: hard
-
-"chalk@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "chalk@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz"
-  dependencies:
-    ansi-styles: ^4.1.0
-    supports-color: ^7.1.0
-  checksum: 4018b0c812880da595d0d7b8159939527b72f58d3370e2fdc1a24d9abd460bab851695d7eca014082f110d5702d1221b05493fec430ccce375de907d50cc48c1
-  languageName: node
-  linkType: hard
-
-"chalk@npm:^4.0.0":
-  version: 4.1.0
-  resolution: "chalk@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz"
-  dependencies:
-    ansi-styles: ^4.1.0
-    supports-color: ^7.1.0
-  checksum: f860285b419f9e925c2db0f45ffa88aa8794c14b80cc5d01ff30930bcfc384996606362706f0829cf557f6d36152a5fb2d227ad63c4bc90e2ec9e9dbed4a3c07
-  languageName: node
-  linkType: hard
-
-"chokidar@npm:>=2.0.0 <4.0.0":
-  version: 3.4.1
-  resolution: "chokidar@npm:3.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz"
-  dependencies:
-    anymatch: ~3.1.1
-    braces: ~3.0.2
-    fsevents: ~2.1.2
-    glob-parent: ~5.1.0
-    is-binary-path: ~2.1.0
-    is-glob: ~4.0.1
-    normalize-path: ~3.0.0
-    readdirp: ~3.4.0
-  dependenciesMeta:
-    fsevents:
-      optional: true
-  checksum: fdbeae89bdd7832acb0b7a5192b7d6ec1a81aff915609b0b6ff110e58fa211d793fed16ce41ccd9d4c6c7786db1b97cd88984bfe2b87303f04aa6bf0f31feaaa
-  languageName: node
-  linkType: hard
-
-"chokidar@npm:^2.1.8":
-  version: 2.1.8
-  resolution: "chokidar@npm:2.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz"
-  dependencies:
-    anymatch: ^2.0.0
-    async-each: ^1.0.1
-    braces: ^2.3.2
-    fsevents: ^1.2.7
-    glob-parent: ^3.1.0
-    inherits: ^2.0.3
-    is-binary-path: ^1.0.0
-    is-glob: ^4.0.0
-    normalize-path: ^3.0.0
-    path-is-absolute: ^1.0.0
-    readdirp: ^2.2.1
-    upath: ^1.1.1
-  dependenciesMeta:
-    fsevents:
-      optional: true
-  checksum: 0758dcc7c6c7ace5924cf3c68088210932d391ab41026376b0adb8e07013ac87232e029f13468dfc9ca4dd59adae62a2b7eaedebb6c4e4f0ba92cbf3ac9e3721
-  languageName: node
-  linkType: hard
-
-"chownr@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "chownr@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-2.0.0.tgz"
-  checksum: b06ba0bf4218bc2214cdb94a7d0200db5c6425f9425795c064dcf5a3801aac8ae87f764727890cd1f48c026559159e7e0e15ed3d1940ce453dec54898d013379
-  languageName: node
-  linkType: hard
-
-"chrome-trace-event@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "chrome-trace-event@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.2.tgz"
-  dependencies:
-    tslib: ^1.9.0
-  checksum: 926fe23bc92e35c7fb666711c1dc1f342f289a728eb37d23bc4371df7587fe58152569eb57d657e2377f2e56093513939cab5a5a8f3589743938cc0b61527c02
-  languageName: node
-  linkType: hard
-
-"ci-info@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "ci-info@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fci-info%2Fdownload%2Fci-info-2.0.0.tgz"
-  checksum: 553fe83c085fce5e19e20f85b993f24a463e6f805803837a8868607bb68b1300567868694a5dff1beca6c54926a4c0be1cc9ef0c35f810653d590bf64183f6a0
-  languageName: node
-  linkType: hard
-
-"class-utils@npm:^0.3.5":
-  version: 0.3.6
-  resolution: "class-utils@npm:0.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclass-utils%2Fdownload%2Fclass-utils-0.3.6.tgz"
-  dependencies:
-    arr-union: ^3.1.0
-    define-property: ^0.2.5
-    isobject: ^3.0.0
-    static-extend: ^0.1.1
-  checksum: 6411679ad4d2bde81b62ad721d4771d108d5d8ef32805d10ebfa6f1d6bdcfd5cb6dfea5232b85221f079e42691c36cf2db05a5e76b87ba8f6deb37a2c23a4a41
-  languageName: node
-  linkType: hard
-
-"classnames@npm:^2.2.6":
-  version: 2.2.6
-  resolution: "classnames@npm:2.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclassnames%2Fdownload%2Fclassnames-2.2.6.tgz"
-  checksum: 490eaeca5931846737ffd33e472a701d268d5b8bc5717dd4cf108a127b06e86e05350e06799abbbe763a0e4c945b4217f6700b7ae00ddc703505682c370e5cf2
-  languageName: node
-  linkType: hard
-
-"clean-css@npm:^4.2.3":
-  version: 4.2.3
-  resolution: "clean-css@npm:4.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz"
-  dependencies:
-    source-map: ~0.6.0
-  checksum: a60f7800828ea7a6b8315c3c855d700c59cf9e45e88a88e73c7fff12ee316a4afcbca1041b14453c8020f57de72ebf3d0ed6250f306faea83f5e05ee90a4c67a
-  languageName: node
-  linkType: hard
-
-"clean-stack@npm:^2.0.0":
-  version: 2.2.0
-  resolution: "clean-stack@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz"
-  checksum: e291ce2b8c8c59e6449ac9a7a726090264bea6696e5343b21385e16d279c808ca09d73a1abea8fd23a9b7699e6ef5ce582df203511f71c8c27666bf3b2e300c5
-  languageName: node
-  linkType: hard
-
-"clean-webpack-plugin@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "clean-webpack-plugin@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-webpack-plugin%2Fdownload%2Fclean-webpack-plugin-3.0.0.tgz"
-  dependencies:
-    "@types/webpack": ^4.4.31
-    del: ^4.1.1
-  peerDependencies:
-    webpack: "*"
-  checksum: fc0fbd1c8e163b784209d51a5df4336ad359737f8b324697d33d1c484ee5c7efee9a1f9f18786860216019764f4a6e02e329e0410e3ab4d52e5e5b52a1038dfe
-  languageName: node
-  linkType: hard
-
-"clipanion@npm:^2.6.2":
-  version: 2.6.2
-  resolution: "clipanion@npm:2.6.2"
-  checksum: d162deedd0bd297f0881ef2814cf00409d2c67383589345cf8ae0ae6d9eee2e7235313b392dd3ec9df85490e4875dd52c085997e4161a6c8aa4ec0a2c78f8f36
-  languageName: node
-  linkType: hard
-
-"cliui@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "cliui@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz"
-  dependencies:
-    string-width: ^3.1.0
-    strip-ansi: ^5.2.0
-    wrap-ansi: ^5.1.0
-  checksum: 25e61dc985279bd7ec16715df53288346e5c36ff43956f7de31bf55b2432ce1259e75148b28c3ed41265caf1baee1d204363c429ae5fee54e6f78bed5a5d82b3
-  languageName: node
-  linkType: hard
-
-"clone-response@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "clone-response@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone-response%2Fdownload%2Fclone-response-1.0.2.tgz"
-  dependencies:
-    mimic-response: ^1.0.0
-  checksum: 71832f9219f2682b0915bdbc0dd187ba8e63d16b0af5342b44f97b34afe9400a1f528a253dd2f70a8dd8b23bfa4c4e106928fcc520fa5899d769af95e4cce53c
-  languageName: node
-  linkType: hard
-
-"clsx@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "clsx@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fclsx%2Fdownload%2Fclsx-1.1.1.tgz"
-  checksum: d8ae10ac0546da19fe8c9516886f6582a64a382cf4d09ea7d36d5287cafbdab1192ab249adc2cdf0310e0b0aeac4f4142cf7c738c98d9cb68c19ba24b6f673d5
-  languageName: node
-  linkType: hard
-
-"code-point-at@npm:^1.0.0":
-  version: 1.1.0
-  resolution: "code-point-at@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz"
-  checksum: 7d9837296e0f1c00239c88542f5a3e0bad11e45d3d0e8d9d097901fe54722dd5d2c006969077a287be8648a202c43f74e096f17552cbd897568308fba7b87ac0
-  languageName: node
-  linkType: hard
-
-"collection-visit@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "collection-visit@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcollection-visit%2Fdownload%2Fcollection-visit-1.0.0.tgz"
-  dependencies:
-    map-visit: ^1.0.0
-    object-visit: ^1.0.0
-  checksum: c73cb1316c29f4b175198dba417f759e6b50ca3f312e42f4f451c2a38cc8e3e292e1fec60d9ccbada35fbc22805a1d897d3bc37fd88fbfe8ab509e4ede88c386
-  languageName: node
-  linkType: hard
-
-"color-convert@npm:^1.9.0":
-  version: 1.9.3
-  resolution: "color-convert@npm:1.9.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz"
-  dependencies:
-    color-name: 1.1.3
-  checksum: 5f244daa3d1fe1f216d48878c550465067d15268688308554e613b7640a068f96588096d51f0b98b68f15d6ff6bb8ad24e172582ac8c0ad43fa4d3da60fd1b79
-  languageName: node
-  linkType: hard
-
-"color-convert@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "color-convert@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz"
-  dependencies:
-    color-name: ~1.1.4
-  checksum: 3d5d8a011a43012ca11b6d739049ecf2055d95582fd16ec44bf1e685eb0baa5cc652002be8a1dc92b429c8d87418287d0528266a7595cb1ad8a7f4f1d3049df2
-  languageName: node
-  linkType: hard
-
-"color-name@npm:1.1.3":
-  version: 1.1.3
-  resolution: "color-name@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.3.tgz"
-  checksum: d8b91bb90aefc05b6ff568cf8889566dcc6269824df6f3c9b8ca842b18d7f4d089c07dc166808d33f22092d4a79167aa56a96a5ff0d21efab548bf44614db43b
-  languageName: node
-  linkType: hard
-
-"color-name@npm:~1.1.4":
-  version: 1.1.4
-  resolution: "color-name@npm:1.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-name%2Fdownload%2Fcolor-name-1.1.4.tgz"
-  checksum: 3e1c9a4dee12eada307436f61614dd11fe300469db2b83f80c8b7a7cd8a1015f0f18dd13403f018927b249003777ff60baba4a03c65f12e6bddc0dfd9642021f
-  languageName: node
-  linkType: hard
-
-"colorette@npm:^1.2.1":
-  version: 1.2.1
-  resolution: "colorette@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz"
-  checksum: 1cc21ad4b84777a424794f78b6bb6a44b614ae17dcea91762199339f8047598e6d981249eeef7ea588c99eaf062be8fcdcd4866c112998922ed854db6dde96f9
-  languageName: node
-  linkType: hard
-
-"colors@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "colors@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.4.0.tgz"
-  checksum: a0f266ac041a9774d92cc9624a984707678d2eeec125d54e8d8231075ce36c24c5352fb5d0f90c6ee420d0f63e354417cec716386ad341309334aad18e32b933
-  languageName: node
-  linkType: hard
-
-"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6":
-  version: 1.0.8
-  resolution: "combined-stream@npm:1.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz"
-  dependencies:
-    delayed-stream: ~1.0.0
-  checksum: 5791ce7944530f0db74a97e77ea28b6fdbf89afcf038e41d6b4195019c4c803cd19ed2905a54959e5b3830d50bd5d6f93c681c6d3aaea8614ad43b48e62e9d65
-  languageName: node
-  linkType: hard
-
-"command-line-usage@npm:^6.1.0":
-  version: 6.1.0
-  resolution: "command-line-usage@npm:6.1.0"
-  dependencies:
-    array-back: ^4.0.0
-    chalk: ^2.4.2
-    table-layout: ^1.0.0
-    typical: ^5.2.0
-  checksum: c49e5f4a6780ee42dfeb537a1331715b1f6e52d4529ea8ebad45b2fc882b40a82815df38cf36147a308d2d8698f132374ae7af2c43d03aa7c1e51cffbdfe5206
-  languageName: node
-  linkType: hard
-
-"commander@npm:^2.20.0":
-  version: 2.20.3
-  resolution: "commander@npm:2.20.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz"
-  checksum: b73428e97de7624323f81ba13f8ed9271de487017432d18b4da3f07cfc528ad754bbd199004bd5d14e0ccd67d1fdfe0ec8dbbd4c438b401df3c4cc387bfd1daa
-  languageName: node
-  linkType: hard
-
-"commander@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "commander@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-4.1.1.tgz"
-  checksum: 448585071bf8fb4c0bf9dd52abaee43dea086f801334caec2c8e8c9f456f8abc224c1614ccbbdbf7da5ac2524d230f13cf1fc86c233cf8a041ebecea7df106e9
-  languageName: node
-  linkType: hard
-
-"commander@npm:^6.0.0":
-  version: 6.2.0
-  resolution: "commander@npm:6.2.0"
-  checksum: c78501cd98e6ad66839004adc27940f5fc1a0102b306fbbc177965101d586cf6dd2e01bdffd64f99f2d4862101f24e602e3e4baa641b6f6a11c01ec5c900e412
-  languageName: node
-  linkType: hard
-
-"comment-json@npm:^2.2.0":
-  version: 2.4.2
-  resolution: "comment-json@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomment-json%2Fdownload%2Fcomment-json-2.4.2.tgz"
-  dependencies:
-    core-util-is: ^1.0.2
-    esprima: ^4.0.1
-    has-own-prop: ^2.0.0
-    repeat-string: ^1.6.1
-  checksum: 80bc181741f7966946e09ba253e97a4709288acb65e8b30e641efbca0a1a2c79f31d4df6cd1412a17ddb3d1289f552ec13e1d3f983b42ac84de6344fd062cf3d
-  languageName: node
-  linkType: hard
-
-"common-tags@npm:^1.8.0":
-  version: 1.8.0
-  resolution: "common-tags@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommon-tags%2Fdownload%2Fcommon-tags-1.8.0.tgz"
-  checksum: f37a868d868929cf345fe49c4122efde693f9b06bf5764df36c3bdf5d3c271a24bb3fb6fbfaeec1f29768e60ad648cc11a4092c91bac05a8bde90ddbf5aae1a8
-  languageName: node
-  linkType: hard
-
-"commondir@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "commondir@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommondir%2Fdownload%2Fcommondir-1.0.1.tgz"
-  checksum: 98f18ad14f0ea38e0866db365bc8496f2a74250cf47ec96b94913e1b0574c99b4ff837a9f05dbc68d82505fd06b52dfba4f6bbe6fbda43094296cfaf33b475a0
-  languageName: node
-  linkType: hard
-
-"component-emitter@npm:^1.2.1":
-  version: 1.3.0
-  resolution: "component-emitter@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcomponent-emitter%2Fdownload%2Fcomponent-emitter-1.3.0.tgz"
-  checksum: fc4edbf1014f0aed88dcec33ca02d2938734e428423f640d8a3f94975615b8e8c506c19e29b93949637c5a281353e75fa79e299e0d57732f42a9fe346cb2cad6
-  languageName: node
-  linkType: hard
-
-"compressible@npm:~2.0.16":
-  version: 2.0.18
-  resolution: "compressible@npm:2.0.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz"
-  dependencies:
-    mime-db: ">= 1.43.0 < 2"
-  checksum: 8ac178b6ef4f72adc51e495f23f7212a4764395dde24e476046cca1db988859eef96453e11563bcf40d1bf74469cdd7db29539fd4ac553577d9812d3f112fada
-  languageName: node
-  linkType: hard
-
-"compression@npm:^1.7.4":
-  version: 1.7.4
-  resolution: "compression@npm:1.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz"
-  dependencies:
-    accepts: ~1.3.5
-    bytes: 3.0.0
-    compressible: ~2.0.16
-    debug: 2.6.9
-    on-headers: ~1.0.2
-    safe-buffer: 5.1.2
-    vary: ~1.1.2
-  checksum: 8f5356777088492755e40a506acb35af7de9e99b3efcaba9d60dbdf4b61cb2f817a1100015da06f6ca8dea8f4cd015b91c27f02b562e2f66750329b9104dfeb1
-  languageName: node
-  linkType: hard
-
-"concat-map@npm:0.0.1":
-  version: 0.0.1
-  resolution: "concat-map@npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconcat-map%2Fdownload%2Fconcat-map-0.0.1.tgz"
-  checksum: 554e28d9ee5aa6e061795473ee092cb3d3a2cbdb76c35416e0bb6e03f136d7d07676da387b2ed0ec4106cedbb6534080d9abc48ecc4a92b76406cf2d0c3c0c4b
-  languageName: node
-  linkType: hard
-
-"connect-history-api-fallback@npm:^1.6.0":
-  version: 1.6.0
-  resolution: "connect-history-api-fallback@npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconnect-history-api-fallback%2Fdownload%2Fconnect-history-api-fallback-1.6.0.tgz"
-  checksum: 298f60415d5f5480b76f98d8bf83737cae9f05921e3d3479452cae34ed3498fab35a1c4c8f19ca5b327bbbe759098f5f6e5fc097d829f607d0d642b075c93e21
-  languageName: node
-  linkType: hard
-
-"console-control-strings@npm:^1.0.0, console-control-strings@npm:~1.1.0":
-  version: 1.1.0
-  resolution: "console-control-strings@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsole-control-strings%2Fdownload%2Fconsole-control-strings-1.1.0.tgz"
-  checksum: 58a404d951bf270494fb91e136cf064652c1208ccedac23e4da24e6a3a3933998f302cadc45cbf6582a007a4aa44dab944e84056b24e3b1964e9a28aeedf76c9
-  languageName: node
-  linkType: hard
-
-"contains-path@npm:^0.1.0":
-  version: 0.1.0
-  resolution: "contains-path@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontains-path%2Fdownload%2Fcontains-path-0.1.0.tgz"
-  checksum: 59920a59a0c7d1244235d76b8cfd2b2e7a8dcc463fa578ef9d4d5a5a73eeb14d75dada6b21188e0b35f2474ae9efd10c3698372e674db9c6a904b281998b97d6
-  languageName: node
-  linkType: hard
-
-"content-disposition@npm:0.5.3":
-  version: 0.5.3
-  resolution: "content-disposition@npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz"
-  dependencies:
-    safe-buffer: 5.1.2
-  checksum: 8f1f235c0423be68023df7f5a3948601d859ce44ee94e1d0fa2a97383bd469e789320b6ddf6f31b3620605c75cf771522df11386f51aff401e5d51b6ccfde3e2
-  languageName: node
-  linkType: hard
-
-"content-type@npm:~1.0.4":
-  version: 1.0.4
-  resolution: "content-type@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-type%2Fdownload%2Fcontent-type-1.0.4.tgz"
-  checksum: ff6e19cbf281c23d5608723a6dc60ac97e2280bd4d21602511283112321e6c1555895e395555e367672b54a0f1585276284b7c3c8be313aca73902ac2f2609fd
-  languageName: node
-  linkType: hard
-
-"convert-source-map@npm:^1.7.0":
-  version: 1.7.0
-  resolution: "convert-source-map@npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz"
-  dependencies:
-    safe-buffer: ~5.1.1
-  checksum: b10fbf041e3221c65e1ab67f05c8fcbad9c5fd078c62f4a6e05cb5fddc4b5a0e8a17c6a361c6a44f011b1a0c090b36aa88543be9dfa65da8c9e7f39c5de2d4df
-  languageName: node
-  linkType: hard
-
-"cookie-signature@npm:1.0.6":
-  version: 1.0.6
-  resolution: "cookie-signature@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie-signature%2Fdownload%2Fcookie-signature-1.0.6.tgz"
-  checksum: 305054e102eebd0a483c63aefdc3abf54a9471bed5eb12be56c0dcf35a94110b8a13139b27751ab07a5ef09e9f4190ee67f71e9d3acf1748e6e2f1aed338c987
-  languageName: node
-  linkType: hard
-
-"cookie@npm:0.4.0":
-  version: 0.4.0
-  resolution: "cookie@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz"
-  checksum: 7aaef4b642c533600fdd001d963a507dfcd814267503374e51d9743475d024feeff8b0b4ddd0777a25791a2efbdfd8bc4a0fe0696104efa195e8f8584807d410
-  languageName: node
-  linkType: hard
-
-"copy-descriptor@npm:^0.1.0":
-  version: 0.1.1
-  resolution: "copy-descriptor@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-descriptor%2Fdownload%2Fcopy-descriptor-0.1.1.tgz"
-  checksum: c052cf571ff6b69b604607a3d41f03cb742af9472026013e690ab33e1bef5e64930c53a5f881dc79c7e4f5ccc3cea0ebb9f420315d3690989329088976b68ee9
-  languageName: node
-  linkType: hard
-
-"copy-webpack-plugin@npm:^6.2.1":
-  version: 6.2.1
-  resolution: "copy-webpack-plugin@npm:6.2.1"
-  dependencies:
-    cacache: ^15.0.5
-    fast-glob: ^3.2.4
-    find-cache-dir: ^3.3.1
-    glob-parent: ^5.1.1
-    globby: ^11.0.1
-    loader-utils: ^2.0.0
-    normalize-path: ^3.0.0
-    p-limit: ^3.0.2
-    schema-utils: ^3.0.0
-    serialize-javascript: ^5.0.1
-    webpack-sources: ^1.4.3
-  peerDependencies:
-    webpack: ^4.37.0 || ^5.0.0
-  checksum: 99ef83b4237b51e95618365ad2e62775b640fe1cae0d39d3ab03bcb09c9026a00ab0fb1c03f72d164c1457482114ddf959e7a03ab409704f34686e0a64ee4a31
-  languageName: node
-  linkType: hard
-
-"core-js-compat@npm:^3.6.2":
-  version: 3.6.5
-  resolution: "core-js-compat@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz"
-  dependencies:
-    browserslist: ^4.8.5
-    semver: 7.0.0
-  checksum: b263b5313f5b10807cbe2037bcff1d0abc3611d8600ca29a742695eb21411f76a8c762db00a04d684a3f80645252aeb74b24542c157ec24697edd3ae7afcce87
-  languageName: node
-  linkType: hard
-
-"core-js-pure@npm:^3.0.0":
-  version: 3.6.5
-  resolution: "core-js-pure@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.6.5.tgz"
-  checksum: 91fc8e0b699d5bcb11f265ad4544d08c98096b86ad6c9b4c00109616db0aa992ceb58ea82d0dbae2a16658a7aaf2922aa6f9fc1107dc3b0055270799d0414a3f
-  languageName: node
-  linkType: hard
-
-"core-js@npm:^2.4.0":
-  version: 2.6.11
-  resolution: "core-js@npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz"
-  checksum: 39ad00b46deaecf344470ef940949b58c4b15e71608a98e8ac7429cd16e485b829f9720d44a44b5f4dee966ff04a18baf5283feb8aaba2cb59ce2c25fa72b88c
-  languageName: node
-  linkType: hard
-
-"core-js@npm:^3.6.5":
-  version: 3.6.5
-  resolution: "core-js@npm:3.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz"
-  checksum: 9283348dd5be2f1d07feaf90e2336b3f00a2316e3d3c6d4f789c9a67bdd4d7b08ce1c88dca4e591340130056c6b412b0b74fae039f8e259206f1073f542e4e85
-  languageName: node
-  linkType: hard
-
-"core-util-is@npm:1.0.2, core-util-is@npm:^1.0.2, core-util-is@npm:~1.0.0":
-  version: 1.0.2
-  resolution: "core-util-is@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-util-is%2Fdownload%2Fcore-util-is-1.0.2.tgz"
-  checksum: 089015ee3c462dfceba70faa1df83b42a7bb35db26dae6af283247b06fe3216c65fccd9f00eebcaf98300dc31e981d56aae9f90b624f8f6ff1153e235ff88b65
-  languageName: node
-  linkType: hard
-
-"corser@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "corser@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcorser%2Fdownload%2Fcorser-2.0.1.tgz"
-  checksum: 5af366b3eacfe1e6a0475e65afd30527a39d0b44c62a8889be0e9204399c22f0462acbec5db04e2ad4ed506b05273668a65688c6e6ebfbcc507a4097592698c2
-  languageName: node
-  linkType: hard
-
-"cosmiconfig@npm:^7.0.0":
-  version: 7.0.0
-  resolution: "cosmiconfig@npm:7.0.0"
-  dependencies:
-    "@types/parse-json": ^4.0.0
-    import-fresh: ^3.2.1
-    parse-json: ^5.0.0
-    path-type: ^4.0.0
-    yaml: ^1.10.0
-  checksum: 151fcb91773c0ae826fc801eab86f8f818605dbf63c8e5515adf0ff0fec5ede8e614f387f93c088d65527a2ea9021f0cd8c6b6e5c7fef2b77480b5e2c33700dc
-  languageName: node
-  linkType: hard
-
-"cross-spawn@npm:7.0.3, cross-spawn@npm:^7.0.0":
-  version: 7.0.3
-  resolution: "cross-spawn@npm:7.0.3"
-  dependencies:
-    path-key: ^3.1.0
-    shebang-command: ^2.0.0
-    which: ^2.0.1
-  checksum: 51f10036f5f1de781be98f4738d58b50c6d44f4f471069b8ab075b21605893ba1548654880f7310a29a732d6fc7cd481da6026169b9f0831cab0148a62fb397a
-  languageName: node
-  linkType: hard
-
-"cross-spawn@npm:^6.0.0":
-  version: 6.0.5
-  resolution: "cross-spawn@npm:6.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz"
-  dependencies:
-    nice-try: ^1.0.4
-    path-key: ^2.0.1
-    semver: ^5.5.0
-    shebang-command: ^1.2.0
-    which: ^1.2.9
-  checksum: 05fbbf957d9b81dc05fd799a238f6aacc2e7cc9783fff3f0e00439a97d6f269c90482571cbf1eeea17200fd119161a2d1f88aa49a8110b176e04f2a70825284f
-  languageName: node
-  linkType: hard
-
-"cross-spawn@npm:^7.0.2":
-  version: 7.0.3
-  resolution: "cross-spawn@npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz"
-  dependencies:
-    path-key: ^3.1.0
-    shebang-command: ^2.0.0
-    which: ^2.0.1
-  checksum: 51f10036f5f1de781be98f4738d58b50c6d44f4f471069b8ab075b21605893ba1548654880f7310a29a732d6fc7cd481da6026169b9f0831cab0148a62fb397a
-  languageName: node
-  linkType: hard
-
-"crypto-random-string@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "crypto-random-string@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-1.0.0.tgz"
-  checksum: 0876b316ccf6f501d0deda42507adcfff276790eba38ab87ba4a7f77e1f11404f406fa36a8c273e781c9eabbbe5da4eab4d7577ca1e84dcac556743ffc816af5
-  languageName: node
-  linkType: hard
-
-"css-blank-pseudo@npm:^0.1.4":
-  version: 0.1.4
-  resolution: "css-blank-pseudo@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-blank-pseudo%2Fdownload%2Fcss-blank-pseudo-0.1.4.tgz"
-  dependencies:
-    postcss: ^7.0.5
-  bin:
-    css-blank-pseudo: cli.js
-  checksum: 605927ba911aa22820de56db3ce5760a7d8936834447c5e30e20f63f141a8787920a0aa8dd7fdde97823ee0619e76e003a6e66f2ff299d49e8574b12ed300a7f
-  languageName: node
-  linkType: hard
-
-"css-has-pseudo@npm:^0.10.0":
-  version: 0.10.0
-  resolution: "css-has-pseudo@npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz"
-  dependencies:
-    postcss: ^7.0.6
-    postcss-selector-parser: ^5.0.0-rc.4
-  bin:
-    css-has-pseudo: cli.js
-  checksum: 8bfb4c7d426f4b0b660d1a72ed0c652fd58b3b2203f629ebffcb2bdc278e2e9de2319fe3bddde9f0d2de3d7cb42f0905f5de49802bd9a40f512fd782013eb7b9
-  languageName: node
-  linkType: hard
-
-"css-loader@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "css-loader@npm:5.0.0"
-  dependencies:
-    camelcase: ^6.1.0
-    cssesc: ^3.0.0
-    icss-utils: ^5.0.0
-    loader-utils: ^2.0.0
-    postcss: ^8.1.1
-    postcss-modules-extract-imports: ^3.0.0
-    postcss-modules-local-by-default: ^4.0.0
-    postcss-modules-scope: ^3.0.0
-    postcss-modules-values: ^4.0.0
-    postcss-value-parser: ^4.1.0
-    schema-utils: ^3.0.0
-    semver: ^7.3.2
-  peerDependencies:
-    webpack: ^4.27.0 || ^5.0.0
-  checksum: 8b0d45e2011d09ba91fd6d200f07ee7206104e676a84c7a01f9c7d6b7515e9b882b44a290f44002d4624d8252d9b06303f0a5c0e1885c43238ad84482e5efb51
-  languageName: node
-  linkType: hard
-
-"css-mediaquery@npm:^0.1.2":
-  version: 0.1.2
-  resolution: "css-mediaquery@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-mediaquery%2Fdownload%2Fcss-mediaquery-0.1.2.tgz"
-  checksum: 571ab2efdba0dead1315eb82b1e53917b4aeb45f07cc2ff97bfe3c6443cd036843d944044661561b5585d1f64ecbcad112052b40846ae4d85ef7d5e978e996e4
-  languageName: node
-  linkType: hard
-
-"css-prefers-color-scheme@npm:^3.1.1":
-  version: 3.1.1
-  resolution: "css-prefers-color-scheme@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-prefers-color-scheme%2Fdownload%2Fcss-prefers-color-scheme-3.1.1.tgz"
-  dependencies:
-    postcss: ^7.0.5
-  bin:
-    css-prefers-color-scheme: cli.js
-  checksum: 3ef06a7a427658f1ac0772d253990a70748d9f19e0e5b92d26430b3522f982a38195df79fd3d1eb45241a35d0f253d7a36e295a6a91d130d2ea45e90363ba8f8
-  languageName: node
-  linkType: hard
-
-"css-select@npm:^1.1.0":
-  version: 1.2.0
-  resolution: "css-select@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-1.2.0.tgz"
-  dependencies:
-    boolbase: ~1.0.0
-    css-what: 2.1
-    domutils: 1.5.1
-    nth-check: ~1.0.1
-  checksum: c1fdd9040c677cd872e57761aafce8b603fa3c979117cc9d70e0e4901d6e0c751abe3b05b93d918835413165916d7f7132559a6f350863124f6bbbec2b1694d8
-  languageName: node
-  linkType: hard
-
-"css-what@npm:2.1":
-  version: 2.1.3
-  resolution: "css-what@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz"
-  checksum: 732fcecfe3247eadd79081790934f9aa003ca935657d87a4737afc03dc378f8f3d1a071066328a226d98299d15e855c886f625119fe1d7f2367659d3335bde6f
-  languageName: node
-  linkType: hard
-
-"cssdb@npm:^4.4.0":
-  version: 4.4.0
-  resolution: "cssdb@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssdb%2Fdownload%2Fcssdb-4.4.0.tgz"
-  checksum: 457af51749239fccace2760bc9e49a211d72a992dde98f6b737cd9bebe44da3da323a96835cb3d7c48927c491e940d6985ba345da9a9467581242152745d9659
-  languageName: node
-  linkType: hard
-
-"cssesc@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "cssesc@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-2.0.0.tgz"
-  bin:
-    cssesc: bin/cssesc
-  checksum: f32fabda44dbedacb03a1b393579696594effce89da0a3dd2614ce827b803e4fdf747031bb0bd72784d5558fa077211cddfb20a3dc1326815810b301cb7baab6
-  languageName: node
-  linkType: hard
-
-"cssesc@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "cssesc@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssesc%2Fdownload%2Fcssesc-3.0.0.tgz"
-  bin:
-    cssesc: bin/cssesc
-  checksum: 673783eda1f89af3faefc0e4b833f40621f484ce102a23396e7a65cc4c42798bd91ee3656c8b04a0a5ca38d40ada5bc8663e4541c380a7a81af2de5b2322e443
-  languageName: node
-  linkType: hard
-
-"csstype@npm:^2.2.0":
-  version: 2.6.11
-  resolution: "csstype@npm:2.6.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-2.6.11.tgz"
-  checksum: b5de145e845a416006d870c8005807922ee23cb72f9427c2c1e3e7df9f7f2996ef32aa2f12456477a47966eabbd7a9a5baa668588ff6c6a19546ada77ad09edf
-  languageName: node
-  linkType: hard
-
-"csstype@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "csstype@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsstype%2Fdownload%2Fcsstype-3.0.2.tgz"
-  checksum: acf2852a3c5f5e1ed84e36526e41584e09353ee57b9bd93bf17f91bd2be60545adaf86c4439b84952d1f596149e06f9da6bb28c1d1ab883c9b2ad68e143e79f4
-  languageName: node
-  linkType: hard
-
-"dashdash@npm:^1.12.0":
-  version: 1.14.1
-  resolution: "dashdash@npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz"
-  dependencies:
-    assert-plus: ^1.0.0
-  checksum: 5959409ee42dc4bdbf3fa384b801ece580ca336658bb0342ffab0099b3fc6bf9b3e239e1b82dcc4fcaeee315353e08f2eae47b0928a6a579391598c44958afa1
-  languageName: node
-  linkType: hard
-
-"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9":
-  version: 2.6.9
-  resolution: "debug@npm:2.6.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz"
-  dependencies:
-    ms: 2.0.0
-  checksum: 559f44f98cf25e2ee489022aec173afbff746564cb108c4493becb95bc3c017a67bdaa25a0ff64801fd32c35051d00af0e56cc7f762ae2c3bc089496e5a1c31b
-  languageName: node
-  linkType: hard
-
-"debug@npm:=3.1.0":
-  version: 3.1.0
-  resolution: "debug@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz"
-  dependencies:
-    ms: 2.0.0
-  checksum: 1295acd5e0531761255661d325cd0a80ac8c5f6de8942a53bb23c2197ccb97526972de662ed0e5d9393be83f3428a298a6e7185ecb02f0da6282019cd2ffb4a8
-  languageName: node
-  linkType: hard
-
-"debug@npm:^3.1.1, debug@npm:^3.2.5":
-  version: 3.2.6
-  resolution: "debug@npm:3.2.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz"
-  dependencies:
-    ms: ^2.1.1
-  checksum: 619feb53b115f1a8341365b8aa58a8757e6632738587d4b61b25627b74891211cb20e31fdbea37fec766e575a60cf456f7a02d6f9eddfdcef80caa6a4b0fc042
-  languageName: node
-  linkType: hard
-
-"debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1":
-  version: 4.2.0
-  resolution: "debug@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz"
-  dependencies:
-    ms: 2.1.2
-  peerDependencies:
-    supports-color: "*"
-  peerDependenciesMeta:
-    supports-color:
-      optional: true
-  checksum: dcfb8ede26b4d899628a75806923ab9ad29daae7db0f6f1ca6227b660693ae0ca085c7f87261793abe0832ad56aff2afc33f907c6b5dc96a41fc208771feb465
-  languageName: node
-  linkType: hard
-
-"decamelize@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "decamelize@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz"
-  checksum: 8ca9d03ea8ac07920f4504e219d18edff2491bdd0a3e05a1e5ca2e9a0bf6333564231de3528b01d5e76c40a38c37bbc1e09cb5a0424714f53dd615ed78ced464
-  languageName: node
-  linkType: hard
-
-"decode-uri-component@npm:^0.2.0":
-  version: 0.2.0
-  resolution: "decode-uri-component@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecode-uri-component%2Fdownload%2Fdecode-uri-component-0.2.0.tgz"
-  checksum: d8cb28c33f7b0a70b159b5fa126aee821ba090396689bd46ad2c423c3a658c504d2743ab18060fd5ed1cae5377bdd3632760a8e98ba920ff49637d43dc6a9687
-  languageName: node
-  linkType: hard
-
-"decompress-response@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "decompress-response@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz"
-  dependencies:
-    mimic-response: ^3.1.0
-  checksum: bb8b8c42be7767994764d27f91a3949e3dc9008da82f1aaeab1de40f1ebb50d7abf17b31b2e4000f8d267a1e75f76052efd58d4419124c04bf430e184c164fad
-  languageName: node
-  linkType: hard
-
-"deep-equal@npm:^1.0.1":
-  version: 1.1.1
-  resolution: "deep-equal@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz"
-  dependencies:
-    is-arguments: ^1.0.4
-    is-date-object: ^1.0.1
-    is-regex: ^1.0.4
-    object-is: ^1.0.1
-    object-keys: ^1.1.1
-    regexp.prototype.flags: ^1.2.0
-  checksum: cc6a0009ce73a10230758d50795211fb3ceb7eb7f2cf8baed1c4a4cb2a06dc28857ce11e641c95ca9abb5edc1f1e86a4bb6bcffaadf9fe9d310c102d346d043b
-  languageName: node
-  linkType: hard
-
-"deep-extend@npm:~0.6.0":
-  version: 0.6.0
-  resolution: "deep-extend@npm:0.6.0"
-  checksum: 856d7f52db152c19fc5a70439ea938461cfb9338a632496fe370050dc73d3291cd76fc6713f604a5c126612dee9cac0f6da1d4b88ba4b0caa4f7214345879b89
-  languageName: node
-  linkType: hard
-
-"deep-is@npm:^0.1.3":
-  version: 0.1.3
-  resolution: "deep-is@npm:0.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.3.tgz"
-  checksum: 3de58f86af4dec86c8be531a5abaf2e6d8ea98fa2f1d81a3a778d0d8df920ee282043a6ef05bfb4eb699c8551df9ac1b808d4dc71d54cc40ab1efa5ce8792943
-  languageName: node
-  linkType: hard
-
-"deepmerge@npm:^1.5.2":
-  version: 1.5.2
-  resolution: "deepmerge@npm:1.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz"
-  checksum: 5c44bd09ed12abe023d0358208dfc4cc4ec85287891bcbb8659a43faeb44a87c65d0c5b892bd99e32e837614adf4b591a07bf1ef76e3b0d04c8461500cf55d17
-  languageName: node
-  linkType: hard
-
-"default-gateway@npm:^4.2.0":
-  version: 4.2.0
-  resolution: "default-gateway@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz"
-  dependencies:
-    execa: ^1.0.0
-    ip-regex: ^2.1.0
-  checksum: 5d92439d573a261d850f6205fcc6541ec57378dec2032f3c7d0a18c7f9222f88f7ff4997bfff17607850b8fce6cdf3fb1c231bc43bf5e2bd6bbce3b733082add
-  languageName: node
-  linkType: hard
-
-"defer-to-connect@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "defer-to-connect@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefer-to-connect%2Fdownload%2Fdefer-to-connect-2.0.0.tgz"
-  checksum: 0453938bfce1c866263d0a4732ade8d69b1a39e27e073d3fbae9e0cc1c6a15a422c2fe5f90320465312ace6a01dbed4a2836755ac2a9519555e82d65141eabdc
-  languageName: node
-  linkType: hard
-
-"define-properties@npm:^1.1.2, define-properties@npm:^1.1.3":
-  version: 1.1.3
-  resolution: "define-properties@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz"
-  dependencies:
-    object-keys: ^1.0.12
-  checksum: b69c48c1b1dacb61f0b1cea367707c3bb214e3c47818aff18e6f20a7f88cbfa33d4cbdfd9ff79e56faba95ddca3d78ff10fbf2f02ecfad6f3e13b256e76b1212
-  languageName: node
-  linkType: hard
-
-"define-property@npm:^0.2.5":
-  version: 0.2.5
-  resolution: "define-property@npm:0.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-0.2.5.tgz"
-  dependencies:
-    is-descriptor: ^0.1.0
-  checksum: 6fed0540727ca8ea1f5eacddf24bf9e8c212c07f638ef0cd743caa69647f0421cd72a17b466d4c378c5c0f232ad756fa92b90f8e1d975ddfec388dc6306e3583
-  languageName: node
-  linkType: hard
-
-"define-property@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "define-property@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-1.0.0.tgz"
-  dependencies:
-    is-descriptor: ^1.0.0
-  checksum: 9034f8f6f3128945374349262e4f97b53e9582f9e3435bedb284c5210c45a98b355d40a42a570766add34a604d97b6ff0773bfd122f891a289009a1b82cc0eee
-  languageName: node
-  linkType: hard
-
-"define-property@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "define-property@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefine-property%2Fdownload%2Fdefine-property-2.0.2.tgz"
-  dependencies:
-    is-descriptor: ^1.0.2
-    isobject: ^3.0.1
-  checksum: 00c7ec53b5040507016736922a9678b3247bc85e0ea0429e47d6ca6a993890f9dc338fb19d5bf6f8c0ca29016a68aa7e7da5c35d4ed8b3646347d86a3b2b4b01
-  languageName: node
-  linkType: hard
-
-"del@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "del@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz"
-  dependencies:
-    "@types/glob": ^7.1.1
-    globby: ^6.1.0
-    is-path-cwd: ^2.0.0
-    is-path-in-cwd: ^2.0.0
-    p-map: ^2.0.0
-    pify: ^4.0.1
-    rimraf: ^2.6.3
-  checksum: 87eecb2af52e794f8d9c8d200a31e0032cec8c255f08a97ef28be771bf561f16023746f2329d7b436e0a1fe09abafe80a25b2546131aa809cbd9a6bf49220cf3
-  languageName: node
-  linkType: hard
-
-"delayed-stream@npm:~1.0.0":
-  version: 1.0.0
-  resolution: "delayed-stream@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelayed-stream%2Fdownload%2Fdelayed-stream-1.0.0.tgz"
-  checksum: d9dfb0a7c79fd308fada9db2cf29d1ff22047ceb50dd78f7e3c173567909b438f418259cb76a6d9c9f513e88ef41d3a14154f618741ec8368c3efeff616d0c9f
-  languageName: node
-  linkType: hard
-
-"delegates@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "delegates@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz"
-  checksum: 7459e34d29cadd9bfd340728bfcc70ea96da5d940fb197298b523f805822680e583cba3ec34d36a18004325f1ec9de55e202a92b414d01db18cd87bb8a2ae5bd
-  languageName: node
-  linkType: hard
-
-"depd@npm:~1.1.2":
-  version: 1.1.2
-  resolution: "depd@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdepd%2Fdownload%2Fdepd-1.1.2.tgz"
-  checksum: f45566ff7019a346852f095768a380778ed544de24e103b479fd5d3e61982d670efbb5234c09d0588d7fdb09c26c48283d7150e4be5e6ce5d3d37cd268d75c4d
-  languageName: node
-  linkType: hard
-
-"destroy@npm:~1.0.4":
-  version: 1.0.4
-  resolution: "destroy@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdestroy%2Fdownload%2Fdestroy-1.0.4.tgz"
-  checksum: 5a516fc5a8a8089eecdac11da2339353542be7a71102dc5a1372ef6161501bf5c1ee59ff9f8a3f5f14cc8c88594d606f855f816d46a228ee5e0e5cb2b543534b
-  languageName: node
-  linkType: hard
-
-"detect-node@npm:^2.0.4":
-  version: 2.0.4
-  resolution: "detect-node@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.4.tgz"
-  checksum: e7648a5a91dd5e91838d14f0e9631f2adf0117cc271ea86d8ce394a8fbe8fc7545755c8261faaf4b1e196795a10da99e5d5f1013163ba0f6260a57b0ba29cc60
-  languageName: node
-  linkType: hard
-
-"diff@npm:^4.0.1":
-  version: 4.0.2
-  resolution: "diff@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz"
-  checksum: 81b5cd7ddde6f0ba2a532d434cfdca365aedd6cc62bb133e851e66e071d40382a30924a07c1034bd3d5a2e332146f64514b73c06fe2ebc0490a67f0c98da79fb
-  languageName: node
-  linkType: hard
-
-"dir-glob@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "dir-glob@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdir-glob%2Fdownload%2Fdir-glob-3.0.1.tgz"
-  dependencies:
-    path-type: ^4.0.0
-  checksum: 687fa3bd604f264042f325d9460e1298447fb32782f30cddc47cb302b742684d13e8ffce4c6f455e0ae92099d71e29f72387379c10b8fd3f6f1bf8992d7c0997
-  languageName: node
-  linkType: hard
-
-"dns-equal@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "dns-equal@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-equal%2Fdownload%2Fdns-equal-1.0.0.tgz"
-  checksum: 096be3c1a742c7c5bdcd39836f70cb060f4c453f0f48cae1830bf011813387912f97da34d247570b5ec547c61c404f06657a0092297f38d797b22a10b5801bfe
-  languageName: node
-  linkType: hard
-
-"dns-packet@npm:^1.3.1":
-  version: 1.3.1
-  resolution: "dns-packet@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-packet%2Fdownload%2Fdns-packet-1.3.1.tgz"
-  dependencies:
-    ip: ^1.1.0
-    safe-buffer: ^5.0.1
-  checksum: cb7bb4e8fb25460fcde192273f0c95ce91a9f780a7f3a49ae835cd2fd7f0fcc1bb870ef0141ebb9eca8de9c545293291d1a4c978a754adbb93a84dcee9623bd9
-  languageName: node
-  linkType: hard
-
-"dns-txt@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "dns-txt@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdns-txt%2Fdownload%2Fdns-txt-2.0.2.tgz"
-  dependencies:
-    buffer-indexof: ^1.0.0
-  checksum: 62d4b87b09421f813dd03eb17866cb307e278555475b25752396d3e5c7e63b9f0f64ab5b41edeb755cb52d722600a89977d36c64a94d02ed92c32e44a8b849f2
-  languageName: node
-  linkType: hard
-
-"doctrine@npm:1.5.0":
-  version: 1.5.0
-  resolution: "doctrine@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-1.5.0.tgz"
-  dependencies:
-    esutils: ^2.0.2
-    isarray: ^1.0.0
-  checksum: aaffea02f963b8b07a78b1e27d7cef29be65d31be2c6681cb2872c2fb3781e14615bd05d4dff6036f75dcf3f191216058409fbfec805d3a7277a8647cd5bdee1
-  languageName: node
-  linkType: hard
-
-"doctrine@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "doctrine@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-2.1.0.tgz"
-  dependencies:
-    esutils: ^2.0.2
-  checksum: 4aa55e46757cc11bff8efa67cdb679dd89e87c954ea9d88fad5a9198cfe0a73748085503d29bebcb143487d720a759a6bbe81d6848c94da46a55c7a366b9834e
-  languageName: node
-  linkType: hard
-
-"doctrine@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "doctrine@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdoctrine%2Fdownload%2Fdoctrine-3.0.0.tgz"
-  dependencies:
-    esutils: ^2.0.2
-  checksum: 2eae469bd2889ceee9892083a67340b3622568fe5290edce620e5d5ddab23d644b2a780e9a7c68ad9c8a62716a70c5e484402ac93a398fa78b54b7505592aa7f
-  languageName: node
-  linkType: hard
-
-"dom-converter@npm:^0.2":
-  version: 0.2.0
-  resolution: "dom-converter@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-converter%2Fdownload%2Fdom-converter-0.2.0.tgz"
-  dependencies:
-    utila: ~0.4
-  checksum: 437b4464bd3c5e654decf855f9263e939d633d7bb720512f9a400b3e1005d870eb4a5fbead7d9ccb7849f7df5ee30c62f9a56b68143c13575ae5fef16007742c
-  languageName: node
-  linkType: hard
-
-"dom-helpers@npm:^5.0.1, dom-helpers@npm:^5.1.0, dom-helpers@npm:^5.1.2":
-  version: 5.2.0
-  resolution: "dom-helpers@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-helpers%2Fdownload%2Fdom-helpers-5.2.0.tgz"
-  dependencies:
-    "@babel/runtime": ^7.8.7
-    csstype: ^3.0.2
-  checksum: 9ef27628f4ccfdfa0537b35ecf3b9600f1656f9c66f57a1530b552a65b51f4466d44514f2cb87399a15feee3c51047a77760327971e9aabc64fe637efd319156
-  languageName: node
-  linkType: hard
-
-"dom-serializer@npm:0":
-  version: 0.2.2
-  resolution: "dom-serializer@npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz"
-  dependencies:
-    domelementtype: ^2.0.1
-    entities: ^2.0.0
-  checksum: 598e05e71b8cdb03424393c0631818b978b9fee2dd18d0215a9ee97a6dee86bddd1dcfae4609c173185a9f1bcde24d4a87e1f0d512d66b76536b21fc3f34fc03
-  languageName: node
-  linkType: hard
-
-"dom-walk@npm:^0.1.0":
-  version: 0.1.2
-  resolution: "dom-walk@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-walk%2Fdownload%2Fdom-walk-0.1.2.tgz"
-  checksum: 948c7527f3798cae9d7039cc0e5dc9f013ebd701d7d99478bac79d7d9eb8b81e7b6e836526e21ed9b156466b268e30ea0f2d5b72df955fabec3ce2aa7dc0086e
-  languageName: node
-  linkType: hard
-
-"domelementtype@npm:1, domelementtype@npm:^1.3.1":
-  version: 1.3.1
-  resolution: "domelementtype@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz"
-  checksum: a4791788de07071422b2fe63b58cfb89c2507def6864954d0d7a062adb00fc925059856d29c3e48051c8fa2f20147e5d3fb24b1adbc5bdf0f9e99981b53b74c6
-  languageName: node
-  linkType: hard
-
-"domelementtype@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "domelementtype@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz"
-  checksum: 9ddda35625a244de9a4832b1cf861f80e146faf6f0e70efe5a88c2c54c34e29e745f7048992dadc3af91c031abe035782f4dc16e6e7862eff6e80bd7c79327df
-  languageName: node
-  linkType: hard
-
-"domhandler@npm:^2.3.0":
-  version: 2.4.2
-  resolution: "domhandler@npm:2.4.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz"
-  dependencies:
-    domelementtype: 1
-  checksum: dbe99b096aaf6e0618efc2e7e39d46448cba00999b08ba14970ee4d7a8916c4d4d463fcc1b4a7f247b34f47d1c115eec8fa5f8a4d1e430b2207da32bdf41f49a
-  languageName: node
-  linkType: hard
-
-"domutils@npm:1.5.1":
-  version: 1.5.1
-  resolution: "domutils@npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz"
-  dependencies:
-    dom-serializer: 0
-    domelementtype: 1
-  checksum: ffc578118d3e50d0f34a0bba37575492998d43b7e54764533b1890e6c233b67068a0f369d1d23d200aa71c3fe87f2d60fdc4a87479e416edafecc33f00fc9735
-  languageName: node
-  linkType: hard
-
-"domutils@npm:^1.5.1":
-  version: 1.7.0
-  resolution: "domutils@npm:1.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz"
-  dependencies:
-    dom-serializer: 0
-    domelementtype: 1
-  checksum: a5b2f01fb3ff626073e3c3b43fedcff34073fb059b1235ee31cd0b5690d826304f41bc3fd117f95d754a1666ac3a57d224b408d83dd4f1c4525fd5b636d8df6f
-  languageName: node
-  linkType: hard
-
-"dot-case@npm:^3.0.3":
-  version: 3.0.3
-  resolution: "dot-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-case%2Fdownload%2Fdot-case-3.0.3.tgz"
-  dependencies:
-    no-case: ^3.0.3
-    tslib: ^1.10.0
-  checksum: 31e5037039fb696ed7f1da1d3f0cea5fa0ffe0523334229a2f241856411fbbb59a5a7a6f8ae1447820718797708650bd6f90836d510ec27a81694fbc006c946a
-  languageName: node
-  linkType: hard
-
-"ecc-jsbn@npm:~0.1.1":
-  version: 0.1.2
-  resolution: "ecc-jsbn@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz"
-  dependencies:
-    jsbn: ~0.1.0
-    safer-buffer: ^2.1.0
-  checksum: 5b4dd05f24b2b94c1bb882488dba2b878bb5b83182669aa71fbdf53c6941618180cb226c4eb9a3e2fa51ad11f87b5edb0a7d7289cdef468ba2e6024542f73f07
-  languageName: node
-  linkType: hard
-
-"ecstatic@npm:^3.3.2":
-  version: 3.3.2
-  resolution: "ecstatic@npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fecstatic%2Fdownload%2Fecstatic-3.3.2.tgz"
-  dependencies:
-    he: ^1.1.1
-    mime: ^1.6.0
-    minimist: ^1.1.0
-    url-join: ^2.0.5
-  bin:
-    ecstatic: ./lib/ecstatic.js
-  checksum: a6185a71daa21e8bdbaca3117e9eda90edc40d85c34eb1c0af3209a162cd8385624f15e46940f1dcfe96bad01fc82fa0df09caa51d7a052637eb22dd11c1426f
-  languageName: node
-  linkType: hard
-
-"ee-first@npm:1.1.1":
-  version: 1.1.1
-  resolution: "ee-first@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fee-first%2Fdownload%2Fee-first-1.1.1.tgz"
-  checksum: ba74f91398e3ee3b6d665b2f0d13ad6530e89a7e64ec886a6eec0602fb8a5a274652960e21bd5d4b42fdeb9017d873ff872f50342d38779e955285977edb337c
-  languageName: node
-  linkType: hard
-
-"ejs@npm:^2.6.1":
-  version: 2.7.4
-  resolution: "ejs@npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz"
-  checksum: f066d9a932fb921bdb6e87133d747d5e3408a1c1303f9a15e5a7a3973afdf444a672c98c2f6d97b9a1a76363bd8ae6d05286f26c6b6b7b9674dfc5802fc8546d
-  languageName: node
-  linkType: hard
-
-"electron-to-chromium@npm:^1.3.488":
-  version: 1.3.501
-  resolution: "electron-to-chromium@npm:1.3.501::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.501.tgz"
-  checksum: ec4408a0859dab6e89134d4a95ebd6416cb93b5f76fe4103a993bb3ba2148ae23228fef9d882f404d5b59bc67ceca1142f29f8c85c9050add2073926ffb18131
-  languageName: node
-  linkType: hard
-
-"electron-to-chromium@npm:^1.3.523":
-  version: 1.3.544
-  resolution: "electron-to-chromium@npm:1.3.544::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.544.tgz"
-  checksum: bb86613254a499835f08f2480c9f8247bb7ee8a81b0154c9d51f61906051d69c9ccdccf37f6b4180e181b03248712317a4668096212d6b837239452726dba72c
-  languageName: node
-  linkType: hard
-
-"electron-to-chromium@npm:^1.3.571":
-  version: 1.3.583
-  resolution: "electron-to-chromium@npm:1.3.583"
-  checksum: 134710b06cdd0a722bba5efe502beb914bae9285cd3140c5824f043984b2595e64d6cb893675d8b185cf8bef46cc8f39c72a9f1c78237e31def0c64e076e532f
-  languageName: node
-  linkType: hard
-
-"emoji-regex@npm:^7.0.1":
-  version: 7.0.3
-  resolution: "emoji-regex@npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz"
-  checksum: e3a504cf5242061d9b3c78a88ce787d6beee37a5d21287c6ccdddf1fe665d5ef3eddfdda663d0baf683df8e7d354210eeb1458a7d9afdf0d7a28d48cbb9975e1
-  languageName: node
-  linkType: hard
-
-"emojis-list@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "emojis-list@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Femojis-list%2Fdownload%2Femojis-list-3.0.0.tgz"
-  checksum: a79126b55bc86ee8fd938235a6adf9d457c05fb5bb934e8608b7d35c878d9d1e312a67759244f5c3fba0810b508eb5617e5e6ad6886496ebcfa6832d1c8de3c4
-  languageName: node
-  linkType: hard
-
-"encodeurl@npm:~1.0.2":
-  version: 1.0.2
-  resolution: "encodeurl@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fencodeurl%2Fdownload%2Fencodeurl-1.0.2.tgz"
-  checksum: 6ee5fcbcd245d2a2b6bd6fe36b80f91e31ab46e29192c50af00e8f860c0c2310ebbdaae40257878fdce90b42abcb3526895c7c3a2e229461ed1f0d0b5a020fc8
-  languageName: node
-  linkType: hard
-
-"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1":
-  version: 1.4.4
-  resolution: "end-of-stream@npm:1.4.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz"
-  dependencies:
-    once: ^1.4.0
-  checksum: 7da60e458bdb5e16c006a45e85ef3bc1e3791db5ba275b0913258ccddc8899acb9252c4ddbcce87bd1b46e2a3f97315aafb9f0c0330e8aac44defb504a9d3ccd
-  languageName: node
-  linkType: hard
-
-"end-of-stream@npm:~1.1.0":
-  version: 1.1.0
-  resolution: "end-of-stream@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.1.0.tgz"
-  dependencies:
-    once: ~1.3.0
-  checksum: 1a078bec4bd3e135bfaccc3083ff0150785a5a3c9c1bceb61b743b84b2d7873ca4ea22dc1dc289dfcc150afbeeed167dd625271cf0bc0bbd10e9f3debce0cdad
-  languageName: node
-  linkType: hard
-
-"enhanced-resolve@npm:^4.0.0":
-  version: 4.3.0
-  resolution: "enhanced-resolve@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz"
-  dependencies:
-    graceful-fs: ^4.1.2
-    memory-fs: ^0.5.0
-    tapable: ^1.0.0
-  checksum: aecdc0b2085990d84682c2ef829d0df3fe52511ac6353b2210ff138892fa36e524e117e1a534e0d5e51853cb1a9cce8941a68c81ed51a4989d2b041739aab65b
-  languageName: node
-  linkType: hard
-
-"enhanced-resolve@npm:^5.3.0":
-  version: 5.3.1
-  resolution: "enhanced-resolve@npm:5.3.1"
-  dependencies:
-    graceful-fs: ^4.2.4
-    tapable: ^2.0.0
-  checksum: 1689ec43477bc31b8fd78737ce3f278bebeab0e97426662d966fc722dc5d5dfac8c9279e3467b9918e7e51590e37eb84bc751a67b047e71e8ca34615c729f42e
-  languageName: node
-  linkType: hard
-
-"enquirer@npm:^2.3.4":
-  version: 2.3.6
-  resolution: "enquirer@npm:2.3.6"
-  dependencies:
-    ansi-colors: ^4.1.1
-  checksum: e249bb97bf7d5a91d51081547ea5aa1d849604e5de74feff2c48f7174fc6c9dfcfeea42ef5536e9a3be58964a248c322d6897269ae7bba3e1b6d24f152d9d685
-  languageName: node
-  linkType: hard
-
-"enquirer@npm:^2.3.5":
-  version: 2.3.6
-  resolution: "enquirer@npm:2.3.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquirer%2Fdownload%2Fenquirer-2.3.6.tgz"
-  dependencies:
-    ansi-colors: ^4.1.1
-  checksum: e249bb97bf7d5a91d51081547ea5aa1d849604e5de74feff2c48f7174fc6c9dfcfeea42ef5536e9a3be58964a248c322d6897269ae7bba3e1b6d24f152d9d685
-  languageName: node
-  linkType: hard
-
-"entities@npm:^1.1.1":
-  version: 1.1.2
-  resolution: "entities@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz"
-  checksum: 3a4259db358c612853e616915d398e692a3c5dbaa4da44b9a6fce15ab88615cadc9790af608c3bee152972ece69ae61a22f4a13272fd943db2ceaee02ce5cc87
-  languageName: node
-  linkType: hard
-
-"entities@npm:^2.0.0":
-  version: 2.0.3
-  resolution: "entities@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz"
-  checksum: 02dfe1fbf531dd667420ff4e963ddc049203471ba8ad2873655303aff4cf65f27823effb397521af4d58b5609d33fc0492b0cc073c8374f3bbe6d3b5bcec1a42
-  languageName: node
-  linkType: hard
-
-"env-paths@npm:^2.2.0":
-  version: 2.2.0
-  resolution: "env-paths@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fenv-paths%2Fdownload%2Fenv-paths-2.2.0.tgz"
-  checksum: 09de4fd1c068d5965aa8aede852a764b7fb6fa8f1299ba7789bc29c22840ab1985e0c9c55bc6bf40b4276834b8adfa1baf82ec9bc58445d9e75800dc32d78a4f
-  languageName: node
-  linkType: hard
-
-"envinfo@npm:^7.7.3":
-  version: 7.7.3
-  resolution: "envinfo@npm:7.7.3"
-  bin:
-    envinfo: dist/cli.js
-  checksum: 1372214a3f7ab4d5f3cbe112f5bf590c9c5ce8b672ab84a1f15eb09c1df273980e18679eefc96f9e442a5dd7e51ac5f4d8727b36f4db9f4ce00b7ad77c3628ad
-  languageName: node
-  linkType: hard
-
-"errno@npm:^0.1.3":
-  version: 0.1.7
-  resolution: "errno@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.7.tgz"
-  dependencies:
-    prr: ~1.0.1
-  bin:
-    errno: ./cli.js
-  checksum: 3d2da6fa1e3826dead7e06476cb4219555e8492c4ba8e0c40b2dc333e9b52e33223a414a394d7b9f18f82740aa69861c5fcef5b80798f08ff903c7c78916ce14
-  languageName: node
-  linkType: hard
-
-"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1":
-  version: 1.3.2
-  resolution: "error-ex@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-ex%2Fdownload%2Ferror-ex-1.3.2.tgz"
-  dependencies:
-    is-arrayish: ^0.2.1
-  checksum: 6c6c9187429ae867d145bc64c682c7c137b1f8373a406dc3b605c0d92f15b85bfcea02b461dc55ae11b10d013377e1eaf3d469d2861b2f94703c743620a9c08c
-  languageName: node
-  linkType: hard
-
-"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5":
-  version: 1.17.6
-  resolution: "es-abstract@npm:1.17.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz"
-  dependencies:
-    es-to-primitive: ^1.2.1
-    function-bind: ^1.1.1
-    has: ^1.0.3
-    has-symbols: ^1.0.1
-    is-callable: ^1.2.0
-    is-regex: ^1.1.0
-    object-inspect: ^1.7.0
-    object-keys: ^1.1.1
-    object.assign: ^4.1.0
-    string.prototype.trimend: ^1.0.1
-    string.prototype.trimstart: ^1.0.1
-  checksum: 637ad488bdcbc538dfb35ee30cdbe5e48ecf68c5145a368c8f1be346e83d2555e416709e9382eb9902e542da94763cdd2152d87dbbb01b5b39919c1329bd0bb4
-  languageName: node
-  linkType: hard
-
-"es-abstract@npm:^1.18.0-next.0":
-  version: 1.18.0-next.1
-  resolution: "es-abstract@npm:1.18.0-next.1"
-  dependencies:
-    es-to-primitive: ^1.2.1
-    function-bind: ^1.1.1
-    has: ^1.0.3
-    has-symbols: ^1.0.1
-    is-callable: ^1.2.2
-    is-negative-zero: ^2.0.0
-    is-regex: ^1.1.1
-    object-inspect: ^1.8.0
-    object-keys: ^1.1.1
-    object.assign: ^4.1.1
-    string.prototype.trimend: ^1.0.1
-    string.prototype.trimstart: ^1.0.1
-  checksum: f1e37567e49a54c09050aa3371cac601a789441f4fa9730f2c2d386aadad547d6c303bb41e7f5cb5286b616104d6c13450f33b712f664939a09729dd5e45c963
-  languageName: node
-  linkType: hard
-
-"es-to-primitive@npm:^1.2.1":
-  version: 1.2.1
-  resolution: "es-to-primitive@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-to-primitive%2Fdownload%2Fes-to-primitive-1.2.1.tgz"
-  dependencies:
-    is-callable: ^1.1.4
-    is-date-object: ^1.0.1
-    is-symbol: ^1.0.2
-  checksum: d20b7be268b84662469972ec7265a57d4d6a65b9bf2b73f040d75e14f9f6dbe266a1a88579162e11349f9cb70eaa17640efb515c90dab19745a904b680b14be3
-  languageName: node
-  linkType: hard
-
-"escalade@npm:^3.0.1, escalade@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "escalade@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz"
-  checksum: 30f45cb4dbc35e41dd53910c016313733219bdd06c49751fd30ef241509ef4f1c8b21b65313949aaaf1edd58ab1ac84bf71b4a70465c7be46f7e5eaf51d737bb
-  languageName: node
-  linkType: hard
-
-"escalade@npm:^3.1.0":
-  version: 3.1.1
-  resolution: "escalade@npm:3.1.1"
-  checksum: 1e31ff50d66f47cd0dfffa702061127116ccf9886d1f54a802a7b3bc95b94cab0cbf5b145cc5ac199036df6fd9d1bb24af1fa1bfed87c94879e950fbee5f86d1
-  languageName: node
-  linkType: hard
-
-"escape-html@npm:~1.0.3":
-  version: 1.0.3
-  resolution: "escape-html@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-html%2Fdownload%2Fescape-html-1.0.3.tgz"
-  checksum: 900a7f2b80b9f89c85b7a303d1b7a4d354b93e328871414f165f13c5c209a80eab787e3a63429e596877def69fe4dcb3d1b55af655207a901a9ec99f7f148743
-  languageName: node
-  linkType: hard
-
-"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
-  version: 1.0.5
-  resolution: "escape-string-regexp@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz"
-  checksum: f9484b8b4c8827d816e0fd905c25ed4b561376a9c220e1430403ea84619bf680c76a883a48cff8b8e091daf55d6a497e37479f9787b9f15f3c421b6054289744
-  languageName: node
-  linkType: hard
-
-"eslint-config-prettier@npm:^6.14.0":
-  version: 6.14.0
-  resolution: "eslint-config-prettier@npm:6.14.0"
-  dependencies:
-    get-stdin: ^6.0.0
-  peerDependencies:
-    eslint: ">=3.14.1"
-  bin:
-    eslint-config-prettier-check: bin/cli.js
-  checksum: 8d478429bb6c63a538270b8d2fae13a2ffe5c5bd8401d2f478e9a65e1bc94ed6e0f6ca3d063a8decd0003ad91ef26ca32fadf2d08f3e2d7dd4c76ee8efea6711
-  languageName: node
-  linkType: hard
-
-"eslint-import-resolver-node@npm:^0.3.4":
-  version: 0.3.4
-  resolution: "eslint-import-resolver-node@npm:0.3.4"
-  dependencies:
-    debug: ^2.6.9
-    resolve: ^1.13.1
-  checksum: 825e34e662c988ece8229e6956a95f12d2fa19265b429e3e3db14e58bfe72e270c999cda0cfc690793ed6e6a3e49ffa8df0e0a8842d668a1f0f7de5ae1aa36f9
-  languageName: node
-  linkType: hard
-
-"eslint-module-utils@npm:^2.6.0":
-  version: 2.6.0
-  resolution: "eslint-module-utils@npm:2.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.0.tgz"
-  dependencies:
-    debug: ^2.6.9
-    pkg-dir: ^2.0.0
-  checksum: f584af176480a702eedcdb3f610797f8b8d1293c3835ed71fadb579ec28400b91ded5283729418f63d48dc27c6358bd66f2bd839614d565a1b78d3c3440ee8f7
-  languageName: node
-  linkType: hard
-
-"eslint-plugin-import@npm:^2.22.1":
-  version: 2.22.1
-  resolution: "eslint-plugin-import@npm:2.22.1"
-  dependencies:
-    array-includes: ^3.1.1
-    array.prototype.flat: ^1.2.3
-    contains-path: ^0.1.0
-    debug: ^2.6.9
-    doctrine: 1.5.0
-    eslint-import-resolver-node: ^0.3.4
-    eslint-module-utils: ^2.6.0
-    has: ^1.0.3
-    minimatch: ^3.0.4
-    object.values: ^1.1.1
-    read-pkg-up: ^2.0.0
-    resolve: ^1.17.0
-    tsconfig-paths: ^3.9.0
-  peerDependencies:
-    eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0
-  checksum: 35ae09ceae6f0fe239f6b72e134d58d74762ad1ed0f57aa989affb856354e46bc082bb6df9399b624989107efb9ab9af2c91c08f03c0c70c5cb46a37676591ec
-  languageName: node
-  linkType: hard
-
-"eslint-plugin-prettier@npm:^3.1.4":
-  version: 3.1.4
-  resolution: "eslint-plugin-prettier@npm:3.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-prettier%2Fdownload%2Feslint-plugin-prettier-3.1.4.tgz"
-  dependencies:
-    prettier-linter-helpers: ^1.0.0
-  peerDependencies:
-    eslint: ">=5.0.0"
-    prettier: ">=1.13.0"
-  checksum: 4e4df155790a20a7ceef9008bbc22a677a8f7e790e9ef613a049a78dfe0b5dc3726afcd4bfd2a8ce41abc88c9a11db029819a722f70b940da32a03629e7f7832
-  languageName: node
-  linkType: hard
-
-"eslint-plugin-react-hooks@npm:^4.2.0":
-  version: 4.2.0
-  resolution: "eslint-plugin-react-hooks@npm:4.2.0"
-  peerDependencies:
-    eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
-  checksum: 5378d16b5a56431a7a77b56d61464dbbfa343e8607da87b851a6caee44b96e08847147321f5f38de30d20668418691d859f69d9c5262dfb5308856382252096c
-  languageName: node
-  linkType: hard
-
-"eslint-plugin-react@npm:^7.21.5":
-  version: 7.21.5
-  resolution: "eslint-plugin-react@npm:7.21.5"
-  dependencies:
-    array-includes: ^3.1.1
-    array.prototype.flatmap: ^1.2.3
-    doctrine: ^2.1.0
-    has: ^1.0.3
-    jsx-ast-utils: ^2.4.1 || ^3.0.0
-    object.entries: ^1.1.2
-    object.fromentries: ^2.0.2
-    object.values: ^1.1.1
-    prop-types: ^15.7.2
-    resolve: ^1.18.1
-    string.prototype.matchall: ^4.0.2
-  peerDependencies:
-    eslint: ^3 || ^4 || ^5 || ^6 || ^7
-  checksum: a7123f6feb287ad7e15d36b1c9fda8f78a0f0d39b9ee2d6479a5f0ad0effb8f60f639ef7449cecabb711095060e487f0950b69478b22768547b909c0de4f3afd
-  languageName: node
-  linkType: hard
-
-"eslint-scope@npm:^5.0.0":
-  version: 5.1.0
-  resolution: "eslint-scope@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz"
-  dependencies:
-    esrecurse: ^4.1.0
-    estraverse: ^4.1.1
-  checksum: 4a0e97979a855d09c4bb3a3f4f945cefaf8f6638a6a8f49472cefb0cf64982ab7ed1683a1e63d20ce1bcb01f94c133dc7a5bdf03b28eb945999f50f08878a2b4
-  languageName: node
-  linkType: hard
-
-"eslint-scope@npm:^5.1.1":
-  version: 5.1.1
-  resolution: "eslint-scope@npm:5.1.1"
-  dependencies:
-    esrecurse: ^4.3.0
-    estraverse: ^4.1.1
-  checksum: 79465cf5082f4216176f6d49c7d088de89ee890f912eb87b831f23ee9a5e17ed0f3f2ab6108fb8fefa0474ba5ebeaa9bdefbe49ba704bd879b73f2445e23ee10
-  languageName: node
-  linkType: hard
-
-"eslint-utils@npm:^2.0.0, eslint-utils@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "eslint-utils@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz"
-  dependencies:
-    eslint-visitor-keys: ^1.1.0
-  checksum: a43892372a4205374982ac9d4c8edc5fe180cba76535ab9184c48f18a3d931b7ffdd6862cb2f8ca4305c47eface0e614e39884a75fbf169fcc55a6131af2ec48
-  languageName: node
-  linkType: hard
-
-"eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0":
-  version: 1.3.0
-  resolution: "eslint-visitor-keys@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz"
-  checksum: 58ab7a0107621d8a0fe19142a5e1306fd527c0f36b65d5c79033639e80278d8060264804f42c56f68e5541c4cc83d9175f9143083774cec8222f6cd5a695306e
-  languageName: node
-  linkType: hard
-
-"eslint-visitor-keys@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "eslint-visitor-keys@npm:2.0.0"
-  checksum: 429dabdcab3c1cf5e65d44843afc513398d4ee32a37f93edc93bb5ba59a12b78fa67d87ff23c752c170b5e4f9085050f45b3c036cdfb23d40a724f2614048140
-  languageName: node
-  linkType: hard
-
-"eslint@npm:^7.12.1":
-  version: 7.12.1
-  resolution: "eslint@npm:7.12.1"
-  dependencies:
-    "@babel/code-frame": ^7.0.0
-    "@eslint/eslintrc": ^0.2.1
-    ajv: ^6.10.0
-    chalk: ^4.0.0
-    cross-spawn: ^7.0.2
-    debug: ^4.0.1
-    doctrine: ^3.0.0
-    enquirer: ^2.3.5
-    eslint-scope: ^5.1.1
-    eslint-utils: ^2.1.0
-    eslint-visitor-keys: ^2.0.0
-    espree: ^7.3.0
-    esquery: ^1.2.0
-    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
-    is-glob: ^4.0.0
-    js-yaml: ^3.13.1
-    json-stable-stringify-without-jsonify: ^1.0.1
-    levn: ^0.4.1
-    lodash: ^4.17.19
-    minimatch: ^3.0.4
-    natural-compare: ^1.4.0
-    optionator: ^0.9.1
-    progress: ^2.0.0
-    regexpp: ^3.1.0
-    semver: ^7.2.1
-    strip-ansi: ^6.0.0
-    strip-json-comments: ^3.1.0
-    table: ^5.2.3
-    text-table: ^0.2.0
-    v8-compile-cache: ^2.0.3
-  bin:
-    eslint: bin/eslint.js
-  checksum: b3d11ea516d2932db5854ea942a546b711e6ee8735306627042bb9e2539e96844cc62cdb5826039f5d0509202936045c2cd7b84b457004c891a326f8eccae333
-  languageName: node
-  linkType: hard
-
-"espree@npm:^7.3.0":
-  version: 7.3.0
-  resolution: "espree@npm:7.3.0"
-  dependencies:
-    acorn: ^7.4.0
-    acorn-jsx: ^5.2.0
-    eslint-visitor-keys: ^1.3.0
-  checksum: dd2543c293e091532f3d6eda4a09ae49039ac65e69bc072aec952a5db6eb23eeee7617e99cde11414367104208c2dec13f709bbede0528d4f6854ce5cb734960
-  languageName: node
-  linkType: hard
-
-"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
-  version: 4.0.1
-  resolution: "esprima@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz"
-  bin:
-    esparse: ./bin/esparse.js
-    esvalidate: ./bin/esvalidate.js
-  checksum: 5df45a3d9c95c36800d028ba76d8d4e04e199932b58c2939f462f859fd583e7d39b4a12d3f97986cf272a28a5fe5948ee6e49e36ef63f67b5b48d82a635c5081
-  languageName: node
-  linkType: hard
-
-"esquery@npm:^1.2.0":
-  version: 1.3.1
-  resolution: "esquery@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz"
-  dependencies:
-    estraverse: ^5.1.0
-  checksum: 0aac7572bc8cf4aad87f4424b3e5e80917c214d15a1da02718c4bb0e6030552b0dea700777747507d5e310cfba43ea719e6397a45050fb50b9b68c0f7de6b26a
-  languageName: node
-  linkType: hard
-
-"esrecurse@npm:^4.1.0":
-  version: 4.2.1
-  resolution: "esrecurse@npm:4.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.2.1.tgz"
-  dependencies:
-    estraverse: ^4.1.0
-  checksum: 9acfa287729037ccb63ee725df2214b313fe1296a91f58fe42b151e1af0d51558ac18486e53f5717477ad9306f7a79d4e20fc7f8bac486d3175f86ab2dc67f73
-  languageName: node
-  linkType: hard
-
-"esrecurse@npm:^4.3.0":
-  version: 4.3.0
-  resolution: "esrecurse@npm:4.3.0"
-  dependencies:
-    estraverse: ^5.2.0
-  checksum: 2c96302dd5c4e6d07154d0ce6baee9e829ebf77e21c50c5ca4f24d6d0006fe4a4582364624a01f5667a3633b3e39bbce1a8191924f8419fb71584bb45bf7bb81
-  languageName: node
-  linkType: hard
-
-"estraverse@npm:^4.1.0, estraverse@npm:^4.1.1":
-  version: 4.3.0
-  resolution: "estraverse@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz"
-  checksum: 1e4c627da9e9af07bf7b2817320f606841808fb2ec0cbd81097b30d5f90d8613288b3e523153babe04615d59b54ef876d98f0ca27488b6c0934dacd725a8d338
-  languageName: node
-  linkType: hard
-
-"estraverse@npm:^5.1.0":
-  version: 5.1.0
-  resolution: "estraverse@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz"
-  checksum: 1b8a47cf7c56ef3780437e4c3d733ac74d07e32f24c153d2dbe52b621802d2f88cf828c15746dabfd10a994a3ac74e1c5b74dba97d096fa9a7df2262c4f72ea9
-  languageName: node
-  linkType: hard
-
-"estraverse@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "estraverse@npm:5.2.0"
-  checksum: 7dc1b027aebf937bab10c3254d9d73ed21672d7382518c9ddb9dc45560cb2f4e6548cc8ff1a07b7f431e94bd0fb0bf5da75b602e2473f966fea141c4c31b31d6
-  languageName: node
-  linkType: hard
-
-"estree-walker@npm:^0.6.1":
-  version: 0.6.1
-  resolution: "estree-walker@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-0.6.1.tgz"
-  checksum: a63b94b841fcda2d79ff8e313b4ea8439b3364094ba66547289814bd7da4399a54cd33849b23504d239266430f219a142627071201a9fb6eb488bd025575f8fc
-  languageName: node
-  linkType: hard
-
-"estree-walker@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "estree-walker@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-1.0.1.tgz"
-  checksum: 85e7cee763e9125a7d8a947b3a06a8b9282873936df220dd0d791d9b3315e45e40ab096b43ba71bdc99140c11a6d23fdcf686642dc119a7b2d6181004fdb24d2
-  languageName: node
-  linkType: hard
-
-"esutils@npm:^2.0.2":
-  version: 2.0.3
-  resolution: "esutils@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz"
-  checksum: 590b04533177f8f6f0f352b3ac7da6c1c1e3d8375d8973972fba9c94558ca168685fd38319c3c6f4c37ba256df7494a7f15d8e761df1655af8a8f0027d988f8f
-  languageName: node
-  linkType: hard
-
-"etag@npm:~1.8.1":
-  version: 1.8.1
-  resolution: "etag@npm:1.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fetag%2Fdownload%2Fetag-1.8.1.tgz"
-  checksum: f18341a3c12a554ec46c0d4756bc9cae177e92f25a4ebd9ceefebf0ee448b675972fc110879f22b1bf514174713921ae5de9ff77af2062d422b1085588465a57
-  languageName: node
-  linkType: hard
-
-"eventemitter3@npm:^4.0.0":
-  version: 4.0.4
-  resolution: "eventemitter3@npm:4.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz"
-  checksum: 6693972304a7bf91aea3727d83803e1b38819ee0ed628ed842ac909284dedd1f3a7aa0ab4ccdd332bfcb9720138c9021b7b4737259e9fe8d70f7f25c57b9f0ad
-  languageName: node
-  linkType: hard
-
-"events@npm:^3.2.0":
-  version: 3.2.0
-  resolution: "events@npm:3.2.0"
-  checksum: 6ea52b160c2dfbe060feb2388d3d6d8b76a58779c2b14d66d96fdfcb255ccecaac11464634af4e5a7ba272b5412de929ead65d24cd203f3ff8ca881d4ba3796b
-  languageName: node
-  linkType: hard
-
-"eventsource@npm:^1.0.7":
-  version: 1.0.7
-  resolution: "eventsource@npm:1.0.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.0.7.tgz"
-  dependencies:
-    original: ^1.0.0
-  checksum: 058506715061d4613c004854c1220d57091445ba73599f9eb232273be1119f13d3568df1a3d866bf94333fbcd138cc45268c454376ee48c3b432a26767961815
-  languageName: node
-  linkType: hard
-
-"execa@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "execa@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz"
-  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
-  checksum: 39714ea24e349403f9fc92b450f0e6823cdd4573e15b17c0fba6d95f2eecd46dc32624bbf15071d91e2c64a4402c74ce7a362671126964100ad34e2d6210adf9
-  languageName: node
-  linkType: hard
-
-"execa@npm:^4.0.0":
-  version: 4.0.3
-  resolution: "execa@npm:4.0.3"
-  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
-    signal-exit: ^3.0.2
-    strip-final-newline: ^2.0.0
-  checksum: 65b237d178b468045ee57af6aa4e4124807b28aec9573d9b3b16b02a7e41bd65996236e0c5575d053d3888585ffc795cbed38847c6c9669e9c8481fc44ac05e4
-  languageName: node
-  linkType: hard
-
-"exenv@npm:^1.2.2":
-  version: 1.2.2
-  resolution: "exenv@npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexenv%2Fdownload%2Fexenv-1.2.2.tgz"
-  checksum: 09fd080c0478739f0154916b73dea07f30f97972e1b3be3368d2b96d282d889b509f05e163d830e323c9ab1e94b0a293a9947b410651325df467c404f37f32f1
-  languageName: node
-  linkType: hard
-
-"expand-brackets@npm:^2.1.4":
-  version: 2.1.4
-  resolution: "expand-brackets@npm:2.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpand-brackets%2Fdownload%2Fexpand-brackets-2.1.4.tgz"
-  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
-  checksum: 9aadab00ff10da89d3bdbcb92fc48f152977e8f986b227955b17601cb7eb65a63c9b35811d78ce8ff534fc20faab759a043f0f1c71b904f5d37a35a074ff6fb0
-  languageName: node
-  linkType: hard
-
-"express@npm:^4.17.1":
-  version: 4.17.1
-  resolution: "express@npm:4.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz"
-  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
-  checksum: c4b470d623152c148e874b08d4afc35ea9498547c31a6ff6dae767ae11e3a59508a299732e9f45bfa2885685fbe2b75ca360862977798dfcec28ff2a4260eab2
-  languageName: node
-  linkType: hard
-
-"extend-shallow@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "extend-shallow@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-2.0.1.tgz"
-  dependencies:
-    is-extendable: ^0.1.0
-  checksum: 03dbbba8b9711409442428f4e0f80a92f86862a4d2559fa9629dd7080e85cacc6311c84ebea8b22b5ff40d3ef6475bbf534f098b77b7624448276708e60fa248
-  languageName: node
-  linkType: hard
-
-"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "extend-shallow@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend-shallow%2Fdownload%2Fextend-shallow-3.0.2.tgz"
-  dependencies:
-    assign-symbols: ^1.0.0
-    is-extendable: ^1.0.1
-  checksum: 5301c5070b98bef2413524046c3478cdce1a6bc112b44af2d4bdbfca59daabad49eb04c14e55375963db45f4ef6f43530d71a2c1c862a72d08eb165c77a13767
-  languageName: node
-  linkType: hard
-
-"extend@npm:~3.0.2":
-  version: 3.0.2
-  resolution: "extend@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz"
-  checksum: 1406da1f0c4b00b839497e4cdd0ec4303ce2ae349144b7c28064a5073c93ce8c08da4e8fb1bc5cb459ffcdff30a35fc0fe54344eb88320e70100c1baea6f195c
-  languageName: node
-  linkType: hard
-
-"extglob@npm:^2.0.4":
-  version: 2.0.4
-  resolution: "extglob@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextglob%2Fdownload%2Fextglob-2.0.4.tgz"
-  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
-  checksum: ce23be772ff536976902aa0193a6d167abad229ca40fb4c1de2fd71c0116eeae168a02f6508d41382eb918fcbafb66dba61d498754051964a167c98210c62b28
-  languageName: node
-  linkType: hard
-
-"extsprintf@npm:1.3.0, extsprintf@npm:^1.2.0":
-  version: 1.3.0
-  resolution: "extsprintf@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz"
-  checksum: 892efd56aa9b27cbfbca42ad0c59308633f66000e71d1fb19c6989ea7309b32f3ff281778871bd2ce9bc7f3ad02515aa2783cea0323d0f6ff840b7c6a6a4603e
-  languageName: node
-  linkType: hard
-
-"fast-deep-equal@npm:^3.1.1":
-  version: 3.1.3
-  resolution: "fast-deep-equal@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz"
-  checksum: 451526766b219503131d11e823eaadd1533080b0be4860e316670b039dcaf31cd1007c2fe036a9b922abba7c040dfad5e942ed79d21f2ff849e50049f36e0fb7
-  languageName: node
-  linkType: hard
-
-"fast-diff@npm:^1.1.2":
-  version: 1.2.0
-  resolution: "fast-diff@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-diff%2Fdownload%2Ffast-diff-1.2.0.tgz"
-  checksum: 9c5407d9c4869407854fe8838b8d9d26065ca747c9b80697957ae37482e982e880de823efa2c97ea1cba05dc06fce853a005e7557d10550c64c052cf7021ba9e
-  languageName: node
-  linkType: hard
-
-"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.2, fast-glob@npm:^3.2.4":
-  version: 3.2.4
-  resolution: "fast-glob@npm:3.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.4.tgz"
-  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
-  checksum: 18f9eca898bc3be71b717cb59cb424e937bb9f5629449ba4e93e498dca9db921a9fd3cbdc3389d3f94aec3074bbe2ff6a74f779627a93e81ba0262b795ec44e4
-  languageName: node
-  linkType: hard
-
-"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "fast-json-stable-stringify@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz"
-  checksum: 7df3fabfe445d65953b2d9d9d3958bd895438b215a40fb87dae8b2165c5169a897785eb5d51e6cf0eb03523af756e3d82ea01083f6ac6341fe16db532fee3016
-  languageName: node
-  linkType: hard
-
-"fast-levenshtein@npm:^2.0.6":
-  version: 2.0.6
-  resolution: "fast-levenshtein@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz"
-  checksum: a2d03af3088b0397633e007fb3010ecfa4f91cae2116d2385653c59396a1b31467641afa672a79e6f82218518670dc144128378124e711e35dbf90bc82846f22
-  languageName: node
-  linkType: hard
-
-"fastq@npm:^1.6.0":
-  version: 1.8.0
-  resolution: "fastq@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.8.0.tgz"
-  dependencies:
-    reusify: ^1.0.4
-  checksum: 77d71545ba88a5c4cbe628716bcf7a0db1dbe81943c1abfbe9eab65db17c6c1db7836e99478b3b8baf21d260b896dff4723f7b7af6606b3d3db2b135bf414c16
-  languageName: node
-  linkType: hard
-
-"faye-websocket@npm:^0.10.0":
-  version: 0.10.0
-  resolution: "faye-websocket@npm:0.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.10.0.tgz"
-  dependencies:
-    websocket-driver: ">=0.5.1"
-  checksum: 2a5823ddfb39ec7ef952dd1adab4c28fd162f5ee175f40f8d7467560554299199c1f0aa505e0fe14a85452c76d0c4dbee32f8327c71bf2f61a32f62538843111
-  languageName: node
-  linkType: hard
-
-"faye-websocket@npm:~0.11.1":
-  version: 0.11.3
-  resolution: "faye-websocket@npm:0.11.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.3.tgz"
-  dependencies:
-    websocket-driver: ">=0.5.1"
-  checksum: 94c48a5b4e9ab6ff05a424dfeebe0da6c7963776172c8713588926f1e15348c423e440c601360d105602586d59f8daeed5dadb76e29070f0b468ebd55e1f868d
-  languageName: node
-  linkType: hard
-
-"file-entry-cache@npm:^5.0.1":
-  version: 5.0.1
-  resolution: "file-entry-cache@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz"
-  dependencies:
-    flat-cache: ^2.0.1
-  checksum: 7140588becf15f05ee956cfb359b5f23e0c73acbbd38ad14c7a76a0097342e6bfc0a8151cd2e481ea3cbb735190ba9a0df4b69055ebb5b0389c62339b1a2f86b
-  languageName: node
-  linkType: hard
-
-"file-loader@npm:^6.1.1":
-  version: 6.1.1
-  resolution: "file-loader@npm:6.1.1"
-  dependencies:
-    loader-utils: ^2.0.0
-    schema-utils: ^3.0.0
-  peerDependencies:
-    webpack: ^4.0.0 || ^5.0.0
-  checksum: 0272335818c26e5c78a9f972ce779c8ed508e815329e4ace4d55045100140d89460d72eec1af78400dd04f2d16e28e29b3649433804619653cf044220afdf45d
-  languageName: node
-  linkType: hard
-
-"file-uri-to-path@npm:1.0.0":
-  version: 1.0.0
-  resolution: "file-uri-to-path@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-uri-to-path%2Fdownload%2Ffile-uri-to-path-1.0.0.tgz"
-  checksum: 5ddb9682f04f6f87b7765b93306206db2f96bc86162487e27639c55fe3ffeed12c30906ef1dedaa5307d7cabbbbdcbfa299b79aaec435de0f17e17ab31bd20b3
-  languageName: node
-  linkType: hard
-
-"fill-range@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "fill-range@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-4.0.0.tgz"
-  dependencies:
-    extend-shallow: ^2.0.1
-    is-number: ^3.0.0
-    repeat-string: ^1.6.1
-    to-regex-range: ^2.1.0
-  checksum: 4a1491ee292f3d4a3d073c34cff0d7ba00dad8ad0de12d0a973c5aefb3f3f54971508cbc4b1c4923f6278b692b7695f9561086571fbee9f24cf3435ab92e8d50
-  languageName: node
-  linkType: hard
-
-"fill-range@npm:^7.0.1":
-  version: 7.0.1
-  resolution: "fill-range@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffill-range%2Fdownload%2Ffill-range-7.0.1.tgz"
-  dependencies:
-    to-regex-range: ^5.0.1
-  checksum: efca43d59b487ad4bc0b2b1cb9e51617c75a7b0159db51fa190c75c3d634ea5fad1ff4750d7c14346add4cd065e3c46e8f99af333edf2b4ec2a424f87e491a85
-  languageName: node
-  linkType: hard
-
-"finalhandler@npm:~1.1.2":
-  version: 1.1.2
-  resolution: "finalhandler@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffinalhandler%2Fdownload%2Ffinalhandler-1.1.2.tgz"
-  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
-  checksum: f2e5b6bfe2201f13e74408530a7f354b7846ab3e648b3dde4f8ed3b773c8a743c16b0f378cb5113df7fef84c5be364bb1a3655f0a75571f163c982289fbd9671
-  languageName: node
-  linkType: hard
-
-"find-cache-dir@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "find-cache-dir@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz"
-  dependencies:
-    commondir: ^1.0.1
-    make-dir: ^2.0.0
-    pkg-dir: ^3.0.0
-  checksum: 6e996026565b651d709964abad7f353976e83e869dffae96f73f99f51078eb856a82411a3f2c77f89040c4976aed28248a761590f7237796a8578d00c6b34446
-  languageName: node
-  linkType: hard
-
-"find-cache-dir@npm:^3.3.1":
-  version: 3.3.1
-  resolution: "find-cache-dir@npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz"
-  dependencies:
-    commondir: ^1.0.1
-    make-dir: ^3.0.2
-    pkg-dir: ^4.1.0
-  checksum: b1e23226ee89fba89646aa5f72d084c6d04bb64f6d523c9cb2d57a1b5280fcac39e92fd5be572e2fae8a83aa70bc5b797ce33a826b9a4b92373cc38e66d4aa64
-  languageName: node
-  linkType: hard
-
-"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "find-up@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz"
-  dependencies:
-    locate-path: ^2.0.0
-  checksum: 9dedb89f936b572f7c9fda3f66ebe146b0000fe9ef16fad94a77c25ce9585962e910bb32c1e08bab9b423985ff20221d2af4b7e4130b27c0f5f60c1aad3f6a7f
-  languageName: node
-  linkType: hard
-
-"find-up@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "find-up@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz"
-  dependencies:
-    locate-path: ^3.0.0
-  checksum: c5422fc7231820421cff6f6e3a5d00a11a79fd16625f2af779c6aedfbaad66764fd149c1b84017aa44e85f86395eb25c31188ad273fc468a981b529eaa59a424
-  languageName: node
-  linkType: hard
-
-"find-up@npm:^4.0.0":
-  version: 4.1.0
-  resolution: "find-up@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz"
-  dependencies:
-    locate-path: ^5.0.0
-    path-exists: ^4.0.0
-  checksum: d612d28e02eaca6cd7128fc9bc9b456e2547a3f9875b2b2ae2dbdc6b8cec52bc2885efcb3ac6c18954e838f4c8e20565d196784b190e1d38565f9dc39aade722
-  languageName: node
-  linkType: hard
-
-"flat-cache@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "flat-cache@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz"
-  dependencies:
-    flatted: ^2.0.0
-    rimraf: 2.6.3
-    write: 1.0.3
-  checksum: a36ba407553064be4a571cdee4021a50290f6179a0827df1d076a2e33cd84e543d0274cb15dbeb551c2ae6d53e611e3c02564a93f0d527563d0f560be7a14b0d
-  languageName: node
-  linkType: hard
-
-"flatted@npm:^2.0.0":
-  version: 2.0.2
-  resolution: "flatted@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz"
-  checksum: a3e5fb71ad3c4f0661cd3899864812bcf3f64bdf6aa5f33f967c9c2a8a5f0c7219707e864c0602115fef40e093415f76a43e77afd0a86990904e2217ddb44eb4
-  languageName: node
-  linkType: hard
-
-"flatten@npm:^1.0.2":
-  version: 1.0.3
-  resolution: "flatten@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatten%2Fdownload%2Fflatten-1.0.3.tgz"
-  checksum: 8a382594dc7bb4e4f28739a4abcd9d6f5c74d4be370892c10386a09656722e1a822137dc48c4bff15758e0656f8fee7bb3001133d068431796cf17b1f52a969a
-  languageName: node
-  linkType: hard
-
-"follow-redirects@npm:^1.0.0":
-  version: 1.5.10
-  resolution: "follow-redirects@npm:1.5.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz"
-  dependencies:
-    debug: =3.1.0
-  checksum: 6e58e02c31337b6b41ffc3d5f3d49920b7db428eddcf374537da00ef121fe473983e12d8557f4304287604168d3efcc288d1f009abaf4c9d61e5db0c0cee3c4a
-  languageName: node
-  linkType: hard
-
-"follow-redirects@npm:^1.10.0":
-  version: 1.13.0
-  resolution: "follow-redirects@npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz"
-  checksum: f220828d3f153da30ea616fdbe9f6676e74e4e68c51d336a751037c1d556e2de34aa5918f58951fa19bb6517c9c88b4403a0a8bdfc40d3e779d37def2ac0f2c4
-  languageName: node
-  linkType: hard
-
-"for-in@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "for-in@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz"
-  checksum: e8d7280a654216e9951103e407d1655c2dfa67178ad468cb0b35701df6b594809ccdc66671b3478660d0e6c4bca9d038b1f1fc032716a184c19d67319550c554
-  languageName: node
-  linkType: hard
-
-"forever-agent@npm:~0.6.1":
-  version: 0.6.1
-  resolution: "forever-agent@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforever-agent%2Fdownload%2Fforever-agent-0.6.1.tgz"
-  checksum: 9cc0054dd4ea5fc26e014b8c929d1fb9247e931e81165cbd965a712061d65fb84791b2124f64cd79492e516662b94068d29fe1d824732382237321b3f61955fe
-  languageName: node
-  linkType: hard
-
-"form-data@npm:~2.3.2":
-  version: 2.3.3
-  resolution: "form-data@npm:2.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz"
-  dependencies:
-    asynckit: ^0.4.0
-    combined-stream: ^1.0.6
-    mime-types: ^2.1.12
-  checksum: 862e686b105634222db77138d5f5ae08ba85f88c04925de5be86b2b9d03cf671d86566ad10f1dd5217634c0f1634069dfc1a663a1cc13e8fbac0ce8f670ad070
-  languageName: node
-  linkType: hard
-
-"forwarded@npm:~0.1.2":
-  version: 0.1.2
-  resolution: "forwarded@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fforwarded%2Fdownload%2Fforwarded-0.1.2.tgz"
-  checksum: 568d862ad1c514813fc62dc1bd58b8669b16d4ee2e634a6fc71f4849df798883ab94e63d8e1b35a17af51b2b39ca869e672c7310efe42fc7b9bad43a80b5ff87
-  languageName: node
-  linkType: hard
-
-"fragment-cache@npm:^0.2.1":
-  version: 0.2.1
-  resolution: "fragment-cache@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffragment-cache%2Fdownload%2Ffragment-cache-0.2.1.tgz"
-  dependencies:
-    map-cache: ^0.2.2
-  checksum: f88983f4bf54f9a8847d15e54518535aecbfa9b7f0242604ca5cd027d88ea1469212b5dbb579233e769d0e2f4e6764bc6bbac44731fb78b9964942165c7c3048
-  languageName: node
-  linkType: hard
-
-"fresh@npm:0.5.2":
-  version: 0.5.2
-  resolution: "fresh@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz"
-  checksum: 2f76c8505d1ea5a6d5accea3e7aff0b796bfa43364c84929254f33909fa08640948bd1728220d1ff5f4c2b378a65e97da647f2fe0f2b7ddb44001f6e0dc2e91f
-  languageName: node
-  linkType: hard
-
-"fs-constants@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "fs-constants@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-constants%2Fdownload%2Ffs-constants-1.0.0.tgz"
-  checksum: b8382395f555012591b20bddf08d258723f660b4e7312943d10431a893e2af879295fefc15a917df43c9ed52d80d2f014c0ca8ca359367969be5c8a133e39742
-  languageName: node
-  linkType: hard
-
-"fs-extra@npm:^8.1.0":
-  version: 8.1.0
-  resolution: "fs-extra@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz"
-  dependencies:
-    graceful-fs: ^4.2.0
-    jsonfile: ^4.0.0
-    universalify: ^0.1.0
-  checksum: 056a96d4f55ab8728b021e251175a4a6440d1edb5845e6c2e8e010019bde3e63de188a0eb99386c21c71804ca1a571cd6e08f507971f10a2bc4f4f7667720fa4
-  languageName: node
-  linkType: hard
-
-"fs-minipass@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "fs-minipass@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz"
-  dependencies:
-    minipass: ^3.0.0
-  checksum: e14a490658621cf1f7d8cbf9e92a9cc4dc7ce050418e4817e877e4531c438223db79f7a1774668087428d665a3de95f87014ce36c8afdc841fea42bcb782abcb
-  languageName: node
-  linkType: hard
-
-"fs.realpath@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "fs.realpath@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs.realpath%2Fdownload%2Ffs.realpath-1.0.0.tgz"
-  checksum: 698a91b1695e3926185c9e5b0dd57cf687dceb4eb73799af91e6b2ab741735e2962c366c5af6403ffddae2619914193bd339efa706fdc984d0ffc74b7a3603f4
-  languageName: node
-  linkType: hard
-
-fsevents@^1.2.7:
-  version: 1.2.13
-  resolution: "fsevents@npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz"
-  dependencies:
-    bindings: ^1.5.0
-    nan: ^2.12.1
-  checksum: e70509558b5f49ce9dfacb8f9e2848c6e6751a61966027789561145a9c4ae9ba4c6b28b531bc8b4ae52fdd2d4c90a3bf314e6794717e51838b27910bb41ce588
-  languageName: node
-  linkType: hard
-
-"fsevents@patch:fsevents@^1.2.7#builtin<compat/fsevents>":
-  version: 1.2.13
-  resolution: "fsevents@patch:fsevents@npm%3A1.2.13%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-1.2.13.tgz#builtin<compat/fsevents>::version=1.2.13&hash=495457"
-  dependencies:
-    bindings: ^1.5.0
-    nan: ^2.12.1
-  checksum: 508a7e7e1e365236a7a0478392827145ba05c0181b1928b73b20c1a5212d15f6529735db897d617d7b0b051248c5720160f74c113bd727fc02de4f6cf885e1ff
-  languageName: node
-  linkType: hard
-
-"fsevents@patch:fsevents@~2.1.2#builtin<compat/fsevents>":
-  version: 2.1.3
-  resolution: "fsevents@patch:fsevents@npm%3A2.1.3%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Ffsevents%252Fdownload%252Ffsevents-2.1.3.tgz#builtin<compat/fsevents>::version=2.1.3&hash=495457"
-  dependencies:
-    node-gyp: latest
-  checksum: 0005677b72f38a129a3cbe8c3794bdc83081a2bec53dfc03b085c2e5e4ca7a33a861a779d623313652df89746d97f79d24e4fef3b101c11c39ce1ea8a9690e18
-  languageName: node
-  linkType: hard
-
-fsevents@~2.1.2:
-  version: 2.1.3
-  resolution: "fsevents@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz"
-  dependencies:
-    node-gyp: latest
-  checksum: 8977781884d06c5bcb97b5f909efdce9683c925f2a0ce7e098d2cdffe2e0a0a50b1868547bb94dca75428c06535a4a70517a7bb3bb5a974d93bf9ffc067291eb
-  languageName: node
-  linkType: hard
-
-"function-bind@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "function-bind@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunction-bind%2Fdownload%2Ffunction-bind-1.1.1.tgz"
-  checksum: ffad86e7d2010ba179aaa6a3987d2cc0ed48fa92d27f1ed84bfa06d14f77deeed5bfbae7f00bdebc0c54218392cab2b18ecc080e2c72f592431927b87a27d42b
-  languageName: node
-  linkType: hard
-
-"functional-red-black-tree@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "functional-red-black-tree@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz"
-  checksum: 477ecaf62d4f8d788876099b35ed4b97586b331e729d2d28d0df96b598863d21c18b8a45a6cbecb6c2bf7f5e5ef1e82a053570583ef9a0ff8336683ab42b8d14
-  languageName: node
-  linkType: hard
-
-"gauge@npm:~2.7.3":
-  version: 2.7.4
-  resolution: "gauge@npm:2.7.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz"
-  dependencies:
-    aproba: ^1.0.3
-    console-control-strings: ^1.0.0
-    has-unicode: ^2.0.0
-    object-assign: ^4.1.0
-    signal-exit: ^3.0.0
-    string-width: ^1.0.1
-    strip-ansi: ^3.0.1
-    wide-align: ^1.1.0
-  checksum: b136dbeb8e40acaaddab6c71c9f34d3c9aa104efc538c8c0ddcd74b25efb8daeb8dca24a9b30626b477d66beccd3dee8dd31e25eb4c7c97ec58a3f1a82914be1
-  languageName: node
-  linkType: hard
-
-"gensync@npm:^1.0.0-beta.1":
-  version: 1.0.0-beta.1
-  resolution: "gensync@npm:1.0.0-beta.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.1.tgz"
-  checksum: 3d14f7c34fc903dd52c36d0879de2c4afde8315edccd630e97919c365819b32c06d98770ef87f7ba45686ee5d2bd5818354920187659b42828319f7cc3352fdb
-  languageName: node
-  linkType: hard
-
-"get-caller-file@npm:^2.0.1":
-  version: 2.0.5
-  resolution: "get-caller-file@npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-caller-file%2Fdownload%2Fget-caller-file-2.0.5.tgz"
-  checksum: 9dd9e1e2591039ee4c38c897365b904f66f1e650a8c1cb7b7db8ce667fa63e88cc8b13282b74df9d93de481114b3304a0487880d31cd926dfda6efe71455855d
-  languageName: node
-  linkType: hard
-
-"get-own-enumerable-property-symbols@npm:^3.0.0":
-  version: 3.0.2
-  resolution: "get-own-enumerable-property-symbols@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-own-enumerable-property-symbols%2Fdownload%2Fget-own-enumerable-property-symbols-3.0.2.tgz"
-  checksum: 23f13946c768d9803a8e072ba13a4250528ced6bd5af4b4b31306eb197281f01a6426936b24b16725ff0e55f9097475296e4bcdb6d33455989683c3d385079ce
-  languageName: node
-  linkType: hard
-
-"get-stdin@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "get-stdin@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-6.0.0.tgz"
-  checksum: b51d664838aef7f8353dc57371ce59cea54d8d584fec015a9d89d24561e95b97806d5b5ba120bc81574c9ed63cb3e210176ffa0ff9263c7e7ba4d56d0fe54913
-  languageName: node
-  linkType: hard
-
-"get-stream@npm:^4.0.0":
-  version: 4.1.0
-  resolution: "get-stream@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz"
-  dependencies:
-    pump: ^3.0.0
-  checksum: f41bb3c74de09d1dbe1e9d0b6d12520875d99b7ecd32c71ee21eea26d32ca74110e2406922ca64ed8cd6f10076c5f59e4fd128f10cc292eae3b669379e5f18ed
-  languageName: node
-  linkType: hard
-
-"get-stream@npm:^5.0.0":
-  version: 5.2.0
-  resolution: "get-stream@npm:5.2.0"
-  dependencies:
-    pump: ^3.0.0
-  checksum: c71c5625f4573a33823371da253b4183df6bdb28cb678d03bab9b5f91626d92d6f3f5ae2404c5efdc1248fbb82204e4dae4283c7ff3cc14e505754f9f748f217
-  languageName: node
-  linkType: hard
-
-"get-stream@npm:^5.1.0":
-  version: 5.1.0
-  resolution: "get-stream@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.1.0.tgz"
-  dependencies:
-    pump: ^3.0.0
-  checksum: 599dad0b6b9e41602c5a383d218e929209774e66bd3345d5ba6b87e305a16e5d4263936cab974804a30cfeebb1d9e6082f0dba4a463fcce0ba75b922b7c9d861
-  languageName: node
-  linkType: hard
-
-"get-value@npm:^2.0.3, get-value@npm:^2.0.6":
-  version: 2.0.6
-  resolution: "get-value@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-value%2Fdownload%2Fget-value-2.0.6.tgz"
-  checksum: f08da3262718e0f2617703cc99ecd0ddb4cca1541b0022118f898824c99157778e044c802160688dc184b17e5a894d11c5771aaadc376c68cdf66bdbc25ff865
-  languageName: node
-  linkType: hard
-
-"getpass@npm:^0.1.1":
-  version: 0.1.7
-  resolution: "getpass@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgetpass%2Fdownload%2Fgetpass-0.1.7.tgz"
-  dependencies:
-    assert-plus: ^1.0.0
-  checksum: 2650725bc6939616da8432e5351ca87d8b29421bb8dc19c21bad2c37cd337d2a50d36fcc398ce0c16a075f6079afe114131780dca7e2f4b96063e53e7d28fd7a
-  languageName: node
-  linkType: hard
-
-"glob-parent@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "glob-parent@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-3.1.0.tgz"
-  dependencies:
-    is-glob: ^3.1.0
-    path-dirname: ^1.0.0
-  checksum: 2827ec4405295b660d5ec3e400d84d548a22fc38c3de8fb4586258248bb24afc4515f377935fd80b8397debeb56ffe0d2f4e91233e3a1377fe0d1ddbceb605fc
-  languageName: node
-  linkType: hard
-
-"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.0, glob-parent@npm:^5.1.1, glob-parent@npm:~5.1.0":
-  version: 5.1.1
-  resolution: "glob-parent@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz"
-  dependencies:
-    is-glob: ^4.0.1
-  checksum: 2af6e196fba4071fb07ba261366e446ba2b320e6db0a2069cf8e12117c5811abc6721f08546148048882d01120df47e56aa5a965517a6e5ba19bfeb792655119
-  languageName: node
-  linkType: hard
-
-"glob-to-regexp@npm:^0.4.1":
-  version: 0.4.1
-  resolution: "glob-to-regexp@npm:0.4.1"
-  checksum: 6093c15d9f92d010998dd7cc7a5ba4e74eea83878d3f8c2616c6935dab9a79bf31ca7ddc214604b84a87c65b9e51481221e325be68f5fe6db8ed27dc76a5230f
-  languageName: node
-  linkType: hard
-
-"glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
-  version: 7.1.6
-  resolution: "glob@npm:7.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz"
-  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
-  checksum: 789977b52432865bd63846da5c75a6efc2c56abdc0cb5ffcdb8e91eeb67a58fa5594c1195d18b2b4aff99675b0739ed6bd61024b26562e0cca18c8f993efdc82
-  languageName: node
-  linkType: hard
-
-"global@npm:^4.3.0":
-  version: 4.4.0
-  resolution: "global@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal%2Fdownload%2Fglobal-4.4.0.tgz"
-  dependencies:
-    min-document: ^2.19.0
-    process: ^0.11.10
-  checksum: da0cf92ef034b63cf4d0fe5e14cb71bc4c748b8c1bbeabe4061443562ba8e9027774f8074e66543fa98f0d965da6d11e0861e3bf8c628b7ab19220e8ee18cc71
-  languageName: node
-  linkType: hard
-
-"globals@npm:^11.1.0":
-  version: 11.12.0
-  resolution: "globals@npm:11.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz"
-  checksum: 2563d3306a7e646fd9ec484b0ca29bf8847d9dc6ebbe86026f11e31bda04f420f6536c2decbd4cb96350379801d2cce352ab373c40be8b024324775b31f882f9
-  languageName: node
-  linkType: hard
-
-"globals@npm:^12.1.0":
-  version: 12.4.0
-  resolution: "globals@npm:12.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz"
-  dependencies:
-    type-fest: ^0.8.1
-  checksum: 0b9764bdeab0bc9762dea8954a0d4c5db029420bd8bf693df9098ce7e045ccaf9b2d259185396fd048b051d42fdc8dc7ab02af62e3dbeb2324a78a05aac8d33c
-  languageName: node
-  linkType: hard
-
-"globals@npm:^9.18.0":
-  version: 9.18.0
-  resolution: "globals@npm:9.18.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz"
-  checksum: ad86a4b4d7348a259c4a0748c5f4c7c1c51c624567a48538092b7fc0b6cba7d9de9d16e7b788c693b590856608f9a697af2295ff278ff442d8fa705dd1240164
-  languageName: node
-  linkType: hard
-
-"globby@npm:^11.0.1":
-  version: 11.0.1
-  resolution: "globby@npm:11.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-11.0.1.tgz"
-  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
-  checksum: e7239e9e468c3692aec31dc97b5efc13dd21edf38820baeda98118ade39f475c4ff9e7610859eb4a3c75277ca2616e371265fec3c626aba5db4335bc41c59ac7
-  languageName: node
-  linkType: hard
-
-"globby@npm:^6.1.0":
-  version: 6.1.0
-  resolution: "globby@npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz"
-  dependencies:
-    array-union: ^1.0.1
-    glob: ^7.0.3
-    object-assign: ^4.0.1
-    pify: ^2.0.0
-    pinkie-promise: ^2.0.0
-  checksum: 7acac933247f203624c502e6db54995d355ae2ce618be40a6a125c73bac9fa1bb775cf2b0959d92807605534f7b29cf711bc354febb8a6dc2ecbaa1cbf59efa5
-  languageName: node
-  linkType: hard
-
-"got@npm:^11.1.3":
-  version: 11.5.1
-  resolution: "got@npm:11.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgot%2Fdownload%2Fgot-11.5.1.tgz"
-  dependencies:
-    "@sindresorhus/is": ^3.0.0
-    "@szmarczak/http-timer": ^4.0.5
-    "@types/cacheable-request": ^6.0.1
-    "@types/responselike": ^1.0.0
-    cacheable-lookup: ^5.0.3
-    cacheable-request: ^7.0.1
-    decompress-response: ^6.0.0
-    http2-wrapper: ^1.0.0-beta.5.0
-    lowercase-keys: ^2.0.0
-    p-cancelable: ^2.0.0
-    responselike: ^2.0.0
-  checksum: a746db1245438bfcdf97f093070dfb7fd731d7ba2d4be8eb505504dfb83def90f977688fb9c0fda879e261d2b2b641e915dd895d9d93a44a388dfe622b8a749d
-  languageName: node
-  linkType: hard
-
-"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.3":
-  version: 4.2.4
-  resolution: "graceful-fs@npm:4.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz"
-  checksum: d095ee4dc6eacc76814cd52d5d185b860119378a6fd4888e7d4e94983095c54d4f6369942a5e3d759cdbdd4e3ee7eaeb27a39ff938c6ee4610894fd9de46b6cb
-  languageName: node
-  linkType: hard
-
-"graceful-fs@npm:^4.2.4":
-  version: 4.2.4
-  resolution: "graceful-fs@npm:4.2.4"
-  checksum: d095ee4dc6eacc76814cd52d5d185b860119378a6fd4888e7d4e94983095c54d4f6369942a5e3d759cdbdd4e3ee7eaeb27a39ff938c6ee4610894fd9de46b6cb
-  languageName: node
-  linkType: hard
-
-"grapheme-splitter@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "grapheme-splitter@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fgrapheme-splitter%2Fdownload%2Fgrapheme-splitter-1.0.4.tgz"
-  checksum: 6875e94add80360364a609e1fd0fe325e3b82326db2278dd36c1011a6bfc0e098811e791dedf9a88d4ae3f9d17a5c6a8d684948dd7b097f1f8d5ff905676e2b2
-  languageName: node
-  linkType: hard
-
-"handle-thing@npm:^2.0.0":
-  version: 2.0.1
-  resolution: "handle-thing@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz"
-  checksum: 7509fca9ebc8c119c8d36a7de19216dfcd120a2f9ac0a7f4e7836549561f728bfe4d86fbe604805c0f4d574c2eed756c54486b9ddc436d0387d8397c7c00a434
-  languageName: node
-  linkType: hard
-
-"har-schema@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "har-schema@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-schema%2Fdownload%2Fhar-schema-2.0.0.tgz"
-  checksum: e27ac33a968b8a3b2cc32e53afaec8aa795d08b058ef9b09b3bbce74db7ecadcabf60a6186e3bb901335d2c72bbf9e2af59429d736b5e80dc0edf18b3e1c5860
-  languageName: node
-  linkType: hard
-
-"har-validator@npm:~5.1.3":
-  version: 5.1.3
-  resolution: "har-validator@npm:5.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.3.tgz"
-  dependencies:
-    ajv: ^6.5.5
-    har-schema: ^2.0.0
-  checksum: 64cb2294c1eceba077280e31d7059e54a99aca442ade03b7e14af3d715f7f1c01c6e1a6df21252b0aff9bea7b06fc10539bb99ebe1acf46321e97f197bbb932b
-  languageName: node
-  linkType: hard
-
-"has-ansi@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "has-ansi@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-ansi%2Fdownload%2Fhas-ansi-2.0.0.tgz"
-  dependencies:
-    ansi-regex: ^2.0.0
-  checksum: c6805f5d01ced45ba247ff2b8c914f401e70aa9086552d8eafbdf6bc0b0e38ea4a3bf1a387d100ff5f07e5854bca96532a01777820a16be2cdf8cf6582091bad
-  languageName: node
-  linkType: hard
-
-"has-flag@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "has-flag@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-3.0.0.tgz"
-  checksum: 63aade480d27aeedb3b5b63a2e069d47d0006bf182338d662e7941cdc024e68a28418e0efa8dc5df30db9c4ee2407f39e6ea3f16cfbc6b83848b450826a28aa0
-  languageName: node
-  linkType: hard
-
-"has-flag@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "has-flag@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz"
-  checksum: 2e5391139d3d287231ccb58659702392f6e3abeac3296fb4721afaff46493f3d9b99a9329ae015dfe973aa206ed5c75f43e86aec0267dce79aa5c2b6e811b3ad
-  languageName: node
-  linkType: hard
-
-"has-own-prop@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "has-own-prop@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-own-prop%2Fdownload%2Fhas-own-prop-2.0.0.tgz"
-  checksum: 8513ff905297afb7b65f4e22012a2c8e20ab006067841015bf338cfd23019b6c7cec89b5192b4cb7eaaa2a5370d2474dc9a0bcfdfd71100c45b8d3be9882f45b
-  languageName: node
-  linkType: hard
-
-"has-symbols@npm:^1.0.0, has-symbols@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "has-symbols@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz"
-  checksum: 84e2a03ada6f530f0c1ebea64df5932556ac20a4b78998f1f2b5dd0cf736843e8082c488b0ea7f08b9aec72fb6d8b736beed2fd62fac60dcaebfdc0b8d2aa7ac
-  languageName: node
-  linkType: hard
-
-"has-unicode@npm:^2.0.0":
-  version: 2.0.1
-  resolution: "has-unicode@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-unicode%2Fdownload%2Fhas-unicode-2.0.1.tgz"
-  checksum: ed3719f95cbd7dada9e3fde6fad113eae6d317bc8e818a2350954914c098ca6eddb203261af2c291c49a14c52f83610becbc7ab8d569bee81261b9c260a435f2
-  languageName: node
-  linkType: hard
-
-"has-value@npm:^0.3.1":
-  version: 0.3.1
-  resolution: "has-value@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-0.3.1.tgz"
-  dependencies:
-    get-value: ^2.0.3
-    has-values: ^0.1.4
-    isobject: ^2.0.0
-  checksum: d78fab4523ad531894a84d840e00ac8041e5958e44a418c56517ac62436b7c827154ab79748b4b7f6aa1358cd7d74f888be52744115c56e6acedc7cb5523e213
-  languageName: node
-  linkType: hard
-
-"has-value@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "has-value@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-value%2Fdownload%2Fhas-value-1.0.0.tgz"
-  dependencies:
-    get-value: ^2.0.6
-    has-values: ^1.0.0
-    isobject: ^3.0.0
-  checksum: e05422bce9a522e79332cba48ec7c01fb4c4b04b0d030417fdc9e2ea53508479d7efcb3184d4f7a5cf5070a99043836f18962bab25c728362d2abc29ec18b574
-  languageName: node
-  linkType: hard
-
-"has-values@npm:^0.1.4":
-  version: 0.1.4
-  resolution: "has-values@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-0.1.4.tgz"
-  checksum: df7ac830e460d399b181203c12cacaeaa1dcf0febceeed78fcfa0a6354879aa6c64c6b1ec049ce1c850a9b545d7a85fecc71741a5b743e0ad5dbd3e9928adff6
-  languageName: node
-  linkType: hard
-
-"has-values@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "has-values@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-values%2Fdownload%2Fhas-values-1.0.0.tgz"
-  dependencies:
-    is-number: ^3.0.0
-    kind-of: ^4.0.0
-  checksum: b69c45d5132bc29d54a9a28e5ee53a35ab4109f3335a035c37e3511fe94234e848169e2e7d583f4fa889a92646f3018287361d47d9f636c0e2880c0856c79a58
-  languageName: node
-  linkType: hard
-
-"has@npm:^1.0.3":
-  version: 1.0.3
-  resolution: "has@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"
-  dependencies:
-    function-bind: ^1.1.1
-  checksum: c686e15300d41364486c099a9259d9c418022c294244843dcd712c4c286ff839d4f23a25413baa28c4d2c1e828afc2aaab70f685400b391533980223c71fa1ca
-  languageName: node
-  linkType: hard
-
-"he@npm:^1.1.1, he@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "he@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz"
-  bin:
-    he: bin/he
-  checksum: 212122003c20c8c17ac0c83a419b4c8e835411ff6ab9195d053ea6e4a0597cc005b5b8eabcbd57b0b0c0fe676f0049e09315845fff4e051198845491cbba260e
-  languageName: node
-  linkType: hard
-
-"history@npm:^4.9.0":
-  version: 4.10.1
-  resolution: "history@npm:4.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhistory%2Fdownload%2Fhistory-4.10.1.tgz"
-  dependencies:
-    "@babel/runtime": ^7.1.2
-    loose-envify: ^1.2.0
-    resolve-pathname: ^3.0.0
-    tiny-invariant: ^1.0.2
-    tiny-warning: ^1.0.0
-    value-equal: ^1.0.1
-  checksum: 3b302b54c08f61f040a265ae9608c6dba88260179b9ddfe542042465ccf79e2ff19e792cb70c6e0240e80bc00b29aad5308d1f277815b1e95662bd5b819c625b
-  languageName: node
-  linkType: hard
-
-"hoist-non-react-statics@npm:^3.1.0, hoist-non-react-statics@npm:^3.3.0":
-  version: 3.3.2
-  resolution: "hoist-non-react-statics@npm:3.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoist-non-react-statics%2Fdownload%2Fhoist-non-react-statics-3.3.2.tgz"
-  dependencies:
-    react-is: ^16.7.0
-  checksum: d3e3791d6e3a2741ce0ba38e878081dec49247ef22982a990c80941ee1f564ef16cd5a511bcc8c5e54f1ce8205535e0414ca5feea722c0690c80040be7ebf9df
-  languageName: node
-  linkType: hard
-
-"hosted-git-info@npm:^2.1.4":
-  version: 2.8.8
-  resolution: "hosted-git-info@npm:2.8.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz"
-  checksum: 3ecc389dc6ecbd5463fada7e04461e96f3c817fe2f989ca41e9dd3b503745a0bfa26fba405861b2831ca64edc1abc5d2fbc97ee977303f89650dac4fbfdc2d7a
-  languageName: node
-  linkType: hard
-
-"hpack.js@npm:^2.1.6":
-  version: 2.1.6
-  resolution: "hpack.js@npm:2.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhpack.js%2Fdownload%2Fhpack.js-2.1.6.tgz"
-  dependencies:
-    inherits: ^2.0.1
-    obuf: ^1.0.0
-    readable-stream: ^2.0.1
-    wbuf: ^1.1.0
-  checksum: a22a28aa318167f29d65994ac28a238356142a3dcbcdcf20b0a87f14a746af7017596c91a895933d79ee68edf0303a4de5e629a2141cb1dbddb2cd9cad07418b
-  languageName: node
-  linkType: hard
-
-"html-entities@npm:^1.3.1":
-  version: 1.3.1
-  resolution: "html-entities@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz"
-  checksum: 53d37e5161230ad7f2c16dd2b54945069d84b5167113eac55e39a8fffed357378afc022d5dc66045b132ea46232cab41aee86e79dd5cd0618e0b78776b9085b5
-  languageName: node
-  linkType: hard
-
-"html-minifier-terser@npm:^5.0.1":
-  version: 5.1.1
-  resolution: "html-minifier-terser@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-minifier-terser%2Fdownload%2Fhtml-minifier-terser-5.1.1.tgz"
-  dependencies:
-    camel-case: ^4.1.1
-    clean-css: ^4.2.3
-    commander: ^4.1.1
-    he: ^1.2.0
-    param-case: ^3.0.3
-    relateurl: ^0.2.7
-    terser: ^4.6.3
-  bin:
-    html-minifier-terser: cli.js
-  checksum: d05dea891f5977a35691306b1fb40438cffd6620c2f5a69d7ecb67bfa836af1d36c24978edd1616dc6d27e230561bd756c5f11b3054e6ebf2f8448289e3ca73d
-  languageName: node
-  linkType: hard
-
-"html-parse-stringify2@npm:2.0.1":
-  version: 2.0.1
-  resolution: "html-parse-stringify2@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-parse-stringify2%2Fdownload%2Fhtml-parse-stringify2-2.0.1.tgz"
-  dependencies:
-    void-elements: ^2.0.1
-  checksum: 71159c76d54e7e8c1dad808b7ed3f3410e7846b496e3910f0c14f78ade875477b3f6b320ee1259ba5a7689a7ba61bee0b23f9f50ae1d33189de73bf436fb2a52
-  languageName: node
-  linkType: hard
-
-"html-webpack-plugin@npm:^4.5.0":
-  version: 4.5.0
-  resolution: "html-webpack-plugin@npm:4.5.0"
-  dependencies:
-    "@types/html-minifier-terser": ^5.0.0
-    "@types/tapable": ^1.0.5
-    "@types/webpack": ^4.41.8
-    html-minifier-terser: ^5.0.1
-    loader-utils: ^1.2.3
-    lodash: ^4.17.15
-    pretty-error: ^2.1.1
-    tapable: ^1.1.3
-    util.promisify: 1.0.0
-  peerDependencies:
-    webpack: ^4.0.0 || ^5.0.0
-  checksum: df4dd38bd886aaac4cdcfa40f80fd35eb310810c8cad5bf1f7b8ca91550ad7d9f277c80dd4015fd2b0ef235d0384e9708b92a9c39f33d1b09090ca6fd8fdb53b
-  languageName: node
-  linkType: hard
-
-"htmlparser2@npm:^3.3.0":
-  version: 3.10.1
-  resolution: "htmlparser2@npm:3.10.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz"
-  dependencies:
-    domelementtype: ^1.3.1
-    domhandler: ^2.3.0
-    domutils: ^1.5.1
-    entities: ^1.1.1
-    inherits: ^2.0.1
-    readable-stream: ^3.1.1
-  checksum: 94fa6312e6c378b1c0f1626d3f468f0b25c5dcf6689bfa61fa0002c044c4c77842b5122feb84b501b02539165917febba0ffe754046996c9e8ed77c1bb65e66c
-  languageName: node
-  linkType: hard
-
-"http-cache-semantics@npm:^4.0.0":
-  version: 4.1.0
-  resolution: "http-cache-semantics@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-4.1.0.tgz"
-  checksum: 451df9784af2acbe0cc1fd70291285c08ca4a8966ab5ee4d3975e003d1ad4d74c81473086d628f31296b31221966fda8bc5ea1e29dd8f1f33f9fc2b0fdca65ca
-  languageName: node
-  linkType: hard
-
-"http-deceiver@npm:^1.2.7":
-  version: 1.2.7
-  resolution: "http-deceiver@npm:1.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-deceiver%2Fdownload%2Fhttp-deceiver-1.2.7.tgz"
-  checksum: d0b10fce2548f9ffda9dc1707224e009ea9c132f3df7df2ba1d293a91c5f21efea618bc3737a21116b427c3d09187649b0158582f9174d2b61cd69bee7939d7d
-  languageName: node
-  linkType: hard
-
-"http-errors@npm:1.7.2":
-  version: 1.7.2
-  resolution: "http-errors@npm:1.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz"
-  dependencies:
-    depd: ~1.1.2
-    inherits: 2.0.3
-    setprototypeof: 1.1.1
-    statuses: ">= 1.5.0 < 2"
-    toidentifier: 1.0.0
-  checksum: 8ce4a4af05a3652c81768a2754ced24b86ff62e7bee147a27b6ef8cde24e7a48f9fbfcb87ec6f67781879b95f1b35d3f8d6378e8555eb7d469ce875f4e184418
-  languageName: node
-  linkType: hard
-
-"http-errors@npm:~1.6.2":
-  version: 1.6.3
-  resolution: "http-errors@npm:1.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz"
-  dependencies:
-    depd: ~1.1.2
-    inherits: 2.0.3
-    setprototypeof: 1.1.0
-    statuses: ">= 1.4.0 < 2"
-  checksum: 850a3bf69ffc56c5151cea4a31bdf47412b7a6af3ee3f4fc92d3c4d90f8398d8843806f0d81916b310b661eed93722272cf2d41c2cac2fd5d1d1c66d4077942c
-  languageName: node
-  linkType: hard
-
-"http-errors@npm:~1.7.2":
-  version: 1.7.3
-  resolution: "http-errors@npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz"
-  dependencies:
-    depd: ~1.1.2
-    inherits: 2.0.4
-    setprototypeof: 1.1.1
-    statuses: ">= 1.5.0 < 2"
-    toidentifier: 1.0.0
-  checksum: 563ae4a3f19c89029212922bade6ffcd0e4b7fa52e539f08c8f6941de7eaccb00bf76cb7692662192f2f0d567d4ac1f9d6a3d0ee70b166c8540cf791497f90ea
-  languageName: node
-  linkType: hard
-
-"http-proxy-middleware@npm:0.19.1":
-  version: 0.19.1
-  resolution: "http-proxy-middleware@npm:0.19.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz"
-  dependencies:
-    http-proxy: ^1.17.0
-    is-glob: ^4.0.0
-    lodash: ^4.17.11
-    micromatch: ^3.1.10
-  checksum: 30f6e99935057bdd1e8323f34ee933822606fd762a912813182d4846b9acbf49f1e1767f0939f9ea1a503291727c1023dadaa41986b05b1d1ca9d420c67b5e09
-  languageName: node
-  linkType: hard
-
-"http-proxy@npm:^1.17.0, http-proxy@npm:^1.18.0":
-  version: 1.18.1
-  resolution: "http-proxy@npm:1.18.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz"
-  dependencies:
-    eventemitter3: ^4.0.0
-    follow-redirects: ^1.0.0
-    requires-port: ^1.0.0
-  checksum: fc2062718d77868eff0d2707652d7e0d302a0f85d90f317daa410df5c41fbe009589c80bc73cc72a44368bb37d071c8f52aaa5b3ce82a08f3524a79ddf178b9b
-  languageName: node
-  linkType: hard
-
-"http-server@npm:^0.12.3":
-  version: 0.12.3
-  resolution: "http-server@npm:0.12.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-server%2Fdownload%2Fhttp-server-0.12.3.tgz"
-  dependencies:
-    basic-auth: ^1.0.3
-    colors: ^1.4.0
-    corser: ^2.0.1
-    ecstatic: ^3.3.2
-    http-proxy: ^1.18.0
-    minimist: ^1.2.5
-    opener: ^1.5.1
-    portfinder: ^1.0.25
-    secure-compare: 3.0.1
-    union: ~0.5.0
-  bin:
-    hs: bin/http-server
-    http-server: bin/http-server
-  checksum: cbb1f5b9261f7018372f1356bcd2c8a67c8e8aaed9d0c47adcf28e7cb31f866a339285bc5a544bb85ece5ea12807ce9b86c6e465afea2a2195888672d4dd25f9
-  languageName: node
-  linkType: hard
-
-"http-signature@npm:~1.2.0":
-  version: 1.2.0
-  resolution: "http-signature@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz"
-  dependencies:
-    assert-plus: ^1.0.0
-    jsprim: ^1.2.2
-    sshpk: ^1.7.0
-  checksum: d28227eed37cb0dae0e76c46b2a5e611c678808433e5642238f17dba7f2c9c8f8d1646122d57ec1a110ecc7e8b9f5b7aa0462f1e2a5fa3b41f2fca5a69af7edf
-  languageName: node
-  linkType: hard
-
-"http2-wrapper@npm:^1.0.0-beta.5.0":
-  version: 1.0.0-beta.5.2
-  resolution: "http2-wrapper@npm:1.0.0-beta.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.0-beta.5.2.tgz"
-  dependencies:
-    quick-lru: ^5.1.1
-    resolve-alpn: ^1.0.0
-  checksum: 74db457c83d2cef5ea36e6a0a013a0a12b3fff575c4cabfc91c012b7335463d09ed3dba2d7e87babab4396a170df466730b1c13d92f99bbdd82b7aec99387683
-  languageName: node
-  linkType: hard
-
-"human-signals@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "human-signals@npm:1.1.1"
-  checksum: cac115f635090055427bbd9d066781b17de3a2d8bbf839d920ae2fa52c3eab4efc63b4c8abc10e9a8b979233fa932c43a83a48864003a8c684ed9fb78135dd45
-  languageName: node
-  linkType: hard
-
-"hyphenate-style-name@npm:^1.0.0":
-  version: 1.0.4
-  resolution: "hyphenate-style-name@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fhyphenate-style-name%2Fdownload%2Fhyphenate-style-name-1.0.4.tgz"
-  checksum: 4cfeb47e98eab9c25e6dece20da772cc914a9f8e5ee794cf8db105b0649dd64a61d8ee8ff32acf23ae0ac181db8fcbe4a6abb2f7de48ae52b42a85bbf1aacb86
-  languageName: node
-  linkType: hard
-
-"i18next-browser-languagedetector@npm:^6.0.1":
-  version: 6.0.1
-  resolution: "i18next-browser-languagedetector@npm:6.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fi18next-browser-languagedetector%2Fdownload%2Fi18next-browser-languagedetector-6.0.1.tgz"
-  dependencies:
-    "@babel/runtime": ^7.5.5
-  checksum: 760bc83f3bfdf18622a55d732c295130fb9d496e5a1ce389820dd253a3b53f4179826da9cb1b915167ff33c25fc33b5bd93bae8157135c026cd91d0e3a1df4fc
-  languageName: node
-  linkType: hard
-
-"i18next@npm:^19.8.3":
-  version: 19.8.3
-  resolution: "i18next@npm:19.8.3"
-  dependencies:
-    "@babel/runtime": ^7.12.0
-  checksum: 0dd7b4a9971e830a387f8b163485c89da4c5fa975f7d1a6441b1500ab58d063ff9a3866cf02e961fe4ee6f87a260991688a325c78d668411ee711f694ee7fe91
-  languageName: node
-  linkType: hard
-
-"iconv-lite@npm:0.4.24":
-  version: 0.4.24
-  resolution: "iconv-lite@npm:0.4.24::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz"
-  dependencies:
-    safer-buffer: ">= 2.1.2 < 3"
-  checksum: a9b9521066ee81853a8561e92bd7240bc5d3b7d5ef7da807a475e7858b0246e318b6af518c30a20a8749ef5eafeaa9631079446e4e696c7b60f468b34dc2cbfc
-  languageName: node
-  linkType: hard
-
-"icss-utils@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "icss-utils@npm:5.0.0"
-  peerDependencies:
-    postcss: ^8.1.0
-  checksum: c0f385f09dd428269700bd7a3e90fb44f0e866b11807f215e2dfe6db26d02248a362625c62c819bd4cd0116b0fc2c7c148b25f3ea9edba91285e8a09a5d2a0a0
-  languageName: node
-  linkType: hard
-
-"ieee754@npm:^1.1.4":
-  version: 1.1.13
-  resolution: "ieee754@npm:1.1.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.1.13.tgz"
-  checksum: 9ef12932e8aeae1c614f314783b3770fac5daae7ae92ebffcda97da58efd77c0289181093666f6048e02c566ceeec4d0edf3b04b57ce8e0b57e9b3814a870469
-  languageName: node
-  linkType: hard
-
-"ignore@npm:^4.0.6":
-  version: 4.0.6
-  resolution: "ignore@npm:4.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz"
-  checksum: 8f7b7f7c261d110604aed4340771933b0a42ffd2075e87bf8b4229ceb679659c5384c99e25c059f53a2b0e16cebaa4c49f7e837d1f374d1abf91fea46ccddd1a
-  languageName: node
-  linkType: hard
-
-"ignore@npm:^5.1.4":
-  version: 5.1.8
-  resolution: "ignore@npm:5.1.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz"
-  checksum: b08e3d5b5d94eca13475f29a5d47d221060e9cdd7e38d7647088e29d90130669a970fecbc4cdb41b8fa295c6673740c729d3dc05dadc381f593efb42282cbf9f
-  languageName: node
-  linkType: hard
-
-"immediate@npm:~3.0.5":
-  version: 3.0.6
-  resolution: "immediate@npm:3.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz"
-  checksum: e86d4d20e2da86f9a4629d9aee9d56dfae7d3a7ace7f569b0538f2ec2570d86b3cbdc52c546d23be2cfd28306670f44676fc833cd96d9506659b8c5ab8202ca4
-  languageName: node
-  linkType: hard
-
-"import-fresh@npm:^3.0.0":
-  version: 3.2.1
-  resolution: "import-fresh@npm:3.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz"
-  dependencies:
-    parent-module: ^1.0.0
-    resolve-from: ^4.0.0
-  checksum: 5ace95063123e8c2e30cfe302421f3ef1598d4fff9763c1b6bbed0ab4e700a16e45078fbfc3f7a8a5c3680e01edf707bca25354dec90a268b9803074e46bc89c
-  languageName: node
-  linkType: hard
-
-"import-fresh@npm:^3.2.1":
-  version: 3.2.1
-  resolution: "import-fresh@npm:3.2.1"
-  dependencies:
-    parent-module: ^1.0.0
-    resolve-from: ^4.0.0
-  checksum: 5ace95063123e8c2e30cfe302421f3ef1598d4fff9763c1b6bbed0ab4e700a16e45078fbfc3f7a8a5c3680e01edf707bca25354dec90a268b9803074e46bc89c
-  languageName: node
-  linkType: hard
-
-"import-local@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "import-local@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-2.0.0.tgz"
-  dependencies:
-    pkg-dir: ^3.0.0
-    resolve-cwd: ^2.0.0
-  bin:
-    import-local-fixture: fixtures/cli.js
-  checksum: 4729bf153cf0d5ca5ee15f7fd7c93d17e7f129704525d5272e33a800cdf656b70d31bb2a5a25c3743d431b35e3fe8edd44b4e36cd7f10c71c092ca0cae76ef8e
-  languageName: node
-  linkType: hard
-
-"import-local@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "import-local@npm:3.0.2"
-  dependencies:
-    pkg-dir: ^4.2.0
-    resolve-cwd: ^3.0.0
-  bin:
-    import-local-fixture: fixtures/cli.js
-  checksum: 9ba5f1697b8b11aae8dab7964bf1c2409ed5dc51dd03fe8698fb32df04a3a683adbe9d95e6bb963a384373ec8d055c508f0c534b45aac1de4a3b4b653e6cfe82
-  languageName: node
-  linkType: hard
-
-"imurmurhash@npm:^0.1.4":
-  version: 0.1.4
-  resolution: "imurmurhash@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fimurmurhash%2Fdownload%2Fimurmurhash-0.1.4.tgz"
-  checksum: 34d414d789286f6ef4d2b954c76c7df40dd7cabffef9b9959c8bd148677e98151f4fa5344aae2e3ad2b62308555ccbba3022e535a3e24288c9babb1308e35532
-  languageName: node
-  linkType: hard
-
-"indent-string@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "indent-string@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz"
-  checksum: 3e54996c6e15ca00a7a4403be705bce4fb3bb4ac637da2e1473006e42a651863f53bfb8c3438c1b3aac77817768ac0cde0e7b7a81a6cf24a1286227a06510dbf
-  languageName: node
-  linkType: hard
-
-"indexes-of@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "indexes-of@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Findexes-of%2Fdownload%2Findexes-of-1.0.1.tgz"
-  checksum: e1c232a32631c709bb8a2188d0a53c02aae18904fff0165322a353dfd2985e0b3ea184b2b15b74acc363a0344dc6e8dc927b874935a738e8ce0e5253e4a9da98
-  languageName: node
-  linkType: hard
-
-"infer-owner@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "infer-owner@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finfer-owner%2Fdownload%2Finfer-owner-1.0.4.tgz"
-  checksum: 56aa1d87b05936947765b1d9ace5f8d7ccd8cf6ccc1d69b67e8eaaee0e1ee2960d5accd51deb50d884665a5a1af3bcbb80f5d249c01a00280365bba59db9687b
-  languageName: node
-  linkType: hard
-
-"inflight@npm:^1.0.4":
-  version: 1.0.6
-  resolution: "inflight@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finflight%2Fdownload%2Finflight-1.0.6.tgz"
-  dependencies:
-    once: ^1.3.0
-    wrappy: 1
-  checksum: 17c53fc42cbe7f7f471d2bc41b97a0cde4b79a74d5ff59997d3f75210566fa278e17596da526d43de2bd07e222706240ce50e60097e54f2cde2e64cbbb372638
-  languageName: node
-  linkType: hard
-
-"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3":
-  version: 2.0.4
-  resolution: "inherits@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz"
-  checksum: 98426da247ddfc3dcd7d7daedd90c3ca32d5b08deca08949726f12d49232aef94772a07b36cf4ff833e105ae2ef931777f6de4a6dd8245a216b9299ad4a50bea
-  languageName: node
-  linkType: hard
-
-"inherits@npm:2.0.3":
-  version: 2.0.3
-  resolution: "inherits@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz"
-  checksum: 9488f9433effbc24474f6baee8014e5337c7f99305ecb4204fa5864ae7655c24225780d87fc65ed8d3d374715a18c5dc8c69fe3bf9745cde2e7acd0ac068a07b
-  languageName: node
-  linkType: hard
-
-"internal-ip@npm:^4.3.0":
-  version: 4.3.0
-  resolution: "internal-ip@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz"
-  dependencies:
-    default-gateway: ^4.2.0
-    ipaddr.js: ^1.9.0
-  checksum: 2cf2248053bd471a3f07880d76a86fa64fb16f2fe5006c0efda218224050ea383618788627498734055cc7027926b7749288f88981bb35433da3f4171824afd0
-  languageName: node
-  linkType: hard
-
-"internal-slot@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "internal-slot@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-slot%2Fdownload%2Finternal-slot-1.0.2.tgz"
-  dependencies:
-    es-abstract: ^1.17.0-next.1
-    has: ^1.0.3
-    side-channel: ^1.0.2
-  checksum: 02b2bcc612fbbaa5de71acec354a7bb50d8b3b2d2df775b6df61ea41419f92b69e0562f80125d7fa3667c9fb485cc88726f8a181fb544d880c79564f0f7d7d1e
-  languageName: node
-  linkType: hard
-
-"interpret@npm:^2.0.0":
-  version: 2.2.0
-  resolution: "interpret@npm:2.2.0"
-  checksum: c89b6aa67f6957ab57e3f12c406043ea6a8a00bfd4b36bdb914080a973574bee40e25afc0b162bcab9793e39744c90cc03e23150a79ad6a4b9ea31291a23ced4
-  languageName: node
-  linkType: hard
-
-"invariant@npm:^2.2.2, invariant@npm:^2.2.4":
-  version: 2.2.4
-  resolution: "invariant@npm:2.2.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz"
-  dependencies:
-    loose-envify: ^1.0.0
-  checksum: 96d8a2a4f0ad21020c5847546fc36bec5c0870d99f071aaa93df00c1036439d48211a1823ab6128f78a15ccc4c4f62baf6a65f6c0ed489270dd44d0a04f443a1
-  languageName: node
-  linkType: hard
-
-"ip-regex@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "ip-regex@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz"
-  checksum: 2fd2190ada81b55a8a6f913bcb5a6fd6ff9da127905b4c01521f09a1d391e86d415dfe8c131ed2989d536949bb2f9654a71b9fa6f7ae2ac3ae6111b2026cc902
-  languageName: node
-  linkType: hard
-
-"ip@npm:^1.1.0, ip@npm:^1.1.5":
-  version: 1.1.5
-  resolution: "ip@npm:1.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fip%2Fdownload%2Fip-1.1.5.tgz"
-  checksum: 3ad007368cf797ec9b73fbac0a644077198dd85a128d0fe39697a78a9cdd47915577eee5c4eca9933549b575ac4716107896c2d4aa43a1622b3f72104232cad4
-  languageName: node
-  linkType: hard
-
-"ipaddr.js@npm:1.9.1, ipaddr.js@npm:^1.9.0":
-  version: 1.9.1
-  resolution: "ipaddr.js@npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fipaddr.js%2Fdownload%2Fipaddr.js-1.9.1.tgz"
-  checksum: de15bc7e63973d960abc43c9fbbf19589c726774f59d157d1b29382a1e86ae87c68cbd8b5c78a1712a87fc4fcd91e10762c7671950c66a1a19040ff4fd2f9c9b
-  languageName: node
-  linkType: hard
-
-"is-absolute-url@npm:^3.0.3":
-  version: 3.0.3
-  resolution: "is-absolute-url@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz"
-  checksum: 1beac700465defee2bfa881cafcf144f3365cf0f748d62880e4a726c1de525ac39e8203bed14032f10509916dd392908e24d50ce1c1a444b44655a74708f9556
-  languageName: node
-  linkType: hard
-
-"is-accessor-descriptor@npm:^0.1.6":
-  version: 0.1.6
-  resolution: "is-accessor-descriptor@npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-0.1.6.tgz"
-  dependencies:
-    kind-of: ^3.0.2
-  checksum: 7a7fca21855f7f5e56706d34ce089bc95b78db4ee0d11f554b642ac06b508452aaf26ffdf5dc0680c99f66e2043d78ab659760c417af60fd067ae0f09717d3cc
-  languageName: node
-  linkType: hard
-
-"is-accessor-descriptor@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "is-accessor-descriptor@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-accessor-descriptor%2Fdownload%2Fis-accessor-descriptor-1.0.0.tgz"
-  dependencies:
-    kind-of: ^6.0.0
-  checksum: 3973215c2eaea260a33d8ab227f56dc1f9bf085f68a1a27e3108378917482369992b907a57ae05a72a16591af174cf5206efca3faf608fb36eaca675f2841e13
-  languageName: node
-  linkType: hard
-
-"is-arguments@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "is-arguments@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.0.4.tgz"
-  checksum: a04bc21254cfbb77c934ec51165ef7629c12cabd2a92c2c4333280b5117f138fcec6369dd2ab7d8fe24e3af7dbc2a4ce389c53ed0b55b0f8818788c3c09f4ad2
-  languageName: node
-  linkType: hard
-
-"is-arrayish@npm:^0.2.1":
-  version: 0.2.1
-  resolution: "is-arrayish@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arrayish%2Fdownload%2Fis-arrayish-0.2.1.tgz"
-  checksum: fc2bbe14dbcb27b490e63b7fbf0e3b0aae843e5e1fa96d79450bb9617797615a575c78c454ffc8e027c3ad50d63d83e85a7387784979dcd46686d2eb5f412db0
-  languageName: node
-  linkType: hard
-
-"is-binary-path@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "is-binary-path@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-1.0.1.tgz"
-  dependencies:
-    binary-extensions: ^1.0.0
-  checksum: 25a2cda1e504403a179d1daf2773d6ea47ce383e912bc695bb9e923b5d5468447e239499be5c2212c7508be7777196810f8307e1d1f0e83a6191425eb22c2887
-  languageName: node
-  linkType: hard
-
-"is-binary-path@npm:~2.1.0":
-  version: 2.1.0
-  resolution: "is-binary-path@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-binary-path%2Fdownload%2Fis-binary-path-2.1.0.tgz"
-  dependencies:
-    binary-extensions: ^2.0.0
-  checksum: 49a1446a3cf3719e91a061f0e52add18fd065325c652c277519a2ad333440dc8b449076a893277a46940ef16f05a908716667ca8f986b28c677b9acb11e10a36
-  languageName: node
-  linkType: hard
-
-"is-buffer@npm:^1.1.5":
-  version: 1.1.6
-  resolution: "is-buffer@npm:1.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz"
-  checksum: 336ec78f00e88efe6ff6f1aa08d06aadb942a6cd320e5f538ac00648378fb964743b3737c88ce7ce8741c067e4a3b78f596b83ee1a3c72dc2885ea0b03dc84f2
-  languageName: node
-  linkType: hard
-
-"is-callable@npm:^1.1.4, is-callable@npm:^1.1.5, is-callable@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "is-callable@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz"
-  checksum: 8a5e68b7c3a95159c98595789015da72e71432e638c4bc0aad4722ea6a1ffeca178838cfb6012f5b9cc1a8c61b737704bd658d8f588959a46a899961667e99f5
-  languageName: node
-  linkType: hard
-
-"is-callable@npm:^1.2.2":
-  version: 1.2.2
-  resolution: "is-callable@npm:1.2.2"
-  checksum: c35d37cc46c997d6417d7254733c8a3b1146f18121197c5600f601c56fb27abd1b372b0b9c41ea9a69d30556a2a0fd85e396da8eb8bc4af2e5ad8c5232fcd433
-  languageName: node
-  linkType: hard
-
-"is-core-module@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "is-core-module@npm:2.0.0"
-  dependencies:
-    has: ^1.0.3
-  checksum: de99dfbdf14d254f6d078aa37113512295acef3cfff5fb39fdf8020b04788535eae6da39e02b0c4ad07f7bc79594de8d5aeb4fce66f97feb9c597d7d6d6d43d4
-  languageName: node
-  linkType: hard
-
-"is-data-descriptor@npm:^0.1.4":
-  version: 0.1.4
-  resolution: "is-data-descriptor@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-0.1.4.tgz"
-  dependencies:
-    kind-of: ^3.0.2
-  checksum: 51db89bb4676b871a67f371f665dcf9c3fabb84e26b411beff42fb3b5505cdc0e33eeb1aeaa9c0400eb6d372a3b241c23a6953b5902397e5ff212cfbfd9edcda
-  languageName: node
-  linkType: hard
-
-"is-data-descriptor@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "is-data-descriptor@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-data-descriptor%2Fdownload%2Fis-data-descriptor-1.0.0.tgz"
-  dependencies:
-    kind-of: ^6.0.0
-  checksum: 0297518899d51c498987b1cc64fde72b0300f93a09669b6653a4d56a9cfb40c85b5988e52e36b10e88d17ad13b1927932f4631ddc02f10fa1d44a1e3150d31cd
-  languageName: node
-  linkType: hard
-
-"is-date-object@npm:^1.0.1":
-  version: 1.0.2
-  resolution: "is-date-object@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz"
-  checksum: 0e322699464a99da638c8a583b74dfb791732b6bc9c102bc0b7ac6303d83c86b9935f19b8d2ed4de52092241190c8826b099cb31972dea49a99b755293c0b1cf
-  languageName: node
-  linkType: hard
-
-"is-descriptor@npm:^0.1.0":
-  version: 0.1.6
-  resolution: "is-descriptor@npm:0.1.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-0.1.6.tgz"
-  dependencies:
-    is-accessor-descriptor: ^0.1.6
-    is-data-descriptor: ^0.1.4
-    kind-of: ^5.0.0
-  checksum: cab6979fb6412eefca8e9bc3b59d239b2ce4916d6025f184eb6c3031b5d381cb536630606a4635f0f43197164a090bb500c762f713f17846c1e34dd9ae6ef607
-  languageName: node
-  linkType: hard
-
-"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "is-descriptor@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-descriptor%2Fdownload%2Fis-descriptor-1.0.2.tgz"
-  dependencies:
-    is-accessor-descriptor: ^1.0.0
-    is-data-descriptor: ^1.0.0
-    kind-of: ^6.0.2
-  checksum: be8004010eac165fa9a61513a51881c4bac324d060916d44bfee2be03edf500d5994591707147f1f4c93ae611f97de27debdd8325702158fcd0cf8fcca3fbe06
-  languageName: node
-  linkType: hard
-
-"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1":
-  version: 0.1.1
-  resolution: "is-extendable@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-0.1.1.tgz"
-  checksum: 9d051e68c38b09c242564b62d98cdcc0ba5b20421340c95d5ae023955dcaf31ae1d614e1eb7a18a6358d4c47ea77d811623e1777a0589df9ac5928c370edd5e5
-  languageName: node
-  linkType: hard
-
-"is-extendable@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "is-extendable@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extendable%2Fdownload%2Fis-extendable-1.0.1.tgz"
-  dependencies:
-    is-plain-object: ^2.0.4
-  checksum: 2bf711afe60cc99f46699015c444db8f06c9c5553dd2b26fd8cb663fcec4bf00df1c11d02e28a8cc97b8efb49315c3c3fcf6ce1ceb09341af8e4fcccde516dd7
-  languageName: node
-  linkType: hard
-
-"is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "is-extglob@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-extglob%2Fdownload%2Fis-extglob-2.1.1.tgz"
-  checksum: ca623e2c56c893714a237aff645ec7caa8fea4d78868682af8d6803d7f0780323f8d566311e0dc6f942c886e81cbfa517597e48fcada7f3bf78a4d099eeecdd3
-  languageName: node
-  linkType: hard
-
-"is-fullwidth-code-point@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "is-fullwidth-code-point@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz"
-  dependencies:
-    number-is-nan: ^1.0.0
-  checksum: fc3d51ef082eaf0c0d44e94b74cf43b97446e008b147b08186daea8bd5ff402596f04b5fe4fa4c0457470beab5c2de8339c49c96b5be65fe9fdf88f60a0001e8
-  languageName: node
-  linkType: hard
-
-"is-fullwidth-code-point@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "is-fullwidth-code-point@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz"
-  checksum: e1e5284f848ab6885665967cd768292a75022304d4401e78937a68f423047c29bfe87a43a9cdb67a3210fff7bcd5da51469122a0eff59b03261c379e58dbe921
-  languageName: node
-  linkType: hard
-
-"is-glob@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "is-glob@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-3.1.0.tgz"
-  dependencies:
-    is-extglob: ^2.1.0
-  checksum: 9911e04e28285c50bfd5ff79950c6cf712ed9d959ef640acba2daeca8a17a921494b78b3143d5d1749c4dc3bbeb296b8955064a4f17d014112f0c63a239322d6
-  languageName: node
-  linkType: hard
-
-"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:~4.0.1":
-  version: 4.0.1
-  resolution: "is-glob@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-glob%2Fdownload%2Fis-glob-4.0.1.tgz"
-  dependencies:
-    is-extglob: ^2.1.1
-  checksum: 98cd4f715f0fb81da34aa6c8be4a5ef02d8cfac3ebc885153012abc2a0410df5a572f9d0393134fcba9192c7a845da96142c5f74a3c02787efe178ed798615e6
-  languageName: node
-  linkType: hard
-
-"is-module@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "is-module@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-module%2Fdownload%2Fis-module-1.0.0.tgz"
-  checksum: 2cbd41e2760874130b76aee84cc53120c4feef0d0f196fa665326857b444c8549909cc840f3f3a59652a7e8df46146a77f6c0f3f70a578704e03670975843e74
-  languageName: node
-  linkType: hard
-
-"is-negative-zero@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "is-negative-zero@npm:2.0.0"
-  checksum: 87ddefbdf75c2a7cfe0bed4b01b91617972316639eec6baafdef751b66b2668513f0d48138cdcae4edd29e817111f8b156722211cf8f6415e0623c6c253049d9
-  languageName: node
-  linkType: hard
-
-"is-number@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "is-number@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-3.0.0.tgz"
-  dependencies:
-    kind-of: ^3.0.2
-  checksum: ae03986dedb1e414cfef5402b24c9be5e9171bc77fdaa189f468144e801b23d8abaa9bf52fb882295558a042fbb0192fb3f80759a010073884eff9ee3f196962
-  languageName: node
-  linkType: hard
-
-"is-number@npm:^7.0.0":
-  version: 7.0.0
-  resolution: "is-number@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-number%2Fdownload%2Fis-number-7.0.0.tgz"
-  checksum: eec6e506c6de472af4bdfd0cc477e8aeb76f0a7066c8680fcdfed5324ee31a7d2b59d22313007c58aa80eb937f0c40eefdceedb851997d46b490b49f87160369
-  languageName: node
-  linkType: hard
-
-"is-obj@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "is-obj@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz"
-  checksum: 0913a3bb6424d6bfb37e2daa5ef4a5d31a388b0f5a53f36bbe1fd95f1264efe92c6fd87a5c3f41e25b3db42fe60924fe6ae1f0efb274375b090fd093a5301ccf
-  languageName: node
-  linkType: hard
-
-"is-path-cwd@npm:^2.0.0":
-  version: 2.2.0
-  resolution: "is-path-cwd@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz"
-  checksum: 900f6e81445b9979705952189d7dbada79dbe6d77be3b5fc95aed3dc1cc9d77de5b286db2d525942a72a717c81aa549509b76705883415fb655183dfefce9541
-  languageName: node
-  linkType: hard
-
-"is-path-in-cwd@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "is-path-in-cwd@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz"
-  dependencies:
-    is-path-inside: ^2.1.0
-  checksum: d814427f4e8757e960031bf9cf202f764a688a7d6be3bc8889335e5dc112e88731fda95556b8b6c7dc030358f4e6385e27ac9af95d0406411fc5271a94abef86
-  languageName: node
-  linkType: hard
-
-"is-path-inside@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "is-path-inside@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz"
-  dependencies:
-    path-is-inside: ^1.0.2
-  checksum: e289fc4ec6df457600bac34068b7c564bf17eee703888d9eea2b0a363a0ac67bb5864e715ba428904dd683287154cab0f7f9536d7e4c23e3410c5cc024a5839b
-  languageName: node
-  linkType: hard
-
-"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4":
-  version: 2.0.4
-  resolution: "is-plain-object@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz"
-  dependencies:
-    isobject: ^3.0.1
-  checksum: 2f3232267366f3cdf13d53deda1b282ba7959f28ccb2ee8e0ca168f859f0d7126c27c846ebb7c2b9821a09bbda2e1835fd4020337ba666cf3c03dc256aab7ba1
-  languageName: node
-  linkType: hard
-
-"is-regex@npm:^1.0.4, is-regex@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "is-regex@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.0.tgz"
-  dependencies:
-    has-symbols: ^1.0.1
-  checksum: 8fe7ae8c060ff831660be439c17a39dadc97c950d2636634f27db83b6a048695b1c46d304ba8a77efe906fb20c99755fdf4a1f628fcf75de3cdcbb687096bdaa
-  languageName: node
-  linkType: hard
-
-"is-regex@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "is-regex@npm:1.1.1"
-  dependencies:
-    has-symbols: ^1.0.1
-  checksum: 0c5b9d335c125cc59a83b9446b172d419303034f3cb570e95bfb7b45fc1dfb8bedd7ecf5e8139a99b8fed66894ee516fd7ce376feb109504f64c53092c7f07ee
-  languageName: node
-  linkType: hard
-
-"is-regexp@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "is-regexp@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz"
-  checksum: b6c3ea4f405d31e20c9612f0480b5deb86d71477f3e08c78a889a8b7b4c9f9e9944b2621b997bede7b94b6f8607dc8333b521b6b69a2f8ad97c80d9eb47d04a9
-  languageName: node
-  linkType: hard
-
-"is-stream@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "is-stream@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-stream%2Fdownload%2Fis-stream-1.1.0.tgz"
-  checksum: 39843ee9ff68ebda05237199f18831eb6e0e28db7799ee9ddaac5573b0681f18b4dc427afdb7b7ad906db545e4648999c42a1810b277acc8451593ff59da00fa
-  languageName: node
-  linkType: hard
-
-"is-stream@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "is-stream@npm:2.0.0"
-  checksum: f92ba04a8b8fafbade79bdaada53a044025db2fbd3fc2be978434db9a097a4afa457c2e3222c70c2ffc38854bde3a352593d6315463a54394f08ca9e51e32b50
-  languageName: node
-  linkType: hard
-
-"is-string@npm:^1.0.5":
-  version: 1.0.5
-  resolution: "is-string@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-string%2Fdownload%2Fis-string-1.0.5.tgz"
-  checksum: c64c791eb75935db9055291bc598edc22f03d3879b8a050b2955ba8087642d006338a1dedf7ac414c95f985c77c2d6fce655498d33c0df248fa92228a9945720
-  languageName: node
-  linkType: hard
-
-"is-symbol@npm:^1.0.2":
-  version: 1.0.3
-  resolution: "is-symbol@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz"
-  dependencies:
-    has-symbols: ^1.0.1
-  checksum: 753aa0cf95069387521b110c6646df4e0b5cce76cf604521c26b4f5d30a997a95036ed5930c0cca9e850ac6fccb04de551cc95aab71df471ee88e04ed1a96f21
-  languageName: node
-  linkType: hard
-
-"is-typedarray@npm:~1.0.0":
-  version: 1.0.0
-  resolution: "is-typedarray@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-typedarray%2Fdownload%2Fis-typedarray-1.0.0.tgz"
-  checksum: 4e21156e7360a5916eded35c5938adf6278299a8055640864eebb251e4351cd605beccddf9af27477e19f753d453412fe0c21379bb54b55cfdf5add263076959
-  languageName: node
-  linkType: hard
-
-"is-windows@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "is-windows@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-windows%2Fdownload%2Fis-windows-1.0.2.tgz"
-  checksum: dd1ed8339a28c68fb52f05931c832488dafc90063e53b97a69ead219a5584d7f3e6e564731c2f983962ff5403afeb05365d88ce9af34c8dae76a14911020d73a
-  languageName: node
-  linkType: hard
-
-"is-wsl@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "is-wsl@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz"
-  checksum: 0f15cf5d5ff025afb0ba9cb49fd425b5d533b2af700533d343b7fa9aaca2f6c8242ba1c1a4e30c925522816bf0172fec2ae7cacaae682c91ffa0cd3f88ff1e8e
-  languageName: node
-  linkType: hard
-
-"is@npm:^3.2.1":
-  version: 3.3.0
-  resolution: "is@npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fis%2Fdownload%2Fis-3.3.0.tgz"
-  checksum: 191293ded7b1906b8839201dc027087fc738e04af8e58e3fd477855b8926481ffd7873fd9bc88d91efc9448c313a8f474bfd1667e3f27e8b20c8be7f1c6b991f
-  languageName: node
-  linkType: hard
-
-"isarray@npm:0.0.1":
-  version: 0.0.1
-  resolution: "isarray@npm:0.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-0.0.1.tgz"
-  checksum: daeda3c23646200b0b464b7a9030d10008d7701fc6b7a1b45cafe42b4f4d2dde20835b56f19a49e04bb218245b7f7a2bcc6d0f696cff3711e4eddaa2031c611f
-  languageName: node
-  linkType: hard
-
-"isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0":
-  version: 1.0.0
-  resolution: "isarray@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz"
-  checksum: b0ff31a290e783f7b3fb73f2951ee7fc2946dc197b05f73577dc77f87dc3be2e0f66007bedf069123d4e5c4b691e7c89a241f6ca06f0c0f4765cdac5aa4b4047
-  languageName: node
-  linkType: hard
-
-"isexe@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "isexe@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz"
-  checksum: 7b437980bb77881a146fba85cfbdf01edc2b148673e9c2722a1e49661fea73adf524430a80fdbfb8ce9f60d43224e682c657c45030482bd39e0c488fc29b4afe
-  languageName: node
-  linkType: hard
-
-"isobject@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "isobject@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-2.1.0.tgz"
-  dependencies:
-    isarray: 1.0.0
-  checksum: 2e7d7dd8d5874d1c32a0380f8b5d8d84aee782e0137e5978f75e27402ee2d49ca194baf7acd43d176f4fe0d925090b8b336461741674f402558e954c8c4ee886
-  languageName: node
-  linkType: hard
-
-"isobject@npm:^3.0.0, isobject@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "isobject@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisobject%2Fdownload%2Fisobject-3.0.1.tgz"
-  checksum: b537a9ccdd8d40ec552fe7ff5db3731f1deb77581adf9beb8ae812f8d08acfa0e74b193159ac50fb01084d7ade06d114077f984e21b8340531241bf85be9a0ab
-  languageName: node
-  linkType: hard
-
-"isstream@npm:~0.1.2":
-  version: 0.1.2
-  resolution: "isstream@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fisstream%2Fdownload%2Fisstream-0.1.2.tgz"
-  checksum: 8e6e5c4cf1823562db7035d2e7bac388412060fe9bc6727eca8c608def5aa57709165c51c2e68a2fce6ff0b64d79489501b84715060c5e8a477b87b6cbcd1eca
-  languageName: node
-  linkType: hard
-
-"javascript-stringify@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "javascript-stringify@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz"
-  checksum: 77e800e1b687e03d47beefeb687e318565e07f8808d8166dfb1b077b69e59ef518844a08cba01124069d43dd72d2fd7773dd44feaf468d2f8d8e23a67045d4ca
-  languageName: node
-  linkType: hard
-
-"jest-worker@npm:^24.9.0":
-  version: 24.9.0
-  resolution: "jest-worker@npm:24.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz"
-  dependencies:
-    merge-stream: ^2.0.0
-    supports-color: ^6.1.0
-  checksum: 9740355081d8f98b15e035405a76a9eafc4ee2b943e00bbc74c34fa632a23e2c2d9d9efb4eb86165435ff76f8bc95dcd74ec63b5acbeb2f0755c83e77d0e71f4
-  languageName: node
-  linkType: hard
-
-"jest-worker@npm:^26.6.1":
-  version: 26.6.1
-  resolution: "jest-worker@npm:26.6.1"
-  dependencies:
-    "@types/node": "*"
-    merge-stream: ^2.0.0
-    supports-color: ^7.0.0
-  checksum: 329b65b18baf5e0e6db00dea87bdad445fcbd0d4e656dfb2a109230fb6d90ab4548ac1d48c69e7b8b83b4a2ba5e1bc380c4622ccefcbb11132a5190159e0f145
-  languageName: node
-  linkType: hard
-
-"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "js-tokens@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz"
-  checksum: 1fc4e4667ac2d972aba65148b9cbf9c17566b2394d3504238d8492bbd3e68f496c657eab06b26b40b17db5cac0a34d153a12130e2d2d2bb6dc2cdc8a4764eb1b
-  languageName: node
-  linkType: hard
-
-"js-tokens@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "js-tokens@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-3.0.2.tgz"
-  checksum: 81e634d5a909ba8294758ddca47a0c0cfee90e84cc14973c072a3a27456b387ed8def0f24aff7074c02c3ba47531f4ad8b58320f5f5c4216ef46257de5350568
-  languageName: node
-  linkType: hard
-
-"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1":
-  version: 3.14.0
-  resolution: "js-yaml@npm:3.14.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz"
-  dependencies:
-    argparse: ^1.0.7
-    esprima: ^4.0.0
-  bin:
-    js-yaml: bin/js-yaml.js
-  checksum: 2eb95464e5263aedc20ae2d9280f0e29b00adab15ece080ec42473d7055efaab24b904108644d115f687efe05a5bde02972b883aafa93607c4c108f667a56fa7
-  languageName: node
-  linkType: hard
-
-"jsbn@npm:~0.1.0":
-  version: 0.1.1
-  resolution: "jsbn@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz"
-  checksum: b530d48a64e6aff9523407856a54c5b9beee30f34a410612057f4fa097d90072fc8403c49604dacf0c3e7620dca43c2b7f0de3f954af611e43716a254c46f6f5
-  languageName: node
-  linkType: hard
-
-"jsesc@npm:^2.5.1":
-  version: 2.5.2
-  resolution: "jsesc@npm:2.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz"
-  bin:
-    jsesc: bin/jsesc
-  checksum: ca91ec33d74c55959e4b6fdbfee2af5f38be74a752cf0a982702e3a16239f26c2abbe19f5f84b15592570dda01872e929a90738615bd445f7b9b859781cfcf68
-  languageName: node
-  linkType: hard
-
-"jsesc@npm:~0.5.0":
-  version: 0.5.0
-  resolution: "jsesc@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz"
-  bin:
-    jsesc: bin/jsesc
-  checksum: 1e4574920d3c17c9167fdc14ca66197e8d5d96fb3f37c7473df7857822b7adbf2954d0e126131456f8fd72b6f6908c2367e7a12c18495a5393c37be99acbbb5a
-  languageName: node
-  linkType: hard
-
-"json-buffer@npm:3.0.1":
-  version: 3.0.1
-  resolution: "json-buffer@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-buffer%2Fdownload%2Fjson-buffer-3.0.1.tgz"
-  checksum: 78011309cb53c19195702ece9e282c8c58d7facd8d6e286857fd4daf511f0bd93424498898d0b9ecfde6ab8e87a2ab0c0a654fba4b1a4ec81fa51f2c48a5ddba
-  languageName: node
-  linkType: hard
-
-"json-file-plus@npm:^3.3.1":
-  version: 3.3.1
-  resolution: "json-file-plus@npm:3.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-file-plus%2Fdownload%2Fjson-file-plus-3.3.1.tgz"
-  dependencies:
-    is: ^3.2.1
-    node.extend: ^2.0.0
-    object.assign: ^4.1.0
-    promiseback: ^2.0.2
-    safer-buffer: ^2.0.2
-  checksum: 91d5ea48710a5f6ab0f085c3cb587d4695af71f9cbef608ec1b0d536c4b9c3f0dbb9157a6ddf2d2c8c7ca1f8c14b2809fbfcdfb2dc42f9235b59384520b0dd1a
-  languageName: node
-  linkType: hard
-
-"json-parse-better-errors@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "json-parse-better-errors@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-better-errors%2Fdownload%2Fjson-parse-better-errors-1.0.2.tgz"
-  checksum: b4c4f0e43b43892af887db742b26f9aa6302b09cd5f6e655ead49fca9f47f3cdd300dcf98cf5218778262be51d7b29859221206fc98b87a1a61c5af7618dae89
-  languageName: node
-  linkType: hard
-
-"json-parse-even-better-errors@npm:^2.3.0":
-  version: 2.3.1
-  resolution: "json-parse-even-better-errors@npm:2.3.1"
-  checksum: d89fa7fe57957f3004cf0e786465a64183c0de861f6fda800d352956397c01b22f9feb141d0dce5b23f5dbe0aae74dd5b45fc0c3c1679b0942688efa5544e726
-  languageName: node
-  linkType: hard
-
-"json-schema-traverse@npm:^0.4.1":
-  version: 0.4.1
-  resolution: "json-schema-traverse@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz"
-  checksum: 6f71bddba38aa043cf9c05ff9cf37158a6657909f1dd37032ba164b76923da47a17bb4592ee4f7f9c029dfaf26965b821ac214c1f991bb3bd038c9cfea2da50b
-  languageName: node
-  linkType: hard
-
-"json-schema@npm:0.2.3":
-  version: 0.2.3
-  resolution: "json-schema@npm:0.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"
-  checksum: d382ea841f0af5cf6ae3b63043c6ddbd144086de52342b5dd32d8966872dce1e0ed280f6b27c5fba97e50cf8640f27b593e039cb95df365718ada03ef0feb9f2
-  languageName: node
-  linkType: hard
-
-"json-stable-stringify-without-jsonify@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "json-stable-stringify-without-jsonify@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stable-stringify-without-jsonify%2Fdownload%2Fjson-stable-stringify-without-jsonify-1.0.1.tgz"
-  checksum: a01b6c65413b2d0dd6797004ace6166bb6f8a0a2a77c742966021c74233cebe48de3c33223f003a9e8e4a241bb882fe92141e538e7e1dad58afd32649444e269
-  languageName: node
-  linkType: hard
-
-"json-stringify-safe@npm:~5.0.1":
-  version: 5.0.1
-  resolution: "json-stringify-safe@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz"
-  checksum: 261dfb8eb3e72c8b0dda11fd7c20c151ffc1d1b03e529245d51708c8dd8d8c6a225880464adf41a570dff6e5c805fd9d1f47fed948cfb526e4fbe5a67ce4e5f4
-  languageName: node
-  linkType: hard
-
-"json3@npm:^3.3.2":
-  version: 3.3.3
-  resolution: "json3@npm:3.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson3%2Fdownload%2Fjson3-3.3.3.tgz"
-  checksum: f79831247f3ecdd4e99996534a171ccd20f34502b799dd53b671af8a7d7ac1228a7d806c100948cc16f3437da5ea0b821e2c44f8372a2a4095a0abebf0fb41ef
-  languageName: node
-  linkType: hard
-
-"json5@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "json5@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz"
-  dependencies:
-    minimist: ^1.2.0
-  bin:
-    json5: lib/cli.js
-  checksum: df41624f9f40bfacc546f779eef6d161a3312fbb6ec1dbd69f8c4388e9807af653b753371ab19b6d2bab22af2ca7dde62fe03c791596acf76915e1fc4ee6fd88
-  languageName: node
-  linkType: hard
-
-"json5@npm:^2.1.2":
-  version: 2.1.3
-  resolution: "json5@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz"
-  dependencies:
-    minimist: ^1.2.5
-  bin:
-    json5: lib/cli.js
-  checksum: 957e4937106cf59975aa0281e68911534d65c8a25be5b4d3559aa55eba351ccab516a943a60ba33e461e4b8af749939986e311de910cbcfd197410b57d971741
-  languageName: node
-  linkType: hard
-
-"jsonfile@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "jsonfile@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz"
-  dependencies:
-    graceful-fs: ^4.1.6
-  dependenciesMeta:
-    graceful-fs:
-      optional: true
-  checksum: a40b7b64da41c84b0dc7ad753737ba240bb0dc50a94be20ec0b73459707dede69a6f89eb44b4d29e6994ed93ddf8c9b6e57f6b1f09dd707567959880ad6cee7f
-  languageName: node
-  linkType: hard
-
-"jsprim@npm:^1.2.2":
-  version: 1.4.1
-  resolution: "jsprim@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsprim%2Fdownload%2Fjsprim-1.4.1.tgz"
-  dependencies:
-    assert-plus: 1.0.0
-    extsprintf: 1.3.0
-    json-schema: 0.2.3
-    verror: 1.10.0
-  checksum: ee0177b7ef39e6becf18c586d31fabe15d62be88e7867d3aff86466e4a3de9a2cd47b6e597417aebc1cd3c2d43bc662e79ab5eecdadf3ce0643e909432ed6d2c
-  languageName: node
-  linkType: hard
-
-"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
-  version: 3.1.0
-  resolution: "jsx-ast-utils@npm:3.1.0"
-  dependencies:
-    array-includes: ^3.1.1
-    object.assign: ^4.1.1
-  checksum: 189ef9aed8dae620376a3f164c7aac9caaa906e6ecc460f175b3910dadc28f472f0e8c171c3355f9c6a1fc448282926f3f3e42da993880d5a9d57408c03ed85a
-  languageName: node
-  linkType: hard
-
-"keyv@npm:^4.0.0":
-  version: 4.0.1
-  resolution: "keyv@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkeyv%2Fdownload%2Fkeyv-4.0.1.tgz"
-  dependencies:
-    json-buffer: 3.0.1
-  checksum: f4e65024a7451942c28dc7b813d1788b4279f9e9415c8f611d4c0f3d90162207900fa90fff0c56db94f3bab01054ad31b813958d0f9f76984e33dd62c4da2d72
-  languageName: node
-  linkType: hard
-
-"killable@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "killable@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkillable%2Fdownload%2Fkillable-1.0.1.tgz"
-  checksum: 397df2b8a74b800b5d19986375fe6d5e2c548163f1da49eee8b03bb0fa7e98ae8c5b93d9f34b83634d3a32a9b239f758e6de388b4bedb50f2f438fc91434e92f
-  languageName: node
-  linkType: hard
-
-"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0":
-  version: 3.2.2
-  resolution: "kind-of@npm:3.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-3.2.2.tgz"
-  dependencies:
-    is-buffer: ^1.1.5
-  checksum: e8a1835c4baa9b52666cd5d8ae89e6b9b9f5978600a30ba75fc92da332d1ba182bda90aa7372fc992a3eb6da261dc3fea0f136af24ddc87cfb668d40c817af56
-  languageName: node
-  linkType: hard
-
-"kind-of@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "kind-of@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-4.0.0.tgz"
-  dependencies:
-    is-buffer: ^1.1.5
-  checksum: 2e7296c614f54ba9cdcab4c389ec9d8f6ed7955c661b4bd075d5c1b67107ee00263a82aa12f76b61209e9d93f4949ee3d20c6ff17a8b0d199d84ba06d6f59478
-  languageName: node
-  linkType: hard
-
-"kind-of@npm:^5.0.0":
-  version: 5.1.0
-  resolution: "kind-of@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-5.1.0.tgz"
-  checksum: c98cfe70c805a7a3a10ec4399fac2884fb4b277494baffea0712a5e8de49a0bbdc36d9cfedf7879f47567fa4d7f4d92fd5b69582bc8666100b3560e03bd88844
-  languageName: node
-  linkType: hard
-
-"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2":
-  version: 6.0.3
-  resolution: "kind-of@npm:6.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fkind-of%2Fdownload%2Fkind-of-6.0.3.tgz"
-  checksum: 5de5d6577796af87a983199d6350ed41c670abec4a306cc43ca887c1afdbd6b89af9ab00016e3ca17eb7ad89ebfd9bb817d33baa89f855c6c95398a8b8abbf08
-  languageName: node
-  linkType: hard
-
-"klona@npm:^2.0.4":
-  version: 2.0.4
-  resolution: "klona@npm:2.0.4"
-  checksum: be4a0c784135b6a75ac2c5ac9564894807aa050de041ac775a20d3ee46969ac5c3d37503d12c215c7decb592196e59e22852fd0cf28ac0cc29fe3a6df9168624
-  languageName: node
-  linkType: hard
-
-"leven@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "leven@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fleven%2Fdownload%2Fleven-3.1.0.tgz"
-  checksum: 6ebca7529809b8d099ab8793091b1ee8712a87932fae14c7d0c2693b0fcc0640aea72141a6539c03b9dae53a34f15a43dc151bb5c04eded0d1d38b277bfd206a
-  languageName: node
-  linkType: hard
-
-"levenary@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "levenary@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.1.tgz"
-  dependencies:
-    leven: ^3.1.0
-  checksum: 6d3b78e3953b0e5c4c9a703cce2c11c817e2465c010daf08e3c5964c259c850d233584009e5939f0cf4af2b6455f7f7e3a092ea119f63a2a81e273cd2d5e09e2
-  languageName: node
-  linkType: hard
-
-"levn@npm:^0.4.1":
-  version: 0.4.1
-  resolution: "levn@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz"
-  dependencies:
-    prelude-ls: ^1.2.1
-    type-check: ~0.4.0
-  checksum: 2f6ddfb0b956f2cb6b1608253a62b0c30e7392dd3c7b4cf284dfe2889b44d8385eaa81597646e253752c312a960ccb5e4d596968e476d5f6614f4ca60e5218e9
-  languageName: node
-  linkType: hard
-
-"lie@npm:3.1.1":
-  version: 3.1.1
-  resolution: "lie@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flie%2Fdownload%2Flie-3.1.1.tgz"
-  dependencies:
-    immediate: ~3.0.5
-  checksum: 33a07ffeb7eb5aaec59a5f7a72ba7e6a2ce9d011bd7894f36ed11e2da43f076467019e5f9826c5864500c6a792450aa54b263f31cef0a1774553851dce8a501c
-  languageName: node
-  linkType: hard
-
-"line-column@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "line-column@npm:1.0.2"
-  dependencies:
-    isarray: ^1.0.0
-    isobject: ^2.0.0
-  checksum: e6fa785b0c75c4485d0f181beaeb2f0b482ebf16921b64d5b61e75e86a61504b42053655d481b1c8de5c4d8b551473c034eb48780c65d76be377e643d395f6e5
-  languageName: node
-  linkType: hard
-
-"lines-and-columns@npm:^1.1.6":
-  version: 1.1.6
-  resolution: "lines-and-columns@npm:1.1.6"
-  checksum: 798b80ed7ae3fba34d43fe29591ccb4f16f6fca1da4e1f9922b92264b91d931012433c248daf8e44caa74feb40c0eaa0f27a14f8ee68b6ffb425f3c3f785af27
-  languageName: node
-  linkType: hard
-
-"load-json-file@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "load-json-file@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-2.0.0.tgz"
-  dependencies:
-    graceful-fs: ^4.1.2
-    parse-json: ^2.2.0
-    pify: ^2.0.0
-    strip-bom: ^3.0.0
-  checksum: c6ea93d36099dd6e778c6c018c9e184ad65d278a9538c2280f959b040b1a9a756d8856bdaf8a38c8f1454eca19bf4798ea59f79ccd8bb1c33aa8b7ecbe157f0c
-  languageName: node
-  linkType: hard
-
-"loader-runner@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "loader-runner@npm:4.1.0"
-  checksum: 2b964f3484249acc18f1c28e35aee284ed698a73e9f1913bc045761ad0af3a61b403e22ce170e4cc8bdcea87fddb6a34b42e9f88a023758e635d5276c75dd8c4
-  languageName: node
-  linkType: hard
-
-"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0, loader-utils@npm:^1.2.3, loader-utils@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "loader-utils@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz"
-  dependencies:
-    big.js: ^5.2.2
-    emojis-list: ^3.0.0
-    json5: ^1.0.1
-  checksum: 9fd690e57ad78d32ff2942383b4a7a175eba575280ba5aca3b4d03183fec34aa0db314f49bd3301adf7e60b02471644161bf53149e8f2d18fd6a52627e95a927
-  languageName: node
-  linkType: hard
-
-"loader-utils@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "loader-utils@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz"
-  dependencies:
-    big.js: ^5.2.2
-    emojis-list: ^3.0.0
-    json5: ^2.1.2
-  checksum: a1c2e48781e1501e126a32c39bc1fb1a7e2f02bd99e5aeb8853ddaf3c121fffefcc4579367f97ca6890b58369e571af1c9ec82e4e20db238d560ab359ff25c33
-  languageName: node
-  linkType: hard
-
-"localforage@npm:^1.9.0":
-  version: 1.9.0
-  resolution: "localforage@npm:1.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocalforage%2Fdownload%2Flocalforage-1.9.0.tgz"
-  dependencies:
-    lie: 3.1.1
-  checksum: 0645f5ec6fe28799081a9a21dc23796fbb665dcc20e09061228302750a05671bd13a42688e41b523f1598fff5d8e219f468d826595b75db07b555d4ff223943e
-  languageName: node
-  linkType: hard
-
-"locate-path@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "locate-path@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz"
-  dependencies:
-    p-locate: ^2.0.0
-    path-exists: ^3.0.0
-  checksum: ee5a888d686f8d555ebfa6c4f6f3b7c5cdfa5f382dee17e0b3fde7456fc68301ddb6a79790a412659d1e067f2f58fd74c683b203fc20368deaed45fb985b4fda
-  languageName: node
-  linkType: hard
-
-"locate-path@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "locate-path@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz"
-  dependencies:
-    p-locate: ^3.0.0
-    path-exists: ^3.0.0
-  checksum: 0b6bf0c1bb09021499f6198ed6a4ae367e8224e2493a74cc7bc5f4e6eca9ed880a5f7fdfb4d57b7e21d3e289c3abfe152cd510cacb1d03049f9d81d9a7d302ca
-  languageName: node
-  linkType: hard
-
-"locate-path@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "locate-path@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz"
-  dependencies:
-    p-locate: ^4.1.0
-  checksum: c58f49d45c8672d0a290dea0ce41fcb27205b3f2d61452ba335ef3b42ad36c10c31b1f061b46d96dd4b81e9a00e8a2897bc124d75623b80a9f6d36b1e754a6b5
-  languageName: node
-  linkType: hard
-
-"lodash-es@npm:^4.17.15":
-  version: 4.17.15
-  resolution: "lodash-es@npm:4.17.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.15.tgz"
-  checksum: ee2871b76deefd1754527e659a8c8b688f2e427e67b30709296878e18ad9cb54b4f0fc16a7161298156b4e0ebc2a37dfe501a3ea8725f195763f9de8a7ba6da6
-  languageName: node
-  linkType: hard
-
-"lodash._reinterpolate@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "lodash._reinterpolate@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash._reinterpolate%2Fdownload%2Flodash._reinterpolate-3.0.0.tgz"
-  checksum: 27513557d6fe526296324f1de9e1b8e8ac88ef2a2544a655e825f3ab0f52c5a675f1a73a0c9ff3c64fda031c56dfb4deb9dac7c7d21f9a04bc63dd7db5a5a73d
-  languageName: node
-  linkType: hard
-
-"lodash.template@npm:^4.5.0":
-  version: 4.5.0
-  resolution: "lodash.template@npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.template%2Fdownload%2Flodash.template-4.5.0.tgz"
-  dependencies:
-    lodash._reinterpolate: ^3.0.0
-    lodash.templatesettings: ^4.0.0
-  checksum: e27068e20b7a374938c20ab76a093dd49e9626bfbe1882d9d05d81efefe3210cfcd6ad24f1cb0d956ce57d75855fec17bd386a4aa54762a144bd7c0891ee7ee1
-  languageName: node
-  linkType: hard
-
-"lodash.templatesettings@npm:^4.0.0":
-  version: 4.2.0
-  resolution: "lodash.templatesettings@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.templatesettings%2Fdownload%2Flodash.templatesettings-4.2.0.tgz"
-  dependencies:
-    lodash._reinterpolate: ^3.0.0
-  checksum: 45546a5b76376b138ef4f01aa2722813127c639428eb9baef3fbac176b509ee2dab5cb9d1ee8267dbeeef8d49371f9a748af3df83649bf8b75fa54993f65b7aa
-  languageName: node
-  linkType: hard
-
-"lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.4":
-  version: 4.17.19
-  resolution: "lodash@npm:4.17.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz"
-  checksum: ff2b7a95f0129dba9101e346d44e0eda0f159d76bbbf23721eec1969b87a32bde3de0cfef0733218c64620e9be08040a973278d46a686540233b356115f3527c
-  languageName: node
-  linkType: hard
-
-"lodash@npm:^4.17.20":
-  version: 4.17.20
-  resolution: "lodash@npm:4.17.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz"
-  checksum: c62101d2500c383b5f174a7e9e6fe8098149ddd6e9ccfa85f36d4789446195f5c4afd3cfba433026bcaf3da271256566b04a2bf2618e5a39f6e67f8c12030cb6
-  languageName: node
-  linkType: hard
-
-"logic-solver@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "logic-solver@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flogic-solver%2Fdownload%2Flogic-solver-2.0.1.tgz"
-  dependencies:
-    underscore: ^1.7.0
-  checksum: 48458c67714792417e9c79e61e1d0edcceb45d7fa402da2464a9e86374545e6abd54bcd1d50931e753bb3fc9c78eb7128291db530f801ca3ce294b0e115c39e2
-  languageName: node
-  linkType: hard
-
-"loglevel@npm:^1.6.8":
-  version: 1.6.8
-  resolution: "loglevel@npm:1.6.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz"
-  checksum: 847939b08549649a0495e1b0d25ac89cec537a057fbb6deae468a066236ca0295aabce314366c026605537c345ece982d88783c7f44ab3599a40554bb09442ed
-  languageName: node
-  linkType: hard
-
-"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "loose-envify@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Floose-envify%2Fdownload%2Floose-envify-1.4.0.tgz"
-  dependencies:
-    js-tokens: ^3.0.0 || ^4.0.0
-  bin:
-    loose-envify: cli.js
-  checksum: 5c3b47bbe5f597a3889fb001a3a98aaea2a3fafa48089c19034de1e0121bf57dbee609d184478514d74d5c5a7e9cfa3d846343455e5123b060040d46c39e91dc
-  languageName: node
-  linkType: hard
-
-"lower-case@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "lower-case@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-2.0.1.tgz"
-  dependencies:
-    tslib: ^1.10.0
-  checksum: 52a55327ea69cbec7693daa11efb94f9e3d13b2697773d3cecd71f68c7eafaca2b0b34f8cc10617a751134e17c8396be992972765f5d5db220047651046762b5
-  languageName: node
-  linkType: hard
-
-"lowercase-keys@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "lowercase-keys@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flowercase-keys%2Fdownload%2Flowercase-keys-2.0.0.tgz"
-  checksum: 4da67f41865a25360bb05749a66a83c60987c7efa0b8ec443941a19978c21ba916ae9fedca25b96fc652026c4264a437d3fec099d1949716b5483eec42395ec9
-  languageName: node
-  linkType: hard
-
-"lru-cache@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "lru-cache@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-6.0.0.tgz"
-  dependencies:
-    yallist: ^4.0.0
-  checksum: b8b78353d2391c0f135cdc245c4744ad41c2efb1a6d98f31bc57a2cf48ebf02de96e4876657c3026673576bf1f1f61fc3fdd77ab00ad1ead737537bf17d8019d
-  languageName: node
-  linkType: hard
-
-"magic-string@npm:^0.25.0, magic-string@npm:^0.25.5":
-  version: 0.25.7
-  resolution: "magic-string@npm:0.25.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz"
-  dependencies:
-    sourcemap-codec: ^1.4.4
-  checksum: 4b70c13eb21c6f1c54bf7fb029748dc44d6bfcd3c59e5deeda060eecc38df6144b91d10fb7a3cf6156fadab1a68f83d69a189df20ca5f6bd088bf0196ea8f039
-  languageName: node
-  linkType: hard
-
-"make-dir@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "make-dir@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz"
-  dependencies:
-    pify: ^4.0.1
-    semver: ^5.6.0
-  checksum: 94e2ab9dda2198508057fd75f4e0b5998ee2d1e390c1e03172c32104dbd750ba2314376fec540ce517c8ed7fc526aeebc7d193315d060e229fec0fe55feb2228
-  languageName: node
-  linkType: hard
-
-"make-dir@npm:^3.0.2":
-  version: 3.1.0
-  resolution: "make-dir@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz"
-  dependencies:
-    semver: ^6.0.0
-  checksum: 54b6f186c209c1b133d0d1710e6b04c41ebfcb0dac699e5a369ea1223f22c0574ef820b91db37cae6c245f5bda8aff9bfec94f6c23e7d75970446b34a58a79b0
-  languageName: node
-  linkType: hard
-
-"map-cache@npm:^0.2.2":
-  version: 0.2.2
-  resolution: "map-cache@npm:0.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-cache%2Fdownload%2Fmap-cache-0.2.2.tgz"
-  checksum: 3d205d20e0135a5b5f3e2b85e7bfa289cc2fc3c748fe802795e74c6fe157e5f2bed3b7c3a270b82fe36a02123880cb2e0dc525e1ae37ac7e673ce3e75a2e2c56
-  languageName: node
-  linkType: hard
-
-"map-visit@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "map-visit@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-visit%2Fdownload%2Fmap-visit-1.0.0.tgz"
-  dependencies:
-    object-visit: ^1.0.0
-  checksum: 9e85e6d802183927229d9ad04d70a0e0c7225451994605674d3ed4e4a21f817b4d9aba42a775e98078ffe47cf67df44a50eb07f965f14afead5015c8692503bd
-  languageName: node
-  linkType: hard
-
-"matchmediaquery@npm:^0.3.0":
-  version: 0.3.1
-  resolution: "matchmediaquery@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmatchmediaquery%2Fdownload%2Fmatchmediaquery-0.3.1.tgz"
-  dependencies:
-    css-mediaquery: ^0.1.2
-  checksum: face426fe3fd743d08d70c2e92c103c14419268f7ba0069bacd04c91e819a7ca270d195e2e6793169a6fcacc22b225965d685ec3fc144babee84f46659645757
-  languageName: node
-  linkType: hard
-
-"media-typer@npm:0.3.0":
-  version: 0.3.0
-  resolution: "media-typer@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmedia-typer%2Fdownload%2Fmedia-typer-0.3.0.tgz"
-  checksum: be1c825782df7f38eebd451d778f6407bb15a59c8807a69e7f2ad74a25440e474536441c6bf583fdf2803ea23b866e91ff68f565cda297211dd89147758c8df3
-  languageName: node
-  linkType: hard
-
-"memory-fs@npm:^0.4.1":
-  version: 0.4.1
-  resolution: "memory-fs@npm:0.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz"
-  dependencies:
-    errno: ^0.1.3
-    readable-stream: ^2.0.1
-  checksum: ba79207118e62d7e3d13b6a00c1b0508b506a7f281e26c5efcc85e7ba0c9e11eda36a242b42f07067367c4b8547b1e905096293fa65dc6b3dbdd8f825b787dd9
-  languageName: node
-  linkType: hard
-
-"memory-fs@npm:^0.5.0":
-  version: 0.5.0
-  resolution: "memory-fs@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz"
-  dependencies:
-    errno: ^0.1.3
-    readable-stream: ^2.0.1
-  checksum: deb916f33ca09215d6ad58db30854bbf36aaca86e018dcbbbdb7c6160661e8c0b9acdcc23c9931fc6dcd62f3dd5318a7ecab519e3688f7787d0833e5f48c0d0a
-  languageName: node
-  linkType: hard
-
-"merge-descriptors@npm:1.0.1":
-  version: 1.0.1
-  resolution: "merge-descriptors@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-descriptors%2Fdownload%2Fmerge-descriptors-1.0.1.tgz"
-  checksum: 2d2a09eaac840a7ceac7a13b44b7c8abf3ecccd93a609c3525d8290cb5d814336cc7c0b1dd485ae3bc471ed354eeefb153475ce2e1604ccdf79eebe74021c192
-  languageName: node
-  linkType: hard
-
-"merge-stream@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "merge-stream@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz"
-  checksum: cde834809a0e65485e474de3162af9853ab2a07977fd36d328947b7b3e6207df719ffb115b11085ecc570501e15a2aa8bacd772ac53f77873f53b0626e52a39a
-  languageName: node
-  linkType: hard
-
-"merge2@npm:^1.3.0":
-  version: 1.4.1
-  resolution: "merge2@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge2%2Fdownload%2Fmerge2-1.4.1.tgz"
-  checksum: 7ad40d8b140a5ed4e621b916858410e4f0dd4ced1e5a2b675563347e70f0661d95ba6c3c8007dd3c4e242d0b8eee44559fa75bb90a146cf168debffc0cbc18f3
-  languageName: node
-  linkType: hard
-
-"methods@npm:~1.1.2":
-  version: 1.1.2
-  resolution: "methods@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmethods%2Fdownload%2Fmethods-1.1.2.tgz"
-  checksum: 450e4ea0fd4a0f3de8c0593d753c7d6c8f2ee49766f5ef35c68cc2ac41699d5e295b7d6330fc2b7271b8569a07857e3eb0b5df0599a353c5808265b4b5066168
-  languageName: node
-  linkType: hard
-
-"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4":
-  version: 3.1.10
-  resolution: "micromatch@npm:3.1.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz"
-  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
-  checksum: a60e73539a3ac6c6231f11642257a460861302df5986a94fd418d1b64a817409cda778d7023b53541a2091b523eda2c6f7212721e380d0b696284b7ca0a45bda
-  languageName: node
-  linkType: hard
-
-"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2":
-  version: 4.0.2
-  resolution: "micromatch@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz"
-  dependencies:
-    braces: ^3.0.1
-    picomatch: ^2.0.5
-  checksum: 0cb0e11d647cbb65e398a0a8a1340a7fb751ae2722346219c435704cfac8b3275a94a6464236fe867f52ad46a24046d3bc4ac11b3d21ddb73bc44e27cf1e4904
-  languageName: node
-  linkType: hard
-
-"mime-db@npm:1.44.0, mime-db@npm:>= 1.43.0 < 2":
-  version: 1.44.0
-  resolution: "mime-db@npm:1.44.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz"
-  checksum: b4e3b2141418572fba9786f7e36324faef15e23032ad0871f56760cb304ee721ba4c8cc795d3c1cac69a2a8b94045c1d6b08c4a8d1ef6ba1226a3a5193915c57
-  languageName: node
-  linkType: hard
-
-"mime-types@npm:^2.1.12, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24":
-  version: 2.1.27
-  resolution: "mime-types@npm:2.1.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz"
-  dependencies:
-    mime-db: 1.44.0
-  checksum: 51fe2f2c08c10ac7a2f67e2ce5de30f6500faa88d095418a1ab6e90e30960db7c682a8ecce60d3d4e293ac52c4700ca99399833db998ea9ec83d6f0503b70a94
-  languageName: node
-  linkType: hard
-
-"mime-types@npm:^2.1.27":
-  version: 2.1.27
-  resolution: "mime-types@npm:2.1.27"
-  dependencies:
-    mime-db: 1.44.0
-  checksum: 51fe2f2c08c10ac7a2f67e2ce5de30f6500faa88d095418a1ab6e90e30960db7c682a8ecce60d3d4e293ac52c4700ca99399833db998ea9ec83d6f0503b70a94
-  languageName: node
-  linkType: hard
-
-"mime@npm:1.6.0, mime@npm:^1.6.0":
-  version: 1.6.0
-  resolution: "mime@npm:1.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz"
-  bin:
-    mime: cli.js
-  checksum: d540c24dd3e3a9e25e813714e55ff2f7841a3a1a47aed9786c508bd0251653d5e9abbfb1163c0c6e1be99f872d7fa1538c068bd6e306e9cb12dd9affa841a61e
-  languageName: node
-  linkType: hard
-
-"mime@npm:^2.4.4":
-  version: 2.4.6
-  resolution: "mime@npm:2.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz"
-  bin:
-    mime: cli.js
-  checksum: 319ec3858894aa9befa9da90e33c4422506689f1e3e7c939095df68abe848050a51070c78a31061769d9192051a8c9f33d14d6771dc0f2ff309fe846898e0807
-  languageName: node
-  linkType: hard
-
-"mimic-fn@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "mimic-fn@npm:2.1.0"
-  checksum: f7d2d7febe3d7dd71da0700b1d455ec6c951a96b463ffcc303c93771b9fe4e45318152ea677c241505b19b39e41d906e5052cfb382d59a44bdb6d3d57f8b467b
-  languageName: node
-  linkType: hard
-
-"mimic-response@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "mimic-response@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-1.0.1.tgz"
-  checksum: 64b43c717ed8710bc920576e96d38d0e504e9eec3114af8e00c9e3d7ae53cd459ee38febb0badc83e3a4e6d21cd571db43e9011f8cf014809989c87a1a9f0ea4
-  languageName: node
-  linkType: hard
-
-"mimic-response@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "mimic-response@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-response%2Fdownload%2Fmimic-response-3.1.0.tgz"
-  checksum: cfbf19f66de6ad46df7481d9e8c1a7f30b6fa77dd771ad4a72a0443265041a39768182bde6d1de39001c2774168635bc74f42902e401c8ba33db55d69b773004
-  languageName: node
-  linkType: hard
-
-"min-document@npm:^2.19.0":
-  version: 2.19.0
-  resolution: "min-document@npm:2.19.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmin-document%2Fdownload%2Fmin-document-2.19.0.tgz"
-  dependencies:
-    dom-walk: ^0.1.0
-  checksum: 8da883996e00a53729e867dad45a358c6d8b3b55f2473a20768c1a2b4642d0983bc61827cf29eb98c53d7290c2a1a74a5cba60873857da416bdfae09bf73bb21
-  languageName: node
-  linkType: hard
-
-"mini-create-react-context@npm:^0.4.0":
-  version: 0.4.0
-  resolution: "mini-create-react-context@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-create-react-context%2Fdownload%2Fmini-create-react-context-0.4.0.tgz"
-  dependencies:
-    "@babel/runtime": ^7.5.5
-    tiny-warning: ^1.0.3
-  peerDependencies:
-    prop-types: ^15.0.0
-    react: ^0.14.0 || ^15.0.0 || ^16.0.0
-  checksum: 51f07df1ed473597e997a6be181262cc06a68e6f29e1ff4d7c6f0a201cfb191e840e504fad1e417cbe622cb3575354fb29cde3327443ce428e09927520078ab2
-  languageName: node
-  linkType: hard
-
-"mini-css-extract-plugin@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "mini-css-extract-plugin@npm:1.2.0"
-  dependencies:
-    loader-utils: ^2.0.0
-    schema-utils: ^3.0.0
-    webpack-sources: ^1.1.0
-  peerDependencies:
-    webpack: ^4.4.0 || ^5.0.0
-  checksum: e87cbebbcbdcd0ecacd32d4056a95e129360f32b74140195d48fed0d67e9ad9cc6c8e87fb54fe1df16841dd11dd0236574bdcf565a978b9718df4a99cbe28ca8
-  languageName: node
-  linkType: hard
-
-"minimalistic-assert@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "minimalistic-assert@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimalistic-assert%2Fdownload%2Fminimalistic-assert-1.0.1.tgz"
-  checksum: 28f1de3cf9edfb82613428a58eb3dd38ec6d33ab761b98abf2d130c81104ea86be540c7e5eb8284f13e0a065ead8b17501de09419b9a98987ed27268ad538dba
-  languageName: node
-  linkType: hard
-
-"minimatch@npm:^3.0.4":
-  version: 3.0.4
-  resolution: "minimatch@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz"
-  dependencies:
-    brace-expansion: ^1.1.7
-  checksum: 47eab9263962cacd5733e274ecad2d8e54b0f8e124ba35ae69189e296058f634a4967b87a98954f86fa5c830ff177caf827ce0136d28717ed3232951fb4fae62
-  languageName: node
-  linkType: hard
-
-"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5":
-  version: 1.2.5
-  resolution: "minimist@npm:1.2.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz"
-  checksum: b77b8590147a4e217ff34266236bc39de23b52e6e33054076991ff674c7397a1380a7bde11111916f16f003a94aaa7e4f3d92595a32189644ff607fabc65a5b6
-  languageName: node
-  linkType: hard
-
-"minipass-collect@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "minipass-collect@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-collect%2Fdownload%2Fminipass-collect-1.0.2.tgz"
-  dependencies:
-    minipass: ^3.0.0
-  checksum: 529ef6212333e6b9afc6aa4487a246df6fd28a28e42060533491ebf58fddb349f9b044f017725bddf3e13cae3986c58c24ee2531832f62e6d97379846e04e0a8
-  languageName: node
-  linkType: hard
-
-"minipass-flush@npm:^1.0.5":
-  version: 1.0.5
-  resolution: "minipass-flush@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-flush%2Fdownload%2Fminipass-flush-1.0.5.tgz"
-  dependencies:
-    minipass: ^3.0.0
-  checksum: d354ca0da834e3e79a1f0372d1cb86ba043a96b495624ed6360f7cd1f549e5685d9b292d4193a963497efcf4a4db8563e188cda565b119b8acc00852259e286c
-  languageName: node
-  linkType: hard
-
-"minipass-pipeline@npm:^1.2.2":
-  version: 1.2.3
-  resolution: "minipass-pipeline@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.3.tgz"
-  dependencies:
-    minipass: ^3.0.0
-  checksum: 618713f98ce51f40bb06528c6c845a77ce6c66a7c84f9f014495c0ae9ed1c55aaa24110df09a64b6bea763dc00542401b54de9960423a23860a71c14c7e46cb0
-  languageName: node
-  linkType: hard
-
-"minipass@npm:^3.0.0, minipass@npm:^3.1.1":
-  version: 3.1.3
-  resolution: "minipass@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz"
-  dependencies:
-    yallist: ^4.0.0
-  checksum: d12b95a845f15950bce7a77730c89400cf0c4f55e7066338da1d201ac148ece4ea8efa79e45a2c07c868c61bcaf9e996c4c3d6bf6b85c038ffa454521fc6ecd5
-  languageName: node
-  linkType: hard
-
-"minizlib@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "minizlib@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-2.1.0.tgz"
-  dependencies:
-    minipass: ^3.0.0
-    yallist: ^4.0.0
-  checksum: 665346bad842df6fbfd59aa24f49a12d7971e72d8ccd4078f6e3167ad6185b64dec37d6f2cc053fe778230dd54f2a55550454ffec00b4460e14c3f20fe83be6e
-  languageName: node
-  linkType: hard
-
-"mixin-deep@npm:^1.2.0":
-  version: 1.3.2
-  resolution: "mixin-deep@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz"
-  dependencies:
-    for-in: ^1.0.2
-    is-extendable: ^1.0.1
-  checksum: 68da98bc1af57ffccde7abdc86ac49feec263b73b3c483ab7e6e2fab9aa2b06fba075da9e86bcda725133c1d2a59e4c810a17b55865c67c827871c25d5713c33
-  languageName: node
-  linkType: hard
-
-"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3":
-  version: 0.5.5
-  resolution: "mkdirp@npm:0.5.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz"
-  dependencies:
-    minimist: ^1.2.5
-  bin:
-    mkdirp: bin/cmd.js
-  checksum: 9dd9792e891927b14ca02226dbe1daeb717b9517a001620d5e2658bbc72c5e4f06887b6cbcbb60595fa5a56e701073cf250f1ed69c1988a6b89faf9fd6a4d049
-  languageName: node
-  linkType: hard
-
-"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "mkdirp@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz"
-  bin:
-    mkdirp: bin/cmd.js
-  checksum: 1aa3a6a2d7514f094a91329ec09994f5d32d2955a4985ecbb3d86f2aaeafc4aa11521f98d606144c1d49cd9835004d9a73342709b8c692c92e59eacf37412468
-  languageName: node
-  linkType: hard
-
-"ms@npm:2.0.0":
-  version: 2.0.0
-  resolution: "ms@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz"
-  checksum: 1a230340cc7f322fbe916783d8c8d60455407c6b7fb7f901d6ee34eb272402302c5c7f070a97b8531245cbb4ca6a0a623f6a128d7e5a5440cefa2c669c0b35bb
-  languageName: node
-  linkType: hard
-
-"ms@npm:2.1.1":
-  version: 2.1.1
-  resolution: "ms@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz"
-  checksum: 81ad38c74df2473ce9fbed8bb71a00220c3d9e237ebd576306c9f6ca3221b251d602c7d199808944be1a3d7cda5883e72c77adb473734ba30f6e032165e05ebc
-  languageName: node
-  linkType: hard
-
-"ms@npm:2.1.2, ms@npm:^2.1.1":
-  version: 2.1.2
-  resolution: "ms@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz"
-  checksum: 9b65fb709bc30c0c07289dcbdb61ca032acbb9ea5698b55fa62e2cebb04c5953f1876a1f3f7f4bc2e91d4bf4d86003f3e207c3bc6ee2f716f99827e62389cd0e
-  languageName: node
-  linkType: hard
-
-"multicast-dns-service-types@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "multicast-dns-service-types@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns-service-types%2Fdownload%2Fmulticast-dns-service-types-1.1.0.tgz"
-  checksum: de10f16134855e368505a174ea0a25c60c74e34a73fd251d09d1d7cbdb70ee23c077b7eec9d4314ae51b1bc134775d490f4b7e2e29a4d9312bbd089456ac20b1
-  languageName: node
-  linkType: hard
-
-"multicast-dns@npm:^6.0.1":
-  version: 6.2.3
-  resolution: "multicast-dns@npm:6.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz"
-  dependencies:
-    dns-packet: ^1.3.1
-    thunky: ^1.0.2
-  bin:
-    multicast-dns: cli.js
-  checksum: 3a67f9a155f32a543e06ebc058cea63d8ee3122f652289cfc91ec24bf7450433a21a017640852e65f1548d4bcca2b8bd10c3d201e56f66945dc1f2554a7e7939
-  languageName: node
-  linkType: hard
-
-"nan@npm:^2.12.1":
-  version: 2.14.1
-  resolution: "nan@npm:2.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz"
-  dependencies:
-    node-gyp: latest
-  checksum: eeab7cf260362a578f0b8622716a76d19bc009722049c7274748644ce03b2aa38ca01b3ac730a0497fd2c1ec882a21a0592e800a903994ed4d32acd06bf7eba7
-  languageName: node
-  linkType: hard
-
-"nanoid@npm:^3.1.15":
-  version: 3.1.16
-  resolution: "nanoid@npm:3.1.16"
-  bin:
-    nanoid: bin/nanoid.cjs
-  checksum: 1903aa0a7602e881ef7015d4c8ccf8a2a92b45b1bd6c4bb9c1dd2119f41ebe08a44c9195ecf4c1fbaef147bd4d050e41adbcb747ec96d7d14c1f662e3ac52790
-  languageName: node
-  linkType: hard
-
-"nanomatch@npm:^1.2.9":
-  version: 1.2.13
-  resolution: "nanomatch@npm:1.2.13::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanomatch%2Fdownload%2Fnanomatch-1.2.13.tgz"
-  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
-  checksum: 2e1440c5705f0192b9d9b46bb682a1832052974dad359ed473b9f555abb5c55a08b3d5ba45d7d37c53a83f64b7f93866292824d3086a150ff7980e71874feb3b
-  languageName: node
-  linkType: hard
-
-"natural-compare@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "natural-compare@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnatural-compare%2Fdownload%2Fnatural-compare-1.4.0.tgz"
-  checksum: 2daf93d9bb516eddb06e2e80657a605af2e494d47c65d090ba43691aaffbc41f520840f1c9d3b7b641977af950217a4ab6ffb85bafcd5dfa8ba6fe4e68c43b53
-  languageName: node
-  linkType: hard
-
-"negotiator@npm:0.6.2":
-  version: 0.6.2
-  resolution: "negotiator@npm:0.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz"
-  checksum: 4b230bd15f0862d16c54ce0243fcfcf835ad59c8e58c467b4504dd28c9868cff71ff485b02cc575dc69dca819b58a1fadc9fb28403f45721f38a8fffde007d54
-  languageName: node
-  linkType: hard
-
-"neo-async@npm:^2.6.2":
-  version: 2.6.2
-  resolution: "neo-async@npm:2.6.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz"
-  checksum: 34a8f5309135be258a97082af810ea43700a3e0121e7b1ea31b3e22e2663d7c0d502cd949abb6d1ab8c11abfd04500ee61721ec5408b2d4bef8105241fd8a4c2
-  languageName: node
-  linkType: hard
-
-"nice-try@npm:^1.0.4":
-  version: 1.0.5
-  resolution: "nice-try@npm:1.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz"
-  checksum: 330f190bf68146a560008b661e1ddbb2eac667c16990b6bf791516d89cceb707ec67901ad647d2b32674bfa816b916489cead5c2fb6e96864c659573ab5aa3bb
-  languageName: node
-  linkType: hard
-
-"no-case@npm:^3.0.3":
-  version: 3.0.3
-  resolution: "no-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-3.0.3.tgz"
-  dependencies:
-    lower-case: ^2.0.1
-    tslib: ^1.10.0
-  checksum: 619e0bd00a3ef0fa6ad9442d32c88adcf47339c5b0d9bdfaaab19380709dad5ba71f865ae584531988ba85a6083e1f0ea0b851bcc49c67aee40a5100104e84b9
-  languageName: node
-  linkType: hard
-
-"node-forge@npm:0.9.0":
-  version: 0.9.0
-  resolution: "node-forge@npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz"
-  checksum: 901d6ab679072ad4b4174daed4d1ede43f01131456aba1918d89246ae37f73e40e053d9bf32ab3836e74e9e471c2637f4a6af337ab8c6a562faa3a385aac806c
-  languageName: node
-  linkType: hard
-
-"node-gyp@npm:latest":
-  version: 7.0.0
-  resolution: "node-gyp@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-7.0.0.tgz"
-  dependencies:
-    env-paths: ^2.2.0
-    glob: ^7.1.4
-    graceful-fs: ^4.2.3
-    nopt: ^4.0.3
-    npmlog: ^4.1.2
-    request: ^2.88.2
-    rimraf: ^2.6.3
-    semver: ^7.3.2
-    tar: ^6.0.1
-    which: ^2.0.2
-  bin:
-    node-gyp: bin/node-gyp.js
-  checksum: 60e91c374739d7d17f3a41d799543a28d06a3f2e622f70a92a244d186dd12d0df1320e95b7d44cf1d40e401bf8a72f359f94ea2df95fef3ab42eecaa87c62e36
-  languageName: node
-  linkType: hard
-
-"node-releases@npm:^1.1.58":
-  version: 1.1.59
-  resolution: "node-releases@npm:1.1.59::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz"
-  checksum: 35eb1c268b0214cb47f9a2303332c622b49ffc9c7522649a468b966564debf8b5f545843deca5a82cb4d8b8547c083aa3e9bf5a13e464809f9f91f9543d206a4
-  languageName: node
-  linkType: hard
-
-"node-releases@npm:^1.1.60":
-  version: 1.1.60
-  resolution: "node-releases@npm:1.1.60::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.60.tgz"
-  checksum: bed3480bd1d7a9c3ad0b4acf79eceabfb14c5ba3e5d48619c8ec1fb5197fb358c9d0c117e31c48d52b7dba75b71c1371c5e67d01f55b79cbd2d7b60ca30974d1
-  languageName: node
-  linkType: hard
-
-"node-releases@npm:^1.1.61":
-  version: 1.1.64
-  resolution: "node-releases@npm:1.1.64"
-  checksum: 09e85fd0eccee979c56c8582dac19a6f88fe4444f0ae0c2c55a7e70df10cf11530f76d3203150e9961fa59d0448cab406d450cef3bc4681f12c3edd070d68b36
-  languageName: node
-  linkType: hard
-
-"node.extend@npm:^2.0.0":
-  version: 2.0.2
-  resolution: "node.extend@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode.extend%2Fdownload%2Fnode.extend-2.0.2.tgz"
-  dependencies:
-    has: ^1.0.3
-    is: ^3.2.1
-  checksum: 750516f66b71b262e5cb39b53f96a5776ba859936a1e2116750cde0c1a304a226097bff3445686a27734b6a10f1df382bc134a817b2f2fbc695de61eec140933
-  languageName: node
-  linkType: hard
-
-"nopt@npm:^4.0.3":
-  version: 4.0.3
-  resolution: "nopt@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-4.0.3.tgz"
-  dependencies:
-    abbrev: 1
-    osenv: ^0.1.4
-  bin:
-    nopt: bin/nopt.js
-  checksum: bf7b8c15fd035bf1faa897ec83c3fe5a459beb51a09dfad9413429382139784c3f05e11847d2e5de7160a813c5c8c6cf74c34f22b483c08fdaf465586f293f49
-  languageName: node
-  linkType: hard
-
-"normalize-package-data@npm:^2.3.2":
-  version: 2.5.0
-  resolution: "normalize-package-data@npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz"
-  dependencies:
-    hosted-git-info: ^2.1.4
-    resolve: ^1.10.0
-    semver: 2 || 3 || 4 || 5
-    validate-npm-package-license: ^3.0.1
-  checksum: 97d4d6b061cab51425ddb05c38d126d7a1a2a6f2c9949bef2b5ad7ef19c005df12099ea442e4cb09190929b7770008f94f87b10342a66f739acf92a7ebb9d9f2
-  languageName: node
-  linkType: hard
-
-"normalize-path@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "normalize-path@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-2.1.1.tgz"
-  dependencies:
-    remove-trailing-separator: ^1.0.1
-  checksum: 9eb82b2f6abc1b99d820c36405d6b7a26a4cfa49d49d397eb2ad606b1295cb8e243b6071b18826907ae54a9a2b35373a83d827d843d19b76efcfa267d72cb301
-  languageName: node
-  linkType: hard
-
-"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
-  version: 3.0.0
-  resolution: "normalize-path@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz"
-  checksum: 215a701b471948884193628f3e38910353abf445306b519c42c2a30144b8beb8ca0a684da97bfc2ee11eb168c35c776d484274da4bd8f213d2b22f70579380ee
-  languageName: node
-  linkType: hard
-
-"normalize-range@npm:^0.1.2":
-  version: 0.1.2
-  resolution: "normalize-range@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-range%2Fdownload%2Fnormalize-range-0.1.2.tgz"
-  checksum: bca997d800d76b7954b36d394f44bbe65948eb4cca954b2e731cd81a7a5540725dcd237df7cb2006449e705c4803755658b8f23d89f9cc2eb5da464558baba69
-  languageName: node
-  linkType: hard
-
-"normalize-url@npm:^4.1.0":
-  version: 4.5.0
-  resolution: "normalize-url@npm:4.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.0.tgz"
-  checksum: 09794941dbe5c7b91caf6f3cd1ae167c27f6d09793e4a03601a68b62de7e8ee9e5de21a246130cdbab98b01481de292f9556d492444a527648f9cf1220e4b0df
-  languageName: node
-  linkType: hard
-
-"npm-run-path@npm:^2.0.0":
-  version: 2.0.2
-  resolution: "npm-run-path@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz"
-  dependencies:
-    path-key: ^2.0.0
-  checksum: 0a1bc9a1e0faa7e54a011929b830121d5da393f50cbe37c83f3ffd67781b6d176739ba6e8eab5d56faa05738a60f7eb50389673767db0dc887073932f80b9b60
-  languageName: node
-  linkType: hard
-
-"npm-run-path@npm:^4.0.0":
-  version: 4.0.1
-  resolution: "npm-run-path@npm:4.0.1"
-  dependencies:
-    path-key: ^3.0.0
-  checksum: 058fd068804f8c34fcef9393fc895d45400834c9f90bbafc57259f9fd47e8796712e4ad54524f0971b806260a118bf61ac37b0bf9f74e9e58c84bae780ae09e6
-  languageName: node
-  linkType: hard
-
-"npmlog@npm:^4.1.2":
-  version: 4.1.2
-  resolution: "npmlog@npm:4.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz"
-  dependencies:
-    are-we-there-yet: ~1.1.2
-    console-control-strings: ~1.1.0
-    gauge: ~2.7.3
-    set-blocking: ~2.0.0
-  checksum: 0cd63f127c1bbda403a112e83b11804aaee2b58b0bc581c3bde9b82e4d957c7ed0ad3bee499af706cdd3599bb93669d7cbbf29fb500407d35fe75687ac96e2c0
-  languageName: node
-  linkType: hard
-
-"nth-check@npm:~1.0.1":
-  version: 1.0.2
-  resolution: "nth-check@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz"
-  dependencies:
-    boolbase: ~1.0.0
-  checksum: 88a58b8b6289344749102019422705e8e6fa870d55e4bd4c71f860105ea5b8145ae71657f6edd6df953964081f52d65936a3eec4af1d9ee42122e42d293b2abe
-  languageName: node
-  linkType: hard
-
-"num2fraction@npm:^1.2.2":
-  version: 1.2.2
-  resolution: "num2fraction@npm:1.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnum2fraction%2Fdownload%2Fnum2fraction-1.2.2.tgz"
-  checksum: c9bb3e7c6d358cc8a6f354e0f5b56235845255465622f4d2eafec6bf5209dd3500133ab2888fbb444c997e29702e85b79ceef026ccc1c06a2971c2c1a93cee90
-  languageName: node
-  linkType: hard
-
-"number-is-nan@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "number-is-nan@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz"
-  checksum: 42251b2653a16f8b47639d93c3b646fff295a4582a6b3a2fc51a651d4511427c247629709063d19befbceb8a3db1a8e9f17016b3a207291e79e4bd1413032918
-  languageName: node
-  linkType: hard
-
-"oauth-sign@npm:~0.9.0":
-  version: 0.9.0
-  resolution: "oauth-sign@npm:0.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz"
-  checksum: af1ab60297c3a687d1d2de5c43c6453c4df6939de3e6114ada4a486ac51fa7ab1769f33000b94c0e8ffced5ae4c57c4f5d36b517792d83e9e9742578a728682e
-  languageName: node
-  linkType: hard
-
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "object-assign@npm:4.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz"
-  checksum: 66cf021898fc1b13ea573ea8635fbd5a76533f50cecbc2fcd5eee1e8029af41bcebe7023788b6d0e06cbe4401ecea075d972f78ec74467cdc571a0f1a4d1a081
-  languageName: node
-  linkType: hard
-
-"object-copy@npm:^0.1.0":
-  version: 0.1.0
-  resolution: "object-copy@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-copy%2Fdownload%2Fobject-copy-0.1.0.tgz"
-  dependencies:
-    copy-descriptor: ^0.1.0
-    define-property: ^0.2.5
-    kind-of: ^3.0.3
-  checksum: d91d46e54297cad0544f04e4dff4694f92aca9661f59ad7e803a1ba94a2bb24b38ca4fd59ea827d24c9bdc6f7148d5c838287ee4b2b9c5df9b445b1c0d7a066c
-  languageName: node
-  linkType: hard
-
-"object-inspect@npm:^1.7.0":
-  version: 1.8.0
-  resolution: "object-inspect@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz"
-  checksum: 4da23a188b3811d75fcd6e7916471465f94e4752159e064f9621040945d375dca1afa092a000a398267d81b4f40bf33cfdbe1e99eff98f1972155efe055f80c8
-  languageName: node
-  linkType: hard
-
-"object-inspect@npm:^1.8.0":
-  version: 1.8.0
-  resolution: "object-inspect@npm:1.8.0"
-  checksum: 4da23a188b3811d75fcd6e7916471465f94e4752159e064f9621040945d375dca1afa092a000a398267d81b4f40bf33cfdbe1e99eff98f1972155efe055f80c8
-  languageName: node
-  linkType: hard
-
-"object-is@npm:^1.0.1":
-  version: 1.1.2
-  resolution: "object-is@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.5
-  checksum: 9ea7df4475f250c968171fa142b6584bad4c65859af8cb50e06fa8168089ae47afb460776ab60fe5f3aea8ea3c97b30dd0b37d41e23106f2abcc7d6f982bec04
-  languageName: node
-  linkType: hard
-
-"object-keys@npm:^1.0.11, object-keys@npm:^1.0.12, object-keys@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "object-keys@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz"
-  checksum: 30d72d768b7f3f42144cee517b80e70c40cf39bb76f100557ffac42779613c591780135c54d8133894a78d2c0ae817e24a5891484722c6019a5cd5b58c745c66
-  languageName: node
-  linkType: hard
-
-"object-visit@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "object-visit@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-visit%2Fdownload%2Fobject-visit-1.0.1.tgz"
-  dependencies:
-    isobject: ^3.0.0
-  checksum: 8666727dbfb957676c0b093cde6d676ed6b847b234d98a4ed7f4d7f7e4b40c00af8067354d5c45052dc40c6830d68b68212c15c96dbcc286cdc96aca58faf548
-  languageName: node
-  linkType: hard
-
-"object.assign@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "object.assign@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.0.tgz"
-  dependencies:
-    define-properties: ^1.1.2
-    function-bind: ^1.1.1
-    has-symbols: ^1.0.0
-    object-keys: ^1.0.11
-  checksum: 92e20891ddf04d9974f7b178ae70d198727dcd638c8a5a422f07f730f40140c4fe02451cdc9c37e9f22392e5487b9162975003a9f20b16a87b9d13fe150cf62d
-  languageName: node
-  linkType: hard
-
-"object.assign@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "object.assign@npm:4.1.1"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.18.0-next.0
-    has-symbols: ^1.0.1
-    object-keys: ^1.1.1
-  checksum: 2038905bbf7c07313df831e83e40fc4eba783d2d680533ec47c546e562e939902db69c83fea9bd836204aa3e01e8db0faa412d4f649c9825235cc8e5c1166dd1
-  languageName: node
-  linkType: hard
-
-"object.entries@npm:^1.1.2":
-  version: 1.1.2
-  resolution: "object.entries@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.2.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.5
-    has: ^1.0.3
-  checksum: bcde47ee0396df8bc074e3194b74d3983e3da205321836f132cc55403f26cd06cd8d677492ca35697fa4d52419428fec2e01b60a96db1c22d21f1978d37db97d
-  languageName: node
-  linkType: hard
-
-"object.fromentries@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "object.fromentries@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.fromentries%2Fdownload%2Fobject.fromentries-2.0.2.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-    function-bind: ^1.1.1
-    has: ^1.0.3
-  checksum: 58fa9edab136a299e81828842e0c2dd12df1985025f13e451a2c5609d8b16e4c7ebd2c574691f3b6edffb44ada8d5d12aef3b060ce1a65660b65e3202a7897a1
-  languageName: node
-  linkType: hard
-
-"object.getownpropertydescriptors@npm:^2.0.3":
-  version: 2.1.0
-  resolution: "object.getownpropertydescriptors@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-  checksum: c33dcc3061b56ec4d9f6d30620a364a5218aba8f592662f5ce346fcf523eb0483bc865d3f52848e267217285d831ca0a3d85836787bef5f86ecfa29f77dc249e
-  languageName: node
-  linkType: hard
-
-"object.pick@npm:^1.3.0":
-  version: 1.3.0
-  resolution: "object.pick@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.pick%2Fdownload%2Fobject.pick-1.3.0.tgz"
-  dependencies:
-    isobject: ^3.0.1
-  checksum: e22d555d3bb73c665a5baa1da7789d3a98f557d8712a9bbe34dc59d4adbce9d390245815296025de5260b18794de647401a6b2ae1ba0ab854a6710e2958291f6
-  languageName: node
-  linkType: hard
-
-"object.values@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "object.values@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.1.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-    function-bind: ^1.1.1
-    has: ^1.0.3
-  checksum: 33e99ceb5cdb4c4b43372aa133ecb1d73d5cf73ebbbe9ec64f45cd39c87d0226ca88d6a354cd8b819fbde6b9ebbc7df1a6a093f91d2c951c51a07546f54fe33d
-  languageName: node
-  linkType: hard
-
-"obuf@npm:^1.0.0, obuf@npm:^1.1.2":
-  version: 1.1.2
-  resolution: "obuf@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fobuf%2Fdownload%2Fobuf-1.1.2.tgz"
-  checksum: aa741387b0f5dc2b8addec7cd0e05448d8b2892b6e76e167e18a5b90f0b85bd4c9be4c7be01a354dee3353f5c3367b08006adb06e0737d6a8f1b88618147715a
-  languageName: node
-  linkType: hard
-
-"on-finished@npm:~2.3.0":
-  version: 2.3.0
-  resolution: "on-finished@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz"
-  dependencies:
-    ee-first: 1.1.1
-  checksum: 362e64608287d31ffd96a15fb9305a410b3e4d07c86f277fae907e38af46bc6f5ff948de90eabb81dc5632ca7f9a290085acc5410c378053dfa9860451d97ee5
-  languageName: node
-  linkType: hard
-
-"on-headers@npm:~1.0.2":
-  version: 1.0.2
-  resolution: "on-headers@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-headers%2Fdownload%2Fon-headers-1.0.2.tgz"
-  checksum: 51e75c80755169e765aa76238722e5ad1623f62b13bbc23544ade20cdbb6950cf0e6aa91de35d02ec956f47dc072ee460d8eef82354e4abf8fa692885cb3f2d8
-  languageName: node
-  linkType: hard
-
-"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "once@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.4.0.tgz"
-  dependencies:
-    wrappy: 1
-  checksum: 57afc246536cf6494437f982b26475f22bee860f8b77ce8eb1543f42a8bffe04b2c66ddfea9a16cb25ccb80943f8ee4fc639367ef97b7a6a4f2672eb573963f5
-  languageName: node
-  linkType: hard
-
-"once@npm:~1.3.0":
-  version: 1.3.3
-  resolution: "once@npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fonce%2Fdownload%2Fonce-1.3.3.tgz"
-  dependencies:
-    wrappy: 1
-  checksum: c68086bafeee1e66c5913a79a9466dbdfca9f0f9c3217aae808a219eac7648f7b164da615028d04dd7642596f6d097e6ba2f4b1c97560ca26c7502dac2ad4859
-  languageName: node
-  linkType: hard
-
-"onetime@npm:^5.1.0":
-  version: 5.1.2
-  resolution: "onetime@npm:5.1.2"
-  dependencies:
-    mimic-fn: ^2.1.0
-  checksum: e425f6caeb20cf2598ffece94be5663932e34d074f1631b682b13d5f01cc1e0712a7dc711eff1706bb5a5aaab8a52e37bd5edcf560334e3222219d7e8b09c21c
-  languageName: node
-  linkType: hard
-
-"opener@npm:^1.5.1":
-  version: 1.5.1
-  resolution: "opener@npm:1.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.1.tgz"
-  bin:
-    opener: bin/opener-bin.js
-  checksum: 055a1efdc206e1c8ac37ca1d62e16de84c7f6ae48883ac1898f1b8e9e9b918979fe747d439b249975c707b911073072ddc933fa1993d8a7345b729393466fbbf
-  languageName: node
-  linkType: hard
-
-"opn@npm:^5.5.0":
-  version: 5.5.0
-  resolution: "opn@npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz"
-  dependencies:
-    is-wsl: ^1.1.0
-  checksum: 0ea3b6550fbbc530a57f958baf5d44253a435d67ad88b4af1df8b3a98693f7c70b71d72f29b09a02d15e94654ec3875aae8cf4fccbf8e4e326671a02f66058d3
-  languageName: node
-  linkType: hard
-
-"optionator@npm:^0.9.1":
-  version: 0.9.1
-  resolution: "optionator@npm:0.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz"
-  dependencies:
-    deep-is: ^0.1.3
-    fast-levenshtein: ^2.0.6
-    levn: ^0.4.1
-    prelude-ls: ^1.2.1
-    type-check: ^0.4.0
-    word-wrap: ^1.2.3
-  checksum: bdf5683f986d00e173e6034837b7b6a9e68c7e1a37d7684b240adf1758db9076cfb04c9f64be29327881bb06c5017afb8b65012c5f02d07b180e9f6f42595ffd
-  languageName: node
-  linkType: hard
-
-"original@npm:^1.0.0":
-  version: 1.0.2
-  resolution: "original@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Foriginal%2Fdownload%2Foriginal-1.0.2.tgz"
-  dependencies:
-    url-parse: ^1.4.3
-  checksum: 6918b9d4545917616aba3788ce3c8c47dc5bcc26b0a3dc7da68d9976ce4d09fd1172d249cbc8063ef3311ddfbc435ef7a48b753abc85f3b74e83cf0c8de9aae3
-  languageName: node
-  linkType: hard
-
-"os-homedir@npm:^1.0.0":
-  version: 1.0.2
-  resolution: "os-homedir@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-homedir%2Fdownload%2Fos-homedir-1.0.2.tgz"
-  checksum: 725256246b2cec353250ec46442e3cfa7bc96ef92285d448a90f12f4bbd78c1bf087051b2cef0382da572e1a9ebc8aa24bd0940a3bdc633c3e3012eef1dc6848
-  languageName: node
-  linkType: hard
-
-"os-tmpdir@npm:^1.0.0":
-  version: 1.0.2
-  resolution: "os-tmpdir@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-tmpdir%2Fdownload%2Fos-tmpdir-1.0.2.tgz"
-  checksum: ca158a3c2e48748adc7736cdbe4c593723f8ed8581d2aae2f2a30fdb9417d4ba14bed1cd487d47561898a7b1ece88bce69745e9ce0303e1dea9ea7d22d1f1082
-  languageName: node
-  linkType: hard
-
-"osenv@npm:^0.1.4":
-  version: 0.1.5
-  resolution: "osenv@npm:0.1.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fosenv%2Fdownload%2Fosenv-0.1.5.tgz"
-  dependencies:
-    os-homedir: ^1.0.0
-    os-tmpdir: ^1.0.0
-  checksum: 1c7462808c5ff0c2816b11f2f46265a98c395586058f98d73a6deac82955744484b277baedceeb962c419f3b75d0831a77ce7cf38b9e4f20729943ba79d72b08
-  languageName: node
-  linkType: hard
-
-"p-cancelable@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "p-cancelable@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-cancelable%2Fdownload%2Fp-cancelable-2.0.0.tgz"
-  checksum: 966065f056a116a1ca3b6c7064d4d27a65bc1740c25cc60729faa5deea385bbd0f2317aedabb8e64c0cfc3c6b2dafe7f3ea65c267373d6d9be1602af443b4f12
-  languageName: node
-  linkType: hard
-
-"p-finally@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "p-finally@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz"
-  checksum: 01f49b2d9c67573b3a1cb253cd9e1ecf5c912b6ba5de8824118bbc8d647bfa6296820b5a536e91ec68a54395d4e1c58de9a381ded3b688074fb446a8fe351931
-  languageName: node
-  linkType: hard
-
-"p-limit@npm:^1.1.0":
-  version: 1.3.0
-  resolution: "p-limit@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz"
-  dependencies:
-    p-try: ^1.0.0
-  checksum: 579cbd3d6c606058aa624c464e2cb3c4b56d04ed4cbafdb705633cbe62ba36d77ba2c4289023335ba382f4fbf32c15709465eea18a0e1547c5ebc4b887f2a7da
-  languageName: node
-  linkType: hard
-
-"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0":
-  version: 2.3.0
-  resolution: "p-limit@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz"
-  dependencies:
-    p-try: ^2.0.0
-  checksum: 5f20492a25c5f93fca2930dbbf41fa1bee46ef70eaa6b49ad1f7b963f309e599bc40507e0a3a531eee4bcd10fec4dd4a63291d0e3b2d84ac97d7403d43d271a9
-  languageName: node
-  linkType: hard
-
-"p-limit@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "p-limit@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-3.0.2.tgz"
-  dependencies:
-    p-try: ^2.0.0
-  checksum: 1eb23d6ea77709212bf8d7a98d36c4e8b5276ec791bf74f460c012fadf4580d136f40efafa25d4892a9327102866eafc79b441eed7be339b0da59da416ced600
-  languageName: node
-  linkType: hard
-
-"p-locate@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "p-locate@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-2.0.0.tgz"
-  dependencies:
-    p-limit: ^1.1.0
-  checksum: b6dabbd855fba9bfa74b77882f96d0eac6c25d9966e61ab0ed7bf3d19f2e3b766f290ded1aada1ac4ce2627217b00342cf7a1d36482bada59ba6789be412dad7
-  languageName: node
-  linkType: hard
-
-"p-locate@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "p-locate@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz"
-  dependencies:
-    p-limit: ^2.0.0
-  checksum: 3ee9e3ed0b1b543f8148ef0981d33013d82a21c338b117a2d15650456f8dc888c19eb8a98484e7e159276c3ad9219c3e2a00b63228cab46bf29aeaaae096b1d6
-  languageName: node
-  linkType: hard
-
-"p-locate@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "p-locate@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz"
-  dependencies:
-    p-limit: ^2.2.0
-  checksum: 57f9abef0b29f02ff88c0936a392c9a1fbdd08169e636e0d85b7407c108014d71578c0c6fe93fa49b5bf3857b20d6f16b96389e2b356f7f599d4d2150505844f
-  languageName: node
-  linkType: hard
-
-"p-map@npm:^2.0.0":
-  version: 2.1.0
-  resolution: "p-map@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-2.1.0.tgz"
-  checksum: 8557e841ed832a489aaee7d825b7bea73e0559c452578821f5af418f430a8455727ab8dd5b4318b6b6733096029cfa571aa0e8d21bdd2c213025f02f919f7a9a
-  languageName: node
-  linkType: hard
-
-"p-map@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "p-map@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz"
-  dependencies:
-    aggregate-error: ^3.0.0
-  checksum: d51e630d72b7c38bc9e396710e7a068f0b813fe4db6f4a2d1ce2972e7fa11142c763c3aa39bcfd77c0133688c1ebfdd9b38fa3ac4c6ada20b62df26239c5c0e4
-  languageName: node
-  linkType: hard
-
-"p-retry@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "p-retry@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz"
-  dependencies:
-    retry: ^0.12.0
-  checksum: 26c888de4e64e62e9b6112219fae2c2f45ddc2face5d6c7c98e1b8762bcd4a54bea4f50cdff275b2ee5ebb11b633bfb16f4dd473ecd4d07081385cb716e961cf
-  languageName: node
-  linkType: hard
-
-"p-try@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "p-try@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz"
-  checksum: 85739d77b3e9f6a52a8545f1adc53621fb5df4d6ef9b59a3f54f3f3159b45c4100d4e63128a1e790e9ff8ff8b86213ace314ff6d2d327c3edcceea18891baa42
-  languageName: node
-  linkType: hard
-
-"p-try@npm:^2.0.0":
-  version: 2.2.0
-  resolution: "p-try@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-try%2Fdownload%2Fp-try-2.2.0.tgz"
-  checksum: 20983f3765466c1ab617ed153cb53b70ac5df828d854a3334d185e20b37f436e9096f12bc1b7fc96d8908dc927a3685172d3d89e755774f57b7103460c54dcc5
-  languageName: node
-  linkType: hard
-
-"param-case@npm:^3.0.3":
-  version: 3.0.3
-  resolution: "param-case@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-3.0.3.tgz"
-  dependencies:
-    dot-case: ^3.0.3
-    tslib: ^1.10.0
-  checksum: ef57facfaf282f6c074e565e26738e7bb043882aea9a4a575b0568d74f003ab8a1c69555d81773d25413287f079a367aa26a9518b3d5b25f2f17b4952a647f40
-  languageName: node
-  linkType: hard
-
-"parent-module@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "parent-module@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz"
-  dependencies:
-    callsites: ^3.0.0
-  checksum: 58714b9699f8e84340aaf0781b7cbd82f1c357f6ce9c035c151d0e8c1e9b869c51b95b680882f0d21b4751e817a6c936d4bb2952a1a1d9d9fb27e5a84baec2aa
-  languageName: node
-  linkType: hard
-
-"parse-json@npm:^2.2.0":
-  version: 2.2.0
-  resolution: "parse-json@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz"
-  dependencies:
-    error-ex: ^1.2.0
-  checksum: 920582196a8edebb3d3c4623b2f057987218272b35ae4d2d310c00bc1bd7e89b87c79358d7e009d54f047ca2eea82eab8d7e1b14e1f7cbbb345ef29fcda29731
-  languageName: node
-  linkType: hard
-
-"parse-json@npm:^5.0.0":
-  version: 5.1.0
-  resolution: "parse-json@npm:5.1.0"
-  dependencies:
-    "@babel/code-frame": ^7.0.0
-    error-ex: ^1.3.1
-    json-parse-even-better-errors: ^2.3.0
-    lines-and-columns: ^1.1.6
-  checksum: 5e09955194d4ced3a7c8d2e41302834c1420e3709e06b16fa0d4bff575f054f7323cb4d4551fb6680d4c487184883ba20229de19edd5a52e1c5920148778d8cc
-  languageName: node
-  linkType: hard
-
-"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
-  version: 1.3.3
-  resolution: "parseurl@npm:1.3.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz"
-  checksum: 52c9e86cb58e38b28f1a50a6354d16648974ab7a2b91b209f97102840471de8adf524427774af6d5bc482fb7c0a6af6ba08ab37de9a1a7ae389ebe074015914b
-  languageName: node
-  linkType: hard
-
-"pascal-case@npm:^3.1.1":
-  version: 3.1.1
-  resolution: "pascal-case@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascal-case%2Fdownload%2Fpascal-case-3.1.1.tgz"
-  dependencies:
-    no-case: ^3.0.3
-    tslib: ^1.10.0
-  checksum: 56f66aea7f8c06f3e8b9e70c48c3019dcd8c3e5f218be905b4aba84c5880baf58dcb517bbf1becac3628e17c09b6c3bd35428a9e519343e5f04e50dd0d17c5f5
-  languageName: node
-  linkType: hard
-
-"pascalcase@npm:^0.1.1":
-  version: 0.1.1
-  resolution: "pascalcase@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpascalcase%2Fdownload%2Fpascalcase-0.1.1.tgz"
-  checksum: 268a9dbf9cd934fcd0ba02733b7d6176834b13a608bbcd295550636b3c6371a6047875175b457e705b283e81ec171884c9cd86d1fd6c49f70f66fbc3783dc0c1
-  languageName: node
-  linkType: hard
-
-"path-dirname@npm:^1.0.0":
-  version: 1.0.2
-  resolution: "path-dirname@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-dirname%2Fdownload%2Fpath-dirname-1.0.2.tgz"
-  checksum: 4af73745fd97680c95b356b88450cd4c21d6825d0580620331382a6c910b76b3ced4aa2c4ddc2953d938bd758906b3d3aa2f56a2f601ec52763ed2cbbfc0106b
-  languageName: node
-  linkType: hard
-
-"path-exists@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "path-exists@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-3.0.0.tgz"
-  checksum: 09683e92bafb5657838217cce04e4f2f0530c274bc357c995c3231461030566e9f322b9a8bcc1ea810996e250d9a293ca36dd78dbdd6bfbee42e85a94772d6d5
-  languageName: node
-  linkType: hard
-
-"path-exists@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "path-exists@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-exists%2Fdownload%2Fpath-exists-4.0.0.tgz"
-  checksum: 6ab15000c5bea4f3e6e6b651983276e27ee42907ea29f5bd68f0d5c425c22f1664ab53c355099723f59b0bfd31aa52d29ea499e1843bf62543e045698f4c77b2
-  languageName: node
-  linkType: hard
-
-"path-is-absolute@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "path-is-absolute@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-absolute%2Fdownload%2Fpath-is-absolute-1.0.1.tgz"
-  checksum: 907e1e3e6ac0aef6e65adffd75b3892191d76a5b94c5cf26b43667c4240531d11872ca6979c209b2e5e1609f7f579d02f64ba9936b48bb59d36cc529f0d965ed
-  languageName: node
-  linkType: hard
-
-"path-is-inside@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "path-is-inside@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-is-inside%2Fdownload%2Fpath-is-inside-1.0.2.tgz"
-  checksum: 9c1841199d18398ee5f6d79f57eaa57f8eb85743353ea97c6d933423f246f044575a10c1847c638c36440b050aef82665b9cb4fc60950866cd239f3d51835ef4
-  languageName: node
-  linkType: hard
-
-"path-key@npm:^2.0.0, path-key@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "path-key@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz"
-  checksum: 7dc807a2baa11d6bc0fca72148a0a0ca69ab73d98fbe42e10d22764d1ef547767f2b4ff827c6bc66e733388cd8d54297a45a39499825b9fdfd18959202384029
-  languageName: node
-  linkType: hard
-
-"path-key@npm:^3.0.0":
-  version: 3.1.1
-  resolution: "path-key@npm:3.1.1"
-  checksum: e44aa3ca9faed0440994883050143b1214fffb907bf3a7bbdba15dc84f60821617c0d84e4cc74e1d84e9274003da50427f54d739b0b47636bcbaff4ec71b9b86
-  languageName: node
-  linkType: hard
-
-"path-key@npm:^3.1.0":
-  version: 3.1.1
-  resolution: "path-key@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz"
-  checksum: e44aa3ca9faed0440994883050143b1214fffb907bf3a7bbdba15dc84f60821617c0d84e4cc74e1d84e9274003da50427f54d739b0b47636bcbaff4ec71b9b86
-  languageName: node
-  linkType: hard
-
-"path-parse@npm:^1.0.6":
-  version: 1.0.6
-  resolution: "path-parse@npm:1.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.6.tgz"
-  checksum: 2eee4b93fb3ae13600e3fca18390d9933bbbcf725a624f6b8df020d87515a74872ff6c58072190d6dc75a5584a683dc6ae5c385ad4e4f4efb6e66af040d56c67
-  languageName: node
-  linkType: hard
-
-"path-to-regexp@npm:0.1.7":
-  version: 0.1.7
-  resolution: "path-to-regexp@npm:0.1.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz"
-  checksum: 342fdb0ca48415d6eccdbe6d4180fd0fa4786ccc96ab3f74fcdf7acfc99e075af25e6077c8086c341dcfb4f5f84401ecd21e6cd7b24e0c3b556fb7ffb2570da7
-  languageName: node
-  linkType: hard
-
-"path-to-regexp@npm:^1.7.0":
-  version: 1.8.0
-  resolution: "path-to-regexp@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-1.8.0.tgz"
-  dependencies:
-    isarray: 0.0.1
-  checksum: 4c0d9aaf3fc55db0b2d9aab379856acbf4e437f2252bbc2a178aec9f707c8457f8084ea6243a80e0b37c8c1c20d23e918cd43e772a7e71142a8ad67af699686b
-  languageName: node
-  linkType: hard
-
-"path-type@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "path-type@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-2.0.0.tgz"
-  dependencies:
-    pify: ^2.0.0
-  checksum: d028f828dffe48a0062dc4370d5118a0c45f5fb075b013a1dfb13eadd1426eba0c8c2a13fa78f19fc4fd8771ef2012e9d062f8f970c8e56df36d4fbbe5073b26
-  languageName: node
-  linkType: hard
-
-"path-type@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "path-type@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz"
-  checksum: ef5835f2eb47e4d06004c7ec7bd51175c0455eaecd5ee99a9774bca5ef43242616e25b44ccc0ba86a0bf42b9f197550fcc0dfa7580e5ff9dca53c035e9bd86a9
-  languageName: node
-  linkType: hard
-
-"pepjs@npm:^0.5.2":
-  version: 0.5.2
-  resolution: "pepjs@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpepjs%2Fdownload%2Fpepjs-0.5.2.tgz"
-  checksum: bc44db87f7ed864c98f7493669c0e14d509642777f03461041f1fb87acbff04d79954c5ae57afd4d82d23625b3f283e31b084d90753f5dacee2feddb274c7f4f
-  languageName: node
-  linkType: hard
-
-"performance-now@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "performance-now@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fperformance-now%2Fdownload%2Fperformance-now-2.1.0.tgz"
-  checksum: bb4ebed0b03d6c3ad3ae4eddd1182c895d385cff9096af441c19c130aaae3ea70229438ebc3297dfc52c86022f6becf177a810050823d01bf5280779cd2de624
-  languageName: node
-  linkType: hard
-
-"picomatch@npm:^2.0.4, picomatch@npm:^2.0.5, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2":
-  version: 2.2.2
-  resolution: "picomatch@npm:2.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz"
-  checksum: 20fa75e0a58b39d83425b3db68744d5f6f361fd4fd66ec7745d884036d502abba0d553a637703af79939b844164b13e60eea339ccb043d7fbd74c3da2592b864
-  languageName: node
-  linkType: hard
-
-"pify@npm:^2.0.0":
-  version: 2.3.0
-  resolution: "pify@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz"
-  checksum: d5758aa570bbd5969c62b5f745065006827ef4859b32af302e3df2bb5978e6c1e50c2360d7ffefa102e451084f4530115c84570c185ba5153ee9871c977fe278
-  languageName: node
-  linkType: hard
-
-"pify@npm:^4.0.1":
-  version: 4.0.1
-  resolution: "pify@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz"
-  checksum: 786486a8c94a7e1980ea56c59dcc05ebf0793740b71df9b9f273e48032e6301c5ecc5cc237c5a9ff45b13db27678b4d71aa37a2777bc11473c1310718b648e98
-  languageName: node
-  linkType: hard
-
-"pinkie-promise@npm:^2.0.0":
-  version: 2.0.1
-  resolution: "pinkie-promise@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie-promise%2Fdownload%2Fpinkie-promise-2.0.1.tgz"
-  dependencies:
-    pinkie: ^2.0.0
-  checksum: 1e32e05ffdfb691b04a42d05d5452698853099efe1bab70bfa538e9a793e609b66cc59180cc5fc2158062a2fc5991c9c268a82b2b655247aa005020167e31d75
-  languageName: node
-  linkType: hard
-
-"pinkie@npm:^2.0.0":
-  version: 2.0.4
-  resolution: "pinkie@npm:2.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpinkie%2Fdownload%2Fpinkie-2.0.4.tgz"
-  checksum: 2cb484c9da47b2f420fddffe7cbfeac950106a848343d147c2b2668d12b71aa3d09297bfe37ec32539a27c6dc7db414414f5ee166d6b2ca0d95f6dfe9dde60d7
-  languageName: node
-  linkType: hard
-
-"pkg-dir@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "pkg-dir@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz"
-  dependencies:
-    find-up: ^2.1.0
-  checksum: f8ae3a151714c61283aeb24385b10355a238732fab822a560145c670c21350da2024f01918231222bcdfce53ec5d69056681be2c2cffe3f3a06e462b9ef2ac29
-  languageName: node
-  linkType: hard
-
-"pkg-dir@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "pkg-dir@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz"
-  dependencies:
-    find-up: ^3.0.0
-  checksum: f29a7d0134ded2c5fb71eb9439809a415d4b79bd4648581486361a83e0dcca392739603de268410c154f44c60449f3e0855bda65bfb3256f0726a88e91699d8f
-  languageName: node
-  linkType: hard
-
-"pkg-dir@npm:^4.1.0":
-  version: 4.2.0
-  resolution: "pkg-dir@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz"
-  dependencies:
-    find-up: ^4.0.0
-  checksum: 1956ebf3cf5cc36a5d20e93851fcadd5a786774eb08667078561e72e0ab8ace91fc36a028d5305f0bfe7c89f9bf51886e2a3c8cb2c2620accfa3feb8da3c256b
-  languageName: node
-  linkType: hard
-
-"pkg-dir@npm:^4.2.0":
-  version: 4.2.0
-  resolution: "pkg-dir@npm:4.2.0"
-  dependencies:
-    find-up: ^4.0.0
-  checksum: 1956ebf3cf5cc36a5d20e93851fcadd5a786774eb08667078561e72e0ab8ace91fc36a028d5305f0bfe7c89f9bf51886e2a3c8cb2c2620accfa3feb8da3c256b
-  languageName: node
-  linkType: hard
-
-"pluralize@npm:^7.0.0":
-  version: 7.0.0
-  resolution: "pluralize@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpluralize%2Fdownload%2Fpluralize-7.0.0.tgz"
-  checksum: d35d8aeda1eb2f81123131e76ed0f2f48d681abfa4c46e4c6fdd6dca622650c8bd531aa0c5a3c7f779bd9660d08ceb51660e1f55def4bd14328ecfa76fe69962
-  languageName: node
-  linkType: hard
-
-"portfinder@npm:^1.0.25, portfinder@npm:^1.0.26":
-  version: 1.0.27
-  resolution: "portfinder@npm:1.0.27::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz"
-  dependencies:
-    async: ^2.6.2
-    debug: ^3.1.1
-    mkdirp: ^0.5.1
-  checksum: dfecedbaf8eb32d0b617a7d4bf318eb832821e6870155de089213173f0dd3cc872cf8ba8c3f92c153224c58d00b803e02ff71ee90dd1d857d68ea29f20b2ffdb
-  languageName: node
-  linkType: hard
-
-"posix-character-classes@npm:^0.1.0":
-  version: 0.1.1
-  resolution: "posix-character-classes@npm:0.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fposix-character-classes%2Fdownload%2Fposix-character-classes-0.1.1.tgz"
-  checksum: 984f83c2d4dec5abb9a6ac2b4a184132a58c4af9ce25704bfda2be6e8139335673c45d959ef6ffea3756dc88d3a0cb27c745a84d875ae5142b76e661a37a5f0e
-  languageName: node
-  linkType: hard
-
-"postcss-attribute-case-insensitive@npm:^4.0.1":
-  version: 4.0.2
-  resolution: "postcss-attribute-case-insensitive@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-attribute-case-insensitive%2Fdownload%2Fpostcss-attribute-case-insensitive-4.0.2.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-selector-parser: ^6.0.2
-  checksum: 0de786320f06795664431b32ed65bb29aa895140b75504e95d5e94ff89b713fba365bf319ac82a02958c70b923a778a64e4f07d5444a953fc0f1ced544fbcae5
-  languageName: node
-  linkType: hard
-
-"postcss-color-functional-notation@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "postcss-color-functional-notation@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-functional-notation%2Fdownload%2Fpostcss-color-functional-notation-2.0.1.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: 8f83bde47bc0d7d1b97ed1c8b93892698b26735b8dcd9bcac8322e362d544af39c85eea28a7d3a37ce16daaec793ae2b6c01da41541675d67fd83bded691b6bd
-  languageName: node
-  linkType: hard
-
-"postcss-color-gray@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "postcss-color-gray@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-gray%2Fdownload%2Fpostcss-color-gray-5.0.0.tgz"
-  dependencies:
-    "@csstools/convert-colors": ^1.4.0
-    postcss: ^7.0.5
-    postcss-values-parser: ^2.0.0
-  checksum: 99c885049caf46b0bf2fe46d4c43c3c5ddf137c3383adf0fe355e17ffee5321c519e962fdbf2b9d0276eb33109864375baca28032a08ce8dad82db629954a7e8
-  languageName: node
-  linkType: hard
-
-"postcss-color-hex-alpha@npm:^5.0.3":
-  version: 5.0.3
-  resolution: "postcss-color-hex-alpha@npm:5.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-hex-alpha%2Fdownload%2Fpostcss-color-hex-alpha-5.0.3.tgz"
-  dependencies:
-    postcss: ^7.0.14
-    postcss-values-parser: ^2.0.1
-  checksum: 99e8a9457ce0aa090a4d7e5227bae484a845ff706875d9acbf0304a8f4d669a440d2edead50cd9096df516eae7fa603f4b61e35d33989f2b3ced4f2e8bea6113
-  languageName: node
-  linkType: hard
-
-"postcss-color-mod-function@npm:^3.0.3":
-  version: 3.0.3
-  resolution: "postcss-color-mod-function@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-mod-function%2Fdownload%2Fpostcss-color-mod-function-3.0.3.tgz"
-  dependencies:
-    "@csstools/convert-colors": ^1.4.0
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: dd484df73c5623bd8cb27d9f465b858f7334ec739e3914fe000b823130c269af105caec81fc0b3280b377954b91ee6606769ebde78833bf9b0b786574baad75e
-  languageName: node
-  linkType: hard
-
-"postcss-color-rebeccapurple@npm:^4.0.1":
-  version: 4.0.1
-  resolution: "postcss-color-rebeccapurple@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: a6fcc16f2a89ecd5a8258a4d24122e49a58b63bb657fcfaef73c36bd27d766c28a36c895667901afcfaa283def229042306245fab11ea81e29d3d7016684e1a8
-  languageName: node
-  linkType: hard
-
-"postcss-custom-media@npm:^7.0.8":
-  version: 7.0.8
-  resolution: "postcss-custom-media@npm:7.0.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-media%2Fdownload%2Fpostcss-custom-media-7.0.8.tgz"
-  dependencies:
-    postcss: ^7.0.14
-  checksum: f0ac879d17f61225f1e086854720a63a2950d59f115ac66ed440873b69cc7b20f3941bf4667954bd8aa311ec959a98b8044a69c4674364e9bb9452097357b606
-  languageName: node
-  linkType: hard
-
-"postcss-custom-properties@npm:^8.0.11":
-  version: 8.0.11
-  resolution: "postcss-custom-properties@npm:8.0.11::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-properties%2Fdownload%2Fpostcss-custom-properties-8.0.11.tgz"
-  dependencies:
-    postcss: ^7.0.17
-    postcss-values-parser: ^2.0.1
-  checksum: 2d3c11d4c9d29e80428e2a0f64dacb6f144e97c57a2175f6971588657f07726954414c493a60ba09043fe67be23cc2ebf3ef8b56d93d4d945a49ed9807d1366f
-  languageName: node
-  linkType: hard
-
-"postcss-custom-selectors@npm:^5.1.2":
-  version: 5.1.2
-  resolution: "postcss-custom-selectors@npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-custom-selectors%2Fdownload%2Fpostcss-custom-selectors-5.1.2.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-selector-parser: ^5.0.0-rc.3
-  checksum: 7d0d5f7751e54b40726d51196ba5569d18488d25ef7b1837ec26d5f32909d3cb4850edd527d70d1a141b7d81aeeed87ca00037f01e318b43fde92e72bb9fa141
-  languageName: node
-  linkType: hard
-
-"postcss-dir-pseudo-class@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "postcss-dir-pseudo-class@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-dir-pseudo-class%2Fdownload%2Fpostcss-dir-pseudo-class-5.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-selector-parser: ^5.0.0-rc.3
-  checksum: fc4f686058e7e973df5699d59e4532b8c124fbd6a4a1f9f40a92fa4d599b8212e336915f540b556278c696a0cc67d06cddfca0b5bdbd527e761c88c9d97f68b4
-  languageName: node
-  linkType: hard
-
-"postcss-double-position-gradients@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "postcss-double-position-gradients@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-double-position-gradients%2Fdownload%2Fpostcss-double-position-gradients-1.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.5
-    postcss-values-parser: ^2.0.0
-  checksum: 151194816535419a9f90f837bdc872ac5a3972e4d409b0c601fcd0fb069d4bdae51955a5b92f7192102c5b30d846f91d77e1182402df42de9ba5379dd228b6d9
-  languageName: node
-  linkType: hard
-
-"postcss-env-function@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "postcss-env-function@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-env-function%2Fdownload%2Fpostcss-env-function-2.0.2.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: 1cba45f90af655de776ed51a3672995130e5c9c3eab59a8bfa062e4e8bedce03faf63900fd0da69f701a2ab4c4bcf61698535526bf8996ab16920a16c2186426
-  languageName: node
-  linkType: hard
-
-"postcss-focus-visible@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-focus-visible@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-visible%2Fdownload%2Fpostcss-focus-visible-4.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: df9f0b029cd4770b5f7e803e9cd098a36dc8e06415adc735eb87da07d459e1704ce972f7db4e2674e9b01e45add3dd0689a8628b6784c7a22833576025ca9b60
-  languageName: node
-  linkType: hard
-
-"postcss-focus-within@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "postcss-focus-within@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-focus-within%2Fdownload%2Fpostcss-focus-within-3.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: 9339299c411a3707309f1eb91919564be2f698c96920b3d93ab81ad6737318a30f2b383780682c173647b76392c11eba446746973e98213379f1f6ce4f522c88
-  languageName: node
-  linkType: hard
-
-"postcss-font-variant@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-font-variant@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-font-variant%2Fdownload%2Fpostcss-font-variant-4.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: fe9f8f01240df7144c4395571724815e270989d1dfe969bcf1a86a7a07fb9fb26f1e1d6ab784f8ef4234dce91c40f4cb62a3865835240fcc2aad92b27f1aadf9
-  languageName: node
-  linkType: hard
-
-"postcss-gap-properties@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "postcss-gap-properties@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-gap-properties%2Fdownload%2Fpostcss-gap-properties-2.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: fa8be8b253cd479f5e3c050796f6250c27e7cce69965535c694ad6093f21adcf83e90bbb4b63c472628d42d1089d43bf9aeac8df4b4d29709f78d4b49dc29fb2
-  languageName: node
-  linkType: hard
-
-"postcss-image-set-function@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "postcss-image-set-function@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-image-set-function%2Fdownload%2Fpostcss-image-set-function-3.0.1.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: e5612a60755963cd8270c8d793fcc246ec02e2387d5e8faf8ee4e871b65aea3625ebf7d3382db826e8ed44b0922d3f53a9a3b317fe4187e837ae045d6721eb49
-  languageName: node
-  linkType: hard
-
-"postcss-initial@npm:^3.0.0":
-  version: 3.0.2
-  resolution: "postcss-initial@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz"
-  dependencies:
-    lodash.template: ^4.5.0
-    postcss: ^7.0.2
-  checksum: ec01ff4da60e616240bb7409ab4edd778fc94a1a310bc118125d495f6c4f4406ae323b2a83fd49e3e086bf3e270e4121776a9c7e0de7b84df0cc69a617535bfe
-  languageName: node
-  linkType: hard
-
-"postcss-lab-function@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "postcss-lab-function@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-lab-function%2Fdownload%2Fpostcss-lab-function-2.0.1.tgz"
-  dependencies:
-    "@csstools/convert-colors": ^1.4.0
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: 034195cfd91b0f817ccbb1dc2ed6d7c75134ceacaebb270ee7f5a78e110bc753af9e3235a58614b32961f6e8781151206ee8703221b5d75b3e2ccdff7f261dea
-  languageName: node
-  linkType: hard
-
-"postcss-loader@npm:^4.0.4":
-  version: 4.0.4
-  resolution: "postcss-loader@npm:4.0.4"
-  dependencies:
-    cosmiconfig: ^7.0.0
-    klona: ^2.0.4
-    loader-utils: ^2.0.0
-    schema-utils: ^3.0.0
-    semver: ^7.3.2
-  peerDependencies:
-    postcss: ^7.0.0 || ^8.0.1
-    webpack: ^4.0.0 || ^5.0.0
-  checksum: f82028a03da25789d684dc0c9a770954c8ff11bfcc67cc1a6f928e66d04bab7a2349ac19c5205a969feaf766e5d56429b9cc8ec7bfe101b413219a443ddb18b7
-  languageName: node
-  linkType: hard
-
-"postcss-logical@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "postcss-logical@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-logical%2Fdownload%2Fpostcss-logical-3.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: fdd9f0519bf3a2cc283991b5f31b45f44eac4803af605f4dac4ccdb7379a4362a4f89b1c3303ad511c68d08ca005e32ffc58768aadd8a1f925dfda78c774a07d
-  languageName: node
-  linkType: hard
-
-"postcss-media-minmax@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-media-minmax@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-media-minmax%2Fdownload%2Fpostcss-media-minmax-4.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: 9b4953f4a5ec61c2d451b06a7e475515b128955404750270fdfd4d84ab3c2cf9a6573e33617d0036278855e04782d09623d2391f056b18dc87cc71f2df62c4b7
-  languageName: node
-  linkType: hard
-
-"postcss-modules-extract-imports@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "postcss-modules-extract-imports@npm:3.0.0"
-  peerDependencies:
-    postcss: ^8.1.0
-  checksum: 874b94fd94f6e44e27f7a08814b972c472bcf21db708640f09b8d5900ce9ef6c8aa3291bc54be0526ba07efee5da0322ea01ed0deecd831e80ba5bd5de0e784e
-  languageName: node
-  linkType: hard
-
-"postcss-modules-local-by-default@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-modules-local-by-default@npm:4.0.0"
-  dependencies:
-    icss-utils: ^5.0.0
-    postcss-selector-parser: ^6.0.2
-    postcss-value-parser: ^4.1.0
-  peerDependencies:
-    postcss: ^8.1.0
-  checksum: c0331dbc56cb37174ad5d9cf84c71fd5787a4f0241fafaade870cb6382abdb0e3db233e9e0eb86fc000a7399006fa360391d97341d4ac0f21e4918ad01892cb9
-  languageName: node
-  linkType: hard
-
-"postcss-modules-scope@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "postcss-modules-scope@npm:3.0.0"
-  dependencies:
-    postcss-selector-parser: ^6.0.4
-  peerDependencies:
-    postcss: ^8.1.0
-  checksum: 0b30c7bd28433880baf35f9e076f79fee98d9fe2544d118618429dacedd0a26d26145efd238c72f2c68f936b35729fe45e193e088f7d16fce72dd40bfa6afb69
-  languageName: node
-  linkType: hard
-
-"postcss-modules-values@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-modules-values@npm:4.0.0"
-  dependencies:
-    icss-utils: ^5.0.0
-  peerDependencies:
-    postcss: ^8.1.0
-  checksum: 43fa6db334e38acb9b835578dccab45a5e9e5951dcbb20647348cdc0ad35ed362e36833facd8dab753fa83ffbecd26d2b3f9d4f06a2f9ae4c5c39abf9a0191e0
-  languageName: node
-  linkType: hard
-
-"postcss-nesting@npm:^7.0.0":
-  version: 7.0.1
-  resolution: "postcss-nesting@npm:7.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: ffc3c12f831b83f3276be86d6cf4d7e897146cbd7d40c01765ff8b25bcc238e9503741a63acd157e8a54df588f8a5a6d46aa6c2c27ab242985503b4d2208ddab
-  languageName: node
-  linkType: hard
-
-"postcss-overflow-shorthand@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "postcss-overflow-shorthand@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-overflow-shorthand%2Fdownload%2Fpostcss-overflow-shorthand-2.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: 4e47823ea03539ad6aefed9ccd5e6e47d364310af7ac38007cfe5ac3ae5bb3cbcfe92f6edc02b8be60f65af4b7f4f349f284df089836b2f463022708a0355b9a
-  languageName: node
-  linkType: hard
-
-"postcss-page-break@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "postcss-page-break@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-page-break%2Fdownload%2Fpostcss-page-break-2.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: 6e8fcbad5252bbb61df1c89ebaa43c5d8c15a73002bb3d93de4d2d1d805d47d90291dc9a7fc785ef7a82f563c7fd33c24761e5253326639402f875f25e161d65
-  languageName: node
-  linkType: hard
-
-"postcss-place@npm:^4.0.1":
-  version: 4.0.1
-  resolution: "postcss-place@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-place%2Fdownload%2Fpostcss-place-4.0.1.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-values-parser: ^2.0.0
-  checksum: db35406cb7166d9883a8875897ec21fefe8b23e036b7ecd4dca9ed374e7deefecc983c9dacf60ccff20e0a5b8e11c6dee33216527f840943381a11aaaa41c453
-  languageName: node
-  linkType: hard
-
-"postcss-preset-env@npm:^6.7.0":
-  version: 6.7.0
-  resolution: "postcss-preset-env@npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz"
-  dependencies:
-    autoprefixer: ^9.6.1
-    browserslist: ^4.6.4
-    caniuse-lite: ^1.0.30000981
-    css-blank-pseudo: ^0.1.4
-    css-has-pseudo: ^0.10.0
-    css-prefers-color-scheme: ^3.1.1
-    cssdb: ^4.4.0
-    postcss: ^7.0.17
-    postcss-attribute-case-insensitive: ^4.0.1
-    postcss-color-functional-notation: ^2.0.1
-    postcss-color-gray: ^5.0.0
-    postcss-color-hex-alpha: ^5.0.3
-    postcss-color-mod-function: ^3.0.3
-    postcss-color-rebeccapurple: ^4.0.1
-    postcss-custom-media: ^7.0.8
-    postcss-custom-properties: ^8.0.11
-    postcss-custom-selectors: ^5.1.2
-    postcss-dir-pseudo-class: ^5.0.0
-    postcss-double-position-gradients: ^1.0.0
-    postcss-env-function: ^2.0.2
-    postcss-focus-visible: ^4.0.0
-    postcss-focus-within: ^3.0.0
-    postcss-font-variant: ^4.0.0
-    postcss-gap-properties: ^2.0.0
-    postcss-image-set-function: ^3.0.1
-    postcss-initial: ^3.0.0
-    postcss-lab-function: ^2.0.1
-    postcss-logical: ^3.0.0
-    postcss-media-minmax: ^4.0.0
-    postcss-nesting: ^7.0.0
-    postcss-overflow-shorthand: ^2.0.0
-    postcss-page-break: ^2.0.0
-    postcss-place: ^4.0.1
-    postcss-pseudo-class-any-link: ^6.0.0
-    postcss-replace-overflow-wrap: ^3.0.0
-    postcss-selector-matches: ^4.0.0
-    postcss-selector-not: ^4.0.0
-  checksum: 2867000f4da242b1b966b9fdb93962d6ba29943a99fee6809504469420a57b8021dbe468a4f0e188d0f6a0582894c312c45774d80fba730fb9da3c2d0acb81a7
-  languageName: node
-  linkType: hard
-
-"postcss-pseudo-class-any-link@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "postcss-pseudo-class-any-link@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pseudo-class-any-link%2Fdownload%2Fpostcss-pseudo-class-any-link-6.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-    postcss-selector-parser: ^5.0.0-rc.3
-  checksum: ee673573fb1c7f47788534599bf991bf33f364583432632d1d6f811fce0be081975e27850f51ec8c928fa6cb03998ab6c0af1a85d7627a384b7fe6da104dc23f
-  languageName: node
-  linkType: hard
-
-"postcss-replace-overflow-wrap@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "postcss-replace-overflow-wrap@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-replace-overflow-wrap%2Fdownload%2Fpostcss-replace-overflow-wrap-3.0.0.tgz"
-  dependencies:
-    postcss: ^7.0.2
-  checksum: b9b6f604b80b81b62206a4aad0743ebdad3afbac0e1e906f9223573eb8e9eaf20cde7f7f55aa3e8fd2a7075a67386f85d74f04a029bb6ad8729463401239ac36
-  languageName: node
-  linkType: hard
-
-"postcss-selector-matches@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-selector-matches@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-matches%2Fdownload%2Fpostcss-selector-matches-4.0.0.tgz"
-  dependencies:
-    balanced-match: ^1.0.0
-    postcss: ^7.0.2
-  checksum: 8445f6453b60a94c657fc56c7673a46abbaa91ca270d97e53a8555ac0b9cc5ab75a9a88fa9163a5b0cbe9b0214d1578722f18c8bcab4d2c1ded5c8b6da6e5d53
-  languageName: node
-  linkType: hard
-
-"postcss-selector-not@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "postcss-selector-not@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-not%2Fdownload%2Fpostcss-selector-not-4.0.0.tgz"
-  dependencies:
-    balanced-match: ^1.0.0
-    postcss: ^7.0.2
-  checksum: 7b3139dbe441b20f3ce45bc0682829423ade9c63fc73baade595d521282ac8710a0b316082fa43561c3c2654bb6c1e17f2b8d350d04177696531c4335fe73508
-  languageName: node
-  linkType: hard
-
-"postcss-selector-parser@npm:^5.0.0-rc.3, postcss-selector-parser@npm:^5.0.0-rc.4":
-  version: 5.0.0
-  resolution: "postcss-selector-parser@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-5.0.0.tgz"
-  dependencies:
-    cssesc: ^2.0.0
-    indexes-of: ^1.0.1
-    uniq: ^1.0.1
-  checksum: eabe69f66f66c7469d7c1618821235d474c9f96d77d7247cb1d5e7481d0ad9b2f632bf5dd8a8a895f1a00df93b10b6c02a61e6f276406d61503ffb0bd67cf5cd
-  languageName: node
-  linkType: hard
-
-"postcss-selector-parser@npm:^6.0.2":
-  version: 6.0.2
-  resolution: "postcss-selector-parser@npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz"
-  dependencies:
-    cssesc: ^3.0.0
-    indexes-of: ^1.0.1
-    uniq: ^1.0.1
-  checksum: 0c8bec00e966038572228df54782ef4eefcd76902e5fc3822e6ad8f144c097c48acd9d00376d95cbbd902bfc0ecdf078e3a42eaba2679e1e43b4f91660534121
-  languageName: node
-  linkType: hard
-
-"postcss-selector-parser@npm:^6.0.4":
-  version: 6.0.4
-  resolution: "postcss-selector-parser@npm:6.0.4"
-  dependencies:
-    cssesc: ^3.0.0
-    indexes-of: ^1.0.1
-    uniq: ^1.0.1
-    util-deprecate: ^1.0.2
-  checksum: f6b6e30f515e0909af2555df29feca42f2141d10fac7f8e719ac72f071729a9b9f631241bb1d8ff88cbec7e8fb2ada22c0c92ee0d629582340551ea090985a74
-  languageName: node
-  linkType: hard
-
-"postcss-value-parser@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "postcss-value-parser@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz"
-  checksum: 70831403886859289f650550a38889857022c5bbe264fd5d39cfad5207b3e1d33422edc031c1a922f3ae29d0dff98837a8bf126c840374d2b0079e7d57cf7d71
-  languageName: node
-  linkType: hard
-
-"postcss-values-parser@npm:^2.0.0, postcss-values-parser@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "postcss-values-parser@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz"
-  dependencies:
-    flatten: ^1.0.2
-    indexes-of: ^1.0.1
-    uniq: ^1.0.1
-  checksum: dfc25618bed3ba74da9adb4df9535dc0edd03e4618fb6774d0327934970876f93f565071bce97faa96ef236da2ce43ec2efeae240fc2eedc0e764e379b3e9441
-  languageName: node
-  linkType: hard
-
-"postcss@npm:^7.0.14, postcss@npm:^7.0.17, postcss@npm:^7.0.2, postcss@npm:^7.0.32, postcss@npm:^7.0.5, postcss@npm:^7.0.6":
-  version: 7.0.32
-  resolution: "postcss@npm:7.0.32::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz"
-  dependencies:
-    chalk: ^2.4.2
-    source-map: ^0.6.1
-    supports-color: ^6.1.0
-  checksum: 340f4f6ca6bd37961927f68bf7e38d071a7cba0468240cbba64ccf78012b2acbec974491284cb200e438dd3e655314e6d9508562523cbf9a49d5b00fd7e769fa
-  languageName: node
-  linkType: hard
-
-"postcss@npm:^8.1.1, postcss@npm:^8.1.4":
-  version: 8.1.4
-  resolution: "postcss@npm:8.1.4"
-  dependencies:
-    colorette: ^1.2.1
-    line-column: ^1.0.2
-    nanoid: ^3.1.15
-    source-map: ^0.6.1
-  checksum: b2bfa799c058d1c19b0f433667bc933b85f3d5b78fa46c4f6239322b1cc2d9b2652cba009ac3632bfec4b955818d406f21d95f3b3a4592ec32a14a3dc5dafe27
-  languageName: node
-  linkType: hard
-
-"prelude-ls@npm:^1.2.1":
-  version: 1.2.1
-  resolution: "prelude-ls@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.2.1.tgz"
-  checksum: bc1649f521e8928cde0e1b349b224de2e6f00b71361a4a44f2e4a615342b6e1ae30366c32d26412dabe74d999a40f79c0ae044ae6b17cf19af935e74d12ea4fa
-  languageName: node
-  linkType: hard
-
-"prettier-linter-helpers@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "prettier-linter-helpers@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier-linter-helpers%2Fdownload%2Fprettier-linter-helpers-1.0.0.tgz"
-  dependencies:
-    fast-diff: ^1.1.2
-  checksum: 6d698b9c8dc28e52c8d69df520cde3410cc06cc40471acf81b4b7c18ca08e73d0efb0f878654985bb02fce4f8d3d64cdf64fe9f3ffad3e1dc7e17b837d4ddcb2
-  languageName: node
-  linkType: hard
-
-"prettier@npm:^2.1.2":
-  version: 2.1.2
-  resolution: "prettier@npm:2.1.2"
-  bin:
-    prettier: bin-prettier.js
-  checksum: bedc24c568efbcfe45f255558900777e2fabb36bf28ed4c22d2456eb22dfb012d12e566a46472ea5b857a4e9f263e888f7e316527d00bb58188f1820b0b0031a
-  languageName: node
-  linkType: hard
-
-"pretty-bytes@npm:^5.1.0, pretty-bytes@npm:^5.3.0":
-  version: 5.3.0
-  resolution: "pretty-bytes@npm:5.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-bytes%2Fdownload%2Fpretty-bytes-5.3.0.tgz"
-  checksum: ecc6b1670f7ebcf6c78b91edad97ffdc0be58283ff5fa6c95c99c6bda48d2aa1858367fae8eccce35bc36eb90ec3cbcc24b9d7e29fd6ad98cc52d53d2e307789
-  languageName: node
-  linkType: hard
-
-"pretty-error@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "pretty-error@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.1.tgz"
-  dependencies:
-    renderkid: ^2.0.1
-    utila: ~0.4
-  checksum: dc2a92f59888eac1bd3861b439944ab50c46fcc957c3147126270f1e9e06c7bbacde1ab23ab2fc73c8f3a1961094db0878ec8a569f1d5606343a0ada7899cfc4
-  languageName: node
-  linkType: hard
-
-"process-nextick-args@npm:~2.0.0":
-  version: 2.0.1
-  resolution: "process-nextick-args@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz"
-  checksum: ddeb0f07d0d5efa649c2c5e39d1afd0e3668df2b392d036c8a508b0034f7beffbc474b3c2f7fd3fed2dc4113cef8f1f7e00d05690df3c611b36f6c7efd7852d1
-  languageName: node
-  linkType: hard
-
-"process@npm:^0.11.10":
-  version: 0.11.10
-  resolution: "process@npm:0.11.10::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess%2Fdownload%2Fprocess-0.11.10.tgz"
-  checksum: ed93a85e9185b40fb01788c588a87c1a9da0eb925ef7cebebbe1b8bbf0eba1802130366603a29e3b689c116969d4fe018de6aed3474bbeb5aefb3716b85d6449
-  languageName: node
-  linkType: hard
-
-"progress@npm:^2.0.0":
-  version: 2.0.3
-  resolution: "progress@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprogress%2Fdownload%2Fprogress-2.0.3.tgz"
-  checksum: c46ef5a1de4d527dfd32fe56a7df0c1c8b420a4c02617196813bf7f10ac7c2a929afc265d44fdd68f5c439a7e7cb3d70d569716c82d6b4148ec72089860a1312
-  languageName: node
-  linkType: hard
-
-"promise-deferred@npm:^2.0.3":
-  version: 2.0.3
-  resolution: "promise-deferred@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-deferred%2Fdownload%2Fpromise-deferred-2.0.3.tgz"
-  dependencies:
-    promise: ^7.3.1
-  checksum: 3135c0fe22065b296cf4148074bfcb82cc940b6c566bb9de2c4d726cde9c3ba40886c068d7edaff6f89d17e14b6b0493e1cc0f116044f205c4301ff4d9fb3e75
-  languageName: node
-  linkType: hard
-
-"promise-inflight@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "promise-inflight@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise-inflight%2Fdownload%2Fpromise-inflight-1.0.1.tgz"
-  checksum: c06bce0fc60b1c7979f291e489b9017db9c15f872d5cef0dfbb2b56694e9db574bc5c28f332a7033cdbd3a1d6417c5a1ee03889743638f0241e82e5a6b9c277f
-  languageName: node
-  linkType: hard
-
-"promise@npm:^7.3.1":
-  version: 7.3.1
-  resolution: "promise@npm:7.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-7.3.1.tgz"
-  dependencies:
-    asap: ~2.0.3
-  checksum: 23267a4b078fcb02c57b06ca1a1d5739109deb0932c0fd79615a2c5636dd0571ac6a161f19c4ea9683a4ab89791da13112678fa410b65334de490e97c33410ae
-  languageName: node
-  linkType: hard
-
-"promiseback@npm:^2.0.2":
-  version: 2.0.3
-  resolution: "promiseback@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromiseback%2Fdownload%2Fpromiseback-2.0.3.tgz"
-  dependencies:
-    is-callable: ^1.1.5
-    promise-deferred: ^2.0.3
-  checksum: 3c405394a4325396824fecb7239be909a61b679741279240860d6f74ebb2c7f9209a82ce0e3c37a15ee64b36d061b2857af308a71690abb597199ee4aee4385a
-  languageName: node
-  linkType: hard
-
-"prop-types-extra@npm:^1.1.0":
-  version: 1.1.1
-  resolution: "prop-types-extra@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types-extra%2Fdownload%2Fprop-types-extra-1.1.1.tgz"
-  dependencies:
-    react-is: ^16.3.2
-    warning: ^4.0.0
-  peerDependencies:
-    react: ">=0.14.0"
-  checksum: f1f1cc23b95423615da6ab3ad5726a228011c64612fc77cb773a507437d34543d16758d5ec54fa987611c85e7de6fc4f44e8d3fcec9e343fa5578bca8a09378a
-  languageName: node
-  linkType: hard
-
-"prop-types@npm:^15.5.10, prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
-  version: 15.7.2
-  resolution: "prop-types@npm:15.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz"
-  dependencies:
-    loose-envify: ^1.4.0
-    object-assign: ^4.1.1
-    react-is: ^16.8.1
-  checksum: a440dd406c5cf53bf39f3e898d2c65178511d34ca3c8c789b30c177992408b9e4273969726b274719aa69ccce5ab34b2fd8caa60b90f23cd2e910cdcf682de52
-  languageName: node
-  linkType: hard
-
-"proxy-addr@npm:~2.0.5":
-  version: 2.0.6
-  resolution: "proxy-addr@npm:2.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.6.tgz"
-  dependencies:
-    forwarded: ~0.1.2
-    ipaddr.js: 1.9.1
-  checksum: a7dcfd70258cdc3b73c5dc4a35c73db9857f3bf4cf5e6404380e8ea558f8c5569147e721a01195d00b450e36b4dde727fc9d22fdea14310ba38faa595530cd58
-  languageName: node
-  linkType: hard
-
-"prr@npm:~1.0.1":
-  version: 1.0.1
-  resolution: "prr@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fprr%2Fdownload%2Fprr-1.0.1.tgz"
-  checksum: ac5c0986b46390140b920b8e7f6b56e769a00620af02b6bbdfc6658e8a36b876569c8f174a7c209843f5b9af3d13cbf847c2a9dded4d965b01afbfa5ea8d0761
-  languageName: node
-  linkType: hard
-
-"psl@npm:^1.1.28":
-  version: 1.8.0
-  resolution: "psl@npm:1.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz"
-  checksum: 92d47c6257456878bfa8190d76b84de69bcefdc129eeee3f9fe204c15fd08d35fe5b8627033f39b455e40a9375a1474b25ff4ab2c5448dd8c8f75da692d0f5b4
-  languageName: node
-  linkType: hard
-
-"pump@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "pump@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpump%2Fdownload%2Fpump-3.0.0.tgz"
-  dependencies:
-    end-of-stream: ^1.1.0
-    once: ^1.3.1
-  checksum: 5464d5cf6c6f083cc60cb45b074fb9a4a92ba4d3e0d89e9b2fa1906d8151fd3766784a426725ccf1af50d1c29963ac20b13829933549830e08a6704e3f95e08c
-  languageName: node
-  linkType: hard
-
-"punycode@npm:1.3.2":
-  version: 1.3.2
-  resolution: "punycode@npm:1.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-1.3.2.tgz"
-  checksum: e67fddacd83b918ca2f4a47b1fd13858108779cdc2a3f2db3233ff82a25f9305d46e1d9891f7b9ad21ed36454adfc675d4559621fcffed2cf2067abd04e121cd
-  languageName: node
-  linkType: hard
-
-"punycode@npm:^2.1.0, punycode@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "punycode@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz"
-  checksum: 0202dc191cb35bfd88870ac99a1e824b03486d4cee20b543ef337a6dee8d8b11017da32a3e4c40b69b19976e982c030b62bd72bba42884acb691bc5ef91354c8
-  languageName: node
-  linkType: hard
-
-"qs@npm:6.7.0":
-  version: 6.7.0
-  resolution: "qs@npm:6.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"
-  checksum: 8590470436ff0a75ae35e6b45fd7260e2beb537ff8ec1104f9703a349b09ce1aa27e8e1c06b9ad25ac62fc098e12cc65df93042a233128a0276ccd6de4c7819a
-  languageName: node
-  linkType: hard
-
-"qs@npm:^6.4.0":
-  version: 6.9.4
-  resolution: "qs@npm:6.9.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.9.4.tgz"
-  checksum: beba62d1e1c66e9888cc08a488eb95771c252a92289a96bff4b767a49e4e7afe9487d7ee3269b856292d8281b855ac5eac927c2e77f845e407ee4fe54743fea7
-  languageName: node
-  linkType: hard
-
-"qs@npm:~6.5.2":
-  version: 6.5.2
-  resolution: "qs@npm:6.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz"
-  checksum: fa0410eff2c05ce3328e11f82db4015e7819c986ee056d6b62b06ae112f4929af09ea3b879ca168ff9f0338f50972bba487ad0e46c879e42bfaf63c3c2ea7f09
-  languageName: node
-  linkType: hard
-
-"querystring@npm:0.2.0":
-  version: 0.2.0
-  resolution: "querystring@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz"
-  checksum: 1e76c51462f0ffb148e0b2fdeb811f61377800298605229d32efcdaaaf0a8fd4314a4b4405e1fbf130a5ca421c0e51f926fab5bb9f8b9b3b8c394f4e2d33d3d1
-  languageName: node
-  linkType: hard
-
-"querystringify@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "querystringify@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.1.1.tgz"
-  checksum: 35301cc744d5de15040a6bdb6b751ef127f65a82675c5f3a9139a4ce0d047ed8b61a459a93261cd7ae0becfa389edd3f02e8aec1c025ae3e7f0d06dc758baa98
-  languageName: node
-  linkType: hard
-
-"quick-lru@npm:^5.1.1":
-  version: 5.1.1
-  resolution: "quick-lru@npm:5.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fquick-lru%2Fdownload%2Fquick-lru-5.1.1.tgz"
-  checksum: fafb2b2fa1a948d6f2e88d4a60571be70b316d9b0be857d24fba0ac28fc31acebf535b643fe968473d689f8c655bcb2a0e4da67912f571059a4e4eb15740b021
-  languageName: node
-  linkType: hard
-
-"randombytes@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "randombytes@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frandombytes%2Fdownload%2Frandombytes-2.1.0.tgz"
-  dependencies:
-    safe-buffer: ^5.1.0
-  checksum: ede2693af09732ceab1c273dd70db787f34a7b8d95bab13f1aca763483c0113452a78e53d61ff18d393dcea586d388e01f198a5132a4a85cebba31ec54164b75
-  languageName: node
-  linkType: hard
-
-"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1":
-  version: 1.2.1
-  resolution: "range-parser@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frange-parser%2Fdownload%2Frange-parser-1.2.1.tgz"
-  checksum: 05074f5b23dbdc24acdae9821dd684fbc9c0d770cdaa4469ab529d8e0fc1338aa33561a4c7c14a1f9bdcb3b5e9a3770e5a80318258a72289a7ef05fcda72a707
-  languageName: node
-  linkType: hard
-
-"raw-body@npm:2.4.0":
-  version: 2.4.0
-  resolution: "raw-body@npm:2.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fraw-body%2Fdownload%2Fraw-body-2.4.0.tgz"
-  dependencies:
-    bytes: 3.1.0
-    http-errors: 1.7.2
-    iconv-lite: 0.4.24
-    unpipe: 1.0.0
-  checksum: 46dc02f8b4f358786d41e18fb55533fbe4702d390e22bbe2b9c98c88dec41cab23ea2315f3ae0bf4bc0213a2872c89943d3df6857f4e21f996ea9d2d92f1bcaa
-  languageName: node
-  linkType: hard
-
-"react-bootstrap@npm:^1.4.0":
-  version: 1.4.0
-  resolution: "react-bootstrap@npm:1.4.0"
-  dependencies:
-    "@babel/runtime": ^7.4.2
-    "@restart/context": ^2.1.4
-    "@restart/hooks": ^0.3.21
-    "@types/classnames": ^2.2.10
-    "@types/invariant": ^2.2.33
-    "@types/prop-types": ^15.7.3
-    "@types/react": ^16.9.35
-    "@types/react-transition-group": ^4.4.0
-    "@types/warning": ^3.0.0
-    classnames: ^2.2.6
-    dom-helpers: ^5.1.2
-    invariant: ^2.2.4
-    prop-types: ^15.7.2
-    prop-types-extra: ^1.1.0
-    react-overlays: ^4.1.0
-    react-transition-group: ^4.4.1
-    uncontrollable: ^7.0.0
-    warning: ^4.0.3
-  peerDependencies:
-    react: ">=16.8.0"
-    react-dom: ">=16.8.0"
-  checksum: 9ac160925e1ce1c8f81496ac037e3da8ea18221324977c7b0a0ee3815fcc808b69399cdcf2937c6433869c62ad76eede426a9c1e7685cfd83beaac1d575f86b5
-  languageName: node
-  linkType: hard
-
-"react-dom@npm:^17.0.1":
-  version: 17.0.1
-  resolution: "react-dom@npm:17.0.1"
-  dependencies:
-    loose-envify: ^1.1.0
-    object-assign: ^4.1.1
-    scheduler: ^0.20.1
-  peerDependencies:
-    react: 17.0.1
-  checksum: 6a70028fbe3c95e0056c5e8ce065b4a9b8d4ff3bffde9b016454072bde5e4b012af7668ca45b7235ace428267d5be5237b68ea87ce8c296e54e81a8d678a4355
-  languageName: node
-  linkType: hard
-
-"react-from-dom@npm:^0.5.0":
-  version: 0.5.0
-  resolution: "react-from-dom@npm:0.5.0"
-  peerDependencies:
-    react: ^15.0.0 || ^16.0.0
-  checksum: a993221297759de799a0089ba57de5a4c71099b2f28b1eda3cf7b0c06b66b08cd9c67a28e10109f23d0929753ffa96775695420c6bb60456c21d357f137d118e
-  languageName: node
-  linkType: hard
-
-"react-hot-loader@npm:^4.13.0":
-  version: 4.13.0
-  resolution: "react-hot-loader@npm:4.13.0"
-  dependencies:
-    fast-levenshtein: ^2.0.6
-    global: ^4.3.0
-    hoist-non-react-statics: ^3.3.0
-    loader-utils: ^1.1.0
-    prop-types: ^15.6.1
-    react-lifecycles-compat: ^3.0.4
-    shallowequal: ^1.1.0
-    source-map: ^0.7.3
-  peerDependencies:
-    "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 "
-    react: "^15.0.0 || ^16.0.0 || ^17.0.0 "
-    react-dom: "^15.0.0 || ^16.0.0 || ^17.0.0 "
-  peerDependenciesMeta:
-    "@types/react":
-      optional: true
-  checksum: f1df03e93206b379b605f3da983f700d5c8a16e3ebedf25ca1311067f4dc95cf968206af44d0b734a5505619958f2da5efe9df4bf749ed6a4989e1f6ea5d2915
-  languageName: node
-  linkType: hard
-
-"react-i18next@npm:^11.7.3":
-  version: 11.7.3
-  resolution: "react-i18next@npm:11.7.3"
-  dependencies:
-    "@babel/runtime": ^7.3.1
-    html-parse-stringify2: 2.0.1
-  peerDependencies:
-    i18next: ">= 19.0.0"
-    react: ">= 16.8.0"
-  checksum: 7f0b0535bf2577b534b3c163761f3151a204ae0cd2c2cf286385f6af4401cfc74500f3843328c70c46e5a115ffcfbc007bfee6bea0961b92f7103f26204e8c3a
-  languageName: node
-  linkType: hard
-
-"react-inlinesvg@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "react-inlinesvg@npm:2.1.1"
-  dependencies:
-    exenv: ^1.2.2
-    react-from-dom: ^0.5.0
-  peerDependencies:
-    react: ^16.8.0
-  checksum: 39de7b009a332f3b6b7351846cc4633380d8310273da50a0fbb820d1470714057318411e4d91e8d47e697613eff6d9eb52a0494e662b678660443e858794fdb6
-  languageName: node
-  linkType: hard
-
-"react-is@npm:^16.3.2, react-is@npm:^16.6.0, react-is@npm:^16.7.0, react-is@npm:^16.8.1":
-  version: 16.13.1
-  resolution: "react-is@npm:16.13.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz"
-  checksum: 11bcf1267a314a522615f626f3ce3727a3a24cdbf61c4d452add3550a7875326669631326cfb1ba3e92b6f72244c32ffecf93ad21c0cad8455d3e169d0e3f060
-  languageName: node
-  linkType: hard
-
-"react-lifecycles-compat@npm:^3.0.4":
-  version: 3.0.4
-  resolution: "react-lifecycles-compat@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lifecycles-compat%2Fdownload%2Freact-lifecycles-compat-3.0.4.tgz"
-  checksum: 82176a55ef7526414d770d5e07dc1d28b4c7f20281f22c6f53f3a98df9dbbb5d70c94bebee57b4ea8ccc2eee430b907ca7b564a42fbdd0ed21e7c43bfee35404
-  languageName: node
-  linkType: hard
-
-"react-overlays@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "react-overlays@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-overlays%2Fdownload%2Freact-overlays-4.1.0.tgz"
-  dependencies:
-    "@babel/runtime": ^7.4.5
-    "@popperjs/core": ^2.0.0
-    "@restart/hooks": ^0.3.12
-    "@types/warning": ^3.0.0
-    dom-helpers: ^5.1.0
-    prop-types: ^15.7.2
-    uncontrollable: ^7.0.0
-    warning: ^4.0.3
-  peerDependencies:
-    react: ">=16.3.0"
-    react-dom: ">=16.3.0"
-  checksum: 64d46694be7969885c8aa60b671b2a5e9e2fa30431efdd554f12793bc730d045a084a3e245f65e61cb5bcf94884e16f850fa3e870438b463f914556455ac1261
-  languageName: node
-  linkType: hard
-
-"react-responsive@npm:^8.1.0":
-  version: 8.1.0
-  resolution: "react-responsive@npm:8.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-responsive%2Fdownload%2Freact-responsive-8.1.0.tgz"
-  dependencies:
-    hyphenate-style-name: ^1.0.0
-    matchmediaquery: ^0.3.0
-    prop-types: ^15.6.1
-    shallow-equal: ^1.1.0
-  peerDependencies:
-    react: ^16.8.0
-  checksum: 059c460fd4aa826254442ca1d0739d19e262ad08e0960ca62bd74556377021645394c44104256e1dc929d3106d5d91d736f7643c2c6f6d47f0bcd62567c213a8
-  languageName: node
-  linkType: hard
-
-"react-router-bootstrap@npm:^0.25.0":
-  version: 0.25.0
-  resolution: "react-router-bootstrap@npm:0.25.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-bootstrap%2Fdownload%2Freact-router-bootstrap-0.25.0.tgz"
-  dependencies:
-    prop-types: ^15.5.10
-  peerDependencies:
-    react: ">=0.14.0"
-    react-router-dom: ">=4.0.0"
-  checksum: c9a66a8cc92ff2eaffe76e95577c8db5dda68e8a6c7386832e8c8e34da4e3956ea928960391ef3dd9e99f537f1faa08b6689a43dee03bd331eeb8731180803f6
-  languageName: node
-  linkType: hard
-
-"react-router-dom@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "react-router-dom@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router-dom%2Fdownload%2Freact-router-dom-5.2.0.tgz"
-  dependencies:
-    "@babel/runtime": ^7.1.2
-    history: ^4.9.0
-    loose-envify: ^1.3.1
-    prop-types: ^15.6.2
-    react-router: 5.2.0
-    tiny-invariant: ^1.0.2
-    tiny-warning: ^1.0.0
-  peerDependencies:
-    react: ">=15"
-  checksum: 9ad2d72630491f324a0f0c1dbcc3dc04d8d7cee7cb9dc9effd115fe736ba06104360a78a624170f863738d77e487d459864206a79d91d3c9663cf1dadb3b637f
-  languageName: node
-  linkType: hard
-
-"react-router@npm:5.2.0, react-router@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "react-router@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-router%2Fdownload%2Freact-router-5.2.0.tgz"
-  dependencies:
-    "@babel/runtime": ^7.1.2
-    history: ^4.9.0
-    hoist-non-react-statics: ^3.1.0
-    loose-envify: ^1.3.1
-    mini-create-react-context: ^0.4.0
-    path-to-regexp: ^1.7.0
-    prop-types: ^15.6.2
-    react-is: ^16.6.0
-    tiny-invariant: ^1.0.2
-    tiny-warning: ^1.0.0
-  peerDependencies:
-    react: ">=15"
-  checksum: 4437eaa9bab02d46a7d6ea4915731c1f31642d6c3e3f7b9f951f5c6a9a73f35d4deb43a2d6b4be85f27816a20de96c3b9a9239f4b7e9136742106794ad20e95c
-  languageName: node
-  linkType: hard
-
-"react-transition-group@npm:^4.4.1":
-  version: 4.4.1
-  resolution: "react-transition-group@npm:4.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-transition-group%2Fdownload%2Freact-transition-group-4.4.1.tgz"
-  dependencies:
-    "@babel/runtime": ^7.5.5
-    dom-helpers: ^5.0.1
-    loose-envify: ^1.4.0
-    prop-types: ^15.6.2
-  peerDependencies:
-    react: ">=16.6.0"
-    react-dom: ">=16.6.0"
-  checksum: e14446123f820e804335c64be5270333c29e8cfaa43dfc33387e132c5d521cf4a0a7c2408058a147b254ae82a6569f373394d83e977ef340d6937bc2f4ff7d6c
-  languageName: node
-  linkType: hard
-
-"react@npm:^17.0.1":
-  version: 17.0.1
-  resolution: "react@npm:17.0.1"
-  dependencies:
-    loose-envify: ^1.1.0
-    object-assign: ^4.1.1
-  checksum: a76d86ec973eb4b25a46071ac7f974adfd66ed89ad1db63043be1d976ec25417520a210e6d724b0ad937422b706afcf9962cedda9e92125992a8c0e8a95f2051
-  languageName: node
-  linkType: hard
-
-"read-pkg-up@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "read-pkg-up@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz"
-  dependencies:
-    find-up: ^2.0.0
-    read-pkg: ^2.0.0
-  checksum: f35e4cb4577b994fc9497886672c748de766ab034e24f029111b6bbbfe757b2e27b6d2b82a28a38f45d9d89ea8a9b1d3c04854e5f991d5deed48f4c9ff7baeb9
-  languageName: node
-  linkType: hard
-
-"read-pkg@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "read-pkg@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-2.0.0.tgz"
-  dependencies:
-    load-json-file: ^2.0.0
-    normalize-package-data: ^2.3.2
-    path-type: ^2.0.0
-  checksum: ddf911317fba54abb447b1d76dd1785c37e1360f7b1e39d83201f6f3807572391ab7392f11727a9c4d90600ebc6616d22e72514d2291688c89ebd440148840b4
-  languageName: node
-  linkType: hard
-
-"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6":
-  version: 2.3.7
-  resolution: "readable-stream@npm:2.3.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz"
-  dependencies:
-    core-util-is: ~1.0.0
-    inherits: ~2.0.3
-    isarray: ~1.0.0
-    process-nextick-args: ~2.0.0
-    safe-buffer: ~5.1.1
-    string_decoder: ~1.1.1
-    util-deprecate: ~1.0.1
-  checksum: 6e3826560627a751feb3a8aec073ef94c6e47b8c8e06eb5d136323b5f09db9d2077c23a42a8d54ed0123695af54b36c1e4271a8ec55112b15f4b89020d8dec72
-  languageName: node
-  linkType: hard
-
-"readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0":
-  version: 3.6.0
-  resolution: "readable-stream@npm:3.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz"
-  dependencies:
-    inherits: ^2.0.3
-    string_decoder: ^1.1.1
-    util-deprecate: ^1.0.1
-  checksum: f178b1daa80d9e58ebba71dbb08486430aa6f0dea3a22a1b7401f3f6983077d0bc0edea43099db06b8d006c9ad48d6383e8fb72c05d5b187670aeaf1b9b44f00
-  languageName: node
-  linkType: hard
-
-"readdirp@npm:^2.2.1":
-  version: 2.2.1
-  resolution: "readdirp@npm:2.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz"
-  dependencies:
-    graceful-fs: ^4.1.11
-    micromatch: ^3.1.10
-    readable-stream: ^2.0.2
-  checksum: 00b5209ee5278ba6faa2fbcabb817e8f64a498ff7fee8cfd30634a04140e673375582812c67c59e25ee3ee9979687b1c832f33e1bbacd8ac3340bab0645b8374
-  languageName: node
-  linkType: hard
-
-"readdirp@npm:~3.4.0":
-  version: 3.4.0
-  resolution: "readdirp@npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz"
-  dependencies:
-    picomatch: ^2.2.1
-  checksum: 0159f43eb0a90cf4fde5989b607e0a6bef4e6332dc8648f1b50fbc013f1158e1d021bcfd6dad1dc2895da2bb14cdac408239d047e3d61a01dd3a44376e6ec1f1
-  languageName: node
-  linkType: hard
-
-"rechoir@npm:^0.7.0":
-  version: 0.7.0
-  resolution: "rechoir@npm:0.7.0"
-  dependencies:
-    resolve: ^1.9.0
-  checksum: 1d4cc8db1d4ff51d4c156db7ff6fe0a376e7527b61afafd148f1cfa2c19a6c454f3f77f1cb175e1f1f1476a83dbeba3632de088441dbaa404091a30d39c8749f
-  languageName: node
-  linkType: hard
-
-"reduce-flatten@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "reduce-flatten@npm:2.0.0"
-  checksum: 216ce860c78081b83f255cad4d032361677e4aea87dacecd387e62505e1e4a50dd947b3ce9166b70d8b9aaa45215c1b512c518b5384e5067ee7d29011da0efb4
-  languageName: node
-  linkType: hard
-
-"regenerate-unicode-properties@npm:^8.2.0":
-  version: 8.2.0
-  resolution: "regenerate-unicode-properties@npm:8.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz"
-  dependencies:
-    regenerate: ^1.4.0
-  checksum: afe83304fbb5e8f74334b6f6f3f19ba261b9036aade352db14f4e5c2776fcf6e6a5da465628545f2f6f50f898a1b5246711b2cafedaa01c3f329d186e850af04
-  languageName: node
-  linkType: hard
-
-"regenerate@npm:^1.4.0":
-  version: 1.4.1
-  resolution: "regenerate@npm:1.4.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz"
-  checksum: 67fe7ea33291997b20634105c7b6787bcc03e137da348c1cc0d617b3d97d9ed1e05ce4b6dabcb86be7ddf198000f78275bcabd67e66889ba7daa296926f8eada
-  languageName: node
-  linkType: hard
-
-"regenerator-runtime@npm:^0.11.0":
-  version: 0.11.1
-  resolution: "regenerator-runtime@npm:0.11.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz"
-  checksum: d98d44b9f5c9c3c670dcb615c5f5374931f937f3075dc8338126f45231643aa8c47ed2bfdef6ae593e311be54ca02d25d943971ca86a3dc1fa99068c2e1b88b2
-  languageName: node
-  linkType: hard
-
-"regenerator-runtime@npm:^0.13.4":
-  version: 0.13.5
-  resolution: "regenerator-runtime@npm:0.13.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz"
-  checksum: 8d8ee0eca26e0491085033caf2b1b95379c4db21e38d79cde52bbd4014a3865eee26ec0f4f958682e8600f185f2f5dbcd8c6685b9b9261639767929c19b5bcd2
-  languageName: node
-  linkType: hard
-
-"regenerator-runtime@npm:^0.13.7":
-  version: 0.13.7
-  resolution: "regenerator-runtime@npm:0.13.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz"
-  checksum: 6ef567c662088b1b292214920cbd72443059298d477f72e1a37e0a113bafbfac9057cbfe35ae617284effc4b423493326a78561bbff7b04162c7949bdb9624e8
-  languageName: node
-  linkType: hard
-
-"regenerator-transform@npm:^0.14.2":
-  version: 0.14.5
-  resolution: "regenerator-transform@npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz"
-  dependencies:
-    "@babel/runtime": ^7.8.4
-  checksum: ed07c2c1d08f4828807f9366621ca1d62102969f5af575662c9e5f085f7b49df068e4944e17c7016898bc125cdc7b0d74014e9856bff3a6a147714c4e7de3ed9
-  languageName: node
-  linkType: hard
-
-"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "regex-not@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregex-not%2Fdownload%2Fregex-not-1.0.2.tgz"
-  dependencies:
-    extend-shallow: ^3.0.2
-    safe-regex: ^1.1.0
-  checksum: 3d6d95b4fda3cabe7222b3800876491825a865ae6ca4c90bb10fd0f6442d0c57d180657bb65358b4509bdd1cecad1bd2d23e7d15a69f9c523f501cc4431b950b
-  languageName: node
-  linkType: hard
-
-"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.3.0":
-  version: 1.3.0
-  resolution: "regexp.prototype.flags@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0-next.1
-  checksum: 468e19b3aed632653333741346cab170787b9bc79eecdfdd3d7ba5be26574c135edc2ce286d9d4154b635158c3c44f9614fca51cbf6d4d3f529ef89cf7e03908
-  languageName: node
-  linkType: hard
-
-"regexpp@npm:^3.0.0, regexpp@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "regexpp@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz"
-  checksum: 69d0ce6b449cf35d3732d6341a1e70850360ffc619f8eef10629871c462e614853fffb80d3f00fc17cd0bb5b8f34b0cde5be4b434e72c0eb3fbba2360c8b5ac4
-  languageName: node
-  linkType: hard
-
-"regexpu-core@npm:^4.7.0":
-  version: 4.7.0
-  resolution: "regexpu-core@npm:4.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz"
-  dependencies:
-    regenerate: ^1.4.0
-    regenerate-unicode-properties: ^8.2.0
-    regjsgen: ^0.5.1
-    regjsparser: ^0.6.4
-    unicode-match-property-ecmascript: ^1.0.4
-    unicode-match-property-value-ecmascript: ^1.2.0
-  checksum: 8947f4c4ac23494cb842e6a0b82f29dd76737486d78f833c1ba2436a046a134435e442a615d988c6dc6b9cdaf611aafd3627ce8d2f62a8e580f094101916cad4
-  languageName: node
-  linkType: hard
-
-"regexpu-core@npm:^4.7.1":
-  version: 4.7.1
-  resolution: "regexpu-core@npm:4.7.1"
-  dependencies:
-    regenerate: ^1.4.0
-    regenerate-unicode-properties: ^8.2.0
-    regjsgen: ^0.5.1
-    regjsparser: ^0.6.4
-    unicode-match-property-ecmascript: ^1.0.4
-    unicode-match-property-value-ecmascript: ^1.2.0
-  checksum: a4d25a11cb95841325289ab8d0d43182b74cf7fce537e60718bc8b901adb4141714f8108c5d333da302e707068f0ea7be09fd5f06ef26a2b1c27b4f29177b8ab
-  languageName: node
-  linkType: hard
-
-"regjsgen@npm:^0.5.1":
-  version: 0.5.2
-  resolution: "regjsgen@npm:0.5.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz"
-  checksum: 629afab3d9ce61e104064cda66aca74ec9a1921151cc985d93c5cb58453ed7f7c23479bdb1a4a0826d200ed28c3871a7b8a8938e634ab00194195012893bccbc
-  languageName: node
-  linkType: hard
-
-"regjsparser@npm:^0.6.4":
-  version: 0.6.4
-  resolution: "regjsparser@npm:0.6.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.4.tgz"
-  dependencies:
-    jsesc: ~0.5.0
-  bin:
-    regjsparser: bin/parser
-  checksum: cf7838462ebe0256ef25618eab5981dc080501efde6458906a47ee1c017c93f7e27723d4a56f658014d5c8381a60d189e19f05198ef343e106343642471b1594
-  languageName: node
-  linkType: hard
-
-"relateurl@npm:^0.2.7":
-  version: 0.2.7
-  resolution: "relateurl@npm:0.2.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frelateurl%2Fdownload%2Frelateurl-0.2.7.tgz"
-  checksum: 856db0385d82022042584c14702ce58cb4d74c6b6a6d98ba85357638e64c081e6cb85adbbadebc82eec87b6e70ba43ae02d8655e565dbd4baffdc405a1b0b614
-  languageName: node
-  linkType: hard
-
-"remove-trailing-separator@npm:^1.0.1":
-  version: 1.1.0
-  resolution: "remove-trailing-separator@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fremove-trailing-separator%2Fdownload%2Fremove-trailing-separator-1.1.0.tgz"
-  checksum: 17dadf3d1f7c51411b7c426c8e2d6a660359bc8dae7686137120483fe4345bfca4bf7460d2c302aa741a7886c932d8dad708d2b971669d74e0fb3ff9a4814408
-  languageName: node
-  linkType: hard
-
-"renderkid@npm:^2.0.1":
-  version: 2.0.3
-  resolution: "renderkid@npm:2.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.3.tgz"
-  dependencies:
-    css-select: ^1.1.0
-    dom-converter: ^0.2
-    htmlparser2: ^3.3.0
-    strip-ansi: ^3.0.0
-    utila: ^0.4.0
-  checksum: 6520020e223b934fba7faf2c87242b065196d48a6ef8fc6c2c371379ed9c3a40cd8254d7db4b1cfb1bfad254b17d346800270bb0b8e7b96002285f5b9bf13c98
-  languageName: node
-  linkType: hard
-
-"repeat-element@npm:^1.1.2":
-  version: 1.1.3
-  resolution: "repeat-element@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-element%2Fdownload%2Frepeat-element-1.1.3.tgz"
-  checksum: 6a59b879efdd3512a786be5de1bc05c110822fec6820bb5a38dfdfdd4488e7ba0cf6d15b28da21544e6f072ae60762ee9efa784f2988128e656c97a8b0be46cb
-  languageName: node
-  linkType: hard
-
-"repeat-string@npm:^1.6.1":
-  version: 1.6.1
-  resolution: "repeat-string@npm:1.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frepeat-string%2Fdownload%2Frepeat-string-1.6.1.tgz"
-  checksum: 99c431ba7bef7a5d39819d562ebca89206368b45f73213677a3b562e25b5dd272d9e6a2ca8105001df14b6fc8cc71f0b10258c86e16cf8a256318fac1ddc8a77
-  languageName: node
-  linkType: hard
-
-"request@npm:^2.88.2":
-  version: 2.88.2
-  resolution: "request@npm:2.88.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz"
-  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
-  checksum: 7a74841f3024cac21d8c3cca7f7f2e4243fbd62464d2f291fddb94008a9d010e20c4a1488f4224b03412a4438a699db2a3de11019e486c8e656f86b0b79bf022
-  languageName: node
-  linkType: hard
-
-"require-directory@npm:^2.1.1":
-  version: 2.1.1
-  resolution: "require-directory@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-directory%2Fdownload%2Frequire-directory-2.1.1.tgz"
-  checksum: f495d02d89c385af2df4b26f0216ece091e99710d358d0ede424126c476d0c639e8bd77dcd237c00a6a5658f3d862e7513164f8c280263052667d06df830eb23
-  languageName: node
-  linkType: hard
-
-"require-main-filename@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "require-main-filename@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequire-main-filename%2Fdownload%2Frequire-main-filename-2.0.0.tgz"
-  checksum: 8d3633149a7fef67d14613146247137fe1dc4cc969bf2d1adcd40e3c28056de503229f41e78cba5efebad3a223cbfb4215fd220d879148df10c6d9a877099dbd
-  languageName: node
-  linkType: hard
-
-"requires-port@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "requires-port@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frequires-port%2Fdownload%2Frequires-port-1.0.0.tgz"
-  checksum: 0db25fb2ac9b4f2345a350846b7ba99d1f25a6686b1728246d14f05450c8f2fc066bdfae4561b4be2627c184a030a27e17268cfefdf46836e271db13734bc49e
-  languageName: node
-  linkType: hard
-
-"resolve-alpn@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "resolve-alpn@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-alpn%2Fdownload%2Fresolve-alpn-1.0.0.tgz"
-  checksum: 17baee01c03a57cebd163aa5c9bd94f33646378bce8aa94c7a8d29fc0e1bf0807532bda3c36bb929511606633921d0f4a69e7fcc894cf02ad1c742e649b71673
-  languageName: node
-  linkType: hard
-
-"resolve-cwd@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "resolve-cwd@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-cwd%2Fdownload%2Fresolve-cwd-2.0.0.tgz"
-  dependencies:
-    resolve-from: ^3.0.0
-  checksum: f5d5526526d646c013f8ccb946861907e9f5fcfb951b2495add0f6a344a6796111b1c88e5227bc846d04a0e07182cc856a694ad0dd559dfa6a795a4eaff4477e
-  languageName: node
-  linkType: hard
-
-"resolve-cwd@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "resolve-cwd@npm:3.0.0"
-  dependencies:
-    resolve-from: ^5.0.0
-  checksum: 97edfbbf83ade94e880c2e62d0faf76eb245ea5696fc70f59eaa2747773e19108a1fa0fba13f53d471d9f245454bb1592dc4f537c6dfd19b8016ef8639a9fadc
-  languageName: node
-  linkType: hard
-
-"resolve-from@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "resolve-from@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz"
-  checksum: dc0c83b3b867753b9fe3a901587fa70efc596a69355eb133fd68f8bbaef4e77266ef38b8a01a2d664aa32ba732425d54413b3d581ca7dff96bee177c61a0c84d
-  languageName: node
-  linkType: hard
-
-"resolve-from@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "resolve-from@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz"
-  checksum: 87a4357c0c1c2d165012ec04a3b2aa58931c0c0be257890806760b627bad36c9bceb6f9b2a3726f8570c67f2c9ff3ecc9507fe65cc3ad8d45cdab015245c649f
-  languageName: node
-  linkType: hard
-
-"resolve-from@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "resolve-from@npm:5.0.0"
-  checksum: 0d29fc7012eb21f34d2637fa0602694f60e64c14bf5fbd5395b72f6ea5540a6906cbeef062edefc34c22fd802bfe8ae46ef936e6c4a3f1b1047390f9738dd76f
-  languageName: node
-  linkType: hard
-
-"resolve-pathname@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "resolve-pathname@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-pathname%2Fdownload%2Fresolve-pathname-3.0.0.tgz"
-  checksum: 88ed8b3dd2b5cec68d35c319dc831cd879155da153208bb9c035f263cd9220fcf0af49158456871f64a181511f8e95c483c3700a958f4110f36e513b78cfd9f0
-  languageName: node
-  linkType: hard
-
-"resolve-url@npm:^0.2.1":
-  version: 0.2.1
-  resolution: "resolve-url@npm:0.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz"
-  checksum: 9e1cd0028d0f2e157a889a02653637c1c1d7f133aa47b75261b4590e84105e63fae3b6be31bad50d5b94e01898d9dbe6b95abe28db7eab46e22321f7cbf00273
-  languageName: node
-  linkType: hard
-
-"resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2":
-  version: 1.17.0
-  resolution: "resolve@npm:1.17.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz"
-  dependencies:
-    path-parse: ^1.0.6
-  checksum: 5e3cdb8cf68c20b0c5edeb6505e7fab20c6776af0cae4b978836e557420aef7bb50acd25339bbb143b7f80533aa1988c7e827a0061aee9c237926a7d2c41f8d0
-  languageName: node
-  linkType: hard
-
-"resolve@^1.18.1, resolve@^1.9.0":
-  version: 1.18.1
-  resolution: "resolve@npm:1.18.1"
-  dependencies:
-    is-core-module: ^2.0.0
-    path-parse: ^1.0.6
-  checksum: deb5ba746e1c038ba8fb7ca5c35ee3fe88665e2f79be3e9a706e5254eeea55eb12b6f1830dd60a11bbafa327bcd868284fbf5caf428cf5761b3f094abdffee77
-  languageName: node
-  linkType: hard
-
-"resolve@patch:resolve@^1.10.0#builtin<compat/resolve>, resolve@patch:resolve@^1.13.1#builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#builtin<compat/resolve>, resolve@patch:resolve@^1.3.2#builtin<compat/resolve>":
-  version: 1.17.0
-  resolution: "resolve@patch:resolve@npm%3A1.17.0%3A%3A__archiveUrl=https%253A%252F%252Fregistry.npm.taobao.org%252Fresolve%252Fdownload%252Fresolve-1.17.0.tgz#builtin<compat/resolve>::version=1.17.0&hash=3388aa"
-  dependencies:
-    path-parse: ^1.0.6
-  checksum: 4bcfb568860d0c361fd16c26b6fce429711138ff0de7dd353bdd73fcb5c7eede2f4602d40ccfa08ff45ec7ef9830845eab2021a46036af0a6e5b58bab1ff6399
-  languageName: node
-  linkType: hard
-
-"resolve@patch:resolve@^1.18.1#builtin<compat/resolve>, resolve@patch:resolve@^1.9.0#builtin<compat/resolve>":
-  version: 1.18.1
-  resolution: "resolve@patch:resolve@npm%3A1.18.1#builtin<compat/resolve>::version=1.18.1&hash=3388aa"
-  dependencies:
-    is-core-module: ^2.0.0
-    path-parse: ^1.0.6
-  checksum: 9e62d2803ad1ec21b13780cc6a45b72bb7b6525eb5b44f0ede7cde37c00a8eb310c06ebfcc7de7dc10c2234d7d271bc4f1eed9783fb87acac141597cd4efaeec
-  languageName: node
-  linkType: hard
-
-"responselike@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "responselike@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fresponselike%2Fdownload%2Fresponselike-2.0.0.tgz"
-  dependencies:
-    lowercase-keys: ^2.0.0
-  checksum: 11d8225dd8bbbd2ab7482c2e54ff2618e346c7d785e66d2ff5da03d6eafa8b33c3a4c6d685324dccf06f36ee2695db9bd2579382548c2a7253d770204694a63d
-  languageName: node
-  linkType: hard
-
-"ret@npm:~0.1.10":
-  version: 0.1.15
-  resolution: "ret@npm:0.1.15::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz"
-  checksum: 749c2fcae7071f5ecea4f8a18e35a79a8e8a58e522a16d843ecb9dfe9e647a76d92ae85c22690b02f87d3ab78b6b1f73341efc2fabbf59ed54dcfd9b1bdff883
-  languageName: node
-  linkType: hard
-
-"retry@npm:^0.12.0":
-  version: 0.12.0
-  resolution: "retry@npm:0.12.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz"
-  checksum: 51f2fddddb2f157a0738c53c515682813a881df566da36992f3cf0a975ea84a19434c5abbc682056e97351540bcc7ea38fce2622d0b191c3b5cc1020b71ea0f2
-  languageName: node
-  linkType: hard
-
-"reusify@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "reusify@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Freusify%2Fdownload%2Freusify-1.0.4.tgz"
-  checksum: 08ef02ed0514f020a51131ba2e6c27c66ccebe25d49cfc83467a0d4054db4634a2853480d0895c710b645ab66af1a6fb3e183888306ae559413bd96c69f39ccd
-  languageName: node
-  linkType: hard
-
-"rimraf@npm:2.6.3":
-  version: 2.6.3
-  resolution: "rimraf@npm:2.6.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz"
-  dependencies:
-    glob: ^7.1.3
-  bin:
-    rimraf: ./bin.js
-  checksum: c9ce1854f19327606934558f4729b0f7aa7b9f1a3e7ca292d56261cce1074e20b0a0b16689166da6d8ab24ed9c30f7c71fba0df38e1d37f0233b6f48307c5c7a
-  languageName: node
-  linkType: hard
-
-"rimraf@npm:^2.6.3":
-  version: 2.7.1
-  resolution: "rimraf@npm:2.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz"
-  dependencies:
-    glob: ^7.1.3
-  bin:
-    rimraf: ./bin.js
-  checksum: 059efac2838ef917d4d1da1d80e724ad28c120cdf14ca6ed27ca72db2dc70be3e25421cba5947c6ec3d804c1d2bb9a247254653816ee0722bf943ffdd1ae19ef
-  languageName: node
-  linkType: hard
-
-"rimraf@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "rimraf@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz"
-  dependencies:
-    glob: ^7.1.3
-  bin:
-    rimraf: bin.js
-  checksum: f0de3e445581e64a8a077af476cc30708e659f5779ec2ca2a161556d0792aa318a685923798ae22055b4ecd02b9aff444ef619578f7af53cf8e0e248031e3dee
-  languageName: node
-  linkType: hard
-
-"rollup-plugin-babel@npm:^4.3.3":
-  version: 4.4.0
-  resolution: "rollup-plugin-babel@npm:4.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-babel%2Fdownload%2Frollup-plugin-babel-4.4.0.tgz"
-  dependencies:
-    "@babel/helper-module-imports": ^7.0.0
-    rollup-pluginutils: ^2.8.1
-  peerDependencies:
-    "@babel/core": 7 || ^7.0.0-rc.2
-    rollup: ">=0.60.0 <3"
-  checksum: 9f82719d1595e4f6770d6d5521f8bd982eace92d97ac258d37c0e2410c3e355f7bb5423ca00a178fe78e6c07facfd20cfa06c25f468d419b3152802e256d6f86
-  languageName: node
-  linkType: hard
-
-"rollup-plugin-terser@npm:^5.3.1":
-  version: 5.3.1
-  resolution: "rollup-plugin-terser@npm:5.3.1"
-  dependencies:
-    "@babel/code-frame": ^7.5.5
-    jest-worker: ^24.9.0
-    rollup-pluginutils: ^2.8.2
-    serialize-javascript: ^4.0.0
-    terser: ^4.6.2
-  peerDependencies:
-    rollup: ">=0.66.0 <3"
-  checksum: 18ebbdc41ae13b89f033314942b104320507133ade4f865d36fc17263662686f459aea2ba7ade6eb069e8630e27fb8183f03e752d9b62f0f6a3cf8a635e71c5f
-  languageName: node
-  linkType: hard
-
-"rollup-pluginutils@npm:^2.8.1, rollup-pluginutils@npm:^2.8.2":
-  version: 2.8.2
-  resolution: "rollup-pluginutils@npm:2.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-pluginutils%2Fdownload%2Frollup-pluginutils-2.8.2.tgz"
-  dependencies:
-    estree-walker: ^0.6.1
-  checksum: 6922c1a26df033cc3da4650106244fb2211b5ddf72a93be5010cbe51a0817c9abcab08f61cbc3f5fc906b2701df123d8c9b0dae0a34e69dd07218e34e5d357b8
-  languageName: node
-  linkType: hard
-
-"rollup@npm:^1.31.1":
-  version: 1.32.1
-  resolution: "rollup@npm:1.32.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-1.32.1.tgz"
-  dependencies:
-    "@types/estree": "*"
-    "@types/node": "*"
-    acorn: ^7.1.0
-  bin:
-    rollup: dist/bin/rollup
-  checksum: fc59b8af482e0729fd720a6be1221f477ae1848fd88b0474d10f805567aa4ad5f16afa9a976c8fd30fd196fcb689b252826cdd138e7a4ad88462547adb5dbf40
-  languageName: node
-  linkType: hard
-
-"run-parallel@npm:^1.1.9":
-  version: 1.1.9
-  resolution: "run-parallel@npm:1.1.9::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.1.9.tgz"
-  checksum: a05ca86e9908b2d2f90d659a0eb4129e040341729fc9ac1fa8971bf0d77ca6ccfb69f9a559cecce9cd541a9328fa4fa19a3faa6d24698d93cf751efb90aec61f
-  languageName: node
-  linkType: hard
-
-"rxjs@npm:^6.6.3":
-  version: 6.6.3
-  resolution: "rxjs@npm:6.6.3"
-  dependencies:
-    tslib: ^1.9.0
-  checksum: 61a3da6db947f69b7d805df3a619d8f60678b7372c4d571dd63e45ef3532be984a88307ea0aa2cd8d2578b62c3c022186e8da9dca47c9c1b8c9ecba6f5581deb
-  languageName: node
-  linkType: hard
-
-"safe-buffer@npm:5.1.2, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
-  version: 5.1.2
-  resolution: "safe-buffer@npm:5.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz"
-  checksum: 2708587c1b5e70a5e420714ceb59f30f5791c6e831d39812125a008eca63a4ac18578abd020a0776ea497ff03b4543f2b2a223a7b9073bf2d6c7af9ec6829218
-  languageName: node
-  linkType: hard
-
-"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0":
-  version: 5.2.1
-  resolution: "safe-buffer@npm:5.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz"
-  checksum: 0bb57f0d8f9d1fa4fe35ad8a2db1f83a027d48f2822d59ede88fd5cd4ddad83c0b497213feb7a70fbf90597a70c5217f735b0eb1850df40ce9b4ae81dd22b3f9
-  languageName: node
-  linkType: hard
-
-"safe-regex@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "safe-regex@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz"
-  dependencies:
-    ret: ~0.1.10
-  checksum: c355e3163fda56bef5ef0896de55ab1e26504def2c7f9ee96ee8b90171a7da7a596048d256e61a51e2d041d9f4625d956d3702ebcfb7627c7a4846896d6ce3a4
-  languageName: node
-  linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
-  version: 2.1.2
-  resolution: "safer-buffer@npm:2.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz"
-  checksum: 549ba83f5b314b59898efe3422120ce1ca7987a6eae5925a5fa5db930dc414d4a9dde0a5594f89638cd6ea60b6840ea961872908933ac2428d1726489db46fa5
-  languageName: node
-  linkType: hard
-
-"sass-loader@npm:^10.0.4":
-  version: 10.0.4
-  resolution: "sass-loader@npm:10.0.4"
-  dependencies:
-    klona: ^2.0.4
-    loader-utils: ^2.0.0
-    neo-async: ^2.6.2
-    schema-utils: ^3.0.0
-    semver: ^7.3.2
-  peerDependencies:
-    fibers: ">= 3.1.0"
-    node-sass: ^4.0.0
-    sass: ^1.3.0
-    webpack: ^4.36.0 || ^5.0.0
-  peerDependenciesMeta:
-    fibers:
-      optional: true
-    node-sass:
-      optional: true
-    sass:
-      optional: true
-  checksum: ec8e0b8a388750a37f044c3fc1ad89a3dd817d68687a5bfc8abd176aef2d3d63e105a9bbf4ed4a1a729bef95986aba72db6f3048dc939460f06c7437f26242a4
-  languageName: node
-  linkType: hard
-
-"sass@npm:^1.27.0":
-  version: 1.27.0
-  resolution: "sass@npm:1.27.0"
-  dependencies:
-    chokidar: ">=2.0.0 <4.0.0"
-  bin:
-    sass: sass.js
-  checksum: db4342b13bbcc5e0f13c1d9139f31c48f9c5a03bdb1c8d8ef7b47d063f5c333a2b69642bd489501cd756f4d0d1da43ee77127938cf9743cc39839952319a705e
-  languageName: node
-  linkType: hard
-
-"scheduler@npm:^0.20.0, scheduler@npm:^0.20.1":
-  version: 0.20.1
-  resolution: "scheduler@npm:0.20.1"
-  dependencies:
-    loose-envify: ^1.1.0
-    object-assign: ^4.1.1
-  checksum: 377b4ad0d8313c4548bac7374bc38409e9d142799979ce396787efa04d1bcabf2591540f243f2131e3df8e56e7f5b29c5415248523e88ecb60f13a32db2e076f
-  languageName: node
-  linkType: hard
-
-"schema-utils@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "schema-utils@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz"
-  dependencies:
-    ajv: ^6.1.0
-    ajv-errors: ^1.0.0
-    ajv-keywords: ^3.1.0
-  checksum: d2f753e7a17c6054cb8c6d0806daeddac73ea2a192e452f506e50af14da1999d1435618b81a616d9f72e1606c0e46bf1870c9b429bce5d3a949d34455e6e54ff
-  languageName: node
-  linkType: hard
-
-"schema-utils@npm:^2.6.5":
-  version: 2.7.0
-  resolution: "schema-utils@npm:2.7.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz"
-  dependencies:
-    "@types/json-schema": ^7.0.4
-    ajv: ^6.12.2
-    ajv-keywords: ^3.4.1
-  checksum: 5d3e7c9e532712bbe0b7ba2f0bdbebc88ca3066c00ceb89877667c3c7b7ea5ee65e0ff7ffbf5164ebda43b0726166d4d39b382e91e9554b7ad2f6b06e77f947d
-  languageName: node
-  linkType: hard
-
-"schema-utils@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "schema-utils@npm:3.0.0"
-  dependencies:
-    "@types/json-schema": ^7.0.6
-    ajv: ^6.12.5
-    ajv-keywords: ^3.5.2
-  checksum: a084f593f222560c412a4d8f40c92386c01c1c709f27c0672c2f02927a4d4d475f57f8b8e91198d0defb452add160476a03f07a05b26200a64b5124fa874e158
-  languageName: node
-  linkType: hard
-
-"secure-compare@npm:3.0.1":
-  version: 3.0.1
-  resolution: "secure-compare@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsecure-compare%2Fdownload%2Fsecure-compare-3.0.1.tgz"
-  checksum: 6444a93f74532ca0628698461fbad281efcb826268f31dcc492823eef4be9c6d9254000e296189f7173db8774f3527e13d0e757020d2c3c683ba64f899c3600e
-  languageName: node
-  linkType: hard
-
-"select-hose@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "select-hose@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselect-hose%2Fdownload%2Fselect-hose-2.0.0.tgz"
-  checksum: 4da089c0225bfddf86d6e3942d822bab66da27c39c72baacab5bb8b1bfa7e5da45b8dfac95bd7fbe2d5b0def50c1383d1701b92f22891400abcd562bb4324af7
-  languageName: node
-  linkType: hard
-
-"selfsigned@npm:^1.10.7":
-  version: 1.10.7
-  resolution: "selfsigned@npm:1.10.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz"
-  dependencies:
-    node-forge: 0.9.0
-  checksum: ef53d4801c5cb67690dba94b105e3d87d243f1b1254c7cc02db51d7cb352ddfece065951874515b7c23d52025c250d9f50d74dbe547ba38cca8d15c5ad4ad5e6
-  languageName: node
-  linkType: hard
-
-"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0":
-  version: 5.7.1
-  resolution: "semver@npm:5.7.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz"
-  bin:
-    semver: ./bin/semver
-  checksum: 06ff0ed753ebf741b7602be8faad620d6e160a2cb3f61019d00d919c8bca141638aa23c34da779b8595afdc9faa3678bfbb5f60366b6a4f65f98cf86605bbcdb
-  languageName: node
-  linkType: hard
-
-"semver@npm:7.0.0":
-  version: 7.0.0
-  resolution: "semver@npm:7.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz"
-  bin:
-    semver: bin/semver.js
-  checksum: 5162b31e9902be1d51d63523eb21d28164d632f527cb0dc439a58d6eaf1a2f3c49c4e2a0f7cf8d650f673638ae34ac7e0c7c2048ff66bc5dc1298ef8551575b5
-  languageName: node
-  linkType: hard
-
-"semver@npm:^6.0.0, semver@npm:^6.3.0":
-  version: 6.3.0
-  resolution: "semver@npm:6.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz"
-  bin:
-    semver: ./bin/semver.js
-  checksum: f0d155c06a67cc7e500c92d929339f1c6efd4ce9fe398aee6acc00a2333489cca0f5b4e76ee7292beba237fcca4b5a3d4a6153471f105f56299801bdab37289f
-  languageName: node
-  linkType: hard
-
-"semver@npm:^7.1.2, semver@npm:^7.2.1, semver@npm:^7.3.2":
-  version: 7.3.2
-  resolution: "semver@npm:7.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz"
-  bin:
-    semver: bin/semver.js
-  checksum: bceb46d396d039afb5be2b2860bce1b0a43ecbadc72dde7ebe9c56dd9035ca50d9b8e086208ff9bbe53773ebde0bcfc6fc0842d7358398bca7054bb9ced801e3
-  languageName: node
-  linkType: hard
-
-"send@npm:0.17.1":
-  version: 0.17.1
-  resolution: "send@npm:0.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsend%2Fdownload%2Fsend-0.17.1.tgz"
-  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
-  checksum: 58e4ab2e07e8dfb206ca954a9b85f4e367aba0e4d59ce4c9c96a82034385b67f25d33ad526fdb69d635744bbe4d8afea06e2c0348d7d32920e3489d86dc3ec6f
-  languageName: node
-  linkType: hard
-
-"serialize-javascript@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "serialize-javascript@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz"
-  dependencies:
-    randombytes: ^2.1.0
-  checksum: f17305aaabab9ae443505d1bf477c13b09adb7031c397d18400bec16f43f788febdd3311ca6043fdebd1d446cfa70a5804ef7268da54351dec51080f56d52fa9
-  languageName: node
-  linkType: hard
-
-"serialize-javascript@npm:^5.0.1":
-  version: 5.0.1
-  resolution: "serialize-javascript@npm:5.0.1"
-  dependencies:
-    randombytes: ^2.1.0
-  checksum: 97eef70a33c75e690b0c6aa2ffe622ecdfc888d3f181a5cf129e5778228dcd100febabc0f41ff793199ee79acd14cbbad0c69f1348a3893580fe424c4718889b
-  languageName: node
-  linkType: hard
-
-"serve-index@npm:^1.9.1":
-  version: 1.9.1
-  resolution: "serve-index@npm:1.9.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-index%2Fdownload%2Fserve-index-1.9.1.tgz"
-  dependencies:
-    accepts: ~1.3.4
-    batch: 0.6.1
-    debug: 2.6.9
-    escape-html: ~1.0.3
-    http-errors: ~1.6.2
-    mime-types: ~2.1.17
-    parseurl: ~1.3.2
-  checksum: 035c0b7d5f0457753cf6fdb3ee7d4eb94fab8abd888780ba4d84feaacc72e462ba369d5dfb92c9f0a8c770f2a13b2de32f36c237eb206fc9e1662ada61b5f489
-  languageName: node
-  linkType: hard
-
-"serve-static@npm:1.14.1":
-  version: 1.14.1
-  resolution: "serve-static@npm:1.14.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fserve-static%2Fdownload%2Fserve-static-1.14.1.tgz"
-  dependencies:
-    encodeurl: ~1.0.2
-    escape-html: ~1.0.3
-    parseurl: ~1.3.3
-    send: 0.17.1
-  checksum: 97e8c94ec02950d019000ca12a8e0b4fdeaaabb7ae965c1c05557b55b48114716ae92688972a8d9f06a5e2d5957c305253a859ec223bb39a1e0732366d0e2768
-  languageName: node
-  linkType: hard
-
-"set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0":
-  version: 2.0.0
-  resolution: "set-blocking@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-blocking%2Fdownload%2Fset-blocking-2.0.0.tgz"
-  checksum: 0ac2403b0c2d39bf452f6d5d17dfd3cb952b9113098e1231cc0614c436e2f465637e39d27cf3b93556f5c59795e9790fd7e98da784c5f9919edeba4295ffeb29
-  languageName: node
-  linkType: hard
-
-"set-value@npm:^2.0.0, set-value@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "set-value@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz"
-  dependencies:
-    extend-shallow: ^2.0.1
-    is-extendable: ^0.1.1
-    is-plain-object: ^2.0.3
-    split-string: ^3.0.1
-  checksum: a97a99a00cc5ed3034ccd690ff4dde167e4182ec4ef2fd5277637a6e388839292559301408b91405534b44e76450bdd443ac95427fde40e9a1a62102c1262bd1
-  languageName: node
-  linkType: hard
-
-"setprototypeof@npm:1.1.0":
-  version: 1.1.0
-  resolution: "setprototypeof@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz"
-  checksum: 8a3fb2ff4bf7daf0f8fb0e52d87d6e3dc387599e1c7a42833fddc1d711e87f7f187a6f957137a435ae154a98877e4357569f1fb48f3d17e96242621cd469e1f6
-  languageName: node
-  linkType: hard
-
-"setprototypeof@npm:1.1.1":
-  version: 1.1.1
-  resolution: "setprototypeof@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz"
-  checksum: 0efed4da5aec7535828ac07c3b560f0a54257a4a7d5390ffabe5530a083974aef577651507974215edb92a51efa142f22fb3242e24d630ba6adcbfc9e7f1ff2b
-  languageName: node
-  linkType: hard
-
-"shallow-equal@npm:^1.1.0":
-  version: 1.2.1
-  resolution: "shallow-equal@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallow-equal%2Fdownload%2Fshallow-equal-1.2.1.tgz"
-  checksum: 5002ac4a3639e35782d3cb21073d48e1e4f85321cc54608f48b2331f6db6d54e4f4b44ed81ec4d75385ebe893e8286752b1e29595381e6adad72dd836f001b7f
-  languageName: node
-  linkType: hard
-
-"shallowequal@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "shallowequal@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshallowequal%2Fdownload%2Fshallowequal-1.1.0.tgz"
-  checksum: 15820dd544ce15521565c366940a46dcbe0f093c1336f6259c7b3e2490ca10135645ee262778f555d3ccc38283207f2f0a41e9a0f26888b5d5159f2904c4ac68
-  languageName: node
-  linkType: hard
-
-"shebang-command@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "shebang-command@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz"
-  dependencies:
-    shebang-regex: ^1.0.0
-  checksum: 2a1e0092a6b80b14ec742ef4e982be8aa670edc7de3e8c68b26744fb535051f7d92518106387b52e9aabe0c1ceae33d23a7dfdb94c3d7f5035c3868b723a2854
-  languageName: node
-  linkType: hard
-
-"shebang-command@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "shebang-command@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-2.0.0.tgz"
-  dependencies:
-    shebang-regex: ^3.0.0
-  checksum: 85aa394d8cedeedf2e03524d6defef67a2b07d3a17d7ee50d4281d62d3fca898f26ebe7aa7bf674d51b80f197aa1d346bc1a10e8efb04377b534f4322c621012
-  languageName: node
-  linkType: hard
-
-"shebang-regex@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "shebang-regex@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-1.0.0.tgz"
-  checksum: cf1a41cb09023e7d39739d7145fcba57c3fabc6728b78ce706f7315cf52dfadf30f7eea664e069224fbcbbfb6ab853bc55ac45f494b47ee73fc209c98487fae5
-  languageName: node
-  linkType: hard
-
-"shebang-regex@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "shebang-regex@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz"
-  checksum: ea18044ffaf18129ced5a246660a9171a7dff98999aaa9de8abb237d8a7711d8a1f76e16881399994ee429156717ce1c6a50c665bb18a4d55a7f80b9125b1f7d
-  languageName: node
-  linkType: hard
-
-"side-channel@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "side-channel@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fside-channel%2Fdownload%2Fside-channel-1.0.2.tgz"
-  dependencies:
-    es-abstract: ^1.17.0-next.1
-    object-inspect: ^1.7.0
-  checksum: cbac23d542734932f164d3b4fdbd0307f97aae96c135c03100ad1d23b2ce2cd887899e94d4c231b0af880760314e381e5ca63d2d56e9fcc43e0d7d535db12624
-  languageName: node
-  linkType: hard
-
-"signal-exit@npm:^3.0.0":
-  version: 3.0.3
-  resolution: "signal-exit@npm:3.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz"
-  checksum: f8f3fec95c8d1f9ad7e3cce07e1195f84e7a85cdcb4e825e8a2b76aa5406a039083d2bc9662b3cf40e6948262f41277047d20e6fbd58c77edced0b18fab647d8
-  languageName: node
-  linkType: hard
-
-"signal-exit@npm:^3.0.2":
-  version: 3.0.3
-  resolution: "signal-exit@npm:3.0.3"
-  checksum: f8f3fec95c8d1f9ad7e3cce07e1195f84e7a85cdcb4e825e8a2b76aa5406a039083d2bc9662b3cf40e6948262f41277047d20e6fbd58c77edced0b18fab647d8
-  languageName: node
-  linkType: hard
-
-"slash@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "slash@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz"
-  checksum: fc3e8597d822ee3ba6cd76e9b001cd5be315f9b81c3a03a29bb611c003d1484e3b29a9e7bc020298fa669b585ff7c9268f44513f60c186216eb6af3111a3e838
-  languageName: node
-  linkType: hard
-
-"slice-ansi@npm:^2.1.0":
-  version: 2.1.0
-  resolution: "slice-ansi@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz"
-  dependencies:
-    ansi-styles: ^3.2.0
-    astral-regex: ^1.0.0
-    is-fullwidth-code-point: ^2.0.0
-  checksum: 7578393cac91c28f8cb5fa5df36b826ad62c9e66313d2547770db8401570fa8f4aa20cd84ef9244fa054d8e9cc6bfc02578784bb89b238d384b99f2728a35a6d
-  languageName: node
-  linkType: hard
-
-"snapdragon-node@npm:^2.0.1":
-  version: 2.1.1
-  resolution: "snapdragon-node@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-node%2Fdownload%2Fsnapdragon-node-2.1.1.tgz"
-  dependencies:
-    define-property: ^1.0.0
-    isobject: ^3.0.0
-    snapdragon-util: ^3.0.1
-  checksum: 75918b0d6061b6acf2b9a9833b8ba7cef068df141925e790269f25f0a33d1ceb9a0ebfc39286891c112bfffbbf87744223127dba53f55e85318e335e324b65b9
-  languageName: node
-  linkType: hard
-
-"snapdragon-util@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "snapdragon-util@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon-util%2Fdownload%2Fsnapdragon-util-3.0.1.tgz"
-  dependencies:
-    kind-of: ^3.2.0
-  checksum: d1a7ab4171376f2caacae601372dacf7fdad055e63f5e7eb3e9bd87f069b41d6fc8f54726d26968682e1ba448d5de80e94f7613d9b708646b161c4789988fa75
-  languageName: node
-  linkType: hard
-
-"snapdragon@npm:^0.8.1":
-  version: 0.8.2
-  resolution: "snapdragon@npm:0.8.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz"
-  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
-  checksum: c30b63a732bf37dbd2147bf57b4d9eac651ab7b313d1521f73855154b2c2f5a3f2ad18bd47e21cc64b6991f868ecb2a99f8da973ca86da39956f1f0f720b7033
-  languageName: node
-  linkType: hard
-
-"sockjs-client@npm:1.4.0":
-  version: 1.4.0
-  resolution: "sockjs-client@npm:1.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz"
-  dependencies:
-    debug: ^3.2.5
-    eventsource: ^1.0.7
-    faye-websocket: ~0.11.1
-    inherits: ^2.0.3
-    json3: ^3.3.2
-    url-parse: ^1.4.3
-  checksum: efe7e7bcf2758f5ab3947f750b9909ea442022911dfad5883f5133085b587d0ac96f579a0463be8ea0613d1d4c5ee68af33b0896b58b4b7734571d9290b6c1c0
-  languageName: node
-  linkType: hard
-
-"sockjs@npm:0.3.20":
-  version: 0.3.20
-  resolution: "sockjs@npm:0.3.20::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs%2Fdownload%2Fsockjs-0.3.20.tgz"
-  dependencies:
-    faye-websocket: ^0.10.0
-    uuid: ^3.4.0
-    websocket-driver: 0.6.5
-  checksum: 9a8596f800e66bdb718165e1e51bb20d04ebf2f9f837cb459a83060b78230ae787bb6bbbc75ded3c20409b935a6cf0e03fc762cf26b558cc1f7b557b6acc9fbc
-  languageName: node
-  linkType: hard
-
-"source-list-map@npm:^2.0.0":
-  version: 2.0.1
-  resolution: "source-list-map@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-list-map%2Fdownload%2Fsource-list-map-2.0.1.tgz"
-  checksum: d8d45f29987d00d995ccda308dcc78b710031a9958fdb5d26674d32220c952eb7a8562062638d91896628ae4eef30e1cd112a6a547563dfda0b013024c2a9bf7
-  languageName: node
-  linkType: hard
-
-"source-list-map@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "source-list-map@npm:2.0.1"
-  checksum: d8d45f29987d00d995ccda308dcc78b710031a9958fdb5d26674d32220c952eb7a8562062638d91896628ae4eef30e1cd112a6a547563dfda0b013024c2a9bf7
-  languageName: node
-  linkType: hard
-
-"source-map-resolve@npm:^0.5.0":
-  version: 0.5.3
-  resolution: "source-map-resolve@npm:0.5.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz"
-  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
-  checksum: 042ad0c0ba70458ba45fc8726a4eb61068ca0a5273578994803e25fc0fb8da00854cf5004616c9b6d0cb7fcd528c50313789d75dfc56a2f5c789cbd332bf4331
-  languageName: node
-  linkType: hard
-
-"source-map-support@npm:~0.5.12":
-  version: 0.5.19
-  resolution: "source-map-support@npm:0.5.19::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz"
-  dependencies:
-    buffer-from: ^1.0.0
-    source-map: ^0.6.0
-  checksum: 59d4efaae97755155b078413ecba63517e3ef054cc7ab767bbd30e6f3054be2ae8e8f5cce7eef53b7eb93e98fe27a58dd8f5e7abfb13144ba420ddaf5267bbb2
-  languageName: node
-  linkType: hard
-
-"source-map-support@npm:~0.5.19":
-  version: 0.5.19
-  resolution: "source-map-support@npm:0.5.19"
-  dependencies:
-    buffer-from: ^1.0.0
-    source-map: ^0.6.0
-  checksum: 59d4efaae97755155b078413ecba63517e3ef054cc7ab767bbd30e6f3054be2ae8e8f5cce7eef53b7eb93e98fe27a58dd8f5e7abfb13144ba420ddaf5267bbb2
-  languageName: node
-  linkType: hard
-
-"source-map-url@npm:^0.4.0":
-  version: 0.4.0
-  resolution: "source-map-url@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.0.tgz"
-  checksum: 84d509cfa1f6f5e0d2a36e17b8097422954e3007fbe4b741c2f1ec91551ac5493ffa0c21862a54bb8e0d31701fe2cba1129aced695f515d35d375bfad755eb98
-  languageName: node
-  linkType: hard
-
-"source-map@npm:^0.5.0, source-map@npm:^0.5.6":
-  version: 0.5.7
-  resolution: "source-map@npm:0.5.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz"
-  checksum: 737face96577a2184a42f141607fcc2c9db5620cb8517ae8ab3924476defa138fc26b0bab31e98cbd6f19211ecbf78400b59f801ff7a0f87aa9faa79f7433e10
-  languageName: node
-  linkType: hard
-
-"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
-  version: 0.6.1
-  resolution: "source-map@npm:0.6.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz"
-  checksum: 8647829a0611724114022be455ca1c8a2c8ae61df81c5b3667d9b398207226a1e21174fb7bbf0b4dbeb27ac358222afb5a14f1c74a62a62b8883b012e5eb1270
-  languageName: node
-  linkType: hard
-
-"source-map@npm:^0.7.3":
-  version: 0.7.3
-  resolution: "source-map@npm:0.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz"
-  checksum: 351ce26ffa1ebf203660c0d70d7566c81e65d2d994d1c2d94da140808e02da34961673ce12ecea9b40797b96fbeb8c70bf71a4ad9f779f1a4fdbba75530bb386
-  languageName: node
-  linkType: hard
-
-"source-map@npm:~0.7.2":
-  version: 0.7.3
-  resolution: "source-map@npm:0.7.3"
-  checksum: 351ce26ffa1ebf203660c0d70d7566c81e65d2d994d1c2d94da140808e02da34961673ce12ecea9b40797b96fbeb8c70bf71a4ad9f779f1a4fdbba75530bb386
-  languageName: node
-  linkType: hard
-
-"sourcemap-codec@npm:^1.4.4":
-  version: 1.4.8
-  resolution: "sourcemap-codec@npm:1.4.8::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz"
-  checksum: 4d56d1232a45af813606d1755f11e7ae6b3542c615a7e3f904382f0134a9412ba8d090e83749254d78449eafdfcc62d5158b8f35e6241480b51b74b5c46b99f9
-  languageName: node
-  linkType: hard
-
-"spdx-correct@npm:^3.0.0":
-  version: 3.1.1
-  resolution: "spdx-correct@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz"
-  dependencies:
-    spdx-expression-parse: ^3.0.0
-    spdx-license-ids: ^3.0.0
-  checksum: f3413eb225ef9f13aa2ec05230ff7669bffad055a7f62ec85164dd27f00a9f1e19880554a8fa5350fc434764ff895836c207f98813511a0180b0e929581bfe01
-  languageName: node
-  linkType: hard
-
-"spdx-exceptions@npm:^2.1.0":
-  version: 2.3.0
-  resolution: "spdx-exceptions@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz"
-  checksum: 3cbd2498897dc384158666a9dd7435e3b42ece5da42fd967b218b790e248381d001ec77a676d13d1f4e8da317d97b7bc0ebf4fff37bfbb95923d49b024030c96
-  languageName: node
-  linkType: hard
-
-"spdx-expression-parse@npm:^3.0.0":
-  version: 3.0.1
-  resolution: "spdx-expression-parse@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-expression-parse%2Fdownload%2Fspdx-expression-parse-3.0.1.tgz"
-  dependencies:
-    spdx-exceptions: ^2.1.0
-    spdx-license-ids: ^3.0.0
-  checksum: f0211cada3fa7cd9db2243143fb0e66e28a46d72d8268f38ad2196aac49408d87892cda6e5600d43d6b05ed2707cb2f4148deb27b092aafabc50a67038f4cbf5
-  languageName: node
-  linkType: hard
-
-"spdx-license-ids@npm:^3.0.0":
-  version: 3.0.5
-  resolution: "spdx-license-ids@npm:3.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.5.tgz"
-  checksum: 4ff7c0615a3c69a195b206a425e6a633ccb24e680ac21f5464b249b57ebb5c3f356f84a8e713599758be69ee4a849319d7fce7041b69e29acd9d31daed3fb8eb
-  languageName: node
-  linkType: hard
-
-"spdy-transport@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "spdy-transport@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy-transport%2Fdownload%2Fspdy-transport-3.0.0.tgz"
-  dependencies:
-    debug: ^4.1.0
-    detect-node: ^2.0.4
-    hpack.js: ^2.1.6
-    obuf: ^1.1.2
-    readable-stream: ^3.0.6
-    wbuf: ^1.7.3
-  checksum: e717ce9d76a03052205950632cb316e4de863764fd968404820cb84f4a93da259e43d5c973c3444847157a41ad6316ffdd7a2862454a7862ebd84388d1ce6e2a
-  languageName: node
-  linkType: hard
-
-"spdy@npm:^4.0.2":
-  version: 4.0.2
-  resolution: "spdy@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz"
-  dependencies:
-    debug: ^4.1.0
-    handle-thing: ^2.0.0
-    http-deceiver: ^1.2.7
-    select-hose: ^2.0.0
-    spdy-transport: ^3.0.0
-  checksum: 388d39324d706a0a73d1d16fa93397029b3eb47ff2aaa3ad58c3d9c7682ce53eb847795560dc08190b7e3f8404e8bf4814ff3fd74cf0c849796310f1cd8a5f92
-  languageName: node
-  linkType: hard
-
-"split-string@npm:^3.0.1, split-string@npm:^3.0.2":
-  version: 3.1.0
-  resolution: "split-string@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsplit-string%2Fdownload%2Fsplit-string-3.1.0.tgz"
-  dependencies:
-    extend-shallow: ^3.0.0
-  checksum: 9b610d1509f8213dad7d38b5f0b49109ab53c2a93e7886c370a66b9eeb723706cd01b04b61b3d906ff6369314429412f8fad54b93d57fa50103d85884f0c175f
-  languageName: node
-  linkType: hard
-
-"sprintf-js@npm:~1.0.2":
-  version: 1.0.3
-  resolution: "sprintf-js@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz"
-  checksum: 51df1bce9e577287f56822d79ac5bd94f6c634fccf193895f2a1d2db2e975b6aa7bc97afae9cf11d49b7c37fe4afc188ff5c4878be91f2c86eabd11c5df8b62c
-  languageName: node
-  linkType: hard
-
-"sshpk@npm:^1.7.0":
-  version: 1.16.1
-  resolution: "sshpk@npm:1.16.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsshpk%2Fdownload%2Fsshpk-1.16.1.tgz"
-  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
-  bin:
-    sshpk-conv: bin/sshpk-conv
-    sshpk-sign: bin/sshpk-sign
-    sshpk-verify: bin/sshpk-verify
-  checksum: 4bd7422634ec3730404186179e5d9ba913accc64449f18d594b3a757a3b81000719adc94cf0c93a7b3da42487ae42404a1f37bfaa7908a60743d4478382b9d78
-  languageName: node
-  linkType: hard
-
-"ssri@npm:^8.0.0":
-  version: 8.0.0
-  resolution: "ssri@npm:8.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz"
-  dependencies:
-    minipass: ^3.1.1
-  checksum: 97964745a80846b4a50d4506b10b08d35384c3cec482d687cae5f4b7c842afe239c8c368d620f5d7d92642ab75379b409aa809072c2b8e94ec15d9c70d843da5
-  languageName: node
-  linkType: hard
-
-"static-extend@npm:^0.1.1":
-  version: 0.1.2
-  resolution: "static-extend@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-extend%2Fdownload%2Fstatic-extend-0.1.2.tgz"
-  dependencies:
-    define-property: ^0.2.5
-    object-copy: ^0.1.0
-  checksum: c42052c35259769fabbede527b2ae81962b53cf3b7a5cb07bd5b0b295777641ba81ddb2f4a62df9970c96303357fc6ffb90f61a4a9e127e6e42c7895af9cd5ce
-  languageName: node
-  linkType: hard
-
-"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0":
-  version: 1.5.0
-  resolution: "statuses@npm:1.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz"
-  checksum: 57735269bf231176a60deb80f6d60214cb4a87663b0937e79497afe9aebe2597f8377fd28893f4d1776205f18dd0b927774a26b72051411ac5108e9e2dfc77d2
-  languageName: node
-  linkType: hard
-
-"stream-buffers@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "stream-buffers@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-buffers%2Fdownload%2Fstream-buffers-3.0.2.tgz"
-  checksum: 340a04fc135ac618a3b8c4069b444bf71dd55ac18c6ec1370acd62bad4c0c9f84935b7b10f4b4fac358669855d26dccedc96bc26590cae35be2d68c1620973b0
-  languageName: node
-  linkType: hard
-
-"stream-to-array@npm:~2.3.0":
-  version: 2.3.0
-  resolution: "stream-to-array@npm:2.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-array%2Fdownload%2Fstream-to-array-2.3.0.tgz"
-  dependencies:
-    any-promise: ^1.1.0
-  checksum: b313d7dfa5230674ffd3442ae985d64b9f95ad7d122aa7d3fd9ebe21bf7129548afda51dda2af781e2cd31c84911253bbf549061e96a63941a45686329ccba3f
-  languageName: node
-  linkType: hard
-
-"stream-to-promise@npm:^2.2.0":
-  version: 2.2.0
-  resolution: "stream-to-promise@npm:2.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-to-promise%2Fdownload%2Fstream-to-promise-2.2.0.tgz"
-  dependencies:
-    any-promise: ~1.3.0
-    end-of-stream: ~1.1.0
-    stream-to-array: ~2.3.0
-  checksum: 1f26f85d571d94a308f9332c79f2652697f9893733e3a2aebca1aaaf4d2a0d0655150b8b0a88105256a50510d9e9b8a0b1e5d9139b464ee1f9285be3647c3b83
-  languageName: node
-  linkType: hard
-
-"string-width@npm:^1.0.1, string-width@npm:^1.0.2 || 2":
-  version: 1.0.2
-  resolution: "string-width@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz"
-  dependencies:
-    code-point-at: ^1.0.0
-    is-fullwidth-code-point: ^1.0.0
-    strip-ansi: ^3.0.0
-  checksum: b11745daa9398a1b3bb37ffa64263f9869c5f790901ed1242decb08171785346447112ead561cffde6b222a5ebeab9d2b382c72ae688859e852aa29325ca9d0b
-  languageName: node
-  linkType: hard
-
-"string-width@npm:^3.0.0, string-width@npm:^3.1.0":
-  version: 3.1.0
-  resolution: "string-width@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz"
-  dependencies:
-    emoji-regex: ^7.0.1
-    is-fullwidth-code-point: ^2.0.0
-    strip-ansi: ^5.1.0
-  checksum: 54c5d1842dc122d8e0251ad50e00e91c06368f1aca44f41a67cd5ce013c4ba8f5a26f1b7f72a3e1644f38c62092a82c86b646aff514073894faf84b9564a38a0
-  languageName: node
-  linkType: hard
-
-"string.prototype.matchall@npm:^4.0.2":
-  version: 4.0.2
-  resolution: "string.prototype.matchall@npm:4.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.2.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.0
-    has-symbols: ^1.0.1
-    internal-slot: ^1.0.2
-    regexp.prototype.flags: ^1.3.0
-    side-channel: ^1.0.2
-  checksum: 0ca2937d28a80ad10b3173ff8e2f4ac0aa101b127b8256c3a6e749b7ab619e250208848c7fd9a740760df7e94c5b225fc6d0830e0f9d0e1ef615f3149cd194a9
-  languageName: node
-  linkType: hard
-
-"string.prototype.trimend@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "string.prototype.trimend@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.5
-  checksum: 93046463de6a3b4ae27d0622ae8795239c8d372b1be1a60122fce591bf7578b719becf00bf04326642a868bc6185f35901119b61a246509dd0dc0666b2a803ed
-  languageName: node
-  linkType: hard
-
-"string.prototype.trimstart@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "string.prototype.trimstart@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz"
-  dependencies:
-    define-properties: ^1.1.3
-    es-abstract: ^1.17.5
-  checksum: 20c4a940f1ba65b0aa5abf0c319dceba4fbf04d24553583b0b82eba2711815d1e40663ce36175ed06475701dbe797cac81be1ec1dc4bb4416b2077e8b0409036
-  languageName: node
-  linkType: hard
-
-"string_decoder@npm:^1.1.1":
-  version: 1.3.0
-  resolution: "string_decoder@npm:1.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.3.0.tgz"
-  dependencies:
-    safe-buffer: ~5.2.0
-  checksum: 0a09afb610cb538707fcf0a50a080f159040529eabdba82f23b04f1d1f90adf9ba18cc3800231c6ab2ee55dece047f4bed87c56da52b2afd85c3c7fb73eb7e48
-  languageName: node
-  linkType: hard
-
-"string_decoder@npm:~1.1.1":
-  version: 1.1.1
-  resolution: "string_decoder@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring_decoder%2Fdownload%2Fstring_decoder-1.1.1.tgz"
-  dependencies:
-    safe-buffer: ~5.1.0
-  checksum: bc2dc169d83df1b9e94defe7716bcad8a19ffe8211b029581cb0c6f9e83a6a7ba9ec3be38d179708a8643c692868a2b8b004ab159555dc26089ad3fa7b2158f5
-  languageName: node
-  linkType: hard
-
-"stringify-object@npm:^3.3.0":
-  version: 3.3.0
-  resolution: "stringify-object@npm:3.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstringify-object%2Fdownload%2Fstringify-object-3.3.0.tgz"
-  dependencies:
-    get-own-enumerable-property-symbols: ^3.0.0
-    is-obj: ^1.0.1
-    is-regexp: ^1.0.0
-  checksum: 4b0a6802f0294a3a340f31822a0802a4945f12b0823e640c9a3dd64b487abf0a0e7099b43d6133a9aa28a9b99ffe187ee5e066f0798ea60019c87e156bcaf6d3
-  languageName: node
-  linkType: hard
-
-"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
-  version: 3.0.1
-  resolution: "strip-ansi@npm:3.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz"
-  dependencies:
-    ansi-regex: ^2.0.0
-  checksum: 98772dcf440d08f65790ee38cd186b1f139fa69b430e75f9d9c11f97058662f82a22c2ba03a30f502f948958264e99051524fbf1819edaa8a8bbb909ece297da
-  languageName: node
-  linkType: hard
-
-"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0, strip-ansi@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "strip-ansi@npm:5.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz"
-  dependencies:
-    ansi-regex: ^4.1.0
-  checksum: 44a0d0d354f5f7b15f83323879a9112ea746daae7bef0b68238a27626ee757d9a04ce6590433841e14b325e8e7c5d62b8442885e50497e21b7cbca6da40d54ea
-  languageName: node
-  linkType: hard
-
-"strip-ansi@npm:^6.0.0":
-  version: 6.0.0
-  resolution: "strip-ansi@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz"
-  dependencies:
-    ansi-regex: ^5.0.0
-  checksum: 10568c91cadbef182a807c38dfa718dce15a35b12fcc97b96b6b2029d0508ef66ca93fabddeb49482d9b027495d1e18591858e80f27ad26861c4967c60fd207f
-  languageName: node
-  linkType: hard
-
-"strip-bom@npm:^3.0.0":
-  version: 3.0.0
-  resolution: "strip-bom@npm:3.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz"
-  checksum: 361dd1dd08ae626940061570d20bcf73909d0459734b8880eb3d14176aa28f41cf85d13af036c323ce739e04ef3930a71b516950c5985b318bae3757ecb2974c
-  languageName: node
-  linkType: hard
-
-"strip-comments@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "strip-comments@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-comments%2Fdownload%2Fstrip-comments-1.0.2.tgz"
-  dependencies:
-    babel-extract-comments: ^1.0.0
-    babel-plugin-transform-object-rest-spread: ^6.26.0
-  checksum: 21d667d3ba6dc0e0cd377c64856e51a8399ea2e4b3e43df6f356c0e0a7bc7b6cf962d7069a1e9d0f2d72a67d2fe4b3b85e0e3dea23d71aa518b318744159326a
-  languageName: node
-  linkType: hard
-
-"strip-eof@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "strip-eof@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-eof%2Fdownload%2Fstrip-eof-1.0.0.tgz"
-  checksum: 905cd8718ad2e7b3a9c4bc6a9ed409c38b8cef638845a9471884547de0dbe611828d584e749a38d3eebc2d3c830ea9c619d78875a639b7413d93080661807376
-  languageName: node
-  linkType: hard
-
-"strip-final-newline@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "strip-final-newline@npm:2.0.0"
-  checksum: 74dbd8a602409706748db730200efab53ba739ed7888310e74e45697efbd760981df6d6f0fa34b23e973135fb07d3b22adae6e6d58898f692a094e49692c6c33
-  languageName: node
-  linkType: hard
-
-"strip-json-comments@npm:^3.1.0":
-  version: 3.1.1
-  resolution: "strip-json-comments@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz"
-  checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206
-  languageName: node
-  linkType: hard
-
-"strip-json-comments@npm:^3.1.1":
-  version: 3.1.1
-  resolution: "strip-json-comments@npm:3.1.1"
-  checksum: f16719ce25abc58a55ef82b1c27f541dcfa5d544f17158f62d10be21ff9bd22fde45a53c592b29d80ad3c97ccb67b7451c4833913fdaeadb508a40f5e0a9c206
-  languageName: node
-  linkType: hard
-
-"style-loader@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "style-loader@npm:2.0.0"
-  dependencies:
-    loader-utils: ^2.0.0
-    schema-utils: ^3.0.0
-  peerDependencies:
-    webpack: ^4.0.0 || ^5.0.0
-  checksum: ffc305488244ab499f91b05a1c94dd199b8b106d69e260ce38bd599819bbb352357e107bef3c319b775b9fb0eaed571cb68f8c7940e457553f85a980f4b630d8
-  languageName: node
-  linkType: hard
-
-"supports-color@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "supports-color@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz"
-  checksum: 5d6fb449e29f779cc639756f0d6b9ab6138048e753683cd2c647f36a9254714051909a5f569e6aa83c5310c8dfe8a1f481967e02bef401ac8eed46ee0950d779
-  languageName: node
-  linkType: hard
-
-"supports-color@npm:^5.3.0":
-  version: 5.5.0
-  resolution: "supports-color@npm:5.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz"
-  dependencies:
-    has-flag: ^3.0.0
-  checksum: edacee6425498440744c418be94b0660181aad2a1828bcf2be85c42bd385da2fd8b2b358d9b62b0c5b03ff5cd3e992458d7b8f879d9fb42f2201fe05a4848a29
-  languageName: node
-  linkType: hard
-
-"supports-color@npm:^6.1.0":
-  version: 6.1.0
-  resolution: "supports-color@npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz"
-  dependencies:
-    has-flag: ^3.0.0
-  checksum: 86821571295ad9f808d5e0149f13c2b0ca6faaf1325c427b369e6f4b2b1e4759046b7a4ea0e3c3c7f2546035fa2fb0d6a90f31c6c4f751eaedbcdc1b983a08cc
-  languageName: node
-  linkType: hard
-
-"supports-color@npm:^7.0.0":
-  version: 7.2.0
-  resolution: "supports-color@npm:7.2.0"
-  dependencies:
-    has-flag: ^4.0.0
-  checksum: 8e57067c39216f3c2ffce7cc14ca934d54746192571203aa9c9922d97d2d55cc1bdaa9e41a11f91e620670b5a74ebdec6b548a885d8cc2dea7cab59e21416029
-  languageName: node
-  linkType: hard
-
-"supports-color@npm:^7.1.0":
-  version: 7.1.0
-  resolution: "supports-color@npm:7.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz"
-  dependencies:
-    has-flag: ^4.0.0
-  checksum: 6130f36b2a71f73014a6ef306bbaa5415d8daa5c0294082762a0505e4fb6800b8a9d037b60ed54f0c69cdfc37860034047d6004481c21f22dd43151b5e9334f0
-  languageName: node
-  linkType: hard
-
-"table-layout@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "table-layout@npm:1.0.1"
-  dependencies:
-    array-back: ^4.0.1
-    deep-extend: ~0.6.0
-    typical: ^5.2.0
-    wordwrapjs: ^4.0.0
-  checksum: b2e899f60f2ad5c161bf31ca5b1d886b3b1eeb1dca69e71d3492cdfd8c4be51251b978f692bcf76364be2a4a37cc3b353539f4006471b202647813bce0179a70
-  languageName: node
-  linkType: hard
-
-"table@npm:^5.2.3":
-  version: 5.4.6
-  resolution: "table@npm:5.4.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftable%2Fdownload%2Ftable-5.4.6.tgz"
-  dependencies:
-    ajv: ^6.10.2
-    lodash: ^4.17.14
-    slice-ansi: ^2.1.0
-    string-width: ^3.0.0
-  checksum: 38877a196c0a57b955e4965fa3ff1cede38649b6e1f6286aa5435579dfd01663fdf8d19c87510e67a79474d75ae0144a0819f2054d654c45d7f525270aafe56b
-  languageName: node
-  linkType: hard
-
-"tapable@npm:^1.0.0, tapable@npm:^1.1.3":
-  version: 1.1.3
-  resolution: "tapable@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz"
-  checksum: b2c2ab20260394b867fd249d8b6ab3e4645e00f9cce16b558b0de5a86291ef05f536f578744549d1618c9032c7f99bc1d6f68967e4aa11cb0dca4461dc4714bc
-  languageName: node
-  linkType: hard
-
-"tapable@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "tapable@npm:2.0.0"
-  checksum: e6321280f9ace1043b2d2e893b998454227f27da05e5e1f7c92a67752d6a87e2ca529aeb516f31a21c1a92d2532a77518423b7df7aaf7acd3a8df925f02b4c66
-  languageName: node
-  linkType: hard
-
-"tar-stream@npm:^2.0.1":
-  version: 2.1.3
-  resolution: "tar-stream@npm:2.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar-stream%2Fdownload%2Ftar-stream-2.1.3.tgz"
-  dependencies:
-    bl: ^4.0.1
-    end-of-stream: ^1.4.1
-    fs-constants: ^1.0.0
-    inherits: ^2.0.3
-    readable-stream: ^3.1.1
-  checksum: 57d2284615ee76ae5e41bcb8a1cb61c00b9ba514a1b8b86168d53967ea0f45581a3f00c8bdf7653fbd208490edea69ff39caaa845d7e04420cdddd56bea17e92
-  languageName: node
-  linkType: hard
-
-"tar@npm:^6.0.1, tar@npm:^6.0.2":
-  version: 6.0.2
-  resolution: "tar@npm:6.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.2.tgz"
-  dependencies:
-    chownr: ^2.0.0
-    fs-minipass: ^2.0.0
-    minipass: ^3.0.0
-    minizlib: ^2.1.0
-    mkdirp: ^1.0.3
-    yallist: ^4.0.0
-  checksum: 7d28cc13d74a87d0dcd9fa89038225f171e506882f9e4d6f44bfd3943f868e6ae9f46a6f03c82cca8ad2d4dde3384862cb7e789bfa06e3af602eec561c765787
-  languageName: node
-  linkType: hard
-
-"temp-dir@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "temp-dir@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-dir%2Fdownload%2Ftemp-dir-1.0.0.tgz"
-  checksum: 4cc703b6ac3a3989c9da69c1b861babddff5e14a7913c26b4933049983a2d8392d3c6bbfa4bbd2ec4b9762a2460e8e7599f827dbc7c8ef1662e6e905d0f92b0b
-  languageName: node
-  linkType: hard
-
-"tempy@npm:^0.3.0":
-  version: 0.3.0
-  resolution: "tempy@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftempy%2Fdownload%2Ftempy-0.3.0.tgz"
-  dependencies:
-    temp-dir: ^1.0.0
-    type-fest: ^0.3.1
-    unique-string: ^1.0.0
-  checksum: 487b16624f9179b7ccd36684d330d0986861cd3e6bbc3875cae5728067b470c6e6fbe87dc2189874d8f4f5142c2782cd168f82bf2a22368b66f68312352d0ff1
-  languageName: node
-  linkType: hard
-
-"terser-webpack-plugin@npm:^5.0.0":
-  version: 5.0.1
-  resolution: "terser-webpack-plugin@npm:5.0.1"
-  dependencies:
-    jest-worker: ^26.6.1
-    p-limit: ^3.0.2
-    schema-utils: ^3.0.0
-    serialize-javascript: ^5.0.1
-    source-map: ^0.6.1
-    terser: ^5.3.8
-  peerDependencies:
-    webpack: ^5.1.0
-  checksum: 23dfddfcbaa72b0eb4ee2f2af56ec1d72498f4cf4b17a29712cfa4edd7ce5e4dbc7577f1c69835d32ce104672d77559b0b401a0534f67706f0919cf275e47ace
-  languageName: node
-  linkType: hard
-
-"terser@npm:^4.6.2, terser@npm:^4.6.3":
-  version: 4.8.0
-  resolution: "terser@npm:4.8.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz"
-  dependencies:
-    commander: ^2.20.0
-    source-map: ~0.6.1
-    source-map-support: ~0.5.12
-  bin:
-    terser: bin/terser
-  checksum: d7ab95898b40e2aa3513b02fc74f520f8e65072a19d7f687b8224af01512ad4d2227bc1375c22cd050f67eb1ca3e440b4f09652c5f48f13ed9ee81c0c26015a3
-  languageName: node
-  linkType: hard
-
-"terser@npm:^5.3.8":
-  version: 5.3.8
-  resolution: "terser@npm:5.3.8"
-  dependencies:
-    commander: ^2.20.0
-    source-map: ~0.7.2
-    source-map-support: ~0.5.19
-  bin:
-    terser: bin/terser
-  checksum: 3fc070378ba9981d8088a4012060f16428a97dc8f98d5a731b2ab51b8c9bc8cb651ca068aef499faad863584ae4d4883872c4f51db053bc2575c2e0bc11ab411
-  languageName: node
-  linkType: hard
-
-"text-table@npm:^0.2.0":
-  version: 0.2.0
-  resolution: "text-table@npm:0.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz"
-  checksum: 373904ce70524ba11ec7e1905c44fb92671132d5e0b0aba2fb48057161f8bf9cbf7f6178f0adf31810150cf44fb52c7b912dc722bff3fddf9688378596dbeb56
-  languageName: node
-  linkType: hard
-
-"thunky@npm:^1.0.2":
-  version: 1.1.0
-  resolution: "thunky@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz"
-  checksum: eceb856b6412ecd02c24731a2441698aa57622e03b0a4d6d1dea47d7b173aca54980fd2fba5b3a2e11ccec48373c46483f7f55a46717bfc07645395fa57267a6
-  languageName: node
-  linkType: hard
-
-"timeline@workspace:.":
-  version: 0.0.0-use.local
-  resolution: "timeline@workspace:."
-  dependencies:
-    "@babel/core": ^7.12.3
-    "@babel/plugin-proposal-class-properties": ^7.12.1
-    "@babel/plugin-proposal-decorators": ^7.12.1
-    "@babel/plugin-proposal-nullish-coalescing-operator": ^7.12.1
-    "@babel/plugin-proposal-optional-chaining": ^7.12.1
-    "@babel/plugin-syntax-dynamic-import": ^7.8.3
-    "@babel/preset-env": ^7.12.1
-    "@babel/preset-react": ^7.12.1
-    "@babel/preset-typescript": ^7.12.1
-    "@hot-loader/react-dom": ^17.0.0
-    "@types/classnames": ^2.2.10
-    "@types/lodash": ^4.14.162
-    "@types/node": ^14.14.5
-    "@types/react": ^16.9.53
-    "@types/react-dom": ^16.9.8
-    "@types/react-responsive": ^8.0.2
-    "@types/react-router": ^5.1.8
-    "@types/react-router-bootstrap": ^0.24.5
-    "@types/react-router-dom": ^5.1.6
-    "@types/webpack-env": ^1.15.3
-    "@types/xregexp": ^4.3.0
-    "@typescript-eslint/eslint-plugin": ^4.6.0
-    "@typescript-eslint/parser": ^4.6.0
-    "@yarnpkg/pnpify": ^2.3.3
-    axios: ^0.21.0
-    babel-loader: ^8.1.0
-    babel-plugin-transform-builtin-extend: ^1.1.2
-    bootstrap: ^4.5.3
-    bootstrap-icons: ^1.0.0
-    classnames: ^2.2.6
-    clean-webpack-plugin: ^3.0.0
-    clsx: ^1.1.1
-    copy-webpack-plugin: ^6.2.1
-    core-js: ^3.6.5
-    css-loader: ^5.0.0
-    eslint: ^7.12.1
-    eslint-config-prettier: ^6.14.0
-    eslint-plugin-import: ^2.22.1
-    eslint-plugin-prettier: ^3.1.4
-    eslint-plugin-react: ^7.21.5
-    eslint-plugin-react-hooks: ^4.2.0
-    file-loader: ^6.1.1
-    html-webpack-plugin: ^4.5.0
-    http-server: ^0.12.3
-    i18next: ^19.8.3
-    i18next-browser-languagedetector: ^6.0.1
-    localforage: ^1.9.0
-    lodash: ^4.17.20
-    mini-css-extract-plugin: ^1.2.0
-    pepjs: ^0.5.2
-    postcss: ^8.1.4
-    postcss-loader: ^4.0.4
-    postcss-preset-env: ^6.7.0
-    prettier: ^2.1.2
-    react: ^17.0.1
-    react-bootstrap: ^1.4.0
-    react-dom: ^17.0.1
-    react-hot-loader: ^4.13.0
-    react-i18next: ^11.7.3
-    react-inlinesvg: ^2.1.1
-    react-responsive: ^8.1.0
-    react-router: ^5.2.0
-    react-router-bootstrap: ^0.25.0
-    react-router-dom: ^5.2.0
-    regenerator-runtime: ^0.13.7
-    rxjs: ^6.6.3
-    sass: ^1.27.0
-    sass-loader: ^10.0.4
-    style-loader: ^2.0.0
-    ts-loader: ^8.0.7
-    typescript: ^4.0.5
-    url-loader: ^4.1.1
-    webpack: ^5.2.0
-    webpack-chain: ^6.5.1
-    webpack-cli: ^4.1.0
-    webpack-dev-server: ^3.11.0
-    workbox-precaching: ^5.1.4
-    workbox-routing: ^5.1.4
-    workbox-strategies: ^5.1.4
-    workbox-webpack-plugin: ^5.1.4
-    workbox-window: ^5.1.4
-    xregexp: ^4.3.0
-  languageName: unknown
-  linkType: soft
-
-"tiny-invariant@npm:^1.0.2":
-  version: 1.1.0
-  resolution: "tiny-invariant@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-invariant%2Fdownload%2Ftiny-invariant-1.1.0.tgz"
-  checksum: 64318fbd77c451cfff23b57b9f3aef56594d9cea051a87dc538c9b371f97e8d474eaa2a7cbd60b8aa23f852393152495e8651b197607465fdf9c8ff134043b1b
-  languageName: node
-  linkType: hard
-
-"tiny-warning@npm:^1.0.0, tiny-warning@npm:^1.0.3":
-  version: 1.0.3
-  resolution: "tiny-warning@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftiny-warning%2Fdownload%2Ftiny-warning-1.0.3.tgz"
-  checksum: 6cf9f66cb765b893976b8cd1c1310338861f30fb04d02ef2c8e0a748cbc2ed5acd8bb1954b78c15f640ad4116def67134d7d705f2a0c9bf27e6e2eb3e92bff29
-  languageName: node
-  linkType: hard
-
-"to-fast-properties@npm:^1.0.3":
-  version: 1.0.3
-  resolution: "to-fast-properties@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-1.0.3.tgz"
-  checksum: bfe41c936705c9d82ed21ac6f39384c323d860f74b55d2354bc511eeb5f5729849f70ea4c1fab8ad71ca5717fa184c94899778e4959ef09e7316708086cf04c6
-  languageName: node
-  linkType: hard
-
-"to-fast-properties@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "to-fast-properties@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz"
-  checksum: 40e61984243b183d575a2f3a87d008bd57102115701ee9037fd673e34becf12ee90262631857410169ca82f401a662ed94482235cea8f3b8dea48b87eaabc467
-  languageName: node
-  linkType: hard
-
-"to-object-path@npm:^0.3.0":
-  version: 0.3.0
-  resolution: "to-object-path@npm:0.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-object-path%2Fdownload%2Fto-object-path-0.3.0.tgz"
-  dependencies:
-    kind-of: ^3.0.2
-  checksum: a6a5a502259af744ac4e86752c8e71395c4106cae6f4e2a5c711e6f5de4cdbd08691e9295bf5b6e86b3e12722274fc3c5c0410f5fcf42ca783cc43f62139b5d0
-  languageName: node
-  linkType: hard
-
-"to-regex-range@npm:^2.1.0":
-  version: 2.1.1
-  resolution: "to-regex-range@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-2.1.1.tgz"
-  dependencies:
-    is-number: ^3.0.0
-    repeat-string: ^1.6.1
-  checksum: 801501b59d6a2892d88b2ccb78416d6778aec1549da593f83b7bb433a5540995e4c6f2d954ff44d53f38c094d04c0da3ed6f61f110d9cd2ea00cb570b90e81e4
-  languageName: node
-  linkType: hard
-
-"to-regex-range@npm:^5.0.1":
-  version: 5.0.1
-  resolution: "to-regex-range@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex-range%2Fdownload%2Fto-regex-range-5.0.1.tgz"
-  dependencies:
-    is-number: ^7.0.0
-  checksum: 2b6001e314e4998a07137c197e333fac2f86d46d0593da90b678ae64e2daa07274b508f83cca09e6b3504cdf222497dcb5b7daceb6dc13a9a8872f58a27db907
-  languageName: node
-  linkType: hard
-
-"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2":
-  version: 3.0.2
-  resolution: "to-regex@npm:3.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-regex%2Fdownload%2Fto-regex-3.0.2.tgz"
-  dependencies:
-    define-property: ^2.0.2
-    extend-shallow: ^3.0.2
-    regex-not: ^1.0.2
-    safe-regex: ^1.1.0
-  checksum: ed733fdff8970628ef2d425564d1331a812e57cbb6ab7675c970046b2b792cbf2386c8292e45bb201bf85ca71a7708e3e1ffb979f5cd089ad4a82a12df75939b
-  languageName: node
-  linkType: hard
-
-"toidentifier@npm:1.0.0":
-  version: 1.0.0
-  resolution: "toidentifier@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoidentifier%2Fdownload%2Ftoidentifier-1.0.0.tgz"
-  checksum: 95720e8a0f98f1525f50ccbecbc2a23f0a1b4e448de03819dbbeda03adf0d2010fe64525fbc9d549765242550d341bb891672e4ac0b2cac58613cdd742324255
-  languageName: node
-  linkType: hard
-
-"tough-cookie@npm:~2.5.0":
-  version: 2.5.0
-  resolution: "tough-cookie@npm:2.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz"
-  dependencies:
-    psl: ^1.1.28
-    punycode: ^2.1.1
-  checksum: bf5d6fac5ce0bebc5876cb9b9a79d3d9ea21c9e4099f3d3e64701d6ba170a052cb88cece6737ec2473bac4f0a4f6c75d46ec17985be8587c6bbdd38d91625cb4
-  languageName: node
-  linkType: hard
-
-"treeify@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "treeify@npm:1.1.0"
-  checksum: 78db62f564d025ffd9ec0f89e9195ee343298db0eb2d54cd84bce2b7460d347a1d3ea14a75a7f04d3c45b87aa9eb4b0c8ecd7ab4fba9b456cf29c4c895f4fc1d
-  languageName: node
-  linkType: hard
-
-"ts-loader@npm:^8.0.7":
-  version: 8.0.7
-  resolution: "ts-loader@npm:8.0.7"
-  dependencies:
-    chalk: ^2.3.0
-    enhanced-resolve: ^4.0.0
-    loader-utils: ^1.0.2
-    micromatch: ^4.0.0
-    semver: ^6.0.0
-  peerDependencies:
-    typescript: "*"
-  checksum: 062143ef35d5ee064244fb5de934d3db8460737168dbf88d19655498cc39cad8bac742c785ec5ed16600c21d2fa9e6acbba28032cdeae469992444fd8e3fa96c
-  languageName: node
-  linkType: hard
-
-"tsconfig-paths@npm:^3.9.0":
-  version: 3.9.0
-  resolution: "tsconfig-paths@npm:3.9.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsconfig-paths%2Fdownload%2Ftsconfig-paths-3.9.0.tgz"
-  dependencies:
-    "@types/json5": ^0.0.29
-    json5: ^1.0.1
-    minimist: ^1.2.0
-    strip-bom: ^3.0.0
-  checksum: 5383ba626b3ac70e08094b9dfd1e30ce82878407b6c8db8cd84279cc7c7340d5f53f67dbeb8174a233c082a068322a6b00ec8514b96d9a80a453e0476dc116d2
-  languageName: node
-  linkType: hard
-
-"tslib@npm:^1.10.0, tslib@npm:^1.13.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0":
-  version: 1.13.0
-  resolution: "tslib@npm:1.13.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz"
-  checksum: 5dc3bdaea3b67c76ef4a14c28fcb2171da7bcf292fd9c59a260098729626b1ce766c52b588f08e324ed9a0c52ea8a93a815920f980d75981abc9d850fbf310fb
-  languageName: node
-  linkType: hard
-
-"tsutils@npm:^3.17.1":
-  version: 3.17.1
-  resolution: "tsutils@npm:3.17.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftsutils%2Fdownload%2Ftsutils-3.17.1.tgz"
-  dependencies:
-    tslib: ^1.8.1
-  peerDependencies:
-    typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
-  checksum: bed8ff7998d90a7ab9f3bdb26d36dae0edfcdb3e4f07994fb59df8d42e62ee07d591d3a435fb65cb50b6ca9af6b76c9bc9423a216186e5085d91793fa169c248
-  languageName: node
-  linkType: hard
-
-"tunnel-agent@npm:^0.6.0":
-  version: 0.6.0
-  resolution: "tunnel-agent@npm:0.6.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel-agent%2Fdownload%2Ftunnel-agent-0.6.0.tgz"
-  dependencies:
-    safe-buffer: ^5.0.1
-  checksum: 03db75a4f994fee610d3485c492e95105ed265a9fecd49d14c98e9982f973ecc0220d0c1bc264e37802e423a1274bb63788a873e4e07009408ae3ac517347fd7
-  languageName: node
-  linkType: hard
-
-"tunnel@npm:^0.0.6":
-  version: 0.0.6
-  resolution: "tunnel@npm:0.0.6::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftunnel%2Fdownload%2Ftunnel-0.0.6.tgz"
-  checksum: 78fbb1a55a44fc8de6a497923bf7bf6e7b14b396e0ddaf11fe624ab7f646a0d2ada03f6dcb4a80940faed9649e30d229114f218e8906badd12ded2323a6f666b
-  languageName: node
-  linkType: hard
-
-"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
-  version: 0.14.5
-  resolution: "tweetnacl@npm:0.14.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz"
-  checksum: e1c9d52e2e9f582fd0df9ea26ba5a9ab88b9a38b69625d8e55c5e8870a4832ac8c32f8854b41fce7b59f97258bb103535363f9eda7050aa70e75824b972c7dde
-  languageName: node
-  linkType: hard
-
-"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
-  version: 0.4.0
-  resolution: "type-check@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-check%2Fdownload%2Ftype-check-0.4.0.tgz"
-  dependencies:
-    prelude-ls: ^1.2.1
-  checksum: 6c2e1ce339567e122504f0c729cfa35d877fb2da293b99110f0819eca81e6ed8d3ba9bb36c0bc0ee4904d5340dbe678f8642a395c1c67b1d0f69f081efb47f4a
-  languageName: node
-  linkType: hard
-
-"type-fest@npm:^0.11.0":
-  version: 0.11.0
-  resolution: "type-fest@npm:0.11.0"
-  checksum: 02e5cadf13590a5724cacf8d9133320efd173f6fb1b695fcb29e56551a315bf0f07ca988a780a1999b7b55bb3eaaa7f37223615207236d393af17bba6749dc95
-  languageName: node
-  linkType: hard
-
-"type-fest@npm:^0.3.1":
-  version: 0.3.1
-  resolution: "type-fest@npm:0.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.3.1.tgz"
-  checksum: 508923061144ff7ebc69d4f49bc812c7b8a81c633d10e89191092efb5746531ee6c4dd912db1447e954a766186ed48eee0dcfa53047c55a7646076a76640ff43
-  languageName: node
-  linkType: hard
-
-"type-fest@npm:^0.8.1":
-  version: 0.8.1
-  resolution: "type-fest@npm:0.8.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"
-  checksum: f8c4b4249f52e8bea7a4fc55b3653c96c2d547240e4c772e001d02b7cc38b8c3eb493ab9fbe985a76a203cd1aa7044776b728a71ba12bf36e7131f989597885b
-  languageName: node
-  linkType: hard
-
-"type-is@npm:~1.6.17, type-is@npm:~1.6.18":
-  version: 1.6.18
-  resolution: "type-is@npm:1.6.18::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-is%2Fdownload%2Ftype-is-1.6.18.tgz"
-  dependencies:
-    media-typer: 0.3.0
-    mime-types: ~2.1.24
-  checksum: 20a3514f1d835c979237995129d1f8c564325301e3a8f1c732bcbe1d7fa0ca1f65994e41a79e9030d79f31e5459bb9be5c377848fcb477cb3049a661b3713d74
-  languageName: node
-  linkType: hard
-
-typescript@^4.0.5:
-  version: 4.0.5
-  resolution: "typescript@npm:4.0.5"
-  bin:
-    tsc: bin/tsc
-    tsserver: bin/tsserver
-  checksum: ce94d4bbb914cc9d6fbd42e1476ab18c3292b262b8ba7ba76cd167a858545207a604e75bf1efbb75b8654c8f85deaa19795c3ef00098d7612855139b4ecc0240
-  languageName: node
-  linkType: hard
-
-"typescript@patch:typescript@^4.0.5#builtin<compat/typescript>":
-  version: 4.0.5
-  resolution: "typescript@patch:typescript@npm%3A4.0.5#builtin<compat/typescript>::version=4.0.5&hash=5b02a2"
-  bin:
-    tsc: bin/tsc
-    tsserver: bin/tsserver
-  checksum: d4be0bd2a2050b2d7b132cb2a40329178f181543e9d2ac6d1f06babd9f047208558a736a7effdeb28759ae2e815f070b61d10ee2f02cc93a6221a1490f21ffce
-  languageName: node
-  linkType: hard
-
-"typical@npm:^5.0.0, typical@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "typical@npm:5.2.0"
-  checksum: f4af3049786332f535a02344283d8388d18d8335eb7232c99b73a49f4b240798aecc2e6ae30b108f01a82f37e98a17b84e4d9be6724244e1688442dfc2e87bac
-  languageName: node
-  linkType: hard
-
-"uncontrollable@npm:^7.0.0":
-  version: 7.1.1
-  resolution: "uncontrollable@npm:7.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funcontrollable%2Fdownload%2Funcontrollable-7.1.1.tgz"
-  dependencies:
-    "@babel/runtime": ^7.6.3
-    "@types/react": ^16.9.11
-    invariant: ^2.2.4
-    react-lifecycles-compat: ^3.0.4
-  peerDependencies:
-    react: ">=15.0.0"
-  checksum: 208d397c41bb8293e884dc615dfeb1163c14d470e4a677e9afb695ce8cc339bbe8cafb1e8e6c8d20d3b826621bacf07906ce65fee9667b8e5f1f08f42bf9e3d7
-  languageName: node
-  linkType: hard
-
-"underscore@npm:^1.7.0":
-  version: 1.10.2
-  resolution: "underscore@npm:1.10.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.10.2.tgz"
-  checksum: d49b87c03d50a431f8ca146b99be29ce47e0e08057aff58da063d7bdc30c41f9b2ade695a0ec5eab903ba1423dd16319391e953c5464aefcb482d3955766bd94
-  languageName: node
-  linkType: hard
-
-"unicode-canonical-property-names-ecmascript@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "unicode-canonical-property-names-ecmascript@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-canonical-property-names-ecmascript%2Fdownload%2Funicode-canonical-property-names-ecmascript-1.0.4.tgz"
-  checksum: 8b51950f8f6725acfd0cc33117e7061cc5b3ba97760aab6003db1e31b90ac41e626f289a5a39f8e2c3ed3fbb6b4774c1877fd6156a4c6f4e05736b9ff7a2e783
-  languageName: node
-  linkType: hard
-
-"unicode-match-property-ecmascript@npm:^1.0.4":
-  version: 1.0.4
-  resolution: "unicode-match-property-ecmascript@npm:1.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-ecmascript%2Fdownload%2Funicode-match-property-ecmascript-1.0.4.tgz"
-  dependencies:
-    unicode-canonical-property-names-ecmascript: ^1.0.4
-    unicode-property-aliases-ecmascript: ^1.0.4
-  checksum: 481203b4b86861f278424ef694293bad9a090d606ac5bdb71a096fe3bbf413555d25f17e888ef9815841ece01c6a7d9f566752c04681cba8e27aec1a7e519641
-  languageName: node
-  linkType: hard
-
-"unicode-match-property-value-ecmascript@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "unicode-match-property-value-ecmascript@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz"
-  checksum: 892ca3933535a30d939de026941f0e615330cb6906b62f76561b76dbe6de2aab1eb2a3c5971056813efd31c48f889b4709d34d4d8327e4ff66e3ac72b58a703e
-  languageName: node
-  linkType: hard
-
-"unicode-property-aliases-ecmascript@npm:^1.0.4":
-  version: 1.1.0
-  resolution: "unicode-property-aliases-ecmascript@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz"
-  checksum: 2fa80e62a6ec395af3ee4747ce9738d2fee25ef963fb5650e358b2eb878d7f047f5ccdbd5f92e9605d13276f995fc3c4e3084475b03722cdd7ce9d58a148b2bd
-  languageName: node
-  linkType: hard
-
-"union-value@npm:^1.0.0":
-  version: 1.0.1
-  resolution: "union-value@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion-value%2Fdownload%2Funion-value-1.0.1.tgz"
-  dependencies:
-    arr-union: ^3.1.0
-    get-value: ^2.0.6
-    is-extendable: ^0.1.1
-    set-value: ^2.0.1
-  checksum: bd6ae611f09e98d3918ee425b0cb61987e9240672c9822cfac642b0240e7a807c802c1968e0205176d7fa91ca0bba5f625a6937b26b2269620a1402589852fd8
-  languageName: node
-  linkType: hard
-
-"union@npm:~0.5.0":
-  version: 0.5.0
-  resolution: "union@npm:0.5.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funion%2Fdownload%2Funion-0.5.0.tgz"
-  dependencies:
-    qs: ^6.4.0
-  checksum: 38d86c00ee687fe2a6a8a823293550dee10a09eb11217cf8a75c8b2a256c67be8d6281a3874c3ca7c1e83c6741726fea5f1483b1435b2a56c837511975730e36
-  languageName: node
-  linkType: hard
-
-"uniq@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "uniq@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiq%2Fdownload%2Funiq-1.0.1.tgz"
-  checksum: a5603a5b3128616f268e7695e47cd1eb8d583cf8ee1278434140cd83d2f3f98e5d65a22cf4187f0345ca8d8a0a9f1d07e1f06cb46312135ad4a6303fd28fc317
-  languageName: node
-  linkType: hard
-
-"unique-filename@npm:^1.1.1":
-  version: 1.1.1
-  resolution: "unique-filename@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-filename%2Fdownload%2Funique-filename-1.1.1.tgz"
-  dependencies:
-    unique-slug: ^2.0.0
-  checksum: 0e674206bdda0c949b4ef86b073ba614f11de6141310834a236860888e592826da988837a7277f91a943752a691c5ab7ab939a19e7c0a5d7fcf1b7265720bf86
-  languageName: node
-  linkType: hard
-
-"unique-slug@npm:^2.0.0":
-  version: 2.0.2
-  resolution: "unique-slug@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-slug%2Fdownload%2Funique-slug-2.0.2.tgz"
-  dependencies:
-    imurmurhash: ^0.1.4
-  checksum: 3b17dabc13b3cc41897715e106d4403b88c225739e70bbb6d1142e0fb680261b20574cae133b0ac0eedcf514fc19766d6fa37411f9e9ee038daaa4ae83e7cd70
-  languageName: node
-  linkType: hard
-
-"unique-string@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "unique-string@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funique-string%2Fdownload%2Funique-string-1.0.0.tgz"
-  dependencies:
-    crypto-random-string: ^1.0.0
-  checksum: 860f1ab835e8699e19ebaf0d651b967cf926ca80e22ae9f098996f8fec12ca007ac4914bf47e37556aca0ae10bd80ca4322982abfd30abcffec44d5e7612ae5f
-  languageName: node
-  linkType: hard
-
-"universalify@npm:^0.1.0":
-  version: 0.1.2
-  resolution: "universalify@npm:0.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz"
-  checksum: 420fc6547357782c700d53e9a92506a8e95345b13e97684c8f9ab75237912ec2ebb6af8ac10d4f7406b7b6bd21c58f6c5c0811414fb0b4091b78b4743fa6806e
-  languageName: node
-  linkType: hard
-
-"unpipe@npm:1.0.0, unpipe@npm:~1.0.0":
-  version: 1.0.0
-  resolution: "unpipe@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz"
-  checksum: ba244e8bf640475b2143af95be5d71353cd4d238d63abf5dfe700c67841f066eb0819fc60dee7f2348ef647a5644a06ba024b9a0ab6d399fc07a05eb72a30ac7
-  languageName: node
-  linkType: hard
-
-"unset-value@npm:^1.0.0":
-  version: 1.0.0
-  resolution: "unset-value@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz"
-  dependencies:
-    has-value: ^0.3.1
-    isobject: ^3.0.0
-  checksum: b4c4853f2744a91e9bb5ccb3dfb28f78c32310bf851f0e6b9e781d3ca5244a803632926b2af701da5f9153a03e405023cebc1f90b87711f73b5fc86b6c33efae
-  languageName: node
-  linkType: hard
-
-"upath@npm:^1.1.1, upath@npm:^1.1.2, upath@npm:^1.2.0":
-  version: 1.2.0
-  resolution: "upath@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz"
-  checksum: ecb08ff3e7e3b152e03bceb7089e6f0077bf3494764397a301eb99a7a5cd4c593ea4d0b13a7714195ad8a3ddca9d7a5964037a1c0bc712e1ba7b67a79165a0be
-  languageName: node
-  linkType: hard
-
-"uri-js@npm:^4.2.2":
-  version: 4.2.2
-  resolution: "uri-js@npm:4.2.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.2.2.tgz"
-  dependencies:
-    punycode: ^2.1.0
-  checksum: 651a49f55d6d65a15e589ed5ffa23bf99e495699e246c1c3fecbe6f232c675589fdae4e93a88608525ff130f39b6fb854c19982820813a2d94c005c11eafd7ed
-  languageName: node
-  linkType: hard
-
-"urix@npm:^0.1.0":
-  version: 0.1.0
-  resolution: "urix@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz"
-  checksum: 6bdfca4e7fb7d035537068a47a04ace1bacfa32e6b1aaf54c5a0340c83125a186d59109a19b9a3a1c1f986d3eb718b82faf9ad03d53cb99cf868068580b15b3b
-  languageName: node
-  linkType: hard
-
-"url-join@npm:^2.0.5":
-  version: 2.0.5
-  resolution: "url-join@npm:2.0.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-join%2Fdownload%2Furl-join-2.0.5.tgz"
-  checksum: 142e04d81bd5c2c71d6f499d20d97360e64c0654f691ed098514539508eb23ab2805ef33408b2718359e50ff35d5a841f607dc6d7d5e55b8bfc5906c6f7ddcb6
-  languageName: node
-  linkType: hard
-
-"url-loader@npm:^4.1.1":
-  version: 4.1.1
-  resolution: "url-loader@npm:4.1.1"
-  dependencies:
-    loader-utils: ^2.0.0
-    mime-types: ^2.1.27
-    schema-utils: ^3.0.0
-  peerDependencies:
-    file-loader: "*"
-    webpack: ^4.0.0 || ^5.0.0
-  peerDependenciesMeta:
-    file-loader:
-      optional: true
-  checksum: 871e8c8df26a985bbc8c1fb345f26565ee920a36bd7f48bece74aa541675b1ff3583e1ca5e9338d0525fbf5e5f6de96d84d9f6e6aa76657a68a5fc13832b009f
-  languageName: node
-  linkType: hard
-
-"url-parse@npm:^1.4.3":
-  version: 1.4.7
-  resolution: "url-parse@npm:1.4.7::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz"
-  dependencies:
-    querystringify: ^2.1.1
-    requires-port: ^1.0.0
-  checksum: 33c44a24b9a9e9da7f2591652dc944b6164b93ad1d3ee4eea889b396788f716bd2d6c9d0a2b3ee2e8f863bde69bacbc12c3a4b4e666506ee4c88ea7444004f95
-  languageName: node
-  linkType: hard
-
-"url@npm:^0.11.0":
-  version: 0.11.0
-  resolution: "url@npm:0.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Furl%2Fdownload%2Furl-0.11.0.tgz"
-  dependencies:
-    punycode: 1.3.2
-    querystring: 0.2.0
-  checksum: 537f785b16f873fdd2b63ccb7a61463b8e41370fdba95385b0102f3ed7b953c300d95b8755ec3b65f3e406372d47d16c3c989e196b25b70f42190da1fc36c56f
-  languageName: node
-  linkType: hard
-
-"use@npm:^3.1.0":
-  version: 3.1.1
-  resolution: "use@npm:3.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuse%2Fdownload%2Fuse-3.1.1.tgz"
-  checksum: 8dd3bdeeda53864c779e0fa8d799064739708f80b45d06fa48a1a6ba192dc3f9e3266d4556f223cd718d27aedfd957922152e7463c00ac46e185f8331353fb6f
-  languageName: node
-  linkType: hard
-
-"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
-  version: 1.0.2
-  resolution: "util-deprecate@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil-deprecate%2Fdownload%2Futil-deprecate-1.0.2.tgz"
-  checksum: 73c2b1cf0210ccac300645384d8443cabbd93194117b2dc1b3bae8d8279ad39aedac857e020c4ea505e96a1045059c7359db3df6a9df0be6b8584166c9d61dc9
-  languageName: node
-  linkType: hard
-
-"util-deprecate@npm:^1.0.2":
-  version: 1.0.2
-  resolution: "util-deprecate@npm:1.0.2"
-  checksum: 73c2b1cf0210ccac300645384d8443cabbd93194117b2dc1b3bae8d8279ad39aedac857e020c4ea505e96a1045059c7359db3df6a9df0be6b8584166c9d61dc9
-  languageName: node
-  linkType: hard
-
-"util.promisify@npm:1.0.0":
-  version: 1.0.0
-  resolution: "util.promisify@npm:1.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz"
-  dependencies:
-    define-properties: ^1.1.2
-    object.getownpropertydescriptors: ^2.0.3
-  checksum: 0dffbe1af61c9c034b5e7b411461e46c17c788d855fb02bcbf96cd0f603c086eb83160a3c878c4d69bede9a42118a7ce2b3cc05ed5a235e1c1c04c93bd5608e7
-  languageName: node
-  linkType: hard
-
-"utila@npm:^0.4.0, utila@npm:~0.4":
-  version: 0.4.0
-  resolution: "utila@npm:0.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futila%2Fdownload%2Futila-0.4.0.tgz"
-  checksum: 6799b0a5666ac26fb547068e6967e51b534e290174b10ae26e500c216197b0faed9be8a12108bc408ce475ce1002c866aac2d1d4e1453dc72b441d8900f2063a
-  languageName: node
-  linkType: hard
-
-"utils-merge@npm:1.0.1":
-  version: 1.0.1
-  resolution: "utils-merge@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Futils-merge%2Fdownload%2Futils-merge-1.0.1.tgz"
-  checksum: a457956ebc09efbda05da8bf213ab89140bb9dffa3c42b3315dd8fc3c45d67a1b802741f58b7bba4872113201fc275fc86470289d8bd32b74297b5e5b5980705
-  languageName: node
-  linkType: hard
-
-"uuid@npm:^3.3.2, uuid@npm:^3.4.0":
-  version: 3.4.0
-  resolution: "uuid@npm:3.4.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz"
-  bin:
-    uuid: ./bin/uuid
-  checksum: 1ce3f37e214d6d0dc94a6a9663a0365013ace66bc3fd5b203e6f5d2eeb978aaee1192367222386345d30b4c6a447928c501121aa84c637724bf105ef57284949
-  languageName: node
-  linkType: hard
-
-"v8-compile-cache@npm:^2.0.3":
-  version: 2.1.1
-  resolution: "v8-compile-cache@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz"
-  checksum: 1290922fe1501a732155206f2d516f91bdfd7acf318542ffe2813ff06465cf49051fae7e1a40f3e0a56cf78b41f799473f6e389fec0534e4ecc62eb4105cf22f
-  languageName: node
-  linkType: hard
-
-"v8-compile-cache@npm:^2.1.0":
-  version: 2.1.1
-  resolution: "v8-compile-cache@npm:2.1.1"
-  checksum: 1290922fe1501a732155206f2d516f91bdfd7acf318542ffe2813ff06465cf49051fae7e1a40f3e0a56cf78b41f799473f6e389fec0534e4ecc62eb4105cf22f
-  languageName: node
-  linkType: hard
-
-"validate-npm-package-license@npm:^3.0.1":
-  version: 3.0.4
-  resolution: "validate-npm-package-license@npm:3.0.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidate-npm-package-license%2Fdownload%2Fvalidate-npm-package-license-3.0.4.tgz"
-  dependencies:
-    spdx-correct: ^3.0.0
-    spdx-expression-parse: ^3.0.0
-  checksum: 940899bd4eacfa012ceecb10a5814ba0e8103da5243aa74d0d62f1f8a405efcd23e034fb7193e2d05b392870c53aabcb1f66439b062075cdcb28bc5d562a8ff6
-  languageName: node
-  linkType: hard
-
-"value-equal@npm:^1.0.1":
-  version: 1.0.1
-  resolution: "value-equal@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalue-equal%2Fdownload%2Fvalue-equal-1.0.1.tgz"
-  checksum: ae8cc7bbb2bebcaf78ecbf7669944cfc6e23f50361d0d97dc903abbfb9ce5111ce1dc5cb2575646db69636a84b2a3b224e2191088edc3442fb4669c2365af874
-  languageName: node
-  linkType: hard
-
-"vary@npm:~1.1.2":
-  version: 1.1.2
-  resolution: "vary@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvary%2Fdownload%2Fvary-1.1.2.tgz"
-  checksum: 591f059f727ac1ba0d97cb7767f8583a03fcbb07db7be2b7dce838ede520ec0e958a41cb19077054769077fdc49a9b9a2dc391c83426bfee89c054b8cc7404bf
-  languageName: node
-  linkType: hard
-
-"verror@npm:1.10.0":
-  version: 1.10.0
-  resolution: "verror@npm:1.10.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz"
-  dependencies:
-    assert-plus: ^1.0.0
-    core-util-is: 1.0.2
-    extsprintf: ^1.2.0
-  checksum: 38ea80312cb42e5e8b4ac562d108d675b2354a79f8f125d363671f692657461b9181fd26f4fc9acdca433f8afee099cb78058806e1303e6b15b8fb022affba94
-  languageName: node
-  linkType: hard
-
-"void-elements@npm:^2.0.1":
-  version: 2.0.1
-  resolution: "void-elements@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fvoid-elements%2Fdownload%2Fvoid-elements-2.0.1.tgz"
-  checksum: 768d7e08534922455d0e87c66426123920f4d26d88e9c3dc430469e4ce1c11920ca8e2aea7794e52916524d55c3c7820efc20d3f5ce6b749036d989adef1cdd9
-  languageName: node
-  linkType: hard
-
-"warning@npm:^4.0.0, warning@npm:^4.0.3":
-  version: 4.0.3
-  resolution: "warning@npm:4.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwarning%2Fdownload%2Fwarning-4.0.3.tgz"
-  dependencies:
-    loose-envify: ^1.0.0
-  checksum: 20ef5d29ff9c20af3060e504914a00d5a90ce346e75e6691efbedb540481cdc82070c966d75195f812de64bb0bd7f1b02315fcb52469db151c0f15e29002781c
-  languageName: node
-  linkType: hard
-
-"watchpack@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "watchpack@npm:2.0.0"
-  dependencies:
-    glob-to-regexp: ^0.4.1
-    graceful-fs: ^4.1.2
-  checksum: de23b15ad1e07b56866ff4f1281692ef5ee3b0f114b3dd1d1beb45271e3a4510a7853ea1824fe1eb232e23a3765a5f9c5ffcc51040c85433664851e1d9c28083
-  languageName: node
-  linkType: hard
-
-"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3":
-  version: 1.7.3
-  resolution: "wbuf@npm:1.7.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwbuf%2Fdownload%2Fwbuf-1.7.3.tgz"
-  dependencies:
-    minimalistic-assert: ^1.0.0
-  checksum: 5916a49cb25fc8c70e4e7eb2d01955061132687a79879292fbdee632952f368c12bc5a641d0404794dbc0e3563f8b6e74dda04467b3e96be8bcd0b919bd47a8c
-  languageName: node
-  linkType: hard
-
-"webpack-chain@npm:^6.5.1":
-  version: 6.5.1
-  resolution: "webpack-chain@npm:6.5.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz"
-  dependencies:
-    deepmerge: ^1.5.2
-    javascript-stringify: ^2.0.1
-  checksum: 56995e18999a012fb16fbd769a06716f54053694f01313d7006be70b845f44d62b7c0c42118fe44553fcac825b23c4d1b5720786ad3a756e057f77e39882458e
-  languageName: node
-  linkType: hard
-
-"webpack-cli@npm:^4.1.0":
-  version: 4.1.0
-  resolution: "webpack-cli@npm:4.1.0"
-  dependencies:
-    "@webpack-cli/info": ^1.0.2
-    "@webpack-cli/serve": ^1.0.1
-    ansi-escapes: ^4.3.1
-    colorette: ^1.2.1
-    command-line-usage: ^6.1.0
-    commander: ^6.0.0
-    enquirer: ^2.3.4
-    execa: ^4.0.0
-    import-local: ^3.0.2
-    interpret: ^2.0.0
-    rechoir: ^0.7.0
-    v8-compile-cache: ^2.1.0
-    webpack-merge: ^4.2.2
-  peerDependencies:
-    "@webpack-cli/generate-loader": "*"
-    "@webpack-cli/generate-plugin": "*"
-    "@webpack-cli/init": "*"
-    "@webpack-cli/migrate": "*"
-    webpack: 4.x.x || 5.x.x
-    webpack-bundle-analyzer: "*"
-    webpack-dev-server: "*"
-  peerDependenciesMeta:
-    "@webpack-cli/generate-loader":
-      optional: true
-    "@webpack-cli/generate-plugin":
-      optional: true
-    "@webpack-cli/init":
-      optional: true
-    "@webpack-cli/migrate":
-      optional: true
-    webpack-bundle-analyzer:
-      optional: true
-    webpack-dev-server:
-      optional: true
-  bin:
-    webpack-cli: bin/cli.js
-  checksum: 70402fe84abd9efe24db5ee5d2f053f4e8d96bb76e61111bbeb89b50af031c5f52bef91d3c5f006da9f90cdda9e0e0aeb599b7ec4f28811917c3bad79880fd37
-  languageName: node
-  linkType: hard
-
-"webpack-dev-middleware@npm:^3.7.2":
-  version: 3.7.2
-  resolution: "webpack-dev-middleware@npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz"
-  dependencies:
-    memory-fs: ^0.4.1
-    mime: ^2.4.4
-    mkdirp: ^0.5.1
-    range-parser: ^1.2.1
-    webpack-log: ^2.0.0
-  peerDependencies:
-    webpack: ^4.0.0
-  checksum: 88480e7d7f8116f2a992a4f4b3ca5f2ce93e11edbedd029858f43a789109fcd001bad9fcf34df7bb0e8cb33d342205a789abafd6f6315e9fc54bc436e6caa78f
-  languageName: node
-  linkType: hard
-
-"webpack-dev-server@npm:^3.11.0":
-  version: 3.11.0
-  resolution: "webpack-dev-server@npm:3.11.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz"
-  dependencies:
-    ansi-html: 0.0.7
-    bonjour: ^3.5.0
-    chokidar: ^2.1.8
-    compression: ^1.7.4
-    connect-history-api-fallback: ^1.6.0
-    debug: ^4.1.1
-    del: ^4.1.1
-    express: ^4.17.1
-    html-entities: ^1.3.1
-    http-proxy-middleware: 0.19.1
-    import-local: ^2.0.0
-    internal-ip: ^4.3.0
-    ip: ^1.1.5
-    is-absolute-url: ^3.0.3
-    killable: ^1.0.1
-    loglevel: ^1.6.8
-    opn: ^5.5.0
-    p-retry: ^3.0.1
-    portfinder: ^1.0.26
-    schema-utils: ^1.0.0
-    selfsigned: ^1.10.7
-    semver: ^6.3.0
-    serve-index: ^1.9.1
-    sockjs: 0.3.20
-    sockjs-client: 1.4.0
-    spdy: ^4.0.2
-    strip-ansi: ^3.0.1
-    supports-color: ^6.1.0
-    url: ^0.11.0
-    webpack-dev-middleware: ^3.7.2
-    webpack-log: ^2.0.0
-    ws: ^6.2.1
-    yargs: ^13.3.2
-  peerDependencies:
-    webpack: ^4.0.0 || ^5.0.0
-    webpack-cli: "*"
-  peerDependenciesMeta:
-    webpack-cli:
-      optional: true
-  bin:
-    webpack-dev-server: bin/webpack-dev-server.js
-  checksum: 1d3445745634cee36df9a01edcb8ed56eadd647a0d72751e8646c038c4d76f40194b841f97ed819971988f85c5b531c571cc776288011ffafd201c9f3ccd444d
-  languageName: node
-  linkType: hard
-
-"webpack-log@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "webpack-log@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz"
-  dependencies:
-    ansi-colors: ^3.0.0
-    uuid: ^3.3.2
-  checksum: 250db04c41e278aa15a4f452808ef32ca8eca0f7df9d4c7c28b3d94e45d2649fbeb90a0adbee1c675447209b6a35136e13c1fb31476c3ca81c972bb41f0535bb
-  languageName: node
-  linkType: hard
-
-"webpack-merge@npm:^4.2.2":
-  version: 4.2.2
-  resolution: "webpack-merge@npm:4.2.2"
-  dependencies:
-    lodash: ^4.17.15
-  checksum: 038c6d8ba45f538ce8e4505a8a3d90fbd2e554ba2065bacffe4d7cff0229cce9f0d983bf56061f8e0fef86c711da7232f88681aab285c06673b3916b1040cd9e
-  languageName: node
-  linkType: hard
-
-"webpack-sources@npm:^1.1.0, webpack-sources@npm:^1.3.0, webpack-sources@npm:^1.4.3":
-  version: 1.4.3
-  resolution: "webpack-sources@npm:1.4.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz"
-  dependencies:
-    source-list-map: ^2.0.0
-    source-map: ~0.6.1
-  checksum: 2a753b36adf0ddd4dadf6ff375824108a918d180c4ea5383b377526f543e6db0c1ecd40b4154bae8e94c4b209b7814d764879691a468fe230ef9eb32b27fdde4
-  languageName: node
-  linkType: hard
-
-"webpack-sources@npm:^2.0.1":
-  version: 2.1.0
-  resolution: "webpack-sources@npm:2.1.0"
-  dependencies:
-    source-list-map: ^2.0.1
-    source-map: ^0.6.1
-  checksum: 3950d59661b33ecbfaa0dc4d96a118f2d5e6f9f1b3a24ba5cdb0575758745698035949beac486f52a9e9a69bd94dce5f5a138125632117b1ab708220929e9cda
-  languageName: node
-  linkType: hard
-
-"webpack@npm:^5.2.0":
-  version: 5.2.0
-  resolution: "webpack@npm:5.2.0"
-  dependencies:
-    "@types/eslint-scope": ^3.7.0
-    "@types/estree": ^0.0.45
-    "@webassemblyjs/ast": 1.9.0
-    "@webassemblyjs/helper-module-context": 1.9.0
-    "@webassemblyjs/wasm-edit": 1.9.0
-    "@webassemblyjs/wasm-parser": 1.9.0
-    acorn: ^8.0.4
-    browserslist: ^4.14.5
-    chrome-trace-event: ^1.0.2
-    enhanced-resolve: ^5.3.0
-    eslint-scope: ^5.1.1
-    events: ^3.2.0
-    glob-to-regexp: ^0.4.1
-    graceful-fs: ^4.2.4
-    json-parse-better-errors: ^1.0.2
-    loader-runner: ^4.1.0
-    mime-types: ^2.1.27
-    neo-async: ^2.6.2
-    pkg-dir: ^4.2.0
-    schema-utils: ^3.0.0
-    tapable: ^2.0.0
-    terser-webpack-plugin: ^5.0.0
-    watchpack: ^2.0.0
-    webpack-sources: ^2.0.1
-  peerDependencies:
-    webpack-cli: "*"
-  peerDependenciesMeta:
-    webpack-cli:
-      optional: true
-  bin:
-    webpack: bin/webpack.js
-  checksum: 1f91563c2512e9068c9d76f45479fd3c6d9652f490c428d36ce9f5311979609e363e58b0cf8f23019185cd335e72d00a48911a9c1da1b34f0d7a6265eab7e5c4
-  languageName: node
-  linkType: hard
-
-"websocket-driver@npm:0.6.5, websocket-driver@npm:>=0.5.1":
-  version: 0.6.5
-  resolution: "websocket-driver@npm:0.6.5::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz"
-  dependencies:
-    websocket-extensions: ">=0.1.1"
-  checksum: 1169a0ecccf514a98abc54a1b9c9aa56ef662e9169336cc4bc684c4f95a52b93f499d52d2b2f1eb7ccae79dcc41d6cfe8bf9b4cf05f4c69756d7c75fa53d312f
-  languageName: node
-  linkType: hard
-
-"websocket-extensions@npm:>=0.1.1":
-  version: 0.1.4
-  resolution: "websocket-extensions@npm:0.1.4::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz"
-  checksum: bbafc0ffa1c6f54606aac88ce366c6a0d72c7827291f40c15a1c325f9f4abe7f7176ab844dd43eab4f07276d9e748dd241d671874c4a0df5cbb0fbed133908dc
-  languageName: node
-  linkType: hard
-
-"which-module@npm:^2.0.0":
-  version: 2.0.0
-  resolution: "which-module@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-module%2Fdownload%2Fwhich-module-2.0.0.tgz"
-  checksum: 3d2107ab18c3c2a0ffa4f1a2a0a8862d0bb3fd5c72b10df9cbd75a15b496533bf4c4dc6fa65cefba6fdb8af7935ffb939ef4c8f2eb7835b03d1b93680e9101e9
-  languageName: node
-  linkType: hard
-
-"which@npm:^1.2.9":
-  version: 1.3.1
-  resolution: "which@npm:1.3.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz"
-  dependencies:
-    isexe: ^2.0.0
-  bin:
-    which: ./bin/which
-  checksum: 298d95f9c185c4da22c1bfb1fdfa37c2ba56df8a6b98706ab361bf31a7d3a4845afaecfc48d4de7a259048842b5f2977f51b56f5c06c1f6a83dcf5a9e3de634a
-  languageName: node
-  linkType: hard
-
-"which@npm:^2.0.1, which@npm:^2.0.2":
-  version: 2.0.2
-  resolution: "which@npm:2.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz"
-  dependencies:
-    isexe: ^2.0.0
-  bin:
-    node-which: ./bin/node-which
-  checksum: ea9b1db1266b08f7880717cf70dd9012dd523e5a317f10fbe4d5e8c1a761c5fd237f88642f2ba33b23f973ff4002c9b26648d63084ab208d8ecef36497315f6e
-  languageName: node
-  linkType: hard
-
-"wide-align@npm:^1.1.0":
-  version: 1.1.3
-  resolution: "wide-align@npm:1.1.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwide-align%2Fdownload%2Fwide-align-1.1.3.tgz"
-  dependencies:
-    string-width: ^1.0.2 || 2
-  checksum: 4f850f84da84b7471d7b92f55e381e7ba286210470fe77a61e02464ef66d10e96057a0d137bc013fbbedb7363a26e79c0e8b21d99bb572467d3fee0465b8fd27
-  languageName: node
-  linkType: hard
-
-"word-wrap@npm:^1.2.3":
-  version: 1.2.3
-  resolution: "word-wrap@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz"
-  checksum: 6526abd75d4409c76d1989cf2fbf6080b903db29824be3d17d0a0b8f6221486c76a021174eda2616cf311199787983c34bae3c5e7b51d2ad7476f2066cddb75a
-  languageName: node
-  linkType: hard
-
-"wordwrapjs@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "wordwrapjs@npm:4.0.0"
-  dependencies:
-    reduce-flatten: ^2.0.0
-    typical: ^5.0.0
-  checksum: 022dc1d1a3a2b15490288840822f4f5db31d653edc31117e492e402e77ea02509f44ac7fe163b0aa39d1cc8e2df4d7ef2a28ad8bf3795e7f2a8ee1da8b8bef54
-  languageName: node
-  linkType: hard
-
-"workbox-background-sync@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-background-sync@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 5e227136319a203af07b2949b2ac7cf74995cc740692d4cba2d35df05e9959e0b6bba64ab552b4e80406704bd754639bfc199f72f19f3257cfe22193a5975433
-  languageName: node
-  linkType: hard
-
-"workbox-broadcast-update@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-broadcast-update@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 580c0f56a771f07eb9c07726e70c820cd5f4376b5193dda4c7f3e3606be6c173abd42aede81a106f3dde01dffcd90bf7fbf69812683d822b849840cf9f23f03f
-  languageName: node
-  linkType: hard
-
-"workbox-build@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-build@npm:5.1.4"
-  dependencies:
-    "@babel/core": ^7.8.4
-    "@babel/preset-env": ^7.8.4
-    "@babel/runtime": ^7.8.4
-    "@hapi/joi": ^15.1.0
-    "@rollup/plugin-node-resolve": ^7.1.1
-    "@rollup/plugin-replace": ^2.3.1
-    "@surma/rollup-plugin-off-main-thread": ^1.1.1
-    common-tags: ^1.8.0
-    fast-json-stable-stringify: ^2.1.0
-    fs-extra: ^8.1.0
-    glob: ^7.1.6
-    lodash.template: ^4.5.0
-    pretty-bytes: ^5.3.0
-    rollup: ^1.31.1
-    rollup-plugin-babel: ^4.3.3
-    rollup-plugin-terser: ^5.3.1
-    source-map: ^0.7.3
-    source-map-url: ^0.4.0
-    stringify-object: ^3.3.0
-    strip-comments: ^1.0.2
-    tempy: ^0.3.0
-    upath: ^1.2.0
-    workbox-background-sync: ^5.1.4
-    workbox-broadcast-update: ^5.1.4
-    workbox-cacheable-response: ^5.1.4
-    workbox-core: ^5.1.4
-    workbox-expiration: ^5.1.4
-    workbox-google-analytics: ^5.1.4
-    workbox-navigation-preload: ^5.1.4
-    workbox-precaching: ^5.1.4
-    workbox-range-requests: ^5.1.4
-    workbox-routing: ^5.1.4
-    workbox-strategies: ^5.1.4
-    workbox-streams: ^5.1.4
-    workbox-sw: ^5.1.4
-    workbox-window: ^5.1.4
-  checksum: b20cb791a9036adf9b4f2683d46d9c14742e23f7d8975513ce9274df41e6e954fcb560220139f107f79cd30380f2e1de28f643e54c079f7346144bcf4983aad6
-  languageName: node
-  linkType: hard
-
-"workbox-cacheable-response@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-cacheable-response@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 1a7600120e62b4e3a67c3dfce04f0e4123941c639c4f08a6efa7a5017c48891d073198c63d7e39c94c94d1b4252e4682ec51d63b383c0e1c2a7ef8687a3c2caa
-  languageName: node
-  linkType: hard
-
-"workbox-core@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-core@npm:5.1.4"
-  checksum: eaa6021ef9d7f3046619d09904171121286dee8c20299b00f4a06d85e8a549c0345f70cf5a5cb47c270641ffd3e319b40479c7a7bd4025c651f9ee215ee27014
-  languageName: node
-  linkType: hard
-
-"workbox-expiration@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-expiration@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 94bb79ca9ec2bfc3ae05a4df32d2dc2c4b6246162851abdf620168b8154f31f8469230224862f0367cb52af063fb332a448e74b3c31840f7798fa9c0bc721575
-  languageName: node
-  linkType: hard
-
-"workbox-google-analytics@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-google-analytics@npm:5.1.4"
-  dependencies:
-    workbox-background-sync: ^5.1.4
-    workbox-core: ^5.1.4
-    workbox-routing: ^5.1.4
-    workbox-strategies: ^5.1.4
-  checksum: a533d05d0769427dbe6768299aa44acacf0774e8fd80ee0b5875b0b551603620221a69c444dca867f9c5b7f2296971831ef422801dd6afbcc0c834424dfffb8f
-  languageName: node
-  linkType: hard
-
-"workbox-navigation-preload@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-navigation-preload@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 1704ecaadb4f90fc8236a760b0e53cfd511dda5b6ab0b929792574baaea8b8f7e3d033e6f90bfdb08b391ff717eb09589e846028665db0be5fe6175c20a46320
-  languageName: node
-  linkType: hard
-
-"workbox-precaching@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-precaching@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: a2add02126a0de093e439dc145eb7d8455439d981792fccf42fe53376e3be5318e279ca4ee09bd63ef750ca203147387917ba5b9068ec39f3a4dd967975b91ae
-  languageName: node
-  linkType: hard
-
-"workbox-range-requests@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-range-requests@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 3df8c87cd2ddb38f63d4f5ef5c1f0cb6acbfafc648ca7b8c0aa6343c8ee25b58756893ef131ee60cafd599f8664fd7fb92c65ef8aae207ee261dbdc0d62d4b44
-  languageName: node
-  linkType: hard
-
-"workbox-routing@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-routing@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 46583ef2c4733cc2664652a0778e7154a6bd93afedc3147d1c06aaaa1500d37b323c11a5acfe5d17a441e6135afc56ec45ad12ce29edd4cf537e9732e5987280
-  languageName: node
-  linkType: hard
-
-"workbox-strategies@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-strategies@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-    workbox-routing: ^5.1.4
-  checksum: 4db2d9c9873277c174ea990a2079d6edb87a2d72f8c19f89771574173fe2479666ce533e15a474b5139a94560a7c37cefbaad2d4373dae59ee3a01746f25c5a6
-  languageName: node
-  linkType: hard
-
-"workbox-streams@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-streams@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-    workbox-routing: ^5.1.4
-  checksum: 2f620673286136bc755983b049c3bee5a2cc5cc539dcc9849829983ae9161df36953bde91e5da158f037d6afcb9704c8b4333ce85d186eca418893e619faf929
-  languageName: node
-  linkType: hard
-
-"workbox-sw@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-sw@npm:5.1.4"
-  checksum: cff84bdecc96de3024d9dce4b1f633d741bf94f03734fd9a26d25b4a54b993376e7a8b3021beeae74a9ef7659dd3b50d0f284483b27c51fca0b24111a8016aec
-  languageName: node
-  linkType: hard
-
-"workbox-webpack-plugin@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-webpack-plugin@npm:5.1.4"
-  dependencies:
-    "@babel/runtime": ^7.5.5
-    fast-json-stable-stringify: ^2.0.0
-    source-map-url: ^0.4.0
-    upath: ^1.1.2
-    webpack-sources: ^1.3.0
-    workbox-build: ^5.1.4
-  peerDependencies:
-    webpack: ^4.0.0
-  checksum: 27f7f598659cb130d546a39f23b16ecc89390eb5d5c9176a0b527f0ece2f3781031d4bea702f2ac2d0771398af7ff07d9e5e7e210f60846da446cd031cc9366c
-  languageName: node
-  linkType: hard
-
-"workbox-window@npm:^5.1.4":
-  version: 5.1.4
-  resolution: "workbox-window@npm:5.1.4"
-  dependencies:
-    workbox-core: ^5.1.4
-  checksum: 1bbefb35ba8745ede8837f3d4f46b36f4b27c6c018e7128412bb27a17ddfcf2d5c34a1a8c6cb4e8570d0bc87b42ccf530b06fd382ed05ee269ea2183f7e003eb
-  languageName: node
-  linkType: hard
-
-"wrap-ansi@npm:^5.1.0":
-  version: 5.1.0
-  resolution: "wrap-ansi@npm:5.1.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz"
-  dependencies:
-    ansi-styles: ^3.2.0
-    string-width: ^3.0.0
-    strip-ansi: ^5.0.0
-  checksum: 9622c3aa2742645e9a6941d297436a433c65ffe1b1416578ad56e0df657716bda6857401c5c9cc485c0abbc04e852aafedf295d87e2d6ec58a01799d6bcb2fdf
-  languageName: node
-  linkType: hard
-
-"wrappy@npm:1":
-  version: 1.0.2
-  resolution: "wrappy@npm:1.0.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz"
-  checksum: 519fcda0fcdf0c16327be2de9d98646742307bc830277e8868529fcf7566f2b330a6453c233e0cdcb767d5838dd61a90984a02ecc983bcddebea5ad0833bbf98
-  languageName: node
-  linkType: hard
-
-"write@npm:1.0.3":
-  version: 1.0.3
-  resolution: "write@npm:1.0.3::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite%2Fdownload%2Fwrite-1.0.3.tgz"
-  dependencies:
-    mkdirp: ^0.5.1
-  checksum: e8f8fddefea3eaaf4c8bacf072161f82d5e05c5fb8f003e1bae52673b94b88a4954d97688c7403a20301d2f6e9f61363b1affe74286b499b39bc0c42f17a56cb
-  languageName: node
-  linkType: hard
-
-"ws@npm:^6.2.1":
-  version: 6.2.1
-  resolution: "ws@npm:6.2.1::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz"
-  dependencies:
-    async-limiter: ~1.0.0
-  checksum: 35d32b09e28f799f04708c3a7bd9eff469ae63e60543d7e18335f28689228a42ee21210f48de680aad6e5317df76b5b1183d1a1ea4b4d14cb6e0943528f40e76
-  languageName: node
-  linkType: hard
-
-"xregexp@npm:^4.3.0":
-  version: 4.3.0
-  resolution: "xregexp@npm:4.3.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fxregexp%2Fdownload%2Fxregexp-4.3.0.tgz"
-  dependencies:
-    "@babel/runtime-corejs3": ^7.8.3
-  checksum: 2dcef4888ea32e7c01b8f42d1ee3df24970de14b299a8f534ccecf2252d297092f92d037502176ec334b6c8d7cd1dd3dba0d3cf949e26f418d50b46846268839
-  languageName: node
-  linkType: hard
-
-"y18n@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "y18n@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz"
-  checksum: 5b7434c95d31ffa2b9b97df98e2d786446a0ff21c30e0265088caa4818a3335559a425763e55b6d9370d9fcecb75a36ae5bb901184676bd255f96ee3c743f667
-  languageName: node
-  linkType: hard
-
-"yallist@npm:^4.0.0":
-  version: 4.0.0
-  resolution: "yallist@npm:4.0.0::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz"
-  checksum: a2960ef879af6ee67a76cae29bac9d8bffeb6e9e366c217dbd21464e7fce071933705544724f47e90ba5209cf9c83c17d5582dd04415d86747a826b2a231efb8
-  languageName: node
-  linkType: hard
-
-"yaml@npm:^1.10.0":
-  version: 1.10.0
-  resolution: "yaml@npm:1.10.0"
-  checksum: d4cc9f9724f8d0aebc2cf52e4e6aa7059f12d50deb54b5225d103462fb2af36e5c0bb419101ca4b1f0cd3b4db9e4139cf2c690e863ac6227648d39d6f4e2522c
-  languageName: node
-  linkType: hard
-
-"yargs-parser@npm:^13.1.2":
-  version: 13.1.2
-  resolution: "yargs-parser@npm:13.1.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz"
-  dependencies:
-    camelcase: ^5.0.0
-    decamelize: ^1.2.0
-  checksum: 82d3b7ab99085d70a5121399ad407d2b98d296538bf7012ac2ce044a61160ca891ea617de6374699d81955d9a61c36a3b2a6a51588e38f710bd211ce2e63c33c
-  languageName: node
-  linkType: hard
-
-"yargs@npm:^13.3.2":
-  version: 13.3.2
-  resolution: "yargs@npm:13.3.2::__archiveUrl=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz"
-  dependencies:
-    cliui: ^5.0.0
-    find-up: ^3.0.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: ^3.0.0
-    which-module: ^2.0.0
-    y18n: ^4.0.0
-    yargs-parser: ^13.1.2
-  checksum: 92c612cd14a9217d7421ae4f42bc7c460472633bfc2e45f7f86cd614a61a845670d3bac7c2228c39df7fcecce0b8c12b2af65c785b1f757de974dcf84b5074f9
-  languageName: node
-  linkType: hard
diff --git a/Timeline/Configs/ApplicationConfiguration.cs b/Timeline/Configs/ApplicationConfiguration.cs
deleted file mode 100644
index df281adb..00000000
--- a/Timeline/Configs/ApplicationConfiguration.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-﻿namespace Timeline.Configs
-{
-    public static class ApplicationConfiguration
-    {
-        public const string WorkDirKey = "WorkDir";
-        public const string DefaultWorkDir = "/timeline";
-        public const string DatabaseFileName = "timeline.db";
-        public const string DatabaseBackupDirectoryName = "backup";
-        public const string DisableFrontEndKey = "DisableFrontEnd";
-        public const string UseMockFrontEndKey = "UseMockFrontEnd";
-        public const string UseProxyFrontEndKey = "UseProxyFrontEnd";
-    }
-}
diff --git a/Timeline/Configs/JwtConfiguration.cs b/Timeline/Configs/JwtConfiguration.cs
deleted file mode 100644
index af8052de..00000000
--- a/Timeline/Configs/JwtConfiguration.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-﻿namespace Timeline.Configs
-{
-    public class JwtConfiguration
-    {
-        public string Issuer { get; set; } = default!;
-        public string Audience { get; set; } = default!;
-
-        /// <summary>
-        /// Set the default value of expire offset of jwt token.
-        /// Unit is second. Default is 3600 * 24 seconds, aka 1 day.
-        /// </summary>
-        public long DefaultExpireOffset { get; set; } = 3600 * 24;
-    }
-}
diff --git a/Timeline/Controllers/ControllerAuthExtensions.cs b/Timeline/Controllers/ControllerAuthExtensions.cs
deleted file mode 100644
index 00a65454..00000000
--- a/Timeline/Controllers/ControllerAuthExtensions.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Security.Claims;
-using Timeline.Auth;
-using static Timeline.Resources.Controllers.ControllerAuthExtensions;
-
-namespace Timeline.Controllers
-{
-    public static class ControllerAuthExtensions
-    {
-        public static bool IsAdministrator(this ControllerBase controller)
-        {
-            return controller.User != null && controller.User.IsAdministrator();
-        }
-
-        public static long GetUserId(this ControllerBase controller)
-        {
-            var claim = controller.User.FindFirst(ClaimTypes.NameIdentifier);
-            if (claim == null)
-                throw new InvalidOperationException(ExceptionNoUserIdentifierClaim);
-
-            if (long.TryParse(claim.Value, out var value))
-                return value;
-
-            throw new InvalidOperationException(ExceptionUserIdentifierClaimBadFormat);
-        }
-
-        public static long? GetOptionalUserId(this ControllerBase controller)
-        {
-            var claim = controller.User.FindFirst(ClaimTypes.NameIdentifier);
-            if (claim == null)
-                return null;
-
-            if (long.TryParse(claim.Value, out var value))
-                return value;
-
-            throw new InvalidOperationException(ExceptionUserIdentifierClaimBadFormat);
-        }
-    }
-}
diff --git a/Timeline/Controllers/Testing/TestingAuthController.cs b/Timeline/Controllers/Testing/TestingAuthController.cs
deleted file mode 100644
index 4d3b3ec7..00000000
--- a/Timeline/Controllers/Testing/TestingAuthController.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
-using Timeline.Auth;
-
-namespace Timeline.Controllers.Testing
-{
-    [Route("testing/auth")]
-    [ApiController]
-    public class TestingAuthController : Controller
-    {
-        [HttpGet("[action]")]
-        [Authorize]
-        public ActionResult Authorize()
-        {
-            return Ok();
-        }
-
-        [HttpGet("[action]")]
-        [UserAuthorize]
-        public new ActionResult User()
-        {
-            return Ok();
-        }
-
-        [HttpGet("[action]")]
-        [AdminAuthorize]
-        public ActionResult Admin()
-        {
-            return Ok();
-        }
-    }
-}
diff --git a/Timeline/Controllers/TimelineController.cs b/Timeline/Controllers/TimelineController.cs
deleted file mode 100644
index 9a3147ea..00000000
--- a/Timeline/Controllers/TimelineController.cs
+++ /dev/null
@@ -1,491 +0,0 @@
-﻿using AutoMapper;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Threading.Tasks;
-using Timeline.Filters;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Models.Http;
-using Timeline.Models.Validation;
-using Timeline.Services;
-using Timeline.Services.Exceptions;
-
-namespace Timeline.Controllers
-{
-    /// <summary>
-    /// Operations about timeline.
-    /// </summary>
-    [ApiController]
-    [CatchTimelineNotExistException]
-    [ProducesErrorResponseType(typeof(CommonResponse))]
-    public class TimelineController : Controller
-    {
-        private readonly ILogger<TimelineController> _logger;
-
-        private readonly IUserService _userService;
-        private readonly ITimelineService _service;
-
-        private readonly IMapper _mapper;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public TimelineController(ILogger<TimelineController> logger, IUserService userService, ITimelineService service, IMapper mapper)
-        {
-            _logger = logger;
-            _userService = userService;
-            _service = service;
-            _mapper = mapper;
-        }
-
-        /// <summary>
-        /// List all timelines.
-        /// </summary>
-        /// <param name="relate">A username. If set, only timelines related to the user will return.</param>
-        /// <param name="relateType">Specify the relation type, may be 'own' or 'join'. If not set, both type will return.</param>
-        /// <param name="visibility">"Private" or "Register" or "Public". If set, only timelines whose visibility is specified one will return.</param>
-        /// <returns>The timeline list.</returns>
-        [HttpGet("timelines")]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<List<TimelineInfo>>> TimelineList([FromQuery][Username] string? relate, [FromQuery][RegularExpression("(own)|(join)")] string? relateType, [FromQuery] string? visibility)
-        {
-            List<TimelineVisibility>? visibilityFilter = null;
-            if (visibility != null)
-            {
-                visibilityFilter = new List<TimelineVisibility>();
-                var items = visibility.Split('|');
-                foreach (var item in items)
-                {
-                    if (item.Equals(nameof(TimelineVisibility.Private), StringComparison.OrdinalIgnoreCase))
-                    {
-                        if (!visibilityFilter.Contains(TimelineVisibility.Private))
-                            visibilityFilter.Add(TimelineVisibility.Private);
-                    }
-                    else if (item.Equals(nameof(TimelineVisibility.Register), StringComparison.OrdinalIgnoreCase))
-                    {
-                        if (!visibilityFilter.Contains(TimelineVisibility.Register))
-                            visibilityFilter.Add(TimelineVisibility.Register);
-                    }
-                    else if (item.Equals(nameof(TimelineVisibility.Public), StringComparison.OrdinalIgnoreCase))
-                    {
-                        if (!visibilityFilter.Contains(TimelineVisibility.Public))
-                            visibilityFilter.Add(TimelineVisibility.Public);
-                    }
-                    else
-                    {
-                        return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_QueryVisibilityUnknown, item));
-                    }
-                }
-            }
-
-            TimelineUserRelationship? relationship = null;
-            if (relate != null)
-            {
-                try
-                {
-                    var relatedUserId = await _userService.GetUserIdByUsername(relate);
-
-                    relationship = new TimelineUserRelationship(relateType switch
-                    {
-                        "own" => TimelineUserRelationshipType.Own,
-                        "join" => TimelineUserRelationshipType.Join,
-                        _ => TimelineUserRelationshipType.Default
-                    }, relatedUserId);
-                }
-                catch (UserNotExistException)
-                {
-                    return BadRequest(ErrorResponse.TimelineController.QueryRelateNotExist());
-                }
-            }
-
-            var timelines = await _service.GetTimelines(relationship, visibilityFilter);
-            var result = _mapper.Map<List<TimelineInfo>>(timelines);
-            return result;
-        }
-
-        /// <summary>
-        /// Get info of a timeline.
-        /// </summary>
-        /// <param name="name">The timeline name.</param>
-        /// <param name="checkUniqueId">A unique id. If specified and if-modified-since is also specified, the timeline info will return when unique id is not the specified one even if it is not modified.</param>
-        /// <param name="queryIfModifiedSince">Same effect as If-Modified-Since header and take precedence than it.</param>
-        /// <param name="headerIfModifiedSince">If specified, will return 304 if not modified.</param>
-        /// <returns>The timeline info.</returns>
-        [HttpGet("timelines/{name}")]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status304NotModified)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<TimelineInfo>> TimelineGet([FromRoute][GeneralTimelineName] string name, [FromQuery] string? checkUniqueId, [FromQuery(Name = "ifModifiedSince")] DateTime? queryIfModifiedSince, [FromHeader(Name = "If-Modified-Since")] DateTime? headerIfModifiedSince)
-        {
-            DateTime? ifModifiedSince = null;
-            if (queryIfModifiedSince.HasValue)
-            {
-                ifModifiedSince = queryIfModifiedSince.Value;
-            }
-            else if (headerIfModifiedSince != null)
-            {
-                ifModifiedSince = headerIfModifiedSince.Value;
-            }
-
-            bool returnNotModified = false;
-
-            if (ifModifiedSince.HasValue)
-            {
-                var lastModified = await _service.GetTimelineLastModifiedTime(name);
-                if (lastModified < ifModifiedSince.Value)
-                {
-                    if (checkUniqueId != null)
-                    {
-                        var uniqueId = await _service.GetTimelineUniqueId(name);
-                        if (uniqueId == checkUniqueId)
-                        {
-                            returnNotModified = true;
-                        }
-                    }
-                    else
-                    {
-                        returnNotModified = true;
-                    }
-                }
-            }
-
-            if (returnNotModified)
-            {
-                return StatusCode(StatusCodes.Status304NotModified);
-            }
-            else
-            {
-                var timeline = await _service.GetTimeline(name);
-                var result = _mapper.Map<TimelineInfo>(timeline);
-                return result;
-            }
-        }
-
-        /// <summary>
-        /// Get posts of a timeline.
-        /// </summary>
-        /// <param name="name">The name of the timeline.</param>
-        /// <param name="modifiedSince">If set, only posts modified since the time will return.</param>
-        /// <param name="includeDeleted">If set to true, deleted post will also return.</param>
-        /// <returns>The post list.</returns>
-        [HttpGet("timelines/{name}/posts")]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<List<TimelinePostInfo>>> PostListGet([FromRoute][GeneralTimelineName] string name, [FromQuery] DateTime? modifiedSince, [FromQuery] bool? includeDeleted)
-        {
-            if (!this.IsAdministrator() && !await _service.HasReadPermission(name, this.GetOptionalUserId()))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            List<TimelinePost> posts = await _service.GetPosts(name, modifiedSince, includeDeleted ?? false);
-
-            var result = _mapper.Map<List<TimelinePostInfo>>(posts);
-            return result;
-        }
-
-        /// <summary>
-        /// Get the data of a post. Usually a image post.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="id">The id of the post.</param>
-        /// <param name="ifNoneMatch">If-None-Match header.</param>
-        /// <returns>The data.</returns>
-        [HttpGet("timelines/{name}/posts/{id}/data")]
-        [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")]
-        [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)]
-        [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<IActionResult> PostDataGet([FromRoute][GeneralTimelineName] string name, [FromRoute] long id, [FromHeader(Name = "If-None-Match")] string? ifNoneMatch)
-        {
-            _ = ifNoneMatch;
-            if (!this.IsAdministrator() && !await _service.HasReadPermission(name, this.GetOptionalUserId()))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            try
-            {
-                return await DataCacheHelper.GenerateActionResult(this, () => _service.GetPostDataETag(name, id), async () =>
-                {
-                    var data = await _service.GetPostData(name, id);
-                    return data;
-                });
-            }
-            catch (TimelinePostNotExistException)
-            {
-                return NotFound(ErrorResponse.TimelineController.PostNotExist());
-            }
-            catch (TimelinePostNoDataException)
-            {
-                return BadRequest(ErrorResponse.TimelineController.PostNoData());
-            }
-        }
-
-        /// <summary>
-        /// Create a new post.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="body"></param>
-        /// <returns>Info of new post.</returns>
-        [HttpPost("timelines/{name}/posts")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<TimelinePostInfo>> PostPost([FromRoute][GeneralTimelineName] string name, [FromBody] TimelinePostCreateRequest body)
-        {
-            var id = this.GetUserId();
-            if (!this.IsAdministrator() && !await _service.IsMemberOf(name, id))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            var content = body.Content;
-
-            TimelinePost post;
-
-            if (content.Type == TimelinePostContentTypes.Text)
-            {
-                var text = content.Text;
-                if (text == null)
-                {
-                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_TextContentTextRequired));
-                }
-                post = await _service.CreateTextPost(name, id, text, body.Time);
-            }
-            else if (content.Type == TimelinePostContentTypes.Image)
-            {
-                var base64Data = content.Data;
-                if (base64Data == null)
-                {
-                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataRequired));
-                }
-                byte[] data;
-                try
-                {
-                    data = Convert.FromBase64String(base64Data);
-                }
-                catch (FormatException)
-                {
-                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataNotBase64));
-                }
-
-                try
-                {
-                    post = await _service.CreateImagePost(name, id, data, body.Time);
-                }
-                catch (ImageException)
-                {
-                    return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ImageContentDataNotImage));
-                }
-            }
-            else
-            {
-                return BadRequest(ErrorResponse.Common.CustomMessage_InvalidModel(Resources.Messages.TimelineController_ContentUnknownType));
-            }
-
-            var result = _mapper.Map<TimelinePostInfo>(post);
-            return result;
-        }
-
-        /// <summary>
-        /// Delete a post.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="id">Post id.</param>
-        /// <returns>Info of deletion.</returns>
-        [HttpDelete("timelines/{name}/posts/{id}")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<CommonDeleteResponse>> PostDelete([FromRoute][GeneralTimelineName] string name, [FromRoute] long id)
-        {
-            if (!this.IsAdministrator() && !await _service.HasPostModifyPermission(name, id, this.GetUserId()))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-            try
-            {
-                await _service.DeletePost(name, id);
-                return CommonDeleteResponse.Delete();
-            }
-            catch (TimelinePostNotExistException)
-            {
-                return CommonDeleteResponse.NotExist();
-            }
-        }
-
-        /// <summary>
-        /// Change properties of a timeline.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="body"></param>
-        /// <returns>The new info.</returns>
-        [HttpPatch("timelines/{name}")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<TimelineInfo>> TimelinePatch([FromRoute][GeneralTimelineName] string name, [FromBody] TimelinePatchRequest body)
-        {
-            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-            await _service.ChangeProperty(name, _mapper.Map<TimelineChangePropertyRequest>(body));
-            var timeline = await _service.GetTimeline(name);
-            var result = _mapper.Map<TimelineInfo>(timeline);
-            return result;
-        }
-
-        /// <summary>
-        /// Add a member to timeline.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="member">The new member's username.</param>
-        [HttpPut("timelines/{name}/members/{member}")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult> TimelineMemberPut([FromRoute][GeneralTimelineName] string name, [FromRoute][Username] string member)
-        {
-            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            try
-            {
-                await _service.ChangeMember(name, new List<string> { member }, null);
-                return Ok();
-            }
-            catch (UserNotExistException)
-            {
-                return BadRequest(ErrorResponse.TimelineController.MemberPut_NotExist());
-            }
-        }
-
-        /// <summary>
-        /// Remove a member from timeline.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <param name="member">The member's username.</param>
-        [HttpDelete("timelines/{name}/members/{member}")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult> TimelineMemberDelete([FromRoute][GeneralTimelineName] string name, [FromRoute][Username] string member)
-        {
-            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            try
-            {
-                await _service.ChangeMember(name, null, new List<string> { member });
-                return Ok(CommonDeleteResponse.Delete());
-            }
-            catch (UserNotExistException)
-            {
-                return Ok(CommonDeleteResponse.NotExist());
-            }
-        }
-
-        /// <summary>
-        /// Create a timeline.
-        /// </summary>
-        /// <param name="body"></param>
-        /// <returns>Info of new timeline.</returns>
-        [HttpPost("timelines")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        public async Task<ActionResult<TimelineInfo>> TimelineCreate([FromBody] TimelineCreateRequest body)
-        {
-            var userId = this.GetUserId();
-
-            try
-            {
-                var timeline = await _service.CreateTimeline(body.Name, userId);
-                var result = _mapper.Map<TimelineInfo>(timeline);
-                return result;
-            }
-            catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.Timeline)
-            {
-                return BadRequest(ErrorResponse.TimelineController.NameConflict());
-            }
-        }
-
-        /// <summary>
-        /// Delete a timeline.
-        /// </summary>
-        /// <param name="name">Timeline name.</param>
-        /// <returns>Info of deletion.</returns>
-        [HttpDelete("timelines/{name}")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<CommonDeleteResponse>> TimelineDelete([FromRoute][TimelineName] string name)
-        {
-            if (!this.IsAdministrator() && !(await _service.HasManagePermission(name, this.GetUserId())))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            try
-            {
-                await _service.DeleteTimeline(name);
-                return CommonDeleteResponse.Delete();
-            }
-            catch (TimelineNotExistException)
-            {
-                return CommonDeleteResponse.NotExist();
-            }
-        }
-
-        [HttpPost("timelineop/changename")]
-        [Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<TimelineInfo>> TimelineOpChangeName([FromBody] TimelineChangeNameRequest body)
-        {
-            if (!this.IsAdministrator() && !(await _service.HasManagePermission(body.OldName, this.GetUserId())))
-            {
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            try
-            {
-                var timeline = await _service.ChangeTimelineName(body.OldName, body.NewName);
-                return Ok(_mapper.Map<TimelineInfo>(timeline));
-            }
-            catch (EntityAlreadyExistException)
-            {
-                return BadRequest(ErrorResponse.TimelineController.NameConflict());
-            }
-        }
-    }
-}
diff --git a/Timeline/Controllers/TokenController.cs b/Timeline/Controllers/TokenController.cs
deleted file mode 100644
index 8f2ca600..00000000
--- a/Timeline/Controllers/TokenController.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-using AutoMapper;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Globalization;
-using System.Threading.Tasks;
-using Timeline.Helpers;
-using Timeline.Models.Http;
-using Timeline.Services;
-using Timeline.Services.Exceptions;
-using static Timeline.Resources.Controllers.TokenController;
-
-namespace Timeline.Controllers
-{
-    /// <summary>
-    /// Operation about tokens.
-    /// </summary>
-    [Route("token")]
-    [ApiController]
-    [ProducesErrorResponseType(typeof(CommonResponse))]
-    public class TokenController : Controller
-    {
-        private readonly IUserTokenManager _userTokenManager;
-        private readonly ILogger<TokenController> _logger;
-        private readonly IClock _clock;
-
-        private readonly IMapper _mapper;
-
-        /// <summary></summary>
-        public TokenController(IUserTokenManager userTokenManager, ILogger<TokenController> logger, IClock clock, IMapper mapper)
-        {
-            _userTokenManager = userTokenManager;
-            _logger = logger;
-            _clock = clock;
-            _mapper = mapper;
-        }
-
-        /// <summary>
-        /// Create a new token for a user.
-        /// </summary>
-        /// <returns>Result of token creation.</returns>
-        [HttpPost("create")]
-        [AllowAnonymous]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<CreateTokenResponse>> Create([FromBody] CreateTokenRequest request)
-        {
-            void LogFailure(string reason, Exception? e = null)
-            {
-                _logger.LogInformation(e, Log.Format(LogCreateFailure,
-                    ("Reason", reason),
-                    ("Username", request.Username),
-                    ("Password", request.Password),
-                    ("Expire (in days)", request.Expire)
-                ));
-            }
-
-            try
-            {
-                DateTime? expireTime = null;
-                if (request.Expire != null)
-                    expireTime = _clock.GetCurrentTime().AddDays(request.Expire.Value);
-
-                var result = await _userTokenManager.CreateToken(request.Username, request.Password, expireTime);
-
-                _logger.LogInformation(Log.Format(LogCreateSuccess,
-                    ("Username", request.Username),
-                    ("Expire At", expireTime?.ToString(CultureInfo.CurrentCulture.DateTimeFormat) ?? "default")
-                ));
-                return Ok(new CreateTokenResponse
-                {
-                    Token = result.Token,
-                    User = _mapper.Map<UserInfo>(result.User)
-                });
-            }
-            catch (UserNotExistException e)
-            {
-                LogFailure(LogUserNotExist, e);
-                return BadRequest(ErrorResponse.TokenController.Create_BadCredential());
-            }
-            catch (BadPasswordException e)
-            {
-                LogFailure(LogBadPassword, e);
-                return BadRequest(ErrorResponse.TokenController.Create_BadCredential());
-            }
-        }
-
-        /// <summary>
-        /// Verify a token.
-        /// </summary>
-        /// <returns>Result of token verification.</returns>
-        [HttpPost("verify")]
-        [AllowAnonymous]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        public async Task<ActionResult<VerifyTokenResponse>> Verify([FromBody] VerifyTokenRequest request)
-        {
-            void LogFailure(string reason, Exception? e = null, params (string, object?)[] otherProperties)
-            {
-                var properties = new (string, object?)[2 + otherProperties.Length];
-                properties[0] = ("Reason", reason);
-                properties[1] = ("Token", request.Token);
-                otherProperties.CopyTo(properties, 2);
-                _logger.LogInformation(e, Log.Format(LogVerifyFailure, properties));
-            }
-
-            try
-            {
-                var result = await _userTokenManager.VerifyToken(request.Token);
-                _logger.LogInformation(Log.Format(LogVerifySuccess,
-                    ("Username", result.Username), ("Token", request.Token)));
-                return Ok(new VerifyTokenResponse
-                {
-                    User = _mapper.Map<UserInfo>(result)
-                });
-            }
-            catch (UserTokenTimeExpireException e)
-            {
-                LogFailure(LogVerifyExpire, e, ("Expire Time", e.ExpireTime), ("Verify Time", e.VerifyTime));
-                return BadRequest(ErrorResponse.TokenController.Verify_TimeExpired());
-            }
-            catch (UserTokenBadVersionException e)
-            {
-                LogFailure(LogVerifyOldVersion, e, ("Token Version", e.TokenVersion), ("Required Version", e.RequiredVersion));
-                return BadRequest(ErrorResponse.TokenController.Verify_OldVersion());
-
-            }
-            catch (UserTokenBadFormatException e)
-            {
-                LogFailure(LogVerifyBadFormat, e);
-                return BadRequest(ErrorResponse.TokenController.Verify_BadFormat());
-            }
-            catch (UserNotExistException e)
-            {
-                LogFailure(LogVerifyUserNotExist, e);
-                return BadRequest(ErrorResponse.TokenController.Verify_UserNotExist());
-            }
-        }
-    }
-}
diff --git a/Timeline/Controllers/UserAvatarController.cs b/Timeline/Controllers/UserAvatarController.cs
deleted file mode 100644
index bc4afa30..00000000
--- a/Timeline/Controllers/UserAvatarController.cs
+++ /dev/null
@@ -1,174 +0,0 @@
-﻿using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using Microsoft.Net.Http.Headers;
-using System;
-using System.Threading.Tasks;
-using Timeline.Auth;
-using Timeline.Filters;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Models.Http;
-using Timeline.Models.Validation;
-using Timeline.Services;
-using Timeline.Services.Exceptions;
-using static Timeline.Resources.Controllers.UserAvatarController;
-
-namespace Timeline.Controllers
-{
-    /// <summary>
-    /// Operations about user avatar.
-    /// </summary>
-    [ApiController]
-    [ProducesErrorResponseType(typeof(CommonResponse))]
-    public class UserAvatarController : Controller
-    {
-        private readonly ILogger<UserAvatarController> _logger;
-
-        private readonly IUserService _userService;
-        private readonly IUserAvatarService _service;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public UserAvatarController(ILogger<UserAvatarController> logger, IUserService userService, IUserAvatarService service)
-        {
-            _logger = logger;
-            _userService = userService;
-            _service = service;
-        }
-
-        /// <summary>
-        /// Get avatar of a user.
-        /// </summary>
-        /// <param name="username">Username of the user to get avatar of.</param>
-        /// <param name="ifNoneMatch">If-None-Match header.</param>
-        /// <returns>Avatar data.</returns>
-        [HttpGet("users/{username}/avatar")]
-        [Produces("image/png", "image/jpeg", "image/gif", "image/webp", "application/json", "text/json")]
-        [ProducesResponseType(typeof(byte[]), StatusCodes.Status200OK)]
-        [ProducesResponseType(typeof(void), StatusCodes.Status304NotModified)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<IActionResult> Get([FromRoute][Username] string username, [FromHeader(Name = "If-None-Match")] string? ifNoneMatch)
-        {
-            _ = ifNoneMatch;
-            long id;
-            try
-            {
-                id = await _userService.GetUserIdByUsername(username);
-            }
-            catch (UserNotExistException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogGetUserNotExist, ("Username", username)));
-                return NotFound(ErrorResponse.UserCommon.NotExist());
-            }
-
-            return await DataCacheHelper.GenerateActionResult(this, () => _service.GetAvatarETag(id), async () =>
-            {
-                var avatar = await _service.GetAvatar(id);
-                return avatar.ToCacheableData();
-            });
-        }
-
-        /// <summary>
-        /// Set avatar of a user. You have to be administrator to change other's.
-        /// </summary>
-        /// <param name="username">Username of the user to set avatar of.</param>
-        /// <param name="body">The avatar data.</param>
-        [HttpPut("users/{username}/avatar")]
-        [Authorize]
-        [Consumes("image/png", "image/jpeg", "image/gif", "image/webp")]
-        [MaxContentLength(1000 * 1000 * 10)]
-        [ProducesResponseType(typeof(void), StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<IActionResult> Put([FromRoute][Username] string username, [FromBody] ByteData body)
-        {
-            if (!User.IsAdministrator() && User.Identity.Name != username)
-            {
-                _logger.LogInformation(Log.Format(LogPutForbid,
-                    ("Operator Username", User.Identity.Name), ("Username To Put Avatar", username)));
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            long id;
-            try
-            {
-                id = await _userService.GetUserIdByUsername(username);
-            }
-            catch (UserNotExistException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogPutUserNotExist, ("Username", username)));
-                return BadRequest(ErrorResponse.UserCommon.NotExist());
-            }
-
-            try
-            {
-                var etag = await _service.SetAvatar(id, new Avatar
-                {
-                    Data = body.Data,
-                    Type = body.ContentType
-                });
-
-                _logger.LogInformation(Log.Format(LogPutSuccess,
-                    ("Username", username), ("Mime Type", Request.ContentType)));
-
-                Response.Headers.Append("ETag", new EntityTagHeaderValue($"\"{etag}\"").ToString());
-
-                return Ok();
-            }
-            catch (ImageException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogPutUserBadFormat, ("Username", username)));
-                return BadRequest(e.Error switch
-                {
-                    ImageException.ErrorReason.CantDecode => ErrorResponse.UserAvatar.BadFormat_CantDecode(),
-                    ImageException.ErrorReason.UnmatchedFormat => ErrorResponse.UserAvatar.BadFormat_UnmatchedFormat(),
-                    ImageException.ErrorReason.NotSquare => ErrorResponse.UserAvatar.BadFormat_BadSize(),
-                    _ =>
-                        throw new Exception(ExceptionUnknownAvatarFormatError)
-                });
-            }
-        }
-
-        /// <summary>
-        /// Reset the avatar to the default one. You have to be administrator to reset other's.
-        /// </summary>
-        /// <param name="username">Username of the user.</param>
-        /// <response code="200">Succeeded to reset.</response>
-        /// <response code="400">Error code is 10010001 if user does not exist.</response>
-        /// <response code="401">You have not logged in.</response>
-        /// <response code="403">You are not administrator.</response>
-        [HttpDelete("users/{username}/avatar")]
-        [ProducesResponseType(typeof(void), StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        [Authorize]
-        public async Task<IActionResult> Delete([FromRoute][Username] string username)
-        {
-            if (!User.IsAdministrator() && User.Identity.Name != username)
-            {
-                _logger.LogInformation(Log.Format(LogDeleteForbid,
-                    ("Operator Username", User.Identity.Name), ("Username To Delete Avatar", username)));
-                return StatusCode(StatusCodes.Status403Forbidden, ErrorResponse.Common.Forbid());
-            }
-
-            long id;
-            try
-            {
-                id = await _userService.GetUserIdByUsername(username);
-            }
-            catch (UserNotExistException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogDeleteNotExist, ("Username", username)));
-                return BadRequest(ErrorResponse.UserCommon.NotExist());
-            }
-
-            await _service.SetAvatar(id, null);
-            return Ok();
-        }
-    }
-}
diff --git a/Timeline/Controllers/UserController.cs b/Timeline/Controllers/UserController.cs
deleted file mode 100644
index 02c09aab..00000000
--- a/Timeline/Controllers/UserController.cs
+++ /dev/null
@@ -1,195 +0,0 @@
-using AutoMapper;
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Auth;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Models.Http;
-using Timeline.Models.Validation;
-using Timeline.Services;
-using Timeline.Services.Exceptions;
-using static Timeline.Resources.Controllers.UserController;
-using static Timeline.Resources.Messages;
-
-namespace Timeline.Controllers
-{
-    /// <summary>
-    /// Operations about users.
-    /// </summary>
-    [ApiController]
-    [ProducesErrorResponseType(typeof(CommonResponse))]
-    public class UserController : Controller
-    {
-        private readonly ILogger<UserController> _logger;
-        private readonly IUserService _userService;
-        private readonly IUserDeleteService _userDeleteService;
-        private readonly IMapper _mapper;
-
-        /// <summary></summary>
-        public UserController(ILogger<UserController> logger, IUserService userService, IUserDeleteService userDeleteService, IMapper mapper)
-        {
-            _logger = logger;
-            _userService = userService;
-            _userDeleteService = userDeleteService;
-            _mapper = mapper;
-        }
-
-        private UserInfo ConvertToUserInfo(User user) => _mapper.Map<UserInfo>(user);
-
-        /// <summary>
-        /// Get all users.
-        /// </summary>
-        /// <returns>All user list.</returns>
-        [HttpGet("users")]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        public async Task<ActionResult<UserInfo[]>> List()
-        {
-            var users = await _userService.GetUsers();
-            var result = users.Select(u => ConvertToUserInfo(u)).ToArray();
-            return Ok(result);
-        }
-
-        /// <summary>
-        /// Get a user's info.
-        /// </summary>
-        /// <param name="username">Username of the user.</param>
-        /// <returns>User info.</returns>
-        [HttpGet("users/{username}")]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<UserInfo>> Get([FromRoute][Username] string username)
-        {
-            try
-            {
-                var user = await _userService.GetUserByUsername(username);
-                return Ok(ConvertToUserInfo(user));
-            }
-            catch (UserNotExistException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogGetUserNotExist, ("Username", username)));
-                return NotFound(ErrorResponse.UserCommon.NotExist());
-            }
-        }
-
-        /// <summary>
-        /// Change a user's property.
-        /// </summary>
-        /// <param name="body"></param>
-        /// <param name="username">Username of the user to change.</param>
-        /// <returns>The new user info.</returns>
-        [HttpPatch("users/{username}"), Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public async Task<ActionResult<UserInfo>> Patch([FromBody] UserPatchRequest body, [FromRoute][Username] string username)
-        {
-            if (this.IsAdministrator())
-            {
-                try
-                {
-                    var user = await _userService.ModifyUser(username, _mapper.Map<User>(body));
-                    return Ok(ConvertToUserInfo(user));
-                }
-                catch (UserNotExistException e)
-                {
-                    _logger.LogInformation(e, Log.Format(LogPatchUserNotExist, ("Username", username)));
-                    return NotFound(ErrorResponse.UserCommon.NotExist());
-                }
-                catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User)
-                {
-                    return BadRequest(ErrorResponse.UserController.UsernameConflict());
-                }
-            }
-            else
-            {
-                if (User.Identity.Name != username)
-                    return StatusCode(StatusCodes.Status403Forbidden,
-                        ErrorResponse.Common.CustomMessage_Forbid(Common_Forbid_NotSelf));
-
-                if (body.Username != null)
-                    return StatusCode(StatusCodes.Status403Forbidden,
-                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Username));
-
-                if (body.Password != null)
-                    return StatusCode(StatusCodes.Status403Forbidden,
-                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Password));
-
-                if (body.Administrator != null)
-                    return StatusCode(StatusCodes.Status403Forbidden,
-                        ErrorResponse.Common.CustomMessage_Forbid(UserController_Patch_Forbid_Administrator));
-
-                var user = await _userService.ModifyUser(this.GetUserId(), _mapper.Map<User>(body));
-                return Ok(ConvertToUserInfo(user));
-            }
-        }
-
-        /// <summary>
-        /// Delete a user and all his related data. You have to be administrator.
-        /// </summary>
-        /// <param name="username">Username of the user to delete.</param>
-        /// <returns>Info of deletion.</returns>
-        [HttpDelete("users/{username}"), AdminAuthorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<CommonDeleteResponse>> Delete([FromRoute][Username] string username)
-        {
-            var delete = await _userDeleteService.DeleteUser(username);
-            if (delete)
-                return Ok(CommonDeleteResponse.Delete());
-            else
-                return Ok(CommonDeleteResponse.NotExist());
-        }
-
-        /// <summary>
-        /// Create a new user. You have to be administrator.
-        /// </summary>
-        /// <returns>The new user's info.</returns>
-        [HttpPost("userop/createuser"), AdminAuthorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        [ProducesResponseType(StatusCodes.Status403Forbidden)]
-        public async Task<ActionResult<UserInfo>> CreateUser([FromBody] CreateUserRequest body)
-        {
-            try
-            {
-                var user = await _userService.CreateUser(_mapper.Map<User>(body));
-                return Ok(ConvertToUserInfo(user));
-            }
-            catch (EntityAlreadyExistException e) when (e.EntityName == EntityNames.User)
-            {
-                return BadRequest(ErrorResponse.UserController.UsernameConflict());
-            }
-        }
-
-        /// <summary>
-        /// Change password with old password.
-        /// </summary>
-        [HttpPost("userop/changepassword"), Authorize]
-        [ProducesResponseType(StatusCodes.Status200OK)]
-        [ProducesResponseType(StatusCodes.Status400BadRequest)]
-        [ProducesResponseType(StatusCodes.Status401Unauthorized)]
-        public async Task<ActionResult> ChangePassword([FromBody] ChangePasswordRequest request)
-        {
-            try
-            {
-                await _userService.ChangePassword(this.GetUserId(), request.OldPassword, request.NewPassword);
-                return Ok();
-            }
-            catch (BadPasswordException e)
-            {
-                _logger.LogInformation(e, Log.Format(LogChangePasswordBadPassword,
-                    ("Username", User.Identity.Name), ("Old Password", request.OldPassword)));
-                return BadRequest(ErrorResponse.UserController.ChangePassword_BadOldPassword());
-            }
-            // User can't be non-existent or the token is bad.
-        }
-    }
-}
diff --git a/Timeline/Entities/DataEntity.cs b/Timeline/Entities/DataEntity.cs
deleted file mode 100644
index b21e2dbf..00000000
--- a/Timeline/Entities/DataEntity.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    [Table("data")]
-    public class DataEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("tag"), Required]
-        public string Tag { get; set; } = default!;
-
-        [Column("data"), Required]
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[] Data { get; set; } = default!;
-#pragma warning restore CA1819 // Properties should not return arrays
-
-        [Column("ref"), Required]
-        public int Ref { get; set; }
-    }
-}
diff --git a/Timeline/Entities/DatabaseContext.cs b/Timeline/Entities/DatabaseContext.cs
deleted file mode 100644
index ecadd703..00000000
--- a/Timeline/Entities/DatabaseContext.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-
-namespace Timeline.Entities
-{
-    public class DatabaseContext : DbContext
-    {
-        public DatabaseContext(DbContextOptions<DatabaseContext> options)
-            : base(options)
-        {
-        }
-
-        protected override void OnModelCreating(ModelBuilder modelBuilder)
-        {
-            modelBuilder.Entity<UserEntity>().Property(e => e.Version).HasDefaultValue(0);
-            modelBuilder.Entity<UserEntity>().HasIndex(e => e.Username).IsUnique();
-            modelBuilder.Entity<UserEntity>().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))");
-            modelBuilder.Entity<UserEntity>().Property(e => e.UsernameChangeTime).HasDefaultValueSql("datetime('now', 'utc')");
-            modelBuilder.Entity<UserEntity>().Property(e => e.CreateTime).HasDefaultValueSql("datetime('now', 'utc')");
-            modelBuilder.Entity<UserEntity>().Property(e => e.LastModified).HasDefaultValueSql("datetime('now', 'utc')");
-            modelBuilder.Entity<DataEntity>().HasIndex(e => e.Tag).IsUnique();
-            modelBuilder.Entity<TimelineEntity>().Property(e => e.UniqueId).HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-            modelBuilder.ApplyUtcDateTimeConverter();
-        }
-
-        public DbSet<UserEntity> Users { get; set; } = default!;
-        public DbSet<UserAvatarEntity> UserAvatars { get; set; } = default!;
-        public DbSet<TimelineEntity> Timelines { get; set; } = default!;
-        public DbSet<TimelinePostEntity> TimelinePosts { get; set; } = default!;
-        public DbSet<TimelineMemberEntity> TimelineMembers { get; set; } = default!;
-        public DbSet<JwtTokenEntity> JwtToken { get; set; } = default!;
-        public DbSet<DataEntity> Data { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Entities/JwtTokenEntity.cs b/Timeline/Entities/JwtTokenEntity.cs
deleted file mode 100644
index 40cb230a..00000000
--- a/Timeline/Entities/JwtTokenEntity.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-﻿using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    [Table("jwt_token")]
-    public class JwtTokenEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Required, Column("key")]
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[] Key { get; set; } = default!;
-#pragma warning restore CA1819 // Properties should not return arrays
-    }
-}
diff --git a/Timeline/Entities/TimelineEntity.cs b/Timeline/Entities/TimelineEntity.cs
deleted file mode 100644
index 3e592673..00000000
--- a/Timeline/Entities/TimelineEntity.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-using Timeline.Models;
-
-namespace Timeline.Entities
-{
-#pragma warning disable CA2227 // Collection properties should be read only
-    // TODO: Create index for this table.
-    [Table("timelines")]
-    public class TimelineEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("unique_id"), Required]
-        public string UniqueId { get; set; } = default!;
-
-        /// <summary>
-        /// If null, then this timeline is a personal timeline.
-        /// </summary>
-        [Column("name")]
-        public string? Name { get; set; }
-
-        [Column("title")]
-        public string? Title { get; set; }
-
-        [Column("name_last_modified")]
-        public DateTime NameLastModified { get; set; }
-
-        [Column("description")]
-        public string? Description { get; set; }
-
-        [Column("owner")]
-        public long OwnerId { get; set; }
-
-        [ForeignKey(nameof(OwnerId))]
-        public UserEntity Owner { get; set; } = default!;
-
-        [Column("visibility")]
-        public TimelineVisibility Visibility { get; set; }
-
-        [Column("create_time")]
-        public DateTime CreateTime { get; set; }
-
-        [Column("last_modified")]
-        public DateTime LastModified { get; set; }
-
-        [Column("current_post_local_id")]
-        public long CurrentPostLocalId { get; set; }
-
-        public List<TimelineMemberEntity> Members { get; set; } = default!;
-
-        public List<TimelinePostEntity> Posts { get; set; } = default!;
-    }
-#pragma warning restore CA2227 // Collection properties should be read only
-}
diff --git a/Timeline/Entities/TimelineMemberEntity.cs b/Timeline/Entities/TimelineMemberEntity.cs
deleted file mode 100644
index e76f2099..00000000
--- a/Timeline/Entities/TimelineMemberEntity.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-﻿using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    [Table("timeline_members")]
-    public class TimelineMemberEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("user")]
-        public long UserId { get; set; }
-
-        [ForeignKey(nameof(UserId))]
-        public UserEntity User { get; set; } = default!;
-
-        [Column("timeline")]
-        public long TimelineId { get; set; }
-
-        [ForeignKey(nameof(TimelineId))]
-        public TimelineEntity Timeline { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Entities/TimelinePostEntity.cs b/Timeline/Entities/TimelinePostEntity.cs
deleted file mode 100644
index 07367fba..00000000
--- a/Timeline/Entities/TimelinePostEntity.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-﻿using System;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    [Table("timeline_posts")]
-    public class TimelinePostEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("local_id")]
-        public long LocalId { get; set; }
-
-        [Column("timeline")]
-        public long TimelineId { get; set; }
-
-        [ForeignKey(nameof(TimelineId))]
-        public TimelineEntity Timeline { get; set; } = default!;
-
-        [Column("author")]
-        public long? AuthorId { get; set; }
-
-        [ForeignKey(nameof(AuthorId))]
-        public UserEntity? Author { get; set; } = default!;
-
-        [Column("content_type"), Required]
-        public string ContentType { get; set; } = default!;
-
-        [Column("content")]
-        public string? Content { get; set; }
-
-        [Column("extra_content")]
-        public string? ExtraContent { get; set; }
-
-        [Column("time")]
-        public DateTime Time { get; set; }
-
-        [Column("last_updated")]
-        public DateTime LastUpdated { get; set; }
-    }
-}
diff --git a/Timeline/Entities/UserAvatarEntity.cs b/Timeline/Entities/UserAvatarEntity.cs
deleted file mode 100644
index 3c2720f7..00000000
--- a/Timeline/Entities/UserAvatarEntity.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-﻿using System;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "This is data base entity.")]
-    [Table("user_avatars")]
-    public class UserAvatarEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("data_tag")]
-        public string? DataTag { get; set; }
-
-        [Column("type")]
-        public string? Type { get; set; }
-
-        [Column("last_modified"), Required]
-        public DateTime LastModified { get; set; }
-
-        [Column("user"), Required]
-        public long UserId { get; set; }
-
-        [ForeignKey(nameof(UserId))]
-        public UserEntity User { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Entities/UserEntity.cs b/Timeline/Entities/UserEntity.cs
deleted file mode 100644
index 0cfaa335..00000000
--- a/Timeline/Entities/UserEntity.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Timeline.Entities
-{
-    public static class UserRoles
-    {
-        public const string Admin = "admin";
-        public const string User = "user";
-    }
-
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "This is an entity class.")]
-    [Table("users")]
-    public class UserEntity
-    {
-        [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
-        public long Id { get; set; }
-
-        [Column("unique_id"), Required]
-        public string UniqueId { get; set; } = default!;
-
-        [Column("username"), Required]
-        public string Username { get; set; } = default!;
-
-        [Column("username_change_time")]
-        public DateTime UsernameChangeTime { get; set; }
-
-        [Column("password"), Required]
-        public string Password { get; set; } = default!;
-
-        [Column("roles"), Required]
-        public string Roles { get; set; } = default!;
-
-        [Column("version"), Required]
-        public long Version { get; set; }
-
-        [Column("nickname")]
-        public string? Nickname { get; set; }
-
-        [Column("create_time")]
-        public DateTime CreateTime { get; set; }
-
-        [Column("last_modified")]
-        public DateTime LastModified { get; set; }
-
-        public UserAvatarEntity? Avatar { get; set; }
-
-        public List<TimelineEntity> Timelines { get; set; } = default!;
-
-        public List<TimelinePostEntity> TimelinePosts { get; set; } = default!;
-
-        public List<TimelineMemberEntity> TimelinesJoined { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Entities/UtcDateAnnotation.cs b/Timeline/Entities/UtcDateAnnotation.cs
deleted file mode 100644
index 6600e701..00000000
--- a/Timeline/Entities/UtcDateAnnotation.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Metadata.Builders;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using System;
-
-namespace Timeline.Entities
-{
-    // Copied from https://github.com/dotnet/efcore/issues/4711#issuecomment-589842988
-    public static class UtcDateAnnotation
-    {
-        private const string IsUtcAnnotation = "IsUtc";
-        private static readonly ValueConverter<DateTime, DateTime> UtcConverter =
-            new ValueConverter<DateTime, DateTime>(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc));
-
-        public static PropertyBuilder<TProperty> IsUtc<TProperty>(this PropertyBuilder<TProperty> builder, bool isUtc = true) =>
-            builder.HasAnnotation(IsUtcAnnotation, isUtc);
-
-        public static bool IsUtc(this IMutableProperty property) =>
-            ((bool?)property.FindAnnotation(IsUtcAnnotation)?.Value) ?? true;
-
-        /// <summary>
-        /// Make sure this is called after configuring all your entities.
-        /// </summary>
-        public static void ApplyUtcDateTimeConverter(this ModelBuilder builder)
-        {
-            foreach (var entityType in builder.Model.GetEntityTypes())
-            {
-                foreach (var property in entityType.GetProperties())
-                {
-                    if (!property.IsUtc())
-                    {
-                        continue;
-                    }
-
-                    if (property.ClrType == typeof(DateTime))
-                    {
-                        property.SetValueConverter(UtcConverter);
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/Timeline/Filters/Header.cs b/Timeline/Filters/Header.cs
deleted file mode 100644
index cc5ddd9f..00000000
--- a/Timeline/Filters/Header.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Filters;
-using Timeline.Models.Http;
-
-namespace Timeline.Filters
-{
-    /// <summary>
-    /// Restrict max content length.
-    /// </summary>
-    public class MaxContentLengthFilter : IResourceFilter
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="maxByteLength">Max length.</param>
-        public MaxContentLengthFilter(long maxByteLength)
-        {
-            MaxByteLength = maxByteLength;
-        }
-
-        /// <summary>
-        /// Max length.
-        /// </summary>
-        public long MaxByteLength { get; set; }
-
-        /// <inheritdoc/>
-        public void OnResourceExecuted(ResourceExecutedContext context)
-        {
-        }
-
-        /// <inheritdoc/>
-        public void OnResourceExecuting(ResourceExecutingContext context)
-        {
-            var contentLength = context.HttpContext.Request.ContentLength;
-            if (contentLength != null && contentLength > MaxByteLength)
-            {
-                context.Result = new BadRequestObjectResult(ErrorResponse.Common.Content.TooBig(MaxByteLength + "B"));
-            }
-        }
-    }
-
-    /// <summary>
-    /// Restrict max content length.
-    /// </summary>
-    public class MaxContentLengthAttribute : TypeFilterAttribute
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="maxByteLength">Max length.</param>
-        public MaxContentLengthAttribute(long maxByteLength)
-            : base(typeof(MaxContentLengthFilter))
-        {
-            MaxByteLength = maxByteLength;
-            Arguments = new object[] { maxByteLength };
-        }
-
-        /// <summary>
-        /// Max length.
-        /// </summary>
-        public long MaxByteLength { get; }
-    }
-}
diff --git a/Timeline/Filters/Timeline.cs b/Timeline/Filters/Timeline.cs
deleted file mode 100644
index 6a730ee7..00000000
--- a/Timeline/Filters/Timeline.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-﻿using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Filters;
-using Timeline.Models.Http;
-using Timeline.Services.Exceptions;
-
-namespace Timeline.Filters
-{
-    public class CatchTimelineNotExistExceptionAttribute : ExceptionFilterAttribute
-    {
-        public override void OnException(ExceptionContext context)
-        {
-            if (context.Exception is TimelineNotExistException e)
-            {
-                if (e.InnerException is UserNotExistException)
-                {
-                    if (HttpMethods.IsGet(context.HttpContext.Request.Method))
-                        context.Result = new NotFoundObjectResult(ErrorResponse.UserCommon.NotExist());
-                    else
-                        context.Result = new BadRequestObjectResult(ErrorResponse.UserCommon.NotExist());
-                }
-                else
-                {
-                    if (HttpMethods.IsGet(context.HttpContext.Request.Method))
-                        context.Result = new NotFoundObjectResult(ErrorResponse.TimelineController.NotExist());
-                    else
-                        context.Result = new BadRequestObjectResult(ErrorResponse.TimelineController.NotExist());
-                }
-            }
-        }
-    }
-}
diff --git a/Timeline/Formatters/BytesInputFormatter.cs b/Timeline/Formatters/BytesInputFormatter.cs
deleted file mode 100644
index ac6537c9..00000000
--- a/Timeline/Formatters/BytesInputFormatter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc.Formatters;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using Microsoft.Net.Http.Headers;
-using System;
-using System.Threading.Tasks;
-using Timeline.Models;
-
-namespace Timeline.Formatters
-{
-    /// <summary>
-    /// Formatter that reads body as bytes.
-    /// </summary>
-    public class BytesInputFormatter : InputFormatter
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public BytesInputFormatter()
-        {
-            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/png"));
-            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/jpeg"));
-            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/gif"));
-            SupportedMediaTypes.Add(new MediaTypeHeaderValue("image/webp"));
-        }
-
-        /// <inheritdoc/>
-        public override bool CanRead(InputFormatterContext context)
-        {
-            if (context == null) throw new ArgumentNullException(nameof(context));
-
-            if (context.ModelType == typeof(ByteData))
-                return true;
-
-            return false;
-        }
-
-        /// <inheritdoc/>
-        public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context)
-        {
-            var request = context.HttpContext.Request;
-            var contentLength = request.ContentLength;
-
-            var logger = context.HttpContext.RequestServices.GetRequiredService<ILogger<BytesInputFormatter>>();
-
-            if (contentLength == null)
-            {
-                logger.LogInformation("Failed to read body as bytes. Content-Length is not set.");
-                return await InputFormatterResult.FailureAsync();
-            }
-
-            if (contentLength == 0)
-            {
-                logger.LogInformation("Failed to read body as bytes. Content-Length is 0.");
-                return await InputFormatterResult.FailureAsync();
-            }
-
-            var bodyStream = request.Body;
-
-            var data = new byte[contentLength.Value];
-            var bytesRead = await bodyStream.ReadAsync(data);
-
-            if (bytesRead != contentLength)
-            {
-                logger.LogInformation("Failed to read body as bytes. Actual length of body is smaller than Content-Length.");
-                return await InputFormatterResult.FailureAsync();
-            }
-
-            var extraByte = new byte[1];
-            if (await bodyStream.ReadAsync(extraByte) != 0)
-            {
-                logger.LogInformation("Failed to read body as bytes. Actual length of body is greater than Content-Length.");
-                return await InputFormatterResult.FailureAsync();
-            }
-
-            return await InputFormatterResult.SuccessAsync(new ByteData(data, request.ContentType));
-        }
-    }
-}
diff --git a/Timeline/Formatters/StringInputFormatter.cs b/Timeline/Formatters/StringInputFormatter.cs
deleted file mode 100644
index b1924268..00000000
--- a/Timeline/Formatters/StringInputFormatter.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc.Formatters;
-using Microsoft.Net.Http.Headers;
-using System.IO;
-using System.Net.Mime;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Timeline.Formatters
-{
-    public class StringInputFormatter : TextInputFormatter
-    {
-        public StringInputFormatter()
-        {
-            SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(MediaTypeNames.Text.Plain));
-            SupportedEncodings.Add(Encoding.UTF8);
-        }
-
-        public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding effectiveEncoding)
-        {
-            var request = context.HttpContext.Request;
-            using var reader = new StreamReader(request.Body, effectiveEncoding);
-            var stringContent = await reader.ReadToEndAsync();
-            return await InputFormatterResult.SuccessAsync(stringContent);
-        }
-    }
-}
diff --git a/Timeline/GlobalSuppressions.cs b/Timeline/GlobalSuppressions.cs
deleted file mode 100644
index 2b0da576..00000000
--- a/Timeline/GlobalSuppressions.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-﻿// This file is used by Code Analysis to maintain SuppressMessage
-// attributes that are applied to this project.
-// Project-level suppressions either have no target or are given
-// a specific target and scoped to a namespace, type, member, etc.
-
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "This is not a UI application.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1034:Nested types should not be visible", Justification = "This is not bad.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "No need to check the null because it's ASP.Net's duty.", Scope = "namespaceanddescendants", Target = "Timeline.Controllers")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "Migrations code are auto generated.", Scope = "namespaceanddescendants", Target = "Timeline.Migrations")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Generated error response identifiers.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1724:Type names should not match namespaces", Justification = "Generated error response identifiers.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Globalization", "CA1305:Specify IFormatProvider", Justification = "Generated error response.", Scope = "type", Target = "Timeline.Models.Http.ErrorResponse")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Uri properties should not be strings", Justification = "That's unnecessary.")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods", Justification = "Adundant")]
diff --git a/Timeline/Helpers/DataCacheHelper.cs b/Timeline/Helpers/DataCacheHelper.cs
deleted file mode 100644
index 1ad69708..00000000
--- a/Timeline/Helpers/DataCacheHelper.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-﻿using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using Microsoft.Net.Http.Headers;
-using System;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-using static Timeline.Resources.Helper.DataCacheHelper;
-
-namespace Timeline.Helpers
-{
-    public interface ICacheableData
-    {
-        string Type { get; }
-#pragma warning disable CA1819 // Properties should not return arrays
-        byte[] Data { get; }
-#pragma warning restore CA1819 // Properties should not return arrays
-        DateTime? LastModified { get; }
-    }
-
-    public class CacheableData : ICacheableData
-    {
-        public CacheableData(string type, byte[] data, DateTime? lastModified)
-        {
-            Type = type;
-            Data = data;
-            LastModified = lastModified;
-        }
-
-        public string Type { get; set; }
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[] Data { get; set; }
-#pragma warning restore CA1819 // Properties should not return arrays
-        public DateTime? LastModified { get; set; }
-    }
-
-    public interface ICacheableDataProvider
-    {
-        Task<string> GetDataETag();
-        Task<ICacheableData> GetData();
-    }
-
-    public class DelegateCacheableDataProvider : ICacheableDataProvider
-    {
-        private readonly Func<Task<string>> _getDataETagDelegate;
-        private readonly Func<Task<ICacheableData>> _getDataDelegate;
-
-        public DelegateCacheableDataProvider(Func<Task<string>> getDataETagDelegate, Func<Task<ICacheableData>> getDataDelegate)
-        {
-            _getDataETagDelegate = getDataETagDelegate;
-            _getDataDelegate = getDataDelegate;
-        }
-
-        public Task<ICacheableData> GetData()
-        {
-            return _getDataDelegate();
-        }
-
-        public Task<string> GetDataETag()
-        {
-            return _getDataETagDelegate();
-        }
-    }
-
-    public static class DataCacheHelper
-    {
-        public static async Task<ActionResult> GenerateActionResult(Controller controller, ICacheableDataProvider provider, TimeSpan? maxAge = null)
-        {
-            const string CacheControlHeaderKey = "Cache-Control";
-            const string IfNonMatchHeaderKey = "If-None-Match";
-            const string ETagHeaderKey = "ETag";
-
-            string GenerateCacheControlHeaderValue()
-            {
-                var cacheControlHeader = new CacheControlHeaderValue()
-                {
-                    NoCache = true,
-                    NoStore = false,
-                    MaxAge = maxAge ?? TimeSpan.FromDays(14),
-                    Private = true,
-                    MustRevalidate = true
-                };
-                return cacheControlHeader.ToString();
-            }
-
-            var loggerFactory = controller.HttpContext.RequestServices.GetRequiredService<ILoggerFactory>();
-            var logger = loggerFactory.CreateLogger(typeof(DataCacheHelper));
-
-            var eTagValue = await provider.GetDataETag();
-            eTagValue = '"' + eTagValue + '"';
-            var eTag = new EntityTagHeaderValue(eTagValue);
-
-
-            if (controller.Request.Headers.TryGetValue(IfNonMatchHeaderKey, out var value))
-            {
-                if (!EntityTagHeaderValue.TryParseStrictList(value, out var eTagList))
-                {
-                    logger.LogInformation(Log.Format(LogBadIfNoneMatch, ("Header Value", value)));
-                    return controller.BadRequest(ErrorResponse.Common.Header.IfNonMatch_BadFormat());
-                }
-
-                if (eTagList.FirstOrDefault(e => e.Equals(eTag)) != null)
-                {
-                    logger.LogInformation(LogResultNotModified);
-                    controller.Response.Headers.Add(ETagHeaderKey, eTagValue);
-                    controller.Response.Headers.Add(CacheControlHeaderKey, GenerateCacheControlHeaderValue());
-
-                    return controller.StatusCode(StatusCodes.Status304NotModified, null);
-                }
-            }
-
-            var data = await provider.GetData();
-            logger.LogInformation(LogResultData);
-            controller.Response.Headers.Add(CacheControlHeaderKey, GenerateCacheControlHeaderValue());
-            return controller.File(data.Data, data.Type, data.LastModified, eTag);
-        }
-
-        public static Task<ActionResult> GenerateActionResult(Controller controller, Func<Task<string>> getDataETagDelegate, Func<Task<ICacheableData>> getDataDelegate, TimeSpan? maxAge = null)
-        {
-            return GenerateActionResult(controller, new DelegateCacheableDataProvider(getDataETagDelegate, getDataDelegate), maxAge);
-        }
-    }
-}
diff --git a/Timeline/Helpers/DateTimeExtensions.cs b/Timeline/Helpers/DateTimeExtensions.cs
deleted file mode 100644
index 374f3bc9..00000000
--- a/Timeline/Helpers/DateTimeExtensions.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-﻿using System;
-
-namespace Timeline.Helpers
-{
-    public static class DateTimeExtensions
-    {
-        public static DateTime MyToUtc(this DateTime dateTime)
-        {
-            if (dateTime.Kind == DateTimeKind.Utc) return dateTime;
-            if (dateTime.Kind == DateTimeKind.Local) return dateTime.ToUniversalTime();
-            return DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
-        }
-    }
-}
diff --git a/Timeline/Helpers/InvalidModelResponseFactory.cs b/Timeline/Helpers/InvalidModelResponseFactory.cs
deleted file mode 100644
index 9b253e7d..00000000
--- a/Timeline/Helpers/InvalidModelResponseFactory.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System.Text;
-using Timeline.Models.Http;
-
-namespace Timeline.Helpers
-{
-    public static class InvalidModelResponseFactory
-    {
-        public static IActionResult Factory(ActionContext context)
-        {
-            var modelState = context.ModelState;
-
-            var messageBuilder = new StringBuilder();
-            foreach (var model in modelState)
-                foreach (var error in model.Value.Errors)
-                {
-                    messageBuilder.Append(model.Key);
-                    messageBuilder.Append(" : ");
-                    messageBuilder.AppendLine(error.ErrorMessage);
-                }
-
-            return new BadRequestObjectResult(ErrorResponse.Common.CustomMessage_InvalidModel(messageBuilder.ToString()));
-        }
-    }
-}
diff --git a/Timeline/Helpers/LanguageHelper.cs b/Timeline/Helpers/LanguageHelper.cs
deleted file mode 100644
index b0156b8b..00000000
--- a/Timeline/Helpers/LanguageHelper.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-﻿using System.Linq;
-
-namespace Timeline.Helpers
-{
-    public static class LanguageHelper
-    {
-        public static bool AreSame(this bool firstBool, params bool[] otherBools)
-        {
-            return otherBools.All(b => b == firstBool);
-        }
-    }
-}
diff --git a/Timeline/Helpers/Log.cs b/Timeline/Helpers/Log.cs
deleted file mode 100644
index af0b7e13..00000000
--- a/Timeline/Helpers/Log.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System.Text;
-
-namespace Timeline.Helpers
-{
-    public static class Log
-    {
-        public static string Format(string summary, params (string, object?)[] properties)
-        {
-            var builder = new StringBuilder();
-            builder.Append(summary);
-            foreach (var property in properties)
-            {
-                var (key, value) = property;
-                builder.AppendLine();
-                builder.Append(key);
-                builder.Append(" : ");
-                builder.Append(value);
-            }
-            return builder.ToString();
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200105150407_Initialize.Designer.cs b/Timeline/Migrations/20200105150407_Initialize.Designer.cs
deleted file mode 100644
index 99e4eaac..00000000
--- a/Timeline/Migrations/20200105150407_Initialize.Designer.cs
+++ /dev/null
@@ -1,266 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200105150407_Initialize")]
-    partial class Initialize
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.0");
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.User", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("EncryptedPassword")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("RoleString")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Name")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<string>("ETag")
-                        .HasColumnName("etag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_details");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.User", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.User", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.User", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
-                {
-                    b.HasOne("Timeline.Entities.User", null)
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatar", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
-                {
-                    b.HasOne("Timeline.Entities.User", null)
-                        .WithOne("Detail")
-                        .HasForeignKey("Timeline.Entities.UserDetail", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200105150407_Initialize.cs b/Timeline/Migrations/20200105150407_Initialize.cs
deleted file mode 100644
index 4e12ef83..00000000
--- a/Timeline/Migrations/20200105150407_Initialize.cs
+++ /dev/null
@@ -1,217 +0,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class Initialize : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "users",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    name = table.Column<string>(nullable: false),
-                    password = table.Column<string>(nullable: false),
-                    roles = table.Column<string>(nullable: false),
-                    version = table.Column<long>(nullable: false, defaultValue: 0L)
-                        .Annotation("Sqlite:Autoincrement", true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_users", x => x.id);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "timelines",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    name = table.Column<string>(nullable: true),
-                    description = table.Column<string>(nullable: true),
-                    owner = table.Column<long>(nullable: false),
-                    visibility = table.Column<int>(nullable: false),
-                    create_time = table.Column<DateTime>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_timelines", x => x.id);
-                    table.ForeignKey(
-                        name: "FK_timelines_users_owner",
-                        column: x => x.owner,
-                        principalTable: "users",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "user_avatars",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    data = table.Column<byte[]>(nullable: true),
-                    type = table.Column<string>(nullable: true),
-                    etag = table.Column<string>(nullable: true),
-                    last_modified = table.Column<DateTime>(nullable: false),
-                    UserId = table.Column<long>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_user_avatars", x => x.id);
-                    table.ForeignKey(
-                        name: "FK_user_avatars_users_UserId",
-                        column: x => x.UserId,
-                        principalTable: "users",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "user_details",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    nickname = table.Column<string>(nullable: true),
-                    UserId = table.Column<long>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_user_details", x => x.id);
-                    table.ForeignKey(
-                        name: "FK_user_details_users_UserId",
-                        column: x => x.UserId,
-                        principalTable: "users",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "timeline_members",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    user = table.Column<long>(nullable: false),
-                    timeline = table.Column<long>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_timeline_members", x => x.id);
-                    table.ForeignKey(
-                        name: "FK_timeline_members_timelines_timeline",
-                        column: x => x.timeline,
-                        principalTable: "timelines",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_timeline_members_users_user",
-                        column: x => x.user,
-                        principalTable: "users",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "timeline_posts",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    timeline = table.Column<long>(nullable: false),
-                    author = table.Column<long>(nullable: false),
-                    content = table.Column<string>(nullable: true),
-                    time = table.Column<DateTime>(nullable: false),
-                    last_updated = table.Column<DateTime>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_timeline_posts", x => x.id);
-                    table.ForeignKey(
-                        name: "FK_timeline_posts_users_author",
-                        column: x => x.author,
-                        principalTable: "users",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "FK_timeline_posts_timelines_timeline",
-                        column: x => x.timeline,
-                        principalTable: "timelines",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "IX_timeline_members_timeline",
-                table: "timeline_members",
-                column: "timeline");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_timeline_members_user",
-                table: "timeline_members",
-                column: "user");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_timeline_posts_author",
-                table: "timeline_posts",
-                column: "author");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_timeline_posts_timeline",
-                table: "timeline_posts",
-                column: "timeline");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_timelines_owner",
-                table: "timelines",
-                column: "owner");
-
-            migrationBuilder.CreateIndex(
-                name: "IX_user_avatars_UserId",
-                table: "user_avatars",
-                column: "UserId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_user_details_UserId",
-                table: "user_details",
-                column: "UserId",
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "IX_users_name",
-                table: "users",
-                column: "name",
-                unique: true);
-
-            // Add a init user. Username is "administrator". Password is "crupest".
-            migrationBuilder.InsertData("users", new string[] { "name", "password", "roles" },
-                new object[] { "administrator", "AQAAAAEAACcQAAAAENsspZrk8Wo+UuMyg6QuWJsNvRg6gVu4K/TumVod3h9GVLX9zDVuQQds3o7V8QWJ2w==", "user,admin" });
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "timeline_members");
-
-            migrationBuilder.DropTable(
-                name: "timeline_posts");
-
-            migrationBuilder.DropTable(
-                name: "user_avatars");
-
-            migrationBuilder.DropTable(
-                name: "user_details");
-
-            migrationBuilder.DropTable(
-                name: "timelines");
-
-            migrationBuilder.DropTable(
-                name: "users");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs b/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
deleted file mode 100644
index 9b78eb15..00000000
--- a/Timeline/Migrations/20200131100517_RefactorUser.Designer.cs
+++ /dev/null
@@ -1,240 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200131100517_RefactorUser")]
-    partial class RefactorUser
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.1");
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<string>("ETag")
-                        .HasColumnName("etag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200131100517_RefactorUser.cs b/Timeline/Migrations/20200131100517_RefactorUser.cs
deleted file mode 100644
index 8597ed50..00000000
--- a/Timeline/Migrations/20200131100517_RefactorUser.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class RefactorUser : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.RenameColumn(name: "name", table: "users", newName: "username");
-            migrationBuilder.RenameIndex(name: "IX_users_name", table: "users", newName: "IX_users_username");
-
-            migrationBuilder.AddColumn<string>(
-                name: "nickname",
-                table: "users",
-                nullable: true);
-
-            migrationBuilder.Sql(@"
-UPDATE users 
-    SET nickname = (
-        SELECT nickname
-        FROM user_details
-        WHERE user_details.UserId = users.id
-    );
-            ");
-
-            /*
-            migrationBuilder.RenameColumn(name: "UserId", table: "user_avatars", newName: "user");
-
-            migrationBuilder.DropForeignKey(
-                name: "FK_user_avatars_users_UserId",
-                table: "user_avatars");
-
-            migrationBuilder.AddForeignKey(
-                name: "FK_user_avatars_users_user",
-                table: "user_avatars",
-                column: "user",
-                principalTable: "users",
-                principalColumn: "id",
-                onDelete: ReferentialAction.Cascade);
-
-             migrationBuilder.RenameIndex(
-                name: "IX_user_avatars_UserId",
-                table: "user_avatars",
-                newName: "IX_user_avatars_user");
-             */
-
-            migrationBuilder.Sql(@"
-CREATE TABLE user_avatars_backup (
-    id            INTEGER NOT NULL
-                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
-    data          BLOB,
-    type          TEXT,
-    etag          TEXT,
-    last_modified TEXT    NOT NULL,
-    user          INTEGER NOT NULL,
-    CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (
-        user
-    )
-    REFERENCES users (id) ON DELETE CASCADE
-);
-
-INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, user)
-    SELECT id, data, type, etag, last_modified, UserId FROM user_avatars;
-
-DROP TABLE user_avatars;
-
-ALTER TABLE user_avatars_backup
-    RENAME TO user_avatars;
-
-CREATE UNIQUE INDEX IX_user_avatars_user ON user_avatars (user);
-            ");
-
-            // migrationBuilder.DropTable(name: "user_details");
-
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.Sql(@"
-CREATE TABLE user_avatars_backup (
-    id            INTEGER NOT NULL
-                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
-    data          BLOB,
-    type          TEXT,
-    etag          TEXT,
-    last_modified TEXT    NOT NULL,
-    UserId        INTEGER NOT NULL,
-    CONSTRAINT FK_user_avatars_users_UserId FOREIGN KEY (
-        user
-    )
-    REFERENCES users (id) ON DELETE CASCADE
-);
-
-INSERT INTO user_avatars_backup (id, data, type, etag, last_modified, UserId)
-    SELECT id, data, type, etag, last_modified, user FROM user_avatars;
-
-DROP TABLE user_avatars;
-
-ALTER TABLE user_avatars_backup
-    RENAME TO user_avatars;
-
-CREATE UNIQUE INDEX IX_user_avatars_UserId ON user_avatars (UserId);
-            ");
-
-            migrationBuilder.Sql(@"
-CREATE TABLE users_backup (
-    id       INTEGER NOT NULL
-                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
-    name     TEXT    NOT NULL,
-    password TEXT    NOT NULL,
-    roles    TEXT    NOT NULL,
-    version  INTEGER NOT NULL
-                     DEFAULT 0
-);
-
-INSERT INTO users_backup (id, name, password, roles, version)
-    SELECT id, username, password, roles, version FROM users;
-
-DROP TABLE users;
-
-ALTER TABLE users_backup
-    RENAME TO users;
-
-CREATE UNIQUE INDEX IX_users_name ON users (name);
-            ");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs b/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
deleted file mode 100644
index eb328b52..00000000
--- a/Timeline/Migrations/20200221064341_AddJwtToken.Designer.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200221064341_AddJwtToken")]
-    partial class AddJwtToken
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.2");
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<string>("ETag")
-                        .HasColumnName("etag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200221064341_AddJwtToken.cs b/Timeline/Migrations/20200221064341_AddJwtToken.cs
deleted file mode 100644
index 628970c6..00000000
--- a/Timeline/Migrations/20200221064341_AddJwtToken.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-﻿using System;
-using System.Security.Cryptography;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public static class JwtTokenGenerateHelper
-    {
-        public static byte[] GenerateKey()
-        {
-            using var random = RandomNumberGenerator.Create();
-            var key = new byte[16];
-            random.GetBytes(key);
-            return key;
-        }
-    }
-
-    public partial class AddJwtToken : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "jwt_token",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    key = table.Column<byte[]>(nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_jwt_token", x => x.id);
-                });
-
-
-            migrationBuilder.InsertData("jwt_token", "key", JwtTokenGenerateHelper.GenerateKey());
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "jwt_token");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs b/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
deleted file mode 100644
index cf6ae8a3..00000000
--- a/Timeline/Migrations/20200229103848_AddPostLocalId.Designer.cs
+++ /dev/null
@@ -1,265 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200229103848_AddPostLocalId")]
-    partial class AddPostLocalId
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.2");
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<string>("ETag")
-                        .HasColumnName("etag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200229103848_AddPostLocalId.cs b/Timeline/Migrations/20200229103848_AddPostLocalId.cs
deleted file mode 100644
index 497b38a1..00000000
--- a/Timeline/Migrations/20200229103848_AddPostLocalId.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class AddPostLocalId : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-
-            migrationBuilder.AddColumn<long>(
-                name: "current_post_local_id",
-                table: "timelines",
-                nullable: false,
-                defaultValue: 0L);
-
-            migrationBuilder.AddColumn<long>(
-                name: "local_id",
-                table: "timeline_posts",
-                nullable: false,
-                defaultValue: 0L);
-
-            migrationBuilder.Sql(@"
-UPDATE timeline_posts
-SET local_id = (SELECT COUNT (*)
-                FROM timeline_posts AS p
-                WHERE p.timeline =  timeline_posts.timeline
-                    AND p.id  <= timeline_posts.id);
-
-UPDATE timelines
-SET current_post_local_id = (SELECT COUNT (*)
-                             FROM timeline_posts AS p
-                             WHERE p.timeline =  timelines.id);
-            ");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs b/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
deleted file mode 100644
index 336ffc18..00000000
--- a/Timeline/Migrations/20200306110049_AddDataTable.Designer.cs
+++ /dev/null
@@ -1,290 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200306110049_AddDataTable")]
-    partial class AddDataTable
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.2");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200306110049_AddDataTable.cs b/Timeline/Migrations/20200306110049_AddDataTable.cs
deleted file mode 100644
index e33bf4c9..00000000
--- a/Timeline/Migrations/20200306110049_AddDataTable.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class AddDataTable : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "data",
-                columns: table => new
-                {
-                    id = table.Column<long>(nullable: false)
-                        .Annotation("Sqlite:Autoincrement", true),
-                    tag = table.Column<string>(nullable: false),
-                    data = table.Column<byte[]>(nullable: false),
-                    @ref = table.Column<int>(name: "ref", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("PK_data", x => x.id);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "IX_data_tag",
-                table: "data",
-                column: "tag",
-                unique: true);
-
-            migrationBuilder.Sql(@"
-ALTER TABLE user_avatars
-    RENAME TO user_avatars_backup;
-
-CREATE TABLE user_avatars (
-    id            INTEGER NOT NULL
-                          CONSTRAINT PK_user_avatars PRIMARY KEY AUTOINCREMENT,
-    data_tag      TEXT,
-    type          TEXT,
-    last_modified TEXT    NOT NULL,
-    user          INTEGER NOT NULL,
-    CONSTRAINT FK_user_avatars_users_user FOREIGN KEY (
-        user
-    )
-    REFERENCES users (id) ON DELETE CASCADE
-);
-
-INSERT INTO user_avatars (id, data_tag, type, last_modified, user)
-    SELECT id, etag, type, last_modified, user FROM user_avatars_backup;
-
-INSERT OR IGNORE INTO data (tag, data, ref)
-    SELECT etag, data, 0 FROM user_avatars_backup;
-
-UPDATE data
-SET ref = (SELECT COUNT (*)
-           FROM user_avatars_backup AS a
-           WHERE a.etag == data.tag);
-
-DROP TABLE user_avatars_backup;
-
-CREATE UNIQUE INDEX IX_user_avatars_user ON user_avatars (user);
-            ");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "data");
-
-            migrationBuilder.DropColumn(
-                name: "data_tag",
-                table: "user_avatars");
-
-            migrationBuilder.AddColumn<byte[]>(
-                name: "data",
-                table: "user_avatars",
-                type: "BLOB",
-                nullable: true);
-
-            migrationBuilder.AddColumn<string>(
-                name: "etag",
-                table: "user_avatars",
-                type: "TEXT",
-                nullable: true);
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs b/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
deleted file mode 100644
index f0c4dc08..00000000
--- a/Timeline/Migrations/20200306111553_DropUserDetails.Designer.cs
+++ /dev/null
@@ -1,290 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200306111553_DropUserDetails")]
-    partial class DropUserDetails
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.2");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200306111553_DropUserDetails.cs b/Timeline/Migrations/20200306111553_DropUserDetails.cs
deleted file mode 100644
index 0a176461..00000000
--- a/Timeline/Migrations/20200306111553_DropUserDetails.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class DropUserDetails : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(name: "user_details");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs b/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
deleted file mode 100644
index bd75a916..00000000
--- a/Timeline/Migrations/20200312112552_AddImagePost.Designer.cs
+++ /dev/null
@@ -1,299 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200312112552_AddImagePost")]
-    partial class AddImagePost
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.2");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200312112552_AddImagePost.cs b/Timeline/Migrations/20200312112552_AddImagePost.cs
deleted file mode 100644
index d5098ce0..00000000
--- a/Timeline/Migrations/20200312112552_AddImagePost.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-using Timeline.Models;
-
-namespace Timeline.Migrations
-{
-    public partial class AddImagePost : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<string>(
-                name: "content_type",
-                table: "timeline_posts",
-                nullable: false,
-                defaultValue: "");
-
-            migrationBuilder.AddColumn<string>(
-                name: "extra_content",
-                table: "timeline_posts",
-                nullable: true);
-
-            migrationBuilder.Sql($@"
-UPDATE timeline_posts
-SET content_type = '{TimelinePostContentTypes.Text}';
-            ");
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "content_type",
-                table: "timeline_posts");
-
-            migrationBuilder.DropColumn(
-                name: "extra_content",
-                table: "timeline_posts");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs b/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
deleted file mode 100644
index adcc6308..00000000
--- a/Timeline/Migrations/20200614061237_AddTimelineUniqueId.Designer.cs
+++ /dev/null
@@ -1,306 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200614061237_AddTimelineUniqueId")]
-    partial class AddTimelineUniqueId
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.4");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs b/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
deleted file mode 100644
index 7abbed79..00000000
--- a/Timeline/Migrations/20200614061237_AddTimelineUniqueId.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class AddTimelineUniqueId : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.Sql(
-@"
-PRAGMA foreign_keys=OFF;
-
-BEGIN TRANSACTION;
-
-CREATE TABLE new_timelines (
-    id INTEGER NOT NULL CONSTRAINT PK_timelines PRIMARY KEY AUTOINCREMENT,
-	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
-    name TEXT NULL,
-    description TEXT NULL,
-    owner INTEGER NOT NULL,
-    visibility INTEGER NOT NULL,
-    create_time TEXT NOT NULL,
-    current_post_local_id INTEGER NOT NULL DEFAULT 0,
-    CONSTRAINT FK_timelines_users_owner FOREIGN KEY (owner) REFERENCES users (id) ON DELETE CASCADE
-);
-
-INSERT INTO new_timelines (id, name, description, owner, visibility, create_time, current_post_local_id)
-	SELECT id, name, description, owner, visibility, create_time, current_post_local_id FROM timelines;
-	
-DROP TABLE timelines;
-
-ALTER TABLE new_timelines
-	RENAME TO timelines; 
-
-CREATE INDEX IX_timelines_owner ON timelines (owner);
-
-PRAGMA foreign_key_check;
-
-COMMIT TRANSACTION;
-
-PRAGMA foreign_keys=ON;
-"
-                , true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs b/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
deleted file mode 100644
index fd10dfa9..00000000
--- a/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.Designer.cs
+++ /dev/null
@@ -1,314 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200618064936_TimelineAddModifiedTime")]
-    partial class TimelineAddModifiedTime
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.5");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs b/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
deleted file mode 100644
index c277fe39..00000000
--- a/Timeline/Migrations/20200618064936_TimelineAddModifiedTime.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-namespace Timeline.Migrations
-{
-    public partial class TimelineAddModifiedTime : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            var currentTime = new DateTimeToStringConverter().ConvertToProvider(DateTime.Now);
-
-            migrationBuilder.Sql(
-@$"
-PRAGMA foreign_keys=OFF;
-
-BEGIN TRANSACTION;
-
-CREATE TABLE new_timelines (
-    id INTEGER NOT NULL CONSTRAINT PK_timelines PRIMARY KEY AUTOINCREMENT,
-	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
-    name TEXT NULL,
-    name_last_modified TEXT NOT NULL,
-    description TEXT NULL,
-    owner INTEGER NOT NULL,
-    visibility INTEGER NOT NULL,
-    create_time TEXT NOT NULL,
-    last_modified TEXT NOT NULL,
-    current_post_local_id INTEGER NOT NULL DEFAULT 0,
-    CONSTRAINT FK_timelines_users_owner FOREIGN KEY (owner) REFERENCES users (id) ON DELETE CASCADE
-);
-
-INSERT INTO new_timelines (id, unique_id, name, name_last_modified, description, owner, visibility, create_time, last_modified, current_post_local_id)
-	SELECT id, unique_id, name, '{currentTime}', description, owner, visibility, create_time, '{currentTime}', current_post_local_id FROM timelines;
-	
-DROP TABLE timelines;
-
-ALTER TABLE new_timelines
-	RENAME TO timelines; 
-
-CREATE INDEX IX_timelines_owner ON timelines (owner);
-
-PRAGMA foreign_key_check;
-
-COMMIT TRANSACTION;
-
-PRAGMA foreign_keys=ON;
-"
-            , true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs b/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
deleted file mode 100644
index fe2329e4..00000000
--- a/Timeline/Migrations/20200808071611_UserAddUniqueId.Designer.cs
+++ /dev/null
@@ -1,321 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200808071611_UserAddUniqueId")]
-    partial class UserAddUniqueId
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.5");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200808071611_UserAddUniqueId.cs b/Timeline/Migrations/20200808071611_UserAddUniqueId.cs
deleted file mode 100644
index 651a2b05..00000000
--- a/Timeline/Migrations/20200808071611_UserAddUniqueId.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class UserAddUniqueId : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.Sql(
-@"
-PRAGMA foreign_keys=OFF;
-
-BEGIN TRANSACTION;
-
-CREATE TABLE new_users (
-    id       INTEGER NOT NULL
-                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
-	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
-    username TEXT    NOT NULL,
-    password TEXT    NOT NULL,
-    roles    TEXT    NOT NULL,
-    version  INTEGER NOT NULL
-                     DEFAULT 0,
-    nickname TEXT
-);
-
-INSERT INTO new_users (id, username, password, roles, version, nickname)
-	SELECT id, username, password, roles, version, nickname FROM users;
-	
-DROP TABLE users;
-
-ALTER TABLE new_users
-	RENAME TO users; 
-
-CREATE UNIQUE INDEX IX_users_username ON users (
-    username
-);
-
-PRAGMA foreign_key_check;
-
-COMMIT TRANSACTION;
-
-PRAGMA foreign_keys=ON;
-"
-    , true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "unique_id",
-                table: "users");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs b/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
deleted file mode 100644
index 71cc54dc..00000000
--- a/Timeline/Migrations/20200810155908_AddTimesToUser.Designer.cs
+++ /dev/null
@@ -1,339 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200810155908_AddTimesToUser")]
-    partial class AddTimesToUser
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.5");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTimeOffset>("CreateTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<DateTimeOffset>("LastModified")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTimeOffset>("UsernameChangeTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("username_change_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200810155908_AddTimesToUser.cs b/Timeline/Migrations/20200810155908_AddTimesToUser.cs
deleted file mode 100644
index 369f85e6..00000000
--- a/Timeline/Migrations/20200810155908_AddTimesToUser.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-﻿using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class AddTimesToUser : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.Sql(
-@"
-PRAGMA foreign_keys=OFF;
-
-BEGIN TRANSACTION;
-
-CREATE TABLE new_users (
-    id       INTEGER NOT NULL
-                     CONSTRAINT PK_users PRIMARY KEY AUTOINCREMENT,
-	unique_id TEXT NOT NULL DEFAULT (lower(hex(randomblob(16)))),
-    username TEXT    NOT NULL,
-    password TEXT    NOT NULL,
-    roles    TEXT    NOT NULL,
-    version  INTEGER NOT NULL
-                     DEFAULT 0,
-    nickname TEXT,
-    create_time TEXT NOT NULL DEFAULT (datetime('now', 'utc')),
-    last_modified TEXT NOT NULL DEFAULT (datetime('now', 'utc')),
-    username_change_time TEXT NOT NULL DEFAULT (datetime('now', 'utc'))
-);
-
-INSERT INTO new_users (id, unique_id, username, password, roles, version, nickname)
-	SELECT id, unique_id, username, password, roles, version, nickname FROM users;
-	
-DROP TABLE users;
-
-ALTER TABLE new_users
-	RENAME TO users; 
-
-CREATE UNIQUE INDEX IX_users_username ON users (
-    username
-);
-
-PRAGMA foreign_key_check;
-
-COMMIT TRANSACTION;
-
-PRAGMA foreign_keys=ON;
-"
-, true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "create_time",
-                table: "users");
-
-            migrationBuilder.DropColumn(
-                name: "last_modified",
-                table: "users");
-
-            migrationBuilder.DropColumn(
-                name: "username_change_time",
-                table: "users");
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs b/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
deleted file mode 100644
index 80598fdf..00000000
--- a/Timeline/Migrations/20200810170533_MakePostAuthorOptional.Designer.cs
+++ /dev/null
@@ -1,337 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200810170533_MakePostAuthorOptional")]
-    partial class MakePostAuthorOptional
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.5");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long?>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTimeOffset>("CreateTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<DateTimeOffset>("LastModified")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTimeOffset>("UsernameChangeTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("username_change_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId");
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs b/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
deleted file mode 100644
index b0f0bca7..00000000
--- a/Timeline/Migrations/20200810170533_MakePostAuthorOptional.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class MakePostAuthorOptional : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.Sql(@"
-PRAGMA foreign_keys = 0;
-
-BEGIN TRANSACTION;
-
-CREATE TABLE new_timeline_posts (
-    id            INTEGER NOT NULL
-                          CONSTRAINT PK_timeline_posts PRIMARY KEY AUTOINCREMENT,
-    timeline      INTEGER NOT NULL,
-    author        INTEGER,
-    content       TEXT,
-    time          TEXT    NOT NULL,
-    last_updated  TEXT    NOT NULL,
-    local_id      INTEGER NOT NULL
-                          DEFAULT 0,
-    content_type  TEXT    NOT NULL
-                          DEFAULT '',
-    extra_content TEXT,
-    CONSTRAINT FK_timeline_posts_users_author FOREIGN KEY (
-        author
-    )
-    REFERENCES users (id),
-    CONSTRAINT FK_timeline_posts_timelines_timeline FOREIGN KEY (
-        timeline
-    )
-    REFERENCES timelines (id) ON DELETE CASCADE
-);
-
-INSERT INTO new_timeline_posts SELECT * FROM timeline_posts;
-
-DROP TABLE timeline_posts;
-
-ALTER TABLE new_timeline_posts RENAME TO timeline_posts; 
-
-CREATE INDEX IX_timeline_posts_author ON timeline_posts (author);
-
-CREATE INDEX IX_timeline_posts_timeline ON timeline_posts(timeline);
-
-PRAGMA foreign_key_check;
-
-COMMIT TRANSACTION;
-
-PRAGMA foreign_keys = 1;
-            ", true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropForeignKey(
-                name: "FK_timeline_posts_users_author",
-                table: "timeline_posts");
-
-            migrationBuilder.AlterColumn<long>(
-                name: "author",
-                table: "timeline_posts",
-                type: "INTEGER",
-                nullable: false,
-                oldClrType: typeof(long),
-                oldNullable: true);
-
-            migrationBuilder.AddForeignKey(
-                name: "FK_timeline_posts_users_author",
-                table: "timeline_posts",
-                column: "author",
-                principalTable: "users",
-                principalColumn: "id",
-                onDelete: ReferentialAction.Cascade);
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs b/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
deleted file mode 100644
index 58238557..00000000
--- a/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.Designer.cs
+++ /dev/null
@@ -1,337 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200811080808_ChangeDateTimeOffsetToDateTime")]
-    partial class ChangeDateTimeOffsetToDateTime
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.5");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long?>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<DateTime>("LastModified")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("UsernameChangeTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("username_change_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId");
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs b/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
deleted file mode 100644
index eb6b44f3..00000000
--- a/Timeline/Migrations/20200811080808_ChangeDateTimeOffsetToDateTime.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class ChangeDateTimeOffsetToDateTime : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs b/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
deleted file mode 100644
index f2279f3b..00000000
--- a/Timeline/Migrations/20200826164553_TimelineAddTitle.Designer.cs
+++ /dev/null
@@ -1,341 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    [Migration("20200826164553_TimelineAddTitle")]
-    partial class TimelineAddTitle
-    {
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.7");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Title")
-                        .HasColumnName("title")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long?>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<DateTime>("LastModified")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("UsernameChangeTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("username_change_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId");
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/Migrations/20200826164553_TimelineAddTitle.cs b/Timeline/Migrations/20200826164553_TimelineAddTitle.cs
deleted file mode 100644
index 7e8c498b..00000000
--- a/Timeline/Migrations/20200826164553_TimelineAddTitle.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Timeline.Migrations
-{
-    public partial class TimelineAddTitle : Migration
-    {
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<string>(
-                name: "title",
-                table: "timelines",
-                nullable: true);
-        }
-
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "title",
-                table: "timelines");
-        }
-    }
-}
diff --git a/Timeline/Migrations/DatabaseContextModelSnapshot.cs b/Timeline/Migrations/DatabaseContextModelSnapshot.cs
deleted file mode 100644
index 65ae6c9a..00000000
--- a/Timeline/Migrations/DatabaseContextModelSnapshot.cs
+++ /dev/null
@@ -1,339 +0,0 @@
-﻿// <auto-generated />
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using Timeline.Entities;
-
-namespace Timeline.Migrations
-{
-    [DbContext(typeof(DatabaseContext))]
-    partial class DatabaseContextModelSnapshot : ModelSnapshot
-    {
-        protected override void BuildModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "3.1.7");
-
-            modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Data")
-                        .IsRequired()
-                        .HasColumnName("data")
-                        .HasColumnType("BLOB");
-
-                    b.Property<int>("Ref")
-                        .HasColumnName("ref")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Tag")
-                        .IsRequired()
-                        .HasColumnName("tag")
-                        .HasColumnType("TEXT");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Tag")
-                        .IsUnique();
-
-                    b.ToTable("data");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<byte[]>("Key")
-                        .IsRequired()
-                        .HasColumnName("key")
-                        .HasColumnType("BLOB");
-
-                    b.HasKey("Id");
-
-                    b.ToTable("jwt_token");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("CurrentPostLocalId")
-                        .HasColumnName("current_post_local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Description")
-                        .HasColumnName("description")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Name")
-                        .HasColumnName("name")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("NameLastModified")
-                        .HasColumnName("name_last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("OwnerId")
-                        .HasColumnName("owner")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Title")
-                        .HasColumnName("title")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnName("visibility")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("OwnerId");
-
-                    b.ToTable("timelines");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("TimelineId");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("timeline_members");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<long?>("AuthorId")
-                        .HasColumnName("author")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Content")
-                        .HasColumnName("content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ContentType")
-                        .IsRequired()
-                        .HasColumnName("content_type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("ExtraContent")
-                        .HasColumnName("extra_content")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastUpdated")
-                        .HasColumnName("last_updated")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("LocalId")
-                        .HasColumnName("local_id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("Time")
-                        .HasColumnName("time")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("TimelineId")
-                        .HasColumnName("timeline")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("AuthorId");
-
-                    b.HasIndex("TimelineId");
-
-                    b.ToTable("timeline_posts");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("DataTag")
-                        .HasColumnName("data_tag")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("LastModified")
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Type")
-                        .HasColumnName("type")
-                        .HasColumnType("TEXT");
-
-                    b.Property<long>("UserId")
-                        .HasColumnName("user")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("UserId")
-                        .IsUnique();
-
-                    b.ToTable("user_avatars");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
-                {
-                    b.Property<long>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("id")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<DateTime>("CreateTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("create_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<DateTime>("LastModified")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("last_modified")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<string>("Nickname")
-                        .HasColumnName("nickname")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Password")
-                        .IsRequired()
-                        .HasColumnName("password")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("Roles")
-                        .IsRequired()
-                        .HasColumnName("roles")
-                        .HasColumnType("TEXT");
-
-                    b.Property<string>("UniqueId")
-                        .IsRequired()
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("unique_id")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("lower(hex(randomblob(16)))");
-
-                    b.Property<string>("Username")
-                        .IsRequired()
-                        .HasColumnName("username")
-                        .HasColumnType("TEXT");
-
-                    b.Property<DateTime>("UsernameChangeTime")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("username_change_time")
-                        .HasColumnType("TEXT")
-                        .HasDefaultValueSql("datetime('now', 'utc')");
-
-                    b.Property<long>("Version")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnName("version")
-                        .HasColumnType("INTEGER")
-                        .HasDefaultValue(0L);
-
-                    b.HasKey("Id");
-
-                    b.HasIndex("Username")
-                        .IsUnique();
-
-                    b.ToTable("users");
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Owner")
-                        .WithMany("Timelines")
-                        .HasForeignKey("OwnerId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Members")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithMany("TimelinesJoined")
-                        .HasForeignKey("UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "Author")
-                        .WithMany("TimelinePosts")
-                        .HasForeignKey("AuthorId");
-
-                    b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
-                        .WithMany("Posts")
-                        .HasForeignKey("TimelineId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-
-            modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
-                {
-                    b.HasOne("Timeline.Entities.UserEntity", "User")
-                        .WithOne("Avatar")
-                        .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired();
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/Timeline/MockClientApp/index.html b/Timeline/MockClientApp/index.html
deleted file mode 100644
index 03cf371e..00000000
--- a/Timeline/MockClientApp/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-﻿<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8" />
-    <title>Mock Client App</title>
-</head>
-<body>
-    This is a mock client app for testing.
-</body>
-</html>
diff --git a/Timeline/Models/ByteData.cs b/Timeline/Models/ByteData.cs
deleted file mode 100644
index 7b832eb5..00000000
--- a/Timeline/Models/ByteData.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-﻿using NSwag.Annotations;
-
-namespace Timeline.Models
-{
-    /// <summary>
-    /// Model for reading http body as bytes.
-    /// </summary>
-    [OpenApiFile]
-    public class ByteData
-    {
-        /// <summary>
-        /// </summary>
-        /// <param name="data">The data.</param>
-        /// <param name="contentType">The content type.</param>
-        public ByteData(byte[] data, string contentType)
-        {
-            Data = data;
-            ContentType = contentType;
-        }
-
-        /// <summary>
-        /// Data.
-        /// </summary>
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[] Data { get; }
-#pragma warning restore CA1819 // Properties should not return arrays
-
-        /// <summary>
-        /// Content type.
-        /// </summary>
-        public string ContentType { get; }
-    }
-}
diff --git a/Timeline/Models/Converters/JsonDateTimeConverter.cs b/Timeline/Models/Converters/JsonDateTimeConverter.cs
deleted file mode 100644
index 94b5cab0..00000000
--- a/Timeline/Models/Converters/JsonDateTimeConverter.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿using System;
-using System.Diagnostics;
-using System.Globalization;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-using Timeline.Helpers;
-
-namespace Timeline.Models.Converters
-{
-    public class JsonDateTimeConverter : JsonConverter<DateTime>
-    {
-        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
-        {
-            Debug.Assert(typeToConvert == typeof(DateTime));
-            return DateTime.Parse(reader.GetString(), CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
-        }
-
-        public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
-        {
-            writer.WriteStringValue(value.MyToUtc().ToString("s", CultureInfo.InvariantCulture) + "Z");
-        }
-    }
-}
diff --git a/Timeline/Models/Converters/MyDateTimeConverter.cs b/Timeline/Models/Converters/MyDateTimeConverter.cs
deleted file mode 100644
index f125cd5c..00000000
--- a/Timeline/Models/Converters/MyDateTimeConverter.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-﻿using System;
-using System.ComponentModel;
-using System.Globalization;
-
-namespace Timeline.Models.Converters
-{
-    public class MyDateTimeConverter : TypeConverter
-    {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
-        {
-            return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType);
-        }
-
-        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
-        {
-            return base.CanConvertTo(context, destinationType);
-        }
-
-        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
-        {
-            if (value is string text)
-            {
-                text = text.Trim();
-                if (text.Length == 0)
-                {
-                    return DateTime.SpecifyKind(DateTime.MinValue, DateTimeKind.Utc);
-                }
-
-                return DateTime.Parse(text, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal);
-            }
-
-            return base.ConvertFrom(context, culture, value);
-        }
-
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
-        {
-            if (destinationType == typeof(string) && value is DateTime)
-            {
-                DateTime dt = (DateTime)value;
-                if (dt == DateTime.MinValue)
-                {
-                    return string.Empty;
-                }
-
-                return dt.ToString("s", CultureInfo.InvariantCulture) + "Z";
-            }
-
-            return base.ConvertTo(context, culture, value, destinationType);
-        }
-    }
-}
diff --git a/Timeline/Models/Http/ActionContextAccessorExtensions.cs b/Timeline/Models/Http/ActionContextAccessorExtensions.cs
deleted file mode 100644
index bcc55c5a..00000000
--- a/Timeline/Models/Http/ActionContextAccessorExtensions.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Infrastructure;
-using System;
-
-namespace Timeline.Models.Http
-{
-    public static class ActionContextAccessorExtensions
-    {
-        public static ActionContext AssertActionContextForUrlFill(this IActionContextAccessor accessor)
-        {
-            return accessor.ActionContext ?? throw new InvalidOperationException(Resources.Models.Http.Exception.ActionContextNull);
-        }
-    }
-}
diff --git a/Timeline/Models/Http/Common.cs b/Timeline/Models/Http/Common.cs
deleted file mode 100644
index 5fa22c9e..00000000
--- a/Timeline/Models/Http/Common.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-using static Timeline.Resources.Models.Http.Common;
-
-namespace Timeline.Models.Http
-{
-    public class CommonResponse
-    {
-        public CommonResponse()
-        {
-
-        }
-
-        public CommonResponse(int code, string message)
-        {
-            Code = code;
-            Message = message;
-        }
-
-        public int Code { get; set; }
-        public string? Message { get; set; }
-    }
-
-    public class CommonDataResponse<T> : CommonResponse
-    {
-        public CommonDataResponse()
-        {
-
-        }
-
-        public CommonDataResponse(int code, string message, T data)
-            : base(code, message)
-        {
-            Data = data;
-        }
-
-        public T Data { get; set; } = default!;
-    }
-
-    public class CommonPutResponse : CommonDataResponse<CommonPutResponse.ResponseData>
-    {
-        public class ResponseData
-        {
-            public ResponseData() { }
-
-            public ResponseData(bool create)
-            {
-                Create = create;
-            }
-
-            public bool Create { get; set; }
-        }
-
-        public CommonPutResponse()
-        {
-
-        }
-
-        public CommonPutResponse(int code, string message, bool create)
-            : base(code, message, new ResponseData(create))
-        {
-
-        }
-
-        internal static CommonPutResponse Create()
-        {
-            return new CommonPutResponse(0, MessagePutCreate, true);
-        }
-
-        internal static CommonPutResponse Modify()
-        {
-            return new CommonPutResponse(0, MessagePutModify, false);
-        }
-    }
-
-    /// <summary>
-    /// Common response for delete method.
-    /// </summary>
-    public class CommonDeleteResponse : CommonDataResponse<CommonDeleteResponse.ResponseData>
-    {
-        /// <summary></summary>
-        public class ResponseData
-        {
-            /// <summary></summary>
-            public ResponseData() { }
-
-            /// <summary></summary>
-            public ResponseData(bool delete)
-            {
-                Delete = delete;
-            }
-
-            /// <summary>
-            /// True if the entry is deleted. False if the entry does not exist.
-            /// </summary>
-            public bool Delete { get; set; }
-        }
-
-            /// <summary></summary>
-        public CommonDeleteResponse()
-        {
-
-        }
-
-            /// <summary></summary>
-        public CommonDeleteResponse(int code, string message, bool delete)
-            : base(code, message, new ResponseData(delete))
-        {
-
-        }
-
-        internal static CommonDeleteResponse Delete()
-        {
-            return new CommonDeleteResponse(0, MessageDeleteDelete, true);
-        }
-
-        internal static CommonDeleteResponse NotExist()
-        {
-            return new CommonDeleteResponse(0, MessageDeleteNotExist, false);
-        }
-    }
-}
diff --git a/Timeline/Models/Http/ErrorResponse.cs b/Timeline/Models/Http/ErrorResponse.cs
deleted file mode 100644
index ac86481f..00000000
--- a/Timeline/Models/Http/ErrorResponse.cs
+++ /dev/null
@@ -1,261 +0,0 @@
-﻿using static Timeline.Resources.Messages;
-
-namespace Timeline.Models.Http
-{
-    public static class ErrorResponse
-    {
-        public static class Common
-        {
-            public static CommonResponse InvalidModel(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.InvalidModel, string.Format(Common_InvalidModel, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_InvalidModel(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.InvalidModel, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse Forbid(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.Forbid, string.Format(Common_Forbid, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Forbid(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.Forbid, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse UnknownEndpoint(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.UnknownEndpoint, string.Format(Common_UnknownEndpoint, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_UnknownEndpoint(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.Common.UnknownEndpoint, string.Format(message, formatArgs));
-            }
-
-            public static class Header
-            {
-                public static CommonResponse IfNonMatch_BadFormat(params object?[] formatArgs)
-                {
-                    return new CommonResponse(ErrorCodes.Common.Header.IfNonMatch_BadFormat, string.Format(Common_Header_IfNonMatch_BadFormat, formatArgs));
-                }
-
-                public static CommonResponse CustomMessage_IfNonMatch_BadFormat(string message, params object?[] formatArgs)
-                {
-                    return new CommonResponse(ErrorCodes.Common.Header.IfNonMatch_BadFormat, string.Format(message, formatArgs));
-                }
-
-            }
-
-            public static class Content
-            {
-                public static CommonResponse TooBig(params object?[] formatArgs)
-                {
-                    return new CommonResponse(ErrorCodes.Common.Content.TooBig, string.Format(Common_Content_TooBig, formatArgs));
-                }
-
-                public static CommonResponse CustomMessage_TooBig(string message, params object?[] formatArgs)
-                {
-                    return new CommonResponse(ErrorCodes.Common.Content.TooBig, string.Format(message, formatArgs));
-                }
-
-            }
-
-        }
-
-        public static class UserCommon
-        {
-            public static CommonResponse NotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserCommon.NotExist, string.Format(UserCommon_NotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_NotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserCommon.NotExist, string.Format(message, formatArgs));
-            }
-
-        }
-
-        public static class TokenController
-        {
-            public static CommonResponse Create_BadCredential(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Create_BadCredential, string.Format(TokenController_Create_BadCredential, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Create_BadCredential(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Create_BadCredential, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse Verify_BadFormat(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_BadFormat, string.Format(TokenController_Verify_BadFormat, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Verify_BadFormat(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_BadFormat, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse Verify_UserNotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_UserNotExist, string.Format(TokenController_Verify_UserNotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Verify_UserNotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_UserNotExist, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse Verify_OldVersion(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_OldVersion, string.Format(TokenController_Verify_OldVersion, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Verify_OldVersion(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_OldVersion, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse Verify_TimeExpired(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_TimeExpired, string.Format(TokenController_Verify_TimeExpired, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_Verify_TimeExpired(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TokenController.Verify_TimeExpired, string.Format(message, formatArgs));
-            }
-
-        }
-
-        public static class UserController
-        {
-            public static CommonResponse UsernameConflict(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserController.UsernameConflict, string.Format(UserController_UsernameConflict, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_UsernameConflict(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserController.UsernameConflict, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse ChangePassword_BadOldPassword(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserController.ChangePassword_BadOldPassword, string.Format(UserController_ChangePassword_BadOldPassword, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_ChangePassword_BadOldPassword(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserController.ChangePassword_BadOldPassword, string.Format(message, formatArgs));
-            }
-
-        }
-
-        public static class UserAvatar
-        {
-            public static CommonResponse BadFormat_CantDecode(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_CantDecode, string.Format(UserAvatar_BadFormat_CantDecode, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_BadFormat_CantDecode(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_CantDecode, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse BadFormat_UnmatchedFormat(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat, string.Format(UserAvatar_BadFormat_UnmatchedFormat, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_BadFormat_UnmatchedFormat(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse BadFormat_BadSize(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_BadSize, string.Format(UserAvatar_BadFormat_BadSize, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_BadFormat_BadSize(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.UserAvatar.BadFormat_BadSize, string.Format(message, formatArgs));
-            }
-
-        }
-
-        public static class TimelineController
-        {
-            public static CommonResponse NameConflict(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.NameConflict, string.Format(TimelineController_NameConflict, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_NameConflict(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.NameConflict, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse NotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.NotExist, string.Format(TimelineController_NotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_NotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.NotExist, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse MemberPut_NotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.MemberPut_NotExist, string.Format(TimelineController_MemberPut_NotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_MemberPut_NotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.MemberPut_NotExist, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse QueryRelateNotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.QueryRelateNotExist, string.Format(TimelineController_QueryRelateNotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_QueryRelateNotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.QueryRelateNotExist, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse PostNotExist(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.PostNotExist, string.Format(TimelineController_PostNotExist, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_PostNotExist(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.PostNotExist, string.Format(message, formatArgs));
-            }
-
-            public static CommonResponse PostNoData(params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.PostNoData, string.Format(TimelineController_PostNoData, formatArgs));
-            }
-
-            public static CommonResponse CustomMessage_PostNoData(string message, params object?[] formatArgs)
-            {
-                return new CommonResponse(ErrorCodes.TimelineController.PostNoData, string.Format(message, formatArgs));
-            }
-
-        }
-
-    }
-
-}
diff --git a/Timeline/Models/Http/Timeline.cs b/Timeline/Models/Http/Timeline.cs
deleted file mode 100644
index a81b33f5..00000000
--- a/Timeline/Models/Http/Timeline.cs
+++ /dev/null
@@ -1,219 +0,0 @@
-﻿using AutoMapper;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Infrastructure;
-using Microsoft.AspNetCore.Mvc.Routing;
-using System;
-using System.Collections.Generic;
-using Timeline.Controllers;
-
-namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// Info of post content.
-    /// </summary>
-    public class TimelinePostContentInfo
-    {
-        /// <summary>
-        /// Type of the post content.
-        /// </summary>
-        public string Type { get; set; } = default!;
-        /// <summary>
-        /// If post is of text type. This is the text.
-        /// </summary>
-        public string? Text { get; set; }
-        /// <summary>
-        /// If post is of image type. This is the image url.
-        /// </summary>
-        public string? Url { get; set; }
-        /// <summary>
-        /// If post has data (currently it means it's a image post), this is the data etag.
-        /// </summary>
-        public string? ETag { get; set; }
-    }
-
-    /// <summary>
-    /// Info of a post.
-    /// </summary>
-    public class TimelinePostInfo
-    {
-        /// <summary>
-        /// Post id.
-        /// </summary>
-        public long Id { get; set; }
-        /// <summary>
-        /// Content of the post. May be null if post is deleted.
-        /// </summary>
-        public TimelinePostContentInfo? Content { get; set; }
-        /// <summary>
-        /// True if post is deleted.
-        /// </summary>
-        public bool Deleted { get; set; }
-        /// <summary>
-        /// Post time.
-        /// </summary>
-        public DateTime Time { get; set; }
-        /// <summary>
-        /// The author. May be null if the user has been deleted.
-        /// </summary>
-        public UserInfo? Author { get; set; } = default!;
-        /// <summary>
-        /// Last updated time.
-        /// </summary>
-        public DateTime LastUpdated { get; set; } = default!;
-    }
-
-    /// <summary>
-    /// Info of a timeline.
-    /// </summary>
-    public class TimelineInfo
-    {
-        /// <summary>
-        /// Unique id.
-        /// </summary>
-        public string UniqueId { get; set; } = default!;
-        /// <summary>
-        /// Title.
-        /// </summary>
-        public string Title { get; set; } = default!;
-        /// <summary>
-        /// Name of timeline.
-        /// </summary>
-        public string Name { get; set; } = default!;
-        /// <summary>
-        /// Last modified time of timeline name.
-        /// </summary>
-        public DateTime NameLastModifed { get; set; } = default!;
-        /// <summary>
-        /// Timeline description.
-        /// </summary>
-        public string Description { get; set; } = default!;
-        /// <summary>
-        /// Owner of the timeline.
-        /// </summary>
-        public UserInfo Owner { get; set; } = default!;
-        /// <summary>
-        /// Visibility of the timeline.
-        /// </summary>
-        public TimelineVisibility Visibility { get; set; }
-#pragma warning disable CA2227 // Collection properties should be read only
-        /// <summary>
-        /// Members of timeline.
-        /// </summary>
-        public List<UserInfo> Members { get; set; } = default!;
-#pragma warning restore CA2227 // Collection properties should be read only
-        /// <summary>
-        /// Create time of timeline.
-        /// </summary>
-        public DateTime CreateTime { get; set; } = default!;
-        /// <summary>
-        /// Last modified time of timeline.
-        /// </summary>
-        public DateTime LastModified { get; set; } = default!;
-
-#pragma warning disable CA1707 // Identifiers should not contain underscores
-        /// <summary>
-        /// Related links.
-        /// </summary>
-        public TimelineInfoLinks _links { get; set; } = default!;
-#pragma warning restore CA1707 // Identifiers should not contain underscores
-    }
-
-    /// <summary>
-    /// Related links for timeline.
-    /// </summary>
-    public class TimelineInfoLinks
-    {
-        /// <summary>
-        /// Self.
-        /// </summary>
-        public string Self { get; set; } = default!;
-        /// <summary>
-        /// Posts url.
-        /// </summary>
-        public string Posts { get; set; } = default!;
-    }
-
-    public class TimelineInfoLinksValueResolver : IValueResolver<Timeline, TimelineInfo, TimelineInfoLinks>
-    {
-        private readonly IActionContextAccessor _actionContextAccessor;
-        private readonly IUrlHelperFactory _urlHelperFactory;
-
-        public TimelineInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
-        {
-            _actionContextAccessor = actionContextAccessor;
-            _urlHelperFactory = urlHelperFactory;
-        }
-
-        public TimelineInfoLinks Resolve(Timeline source, TimelineInfo destination, TimelineInfoLinks destMember, ResolutionContext context)
-        {
-            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
-            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
-
-            return new TimelineInfoLinks
-            {
-                Self = urlHelper.ActionLink(nameof(TimelineController.TimelineGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { source.Name }),
-                Posts = urlHelper.ActionLink(nameof(TimelineController.PostListGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { source.Name })
-            };
-        }
-    }
-
-    public class TimelinePostContentResolver : IValueResolver<TimelinePost, TimelinePostInfo, TimelinePostContentInfo?>
-    {
-        private readonly IActionContextAccessor _actionContextAccessor;
-        private readonly IUrlHelperFactory _urlHelperFactory;
-
-        public TimelinePostContentResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
-        {
-            _actionContextAccessor = actionContextAccessor;
-            _urlHelperFactory = urlHelperFactory;
-        }
-
-        public TimelinePostContentInfo? Resolve(TimelinePost source, TimelinePostInfo destination, TimelinePostContentInfo? destMember, ResolutionContext context)
-        {
-            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
-            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
-
-            var sourceContent = source.Content;
-
-            if (sourceContent == null)
-            {
-                return null;
-            }
-
-            if (sourceContent is TextTimelinePostContent textContent)
-            {
-                return new TimelinePostContentInfo
-                {
-                    Type = TimelinePostContentTypes.Text,
-                    Text = textContent.Text
-                };
-            }
-            else if (sourceContent is ImageTimelinePostContent imageContent)
-            {
-                return new TimelinePostContentInfo
-                {
-                    Type = TimelinePostContentTypes.Image,
-                    Url = urlHelper.ActionLink(
-                        action: nameof(TimelineController.PostDataGet),
-                        controller: nameof(TimelineController)[0..^nameof(Controller).Length],
-                        values: new { Name = source.TimelineName, Id = source.Id }),
-                    ETag = $"\"{imageContent.DataTag}\""
-                };
-            }
-            else
-            {
-                throw new InvalidOperationException(Resources.Models.Http.Exception.UnknownPostContentType);
-            }
-        }
-    }
-
-    public class TimelineInfoAutoMapperProfile : Profile
-    {
-        public TimelineInfoAutoMapperProfile()
-        {
-            CreateMap<Timeline, TimelineInfo>().ForMember(u => u._links, opt => opt.MapFrom<TimelineInfoLinksValueResolver>());
-            CreateMap<TimelinePost, TimelinePostInfo>().ForMember(p => p.Content, opt => opt.MapFrom<TimelinePostContentResolver>());
-            CreateMap<TimelinePatchRequest, TimelineChangePropertyRequest>();
-        }
-    }
-}
diff --git a/Timeline/Models/Http/TimelineController.cs b/Timeline/Models/Http/TimelineController.cs
deleted file mode 100644
index 7bd141ed..00000000
--- a/Timeline/Models/Http/TimelineController.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-﻿using System;
-using System.ComponentModel.DataAnnotations;
-using Timeline.Models.Validation;
-
-namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// Content of post create request.
-    /// </summary>
-    public class TimelinePostCreateRequestContent
-    {
-        /// <summary>
-        /// Type of post content.
-        /// </summary>
-        [Required]
-        public string Type { get; set; } = default!;
-        /// <summary>
-        /// If post is of text type, this is the text.
-        /// </summary>
-        public string? Text { get; set; }
-        /// <summary>
-        /// If post is of image type, this is base64 of image data.
-        /// </summary>
-        public string? Data { get; set; }
-    }
-
-    public class TimelinePostCreateRequest
-    {
-        /// <summary>
-        /// Content of the new post.
-        /// </summary>
-        [Required]
-        public TimelinePostCreateRequestContent Content { get; set; } = default!;
-
-        /// <summary>
-        /// Time of the post. If not set, current time will be used.
-        /// </summary>
-        public DateTime? Time { get; set; }
-    }
-
-    /// <summary>
-    /// Create timeline request model.
-    /// </summary>
-    public class TimelineCreateRequest
-    {
-        /// <summary>
-        /// Name of the new timeline. Must be a valid name.
-        /// </summary>
-        [Required]
-        [TimelineName]
-        public string Name { get; set; } = default!;
-    }
-
-    /// <summary>
-    /// Patch timeline request model.
-    /// </summary>
-    public class TimelinePatchRequest
-    {
-        /// <summary>
-        /// New title. Null for not change.
-        /// </summary>
-        public string? Title { get; set; }
-
-        /// <summary>
-        /// New description. Null for not change.
-        /// </summary>
-        public string? Description { get; set; }
-
-        /// <summary>
-        /// New visibility. Null for not change.
-        /// </summary>
-        public TimelineVisibility? Visibility { get; set; }
-    }
-
-    /// <summary>
-    /// Change timeline name request model.
-    /// </summary>
-    public class TimelineChangeNameRequest
-    {
-        /// <summary>
-        /// Old name of timeline.
-        /// </summary>
-        [Required]
-        [TimelineName]
-        public string OldName { get; set; } = default!;
-        /// <summary>
-        /// New name of timeline.
-        /// </summary>
-        [Required]
-        [TimelineName]
-        public string NewName { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Models/Http/TokenController.cs b/Timeline/Models/Http/TokenController.cs
deleted file mode 100644
index a42c44e5..00000000
--- a/Timeline/Models/Http/TokenController.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using Timeline.Controllers;
-
-namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// Request model for <see cref="TokenController.Create(CreateTokenRequest)"/>.
-    /// </summary>
-    public class CreateTokenRequest
-    {
-        /// <summary>
-        /// The username.
-        /// </summary>
-        public string Username { get; set; } = default!;
-        /// <summary>
-        /// The password.
-        /// </summary>
-        public string Password { get; set; } = default!;
-        /// <summary>
-        /// Optional token validation period. In days. If not specified, server will use a default one.
-        /// </summary>
-        [Range(1, 365)]
-        public int? Expire { get; set; }
-    }
-
-    /// <summary>
-    /// Response model for <see cref="TokenController.Create(CreateTokenRequest)"/>.
-    /// </summary>
-    public class CreateTokenResponse
-    {
-        /// <summary>
-        /// The token created.
-        /// </summary>
-        public string Token { get; set; } = default!;
-        /// <summary>
-        /// The user owning the token.
-        /// </summary>
-        public UserInfo User { get; set; } = default!;
-    }
-
-    /// <summary>
-    /// Request model for <see cref="TokenController.Verify(VerifyTokenRequest)"/>.
-    /// </summary>
-    public class VerifyTokenRequest
-    {
-        /// <summary>
-        /// The token to verify.
-        /// </summary>
-        public string Token { get; set; } = default!;
-    }
-
-    /// <summary>
-    /// Response model for <see cref="TokenController.Verify(VerifyTokenRequest)"/>.
-    /// </summary>
-    public class VerifyTokenResponse
-    {
-        /// <summary>
-        /// The user owning the token.
-        /// </summary>
-        public UserInfo User { get; set; } = default!;
-    }
-}
diff --git a/Timeline/Models/Http/UserController.cs b/Timeline/Models/Http/UserController.cs
deleted file mode 100644
index 6bc5a66e..00000000
--- a/Timeline/Models/Http/UserController.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-using AutoMapper;
-using System.ComponentModel.DataAnnotations;
-using Timeline.Controllers;
-using Timeline.Models.Validation;
-
-namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// Request model for <see cref="UserController.Patch(UserPatchRequest, string)"/>.
-    /// </summary>
-    public class UserPatchRequest
-    {
-        /// <summary>
-        /// New username. Null if not change. Need to be administrator.
-        /// </summary>
-        [Username]
-        public string? Username { get; set; }
-
-        /// <summary>
-        /// New password. Null if not change. Need to be administrator.
-        /// </summary>
-        [MinLength(1)]
-        public string? Password { get; set; }
-
-        /// <summary>
-        /// New nickname. Null if not change. Need to be administrator to change other's.
-        /// </summary>
-        [Nickname]
-        public string? Nickname { get; set; }
-
-        /// <summary>
-        /// Whether to be administrator. Null if not change. Need to be administrator.
-        /// </summary>
-        public bool? Administrator { get; set; }
-    }
-
-    /// <summary>
-    /// Request model for <see cref="UserController.CreateUser(CreateUserRequest)"/>.
-    /// </summary>
-    public class CreateUserRequest
-    {
-        /// <summary>
-        /// Username of the new user.
-        /// </summary>
-        [Required, Username]
-        public string Username { get; set; } = default!;
-
-        /// <summary>
-        /// Password of the new user.
-        /// </summary>
-        [Required, MinLength(1)]
-        public string Password { get; set; } = default!;
-
-        /// <summary>
-        /// Whether the new user is administrator.
-        /// </summary>
-        [Required]
-        public bool? Administrator { get; set; }
-
-        /// <summary>
-        /// Nickname of the new user.
-        /// </summary>
-        [Nickname]
-        public string? Nickname { get; set; }
-    }
-
-    /// <summary>
-    /// Request model for <see cref="UserController.ChangePassword(ChangePasswordRequest)"/>.
-    /// </summary>
-    public class ChangePasswordRequest
-    {
-        /// <summary>
-        /// Old password.
-        /// </summary>
-        [Required(AllowEmptyStrings = false)]
-        public string OldPassword { get; set; } = default!;
-
-        /// <summary>
-        /// New password.
-        /// </summary>
-        [Required(AllowEmptyStrings = false)]
-        public string NewPassword { get; set; } = default!;
-    }
-
-    public class UserControllerAutoMapperProfile : Profile
-    {
-        public UserControllerAutoMapperProfile()
-        {
-            CreateMap<UserPatchRequest, User>(MemberList.Source);
-            CreateMap<CreateUserRequest, User>(MemberList.Source);
-        }
-    }
-}
diff --git a/Timeline/Models/Http/UserInfo.cs b/Timeline/Models/Http/UserInfo.cs
deleted file mode 100644
index d92a12c4..00000000
--- a/Timeline/Models/Http/UserInfo.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-﻿using AutoMapper;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Infrastructure;
-using Microsoft.AspNetCore.Mvc.Routing;
-using Timeline.Controllers;
-
-namespace Timeline.Models.Http
-{
-    /// <summary>
-    /// Info of a user.
-    /// </summary>
-    public class UserInfo
-    {
-        /// <summary>
-        /// Unique id.
-        /// </summary>
-        public string UniqueId { get; set; } = default!;
-        /// <summary>
-        /// Username.
-        /// </summary>
-        public string Username { get; set; } = default!;
-        /// <summary>
-        /// Nickname.
-        /// </summary>
-        public string Nickname { get; set; } = default!;
-        /// <summary>
-        /// True if the user is a administrator.
-        /// </summary>
-        public bool? Administrator { get; set; } = default!;
-#pragma warning disable CA1707 // Identifiers should not contain underscores
-        /// <summary>
-        /// Related links.
-        /// </summary>
-        public UserInfoLinks _links { get; set; } = default!;
-#pragma warning restore CA1707 // Identifiers should not contain underscores
-    }
-
-    /// <summary>
-    /// Related links for user.
-    /// </summary>
-    public class UserInfoLinks
-    {
-        /// <summary>
-        /// Self.
-        /// </summary>
-        public string Self { get; set; } = default!;
-        /// <summary>
-        /// Avatar url.
-        /// </summary>
-        public string Avatar { get; set; } = default!;
-        /// <summary>
-        /// Personal timeline url.
-        /// </summary>
-        public string Timeline { get; set; } = default!;
-    }
-
-    public class UserInfoLinksValueResolver : IValueResolver<User, UserInfo, UserInfoLinks>
-    {
-        private readonly IActionContextAccessor _actionContextAccessor;
-        private readonly IUrlHelperFactory _urlHelperFactory;
-
-        public UserInfoLinksValueResolver(IActionContextAccessor actionContextAccessor, IUrlHelperFactory urlHelperFactory)
-        {
-            _actionContextAccessor = actionContextAccessor;
-            _urlHelperFactory = urlHelperFactory;
-        }
-
-        public UserInfoLinks Resolve(User source, UserInfo destination, UserInfoLinks destMember, ResolutionContext context)
-        {
-            var actionContext = _actionContextAccessor.AssertActionContextForUrlFill();
-            var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
-
-            var result = new UserInfoLinks
-            {
-                Self = urlHelper.ActionLink(nameof(UserController.Get), nameof(UserController)[0..^nameof(Controller).Length], new { destination.Username }),
-                Avatar = urlHelper.ActionLink(nameof(UserAvatarController.Get), nameof(UserAvatarController)[0..^nameof(Controller).Length], new { destination.Username }),
-                Timeline = urlHelper.ActionLink(nameof(TimelineController.TimelineGet), nameof(TimelineController)[0..^nameof(Controller).Length], new { Name = "@" + destination.Username })
-            };
-            return result;
-        }
-    }
-
-    public class UserInfoAutoMapperProfile : Profile
-    {
-        public UserInfoAutoMapperProfile()
-        {
-            CreateMap<User, UserInfo>().ForMember(u => u._links, opt => opt.MapFrom<UserInfoLinksValueResolver>());
-        }
-    }
-}
diff --git a/Timeline/Models/Timeline.cs b/Timeline/Models/Timeline.cs
deleted file mode 100644
index a5987577..00000000
--- a/Timeline/Models/Timeline.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-
-namespace Timeline.Models
-{
-    public enum TimelineVisibility
-    {
-        /// <summary>
-        /// All people including those without accounts.
-        /// </summary>
-        Public,
-        /// <summary>
-        /// Only people signed in.
-        /// </summary>
-        Register,
-        /// <summary>
-        /// Only member.
-        /// </summary>
-        Private
-    }
-
-    public static class TimelinePostContentTypes
-    {
-        public const string Text = "text";
-        public const string Image = "image";
-    }
-
-    public interface ITimelinePostContent
-    {
-        public string Type { get; }
-    }
-
-    public class TextTimelinePostContent : ITimelinePostContent
-    {
-        public TextTimelinePostContent(string text) { Text = text; }
-
-        public string Type { get; } = TimelinePostContentTypes.Text;
-        public string Text { get; set; }
-    }
-
-    public class ImageTimelinePostContent : ITimelinePostContent
-    {
-        public ImageTimelinePostContent(string dataTag) { DataTag = dataTag; }
-
-        public string Type { get; } = TimelinePostContentTypes.Image;
-
-        /// <summary>
-        /// The tag of the data. The tag of the entry in DataManager. Also the etag (not quoted).
-        /// </summary>
-        public string DataTag { get; set; }
-    }
-
-    public class TimelinePost
-    {
-        public TimelinePost(long id, ITimelinePostContent? content, DateTime time, User? author, DateTime lastUpdated, string timelineName)
-        {
-            Id = id;
-            Content = content;
-            Time = time;
-            Author = author;
-            LastUpdated = lastUpdated;
-            TimelineName = timelineName;
-        }
-
-        public long Id { get; set; }
-        public ITimelinePostContent? Content { get; set; }
-        public bool Deleted => Content == null;
-        public DateTime Time { get; set; }
-        public User? Author { get; set; }
-        public DateTime LastUpdated { get; set; }
-        public string TimelineName { get; set; }
-    }
-
-#pragma warning disable CA1724 // Type names should not match namespaces
-    public class Timeline
-#pragma warning restore CA1724 // Type names should not match namespaces
-    {
-        public string UniqueID { get; set; } = default!;
-        public string Name { get; set; } = default!;
-        public DateTime NameLastModified { get; set; } = default!;
-        public string Title { get; set; } = default!;
-        public string Description { get; set; } = default!;
-        public User Owner { get; set; } = default!;
-        public TimelineVisibility Visibility { get; set; }
-#pragma warning disable CA2227 // Collection properties should be read only
-        public List<User> Members { get; set; } = default!;
-#pragma warning restore CA2227 // Collection properties should be read only
-        public DateTime CreateTime { get; set; } = default!;
-        public DateTime LastModified { get; set; } = default!;
-    }
-
-    public class TimelineChangePropertyRequest
-    {
-        public string? Title { get; set; }
-        public string? Description { get; set; }
-        public TimelineVisibility? Visibility { get; set; }
-    }
-}
diff --git a/Timeline/Models/User.cs b/Timeline/Models/User.cs
deleted file mode 100644
index f08a62db..00000000
--- a/Timeline/Models/User.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-﻿using System;
-
-namespace Timeline.Models
-{
-    public class User
-    {
-        public string? UniqueId { get; set; }
-        public string? Username { get; set; }
-        public string? Nickname { get; set; }
-        public bool? Administrator { get; set; }
-
-        #region secret
-        public long? Id { get; set; }
-        public string? Password { get; set; }
-        public long? Version { get; set; }
-        public DateTime? UsernameChangeTime { get; set; }
-        public DateTime? CreateTime { get; set; }
-        public DateTime? LastModified { get; set; }
-        #endregion secret
-    }
-}
diff --git a/Timeline/Models/Validation/GeneralTimelineNameValidator.cs b/Timeline/Models/Validation/GeneralTimelineNameValidator.cs
deleted file mode 100644
index e1c96fbd..00000000
--- a/Timeline/Models/Validation/GeneralTimelineNameValidator.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-﻿using System;
-
-namespace Timeline.Models.Validation
-{
-    public class GeneralTimelineNameValidator : Validator<string>
-    {
-        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
-        private readonly TimelineNameValidator _timelineNameValidator = new TimelineNameValidator();
-
-        protected override (bool, string) DoValidate(string value)
-        {
-            if (value.StartsWith('@'))
-            {
-                return _usernameValidator.Validate(value.Substring(1));
-            }
-            else
-            {
-                return _timelineNameValidator.Validate(value);
-            }
-        }
-    }
-
-    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
-        AllowMultiple = false)]
-    public class GeneralTimelineNameAttribute : ValidateWithAttribute
-    {
-        public GeneralTimelineNameAttribute()
-            : base(typeof(GeneralTimelineNameValidator))
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Models/Validation/NameValidator.cs b/Timeline/Models/Validation/NameValidator.cs
deleted file mode 100644
index b74c40b7..00000000
--- a/Timeline/Models/Validation/NameValidator.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-﻿using System.Linq;
-using System.Text.RegularExpressions;
-using static Timeline.Resources.Models.Validation.NameValidator;
-
-namespace Timeline.Models.Validation
-{
-    public class NameValidator : Validator<string>
-    {
-        private static Regex UniqueIdRegex { get; } = new Regex(@"^[a-zA-Z0-9]{32}$");
-
-        public const int MaxLength = 26;
-
-        protected override (bool, string) DoValidate(string value)
-        {
-            if (value.Length == 0)
-            {
-                return (false, MessageEmptyString);
-            }
-
-            if (value.Length > MaxLength)
-            {
-                return (false, MessageTooLong);
-            }
-
-            foreach ((char c, int i) in value.Select((c, i) => (c, i)))
-            {
-                if (!(char.IsLetterOrDigit(c) || c == '-' || c == '_'))
-                {
-                    return (false, MessageInvalidChar);
-                }
-            }
-
-            // Currently name can't be longer than 26. So this is not needed. But reserve it for future use.
-            if (UniqueIdRegex.IsMatch(value))
-            {
-                return (false, MessageUnqiueId);
-            }
-
-            return (true, GetSuccessMessage());
-        }
-    }
-}
diff --git a/Timeline/Models/Validation/NicknameValidator.cs b/Timeline/Models/Validation/NicknameValidator.cs
deleted file mode 100644
index 1d6ab163..00000000
--- a/Timeline/Models/Validation/NicknameValidator.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-﻿using System;
-using static Timeline.Resources.Models.Validation.NicknameValidator;
-
-namespace Timeline.Models.Validation
-{
-    public class NicknameValidator : Validator<string>
-    {
-        protected override (bool, string) DoValidate(string value)
-        {
-            if (value.Length > 25)
-                return (false, MessageTooLong);
-
-            return (true, GetSuccessMessage());
-        }
-    }
-
-    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
-    public class NicknameAttribute : ValidateWithAttribute
-    {
-        public NicknameAttribute() : base(typeof(NicknameValidator))
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Models/Validation/TimelineNameValidator.cs b/Timeline/Models/Validation/TimelineNameValidator.cs
deleted file mode 100644
index f1ab54e8..00000000
--- a/Timeline/Models/Validation/TimelineNameValidator.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-﻿using System;
-
-namespace Timeline.Models.Validation
-{
-    public class TimelineNameValidator : NameValidator
-    {
-    }
-
-    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
-        AllowMultiple = false)]
-    public class TimelineNameAttribute : ValidateWithAttribute
-    {
-        public TimelineNameAttribute()
-            : base(typeof(TimelineNameValidator))
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Models/Validation/UsernameValidator.cs b/Timeline/Models/Validation/UsernameValidator.cs
deleted file mode 100644
index 87bbf85f..00000000
--- a/Timeline/Models/Validation/UsernameValidator.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-﻿using System;
-
-namespace Timeline.Models.Validation
-{
-    public class UsernameValidator : NameValidator
-    {
-    }
-
-    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
-        AllowMultiple = false)]
-    public class UsernameAttribute : ValidateWithAttribute
-    {
-        public UsernameAttribute()
-            : base(typeof(UsernameValidator))
-        {
-
-        }
-    }
-}
diff --git a/Timeline/Models/Validation/Validator.cs b/Timeline/Models/Validation/Validator.cs
deleted file mode 100644
index aef7891c..00000000
--- a/Timeline/Models/Validation/Validator.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-﻿using System;
-using System.ComponentModel.DataAnnotations;
-using static Timeline.Resources.Models.Validation.Validator;
-
-namespace Timeline.Models.Validation
-{
-    /// <summary>
-    /// A validator to validate value.
-    /// </summary>
-    public interface IValidator
-    {
-        /// <summary>
-        /// Validate given value.
-        /// </summary>
-        /// <param name="value">The value to validate.</param>
-        /// <returns>Validation success or not and message.</returns>
-        (bool, string) Validate(object? value);
-    }
-
-    public static class ValidatorExtensions
-    {
-        public static bool Validate(this IValidator validator, object? value, out string message)
-        {
-            if (validator == null)
-                throw new ArgumentNullException(nameof(validator));
-
-            var (r, m) = validator.Validate(value);
-            message = m;
-            return r;
-        }
-    }
-
-    /// <summary>
-    /// Convenient base class for validator.
-    /// </summary>
-    /// <typeparam name="T">The type of accepted value.</typeparam>
-    /// <remarks>
-    /// Subclass should override <see cref="DoValidate(T)"/> to do the real validation.
-    /// This class will check the nullity and type of value.
-    /// If value is null, it will pass or fail depending on <see cref="PermitNull"/>.
-    /// If value is not null and not of type <typeparamref name="T"/>
-    /// it will fail and not call <see cref="DoValidate(T)"/>.
-    /// 
-    /// <see cref="PermitNull"/> is true by default.
-    /// 
-    /// If you want some other behaviours, write the validator from scratch.
-    /// </remarks>
-    public abstract class Validator<T> : IValidator
-    {
-        protected bool PermitNull { get; set; } = true;
-
-        public (bool, string) Validate(object? value)
-        {
-            if (value == null)
-            {
-                if (PermitNull)
-                    return (true, GetSuccessMessage());
-                else
-                    return (false, ValidatorMessageNull);
-            }
-
-            if (value is T v)
-            {
-                return DoValidate(v);
-            }
-            else
-            {
-                return (false, ValidatorMessageBadType);
-            }
-        }
-
-        protected static string GetSuccessMessage() => ValidatorMessageSuccess;
-
-        protected abstract (bool, string) DoValidate(T value);
-    }
-
-    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,
-        AllowMultiple = false)]
-    public class ValidateWithAttribute : ValidationAttribute
-    {
-        private readonly IValidator _validator;
-
-        /// <summary>
-        /// Create with a given validator.
-        /// </summary>
-        /// <param name="validator">The validator used to validate.</param>
-        public ValidateWithAttribute(IValidator validator)
-        {
-            _validator = validator ?? throw new ArgumentNullException(nameof(validator));
-        }
-
-        /// <summary>
-        /// Create the validator with default constructor.
-        /// </summary>
-        /// <param name="validatorType">The type of the validator.</param>
-        public ValidateWithAttribute(Type validatorType)
-        {
-            if (validatorType == null)
-                throw new ArgumentNullException(nameof(validatorType));
-
-            if (!typeof(IValidator).IsAssignableFrom(validatorType))
-                throw new ArgumentException(ValidateWithAttributeExceptionNotValidator, nameof(validatorType));
-
-            try
-            {
-                _validator = (Activator.CreateInstance(validatorType) as IValidator)!;
-            }
-            catch (Exception e)
-            {
-                throw new ArgumentException(ValidateWithAttributeExceptionCreateFail, e);
-            }
-        }
-
-        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
-        {
-            var (result, message) = _validator.Validate(value);
-            if (result)
-            {
-                return ValidationResult.Success;
-            }
-            else
-            {
-                return new ValidationResult(message);
-            }
-        }
-    }
-}
diff --git a/Timeline/Program.cs b/Timeline/Program.cs
deleted file mode 100644
index 87e330a2..00000000
--- a/Timeline/Program.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using System.Resources;
-using Timeline.Entities;
-using Timeline.Services;
-
-[assembly: NeutralResourcesLanguage("en")]
-
-namespace Timeline
-{
-    public static class Program
-    {
-        public static void Main(string[] args)
-        {
-            var host = CreateWebHostBuilder(args).Build();
-
-            var env = host.Services.GetRequiredService<IWebHostEnvironment>();
-
-            var databaseBackupService = host.Services.GetRequiredService<IDatabaseBackupService>();
-            databaseBackupService.BackupNow();
-
-            if (env.IsProduction())
-            {
-                using (var scope = host.Services.CreateScope())
-                {
-                    var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
-                    databaseContext.Database.Migrate();
-                }
-            }
-
-            host.Run();
-        }
-
-        public static IHostBuilder CreateWebHostBuilder(string[] args) =>
-            Host.CreateDefaultBuilder(args)
-                .ConfigureWebHostDefaults(webBuilder =>
-                {
-                    webBuilder.UseStartup<Startup>();
-                });
-    }
-}
diff --git a/Timeline/Properties/launchSettings.json b/Timeline/Properties/launchSettings.json
deleted file mode 100644
index de8186db..00000000
--- a/Timeline/Properties/launchSettings.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "profiles": {
-    "Development": {
-      "commandName": "Project",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development",
-        "ASPNETCORE_USEPROXYFRONTEND": "true",
-        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
-      }
-    },
-    "Development-Mock": {
-      "commandName": "Project",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development",
-        "ASPNETCORE_USEMOCKFRONTEND": "true",
-        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
-      }
-    },
-    "Staging": {
-      "commandName": "Project",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Staging",
-        "ASPNETCORE_WORKDIR": "D:\\timeline-development"
-      }
-    }
-  }
-}
diff --git a/Timeline/Resources/Authentication/AuthHandler.Designer.cs b/Timeline/Resources/Authentication/AuthHandler.Designer.cs
deleted file mode 100644
index fd4540ea..00000000
--- a/Timeline/Resources/Authentication/AuthHandler.Designer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Authentication {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class AuthHandler {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal AuthHandler() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Authentication.AuthHandler", typeof(AuthHandler).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Token is found in authorization header. Token is {0} ..
-        /// </summary>
-        internal static string LogTokenFoundInHeader {
-            get {
-                return ResourceManager.GetString("LogTokenFoundInHeader", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Token is found in query param with key &quot;{0}&quot;. Token is {1} ..
-        /// </summary>
-        internal static string LogTokenFoundInQuery {
-            get {
-                return ResourceManager.GetString("LogTokenFoundInQuery", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to No jwt token is found..
-        /// </summary>
-        internal static string LogTokenNotFound {
-            get {
-                return ResourceManager.GetString("LogTokenNotFound", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A jwt token validation failed..
-        /// </summary>
-        internal static string LogTokenValidationFail {
-            get {
-                return ResourceManager.GetString("LogTokenValidationFail", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Authentication/AuthHandler.resx b/Timeline/Resources/Authentication/AuthHandler.resx
deleted file mode 100644
index 4cddc8ce..00000000
--- a/Timeline/Resources/Authentication/AuthHandler.resx
+++ /dev/null
@@ -1,132 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="LogTokenFoundInHeader" xml:space="preserve">
-    <value>Token is found in authorization header. Token is {0} .</value>
-  </data>
-  <data name="LogTokenFoundInQuery" xml:space="preserve">
-    <value>Token is found in query param with key "{0}". Token is {1} .</value>
-  </data>
-  <data name="LogTokenNotFound" xml:space="preserve">
-    <value>No jwt token is found.</value>
-  </data>
-  <data name="LogTokenValidationFail" xml:space="preserve">
-    <value>A jwt token validation failed.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs b/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
deleted file mode 100644
index 70a1d605..00000000
--- a/Timeline/Resources/Controllers/ControllerAuthExtensions.Designer.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Controllers {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class ControllerAuthExtensions {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal ControllerAuthExtensions() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.ControllerAuthExtensions", typeof(ControllerAuthExtensions).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Failed to get user id because User has no NameIdentifier claim..
-        /// </summary>
-        internal static string ExceptionNoUserIdentifierClaim {
-            get {
-                return ResourceManager.GetString("ExceptionNoUserIdentifierClaim", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Failed to get user id because NameIdentifier claim is not a number..
-        /// </summary>
-        internal static string ExceptionUserIdentifierClaimBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionUserIdentifierClaimBadFormat", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Controllers/ControllerAuthExtensions.resx b/Timeline/Resources/Controllers/ControllerAuthExtensions.resx
deleted file mode 100644
index 03e6d95a..00000000
--- a/Timeline/Resources/Controllers/ControllerAuthExtensions.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionNoUserIdentifierClaim" xml:space="preserve">
-    <value>Failed to get user id because User has no NameIdentifier claim.</value>
-  </data>
-  <data name="ExceptionUserIdentifierClaimBadFormat" xml:space="preserve">
-    <value>Failed to get user id because NameIdentifier claim is not a number.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Controllers/TimelineController.Designer.cs b/Timeline/Resources/Controllers/TimelineController.Designer.cs
deleted file mode 100644
index ae6414e6..00000000
--- a/Timeline/Resources/Controllers/TimelineController.Designer.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Controllers {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class TimelineController {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal TimelineController() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.TimelineController", typeof(TimelineController).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to An unknown timeline visibility value. Can&apos;t convert it..
-        /// </summary>
-        internal static string ExceptionStringToVisibility {
-            get {
-                return ResourceManager.GetString("ExceptionStringToVisibility", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to An unknown TimelineMemberOperationUserException is thrown. Can&apos;t recognize its inner exception. It is rethrown..
-        /// </summary>
-        internal static string LogUnknownTimelineMemberOperationUserException {
-            get {
-                return ResourceManager.GetString("LogUnknownTimelineMemberOperationUserException", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Controllers/TimelineController.resx b/Timeline/Resources/Controllers/TimelineController.resx
deleted file mode 100644
index 4cf3d6fb..00000000
--- a/Timeline/Resources/Controllers/TimelineController.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionStringToVisibility" xml:space="preserve">
-    <value>An unknown timeline visibility value. Can't convert it.</value>
-  </data>
-  <data name="LogUnknownTimelineMemberOperationUserException" xml:space="preserve">
-    <value>An unknown TimelineMemberOperationUserException is thrown. Can't recognize its inner exception. It is rethrown.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Controllers/TokenController.Designer.cs b/Timeline/Resources/Controllers/TokenController.Designer.cs
deleted file mode 100644
index a7c2864b..00000000
--- a/Timeline/Resources/Controllers/TokenController.Designer.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Controllers {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class TokenController {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal TokenController() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.TokenController", typeof(TokenController).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The password is wrong..
-        /// </summary>
-        internal static string LogBadPassword {
-            get {
-                return ResourceManager.GetString("LogBadPassword", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user failed to create a token..
-        /// </summary>
-        internal static string LogCreateFailure {
-            get {
-                return ResourceManager.GetString("LogCreateFailure", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user succeeded to create a token..
-        /// </summary>
-        internal static string LogCreateSuccess {
-            get {
-                return ResourceManager.GetString("LogCreateSuccess", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The user does not exist..
-        /// </summary>
-        internal static string LogUserNotExist {
-            get {
-                return ResourceManager.GetString("LogUserNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is of bad format. It might not be created by the server..
-        /// </summary>
-        internal static string LogVerifyBadFormat {
-            get {
-                return ResourceManager.GetString("LogVerifyBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is expired..
-        /// </summary>
-        internal static string LogVerifyExpire {
-            get {
-                return ResourceManager.GetString("LogVerifyExpire", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A token failed to be verified..
-        /// </summary>
-        internal static string LogVerifyFailure {
-            get {
-                return ResourceManager.GetString("LogVerifyFailure", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Token has an old version. User might have update some info..
-        /// </summary>
-        internal static string LogVerifyOldVersion {
-            get {
-                return ResourceManager.GetString("LogVerifyOldVersion", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A token succeeded to be verified..
-        /// </summary>
-        internal static string LogVerifySuccess {
-            get {
-                return ResourceManager.GetString("LogVerifySuccess", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to User does not exist. Administrator might have deleted this user..
-        /// </summary>
-        internal static string LogVerifyUserNotExist {
-            get {
-                return ResourceManager.GetString("LogVerifyUserNotExist", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Controllers/TokenController.resx b/Timeline/Resources/Controllers/TokenController.resx
deleted file mode 100644
index 683d6cc9..00000000
--- a/Timeline/Resources/Controllers/TokenController.resx
+++ /dev/null
@@ -1,150 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="LogBadPassword" xml:space="preserve">
-    <value>The password is wrong.</value>
-  </data>
-  <data name="LogCreateFailure" xml:space="preserve">
-    <value>A user failed to create a token.</value>
-  </data>
-  <data name="LogCreateSuccess" xml:space="preserve">
-    <value>A user succeeded to create a token.</value>
-  </data>
-  <data name="LogUserNotExist" xml:space="preserve">
-    <value>The user does not exist.</value>
-  </data>
-  <data name="LogVerifyBadFormat" xml:space="preserve">
-    <value>The token is of bad format. It might not be created by the server.</value>
-  </data>
-  <data name="LogVerifyExpire" xml:space="preserve">
-    <value>The token is expired.</value>
-  </data>
-  <data name="LogVerifyFailure" xml:space="preserve">
-    <value>A token failed to be verified.</value>
-  </data>
-  <data name="LogVerifyOldVersion" xml:space="preserve">
-    <value>Token has an old version. User might have update some info.</value>
-  </data>
-  <data name="LogVerifySuccess" xml:space="preserve">
-    <value>A token succeeded to be verified.</value>
-  </data>
-  <data name="LogVerifyUserNotExist" xml:space="preserve">
-    <value>User does not exist. Administrator might have deleted this user.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Controllers/UserAvatarController.Designer.cs b/Timeline/Resources/Controllers/UserAvatarController.Designer.cs
deleted file mode 100644
index b0c35ff9..00000000
--- a/Timeline/Resources/Controllers/UserAvatarController.Designer.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Controllers {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class UserAvatarController {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal UserAvatarController() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.UserAvatarController", typeof(UserAvatarController).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown AvatarDataException.ErrorReason value..
-        /// </summary>
-        internal static string ExceptionUnknownAvatarFormatError {
-            get {
-                return ResourceManager.GetString("ExceptionUnknownAvatarFormatError", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to delete a avatar of other user as a non-admin failed..
-        /// </summary>
-        internal static string LogDeleteForbid {
-            get {
-                return ResourceManager.GetString("LogDeleteForbid", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to delete a avatar of a non-existent user failed..
-        /// </summary>
-        internal static string LogDeleteNotExist {
-            get {
-                return ResourceManager.GetString("LogDeleteNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Succeed to delete a avatar of a user..
-        /// </summary>
-        internal static string LogDeleteSuccess {
-            get {
-                return ResourceManager.GetString("LogDeleteSuccess", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to get a avatar of a non-existent user failed..
-        /// </summary>
-        internal static string LogGetUserNotExist {
-            get {
-                return ResourceManager.GetString("LogGetUserNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to put a avatar of other user as a non-admin failed..
-        /// </summary>
-        internal static string LogPutForbid {
-            get {
-                return ResourceManager.GetString("LogPutForbid", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Succeed to put a avatar of a user..
-        /// </summary>
-        internal static string LogPutSuccess {
-            get {
-                return ResourceManager.GetString("LogPutSuccess", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to put a avatar of a bad format failed..
-        /// </summary>
-        internal static string LogPutUserBadFormat {
-            get {
-                return ResourceManager.GetString("LogPutUserBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to put a avatar of a non-existent user failed..
-        /// </summary>
-        internal static string LogPutUserNotExist {
-            get {
-                return ResourceManager.GetString("LogPutUserNotExist", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Controllers/UserAvatarController.resx b/Timeline/Resources/Controllers/UserAvatarController.resx
deleted file mode 100644
index 864d96c0..00000000
--- a/Timeline/Resources/Controllers/UserAvatarController.resx
+++ /dev/null
@@ -1,147 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionUnknownAvatarFormatError" xml:space="preserve">
-    <value>Unknown AvatarDataException.ErrorReason value.</value>
-  </data>
-  <data name="LogDeleteForbid" xml:space="preserve">
-    <value>Attempt to delete a avatar of other user as a non-admin failed.</value>
-  </data>
-  <data name="LogDeleteNotExist" xml:space="preserve">
-    <value>Attempt to delete a avatar of a non-existent user failed.</value>
-  </data>
-  <data name="LogDeleteSuccess" xml:space="preserve">
-    <value>Succeed to delete a avatar of a user.</value>
-  </data>
-  <data name="LogGetUserNotExist" xml:space="preserve">
-    <value>Attempt to get a avatar of a non-existent user failed.</value>
-  </data>
-  <data name="LogPutForbid" xml:space="preserve">
-    <value>Attempt to put a avatar of other user as a non-admin failed.</value>
-  </data>
-  <data name="LogPutSuccess" xml:space="preserve">
-    <value>Succeed to put a avatar of a user.</value>
-  </data>
-  <data name="LogPutUserBadFormat" xml:space="preserve">
-    <value>Attempt to put a avatar of a bad format failed.</value>
-  </data>
-  <data name="LogPutUserNotExist" xml:space="preserve">
-    <value>Attempt to put a avatar of a non-existent user failed.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Controllers/UserController.Designer.cs b/Timeline/Resources/Controllers/UserController.Designer.cs
deleted file mode 100644
index c8067614..00000000
--- a/Timeline/Resources/Controllers/UserController.Designer.cs
+++ /dev/null
@@ -1,117 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Controllers {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class UserController {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal UserController() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Controllers.UserController", typeof(UserController).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown PutResult..
-        /// </summary>
-        internal static string ExceptionUnknownPutResult {
-            get {
-                return ResourceManager.GetString("ExceptionUnknownPutResult", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to change password with wrong old password failed..
-        /// </summary>
-        internal static string LogChangePasswordBadPassword {
-            get {
-                return ResourceManager.GetString("LogChangePasswordBadPassword", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to change a user&apos;s username to a existent one failed..
-        /// </summary>
-        internal static string LogChangeUsernameConflict {
-            get {
-                return ResourceManager.GetString("LogChangeUsernameConflict", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to change a username of a user that does not exist failed..
-        /// </summary>
-        internal static string LogChangeUsernameNotExist {
-            get {
-                return ResourceManager.GetString("LogChangeUsernameNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to retrieve info of a user that does not exist failed..
-        /// </summary>
-        internal static string LogGetUserNotExist {
-            get {
-                return ResourceManager.GetString("LogGetUserNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Attempt to patch a user that does not exist failed..
-        /// </summary>
-        internal static string LogPatchUserNotExist {
-            get {
-                return ResourceManager.GetString("LogPatchUserNotExist", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Controllers/UserController.resx b/Timeline/Resources/Controllers/UserController.resx
deleted file mode 100644
index 0bdf4845..00000000
--- a/Timeline/Resources/Controllers/UserController.resx
+++ /dev/null
@@ -1,138 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionUnknownPutResult" xml:space="preserve">
-    <value>Unknown PutResult.</value>
-  </data>
-  <data name="LogChangePasswordBadPassword" xml:space="preserve">
-    <value>Attempt to change password with wrong old password failed.</value>
-  </data>
-  <data name="LogChangeUsernameConflict" xml:space="preserve">
-    <value>Attempt to change a user's username to a existent one failed.</value>
-  </data>
-  <data name="LogChangeUsernameNotExist" xml:space="preserve">
-    <value>Attempt to change a username of a user that does not exist failed.</value>
-  </data>
-  <data name="LogGetUserNotExist" xml:space="preserve">
-    <value>Attempt to retrieve info of a user that does not exist failed.</value>
-  </data>
-  <data name="LogPatchUserNotExist" xml:space="preserve">
-    <value>Attempt to patch a user that does not exist failed.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Entities.Designer.cs b/Timeline/Resources/Entities.Designer.cs
deleted file mode 100644
index 5f286f23..00000000
--- a/Timeline/Resources/Entities.Designer.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Entities {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Entities() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Entities", typeof(Entities).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Only sqlite is supported..
-        /// </summary>
-        internal static string ExceptionOnlySqliteSupported {
-            get {
-                return ResourceManager.GetString("ExceptionOnlySqliteSupported", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Entities.resx b/Timeline/Resources/Entities.resx
deleted file mode 100644
index 1538b533..00000000
--- a/Timeline/Resources/Entities.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionOnlySqliteSupported" xml:space="preserve">
-    <value>Only sqlite is supported.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Filters.Designer.cs b/Timeline/Resources/Filters.Designer.cs
deleted file mode 100644
index dedfe498..00000000
--- a/Timeline/Resources/Filters.Designer.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Filters {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Filters() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Filters", typeof(Filters).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, but there is no user. Try add AuthorizeAttribute..
-        /// </summary>
-        internal static string LogSelfOrAdminNoUser {
-            get {
-                return ResourceManager.GetString("LogSelfOrAdminNoUser", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, but it does not have a model named username..
-        /// </summary>
-        internal static string LogSelfOrAdminNoUsername {
-            get {
-                return ResourceManager.GetString("LogSelfOrAdminNoUsername", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You apply a SelfOrAdminAttribute on an action, found a model named username, but it is not string..
-        /// </summary>
-        internal static string LogSelfOrAdminUsernameNotString {
-            get {
-                return ResourceManager.GetString("LogSelfOrAdminUsernameNotString", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Filters.resx b/Timeline/Resources/Filters.resx
deleted file mode 100644
index 22620889..00000000
--- a/Timeline/Resources/Filters.resx
+++ /dev/null
@@ -1,129 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="LogSelfOrAdminNoUser" xml:space="preserve">
-    <value>You apply a SelfOrAdminAttribute on an action, but there is no user. Try add AuthorizeAttribute.</value>
-  </data>
-  <data name="LogSelfOrAdminNoUsername" xml:space="preserve">
-    <value>You apply a SelfOrAdminAttribute on an action, but it does not have a model named username.</value>
-  </data>
-  <data name="LogSelfOrAdminUsernameNotString" xml:space="preserve">
-    <value>You apply a SelfOrAdminAttribute on an action, found a model named username, but it is not string.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Helper/DataCacheHelper.Designer.cs b/Timeline/Resources/Helper/DataCacheHelper.Designer.cs
deleted file mode 100644
index acf56d13..00000000
--- a/Timeline/Resources/Helper/DataCacheHelper.Designer.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Helper {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class DataCacheHelper {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal DataCacheHelper() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Helper.DataCacheHelper", typeof(DataCacheHelper).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Header If-None-Match is of bad format..
-        /// </summary>
-        internal static string LogBadIfNoneMatch {
-            get {
-                return ResourceManager.GetString("LogBadIfNoneMatch", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Cache is invalid and data is returned..
-        /// </summary>
-        internal static string LogResultData {
-            get {
-                return ResourceManager.GetString("LogResultData", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Cache is valid and 304 Not Modified is returned..
-        /// </summary>
-        internal static string LogResultNotModified {
-            get {
-                return ResourceManager.GetString("LogResultNotModified", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Helper/DataCacheHelper.resx b/Timeline/Resources/Helper/DataCacheHelper.resx
deleted file mode 100644
index 515cfa9b..00000000
--- a/Timeline/Resources/Helper/DataCacheHelper.resx
+++ /dev/null
@@ -1,129 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="LogBadIfNoneMatch" xml:space="preserve">
-    <value>Header If-None-Match is of bad format.</value>
-  </data>
-  <data name="LogResultData" xml:space="preserve">
-    <value>Cache is invalid and data is returned.</value>
-  </data>
-  <data name="LogResultNotModified" xml:space="preserve">
-    <value>Cache is valid and 304 Not Modified is returned.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Messages.Designer.cs b/Timeline/Resources/Messages.Designer.cs
deleted file mode 100644
index bb654ce6..00000000
--- a/Timeline/Resources/Messages.Designer.cs
+++ /dev/null
@@ -1,396 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Messages {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Messages() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Messages", typeof(Messages).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Body is too big. It can&apos;t be bigger than {0}..
-        /// </summary>
-        internal static string Common_Content_TooBig {
-            get {
-                return ResourceManager.GetString("Common_Content_TooBig", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Actual body length is bigger than it in header..
-        /// </summary>
-        internal static string Common_Content_UnmatchedLength_Bigger {
-            get {
-                return ResourceManager.GetString("Common_Content_UnmatchedLength_Bigger", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Actual body length is smaller than it in header..
-        /// </summary>
-        internal static string Common_Content_UnmatchedLength_Smaller {
-            get {
-                return ResourceManager.GetString("Common_Content_UnmatchedLength_Smaller", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You have no permission to do the operation..
-        /// </summary>
-        internal static string Common_Forbid {
-            get {
-                return ResourceManager.GetString("Common_Forbid", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You are not the resource owner..
-        /// </summary>
-        internal static string Common_Forbid_NotSelf {
-            get {
-                return ResourceManager.GetString("Common_Forbid_NotSelf", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Header Content-Length is missing or of bad format..
-        /// </summary>
-        internal static string Common_Header_ContentLength_Missing {
-            get {
-                return ResourceManager.GetString("Common_Header_ContentLength_Missing", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Header Content-Length must not be 0..
-        /// </summary>
-        internal static string Common_Header_ContentLength_Zero {
-            get {
-                return ResourceManager.GetString("Common_Header_ContentLength_Zero", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Header Content-Type is missing..
-        /// </summary>
-        internal static string Common_Header_ContentType_Missing {
-            get {
-                return ResourceManager.GetString("Common_Header_ContentType_Missing", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Header If-Non-Match is of bad format..
-        /// </summary>
-        internal static string Common_Header_IfNonMatch_BadFormat {
-            get {
-                return ResourceManager.GetString("Common_Header_IfNonMatch_BadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Model is of bad format..
-        /// </summary>
-        internal static string Common_InvalidModel {
-            get {
-                return ResourceManager.GetString("Common_InvalidModel", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The api endpoint you request is unknown. You might get the wrong api entry..
-        /// </summary>
-        internal static string Common_UnknownEndpoint {
-            get {
-                return ResourceManager.GetString("Common_UnknownEndpoint", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown type of post content..
-        /// </summary>
-        internal static string TimelineController_ContentUnknownType {
-            get {
-                return ResourceManager.GetString("TimelineController_ContentUnknownType", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Data field is not a valid base64 string in image content..
-        /// </summary>
-        internal static string TimelineController_ImageContentDataNotBase64 {
-            get {
-                return ResourceManager.GetString("TimelineController_ImageContentDataNotBase64", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Data field is not a valid image after base64 decoding in image content..
-        /// </summary>
-        internal static string TimelineController_ImageContentDataNotImage {
-            get {
-                return ResourceManager.GetString("TimelineController_ImageContentDataNotImage", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Data field is required for image content..
-        /// </summary>
-        internal static string TimelineController_ImageContentDataRequired {
-            get {
-                return ResourceManager.GetString("TimelineController_ImageContentDataRequired", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The user to set as member does not exist..
-        /// </summary>
-        internal static string TimelineController_MemberPut_NotExist {
-            get {
-                return ResourceManager.GetString("TimelineController_MemberPut_NotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A timeline with given name already exists..
-        /// </summary>
-        internal static string TimelineController_NameConflict {
-            get {
-                return ResourceManager.GetString("TimelineController_NameConflict", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The timeline with given name does not exist..
-        /// </summary>
-        internal static string TimelineController_NotExist {
-            get {
-                return ResourceManager.GetString("TimelineController_NotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The post of that type has no data..
-        /// </summary>
-        internal static string TimelineController_PostNoData {
-            get {
-                return ResourceManager.GetString("TimelineController_PostNoData", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The post to operate on does not exist..
-        /// </summary>
-        internal static string TimelineController_PostNotExist {
-            get {
-                return ResourceManager.GetString("TimelineController_PostNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The user specified by query param &quot;relate&quot; does not exist..
-        /// </summary>
-        internal static string TimelineController_QueryRelateNotExist {
-            get {
-                return ResourceManager.GetString("TimelineController_QueryRelateNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to &apos;{0}&apos; is an unkown visibility in the query parameter &apos;visibility&apos;. .
-        /// </summary>
-        internal static string TimelineController_QueryVisibilityUnknown {
-            get {
-                return ResourceManager.GetString("TimelineController_QueryVisibilityUnknown", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Text field is required for text content..
-        /// </summary>
-        internal static string TimelineController_TextContentTextRequired {
-            get {
-                return ResourceManager.GetString("TimelineController_TextContentTextRequired", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Username or password is invalid..
-        /// </summary>
-        internal static string TokenController_Create_BadCredential {
-            get {
-                return ResourceManager.GetString("TokenController_Create_BadCredential", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is of bad format. It might not be created by the server..
-        /// </summary>
-        internal static string TokenController_Verify_BadFormat {
-            get {
-                return ResourceManager.GetString("TokenController_Verify_BadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Token has an old version. User might have update some info..
-        /// </summary>
-        internal static string TokenController_Verify_OldVersion {
-            get {
-                return ResourceManager.GetString("TokenController_Verify_OldVersion", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is expired..
-        /// </summary>
-        internal static string TokenController_Verify_TimeExpired {
-            get {
-                return ResourceManager.GetString("TokenController_Verify_TimeExpired", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to User does not exist. Administrator might have deleted this user..
-        /// </summary>
-        internal static string TokenController_Verify_UserNotExist {
-            get {
-                return ResourceManager.GetString("TokenController_Verify_UserNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Image is not a square..
-        /// </summary>
-        internal static string UserAvatar_BadFormat_BadSize {
-            get {
-                return ResourceManager.GetString("UserAvatar_BadFormat_BadSize", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Image decode failed..
-        /// </summary>
-        internal static string UserAvatar_BadFormat_CantDecode {
-            get {
-                return ResourceManager.GetString("UserAvatar_BadFormat_CantDecode", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Image format does not match the one in header..
-        /// </summary>
-        internal static string UserAvatar_BadFormat_UnmatchedFormat {
-            get {
-                return ResourceManager.GetString("UserAvatar_BadFormat_UnmatchedFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The user to operate on does not exist..
-        /// </summary>
-        internal static string UserCommon_NotExist {
-            get {
-                return ResourceManager.GetString("UserCommon_NotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Old password is wrong..
-        /// </summary>
-        internal static string UserController_ChangePassword_BadOldPassword {
-            get {
-                return ResourceManager.GetString("UserController_ChangePassword_BadOldPassword", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You can&apos;t set permission unless you are administrator..
-        /// </summary>
-        internal static string UserController_Patch_Forbid_Administrator {
-            get {
-                return ResourceManager.GetString("UserController_Patch_Forbid_Administrator", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You can&apos;t set password unless you are administrator. If you want to change password, use /userop/changepassword ..
-        /// </summary>
-        internal static string UserController_Patch_Forbid_Password {
-            get {
-                return ResourceManager.GetString("UserController_Patch_Forbid_Password", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to You can&apos;t set username unless you are administrator..
-        /// </summary>
-        internal static string UserController_Patch_Forbid_Username {
-            get {
-                return ResourceManager.GetString("UserController_Patch_Forbid_Username", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user with given username already exists..
-        /// </summary>
-        internal static string UserController_UsernameConflict {
-            get {
-                return ResourceManager.GetString("UserController_UsernameConflict", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Messages.resx b/Timeline/Resources/Messages.resx
deleted file mode 100644
index 2bbf494e..00000000
--- a/Timeline/Resources/Messages.resx
+++ /dev/null
@@ -1,231 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="Common_Content_TooBig" xml:space="preserve">
-    <value>Body is too big. It can't be bigger than {0}.</value>
-  </data>
-  <data name="Common_Content_UnmatchedLength_Bigger" xml:space="preserve">
-    <value>Actual body length is bigger than it in header.</value>
-  </data>
-  <data name="Common_Content_UnmatchedLength_Smaller" xml:space="preserve">
-    <value>Actual body length is smaller than it in header.</value>
-  </data>
-  <data name="Common_Forbid" xml:space="preserve">
-    <value>You have no permission to do the operation.</value>
-  </data>
-  <data name="Common_Forbid_NotSelf" xml:space="preserve">
-    <value>You are not the resource owner.</value>
-  </data>
-  <data name="Common_Header_ContentLength_Missing" xml:space="preserve">
-    <value>Header Content-Length is missing or of bad format.</value>
-  </data>
-  <data name="Common_Header_ContentLength_Zero" xml:space="preserve">
-    <value>Header Content-Length must not be 0.</value>
-  </data>
-  <data name="Common_Header_ContentType_Missing" xml:space="preserve">
-    <value>Header Content-Type is missing.</value>
-  </data>
-  <data name="Common_Header_IfNonMatch_BadFormat" xml:space="preserve">
-    <value>Header If-Non-Match is of bad format.</value>
-  </data>
-  <data name="Common_InvalidModel" xml:space="preserve">
-    <value>Model is of bad format.</value>
-  </data>
-  <data name="Common_UnknownEndpoint" xml:space="preserve">
-    <value>The api endpoint you request is unknown. You might get the wrong api entry.</value>
-  </data>
-  <data name="TimelineController_ContentUnknownType" xml:space="preserve">
-    <value>Unknown type of post content.</value>
-  </data>
-  <data name="TimelineController_ImageContentDataNotBase64" xml:space="preserve">
-    <value>Data field is not a valid base64 string in image content.</value>
-  </data>
-  <data name="TimelineController_ImageContentDataNotImage" xml:space="preserve">
-    <value>Data field is not a valid image after base64 decoding in image content.</value>
-  </data>
-  <data name="TimelineController_ImageContentDataRequired" xml:space="preserve">
-    <value>Data field is required for image content.</value>
-  </data>
-  <data name="TimelineController_MemberPut_NotExist" xml:space="preserve">
-    <value>The user to set as member does not exist.</value>
-  </data>
-  <data name="TimelineController_NameConflict" xml:space="preserve">
-    <value>A timeline with given name already exists.</value>
-  </data>
-  <data name="TimelineController_NotExist" xml:space="preserve">
-    <value>The timeline with given name does not exist.</value>
-  </data>
-  <data name="TimelineController_PostNoData" xml:space="preserve">
-    <value>The post of that type has no data.</value>
-  </data>
-  <data name="TimelineController_PostNotExist" xml:space="preserve">
-    <value>The post to operate on does not exist.</value>
-  </data>
-  <data name="TimelineController_QueryRelateNotExist" xml:space="preserve">
-    <value>The user specified by query param "relate" does not exist.</value>
-  </data>
-  <data name="TimelineController_QueryVisibilityUnknown" xml:space="preserve">
-    <value>'{0}' is an unkown visibility in the query parameter 'visibility'. </value>
-  </data>
-  <data name="TimelineController_TextContentTextRequired" xml:space="preserve">
-    <value>Text field is required for text content.</value>
-  </data>
-  <data name="TokenController_Create_BadCredential" xml:space="preserve">
-    <value>Username or password is invalid.</value>
-  </data>
-  <data name="TokenController_Verify_BadFormat" xml:space="preserve">
-    <value>The token is of bad format. It might not be created by the server.</value>
-  </data>
-  <data name="TokenController_Verify_OldVersion" xml:space="preserve">
-    <value>Token has an old version. User might have update some info.</value>
-  </data>
-  <data name="TokenController_Verify_TimeExpired" xml:space="preserve">
-    <value>The token is expired.</value>
-  </data>
-  <data name="TokenController_Verify_UserNotExist" xml:space="preserve">
-    <value>User does not exist. Administrator might have deleted this user.</value>
-  </data>
-  <data name="UserAvatar_BadFormat_BadSize" xml:space="preserve">
-    <value>Image is not a square.</value>
-  </data>
-  <data name="UserAvatar_BadFormat_CantDecode" xml:space="preserve">
-    <value>Image decode failed.</value>
-  </data>
-  <data name="UserAvatar_BadFormat_UnmatchedFormat" xml:space="preserve">
-    <value>Image format does not match the one in header.</value>
-  </data>
-  <data name="UserCommon_NotExist" xml:space="preserve">
-    <value>The user to operate on does not exist.</value>
-  </data>
-  <data name="UserController_ChangePassword_BadOldPassword" xml:space="preserve">
-    <value>Old password is wrong.</value>
-  </data>
-  <data name="UserController_Patch_Forbid_Administrator" xml:space="preserve">
-    <value>You can't set permission unless you are administrator.</value>
-  </data>
-  <data name="UserController_Patch_Forbid_Password" xml:space="preserve">
-    <value>You can't set password unless you are administrator. If you want to change password, use /userop/changepassword .</value>
-  </data>
-  <data name="UserController_Patch_Forbid_Username" xml:space="preserve">
-    <value>You can't set username unless you are administrator.</value>
-  </data>
-  <data name="UserController_UsernameConflict" xml:space="preserve">
-    <value>A user with given username already exists.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Models/Http/Common.Designer.cs b/Timeline/Resources/Models/Http/Common.Designer.cs
deleted file mode 100644
index 5165463e..00000000
--- a/Timeline/Resources/Models/Http/Common.Designer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Models.Http {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Common {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Common() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Http.Common", typeof(Common).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to An existent item is deleted..
-        /// </summary>
-        internal static string MessageDeleteDelete {
-            get {
-                return ResourceManager.GetString("MessageDeleteDelete", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The item does not exist, so nothing is changed..
-        /// </summary>
-        internal static string MessageDeleteNotExist {
-            get {
-                return ResourceManager.GetString("MessageDeleteNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A new item is created..
-        /// </summary>
-        internal static string MessagePutCreate {
-            get {
-                return ResourceManager.GetString("MessagePutCreate", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to An existent item is modified..
-        /// </summary>
-        internal static string MessagePutModify {
-            get {
-                return ResourceManager.GetString("MessagePutModify", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Models/Http/Common.resx b/Timeline/Resources/Models/Http/Common.resx
deleted file mode 100644
index 85ec4d32..00000000
--- a/Timeline/Resources/Models/Http/Common.resx
+++ /dev/null
@@ -1,132 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="MessageDeleteDelete" xml:space="preserve">
-    <value>An existent item is deleted.</value>
-  </data>
-  <data name="MessageDeleteNotExist" xml:space="preserve">
-    <value>The item does not exist, so nothing is changed.</value>
-  </data>
-  <data name="MessagePutCreate" xml:space="preserve">
-    <value>A new item is created.</value>
-  </data>
-  <data name="MessagePutModify" xml:space="preserve">
-    <value>An existent item is modified.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Models/Http/Exception.Designer.cs b/Timeline/Resources/Models/Http/Exception.Designer.cs
deleted file mode 100644
index 19f42793..00000000
--- a/Timeline/Resources/Models/Http/Exception.Designer.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Models.Http {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Exception {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Exception() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Http.Exception", typeof(Exception).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to No action context currently, can&apos;t fill urls in value resolver..
-        /// </summary>
-        internal static string ActionContextNull {
-            get {
-                return ResourceManager.GetString("ActionContextNull", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown post content type..
-        /// </summary>
-        internal static string UnknownPostContentType {
-            get {
-                return ResourceManager.GetString("UnknownPostContentType", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Models/Http/Exception.resx b/Timeline/Resources/Models/Http/Exception.resx
deleted file mode 100644
index 3f7bddb6..00000000
--- a/Timeline/Resources/Models/Http/Exception.resx
+++ /dev/null
@@ -1,126 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ActionContextNull" xml:space="preserve">
-    <value>No action context currently, can't fill urls in value resolver.</value>
-  </data>
-  <data name="UnknownPostContentType" xml:space="preserve">
-    <value>Unknown post content type.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Models/Validation/NameValidator.Designer.cs b/Timeline/Resources/Models/Validation/NameValidator.Designer.cs
deleted file mode 100644
index 3050049e..00000000
--- a/Timeline/Resources/Models/Validation/NameValidator.Designer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Models.Validation {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class NameValidator {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal NameValidator() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.NameValidator", typeof(NameValidator).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to An empty string is not allowed..
-        /// </summary>
-        internal static string MessageEmptyString {
-            get {
-                return ResourceManager.GetString("MessageEmptyString", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Invalid character, only alphabet, digit, underscore and hyphen are allowed..
-        /// </summary>
-        internal static string MessageInvalidChar {
-            get {
-                return ResourceManager.GetString("MessageInvalidChar", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Too long, more than 26 characters is not premitted..
-        /// </summary>
-        internal static string MessageTooLong {
-            get {
-                return ResourceManager.GetString("MessageTooLong", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Name can&apos;t be of the same format of unique id..
-        /// </summary>
-        internal static string MessageUnqiueId {
-            get {
-                return ResourceManager.GetString("MessageUnqiueId", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Models/Validation/NameValidator.resx b/Timeline/Resources/Models/Validation/NameValidator.resx
deleted file mode 100644
index 5e7e1745..00000000
--- a/Timeline/Resources/Models/Validation/NameValidator.resx
+++ /dev/null
@@ -1,132 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="MessageEmptyString" xml:space="preserve">
-    <value>An empty string is not allowed.</value>
-  </data>
-  <data name="MessageInvalidChar" xml:space="preserve">
-    <value>Invalid character, only alphabet, digit, underscore and hyphen are allowed.</value>
-  </data>
-  <data name="MessageTooLong" xml:space="preserve">
-    <value>Too long, more than 26 characters is not premitted.</value>
-  </data>
-  <data name="MessageUnqiueId" xml:space="preserve">
-    <value>Name can't be of the same format of unique id.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs b/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
deleted file mode 100644
index 522f305a..00000000
--- a/Timeline/Resources/Models/Validation/NicknameValidator.Designer.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Models.Validation {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class NicknameValidator {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal NicknameValidator() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.NicknameValidator", typeof(NicknameValidator).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Nickname is too long..
-        /// </summary>
-        internal static string MessageTooLong {
-            get {
-                return ResourceManager.GetString("MessageTooLong", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Models/Validation/NicknameValidator.resx b/Timeline/Resources/Models/Validation/NicknameValidator.resx
deleted file mode 100644
index b191b505..00000000
--- a/Timeline/Resources/Models/Validation/NicknameValidator.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="MessageTooLong" xml:space="preserve">
-    <value>Nickname is too long.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Models/Validation/Validator.Designer.cs b/Timeline/Resources/Models/Validation/Validator.Designer.cs
deleted file mode 100644
index 74d4c169..00000000
--- a/Timeline/Resources/Models/Validation/Validator.Designer.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Models.Validation {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Validator {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Validator() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Models.Validation.Validator", typeof(Validator).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Failed to create a validator instance from default constructor. See inner exception..
-        /// </summary>
-        internal static string ValidateWithAttributeExceptionCreateFail {
-            get {
-                return ResourceManager.GetString("ValidateWithAttributeExceptionCreateFail", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Given type is not assignable to IValidator..
-        /// </summary>
-        internal static string ValidateWithAttributeExceptionNotValidator {
-            get {
-                return ResourceManager.GetString("ValidateWithAttributeExceptionNotValidator", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Value is not of type {0}..
-        /// </summary>
-        internal static string ValidatorMessageBadType {
-            get {
-                return ResourceManager.GetString("ValidatorMessageBadType", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Value can&apos;t be null..
-        /// </summary>
-        internal static string ValidatorMessageNull {
-            get {
-                return ResourceManager.GetString("ValidatorMessageNull", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Validation succeeded..
-        /// </summary>
-        internal static string ValidatorMessageSuccess {
-            get {
-                return ResourceManager.GetString("ValidatorMessageSuccess", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Models/Validation/Validator.resx b/Timeline/Resources/Models/Validation/Validator.resx
deleted file mode 100644
index 8317e3eb..00000000
--- a/Timeline/Resources/Models/Validation/Validator.resx
+++ /dev/null
@@ -1,135 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ValidateWithAttributeExceptionCreateFail" xml:space="preserve">
-    <value>Failed to create a validator instance from default constructor. See inner exception.</value>
-  </data>
-  <data name="ValidateWithAttributeExceptionNotValidator" xml:space="preserve">
-    <value>Given type is not assignable to IValidator.</value>
-  </data>
-  <data name="ValidatorMessageBadType" xml:space="preserve">
-    <value>Value is not of type {0}.</value>
-  </data>
-  <data name="ValidatorMessageNull" xml:space="preserve">
-    <value>Value can't be null.</value>
-  </data>
-  <data name="ValidatorMessageSuccess" xml:space="preserve">
-    <value>Validation succeeded.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/DataManager.Designer.cs b/Timeline/Resources/Services/DataManager.Designer.cs
deleted file mode 100644
index 0872059a..00000000
--- a/Timeline/Resources/Services/DataManager.Designer.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class DataManager {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal DataManager() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.DataManager", typeof(DataManager).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Entry with given tag does not exist..
-        /// </summary>
-        internal static string ExceptionEntryNotExist {
-            get {
-                return ResourceManager.GetString("ExceptionEntryNotExist", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/DataManager.resx b/Timeline/Resources/Services/DataManager.resx
deleted file mode 100644
index 688e0e96..00000000
--- a/Timeline/Resources/Services/DataManager.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionEntryNotExist" xml:space="preserve">
-    <value>Entry with given tag does not exist.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/Exception.Designer.cs b/Timeline/Resources/Services/Exception.Designer.cs
deleted file mode 100644
index 21ca7b86..00000000
--- a/Timeline/Resources/Services/Exception.Designer.cs
+++ /dev/null
@@ -1,234 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Exception {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Exception() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.Exception", typeof(Exception).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The password is wrong..
-        /// </summary>
-        internal static string BadPasswordException {
-            get {
-                return ResourceManager.GetString("BadPasswordException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The hashes password is of bad format. It might not be created by server..
-        /// </summary>
-        internal static string HashedPasswordBadFromatException {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Not of valid base64 format. See inner exception..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotBase64 {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotBase64", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Decoded hashed password is of length 0..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotLength0 {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotLength0", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to See inner exception..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotOthers {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotOthers", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Salt length &lt; 128 bits..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotSaltTooShort {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotSaltTooShort", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Subkey length &lt; 128 bits..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotSubkeyTooShort {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotSubkeyTooShort", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown format marker..
-        /// </summary>
-        internal static string HashedPasswordBadFromatExceptionNotUnknownMarker {
-            get {
-                return ResourceManager.GetString("HashedPasswordBadFromatExceptionNotUnknownMarker", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token didn&apos;t pass verification because {0}..
-        /// </summary>
-        internal static string JwtUserTokenBadFormatException {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to id claim is not a number.
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionIdBadFormat {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionIdBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to id claim does not exist.
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionIdMissing {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionIdMissing", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to other error, see inner exception for information.
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionOthers {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionOthers", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to unknown error.
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionUnknown {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionUnknown", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to version claim is not a number..
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionVersionBadFormat {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionVersionBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to version claim does not exist..
-        /// </summary>
-        internal static string JwtUserTokenBadFormatExceptionVersionMissing {
-            get {
-                return ResourceManager.GetString("JwtUserTokenBadFormatExceptionVersionMissing", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Password is of bad format..
-        /// </summary>
-        internal static string PasswordBadFormatException {
-            get {
-                return ResourceManager.GetString("PasswordBadFormatException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is of bad format, which means it may not be created by the server..
-        /// </summary>
-        internal static string UserTokenBadFormatException {
-            get {
-                return ResourceManager.GetString("UserTokenBadFormatException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is of bad version..
-        /// </summary>
-        internal static string UserTokenBadVersionException {
-            get {
-                return ResourceManager.GetString("UserTokenBadVersionException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The token is expired because its expiration time has passed..
-        /// </summary>
-        internal static string UserTokenTimeExpireException {
-            get {
-                return ResourceManager.GetString("UserTokenTimeExpireException", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/Exception.resx b/Timeline/Resources/Services/Exception.resx
deleted file mode 100644
index c31ed7c7..00000000
--- a/Timeline/Resources/Services/Exception.resx
+++ /dev/null
@@ -1,177 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="BadPasswordException" xml:space="preserve">
-    <value>The password is wrong.</value>
-  </data>
-  <data name="HashedPasswordBadFromatException" xml:space="preserve">
-    <value>The hashes password is of bad format. It might not be created by server.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotBase64" xml:space="preserve">
-    <value>Not of valid base64 format. See inner exception.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotLength0" xml:space="preserve">
-    <value>Decoded hashed password is of length 0.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotOthers" xml:space="preserve">
-    <value>See inner exception.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotSaltTooShort" xml:space="preserve">
-    <value>Salt length &lt; 128 bits.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotSubkeyTooShort" xml:space="preserve">
-    <value>Subkey length &lt; 128 bits.</value>
-  </data>
-  <data name="HashedPasswordBadFromatExceptionNotUnknownMarker" xml:space="preserve">
-    <value>Unknown format marker.</value>
-  </data>
-  <data name="JwtUserTokenBadFormatException" xml:space="preserve">
-    <value>The token didn't pass verification because {0}.</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionIdBadFormat" xml:space="preserve">
-    <value>id claim is not a number</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionIdMissing" xml:space="preserve">
-    <value>id claim does not exist</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionOthers" xml:space="preserve">
-    <value>other error, see inner exception for information</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionUnknown" xml:space="preserve">
-    <value>unknown error</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionVersionBadFormat" xml:space="preserve">
-    <value>version claim is not a number.</value>
-  </data>
-  <data name="JwtUserTokenBadFormatExceptionVersionMissing" xml:space="preserve">
-    <value>version claim does not exist.</value>
-  </data>
-  <data name="PasswordBadFormatException" xml:space="preserve">
-    <value>Password is of bad format.</value>
-  </data>
-  <data name="UserTokenBadFormatException" xml:space="preserve">
-    <value>The token is of bad format, which means it may not be created by the server.</value>
-  </data>
-  <data name="UserTokenBadVersionException" xml:space="preserve">
-    <value>The token is of bad version.</value>
-  </data>
-  <data name="UserTokenTimeExpireException" xml:space="preserve">
-    <value>The token is expired because its expiration time has passed.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/Exceptions.Designer.cs b/Timeline/Resources/Services/Exceptions.Designer.cs
deleted file mode 100644
index 1dbe11c9..00000000
--- a/Timeline/Resources/Services/Exceptions.Designer.cs
+++ /dev/null
@@ -1,189 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Exceptions {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Exceptions() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.Exceptions", typeof(Exceptions).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A entity of type &quot;{0}&quot; already exists..
-        /// </summary>
-        internal static string EntityAlreadyExistError {
-            get {
-                return ResourceManager.GetString("EntityAlreadyExistError", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The entity already exists..
-        /// </summary>
-        internal static string EntityAlreadyExistErrorDefault {
-            get {
-                return ResourceManager.GetString("EntityAlreadyExistErrorDefault", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The required entity of type &quot;{0}&quot; does not exist..
-        /// </summary>
-        internal static string EntityNotExistError {
-            get {
-                return ResourceManager.GetString("EntityNotExistError", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The required entity does not exist..
-        /// </summary>
-        internal static string EntityNotExistErrorDefault {
-            get {
-                return ResourceManager.GetString("EntityNotExistErrorDefault", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Image is in valid because {0}..
-        /// </summary>
-        internal static string ImageException {
-            get {
-                return ResourceManager.GetString("ImageException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to image is not of required size.
-        /// </summary>
-        internal static string ImageExceptionBadSize {
-            get {
-                return ResourceManager.GetString("ImageExceptionBadSize", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to failed to decode image, see inner exception.
-        /// </summary>
-        internal static string ImageExceptionCantDecode {
-            get {
-                return ResourceManager.GetString("ImageExceptionCantDecode", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to unknown error.
-        /// </summary>
-        internal static string ImageExceptionUnknownError {
-            get {
-                return ResourceManager.GetString("ImageExceptionUnknownError", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to image&apos;s actual mime type is not the specified one.
-        /// </summary>
-        internal static string ImageExceptionUnmatchedFormat {
-            get {
-                return ResourceManager.GetString("ImageExceptionUnmatchedFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The timeline has no data..
-        /// </summary>
-        internal static string TimelineNoDataException {
-            get {
-                return ResourceManager.GetString("TimelineNoDataException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;. If this is a personal timeline whose name starts with &apos;@&apos;, it means the user does not exist and inner exception should be a UserNotExistException..
-        /// </summary>
-        internal static string TimelineNotExistException {
-            get {
-                return ResourceManager.GetString("TimelineNotExistException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;.  Request timeline post id is &quot;{1}&quot;..
-        /// </summary>
-        internal static string TimelinePostNotExistException {
-            get {
-                return ResourceManager.GetString("TimelinePostNotExistException", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Request timeline name is &quot;{0}&quot;.  Request timeline post id is &quot;{1}&quot;. The post does not exist because it is deleted..
-        /// </summary>
-        internal static string TimelinePostNotExistExceptionDeleted {
-            get {
-                return ResourceManager.GetString("TimelinePostNotExistExceptionDeleted", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Request username is &quot;{0}&quot;. Request id is &quot;{1}&quot;..
-        /// </summary>
-        internal static string UserNotExistException {
-            get {
-                return ResourceManager.GetString("UserNotExistException", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/Exceptions.resx b/Timeline/Resources/Services/Exceptions.resx
deleted file mode 100644
index e9595caa..00000000
--- a/Timeline/Resources/Services/Exceptions.resx
+++ /dev/null
@@ -1,142 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-		Microsoft ResX Schema
-
-		Version 1.3
-
-		The primary goals of this format is to allow a simple XML format 
-		that is mostly human readable. The generation and parsing of the 
-		various data types are done through the TypeConverter classes 
-		associated with the data types.
-
-		Example:
-
-		... ado.net/XML headers & schema ...
-		<resheader name="resmimetype">text/microsoft-resx</resheader>
-		<resheader name="version">1.3</resheader>
-		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-		<data name="Name1">this is my long string</data>
-		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-			[base64 mime encoded serialized .NET Framework object]
-		</data>
-		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-			[base64 mime encoded string representing a byte array form of the .NET Framework object]
-		</data>
-
-		There are any number of "resheader" rows that contain simple 
-		name/value pairs.
-
-		Each data row contains a name, and value. The row also contains a 
-		type or mimetype. Type corresponds to a .NET class that support 
-		text/value conversion through the TypeConverter architecture. 
-		Classes that don't support this are serialized and stored with the 
-		mimetype set.
-
-		The mimetype is used for serialized objects, and tells the 
-		ResXResourceReader how to depersist the object. This is currently not 
-		extensible. For a given mimetype the value must be set accordingly:
-
-		Note - application/x-microsoft.net.object.binary.base64 is the format 
-		that the ResXResourceWriter will generate, however the reader can 
-		read any of the formats listed below.
-
-		mimetype: application/x-microsoft.net.object.binary.base64
-		value   : The object must be serialized with 
-			: System.Serialization.Formatters.Binary.BinaryFormatter
-			: and then encoded with base64 encoding.
-
-		mimetype: application/x-microsoft.net.object.soap.base64
-		value   : The object must be serialized with 
-			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-			: and then encoded with base64 encoding.
-
-		mimetype: application/x-microsoft.net.object.bytearray.base64
-		value   : The object must be serialized into a byte array 
-			: using a System.ComponentModel.TypeConverter
-			: and then encoded with base64 encoding.
-	-->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>1.3</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="EntityNotExistError" xml:space="preserve">
-    <value>The required entity of type "{0}" does not exist.</value>
-  </data>
-  <data name="EntityAlreadyExistErrorDefault" xml:space="preserve">
-    <value>The entity already exists.</value>
-  </data>
-  <data name="EntityAlreadyExistError" xml:space="preserve">
-    <value>A entity of type "{0}" already exists.</value>
-  </data>
-  <data name="EntityNotExistErrorDefault" xml:space="preserve">
-    <value>The required entity does not exist.</value>
-  </data>
-  <data name="TimelineNotExistException" xml:space="preserve">
-    <value>Request timeline name is "{0}". If this is a personal timeline whose name starts with '@', it means the user does not exist and inner exception should be a UserNotExistException.</value>
-  </data>
-  <data name="TimelinePostNotExistException" xml:space="preserve">
-    <value>Request timeline name is "{0}".  Request timeline post id is "{1}".</value>
-  </data>
-  <data name="UserNotExistException" xml:space="preserve">
-    <value>Request username is "{0}". Request id is "{1}".</value>
-  </data>
-  <data name="TimelineNoDataException" xml:space="preserve">
-    <value>The timeline has no data.</value>
-  </data>
-  <data name="ImageException" xml:space="preserve">
-    <value>Image is in valid because {0}.</value>
-  </data>
-  <data name="ImageExceptionBadSize" xml:space="preserve">
-    <value>image is not of required size</value>
-  </data>
-  <data name="ImageExceptionCantDecode" xml:space="preserve">
-    <value>failed to decode image, see inner exception</value>
-  </data>
-  <data name="ImageExceptionUnknownError" xml:space="preserve">
-    <value>unknown error</value>
-  </data>
-  <data name="ImageExceptionUnmatchedFormat" xml:space="preserve">
-    <value>image's actual mime type is not the specified one</value>
-  </data>
-  <data name="TimelinePostNotExistExceptionDeleted" xml:space="preserve">
-    <value>Request timeline name is "{0}".  Request timeline post id is "{1}". The post does not exist because it is deleted.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/TimelineService.Designer.cs b/Timeline/Resources/Services/TimelineService.Designer.cs
deleted file mode 100644
index e16c1337..00000000
--- a/Timeline/Resources/Services/TimelineService.Designer.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class TimelineService {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal TimelineService() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.TimelineService", typeof(TimelineService).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The number {0} username is invalid..
-        /// </summary>
-        internal static string ExceptionChangeMemberUsernameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionChangeMemberUsernameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Unknown post content type &quot;{0}&quot; is saved in database..
-        /// </summary>
-        internal static string ExceptionDatabaseUnknownContentType {
-            get {
-                return ResourceManager.GetString("ExceptionDatabaseUnknownContentType", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The owner username of personal timeline is of bad format..
-        /// </summary>
-        internal static string ExceptionFindTimelineUsernameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionFindTimelineUsernameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The data entry of the tag of the image post does not exist..
-        /// </summary>
-        internal static string ExceptionGetDataDataEntryNotExist {
-            get {
-                return ResourceManager.GetString("ExceptionGetDataDataEntryNotExist", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Can&apos;t get data of a non-image post..
-        /// </summary>
-        internal static string ExceptionGetDataNonImagePost {
-            get {
-                return ResourceManager.GetString("ExceptionGetDataNonImagePost", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The post has been deleted because content of entity is null..
-        /// </summary>
-        internal static string ExceptionPostDeleted {
-            get {
-                return ResourceManager.GetString("ExceptionPostDeleted", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The timeline name is of bad format..
-        /// </summary>
-        internal static string ExceptionTimelineNameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionTimelineNameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The timeline with given name already exists..
-        /// </summary>
-        internal static string ExceptionTimelineNameConflict {
-            get {
-                return ResourceManager.GetString("ExceptionTimelineNameConflict", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Image format type of the post does not exist in column &quot;extra_content&quot;. Normally this couldn&apos;t be possible because it should be saved when post was created. However, we now re-detect the format and save it..
-        /// </summary>
-        internal static string LogGetDataNoFormat {
-            get {
-                return ResourceManager.GetString("LogGetDataNoFormat", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/TimelineService.resx b/Timeline/Resources/Services/TimelineService.resx
deleted file mode 100644
index 9314f51b..00000000
--- a/Timeline/Resources/Services/TimelineService.resx
+++ /dev/null
@@ -1,147 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionChangeMemberUsernameBadFormat" xml:space="preserve">
-    <value>The number {0} username is invalid.</value>
-  </data>
-  <data name="ExceptionDatabaseUnknownContentType" xml:space="preserve">
-    <value>Unknown post content type "{0}" is saved in database.</value>
-  </data>
-  <data name="ExceptionFindTimelineUsernameBadFormat" xml:space="preserve">
-    <value>The owner username of personal timeline is of bad format.</value>
-  </data>
-  <data name="ExceptionGetDataDataEntryNotExist" xml:space="preserve">
-    <value>The data entry of the tag of the image post does not exist.</value>
-  </data>
-  <data name="ExceptionGetDataNonImagePost" xml:space="preserve">
-    <value>Can't get data of a non-image post.</value>
-  </data>
-  <data name="ExceptionTimelineNameBadFormat" xml:space="preserve">
-    <value>The timeline name is of bad format.</value>
-  </data>
-  <data name="ExceptionTimelineNameConflict" xml:space="preserve">
-    <value>The timeline with given name already exists.</value>
-  </data>
-  <data name="LogGetDataNoFormat" xml:space="preserve">
-    <value>Image format type of the post does not exist in column "extra_content". Normally this couldn't be possible because it should be saved when post was created. However, we now re-detect the format and save it.</value>
-  </data>
-  <data name="ExceptionPostDeleted" xml:space="preserve">
-    <value>The post has been deleted because content of entity is null.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/UserAvatarService.Designer.cs b/Timeline/Resources/Services/UserAvatarService.Designer.cs
deleted file mode 100644
index c72d4215..00000000
--- a/Timeline/Resources/Services/UserAvatarService.Designer.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class UserAvatarService {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal UserAvatarService() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserAvatarService", typeof(UserAvatarService).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Data of avatar is null..
-        /// </summary>
-        internal static string ExceptionAvatarDataNull {
-            get {
-                return ResourceManager.GetString("ExceptionAvatarDataNull", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Type of avatar is null or empty..
-        /// </summary>
-        internal static string ExceptionAvatarTypeNullOrEmpty {
-            get {
-                return ResourceManager.GetString("ExceptionAvatarTypeNullOrEmpty", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Database corupted! One of type and data of a avatar is null but the other is not..
-        /// </summary>
-        internal static string ExceptionDatabaseCorruptedDataAndTypeNotSame {
-            get {
-                return ResourceManager.GetString("ExceptionDatabaseCorruptedDataAndTypeNotSame", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Created an entry in user_avatars..
-        /// </summary>
-        internal static string LogCreateEntity {
-            get {
-                return ResourceManager.GetString("LogCreateEntity", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Updated an entry in user_avatars..
-        /// </summary>
-        internal static string LogUpdateEntity {
-            get {
-                return ResourceManager.GetString("LogUpdateEntity", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/UserAvatarService.resx b/Timeline/Resources/Services/UserAvatarService.resx
deleted file mode 100644
index da9d7203..00000000
--- a/Timeline/Resources/Services/UserAvatarService.resx
+++ /dev/null
@@ -1,135 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionAvatarDataNull" xml:space="preserve">
-    <value>Data of avatar is null.</value>
-  </data>
-  <data name="ExceptionAvatarTypeNullOrEmpty" xml:space="preserve">
-    <value>Type of avatar is null or empty.</value>
-  </data>
-  <data name="ExceptionDatabaseCorruptedDataAndTypeNotSame" xml:space="preserve">
-    <value>Database corupted! One of type and data of a avatar is null but the other is not.</value>
-  </data>
-  <data name="LogCreateEntity" xml:space="preserve">
-    <value>Created an entry in user_avatars.</value>
-  </data>
-  <data name="LogUpdateEntity" xml:space="preserve">
-    <value>Updated an entry in user_avatars.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/UserService.Designer.cs b/Timeline/Resources/Services/UserService.Designer.cs
deleted file mode 100644
index cdf7f390..00000000
--- a/Timeline/Resources/Services/UserService.Designer.cs
+++ /dev/null
@@ -1,162 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class UserService {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal UserService() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserService", typeof(UserService).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to New username is of bad format..
-        /// </summary>
-        internal static string ExceptionNewUsernameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionNewUsernameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Nickname is of bad format, because {}..
-        /// </summary>
-        internal static string ExceptionNicknameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionNicknameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Old username is of bad format..
-        /// </summary>
-        internal static string ExceptionOldUsernameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionOldUsernameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Password can&apos;t be empty..
-        /// </summary>
-        internal static string ExceptionPasswordEmpty {
-            get {
-                return ResourceManager.GetString("ExceptionPasswordEmpty", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Password can&apos;t be null..
-        /// </summary>
-        internal static string ExceptionPasswordNull {
-            get {
-                return ResourceManager.GetString("ExceptionPasswordNull", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Username is of bad format, because {}..
-        /// </summary>
-        internal static string ExceptionUsernameBadFormat {
-            get {
-                return ResourceManager.GetString("ExceptionUsernameBadFormat", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user with given username already exists..
-        /// </summary>
-        internal static string ExceptionUsernameConflict {
-            get {
-                return ResourceManager.GetString("ExceptionUsernameConflict", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Username can&apos;t be null..
-        /// </summary>
-        internal static string ExceptionUsernameNull {
-            get {
-                return ResourceManager.GetString("ExceptionUsernameNull", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A new user entry is added to the database..
-        /// </summary>
-        internal static string LogDatabaseCreate {
-            get {
-                return ResourceManager.GetString("LogDatabaseCreate", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user entry is removed from the database..
-        /// </summary>
-        internal static string LogDatabaseRemove {
-            get {
-                return ResourceManager.GetString("LogDatabaseRemove", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A user entry is updated to the database..
-        /// </summary>
-        internal static string LogDatabaseUpdate {
-            get {
-                return ResourceManager.GetString("LogDatabaseUpdate", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/UserService.resx b/Timeline/Resources/Services/UserService.resx
deleted file mode 100644
index 09bd4abb..00000000
--- a/Timeline/Resources/Services/UserService.resx
+++ /dev/null
@@ -1,153 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="ExceptionNewUsernameBadFormat" xml:space="preserve">
-    <value>New username is of bad format.</value>
-  </data>
-  <data name="ExceptionNicknameBadFormat" xml:space="preserve">
-    <value>Nickname is of bad format, because {}.</value>
-  </data>
-  <data name="ExceptionOldUsernameBadFormat" xml:space="preserve">
-    <value>Old username is of bad format.</value>
-  </data>
-  <data name="ExceptionPasswordEmpty" xml:space="preserve">
-    <value>Password can't be empty.</value>
-  </data>
-  <data name="ExceptionPasswordNull" xml:space="preserve">
-    <value>Password can't be null.</value>
-  </data>
-  <data name="ExceptionUsernameBadFormat" xml:space="preserve">
-    <value>Username is of bad format, because {}.</value>
-  </data>
-  <data name="ExceptionUsernameConflict" xml:space="preserve">
-    <value>A user with given username already exists.</value>
-  </data>
-  <data name="ExceptionUsernameNull" xml:space="preserve">
-    <value>Username can't be null.</value>
-  </data>
-  <data name="LogDatabaseCreate" xml:space="preserve">
-    <value>A new user entry is added to the database.</value>
-  </data>
-  <data name="LogDatabaseRemove" xml:space="preserve">
-    <value>A user entry is removed from the database.</value>
-  </data>
-  <data name="LogDatabaseUpdate" xml:space="preserve">
-    <value>A user entry is updated to the database.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Resources/Services/UserTokenService.Designer.cs b/Timeline/Resources/Services/UserTokenService.Designer.cs
deleted file mode 100644
index 3c3c7e41..00000000
--- a/Timeline/Resources/Services/UserTokenService.Designer.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace Timeline.Resources.Services {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class UserTokenService {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal UserTokenService() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Timeline.Resources.Services.UserTokenService", typeof(UserTokenService).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Jwt token key is not set in database. Maybe you forget to migrate the database..
-        /// </summary>
-        internal static string JwtKeyNotExist {
-            get {
-                return ResourceManager.GetString("JwtKeyNotExist", resourceCulture);
-            }
-        }
-    }
-}
diff --git a/Timeline/Resources/Services/UserTokenService.resx b/Timeline/Resources/Services/UserTokenService.resx
deleted file mode 100644
index 1ce78427..00000000
--- a/Timeline/Resources/Services/UserTokenService.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="JwtKeyNotExist" xml:space="preserve">
-    <value>Jwt token key is not set in database. Maybe you forget to migrate the database.</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/Timeline/Routes/ApiRoutePrefixConvention.cs b/Timeline/Routes/ApiRoutePrefixConvention.cs
deleted file mode 100644
index ca38a0d9..00000000
--- a/Timeline/Routes/ApiRoutePrefixConvention.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.ApplicationModels;
-using Microsoft.AspNetCore.Mvc.Infrastructure;
-using Microsoft.AspNetCore.Mvc.Routing;
-using System.Linq;
-
-namespace Timeline.Routes
-{
-    public static class MvcOptionsExtensions
-    {
-        public static void UseApiRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
-        {
-            opts.Conventions.Add(new ApiRoutePrefixConvention(routeAttribute));
-        }
-
-        public static void UseApiRoutePrefix(this MvcOptions opts, string prefix)
-        {
-            opts.UseApiRoutePrefix(new RouteAttribute(prefix));
-        }
-    }
-
-    public class ApiRoutePrefixConvention : IApplicationModelConvention
-    {
-        private readonly AttributeRouteModel _routePrefix;
-
-        public ApiRoutePrefixConvention(IRouteTemplateProvider route)
-        {
-            _routePrefix = new AttributeRouteModel(route);
-        }
-
-        public void Apply(ApplicationModel application)
-        {
-            foreach (var selector in application.Controllers.Where(c => c.Filters.Any(f => f is IApiBehaviorMetadata)).SelectMany(c => c.Selectors))
-            {
-                if (selector.AttributeRouteModel != null)
-                {
-                    selector.AttributeRouteModel = AttributeRouteModel.CombineAttributeRouteModel(_routePrefix, selector.AttributeRouteModel);
-                }
-                else
-                {
-                    selector.AttributeRouteModel = _routePrefix;
-                }
-            }
-        }
-    }
-}
diff --git a/Timeline/Routes/UnknownEndpointMiddleware.cs b/Timeline/Routes/UnknownEndpointMiddleware.cs
deleted file mode 100644
index 25ec563c..00000000
--- a/Timeline/Routes/UnknownEndpointMiddleware.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-﻿using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Http;
-using System;
-using System.Net.Mime;
-using System.Text.Json;
-using Timeline.Models.Http;
-
-namespace Timeline.Routes
-{
-    public static class UnknownEndpointMiddleware
-    {
-        public static void Attach(IApplicationBuilder app)
-        {
-            app.Use(async (context, next) =>
-            {
-                if (context.GetEndpoint() != null)
-                {
-                    await next();
-                    return;
-                }
-
-                if (context.Request.Path.StartsWithSegments("/api", StringComparison.OrdinalIgnoreCase))
-                {
-                    context.Response.StatusCode = StatusCodes.Status400BadRequest;
-                    context.Response.ContentType = MediaTypeNames.Application.Json;
-
-                    var body = JsonSerializer.SerializeToUtf8Bytes(ErrorResponse.Common.UnknownEndpoint(), new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });
-
-                    context.Response.ContentLength = body.Length;
-                    await context.Response.Body.WriteAsync(body);
-                    await context.Response.CompleteAsync();
-                    return;
-                }
-
-                await next();
-            });
-        }
-    }
-}
diff --git a/Timeline/Services/BadPasswordException.cs b/Timeline/Services/BadPasswordException.cs
deleted file mode 100644
index f609371d..00000000
--- a/Timeline/Services/BadPasswordException.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-﻿using System;
-using Timeline.Helpers;
-
-namespace Timeline.Services
-{
-    [Serializable]
-    public class BadPasswordException : Exception
-    {
-        public BadPasswordException() : base(Resources.Services.Exception.BadPasswordException) { }
-        public BadPasswordException(string message, Exception inner) : base(message, inner) { }
-
-        public BadPasswordException(string badPassword)
-            : base(Log.Format(Resources.Services.Exception.BadPasswordException, ("Bad Password", badPassword)))
-        {
-            Password = badPassword;
-        }
-
-        protected BadPasswordException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        /// <summary>
-        /// The wrong password.
-        /// </summary>
-        public string? Password { get; set; }
-    }
-}
diff --git a/Timeline/Services/Clock.cs b/Timeline/Services/Clock.cs
deleted file mode 100644
index 4395edcd..00000000
--- a/Timeline/Services/Clock.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-
-namespace Timeline.Services
-{
-    /// <summary>
-    /// Convenient for unit test.
-    /// </summary>
-    public interface IClock
-    {
-        /// <summary>
-        /// Get current time.
-        /// </summary>
-        /// <returns>Current time.</returns>
-        DateTime GetCurrentTime();
-    }
-
-    public class Clock : IClock
-    {
-        public Clock()
-        {
-
-        }
-
-        public DateTime GetCurrentTime()
-        {
-            return DateTime.UtcNow;
-        }
-    }
-}
diff --git a/Timeline/Services/DataManager.cs b/Timeline/Services/DataManager.cs
deleted file mode 100644
index d447b0d5..00000000
--- a/Timeline/Services/DataManager.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore;
-using System;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Entities;
-
-namespace Timeline.Services
-{
-    /// <summary>
-    /// A data manager controlling data.
-    /// </summary>
-    /// <remarks>
-    /// Identical data will be saved as one copy and return the same tag.
-    /// Every data has a ref count. When data is retained, ref count increase.
-    /// When data is freed, ref count decease. If ref count is decreased
-    /// to 0, the data entry will be destroyed and no longer occupy space.
-    /// </remarks>
-    public interface IDataManager
-    {
-        /// <summary>
-        /// Saves the data to a new entry if it does not exist, 
-        /// increases its ref count and returns a tag to the entry.
-        /// </summary>
-        /// <param name="data">The data. Can't be null.</param>
-        /// <returns>The tag of the created entry.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="data"/> is null.</exception>
-        public Task<string> RetainEntry(byte[] data);
-
-        /// <summary>
-        /// Decrease the the ref count of the entry.
-        /// Remove it if ref count is zero.
-        /// </summary>
-        /// <param name="tag">The tag of the entry.</param>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tag"/> is null.</exception>
-        /// <remarks>
-        /// It's no-op if entry with tag does not exist.
-        /// </remarks>
-        public Task FreeEntry(string tag);
-
-        /// <summary>
-        /// Retrieve the entry with given tag.
-        /// </summary>
-        /// <param name="tag">The tag of the entry.</param>
-        /// <returns>The data of the entry.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tag"/> is null.</exception>
-        /// <exception cref="InvalidOperationException">Thrown when entry with given tag does not exist.</exception>
-        public Task<byte[]> GetEntry(string tag);
-    }
-
-    public class DataManager : IDataManager
-    {
-        private readonly DatabaseContext _database;
-        private readonly IETagGenerator _eTagGenerator;
-
-        public DataManager(DatabaseContext database, IETagGenerator eTagGenerator)
-        {
-            _database = database;
-            _eTagGenerator = eTagGenerator;
-        }
-
-        public async Task<string> RetainEntry(byte[] data)
-        {
-            if (data == null)
-                throw new ArgumentNullException(nameof(data));
-
-            var tag = await _eTagGenerator.Generate(data);
-
-            var entity = await _database.Data.Where(d => d.Tag == tag).SingleOrDefaultAsync();
-
-            if (entity == null)
-            {
-                entity = new DataEntity
-                {
-                    Tag = tag,
-                    Data = data,
-                    Ref = 1
-                };
-                _database.Data.Add(entity);
-            }
-            else
-            {
-                entity.Ref += 1;
-            }
-            await _database.SaveChangesAsync();
-            return tag;
-        }
-
-        public async Task FreeEntry(string tag)
-        {
-            if (tag == null)
-                throw new ArgumentNullException(nameof(tag));
-
-            var entity = await _database.Data.Where(d => d.Tag == tag).SingleOrDefaultAsync();
-
-            if (entity != null)
-            {
-                if (entity.Ref == 1)
-                {
-                    _database.Data.Remove(entity);
-                }
-                else
-                {
-                    entity.Ref -= 1;
-                }
-                await _database.SaveChangesAsync();
-            }
-        }
-
-        public async Task<byte[]> GetEntry(string tag)
-        {
-            if (tag == null)
-                throw new ArgumentNullException(nameof(tag));
-
-            var entity = await _database.Data.Where(d => d.Tag == tag).Select(d => new { d.Data }).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new InvalidOperationException(Resources.Services.DataManager.ExceptionEntryNotExist);
-
-            return entity.Data;
-        }
-    }
-}
diff --git a/Timeline/Services/DatabaseBackupService.cs b/Timeline/Services/DatabaseBackupService.cs
deleted file mode 100644
index a76b2a0d..00000000
--- a/Timeline/Services/DatabaseBackupService.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-﻿using System.Globalization;
-using System.IO;
-
-namespace Timeline.Services
-{
-    public interface IDatabaseBackupService
-    {
-        void BackupNow();
-    }
-
-    public class DatabaseBackupService : IDatabaseBackupService
-    {
-        private readonly IPathProvider _pathProvider;
-        private readonly IClock _clock;
-
-        public DatabaseBackupService(IPathProvider pathProvider, IClock clock)
-        {
-            _pathProvider = pathProvider;
-            _clock = clock;
-        }
-
-        public void BackupNow()
-        {
-            var databasePath = _pathProvider.GetDatabaseFilePath();
-            if (File.Exists(databasePath))
-            {
-                var backupDirPath = _pathProvider.GetDatabaseBackupDirectory();
-                Directory.CreateDirectory(backupDirPath);
-                var fileName = _clock.GetCurrentTime().ToString("yyyy-MM-ddTHH-mm-ss", CultureInfo.InvariantCulture);
-                var path = Path.Combine(backupDirPath, fileName);
-                File.Copy(databasePath, path);
-            }
-        }
-    }
-}
diff --git a/Timeline/Services/DatabaseCorruptedException.cs b/Timeline/Services/DatabaseCorruptedException.cs
deleted file mode 100644
index 9988e0ad..00000000
--- a/Timeline/Services/DatabaseCorruptedException.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-﻿using System;
-
-namespace Timeline.Services
-{
-    [Serializable]
-    public class DatabaseCorruptedException : Exception
-    {
-        public DatabaseCorruptedException() { }
-        public DatabaseCorruptedException(string message) : base(message) { }
-        public DatabaseCorruptedException(string message, Exception inner) : base(message, inner) { }
-        protected DatabaseCorruptedException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-    }
-}
diff --git a/Timeline/Services/ETagGenerator.cs b/Timeline/Services/ETagGenerator.cs
deleted file mode 100644
index 4493e903..00000000
--- a/Timeline/Services/ETagGenerator.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-﻿using System;
-using System.Security.Cryptography;
-using System.Threading.Tasks;
-
-namespace Timeline.Services
-{
-    public interface IETagGenerator
-    {
-        /// <summary>
-        /// Generate a etag for given source.
-        /// </summary>
-        /// <param name="source">The source data.</param>
-        /// <returns>The generated etag.</returns>
-        /// <exception cref="ArgumentNullException">Thrown if <paramref name="source"/> is null.</exception>
-        Task<string> Generate(byte[] source);
-    }
-
-    public sealed class ETagGenerator : IETagGenerator, IDisposable
-    {
-        private readonly SHA1 _sha1;
-
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Security", "CA5350:Do Not Use Weak Cryptographic Algorithms", Justification = "Sha1 is enough ??? I don't know.")]
-        public ETagGenerator()
-        {
-            _sha1 = SHA1.Create();
-        }
-
-        public Task<string> Generate(byte[] source)
-        {
-            if (source == null)
-                throw new ArgumentNullException(nameof(source));
-
-            return Task.Run(() => Convert.ToBase64String(_sha1.ComputeHash(source)));
-        }
-
-        private bool _disposed; // To detect redundant calls
-
-        public void Dispose()
-        {
-            if (_disposed) return;
-            _sha1.Dispose();
-            _disposed = true;
-        }
-    }
-}
diff --git a/Timeline/Services/EntityNames.cs b/Timeline/Services/EntityNames.cs
deleted file mode 100644
index 0ce1de3b..00000000
--- a/Timeline/Services/EntityNames.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace Timeline.Services
-{
-    public static class EntityNames
-    {
-        public const string User = "User";
-        public const string Timeline = "Timeline";
-        public const string TimelinePost = "TimelinePost";
-    }
-}
diff --git a/Timeline/Services/Exceptions/EntityAlreadyExistError.cs b/Timeline/Services/Exceptions/EntityAlreadyExistError.cs
deleted file mode 100644
index 7db2e860..00000000
--- a/Timeline/Services/Exceptions/EntityAlreadyExistError.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-﻿using System;
-using System.Globalization;
-using System.Text;
-
-namespace Timeline.Services.Exceptions
-{
-    /// <summary>
-    /// Thrown when an entity is already exists.
-    /// </summary>
-    /// <remarks>
-    /// For example, want to create a timeline but a timeline with the same name already exists.
-    /// </remarks>
-    [Serializable]
-    public class EntityAlreadyExistException : Exception
-    {
-        private readonly string? _entityName;
-
-        public EntityAlreadyExistException() : this(null, null, null, null) { }
-
-        public EntityAlreadyExistException(string? entityName) : this(entityName, null) { }
-
-        public EntityAlreadyExistException(string? entityName, Exception? inner) : this(entityName, null, null, null, inner) { }
-
-        public EntityAlreadyExistException(string? entityName, object? entity = null) : this(entityName, null, entity, null, null) { }
-        public EntityAlreadyExistException(Type? entityType, object? entity = null) : this(null, entityType, entity, null, null) { }
-        public EntityAlreadyExistException(string? entityName, Type? entityType, object? entity = null, string? message = null, Exception? inner = null) : base(MakeMessage(entityName, entityType, message), inner)
-        {
-            _entityName = entityName;
-            EntityType = entityType;
-            Entity = entity;
-        }
-
-        private static string MakeMessage(string? entityName, Type? entityType, string? message)
-        {
-            string? name = entityName ?? (entityType?.Name);
-
-            var result = new StringBuilder();
-
-            if (name == null)
-                result.Append(Resources.Services.Exceptions.EntityAlreadyExistErrorDefault);
-            else
-                result.AppendFormat(CultureInfo.InvariantCulture, Resources.Services.Exceptions.EntityAlreadyExistError, name);
-
-            if (message != null)
-            {
-                result.Append(' ');
-                result.Append(message);
-            }
-
-            return result.ToString();
-        }
-
-        protected EntityAlreadyExistException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string? EntityName => _entityName ?? (EntityType?.Name);
-
-        public Type? EntityType { get; }
-
-        public object? Entity { get; }
-    }
-}
diff --git a/Timeline/Services/Exceptions/EntityNotExistError.cs b/Timeline/Services/Exceptions/EntityNotExistError.cs
deleted file mode 100644
index e79496d3..00000000
--- a/Timeline/Services/Exceptions/EntityNotExistError.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-﻿using System;
-using System.Globalization;
-using System.Text;
-
-namespace Timeline.Services.Exceptions
-{
-    /// <summary>
-    /// Thrown when you want to get an entity that does not exist.
-    /// </summary>
-    /// <example>
-    /// For example, you want to get a timeline with given name but it does not exist.
-    /// </example>
-    [Serializable]
-    public class EntityNotExistException : Exception
-    {
-        public EntityNotExistException() : this(null, null, null, null) { }
-        public EntityNotExistException(string? entityName) : this(entityName, null, null, null) { }
-        public EntityNotExistException(Type? entityType) : this(null, entityType, null, null) { }
-        public EntityNotExistException(string? entityName, Exception? inner) : this(entityName, null, null, inner) { }
-        public EntityNotExistException(Type? entityType, Exception? inner) : this(null, entityType, null, inner) { }
-        public EntityNotExistException(string? entityName, Type? entityType, string? message = null, Exception? inner = null) : base(MakeMessage(entityName, entityType, message), inner)
-        {
-            EntityName = entityName;
-            EntityType = entityType;
-        }
-
-        private static string MakeMessage(string? entityName, Type? entityType, string? message)
-        {
-            string? name = entityName ?? (entityType?.Name);
-
-            var result = new StringBuilder();
-
-            if (name == null)
-                result.Append(Resources.Services.Exceptions.EntityNotExistErrorDefault);
-            else
-                result.AppendFormat(CultureInfo.InvariantCulture, Resources.Services.Exceptions.EntityNotExistError, name);
-
-            if (message != null)
-            {
-                result.Append(' ');
-                result.Append(message);
-            }
-
-            return result.ToString();
-        }
-
-        protected EntityNotExistException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string? EntityName { get; }
-
-        public Type? EntityType { get; }
-    }
-}
diff --git a/Timeline/Services/Exceptions/ExceptionMessageHelper.cs b/Timeline/Services/Exceptions/ExceptionMessageHelper.cs
deleted file mode 100644
index be3c42a4..00000000
--- a/Timeline/Services/Exceptions/ExceptionMessageHelper.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-﻿namespace Timeline.Services.Exceptions
-{
-    public static class ExceptionMessageHelper
-    {
-        public static string AppendAdditionalMessage(this string origin, string? message)
-        {
-            if (message == null)
-                return origin;
-            else
-                return origin + " " + message;
-        }
-    }
-}
diff --git a/Timeline/Services/Exceptions/ImageException.cs b/Timeline/Services/Exceptions/ImageException.cs
deleted file mode 100644
index 20dd48ae..00000000
--- a/Timeline/Services/Exceptions/ImageException.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-﻿using System;
-using System.Globalization;
-
-namespace Timeline.Services.Exceptions
-{
-    [Serializable]
-    public class ImageException : Exception
-    {
-        public enum ErrorReason
-        {
-            /// <summary>
-            /// Decoding image failed.
-            /// </summary>
-            CantDecode,
-            /// <summary>
-            /// Decoding succeeded but the real type is not the specified type.
-            /// </summary>
-            UnmatchedFormat,
-            /// <summary>
-            /// Image is not of required size.
-            /// </summary>
-            NotSquare,
-            /// <summary>
-            /// Other unknown errer.
-            /// </summary>
-            Unknown
-        }
-
-        public ImageException() : this(null) { }
-        public ImageException(string? message) : this(message, null) { }
-        public ImageException(string? message, Exception? inner) : this(ErrorReason.Unknown, null, null, null, message, inner) { }
-
-        public ImageException(ErrorReason error, byte[]? data, string? requestType = null, string? realType = null, string? message = null, Exception? inner = null) : base(MakeMessage(error).AppendAdditionalMessage(message), inner) { Error = error; ImageData = data; RequestType = requestType; RealType = realType; }
-
-        protected ImageException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        private static string MakeMessage(ErrorReason? reason) =>
-            string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.ImageException, reason switch
-            {
-                ErrorReason.CantDecode => Resources.Services.Exceptions.ImageExceptionCantDecode,
-                ErrorReason.UnmatchedFormat => Resources.Services.Exceptions.ImageExceptionUnmatchedFormat,
-                ErrorReason.NotSquare => Resources.Services.Exceptions.ImageExceptionBadSize,
-                _ => Resources.Services.Exceptions.ImageExceptionUnknownError
-            });
-
-        public ErrorReason Error { get; }
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[]? ImageData { get; }
-#pragma warning restore CA1819 // Properties should not return arrays
-        public string? RequestType { get; }
-
-        // This field will be null if decoding failed.
-        public string? RealType { get; }
-    }
-}
diff --git a/Timeline/Services/Exceptions/TimelineNotExistException.cs b/Timeline/Services/Exceptions/TimelineNotExistException.cs
deleted file mode 100644
index 70970b24..00000000
--- a/Timeline/Services/Exceptions/TimelineNotExistException.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-﻿using System;
-using System.Globalization;
-
-namespace Timeline.Services.Exceptions
-{
-    [Serializable]
-    public class TimelineNotExistException : EntityNotExistException
-    {
-        public TimelineNotExistException() : this(null, null) { }
-        public TimelineNotExistException(string? timelineName) : this(timelineName, null) { }
-        public TimelineNotExistException(string? timelineName, Exception? inner) : this(timelineName, null, inner) { }
-        public TimelineNotExistException(string? timelineName, string? message, Exception? inner = null)
-            : base(EntityNames.Timeline, null, string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.TimelineNotExistException, timelineName ?? "").AppendAdditionalMessage(message), inner) { TimelineName = timelineName; }
-
-        protected TimelineNotExistException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string? TimelineName { get; set; }
-    }
-}
diff --git a/Timeline/Services/Exceptions/TimelinePostNoDataException.cs b/Timeline/Services/Exceptions/TimelinePostNoDataException.cs
deleted file mode 100644
index c4b6bf62..00000000
--- a/Timeline/Services/Exceptions/TimelinePostNoDataException.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-﻿using System;
-
-namespace Timeline.Services.Exceptions
-{
-    [Serializable]
-    public class TimelinePostNoDataException : Exception
-    {
-        public TimelinePostNoDataException() : this(null, null) { }
-        public TimelinePostNoDataException(string? message) : this(message, null) { }
-        public TimelinePostNoDataException(string? message, Exception? inner) : base(Resources.Services.Exceptions.TimelineNoDataException.AppendAdditionalMessage(message), inner) { }
-        protected TimelinePostNoDataException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-    }
-}
diff --git a/Timeline/Services/Exceptions/TimelinePostNotExistException.cs b/Timeline/Services/Exceptions/TimelinePostNotExistException.cs
deleted file mode 100644
index f95dd410..00000000
--- a/Timeline/Services/Exceptions/TimelinePostNotExistException.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-﻿using System;
-using System.Globalization;
-
-namespace Timeline.Services.Exceptions
-{
-    [Serializable]
-    public class TimelinePostNotExistException : EntityNotExistException
-    {
-        public TimelinePostNotExistException() : this(null, null, false, null, null) { }
-        [Obsolete("This has no meaning.")]
-        public TimelinePostNotExistException(string? message) : this(message, null) { }
-        [Obsolete("This has no meaning.")]
-        public TimelinePostNotExistException(string? message, Exception? inner) : this(null, null, false, message, inner) { }
-        protected TimelinePostNotExistException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public TimelinePostNotExistException(string? timelineName, long? id, bool isDelete, string? message = null, Exception? inner = null) : base(EntityNames.TimelinePost, null, MakeMessage(timelineName, id, isDelete).AppendAdditionalMessage(message), inner) { TimelineName = timelineName; Id = id; IsDelete = isDelete; }
-
-        private static string MakeMessage(string? timelineName, long? id, bool isDelete)
-        {
-            return string.Format(CultureInfo.InvariantCulture, isDelete ? Resources.Services.Exceptions.TimelinePostNotExistExceptionDeleted : Resources.Services.Exceptions.TimelinePostNotExistException, timelineName ?? "", id);
-        }
-
-        public string? TimelineName { get; set; }
-        public long? Id { get; set; }
-
-        /// <summary>
-        /// True if the post is deleted. False if the post does not exist at all.
-        /// </summary>
-        public bool IsDelete { get; set; }
-    }
-}
diff --git a/Timeline/Services/Exceptions/UserNotExistException.cs b/Timeline/Services/Exceptions/UserNotExistException.cs
deleted file mode 100644
index 7ef714df..00000000
--- a/Timeline/Services/Exceptions/UserNotExistException.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-﻿using System;
-using System.Globalization;
-
-namespace Timeline.Services.Exceptions
-{
-    /// <summary>
-    /// The user requested does not exist.
-    /// </summary>
-    [Serializable]
-    public class UserNotExistException : EntityNotExistException
-    {
-        public UserNotExistException() : this(null, null, null, null) { }
-        public UserNotExistException(string? username, Exception? inner) : this(username, null, null, inner) { }
-
-        public UserNotExistException(string? username) : this(username, null, null, null) { }
-
-        public UserNotExistException(long id) : this(null, id, null, null) { }
-
-        public UserNotExistException(string? username, long? id, string? message, Exception? inner) : base(EntityNames.User, null,
-            string.Format(CultureInfo.InvariantCulture, Resources.Services.Exceptions.UserNotExistException, username ?? "", id).AppendAdditionalMessage(message), inner)
-        {
-            Username = username;
-            Id = id;
-        }
-
-        protected UserNotExistException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        /// <summary>
-        /// The username of the user that does not exist.
-        /// </summary>
-        public string? Username { get; set; }
-
-        /// <summary>
-        /// The id of the user that does not exist.
-        /// </summary>
-        public long? Id { get; set; }
-    }
-}
diff --git a/Timeline/Services/ImageValidator.cs b/Timeline/Services/ImageValidator.cs
deleted file mode 100644
index 59424a7c..00000000
--- a/Timeline/Services/ImageValidator.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-﻿using SixLabors.ImageSharp;
-using SixLabors.ImageSharp.Formats;
-using System;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Services.Exceptions;
-
-namespace Timeline.Services
-{
-    public interface IImageValidator
-    {
-        /// <summary>
-        /// Validate a image data.
-        /// </summary>
-        /// <param name="data">The data of the image. Can't be null.</param>
-        /// <param name="requestType">If not null, the real image format will be check against the requested format and throw if not match. If null, then do not check.</param>
-        /// <param name="square">If true, image must be square.</param>
-        /// <returns>The format.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="data"/> is null.</exception>
-        /// <exception cref="ImageException">Thrown when image data can't be decoded or real type does not match request type or image is not square when required.</exception>
-        Task<IImageFormat> Validate(byte[] data, string? requestType = null, bool square = false);
-    }
-
-    public class ImageValidator : IImageValidator
-    {
-        public ImageValidator()
-        {
-        }
-
-        public async Task<IImageFormat> Validate(byte[] data, string? requestType = null, bool square = false)
-        {
-            if (data == null)
-                throw new ArgumentNullException(nameof(data));
-
-            var format = await Task.Run(() =>
-            {
-                try
-                {
-                    using var image = Image.Load(data, out IImageFormat format);
-                    if (requestType != null && !format.MimeTypes.Contains(requestType))
-                        throw new ImageException(ImageException.ErrorReason.UnmatchedFormat, data, requestType, format.DefaultMimeType);
-                    if (square && image.Width != image.Height)
-                        throw new ImageException(ImageException.ErrorReason.NotSquare, data, requestType, format.DefaultMimeType);
-                    return format;
-                }
-                catch (UnknownImageFormatException e)
-                {
-                    throw new ImageException(ImageException.ErrorReason.CantDecode, data, requestType, null, null, e);
-                }
-            });
-            return format;
-        }
-    }
-}
diff --git a/Timeline/Services/JwtUserTokenBadFormatException.cs b/Timeline/Services/JwtUserTokenBadFormatException.cs
deleted file mode 100644
index c528c3e3..00000000
--- a/Timeline/Services/JwtUserTokenBadFormatException.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-﻿using System;
-using System.Globalization;
-using static Timeline.Resources.Services.Exception;
-
-namespace Timeline.Services
-{
-    [Serializable]
-    public class JwtUserTokenBadFormatException : UserTokenBadFormatException
-    {
-        public enum ErrorKind
-        {
-            NoIdClaim,
-            IdClaimBadFormat,
-            NoVersionClaim,
-            VersionClaimBadFormat,
-            Other
-        }
-
-        public JwtUserTokenBadFormatException() : this("", ErrorKind.Other) { }
-        public JwtUserTokenBadFormatException(string message) : base(message) { }
-        public JwtUserTokenBadFormatException(string message, Exception inner) : base(message, inner) { }
-
-        public JwtUserTokenBadFormatException(string token, ErrorKind type) : base(token, GetErrorMessage(type)) { ErrorType = type; }
-        public JwtUserTokenBadFormatException(string token, ErrorKind type, Exception inner) : base(token, GetErrorMessage(type), inner) { ErrorType = type; }
-        public JwtUserTokenBadFormatException(string token, ErrorKind type, string message, Exception inner) : base(token, message, inner) { ErrorType = type; }
-        protected JwtUserTokenBadFormatException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public ErrorKind ErrorType { get; set; }
-
-        private static string GetErrorMessage(ErrorKind type)
-        {
-            var reason = type switch
-            {
-                ErrorKind.NoIdClaim => JwtUserTokenBadFormatExceptionIdMissing,
-                ErrorKind.IdClaimBadFormat => JwtUserTokenBadFormatExceptionIdBadFormat,
-                ErrorKind.NoVersionClaim => JwtUserTokenBadFormatExceptionVersionMissing,
-                ErrorKind.VersionClaimBadFormat => JwtUserTokenBadFormatExceptionVersionBadFormat,
-                ErrorKind.Other => JwtUserTokenBadFormatExceptionOthers,
-                _ => JwtUserTokenBadFormatExceptionUnknown
-            };
-
-            return string.Format(CultureInfo.CurrentCulture,
-                Resources.Services.Exception.JwtUserTokenBadFormatException, reason);
-        }
-    }
-}
diff --git a/Timeline/Services/PasswordBadFormatException.cs b/Timeline/Services/PasswordBadFormatException.cs
deleted file mode 100644
index 2029ebb4..00000000
--- a/Timeline/Services/PasswordBadFormatException.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-﻿using System;
-
-namespace Timeline.Services
-{
-
-    [Serializable]
-    public class PasswordBadFormatException : Exception
-    {
-        public PasswordBadFormatException() : base(Resources.Services.Exception.PasswordBadFormatException) { }
-        public PasswordBadFormatException(string message) : base(message) { }
-        public PasswordBadFormatException(string message, Exception inner) : base(message, inner) { }
-
-        public PasswordBadFormatException(string password, string validationMessage) : this()
-        {
-            Password = password;
-            ValidationMessage = validationMessage;
-        }
-
-        protected PasswordBadFormatException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string Password { get; set; } = "";
-
-        public string ValidationMessage { get; set; } = "";
-    }
-}
diff --git a/Timeline/Services/PasswordService.cs b/Timeline/Services/PasswordService.cs
deleted file mode 100644
index 8114a520..00000000
--- a/Timeline/Services/PasswordService.cs
+++ /dev/null
@@ -1,224 +0,0 @@
-using Microsoft.AspNetCore.Cryptography.KeyDerivation;
-using System;
-using System.Runtime.CompilerServices;
-using System.Security.Cryptography;
-
-namespace Timeline.Services
-{
-    /// <summary>
-    /// Hashed password is of bad format.
-    /// </summary>
-    /// <seealso cref="IPasswordService.VerifyPassword(string, string)"/>
-    [Serializable]
-    public class HashedPasswordBadFromatException : Exception
-    {
-        private static string MakeMessage(string reason)
-        {
-            return Resources.Services.Exception.HashedPasswordBadFromatException + " Reason: " + reason;
-        }
-
-        public HashedPasswordBadFromatException() : base(Resources.Services.Exception.HashedPasswordBadFromatException) { }
-
-        public HashedPasswordBadFromatException(string message) : base(message) { }
-        public HashedPasswordBadFromatException(string message, Exception inner) : base(message, inner) { }
-
-        public HashedPasswordBadFromatException(string hashedPassword, string reason) : base(MakeMessage(reason)) { HashedPassword = hashedPassword; }
-        public HashedPasswordBadFromatException(string hashedPassword, string reason, Exception inner) : base(MakeMessage(reason), inner) { HashedPassword = hashedPassword; }
-        protected HashedPasswordBadFromatException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string? HashedPassword { get; set; }
-    }
-
-    public interface IPasswordService
-    {
-        /// <summary>
-        /// Hash a password.
-        /// </summary>
-        /// <param name="password">The password to hash.</param>
-        /// <returns>A hashed representation of the supplied <paramref name="password"/>.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="password"/> is null.</exception>
-        string HashPassword(string password);
-
-        /// <summary>
-        /// Verify whether the password fits into the hashed one.
-        /// 
-        /// Usually you only need to check the returned bool value.
-        /// Catching <see cref="HashedPasswordBadFromatException"/> usually is not necessary.
-        /// Because if your program logic is right and always call <see cref="HashPassword(string)"/>
-        /// and <see cref="VerifyPassword(string, string)"/> in pair, this exception will never be thrown.
-        /// A thrown one usually means the data you saved is corupted, which is a critical problem.
-        /// </summary>
-        /// <param name="hashedPassword">The hashed password.</param>
-        /// <param name="providedPassword">The password supplied for comparison.</param>
-        /// <returns>True indicating password is right. Otherwise false.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="hashedPassword"/> or <paramref name="providedPassword"/> is null.</exception>
-        /// <exception cref="HashedPasswordBadFromatException">Thrown when the hashed password is of bad format.</exception>
-        bool VerifyPassword(string hashedPassword, string providedPassword);
-    }
-
-    /// <summary>
-    /// Copied from https://github.com/aspnet/AspNetCore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs
-    /// Remove V2 format and unnecessary format version check.
-    /// Remove configuration options.
-    /// Remove user related parts.
-    /// Change the exceptions.
-    /// </summary>
-    public class PasswordService : IPasswordService
-    {
-        /* =======================
-        * HASHED PASSWORD FORMATS
-        * =======================
-        * 
-        * Version 3:
-        * PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations.
-        * Format: { 0x01, prf (UInt32), iter count (UInt32), salt length (UInt32), salt, subkey }
-        * (All UInt32s are stored big-endian.)
-        */
-
-        private readonly RandomNumberGenerator _rng = RandomNumberGenerator.Create();
-
-        public PasswordService()
-        {
-        }
-
-        // Compares two byte arrays for equality. The method is specifically written so that the loop is not optimized.
-        [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
-        private static bool ByteArraysEqual(byte[] a, byte[] b)
-        {
-            if (a == null && b == null)
-            {
-                return true;
-            }
-            if (a == null || b == null || a.Length != b.Length)
-            {
-                return false;
-            }
-            var areSame = true;
-            for (var i = 0; i < a.Length; i++)
-            {
-                areSame &= (a[i] == b[i]);
-            }
-            return areSame;
-        }
-
-        public string HashPassword(string password)
-        {
-            if (password == null)
-                throw new ArgumentNullException(nameof(password));
-            return Convert.ToBase64String(HashPasswordV3(password, _rng));
-        }
-
-        private static byte[] HashPasswordV3(string password, RandomNumberGenerator rng)
-        {
-            return HashPasswordV3(password, rng,
-                prf: KeyDerivationPrf.HMACSHA256,
-                iterCount: 10000,
-                saltSize: 128 / 8,
-                numBytesRequested: 256 / 8);
-        }
-
-        private static byte[] HashPasswordV3(string password, RandomNumberGenerator rng, KeyDerivationPrf prf, int iterCount, int saltSize, int numBytesRequested)
-        {
-            // Produce a version 3 (see comment above) text hash.
-            byte[] salt = new byte[saltSize];
-            rng.GetBytes(salt);
-            byte[] subkey = KeyDerivation.Pbkdf2(password, salt, prf, iterCount, numBytesRequested);
-
-            var outputBytes = new byte[13 + salt.Length + subkey.Length];
-            outputBytes[0] = 0x01; // format marker
-            WriteNetworkByteOrder(outputBytes, 1, (uint)prf);
-            WriteNetworkByteOrder(outputBytes, 5, (uint)iterCount);
-            WriteNetworkByteOrder(outputBytes, 9, (uint)saltSize);
-            Buffer.BlockCopy(salt, 0, outputBytes, 13, salt.Length);
-            Buffer.BlockCopy(subkey, 0, outputBytes, 13 + saltSize, subkey.Length);
-            return outputBytes;
-        }
-
-        public bool VerifyPassword(string hashedPassword, string providedPassword)
-        {
-            if (hashedPassword == null)
-                throw new ArgumentNullException(nameof(hashedPassword));
-            if (providedPassword == null)
-                throw new ArgumentNullException(nameof(providedPassword));
-
-            byte[] decodedHashedPassword;
-            try
-            {
-                decodedHashedPassword = Convert.FromBase64String(hashedPassword);
-            }
-            catch (FormatException e)
-            {
-                throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotBase64, e);
-            }
-
-            // read the format marker from the hashed password
-            if (decodedHashedPassword.Length == 0)
-            {
-                throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotLength0);
-            }
-
-            return (decodedHashedPassword[0]) switch
-            {
-                0x01 => VerifyHashedPasswordV3(decodedHashedPassword, providedPassword, hashedPassword),
-                _ => throw new HashedPasswordBadFromatException(hashedPassword, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotUnknownMarker),
-            };
-        }
-
-        private static bool VerifyHashedPasswordV3(byte[] hashedPassword, string password, string hashedPasswordString)
-        {
-            try
-            {
-                // Read header information
-                KeyDerivationPrf prf = (KeyDerivationPrf)ReadNetworkByteOrder(hashedPassword, 1);
-                int iterCount = (int)ReadNetworkByteOrder(hashedPassword, 5);
-                int saltLength = (int)ReadNetworkByteOrder(hashedPassword, 9);
-
-                // Read the salt: must be >= 128 bits
-                if (saltLength < 128 / 8)
-                {
-                    throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotSaltTooShort);
-                }
-                byte[] salt = new byte[saltLength];
-                Buffer.BlockCopy(hashedPassword, 13, salt, 0, salt.Length);
-
-                // Read the subkey (the rest of the payload): must be >= 128 bits
-                int subkeyLength = hashedPassword.Length - 13 - salt.Length;
-                if (subkeyLength < 128 / 8)
-                {
-                    throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotSubkeyTooShort);
-                }
-                byte[] expectedSubkey = new byte[subkeyLength];
-                Buffer.BlockCopy(hashedPassword, 13 + salt.Length, expectedSubkey, 0, expectedSubkey.Length);
-
-                // Hash the incoming password and verify it
-                byte[] actualSubkey = KeyDerivation.Pbkdf2(password, salt, prf, iterCount, subkeyLength);
-                return ByteArraysEqual(actualSubkey, expectedSubkey);
-            }
-            catch (Exception e)
-            {
-                // This should never occur except in the case of a malformed payload, where
-                // we might go off the end of the array. Regardless, a malformed payload
-                // implies verification failed.
-                throw new HashedPasswordBadFromatException(hashedPasswordString, Resources.Services.Exception.HashedPasswordBadFromatExceptionNotOthers, e);
-            }
-        }
-
-        private static uint ReadNetworkByteOrder(byte[] buffer, int offset)
-        {
-            return ((uint)(buffer[offset + 0]) << 24)
-                | ((uint)(buffer[offset + 1]) << 16)
-                | ((uint)(buffer[offset + 2]) << 8)
-                | ((uint)(buffer[offset + 3]));
-        }
-
-        private static void WriteNetworkByteOrder(byte[] buffer, int offset, uint value)
-        {
-            buffer[offset + 0] = (byte)(value >> 24);
-            buffer[offset + 1] = (byte)(value >> 16);
-            buffer[offset + 2] = (byte)(value >> 8);
-            buffer[offset + 3] = (byte)(value >> 0);
-        }
-    }
-}
diff --git a/Timeline/Services/PathProvider.cs b/Timeline/Services/PathProvider.cs
deleted file mode 100644
index 1baba5c0..00000000
--- a/Timeline/Services/PathProvider.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-﻿using Microsoft.Extensions.Configuration;
-using System.IO;
-using Timeline.Configs;
-
-namespace Timeline.Services
-{
-    public interface IPathProvider
-    {
-        public string GetWorkingDirectory();
-        public string GetDatabaseFilePath();
-        public string GetDatabaseBackupDirectory();
-    }
-
-    public class PathProvider : IPathProvider
-    {
-        private readonly IConfiguration _configuration;
-
-        private readonly string _workingDirectory;
-
-
-        public PathProvider(IConfiguration configuration)
-        {
-            _configuration = configuration;
-            _workingDirectory = configuration.GetValue<string?>(ApplicationConfiguration.WorkDirKey) ?? ApplicationConfiguration.DefaultWorkDir;
-        }
-
-        public string GetWorkingDirectory()
-        {
-            return _workingDirectory;
-        }
-
-        public string GetDatabaseFilePath()
-        {
-            return Path.Combine(_workingDirectory, ApplicationConfiguration.DatabaseFileName);
-        }
-
-        public string GetDatabaseBackupDirectory()
-        {
-            return Path.Combine(_workingDirectory, ApplicationConfiguration.DatabaseBackupDirectoryName);
-        }
-    }
-}
diff --git a/Timeline/Services/TimelineService.cs b/Timeline/Services/TimelineService.cs
deleted file mode 100644
index 4bcae596..00000000
--- a/Timeline/Services/TimelineService.cs
+++ /dev/null
@@ -1,1166 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Logging;
-using SixLabors.ImageSharp;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Models.Validation;
-using Timeline.Services.Exceptions;
-using static Timeline.Resources.Services.TimelineService;
-
-namespace Timeline.Services
-{
-    public static class TimelineHelper
-    {
-        public static string ExtractTimelineName(string name, out bool isPersonal)
-        {
-            if (name.StartsWith("@", StringComparison.OrdinalIgnoreCase))
-            {
-                isPersonal = true;
-                return name.Substring(1);
-            }
-            else
-            {
-                isPersonal = false;
-                return name;
-            }
-        }
-    }
-
-    public enum TimelineUserRelationshipType
-    {
-        Own = 0b1,
-        Join = 0b10,
-        Default = Own | Join
-    }
-
-    public class TimelineUserRelationship
-    {
-        public TimelineUserRelationship(TimelineUserRelationshipType type, long userId)
-        {
-            Type = type;
-            UserId = userId;
-        }
-
-        public TimelineUserRelationshipType Type { get; set; }
-        public long UserId { get; set; }
-    }
-
-    public class PostData : ICacheableData
-    {
-#pragma warning disable CA1819 // Properties should not return arrays
-        public byte[] Data { get; set; } = default!;
-#pragma warning restore CA1819 // Properties should not return arrays
-        public string Type { get; set; } = default!;
-        public string ETag { get; set; } = default!;
-        public DateTime? LastModified { get; set; } // TODO: Why nullable?
-    }
-
-    /// <summary>
-    /// This define the interface of both personal timeline and ordinary timeline.
-    /// </summary>
-    public interface ITimelineService
-    {
-        /// <summary>
-        /// Get the timeline last modified time (not include name change).
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <returns>The timeline info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        Task<DateTime> GetTimelineLastModifiedTime(string timelineName);
-
-        /// <summary>
-        /// Get the timeline unique id.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <returns>The timeline info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        Task<string> GetTimelineUniqueId(string timelineName);
-
-        /// <summary>
-        /// Get the timeline info.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <returns>The timeline info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        Task<Models.Timeline> GetTimeline(string timelineName);
-
-        /// <summary>
-        /// Set the properties of a timeline. 
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="newProperties">The new properties. Null member means not to change.</param>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="newProperties"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        Task ChangeProperty(string timelineName, TimelineChangePropertyRequest newProperties);
-
-        /// <summary>
-        /// Get all the posts in the timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="modifiedSince">The time that posts have been modified since.</param>
-        /// <param name="includeDeleted">Whether include deleted posts.</param>
-        /// <returns>A list of all posts.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        Task<List<TimelinePost>> GetPosts(string timelineName, DateTime? modifiedSince = null, bool includeDeleted = false);
-
-        /// <summary>
-        /// Get the etag of data of a post.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline of the post.</param>
-        /// <param name="postId">The id of the post.</param>
-        /// <returns>The etag of the data.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="TimelinePostNotExistException">Thrown when post of <paramref name="postId"/> does not exist or has been deleted.</exception>
-        /// <exception cref="TimelinePostNoDataException">Thrown when post has no data.</exception>
-        /// <seealso cref="GetPostData(string, long)"/>
-        Task<string> GetPostDataETag(string timelineName, long postId);
-
-        /// <summary>
-        /// Get the data of a post.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline of the post.</param>
-        /// <param name="postId">The id of the post.</param>
-        /// <returns>The etag of the data.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="TimelinePostNotExistException">Thrown when post of <paramref name="postId"/> does not exist or has been deleted.</exception>
-        /// <exception cref="TimelinePostNoDataException">Thrown when post has no data.</exception>
-        /// <seealso cref="GetPostDataETag(string, long)"/>
-        Task<PostData> GetPostData(string timelineName, long postId);
-
-        /// <summary>
-        /// Create a new text post in timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline to create post against.</param>
-        /// <param name="authorId">The author's user id.</param>
-        /// <param name="text">The content text.</param>
-        /// <param name="time">The time of the post. If null, then current time is used.</param>
-        /// <returns>The info of the created post.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="text"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="UserNotExistException">Thrown if user of <paramref name="authorId"/> does not exist.</exception>
-        Task<TimelinePost> CreateTextPost(string timelineName, long authorId, string text, DateTime? time);
-
-        /// <summary>
-        /// Create a new image post in timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline to create post against.</param>
-        /// <param name="authorId">The author's user id.</param>
-        /// <param name="imageData">The image data.</param>
-        /// <param name="time">The time of the post. If null, then use current time.</param>
-        /// <returns>The info of the created post.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> or <paramref name="imageData"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="UserNotExistException">Thrown if user of <paramref name="authorId"/> does not exist.</exception>
-        /// <exception cref="ImageException">Thrown if data is not a image. Validated by <see cref="ImageValidator"/>.</exception>
-        Task<TimelinePost> CreateImagePost(string timelineName, long authorId, byte[] imageData, DateTime? time);
-
-        /// <summary>
-        /// Delete a post.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline to delete post against.</param>
-        /// <param name="postId">The id of the post to delete.</param>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="TimelinePostNotExistException">Thrown when the post with given id does not exist or is deleted already.</exception>
-        /// <remarks>
-        /// First use <see cref="HasPostModifyPermission(string, long, long, bool)"/> to check the permission.
-        /// </remarks>
-        Task DeletePost(string timelineName, long postId);
-
-        /// <summary>
-        /// Delete all posts of the given user. Used when delete a user.
-        /// </summary>
-        /// <param name="userId">The id of the user.</param>
-        Task DeleteAllPostsOfUser(long userId);
-
-        /// <summary>
-        /// Change member of timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="membersToAdd">A list of usernames of members to add. May be null.</param>
-        /// <param name="membersToRemove">A list of usernames of members to remove. May be null.</param>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="ArgumentException">Thrown when names in <paramref name="membersToAdd"/> or <paramref name="membersToRemove"/> is not a valid username.</exception>
-        /// <exception cref="UserNotExistException">Thrown when one of the user to change does not exist.</exception>
-        /// <remarks>
-        /// Operating on a username that is of bad format or does not exist always throws.
-        /// Add a user that already is a member has no effects.
-        /// Remove a user that is not a member also has not effects.
-        /// Add and remove an identical user results in no effects.
-        /// More than one same usernames are regarded as one.
-        /// </remarks>
-        Task ChangeMember(string timelineName, IList<string>? membersToAdd, IList<string>? membersToRemove);
-
-        /// <summary>
-        /// Check whether a user can manage(change timeline info, member, ...) a timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="userId">The id of the user to check on.</param>
-        /// <returns>True if the user can manage the timeline, otherwise false.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <remarks>
-        /// This method does not check whether visitor is administrator.
-        /// Return false if user with user id does not exist.
-        /// </remarks>
-        Task<bool> HasManagePermission(string timelineName, long userId);
-
-        /// <summary>
-        /// Verify whether a visitor has the permission to read a timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="visitorId">The id of the user to check on. Null means visitor without account.</param>
-        /// <returns>True if can read, false if can't read.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <remarks>
-        /// This method does not check whether visitor is administrator.
-        /// Return false if user with visitor id does not exist.
-        /// </remarks>
-        Task<bool> HasReadPermission(string timelineName, long? visitorId);
-
-        /// <summary>
-        /// Verify whether a user has the permission to modify a post.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="postId">The id of the post.</param>
-        /// <param name="modifierId">The id of the user to check on.</param>
-        /// <param name="throwOnPostNotExist">True if you want it to throw <see cref="TimelinePostNotExistException"/>. Default false.</param>
-        /// <returns>True if can modify, false if can't modify.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <exception cref="TimelinePostNotExistException">Thrown when the post with given id does not exist or is deleted already and <paramref name="throwOnPostNotExist"/> is true.</exception>
-        /// <remarks>
-        /// Unless <paramref name="throwOnPostNotExist"/> is true, this method should return true if the post does not exist.
-        /// If the post is deleted, its author info still exists, so it is checked as the post is not deleted unless <paramref name="throwOnPostNotExist"/> is true.
-        /// This method does not check whether the user is administrator.
-        /// It only checks whether he is the author of the post or the owner of the timeline.
-        /// Return false when user with modifier id does not exist.
-        /// </remarks>
-        Task<bool> HasPostModifyPermission(string timelineName, long postId, long modifierId, bool throwOnPostNotExist = false);
-
-        /// <summary>
-        /// Verify whether a user is member of a timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="userId">The id of user to check on.</param>
-        /// <returns>True if it is a member, false if not.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Throw when <paramref name="timelineName"/> is of bad format.</exception>
-        /// <exception cref="TimelineNotExistException">
-        /// Thrown when timeline with name <paramref name="timelineName"/> does not exist.
-        /// If it is a personal timeline, then inner exception is <see cref="UserNotExistException"/>.
-        /// </exception>
-        /// <remarks>
-        /// Timeline owner is also considered as a member.
-        /// Return false when user with user id does not exist.
-        /// </remarks>
-        Task<bool> IsMemberOf(string timelineName, long userId);
-
-        /// <summary>
-        /// Get all timelines including personal and ordinary timelines.
-        /// </summary>
-        /// <param name="relate">Filter timelines related (own or is a member) to specific user.</param>
-        /// <param name="visibility">Filter timelines with given visibility. If null or empty, all visibilities are returned. Duplicate value are ignored.</param>
-        /// <returns>The list of timelines.</returns>
-        /// <remarks>
-        /// If user with related user id does not exist, empty list will be returned.
-        /// </remarks>
-        Task<List<Models.Timeline>> GetTimelines(TimelineUserRelationship? relate = null, List<TimelineVisibility>? visibility = null);
-
-        /// <summary>
-        /// Create a timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline.</param>
-        /// <param name="ownerId">The id of owner of the timeline.</param>
-        /// <returns>The info of the new timeline.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when timeline name is invalid.</exception>
-        /// <exception cref="EntityAlreadyExistException">Thrown when the timeline already exists.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the owner user does not exist.</exception>
-        Task<Models.Timeline> CreateTimeline(string timelineName, long ownerId);
-
-        /// <summary>
-        /// Delete a timeline.
-        /// </summary>
-        /// <param name="timelineName">The name of the timeline to delete.</param>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="timelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when timeline name is invalid.</exception>
-        /// <exception cref="TimelineNotExistException">Thrown when the timeline does not exist.</exception>
-        Task DeleteTimeline(string timelineName);
-
-        /// <summary>
-        /// Change name of a timeline.
-        /// </summary>
-        /// <param name="oldTimelineName">The old timeline name.</param>
-        /// <param name="newTimelineName">The new timeline name.</param>
-        /// <returns>The new timeline info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="oldTimelineName"/> or <paramref name="newTimelineName"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="oldTimelineName"/> or <paramref name="newTimelineName"/> is of invalid format.</exception>
-        /// <exception cref="TimelineNotExistException">Thrown when timeline does not exist.</exception>
-        /// <exception cref="EntityAlreadyExistException">Thrown when a timeline with new name already exists.</exception>
-        /// <remarks>
-        /// You can only change name of general timeline.
-        /// </remarks>
-        Task<Models.Timeline> ChangeTimelineName(string oldTimelineName, string newTimelineName);
-    }
-
-    public class TimelineService : ITimelineService
-    {
-        public TimelineService(ILogger<TimelineService> logger, DatabaseContext database, IDataManager dataManager, IUserService userService, IImageValidator imageValidator, IClock clock)
-        {
-            _logger = logger;
-            _database = database;
-            _dataManager = dataManager;
-            _userService = userService;
-            _imageValidator = imageValidator;
-            _clock = clock;
-        }
-
-        private readonly ILogger<TimelineService> _logger;
-
-        private readonly DatabaseContext _database;
-
-        private readonly IDataManager _dataManager;
-
-        private readonly IUserService _userService;
-
-        private readonly IImageValidator _imageValidator;
-
-        private readonly IClock _clock;
-
-        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
-
-        private readonly TimelineNameValidator _timelineNameValidator = new TimelineNameValidator();
-
-        private void ValidateTimelineName(string name, string paramName)
-        {
-            if (!_timelineNameValidator.Validate(name, out var message))
-            {
-                throw new ArgumentException(ExceptionTimelineNameBadFormat.AppendAdditionalMessage(message), paramName);
-            }
-        }
-
-        /// Remember to include Members when query.
-        private async Task<Models.Timeline> MapTimelineFromEntity(TimelineEntity entity)
-        {
-            var owner = await _userService.GetUserById(entity.OwnerId);
-
-            var members = new List<User>();
-            foreach (var memberEntity in entity.Members)
-            {
-                members.Add(await _userService.GetUserById(memberEntity.UserId));
-            }
-
-            var name = entity.Name ?? ("@" + owner.Username);
-
-            return new Models.Timeline
-            {
-                UniqueID = entity.UniqueId,
-                Name = name,
-                NameLastModified = entity.NameLastModified,
-                Title = string.IsNullOrEmpty(entity.Title) ? name : entity.Title,
-                Description = entity.Description ?? "",
-                Owner = owner,
-                Visibility = entity.Visibility,
-                Members = members,
-                CreateTime = entity.CreateTime,
-                LastModified = entity.LastModified
-            };
-        }
-
-        private async Task<TimelinePost> MapTimelinePostFromEntity(TimelinePostEntity entity, string timelineName)
-        {
-            User? author = entity.AuthorId.HasValue ? await _userService.GetUserById(entity.AuthorId.Value) : null;
-
-            ITimelinePostContent? content = null;
-
-            if (entity.Content != null)
-            {
-                var type = entity.ContentType;
-
-                content = type switch
-                {
-                    TimelinePostContentTypes.Text => new TextTimelinePostContent(entity.Content),
-                    TimelinePostContentTypes.Image => new ImageTimelinePostContent(entity.Content),
-                    _ => throw new DatabaseCorruptedException(string.Format(CultureInfo.InvariantCulture, ExceptionDatabaseUnknownContentType, type))
-                };
-            }
-
-            return new TimelinePost(
-                    id: entity.LocalId,
-                    author: author,
-                    content: content,
-                    time: entity.Time,
-                    lastUpdated: entity.LastUpdated,
-                    timelineName: timelineName
-                );
-        }
-
-        private TimelineEntity CreateNewTimelineEntity(string? name, long ownerId)
-        {
-            var currentTime = _clock.GetCurrentTime();
-
-            return new TimelineEntity
-            {
-                Name = name,
-                NameLastModified = currentTime,
-                OwnerId = ownerId,
-                Visibility = TimelineVisibility.Register,
-                CreateTime = currentTime,
-                LastModified = currentTime,
-                CurrentPostLocalId = 0,
-                Members = new List<TimelineMemberEntity>()
-            };
-        }
-
-
-
-        // Get timeline id by name. If it is a personal timeline and it does not exist, it will be created.
-        //
-        // This method will check the name format and if it is invalid, ArgumentException is thrown.
-        //
-        // For personal timeline, if the user does not exist, TimelineNotExistException will be thrown with UserNotExistException as inner exception.
-        // For ordinary timeline, if the timeline does not exist, TimelineNotExistException will be thrown.
-        //
-        // It follows all timeline-related function common interface contracts.
-        private async Task<long> FindTimelineId(string timelineName)
-        {
-            timelineName = TimelineHelper.ExtractTimelineName(timelineName, out var isPersonal);
-
-            if (isPersonal)
-            {
-                long userId;
-                try
-                {
-                    userId = await _userService.GetUserIdByUsername(timelineName);
-                }
-                catch (ArgumentException e)
-                {
-                    throw new ArgumentException(ExceptionFindTimelineUsernameBadFormat, nameof(timelineName), e);
-                }
-                catch (UserNotExistException e)
-                {
-                    throw new TimelineNotExistException(timelineName, e);
-                }
-
-                var timelineEntity = await _database.Timelines.Where(t => t.OwnerId == userId && t.Name == null).Select(t => new { t.Id }).SingleOrDefaultAsync();
-
-                if (timelineEntity != null)
-                {
-                    return timelineEntity.Id;
-                }
-                else
-                {
-                    var newTimelineEntity = CreateNewTimelineEntity(null, userId);
-                    _database.Timelines.Add(newTimelineEntity);
-                    await _database.SaveChangesAsync();
-
-                    return newTimelineEntity.Id;
-                }
-            }
-            else
-            {
-                if (timelineName == null)
-                    throw new ArgumentNullException(nameof(timelineName));
-
-                ValidateTimelineName(timelineName, nameof(timelineName));
-
-                var timelineEntity = await _database.Timelines.Where(t => t.Name == timelineName).Select(t => new { t.Id }).SingleOrDefaultAsync();
-
-                if (timelineEntity == null)
-                {
-                    throw new TimelineNotExistException(timelineName);
-                }
-                else
-                {
-                    return timelineEntity.Id;
-                }
-            }
-        }
-
-        public async Task<DateTime> GetTimelineLastModifiedTime(string timelineName)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.LastModified }).SingleAsync();
-
-            return timelineEntity.LastModified;
-        }
-
-        public async Task<string> GetTimelineUniqueId(string timelineName)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.UniqueId }).SingleAsync();
-
-            return timelineEntity.UniqueId;
-        }
-
-        public async Task<Models.Timeline> GetTimeline(string timelineName)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Include(t => t.Members).SingleAsync();
-
-            return await MapTimelineFromEntity(timelineEntity);
-        }
-
-        public async Task<List<TimelinePost>> GetPosts(string timelineName, DateTime? modifiedSince = null, bool includeDeleted = false)
-        {
-            modifiedSince = modifiedSince?.MyToUtc();
-
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-            IQueryable<TimelinePostEntity> query = _database.TimelinePosts.Where(p => p.TimelineId == timelineId);
-
-            if (!includeDeleted)
-            {
-                query = query.Where(p => p.Content != null);
-            }
-
-            if (modifiedSince.HasValue)
-            {
-                query = query.Include(p => p.Author).Where(p => p.LastUpdated >= modifiedSince || (p.Author != null && p.Author.UsernameChangeTime >= modifiedSince));
-            }
-
-            query = query.OrderBy(p => p.Time);
-
-            var postEntities = await query.ToListAsync();
-
-            var posts = new List<TimelinePost>();
-            foreach (var entity in postEntities)
-            {
-                posts.Add(await MapTimelinePostFromEntity(entity, timelineName));
-            }
-            return posts;
-        }
-
-        public async Task<string> GetPostDataETag(string timelineName, long postId)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var postEntity = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == postId).SingleOrDefaultAsync();
-
-            if (postEntity == null)
-                throw new TimelinePostNotExistException(timelineName, postId, false);
-
-            if (postEntity.Content == null)
-                throw new TimelinePostNotExistException(timelineName, postId, true);
-
-            if (postEntity.ContentType != TimelinePostContentTypes.Image)
-                throw new TimelinePostNoDataException(ExceptionGetDataNonImagePost);
-
-            var tag = postEntity.Content;
-
-            return tag;
-        }
-
-        public async Task<PostData> GetPostData(string timelineName, long postId)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-            var postEntity = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == postId).SingleOrDefaultAsync();
-
-            if (postEntity == null)
-                throw new TimelinePostNotExistException(timelineName, postId, false);
-
-            if (postEntity.Content == null)
-                throw new TimelinePostNotExistException(timelineName, postId, true);
-
-            if (postEntity.ContentType != TimelinePostContentTypes.Image)
-                throw new TimelinePostNoDataException(ExceptionGetDataNonImagePost);
-
-            var tag = postEntity.Content;
-
-            byte[] data;
-
-            try
-            {
-                data = await _dataManager.GetEntry(tag);
-            }
-            catch (InvalidOperationException e)
-            {
-                throw new DatabaseCorruptedException(ExceptionGetDataDataEntryNotExist, e);
-            }
-
-            if (postEntity.ExtraContent == null)
-            {
-                _logger.LogWarning(LogGetDataNoFormat);
-                var format = Image.DetectFormat(data);
-                postEntity.ExtraContent = format.DefaultMimeType;
-                await _database.SaveChangesAsync();
-            }
-
-            return new PostData
-            {
-                Data = data,
-                Type = postEntity.ExtraContent,
-                ETag = tag,
-                LastModified = postEntity.LastUpdated
-            };
-        }
-
-        public async Task<TimelinePost> CreateTextPost(string timelineName, long authorId, string text, DateTime? time)
-        {
-            time = time?.MyToUtc();
-
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-            if (text == null)
-                throw new ArgumentNullException(nameof(text));
-
-            var timelineId = await FindTimelineId(timelineName);
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
-
-            var author = await _userService.GetUserById(authorId);
-
-            var currentTime = _clock.GetCurrentTime();
-            var finalTime = time ?? currentTime;
-
-            timelineEntity.CurrentPostLocalId += 1;
-
-            var postEntity = new TimelinePostEntity
-            {
-                LocalId = timelineEntity.CurrentPostLocalId,
-                ContentType = TimelinePostContentTypes.Text,
-                Content = text,
-                AuthorId = authorId,
-                TimelineId = timelineId,
-                Time = finalTime,
-                LastUpdated = currentTime
-            };
-            _database.TimelinePosts.Add(postEntity);
-            await _database.SaveChangesAsync();
-
-
-            return new TimelinePost(
-                id: postEntity.LocalId,
-                content: new TextTimelinePostContent(text),
-                time: finalTime,
-                author: author,
-                lastUpdated: currentTime,
-                timelineName: timelineName
-            );
-        }
-
-        public async Task<TimelinePost> CreateImagePost(string timelineName, long authorId, byte[] data, DateTime? time)
-        {
-            time = time?.MyToUtc();
-
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-            if (data == null)
-                throw new ArgumentNullException(nameof(data));
-
-            var timelineId = await FindTimelineId(timelineName);
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
-
-            var author = await _userService.GetUserById(authorId);
-
-            var imageFormat = await _imageValidator.Validate(data);
-
-            var imageFormatText = imageFormat.DefaultMimeType;
-
-            var tag = await _dataManager.RetainEntry(data);
-
-            var currentTime = _clock.GetCurrentTime();
-            var finalTime = time ?? currentTime;
-
-            timelineEntity.CurrentPostLocalId += 1;
-
-            var postEntity = new TimelinePostEntity
-            {
-                LocalId = timelineEntity.CurrentPostLocalId,
-                ContentType = TimelinePostContentTypes.Image,
-                Content = tag,
-                ExtraContent = imageFormatText,
-                AuthorId = authorId,
-                TimelineId = timelineId,
-                Time = finalTime,
-                LastUpdated = currentTime
-            };
-            _database.TimelinePosts.Add(postEntity);
-            await _database.SaveChangesAsync();
-
-            return new TimelinePost(
-                id: postEntity.LocalId,
-                content: new ImageTimelinePostContent(tag),
-                time: finalTime,
-                author: author,
-                lastUpdated: currentTime,
-                timelineName: timelineName
-            );
-        }
-
-        public async Task DeletePost(string timelineName, long id)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var post = await _database.TimelinePosts.Where(p => p.TimelineId == timelineId && p.LocalId == id).SingleOrDefaultAsync();
-
-            if (post == null)
-                throw new TimelinePostNotExistException(timelineName, id, false);
-
-            if (post.Content == null)
-                throw new TimelinePostNotExistException(timelineName, id, true);
-
-            string? dataTag = null;
-
-            if (post.ContentType == TimelinePostContentTypes.Image)
-            {
-                dataTag = post.Content;
-            }
-
-            post.Content = null;
-            post.LastUpdated = _clock.GetCurrentTime();
-
-            await _database.SaveChangesAsync();
-
-            if (dataTag != null)
-            {
-                await _dataManager.FreeEntry(dataTag);
-            }
-        }
-
-        public async Task DeleteAllPostsOfUser(long userId)
-        {
-            var posts = await _database.TimelinePosts.Where(p => p.AuthorId == userId).ToListAsync();
-
-            var now = _clock.GetCurrentTime();
-
-            var dataTags = new List<string>();
-
-            foreach (var post in posts)
-            {
-                if (post.Content != null)
-                {
-                    if (post.ContentType == TimelinePostContentTypes.Image)
-                    {
-                        dataTags.Add(post.Content);
-                    }
-                    post.Content = null;
-                }
-                post.LastUpdated = now;
-            }
-
-            await _database.SaveChangesAsync();
-
-            foreach (var dataTag in dataTags)
-            {
-                await _dataManager.FreeEntry(dataTag);
-            }
-        }
-
-        public async Task ChangeProperty(string timelineName, TimelineChangePropertyRequest newProperties)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-            if (newProperties == null)
-                throw new ArgumentNullException(nameof(newProperties));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
-
-            var changed = false;
-
-            if (newProperties.Title != null)
-            {
-                changed = true;
-                timelineEntity.Title = newProperties.Title;
-            }
-
-            if (newProperties.Description != null)
-            {
-                changed = true;
-                timelineEntity.Description = newProperties.Description;
-            }
-
-            if (newProperties.Visibility.HasValue)
-            {
-                changed = true;
-                timelineEntity.Visibility = newProperties.Visibility.Value;
-            }
-
-            if (changed)
-            {
-                var currentTime = _clock.GetCurrentTime();
-                timelineEntity.LastModified = currentTime;
-            }
-
-            await _database.SaveChangesAsync();
-        }
-
-        public async Task ChangeMember(string timelineName, IList<string>? add, IList<string>? remove)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            List<string>? RemoveDuplicateAndCheckFormat(IList<string>? list, string paramName)
-            {
-                if (list != null)
-                {
-                    List<string> result = new List<string>();
-                    var count = list.Count;
-                    for (var index = 0; index < count; index++)
-                    {
-                        var username = list[index];
-                        if (result.Contains(username))
-                        {
-                            continue;
-                        }
-                        var (validationResult, message) = _usernameValidator.Validate(username);
-                        if (!validationResult)
-                            throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionChangeMemberUsernameBadFormat, index), nameof(paramName));
-                        result.Add(username);
-                    }
-                    return result;
-                }
-                else
-                {
-                    return null;
-                }
-            }
-            var simplifiedAdd = RemoveDuplicateAndCheckFormat(add, nameof(add));
-            var simplifiedRemove = RemoveDuplicateAndCheckFormat(remove, nameof(remove));
-
-            // remove those both in add and remove
-            if (simplifiedAdd != null && simplifiedRemove != null)
-            {
-                var usersToClean = simplifiedRemove.Where(u => simplifiedAdd.Contains(u)).ToList();
-                foreach (var u in usersToClean)
-                {
-                    simplifiedAdd.Remove(u);
-                    simplifiedRemove.Remove(u);
-                }
-
-                if (simplifiedAdd.Count == 0)
-                    simplifiedAdd = null;
-
-                if (simplifiedRemove.Count == 0)
-                    simplifiedRemove = null;
-            }
-
-            if (simplifiedAdd == null && simplifiedRemove == null)
-                return;
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            async Task<List<long>?> CheckExistenceAndGetId(List<string>? list)
-            {
-                if (list == null)
-                    return null;
-
-                List<long> result = new List<long>();
-                foreach (var username in list)
-                {
-                    result.Add(await _userService.GetUserIdByUsername(username));
-                }
-                return result;
-            }
-            var userIdsAdd = await CheckExistenceAndGetId(simplifiedAdd);
-            var userIdsRemove = await CheckExistenceAndGetId(simplifiedRemove);
-
-            if (userIdsAdd != null)
-            {
-                var membersToAdd = userIdsAdd.Select(id => new TimelineMemberEntity { UserId = id, TimelineId = timelineId }).ToList();
-                _database.TimelineMembers.AddRange(membersToAdd);
-            }
-
-            if (userIdsRemove != null)
-            {
-                var membersToRemove = await _database.TimelineMembers.Where(m => m.TimelineId == timelineId && userIdsRemove.Contains(m.UserId)).ToListAsync();
-                _database.TimelineMembers.RemoveRange(membersToRemove);
-            }
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).SingleAsync();
-            timelineEntity.LastModified = _clock.GetCurrentTime();
-
-            await _database.SaveChangesAsync();
-        }
-
-        public async Task<bool> HasManagePermission(string timelineName, long userId)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
-
-            return userId == timelineEntity.OwnerId;
-        }
-
-        public async Task<bool> HasReadPermission(string timelineName, long? visitorId)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.Visibility }).SingleAsync();
-
-            if (timelineEntity.Visibility == TimelineVisibility.Public)
-                return true;
-
-            if (timelineEntity.Visibility == TimelineVisibility.Register && visitorId != null)
-                return true;
-
-            if (visitorId == null)
-            {
-                return false;
-            }
-            else
-            {
-                var memberEntity = await _database.TimelineMembers.Where(m => m.UserId == visitorId && m.TimelineId == timelineId).SingleOrDefaultAsync();
-                return memberEntity != null;
-            }
-        }
-
-        public async Task<bool> HasPostModifyPermission(string timelineName, long postId, long modifierId, bool throwOnPostNotExist = false)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
-
-            var postEntity = await _database.TimelinePosts.Where(p => p.Id == postId).Select(p => new { p.Content, p.AuthorId }).SingleOrDefaultAsync();
-
-            if (postEntity == null)
-            {
-                if (throwOnPostNotExist)
-                    throw new TimelinePostNotExistException(timelineName, postId, false);
-                else
-                    return true;
-            }
-
-            if (postEntity.Content == null && throwOnPostNotExist)
-            {
-                throw new TimelinePostNotExistException(timelineName, postId, true);
-            }
-
-            return timelineEntity.OwnerId == modifierId || postEntity.AuthorId == modifierId;
-        }
-
-        public async Task<bool> IsMemberOf(string timelineName, long userId)
-        {
-            if (timelineName == null)
-                throw new ArgumentNullException(nameof(timelineName));
-
-            var timelineId = await FindTimelineId(timelineName);
-
-            var timelineEntity = await _database.Timelines.Where(t => t.Id == timelineId).Select(t => new { t.OwnerId }).SingleAsync();
-
-            if (userId == timelineEntity.OwnerId)
-                return true;
-
-            return await _database.TimelineMembers.AnyAsync(m => m.TimelineId == timelineId && m.UserId == userId);
-        }
-
-        public async Task<List<Models.Timeline>> GetTimelines(TimelineUserRelationship? relate = null, List<TimelineVisibility>? visibility = null)
-        {
-            List<TimelineEntity> entities;
-
-            IQueryable<TimelineEntity> ApplyTimelineVisibilityFilter(IQueryable<TimelineEntity> query)
-            {
-                if (visibility != null && visibility.Count != 0)
-                {
-                    return query.Where(t => visibility.Contains(t.Visibility));
-                }
-                return query;
-            }
-
-            bool allVisibilities = visibility == null || visibility.Count == 0;
-
-            if (relate == null)
-            {
-                entities = await ApplyTimelineVisibilityFilter(_database.Timelines).Include(t => t.Members).ToListAsync();
-            }
-            else
-            {
-                entities = new List<TimelineEntity>();
-
-                if ((relate.Type & TimelineUserRelationshipType.Own) != 0)
-                {
-                    entities.AddRange(await ApplyTimelineVisibilityFilter(_database.Timelines.Where(t => t.OwnerId == relate.UserId)).Include(t => t.Members).ToListAsync());
-                }
-
-                if ((relate.Type & TimelineUserRelationshipType.Join) != 0)
-                {
-                    entities.AddRange(await ApplyTimelineVisibilityFilter(_database.TimelineMembers.Where(m => m.UserId == relate.UserId).Include(m => m.Timeline).ThenInclude(t => t.Members).Select(m => m.Timeline)).ToListAsync());
-                }
-            }
-
-            var result = new List<Models.Timeline>();
-
-            foreach (var entity in entities)
-            {
-                result.Add(await MapTimelineFromEntity(entity));
-            }
-
-            return result;
-        }
-
-        public async Task<Models.Timeline> CreateTimeline(string name, long owner)
-        {
-            if (name == null)
-                throw new ArgumentNullException(nameof(name));
-
-            ValidateTimelineName(name, nameof(name));
-
-            var user = await _userService.GetUserById(owner);
-
-            var conflict = await _database.Timelines.AnyAsync(t => t.Name == name);
-
-            if (conflict)
-                throw new EntityAlreadyExistException(EntityNames.Timeline, null, ExceptionTimelineNameConflict);
-
-            var newEntity = CreateNewTimelineEntity(name, user.Id!.Value);
-
-            _database.Timelines.Add(newEntity);
-            await _database.SaveChangesAsync();
-
-            return await MapTimelineFromEntity(newEntity);
-        }
-
-        public async Task DeleteTimeline(string name)
-        {
-            if (name == null)
-                throw new ArgumentNullException(nameof(name));
-
-            ValidateTimelineName(name, nameof(name));
-
-            var entity = await _database.Timelines.Where(t => t.Name == name).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new TimelineNotExistException(name);
-
-            _database.Timelines.Remove(entity);
-            await _database.SaveChangesAsync();
-        }
-
-        public async Task<Models.Timeline> ChangeTimelineName(string oldTimelineName, string newTimelineName)
-        {
-            if (oldTimelineName == null)
-                throw new ArgumentNullException(nameof(oldTimelineName));
-            if (newTimelineName == null)
-                throw new ArgumentNullException(nameof(newTimelineName));
-
-            ValidateTimelineName(oldTimelineName, nameof(oldTimelineName));
-            ValidateTimelineName(newTimelineName, nameof(newTimelineName));
-
-            var entity = await _database.Timelines.Include(t => t.Members).Where(t => t.Name == oldTimelineName).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new TimelineNotExistException(oldTimelineName);
-
-            if (oldTimelineName == newTimelineName)
-                return await MapTimelineFromEntity(entity);
-
-            var conflict = await _database.Timelines.AnyAsync(t => t.Name == newTimelineName);
-
-            if (conflict)
-                throw new EntityAlreadyExistException(EntityNames.Timeline, null, ExceptionTimelineNameConflict);
-
-            var now = _clock.GetCurrentTime();
-
-            entity.Name = newTimelineName;
-            entity.NameLastModified = now;
-            entity.LastModified = now;
-
-            await _database.SaveChangesAsync();
-
-            return await MapTimelineFromEntity(entity);
-        }
-    }
-}
diff --git a/Timeline/Services/UserAvatarService.cs b/Timeline/Services/UserAvatarService.cs
deleted file mode 100644
index b41c45fd..00000000
--- a/Timeline/Services/UserAvatarService.cs
+++ /dev/null
@@ -1,265 +0,0 @@
-﻿using Microsoft.AspNetCore.Hosting;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using System;
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Helpers;
-using Timeline.Services.Exceptions;
-
-namespace Timeline.Services
-{
-    public class Avatar
-    {
-        public string Type { get; set; } = default!;
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "DTO Object")]
-        public byte[] Data { get; set; } = default!;
-    }
-
-    public class AvatarInfo
-    {
-        public Avatar Avatar { get; set; } = default!;
-        public DateTime LastModified { get; set; }
-
-        public CacheableData ToCacheableData()
-        {
-            return new CacheableData(Avatar.Type, Avatar.Data, LastModified);
-        }
-    }
-
-    /// <summary>
-    /// Provider for default user avatar.
-    /// </summary>
-    /// <remarks>
-    /// Mainly for unit tests.
-    /// </remarks>
-    public interface IDefaultUserAvatarProvider
-    {
-        /// <summary>
-        /// Get the etag of default avatar.
-        /// </summary>
-        /// <returns></returns>
-        Task<string> GetDefaultAvatarETag();
-
-        /// <summary>
-        /// Get the default avatar.
-        /// </summary>
-        Task<AvatarInfo> GetDefaultAvatar();
-    }
-
-    public interface IUserAvatarService
-    {
-        /// <summary>
-        /// Get the etag of a user's avatar. Warning: This method does not check the user existence.
-        /// </summary>
-        /// <param name="id">The id of the user to get avatar etag of.</param>
-        /// <returns>The etag.</returns>
-        Task<string> GetAvatarETag(long id);
-
-        /// <summary>
-        /// Get avatar of a user. If the user has no avatar set, a default one is returned. Warning: This method does not check the user existence.
-        /// </summary>
-        /// <param name="id">The id of the user to get avatar of.</param>
-        /// <returns>The avatar info.</returns>
-        Task<AvatarInfo> GetAvatar(long id);
-
-        /// <summary>
-        /// Set avatar for a user. Warning: This method does not check the user existence.
-        /// </summary>
-        /// <param name="id">The id of the user to set avatar for.</param>
-        /// <param name="avatar">The avatar. Can be null to delete the saved avatar.</param>
-        /// <returns>The etag of the avatar.</returns>
-        /// <exception cref="ArgumentException">Thrown if any field in <paramref name="avatar"/> is null when <paramref name="avatar"/> is not null.</exception>
-        /// <exception cref="ImageException">Thrown if avatar is of bad format.</exception>
-        Task<string> SetAvatar(long id, Avatar? avatar);
-    }
-
-    // TODO! : Make this configurable.
-    public class DefaultUserAvatarProvider : IDefaultUserAvatarProvider
-    {
-        private readonly IETagGenerator _eTagGenerator;
-
-        private readonly string _avatarPath;
-
-        private byte[] _cacheData = default!;
-        private DateTime _cacheLastModified;
-        private string _cacheETag = default!;
-
-        public DefaultUserAvatarProvider(IWebHostEnvironment environment, IETagGenerator eTagGenerator)
-        {
-            _avatarPath = Path.Combine(environment.ContentRootPath, "default-avatar.png");
-            _eTagGenerator = eTagGenerator;
-        }
-
-        private async Task CheckAndInit()
-        {
-            var path = _avatarPath;
-            if (_cacheData == null || File.GetLastWriteTime(path) > _cacheLastModified)
-            {
-                _cacheData = await File.ReadAllBytesAsync(path);
-                _cacheLastModified = File.GetLastWriteTime(path);
-                _cacheETag = await _eTagGenerator.Generate(_cacheData);
-            }
-        }
-
-        public async Task<string> GetDefaultAvatarETag()
-        {
-            await CheckAndInit();
-            return _cacheETag;
-        }
-
-        public async Task<AvatarInfo> GetDefaultAvatar()
-        {
-            await CheckAndInit();
-            return new AvatarInfo
-            {
-                Avatar = new Avatar
-                {
-                    Type = "image/png",
-                    Data = _cacheData
-                },
-                LastModified = _cacheLastModified
-            };
-        }
-    }
-
-    public class UserAvatarService : IUserAvatarService
-    {
-
-        private readonly ILogger<UserAvatarService> _logger;
-
-        private readonly DatabaseContext _database;
-
-        private readonly IDefaultUserAvatarProvider _defaultUserAvatarProvider;
-
-        private readonly IImageValidator _imageValidator;
-
-        private readonly IDataManager _dataManager;
-
-        private readonly IClock _clock;
-
-        public UserAvatarService(
-            ILogger<UserAvatarService> logger,
-            DatabaseContext database,
-            IDefaultUserAvatarProvider defaultUserAvatarProvider,
-            IImageValidator imageValidator,
-            IDataManager dataManager,
-            IClock clock)
-        {
-            _logger = logger;
-            _database = database;
-            _defaultUserAvatarProvider = defaultUserAvatarProvider;
-            _imageValidator = imageValidator;
-            _dataManager = dataManager;
-            _clock = clock;
-        }
-
-        public async Task<string> GetAvatarETag(long id)
-        {
-            var eTag = (await _database.UserAvatars.Where(a => a.UserId == id).Select(a => new { a.DataTag }).SingleOrDefaultAsync())?.DataTag;
-            if (eTag == null)
-                return await _defaultUserAvatarProvider.GetDefaultAvatarETag();
-            else
-                return eTag;
-        }
-
-        public async Task<AvatarInfo> GetAvatar(long id)
-        {
-            var avatarEntity = await _database.UserAvatars.Where(a => a.UserId == id).Select(a => new { a.Type, a.DataTag, a.LastModified }).SingleOrDefaultAsync();
-
-            if (avatarEntity != null)
-            {
-                if (!LanguageHelper.AreSame(avatarEntity.DataTag == null, avatarEntity.Type == null))
-                {
-                    var message = Resources.Services.UserAvatarService.ExceptionDatabaseCorruptedDataAndTypeNotSame;
-                    _logger.LogCritical(message);
-                    throw new DatabaseCorruptedException(message);
-                }
-
-
-                if (avatarEntity.DataTag != null)
-                {
-                    var data = await _dataManager.GetEntry(avatarEntity.DataTag);
-                    return new AvatarInfo
-                    {
-                        Avatar = new Avatar
-                        {
-                            Type = avatarEntity.Type!,
-                            Data = data
-                        },
-                        LastModified = avatarEntity.LastModified
-                    };
-                }
-            }
-            var defaultAvatar = await _defaultUserAvatarProvider.GetDefaultAvatar();
-            if (avatarEntity != null)
-                defaultAvatar.LastModified = defaultAvatar.LastModified > avatarEntity.LastModified ? defaultAvatar.LastModified : avatarEntity.LastModified;
-            return defaultAvatar;
-        }
-
-        public async Task<string> SetAvatar(long id, Avatar? avatar)
-        {
-            if (avatar != null)
-            {
-                if (avatar.Data == null)
-                    throw new ArgumentException(Resources.Services.UserAvatarService.ExceptionAvatarDataNull, nameof(avatar));
-                if (string.IsNullOrEmpty(avatar.Type))
-                    throw new ArgumentException(Resources.Services.UserAvatarService.ExceptionAvatarTypeNullOrEmpty, nameof(avatar));
-            }
-
-            var avatarEntity = await _database.UserAvatars.Where(a => a.UserId == id).SingleOrDefaultAsync();
-
-            if (avatar == null)
-            {
-                if (avatarEntity != null && avatarEntity.DataTag != null)
-                {
-                    await _dataManager.FreeEntry(avatarEntity.DataTag);
-                    avatarEntity.DataTag = null;
-                    avatarEntity.Type = null;
-                    avatarEntity.LastModified = _clock.GetCurrentTime();
-                    await _database.SaveChangesAsync();
-                    _logger.LogInformation(Resources.Services.UserAvatarService.LogUpdateEntity);
-                }
-                return await _defaultUserAvatarProvider.GetDefaultAvatarETag();
-            }
-            else
-            {
-                await _imageValidator.Validate(avatar.Data, avatar.Type, true);
-                var tag = await _dataManager.RetainEntry(avatar.Data);
-                var oldTag = avatarEntity?.DataTag;
-                var create = avatarEntity == null;
-                if (avatarEntity == null)
-                {
-                    avatarEntity = new UserAvatarEntity();
-                    _database.UserAvatars.Add(avatarEntity);
-                }
-                avatarEntity.DataTag = tag;
-                avatarEntity.Type = avatar.Type;
-                avatarEntity.LastModified = _clock.GetCurrentTime();
-                avatarEntity.UserId = id;
-                await _database.SaveChangesAsync();
-                _logger.LogInformation(create ?
-                    Resources.Services.UserAvatarService.LogCreateEntity
-                    : Resources.Services.UserAvatarService.LogUpdateEntity);
-                if (oldTag != null)
-                {
-                    await _dataManager.FreeEntry(oldTag);
-                }
-
-                return avatarEntity.DataTag;
-            }
-        }
-    }
-
-    public static class UserAvatarServiceCollectionExtensions
-    {
-        public static void AddUserAvatarService(this IServiceCollection services)
-        {
-            services.AddScoped<IUserAvatarService, UserAvatarService>();
-            services.AddScoped<IDefaultUserAvatarProvider, DefaultUserAvatarProvider>();
-        }
-    }
-}
diff --git a/Timeline/Services/UserDeleteService.cs b/Timeline/Services/UserDeleteService.cs
deleted file mode 100644
index 845de573..00000000
--- a/Timeline/Services/UserDeleteService.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-﻿using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Helpers;
-using Timeline.Models.Validation;
-using static Timeline.Resources.Services.UserService;
-
-namespace Timeline.Services
-{
-    public interface IUserDeleteService
-    {
-        /// <summary>
-        /// Delete a user of given username.
-        /// </summary>
-        /// <param name="username">Username of the user to delete. Can't be null.</param>
-        /// <returns>True if user is deleted, false if user not exist.</returns>
-        /// <exception cref="ArgumentNullException">Thrown if <paramref name="username"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
-        Task<bool> DeleteUser(string username);
-    }
-
-    public class UserDeleteService : IUserDeleteService
-    {
-        private readonly ILogger<UserDeleteService> _logger;
-
-        private readonly DatabaseContext _databaseContext;
-
-        private readonly ITimelineService _timelineService;
-
-        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
-
-        public UserDeleteService(ILogger<UserDeleteService> logger, DatabaseContext databaseContext, ITimelineService timelineService)
-        {
-            _logger = logger;
-            _databaseContext = databaseContext;
-            _timelineService = timelineService;
-        }
-
-        public async Task<bool> DeleteUser(string username)
-        {
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-
-            if (!_usernameValidator.Validate(username, out var message))
-            {
-                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionUsernameBadFormat, message), nameof(username));
-            }
-
-            var user = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
-            if (user == null)
-                return false;
-
-            await _timelineService.DeleteAllPostsOfUser(user.Id);
-
-            _databaseContext.Users.Remove(user);
-
-            await _databaseContext.SaveChangesAsync();
-            _logger.LogInformation(Log.Format(LogDatabaseRemove, ("Id", user.Id), ("Username", user.Username)));
-
-            return true;
-        }
-
-    }
-}
diff --git a/Timeline/Services/UserRoleConvert.cs b/Timeline/Services/UserRoleConvert.cs
deleted file mode 100644
index f27ee1bb..00000000
--- a/Timeline/Services/UserRoleConvert.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Timeline.Entities;
-
-namespace Timeline.Services
-{
-    public static class UserRoleConvert
-    {
-        public const string UserRole = UserRoles.User;
-        public const string AdminRole = UserRoles.Admin;
-
-        public static string[] ToArray(bool administrator)
-        {
-            return administrator ? new string[] { UserRole, AdminRole } : new string[] { UserRole };
-        }
-
-        public static string[] ToArray(string s)
-        {
-            return s.Split(',').ToArray();
-        }
-
-        public static bool ToBool(IReadOnlyCollection<string> roles)
-        {
-            return roles.Contains(AdminRole);
-        }
-
-        public static string ToString(IReadOnlyCollection<string> roles)
-        {
-            return string.Join(',', roles);
-        }
-
-        public static string ToString(bool administrator)
-        {
-            return administrator ? UserRole + "," + AdminRole : UserRole;
-        }
-
-        public static bool ToBool(string s)
-        {
-            return s.Contains("admin", StringComparison.InvariantCulture);
-        }
-    }
-}
diff --git a/Timeline/Services/UserService.cs b/Timeline/Services/UserService.cs
deleted file mode 100644
index 821bc33d..00000000
--- a/Timeline/Services/UserService.cs
+++ /dev/null
@@ -1,437 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Logging;
-using System;
-using System.Globalization;
-using System.Linq;
-using System.Threading.Tasks;
-using Timeline.Entities;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Models.Validation;
-using Timeline.Services.Exceptions;
-using static Timeline.Resources.Services.UserService;
-
-namespace Timeline.Services
-{
-    public interface IUserService
-    {
-        /// <summary>
-        /// Try to verify the given username and password.
-        /// </summary>
-        /// <param name="username">The username of the user to verify.</param>
-        /// <param name="password">The password of the user to verify.</param>
-        /// <returns>The user info and auth info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> or <paramref name="password"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format or <paramref name="password"/> is empty.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
-        /// <exception cref="BadPasswordException">Thrown when password is wrong.</exception>
-        Task<User> VerifyCredential(string username, string password);
-
-        /// <summary>
-        /// Try to get a user by id.
-        /// </summary>
-        /// <param name="id">The id of the user.</param>
-        /// <returns>The user info.</returns>
-        /// <exception cref="UserNotExistException">Thrown when the user with given id does not exist.</exception>
-        Task<User> GetUserById(long id);
-
-        /// <summary>
-        /// Get the user info of given username.
-        /// </summary>
-        /// <param name="username">Username of the user.</param>
-        /// <returns>The info of the user.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
-        Task<User> GetUserByUsername(string username);
-
-        /// <summary>
-        /// Get the user id of given username.
-        /// </summary>
-        /// <param name="username">Username of the user.</param>
-        /// <returns>The id of the user.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the user with given username does not exist.</exception>
-        Task<long> GetUserIdByUsername(string username);
-
-        /// <summary>
-        /// List all users.
-        /// </summary>
-        /// <returns>The user info of users.</returns>
-        Task<User[]> GetUsers();
-
-        /// <summary>
-        /// Create a user with given info.
-        /// </summary>
-        /// <param name="info">The info of new user.</param>
-        /// <returns>The the new user.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="info"/>is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when some fields in <paramref name="info"/> is bad.</exception>
-        /// <exception cref="EntityAlreadyExistException">Thrown when a user with given username already exists.</exception>
-        /// <remarks>
-        /// <see cref="User.Username"/> must not be null and must be a valid username.
-        /// <see cref="User.Password"/> must not be null or empty.
-        /// <see cref="User.Administrator"/> is false by default (null).
-        /// <see cref="User.Nickname"/> must be a valid nickname if set. It is empty by default.
-        /// Other fields are ignored.
-        /// </remarks>
-        Task<User> CreateUser(User info);
-
-        /// <summary>
-        /// Modify a user's info.
-        /// </summary>
-        /// <param name="id">The id of the user.</param>
-        /// <param name="info">The new info. May be null.</param>
-        /// <returns>The new user info.</returns>
-        /// <exception cref="ArgumentException">Thrown when some fields in <paramref name="info"/> is bad.</exception>
-        /// <exception cref="UserNotExistException">Thrown when user with given id does not exist.</exception>
-        /// <remarks>
-        /// Only <see cref="User.Username"/>, <see cref="User.Administrator"/>, <see cref="User.Password"/> and <see cref="User.Nickname"/> will be used.
-        /// If null, then not change.
-        /// Other fields are ignored.
-        /// Version will increase if password is changed.
-        /// 
-        /// <see cref="User.Username"/> must be a valid username if set.
-        /// <see cref="User.Password"/> can't be empty if set.
-        /// <see cref="User.Nickname"/> must be a valid nickname if set.
-        /// 
-        /// </remarks>
-        /// <seealso cref="ModifyUser(string, User)"/>
-        Task<User> ModifyUser(long id, User? info);
-
-        /// <summary>
-        /// Modify a user's info.
-        /// </summary>
-        /// <param name="username">The username of the user.</param>
-        /// <param name="info">The new info. May be null.</param>
-        /// <returns>The new user info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format or some fields in <paramref name="info"/> is bad.</exception>
-        /// <exception cref="UserNotExistException">Thrown when user with given id does not exist.</exception>
-        /// <exception cref="EntityAlreadyExistException">Thrown when user with the newusername already exist.</exception>
-        /// <remarks>
-        /// Only <see cref="User.Administrator"/>, <see cref="User.Password"/> and <see cref="User.Nickname"/> will be used.
-        /// If null, then not change.
-        /// Other fields are ignored.
-        /// After modified, even if nothing is changed, version will increase.
-        /// 
-        /// <see cref="User.Username"/> must be a valid username if set.
-        /// <see cref="User.Password"/> can't be empty if set.
-        /// <see cref="User.Nickname"/> must be a valid nickname if set.
-        /// 
-        /// Note: Whether <see cref="User.Version"/> is set or not, version will increase and not set to the specified value if there is one.
-        /// </remarks>
-        /// <seealso cref="ModifyUser(long, User)"/>
-        Task<User> ModifyUser(string username, User? info);
-
-        /// <summary>
-        /// Try to change a user's password with old password.
-        /// </summary>
-        /// <param name="id">The id of user to change password of.</param>
-        /// <param name="oldPassword">Old password.</param>
-        /// <param name="newPassword">New password.</param>
-        /// <exception cref="ArgumentNullException">Thrown if <paramref name="oldPassword"/> or <paramref name="newPassword"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown if <paramref name="oldPassword"/> or <paramref name="newPassword"/> is empty.</exception>
-        /// <exception cref="UserNotExistException">Thrown if the user with given username does not exist.</exception>
-        /// <exception cref="BadPasswordException">Thrown if the old password is wrong.</exception>
-        Task ChangePassword(long id, string oldPassword, string newPassword);
-    }
-
-    public class UserService : IUserService
-    {
-        private readonly ILogger<UserService> _logger;
-        private readonly IClock _clock;
-
-        private readonly DatabaseContext _databaseContext;
-
-        private readonly IPasswordService _passwordService;
-
-        private readonly UsernameValidator _usernameValidator = new UsernameValidator();
-        private readonly NicknameValidator _nicknameValidator = new NicknameValidator();
-        public UserService(ILogger<UserService> logger, DatabaseContext databaseContext, IPasswordService passwordService, IClock clock)
-        {
-            _logger = logger;
-            _clock = clock;
-            _databaseContext = databaseContext;
-            _passwordService = passwordService;
-        }
-
-        private void CheckUsernameFormat(string username, string? paramName)
-        {
-            if (!_usernameValidator.Validate(username, out var message))
-            {
-                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionUsernameBadFormat, message), paramName);
-            }
-        }
-
-        private static void CheckPasswordFormat(string password, string? paramName)
-        {
-            if (password.Length == 0)
-            {
-                throw new ArgumentException(ExceptionPasswordEmpty, paramName);
-            }
-        }
-
-        private void CheckNicknameFormat(string nickname, string? paramName)
-        {
-            if (!_nicknameValidator.Validate(nickname, out var message))
-            {
-                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, ExceptionNicknameBadFormat, message), paramName);
-            }
-        }
-
-        private static void ThrowUsernameConflict()
-        {
-            throw new EntityAlreadyExistException(EntityNames.User, ExceptionUsernameConflict);
-        }
-
-        private static User CreateUserFromEntity(UserEntity entity)
-        {
-            return new User
-            {
-                UniqueId = entity.UniqueId,
-                Username = entity.Username,
-                Administrator = UserRoleConvert.ToBool(entity.Roles),
-                Nickname = string.IsNullOrEmpty(entity.Nickname) ? entity.Username : entity.Nickname,
-                Id = entity.Id,
-                Version = entity.Version,
-                CreateTime = entity.CreateTime,
-                UsernameChangeTime = entity.UsernameChangeTime,
-                LastModified = entity.LastModified
-            };
-        }
-
-        public async Task<User> VerifyCredential(string username, string password)
-        {
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-            if (password == null)
-                throw new ArgumentNullException(nameof(password));
-
-            CheckUsernameFormat(username, nameof(username));
-            CheckPasswordFormat(password, nameof(password));
-
-            var entity = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new UserNotExistException(username);
-
-            if (!_passwordService.VerifyPassword(entity.Password, password))
-                throw new BadPasswordException(password);
-
-            return CreateUserFromEntity(entity);
-        }
-
-        public async Task<User> GetUserById(long id)
-        {
-            var user = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
-
-            if (user == null)
-                throw new UserNotExistException(id);
-
-            return CreateUserFromEntity(user);
-        }
-
-        public async Task<User> GetUserByUsername(string username)
-        {
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-
-            CheckUsernameFormat(username, nameof(username));
-
-            var entity = await _databaseContext.Users.Where(user => user.Username == username).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new UserNotExistException(username);
-
-            return CreateUserFromEntity(entity);
-        }
-
-        public async Task<long> GetUserIdByUsername(string username)
-        {
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-
-            CheckUsernameFormat(username, nameof(username));
-
-            var entity = await _databaseContext.Users.Where(user => user.Username == username).Select(u => new { u.Id }).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new UserNotExistException(username);
-
-            return entity.Id;
-        }
-
-        public async Task<User[]> GetUsers()
-        {
-            var entities = await _databaseContext.Users.ToArrayAsync();
-            return entities.Select(user => CreateUserFromEntity(user)).ToArray();
-        }
-
-        public async Task<User> CreateUser(User info)
-        {
-            if (info == null)
-                throw new ArgumentNullException(nameof(info));
-
-            if (info.Username == null)
-                throw new ArgumentException(ExceptionUsernameNull, nameof(info));
-            CheckUsernameFormat(info.Username, nameof(info));
-
-            if (info.Password == null)
-                throw new ArgumentException(ExceptionPasswordNull, nameof(info));
-            CheckPasswordFormat(info.Password, nameof(info));
-
-            if (info.Nickname != null)
-                CheckNicknameFormat(info.Nickname, nameof(info));
-
-            var username = info.Username;
-
-            var conflict = await _databaseContext.Users.AnyAsync(u => u.Username == username);
-            if (conflict)
-                ThrowUsernameConflict();
-
-            var administrator = info.Administrator ?? false;
-            var password = info.Password;
-            var nickname = info.Nickname;
-
-            var newEntity = new UserEntity
-            {
-                Username = username,
-                Password = _passwordService.HashPassword(password),
-                Roles = UserRoleConvert.ToString(administrator),
-                Nickname = nickname,
-                Version = 1
-            };
-            _databaseContext.Users.Add(newEntity);
-            await _databaseContext.SaveChangesAsync();
-
-            _logger.LogInformation(Log.Format(LogDatabaseCreate,
-                ("Id", newEntity.Id), ("Username", username), ("Administrator", administrator)));
-
-            return CreateUserFromEntity(newEntity);
-        }
-
-        private void ValidateModifyUserInfo(User? info)
-        {
-            if (info != null)
-            {
-                if (info.Username != null)
-                    CheckUsernameFormat(info.Username, nameof(info));
-
-                if (info.Password != null)
-                    CheckPasswordFormat(info.Password, nameof(info));
-
-                if (info.Nickname != null)
-                    CheckNicknameFormat(info.Nickname, nameof(info));
-            }
-        }
-
-        private async Task UpdateUserEntity(UserEntity entity, User? info)
-        {
-            if (info != null)
-            {
-                var now = _clock.GetCurrentTime();
-                bool updateLastModified = false;
-
-                var username = info.Username;
-                if (username != null && username != entity.Username)
-                {
-                    var conflict = await _databaseContext.Users.AnyAsync(u => u.Username == username);
-                    if (conflict)
-                        ThrowUsernameConflict();
-
-                    entity.Username = username;
-                    entity.UsernameChangeTime = now;
-                    updateLastModified = true;
-                }
-
-                var password = info.Password;
-                if (password != null)
-                {
-                    entity.Password = _passwordService.HashPassword(password);
-                    entity.Version += 1;
-                }
-
-                var administrator = info.Administrator;
-                if (administrator.HasValue && UserRoleConvert.ToBool(entity.Roles) != administrator)
-                {
-                    entity.Roles = UserRoleConvert.ToString(administrator.Value);
-                    updateLastModified = true;
-                }
-
-                var nickname = info.Nickname;
-                if (nickname != null && nickname != entity.Nickname)
-                {
-                    entity.Nickname = nickname;
-                    updateLastModified = true;
-                }
-
-                if (updateLastModified)
-                {
-                    entity.LastModified = now;
-                }
-            }
-        }
-
-
-        public async Task<User> ModifyUser(long id, User? info)
-        {
-            ValidateModifyUserInfo(info);
-
-            var entity = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
-            if (entity == null)
-                throw new UserNotExistException(id);
-
-            await UpdateUserEntity(entity, info);
-
-            await _databaseContext.SaveChangesAsync();
-            _logger.LogInformation(LogDatabaseUpdate, ("Id", id));
-
-            return CreateUserFromEntity(entity);
-        }
-
-        public async Task<User> ModifyUser(string username, User? info)
-        {
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-            CheckUsernameFormat(username, nameof(username));
-
-            ValidateModifyUserInfo(info);
-
-            var entity = await _databaseContext.Users.Where(u => u.Username == username).SingleOrDefaultAsync();
-            if (entity == null)
-                throw new UserNotExistException(username);
-
-            await UpdateUserEntity(entity, info);
-
-            await _databaseContext.SaveChangesAsync();
-            _logger.LogInformation(LogDatabaseUpdate, ("Username", username));
-
-            return CreateUserFromEntity(entity);
-        }
-
-        public async Task ChangePassword(long id, string oldPassword, string newPassword)
-        {
-            if (oldPassword == null)
-                throw new ArgumentNullException(nameof(oldPassword));
-            if (newPassword == null)
-                throw new ArgumentNullException(nameof(newPassword));
-            CheckPasswordFormat(oldPassword, nameof(oldPassword));
-            CheckPasswordFormat(newPassword, nameof(newPassword));
-
-            var entity = await _databaseContext.Users.Where(u => u.Id == id).SingleOrDefaultAsync();
-
-            if (entity == null)
-                throw new UserNotExistException(id);
-
-            if (!_passwordService.VerifyPassword(entity.Password, oldPassword))
-                throw new BadPasswordException(oldPassword);
-
-            entity.Password = _passwordService.HashPassword(newPassword);
-            entity.Version += 1;
-            await _databaseContext.SaveChangesAsync();
-            _logger.LogInformation(Log.Format(LogDatabaseUpdate, ("Id", id), ("Operation", "Change password")));
-        }
-    }
-}
diff --git a/Timeline/Services/UserTokenException.cs b/Timeline/Services/UserTokenException.cs
deleted file mode 100644
index d25fabb3..00000000
--- a/Timeline/Services/UserTokenException.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-﻿using System;
-
-namespace Timeline.Services
-{
-
-    [Serializable]
-    public class UserTokenException : Exception
-    {
-        public UserTokenException() { }
-        public UserTokenException(string message) : base(message) { }
-        public UserTokenException(string message, Exception inner) : base(message, inner) { }
-        public UserTokenException(string token, string message) : base(message) { Token = token; }
-        public UserTokenException(string token, string message, Exception inner) : base(message, inner) { Token = token; }
-        protected UserTokenException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public string Token { get; private set; } = "";
-    }
-
-
-    [Serializable]
-    public class UserTokenTimeExpireException : UserTokenException
-    {
-        public UserTokenTimeExpireException() : base(Resources.Services.Exception.UserTokenTimeExpireException) { }
-        public UserTokenTimeExpireException(string message) : base(message) { }
-        public UserTokenTimeExpireException(string message, Exception inner) : base(message, inner) { }
-        public UserTokenTimeExpireException(string token, DateTime expireTime, DateTime verifyTime) : base(token, Resources.Services.Exception.UserTokenTimeExpireException) { ExpireTime = expireTime; VerifyTime = verifyTime; }
-        public UserTokenTimeExpireException(string token, DateTime expireTime, DateTime verifyTime, Exception inner) : base(token, Resources.Services.Exception.UserTokenTimeExpireException, inner) { ExpireTime = expireTime; VerifyTime = verifyTime; }
-        protected UserTokenTimeExpireException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public DateTime ExpireTime { get; private set; }
-
-        public DateTime VerifyTime { get; private set; }
-    }
-
-    [Serializable]
-    public class UserTokenBadVersionException : UserTokenException
-    {
-        public UserTokenBadVersionException() : base(Resources.Services.Exception.UserTokenBadVersionException) { }
-        public UserTokenBadVersionException(string message) : base(message) { }
-        public UserTokenBadVersionException(string message, Exception inner) : base(message, inner) { }
-        public UserTokenBadVersionException(string token, long tokenVersion, long requiredVersion) : base(token, Resources.Services.Exception.UserTokenBadVersionException) { TokenVersion = tokenVersion; RequiredVersion = requiredVersion; }
-        public UserTokenBadVersionException(string token, long tokenVersion, long requiredVersion, Exception inner) : base(token, Resources.Services.Exception.UserTokenBadVersionException, inner) { TokenVersion = tokenVersion; RequiredVersion = requiredVersion; }
-        protected UserTokenBadVersionException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-
-        public long TokenVersion { get; set; }
-
-        public long RequiredVersion { get; set; }
-    }
-
-    [Serializable]
-    public class UserTokenBadFormatException : UserTokenException
-    {
-        public UserTokenBadFormatException() : base(Resources.Services.Exception.UserTokenBadFormatException) { }
-        public UserTokenBadFormatException(string token) : base(token, Resources.Services.Exception.UserTokenBadFormatException) { }
-        public UserTokenBadFormatException(string token, string message) : base(token, message) { }
-        public UserTokenBadFormatException(string token, Exception inner) : base(token, Resources.Services.Exception.UserTokenBadFormatException, inner) { }
-        public UserTokenBadFormatException(string token, string message, Exception inner) : base(token, message, inner) { }
-        protected UserTokenBadFormatException(
-          System.Runtime.Serialization.SerializationInfo info,
-          System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
-    }
-}
diff --git a/Timeline/Services/UserTokenManager.cs b/Timeline/Services/UserTokenManager.cs
deleted file mode 100644
index 813dae67..00000000
--- a/Timeline/Services/UserTokenManager.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-﻿using Microsoft.Extensions.Logging;
-using System;
-using System.Threading.Tasks;
-using Timeline.Helpers;
-using Timeline.Models;
-using Timeline.Services.Exceptions;
-
-namespace Timeline.Services
-{
-    public class UserTokenCreateResult
-    {
-        public string Token { get; set; } = default!;
-        public User User { get; set; } = default!;
-    }
-
-    public interface IUserTokenManager
-    {
-        /// <summary>
-        /// Try to create a token for given username and password.
-        /// </summary>
-        /// <param name="username">The username.</param>
-        /// <param name="password">The password.</param>
-        /// <param name="expireAt">The expire time of the token.</param>
-        /// <returns>The created token and the user info.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="username"/> or <paramref name="password"/> is null.</exception>
-        /// <exception cref="ArgumentException">Thrown when <paramref name="username"/> is of bad format.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the user with <paramref name="username"/> does not exist.</exception>
-        /// <exception cref="BadPasswordException">Thrown when <paramref name="password"/> is wrong.</exception>
-        public Task<UserTokenCreateResult> CreateToken(string username, string password, DateTime? expireAt = null);
-
-        /// <summary>
-        /// Verify a token and get the saved user info. This also check the database for existence of the user.
-        /// </summary>
-        /// <param name="token">The token.</param>
-        /// <returns>The user stored in token.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="token"/> is null.</exception>
-        /// <exception cref="UserTokenTimeExpireException">Thrown when the token is expired.</exception>
-        /// <exception cref="UserTokenBadVersionException">Thrown when the token is of bad version.</exception>
-        /// <exception cref="UserTokenBadFormatException">Thrown when the token is of bad format.</exception>
-        /// <exception cref="UserNotExistException">Thrown when the user specified by the token does not exist. Usually the user had been deleted after the token was issued.</exception>
-        public Task<User> VerifyToken(string token);
-    }
-
-    public class UserTokenManager : IUserTokenManager
-    {
-        private readonly ILogger<UserTokenManager> _logger;
-        private readonly IUserService _userService;
-        private readonly IUserTokenService _userTokenService;
-        private readonly IClock _clock;
-
-        public UserTokenManager(ILogger<UserTokenManager> logger, IUserService userService, IUserTokenService userTokenService, IClock clock)
-        {
-            _logger = logger;
-            _userService = userService;
-            _userTokenService = userTokenService;
-            _clock = clock;
-        }
-
-        public async Task<UserTokenCreateResult> CreateToken(string username, string password, DateTime? expireAt = null)
-        {
-            expireAt = expireAt?.MyToUtc();
-
-            if (username == null)
-                throw new ArgumentNullException(nameof(username));
-            if (password == null)
-                throw new ArgumentNullException(nameof(password));
-
-            var user = await _userService.VerifyCredential(username, password);
-            var token = _userTokenService.GenerateToken(new UserTokenInfo { Id = user.Id!.Value, Version = user.Version!.Value, ExpireAt = expireAt });
-
-            return new UserTokenCreateResult { Token = token, User = user };
-        }
-
-
-        public async Task<User> VerifyToken(string token)
-        {
-            if (token == null)
-                throw new ArgumentNullException(nameof(token));
-
-            var tokenInfo = _userTokenService.VerifyToken(token);
-
-            if (tokenInfo.ExpireAt.HasValue)
-            {
-                var currentTime = _clock.GetCurrentTime();
-                if (tokenInfo.ExpireAt < currentTime)
-                    throw new UserTokenTimeExpireException(token, tokenInfo.ExpireAt.Value, currentTime);
-            }
-
-            var user = await _userService.GetUserById(tokenInfo.Id);
-
-            if (tokenInfo.Version < user.Version)
-                throw new UserTokenBadVersionException(token, tokenInfo.Version, user.Version.Value);
-
-            return user;
-        }
-    }
-}
diff --git a/Timeline/Services/UserTokenService.cs b/Timeline/Services/UserTokenService.cs
deleted file mode 100644
index 86f3a0f7..00000000
--- a/Timeline/Services/UserTokenService.cs
+++ /dev/null
@@ -1,149 +0,0 @@
-using Microsoft.Extensions.Options;
-using Microsoft.IdentityModel.Tokens;
-using System;
-using System.Globalization;
-using System.IdentityModel.Tokens.Jwt;
-using System.Linq;
-using System.Security.Claims;
-using Timeline.Configs;
-using Timeline.Entities;
-
-namespace Timeline.Services
-{
-    public class UserTokenInfo
-    {
-        public long Id { get; set; }
-        public long Version { get; set; }
-        public DateTime? ExpireAt { get; set; }
-    }
-
-    public interface IUserTokenService
-    {
-        /// <summary>
-        /// Create a token for a given token info.
-        /// </summary>
-        /// <param name="tokenInfo">The info to generate token.</param>
-        /// <returns>Return the generated token.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="tokenInfo"/> is null.</exception>
-        string GenerateToken(UserTokenInfo tokenInfo);
-
-        /// <summary>
-        /// Verify a token and get the saved info.
-        /// </summary>
-        /// <param name="token">The token to verify.</param>
-        /// <returns>The saved info in token.</returns>
-        /// <exception cref="ArgumentNullException">Thrown when <paramref name="token"/> is null.</exception>
-        /// <exception cref="UserTokenBadFormatException">Thrown when the token is of bad format.</exception>
-        /// <remarks>
-        /// If this method throw <see cref="UserTokenBadFormatException"/>, it usually means the token is not created by this service.
-        /// </remarks>
-        UserTokenInfo VerifyToken(string token);
-    }
-
-    public class JwtUserTokenService : IUserTokenService
-    {
-        private const string VersionClaimType = "timeline_version";
-
-        private readonly IOptionsMonitor<JwtConfiguration> _jwtConfig;
-        private readonly IClock _clock;
-
-        private readonly JwtSecurityTokenHandler _tokenHandler = new JwtSecurityTokenHandler();
-        private SymmetricSecurityKey _tokenSecurityKey;
-
-        public JwtUserTokenService(IOptionsMonitor<JwtConfiguration> jwtConfig, IClock clock, DatabaseContext database)
-        {
-            _jwtConfig = jwtConfig;
-            _clock = clock;
-
-            var key = database.JwtToken.Select(t => t.Key).SingleOrDefault();
-
-            if (key == null)
-            {
-                throw new InvalidOperationException(Resources.Services.UserTokenService.JwtKeyNotExist);
-            }
-
-            _tokenSecurityKey = new SymmetricSecurityKey(key);
-        }
-
-        public string GenerateToken(UserTokenInfo tokenInfo)
-        {
-            if (tokenInfo == null)
-                throw new ArgumentNullException(nameof(tokenInfo));
-
-            var config = _jwtConfig.CurrentValue;
-
-            var identity = new ClaimsIdentity();
-            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, tokenInfo.Id.ToString(CultureInfo.InvariantCulture.NumberFormat), ClaimValueTypes.Integer64));
-            identity.AddClaim(new Claim(VersionClaimType, tokenInfo.Version.ToString(CultureInfo.InvariantCulture.NumberFormat), ClaimValueTypes.Integer64));
-
-            var tokenDescriptor = new SecurityTokenDescriptor()
-            {
-                Subject = identity,
-                Issuer = config.Issuer,
-                Audience = config.Audience,
-                SigningCredentials = new SigningCredentials(_tokenSecurityKey, SecurityAlgorithms.HmacSha384),
-                IssuedAt = _clock.GetCurrentTime(),
-                Expires = tokenInfo.ExpireAt.GetValueOrDefault(_clock.GetCurrentTime().AddSeconds(config.DefaultExpireOffset)),
-                NotBefore = _clock.GetCurrentTime() // I must explicitly set this or it will use the current time by default and mock is not work in which case test will not pass.
-            };
-
-            var token = _tokenHandler.CreateToken(tokenDescriptor);
-            var tokenString = _tokenHandler.WriteToken(token);
-
-            return tokenString;
-        }
-
-
-        public UserTokenInfo VerifyToken(string token)
-        {
-            if (token == null)
-                throw new ArgumentNullException(nameof(token));
-
-            var config = _jwtConfig.CurrentValue;
-            try
-            {
-                var principal = _tokenHandler.ValidateToken(token, new TokenValidationParameters
-                {
-                    ValidateIssuer = true,
-                    ValidateAudience = true,
-                    ValidateIssuerSigningKey = true,
-                    ValidateLifetime = false,
-                    ValidIssuer = config.Issuer,
-                    ValidAudience = config.Audience,
-                    IssuerSigningKey = _tokenSecurityKey
-                }, out var t);
-
-                var idClaim = principal.FindFirstValue(ClaimTypes.NameIdentifier);
-                if (idClaim == null)
-                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.NoIdClaim);
-                if (!long.TryParse(idClaim, out var id))
-                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.IdClaimBadFormat);
-
-                var versionClaim = principal.FindFirstValue(VersionClaimType);
-                if (versionClaim == null)
-                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.NoVersionClaim);
-                if (!long.TryParse(versionClaim, out var version))
-                    throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.VersionClaimBadFormat);
-
-                var decodedToken = (JwtSecurityToken)t;
-                var exp = decodedToken.Payload.Exp;
-                DateTime? expireAt = null;
-                if (exp.HasValue)
-                {
-                    expireAt = EpochTime.DateTime(exp.Value);
-                }
-
-                return new UserTokenInfo
-                {
-                    Id = id,
-                    Version = version,
-                    ExpireAt = expireAt
-                };
-            }
-            catch (Exception e) when (e is SecurityTokenException || e is ArgumentException)
-            {
-                throw new JwtUserTokenBadFormatException(token, JwtUserTokenBadFormatException.ErrorKind.Other, e);
-            }
-        }
-    }
-}
diff --git a/Timeline/Startup.cs b/Timeline/Startup.cs
deleted file mode 100644
index 82c231cb..00000000
--- a/Timeline/Startup.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-using AutoMapper;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Infrastructure;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.DependencyInjection.Extensions;
-using Microsoft.Extensions.Hosting;
-using NSwag;
-using NSwag.Generation.Processors.Security;
-using System;
-using System.ComponentModel;
-using System.Net.Mime;
-using System.Text.Json.Serialization;
-using Timeline.Auth;
-using Timeline.Configs;
-using Timeline.Entities;
-using Timeline.Formatters;
-using Timeline.Helpers;
-using Timeline.Models.Converters;
-using Timeline.Routes;
-using Timeline.Services;
-using Timeline.Swagger;
-
-namespace Timeline
-{
-    public class Startup
-    {
-        private readonly bool disableFrontEnd;
-        private readonly bool useMockFrontEnd;
-
-        public Startup(IConfiguration configuration, IWebHostEnvironment environment)
-        {
-            Environment = environment;
-            Configuration = configuration;
-
-            disableFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.DisableFrontEndKey) ?? false;
-            useMockFrontEnd = Configuration.GetValue<bool?>(ApplicationConfiguration.UseMockFrontEndKey) ?? false;
-        }
-
-        public IWebHostEnvironment Environment { get; }
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            TypeDescriptor.AddAttributes(typeof(DateTime), new TypeConverterAttribute(typeof(MyDateTimeConverter)));
-
-            services.AddControllers(setup =>
-            {
-                setup.InputFormatters.Add(new StringInputFormatter());
-                setup.InputFormatters.Add(new BytesInputFormatter());
-                setup.Filters.Add(new ConsumesAttribute(MediaTypeNames.Application.Json, "text/json"));
-                setup.Filters.Add(new ProducesAttribute(MediaTypeNames.Application.Json, "text/json"));
-                setup.UseApiRoutePrefix("api");
-            })
-            .AddJsonOptions(options =>
-            {
-                options.JsonSerializerOptions.IgnoreNullValues = true;
-                options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
-                options.JsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
-            })
-            .ConfigureApiBehaviorOptions(options =>
-            {
-                options.InvalidModelStateResponseFactory = InvalidModelResponseFactory.Factory;
-            });
-
-            services.Configure<JwtConfiguration>(Configuration.GetSection("Jwt"));
-            services.AddAuthentication(AuthenticationConstants.Scheme)
-                .AddScheme<MyAuthenticationOptions, MyAuthenticationHandler>(AuthenticationConstants.Scheme, AuthenticationConstants.DisplayName, o => { });
-            services.AddAuthorization();
-
-            services.AddSingleton<IPathProvider, PathProvider>();
-
-            services.AddSingleton<IDatabaseBackupService, DatabaseBackupService>();
-
-            services.AddAutoMapper(GetType().Assembly);
-
-            services.AddTransient<IClock, Clock>();
-
-            services.AddTransient<IPasswordService, PasswordService>();
-            services.AddScoped<IUserService, UserService>();
-            services.AddScoped<IUserDeleteService, UserDeleteService>();
-            services.AddScoped<IUserTokenService, JwtUserTokenService>();
-            services.AddScoped<IUserTokenManager, UserTokenManager>();
-
-            services.AddScoped<IETagGenerator, ETagGenerator>();
-            services.AddScoped<IDataManager, DataManager>();
-
-            services.AddScoped<IImageValidator, ImageValidator>();
-
-            services.AddUserAvatarService();
-
-            services.AddScoped<ITimelineService, TimelineService>();
-
-            services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();
-
-            services.AddDbContext<DatabaseContext>((services, options) =>
-            {
-                var pathProvider = services.GetRequiredService<IPathProvider>();
-                options.UseSqlite($"Data Source={pathProvider.GetDatabaseFilePath()}");
-            });
-
-            services.AddSwaggerDocument(document =>
-            {
-                document.DocumentName = "Timeline";
-                document.Title = "Timeline REST API Reference";
-                document.Version = typeof(Startup).Assembly.GetName().Version?.ToString() ?? "unknown version";
-                document.DocumentProcessors.Add(new DocumentDescriptionDocumentProcessor());
-                document.DocumentProcessors.Add(
-                    new SecurityDefinitionAppender("JWT",
-                    new OpenApiSecurityScheme
-                    {
-                        Type = OpenApiSecuritySchemeType.ApiKey,
-                        Name = "Authorization",
-                        In = OpenApiSecurityApiKeyLocation.Header,
-                        Description = "Create token via `/api/token/create` ."
-                    }));
-                document.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("JWT"));
-                document.OperationProcessors.Add(new DefaultDescriptionOperationProcessor());
-                document.OperationProcessors.Add(new ByteDataRequestOperationProcessor());
-            });
-
-            if (!disableFrontEnd)
-            {
-                if (useMockFrontEnd)
-                {
-                    services.AddSpaStaticFiles(config =>
-                    {
-                        config.RootPath = "MockClientApp";
-                    });
-
-                }
-                else if (!Environment.IsDevelopment()) // In development, we don't want to serve dist. Or it will take precedence than front end dev server.
-                {
-                    services.AddSpaStaticFiles(config =>
-                    {
-                        config.RootPath = "ClientApp/dist";
-                    });
-                }
-            }
-        }
-
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app)
-        {
-            app.UseRouting();
-
-            if (!disableFrontEnd && (useMockFrontEnd || !Environment.IsDevelopment()))
-            {
-                app.UseSpaStaticFiles(new StaticFileOptions
-                {
-                    ServeUnknownFileTypes = true
-                });
-            }
-
-            app.UseOpenApi();
-            app.UseReDoc();
-
-            app.UseAuthentication();
-            app.UseAuthorization();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllers();
-            });
-
-            UnknownEndpointMiddleware.Attach(app);
-
-            if (!disableFrontEnd)
-            {
-                app.UseSpa(spa =>
-                {
-                    spa.Options.SourcePath = useMockFrontEnd ? "MockClientApp" : "ClientApp";
-
-                    if (!useMockFrontEnd && (Configuration.GetValue<bool?>(ApplicationConfiguration.UseProxyFrontEndKey) ?? false))
-                    {
-                        spa.UseProxyToSpaDevelopmentServer(new UriBuilder("http", "localhost", 3000).Uri);
-                    }
-                });
-            }
-        }
-    }
-}
diff --git a/Timeline/Swagger/ApiConvention.cs b/Timeline/Swagger/ApiConvention.cs
deleted file mode 100644
index dbf0b2fe..00000000
--- a/Timeline/Swagger/ApiConvention.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-﻿using Microsoft.AspNetCore.Mvc;
-
-[assembly: ApiConventionType(typeof(Timeline.Controllers.ApiConvention))]
-
-namespace Timeline.Controllers
-{
-    // There is some bug if nullable is enable. So disable it.
-#nullable disable
-    /// <summary>
-    /// My api convention.
-    /// </summary>
-    public static class ApiConvention
-    {
-    }
-}
diff --git a/Timeline/Swagger/ByteDataRequestOperationProcessor.cs b/Timeline/Swagger/ByteDataRequestOperationProcessor.cs
deleted file mode 100644
index 887831ac..00000000
--- a/Timeline/Swagger/ByteDataRequestOperationProcessor.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-﻿using NJsonSchema;
-using NSwag;
-using NSwag.Generation.Processors;
-using NSwag.Generation.Processors.Contexts;
-using System.Linq;
-using Timeline.Models;
-
-namespace Timeline.Swagger
-{
-    /// <summary>
-    /// Coerce ByteData body type into the right one.
-    /// </summary>
-    public class ByteDataRequestOperationProcessor : IOperationProcessor
-    {
-        /// <inheritdoc/>
-        public bool Process(OperationProcessorContext context)
-        {
-            var hasByteDataBody = context.MethodInfo.GetParameters().Where(p => p.ParameterType == typeof(ByteData)).Any();
-            if (hasByteDataBody)
-            {
-                var bodyParameter = context.OperationDescription.Operation.Parameters.Where(p => p.Kind == OpenApiParameterKind.Body).Single();
-                bodyParameter.Schema = JsonSchema.FromType<byte[]>();
-            }
-            return true;
-        }
-    }
-}
diff --git a/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs b/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
deleted file mode 100644
index 4967cc6a..00000000
--- a/Timeline/Swagger/DefaultDescriptionOperationProcessor.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-﻿using NSwag.Generation.Processors;
-using NSwag.Generation.Processors.Contexts;
-using System.Collections.Generic;
-
-namespace Timeline.Swagger
-{
-    /// <summary>
-    /// Swagger operation processor that adds default description to response.
-    /// </summary>
-    public class DefaultDescriptionOperationProcessor : IOperationProcessor
-    {
-        private readonly Dictionary<string, string> defaultDescriptionMap = new Dictionary<string, string>
-        {
-            ["200"] = "Succeeded to perform the operation.",
-            ["304"] = "Item does not change.",
-            ["400"] = "See code and message for error info.",
-            ["401"] = "You need to log in to perform this operation.",
-            ["403"] = "You have no permission to perform the operation.",
-            ["404"] = "Item does not exist. See code and message for error info."
-        };
-
-        /// <inheritdoc/>
-        public bool Process(OperationProcessorContext context)
-        {
-            var responses = context.OperationDescription.Operation.Responses;
-
-            foreach (var (httpStatusCode, res) in responses)
-            {
-                if (!string.IsNullOrEmpty(res.Description)) continue;
-                if (defaultDescriptionMap.ContainsKey(httpStatusCode))
-                {
-                    res.Description = defaultDescriptionMap[httpStatusCode];
-                }
-            }
-
-            return true;
-        }
-    }
-}
diff --git a/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs b/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
deleted file mode 100644
index dc5ddd96..00000000
--- a/Timeline/Swagger/DocumentDescriptionDocumentProcessor.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-﻿using NSwag.Generation.Processors;
-using NSwag.Generation.Processors.Contexts;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using Timeline.Models.Http;
-
-namespace Timeline.Swagger
-{
-    public class DocumentDescriptionDocumentProcessor : IDocumentProcessor
-    {
-        private static Dictionary<string, int> GetAllErrorCodes()
-        {
-            var errorCodes = new Dictionary<string, int>();
-
-            void RecursiveCheckErrorCode(Type type)
-            {
-                foreach (var field in type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
-                    .Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(int)))
-                {
-                    var name = (type.FullName + "." + field.Name).Remove(0, typeof(ErrorCodes).FullName!.Length + 1).Replace("+", ".", StringComparison.OrdinalIgnoreCase);
-                    int value = (int)field.GetRawConstantValue()!;
-                    errorCodes.Add(name, value);
-                }
-
-                foreach (var nestedType in type.GetNestedTypes())
-                {
-                    RecursiveCheckErrorCode(nestedType);
-                }
-            }
-
-            RecursiveCheckErrorCode(typeof(ErrorCodes));
-
-            return errorCodes;
-        }
-
-        public void Process(DocumentProcessorContext context)
-        {
-            StringBuilder description = new StringBuilder();
-            description.AppendLine("# Error Codes");
-            description.AppendLine("name | value");
-            description.AppendLine("---- | -----");
-            foreach (var (name, value) in GetAllErrorCodes())
-            {
-                description.AppendLine($"`{name}` | `{value}`");
-            }
-
-            context.Document.Info.Description = description.ToString();
-        }
-    }
-}
diff --git a/Timeline/Timeline.csproj b/Timeline/Timeline.csproj
deleted file mode 100644
index 39412a65..00000000
--- a/Timeline/Timeline.csproj
+++ /dev/null
@@ -1,289 +0,0 @@
-﻿<Project Sdk="Microsoft.NET.Sdk.Web">
-    <PropertyGroup>
-        <TargetFramework>netcoreapp3.1</TargetFramework>
-        <UserSecretsId>1f6fb74d-4277-4bc0-aeea-b1fc5ffb0b43</UserSecretsId>
-        <Authors>crupest</Authors>
-
-        <IsPackable>false</IsPackable>
-
-        <LangVersion>8.0</LangVersion>
-        <Nullable>enable</Nullable>
-
-        <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
-        <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
-        <SpaRoot>ClientApp\</SpaRoot>
-
-        <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
-
-        <Version>0.3.0</Version>
-        <GenerateDocumentationFile>true</GenerateDocumentationFile>
-        <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
-
-        <NoWarn>1701;1702;1591</NoWarn>
-    </PropertyGroup>
-
-    <ItemGroup>
-        <Content Include="default-avatar.png">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </Content>
-        <Content Include="MockClientApp\index.html">
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </Content>
-    </ItemGroup>
-
-    <ItemGroup>
-        <PackageReference Include="AutoMapper" Version="10.1.1" />
-        <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.0" />
-        <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.1.9" />
-        <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-        </PackageReference>
-        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.9" />
-        <PackageReference Include="Microsoft.EntityFrameworkCore.Analyzers" Version="3.1.9" />
-        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.9" />
-        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.9">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
-        </PackageReference>
-        <PackageReference Include="NSwag.AspNetCore" Version="13.8.2" />
-        <PackageReference Include="SixLabors.ImageSharp" Version="1.0.1" />
-        <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.8.0" />
-    </ItemGroup>
-
-    <ItemGroup>
-        <ProjectReference Include="..\Timeline.ErrorCodes\Timeline.ErrorCodes.csproj" />
-    </ItemGroup>
-
-    <ItemGroup>
-        <!-- Don't publish the SPA source files, but do show them in the project files list -->
-        <Content Remove="$(SpaRoot)**" />
-        <None Remove="$(SpaRoot)**" />
-        <None Include="$(SpaRoot)**" Exclude="$(SpaRoot)node_modules\**" />
-    </ItemGroup>
-
-    <Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
-        <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
-        <Exec WorkingDirectory="$(SpaRoot)" Command="yarn" StdOutEncoding="UTF-8" IgnoreStandardErrorWarningFormat="true" />
-        <Exec WorkingDirectory="$(SpaRoot)" Command="yarn build" StdOutEncoding="UTF-8" IgnoreStandardErrorWarningFormat="true" />
-
-        <!-- Include the newly-built files in the publish output -->
-        <ItemGroup>
-            <DistFiles Include="$(SpaRoot)dist\**" />
-            <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
-                <RelativePath>%(DistFiles.Identity)</RelativePath>
-                <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
-                <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
-            </ResolvedFileToPublish>
-        </ItemGroup>
-    </Target>
-
-    <ItemGroup>
-        <None Remove="MockClientApp\index.html" />
-    </ItemGroup>
-
-    <ItemGroup>
-        <Compile Update="Resources\Authentication\AuthHandler.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>AuthHandler.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Controllers\ControllerAuthExtensions.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>ControllerAuthExtensions.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Controllers\TimelineController.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>TimelineController.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Controllers\TokenController.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>TokenController.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Controllers\UserAvatarController.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>UserAvatarController.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Controllers\UserController.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>UserController.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Entities.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Entities.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Filters.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Filters.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Helper\DataCacheHelper.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>DataCacheHelper.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Messages.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Messages.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Models\Http\Common.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Common.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Models\Http\Exception.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Exception.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Models\Validation\NicknameValidator.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>NicknameValidator.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Models\Validation\NameValidator.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>NameValidator.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Models\Validation\Validator.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Validator.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\DataManager.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>DataManager.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\Exception.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Exception.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\Exceptions.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>Exceptions.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\TimelineService.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>TimelineService.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\UserAvatarService.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>UserAvatarService.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\UserService.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>UserService.resx</DependentUpon>
-        </Compile>
-        <Compile Update="Resources\Services\UserTokenService.Designer.cs">
-            <DesignTime>True</DesignTime>
-            <AutoGen>True</AutoGen>
-            <DependentUpon>UserTokenService.resx</DependentUpon>
-        </Compile>
-    </ItemGroup>
-
-    <ItemGroup>
-        <EmbeddedResource Update="Resources\Authentication\AuthHandler.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>AuthHandler.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Controllers\ControllerAuthExtensions.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>ControllerAuthExtensions.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Controllers\TimelineController.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>TimelineController.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Controllers\TokenController.resx">
-            <SubType>Designer</SubType>
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>TokenController.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Controllers\UserAvatarController.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>UserAvatarController.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Controllers\UserController.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>UserController.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Entities.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Entities.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Filters.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Filters.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Helper\DataCacheHelper.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>DataCacheHelper.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Messages.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Messages.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Models\Http\Common.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Common.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Models\Http\Exception.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Exception.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Models\Validation\NicknameValidator.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>NicknameValidator.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Models\Validation\NameValidator.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>NameValidator.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Models\Validation\Validator.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Validator.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\DataManager.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>DataManager.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\Exception.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Exception.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\Exceptions.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>Exceptions.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\TimelineService.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>TimelineService.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\UserAvatarService.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>UserAvatarService.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\UserService.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>UserService.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-        <EmbeddedResource Update="Resources\Services\UserTokenService.resx">
-            <Generator>ResXFileCodeGenerator</Generator>
-            <LastGenOutput>UserTokenService.Designer.cs</LastGenOutput>
-        </EmbeddedResource>
-    </ItemGroup>
-</Project>
diff --git a/Timeline/appsettings.Development.json b/Timeline/appsettings.Development.json
deleted file mode 100644
index a2880cbf..00000000
--- a/Timeline/appsettings.Development.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Debug",
-      "System": "Information",
-      "Microsoft": "Information"
-    }
-  }
-}
diff --git a/Timeline/appsettings.json b/Timeline/appsettings.json
deleted file mode 100644
index 804ca43a..00000000
--- a/Timeline/appsettings.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Warning"
-    }
-  },
-  "Jwt": {
-    "Issuer": "api.crupest.xyz",
-    "Audience": "api.crupest.xyz"
-  }
-}
diff --git a/Timeline/default-avatar.png b/Timeline/default-avatar.png
deleted file mode 100644
index 4086e1d2..00000000
Binary files a/Timeline/default-avatar.png and /dev/null differ
diff --git a/Timeline/packages.lock.json b/Timeline/packages.lock.json
deleted file mode 100644
index ed92c672..00000000
--- a/Timeline/packages.lock.json
+++ /dev/null
@@ -1,1563 +0,0 @@
-{
-  "version": 1,
-  "dependencies": {
-    ".NETCoreApp,Version=v3.1": {
-      "AutoMapper": {
-        "type": "Direct",
-        "requested": "[10.1.1, )",
-        "resolved": "10.1.1",
-        "contentHash": "uMgbqOdu9ZG5cIOty0C85hzzayBH2i9BthnS5FlMqKtMSHDv4ts81a2jS1VFaDBVhlBeIqJ/kQKjQY95BZde9w==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.7.0",
-          "System.Reflection.Emit": "4.7.0"
-        }
-      },
-      "AutoMapper.Extensions.Microsoft.DependencyInjection": {
-        "type": "Direct",
-        "requested": "[8.1.0, )",
-        "resolved": "8.1.0",
-        "contentHash": "dQyGCAYcHbGuimVvCMu4Ea2S1oYOlgO9XfVdClmY5wgygJMZoS57emPzH0qNfknmtzMm4QbDO9i237W5IDjU1A==",
-        "dependencies": {
-          "AutoMapper": "[10.1.0, 11.0.0)",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.0.0",
-          "Microsoft.Extensions.Options": "3.0.0"
-        }
-      },
-      "Microsoft.AspNetCore.SpaServices.Extensions": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "ciy2GCvRnh9C22laArLsaItS+72U6Hqf4nDYShdvFgcen2ZV+NNSitb/B3vsmFfIPM8m4mf2x4T+vZ6OlI5XaA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.SpaServices": "3.1.9",
-          "Microsoft.Extensions.FileProviders.Physical": "3.1.9"
-        }
-      },
-      "Microsoft.CodeAnalysis.FxCopAnalyzers": {
-        "type": "Direct",
-        "requested": "[3.3.0, )",
-        "resolved": "3.3.0",
-        "contentHash": "k3Icqx8kc+NrHImuiB8Jc/wd32Xeyd2B/7HOR5Qu9pyKzXQ4ikPeBAwzG2FSTuYhyIuNWvwL5k9yYBbbVz6w9w==",
-        "dependencies": {
-          "Microsoft.CodeAnalysis.VersionCheckAnalyzer": "[3.3.0]",
-          "Microsoft.CodeQuality.Analyzers": "[3.3.0]",
-          "Microsoft.NetCore.Analyzers": "[3.3.0]",
-          "Microsoft.NetFramework.Analyzers": "[3.3.0]"
-        }
-      },
-      "Microsoft.EntityFrameworkCore": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "u3A2W0BvAuAF2jgW+WX+C+Sh8sMGX5Kl1hdA0gu6A/XSrZQoW/BUP4a/q2n3iitDGndaorqjAKx+Spb9gBto+w==",
-        "dependencies": {
-          "Microsoft.Bcl.AsyncInterfaces": "1.1.1",
-          "Microsoft.Bcl.HashCode": "1.1.0",
-          "Microsoft.EntityFrameworkCore.Abstractions": "3.1.9",
-          "Microsoft.EntityFrameworkCore.Analyzers": "3.1.9",
-          "Microsoft.Extensions.Caching.Memory": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection": "3.1.9",
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "System.Collections.Immutable": "1.7.1",
-          "System.ComponentModel.Annotations": "4.7.0",
-          "System.Diagnostics.DiagnosticSource": "4.7.1"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Analyzers": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "eXGyx/Lb1fiiKtnIStdxGrfBSSQg8oZytE10f1T/2xAx12W9dKB9U9fg05cwNCDC0S2CXILsmZHYaGqCSXVAqQ=="
-      },
-      "Microsoft.EntityFrameworkCore.Sqlite": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "sMFCWv/1UcsFQZeGQcbfPbEZKZ1oKZqWZXTbc7PEZVMIXu82nbavstdNQ84x5IBXJkxl8iW3zjChb/FRBr5uLQ==",
-        "dependencies": {
-          "Microsoft.EntityFrameworkCore.Sqlite.Core": "3.1.9",
-          "SQLitePCLRaw.bundle_e_sqlite3": "2.0.2"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Tools": {
-        "type": "Direct",
-        "requested": "[3.1.9, )",
-        "resolved": "3.1.9",
-        "contentHash": "mSgwjp0h5iqW5V49SVijR5O+kNpI1nitcbN12n9FYx/Ga6oCEFwXR/llBDesD6ASHw3Mx16vodJYJ7CEBx5rig==",
-        "dependencies": {
-          "Microsoft.EntityFrameworkCore.Design": "3.1.9"
-        }
-      },
-      "NSwag.AspNetCore": {
-        "type": "Direct",
-        "requested": "[13.8.2, )",
-        "resolved": "13.8.2",
-        "contentHash": "SNGlVSZoMyywBWueZBxl3B/nfaIM0fAcuNhTD/cfMKUn3Cn/Oi8d45HZY5vAPqczvppTbk4cZXyVwWDOfgiPbA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
-          "Microsoft.AspNetCore.StaticFiles": "1.0.4",
-          "Microsoft.Extensions.ApiDescription.Server": "3.0.0",
-          "Microsoft.Extensions.FileProviders.Embedded": "1.0.1",
-          "NSwag.Annotations": "13.8.2",
-          "NSwag.Core": "13.8.2",
-          "NSwag.Generation": "13.8.2",
-          "NSwag.Generation.AspNetCore": "13.8.2",
-          "System.IO.FileSystem": "4.3.0",
-          "System.Xml.XPath.XDocument": "4.0.1"
-        }
-      },
-      "SixLabors.ImageSharp": {
-        "type": "Direct",
-        "requested": "[1.0.1, )",
-        "resolved": "1.0.1",
-        "contentHash": "DjLoFNdUfsDP7RhPpr5hcUhl1XiejqBML9uDWuOUwCkc0Y+sG9IJLLbqSOi9XeoWqPviwdcDm1F8nKdF0qTYIQ=="
-      },
-      "System.IdentityModel.Tokens.Jwt": {
-        "type": "Direct",
-        "requested": "[6.8.0, )",
-        "resolved": "6.8.0",
-        "contentHash": "5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==",
-        "dependencies": {
-          "Microsoft.IdentityModel.JsonWebTokens": "6.8.0",
-          "Microsoft.IdentityModel.Tokens": "6.8.0"
-        }
-      },
-      "Microsoft.AspNetCore.Authorization": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "cN2KJkfHcKwh82c9WGx4Tqfd2h5HflU/Mu5vYLMHON8WahHU9hE32ciIXcEIoKLNpu+zs1u1cN/qxcKTdqu89w==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Security.Claims": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Hosting.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "ybY8FOkdNfBPB5PLv1JO+It/94ftBzGUI1WqU4XySbIWyhw2TPmmKAUuO9uvJoR0qpsFup8FJz6trsBcBITg9w==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "XUiQPe/CflK1i0Voo9S6/G1iQh00gQ6sMqi3LRtKeceBbO6AOostaAUdhjyME92MapI4VFNl+Z+/KXUlMAExJQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Features": "1.0.3",
-          "Microsoft.Extensions.Configuration.Abstractions": "1.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Http": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "kfNOIGGgVtMzsSWZzXBqz5zsdo8ssBa90YHzZt95N8ARGXoolSaBHy6yBoMm/XcpbXM+m/x1fixTTMIWMgzJdQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.AspNetCore.WebUtilities": "1.0.3",
-          "Microsoft.Extensions.ObjectPool": "1.0.1",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.Buffers": "4.0.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "nnjvAf7ag6P0DyD/0nhRGjLpv+3DkPU0juF8aQh46X8uF4kzjJdrh65oL+4PVOu3K6BgSg6OVUs0QC0SE0FRtg==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Features": "1.0.3",
-          "System.Globalization.Extensions": "4.0.1",
-          "System.Linq.Expressions": "4.1.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Extensions": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "+7Sd+14nexIJqcB4S1Eur9kzeMZ5CBtrxkei+PNbD78fg8vO3+TcCgrl5SBNTsUB/VJAfD/s0fgs5t+hHRj2Pg==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.Buffers": "4.0.0",
-          "System.IO.FileSystem": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.Http.Features": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "Ihq57tseNyPbJTmFXY4jQ4JkxLP0lh45VRwocQci/sFx+qcJGvWB+sJJ2/YPLy/qTWFAEfNAcswuY3OsNH9Gwg==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "1.0.1",
-          "System.Collections": "4.0.11",
-          "System.ComponentModel": "4.0.1",
-          "System.Linq": "4.1.0",
-          "System.Net.Primitives": "4.0.11",
-          "System.Net.WebSockets": "4.0.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Security.Claims": "4.0.1",
-          "System.Security.Cryptography.X509Certificates": "4.1.0",
-          "System.Security.Principal": "4.0.1"
-        }
-      },
-      "Microsoft.AspNetCore.JsonPatch": {
-        "type": "Transitive",
-        "resolved": "1.0.0",
-        "contentHash": "WVaSVS+dDlWCR/qerHnBxU9tIeJ9GMA3M5tg4cxH7/cJYZZLnr2zvaFHGB+cRRNCKKTJ0pFRxT7ES8knhgAAaA==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.0.1",
-          "Newtonsoft.Json": "9.0.1",
-          "System.Collections.Concurrent": "4.0.12",
-          "System.ComponentModel.TypeConverter": "4.1.0",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Serialization.Primitives": "4.1.1",
-          "System.Text.Encoding.Extensions": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "Isqgif1nuB+um86cEkpL8KnoxFCUCXBsbs9PuiuzElvlSiv4Ek3LvtrSUcbivekDDfys8CDbJhxwEI7WKJieAQ==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
-          "Microsoft.CSharp": "4.0.1",
-          "Microsoft.Net.Http.Headers": "1.0.3",
-          "System.ComponentModel.TypeConverter": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Text.Encoding.Extensions": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.ApiExplorer": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "ujCFTM42U2WKUBhdaoLoiI+wVHgYhrmDrkl5+hWJ7EJW4fhp42w4cRZ97tjuveWr+M6JZjpS0q+7PVofQzFUiw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Core": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "1ukcttN1+T82hWXE8WS5kawkruolKI6LPVqVI4rTzN16kFszS/UqTrcwSUEnmTRpmWgFo665V3c2GpdQ9B6znw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Authorization": "1.0.3",
-          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.3",
-          "Microsoft.AspNetCore.Http": "1.0.3",
-          "Microsoft.AspNetCore.Mvc.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Routing": "1.0.4",
-          "Microsoft.Extensions.DependencyModel": "1.0.0",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.PlatformAbstractions": "1.0.0",
-          "System.Buffers": "4.0.0",
-          "System.Diagnostics.DiagnosticSource": "4.0.0",
-          "System.Text.Encoding": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.Mvc.Formatters.Json": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "i8WWK2GwlBHfOL+d+kknJWPks6DS9tbN6nfJZU4yb+/wfUAYd311B2CIHzdat3IewubnK1TYONwrhQcs2FbLeA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.JsonPatch": "1.0.0",
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4"
-        }
-      },
-      "Microsoft.AspNetCore.NodeServices": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "bbd3FlSPWiRQrIcBLa5TaOvo4gjmmiNMkxA8VmZ6u0eIpS0Yj35/eTopaGdtzqwlqj5jXbdRoib1MruXuPaW8A==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging.Console": "3.1.9",
-          "Newtonsoft.Json": "12.0.2"
-        }
-      },
-      "Microsoft.AspNetCore.Routing": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "mdIF3ckRothHWuCSFkk6YXACj5zxi5qM+cEAHjcpP04/wCHUoV0gGVnW+HI+LyFXE6JUwu2zXn5tfsCpW0U+SA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
-          "Microsoft.AspNetCore.Routing.Abstractions": "1.0.4",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.ObjectPool": "1.0.1",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Collections": "4.0.11",
-          "System.Text.RegularExpressions": "4.1.0"
-        }
-      },
-      "Microsoft.AspNetCore.Routing.Abstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "GHxVt6LlXHFsCUd2Un+/vY1tBTXxnogfbDO0b8G5EGmkapSK+dOGOLJviscxQkp338Uabs081JEIdkRymI5GXA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Http.Abstractions": "1.0.3",
-          "System.Collections.Concurrent": "4.0.12",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "Microsoft.AspNetCore.SpaServices": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Fb+N2ZyF1wNrGeWggT+Ovv6W8AAVxfi4V/SnuEsBOR+nmkFhty9zyh6IDRRS98GJK6OE3adqqPbWMtJqbxYnNA==",
-        "dependencies": {
-          "Microsoft.AspNetCore.NodeServices": "3.1.9"
-        }
-      },
-      "Microsoft.AspNetCore.StaticFiles": {
-        "type": "Transitive",
-        "resolved": "1.0.4",
-        "contentHash": "2pNvwewAazhaaCdw2CGUvIcDrNQMlqP57JgBDf3v+pRj1rZ29HVnpvkX6a+TrmRYlJNmmxHOKEt468uE/gDcFw==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.4",
-          "Microsoft.AspNetCore.Http.Extensions": "1.0.3",
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "Microsoft.Extensions.Logging.Abstractions": "1.0.2",
-          "Microsoft.Extensions.WebEncoders": "1.0.3"
-        }
-      },
-      "Microsoft.AspNetCore.WebUtilities": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "snSGNs5EEisqivDjDiskFkFyu+DV2Ib9sMPOBQKtoFwI5H1W5YNB/rIVqDZQL16zj/uzdwwxrdE/5xhkVyf6gQ==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "1.0.1",
-          "System.Buffers": "4.0.0",
-          "System.Collections": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.IO.FileSystem": "4.0.1",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.Bcl.AsyncInterfaces": {
-        "type": "Transitive",
-        "resolved": "1.1.1",
-        "contentHash": "yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w=="
-      },
-      "Microsoft.Bcl.HashCode": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "J2G1k+u5unBV+aYcwxo94ip16Rkp65pgWFb0R6zwJipzWNMgvqlWeuI7/+R+e8bob66LnSG+llLJ+z8wI94cHg=="
-      },
-      "Microsoft.CodeAnalysis.VersionCheckAnalyzer": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "xjLM3DRFZMan3nQyBQEM1mBw6VqQybi4iMJhMFW6Ic1E1GCvqJR3ABOwEL7WtQjDUzxyrGld9bASnAos7G/Xyg=="
-      },
-      "Microsoft.CodeQuality.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "zZ3miq6u22UFQKhfJyLnVEJ+DgeOopLh3eKJnKAcOetPP2hiv3wa7kHZlBDeTvtqJQiAQhAVbttket8XxjN1zw=="
-      },
-      "Microsoft.CSharp": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
-      },
-      "Microsoft.Data.Sqlite.Core": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "+u4PeT1npi2EzhxGc5r1Z2z73zuXw+TlKVZm44WQhNCUw4LtUVDaxGSpUhrjW+X4snBCBfr4kT/uJyKnL4R4og==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2"
-        }
-      },
-      "Microsoft.DotNet.PlatformAbstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.6",
-        "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
-      },
-      "Microsoft.EntityFrameworkCore.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "IR6Y4RJVlw0QXdWXjF3Kx9s1QLiicJus+BFBKr43lBtriV20j3yrWMoaZ9W1AUUgnicZXpXVcNfklqtmwb9Sxw=="
-      },
-      "Microsoft.EntityFrameworkCore.Design": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "2zgP7BWcw5nqGQiT4bEtiI6ras+4pvKg5D+tA3AYvjEifzzaWvmRTb3B9nRHpIYJAhPtmWNBVnVXLbu3fS1OYA==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.7.0",
-          "Microsoft.EntityFrameworkCore.Relational": "3.1.9"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Relational": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "7fhWuSfrCYlv/hvOX5OhbFJF/G9f8sifqTrJiYnAYLDOvNizwv7t9tFPD8JwaF3zM2S54O5/Vni2NxvwzSaW2w==",
-        "dependencies": {
-          "Microsoft.EntityFrameworkCore": "3.1.9"
-        }
-      },
-      "Microsoft.EntityFrameworkCore.Sqlite.Core": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Da6h8LdpJwKc1az9DMWt2Mt6gHXPRZqwiumV1Zx0AuM3EThyokVDzBGy2sti0AcBhcQMLJHPEr5R9xuiWvaYYQ==",
-        "dependencies": {
-          "Microsoft.Data.Sqlite.Core": "3.1.9",
-          "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
-          "Microsoft.EntityFrameworkCore.Relational": "3.1.9",
-          "Microsoft.Extensions.DependencyModel": "3.1.6"
-        }
-      },
-      "Microsoft.Extensions.ApiDescription.Server": {
-        "type": "Transitive",
-        "resolved": "3.0.0",
-        "contentHash": "LH4OE/76F6sOCslif7+Xh3fS/wUUrE5ryeXAMcoCnuwOQGT5Smw0p57IgDh/pHgHaGz/e+AmEQb7pRgb++wt0w=="
-      },
-      "Microsoft.Extensions.Caching.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "/2QsPAsUZD4qvftZkUKHRRRryPDXWh606/iNXPLrulwHLMr9JNsKBJWVqylT3qU92nJok5VoqSblkY9mSyxFyg==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Caching.Memory": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "/JrVMVetX/kpJQUIlJ6NLQ3zbF0yyryXpo4+uFCqYIUZzgmWk8DS/zSKcyj1tQ3410+vhDEAPngxC+hg0IlJeg==",
-        "dependencies": {
-          "Microsoft.Extensions.Caching.Abstractions": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "lqdkOGNeTMKG981Q7yWGlRiFbIlsRwTlMMiybT+WOzUCFBS/wc25tZgh7Wm/uRoBbWefgvokzmnea7ZjmFedmA==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "vOJxPKczaHpXeZFrxARxYwsEulhEouXc5aZGgMdkhV/iEXX9/pfjqKk76rTG+4CsJjHV+G/4eMhvOIaQMHENNA==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Configuration.Binder": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "BG6HcT7tARYakftqfQu+cLksgIWG1NdxMY+igI12hdZrUK+WjS973NiRyuao/U9yyTeM9NPwRnC61hCmG3G3jg==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.DependencyInjection": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "ORqfrAACcvTInie1oGola5uky344/PiNfgayTPuZWV4WnSfIQZJQm/ZLpGshJE3h7TqwYaYElGazK/yaM2bFLA==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.DependencyInjection.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "8PkcaPwiTPOhqshoY4+rQUbz86X6YpLDLUqXOezh7L2A3pgpBmeBBByYIffofBlvQxDdQ0zB2DkWjbZWyCxRWg=="
-      },
-      "Microsoft.Extensions.DependencyModel": {
-        "type": "Transitive",
-        "resolved": "3.1.6",
-        "contentHash": "/UlDKULIVkLQYn1BaHcy/rc91ApDxJb7T75HcCbGdqwvxhnRQRKM2di1E70iCPMF9zsr6f4EgQTotBGxFIfXmw==",
-        "dependencies": {
-          "System.Text.Json": "4.7.2"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "Q4SGwEFZKiZbpzPgdGbQUULxtcH1zXMOwCPKSm6QwVcOCGshf3QLfBh+O/GyFH4B0RfZ16nKyeW1mMONlRyjUw==",
-        "dependencies": {
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Embedded": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "nSEa8bH3fVdTYGqK4twOKLxxgKIW3cz9g9mrzhPh/CmdvGJWKRTIlBIZi7lz+lqNQpxean5vbAo84R/mU+JpGA==",
-        "dependencies": {
-          "Microsoft.Extensions.FileProviders.Abstractions": "1.0.1",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "Microsoft.Extensions.FileProviders.Physical": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "HWDSsblTCQp7EEJJmnLzttIhFGzDu+DGqBbOvGCdFT0+pkCuBkn3EiWpEEcm5WMTO5njmsbLSK9ZuUUf2zPsFg==",
-        "dependencies": {
-          "Microsoft.Extensions.FileProviders.Abstractions": "3.1.9",
-          "Microsoft.Extensions.FileSystemGlobbing": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.FileSystemGlobbing": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "5bnewG1aBiSESPNwcXGIxDDRN95uqdy+fqZZ8Z63Et5rRNlAwAfXHOrg+FTht7UjHobjvtjzquMCbAWhWEPHIw=="
-      },
-      "Microsoft.Extensions.Logging": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "+V3i0jCQCO6IIOf6e+fL0SqrZd2x/Krug9EEL1JHa9R03RsbEpltCtjVY5hxedyuyuQKwvLoR12sCfu/9XEUAw==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection": "3.1.9",
-          "Microsoft.Extensions.Logging.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Logging.Abstractions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "W5fbF8qVR9SMVVJqDQLIR7meWbev6Pu/lbrm7LDNr4Sp7HOotr4k2UULTdFSXOi5aoDdkQZpWnq0ZSpjrR3tjg=="
-      },
-      "Microsoft.Extensions.Logging.Configuration": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "hv6XsGgikrbkolBJdF1usl9R/nrliC5mifMqHMEY9zWcCLwNkXMJiS8p0lbosrnpVAMi4PbNx39DB51Dqscd0w==",
-        "dependencies": {
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "Microsoft.Extensions.Options.ConfigurationExtensions": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Logging.Console": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "8Dusl1rkDivmvLrwj6QAo917xMHPiDBzG3IG3agiyDdtsC/fRp+1VN5iIN+O09PtEaMged2OLA6wCDwfSTSTZw==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Logging": "3.1.9",
-          "Microsoft.Extensions.Logging.Configuration": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.ObjectPool": {
-        "type": "Transitive",
-        "resolved": "1.0.1",
-        "contentHash": "pJMOnxuqmG37OjccfvtqVoo3bQGoN+0EJUzzp7+2uxSdioER82caAk6Yi/z5aysapn5XENNIIa7SaYnYKSS69A==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "Microsoft.Extensions.Options": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "EIb3G1DL+Rl9MvJR7LjI1wCy2nfTN4y8MflbOftn1HLYQBj/Rwl8kUbGTrSFE01c99Wm4ETjWVsjqKcpFvhPng==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Primitives": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.Options.ConfigurationExtensions": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "u5jh7RW+Ev81YqK1ZoBG0lftp2MA9xqXiTiRL46XzaPj2ScNUyiVbzcVY0fPbE27UOpT2hj+yPzRSOMIIo55UA==",
-        "dependencies": {
-          "Microsoft.Extensions.Configuration.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Configuration.Binder": "3.1.9",
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.9",
-          "Microsoft.Extensions.Options": "3.1.9"
-        }
-      },
-      "Microsoft.Extensions.PlatformAbstractions": {
-        "type": "Transitive",
-        "resolved": "1.0.0",
-        "contentHash": "zyjUzrOmuevOAJpIo3Mt5GmpALVYCVdLZ99keMbmCxxgQH7oxzU58kGHzE6hAgYEiWsdfMJLjVR7r+vSmaJmtg==",
-        "dependencies": {
-          "System.AppContext": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "Microsoft.Extensions.Primitives": {
-        "type": "Transitive",
-        "resolved": "3.1.9",
-        "contentHash": "IrHecH0eGG7/XoeEtv++oLg/sJHRNyeCqlA9RhAo6ig4GpOTjtDr32sBMYuuLtUq8ALahneWkrOzoBAwJ4L4iA=="
-      },
-      "Microsoft.Extensions.WebEncoders": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "TClNvczWRxF6bVPhn5EK3Y3QNi5jTP68Qur+5Fk+MQLPeBI18WN7X145DDJ6bFeNOwgdCHl73lHs5uZp9ish1A==",
-        "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.2",
-          "Microsoft.Extensions.Options": "1.0.2",
-          "System.Text.Encodings.Web": "4.0.1"
-        }
-      },
-      "Microsoft.IdentityModel.JsonWebTokens": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==",
-        "dependencies": {
-          "Microsoft.IdentityModel.Tokens": "6.8.0"
-        }
-      },
-      "Microsoft.IdentityModel.Logging": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg=="
-      },
-      "Microsoft.IdentityModel.Tokens": {
-        "type": "Transitive",
-        "resolved": "6.8.0",
-        "contentHash": "gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.5.0",
-          "Microsoft.IdentityModel.Logging": "6.8.0",
-          "System.Security.Cryptography.Cng": "4.5.0"
-        }
-      },
-      "Microsoft.Net.Http.Headers": {
-        "type": "Transitive",
-        "resolved": "1.0.3",
-        "contentHash": "2F8USh4hR5xppvaxtw2EStX74Ih+HhRj7aQD1uaB9JmTGy478F7t4VU+IdZXauEDrvS7LYAyyhmOExsUFK3PAw==",
-        "dependencies": {
-          "System.Buffers": "4.0.0",
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Contracts": "4.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Text.Encoding": "4.0.11"
-        }
-      },
-      "Microsoft.NetCore.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "6qptTHUu1Wfszuf83NhU0IoAb4j7YWOpJs6oc6S4G/nI6aGGWKH/Xi5Vs9L/8lrI74ijEEzPcIwafSQW5ASHtA=="
-      },
-      "Microsoft.NETCore.Platforms": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
-      },
-      "Microsoft.NETCore.Targets": {
-        "type": "Transitive",
-        "resolved": "1.1.0",
-        "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
-      },
-      "Microsoft.NetFramework.Analyzers": {
-        "type": "Transitive",
-        "resolved": "3.3.0",
-        "contentHash": "JTfMic5fEFWICePbr7GXOGPranqS9Qxu2U/BZEcnnGbK1SFW8TxRyGp6O1L52xsbfOdqmzjc0t5ubhDrjj+Xpg=="
-      },
-      "Microsoft.Win32.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "Namotion.Reflection": {
-        "type": "Transitive",
-        "resolved": "1.0.14",
-        "contentHash": "wuJGiFvGfehH2w7jAhMbCJt0/rvUuHyqSZn0sMhNTviDfBZRyX8LFlR/ndQcofkGWulPDfH5nKYTeGXE8xBHPA==",
-        "dependencies": {
-          "Microsoft.CSharp": "4.3.0"
-        }
-      },
-      "Newtonsoft.Json": {
-        "type": "Transitive",
-        "resolved": "12.0.2",
-        "contentHash": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA=="
-      },
-      "NJsonSchema": {
-        "type": "Transitive",
-        "resolved": "10.2.1",
-        "contentHash": "/BtWbYTusyoSgQkCB4eYijMfZotB/rfASDsl1k9evlkm5vlOP4s4Y09TOzBChU77d/qUABVYL1Xf+TB8E0Wfpw==",
-        "dependencies": {
-          "Namotion.Reflection": "1.0.14",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Annotations": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "/GO+35CjPYQTPS5/Q8udM5JAMEWVo8JsrkV2Uw3OW4/AJU9iOS7t6WJid6ZlkpLMjnW7oex9mvJ2EZNE4eOG/Q=="
-      },
-      "NSwag.Core": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "Hm6pU9qFJuXLo3b27+JTXztfeuI/15Ob1sDsfUu4rchN0+bMogtn8Lia8KVbcalw/M+hXc0rWTFp5ueP23e+iA==",
-        "dependencies": {
-          "NJsonSchema": "10.2.1",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Generation": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "LBIrpHFRZeMMbqL1hdyGb7r8v+T52aOCARxwfAmzE+MlOHVpjsIxyNSXht9EzBFMbSH0tj7CK2Ugo7bm+zUssg==",
-        "dependencies": {
-          "NJsonSchema": "10.2.1",
-          "NSwag.Core": "13.8.2",
-          "Newtonsoft.Json": "9.0.1"
-        }
-      },
-      "NSwag.Generation.AspNetCore": {
-        "type": "Transitive",
-        "resolved": "13.8.2",
-        "contentHash": "0ydVv6OidspZ/MS6qmU8hswGtXwq5YZPg+2a2PHGD6jNp2Fef4j1wC3xa3hplDAq7cK+BgpyDKtvj9+X01+P5g==",
-        "dependencies": {
-          "Microsoft.AspNetCore.Mvc.ApiExplorer": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Core": "1.0.4",
-          "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.4",
-          "NJsonSchema": "10.2.1",
-          "NSwag.Generation": "13.8.2"
-        }
-      },
-      "runtime.native.System": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1"
-        }
-      },
-      "runtime.native.System.Net.Http": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "Nh0UPZx2Vifh8r+J+H2jxifZUD3sBrmolgiFWJd2yiNrxO0xTa6bAw3YwRn1VOiSen/tUXMS31ttNItCZ6lKuA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1"
-        }
-      },
-      "runtime.native.System.Security.Cryptography": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1"
-        }
-      },
-      "SQLitePCLRaw.bundle_e_sqlite3": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "OVPI/nh5AqfLCIKhAYqjCa6AHhc7oKApGcGM3UhMRSerFiBx58nSpGwxVFdMgjOCWZR+fA49nzsnKlWp5hFo8w==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2",
-          "SQLitePCLRaw.lib.e_sqlite3": "2.0.2",
-          "SQLitePCLRaw.provider.dynamic_cdecl": "2.0.2"
-        }
-      },
-      "SQLitePCLRaw.core": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "TFSBX426OelS1tkaVC254NVVlrJIe9YLhWPkEvuqJj2104QpmDmEYOhfdfDJD1E/2SmqDhoRw1ek5cQHj8olcQ==",
-        "dependencies": {
-          "System.Memory": "4.5.3"
-        }
-      },
-      "SQLitePCLRaw.lib.e_sqlite3": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "S+Tsqe/M7wsc+9HeediI6UHtBKf2X586aRwhi1aBVLGe0WxkAo52O9ZxwEy/v8XMLefcrEMupd2e9CDlIT6QCw=="
-      },
-      "SQLitePCLRaw.provider.dynamic_cdecl": {
-        "type": "Transitive",
-        "resolved": "2.0.2",
-        "contentHash": "ZSwacbKJUsxJEZxwT23uZVrGbaIvXcADZDz5Sr66fikO5eehdcceDncjzwzTzWfW13di8gpTpstx3WJSt/Ci5Q==",
-        "dependencies": {
-          "SQLitePCLRaw.core": "2.0.2"
-        }
-      },
-      "System.AppContext": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Buffers": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "msXumHfjjURSkvxUjYuq4N2ghHoRi2VpXcKMA7gK6ujQfU3vGpl+B6ld0ATRg+FZFpRyA6PgEPA+VlIkTeNf2w==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Diagnostics.Tracing": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Collections": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Collections.Concurrent": {
-        "type": "Transitive",
-        "resolved": "4.0.12",
-        "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Diagnostics.Tracing": "4.1.0",
-          "System.Globalization": "4.0.11",
-          "System.Reflection": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.Collections.Immutable": {
-        "type": "Transitive",
-        "resolved": "1.7.1",
-        "contentHash": "B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q=="
-      },
-      "System.Collections.NonGeneric": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Collections.Specialized": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
-        "dependencies": {
-          "System.Collections.NonGeneric": "4.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Globalization.Extensions": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.ComponentModel": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.ComponentModel.Annotations": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ=="
-      },
-      "System.ComponentModel.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
-        "dependencies": {
-          "System.ComponentModel": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.ComponentModel.TypeConverter": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Collections.NonGeneric": "4.0.1",
-          "System.Collections.Specialized": "4.0.1",
-          "System.ComponentModel": "4.0.1",
-          "System.ComponentModel.Primitives": "4.1.0",
-          "System.Globalization": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Diagnostics.Contracts": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "HvQQjy712vnlpPxaloZYkuE78Gn353L0SJLJVeLcNASeg9c4qla2a1Xq8I7B3jZoDzKPtHTkyVO7AZ5tpeQGuA==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Diagnostics.Debug": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Diagnostics.DiagnosticSource": {
-        "type": "Transitive",
-        "resolved": "4.7.1",
-        "contentHash": "j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw=="
-      },
-      "System.Diagnostics.Tools": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Diagnostics.Tracing": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Globalization": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Globalization.Calendars": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "L1c6IqeQ88vuzC1P81JeHmHA8mxq8a18NUBNXnIY/BVb+TCyAaGIFbhpZt60h9FJNmisymoQkHEFSE9Vslja1Q==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Globalization.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "KKo23iKeOaIg61SSXwjANN7QYDr/3op3OWGGzDzz7mypx0Za0fZSeG0l6cco8Ntp8YMYkIQcAqlk8yhm5/Uhcg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.InteropServices": "4.1.0"
-        }
-      },
-      "System.IO": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.IO.FileSystem": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.IO": "4.3.0",
-          "System.IO.FileSystem.Primitives": "4.3.0",
-          "System.Runtime": "4.3.0",
-          "System.Runtime.Handles": "4.3.0",
-          "System.Text.Encoding": "4.3.0",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
-      "System.IO.FileSystem.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
-        "dependencies": {
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Linq": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "System.Linq.Expressions": {
-        "type": "Transitive",
-        "resolved": "4.1.1",
-        "contentHash": "bXwi8FrK/XIGPvtk1ZnawffhqLPyacj7dZnbFaV52YGaQigNqGEzNAByAIvL9FlEe3TCzoInorHF91IK//Q3Xg==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Linq": "4.1.0",
-          "System.ObjectModel": "4.0.12",
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Emit": "4.0.1",
-          "System.Reflection.Emit.ILGeneration": "4.0.1",
-          "System.Reflection.Emit.Lightweight": "4.0.1",
-          "System.Reflection.Extensions": "4.0.1",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Reflection.TypeExtensions": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Memory": {
-        "type": "Transitive",
-        "resolved": "4.5.3",
-        "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA=="
-      },
-      "System.Net.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "hVvfl4405DRjA2408luZekbPhplJK03j2Y2lSfMlny7GHXlkByw1iLnc9mgKW0GdQn73vvMcWrWewAhylXA4Nw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Handles": "4.0.1"
-        }
-      },
-      "System.Net.WebSockets": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "2KJo8hir6Edi9jnMDAMhiJoI691xRBmKcbNpwjrvpIMOCTYOtBpSsSEGBxBDV7PKbasJNaFp1+PZz1D7xS41Hg==",
-        "dependencies": {
-          "Microsoft.Win32.Primitives": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.ObjectModel": {
-        "type": "Transitive",
-        "resolved": "4.0.12",
-        "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Reflection": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.IO": "4.1.0",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Reflection.Emit": {
-        "type": "Transitive",
-        "resolved": "4.7.0",
-        "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
-      },
-      "System.Reflection.Emit.ILGeneration": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
-        "dependencies": {
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Reflection.Emit.Lightweight": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
-        "dependencies": {
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Emit.ILGeneration": "4.0.1",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Reflection.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Reflection": "4.1.0",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Reflection.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Reflection.TypeExtensions": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
-        "dependencies": {
-          "System.Reflection": "4.1.0",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Resources.ResourceManager": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Globalization": "4.0.11",
-          "System.Reflection": "4.1.0",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Runtime": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0"
-        }
-      },
-      "System.Runtime.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Runtime.Handles": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Runtime.InteropServices": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Reflection": "4.1.0",
-          "System.Reflection.Primitives": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Handles": "4.0.1"
-        }
-      },
-      "System.Runtime.Numerics": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
-        "dependencies": {
-          "System.Globalization": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0"
-        }
-      },
-      "System.Runtime.Serialization.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.1.1",
-        "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
-        "dependencies": {
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Security.Claims": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "4Jlp0OgJLS/Voj1kyFP6MJlIYp3crgfH8kNQk2p7+4JYfc1aAmh9PZyAMMbDhuoolGNtux9HqSOazsioRiDvCw==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Security.Principal": "4.0.1"
-        }
-      },
-      "System.Security.Cryptography.Algorithms": {
-        "type": "Transitive",
-        "resolved": "4.2.0",
-        "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "System.Collections": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Handles": "4.0.1",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Runtime.Numerics": "4.0.1",
-          "System.Security.Cryptography.Encoding": "4.0.0",
-          "System.Security.Cryptography.Primitives": "4.0.0",
-          "System.Text.Encoding": "4.0.11",
-          "runtime.native.System.Security.Cryptography": "4.0.0"
-        }
-      },
-      "System.Security.Cryptography.Cng": {
-        "type": "Transitive",
-        "resolved": "4.5.0",
-        "contentHash": "WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A=="
-      },
-      "System.Security.Cryptography.Csp": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "/i1Usuo4PgAqgbPNC0NjbO3jPW//BoBlTpcWFD1EHVbidH21y4c1ap5bbEMSGAXjAShhMH4abi/K8fILrnu4BQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "System.IO": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Handles": "4.0.1",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Security.Cryptography.Algorithms": "4.2.0",
-          "System.Security.Cryptography.Encoding": "4.0.0",
-          "System.Security.Cryptography.Primitives": "4.0.0",
-          "System.Text.Encoding": "4.0.11",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Security.Cryptography.Encoding": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "System.Collections": "4.0.11",
-          "System.Collections.Concurrent": "4.0.12",
-          "System.Linq": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Handles": "4.0.1",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Security.Cryptography.Primitives": "4.0.0",
-          "System.Text.Encoding": "4.0.11",
-          "runtime.native.System.Security.Cryptography": "4.0.0"
-        }
-      },
-      "System.Security.Cryptography.OpenSsl": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "HUG/zNUJwEiLkoURDixzkzZdB5yGA5pQhDP93ArOpDPQMteURIGERRNzzoJlmTreLBWr5lkFSjjMSk8ySEpQMw==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Handles": "4.0.1",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Runtime.Numerics": "4.0.1",
-          "System.Security.Cryptography.Algorithms": "4.2.0",
-          "System.Security.Cryptography.Encoding": "4.0.0",
-          "System.Security.Cryptography.Primitives": "4.0.0",
-          "System.Text.Encoding": "4.0.11",
-          "runtime.native.System.Security.Cryptography": "4.0.0"
-        }
-      },
-      "System.Security.Cryptography.Primitives": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.Security.Cryptography.X509Certificates": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "4HEfsQIKAhA1+ApNn729Gi09zh+lYWwyIuViihoMDWp1vQnEkL2ct7mAbhBlLYm+x/L4Rr/pyGge1lIY635e0w==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.Globalization.Calendars": "4.0.1",
-          "System.IO": "4.1.0",
-          "System.IO.FileSystem": "4.0.1",
-          "System.IO.FileSystem.Primitives": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.Handles": "4.0.1",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Runtime.Numerics": "4.0.1",
-          "System.Security.Cryptography.Algorithms": "4.2.0",
-          "System.Security.Cryptography.Cng": "4.2.0",
-          "System.Security.Cryptography.Csp": "4.0.0",
-          "System.Security.Cryptography.Encoding": "4.0.0",
-          "System.Security.Cryptography.OpenSsl": "4.0.0",
-          "System.Security.Cryptography.Primitives": "4.0.0",
-          "System.Text.Encoding": "4.0.11",
-          "System.Threading": "4.0.11",
-          "runtime.native.System": "4.0.0",
-          "runtime.native.System.Net.Http": "4.0.1",
-          "runtime.native.System.Security.Cryptography": "4.0.0"
-        }
-      },
-      "System.Security.Principal": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "On+SKhXY5rzxh/S8wlH1Rm0ogBlu7zyHNxeNBiXauNrhHRXAe9EuX8Yl5IOzLPGU5Z4kLWHMvORDOCG8iu9hww==",
-        "dependencies": {
-          "System.Runtime": "4.1.0"
-        }
-      },
-      "System.Text.Encoding": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Text.Encoding.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.0.1",
-          "Microsoft.NETCore.Targets": "1.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Text.Encoding": "4.0.11"
-        }
-      },
-      "System.Text.Encodings.Web": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "GgJDO6/1bW6kkttxIiPK2jsqllQ3ifaeeBAJJrcoJq0lAclIZsAZZdEqi6JHq+QLZXL2UsjyWb8K8EOH7nOSPw==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Text.Json": {
-        "type": "Transitive",
-        "resolved": "4.7.2",
-        "contentHash": "TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg=="
-      },
-      "System.Text.RegularExpressions": {
-        "type": "Transitive",
-        "resolved": "4.1.0",
-        "contentHash": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11"
-        }
-      },
-      "System.Threading": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==",
-        "dependencies": {
-          "System.Runtime": "4.1.0",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.Threading.Tasks": {
-        "type": "Transitive",
-        "resolved": "4.3.0",
-        "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
-        "dependencies": {
-          "Microsoft.NETCore.Platforms": "1.1.0",
-          "Microsoft.NETCore.Targets": "1.1.0",
-          "System.Runtime": "4.3.0"
-        }
-      },
-      "System.Threading.Tasks.Extensions": {
-        "type": "Transitive",
-        "resolved": "4.0.0",
-        "contentHash": "pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Runtime": "4.1.0",
-          "System.Threading.Tasks": "4.0.11"
-        }
-      },
-      "System.Xml.ReaderWriter": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.IO.FileSystem": "4.0.1",
-          "System.IO.FileSystem.Primitives": "4.0.1",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Runtime.InteropServices": "4.1.0",
-          "System.Text.Encoding": "4.0.11",
-          "System.Text.Encoding.Extensions": "4.0.11",
-          "System.Text.RegularExpressions": "4.1.0",
-          "System.Threading.Tasks": "4.0.11",
-          "System.Threading.Tasks.Extensions": "4.0.0"
-        }
-      },
-      "System.Xml.XDocument": {
-        "type": "Transitive",
-        "resolved": "4.0.11",
-        "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Diagnostics.Tools": "4.0.1",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Reflection": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Text.Encoding": "4.0.11",
-          "System.Threading": "4.0.11",
-          "System.Xml.ReaderWriter": "4.0.11"
-        }
-      },
-      "System.Xml.XPath": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
-        "dependencies": {
-          "System.Collections": "4.0.11",
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Globalization": "4.0.11",
-          "System.IO": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Xml.ReaderWriter": "4.0.11"
-        }
-      },
-      "System.Xml.XPath.XDocument": {
-        "type": "Transitive",
-        "resolved": "4.0.1",
-        "contentHash": "FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
-        "dependencies": {
-          "System.Diagnostics.Debug": "4.0.11",
-          "System.Linq": "4.1.0",
-          "System.Resources.ResourceManager": "4.0.1",
-          "System.Runtime": "4.1.0",
-          "System.Runtime.Extensions": "4.1.0",
-          "System.Threading": "4.0.11",
-          "System.Xml.ReaderWriter": "4.0.11",
-          "System.Xml.XDocument": "4.0.11",
-          "System.Xml.XPath": "4.0.1"
-        }
-      },
-      "timeline.errorcodes": {
-        "type": "Project"
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index c0aaee67..00000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-trigger:
-  - master
-  - dev
-  
-stages:
-- stage: build
-  displayName: Routine Build and Test
-
-  jobs:
-  - job: frontend_build
-    displayName: Frontend Build
-    pool:
-      vmImage: 'ubuntu-18.04'
-
-    steps:
-    - script: yarn
-      workingDirectory: Timeline/ClientApp
-      displayName: Restore Packages
-
-    - script: yarn build
-      workingDirectory: Timeline/ClientApp
-      displayName: Webpack Build
-
-    - publish: Timeline/ClientApp/dist
-      artifact: timeline-frontend
-
-  - job: backend_build
-    displayName: Backend Build Debug and Test
-    pool:
-      vmImage: 'ubuntu-18.04'
-    variables:
-      buildConfiguration: 'Debug'
-      ASPNETCORE_ENVIRONMENT: 'Development'
-    steps:
-    - task: UseDotNet@2
-      inputs:
-        packageType: sdk
-        version: 3.1.x
-
-    - script: dotnet test --configuration $(buildConfiguration) --logger trx --collect:"XPlat Code Coverage" --settings './Timeline.Tests/coverletArgs.runsettings'
-      displayName: Dotnet Test
-
-    - task: PublishTestResults@2
-      condition: succeededOrFailed()
-      inputs:
-        testRunner: VSTest
-        testResultsFiles: '**/*.trx'
-
-    - task: PublishCodeCoverageResults@1
-      condition: succeededOrFailed()
-      inputs:
-        codeCoverageTool: 'Cobertura'
-        summaryFileLocation: '**/TestResults/*/coverage.cobertura.xml'
-
-- stage: deploy
-  displayName: Build Release and Deploy
-  dependsOn: build
-  condition: eq(variables['Build.SourceBranchName'], 'master')
-  variables:
-    buildConfiguration: 'Release'
-
-  jobs:
-  - job: build
-    displayName: Build Release Artifact
-    pool:
-      vmImage: 'ubuntu-18.04'
-    steps:
-    - task: Docker@2
-      displayName: Build And Push Docker Image
-      inputs:
-        command: buildAndPush
-        repository: crupest/timeline
-        tags: latest
-        buildContext: .
-        containerRegistry: crupest-docker-hub
diff --git a/tools/convert-eol.py b/tools/convert-eol.py
deleted file mode 100644
index 3ea8ed7c..00000000
--- a/tools/convert-eol.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# This is a python script that converts all text source codes into
-# CRLF (Windows line ending) eol format and UTF-8 with NO BOM encoding.
-
-import glob
-import os.path
-
-project_root = os.path.relpath(os.path.join(os.path.dirname(__file__), '..'))
-
-
-def convert(file_path):
-    with open(file_path, 'r', encoding='utf-8') as open_file:
-        content = open_file.read()
-
-    #if there is BOM, remove BOM
-    if content[0] == '\ufeff':
-        content = content[1:]
-
-    with open(file_path, 'w', encoding='utf-8', newline='\r\n') as open_file:
-        open_file.write(content)
-
-
-glob_list = [
-    './nuget.config',
-    '**/*.sln',
-    '**/*.cs',
-    '**/*.csproj',
-    '**/appsettings*.json'
-]
-
-for glob_pattern in glob_list:
-    for f in glob.glob(glob_pattern, recursive=True):
-        print('Converting {}'.format(f))
-        convert(f)
-
-print('Done!!!')
-- 
cgit v1.2.3

